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

от:
Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Hannes Magnusson
Georg Richter
Damien Seguy
Jakub Vrana
И некоторые другие
2023-12-16
Под редакцией: Peter Cowburn
от:
Алексей Шеин
Андрей Безруков
Максим Чабан
Александр Москалёв
Борис Клименко
Дмитрий Винярчук
Борис Флейтлих
Алексей Егоров
Юрий Бабиков
Михаил Баранов
Андрей Громов
Алексей Пыльцын
Сергей Пантелеев
Сергей Зорин
Евгений Четвериков
И некоторые другие
© 1997-2023 Группа документирования PHP
  • Авторские права
  • Руководство по PHP
    • Предисловие
  • Приступая к работе
    • Введение
    • Простой учебник
  • Установка и настройка
    • Общие инструкции по установке
    • Установка на Unix-системы
    • Установка на macOS
    • Установка в системах Windows
    • Установка на платформах Cloud Computing
    • Менеджер процессов FastCGI (FPM)
    • Установка модулей PECL
    • Проблемы?
    • Конфигурация времени выполнения
  • Справочник языка
    • Основы синтаксиса
    • Типы
    • Переменные
    • Константы
    • Выражения
    • Операторы
    • Управляющие конструкции
    • Функции
    • Классы и объекты
    • Пространства имён
    • Перечисления
    • Ошибки
    • Исключения
    • Fibers
    • Генераторы
    • Атрибуты
    • Объяснение ссылок
    • Предопределённые переменные
    • Предопределённые исключения
    • Встроенные интерфейсы и классы
    • Предопределённые атрибуты
    • Контекстные опции и параметры
    • Поддерживаемые протоколы и обёртки
  • Безопасность
    • Вступление
    • Общие рассуждения
    • Если PHP установлен как CGI
    • Если PHP установлен как модуль Apache
    • Безопасность сессий
    • Безопасность файловой системы
    • Безопасность баз данных
    • Сообщения об ошибках
    • Данные, введённые пользователем
    • Сокрытие PHP
    • Необходимость обновлений
  • Отличительные особенности
    • HTTP-аутентификация в PHP
    • Cookies
    • Сессии
    • Работа с XForms
    • Загрузка файлов на сервер
    • Работа с удалёнными файлами
    • Работа с соединениями
    • Постоянные соединения с базами данных
    • Использование PHP в командной строке
    • Сборка мусора
    • Динамическая трассировка DTrace
  • Справочник функций
    • Изменение поведения PHP
    • Обработка аудио форматов
    • Службы аутентификации
    • Модули для работы с командной строкой
    • Модули для сжатия и архивации
    • Криптографические модули
    • Модули для работы с базами данных
    • Модули для работы с датой и временем
    • Модули для работы с файловой системой
    • Поддержка языков и кодировок
    • Обработка и генерация изображений
    • Модули для работы с почтой
    • Математические модули
    • Генерация нетекстовых MIME-форматов
    • Модули для управления процессами программ
    • Другие базовые модули
    • Другие службы
    • Модули для работы с поисковыми системами
    • Модули для работы с серверами
    • Модули для работы с сессиями
    • Обработка текста
    • Модули, относящиеся к переменным и типам
    • Веб-сервисы
    • Модули только для Windows
    • Обработка XML
    • Модули для работы с GUI
  • ЧАВО — ЧАВО: ЧАсто задаваемые Вопросы и Ответы на них
    • Общая информация
    • Списки рассылки
    • Получение PHP
    • Вопросы по базам данных — Вопросы по Базам данных
    • Установка
    • Проблемы сборки
    • Использование PHP
    • Хеширование паролей — Безопасное хеширование паролей
    • PHP и HTML
    • PHP и COM
    • Разные вопросы
  • Appendices
    • История PHP и смежных проектов
    • Миграция с PHP 8.2.x на PHP 8.3.x
    • Миграция с PHP 8.1.x на PHP 8.2.x
    • Миграция с PHP 8.0.x на PHP 8.1.x
    • Миграция с PHP 7.4.x на PHP 8.0.x
    • Миграция с 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
    • Опции конфигурации
    • Директивы 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 - 2023 принадлежат группе документирования 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 создавался специально для ведения веб-разработок и код на нем может внедряться непосредственно в HTML-код. Синтаксис языка берет начало из C, Java и Perl, и является лёгким для изучения. Основной целью PHP является предоставление веб-разработчикам возможности быстрого создания динамически генерируемых веб-страниц, однако область применения PHP не ограничивается только этим.

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

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

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

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

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

Следующие участники внесли значительный вклад в наполнение документации в прошлом: Bill Abt, Jouni Ahto, Alexander Aulbach, Stig Bakken, George Peter Banyard, Christoph M. Becker, Daniel Beckham, 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, Yoshinari Takaoka, 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, Daniil Reuzhkov, Evgeniy Syuzev, Irina Goble, Ivan Kovalenko, Jigkayev Kazbek, Kirill Barashkin, Olishuk Andrey, Veniamin Zolotukhin.

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


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

  • Введение
    • Что такое 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. Возможности PHP включают вывод файлов различных типов, таких как изображения или PDF-файлы, шифрование данных и отправку электронной почты. Вы также можете легко выводить любой текст, например JSON или 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. Этот текст включает в себя только создание динамических 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

<!DOCTYPE html>
<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 и браузер выведет следующий текст:

<!DOCTYPE html>
<html>
    <head>
        <title>Тестируем PHP</title>
    </head>
    <body>
        <p>Привет, мир!</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 будет не в состоянии прочесть и запустить ваш скрипт.

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

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

<?php phpinfo(); ?>


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

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

Замечание:

$_SERVER - специальная зарезервированная переменная PHP, которая содержит всю информацию, полученную от Web-сервера. Её также называют суперглобальной. Для более подробной информации смотрите раздел Суперглобальные переменные.

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

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

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

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

Mozilla/5.0 (Linux) Firefox/112.0

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

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

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

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

<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
echo 'Вы используете Firefox.';
}
?>

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

Вы используете Firefox.

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

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

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

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

<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
?>
<h3>str_contains() возвращает true</h3>
<p>Вы используете Firefox</p>
<?php
} else {
?>
<h3>str_contains() возвращает false</h3>
<p>Вы не используете Firefox</p>
<?php
}
?>

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

<h3>str_contains() возвращает true</h3>
<p>Вы используете Firefox</p>

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


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

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

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

<form action="action.php" method="post">
    <label for="name">Ваше имя:</label>
    <input name="name" id="name" type="text">

    <label for="age">Ваш возраст:</label>
    <input name="age" id="age" type="number">

    <button type="submit">Submit</button>
</form>

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

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

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

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

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

Если не принимать во внимание куски кода с htmlspecialchars() и (int), принцип работы данного кода должен быть прост и понятен. htmlspecialchars() обеспечивает правильную кодировку "особых" HTML-символов так, чтобы вредоносный HTML или Javascript не был вставлен на вашу страницу. Поле age, о котором нам известно, что оно должно быть число, мы можем просто преобразовать в int, что автоматически избавит нас от нежелательных символов. 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 конференций: » http://talks.php.net/


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

  • Общие инструкции по установке
  • Установка на Unix-системы
    • Apache 2.x на Unix системах
    • Установка Nginx 1.4.x на систему Unix
    • Установка PHP на Lighttpd 1.4 на Unix-системах
    • Веб-сервер LiteSpeed/OpenLiteSpeed на системах Unix
    • Установка с интерфейсами CGI и командной строки
    • OpenBSD, замечания по установке
    • Инструкции по инсталляции для ОС Solaris
    • Инструкции по установке на Debian GNU/Linux
  • Установка на macOS
    • Использование пакетов
    • Использование встроенного PHP до macOS Monterey
    • Компилирование PHP на macOS
  • Установка в системах Windows
    • Требования к установке
    • PECL
    • Инструмент установки PHP на Windows
    • Рекомендованная конфигурация для систем Windows
    • Самостоятельная установка PHP в Windows
    • Сборка из исходных кодов
    • Командная строка PHP в Microsoft Windows
    • Apache 2.x в Microsoft Windows
    • Стандартные проблемы PHP под 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?

  • Создавать веб-сайты и веб-приложения (Скрипты на стороне сервера)
  • Скрипты командной строки
  • 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 2.x на Unix системах
  • Установка Nginx 1.4.x на систему Unix
  • Установка PHP на Lighttpd 1.4 на Unix-системах
  • Веб-сервер LiteSpeed/OpenLiteSpeed на системах Unix
  • Установка с интерфейсами CGI и командной строки
  • 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.59+ (для PHP >= 7.0.0), 2.64+ (для PHP >= 7.2.0)
  • automake: 1.4+
  • libtool: 1.4.x+ (кроме версии 1.4.2)
  • re2c: 0.13.4+
  • bison:
    • 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 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-pdo-mysql
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 может добавить эту инструкцию автоматически, но этого может и не произойти, поэтому проверьте, чтобы убедиться.

    Для PHP 8:

    LoadModule php_module modules/libphp.so

    Для PHP 7:

    LoadModule php7_module modules/libphp7.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-cgi.

Управление процессами 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 позволяет lighttpd динамически запускать процессы FastCGI. 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 для облегчения управления дочерними процессами FastCGI.

Управление процессами с помощью 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 ))
)


Веб-сервер 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 - » инструкции по установке или сайт с документацией по OpenLiteSpeed - » инструкции по установке.

  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 в разделе » 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, читайте соответствующую » документацию.

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


Установка с интерфейсами 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).


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

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

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

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

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

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

# pkg_add php
# pkg_add php-apache
# pkg_add php-mysqli
  (install the PEAR libraries)
# pkg_add pear

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

  (to remove packages)
# pkg_delete php
# pkg_delete php-apache
# pkg_delete php-mysqli
# pkg_delete pear

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

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

Вы можете также скомпилировать PHP из исходников, используя » дерево портов. Тем не менее, этот способ рекомендован только для тех, кто хорошо знакомых с OpenBSD. Порт PHP разбит на ядро и модули. Модули генерируют подпакеты для всех поддерживаемых модулей 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 требует установки Xorg. Если он ещё не установлен при базовой установке путём добавления набора файлов xbase.tgz, его можно добавить после установки (смотрите » OpenBSD FAQ#4).


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

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

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

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

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

  • tar
  • gzip или
  • bzip2

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

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

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

  • 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 или aptitude. В рамках этого руководства обе эти команды рассматриваются как взаимозаменяемые.

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

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

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

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

# apt install php-common libapache2-mod-php php-cli

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

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

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

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

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

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

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

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

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

# apt install php-mysql php-curl

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

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

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


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

Содержание

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

Этот раздел содержит руководство и различные советы по установке PHP на macOS. PHP поставлялся вместе с macOS, начиная с macOS X (10.0.0) по macOS Monterey (12.0.0). Компилирование на которых схоже с установкой в Unix-системах.


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

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

Самый быстрый способ установить PHP на macOS - с помощью homebrew:

  1. Установите homebrew, следуя инструкциям на » brew.sh

  2. brew install php

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

  • MacPorts: » http://www.macports.org/
  • Liip: » http://php-osx.liip.ch/ (PHP 5.3 - PHP 7.3; устарело)
  • Fink: » http://www.finkproject.org/


Использование встроенного PHP до macOS Monterey

PHP поставлялся вместе с macOS, начиная с macOS X (10.0.0) по macOS Monterey (12.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 до macOS Monterey
  • Установка в системах Windows »
  • PHP Manual
  • Установка на macOS
  • Компилирование PHP на macOS

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

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


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

Содержание

  • Требования к установке
  • PECL
  • Инструмент установки PHP на Windows
  • Рекомендованная конфигурация для систем Windows
  • Самостоятельная установка PHP в Windows
  • Сборка из исходных кодов
  • Командная строка PHP в Microsoft Windows
  • Apache 2.x в Microsoft Windows
  • Стандартные проблемы PHP под Windows

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

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

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

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


Требования к установке

Для PHP требуется как минимум Windows 2008/Vista. 32-Bit или 64-bit (AKA X86 или X64. PHP не работает на Windows RT/WOA/ARM). Начиная с PHP 7.2.0, Windows 2008 и Vista больше не поддерживаются.

PHP требует наличия Visual C runtime(CRT). Многие приложения требуют, чтобы это уже было установлено.

Распространяемый Microsoft Visual C ++ для Visual Studio 2019 подходит для всех этих версий PHP, смотрите » https://visualstudio.microsoft.com/downloads/.

Вы должны скачать x86 CRT для сборки PHP x86 и x64 CRT для сборки PHP x64.

Если CRT уже установлен, установщик скажет вам об этом и ничего не будет устанавливать.

Инсталятор CRT поддерживает опции командной строки /quiet и /norestart, вы можете использовать их при запуске скрипта.


PECL

PECL модули для Windows предварительно скомпилированы и доступны по ссылке: » http://windows.php.net/downloads/pecl/releases/

Некоторые модули используют особенности, специфичные для Unix систем и не доступны для Windows. Или напротив модули могут быть доступны только для Windows.


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

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

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

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


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

OpCache

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

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

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

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
Более подробно читайте: Конфигурация WinCache

Конфигурация IIS

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

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

База данных

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

PHP модули включают mysqli и pdo_mysql.

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


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

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

IIS

IIS является встроенным в Windows. На сервере Windows используйте Server Manager для добавления роли IIS. Убедитесь, что функция роли CGI включена. На рабочем столе Windows используйте панель "Установка и удаление программ" для добавления IIS. В документации Microsoft есть » подробные инструкции. Для настольных веб-приложений и веб-разработки можно также использовать IIS/Express или рабочий стол PHP.

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

@echo off

REM download .ZIP file of PHP build from http://windows.php.net/downloads/

REM path to directory you decompressed PHP .ZIP file into (no trailing \)
set phppath=c:\php

REM Clear current PHP handlers
%windir%\system32\inetsrv\appcmd clear config /section:system.webServer/fastCGI
REM The following command will generate an error message if PHP is not installed. This can be ignored.
%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='%phppath%\php-cgi.exe']
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+[name='PHP_via_FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='%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='%phppath%\php-cgi.exe'].instanceMaxRequests:10000
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']"
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHPRC',value='%phppath%\php.ini']"

Apache

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

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

Скачайте PHP-релизы с » http://windows.php.net/download/. Все сборки оптимизированы (PGO), а выпуски QA и GA тщательно протестированы.

Есть 4 типа сборок PHP:

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

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

  • для x86 - для 32-разрядной версии

  • для x64 - для 64-разрядной версии


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

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

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


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

Этот раздел содержит примечания и подсказки, относящиеся к запуску PHP из командной строки для Windows.

Замечание:

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

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

C:\php\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. Подробнее о том, как добавить каталог PHP в PATH, читайте в соответствующей записи часто задаваемых вопросов.

  • Добавьте расширение .PHP к переменной окружения PATHEXT. Это можно сделать одновременно с изменением переменной окружения PATH. Выполните те же действия, что и в ЧАВО, но измените переменную окружения PATHEXT, а не PATH.

    Замечание:

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

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

    assoc .php=phpfile

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

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

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

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

Пример #1 Изменения в реестре

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:\\php\\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:\\php\\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 предоставляет объяснение.


Apache 2.x в Microsoft Windows

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

Замечание:

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

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

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

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

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

Установка в качестве обработчика Apache

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

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

# до PHP 8.0.0 имя модуля было php7_module
LoadModule php_module "c:/php/php8apache2_4.dll"
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>
# укажите путь до php.ini
PHPIniDir "C:/php"

Замечание: В приведённых выше примерах необходимо подставить фактический путь к PHP вместо C:/php/. Убедитесь, что файл, указанный в директиве LoadModule, находился в указанном месте. Используйте php7apache2_4.dll для PHP 7 или php8apache2_4.dll для PHP 8.

Запуск PHP как CGI

Настоятельно рекомендуется обратиться к » Документации Apache CGI для более полного понимания того, как запускать CGI в Apache.

Чтобы запустить PHP как CGI, файлы php-cgi должны быть помещены в каталог, обозначенный как каталог CGI с использованием директивы ScriptAlias.

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

Пример #2 PHP и Apache 2.x как CGI

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

Внимание

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

Запуск PHP под FastCGI

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

Загрузите mod_fcgid с » https://www.apachelounge.com. Бинарные файлы Win32 доступны для загрузки с этого сайта. Установите модуль в соответствии с прилагаемой к нему инструкцией.

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

Пример #3 Настройка Apache для запуска PHP как FastCGI

LoadModule fcgid_module modules/mod_fcgid.so
# Где находится ваш файл php.ini?
FcgidInitialEnv PHPRC        "c:/php"
<FilesMatch \.php$>
    SetHandler fcgid-script
</FilesMatch>
FcgidWrapper "c:/php/php-cgi.exe" .php
Файлы с расширением .php теперь будут исполняться обёрткой PHP FastCGI.


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

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

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

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


  • « Стандартные проблемы PHP под 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() - специальная функция для завершения запроса и сброса всех буферов данных, причём процесс может продолжать выполнение каких-либо длительных действий (конвертирование видео, обработка статистики и т.п.);

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

  • Базовая и расширенная информация о состоянии (аналогично Apache mod_status) с поддержкой различных форматов, таких как json, xml и openmetrics;

  • Конфигурационный файл, основанный на 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).

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

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

Список изменений

Версия | Описание
8.2.0 | Добавлена опция --with-fpm-selinux.
8.0.0 | Добавлена опция --with-fpm-apparmor.


Настройка

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 int

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

log_buffering bool

Экспериментальное журналирование без дополнительной буферизации. Значение по умолчанию: 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 bool

Запустить FPM в фоновом режиме. Установите значение 'no', чтобы запустить FPM в диспетчере для отладки. По умолчанию: yes.

rlimit_files int

Устанавливает 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 означает максимум на системах BSD. Значение по умолчанию: -1 (FreeBSD или OpenBSD) или 511. (Linux и другие платформы).

listen.allowed_clients string

Список адресов IPv4 или IPv6 клиентов FastCGI, которым разрешено подключение. Эквивалент переменной окружения FCGI_WEB_SERVER_ADDRS в оригинальном PHP FastCGI (5.2.2+). Имеет смысл только с TCP-сокетом. Каждый адрес должен быть разделён запятой. Если оставить это значение пустым, соединения будут приниматься с любого IP-адреса. Значение по умолчанию: не задано (принимается любой ip-адрес).

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 будут проигнорированы. Значение задаётся списком имён, разделённых запятой.

listen.acl_groups string

Смотрите listen.acl_users. Значение задаётся списком имён групп, разделённых запятой.

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.max_spawn_rate int

Количество одновременных порождений дочерних процессов. Используется только тогда, когда у параметра pm установлено значение dynamic. Значение по умолчанию: 32

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_listen string

Адрес, по которому будет приниматься запрос состояния FastCGI. Создаёт новый невидимый пул, который может независимо обрабатывать запросы. Полезно, если основной пул занят долго выполняющимися запросами, так как всё ещё можно получить страницу состояния FPM до завершения долго выполняющихся запросов. Синтаксис такой же, как и для директивы listen. Значение по умолчанию: none.

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 bool

Установить флаг процесса 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_terminate_timeout_track_finished bool

Время ожидания, установленное с помощью request_terminate_timeout, не включается после fastcgi_finish_request или когда приложение завершено и вызываются внутренние функции завершения работы. Эта директива позволит безоговорочно применять ограничение времени ожидания даже в таких случаях. Значение по умолчанию: нет, начиная с версии PHP 7.3.0.

request_slowlog_timeout mixed

Время ожидания обслуживания одного запроса, после чего PHP backtrace будет сохранён в файл 'slowlog'. Значение '0' означает 'выключено'. Доступные единицы измерения: s(econds), m(inutes), h(ours) или d(ays). Значение по умолчанию: 0.

request_slowlog_trace_depth int

Глубина трассировки стека журнала slowlog. Значение по умолчанию: 20, начиная с PHP 7.2.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 bool

Перенаправление STDOUT и STDERR рабочего процесса в главный лог ошибок. Если не установлен, STDOUT и STDERR будут перенаправлены в /dev/null в соответствии со спецификацией FastCGI. Значение по умолчанию: no.

decorate_workers_output bool

Включите оформление выхода (output decoration) для вывода worker-процесса когда опция catch_workers_output включена. Значение по умолчанию: yes. Доступно с PHP 7.3.0.

clear_env bool

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

security.limit_extensions string

Ограничивает модули, которые FPM будет анализировать. Это может предотвратить ошибки конфигурации на стороне веб-сервера. Вы должны ограничить FPM только расширениями .php для предотвращения выполнения PHP-кода злоумышленниками другими расширениями. По умолчанию: .php .phar

apparmor_hat string

Если AppArmor включён, позволяет изменить шапку. Значение по умолчанию: не установлено

access.log string

Лог-файл доступа. Значение по умолчанию: не установлено

access.format string

Формат лог-файла доступа. Значение по умолчанию: "%R - %u %t \"%m %r\" %s":

Допустимые значения
Заполнитель | Описание
%C | %CPU
%d | длительность µs
%e | fastcgi env
%f | скрипт
%l | длина содержимого
%m | метод
%M | память
%n | название пула
%o | вывод заголовка
%p | PID
%q | строка запроса
%Q | GLUE между %q и %r
%r | URI запроса
%R | удалённый IP-адрес
%s | статус
%T | время
%t | время
%u | удалённый пользователь

Можно передать дополнительные переменные окружения и обновить настройки 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().

Настройки 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.

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


Установка модулей 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. Можно также указать отдельные ревизии для установки.
  • git Многие модули PECL находятся на GitHub.
  • SVN Многие модули PECL, также, находятся в SVN. Веб-интерфейс для просмотра доступен по адресу » https://svn.php.net/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 и 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-совместимом пакете (к примеру, модули из git, у которых ещё нет релизов). Если вам необходимо собрать такой модуль, вы можете использовать низкоуровневые утилиты для выполнения сборки вручную.

Команда 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://github.com/php/php-src/issues. Пожалуйста, не шлите сообщения об ошибках в список рассылки или на личные адреса разработчиков. Система отслеживания ошибок также пригодна и для запроса нововведений.

Прочитайте: » Как сообщать об ошибках перед тем как сообщать о них.


Конфигурация времени выполнения

Содержание

  • Файл конфигурации
  • Файлы .user.ini
  • Где могут быть установлены параметры конфигурации
  • Как изменить настройки конфигурации


Файл конфигурации

Файл конфигурации (php.ini) считывается при запуске PHP. Для версий серверных модулей PHP это происходит только один раз при запуске веб-сервера. Для CGI и CLI версий это происходит при каждом вызове.

Поиск php.ini производится в следующих местах (по порядку поиска):

  • По месту расположения модуля SAPI (PHPIniDir директива Apache 2, -c параметр командной строки CGI и CLI)
  • Переменная среды PHPRC.
  • Местоположение файла 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"

Возможно обращаться к существующим ini-переменным из ini-файлов. Пример: open_basedir = ${open_basedir} ":/new/dir".

Сканирование директорий

Существует возможность сконфигурировать PHP для сканирования директорий в поисках .ini-файлов после считывания php.ini. Это можно сделать на моменте компиляции, указав опцию --with-config-file-scan-dir. Сканирование директорий может быть переопределено во время исполнения установкой переменной среды 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 как конфигурационные.


Файлы .user.ini

Включена поддержка 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. Значение может быть установлено в .user.ini
PHP_INI_PERDIR | Значение может быть установлено в php.ini, .htaccess или httpd.conf
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-функции)
    • Mixed
    • Void
    • Never
    • Относительные типы классов
    • Value types
    • Итерируемые
    • Объявление типов
    • Манипуляции с типами
  • Переменные
    • Основы
    • Предопределённые переменные
    • Область видимости переменной
    • Переменные переменных
    • Переменные извне PHP
  • Константы
    • Синтаксис
    • Предопределённые константы
    • Магические константы
  • Выражения
  • Операторы
    • Operator Precedence
    • Arithmetic Operators
    • Incrementing/Decrementing Operators
    • Assignment Operators
    • Bitwise Operators
    • Comparison Operators
    • Error Control Operators
    • Execution Operators
    • Logical Operators
    • String Operators
    • Array Operators
    • Type Operators
  • Управляющие конструкции
    • Введение
    • if
    • else
    • elseif/else if
    • Альтернативный синтаксис управляющих структур
    • while
    • do-while
    • for
    • foreach
    • break
    • continue
    • switch
    • match
    • declare
    • return
    • require
    • include
    • require_once
    • include_once
    • goto
  • Функции
    • Функции, определяемые пользователем
    • Аргументы функции
    • Возврат значений
    • Обращение к функциям через переменные
    • Встроенные функции
    • Анонимные функции
    • Стрелочные функции
    • Callback-функции как объекты первого класса
  • Классы и объекты
    • Введение
    • Основы
    • Свойства
    • Константы классов
    • Автоматическая загрузка классов
    • Конструкторы и деструкторы
    • Область видимости
    • Наследование
    • Оператор разрешения области видимости (::)
    • Ключевое слово static
    • Абстрактные классы
    • Интерфейсы объектов
    • Трейты
    • Анонимные классы
    • Перегрузка
    • Итераторы объектов
    • Магические методы
    • Ключевое слово final
    • Клонирование объектов
    • Сравнение объектов
    • Позднее статическое связывание
    • Объекты и ссылки
    • Сериализация объектов
    • Ковариантность и контравариантность
    • Журнал изменений ООП
  • Пространства имён
    • Обзор пространств имён
    • Определение пространств имён
    • Определение подпространств имён
    • Описание нескольких пространств имён в одном файле
    • Использование пространства имён: основы
    • Пространства имён и динамические особенности языка
    • Ключевое слово namespace и константа __NAMESPACE__
    • Использование пространств имён: импорт/создание псевдонима имени
    • Глобальное пространство
    • Использование пространств имён: переход к глобальной функции/константе
    • Правила разрешения имён
    • Часто задаваемые вопросы (FAQ): вещи, которые вам необходимо знать о пространствах имён
  • Перечисления
    • Обзор перечислений
    • Основы перечислений
    • Типизированные перечисления
    • Методы перечислений
    • Статические методы перечислений
    • Константы перечислений
    • Трейты
    • Значения перечисления в постоянных выражениях
    • Отличия от объектов
    • Список значений
    • Сериализация
    • Почему перечисления не расширяемы
    • Примеры
  • Ошибки
    • Основы
    • Ошибки в PHP 7
  • Исключения
    • Наследование исключений
  • Fibers
  • Генераторы
    • Знакомство с генераторами
    • Синтаксис генераторов
    • Сравнение генераторов с объектами класса Iterator
  • Атрибуты
    • Введение в атрибуты
    • Синтаксис атрибутов
    • Чтение атрибутов с помощью Reflection API
    • Объявление классов атрибутов
  • Объяснение ссылок
    • Что такое ссылки
    • Что делают ссылки
    • Чем ссылки не являются
    • Передача по ссылке
    • Возврат по ссылке
    • Сброс переменных-ссылок
    • Неявное использование механизма ссылок
  • Предопределённые переменные
    • Суперглобальные переменные — Встроенные переменные, которые всегда доступны во всех областях
    • $GLOBALS — Ссылки на все переменные глобальной области видимости
    • $_SERVER — Информация о сервере и среде исполнения
    • $_GET — Переменные HTTP GET
    • $_POST — Переменные HTTP POST
    • $_FILES — Переменные файлов, загруженных по HTTP
    • $_REQUEST — Переменные HTTP-запроса
    • $_SESSION — Переменные сессии
    • $_ENV — Переменные окружения
    • $_COOKIE — HTTP Cookies
    • $php_errormsg — Предыдущее сообщение об ошибке
    • $http_response_header — Заголовки ответов HTTP
    • $argc — Количество аргументов, переданных скрипту
    • $argv — Массив переданных скрипту аргументов
  • Предопределённые исключения
    • Exception
    • ErrorException
    • Error
    • ArgumentCountError
    • ArithmeticError
    • AssertionError
    • DivisionByZeroError
    • CompileError
    • ParseError
    • TypeError
    • ValueError
    • UnhandledMatchError
    • FiberError
  • Встроенные интерфейсы и классы
    • Traversable — Интерфейс Traversable
    • Iterator — Интерфейс Iterator
    • IteratorAggregate — Интерфейс IteratorAggregate
    • InternalIterator — Класс InternalIterator
    • Throwable
    • ArrayAccess — Интерфейс ArrayAccess
    • Serializable — Интерфейс Serializable
    • Closure — Класс Closure
    • stdClass — Класс stdClass
    • Generator — Класс Generator
    • Fiber — Класс Fiber
    • WeakReference — Класс WeakReference
    • WeakMap — Класс WeakMap
    • Stringable — Интерфейс Stringable
    • UnitEnum — Интерфейс UnitEnum
    • BackedEnum — Интерфейс BackedEnum
    • SensitiveParameterValue — Класс SensitiveParameterValue
  • Предопределённые атрибуты
    • Attribute — Класс Attribute
    • AllowDynamicProperties — Класс AllowDynamicProperties
    • ReturnTypeWillChange — Класс ReturnTypeWillChange
    • SensitiveParameter — Класс SensitiveParameter
  • Контекстные опции и параметры
    • Контекстные опции сокета — Список контекстных опций сокета
    • Опции контекста HTTP — Список опций контекста HTTP
    • Параметры контекста FTP — Список параметров контекста FTP
    • Опции контекста SSL — Список опций контекста SSL
    • Контекстные опции Phar — Список контекстных опций Phar
    • Параметры контекста — Список параметров контекста
    • Опции контекста Zip — Список опций контекста Zip
    • Zlib context options — Перечисление опций контекста Zlib
  • Поддерживаемые протоколы и обёртки
    • 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.

Пример #1 Открывающие и закрывающие теги PHP

1. <?php echo 'если вы хотите хранить код PHP в документах XHTML или XML,
то используйте эти теги'; ?>

2. Вы можете использовать короткий 'echo'-тег чтобы <?= 'напечатать эту строку' ?>.
Этот тег эквивалентен такому коду
<?php echo 'напечатать эту строку' ?>.

3. <? echo 'этот код с короткими тегами, но он будет работать только если '.
'включена опция "short_open_tag"'; ?>

Короткие теги (третий пример) доступны по умолчанию, но их можно отключить с помощью директивы short_open_tag в конфигурационном файле php.ini или отключены по умолчанию, если PHP был скомпилирован с опцией --disable-short-tags.

Замечание:

Поскольку короткие теги можно отключить, рекомендуется использовать только обычные теги (<?php ?> и <?= ?>) для максимальной совместимости.

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

<?php
echo "Hello world";

// ... ещё код

echo "Последнее выражение";

// Скрипт заканчивается тут без закрывающего тега PHP


Изолирование от 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-код в XML или XHTML, чтобы соответствовать XML стандартам, вам следует использовать форму <?php ?>.


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

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

Пример #1 Пример, показывающий закрывающий тег, охватывающий завершающую новую строку

<?php echo "Какой-то текст"; ?>
Нет новой строки
<?= "А сейчас, новая строка" ?>

Результат выполнения данного примера:

Какой-то текстНет новой строки
А сейчас, новая строка

Примеры входа и выхода из парсера 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, а // или # не могут повлиять на это.

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

'C'-комментарии заканчиваются при первой же обнаруженной последовательности */. Убедитесь, что вы не вкладываете друг в друга 'C'-комментарии. Очень легко допустить эту ошибку при комментировании большого блока кода.

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


Типы

Содержание

  • Введение
  • Система типов
  • NULL
  • Логический тип
  • Целые числа
  • Числа с плавающей точкой
  • Строки
  • Числовые строки
  • Массивы
  • Объекты
  • Перечисления
  • Ресурс
  • Функции обратного вызова (callback-функции)
  • Mixed
  • Void
  • Never
  • Относительные типы классов
  • Value types
  • Итерируемые
  • Объявление типов
  • Манипуляции с типами


Введение

У каждого выражения в PHP один из следующих встроенных типов в зависимости от его значения:

  • null
  • bool
  • int
  • float (floating-point number)
  • string
  • array
  • object
  • callable
  • resource

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

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

Подсказка

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

Замечание: Можно заставить выражение оцениваться с определённым типом, используя приведение типов. Переменная также может быть приведена к определённому типу с помощью функции settype().

Чтобы проверить значение и тип выражения, используйте функцию var_dump(). Чтобы получить тип выражения, используйте функцию get_debug_type(). Однако, чтобы проверить, является ли выражение определённым типом, используйте функции is_type.

<?php
$a_bool = true; // логическое значение
$a_str = "foo"; // строка
$a_str2 = 'foo'; // строка
$an_int = 12; // целое число

echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";

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

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

Результат выполнения данного примера в PHP 8:

bool
string
int(16)

Замечание: До PHP 8.0.0, где функция get_debug_type() недоступна, вместо неё можно использовать функцию gettype(). Однако она не использует канонические имена типов.


Система типов

В PHP используется система номинальных типов с сильным поведенческим отношением подтипизации. Отношение подтипизации проверяется во время компиляции, в то время как верификация типов проверяется динамически во время выполнения.

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

Атомарные типы

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

Список базовых типов:

  • Встроенные типы
    • Тип null
    • Скалярные типы:
      • Тип bool
      • Тип int
      • Тип float
      • Тип string
    • Тип array
    • Тип object
    • Тип resource
    • Тип never
    • Тип void
    • Относительные типы классов: self, parent и static
  • Типы значений
    • false
    • true
  • Определяемые пользователем типы (обычно называемые типами классов)
    • Интерфейсы
    • Классы
    • Перечисления
  • Тип callable

Составные типы

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

  • Пересечение классов-типов (интерфейсов и имён классов).
  • Объединение типов.

Пересечение типов

Пересечение типов принимает значения, удовлетворяющие не одному, а нескольким объявлениям типов классов. Отдельные типы, образующие пересечение типов, соединяются символом &. Поэтому пересечение типов, состоящее из типов T, U и V, будет записано как T&U&V.

Объединение типов

Объединение типов принимает значения нескольких различных типов, а не одного. Отдельные типы, образующие объединение типов, соединяются символом |. Поэтому объединение типов, состоящее из типов T, U и V, будет записано как T|U|V. Если один из типов является пересечением типов, то для записи в DNF его нужно заключить в скобки: T|(X&Y).

Псевдонимы типов

PHP поддерживает два псевдонима типов: mixed и iterable, которые соответствуют объединению типов object|resource|array|string|float|int|bool|null и Traversable|array соответственно.

Замечание: PHP не поддерживает определяемые пользователем псевдонимы типов.


NULL

Тип null - это единичный тип PHP, то есть он имеет только одно значение: null.

Неопределённые и unset() переменные преобразуются в значение null.

Синтаксис

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

<?php
$var = NULL;
?>

Приведение к null

Внимание

Данная функциональность объявлена УСТАРЕВШЕЙ, начиная с PHP 7.2.0 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Приведение переменной к null с использованием (unset) $var не удаляет переменную и её значение. Данное выражение только возвращает null

Смотрите также

  • is_null()
  • unset()


Логический тип

У логического типа (bool) только два значения, которые используются для выражения истинностного значения. Он может быть либо true, либо false.

Синтаксис

Для указания bool, используйте константы true или false. Они обе регистронезависимы.

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

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

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

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

// ... потому что следующее имеет тот же самый смысл:
if ($show_separators) {
echo "<hr>\n";
}
?>

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

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

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

  • само значение boolean false
  • integer 0 (ноль)
  • float 0.0 (ноль) и -0.0 (минус ноль)
  • пустая строка "" и строка "0"
  • массив без элементов
  • особый тип NULL (включая неустановленные переменные)
  • внутренние объекты, которые перегружают своё поведение приведения к логическому типу. Например: объекты SimpleXML, созданные из пустых элементов без атрибутов.

Все остальные значения считаются true (включая resource и NAN).

Внимание

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

<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) "0"); // 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)
?>


Целые числа

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

Смотрите также

  • Числа с плавающей точкой
  • Вычисления над числами с произвольной точностью BCMath
  • Вычисления над целыми числами с произвольной точностью (GNU Multiple Precision)

Синтаксис

Целые числа (int) могут быть указаны в десятичной (основание 10), шестнадцатеричной (основание 16), восьмеричной (основание 8) или двоичной (основание 2) системе счисления. Для задания отрицательных целых (int) используют оператор отрицания

Для записи в восьмеричной системе счисления перед числом ставят 0 (ноль). Начиная с PHP 8.1.0, восьмеричной нотации также может предшествовать 0o или 0O. Для записи в шестнадцатеричной системе счисления необходимо поставить перед числом 0x. Для записи в двоичной системе счисления необходимо поставить перед числом 0b

Начиная с PHP 7.4.0, целочисленные литералы могут содержать подчёркивания (_) между цифрами для лучшей читаемости литералов. Эти подчёркивания удаляются сканером PHP.

Пример #1 Целые числа

<?php
$a = 1234; // десятичное число
$a = 0123; // восьмеричное число (эквивалентно 83 в десятичной системе)
$a = 0o123; // восьмеричное число (начиная с PHP 8.1.0)
$a = 0x1A; // шестнадцатеричное число (эквивалентно 26 в десятичной системе)
$a = 0b11111111; // двоичное число (эквивалентно 255 в десятичной системе)
$a = 1_234_567; // десятичное число (с PHP 7.4.0)
?>

Формально, структура целых чисел int принята в PHP 8.1.0 (ранее не допускались восьмеричные префиксы 0o или 0O, а до PHP 7.4.0 не допускалось подчёркивание):

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

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

восьмеричные      : 0[oO]?[0-7]+(_[0-7]+)*

двоичные          : 0[bB][01]+(_[01]+)*

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

Размер типа int зависит от платформы, хотя, как правило, максимальное значение примерно равно 2 миллиардам (это 32-битное знаковое). 64-битные платформы обычно имеют максимальное значение около 9E18. PHP не поддерживает беззнаковые целые числа (int). Размер int может быть определён с помощью константы PHP_INT_SIZE, максимальное значение — с помощью константы PHP_INT_MAX, а с помощью константы PHP_INT_MIN можно определить минимальное значение.

Переполнение целых чисел

Если PHP обнаружил, что число превышает размер типа int, он будет интерпретировать его в качестве float. Аналогично, если результат операции лежит за границами типа int, он будет преобразован во 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 нет оператора целочисленного (int) деления, для этого существует функция intdiv(). Результатом 1/2 будет float 0.5. Если привести значение к int, оно будет округлено вниз, то есть будет отброшена дробная часть числа. Для большего контроля над округлением используют функцию round().

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

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

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

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

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

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

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

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

При преобразовании из float в int число будет округлено вниз. Начиная с PHP 8.1.0, при неявном преобразовании неинтегрального числа с плавающей точкой (float) в целое число (int), которое теряет точность, выдаётся уведомление об устаревании.

<?php

function foo($value): int {
return $value;
}

var_dump(foo(8.1)); // "Deprecated: Implicit conversion from float 8.1 to int loses precision" начиная с PHP 8.1.0
var_dump(foo(8.1)); // 8 до PHP 8.1.0
var_dump(foo(8.0)); // 8 в обоих случаях

var_dump((int)8.1); // 8 в обоих случаях
var_dump(intval(8.1)); // 8 в обоих случаях
?>

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

Замечание:

Значения NaN и Infinity при приведении к int становятся равными нулю, вместо неопределённого значения в зависимости от платформы.

Внимание

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

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

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

Из строк

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

Из NULL

Значение null всегда преобразуется в ноль (0).

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

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

Для других типов поведение преобразования в int не определено. Не нужно полагаться на наблюдаемое ранее поведение, так как оно может измениться без предупреждения.


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

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

<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
$d = 1_234.567; // начиная с PHP 7.4.0
?>

Формально, начиная с PHP 7.4.0 (ранее подчёркивание не разрешалось):

LNUM          [0-9]+(_[0-9]+)*
DNUM          ({LNUM}?"."{LNUM}) | ({LNUM}"."{LNUM}?)
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?" ("Почему мои числа не складываются?")

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

Из строк

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

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

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

Замечание:

Поскольку определённые типы имеют неопределённое поведение при преобразовании в целое число (int), то же самое происходит и при преобразовании в число с плавающей точкой (float).

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

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

Для сравнения чисел с плавающей точкой используется верхняя граница относительной ошибки при округлении. Эта величина называется машинной эпсилон или единицей округления (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. Смотрите также подробности реализации строкового типа.

Замечание: В 32-битных системах и в более ранних версиях PHP строки (string) не могут быть более 2 ГБ (2 147 483 647 байтов).

Синтаксис

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

  • одинарными кавычками
  • двойными кавычками
  • heredoc-синтаксисом
  • nowdoc-синтаксисом

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

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

Чтобы записать внутри строки буквальную одинарную кавычку, её необходимо заэкранировать обратным слешем (\). Когда нужно написать сам обратный слеш, его дублируют (\\). Во всех остальных случаях обратный слеш будет интерпретирован как буквальный обратный слеш: то есть последовательности вроде \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)
\e | escape-знак (ESC или 0x1B (27) в ASCII)
\f | подача страницы (FF или 0x0C (12) в ASCII)
\\ | обратная косая черта
\$ | знак доллара
\" | двойная кавычка
\[0-7]{1,3} | Восьмеричная запись: символ, код которого записан в восьмеричной нотации (т. е. "\101" === "A"), т. е. в виде последовательности символов, соответствующей регулярному выражению [0-7]{1,3}. В ситуации целочисленного переполнения (если символ не поместится в один байт), старшие биты будут отброшены (т. е. "\400" === "\000")
\x[0-9A-Fa-f]{1,2} | Шестнадцатеричная система счисления: символ, код которого записан в шестнадцатеричной нотации (т. е. "\x41" === "A"), т. е. в виде последовательности символов, соответствующей регулярному выражению [0-9A-Fa-f]{1,2}
\u{[0-9A-Fa-f]+} | Стандарт Unicode: символ, код которого записан в нотации кодовых точек Unicode, т. е. в виде последовательности символов, соответствующей регулярному выражению [0-9A-Fa-f]+, которые будут отображены как строка в кодировке UTF-8. Последовательность необходимо заключать в фигурные скобки. Например: "\u{41}" === "A"

Как и в строке, заключённой в одинарные кавычки, экранирование любого другого символа выведет также и сам символ экранирования.

Наиболее важное свойство строк в двойных кавычках состоит в том, что имена переменных в них будут распакованы и обработаны. Подробнее об этом рассказано в разделе «Обработка переменных».

Heredoc

Третий способ определения строк — это использование heredoc-синтаксиса: <<<. После оператора необходимо указать идентификатор, а затем перевод строки. После чего идёт сама строка, за которой следует тот же идентификатор, который закрывает вставку.

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

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

Пример #1 Базовый пример использования Heredoc в PHP 7.3.0

<?php
// без отступов
echo <<<END
 a
b
c
\n
END;

// 4 отступа
echo <<<END
 a
b
c
 END;

Результат выполнения данного примера в PHP 7.3:

      a
     b
    c

  a
 b
c

Если закрывающий идентификатор смещён дальше, чем любая строка тела, будет выброшено ParseError:

Пример #2 Закрывающий идентификатор не должен иметь отступ больше, чем любая строка тела

<?php
echo <<<END
 a
b
c
 END;

Результат выполнения данного примера в PHP 7.3:

PHP Parse error:  Invalid body indentation level (expecting an indentation level of at least 3) in example.php on line 4

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

Пример #3 Другой отступ для закрывающего идентификатора тела (пробелов)

<?php
// Весь следующий код не работает.

// Другой отступ для закрывающего идентификатора (табов) тела (пробелов)
{
echo <<<END
 a
 END;
}

// смешивание пробелов и табуляции в теле
{
echo <<<END
 a
 END;
}

// смешивание пробелов и табуляции в закрывающем идентификаторе
{
echo <<<END
 a
 END;
}

Результат выполнения данного примера в PHP 7.3:

PHP Parse error:  Invalid indentation - tabs and spaces cannot be mixed in example.php line 8

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

Пример #4 Продолжение выражения после закрывающего идентификатора

<?php
$values = [<<<END
a
b
c
END, 'd e f'];
var_dump($values);

Результат выполнения данного примера в PHP 7.3:

array(2) {
  [0] =>
  string(11) "a
  b
    c"
  [1] =>
  string(5) "d e f"
}
Внимание

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

Пример #5 Закрывающий идентификатор в теле текста имеет тенденцию вызывать ParseError

<?php
$values = [<<<END
a
b
END ING
END, 'd e f'];

Результат выполнения данного примера в PHP 7.3:

PHP Parse error:  syntax error, unexpected identifier "ING", expecting "]" in example.php on line 6

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

Внимание

До PHP 7.3.0 очень важно отметить, что строка с закрывающим идентификатором не должна содержать других символов, за исключением точки с запятой (;). Это означает, что идентификатор не должен вводиться с отступом и что не может быть никаких пробелов или знаков табуляции до или после точки с запятой. Важно также понимать, что первым символом перед закрывающим идентификатором должен быть символ новой строки, определённый в вашей операционной системе. Например, в UNIX системах, включая macOS, это \n. После закрывающего идентификатора также сразу должна начинаться новая строка.

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

Пример #6 Пример неправильного синтаксиса, до PHP 7.3.0

<?php
class foo {
public $bar = <<<EOT
bar
 EOT;
// отступ перед закрывающим идентификатором недопустим
}
?>

Пример #7 Пример правильного синтаксиса, даже до PHP 7.3.0

<?php
class foo {
public $bar = <<<EOT
bar
EOT;
}
?>

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

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

Пример #8 Пример определения 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-синтаксис для передачи данных через аргументы функции:

Пример #9 Пример применения heredoc в аргументах

<?php
var_dump(array(<<<EOD
foobar!
EOD
));
?>

Можно инициализировать статические переменные и свойства/константы класса с помощью синтаксиса heredoc:

Пример #10 Инциализации статических переменных при помощи heredoc

<?php
// Статические переменные
function foo()
{
static $bar = <<<LABEL
Здесь ничего нет...
LABEL;
}

// Константы/свойства класса
class foo
{
const BAR = <<<FOOBAR
Пример использования константы
FOOBAR;

public $baz = <<<FOOBAR
Пример использования поля
FOOBAR;
}
?>

Можно также окружать идентификатор heredoc двойными кавычками:

Пример #11 Двойные кавычки в heredoc

<?php
echo <<<"FOOBAR"
Привет, мир!
FOOBAR;
?>

Nowdoc

Nowdoc — это то же самое для строк в одинарных кавычках, что и heredoc для строк в двойных кавычках. Nowdoc похож на heredoc, но внутри него не осуществляется никаких подстановок. Эта конструкция идеальна для внедрения PHP-кода или других больших блоков текста без необходимости его экранирования. В этом он немного похож на SGML-конструкцию <![CDATA[ ]]> тем, что объявляет блок текста, не предназначенный для обработки.

Nowdoc указывается той же последовательностью <<<, что и в heredoc, но последующий за ней идентификатор заключается в одинарные кавычки, например, <<<'EOT'. Все условия, действующие для идентификаторов heredoc, также действительны и для nowdoc, особенно те, что относятся к закрывающему идентификатору.

Пример #12 Пример использования nowdoc

<?php
echo <<<'EOD'
Пример текста,
занимающего несколько строк,
с помощью синтаксиса nowdoc. Обратные слеши всегда обрабатываются буквально,
например, \\ и \'.
EOD;

Результат выполнения данного примера:

Пример текста,
занимающего несколько строк,
с помощью синтаксиса nowdoc. Обратные слеши всегда обрабатываются буквально,
например, \\ и \'.

Пример #13 Nowdoc с переменными в строках с двойными кавычками

<?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

Пример #14 Пример использования статичных данных

<?php
class foo {
public $bar = <<<'EOT'
bar
EOT;
}
?>

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

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

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

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

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

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

<?php
$juice = "apple";

echo "He drank some $juice juice.".PHP_EOL;

// Непредусмотрительно. «s» — корректный символ для имени переменной, поэтому в этом примере он относится к переменной $juces, но не $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). В индексах массива закрывающая квадратная скобка (]) обозначает конец определения индекса. Для свойств объекта применяются те же правила, что и для простых переменных.

Пример #15 Пример простого синтаксиса

<?php
$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 добавлена поддержка отрицательных числовых индексов.

Пример #16 Отрицательные числовые индексы

<?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()}";

// Не работает, выводит: C:\folder\{fantastic}.txt
echo "C:\folder\{$great}.txt"

// Работает, выводит: C:\folder\fantastic.txt
echo "C:\\folder\\{$great}.txt"
?>

С помощью этого синтаксиса также возможен доступ к свойствам объекта внутри строк.

<?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
// Показываем все ошибки
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 при записи (оставляя строку без изменений).

Замечание: До PHP 8.0.0 для доступа к символу в строке (string) также можно было использовать фигурные скобки, например, $str{42}, для той же цели. Синтаксис фигурных скобок устарел в PHP 7.4.0 и больше не поддерживается в PHP 8.0.0.

Внимание

Попытка записи в смещение за границами строки дополнит строку пробелами до этого смещения. Нецелые типы будет преобразованы в целые. Неверный тип смещения вызовет ошибку уровня E_WARNING. Используется только первый символ присваемой строки. Начиная с PHP 7.1.0, присвоение пустой строки вызовет фатальную ошибку. Ранее в таком случае присваивался нулевой байт (NULL).

Внимание

Внутри PHP строки представленны массивами байтов. Как результат, доступ или изменение строки по смещению небезопасно с точки зрения многобайтной кодировки, и должно выполняться только со строками в однобайтных кодировках, таких как, например, ISO-8859-1.

Замечание: Начиная с PHP 7.1.0, применение оператора пустого индекса с пустой строкой вызывает фатальную ошибку. Ранее в подобном случае пустая строка преобразовывалась в массив без предупреждения.

Пример #17 Несколько примеров строк

<?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';

?>

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

Пример #18 Пример недопустимого смещения строки

<?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']));
?>

Результат выполнения данного примера:

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 7.4. Функционал удалён в PHP 8.0.

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

Строки можно объединять, применяя оператор '.' (точка). Обратите внимание, оператор сложения '+' здесь не работает. Подробнее рассказно в разделе «Строковые операторы».

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

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

Также существуют функции для работы с URL, и функции шифрования/дешифрования строк (Sodium и Hash).

Наконец, смотрите также функции символьных типов.

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

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

Значение bool true преобразуется в строку "1", а значение false преобразуется в "" (пустую строку). Это делает возможным преобразование значения в обе стороны — из булева типа в строковый и наоборот.

Целое число (int) или число с плавающей точкой (float) преобразуется в строку, представленную числом, состоящим из его цифр (включая показатель степени для чисел с плавающей точкой). Числа с плавающей точкой можно преобразовать путём экспоненциального представления (4.1E+6).

Замечание:

Начиная с PHP 8.0.0, символом десятичной точки всегда является точка ("."). До PHP 8.0.0 символ десятичной точки определялся в локали скрипта (категория LC_NUMERIC). Смотрите функцию setlocale()

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

Для преобразования переменной типа "Object" в тип string существует магический метод __toString.

Тип ресурс (resource) всегда преобразуется в строку (string) вида "Resource id #1", где 1 — это номер ресурса, который PHP назначает resource во время выполнения. И хотя она всегда будет уникальной для текущего запуска скрипта (т. е. веб-запроса или CLI-процесса) и не будет использована повторно для другого ресурса, не стоит точно полагаться на эту строку, потому что она может измениться в будущем. Тип ресурса можно получить вызовом функции get_resource_type().

Значение null всегда преобразуется в пустую строку.

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

Бо?льшая часть значений в PHP может быть преобразована в строку для постоянного хранения. Этот метод преобразования называется сериализацией. Серилиазовать значения можно функцией serialize().

Подробности реализации строкового типа

Строковый тип (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()), но оперируют побайтово.
  • Наконец, есть функции, подразумевающие, что строка использует определённую кодировку, обычно UTF-8. Сюда попадают большинство функций из модулей intl и PCRE (в последнем случае, только при указании модификатора u).

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


Числовые строки

В PHP, строка (string) считается числовой, если её можно интерпретировать как целое (int) число или как число с плавающей точкой (float).

Формально с PHP 8.0.0:

WHITESPACES      \s*
LNUM             [0-9]+
DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})

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

Замечание:

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

<?php
var_dump("0D1" == "000"); // false, "0D1" не является научной нотацией
var_dump("0E1" == "000"); // true, "0E1" - это 0 * (10 ^ 1) или 0
var_dump("2E1" == "020"); // true, "2E1" - это 2 * (10 ^ 1) или 20
?>

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

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

  1. Если строка числовая, представляет целое число и не превышает максимально допустимого значения для типа int (определённого в PHP_INT_MAX), то она приводится к типу int. Иначе она приводится к типу float.
  2. Если в заданном контексте дозволительно использовать префиксную числовую строку, то, если начало строки представляет целое число и не превышает максимально допустимого значения для типа int (определённого в PHP_INT_MAX), то она приводится к типу int. Иначе она приводится к типу float. Также, в этом случае, выдаётся ошибка уровня E_WARNING.
  3. Если строка не числовая - выбрасывается исключение TypeError.

Поведение до PHP 8.0.0

До PHP 8.0.0, строка считалась числовой только в случае, если она начиналась с пробельных символов. Если она завершалась пробельными символами - она считалась префиксной числовой.

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

  • Использование префиксной числовой строки вызывало ошибку уровня E_NOTICE, а не E_WARNING.
  • Если строка не являлась числовой, вызывалась ошибка уровня E_WARNING, а сама строка приводилась к числу 0.
До PHP 7.1.0 не вызывалась ошибка уровня ни E_NOTICE, ни E_WARNING.

<?php
$foo = 1 + "10.5"; // $foo считается за число с плавающей точкой (11.5)
$foo = 1 + "-1.3e3"; // $foo считается за число с плавающей точкой (-1299)
$foo = 1 + "bob-1.3e3"; // TypeError начиная с PHP 8.0.0. В более ранних версиях $foo считалось за целое число (1)
$foo = 1 + "bob3"; // TypeError начиная с PHP 8.0.0, В более ранних версиях $foo считалось за целое число (1)
$foo = 1 + "10 Small Pigs"; // $foo - целое (11). В PHP 8.0.0 создаётся ошибка уровня E_WARNING, а в более ранних версиях уровня E_NOTICE
$foo = 4 + "10.2 Little Piggies"; // $foo - число с плавающей точкой (14.2). В PHP 8.0.0 создаётся ошибка уровня E_WARNING, а в более ранних версиях уровня E_NOTICE
$foo = "10.0 pigs " + 1; // $foo - число с плавающей точкой (11). В PHP 8.0.0 создаётся ошибка уровня E_WARNING, а в более ранних версиях уровня E_NOTICE
$foo = "10.0 pigs " + 1.0; // $foo - число с плавающей точкой (11). В PHP 8.0.0 создаётся ошибка уровня E_WARNING, а в более ранних версиях уровня E_NOTICE
?>


Массивы

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

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

Синтаксис

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

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

array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)

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

Замечание:

Существует короткий синтаксис массива, который заменяет array() на [].

Пример #1 Простой массив

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

// Использование синтаксиса короткого массива
$array = [
"foo" => "bar",
"bar" => "foo",
];
?>

key может быть либо типа int, либо типа string. value может быть любого типа.

Дополнительно с ключом key будут сделаны следующие преобразования:

  • Строки (string), содержащие целое число (int) (исключая случаи, когда число предваряется знаком +) будут преобразованы к типу int. Например, ключ со значением "8" будет в действительности сохранён со значением 8. С другой стороны, значение "08" не будет преобразовано, так как оно не является корректным десятичным целым.
  • Числа с плавающей точкой (float) также будут преобразованы к типу int, то есть дробная часть будет отброшена. Например, ключ со значением 8.7 будет в действительности сохранён со значением 8.
  • Тип bool также преобразовываются к типу int. Например, ключ со значением 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 могут содержать ключи типов int и string одновременно, так как PHP не делает различия между индексированными и ассоциативными массивами.

Пример #3 Смешанные ключи типов int и 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 будет использовать предыдущее наибольшее значение ключа типа int, увеличенное на 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.

Пример #6 Расширенный пример преобразования типов и перезаписи элементов

<?php
$array = array(
1 => 'a',
'1' => 'b', // значение "b" перезапишет значение "a"
1.5 => 'c', // значение "c" перезапишет значение "b"
-1 => 'd',
'01' => 'e', // поскольку это не целочисленная строка, она НЕ перезапишет ключ для 1
'1.5' => 'f', // поскольку это не целочисленная строка, она НЕ перезапишет ключ для 1
true => 'g', // значение "g" перезапишет значение "c"
false => 'h',
'' => 'i',
null => 'j', // значение "j" перезапишет значение "i"
'k', // значение "k" присваивается ключу 2. Потому что самый большой целочисленный ключ до этого был 1
2 => 'l', // значение "l" перезапишет значение "k"
);

var_dump($array);
?>

Результат выполнения данного примера:

array(7) {
  [1]=>
  string(1) "g"
  [-1]=>
  string(1) "d"
  ["01"]=>
  string(1) "e"
  ["1.5"]=>
  string(1) "f"
  [0]=>
  string(1) "h"
  [""]=>
  string(1) "j"
  [2]=>
  string(1) "l"
}

Этот пример включает все вариации преобразования ключей и перезаписи элементов

Доступ к элементам массива с помощью квадратных скобок

Доступ к элементам массива может быть осуществлён с помощью синтаксиса array[key].

Пример #7 Доступ к элементам массива

<?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"

Замечание:

До PHP 8.0.0 квадратные и фигурные скобки могли использоваться взаимозаменяемо для доступа к элементам массива (например, в примере выше $array[42] и $array{42} делали то же самое). Синтаксис фигурных скобок устарел в PHP 7.4.0 и больше не поддерживается в PHP 8.0.0.

Пример #8 Разыменование массива

<?php
function getArray() {
return array(1, 2, 3);
}

$secondElement = getArray()[1];
?>

Замечание:

Попытка доступа к неопределённому ключу в массиве - это то же самое, что и попытка доступа к любой другой неопределённой переменной: будет сгенерирована ошибка уровня E_WARNING (ошибка уровня E_NOTICE до PHP 8.0.0), и результат будет null.

Замечание:

Попытка разыменовать не массив, а скалярное значение, не являющееся строкой (string), отдаст null, в то время как разыменовывание строки (string) трактует её как индексированный массив. При такой попытке до PHP 7.4.0 не выдаётся сообщение об ошибке. Начиная с PHP 7.4.0, выдаётся ошибка E_NOTICE; с PHP 8.0.0 выдаётся ошибка E_WARNING.

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

Существующий массив может быть изменён путём явной установкой значений в нем.

Это выполняется присвоением значений массиву (array) с указанием в скобках ключа. Кроме того, ключ можно опустить, в результате получится пустая пара скобок ([]).

    $arr[key] = value;
    $arr[] = value;
    // key может быть int или string
    // value может быть любым значением любого типа

Если массив $arr ещё не существует или для него задано значение null или false, он будет создан. Таким образом, это ещё один способ определить массив array. Однако такой способ применять не рекомендуется, так как если переменная $arr уже содержит некоторое значение (например, значение типа string из переменной запроса), то это значение останется на месте и [] может на самом деле означать доступ к символу в строке. Лучше инициализировать переменную путём явного присваивания значения.

Замечание: Начиная с PHP 7.1.0, используя в оператор "пустой индекс" на строке, приведёт к фатальной ошибке. Ранее, в этом случае, строка молча преобразовывалась в массив.

Замечание: Начиная с PHP 8.1.0, создание нового массива с помощью значения false устарело. Создание нового массива из null и неопределённого значения по-прежнему разрешено.

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

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

$arr[] = 56; // В этом месте скрипта это
// то же самое, что и $arr[13] = 56;

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

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

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

Замечание:

Как уже говорилось выше, если ключ не был указан, то будет взят максимальный из существующих целочисленных (int) индексов, и новым ключом будет это максимальное значение (в крайнем случае 0) плюс 1. Если целочисленных (int) индексов ещё нет, то ключом будет 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
)

Деструктуризация массива

Массивы могут быть деструктурированы с помощью языковых конструкций [] (начиная с PHP 7.1.0) или list(). Эти конструкции могут быть использованы для деструктуризации массива на отдельные переменные.

<?php
$source_array = ['foo', 'bar', 'baz'];
[$foo, $bar, $baz] = $source_array;
echo $foo; // выведет "foo"
echo $bar; // выведет "bar"
echo $baz; // выведет "baz"
?>

Деструктуризация массива может быть использована в конструкции foreach для деструктуризации многомерного массива во время итерации по нему.

<?php
$source_array = [
[1, 'John'],
[2, 'Jane'],
];
foreach ($source_array as [$id, $name]) {
// логика работы с $id и $name
}
?>

Элементы массива будут игнорироваться, если переменная не указана. Деструктуризация массива всегда начинается с индекса 0.

<?php
$source_array = ['foo', 'bar', 'baz'];

// Присваивание элементу с индексом 2 переменной $baz
[, , $baz] = $source_array;

echo $baz; // выведет "baz"
?>

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

<?php
$source_array = ['foo' => 1, 'bar' => 2, 'baz' => 3];

// Присваивание элементу с индексом 'baz' переменной $three
['baz' => $three] = $source_array;

echo $three; // выведет 3

$source_array = ['foo', 'bar', 'baz'];

// Присваивание элементу с индексом 2 переменной $baz
[2 => $baz] = $source_array;

echo $baz; // выведет "baz"
?>

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

<?php
$a = 1;
$b = 2;
[$b, $a] = [$a, $b];
echo $a; // выведет 2
echo $b; // выведет 1
?>

Замечание:

Оператор ... не поддерживается в присваиваниях.

Замечание:

Попытка получить доступ к ключу массива, который не был определён, аналогична обращению к любой другой неопределённой переменной: будет выдано сообщение об ошибке уровня E_WARNING (ошибка уровня E_NOTICE до PHP 8.0.0), а результатом будет null.

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

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

Замечание:

Функция 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' и использует её.

Внимание

Резервный вариант для обработки неопределённой константы как пустой строки вызывает ошибку уровня E_NOTICE. Начиная с PHP 7.2.0 поведение объявлено устаревшим и вызывает ошибку уровня E_WARNING. Начиная с PHP 8.0.0, удалено и выбрасывает исключение Error.

Замечание: Это не означает, что нужно всегда заключать ключ в кавычки. Нет необходимости заключать в кавычки константы или переменные, поскольку это помешает 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]" является верной записью. Более подробно почему - смотрите вышеприведённые примеры, а также раздел по обработке переменных в строках.

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

Для любого из типов int, float, string, bool и resource, преобразование значения в массив даёт результатом массив с одним элементом (с индексом 0), являющимся скалярным значением, с которого вы начали. Другими словами, (array)$scalarValue - это точно то же самое, что и array($scalarValue).

Если вы преобразуете в массив объект (object), вы получите в качестве элементов массива свойства (переменные-члены) этого объекта. Ключами будут имена переменных-членов, с некоторыми примечательными исключениями: целочисленные свойства станут недоступны; к закрытым полям класса (private) спереди будет дописано имя класса; к защищённым полям класса (protected) спереди будет добавлен символ '*'. Эти добавленные значения с обоих сторон также имеют NUL байты. Неинициализированные типизированные свойства автоматически отбрасываются.

<?php
class A {
private $B;
protected $C;
public $D;
function __construct()
{
$this->{1} = null;
}
}
var_export((array) new A());
?>

Результат выполнения данного примера:

array (
  '' . "\0" . 'A' . "\0" . 'B' => NULL,
  '' . "\0" . '*' . "\0" . 'C' => NULL,
  'D' => NULL,
  1 => NULL,
)

Это может вызвать несколько неожиданное поведение:

<?php
class A {
private $A; // Это станет '\0A\0A'
}
class B extends A {
private $A; // Это станет '\0B\0A'
public $AA; // Это станет 'AA'
}
var_dump((array) new B());
?>

Результат выполнения данного примера:

array(3) {
  ["BA"]=>
  NULL
  ["AA"]=>
  NULL
  ["AA"]=>
  NULL
}

Вышеприведённый код покажет 2 ключа с именем 'AA', хотя один из них на самом деле имеет имя '\0A\0A'.

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

Сравнение

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

Распаковка массива

Массив с префиксом ... будет распакован во время определения массива. Только массивы и объекты, которые реализуют интерфейс Traversable, могут быть распакованы. Распаковка массива с помощью ... доступна, начиная с PHP 7.4.0.

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

Пример #9 Простая распаковка массива

<?php
// Использование короткого синтаксиса массива.
// Также работает с синтаксисом array().
$arr1 = [1, 2, 3];
$arr2 = [...$arr1]; // [1, 2, 3]
$arr3 = [0, ...$arr1]; // [0, 1, 2, 3]
$arr4 = [...$arr1, ...$arr2, 111]; // [1, 2, 3, 1, 2, 3, 111]
$arr5 = [...$arr1, ...$arr1]; // [1, 2, 3, 1, 2, 3]
function getArr() {
return ['a', 'b'];
}
$arr6 = [...getArr(), 'c' => 'd']; // ['a', 'b', 'c' => 'd']
?>

Распаковка массива с помощью оператора ... следует семантике функции array_merge(). То есть более поздние строковые ключи перезаписывают более ранние, а целочисленные ключи перенумеровываются:

Пример #10 Распаковка массива с дублирующим ключом

<?php
// строковый ключ
$arr1 = ["a" => 1];
$arr2 = ["a" => 2];
$arr3 = ["a" => 0, ...$arr1, ...$arr2];
var_dump($arr3); // ["a" => 2]
// целочисленный ключ
$arr4 = [1, 2, 3];
$arr5 = [4, 5, 6];
$arr6 = [...$arr4, ...$arr5];
var_dump($arr6); // [1, 2, 3, 4, 5, 6]
// Который [0 => 1, 1 => 2, 2 => 3, 3 => 4, 4 => 5, 5 => 6]
// где исходные целочисленные ключи не были сохранены.
?>

Замечание:

Ключи, которые не являются ни целыми числами, ни строками, вызывают ошибку TypeError. Такие ключи могут быть сгенерированы только объектом Traversable.

Замечание:

До PHP 8.1 распаковка массива со строковым ключом не поддерживалась:

<?php
$arr1 = [1, 2, 3];
$arr2 = ['a' => 4];
$arr3 = [...$arr1, ...$arr2];
// Ошибка: невозможно распаковать массив со строковыми ключами в example.php:5
$arr4 = [1, 2, 3];
$arr5 = [4, 5];
$arr6 = [...$arr4, ...$arr5]; // работает. [1, 2, 3, 4, 5]
?>

Примеры

Тип массив в 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').
?>

Пример #11 Использование 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();
?>

Пример #12 Коллекция

<?php
$colors = array('red', 'blue', 'green', 'yellow');

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

?>

Результат выполнения данного примера:

Вам нравится red?
Вам нравится blue?
Вам нравится green?
Вам нравится yellow?

Изменение значений массива напрямую возможно путём передачи их по ссылке.

Пример #13 Изменение элемента в цикле

<?php
foreach ($colors as &$color) {
$color = strtoupper($color);
}
unset($color); /* это нужно для того, чтобы последующие записи в
$color не меняли последний элемент массива */

print_r($colors);
?>

Результат выполнения данного примера:

Array
(
    [0] => RED
    [1] => BLUE
    [2] => GREEN
    [3] => YELLOW
)

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

Пример #14 Индекс, начинающийся с единицы

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

Результат выполнения данного примера:

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

Пример #15 Заполнение массива

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

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

Пример #16 Сортировка массива

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

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

Пример #17 Рекурсивные и многомерные массивы

<?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 одинаковы
?>


Объекты

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

Для создания нового объекта, используйте выражение 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(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; // выведет 'привет'
?>


Перечисления

(PHP 8 >= 8.1.0)

Основы перечислений

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

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

function do_stuff(Suit $s)
{
// ...
}

do_stuff(Suit::Spades);
?>

Полное описание смотрите в главе о перечислениях.

Casting

Если перечисление (enum) преобразуется в объект (object), оно не изменяется. Если перечисление (enum) преобразуется в массив (array), то создаётся массив с одним ключом name (для простых перечислений) или массив с двумя ключами name и value (для типизированных перечислений). Все остальные приведения типов приведут к ошибке.


Ресурс

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

Смотрите также описание функции get_resource_type().

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

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

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

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

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


Функции обратного вызова (callback-функции)

Callback-функции могут быть обозначены объявлением типа callable.

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

Передача

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

Метод созданного объекта (object) передаётся как массив, содержащий объект по индексу 0 и имя метода по индексу 1. Доступ к закрытым и защищённым методам разрешён изнутри класса.

Статические методы класса также могут быть вызваны без создания экземпляра объекта класса путём передачи имени класса вместо объекта в элементе массива с индексом 0 или выполнения 'ClassName::methodName'.

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

Замечание:

Начиная с PHP 8.1.0, у Callback-функций как объектов первого класса та же семантика, что и у этого метода.

Как правило, любой объект, реализующий __invoke(), также может быть передан в параметр 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: Вызов статического метода класса
call_user_func('MyClass::myCallbackMethod');

// Тип 5: Вызов относительного статического метода
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, устарело, начиная с PHP 8.2.0

// Тип 6: Объекты, реализующие __invoke, могут быть использованы как callback
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-функции.


Mixed

Тип mixed принимает любое значение. Он эквивалентен объединённому типу object|resource|array|string|float|int|bool|null. Доступно, начиная с PHP 8.0.0.

mixed - это, говоря языком теории типов, высший тип. Это означает, что все остальные типы являются его подтипами.


Void

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

Замечание: Даже если тип возвращаемого значения функции void, она всё равно вернёт значение и это значение всегда будет null.


Never

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

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


Относительные типы классов

Эти объявления типов можно использовать только внутри классов.

self

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

parent

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

static

static - это тип только для возвращаемого значения, который требует, чтобы возвращаемое значение было instanceof того же класса, что и класс, в котором вызывается метод. Доступен, начиная с PHP 8.0.0.


Value types

Value types are those which not only check the type of a value but also the value itself. PHP has support for two value types: false as of PHP 8.0.0, and true as of PHP 8.2.0.

Внимание

Prior to PHP 8.2.0 the false type could only be used as part of a union type.

Замечание: It is not possible to define custom value types. Consider using an enumerations instead.


Итерируемые

Iterable - это встроенный во время компиляции псевдотип для array|Traversable. С момента своего появления в PHP 7.1.0 и до PHP 8.2.0, тип iterable был встроенным псевдо-типом, который действовал как вышеупомянутый псевдотип и мог быть использован в качестве объявления типа. Тип iterable можно использовать в foreach и с конструкцией yield from внутри генератора.

Замечание:

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

Пример #1 Пример использования типа возвращаемого значения iterable

<?php

function gen(): iterable {
yield 1;
yield 2;
yield 3;
}

?>


Объявление типов

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

Все типы, которые поддерживает PHP, за исключением ресурсов (resource), могут быть использованы в объявлении типов в пользовательском коде. На этой странице приведён журнал изменений доступности различных типов и документация по их использованию в объявлениях типов.

Замечание:

Когда класс реализует метод интерфейса или повторно реализует метод, который уже был определён родительским классом, он должен быть совместим с вышеупомянутым определением. Метод является совместимым, если он следует правилам вариантности.

Список изменений

Версия | Описание
8.3.0 | Добавлена поддержка типизации констант классов, интерфейсов, трейтов и перечислений.
8.2.0 | Добавлена поддержка типов DNF.
8.2.0 | Добавлена поддержка типа true.
8.2.0 | Типы null и false теперь можно использовать автономно.
8.1.0 | Добавлена поддержка пересечений типов.
8.1.0 | Возврат по ссылке из функции с типом возвращаемого значения void устарел.
8.1.0 | Добавлена поддержка типа возвращаемого значения never.
8.0.0 | Добавлена поддержка типа возвращаемого значения mixed.
8.0.0 | Добавлена поддержка типа возвращаемого значения static.
8.0.0 | Добавлена поддержка объединения типов.
7.4.0 | Добавлена поддержка типизации свойств классов.
7.2.0 | Добавлена поддержка типа возвращаемого значения object.
7.1.0 | Добавлена поддержка типа возвращаемого значения iterable.
7.1.0 | Добавлена поддержка типа возвращаемого значения void.
7.1.0 | Добавлена поддержка типа возвращаемого значения nullable.

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

У атомарных типов прямолинейное поведение с некоторыми незначительными оговорками, которые описаны в этом разделе.

Скалярные типы

Внимание

Псевдонимы имён для скалярных типов (bool, int, float, string) не поддерживаются. Вместо этого они рассматриваются как имена классов или интерфейсов. К примеру, при использовании в качестве типа boolean, ожидается, что значение представляет собой instanceof класса или интерфейса boolean, а не значение типа bool:

<?php
function test(boolean $param) {}
test(true);
?>

Результат выполнения данного примера в PHP 8:

Warning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2

Fatal error: Uncaught TypeError: test(): Argument #1 ($param) must be of type boolean, bool given, called in - on line 3 and defined in -:2
Stack trace:
#0 -(3): test(true)
#1 {main}
  thrown in - on line 2

void

Замечание:

Возврат по ссылке из функции void устарел начиная с PHP 8.1.0, поскольку такая функция противоречива. Ранее при её вызове выдавалась ошибка уровня E_NOTICE: Только ссылки на переменные должны возвращаться по ссылке.

<?php
function &test(): void {}
?>

Тип Callable

Этот тип не может использоваться в качестве объявления типа свойства класса.

Замечание: Невозможно указать сигнатуру функции.

Объявление типов в параметрах передачи по ссылкам

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

Пример #1 Типизированные параметры, передаваемые по ссылке

<?php
function array_baz(array &$param)
{
$param = 1;
}
$var = [];
array_baz($var);
var_dump($var);
array_baz($var);
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)

Fatal error: Uncaught TypeError: array_baz(): Argument #1 ($param) must be of type array, int given, called in - on line 9 and defined in -:2
Stack trace:
#0 -(9): array_baz(1)
#1 {main}
  thrown in - on line 2

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

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

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

До PHP 8.2.0 и появления типов DNF было невозможно комбинировать пересечение типов с объединением типов.

Объединение типов

Внимание

Невозможно объединить два типа false и true с помощью объединения типов. Вместо этого используйте bool.

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

До PHP 8.2.0, поскольку false и null не могли использоваться как отдельные типы, объединение типов, состоящее только из этих типов, было недопустимо. К ним относятся следующие типы: false, false|null и ?false.

Синтаксический сахар типа Nullable

Объявление одного базового типа может быть помечено как nullable путём префиксации типа вопросительным знаком (?). Таким образом, ?T и T|null идентичны.

Замечание: Этот синтаксис поддерживается начиная с PHP 7.1.0 и предшествует поддержке объединения типов.

Замечание:

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

Пример #2 Старый способ указания nullable аргументов

<?php
class C {}

function f(C $c = null) {
var_dump($c);
}

f(new C);
f(null);
?>

Результат выполнения данного примера:

object(C)#1 (0) {
}
NULL

Дублирующие и избыточные типы

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

  • Каждый разрешённый тип имени может встречаться только один раз. Такие типы, как int|string|INT или Countable&Traversable&COUNTABLE приведут к ошибке.
  • Использование типа mixed приводит к ошибке.
  • Для объединения типов:
    • Если используется тип bool, то false или true не могут быть использованы дополнительно.
    • Если используется тип object, типы классов не могут быть использованы дополнительно.
    • Если используется тип iterable, то array и Traversable не могут быть использованы дополнительно.
  • Для пересечения типов:
    • Использование типа, который не является типом класса, приводит к ошибке.
    • Использование self, parent или static приведёт к ошибке.
  • Для DNF типов:
    • Если используется более общий тип, то более ограничительный тип является избыточным.
    • Использование двух одинаковых пересечений типов.

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

Например, если A и B являются псевдонимами классов, то A|B остаётся корректным объединением типов, даже если его можно свести либо к A, либо к B. Аналогично, если класс B extends A {}, то A|B также является корректным объединением типов, даже если его можно свести к просто A.

<?php
function foo(): int|INT {} // Запрещено
function foo(): bool|false {} // Запрещено
function foo(): int&Traversable {} // Запрещено
function foo(): self&Traversable {} // Запрещено

use A as B;
function foo(): A|B {} // Запрещено ("use" является частью разрешения имён)
function foo(): A&B {} // Запрещено ("use" является частью разрешения имён)

class_alias('X', 'Y');
function foo(): X|Y {} // Разрешено (избыточность известна только во время выполнения)
function foo(): X&Y {} // Разрешено (избыточность известна только во время выполнения)
?>

Примеры

Пример #3 Пример объявления типа класса

<?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);
?>

Результат выполнения данного примера в PHP 8:

C
D

Fatal error: Uncaught TypeError: f(): Argument #1 ($c) must be of type C, E given, called in /in/gLonb on line 14 and defined in /in/gLonb:8
Stack trace:
#0 -(14): f(Object(E))
#1 {main}
  thrown in - on line 8

Пример #4 Пример объявления типа интерфейса

<?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);
?>

Результат выполнения данного примера в PHP 8:

C

Fatal error: Uncaught TypeError: f(): Argument #1 ($i) must be of type I, 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

Пример #5 Пример объявления типа возвращаемого значения

<?php
function sum($a, $b): float {
return $a + $b;
}

// Обратите внимание, что будет возвращено значение float.
var_dump(sum(1, 2));
?>

Результат выполнения данного примера:

float(3)

Пример #6 Возвращение объекта

<?php
class C {}

function getC(): C {
return new C;
}

var_dump(getC());
?>

Результат выполнения данного примера:

object(C)#1 (0) {
}

Пример #7 Объявление аргумента с типом Nullable

<?php
class C {}

function f(?C $c) {
var_dump($c);
}

f(new C);
f(null);
?>

Результат выполнения данного примера:

object(C)#1 (0) {
}
NULL

Пример #8 Объявление типа возвращаемого значения Nullable

<?php
function get_item(): ?string {
if (isset($_GET['item'])) {
return $_GET['item'];
} else {
return null;
}
}
?>

Пример #9 Объявление типа свойства класса

<?php
class User {
public static string $foo = 'foo';

public int $id;
public string $username;

public function __construct(int $id, string $username) {
$this->id = $id;
$this->username = $username;
}
}
?>

Строгая типизация

По умолчанию, PHP будет преобразовывать значения неправильного типа в ожидаемые. К примеру, если в функцию передать параметр типа int в аргумент, объявленный как string, то он преобразуется в string.

Можно включить режим строгой типизации на уровне файла. В этом режиме, тип значения должен строго соответствовать объявленному, иначе будет выброшено исключение TypeError. Единственным исключением из этого правила является передача значения типа int туда, где ожидается float.

Внимание

На вызовы из внутренних функций, действие strict_types не распространяется.

Для включения строгой типизации используется оператор declare с объявлением strict_types:

Замечание:

Строгая типизация применяется к вызовам функций, сделанным изнутри файла с включённой строгой типизацией, а не к функциям, объявленным в этом файле. Если из файла без включённой строгой типизации вызывается функция, которая была определена в файле со строгой типизацией, то будут использованы его предпочтения по типизации - т.е. правила строгой типизации будут проигнорированы и для значений будет применяться приведение типов.

Замечание:

Строгая типизация определяется только для объявлений скалярных типов.

Пример #10 Строгая типизация для значений аргументов

<?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));
?>

Результат выполнения данного примера в PHP 8:

int(3)

Fatal error: Uncaught TypeError: sum(): Argument #1 ($a) must be of type int, 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

Пример #11 Приведение типов для значений аргументов

<?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)

Пример #12 Строгая типизация для возвращаемых значений

<?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: sum(): Return value must be of type int, float returned in -:5
Stack trace:
#0 -(9): sum(1, 2.5)
#1 {main}
  thrown in - on line 5


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

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

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

  • Числовой контекст
  • Строчный контекст
  • Логический контекст
  • Контекст целых чисел и строк
  • Сравнительный контекст
  • Контекст функций

Замечание: Когда значение нужно интерпретировать как другой тип, само значение не меняет тип.

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

Числовой контекст

Контекст при использовании арифметического оператора.

В данном контексте, если один из операндов является числом с плавающей точкой (float) (или не интерпретируется как целое число (int)), оба операнда интерпретируются как число с плавающей точкой (float) и результатом будет число с плавающей точкой (float). В противном случае операнды будут интерпретированы как целое число (int) и результатом также будет целое число (int). Начиная с PHP 8.0.0, если один из операндов не может быть интерпретирован, выбрасывается ошибка TypeError.

Строчный контекст

Контекст при использовании функций echo, print, интерполяции строк или строкового оператора конкатенации.

В данном контексте значение будет интерпретироваться как строка (string). Если значение не может быть интерпретировано, выбрасывается ошибка TypeError. До версии PHP 7.4.0 выдавалась ошибка уровня E_RECOVERABLE_ERROR.

Логический контекст

Контекст при использовании условных операторов, тернарного оператора или логического оператора.

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

Контекст целых чисел и строк

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

В данном контексте, если у всех операндов тип строка (string), результат также будет строкой (string). В противном случае операнды будут интерпретированы как целое число (int) и результат также будет целым числом (int). Начиная с PHP 8.0.0, если один из операндов не может быть интерпретирован, то будет выброшена ошибка TypeError.

Сравнительный контекст

Контекст при использовании оператора сравнения.

Преобразования типов, которые происходят в этом контексте, объясняются в таблице сравнения различных типов раздела Операторы сравнения.

Контекст функций

Контекст, когда значение передаётся типизированному параметру, свойству или возвращается из функции, в которой объявлен тип возвращаемого значения.

В этом контексте значение должно быть значением данного типа. Существуют два исключения, первое: если тип значения - целое число (int), а объявленный тип - число с плавающей точкой (float), то целое число преобразуется в число с плавающей точкой. Второй: если объявленный тип является скалярным типом, значение преобразуется в скалярный тип и режим строгой типизации активен (по умолчанию), значение может быть преобразовано в допустимое скалярное значение. Описание такого поведения смотрите ниже.

Внимание

Встроенные функции автоматически подставляют null к скалярным типам, это поведение УСТАРЕЛО в PHP 8.1.0.

Принудительная типизация с простым объявлением типов

  • Объявление типа bool: значение интерпретируется как логическое значение (bool).
  • Объявление типа int: значение интерпретируется как целое число (int), если преобразование хорошо определено. Например, строка является числовой строкой.
  • Объявление типа float: значение интерпретируется как число с плавающей точкой (float) если преобразование хорошо определено. Например, строка является числовой строкой.
  • Объявление типа string: значение интерпретируется как строка (string).

Принудительная типизация с объединением типов

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

  1. int
  2. float
  3. string
  4. bool
Если тип и существует в объединении и значение может быть приведено к этому типу в соответствии с существующей семантикой проверки типов PHP, то выбирается этот тип. В противном случае выбирается следующий тип.

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

В качестве исключения, если значение является строкой, а целое число (int) и число с плавающей точкой (float) являются частью объединения, предпочтительный тип определяется существующей семантикой числовой строки. Например, для "42" выбирается целое число (int), а для "42.0" выбирается число с плавающей точкой (float).

Замечание:

Типы, не входящие в приведённый выше список предпочтений, не являются объектами для неявного приведения. В частности, не происходит неявного приведения к типам null, false и true.

Пример #1 Пример принудительного включения типов в состав объединения

<?php
// int|string
42 --> 42 // точный тип
"42" --> "42" // точный тип
new ObjectWithToString --> "Результат __toString()"
// объект не совместим с int, переход к string
42.0 --> 42 // float совместимый с int
42.1 --> 42 // float совместимый с int
1e100 --> "1.0E+100" // float слишком велик для типа int, переход к string
INF --> "INF" // float слишком велик для типа int, переход к string
true --> 1 // bool совместимый с int
[] --> TypeError // массив не совместим с int или string

// int|float|bool
"45" --> 45 // int числовая строка
"45.0" --> 45.0 // float числовая строка

"45X" --> true // не числовая строка, переход к bool
"" --> false // не числовая строка, переход к bool
"X" --> true // не числовая строка, переход к bool
[] --> TypeError // массив не совместимый с int, float или bool
?>

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

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

<?php
$foo = 10; // $foo - это целое число
$bar = (bool) $foo; // $bar - это логическое значение
?>

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

  • (int) - приведение типа к целому числу (int)
  • (bool) - приведение типа к логическому значению (bool)
  • (float) - приведение типа к числу с плавающей точкой (float)
  • (string) - приведение типа к строке (string)
  • (array) - приведение типа к массиву (array)
  • (object) - приведение типа к объекту (object)
  • (unset) - приведение типа к NULL

Замечание:

(integer) является псевдонимом приведения типа (int). (boolean) является псевдонимом приведения типа (bool). (binary) является псевдонимом приведения типа (string). (double) и (real) являются псевдонимами приведения типа (float). Эти приведения не используют каноническое имя типа и не рекомендуются.

Внимание

Псевдоним приведения типа (real) устарел, начиная с PHP 8.0.0.

Внимание

Приведение типа (unset) устарело, начиная с версии PHP 7.2.0. Обратите внимание, что приведение (unset) равносильно присвоению переменной или вызову значения NULL. Приведение (unset) удалено в PHP 8.0.0.

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

Приведение типа (binary) и префикс b существуют для прямой поддержки. В настоящее время (binary) и (string) идентичны, однако это может измениться и на это не следует полагаться.

Замечание:

Пробелы игнорируются в круглых скобках при приведении типа. Таким образом, следующие два приведения типов эквивалентны:

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

Приведение строк (string) и переменных к бинарным строкам (string):

<?php
$binary = (binary) $string;
$binary = b"binary string";
?>

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

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

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

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

  • Преобразование типа к логическому значению (boolean)
  • Преобразование типа к целому числу (integer)
  • Преобразование типа к числу с плавающей точкой (float)
  • Преобразование типа к строке (string)
  • Преобразование типа к массиву (array)
  • Преобразование типа к объекту (object)
  • Преобразование типа к ресурсу (resource)
  • Преобразование типа к NULL
  • Таблицы сравнения типов

Замечание: Поскольку PHP поддерживает индексацию в строках (string) с помощью смещения, используя тот же синтаксис, что и индексация в массивах (array), следующий пример справедлив для всех версий PHP:

<?php
$a = 'car'; // $a является строкой
$a[0] = 'b'; // $a по-прежнему является строкой
echo $a; // bar
?>
Дополнительную информацию смотрите в разделе Доступ к символу в строке и его изменение.


Переменные

Содержание

  • Основы
  • Предопределённые переменные
  • Область видимости переменной
  • Переменные переменных
  • Переменные извне PHP


Основы

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

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

Замечание: Под буквами здесь подразумеваются символы a-z, A-Z и байты от 128 до 255 (0x80-0xff).

Замечание: $this - это специальная переменная, которой нельзя ничего присваивать. До PHP 7.1.0 было возможно косвенное присвоение (например, с использованием переменных переменных).

Подсказка

Смотрите также Руководство по именованию.

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

<?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); выведет '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);
?>

Полагаться на значения по умолчанию неинициализированных переменных довольно проблематично при включении файла в другой файл, использующий переменную с таким же именем. В случае работы с неинициализированной переменной вызывается ошибка уровня E_WARNING (до PHP 8.0.0 выбрасывалась ошибка уровня E_NOTICE), за исключением случая добавления элементов в неинициализированный массив. Для обнаружения инициализации переменной может быть использована языковая конструкция isset().


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

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

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

Замечание: Переменные переменных

Суперглобальные переменные не могут быть переменными переменных внутри функций или методов класса.

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


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

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

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

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

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

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

test();
?>

Этот скрипт выдаст диагностику неопределённой переменной E_WARNING (или E_NOTICE до версии PHP 8.0.0). Однако если в настройках INI display_errors установлено скрытие такой диагностики, то ничего выводиться не будет. Это связано с тем, что оператор 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--;
}
?>

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

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

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

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

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

Пример #8 Использование статических переменных в унаследованных методах

<?php
class Foo {
public static function counter() {
static $counter = 0;
$counter++;
return $counter;
}
}
class Bar extends Foo {}
var_dump(Foo::counter()); // int(1)
var_dump(Foo::counter()); // int(2)
var_dump(Bar::counter()); // int(3), до PHP 8.1.0 int(1)
var_dump(Bar::counter()); // int(4), до PHP 8.1.0 int(2)
?>

Замечание:

Статические объявления вычисляются во время компиляции скрипта.

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

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

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

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

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

Результат выполнения данного примера:

NULL
object(stdClass)#1 (0) {
}

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

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

echo 'Статический объект: ';
var_dump($obj);
if (!isset($obj)) {
$new = new stdClass;
// Присвоить ссылку статической переменной
$obj = &$new;
}
if (!isset($obj->property)) {
$obj->property = 1;
} else {
$obj->property++;
}
return $obj;
}

function &get_instance_noref() {
static $obj;

echo 'Статический объект: ';
var_dump($obj);
if (!isset($obj)) {
$new = new stdClass;
// Присвоить объект статической переменной
$obj = $new;
}
if (!isset($obj->property)) {
$obj->property = 1;
} else {
$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)#3 (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 осуществляет доступ к элементу массива.

Фигурные скобки могут также использоваться, чтобы чётко разграничить имя свойства. Они наиболее полезны при получении доступа к значениям внутри свойства, которое содержит массив, когда имя свойства состоит из нескольких частей, либо когда имя свойства содержит символы, которые иначе не действительны (например, из функции 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.

Внимание

Обратите внимание, что переменные переменных не могут использоваться с суперглобальными массивами 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>

Есть только два способа получить доступ к данным из форм HTML. Доступные сейчас способы приведены ниже:

Пример #2 Доступ к данным из простой HTML-формы, отправленной через POST

<?php
echo $_POST['username'];
echo $_REQUEST['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. Например, давайте отправим форму самой себе, а после отправки отобразим данные:

Пример #3 Более сложные переменные формы

<?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"> станет $_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().

Замечание: Начиная с PHP 7.2.34, 7.3.23 и 7.4.11, соответственно, имена входящих cookie больше не декодируются из URL-закодированной строки из соображений безопасности.

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

<?php
setcookie("MyCookie[foo]", 'Testing 1', time()+3600);
setcookie("MyCookie[bar]", 'Testing 2', time()+3600);
?>

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

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

Пример #4 Пример использования 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 является текстовым протоколом, и большинство, если не всё, содержимое, которое приходит в суперглобальные массивы, например, $_POST и $_GET, останется в виде строк. PHP не будет преобразовывать значения в определённый тип. В приведённом ниже примере $_GET["var1"] будет содержать строку "null", а $_GET["var2"] - строку "123".

/index.php?var1=null&var2=123

Список изменений

Версия | Описание
7.2.34, 7.3.23, 7.4.11 | имена входящих cookie больше не декодируются из URL-закодированной строки из соображений безопасности.


Константы

Содержание

  • Синтаксис
  • Предопределённые константы
  • Магические константы

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

Замечание:

До PHP 8.0.0 константы, определённые с помощью функции define(), могли быть нечувствительными к регистру.

Имя константы должно соответствовать тем же правилам именования, что и другие имена в 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, константы доступны из любой области видимости. Константы можно использовать из любого места скрипта независимо от области видимости. Подробную информацию об областях видимости можно найти здесь.

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


Синтаксис

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

При использовании ключевого слова const допускаются только скалярные выражения (bool, int, float и string) и константы array, содержащие только скалярные выражения. Можно определить константы с типом resource, но не рекомендуется, так как это может привести к неожиданным результатам.

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

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

Если используется неопределённая константа, выбрасывается Error. До PHP 8.0.0 неопределённые константы интерпретировались как простое слово string, то есть (CONSTANT vs "CONSTANT"). Этот резервный вариант объявлен устаревшим с PHP 7.2.0, при этом будет сгенерирована ошибка уровня E_WARNING. До PHP 7.2.0 вместо этого выдавалась ошибка уровня E_NOTICE. Смотрите также главу руководства, которая разъясняет, почему $foo[bar] - это неправильно (если bar не является константой). Это не относится к (полностью) определённым константам, которые всегда будут выбрасывать Error, если они не определены.

Замечание: Чтобы проверить, установлена ли константа, используйте функцию defined().

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

  • У констант нет приставки в виде знака доллара ($);
  • Константы могут быть определены и доступны в любом месте без учёта области видимости;
  • Константы не могут быть переопределены или удалены после первоначального объявления; и
  • Константы могут иметь только скалярные значения или массивы.

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

<?php
define("CONSTANT", "Здравствуй, мир.");
echo CONSTANT; // выводит "Здравствуй, мир."
echo Constant; // Выбросит ошибку: Неопределённая константа "Constant"
// До PHP 8.0.0 выводит "Constant" и выдаёт предупреждение.
?>

Пример #2 Определение констант с помощью ключевого слова const

<?php
// Простое скалярное значение
const CONSTANT = 'Здравствуй, мир.';

echo CONSTANT;

// Скалярное выражение
const ANOTHER_CONST = CONSTANT . ' Прощай, мир.';
echo ANOTHER_CONST;

const ANIMALS = array('dog', 'cat', 'bird');
echo ANIMALS[1]; // выводит "cat"

// Массивы в константе
define('ANIMALS', array(
'dog',
'cat',
'bird'
));
echo ANIMALS[1]; // выводит "cat"
?>

Замечание:

В отличие от определения констант с помощью функции define(), константы, объявленные с помощью ключевого слова const должны быть объявлены в самой верхней области видимости, потому что они определяются при компилировании скрипта. Это означает, что их нельзя объявлять внутри функций, циклов, выражений if и блоков try/ catch.

Смотрите также

  • Константы классов


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

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


Магические константы

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

Магические константы PHP
Имя | Описание
__LINE__ | Текущий номер строки в файле.
__FILE__ | Полный путь и имя текущего файла с развёрнутыми симлинками. Если используется внутри подключаемого файла, то возвращается имя данного файла.
__DIR__ | Директория файла. Если используется внутри подключаемого файла, то возвращается директория этого файла. Это эквивалентно вызову dirname(__FILE__). Возвращаемое имя директории не оканчивается на слеш, за исключением корневой директории.
__FUNCTION__ | Имя функции или {closure} в случае анонимной функции.
__CLASS__ | Имя класса. Это имя содержит название пространства имён, в котором класс был объявлен (например, Foo\Bar). При использовании в методах трейтов __CLASS__ является именем класса, в котором эти методы используется.
__TRAIT__ | Имя трейта. Это имя содержит название пространства имён, в котором трейт был объявлен (например, Foo\Bar).
__METHOD__ | Имя метода класса.
__NAMESPACE__ | Имя текущего пространства имён.
ClassName::class | Полное имя класса.

Смотрите также

  • ::class
  • get_class()
  • get_object_vars()
  • file_exists()
  • function_exists()


Выражения

Выражения - это самые важные строительные элементы 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 поддерживает четыре типа скалярных значений: целочисленные (int), с плавающей точкой (float), строковые значения (string) и булевы (bool) значения (скалярными являются значения, которые вы не можете 'разбить' на меньшие части, в отличие, например, от массивов). 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.


Операторы

Содержание

  • Operator Precedence
  • Arithmetic Operators
  • Incrementing/Decrementing Operators
  • Assignment Operators
  • Bitwise Operators
  • Comparison Operators
  • Error Control Operators
  • Execution Operators
  • Logical Operators
  • String Operators
  • Array Operators
  • Type Operators

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

Операторы можно сгруппировать по количеству принимаемых ими значений. Унарные операторы принимают только одно значение, например, ! (оператор логического отрицания) или ++ (инкремент). Бинарные операторы принимают два значения; это, например, знакомые всем арифметические операторы + (плюс) и - (минус), большинство поддерживаемых в PHP операторов входят именно в эту категорию. Ну и, наконец, есть всего один тернарный оператор, ? :, принимающий три значения, обычно его так и называют -- "тернарный оператор" (хотя, возможно, более точным названием было бы "условный оператор").

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


Operator Precedence

The precedence of an operator specifies how "tightly" it binds two expressions together. For example, in the expression 1 + 5 * 3, the answer is 16 and not 18 because the multiplication ("*") operator has a higher precedence than the addition ("+") operator. Parentheses may be used to force precedence, if necessary. For instance: (1 + 5) * 3 evaluates to 18.

When operators have equal precedence their associativity decides how the operators are grouped. For example "-" is left-associative, so 1 - 2 - 3 is grouped as (1 - 2) - 3 and evaluates to -4. "=" on the other hand is right-associative, so $a = $b = $c is grouped as $a = ($b = $c).

Operators of equal precedence that are non-associative cannot be used next to each other, for example 1 < 2 > 1 is illegal in PHP. The expression 1 <= 1 == 1 on the other hand is legal, because the == operator has a lower precedence than the <= operator.

Associativity is only meaningful for binary (and ternary) operators. Unary operators are either prefix or postfix so this notion is not applicable. For example !!$a can only be grouped as !(!$a).

Use of parentheses, even when not strictly necessary, can often increase readability of the code by making grouping explicit rather than relying on the implicit operator precedence and associativity.

The following table lists the operators in order of precedence, with the highest-precedence ones at the top. Operators on the same line have equal precedence, in which case associativity decides grouping.

Operator Precedence
Associativity | Operators | Additional Information
(n/a) | clone new | clone and new
right | ** | arithmetic
(n/a) | + - ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | arithmetic (unary + and -), increment/decrement, bitwise, type casting и error control
left | instanceof | type
(n/a) | ! | logical
left | * / % | arithmetic
left | + - . | arithmetic (binary + and -), array и string (. prior to PHP 8.0.0)
left | << >> | bitwise
left | . | string (as of PHP 8.0.0)
non-associative | < <= > >= | comparison
non-associative | == != === !== <> <=> | comparison
left | & | bitwise и references
left | ^ | bitwise
left | | | bitwise
left | && | logical
left | || | logical
right | ?? | null coalescing
non-associative | ? : | ternary (left-associative prior to PHP 8.0.0)
right | = += -= *= **= /= .= %= &= |= ^= <<= >>= ??= | assignment
(n/a) | yield from | yield from
(n/a) | yield | yield
(n/a) | print | print
left | and | logical
left | xor | logical
left | or | logical

Пример #1 Associativity

<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
// ternary operator associativity differs from C/C++
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2 (prior to PHP 8.0.0)

$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
?>

Operator precedence and associativity only determine how expressions are grouped, they do not specify an order of evaluation. PHP does not (in the general case) specify in which order an expression is evaluated and code that assumes a specific order of evaluation should be avoided, because the behavior can change between versions of PHP or depending on the surrounding code.

Пример #2 Undefined order of evaluation

<?php
$a = 1;
echo $a + $a++; // may print either 2 or 3

$i = 1;
$array[$i] = $i++; // may set either index 1 or 2
?>

Пример #3 +, - and . have the same precedence (prior to PHP 8.0.0)

<?php
$x = 4;
// this line might result in unexpected output:
echo "x minus one equals " . $x-1 . ", or so I hope\n";
// because it is evaluated like this line (prior to PHP 8.0.0):
echo (("x minus one equals " . $x) - 1) . ", or so I hope\n";
// the desired precedence can be enforced by using parentheses:
echo "x minus one equals " . ($x-1) . ", or so I hope\n";
?>

Результат выполнения данного примера:

-1, or so I hope
-1, or so I hope
x minus one equals 3, or so I hope

Замечание:

Although = has a lower precedence than most other operators, PHP will still allow expressions similar to the following: if (!$a = foo()), in which case the return value of foo() is put into $a.

Список изменений

Версия | Описание
8.0.0 | String concatenation (.) now has a lower precedence than arithmetic addition/subtraction (+ and -) and bitwise shift left/right (<< and >>); previously it had the same precedence as + and - and a higher precedence than << and >>.
8.0.0 | The ternary operator (? :) is non-associative now; previously it was left-associative.
7.4.0 | Relying on the precedence of string concatenation (.) relative to arithmetic addition/subtraction (+ or -) or bitwise shift left/right (<< or >>), i.e. using them together in an unparenthesized expression, is deprecated.
7.4.0 | Relying on left-associativity of the ternary operator (? :), i.e. nesting multiple unparenthesized ternary operators, is deprecated.


Arithmetic Operators

Remember basic arithmetic from school? These work just like those.

Arithmetic Operators
Example | Name | Result
+$a | Identity | Conversion of $a to int or float as appropriate.
-$a | Negation | Opposite of $a.
$a + $b | Addition | Sum of $a and $b.
$a - $b | Subtraction | Difference of $a and $b.
$a * $b | Multiplication | Product of $a and $b.
$a / $b | Division | Quotient of $a and $b.
$a % $b | Modulo | Remainder of $a divided by $b.
$a ** $b | Exponentiation | Result of raising $a to the $b'th power.

The division operator ("/") returns a float value unless the two operands are integers (or strings that get converted to integers) and the numbers are evenly divisible, in which case an integer value will be returned. For integer division, see intdiv().

Operands of modulo are converted to int before processing. For floating-point modulo, see fmod().

The result of the modulo operator % has the same sign as the dividend — that is, the result of $a % $b will have the same sign as $a. For example:

<?php

echo (5 % 3)."\n"; // prints 2
echo (5 % -3)."\n"; // prints 2
echo (-5 % 3)."\n"; // prints -2
echo (-5 % -3)."\n"; // prints -2

?>

Смотрите также

  • Math functions


Incrementing/Decrementing Operators

PHP supports pre- and post-increment and decrement operators. Those unary operators allow to increment or decrement the value by one.

Increment/decrement Operators
Example | Name | Effect
++$a | Pre-increment | Increments $a by one, then returns $a.
$a++ | Post-increment | Returns $a, then increments $a by one.
--$a | Pre-decrement | Decrements $a by one, then returns $a.
$a-- | Post-decrement | Returns $a, then decrements $a by one.

Here's a simple example script:

<?php
echo 'Post-increment:', PHP_EOL;
$a = 5;
var_dump($a++);
var_dump($a);

echo 'Pre-increment:', PHP_EOL;
$a = 5;
var_dump(++$a);
var_dump($a);

echo 'Post-decrement:', PHP_EOL;
$a = 5;
var_dump($a--);
var_dump($a);

echo 'Pre-decrement:', PHP_EOL;
$a = 5;
var_dump(--$a);
var_dump($a);
?>

Результат выполнения данного примера:

Post-increment:
int(5)
int(6)
Pre-increment:
int(6)
int(6)
Post-decrement:
int(5)
int(4)
Pre-decrement:
int(4)
int(4)
Внимание

The increment and decrement operators have no effect on values of type bool. A E_WARNING is emitted as of PHP 8.3.0, because this will implicitly cast the value to int in the future.

The decrement operator has no effect on values of type null. A E_WARNING is emitted as of PHP 8.3.0, because this will implicitly cast the value to int in the future.

The decrement operator has no effect on non- numeric string. A E_WARNING is emitted as of PHP 8.3.0, because a TypeError will be thrown in the future.

Замечание:

Internal objects that support overloading addition and/or subtraction can also be incremented and/or decremented. One such internal object is GMP.

PERL string increment feature

Внимание

This feature is soft-deprecated as of PHP 8.3.0. The str_increment() function should be used instead.

It is possible to increment a non- numeric string in PHP. The string must be an alphanumerical ASCII string. Which increments letters up to the next letter, when reaching the letter Z the increment is carried to the value on the left. For example, $a = 'Z'; $a++; turns $a into 'AA'.

Пример #1 PERL string increment example

<?php
echo '== Alphabetic strings ==' . PHP_EOL;
$s = 'W';
for ($n=0; $n<6; $n++) {
echo ++$s . PHP_EOL;
}
// Alphanumeric strings behave differently
echo '== Alphanumeric strings ==' . 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;
}
?>

Результат выполнения данного примера:

== Alphabetic strings ==
X
Y
Z
AA
AB
AC
== Alphanumeric strings ==
A9
B0
B1
B2
B3
B4
A09
A10
A11
A12
A13
A14
Внимание

If the alphanumerical string can be interpreted as a numeric string it will be cast to an int or float. This is particularly an issue with strings that look like a floating point numbers written in exponential notation. The str_increment() function does not suffer from these implicit type cast.

Пример #2 Alphanumerical string converted to float

<?php
$s = "5d9";
var_dump(++$s);
var_dump(++$s);
?>

Результат выполнения данного примера:

string(3) "5e0"
float(6)

This is because the value "5e0" is interpreted as a float and cast to the value 5.0 before being incremented.


Assignment Operators

The basic assignment operator is "=". Your first inclination might be to think of this as "equal to". Don't. It really means that the left operand gets set to the value of the expression on the right (that is, "gets set to").

The value of an assignment expression is the value assigned. That is, the value of "$a = 3" is 3. This allows you to do some tricky things:

<?php

$a = ($b = 4) + 5; // $a is equal to 9 now, and $b has been set to 4.

?>

In addition to the basic assignment operator, there are "combined operators" for all of the binary arithmetic, array union and string operators that allow you to use a value in an expression and then set its value to the result of that expression. For example:

<?php

$a = 3;
$a += 5; // sets $a to 8, as if we had said: $a = $a + 5;
$b = "Hello ";
$b .= "There!"; // sets $b to "Hello There!", just like $b = $b . "There!";

?>

Note that the assignment copies the original variable to the new one (assignment by value), so changes to one will not affect the other. This may also have relevance if you need to copy something like a large array inside a tight loop.

An exception to the usual assignment by value behaviour within PHP occurs with objects, which are assigned by reference. Objects may be explicitly copied via the clone keyword.

Assignment by Reference

Assignment by reference is also supported, using the "$var = &$othervar;" syntax. Assignment by reference means that both variables end up pointing at the same data, and nothing is copied anywhere.

Пример #1 Assigning by reference

<?php
$a = 3;
$b = &$a; // $b is a reference to $a

print "$a\n"; // prints 3
print "$b\n"; // prints 3

$a = 4; // change $a

print "$a\n"; // prints 4
print "$b\n"; // prints 4 as well, since $b is a reference to $a, which has
// been changed
?>

The new operator returns a reference automatically, as such assigning the result of new by reference is an error.

<?php
class C {}

$o = &new C;
?>

Результат выполнения данного примера:

Parse error: syntax error, unexpected 'new' (T_NEW) in ...

More information on references and their potential uses can be found in the References Explained section of the manual.

Arithmetic Assignment Operators

Example | Equivalent | Operation
$a += $b | $a = $a + $b | Addition
$a -= $b | $a = $a - $b | Subtraction
$a *= $b | $a = $a * $b | Multiplication
$a /= $b | $a = $a / $b | Division
$a %= $b | $a = $a % $b | Modulus
$a **= $b | $a = $a ** $b | Exponentiation

Bitwise Assignment Operators

Example | Equivalent | Operation
$a &= $b | $a = $a & $b | Bitwise And
$a |= $b | $a = $a | $b | Bitwise Or
$a ^= $b | $a = $a ^ $b | Bitwise Xor
$a <<= $b | $a = $a << $b | Left Shift
$a >>= $b | $a = $a >> $b | Right Shift

Other Assignment Operators

Example | Equivalent | Operation
$a .= $b | $a = $a . $b | String Concatenation
$a ??= $b | $a = $a ?? $b | Null Coalesce

Смотрите также

  • arithmetic operators
  • bitwise operators
  • null coalescing operator


Bitwise Operators

Bitwise operators allow evaluation and manipulation of specific bits within an integer.

Bitwise Operators
Example | Name | Result
$a & $b | And | Bits that are set in both $a and $b are set.
$a | $b | Or (inclusive or) | Bits that are set in either $a or $b are set.
$a ^ $b | Xor (exclusive or) | Bits that are set in $a or $b but not both are set.
~ $a | Not | Bits that are set in $a are not set, and vice versa.
$a << $b | Shift left | Shift the bits of $a $b steps to the left (each step means "multiply by two")
$a >> $b | Shift right | Shift the bits of $a $b steps to the right (each step means "divide by two")

Bit shifting in PHP is arithmetic. Bits shifted off either end are discarded. Left shifts have zeros shifted in on the right while the sign bit is shifted out on the left, meaning the sign of an operand is not preserved. Right shifts have copies of the sign bit shifted in on the left, meaning the sign of an operand is preserved.

Use parentheses to ensure the desired precedence. For example, $a & $b == true evaluates the equivalency then the bitwise and; while ($a & $b) == true evaluates the bitwise and then the equivalency.

If both operands for the &, | and ^ operators are strings, then the operation will be performed on the ASCII values of the characters that make up the strings and the result will be a string. In all other cases, both operands will be converted to integers and the result will be an integer.

If the operand for the ~ operator is a string, the operation will be performed on the ASCII values of the characters that make up the string and the result will be a string, otherwise the operand and the result will be treated as integers.

Both operands and the result for the << and >> operators are always treated as integers.

     PHP's error_reporting ini setting uses bitwise values,
     providing a real-world demonstration of turning
     bits off. To show all errors, except for notices,
     the php.ini file instructions say to use:
     E_ALL & ~E_NOTICE

     This works by starting with E_ALL:
     00000000000000000111011111111111
     Then taking the value of E_NOTICE...
     00000000000000000000000000001000
     ... and inverting it via ~:
     11111111111111111111111111110111
     Finally, it uses AND (&) to find the bits turned
     on in both values:
     00000000000000000111011111110111

     Another way to accomplish that is using XOR (^)
     to find bits that are on in only one value or the other:
     E_ALL ^ E_NOTICE

     error_reporting can also be used to demonstrate turning bits on.
     The way to show just errors and recoverable errors is:
     E_ERROR | E_RECOVERABLE_ERROR

     This process combines E_ERROR
     00000000000000000000000000000001
     and
     00000000000000000001000000000000
     using the OR (|) operator
     to get the bits turned on in either value:
     00000000000000000001000000000001

Пример #1 Bitwise AND, OR and XOR operations on integers

<?php
/*
* Ignore the top section,
* it is just formatting to make output clearer.
*/

$format = '(%1$2d = %1$04b) = (%2$2d = %2$04b)'
. ' %3$s (%4$2d = %4$04b)' . "\n";

echo <<<EOH
 --------- --------- -- ---------
result value op test
--------- --------- -- ---------
EOH;

/*
* Here are the examples.
*/

$values = array(0, 1, 2, 4, 8);
$test = 1 + 4;

echo "\n Bitwise AND \n";
foreach ($values as $value) {
$result = $value & $test;
printf($format, $result, $value, '&', $test);
}

echo "\n Bitwise Inclusive OR \n";
foreach ($values as $value) {
$result = $value | $test;
printf($format, $result, $value, '|', $test);
}

echo "\n Bitwise Exclusive OR (XOR) \n";
foreach ($values as $value) {
$result = $value ^ $test;
printf($format, $result, $value, '^', $test);
}
?>

Результат выполнения данного примера:

 ---------     ---------  -- ---------
 result        value      op test
 ---------     ---------  -- ---------
 Bitwise 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)

 Bitwise Inclusive 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)

 Bitwise Exclusive OR (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 Bitwise XOR operations on strings

<?php
echo 12 ^ 9; // Outputs '5'

echo "12" ^ "9"; // Outputs the Backspace character (ascii 8)
// ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" ^ "hello"; // Outputs the ascii values #0 #4 #0 #0 #0
// 'a' ^ 'e' = #4

echo 2 ^ "3"; // Outputs 1
// 2 ^ ((int)"3") == 1

echo "2" ^ 3; // Outputs 1
// ((int)"2") ^ 3 == 1
?>

Пример #3 Bit shifting on integers

<?php
/*
* Here are the examples.
*/

echo "\n--- BIT SHIFT RIGHT ON POSITIVE INTEGERS ---\n";

$val = 4;
$places = 1;
$res = $val >> $places;
p($res, $val, '>>', $places, 'copy of sign bit shifted into left side');

$val = 4;
$places = 2;
$res = $val >> $places;
p($res, $val, '>>', $places);

$val = 4;
$places = 3;
$res = $val >> $places;
p($res, $val, '>>', $places, 'bits shift out right side');

$val = 4;
$places = 4;
$res = $val >> $places;
p($res, $val, '>>', $places, 'same result as above; can not shift beyond 0');

echo "\n--- BIT SHIFT RIGHT ON NEGATIVE INTEGERS ---\n";

$val = -4;
$places = 1;
$res = $val >> $places;
p($res, $val, '>>', $places, 'copy of sign bit shifted into left side');

$val = -4;
$places = 2;
$res = $val >> $places;
p($res, $val, '>>', $places, 'bits shift out right side');

$val = -4;
$places = 3;
$res = $val >> $places;
p($res, $val, '>>', $places, 'same result as above; can not shift beyond -1');

echo "\n--- BIT SHIFT LEFT ON POSITIVE INTEGERS ---\n";

$val = 4;
$places = 1;
$res = $val << $places;
p($res, $val, '<<', $places, 'zeros fill in right side');

$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, 'sign bits get shifted out');

$val = 4;
$places = (PHP_INT_SIZE * 8) - 2;
$res = $val << $places;
p($res, $val, '<<', $places, 'bits shift out left side');

echo "\n--- BIT SHIFT LEFT ON NEGATIVE INTEGERS ---\n";

$val = -4;
$places = 1;
$res = $val << $places;
p($res, $val, '<<', $places, 'zeros fill in right side');

$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, 'bits shift out left side, including sign bit');

/*
* Ignore this bottom section,
* it is just formatting to make output clearer.
*/

function p($res, $val, $op, $places, $note = '') {
$format = '%0' . (PHP_INT_SIZE * 8) . "b\n";

printf("Expression: %d = %d %s %d\n", $res, $val, $op, $places);

echo " Decimal:\n";
printf(" val=%d\n", $val);
printf(" res=%d\n", $res);

echo " Binary:\n";
printf(' val=' . $format, $val);
printf(' res=' . $format, $res);

if ($note) {
echo " NOTE: $note\n";
}

echo "\n";
}
?>

Результат выполнения данного примера на 32-битных машинах:

--- BIT SHIFT RIGHT ON POSITIVE INTEGERS ---
Expression: 2 = 4 >> 1
 Decimal:
  val=4
  res=2
 Binary:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000010
 NOTE: copy of sign bit shifted into left side

Expression: 1 = 4 >> 2
 Decimal:
  val=4
  res=1
 Binary:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000001

Expression: 0 = 4 >> 3
 Decimal:
  val=4
  res=0
 Binary:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 NOTE: bits shift out right side

Expression: 0 = 4 >> 4
 Decimal:
  val=4
  res=0
 Binary:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 NOTE: same result as above; can not shift beyond 0

--- BIT SHIFT RIGHT ON NEGATIVE INTEGERS ---
Expression: -2 = -4 >> 1
 Decimal:
  val=-4
  res=-2
 Binary:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111110
 NOTE: copy of sign bit shifted into left side

Expression: -1 = -4 >> 2
 Decimal:
  val=-4
  res=-1
 Binary:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111111
 NOTE: bits shift out right side

Expression: -1 = -4 >> 3
 Decimal:
  val=-4
  res=-1
 Binary:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111111
 NOTE: same result as above; can not shift beyond -1

--- BIT SHIFT LEFT ON POSITIVE INTEGERS ---
Expression: 8 = 4 << 1
 Decimal:
  val=4
  res=8
 Binary:
  val=00000000000000000000000000000100
  res=00000000000000000000000000001000
 NOTE: zeros fill in right side

Expression: 1073741824 = 4 << 28
 Decimal:
  val=4
  res=1073741824
 Binary:
  val=00000000000000000000000000000100
  res=01000000000000000000000000000000

Expression: -2147483648 = 4 << 29
 Decimal:
  val=4
  res=-2147483648
 Binary:
  val=00000000000000000000000000000100
  res=10000000000000000000000000000000
 NOTE: sign bits get shifted out

Expression: 0 = 4 << 30
 Decimal:
  val=4
  res=0
 Binary:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 NOTE: bits shift out left side

--- BIT SHIFT LEFT ON NEGATIVE INTEGERS ---
Expression: -8 = -4 << 1
 Decimal:
  val=-4
  res=-8
 Binary:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111000
 NOTE: zeros fill in right side

Expression: -2147483648 = -4 << 29
 Decimal:
  val=-4
  res=-2147483648
 Binary:
  val=11111111111111111111111111111100
  res=10000000000000000000000000000000

Expression: 0 = -4 << 30
 Decimal:
  val=-4
  res=0
 Binary:
  val=11111111111111111111111111111100
  res=00000000000000000000000000000000
 NOTE: bits shift out left side, including sign bit

Результат выполнения данного примера на 64-битных машинах:

--- BIT SHIFT RIGHT ON POSITIVE INTEGERS ---
Expression: 2 = 4 >> 1
 Decimal:
  val=4
  res=2
 Binary:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000010
 NOTE: copy of sign bit shifted into left side

Expression: 1 = 4 >> 2
 Decimal:
  val=4
  res=1
 Binary:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000001

Expression: 0 = 4 >> 3
 Decimal:
  val=4
  res=0
 Binary:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 NOTE: bits shift out right side

Expression: 0 = 4 >> 4
 Decimal:
  val=4
  res=0
 Binary:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 NOTE: same result as above; can not shift beyond 0

--- BIT SHIFT RIGHT ON NEGATIVE INTEGERS ---
Expression: -2 = -4 >> 1
 Decimal:
  val=-4
  res=-2
 Binary:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111110
 NOTE: copy of sign bit shifted into left side

Expression: -1 = -4 >> 2
 Decimal:
  val=-4
  res=-1
 Binary:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111111
 NOTE: bits shift out right side

Expression: -1 = -4 >> 3
 Decimal:
  val=-4
  res=-1
 Binary:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111111
 NOTE: same result as above; can not shift beyond -1

--- BIT SHIFT LEFT ON POSITIVE INTEGERS ---
Expression: 8 = 4 << 1
 Decimal:
  val=4
  res=8
 Binary:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000001000
 NOTE: zeros fill in right side

Expression: 4611686018427387904 = 4 << 60
 Decimal:
  val=4
  res=4611686018427387904
 Binary:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0100000000000000000000000000000000000000000000000000000000000000

Expression: -9223372036854775808 = 4 << 61
 Decimal:
  val=4
  res=-9223372036854775808
 Binary:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=1000000000000000000000000000000000000000000000000000000000000000
 NOTE: sign bits get shifted out

Expression: 0 = 4 << 62
 Decimal:
  val=4
  res=0
 Binary:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 NOTE: bits shift out left side

--- BIT SHIFT LEFT ON NEGATIVE INTEGERS ---
Expression: -8 = -4 << 1
 Decimal:
  val=-4
  res=-8
 Binary:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111000
 NOTE: zeros fill in right side

Expression: -9223372036854775808 = -4 << 61
 Decimal:
  val=-4
  res=-9223372036854775808
 Binary:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1000000000000000000000000000000000000000000000000000000000000000

Expression: 0 = -4 << 62
 Decimal:
  val=-4
  res=0
 Binary:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=0000000000000000000000000000000000000000000000000000000000000000
 NOTE: bits shift out left side, including sign bit

Внимание

Use functions from the gmp extension for bitwise manipulation on numbers beyond PHP_INT_MAX.

Смотрите также

  • pack()
  • unpack()
  • gmp_and()
  • gmp_or()
  • gmp_xor()
  • gmp_testbit()
  • gmp_clrbit()


Comparison Operators

Comparison operators, as their name implies, allow you to compare two values. You may also be interested in viewing the type comparison tables, as they show examples of various type related comparisons.

Comparison Operators
Example | Name | Result
$a == $b | Equal | true if $a is equal to $b after type juggling.
$a === $b | Identical | true if $a is equal to $b, and they are of the same type.
$a != $b | Not equal | true if $a is not equal to $b after type juggling.
$a <> $b | Not equal | true if $a is not equal to $b after type juggling.
$a !== $b | Not identical | true if $a is not equal to $b, or they are not of the same type.
$a < $b | Less than | true if $a is strictly less than $b.
$a > $b | Greater than | true if $a is strictly greater than $b.
$a <= $b | Less than or equal to | true if $a is less than or equal to $b.
$a >= $b | Greater than or equal to | true if $a is greater than or equal to $b.
$a <=> $b | Spaceship | An int less than, equal to, or greater than zero when $a is less than, equal to, or greater than $b, respectively.

If both operands are numeric strings, or one operand is a number and the other one is a numeric string, then the comparison is done numerically. These rules also apply to the switch statement. The type conversion does not take place when the comparison is === or !== as this involves comparing the type as well as the value.

Внимание

Prior to PHP 8.0.0, if a string is compared to a number or a numeric string then the string was converted to a number before performing the comparison. This can lead to surprising results as can be seen with the following example:

<?php
var_dump(0 == "a");
var_dump("1" == "01");
var_dump("10" == "1e1");
var_dump(100 == "1e2");

switch ("a") {
case 0:
echo "0";
break;
case "a":
echo "a";
break;
}
?>

Результат выполнения данного примера в PHP 7:

bool(true)
bool(true)
bool(true)
bool(true)
0

Результат выполнения данного примера в PHP 8:

bool(false)
bool(true)
bool(true)
bool(true)
a

<?php
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1

// Arrays
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

// Objects
$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

// not only values are compared; keys must match
$a = (object) ["a" => "b"];
$b = (object) ["b" => "b"];
echo $a <=> $b; // 1

?>

For various types, comparison is done according to the following table (in order).

Comparison with Various Types
Type of Operand 1 | Type of Operand 2 | Result
null or string | string | Convert null to "", numerical or lexical comparison
bool or null | anything | Convert both sides to bool, false < true
object | object | Built-in classes can define its own comparison, different classes are incomparable, same class see Object Comparison
string, resource, int or float | string, resource, int or float | Translate strings and resources to numbers, usual math
array | array | Array with fewer members is smaller, if key from operand 1 is not found in operand 2 then arrays are incomparable, otherwise - compare value by value (see following example)
object | anything | object is always greater
array | anything | array is always greater

Пример #1 Boolean/null comparison

<?php
// Bool and null are compared as bool always
var_dump(1 == TRUE); // TRUE - same as (bool)1 == TRUE
var_dump(0 == FALSE); // TRUE - same as (bool)0 == FALSE
var_dump(100 < TRUE); // FALSE - same as (bool)100 < TRUE
var_dump(-10 < FALSE);// FALSE - same as (bool)-10 < FALSE
var_dump(min(-100, -10, NULL, 10, 100)); // NULL - (bool)NULL < (bool)-100 is FALSE < TRUE
?>

Пример #2 Transcription of standard array comparison

<?php
// Arrays are compared like this with standard comparison operators as well as the spaceship operator.
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 1;
} elseif ($val < $op2[$key]) {
return -1;
} elseif ($val > $op2[$key]) {
return 1;
}
}
return 0; // $op1 == $op2
}
?>

Внимание

Comparison of floating point numbers

Because of the way floats are represented internally, you should not test two floats for equality.

See the documentation for float for more information.

Замечание: Be aware that PHP's type juggling is not always obvious when comparing values of different types, particularly comparing ints to bools or ints to strings. It is therefore generally advisable to use === and !== comparisons rather than == and != in most cases.

Incomparable Values

While identity comparison (=== and !==) can be applied to arbitrary values, the other comparison operators should only be applied to comparable values. The result of comparing incomparable values is undefined, and should not be relied upon.

Смотрите также

  • strcasecmp()
  • strcmp()
  • Array operators
  • Types

Ternary Operator

Another conditional operator is the "?:" (or ternary) operator.

Пример #3 Assigning a default value

<?php
// Example usage for: Ternary Operator
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// The above is identical to this if/else statement
if (empty($_POST['action'])) {
$action = 'default';
} else {
$action = $_POST['action'];
}
?>
The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to true, and expr3 if expr1 evaluates to false.

It is possible to leave out the middle part of the ternary operator. Expression expr1 ?: expr3 evaluates to the result of expr1 if expr1 evaluates to true, and expr3 otherwise. expr1 is only evaluated once in this case.

Замечание: Please note that the ternary operator is an expression, and that it doesn't evaluate to a variable, but to the result of an expression. This is important to know if you want to return a variable by reference. The statement return $var == 42 ? $a : $b; in a return-by-reference function will therefore not work and a warning is issued.

Замечание:

It is recommended to avoid "stacking" ternary expressions. PHP's behaviour when using more than one unparenthesized ternary operator within a single expression is non-obvious compared to other languages. Indeed prior to PHP 8.0.0, ternary expressions were evaluated left-associative, instead of right-associative like most other programming languages. Relying on left-associativity is deprecated as of PHP 7.4.0. As of PHP 8.0.0, the ternary operator is non-associative.

Пример #4 Non-obvious Ternary Behaviour

<?php
// on first glance, the following appears to output 'true'
echo (true ? 'true' : false ? 't' : 'f');

// however, the actual output of the above is 't' prior to PHP 8.0.0
// this is because ternary expressions are left-associative

// the following is a more obvious version of the same code as above
echo ((true ? 'true' : false) ? 't' : 'f');

// here, one can see that the first expression is evaluated to 'true', which
// in turn evaluates to (bool)true, thus returning the true branch of the
// second ternary expression.
?>

Замечание:

Chaining of short-ternaries (?:), however, is stable and behaves reasonably. It will evaluate to the first argument that evaluates to a non-falsy value. Note that undefined values will still raise a warning.

Пример #5 Short-ternary chaining

<?php
echo 0 ?: 1 ?: 2 ?: 3, PHP_EOL; //1
echo 0 ?: 0 ?: 2 ?: 3, PHP_EOL; //2
echo 0 ?: 0 ?: 0 ?: 3, PHP_EOL; //3
?>

Null Coalescing Operator

Another useful shorthand operator is the "??" (or null coalescing) operator.

Пример #6 Assigning a default value

<?php
// Example usage for: Null Coalesce Operator
$action = $_POST['action'] ?? 'default';

// The above is identical to this if/else statement
if (isset($_POST['action'])) {
$action = $_POST['action'];
} else {
$action = 'default';
}
?>
The expression (expr1) ?? (expr2) evaluates to expr2 if expr1 is null, and expr1 otherwise.

In particular, this operator does not emit a notice or warning if the left-hand side value does not exist, just like isset(). This is especially useful on array keys.

Замечание: Please note that the null coalescing operator is an expression, and that it doesn't evaluate to a variable, but to the result of an expression. This is important to know if you want to return a variable by reference. The statement return $foo ?? $bar; in a return-by-reference function will therefore not work and a warning is issued.

Замечание:

The null coalescing operator has low precedence. That means if mixing it with other operators (such as string concatenation or arithmetic operators) parentheses will likely be required.

<?php
// Raises a warning that $name is undefined.
print 'Mr. ' . $name ?? 'Anonymous';

// Prints "Mr. Anonymous"
print 'Mr. ' . ($name ?? 'Anonymous');
?>

Замечание:

Please note that the null coalescing operator allows for simple nesting:

Пример #7 Nesting null coalescing operator

<?php

$foo = null;
$bar = null;
$baz = 1;
$qux = 2;

echo $foo ?? $bar ?? $baz ?? $qux; // outputs 1

?>


Error Control Operators

PHP supports one error control operator: the at sign (@). When prepended to an expression in PHP, any diagnostic error that might be generated by that expression will be suppressed.

If a custom error handler function is set with set_error_handler(), it will still be called even though the diagnostic has been suppressed.

Внимание

Prior to PHP 8.0.0, the error_reporting() called inside the custom error handler always returned 0 if the error was suppressed by the @ operator. As of PHP 8.0.0, it returns the value of this (bitwise) expression: E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE.

Any error message generated by the expression is available in the "message" element of the array returned by error_get_last(). The result of that function will change on each error, so it needs to be checked early.

<?php
/* Intentional file error */
$my_file = @file ('non_existent_file') or
die ("Failed opening file: error was '" . error_get_last()['message'] . "'");

// this works for any expression, not just functions:
$value = @$cache[$key];
// will not issue a notice if the index $key doesn't exist.

?>

Замечание: The @-operator works only on expressions. A simple rule of thumb is: if one can take the value of something, then one can prepend the @ operator to it. For instance, it can be prepended to variables, functions calls, certain language construct calls (e.g. include), and so forth. It cannot be prepended to function or class definitions, or conditional structures such as if and foreach, and so forth.

Внимание

Prior to PHP 8.0.0, it was possible for the @ operator to disable critical errors that will terminate script execution. For example, prepending @ to a call of a function which did not exist, by being unavailable or mistyped, would cause the script to terminate with no indication as to why.

Смотрите также

  • error_reporting()
  • Error Handling and Logging functions


Execution Operators

PHP supports one execution operator: backticks (``). Note that these are not single-quotes! PHP will attempt to execute the contents of the backticks as a shell command; the output will be returned (i.e., it won't simply be dumped to output; it can be assigned to a variable). Use of the backtick operator is identical to shell_exec().

<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>

Замечание:

The backtick operator is disabled when shell_exec() is disabled.

Замечание:

Unlike some other languages, backticks have no special meaning within double-quoted strings.

Смотрите также

  • Program Execution functions
  • popen()
  • proc_open()
  • Using PHP from the commandline


Logical Operators

Logical Operators
Example | Name | Result
$a and $b | And | true if both $a and $b are true.
$a or $b | Or | true if either $a or $b is true.
$a xor $b | Xor | true if either $a or $b is true, but not both.
! $a | Not | true if $a is not true.
$a && $b | And | true if both $a and $b are true.
$a || $b | Or | true if either $a or $b is true.

The reason for the two different variations of "and" and "or" operators is that they operate at different precedences. (See Operator Precedence.)

Пример #1 Logical operators illustrated

<?php

// --------------------
// foo() will never get called as those operators are short-circuit

$a = (false && foo());
$b = (true || foo());
$c = (false and foo());
$d = (true or foo());

// --------------------
// "||" has a greater precedence than "or"

// The result of the expression (false || true) is assigned to $e
// Acts like: ($e = (false || true))
$e = false || true;

// The constant false is assigned to $f before the "or" operation occurs
// Acts like: (($f = false) or true)
$f = false or true;

var_dump($e, $f);

// --------------------
// "&&" has a greater precedence than "and"

// The result of the expression (true && false) is assigned to $g
// Acts like: ($g = (true && false))
$g = true && false;

// The constant true is assigned to $h before the "and" operation occurs
// Acts like: (($h = true) and false)
$h = true and false;

var_dump($g, $h);
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)
bool(false)
bool(true)


String Operators

There are two string operators. The first is the concatenation operator ('.'), which returns the concatenation of its right and left arguments. The second is the concatenating assignment operator ('.='), which appends the argument on the right side to the argument on the left side. Please read Assignment Operators for more information.

<?php
$a = "Hello ";
$b = $a . "World!"; // now $b contains "Hello World!"

$a = "Hello ";
$a .= "World!"; // now $a contains "Hello World!"
?>

Смотрите также

  • String type
  • String functions


Array Operators

Array Operators
Example | Name | Result
$a + $b | Union | Union of $a and $b.
$a == $b | Equality | true if $a and $b have the same key/value pairs.
$a === $b | Identity | true if $a and $b have the same key/value pairs in the same order and of the same types.
$a != $b | Inequality | true if $a is not equal to $b.
$a <> $b | Inequality | true if $a is not equal to $b.
$a !== $b | Non-identity | true if $a is not identical to $b.

The + operator returns the right-hand array appended to the left-hand array; for keys that exist in both arrays, the elements from the left-hand array will be used, and the matching elements from the right-hand array will be ignored.

<?php
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b; // Union of $a and $b
echo "Union of \$a and \$b: \n";
var_dump($c);

$c = $b + $a; // Union of $b and $a
echo "Union of \$b and \$a: \n";
var_dump($c);

$a += $b; // Union of $a += $b is $a and $b
echo "Union of \$a += \$b: \n";
var_dump($a);
?>
When executed, this script will print the following:
Union of $a and $b:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}
Union of $b and $a:
array(3) {
  ["a"]=>
  string(4) "pear"
  ["b"]=>
  string(10) "strawberry"
  ["c"]=>
  string(6) "cherry"
}
Union of $a += $b:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}

Elements of arrays are equal for the comparison if they have the same key and value.

Пример #1 Comparing arrays

<?php
$a = array("apple", "banana");
$b = array(1 => "banana", "0" => "apple");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

Смотрите также

  • Array type
  • Array functions


Type Operators

instanceof is used to determine whether a PHP variable is an instantiated object of a certain class:

Пример #1 Using instanceof with classes

<?php
class MyClass
{
}

class NotMyClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>

Результат выполнения данного примера:

bool(true)
bool(false)

instanceof can also be used to determine whether a variable is an instantiated object of a class that inherits from a parent class:

Пример #2 Using instanceof with inherited classes

<?php
class ParentClass
{
}

class MyClass extends ParentClass
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>

Результат выполнения данного примера:

bool(true)
bool(true)

To check if an object is not an instanceof a class, the logical not operator can be used.

Пример #3 Using instanceof to check if object is not an instanceof a class

<?php
class MyClass
{
}

$a = new MyClass;
var_dump(!($a instanceof stdClass));
?>

Результат выполнения данного примера:

bool(true)

Lastly, instanceof can also be used to determine whether a variable is an instantiated object of a class that implements an interface:

Пример #4 Using instanceof with interfaces

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>

Результат выполнения данного примера:

bool(true)
bool(true)

Although instanceof is usually used with a literal classname, it can also be used with another object or a string variable:

Пример #5 Using instanceof with other variables

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;
$b = new MyClass;
$c = 'MyClass';
$d = 'NotMyClass';

var_dump($a instanceof $b); // $b is an object of class MyClass
var_dump($a instanceof $c); // $c is a string 'MyClass'
var_dump($a instanceof $d); // $d is a string 'NotMyClass'
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)

instanceof does not throw any error if the variable being tested is not an object, it simply returns false. Constants, however, were not allowed prior to PHP 7.3.0.

Пример #6 Using instanceof to test other variables

<?php
$a = 1;
$b = NULL;
$c = imagecreate(5, 5);
var_dump($a instanceof stdClass); // $a is an integer
var_dump($b instanceof stdClass); // $b is NULL
var_dump($c instanceof stdClass); // $c is a resource
var_dump(FALSE instanceof stdClass);
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(false)
PHP Fatal error:  instanceof expects an object instance, constant given

As of PHP 7.3.0, constants are allowed on the left-hand-side of the instanceof operator.

Пример #7 Using instanceof to test constants

<?php
var_dump(FALSE instanceof stdClass);
?>

Результат выполнения данного примера в PHP 7.3:

bool(false)

As of PHP 8.0.0, instanceof can now be used with arbitrary expressions. The expression must be wrapped in parentheses and produce a string.

Пример #8 Using instanceof with an arbitrary expression

<?php

class ClassA extends \stdClass {}
class ClassB extends \stdClass {}
class ClassC extends ClassB {}
class ClassD extends ClassA {}

function getSomeClass(): string
{
return ClassA::class;
}

var_dump(new ClassA instanceof ('std' . 'Class'));
var_dump(new ClassB instanceof ('Class' . 'B'));
var_dump(new ClassC instanceof ('Class' . 'A'));
var_dump(new ClassD instanceof (getSomeClass()));
?>

Результат выполнения данного примера в PHP 8:

bool(true)
bool(true)
bool(false)
bool(true)

The instanceof operator has a functional variant with the is_a() function.

Смотрите также

  • get_class()
  • is_a()


Управляющие конструкции

Содержание

  • Введение
  • if
  • else
  • elseif/else if
  • Альтернативный синтаксис управляющих структур
  • while
  • do-while
  • for
  • foreach
  • break
  • continue
  • switch
  • match
  • declare
  • return
  • require
  • include
  • require_once
  • include_once
  • goto


Введение

Любой сценарий PHP состоит из последовательности инструкций. Инструкцией может быть присваивание, вызов функции, повтор кода (цикл), сравнение, или даже инструкция, которая ничего не делает (пустой оператор). После инструкции обычно ставится точка с запятой. Кроме того, инструкции могут быть объединены в блоки заключением их в фигурные скобки. Блок инструкций также сам по себе является инструкцией. В этом разделе описываются различные типы инструкций.

Смотрите также

Ниже также рассматриваются языковые конструкции, даже если они упоминаются в функциях руководства.

  • list()
  • array()
  • echo
  • eval()
  • print


if

(PHP 4, PHP 5, PHP 7, PHP 8)

Конструкция 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, PHP 8)

Часто необходимо выполнить одно выражение, если определённое условие верно, и другое выражение, если условие не верно. Именно для этого 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).

Замечание: Болтающийся else

В случае вложенных операторов if-else, else всегда ассоциируется с ближайшим if.

<?php
$a = false;
$b = true;
if ($a)
if ($b)
echo "b";
else
echo "c";
?>
Несмотря на отступ (который не имеет значения в PHP), else связан с if ($b), поэтому этот пример ничего не выведет. Хотя такое поведение допустимо, рекомендуется его избегать, используя фигурные скобки для устранения потенциальных неоднозначностей.


elseif/else if

(PHP 4, PHP 5, PHP 7, PHP 8)

Конструкция 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' (в одно слово). Синтаксически значение немного отличается (то же поведение, что и у C), но в конечном итоге оба выражения приведут к одному и тому же результату.

Выражение elseif выполнится, если предшествующее выражение if и предшествующие выражения elseif эквивалентны false, а текущий elseif равен true.

Замечание: Заметьте, что elseif и else if будут равнозначны только при использовании фигурных скобок, как в примерах выше. Если используются синтаксис с двоеточием для определения условий if/elseif, возникает необходимость использования 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 8)

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, PHP 8)

Циклы 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, PHP 8)

Цикл 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);
?>

Можно использовать оператор goto вместо подобного "хака".


for

(PHP 4, PHP 5, PHP 7, PHP 8)

Цикл 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, PHP 8)

Конструкция foreach предоставляет простой способ перебора массивов. foreach работает только с массивами и объектами, и будет генерировать ошибку при попытке использования с переменными других типов или неинициализированными переменными. Существует два вида синтаксиса:

foreach (iterable_expression as $value)
    statement
foreach (iterable_expression as $key => $value)
    statement

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

Второй цикл дополнительно присвоит ключ текущего элемента переменной $key на каждой итерации.

Обратите внимание, что foreach не изменяет указатель внутреннего массива, который используется такими функциями, как current() и key().

Возможно настроить итераторы объектов.

Для того, чтобы напрямую изменять элементы массива внутри цикла, переменной $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
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 8)

Можно перебрать массив массивов и распаковать вложенный массив в переменные цикла, передав 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:


break

(PHP 4, PHP 5, PHP 7, PHP 8)

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;
}
}
?>


continue

(PHP 4, PHP 5, PHP 7, PHP 8)

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

Замечание: В PHP оператор switch считается циклическим и внутри него может использоваться continue. Если continue не передано аргументов, то он ведёт себя аналогично break, но выдаёт предупреждение о возможной ошибке. Если switch расположен внутри цикла, continue 2 продолжит выполнение внешнего цикла со следующей итерации.

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

<?php
$arr = ['ноль', 'один', 'два', 'три', 'четыре', 'пять', 'шесть'];
foreach ($arr as $key => $value) {
if (0 === ($key % 2)) { // пропуск чётных чисел
continue;
}
echo $value . "\n";
}
?>

Результат выполнения данных примеров:

один
три
пять
<?php
$i = 0;
while ($i++ < 5) {
echo "Внешний\n";
while (1) {
echo "Средний\n";
while (1) {
echo "Внутренний\n";
continue 3;
}
echo "Это никогда не выведется.\n";
}
echo "Это также не выведется.\n";
}
?>

Результат выполнения данных примеров:

Внешний
Средний
Внутренний
Внешний
Средний
Внутренний
Внешний
Средний
Внутренний
Внешний
Средний
Внутренний
Внешний
Средний
Внутренний

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

<?php
for ($i = 0; $i < 5; ++$i) {
if ($i == 2)
continue
print "$i\n";
}
?>

Ожидается, что результат будет такой:

0
1
3
4

Изменения, касающиеся оператора continue
Версия | Описание
7.3.0 | continue внутри switch, использующееся как замена break для switch будет вызывать ошибку уровня E_WARNING.


switch

(PHP 4, PHP 5, PHP 7, PHP 8)

Оператор switch похож на ряд операторов IF с одинаковым условием. Во многих случаях вам может понадобиться сравнивать одну и ту же переменную (или выражение) с множеством различных значений и выполнять различные участки кода в зависимости от того, какое значение принимает эта переменная (или выражение). Это именно тот случай, для которого удобен оператор switch.

Замечание: Обратите внимание, что в отличие от некоторых других языков, оператор continue применяется в конструкциях switch и действует подобно оператору break. Если у вас конструкция switch находится внутри цикла, и вам необходимо перейти к следующей итерации цикла, используйте continue 2.

Замечание:

Заметьте, что конструкция switch/case использует нестрогое сравнение (==).

В следующем примере каждый блок кода эквивалентен. В одном используется серия операторов if и elseif, а в другом - оператор switch. В каждом случае результат один и тот же.

Пример #1 Оператор switch

<?php
// Оператор switch:

switch ($i) {
case 0:
echo "i равно 0";
break;
case 1:
echo "i равно 1";
break;
case 2:
echo "i равно 2";
break;
}

// Эквивалентно:

if ($i == 0) {
echo "i равно 0";
} elseif ($i == 1) {
echo "i равно 1";
} elseif ($i == 2) {
echo "i равно 2";
}
?>

Пример #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";
}
?>

Замечание: Несколько указаний default вызовут ошибку E_COMPILE_ERROR.

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

Если ни одна конструкция case не совпадает и нет конструкции default, то код не будет выполнен, как если бы ни одно утверждение if не было истинным.

Значение case может быть задано в виде выражения. Однако это выражение будет оценено само по себе, а затем слабо сопоставлено со значением switch. Это означает, что его нельзя использовать для сложных оценок значения switch. Например:

<?php
$target = 1;
$start = 3;

switch ($target) {
case $start - 1:
print "A";
break;
case $start - 2:
print "B";
break;
case $start - 3:
print "C";
break;
case $start - 4:
print "D";
break;
}

// Выведет "B"
?>

Для более сложных сравнений в качестве значения switch может использоваться значение true. Или, как вариант, вместо switch использовать блоки if-else.

<?php
$offset = 1;
$start = 3;

switch (true) {
case $start - $offset === 1:
print "A";
break;
case $start - $offset === 2:
print "B";
break;
case $start - $offset === 3:
print "C";
break;
case $start - $offset === 4:
print "D";
break;
}

// Выведет "B"
?>

Возможен альтернативный синтаксис для управляющей структуры 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 не равно 0, 1 или 2";
endswitch;
?>

Возможно использование точки с запятой вместо двоеточия после оператора case. К примеру :

<?php
switch($beer)
{
case 'tuborg';
case 'carlsberg';
case 'stella';
case 'heineken';
echo 'Хороший выбор';
break;
default;
echo 'Пожалуйста, сделайте новый выбор...';
break;
}
?>

Смотрите также

  • match


match

(PHP 8)

Выражение match предназначено для ветвления потока исполнения на основании проверки совпадения значения с заданным условием. Аналогично оператору switch, выражение match принимает на вход выражение, которое сравнивается с множеством альтернатив. Но, в отличие от switch, оно обрабатывает значение в стиле, больше похожем на тернарный оператор. Также, в отличие от switch, используется строгое сравнение (===), а не слабое (==). Выражение match доступно начиная с PHP 8.0.0.

Пример #1 Структура выражения match

<?php
$return_value = match (subject_expression) {
single_conditional_expression => return_expression,
conditional_expression1, conditional_expression2 => return_expression,
};
?>

Пример #2 Простой пример использования match

<?php
$food = 'cake';
$return_value = match ($food) {
'apple' => 'На столе лежит яблоко',
'banana' => 'На столе лежит банан',
'cake' => 'На столе стоит торт',
};
var_dump($return_value);
?>

Результат выполнения данного примера:

string(35) "На столе стоит торт"

Замечание: Результат match использовать не обязательно.

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

Выражение match похоже на оператор switch за исключением некоторых ключевых отличий:

  • В отличие от switch, в match используется строгое сравнение (===).
  • Выражение match возвращает результат.
  • В match исполняется только одна, первая подошедшая, ветвь кода, тогда как в switch происходит сквозное исполнение начиная с подошедшего условия и до первого встретившегося оператора break.
  • Выражение match должно быть исчерпывающим.

Также как и оператор switch, match последовательно проводит проверки на совпадение с заданными условиями. Выполнение кода условий происходит лениво, т.е. код следующего условия выполняется только если все предыдущие проверки провалились. Будет выполнена только одна ветвь кода, соответствующая подошедшему условию. Пример:

<?php
$result = match ($x) {
foo() => ...,
$this->bar() => ..., // $this->bar() не будет выполнен, если foo() === $x
$this->baz => beep(), // beep() будет выполнен только если $x === $this->baz
// etc.
};
?>

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

<?php
$result = match ($x) {
// Множественное условие:
$a, $b, $c => 5,
// Аналогично трём одиночным:
$a => 5,
$b => 5,
$c => 5,
};
?>

Также можно использовать шаблон default. Этот шаблон совпадает с чем угодно, для чего не нашлось совпадений раньше. К примеру:

<?php
$expressionResult = match ($condition) {
1, 2 => foo(),
3, 4 => bar(),
default => baz(),
};
?>

Замечание: Использование нескольких шаблонов default приведёт к фатальной ошибке E_FATAL_ERROR.

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

Пример #3 Пример необработанного выражения

<?php
$condition = 5;

try {
match ($condition) {
1, 2 => foo(),
3, 4 => bar(),
};
} catch (\UnhandledMatchError $e) {
var_dump($e);
}
?>

Результат выполнения данного примера:

object(UnhandledMatchError)#1 (7) {
  ["message":protected]=>
  string(33) "Unhandled match value of type int"
  ["string":"Error":private]=>
  string(0) ""
  ["code":protected]=>
  int(0)
  ["file":protected]=>
  string(9) "/in/ICgGK"
  ["line":protected]=>
  int(6)
  ["trace":"Error":private]=>
  array(0) {
  }
  ["previous":"Error":private]=>
  NULL
}

Использование match для проверки сложных условий

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

Пример #4 Использование match для ветвления в зависимости от вхождения в диапазоны целых чисел

<?php

$age = 23;

$result = match (true) {
$age >= 65 => 'пожилой',
$age >= 25 => 'взрослый',
$age >= 18 => 'совершеннолетний',
default => 'ребёнок',
};

var_dump($result);
?>

Результат выполнения данного примера:

string(11) "совершеннолетний"

Пример #5 Использование match для ветвления в зависимости от содержимого строки

<?php

$text = 'Bienvenue chez nous';

$result = match (true) {
str_contains($text, 'Welcome') || str_contains($text, 'Hello') => 'en',
str_contains($text, 'Bienvenue') || str_contains($text, 'Bonjour') => 'fr',
// ...
};

var_dump($result);
?>

Результат выполнения данного примера:

string(2) "fr"


declare

(PHP 4, PHP 5, PHP 7, PHP 8)

Конструкция declare используется для установки директив исполнения для блока кода. Синтаксис declare аналогичен с синтаксисом других конструкций управления выполнением:

declare (directive)
    statement

Секция directive позволяет установить поведение блока declare. В настоящее время распознаются только три директивы: директива ticks (Дополнительная информация о директиве ticks доступна ниже), директива encoding (Дополнительная информация о директиве encoding доступна ниже) и директива strict_types (подробности в разделе про строгую типизацию на странице аргументов функции)

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

<?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; // вызывает событие тика
}

?>

Смотрите также register_tick_function() и unregister_tick_function().

Кодировка

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

Пример #2 Определение кодировки для скрипта.

<?php
declare(encoding='ISO-8859-1');
// прочий код
?>

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

В сочетании с пространством имён единственно допустимый синтаксис для declare является declare(encoding='...'); где ... это значение кодировки. declare(encoding='...') {} приведёт к ошибке парсера, если используется вместе с пространством имён.

Смотрите также zend.script_encoding.


return

(PHP 4, PHP 5, PHP 7, PHP 8)

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

Если вызывается из функции, выражение return немедленно прекращает выполнение текущей функции и возвращает свой аргумент как значение данной функции. return также завершит выполнение выражения eval() или всего файла скрипта.

Если вызывается из глобальной области видимости, выполнение текущего файла скрипта прекращается. Если текущий файл скрипта был подключён с помощью функций include или require, тогда управление возвращается к файлу, который вызывал текущий. Более того, если текущий файл скрипта был подключён с помощью include, тогда значение переданное return будет возвращено в качестве значения вызова include. Если return вызывается из главного файла скрипта, тогда выполнение скрипта прекращается. Если текущий файл скрипта был вызван конфигурационными опциями auto_prepend_file или auto_append_file из файла настроек php.ini, тогда выполнение этого скрипта прекращается.

Для более детальной информации смотрите раздел Возвращаемые значения.

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

Замечание: Если параметры не указаны, тогда круглые скобки должны быть опущены и будет возвращён null. Вызов return со скобками, но без аргументов вызовет синтаксическую ошибку.

Начиная с PHP 7.1.0, операторы возврата без аргумента в функциях, объявляющих тип возврата, вызывают E_COMPILE_ERROR, если только тип возврата не void, в этом случае такую же ошибку вызывают операторы возврата с аргументом.


require

(PHP 4, PHP 5, PHP 7, PHP 8)

require аналогично include, за исключением того, что в случае возникновения ошибки он также выдаст фатальную ошибку уровня E_COMPILE_ERROR. Другими словами, он остановит выполнение скрипта, тогда как include только выдал бы предупреждение E_WARNING, которое позволило бы скрипту продолжить выполнение.

Смотрите документацию по include, чтобы узнать как он работает.


include

(PHP 4, PHP 5, PHP 7, PHP 8)

Выражение include включает и выполняет указанный файл.

Документация ниже также относится к выражению require.

Файлы включаются исходя из пути указанного файла, или, если путь не указан, используется путь, указанный в директиве include_path. Если файл не найден в include_path, include попытается проверить директорию, в которой находится текущий включающий скрипт и текущую рабочую директорию перед тем, как выдать ошибку. Конструкция include выдаст E_WARNING, если не сможет найти файл; поведение отлично от require, который выдаст E_ERROR.

Обратите внимание, что и include и require выдают дополнительную ошибку уровня E_WARNING, если к файлу невозможно получить доступ, перед тем, как выдать последнюю ошибку уровня E_WARNING или E_ERROR соответственно.

Если путь указан — абсолютный (начинающийся с буквы диска или с \ в 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';
?>

Внимание

Предупреждение безопасности

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

Смотрите также раздел Удалённые файлы, функции fopen() и file() для дополнительной информации.

Обработка возвращаемых значений: оператор include возвращает значение FALSE в случае возникновения ошибки и выдаёт предупреждение. Успешные включения, пока это не переопределено во включаемом файле, возвращают значение 1. Возможно выполнить выражение return внутри включаемого файла, чтобы завершить процесс выполнения в этом файле и вернуться к выполнению включающего файла. Кроме того, возможно вернуть значение из включаемых файлов. Вы можете получить значение включения, как если бы вы вызвали обычную функцию. Хотя это невозможно при включении удалённого файла, только если вывод удалённого файла не содержит корректные теги начала и конца PHP кода (так же, как и локальный файл). Вы можете определить необходимые переменные внутри этих тегов и они будут представлены в зависимости от того, какой файл был выключен.

Так как include - это специальная языковая конструкция, круглые скобки не обязательны вокруг аргумента. Будьте внимательны при сравнении возвращаемого значения.

Пример #4 Сравнение возвращаемого значения при include

<?php
// не сработает, интерпретируется как include(('vars.php') == TRUE), то есть include('1')
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, PHP 8)

Выражение require_once аналогично require за исключением того, что PHP проверит, включался ли уже данный файл, и если да, не будет включать его ещё раз.

Смотрите документацию include_once для информации по поведению _once и чем он отличается от таких же функций, без _once.


include_once

(PHP 4, PHP 5, PHP 7, PHP 8)

Выражение include_once включает и выполняет указанный файл во время выполнения скрипта. Его поведение идентично выражению include, с той лишь разницей, что если код из файла уже один раз был включён, он не будет включён и выполнен повторно и вернёт true. Как видно из имени, он включит файл только один раз.

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

Смотрите документацию по include для получения информации о том, как эта функция работает.


goto

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Что наихудшее может случиться, если используется 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


Функции

Содержание

  • Функции, определяемые пользователем
  • Аргументы функции
  • Возврат значений
  • Обращение к функциям через переменные
  • Встроенные функции
  • Анонимные функции
  • Стрелочные функции
  • Callback-функции как объекты первого класса


Функции, определяемые пользователем

Приведём пример синтаксиса, используемого для описания функций:

Пример #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 не поддерживает перегрузку функции, также отсутствует возможность переопределить или удалить объявленную ранее функцию.

Замечание: Имена функций регистронезависимы для символов ASCII от A до Z, тем не менее, предпочтительнее вызывать функции так, как они были объявлены.

Функции 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 поддерживает передачу аргументов по значению (по умолчанию), передачу аргументов по ссылке, и значения по умолчанию. Списки аргументов переменной длины и именованные аргументы также поддерживаются.

Пример #1 Передача массива в функцию

<?php
function takes_array($input)
{
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>

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

Пример #2 Список аргументов функции с завершающей запятой

<?php
function takes_many_args(
$first_arg,
$second_arg,
$a_very_long_argument_name,
$arg_with_default = 5,
$again = 'a default string', // Эта завершающая запятая допустима только начиная с 8.0.0.
)
{
// ...
}
?>

Передача аргументов по ссылке

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

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

Пример #3 Передача аргументов по ссылке

<?php
function add_some_extra(&$string)
{
$string .= 'и кое-что ещё.';
}
$str = 'Это строка, ';
add_some_extra($str);
echo $str; // выведет 'Это строка, и кое-что ещё.'
?>

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

Значения аргументов по умолчанию

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

Пример #4 Использование значений по умолчанию в определении функции

<?php
function makecoffee($type = "капучино")
{
return "Готовим чашку $type.\n";
}
echo makecoffee();
echo makecoffee(null);
echo makecoffee("эспрессо");
?>

Результат выполнения данного примера:

Готовим чашку капучино.
Готовим чашку .
Готовим чашку эспрессо.

Значениями параметров по умолчанию могут быть скалярные значения, массивы (array), специальный тип null, и, начиная с версии PHP 8.1.0, объекты, использующие синтаксис new ClassName().

Пример #5 Использование нескалярных типов в качестве значений по умолчанию

<?php
function makecoffee($types = array("капучино"), $coffeeMaker = NULL)
{
$device = is_null($coffeeMaker) ? "вручную" : $coffeeMaker;
return "Готовлю чашку ".join(", ", $types)." $device.\n";
}
echo makecoffee();
echo makecoffee(array("капучино", "лавацца"), "в чайнике");
?>

Пример #6 Использование объектов в качестве значений по умолчанию (начиная с PHP 8.1.0)

<?php
class DefaultCoffeeMaker {
public function brew() {
return 'Приготовление кофе.';
}
}
class FancyCoffeeMaker {
public function brew() {
return 'Приготовление прекрасного кофе специально для вас.';
}
}
function makecoffee($coffeeMaker = new DefaultCoffeeMaker)
{
return $coffeeMaker->brew();
}
echo makecoffee();
echo makecoffee(new FancyCoffeeMaker);
?>

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

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

Пример #7 Некорректное использование значений по умолчанию

<?php
function makeyogurt($container = "миску", $flavour)
{
return "Делаем $container с $flavour йогуртом.\n";
}

echo makeyogurt("малиновым"); // "малиновым" - это $container, не $flavour
?>

Результат выполнения данного примера:

Fatal error: Uncaught ArgumentCountError: Too few arguments
to function makeyogurt(), 1 passed in example.php on line 42

Теперь сравним его со следующим примером:

Пример #8 Корректное использование значений по умолчанию

<?php
function makeyogurt($flavour, $container = "миску")
{
return "Делаем $container с $flavour йогуртом.\n";
}

echo makeyogurt("малиновым"); // "малиновым" - это $flavour
?>

Результат выполнения данного примера:

Делаем миску с малиновым йогуртом.

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

Пример #9 Правильное использование аргументов функций по умолчанию

<?php
function makeyogurt($container = "миску", $flavour = "малиновым", $style = "греческим")
{
return "Делаем $container с $flavour $style йогуртом.\n";
}
echo makeyogurt(style: "натуральным");
?>

Результат выполнения данного примера:

Делаем миску с малиновым натуральным йогуртом.

Начиная с PHP 8.0.0, объявление обязательных аргументов после необязательных аргументов является устаревшим. Обычно это можно решить отказавшись от значения по умолчанию, поскольку оно никогда не будет использоваться. Исключением из этого правила являются аргументы вида Type $param = null, где null по умолчанию делает тип неявно обнуляемым. Такое использование остаётся допустимым, хотя рекомендуется использовать явный тип nullable.

Пример #10 Объявление необязательных аргументов после обязательных аргументов

<?php
function foo($a = [], $b) {} // По умолчанию не используется; устарел, начиная с версии PHP 8.0.0
function foo($a, $b) {} // Функционально эквивалентны, без уведомления об устаревании
function bar(A $a = null, $b) {} // Все еще разрешено; $a является обязательным, но допускающим значение null
function bar(?A $a, $b) {} // Рекомендуется
?>

Замечание: Начиная с PHP 7.1.0, опущение параметра, не заданного по умолчанию, выбрасывает исключение ArgumentCountError; в предыдущих версиях это вызывало предупреждение.

Замечание: Значения по умолчанию могут быть переданы по ссылке.

Списки аргументов переменной длины

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

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

Пример #11 Использование ... для доступа к аргументам

<?php
function sum(...$numbers) {
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}

echo sum(1, 2, 3, 4);
?>

Результат выполнения данного примера:

10

Многоточие (...) можно использовать при вызове функции, чтобы распаковать массив (array) или Traversable переменную в список аргументов:

Пример #12 Использование ... для передачи аргументов

<?php
function add($a, $b) {
return $a + $b;
}

echo add(...[1, 2])."\n";

$a = [1, 2];
echo add(...$a);
?>

Результат выполнения данного примера:

3
3

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

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

Пример #13 Аргументы с подсказкой типа

<?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 8.0.0 в виде продолжения позиционных параметров появились именованные аргументы. С их помощью аргументы функции можно передавать по имени параметра, а не по его позиции. Таким образом аргумент становится самодокументированным, независимым от порядка и указанного значения по умолчанию.

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

Пример #14 Синтаксис именованного аргумента

<?php
myFunction(paramName: $value);
array_foobar(array: $value);

// НЕ поддерживается.
function_name($variableStoringParamName: $value);
?>

Пример #15 Позиционные аргументы в сравнении с именованными аргументами

<?php
// Использование позиционных аргументов:
array_fill(0, 100, 50);

// Использование именованных аргументов:
array_fill(start_index: 0, count: 100, value: 50);
?>

Порядок, в котором передаются именованные аргументы, не имеет значения.

Пример #16 Тот же пример, что и выше, но с другим порядком параметров

<?php
array_fill(value: 50, count: 100, start_index: 0);
?>

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

Пример #17 Объединение именованных аргументов с позиционными аргументами

<?php
htmlspecialchars($string, double_encode: false);
// То же самое
htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, 'UTF-8', false);
?>

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

Пример #18 Ошибка, возникающая при передаче одного и того же параметра несколько раз

<?php
function foo($param) { ... }

foo(param: 1, param: 2);
// Error: Named parameter $param overwrites previous argument
foo(1, param: 2);
// Error: Named parameter $param overwrites previous argument
?>

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

Пример #19 Пример использования именованных аргументов после распаковки

<?php
function foo($a, $b, $c = 3, $d = 4) {
return $a + $b + $c + $d;
}
var_dump(foo(...[1, 2], d: 40)); // 46
var_dump(foo(...['b' => 2, 'a' => 1], d: 40)); // 46
var_dump(foo(...[1, 2], b: 20)); // Фатальная ошибка. Именованный аргумент $b переопределяет предыдущий аргумент
?>


Возврат значений

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

Замечание:

Если конструкция return не указана, то функция вернёт значение null.

Использование выражения return

Пример #1 Использование конструкции return

<?php
function square($num)
{
return $num * $num;
}
echo square(4); // выводит '16'.
?>

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

Пример #2 Возврат нескольких значений в виде массива

<?php
function small_numbers()
{
return [0, 1, 2];
}
// Деструктуризация массива будет собирать каждый элемент массива индивидуально
[$zero, $one, $two] = small_numbers();

// До версии 7.1.0 единственной эквивалентной альтернативой было использование конструкции list().
list($zero, $one, $two) = small_numbers();

?>

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

Пример #3 Возврат результата по ссылке

<?php
function &returns_reference()
{
return $someref;
}

$newref =& returns_reference();
?>

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


Обращение к функциям через переменные

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 из этой области видимости.

?>

Пример #4 Сложные callable-функции

<?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"
?>

Смотрите также

  • is_callable()
  • call_user_func()
  • function_exists()
  • переменные переменных


Встроенные функции

В самом PHP содержится достаточно большое количество встроенных функций и языковых конструкций. Также есть функции, которые требуют, чтобы PHP был собран с определёнными модулями, в противном случае будут генерироваться фатальные ошибки, вызванные использованием неизвестной функции. Например, для того чтобы использовать функции для работы с изображениями, например, imagecreatetruecolor(), необходимо собрать PHP с поддержкой GD. Или же для того, чтобы воспользоваться функцией mysqli_connect(), необходима поддержка модуля MySQLi. Тем не менее, есть много встроенных функций, которые доступны всегда: например, функции обработки строк и функции для работы с переменными. Вызвав phpinfo() или get_loaded_extensions(), можно узнать, поддержка каких модулей есть в используемом PHP. Также следует учесть, что поддержка некоторых дополнительных модулей включена по умолчанию, и что сама документация к PHP разбита по модулям. Ознакомьтесь с разделами Конфигурация, Установка, а также с документацией непосредственно к дополнительным модулям для получения более детальной информации о том, как настроить PHP.

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

Замечание: Если в функцию передаются не те аргументы, которые она ожидает, например, массив (array) вместо строки (string), возвращаемое значение функции не определено. Скорее всего в этом случае будет возвращён null, но это просто соглашение, на него нельзя полагаться. Начиная с PHP 8.0.0, в этом случае должно быть выброшено исключение TypeError.

Замечание:

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

Например, функция strlen() ожидает, что параметр $string будет строкой (string), не допускающей значение null. По историческим причинам PHP позволяет передавать null для этого параметра в принудительном режиме и параметр неявно приводится к строке (string), в результате чего получается значение "". В строгом режиме выбрасывается исключение TypeError.

<?php
var_dump(strlen(null));
// "Deprecated: Passing null to parameter #1 ($string) of type string is deprecated" начиная с PHP 8.1.0
// int(0)

var_dump(str_contains("foobar", null));
// "Deprecated: Passing null to parameter #2 ($needle) of type string is deprecated" начиная с PHP 8.1.0
// bool(true)
?>

Смотрите также

  • function_exists()
  • справочник функций
  • get_extension_funcs()
  • dl()


Анонимные функции

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

Анонимные функции реализуются с использованием класса 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 и переменные с теми же именами, что и параметры функции. Объявление типа возвращаемого значения функции должно быть помещено после конструкции use.

Пример #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("привет");

// Объявление типа возвращаемого значения идет после конструкции use
$example = function () use ($message): string {
return "привет, $message";
};
var_dump($example());
?>

Результатом выполнения данного примера будет что-то подобное:

Notice: Undefined variable: message in /example.php on line 6
NULL
string(12) "привет"
string(12) "привет"
string(12) "привет"
string(6) "мир"
string(20) "привет, мир"
string(20) "привет, мир"

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

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

Пример #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) {
}

При объявлении в контексте класса, текущий класс будет автоматически связан с ним, делая $this доступным внутри функций класса. Если вы не хотите автоматического связывания с текущим классом, используйте статические анонимные функции.

Статические анонимные функции

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

Пример #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 или любой переменной с тем же именем, что и параметр.

Примечания

Замечание: Внутри замыканий можно использовать функции func_num_args(), func_get_arg() и func_get_args().


Стрелочные функции

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

И анонимные, и стрелочные функции реализованы с использованием класса Closure.

Основной вид записи стрелочных функций: fn (argument_list) => expr.

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

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

Пример #1 Стрелочные функции захватывают переменные по значению автоматически

<?php

$y = 1;

$fn1 = fn($x) => $x + $y;
// эквивалентно использованию $y по значению:
$fn2 = function ($x) use ($y) {
return $x + $y;
};

var_export($fn1(3));
?>

Результат выполнения данного примера:

4

Это также работает во вложенных стрелочных функциях:

Пример #2 Стрелочные функции захватывают переменные по значению автоматически, даже когда они вложены

<?php

$z = 1;
$fn = fn($x) => fn($y) => $x * $y + $z;
// Выведет 51
var_export($fn(5)(10));
?>

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

Пример #3 Примеры использования стрелочных функций

<?php

fn(array $x) => $x;
static fn(): int => $x;
fn($x = 42) => $x;
fn(&$x) => $x;
fn&($x) => $x;
fn($x, ...$rest) => $rest;

?>

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

Пример #4 Значения из внешней области видимости не могут быть изменены стрелочными функциями

<?php

$x = 1;
$fn = fn() => $x++; // Ничего не изменит
$fn();
var_export($x); // Выведет 1

?>

Список изменений

Версия | Описание
7.4.0 | Стали доступны стрелочные функции.

Примечания

Замечание: Можно использовать func_num_args(), func_get_arg() и func_get_args() в стрелочной функции.


Callback-функции как объекты первого класса

Callback-функции как объекты первого класса представлены в PHP 8.1.0 как способ создания анонимных функций из callback-функций. Синтаксис заменяет существующий синтаксис вызова с использованием строк и массивов. Преимущество синтаксиса заключается в том, что он доступен для статического анализа и использует область видимости в точке, где получена callback-функция.

Синтаксис CallableExpr(...) используется для создания объекта Closure из callback-функции. CallableExpr принимает любое выражение, которое может быть вызвано напрямую в грамматике PHP:

Пример #1 Простой пример callback-функции как объекты первого класса

<?php
class Foo {
public function method() {}
public static function staticmethod() {}
public function __invoke() {}
}
$obj = new Foo();
$classStr = 'Foo';
$methodStr = 'method';
$staticmethodStr = 'staticmethod';
$f1 = strlen(...);
$f2 = $obj(...); // вызываемый объект
$f3 = $obj->method(...);
$f4 = $obj->$methodStr(...);
$f5 = Foo::staticmethod(...);
$f6 = $classStr::$staticmethodStr(...);
// традиционная callback-функция с использованием строки, массива
$f7 = 'strlen'(...);
$f8 = [$obj, 'method'](...);
$f9 = [Foo::class, 'staticmethod'](...);
?>

Замечание:

... является частью синтаксиса, а не пропуском.

У CallableExpr(...) та же семантика, что и у Closure::fromCallable(). То есть, в отличие от callback-функции с использованием строк и массивов, CallableExpr(...) учитывает область видимости в точке, где она создаётся:

Пример #2 Сравнение области действия CallableExpr(...) и традиционной callback-функции

<?php
class Foo {
public function getPrivateMethod() {
return [$this, 'privateMethod'];
}
private function privateMethod() {
echo __METHOD__, "\n";
}
}
$foo = new Foo;
$privateMethod = $foo->getPrivateMethod();
$privateMethod();
// Fatal error: Call to private method Foo::privateMethod() from global scope
// Это потому, что вызов выполняется вне Foo, и с этого момента будет проверяться видимость.
class Foo1 {
public function getPrivateMethod() {
// Использует область, в которой получена callback-функция.
return $this->privateMethod(...); // идентично Closure::fromCallable([$this, 'privateMethod']);
}
private function privateMethod() {
echo __METHOD__, "\n";
}
}
$foo1 = new Foo1;
$privateMethod = $foo1->getPrivateMethod();
$privateMethod(); // Foo1::privateMethod
?>

Замечание:

Создание объекта с помощью этого синтаксиса (например, new Foo(...)) не поддерживается, поскольку синтаксис new Foo() не считается callback-функцией.

Замечание:

Callback-функции как объекты первого класса нельзя комбинировать с оператором Nullsafe. Оба следующих результата приводят к ошибке времени компиляции:

<?php
$obj?->method(...);
$obj?->prop->method(...);
?>


Классы и объекты

Содержание

  • Введение
  • Основы
  • Свойства
  • Константы классов
  • Автоматическая загрузка классов
  • Конструкторы и деструкторы
  • Область видимости
  • Наследование
  • Оператор разрешения области видимости (::)
  • Ключевое слово static
  • Абстрактные классы
  • Интерфейсы объектов
  • Трейты
  • Анонимные классы
  • Перегрузка
  • Итераторы объектов
  • Магические методы
  • Ключевое слово final
  • Клонирование объектов
  • Сравнение объектов
  • Позднее статическое связывание
  • Объекты и ссылки
  • Сериализация объектов
  • Ковариантность и контравариантность
  • Журнал изменений ООП


Введение

PHP включает полноценную объектную модель. Некоторые из её особенностей: видимость, абстрактные и ненаследуемые (final) классы и методы, а также магические методы, интерфейсы и клонирование.

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 - значение вызывающего объекта.

Внимание

Вызов нестатического метода статически вызывает ошибку Error. До PHP 8.0.0 это привело бы к уведомлению об устаревании, и $this не была бы определена.

Пример #2 Некоторые примеры псевдо-переменной $this

<?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 7:

$this определена (A)

Deprecated: Non-static method A::foo() should not be called statically in %s  on line 27
$this не определена.

Deprecated: Non-static method A::foo() should not be called statically in %s  on line 20
$this не определена.

Deprecated: Non-static method B::bar() should not be called statically in %s  on line 32

Deprecated: Non-static method A::foo() should not be called statically in %s  on line 20
$this не определена.

Результат выполнения данного примера в PHP 8:

$this определена (A)

Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27
Stack trace:
#0 {main}
  thrown in %s  on line 27

Классы, доступные только для чтения

Начиная с PHP 8.2.0, класс может быть помечен модификатором readonly. Пометка класса как readonly добавит модификатор readonly к каждому объявленному свойству и предотвратит создание динамических свойств. Более того, невозможно добавить их поддержку с помощью атрибута AllowDynamicProperties. Попытка это сделать приведёт к ошибке компиляции.

<?php
#[\AllowDynamicProperties]
readonly class Foo {
}

// Fatal error: Cannot apply #[AllowDynamicProperties] to readonly class Foo
?>

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

<?php
readonly class Foo
{
public $bar;
}

// Fatal error: Readonly property Foo::$bar must have type
?>
<?php
readonly class Foo
{
public static int $bar;
}

// Fatal error: Readonly class Foo cannot declare static properties
?>

Класс readonly может быть расширен тогда и только тогда, когда дочерний класс также является классом readonly.

new

Для создания экземпляра класса используется директива new. Новый объект всегда будет создан, за исключением случаев, когда он содержит конструктор, в котором определён вызов исключения в случае возникновения ошибки. Рекомендуется определять классы до создания их экземпляров (в некоторых случаях это обязательно).

Если с директивой new используется строка (string), содержащая имя класса, то будет создан новый экземпляр этого класса. Если имя находится в пространстве имён, то оно должно быть задано полностью.

Замечание:

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

Пример #3 Создание экземпляра класса

<?php
$instance = new SimpleClass();

// Это же можно сделать с помощью переменной:
$className = 'SimpleClass';
$instance = new $className(); // new SimpleClass()
?>

Начиная с PHP 8.0.0, поддерживается использование оператора new с произвольными выражениями. Это позволяет создавать более сложные экземпляры, если выражение представлено в виде строки (string). Выражения должны быть заключены в круглые скобки.

Пример #4 Создание экземпляра с использованием произвольного выражения

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

<?php

class ClassA extends \stdClass {}
class ClassB extends \stdClass {}
class ClassC extends ClassB {}
class ClassD extends ClassA {}

function getSomeClass(): string
{
return 'ClassA';
}

var_dump(new (getSomeClass()));
var_dump(new ('Class' . 'B'));
var_dump(new ('Class' . 'C'));
var_dump(new (ClassD::class));
?>

Результат выполнения данного примера в PHP 8:

object(ClassA)#1 (0) {
}
object(ClassB)#1 (0) {
}
object(ClassC)#1 (0) {
}
object(ClassD)#1 (0) {
}

В контексте класса можно создать новый объект через new self и new parent.

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

Пример #5 Присваивание объекта

<?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 будет иметь это значение"
}

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

Пример #6 Создание новых объектов

<?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)

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

Пример #7 Доступ к свойствам/методам только что созданного объекта

<?php
echo (new DateTime())->format('Y');
?>

Результатом выполнения данного примера будет что-то подобное:

2016

Замечание: До PHP 7.1 аргументы не имели значения, если не определена функция конструктора.

Свойства и методы

Свойства и методы класса живут в разделённых "пространствах имён", так что возможно иметь свойство и метод с одним и тем же именем. Ссылки как на свойства, так и на методы имеют одинаковую нотацию, и получается, что получите вы доступ к свойству или же вызовете метод - определяется контекстом использования.

Пример #8 Доступ к свойству vs. вызов метода

<?php
class Foo
{
public $bar = 'свойство';

public function bar() {
return 'метод';
}
}

$obj = new Foo();
echo $obj->bar, PHP_EOL, $obj->bar(), PHP_EOL;

Результат выполнения данного примера:

свойство
метод

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

Пример #9 Вызов анонимной функции, содержащейся в свойстве

<?php
class Foo
{
public $bar;

public function __construct() {
$this->bar = function() {
return 42;
};
}
}

$obj = new Foo();

echo ($obj->bar)(), PHP_EOL;

Результат выполнения данного примера:

42

extends

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

Наследуемые константы, методы и свойства могут быть переопределены (за исключением случаев, когда метод или константа класса объявлены как final) путём объявления их с теми же именами, как и в родительском классе. Существует возможность доступа к переопределённым методам или статическим свойствам путём обращения к ним через parent::

Замечание: Начиная с PHP 8.1.0, константы можно объявлять окончательными (final).

Пример #10 Простое наследование классов

<?php
class ExtendClass extends SimpleClass
{
// Переопределение метода родителя
function displayVar()
{
echo "Расширенный класс\n";
parent::displayVar();
}
}

$extended = new ExtendClass();
$extended->displayVar();
?>

Результат выполнения данного примера:

Расширенный класс
значение по умолчанию

Правила совместимости сигнатуры

При переопределении метода его сигнатура должна быть совместима с родительским методом. В противном случае выдаётся фатальная ошибка или, до PHP 8.0.0, генерируется ошибка уровня E_WARNING. Сигнатура является совместимой, если она соответствует правилам контравариантности, делает обязательный параметр необязательным, добавляет только необязательные новые параметры и не ограничивает, а только ослабляет видимость. Это известно как принцип подстановки Барбары Лисков или сокращённо LSP. Правила совместимости не распространяются на конструктор и сигнатуру private методов, они не будут выдавать фатальную ошибку в случае несоответствия сигнатуры.

Пример #11 Совместимость дочерних методов

<?php

class Base
{
public function foo(int $a) {
echo "Допустимо\n";
}
}

class Extend1 extends Base
{
function foo(int $a = 5)
{
parent::foo($a);
}
}

class Extend2 extends Base
{
function foo(int $a, $b = 5)
{
parent::foo($a);
}
}

$extended1 = new Extend1();
$extended1->foo();
$extended2 = new Extend2();
$extended2->foo(1);

Результат выполнения данного примера:

Допустимо
Допустимо

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

Пример #12 Фатальная ошибка, когда дочерний метод удаляет параметр

<?php

class Base
{
public function foo(int $a = 5) {
echo "Допустимо\n";
}
}

class Extend extends Base
{
function foo()
{
parent::foo(1);
}
}

Результат выполнения данного примера в PHP 8 аналогичен:

Fatal error: Declaration of Extend::foo() must be compatible with Base::foo(int $a = 5) in /in/evtlq on line 13

Пример #13 Фатальная ошибка, когда дочерний метод делает необязательный параметр обязательным.

<?php

class Base
{
public function foo(int $a = 5) {
echo "Допустимо\n";
}
}

class Extend extends Base
{
function foo(int $a)
{
parent::foo($a);
}
}

Результат выполнения данного примера в PHP 8 аналогичен:

Fatal error: Declaration of Extend::foo(int $a) must be compatible with Base::foo(int $a = 5) in /in/qJXVC on line 13
Внимание

Переименование параметра метода в дочернем классе не является несовместимостью сигнатуры. Однако это не рекомендуется, так как приведёт к Error во время выполнения, если используются именованные аргументы.

Пример #14 Ошибка при использовании именованных аргументов и параметров, переименованных в дочернем классе

<?php

class A {
public function test($foo, $bar) {}
}

class B extends A {
public function test($a, $b) {}
}

$obj = new B;

// Передача параметров согласно контракту A::test()
$obj->test(foo: "foo", bar: "bar"); // ОШИБКА!

Результатом выполнения данного примера будет что-то подобное:

Fatal error: Uncaught Error: Unknown named parameter $foo in /in/XaaeN:14
Stack trace:
#0 {main}
  thrown in /in/XaaeN on line 14

::class

Ключевое слово class используется для разрешения имени класса. Чтобы получить полное имя класса ClassName, используйте ClassName::class. Обычно это довольно полезно при работе с классами, использующими пространства имён.

Пример #15 Разрешение имени класса

<?php
namespace NS {
class ClassName {
}

echo ClassName::class;
}
?>

Результат выполнения данного примера:

NS\ClassName

Замечание:

Разрешение имён класса с использованием ::class происходит на этапе компиляции. Это означает, что на момент создания строки с именем класса автозагрузки класса не происходит. Как следствие, имена классов раскрываются, даже если класс не существует. Ошибка в этом случае не выдаётся.

Пример #16 Отсутствует разрешение имени класса

<?php
print Does\Not\Exist::class;
?>

Результат выполнения данного примера:

Does\Not\Exist

Начиная с PHP 8.0.0, константа ::class также может использоваться для объектов. Это разрешение происходит во время выполнения, а не во время компиляции. То же самое, что и при вызове get_class() для объекта.

Пример #17 Разрешение имени объекта

<?php
namespace NS {
class ClassName {
}
}
$c = new ClassName();
print $c::class;
?>

Результат выполнения данного примера:

NS\ClassName

Методы и свойства Nullsafe

Начиная с PHP 8.0.0, к свойствам и методам можно также обращаться с помощью оператора "nullsafe": ?->. Оператор nullsafe работает так же, как доступ к свойству или методу, как указано выше, за исключением того, что если разыменование объекта выдаёт null, то будет возвращён null, а не выброшено исключение. Если разыменование является частью цепочки, остальная часть цепочки пропускается.

Аналогично заключению каждого обращения в is_null(), но более компактный.

Пример #18 Оператор Nullsafe

<?php

// Начиная с PHP 8.0.0, эта строка:
$result = $repository?->getUser(5)?->name;

// Эквивалентна следующему блоку кода:
if (is_null($repository)) {
$result = null;
} else {
$user = $repository->getUser(5);
if (is_null($user)) {
$result = null;
} else {
$result = $user->name;
}
}
?>

Замечание:

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


Свойства

Переменные, которые являются членами класса, называются свойства. Также их называют, используя другие термины, таких как поля, но в рамках этой документации, мы будем называть их свойствами. Они определяются с использованием хотя бы одного необязательного (за исключением readonly-свойств) модификатора (например, Область видимости, Ключевое слово static или, начиная с PHP 8.1.0, readonly), начиная с PHP 7.4, за которым следует необязательное объявление типа, за которым следует обычное объявление переменной. Это объявление может содержать инициализацию, но эта инициализация должна быть постоянным значением.

Замечание:

Устаревший способ объявления свойств класса — использование ключевого слова var вместо модификатора.

Замечание: Свойство, объявленное без модификатора Область видимости, будет объявлено как public.

В пределах методов класса доступ к нестатическим свойствам может быть получен с помощью -> (объектного оператора): $this->property (где property - имя свойства). Доступ к статическим свойствам осуществляется с помощью :: (двойного двоеточия): self::$property. Дополнительную информацию о различии статических и нестатических свойств смотрите в разделе Ключевое слово static.

Псевдопеременная $this доступна внутри любого метода класса, когда этот метод вызывается из контекста объекта. $this - значение вызывающего объекта.

Пример #1 Определение свойств

<?php
class SimpleClass
{
public $var1 = 'hello ' . 'world';
public $var2 = <<<EOD
hello world
EOD;
public $var3 = 1+2;
// неправильное определение свойств:
public $var4 = self::myStaticMethod();
public $var5 = $myVar;

// правильное определение свойств:
public $var6 = myConstant;
public $var7 = [true, false];

public $var8 = <<<'EOD'
hello world
EOD;

// Без модификатора области видимости:
static $var9;
readonly int $var10;

}
?>

Замечание:

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

Объявления типов

Начиная с PHP 7.4.0, определения свойств могут включать Объявление типов, за исключением типа callable.

Пример #2 Пример использования типизированных свойств

<?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, null);

var_dump($user->id);
var_dump($user->name);

?>

Результат выполнения данного примера:

int(1234)
NULL

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

Пример #3 Обращение к свойствам

<?php

class Shape
{
public int $numberOfSides;
public string $name;

public function setNumberOfSides(int $numberOfSides): void
{
$this->numberOfSides = $numberOfSides;
}

public function setName(string $name): void
{
$this->name = $name;
}

public function getNumberOfSides(): int
{
return $this->numberOfSides;
}

public function getName(): string
{
return $this->name;
}
}

$triangle = new Shape();
$triangle->setName("triangle");
$triangle->setNumberofSides(3);
var_dump($triangle->getName());
var_dump($triangle->getNumberOfSides());

$circle = new Shape();
$circle->setName("circle");
var_dump($circle->getName());
var_dump($circle->getNumberOfSides());
?>

Результат выполнения данного примера:

string(8) "triangle"
int(3)
string(6) "circle"

Fatal error: Uncaught Error: Typed property Shape::$numberOfSides must not be accessed before initialization

Readonly-свойства

Начиная с PHP 8.1.0, свойство можно объявить с помощью модификатора readonly, который предотвращает изменение свойства после инициализации.

Пример #4 Примеры readonly-свойств

<?php
class Test {
public readonly string $prop;
public function __construct(string $prop) {
// Правильная инициализация.
$this->prop = $prop;
}
}
$test = new Test("foobar");
// Правильное чтение.
var_dump($test->prop); // string(6) "foobar"
// Неправильное переопределение. Не имеет значения, что присвоенное значение такое же.
$test->prop = "foobar";
// Ошибка: невозможно изменить readonly-свойство Test::$prop
?>

Замечание:

Модификатор readonly может применяться только к типизированным свойствам. Readonly-свойство без ограничений типа можно создать с помощью типа Mixed.

Замечание:

Статические readonly-свойства не поддерживаются.

Readonly-свойство можно инициализировать только один раз и только из области, в которой оно было объявлено. Любое другое присвоение или изменение свойства приведёт к исключению Error.

Пример #5 Неправильная инициализация readonly-свойств

<?php
class Test1 {
public readonly string $prop;
}
$test1 = new Test1;
// Неправильная инициализация за пределами закрытой области.
$test1->prop = "foobar";
// Ошибка: не удаётся инициализировать readonly-свойство Test1::$prop из глобальной области
?>

Замечание:

Указание явного значения по умолчанию для readonly-свойств не допускается, потому что readonly-свойство со значением по умолчанию, по сути, то же самое, что и константа и поэтому не особенно полезно.

<?php
class Test {
// Ошибка: у readonly-свойства Test::$prop не может быть значения по умолчанию
public readonly int $prop = 42;
}
?>

Замечание:

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

Модификации не обязательно являются простыми присвоениями, всё перечисленное ниже также приведёт к исключению Error:

<?php
class Test {
public function __construct(
public readonly int $i = 0,
public readonly array $ary = [],
) {}
}
$test = new Test;
$test->i += 1;
$test->i++;
++$test->i;
$test->ary[] = 1;
$test->ary[0][] = 1;
$ref =& $test->i;
$test->i =& $ref;
byRef($test->i);
foreach ($test as &$prop);
?>

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

<?php
class Test {
public function __construct(public readonly object $obj) {}
}
$test = new Test(new stdClass);
// Правильное внутреннее изменение.
$test->obj->foo = 1;
// Неправильное переопределение.
$test->obj = new stdClass;
?>

Динамические свойства

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

Внимание

Динамические свойства устарели, начиная с PHP 8.2.0. Вместо этого рекомендуется объявлять свойство. Для работы с произвольными именами свойств, класс должен реализовать магические методы __get() и __set(). В крайнем случае, класс можно пометить атрибутом #[\AllowDynamicProperties].


Константы классов

Константы также могут быть объявлены в пределах одного класса. Область видимости констант по умолчанию public.

Замечание:

Константы класса могут быть переопределены дочерним классом. Начиная с PHP 8.1.0, константы класса не могут быть переопределены дочерним классом, если он определён как окончательный (final).

Интерфейсы также могут содержать константы. За примерами обращайтесь к разделу об интерфейсах.

К классу можно обратиться с помощью переменной. Значение переменной не может быть ключевым словом (например, 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";

$class = new MyClass();
$class->showConstant();

echo $class::CONSTANT."\n";
?>

Специальная константа ::class, которой на этапе компиляции присваивается полное имя класса, полезна при использовании с классами, использующими пространства имён.

Пример #2 Пример использования ::class с пространством имён

<?php
namespace foo {
class bar {
}

echo bar::class; // foo\bar
}
?>

Пример #3 Пример констант, заданных выражением

<?php
const ONE = 1;

class foo {
const TWO = ONE * 2;
const THREE = ONE + self::TWO;
const SENTENCE = 'Значение константы THREE - ' . self::THREE;
}
?>

Пример #4 Модификаторы видимости констант класса, начиная с PHP 7.1.0

<?php
class Foo {
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 для констант класса можно использовать модификаторы области видимости.


Автоматическая загрузка классов

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

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

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

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

До PHP 8.0.0 можно было использовать __autoload() для автозагрузки классов и интерфейсов. Однако это менее гибкая альтернатива spl_autoload_register(), функция __autoload() объявлена устаревшей в PHP 7.2.0 и удалена в PHP 8.0.0.

Замечание:

Функция spl_autoload_register() может быть вызвана несколько раз, чтобы зарегистрировать несколько автозагрузчиков. Выброс исключения из функции автозагрузки, однако, прервёт этот процесс и не позволит запускать дальнейшие функции автозагрузки. По этой причине выбрасывать исключения из функции автозагрузки настоятельно не рекомендуется.

Пример #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 ...
*/
?>

Смотрите также

  • unserialize()
  • unserialize_callback_func
  • unserialize_max_depth
  • spl_autoload_register()
  • spl_autoload()
  • __autoload()


Конструкторы и деструкторы

Конструктор

__construct(mixed ...$values = ""): void

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

Замечание: Конструкторы, определённые в классах-родителях, не вызываются автоматически, если дочерний класс определяет собственный конструктор. Чтобы вызвать конструктор, объявленный в родительском классе, требуется вызвать 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();
?>

В отличие от других методов, __construct() освобождается от обычных правил совместимости сигнатуры при наследовании.

Конструкторы - это обычные методы, которые вызываются при инстанциировании соответствующих объектов. Следовательно, они могут иметь произвольное количество аргументов, которые могут быть обязательными, могут быть типизированными и могут иметь значения по умолчанию. Аргументы конструктора указываются в круглых скобках после имени класса.

Пример #2 Использование аргументов в конструкторах

<?php
class Point {
protected int $x;
protected int $y;

public function __construct(int $x, int $y = 0) {
$this->x = $x;
$this->y = $y;
}
}

// Передаём оба параметра.
$p1 = new Point(4, 5);
// Передаём только обязательные параметры. Для $y используется значение по умолчанию 0.
$p2 = new Point(4);
// Вызываем с именованными параметрами (начиная с PHP 8.0):
$p3 = new Point(y: 5, x: 4);
?>

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

Конструкторы в старом стиле

До PHP 8.0.0, классы в глобальном пространстве имён будут интерпретировать метод, названный так же, как класс, как конструктор старого стиля. Этот синтаксис считается устаревшим и будет вызывать ошибку уровня E_DEPRECATED, но всё равно эти методы будут вызываться в качестве конструктора. Если в классе присутствуют и __construct(), и метод с именем класса, то в качестве конструктора будет вызван __construct().

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

В новом коде всегда используйте __construct().

Определение свойств объекта в конструкторе

Начиная с PHP 8.0.0, параметры конструктора можно использовать для задания соответствующих свойств объекта. Это довольно распространённая практика — присваивать свойствам объекта параметры, переданные в конструктор, не производя никаких дополнительных преобразований. Определение свойств класса в конструкторе позволяет значительно сократить количество шаблонного кода для такого случая. Пример выше можно будет переписать следующим образом:

Пример #3 Использование определения свойств в конструкторе

<?php
class Point {
public function __construct(protected int $x, protected int $y = 0) {
}
}

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

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

Замечание:

Свойства объектов не могут быть типа callable в связи с неоднозначностью которую они представляют для движка PHP. Соответственно и свойства определяемые в конструкторе также не могут быть типа callable. Любые другие декларации типов допустимы.

Замечание:

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

New в инициализации класса

Начиная с PHP 8.1.0, объекты можно использовать в качестве значений параметров по умолчанию, статических переменных и глобальных констант, а также в аргументах атрибутов. Объекты также теперь можно передавать в define().

Замечание:

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

Пример #4 Пример использования new в инициализации класса

<?php
// Всё допустимо:
static $x = new Foo;
const C = new Foo;

function test($param = new Foo) {}

#[AnAttribute(new Foo)]
class Test {
public function __construct(
public $prop = new Foo,
) {}
}
// Всё не допустимо (ошибка во времени компиляции):
function test(
$a = new (CLASS_NAME_CONSTANT)(), // динамическое имя класса
$b = new class {}, // анонимный класс
$c = new A(...[]), // распаковка аргументов
$d = new B($abc), // неподдерживаемое постоянное выражение
) {}
?>

Статические методы создания объекта

PHP поддерживает только один конструктор для класса. Однако в некоторых случаях есть необходимость создавать объект разными путями в зависимости от разных входных данных. Рекомендуемый способ - использовать статические методы как обёртки над конструктором.

Пример #5 Использование статических методов для создания объектов

<?php
class Product {

private ?int $id;
private ?string $name;

private function __construct(?int $id = null, ?string $name = null) {
$this->id = $id;
$this->name = $name;
}

public static function fromBasicData(int $id, string $name): static {
$new = new static($id, $name);
return $new;
}

public static function fromJson(string $json): static {
$data = json_decode($json);
return new static($data['id'], $data['name']);
}

public static function fromXml(string $xml): static {
// Пользовательская логика.
$data = convert_xml_to_array($xml);
$new = new static();
$new->id = $data['id'];
$new->name = $data['name'];
return $new;
}
}

$p1 = Product::fromBasicData(5, 'Widget');
$p2 = Product::fromJson($some_json_string);
$p3 = Product::fromXml($some_xml_string);

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

В примере выше три публичных статических метода демонстрируют различные способы создания экземпляра объекта.

  • fromBasicData() принимает явные параметры, создаёт экземпляр класса через конструктор и возвращает объект.
  • fromJson() принимает JSON строку, производит над ней некоторые преобразования, извлекает данные необходимые для создания объекта и, так же как и предыдущий метод, вызывает конструктор и возвращает созданный объект.
  • fromXml() принимает XML строку, извлекает нужные данные и, так как в конструкторе нет обязательных параметров, вызывает его без них. После этого, так как ему доступны скрытые свойства, он присваивает им значения напрямую. После чего возвращает готовый объект.

Во всех трёх случаях, ключевое слово static транслируется в имя класса, в котором этот код вызывается. В нашем случае Product.

Деструкторы

__destruct(): void

PHP предоставляет концепцию деструктора, аналогичную с той, которая применяется в других ОО-языках, таких как C++. Деструктор будет вызван при освобождении всех ссылок на определённый объект или при завершении скрипта (порядок выполнения деструкторов не гарантируется).

Пример #6 Пример использования деструктора

<?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. Свойства, объявленные без явного ключевого слова области видимости, определяются как общедоступные (public).

Пример #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

?>

Область видимости метода

Методы класса могут быть определены как 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 использует этот принцип в своей объектной модели. Этот принцип повлияет на то, как многие классы и объекты связаны друг с другом.

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

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

Закрытые методы родительского класса недоступны для дочернего класса. В результате дочерние классы могут повторно реализовать закрытый метод без учёта обычных правил наследования. Однако до PHP 8.0.0 к закрытым методам применялись ограничения final и static. Начиная с PHP 8.0.0, единственное ограничение закрытого метода, которое применяется - это конструкторы private final, поскольку это обычный способ "отключить" конструктор при использовании вместо него статичных фабричных методов.

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

Замечание:

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

Замечание:

Не разрешается переопределять свойство чтения-записи с помощью readonly-свойства или наоборот.

<?php
class A {
public int $prop;
}
class B extends A {
// Нельзя: read-write -> readonly
public readonly int $prop;
}
?>

Пример #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 просто супер'

?>

Совместимость типов возвращаемых значений с внутренними классами

До PHP 8.1.0 большинство внутренних классов или методов не объявляли свои типы возвращаемых значений и при их расширении допускался любой тип возвращаемого значения.

Начиная с PHP 8.1.0, большинство внутренних методов начали "предварительно" объявлять тип возвращаемого значения. В этом случае тип возвращаемого значения методов должен быть совместим с расширяемым родителем; в противном случае выдаётся уведомление об устаревании. Обратите внимание, что отсутствие явного объявления типа возвращаемого значения также считается несоответствием сигнатуры и, соответственно, приводит к уведомлению об устаревании.

Если тип возвращаемого значения не может быть объявлен для переопределяемого метода из-за проблем с совместимостью с различными версиями PHP, может быть добавлен атрибут ReturnTypeWillChange, чтобы заглушить уведомление об устаревании.

Пример #2 Переопределяющий метод не объявляет никакого типа возвращаемого значения

<?php
class MyDateTime extends DateTime
{
public function modify(string $modifier) { return false; }
}

// "Deprecated: Return type of MyDateTime::modify(string $modifier) should either be compatible with DateTime::modify(string $modifier): DateTime|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice", начиная с PHP 8.1.0
?>

Пример #3 Переопределяющий метод объявляет неверный тип возвращаемого значения

<?php
class MyDateTime extends DateTime
{
public function modify(string $modifier): ?DateTime { return null; }
}

// "Deprecated: Return type of MyDateTime::modify(string $modifier): ?DateTime should either be compatible with DateTime::modify(string $modifier): DateTime|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice", начиная с PHP 8.1.0
?>

Пример #4 Переопределяющий метод объявляет неверный тип возвращаемого значения без уведомления об устаревании

<?php
class MyDateTime extends DateTime
{
/**
* @return DateTime|false
*/
#[\ReturnTypeWillChange]
public function modify(string $modifier) { return false; }
}

// Уведомление об устаревании не выводится
?>


Оператор разрешения области видимости (::)

Оператор разрешения области видимости (также называемый "Paamayim Nekudotayim") или просто "двойное двоеточие" - это лексема, позволяющая обращаться к статическим свойствам, константам и переопределённым свойствам или методам класса.

При обращении к этим элементам извне класса, необходимо использовать имя этого класса.

Можно обратиться к классу с помощью переменной. Значение переменной не должно быть ключевым словом (например, self, parent или static).

"Paamayim Nekudotayim" на первый взгляд может показаться странным словосочетанием для обозначения двойного двоеточия. Однако, во время создания Zend Engine версии 0.5 (который входил в PHP3), команда Zend выбрала именно это обозначение. Оно на самом деле означает "двойное двоеточие" - на иврите!

Пример #1 Использование :: вне объявления класса

<?php
class MyClass {
const CONST_VALUE = 'Значение константы';
}

$classname = 'MyClass';
echo $classname::CONST_VALUE;

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();

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 обратитесь по вышеуказанным страницам.

Объявление свойств и методов класса статическими позволяет обращаться к ним без создания экземпляра класса. К ним также можно получить доступ статически в созданном экземпляре объекта класса.

Статические методы

Так как статические методы вызываются без создания экземпляра класса, то псевдопеременная $this недоступна внутри статических методов.

Внимание

Вызов нестатических методов статически вызывает ошибку Error.

До PHP 8.0.0 вызов нестатических методов статически был объявлен устаревшим и вызывал ошибку уровня E_DEPRECATED.

Пример #1 Пример статического метода

<?php
class Foo {
public static function aStaticMethod() {
// ...
}
}

Foo::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod();
?>

Статические свойства

Доступ к статическим свойствам осуществляется с помощью оператора разрешения области видимости (::), и к ним нельзя получить доступ через оператор объекта (->).

На класс можно ссылаться с помощью переменной. Значение переменной в таком случае не может быть ключевым словом (например, 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";
$classname = 'Foo';
print $classname::$my_static . "\n";

print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>

Результат выполнения данного примера в PHP 8 аналогичен:

foo
foo

Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23

Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23

foo
foo
foo
foo


Абстрактные классы

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

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

Пример #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


Интерфейсы объектов

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

Интерфейсы объявляются так же, как и обычные классы, но с использованием ключевого слова interface вместо class. Тела методов интерфейсов должны быть пустыми.

Все методы, определённые в интерфейсах, должны быть общедоступными, что следует из самой природы интерфейса.

На практике интерфейсы используются в двух взаимодополняющих случаях:

  • Чтобы позволить разработчикам создавать объекты разных классов, которые могут использоваться взаимозаменяемо, поскольку они реализуют один и тот же интерфейс или интерфейсы. Типичный пример - несколько служб доступа к базе данных, несколько платёжных шлюзов или разных стратегий кеширования. Различные реализации могут быть заменены без каких-либо изменений в коде, который их использует.
  • Чтобы разрешить функции или методу принимать и оперировать параметром, который соответствует интерфейсу, не заботясь о том, что ещё может делать объект или как он реализован. Эти интерфейсы часто называют Iterable, Cacheable, Renderable и так далее, чтобы описать их поведение.

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

Замечание:

Хотя они поддерживаются, использование конструкторов в интерфейсах настоятельно не рекомендуется. Это значительно снижает гибкость объекта, реализующего интерфейс. Кроме того, к конструкторам не применяются правила наследования, что может привести к противоречивому и неожиданному поведению.

implements

Для реализации интерфейса используется оператор implements. Класс должен реализовать все методы, описанные в интерфейсе, иначе произойдёт фатальная ошибка. При желании классы могут реализовывать более одного интерфейса, разделяя каждый интерфейс запятой.

Внимание

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

Замечание:

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

Замечание:

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

Константы

Интерфейсы могут содержать константы. Константы интерфейсов работают точно так же, как и константы классов. До PHP 8.1.0 они не могли быть переопределены классом или интерфейсом, который их наследует.

Примеры

Пример #1 Пример интерфейса

<?php

// Объявим интерфейс 'Template'
interface Template
{
public function setVariable($name, $var);
public function getHtml($template);
}

// Реализация интерфейса
// Это будет работать
class WorkingTemplate implements Template
{
private $vars = [];

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 (Template::getHtml)
// (Фатальная ошибка: Класс BadTemplate содержит 1 абстрактный метод
// и поэтому должен быть объявлен абстрактным (Template::getHtml))
class BadTemplate implements Template
{
private $vars = [];

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
class Foo {}
class Bar extends Foo {}

interface A {
public function myfunc(Foo $arg): Foo;
}

interface B {
public function myfunc(Bar $arg): Bar;
}

class MyClass implements A, B
{
public function myfunc(Foo $arg): Bar
{
return new Bar();
}
}
?>

Пример #4 Множественное наследование интерфейсов

<?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()
{
}
}
?>

Пример #5 Интерфейсы с константами

<?php
interface A
{
const B = 'Константа интерфейса';
}

// Выведет: Константа интерфейса
echo A::B;

class B implements A
{
const B = 'Константа класса';
}

// Выведет: Константа класса
// До PHP 8.1.0 этот код не будет работать,
// потому что было нельзя переопределять константы.
echo B::B;
?>

Пример #6 Интерфейсы с абстрактными классами

<?php
interface A
{
public function foo(string $s): string;

public function bar(int $i): int;
}

// Абстрактный класс может реализовывать только часть интерфейса.
// Классы, расширяющие абстрактный класс, должны реализовать все остальные.
abstract class B implements A
{
public function foo(string $s): string
{
return $s . PHP_EOL;
}
}

class C extends B
{
public function bar(int $i): int
{
return $i * 2;
}
}
?>

Пример #7 Одновременное расширение и внедрение

<?php

class One
{
/* ... */
}

interface Usable
{
/* ... */
}

interface Updatable
{
/* ... */
}

// Порядок ключевых слов здесь важен. "extends" должно быть первым.
class Two extends One implements Usable, Updatable
{
/* ... */
}
?>

Интерфейс, совместно с объявлениями типов, предоставляет отличный способ проверки того, что определённый объект содержит определённый набор методов. Смотрите также оператор instanceof и объявление типов.


Трейты

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;
}
}
?>

Изменение видимости метода

Используя синтаксис оператора 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!

Абстрактные члены трейтов

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

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

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

Пример #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;
}
}
?>

Статические члены трейта

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

Замечание:

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

Пример #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 StaticExample {
public static $static = 'foo';
}
class Example {
use StaticExample;
}
echo Example::$static;
?>

Свойства

Трейты могут также определять свойства.

Пример #12 Определение свойств

<?php
trait PropertiesTrait {
public $x = 1;
}

class PropertiesExample {
use PropertiesTrait;
}

$example = new PropertiesExample;
$example->x;
?>

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

Пример #13 Разрешение конфликтов

<?php
trait PropertiesTrait {
public $same = true;
public $different1 = false;
public bool $different2;
public bool $different3;
}

class PropertiesExample {
use PropertiesTrait;
public $same = true;
public $different1 = true; // Фатальная ошибка
public string $different2; // Фатальная ошибка
readonly protected bool $different3; // Фатальная ошибка
}
?>

Константы

Начиная с версии PHP 8.2.0, трейты могут также определять константы.

Пример #14 Определение констант

<?php
trait ConstantsTrait {
public const FLAG_MUTABLE = 1;
final public const FLAG_IMMUTABLE = 5;
}

class ConstantsExample {
use ConstantsTrait;
}

$example = new ConstantsExample;
echo $example::FLAG_MUTABLE; // 1
?>

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

Пример #15 Разрешение конфликтов

<?php
trait ConstantsTrait {
public const FLAG_MUTABLE = 1;
final public const FLAG_IMMUTABLE = 5;
}

class ConstantsExample {
use ConstantsTrait;
public const FLAG_IMMUTABLE = 5; // Фатальная ошибка
}
?>


Анонимные классы

Анонимные классы полезны, когда нужно создать простые, одноразовые объекты.

<?php

// Использование явного класса
class Logger
{
public function log($msg)
{
echo $msg;
}
}

$util->setLogger(new Logger());

// Использование анонимного класса
$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 отличается от большинства объектно-ориентированных языков. Традиционно перегрузка означает возможность иметь несколько одноимённых методов с разным количеством и типами аргументов.

Перегрузка свойств

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.

Перегрузка свойств работает только в контексте объекта. Данные магические методы не будут вызваны в статическом контексте. Поэтому эти методы не должны объявляться статическими. При объявлении любого магического метода как static будет выдано предупреждение.

Замечание:

Возвращаемое значение __set() будет проигнорировано из-за способа обработки в PHP оператора присваивания. Аналогично, __get() никогда не вызывается при объединении присваиваний, например, подобным образом:

 $a = $obj->b = 8;

Замечание:

PHP не будет вызывать перегруженный метод изнутри того же перегруженного метода. Это означает, что, например, написание return $this->foo внутри __get() вернёт null и вызовет ошибку уровня E_WARNING, если не определено свойство foo, вместо того, чтобы вызвать метод __get() во второй раз. Однако методы перегрузки могут неявно вызывать другие методы перегрузки (например, метод __set() вызывает метод __get()).

Пример #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;
}

public function __isset($name)
{
echo "Установлено ли '$name'?\n";
return isset($this->data[$name]);
}

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";
}

public static function __callStatic($name, $arguments) {
// Замечание: значение $name регистрозависимо.
echo "Вызов статического метода '$name' "
. implode(', ', $arguments). "\n";
}
}

$obj = new MethodTest;
$obj->runTest('в контексте объекта');

MethodTest::runTest('в статическом контексте');
?>

Результат выполнения данного примера:

Вызов метода 'runTest' в контексте объекта
Вызов статического метода 'runTest' в статическом контексте


Итераторы объектов

PHP предоставляет такой способ объявления объектов, который даёт возможность пройти по списку элементов данного объекта, например, с помощью оператора 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 проитерировал все доступные и принадлежащие объекту видимые свойства.

Смотрите также

  • Генераторы
  • Iterator
  • IteratorAggregate
  • Итераторы


Магические методы

Магические методы - это специальные методы, которые переопределяют действие PHP по умолчанию, когда над объектом выполняются определённые действия.

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

Все имена методов, начинающиеся с __, зарезервированы PHP. Не рекомендуется использовать имена методов с __ в PHP, если вы не хотите использовать соответствующую магическую функциональность.

Следующие названия методов считаются магическими:
__construct(),
__destruct(),
__call(),
__callStatic(),
__get(),
__set(),
__isset(),
__unset(),
__sleep(),
__wakeup(),
__serialize(),
__unserialize(),
__toString(),
__invoke(),
__set_state(),
__clone() и
__debugInfo()

Внимание

Все магические методы, за исключением
__construct(),
__destruct() и
__clone(),
ДОЛЖНЫ быть объявлены как public,
в противном случае будет вызвана ошибка уровня E_WARNING.
До PHP 8.0.0 для магических методов
__sleep(),
__wakeup(),
__serialize(),
__unserialize() и
__set_state()
не выполнялась проверка.

Внимание

Если объявления типа используются в определении магического метода, они должны быть идентичны сигнатуре, описанной в этом документе. В противном случае выдаётся фатальная ошибка. До PHP 8.0.0 диагностические сообщения не отправлялись. Однако __construct() и __destruct() не должны объявлять возвращаемый тип; в противном случае выдаётся фатальная ошибка.

__sleep() и __wakeup()

public __sleep(): array
public __wakeup(): void

Функция serialize() проверяет, присутствует ли в классе метод с магическим именем __sleep(). Если это так, то этот метод выполняется до любой операции сериализации. Он может очистить объект и должен возвращать массив с именами всех переменных этого объекта, которые должны быть сериализованы. Если метод ничего не возвращает, то сериализуется null и выдаётся предупреждение E_NOTICE.

Замечание:

Недопустимо возвращать в __sleep() имена закрытых свойств в родительском классе. Это приведёт к ошибке уровня E_NOTICE. Вместо этого вы можете использовать __serialize().

Замечание:

Начиная с PHP 8.0.0, возврат значения, не являющегося массивом, из __sleep() приводит к предупреждению. Ранее выдавалось уведомление.

Предполагаемое использование __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();
}
}?>

__serialize() и __unserialize()

public __serialize(): array
public __unserialize(array $data): void

serialize() проверяет, есть ли в классе функция с магическим именем __serialize(). Если да, функция выполняется перед любой сериализацией. Она должна создать и вернуть ассоциативный массив пар ключ/значение, которые представляют сериализованную форму объекта. Если массив не возвращён, будет выдано TypeError.

Замечание:

Если и __serialize() и __sleep() определены в одном и том же объекте, будет вызван только метод __serialize(). __sleep() будет игнорироваться. Если объект реализует интерфейс Serializable, метод serialize() интерфейса будет игнорироваться, а вместо него будет использован __serialize().

Предполагаемое использование __serialize() заключается в определении удобного для сериализации произвольного представления объекта. Элементы массива могут соответствовать свойствам объекта, но это не обязательно.

И наоборот, unserialize() проверяет наличие магической функции __unserialize(). Если функция присутствует, ей будет передан восстановленный массив, который был возвращён из __serialize(). Затем он может восстановить свойства объекта из этого массива соответствующим образом.

Замечание:

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

Замечание:

Функция доступна с PHP 7.4.0.

Пример #2 Сериализация и десериализация

<?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 __serialize(): array
{
return [
'dsn' => $this->dsn,
'user' => $this->username,
'pass' => $this->password,
];
}

public function __unserialize(array $data): void
{
$this->dsn = $data['dsn'];
$this->username = $data['user'];
$this->password = $data['pass'];

$this->connect();
}
}?>

__toString()

public __toString(): string

Метод __toString() позволяет классу решать, как он должен реагировать при преобразовании в строку. Например, что вывести при выполнении echo $obj;.

Внимание

Начиная с PHP 8.0.0, возвращаемое значение следует стандартной семантике типа PHP, что означает, что оно будет преобразовано в строку (string), если возможно, и если strict typing отключён.

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

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

В PHP 7.4 возвращаемое значение ДОЛЖНО быть строкой (string), иначе выдаётся Error.

До PHP 7.4.0 возвращаемое значение должно быть строкой (string), в противном случае выдаётся фатальная ошибка E_RECOVERABLE_ERROR. is emitted.

Внимание

Нельзя выбросить исключение из метода __toString() до PHP 7.4.0. Это приведёт к фатальной ошибке.

Пример #3 Простой пример

<?php
// Объявление простого класса
class TestClass
{
public $foo;

public function __construct($foo)
{
$this->foo = $foo;
}

public function __toString()
{
return $this->foo;
}
}

$class = new TestClass('Привет');
echo $class;
?>

Результат выполнения данного примера:

Привет

__invoke()

__invoke( ...$values): mixed

Метод __invoke() вызывается, когда скрипт пытается выполнить объект как функцию.

Пример #4 Использование __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)

Пример #5 Пример использования __invoke()

<?php
class Sort
{
private $key;

public function __construct(string $key)
{
$this->key = $key;
}

public function __invoke(array $a, array $b): int
{
return $a[$this->key] <=> $b[$this->key];
}
}

$customers = [
['id' => 1, 'first_name' => 'John', 'last_name' => 'Do'],
['id' => 3, 'first_name' => 'Alice', 'last_name' => 'Gustav'],
['id' => 2, 'first_name' => 'Bob', 'last_name' => 'Filipe']
];

// сортировка клиентов по имени
usort($customers, new Sort('first_name'));
print_r($customers);

// сортировка клиентов по фамилии
usort($customers, new Sort('last_name'));
print_r($customers);
?>

Результат выполнения данного примера:

Array
(
    [0] => Array
        (
            [id] => 3
            [first_name] => Alice
            [last_name] => Gustav
        )

    [1] => Array
        (
            [id] => 2
            [first_name] => Bob
            [last_name] => Filipe
        )

    [2] => Array
        (
            [id] => 1
            [first_name] => John
            [last_name] => Do
        )

)
Array
(
    [0] => Array
        (
            [id] => 1
            [first_name] => John
            [last_name] => Do
        )

    [1] => Array
        (
            [id] => 2
            [first_name] => Bob
            [last_name] => Filipe
        )

    [2] => Array
        (
            [id] => 3
            [first_name] => Alice
            [last_name] => Gustav
        )

)

__set_state()

static __set_state(array $properties): object

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

Единственным параметром этого метода является массив, содержащий экспортируемые свойства в виде ['property' => value, ...].

Пример #6 Использование __set_state()

<?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';

$b = var_export($a, true);
var_dump($b);
eval('$c = ' . $b . ';');
var_dump($c);
?>

Результат выполнения данного примера:

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Замечание: При экспорте объекта var_export() не проверяет, реализует ли класс объекта метод __set_state(), поэтому повторный импорт объектов приведёт к исключению Error, если метод __set_state() не реализован. В частности, это относится к некоторым внутренним классам. Необходимость проверки, реализует ли импортируемый класс метод __set_state(), полностью лежит на разработчике.

__debugInfo()

__debugInfo(): array

Этот метод вызывается функцией var_dump(), когда необходимо вывести список свойств объекта. Если этот метод не определён, тогда будут выведены все свойства объекта c модификаторами public, protected и private.

Пример #7 Использование __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 предоставляет ключевое слово 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()
// (Окончательный (final) метод BaseClass::moreТesting() не может быть переопределён)
?>

Пример #2 Пример окончательного (final) класса

<?php
final class BaseClass {
public function test() {
echo "Вызван метод BaseClass::test()\n";
}

// Поскольку класс уже является final, ключевое слово 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))
?>

Пример #3 Пример окончательной (final) константы класса, начиная с PHP 8.1.0

<?php
class Foo
{
final public const X = "foo";
}

class Bar extends Foo
{
public const X = "bar";
}

// Ошибка: Bar::X не может переопределить окончательную константу Foo::X
?>

Замечание: Свойства не могут быть объявлены окончательными: только классы, методы и константы (начиная с PHP 8.1.0) могут быть объявлены как окончательные (final). Начиная с PHP 8.0.0, закрытые методы не могут быть объявлены окончательными, за исключением конструктора.


Клонирование объектов

Создание копии объекта с абсолютно идентичными свойствами не всегда является приемлемым вариантом. Хорошим примером необходимости копирования конструкторов может послужить ситуация, когда у вас есть объект, представляющий собой окно GTK и содержащий ресурс-идентификатор этого окна; когда вы создаёте копию этого объекта, вам может понадобиться, чтобы копия объекта содержала ресурс-идентификатор нового окна. Другим примером может послужить ситуация, когда ваш объект содержит ссылку на какой-либо другой используемый объект и, когда вы создаёте копию родительского объекта, вам нужно также создать новый экземпляр этого другого объекта, так, чтобы копия объекта-контейнера содержала собственный отдельный экземпляр содержащегося объекта.

Копия объекта создаётся с использованием ключевого слова clone (который вызывает метод __clone() объекта, если это возможно).

$copy_of_object = clone $object;

При клонировании объекта, PHP выполняет поверхностную копию всех свойств объекта. Любые свойства, являющиеся ссылками на другие переменные, останутся ссылками.

__clone(): 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->object1, иначе
// он будет указывать на один и тот же объект.
$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
        )

)

Возможно обращаться к свойствам/методам только что склонированного объекта:

Пример #2 Доступ к только что склонированному объекту

<?php
$dateTime = new DateTime();
echo (clone $dateTime)->format('Y');
?>

Результатом выполнения данного примера будет что-то подобное:

2016


Сравнение объектов

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

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

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

Пример #1 Пример сравнения объектов

<?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 реализует функцию, называемую позднее статическое связывание, которая может быть использована для того, чтобы получить ссылку на вызываемый класс в контексте статического наследования.

Если говорить более точно, позднее статическое связывание сохраняет имя класса указанного в последнем "неперенаправленном вызове". В случае статических вызовов это явно указанный класс (обычно слева от оператора ::); в случае не статических вызовов это класс объекта. "Перенаправленный вызов" - это статический вызов, начинающийся с 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, который часто обсуждается, является "передача объектов по ссылке по умолчанию". Это не совсем верно. Данный раздел уточняет это понятие, используя некоторые примеры.

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

Пример #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() может использовать эту строку для восстановления исходного значения переменной. Использование сериализации для сохранения объекта сохранит все его переменные. Методы в объекте не будут сохранены, только имя класса.

Для того, чтобы иметь возможность выполнить unserialize() для объекта, нужно, чтобы класс этого объекта был определён заранее. То есть, если у вас есть экземпляр класса А, и вы сделаете его сериализацию, вы получите его строковое представление, которое содержит значение всех переменных, содержащихся в нем. Для того, чтобы восстановить объект из строки в другом 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();
?>

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

Поэтому, если в приведённом выше примере $a стала частью сессии путём добавления нового ключа в суперглобальный массив $_SESSION, вы должны подключать файл classa.inc на всех ваших страницах, а не только page1.php и page2.php.

Обратите внимание, что, кроме вышеприведённого совета, также можно подключиться к событиям сериализации и десериализации объекта с помощью методов __sleep() и __wakeup(). Метод __sleep() также позволяет сериализовать лишь некоторое подмножество свойств объекта.


Ковариантность и контравариантность

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

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

Объявление типа считается более конкретным в следующем случае:

  • Удалено объединение типов
  • Добавлено пересечение типов
  • Тип класса изменяется на тип дочернего класса
  • iterable изменён на массив (array) или Traversable
В противном случае класс типа считается менее конкретным.

Ковариантность

Чтобы проиллюстрировать, как работает ковариантность, создадим простой абстрактный родительский класс Animal. 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.

Версия | Описание
8.1.0 | Добавлено: Поддержка модификатора final для констант класса. Кроме того, константы интерфейса по умолчанию становятся переопределяемыми.
8.0.0 | Добавлено: Поддержка оператора Nullsafe ?-> для доступа к свойствам и методам объектов, которые могут быть равны null.
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, PHP 8)

Что такое пространства имён? В широком смысле - это один из способов инкапсуляции элементов. Такое абстрактное понятие можно увидеть во многих местах. Например, в любой операционной системе директории служат для группировки связанных файлов и выступают в качестве пространства имён для находящихся в них файлов. В качестве конкретного примера файл foo.txt может находиться сразу в обеих директориях: /home/greg и /home/other, но две копии foo.txt не могут существовать в одной директории. Кроме того, для доступа к foo.txt извне директории /home/greg, мы должны добавить имя директории перед именем файла используя разделитель, чтобы получить /home/greg/foo.txt. Этот же принцип распространяется и на пространства имён в программировании.

В 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 8)

Хотя любой корректный 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 8)

Так же как файлы и каталоги, пространства имён 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, PHP 8)

Несколько пространств имён также можно описать в одном файле с помощью двух допустимых синтаксических конструкций.

Пример #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 8)

До обсуждения использования пространств имён важно понять, как 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 8)

На реализацию пространств имён в 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 8)

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, PHP 8)

Возможность ссылаться на внешнее абсолютное имя по псевдониму или импортированию - это важная особенность пространств имён. Это похоже на возможность файловых систем unix создавать символические ссылки на файл или директорию.

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;

// импортирование функции
use function My\Full\functionName;

// псевдоним функции
use function My\Full\functionName as func;

// импортирование константы
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

Классы, функции и константы, импортируемые из одного и того же namespace, могут группироваться в одном операторе use.

<?php

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;

// Эквивалентно следующему групповому использованию
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 8)

Без определения пространства имён, определения всех классов и функций находятся в глобальном пространстве - так же, как это было в 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 8)

Внутри пространства имён, когда 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, PHP 8)

Для этих правил здесь приведены несколько важных определений:

Определения имени пространства имён
Неполное имя

Это идентификатор без разделителя пространств имён, например, 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\foo;, использование foo() разрешается как A\B\foo.
  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, PHP 8)

Этот список вопросов разделён на две части: общие вопросы и некоторые особенности реализации, которые полезны для более полного понимания.

Сперва, общие вопросы.

  1. Если я не использую пространства имён, следует ли считать что-либо из этого важным?
  2. Как мне использовать внутренние или глобальные классы в пространстве имён?
  3. Как мне использовать функции классов в пространствах имён, или константы в их собственном пространстве имён?
  4. Как такое имя как \my\name или \name преобразуется?
  5. Как такое имя, как my\name преобразуется?
  6. Как неполное имя класса такое как name преобразуется?
  7. Как неполное имя функции или неполное имя константы такое как name преобразуется?

Некоторые детали реализации пространств имён, которые полезно понимать.

  1. Импортируемые имена не должны конфликтовать с классами, определёнными в том же файле.
  2. Вложенные пространства имён недопустимы.
  3. Динамические имена пространств имён (идентификаторы, взятые в кавычки) должны экранировать символ обратного слеша.
  4. Ссылаться на неопределённые константы, используя обратный слеш, нельзя. Выводится фатальная ошибка
  5. Невозможно переопределить специальные константы, такие как 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 $parameter_type_example = null) {}

$a = \DirectoryIterator::CURRENT_AS_FILEINFO;

// расширение внутреннего или глобального класса
class MyException extends \Exception {}
?>

Как мне использовать функции классов в пространствах имён или константы в их собственном пространстве имён?

Пример #4 Доступ ко внутренним классам, функциям или константам в пространствах имён

<?php
namespace foo;

class MyClass {}

// использование класса из текущего пространства имен в качестве типа параметра
function test(MyClass $parameter_type_example = null) {}
// другой способ использовать класс из текущего пространства имен в качестве типа параметра
function test(\foo\MyClass $parameter_type_example = 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 другого имени, то применяется этот синоним.

В ином случае, текущее имя пространства имён становится префиксом к 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 {}
}
?>

Динамические имена пространств имён (идентификаторы, взятые в кавычки) должны экранировать символ обратного слеша.

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

Пример #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 8 >= 8.1.0)

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

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

Самым популярным примером перечислений является встроенный логический тип, который представляет собой перечислимый тип с допустимыми значениями true и false. Перечисления позволяют разработчикам определять свои собственные произвольно надёжные перечисления.


Основы перечислений

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

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
?>

Это объявление создаёт новый перечислимый тип с именем Suit, у которого четыре и только четыре допустимых значения: Suit::Hearts, Suit::Diamonds, Suit::Clubs и Suit::Spades. Переменным может быть присвоено одно из этих допустимых значений. Тип функции может быть проверен на соответствие типу перечисления и в этом случае могут быть переданы только значения этого типа.

<?php
function pick_a_card(Suit $suit) { ... }

$val = Suit::Diamonds;

// OK
pick_a_card($val);
// OK
pick_a_card(Suit::Clubs);
// TypeError: pick_a_card(): Argument #1 ($suit) must be of type Suit, string given
pick_a_card('Spades');
?>

Перечисление может иметь ноль или более вариантов case без ограничений. Перечисление без вариантов синтаксически корректно, хотя и бесполезно.

Для вариантов перечисления применяются те же правила синтаксиса, что и для любой метки в PHP, смотрите Константы.

По умолчанию варианты не поддерживаются скалярным значением. То есть Suit::Hearts не равно "0". Вместо этого каждый вариант поддерживается одноэлементным объектом с таким именем. Это означает, что:

<?php
$a = Suit::Spades;
$b = Suit::Spades;

$a === $b; // true

$a instanceof Suit; // true
?>

Это также означает, что значения перечисления никогда не являются < или > друг с другом, поскольку эти сравнения не имеют смысла для объектов. Сравнения всегда будут возвращать false при работе с вариантами перечисления.

Тип варианта без связанных данных называется "Чистый вариант". Перечисление, которое содержит только чистые варианты, называется чистым перечислением.

Все чистые варианты реализованы как экземпляры своего типа перечисления. Тип перечисления внутренне представлен как класс.

У всех обращений есть свойство, доступное только для чтения, name, которое является именем самого варианта, чувствительным к регистру.

<?php
print Suit::Spades->name;
// prints "Spades"
?>

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


Типизированные перечисления

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

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

<?php

enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}
?>

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

Типизированное перечисление может поддерживаться типами int или string и данное перечисление поддерживает только один тип за раз (то есть не допускается объединение int|string). Если перечисление помечено как имеющее скалярный эквивалент, тогда все варианты должны иметь определённый явно уникальный скалярный эквивалент. Не существует автоматически генерируемых скалярных эквивалентов (например, последовательных целых чисел). Типизированные варианты должны быть уникальными; два варианта типизированного перечисления не могут иметь одного и того же скалярного эквивалента. Однако константа может относиться к варианту, фактически создавая псевдоним. Смотрите Константы перечислений.

Эквивалентные значения должны быть строками или строковыми выражениями. Константы и постоянные выражения не поддерживаются. То есть 1 + 1 разрешено, а 1 + SOME_CONST - нет.

У типизированных вариантов есть дополнительное свойство, доступное только для чтения, value, которое является значением, указанным в определении.

<?php
print Suit::Clubs->value;
// Выведет "C"
?>

Чтобы сделать свойство value доступным только для чтения, нельзя назначить переменную в качестве ссылки на неё. То есть следующий код выдаст ошибку:

<?php
$suit = Suit::Clubs;
$ref = &$suit->value;
// Error: Cannot acquire reference to property Suit::$value
?>

Типизированные перечисления реализуют внутренний интерфейс BackedEnum, который предоставляет два дополнительных метода:

  • from(int|string): self возьмёт скаляр и вернёт соответствующий вариант перечисления. Если вариант не найден, метод выдаст ValueError. Это полезно в тех случаях, когда входной скаляр является доверенным, а отсутствие значения перечисления следует рассматривать как ошибку остановки приложения.
  • tryFrom(int|string): ?self возьмёт скаляр и вернёт соответствующий вариант перечисления. Если вариант не найден, метод вернёт null. Это полезно в тех случаях, когда входной скаляр не является доверенным и вызывающая функция хочет реализовать свою собственную обработку ошибок или логику значения по умолчанию.

Методы from() и tryFrom() следуют стандартным правилам слабой/строгой типизации. В режиме слабой типизации допустима передача целого числа или строки и система соответствующим образом преобразует значение. Передача числа с плавающей точкой также будет работать с принудительным преобразованием. В режиме строгой типизации передача целого числа в from() в перечислении со строковой типизацией (или наоборот) приведёт к TypeError, как и передача числа с плавающей точкой при любых обстоятельствах. Все остальные типы параметров вызовут ошибку TypeError в обоих режимах.

<?php
$record = get_stuff_from_database($id);
print $record['suit'];

$suit = Suit::from($record['suit']);

// Недопустимые данные выдают ошибку ValueError: "X" не является допустимым скалярным значением для перечисления "Suit"
print $suit->value;

$suit = Suit::tryFrom('A') ?? Suit::Spades;

// Недопустимые данные возвращают значение null, поэтому вместо этого используется Suit::Spades.
print $suit->value;
?>

Ручное определение метода from() или tryFrom() в типизированных перечислениях приведёт к фатальной ошибке.


Методы перечислений

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

<?php

interface Colorful
{
public function color(): string;
}

enum Suit implements Colorful
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;

// Выполняет интерфейсный контракт.
public function color(): string
{
return match($this) {
Suit::Hearts, Suit::Diamonds => 'Красный',
Suit::Clubs, Suit::Spades => 'Чёрный'
};
}

// Не является частью интерфейса; хорошо.
public function shape(): string
{
return "Rectangle";
}
}

function paint(Colorful $c) { ... }

paint(Suit::Clubs); // Работает

print Suit::Diamonds->shape(); // выведет "Rectangle"
?>

В этом примере у всех четырёх экземпляров Suit есть два метода: color() и shape(). Что касается вызывающего кода и проверки типов, они ведут себя точно так же, как и любой другой экземпляр объекта.

В типизированных перечислениях объявление интерфейса идёт после объявления типа.

<?php
interface Colorful
{
public function color(): string;
}

enum Suit: string implements Colorful
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';

// Выполняет интерфейсный контракт.
public function color(): string
{
return match($this) {
Suit::Hearts, Suit::Diamonds => 'Красный',
Suit::Clubs, Suit::Spades => 'Чёрный'
};
}
}
?>

Внутри метода определяется переменная $this, которая ссылается на экземпляр варианта.

Методы могут быть сколь угодно сложными, но на практике обычно возвращают статическое значение или match для $this, чтобы предоставить разные результаты для разных случаев.

Обратите внимание, что в этом случае было бы лучше также определить тип перечисления SuitColor со значениями Red и Black и вернуть его вместо этого. Однако это усложнило бы этот пример.

Вышеупомянутая иерархия логически похожа на следующую структуру классов (хотя это не фактический исполняемый код):

<?php
interface Colorful
{
public function color(): string;
}

final class Suit implements UnitEnum, Colorful
{
public const Hearts = new self('Hearts');
public const Diamonds = new self('Diamonds');
public const Clubs = new self('Clubs');
public const Spades = new self('Spades');

private function __construct(public readonly string $name) {}

public function color(): string
{
return match($this) {
Suit::Hearts, Suit::Diamonds => 'Красный',
Suit::Clubs, Suit::Spades => 'Чёрный'
};
}

public function shape(): string
{
return "Прямоугольник";
}

public static function cases(): array
{
// Недопустимый метод, поскольку определение метода cases() в перечислениях вручную запрещено.
// Смотрите также раздел "Список значений".
}
}
?>

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


Статические методы перечислений

Перечисления также могут иметь статические методы. Использование статических методов в самом перечислении в первую очередь предназначено для альтернативных конструкторов. Например:

<?php
enum Size
{
case Small;
case Medium;
case Large;

public static function fromLength(int $cm): static
{
return match(true) {
$cm < 50 => static::Small,
$cm < 100 => static::Medium,
default => static::Large,
};
}
}
?>

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


Константы перечислений

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

Константа перечисления может относиться к варианту перечисления:

<?php
enum Size
{
case Small;
case Medium;
case Large;

public const Huge = self::Large;
}
?>


Трейты

Перечисления могут использовать трейты, которые будут вести себя так же, как и классы. Предостережение заключается в том, что трейты, используемые (use) в перечислении не должны содержать свойств. Они могут включать только методы и статические методы. Трейт со свойствами приведёт к фатальной ошибке.

<?php
interface Colorful
{
public function color(): string;
}

trait Rectangle
{
public function shape(): string {
return "Прямоугольник";
}
}

enum Suit implements Colorful
{
use Rectangle;

case Hearts;
case Diamonds;
case Clubs;
case Spades;

public function color(): string
{
return match($this) {
Suit::Hearts, Suit::Diamonds => 'Красный',
Suit::Clubs, Suit::Spades => 'Чёрный',
};
}
}
?>


Значения перечисления в постоянных выражениях

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

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

<?php
// Это полностью законное определение перечисления.
enum Direction implements ArrayAccess
{
case Up;
case Down;

public function offsetGet($val) { ... }
public function offsetExists($val) { ... }
public function offsetSet($val) { throw new Exception(); }
public function offsetUnset($val) { throw new Exception(); }
}

class Foo
{
// Это разрешено.
const Bar = Direction::Down;

// Это запрещено, так как не может быть детерминированным.
const Bar = Direction::Up['short'];
// Fatal error: Cannot use [] on enums in constant expression
}

// Это совершенно законно, потому что это не постоянное выражение.
$x = Direction::Up['short'];
?>


Отличия от объектов

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

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

Доступны следующие функциональные возможности объекта, которые ведут себя так же, как и для любого другого объекта:

  • Методы public, private и protected.
  • Статические методы public, private и protected.
  • Константы public, private и protected.
  • Перечисления могут реализовывать любое количество интерфейсов.
  • К перечислениям и вариантам могут быть добавлены атрибуты. Целевой фильтр TARGET_CLASS включает сами перечисления. Целевой фильтр TARGET_CLASS_CONST включает варианты перечислений.
  • Магические методы __call, __callStatic, и __invoke.
  • Константы __CLASS__ и __FUNCTION__ ведут себя как обычно.

Магическая константа ::class для типа перечисления оценивает имя типа, включая любое пространство имён, точно так же, как объект. Магическая константа ::class в экземпляре варианта также оценивается как тип перечисления, поскольку она является экземпляром этого типа.

Кроме того, варианты перечисления не могут быть созданы напрямую с помощью new или с помощью ReflectionClass::newInstanceWithoutConstructor(). Оба способа приведут к ошибке.

<?php
$clovers = new Suit();
// Error: Cannot instantiate enum Suit
$horseshoes = (new ReflectionClass(Suit::class))->newInstanceWithoutConstructor()
// Error: Cannot instantiate enum Suit
?>


Список значений

И чистые перечисления, и типизированные перечисления реализуют внутренний интерфейс с именем UnitEnum. UnitEnum включает статический метод cases(). cases() возвращает упакованный массив всех определённых вариантов в порядке объявления.

<?php
Suit::cases();
// Produces: [Suit::Hearts, Suit::Diamonds, Suit::Clubs, Suit::Spades]
?>

Ручное определение метода cases() в перечислении приведёт к фатальной ошибке.


Сериализация

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

<?php
Suit::Hearts === unserialize(serialize(Suit::Hearts));

print serialize(Suit::Hearts);
// E:11:"Suit:Hearts";
?>

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

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

Для print_r() вывод варианта перечисления немного отличается от объектов, чтобы свести к минимуму путаницу.

<?php
enum Foo {
case Bar;
}

enum Baz: int {
case Beep = 5;
}

print_r(Foo::Bar);
print_r(Baz::Beep);

/* Выводит

Foo Enum (
[name] => Bar
)
Baz Enum:int {
[name] => Beep
[value] => 5
}
*/
?>


Почему перечисления не расширяемы

У классов есть контракты на их методы:

<?php

class A {}
class B extends A {}

function foo(A $a) {}

function bar(B $b) {
foo($b);
}
?>

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

У перечислений есть контракты на их варианты, а не методы:

<?php
enum ErrorCode {
case SOMETHING_BROKE;
}

function quux(ErrorCode $errorCode)
{
// Кажется, что этот код охватывает все варианты
match ($errorCode) {
ErrorCode::SOMETHING_BROKE => true,
}
}

?>

Оператор match в функции quux может быть статически проанализирован, чтобы охватить все случаи в ErrorCode.

Но представьте, что было бы разрешено расширять перечисления:

<?php
// Экспериментальный код, в котором перечисления не являются конечными.
// Обратите внимание, что это не будет работать в PHP.
enum MoreErrorCode extends ErrorCode {
case PEBKAC;
}

function fot(MoreErrorCode $errorCode) {
quux($errorCode);
}

fot(MoreErrorCode::PEBKAC);

?>

Согласно обычным правилам наследования, класс, расширяющий другой класс, пройдёт проверку типа.

Проблема заключается в том, что оператор match в quux() уже не охватывает все случаи. Поскольку оно не знает о MoreErrorCode::PEBKAC, match выбросит исключение.

Из-за этого перечисления являются окончательными и не могут быть расширены.


Примеры

Пример #1 Основные ограниченные значения

<?php
enum SortOrder
{
case Asc;
case Desc;
}

function query($fields, $filter, SortOrder $order = SortOrder::Asc) { ... }
?>

Функция query() теперь может безопасно работать, зная, что $order гарантированно будет либо SortOrder::Asc, либо SortOrder::Desc. Любое другое значение привело бы к TypeError, поэтому дальнейшая проверка ошибок или тестирование не требуется.

Пример #2 Расширенные эксклюзивные значения

<?php
enum UserStatus: string
{
case Pending = 'P';
case Active = 'A';
case Suspended = 'S';
case CanceledByUser = 'C';

public function label(): string
{
return match($this) {
static::Pending => 'В ожидании',
static::Active => 'Активный',
static::Suspended => 'Приостановленный',
static::CanceledByUser => 'Отменено пользователем',
};
}
}
?>

В этом примере статус пользователя может быть одним из следующих:
UserStatus::Pending,
UserStatus::Active, UserStatus::Suspended или
UserStatus::CanceledByUser.
Функция может ввести параметр UserStatus и затем принять только эти четыре значения, точка.

У всех четырёх значений есть метод label(), который возвращает читаемую строку. Эта строка не зависит от скалярной эквивалентной строки "machine name", которую можно использовать, например, в поле базы данных или поле выбора HTML.

<?php
foreach (UserStatus::cases() as $case) {
printf('<option value="%s">%s</option>\n', $case->value, $case->label());
}
?>


Ошибки

Содержание

  • Основы
  • Ошибки в PHP 7

Введение

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


Основы

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

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

Обработка ошибок

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

На стадии разработки, обязательно настройте параметр error_reporting на значение E_ALL, так как вам необходимо знать обо всех ошибках для их решения на этой стадии. Когда продукт готов, вы можете изменить значение на менее подробное, вроде E_ALL & ~E_NOTICE & ~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
      • ValueError
      • UnhandledMatchError
      • FiberError
    • Exception
      • ...


Исключения

Содержание

  • Наследование исключений

В PHP реализована модель исключений, аналогичная тем, что используются в других языках программирования. Исключение в PHP может быть выброшено (throw) и поймано (catch). Код может быть заключён в блок try, чтобы облегчить обработку потенциальных исключений. У каждого блока try должен быть как минимум один соответствующий блок catch или finally.

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

Выброшенный объект должен наследовать (instanceof) интерфейс Throwable. Попытка выбросить объект, который таковым не является, приведёт к неисправимой ошибке PHP.

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

catch

Блок catch определяет, как реагировать на выброшенное исключение. Блок catch определяет один или несколько типов исключений или ошибок, которые он может обработать, и, по желанию, переменную, которой можно присвоить исключение (указание переменной было обязательно до версии PHP 8.0.0). Первый блок catch, с которым столкнётся выброшенное исключение или ошибка и соответствует типу выброшенного объекта, обработает объект.

Несколько блоков catch могут быть использованы для перехвата различных классов исключений. Нормальное выполнение (когда исключение не выброшено в блоке try) будет продолжаться после последнего блока catch, определённого в последовательности. Исключения могут быть выброшены (throw) (или повторно выброшены) внутри блока catch. В противном случае выполнение будет продолжено после блока catch, который был вызван.

При возникновении исключения, код, следующий за утверждением, не будет выполнен, а PHP попытается найти первый подходящий блок catch. Если исключение не поймано, будет выдана неисправимая ошибка PHP с сообщением "Uncaught Exception ...", если только обработчик не был определён с помощью функции set_exception_handler().

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

Начиная с версии PHP 8.0.0, имя переменной для пойманного исключения является необязательным. Если оно не указано, блок catch будет выполнен, но не будет иметь доступа к выброшенному объекту.

finally

Блок finally также может быть указан после или вместо блоков catch. Код в блоке finally всегда будет выполняться после блоков try и catch, независимо от того, было ли выброшено исключение и до возобновления нормального выполнения.

Одно из заметных взаимодействий происходит между блоком finally и оператором return. Если оператор return встречается внутри блоков try или catch, блок finally всё равно будет выполнен. Более того, оператор return выполнится, когда встретится, но результат будет возвращён после выполнения блока finally. Кроме того, если блок finally также содержит оператор return, возвращается значение из блока finally.

Глобальный обработчик исключений

Если исключению разрешено распространяться на глобальную область видимости, оно может быть перехвачено глобальным обработчиком исключений, если он установлен. Функция set_exception_handler() может задать функцию, которая будет вызвана вместо блока catch, если не будет вызван никакой другой блок. Эффект по сути такой же, как если бы вся программа была обёрнута в блок try-catch с этой функцией в качестве catch.

Примечания

Замечание:

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

Пример #1 Преобразование отчётов об ошибках в исключения

<?php
function exceptions_error_handler($severity, $message, $filename, $lineno) {
throw new ErrorException($message, 0, $severity, $filename, $lineno);
}

set_error_handler('exceptions_error_handler');
?>

Подсказка

Библиотека Стандартная библиотека PHP (SPL) предоставляет большое количество встроенных исключений.

Примеры

Пример #2 Выбрасывание исключения

<?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
Выброшено исключение: Деление на ноль.
Привет, мир

Пример #3 Обработка исключений с помощью блока 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.
Привет, мир

Пример #4 Взаимодействие между блоками finally и return

<?php

function test() {
try {
throw new Exception('foo');
} catch (Exception $e) {
return 'catch';
} finally {
return 'finally';
}
}

echo test();
?>

Результат выполнения данного примера:

finally

Пример #5 Вложенные исключения

<?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!"

Пример #6 Обработка нескольких исключений в одном блоке 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"

Пример #7 Пример блока catch без указания переменной

Допустимо начиная с PHP 8.0.0

<?php

class SpecificException extends Exception {}

function test() {
throw new SpecificException('Ой!');
}

try {
test();
} catch (SpecificException) {
print "Было поймано исключение SpecificException, но нам безразлично, что у него внутри.";
}
?>

Пример #8 Throw как выражение

Допустимо начиная с PHP 8.0.0

<?php

function test() {
do_something_risky() or throw new Exception('Всё сломалось');
}

try {
test();
} catch (Exception $e) {
print $e->getMessage();
}
?>


Наследование исключений

Определённый пользователем класс исключения должен быть определён, как класс расширяющий (наследующий) встроенный класс Exception. Ниже приведены методы и свойства класса Exception, доступные дочерним классам.

Пример #1 Встроенный класс Exception

<?php
class Exception implements Throwable
{
protected $message = 'Unknown exception'; // сообщение об исключении
private $string; // свойство для __toString
protected $code = 0; // пользовательский код исключения
protected $file; // файл, в котором было выброшено исключение
protected $line; // строка, в которой было выброшено исключение
private $trace; // трассировка вызовов методов и функций
private $previous; // предыдущее исключение, если исключение вложенное

public function __construct($message = '', $code = 0, Throwable $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
/**
* Определим свой класс исключения
*/
class MyException extends Exception
{
// Переопределим исключение так, что параметр message станет обязательным
public function __construct($message, $code = 0, Throwable $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";
?>


Fibers

Обзор файберов

(PHP 8 >= 8.1.0)

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

Файберы приостанавливают весь цикл выполнения, поэтому вызывающему функцию напрямую не нужно менять способ её вызова.

Выполнение может быть прервано в любом месте цикла с помощью метода Fiber::suspend() (то есть вызов Fiber::suspend() может находиться в глубоко вложенной функции или даже вообще не существовать).

В отличие от генераторов (Generator) без стека, у каждого объекта Fiber есть свой собственный стек вызовов, позволяющий приостанавливать их внутри глубоко вложенных вызовов функций. Функция, объявляющая точку прерывания (то есть вызов метода Fiber::suspend()), не должна изменять свой возвращаемый тип, в отличие от функции, использующей yield, который должен возвращать экземпляр Generator.

Файберы могут быть приостановлены при вызове любой функции, включая те, которые вызываются из виртуальной машины PHP, например, функции, предоставляемые array_map(), или методы, вызываемые foreach для объекта Iterator.

После приостановки выполнение файбера может быть возобновлено с любым значением с помощью метода Fiber::resume() или путём передачи исключения в файбер с помощью Fiber::throw(). Значение возвращается (или выбрасывается исключение) из метода Fiber::suspend().

Замечание: Из-за текущих ограничений невозможно переключать файбер в деструкторе объекта.

Пример #1 Простой пример

<?php
$fiber = new Fiber(function (): void {
$value = Fiber::suspend('fiber');
echo "Значение возобновлённого файбера: ", $value, PHP_EOL;
});

$value = $fiber->start();

echo "Значение приостановленного файбера: ", $value, PHP_EOL;

$fiber->resume('test');
?>

Результат выполнения данного примера:

Значение приостановленного файбера: fiber
Значение возобновлённого файбера: test


Генераторы

Содержание

  • Знакомство с генераторами
  • Синтаксис генераторов
  • Сравнение генераторов с объектами класса Iterator


Знакомство с генераторами

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Генераторы предоставляют лёгкий способ реализации простых итераторов без использования дополнительных ресурсов или сложностей, связанных с реализацией класса, реализующего интерфейс 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 вызывает методы итерации объекта каждый раз, когда вам нужно новое значение, после чего сохраняет состояние генератора и при следующем вызове возвращает следующее значение.

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

Замечание:

Генераторы могут возвращать значения, которые можно получить с помощью 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

Замечание:

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

Получение значений с ключами

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
    Любит блоки

Получение 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

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

Если генератор используется с yield from, то выражение yield from также будет возвращать значения из внутреннего генератора.

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

Сохранение в массив (например, с помощью iterator_to_array())

yield from не сбрасывает ключи. Ключи, возвращённые из объекта Traversable или массива, сохранятся. Таким образом, некоторые значения, могут пересекаться по ключам с другими yield или yield from, что, при записи в массив, повлечёт за собой перезапись прежних значений.

Общий случай, когда это имеет значение, это когда iterator_to_array() возвращает массив с ключами по умолчанию. В этом случае можно получить неожиданный результат. iterator_to_array() имеет второй параметр preserve_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);
}
}
?>

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

Смотрите также

  • Итераторы объектов


Атрибуты

Содержание

  • Введение в атрибуты
  • Синтаксис атрибутов
  • Чтение атрибутов с помощью Reflection API
  • Объявление классов атрибутов


Введение в атрибуты

(PHP 8)

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

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

Давайте разберём использование атрибутов на простом примере реализации опциональных методов для интерфейса. Допустим, что интерфейс ActionHandler описывает некую операцию в приложении. Одни реализации этого интерфейса требуют предварительной настройки, а другие - нет. И вместо того, чтобы вносить в интерфейс ActionHandler дополнительный метод setUp(), который для части реализаций будет пустым, можно использовать атрибут. Одним из преимуществ этого подхода является то, что мы можем использовать атрибут несколько раз.

Пример #1 Реализация опциональных методов интерфейса с помощью атрибутов

<?php
interface ActionHandler
{
public function execute();
}

#[Attribute]
class SetUp {}

class CopyFile implements ActionHandler
{
public string $fileName;
public string $targetDirectory;

#[SetUp]
public function fileExists()
{
if (!file_exists($this->fileName)) {
throw new RuntimeException("File does not exist");
}
}

#[SetUp]
public function targetDirectoryExists()
{
if (!file_exists($this->targetDirectory)) {
mkdir($this->targetDirectory);
} elseif (!is_dir($this->targetDirectory)) {
throw new RuntimeException("Target directory $this->targetDirectory is not a directory");
}
}

public function execute()
{
copy($this->fileName, $this->targetDirectory . '/' . basename($this->fileName));
}
}

function executeAction(ActionHandler $actionHandler)
{
$reflection = new ReflectionObject($actionHandler);

foreach ($reflection->getMethods() as $method) {
$attributes = $method->getAttributes(SetUp::class);

if (count($attributes) > 0) {
$methodName = $method->getName();

$actionHandler->$methodName();
}
}

$actionHandler->execute();
}

$copyAction = new CopyFile();
$copyAction->fileName = "/tmp/foo.jpg";
$copyAction->targetDirectory = "/home/user";

executeAction($copyAction);


Синтаксис атрибутов

Синтаксис атрибутов состоит из нескольких частей. Для начала декларация атрибута всегда начинается с символа #[ и заканчивается ]. Внутри перечисление из одного или более, разделённых запятой, атрибутов. Атрибуты можно задавать с помощью неполных, полных и абсолютных имён, как описано в разделе Использование пространства имён: основы. Аргументы атрибутов опциональны, но если они есть, то заключаются в скобки (). Аргументы атрибутов могут быть либо конкретными значениями, либо константными выражениями. Для аргументов можно использовать как позиционный синтаксис, так и синтаксис именованных аргументов.

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

Пример #1 Синтаксис атрибутов

<?php
// a.php
namespace MyExample;

use Attribute;

#[Attribute]
class MyAttribute
{
const VALUE = 'value';

private $value;

public function __construct($value = null)
{
$this->value = $value;
}
}

// b.php

namespace Another;

use MyExample\MyAttribute;

#[MyAttribute]
#[\MyExample\MyAttribute]
#[MyAttribute(1234)]
#[MyAttribute(value: 1234)]
#[MyAttribute(MyAttribute::VALUE)]
#[MyAttribute(array("key" => "value"))]
#[MyAttribute(100 + 200)]
class Thing
{
}

#[MyAttribute(1234), MyAttribute(5678)]
class AnotherThing
{
}


Чтение атрибутов с помощью Reflection API

Для доступа к атрибутам классов, методов, функций, параметров, свойств и констант класса, в Reflection API присутствует метод getAttributes() для каждого из перечисленных объектов рефлексии. Этот метод возвращает массив экземпляров ReflectionAttribute, у каждого из которых можно запросить имя атрибута и его аргументы, а также создать объект, представляющего атрибут.

Такое отделение свойств атрибута от явного создания объекта даёт программисту более полный контроль над обработкой ошибок, связанных с отсутствующим классом атрибута и некорректностью его аргументов. Объект атрибута будет создан и проверен на корректность аргументов только после вызова ReflectionAttribute::newInstance(), не раньше.

Пример #1 Чтение атрибутов с помощью Reflection API

<?php

#[Attribute]
class MyAttribute
{
public $value;

public function __construct($value)
{
$this->value = $value;
}
}

#[MyAttribute(value: 1234)]
class Thing
{
}

function dumpAttributeData($reflection) {
$attributes = $reflection->getAttributes();

foreach ($attributes as $attribute) {
var_dump($attribute->getName());
var_dump($attribute->getArguments());
var_dump($attribute->newInstance());
}
}

dumpAttributeData(new ReflectionClass(Thing::class));
/*
string(11) "MyAttribute"
array(1) {
["value"]=>
int(1234)
}
object(MyAttribute)#3 (1) {
["value"]=>
int(1234)
}
*/

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

Пример #2 Чтение конкретных атрибутов с помощью Reflection API

<?php

function dumpMyAttributeData($reflection) {
$attributes = $reflection->getAttributes(MyAttribute::class);

foreach ($attributes as $attribute) {
var_dump($attribute->getName());
var_dump($attribute->getArguments());
var_dump($attribute->newInstance());
}
}

dumpMyAttributeData(new ReflectionClass(Thing::class));


Объявление классов атрибутов

Создавать классы для атрибутов не обязательно, но крайне рекомендуется. В самом простом случае требуется просто пустой класс с атрибутом #[Attribute], который можно импортировать из глобального пространства имён с помощью оператора use.

Пример #1 Простой класс с атрибутом

<?php

namespace Example;

use Attribute;

#[Attribute]
class MyAttribute
{
}

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

Пример #2 Ограничение допустимых сущностей для использования атрибута

<?php

namespace Example;

use Attribute;

#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_FUNCTION)]
class MyAttribute
{
}

После этого аннотирование атрибутом MyAttribute чего-либо, отличающегося от метода или функции, приведёт к выбрасыванию исключения при вызове ReflectionAttribute::newInstance().

Можно указать следующие сущности:

  • Attribute::TARGET_CLASS
  • Attribute::TARGET_FUNCTION
  • Attribute::TARGET_METHOD
  • Attribute::TARGET_PROPERTY
  • Attribute::TARGET_CLASS_CONSTANT
  • Attribute::TARGET_PARAMETER
  • Attribute::TARGET_ALL

По умолчанию атрибут можно использовать только один раз для каждой сущности. Если нужна возможность указывать несколько одинаковых атрибутов для одной сущности - можно выставить соответствующий флаг в битовой маске для декларации #[Attribute].

Пример #3 Использование IS_REPEATABLE для разрешения использовать атрибут в объявлении несколько раз

<?php

namespace Example;

use Attribute;

#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_FUNCTION | Attribute::IS_REPEATABLE)]
class MyAttribute
{
}


Объяснение ссылок

Содержание

  • Что такое ссылки
  • Что делают ссылки
  • Чем ссылки не являются
  • Передача по ссылке
  • Возврат по ссылке
  • Сброс переменных-ссылок
  • Неявное использование механизма ссылок


Что такое ссылки

Ссылки в 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);
?>

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

Внимание

Если переменной, объявленной внутри функции как 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
?>

Замечание: В вызове функции отсутствует знак ссылки - он есть только в определении функции. Этого достаточно для корректной передачи аргументов по ссылке.

По ссылке можно передавать:

  • Переменные, например 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()); // Вызывает предупреждение

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
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 не приведёт к сбросу глобальной переменной.


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

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

Содержание

  • Суперглобальные переменные — Встроенные переменные, которые всегда доступны во всех областях
  • $GLOBALS — Ссылки на все переменные глобальной области видимости
  • $_SERVER — Информация о сервере и среде исполнения
  • $_GET — Переменные HTTP GET
  • $_POST — Переменные HTTP POST
  • $_FILES — Переменные файлов, загруженных по HTTP
  • $_REQUEST — Переменные HTTP-запроса
  • $_SESSION — Переменные сессии
  • $_ENV — Переменные окружения
  • $_COOKIE — HTTP Cookies
  • $php_errormsg — Предыдущее сообщение об ошибке
  • $http_response_header — Заголовки ответов HTTP
  • $argc — Количество аргументов, переданных скрипту
  • $argv — Массив переданных скрипту аргументов


Встроенные переменные, которые всегда доступны во всех областях

  • « Предопределённые переменные
  • $GLOBALS »
  • PHP Manual
  • Предопределённые переменные
  • Встроенные переменные, которые всегда доступны во всех областях

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

Суперглобальные переменные — Встроенные переменные, которые всегда доступны во всех областях

Описание

Некоторые предопределённые переменные в PHP являются "суперглобальными", что означает, что они доступны в любом месте скрипта. Нет необходимости использовать синтаксис global $variable; для доступа к ним в функциях и методах.

Суперглобальными переменными являются:

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV

Примечания

Замечание: Доступность переменных

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

Замечание: Переменные переменных

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

Смотрите также

  • Область видимости переменной
  • Директива variables_order
  • "Фильтрация данных"


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

  • « Суперглобальные переменные
  • $_SERVER »
  • PHP Manual
  • Предопределённые переменные
  • Ссылки на все переменные глобальной области видимости

$GLOBALS

(PHP 4, PHP 5, PHP 7, PHP 8)

$GLOBALS — Ссылки на все переменные глобальной области видимости

Описание

Ассоциативный массив (array), содержащий ссылки на все переменные, определённые в данный момент в глобальной области видимости скрипта. Имена переменных являются ключами массива.

Примеры

Пример #1 Пример использования $GLOBALS

<?php
function test() {
$foo = "локальная переменная";

echo '$foo в глобальной области видимости: ' . $GLOBALS["foo"] . "\n";
echo '$foo в текущей области видимости: ' . $foo . "\n";
}

$foo = "Пример содержимого";
test();
?>

Результатом выполнения данного примера будет что-то подобное:

$foo в глобальной области видимости: Пример содержимого
$foo в текущей области видимости: локальная переменная

Внимание

Начиная с PHP 8.1.0, доступ на запись ко всему массиву $GLOBALS больше не поддерживается:

Пример #2 запись всего $GLOBALS приведёт к ошибке

<?php
// Генерирует ошибку во время компиляции:
$GLOBALS = [];
$GLOBALS += [];
$GLOBALS =& $x;
$x =& $GLOBALS;
unset($GLOBALS);
array_pop($GLOBALS);
// ...и любые другие операции записи/чтения-записи в $GLOBALS
?>

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Замечание: Доступность переменной

В отличие от всех остальных суперглобальных переменных, $GLOBALS всегда доступна в PHP.

Замечание:

Начиная с PHP 8.1.0, массив $GLOBALS теперь является доступной только для чтения копией глобальной таблицы символов. То есть глобальные переменные не могут быть изменены с помощью его копии. Ранее массив $GLOBALS исключался из обычного поведения массивов PHP по значению и глобальные переменные можно было изменить с помощью его копии.

<?php
// До PHP 8.1.0
$a = 1;
$globals = $GLOBALS; // Как будто бы по значению копии
$globals['a'] = 2;
var_dump($a); // int(2)

// Начиная с PHP 8.1.0
// больше не изменяет значение $a. Предыдущее поведение нарушало семантику по значению
$globals = $GLOBALS;
$globals['a'] = 1;

// Чтобы восстановить предыдущее поведение, повторите его копию и присвойте каждому свойству значение $ GLOBALS.
foreach ($globals as $key => $value) {
$GLOBALS[$key] = $value;
}
?>


Информация о сервере и среде исполнения

  • « $GLOBALS
  • $_GET »
  • PHP Manual
  • Предопределённые переменные
  • Информация о сервере и среде исполнения

$_SERVER

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_SERVER — Информация о сервере и среде исполнения

Описание

Переменная $_SERVER - это массив (array), содержащий такую информацию, как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером, поэтому нет гарантии, что каждый веб-сервер будет предоставлять любую из этих переменных; серверы могут опускать некоторые из них или предоставлять другие, не указанные здесь. Однако большинство из этих переменных учтены в спецификации » CGI/1.1 и, скорее всего, будут определены.

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

В дополнение к перечисленным ниже элементам, PHP будет создавать дополнительные элементы со значениями из заголовков запросов. У элементов будет имя HTTP_, за которым следует имя заголовка, написанное с заглавной буквы и с подчёркиванием вместо дефиса. Например, заголовок Accept-Language будет доступен как $_SERVER['HTTP_ACCEPT_LANGUAGE'].

Индексы

'PHP_SELF'
Имя файла скрипта, который сейчас выполняется, относительно корня документов. Например, $_SERVER['PHP_SELF'] в скрипте по адресу http://example.com/foo/bar.php будет /foo/bar.php. Константа __FILE__ содержит полный путь и имя файла текущего (то есть подключённого) файла. Если PHP запущен в командной строке, эта переменная содержит имя скрипта.
'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'
Временная метка начала запроса.
'REQUEST_TIME_FLOAT'
Временная метка начала запроса с точностью до микросекунд.
'QUERY_STRING'
Строка запроса, если есть, через которую была открыта страница.
'DOCUMENT_ROOT'
Директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера.
'HTTPS'
Принимает непустое значение, если запрос был произведён через протокол 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.

Замечание: Пользователи 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.

Примеры

Пример #1 Пример использования $_SERVER

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

Результатом выполнения данного примера будет что-то подобное:

www.example.com

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • Фильтрация данных


Переменные HTTP GET

  • « $_SERVER
  • $_POST »
  • PHP Manual
  • Предопределённые переменные
  • Переменные HTTP GET

$_GET

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_GET — Переменные HTTP GET

Описание

Ассоциативный массив переменных, переданных скрипту через параметры URL (известные также как строка запроса). Обратите внимание, что массив не только заполняется для GET-запросов, а скорее для всех запросов со строкой запроса.

Примеры

Пример #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

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_POST — Переменные HTTP POST

Описание

Ассоциативный массив данных, переданных скрипту через HTTP методом POST при использовании application/x-www-form-urlencoded или multipart/form-data в заголовке Content-Type запроса HTTP.

Примеры

Пример #1 Пример использования $_POST

<?php
echo 'Привет ' . htmlspecialchars($_POST["name"]) . '!';
?>

Подразумевается, что пользователь отправил через POST name=Иван

Результатом выполнения данного примера будет что-то подобное:

Привет, Иван!

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • Обработка внешних переменных
  • Фильтрация данных


Переменные файлов, загруженных по HTTP

  • « $_POST
  • $_REQUEST »
  • PHP Manual
  • Предопределённые переменные
  • Переменные файлов, загруженных по HTTP

$_FILES

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_FILES — Переменные файлов, загруженных по HTTP

Описание

Ассоциативный массив (array) элементов, загруженных в текущий скрипт через метод HTTP POST. Структура этого массива описана в разделе Загрузка файлов методом POST.

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • move_uploaded_file() - Перемещает загруженный файл в новое место
  • Загрузка файлов на сервер


Переменные HTTP-запроса

  • « $_FILES
  • $_SESSION »
  • PHP Manual
  • Предопределённые переменные
  • Переменные HTTP-запроса

$_REQUEST

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_REQUEST — Переменные HTTP-запроса

Описание

Ассоциативный массив (array), который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE.

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Замечание:

При работе в командной строке переменные argv и argc не включаются в данный массив - они присутствуют в массиве $_SERVER.

Замечание:

Переменные в массиве $_REQUEST передаются в скрипт посредством методов GET, POST или COOKIE, поэтому им нельзя доверять, т.к. они могли быть изменены удалённым пользователем. Их наличие и порядок добавления данных в соответствующие массивы определяется директивой конфигурации PHP request_order и variables_order.

Смотрите также

  • "Работа с внешними данными"
  • "Фильтрация данных"


Переменные сессии

  • « $_REQUEST
  • $_ENV »
  • PHP Manual
  • Предопределённые переменные
  • Переменные сессии

$_SESSION

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_SESSION — Переменные сессии

Описание

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

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • session_start() - Стартует новую сессию, либо возобновляет существующую


Переменные окружения

  • « $_SESSION
  • $_COOKIE »
  • PHP Manual
  • Предопределённые переменные
  • Переменные окружения

$_ENV

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_ENV — Переменные окружения

Описание

Ассоциативный массив (array) значений, переданных скрипту через переменные окружения.

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

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

Примеры

Пример #1 Пример использования $_ENV

<?php
echo 'Моё имя пользователя: ' .$_ENV["USER"] . '!';
?>

Допустим, скрипт запустил "bjori"

Результатом выполнения данного примера будет что-то подобное:

Моё имя пользователя: bjori!

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • getenv() - Получает значение одной или всех переменных окружения
  • Фильтрация данных


HTTP Cookies

  • « $_ENV
  • $php_errormsg »
  • PHP Manual
  • Предопределённые переменные
  • HTTP Cookies

$_COOKIE

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_COOKIE — HTTP Cookies

Описание

Ассоциативный массив (array) значений, переданных скрипту через HTTP Cookies.

Примеры

Пример #1 Пример использования $_COOKIE

<?php
echo 'Привет, ' . htmlspecialchars($_COOKIE["name"]) . '!';
?>

Предположим, что значение куки с именем "name" было установлено ранее.

Результатом выполнения данного примера будет что-то подобное:

Привет, Иван!

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • setcookie() - Отправляет cookie
  • Обработка внешних переменных
  • Фильтрация данных


Предыдущее сообщение об ошибке

  • « $_COOKIE
  • $http_response_header »
  • 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.

Список изменений

Версия | Описание
8.0.0 | Директива track_errors, из-за которой становится доступным $php_errormsg, была удалена.
7.2.0 | Директива track_errors, из-за которой становится доступным $php_errormsg, была объявлена устаревшей.

Примеры

Пример #1 Пример использования $php_errormsg

<?php
@strpos();
echo $php_errormsg;
?>

Результатом выполнения данного примера будет что-то подобное:

Wrong parameter count for strpos()

Смотрите также

  • error_get_last() - Получение информации о последней произошедшей ошибке


Заголовки ответов HTTP

  • « $php_errormsg
  • $argc »
  • PHP Manual
  • Предопределённые переменные
  • Заголовки ответов HTTP

$http_response_header

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

$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); // вызов функции get_contents() не заполняет переменную вне области видимости функции
?>

Результатом выполнения данного примера будет что-то подобное:

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"
}

Warning: Undefined variable $http_response_header
NULL


Количество аргументов, переданных скрипту

  • « $http_response_header
  • $argv »
  • PHP Manual
  • Предопределённые переменные
  • Количество аргументов, переданных скрипту

$argc

(PHP 4, PHP 5, PHP 7, PHP 8)

$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, PHP 8)

$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
  • ValueError
  • UnhandledMatchError
  • FiberError

Смотрите также "Исключения SPL"


Exception

(PHP 5, PHP 7, PHP 8)

Введение

Exception — это базовый класс для всех пользовательских исключений.

Обзор классов

class Exception implements Throwable {
/* Свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
public __construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public getMessage(): string
final public getPrevious(): ?Throwable
final public getCode(): int
final public getFile(): string
final public getLine(): int
final public getTrace(): array
final public getTraceAsString(): string
public __toString(): string
private __clone(): void
}

Свойства

message

Текст исключения

code

Код исключения

file

Имя файла, в котором было вызвано исключение

line

Номер строки, в которой было вызвано исключение

previous

Ранее выброшенное исключение

string

Строковое представление трассировки стека

trace

Трассировка стека в виде массива

Содержание

  • Exception::__construct — Создать исключение
  • Exception::getMessage — Получает сообщение исключения
  • Exception::getPrevious — Возвращает предыдущий объект, реализующий Throwable
  • 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, PHP 8)

Exception::__construct — Создать исключение

Описание

public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)

Создаёт исключение.

Список параметров

message

Текст сообщения.

code

Код исключения.

previous

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

Замечание: Вызов конструктора класса Exception из его подкласса, игнорирует аргументы по умолчанию, если свойства $code и $message уже установлены.

Примечания

Замечание:

Параметр message не является бинарно-безопасным.


Получает сообщение исключения

  • « Exception::__construct
  • Exception::getPrevious »
  • PHP Manual
  • Exception
  • Получает сообщение исключения

Exception::getMessage

(PHP 5, PHP 7, PHP 8)

Exception::getMessage — Получает сообщение исключения

Описание

final public Exception::getMessage(): string

Возвращает сообщение исключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сообщение исключения в виде строки.

Примеры

Пример #1 Пример использования Exception::getMessage()

<?php
try {
throw new Exception("Какое-нибудь сообщение об ошибке");
} catch(Exception $e) {
echo $e->getMessage();
}
?>

Результатом выполнения данного примера будет что-то подобное:

Какое-нибудь сообщение об ошибке

Смотрите также

  • Throwable::getMessage() - Получает сообщение ошибки


Возвращает предыдущий объект, реализующий Throwable

  • « Exception::getMessage
  • Exception::getCode »
  • PHP Manual
  • Exception
  • Возвращает предыдущий объект, реализующий Throwable

Exception::getPrevious

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Exception::getPrevious — Возвращает предыдущий объект, реализующий Throwable

Описание

final public Exception::getPrevious(): ?Throwable

Возвращает предыдущий объект, реализующий Throwable (переданный третьим параметром в Exception::__construct()).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает предыдущий объект, реализующий Throwable или null, если такового нет.

Примеры

Пример #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, PHP 8)

Exception::getCode — Получает код исключения

Описание

final public Exception::getCode(): int

Возвращает код исключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код исключения типа int у класса 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, PHP 8)

Exception::getFile — Получает файл, в котором возникло исключение

Описание

final public Exception::getFile(): 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, PHP 8)

Exception::getLine — Получает строку, в которой возникло исключение

Описание

final public Exception::getLine(): 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, PHP 8)

Exception::getTrace — Получает трассировку стека

Описание

final public Exception::getTrace(): 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, PHP 8)

Exception::getTraceAsString — Получает трассировку стека в виде строки

Описание

final public Exception::getTraceAsString(): 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, PHP 8)

Exception::__toString — Строковое представление исключения

Описание

public Exception::__toString(): 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, PHP 8)

Exception::__clone — Клонировать исключение

Описание

private Exception::__clone(): void

Исключения Exception не могут быть клонированы, а попытка сделать это выбросит ошибку Error.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Исключения не поддаются клонированию.

Список изменений

Версия | Описание
8.1.0 | Метод Exception::__clone() больше не является окончательным (final).


ErrorException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Исключение в случае возникновения ошибки.

Обзор классов

class ErrorException extends Exception {
/* Свойства */
protected int $severity = E_ERROR;
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
public __construct(
string $message = "",
int $code = 0,
int $severity = E_ERROR,
?string $filename = null,
?int $line = null,
?Throwable $previous = null
)
final public getSeverity(): int
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Свойства

severity

Серьёзность исключения

Примеры

Пример #1 Использование set_error_handler() для изменения сообщений об ошибках в ErrorException.

<?php
function exception_error_handler(int $errno, string $errstr, string $errfile = null, int $errline) {
if (!(error_reporting() & $errno)) {
// Этот код ошибки не входит в error_reporting
return;
}
throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler(exception_error_handler(...));
// До PHP 8.1.0 и введения синтаксиса callback-функции как объекта первого класса вместо этого необходимо использовать следующий вызов:
// set_error_handler(__NAMESPACE__ . "\\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, PHP 8)

ErrorException::__construct — Создаёт исключение

Описание

public ErrorException::__construct(
string $message = "",
int $code = 0,
int $severity = E_ERROR,
?string $filename = null,
?int $line = null,
?Throwable $previous = null
)

Создаёт исключение.

Список параметров

message

Текст исключения.

code

Код исключения.

severity

Уровень серьёзности исключения.

Замечание:

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

filename

Имя файла, где вызвано исключение.

line

Номер строки, где вызвано исключение.

previous

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

Список изменений

Версия | Описание
8.0.0 | filename и line теперь допускают значение null. Ранее их значениями по умолчанию были __FILE__ и __LINE__, соответственно.


Получает серьёзность исключения

  • « ErrorException::__construct
  • Error »
  • PHP Manual
  • ErrorException
  • Получает серьёзность исключения

ErrorException::getSeverity

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ErrorException::getSeverity — Получает серьёзность исключения

Описание

final public ErrorException::getSeverity(): 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, PHP 8)

Введение

Error - базовый класс для всех внутренних ошибок PHP.

Обзор классов

class Error implements Throwable {
/* Свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
public __construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public getMessage(): string
final public getPrevious(): ?Throwable
final public getCode(): int
final public getFile(): string
final public getLine(): int
final public getTrace(): array
final public getTraceAsString(): string
public __toString(): string
private __clone(): void
}

Свойства

message

Сообщение об ошибке

code

Код ошибки

file

Имя файла, в котором произошла ошибка

line

Номер строки, в которой произошла ошибка

previous

Ранее выброшенное исключение

string

Строковое представление трассировки стека

trace

Трассировка стека в виде массива

Содержание

  • 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

(PHP 7, PHP 8)

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

(PHP 7, PHP 8)

Error::getMessage — Получает сообщение об ошибке

Описание

final public Error::getMessage(): 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

(PHP 7, PHP 8)

Error::getPrevious — Возвращает предыдущий Throwable

Описание

final public Error::getPrevious(): ?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

(PHP 7, PHP 8)

Error::getCode — Возвращает код ошибки

Описание

final public Error::getCode(): int

Возвращает код ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ошибки типа int

Примеры

Пример #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

(PHP 7, PHP 8)

Error::getFile — Получает файл, в котором произошла ошибка

Описание

final public Error::getFile(): 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

(PHP 7, PHP 8)

Error::getLine — Получает номер строки, в которой произошла ошибка

Описание

final public Error::getLine(): 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

(PHP 7, PHP 8)

Error::getTrace — Получает трассировку стека

Описание

final public Error::getTrace(): 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

(PHP 7, PHP 8)

Error::getTraceAsString — Получает трассировку стека в виде строки

Описание

final public Error::getTraceAsString(): 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

(PHP 7, PHP 8)

Error::__toString — Строковое представление ошибки

Описание

public Error::__toString(): 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

(PHP 7, PHP 8)

Error::__clone — Клонирует ошибку

Описание

private Error::__clone(): void

Объект класса Error нельзя клонировать, так что эта функция вызовет фатальную ошибку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Объект класса Error нельзя клонировать.

Список изменений

Версия | Описание
8.1.0 | Метод Error::__clone() больше не является окончательным (final).


ArgumentCountError

(PHP 7 >= PHP 7.1.0, PHP 8)

Введение

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

Эта ошибка также выбрасывается, если в невариативную встроенную функцию передаётся слишком много аргументов.

Обзор классов

class ArgumentCountError extends TypeError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


ArithmeticError

(PHP 7, PHP 8)

Введение

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

Обзор классов

class ArithmeticError extends Error {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


AssertionError

(PHP 7, PHP 8)

Введение

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

Обзор классов

class AssertionError extends Error {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


DivisionByZeroError

(PHP 7, PHP 8)

Введение

DivisionByZeroError выбрасывается при попытке поделить число на ноль.

Обзор классов

class DivisionByZeroError extends ArithmeticError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


CompileError

(PHP 7 > 7.3.0, PHP 8)

Введение

Исключение CompileError выбрасывается при некоторых ошибках компиляции, которые ранее выдавали фатальную ошибку.

Обзор классов

class CompileError extends Error {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


ParseError

(PHP 7, PHP 8)

Введение

ParseError выбрасывается, когда возникает ошибка при разборе PHP-кода, например, когда вызывается функция eval().

Замечание: Начиная с PHP 7.3.0, класс ParseError наследуется от CompileError. Ранее этот класс расширял класс Error.

Обзор классов

class ParseError extends CompileError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


TypeError

(PHP 7, PHP 8)

Введение

Исключение TypeError может быть выброшено, если:

  • Значение, устанавливаемое для свойства класса, не соответствует соответствующему объявленному типу свойства.
  • Тип аргумента, переданного функции, не соответствует типу, объявленному в функции для этого аргумента.
  • Тип возвращённого функцией значения не соответствует типу возврата, объявленному в функции.

Обзор классов

class TypeError extends Error {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Список изменений

Версия | Описание
7.1.0 | Исключение TypeError больше не выбрасывается, когда во встроенную PHP-функцию в режиме strict type передаётся недопустимое количество аргументов. Вместо этого выбрасывается ArgumentCountError.


ValueError

(PHP 8)

Введение

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

Обзор классов

class ValueError extends Error {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


UnhandledMatchError

(PHP 8)

Введение

UnhandledMatchError выбрасывается, если субъект, переданный в выражение match, не обрабатывается ни одной из сторон выражения match.

Обзор классов

class UnhandledMatchError extends Error {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


FiberError

(PHP 8 >= 8.1.0)

Введение

FiberError выбрасывает, если в объекте Fiber выполняется недопустимая операция.

Обзор классов

final class FiberError extends Error {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
/* Наследуемые методы */
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


Встроенные интерфейсы и классы

Содержание

  • Traversable
  • Iterator
  • IteratorAggregate
  • InternalIterator
  • Throwable
  • ArrayAccess
  • Serializable
  • Closure
  • stdClass
  • Generator
  • Fiber
  • WeakReference
  • WeakMap
  • Stringable
  • UnitEnum
  • BackedEnum
  • SensitiveParameterValue

Смотрите также Интерфейсы SPL и Предопределённые классы.


Интерфейс Traversable

(PHP 5, PHP 7, PHP 8)

Введение

Интерфейс, определяющий, является ли класс обходимым (traversable) с использованием foreach.

Абстрактный базовый интерфейс, который не может быть реализован сам по себе. Вместо этого должен реализовываться IteratorAggregate или Iterator.

Обзор интерфейсов

interface Traversable {
}

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

Список изменений

Версия | Описание
7.4.0 | Интерфейс Traversable теперь может быть реализован абстрактными классами. Расширяемые классы должны реализовывать интерфейс Iterator или IteratorAggregate.

Примечания

Замечание:

Внутренние (встроенные) классы, реализующие этот интерфейс, могут быть использованы в конструкции foreach и не обязаны реализовывать интерфейс IteratorAggregate или Iterator.

Замечание:

До версии PHP 7.4.0 этот внутренний интерфейс движка не мог быть реализован в PHP-скриптах. Вместо него следует использовать либо интерфейс IteratorAggregate, либо Iterator.


Интерфейс Iterator

(PHP 5, PHP 7, PHP 8)

Введение

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

Обзор интерфейсов

interface Iterator extends Traversable {
/* Методы */
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): 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(): void {
var_dump(__METHOD__);
$this->position = 0;
}

#[\ReturnTypeWillChange]
public function current() {
var_dump(__METHOD__);
return $this->array[$this->position];
}

#[\ReturnTypeWillChange]
public function key() {
var_dump(__METHOD__);
return $this->position;
}

public function next(): void {
var_dump(__METHOD__);
++$this->position;
}

public function valid(): bool {
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, PHP 8)

Iterator::current — Возврат текущего элемента

Описание

public Iterator::current(): mixed

Возвращает текущий элемент.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Может возвращать любой тип.


Возвращает ключ текущего элемента

  • « Iterator::current
  • Iterator::next »
  • PHP Manual
  • Iterator
  • Возвращает ключ текущего элемента

Iterator::key

(PHP 5, PHP 7, PHP 8)

Iterator::key — Возвращает ключ текущего элемента

Описание

public Iterator::key(): mixed

Возвращает ключ текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает скалярное значение (scalar) в случае успешного выполнения или null в случае возникновения ошибки.

Ошибки

Создаёт ошибку уровня E_NOTICE в случае возникновения ошибки.


Переходит к следующему элементу

  • « Iterator::key
  • Iterator::rewind »
  • PHP Manual
  • Iterator
  • Переходит к следующему элементу

Iterator::next

(PHP 5, PHP 7, PHP 8)

Iterator::next — Переходит к следующему элементу

Описание

public Iterator::next(): void

Передвигает текущую позицию к следующему элементу.

Замечание:

Метод вызывается после каждой итерации foreach.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Любое возвращаемое значение игнорируется.


Возвращает итератор на первый элемент

  • « Iterator::next
  • Iterator::valid »
  • PHP Manual
  • Iterator
  • Возвращает итератор на первый элемент

Iterator::rewind

(PHP 5, PHP 7, PHP 8)

Iterator::rewind — Возвращает итератор на первый элемент

Описание

public Iterator::rewind(): void

Возвращает итератор обратно на первый элемент.

Замечание:

В начале цикла foreach этот метод вызывается первым. Метод не будет вызван после цикла foreach.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Любое возвращаемое значение игнорируется.


Проверяет корректность текущей позиции

  • « Iterator::rewind
  • IteratorAggregate »
  • PHP Manual
  • Iterator
  • Проверяет корректность текущей позиции

Iterator::valid

(PHP 5, PHP 7, PHP 8)

Iterator::valid — Проверяет корректность текущей позиции

Описание

public Iterator::valid(): bool

Метод вызывается после функций Iterator::rewind() и Iterator::next() чтобы проверить, допустима ли текущая позиция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращаемое значение будет приведено к логическому типу (bool) и затем использовано. Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Интерфейс IteratorAggregate

(PHP 5, PHP 7, PHP 8)

Введение

Интерфейс для создания внешнего итератора.

Обзор интерфейсов

interface IteratorAggregate extends Traversable {
/* Методы */
public getIterator(): Traversable
}

Пример #1 Основы использования

<?php
class myData implements IteratorAggregate {
public $property1 = "Первое общедоступное свойство";
public $property2 = "Второе общедоступное свойство";
public $property3 = "Третье общедоступное свойство";
public $property4 = "";

public function __construct() {
$this->property4 = "последнее свойство";
}

public function getIterator(): Traversable {
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
  • InternalIterator »
  • PHP Manual
  • IteratorAggregate
  • Получает внешний итератор

IteratorAggregate::getIterator

(PHP 5, PHP 7, PHP 8)

IteratorAggregate::getIterator — Получает внешний итератор

Описание

public IteratorAggregate::getIterator(): Traversable

Возвращает внешний итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр объекта, реализующий Iterator или Traversable

Ошибки

Выбрасывает исключение Exception в случае возникновения ошибки.


Класс InternalIterator

(PHP 8)

Введение

Класс для упрощения реализации интерфейса IteratorAggregate для внутренних классов.

Обзор классов

final class InternalIterator implements Iterator {
/* Методы */
private __construct()
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
}

Содержание

  • InternalIterator::__construct — Закрытый конструктор для запрета прямой инициализации
  • InternalIterator::current — Возвращает текущий элемент
  • InternalIterator::key — Возвращает ключ текущего элемента
  • InternalIterator::next — Переходит к следующему элементу
  • InternalIterator::rewind — Перематывает итератор к первому элементу
  • InternalIterator::valid — Проверяет, действительна ли текущая позиция


Закрытый конструктор для запрета прямой инициализации

  • « InternalIterator
  • InternalIterator::current »
  • PHP Manual
  • InternalIterator
  • Закрытый конструктор для запрета прямой инициализации

InternalIterator::__construct

(PHP 8)

InternalIterator::__construct — Закрытый конструктор для запрета прямой инициализации

Описание

private InternalIterator::__construct()

Список параметров

У этой функции нет параметров.


Возвращает текущий элемент

  • « InternalIterator::__construct
  • InternalIterator::key »
  • PHP Manual
  • InternalIterator
  • Возвращает текущий элемент

InternalIterator::current

(PHP 8)

InternalIterator::current — Возвращает текущий элемент

Описание

public InternalIterator::current(): mixed

Возвращает текущий элемент.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент.


Возвращает ключ текущего элемента

  • « InternalIterator::current
  • InternalIterator::next »
  • PHP Manual
  • InternalIterator
  • Возвращает ключ текущего элемента

InternalIterator::key

(PHP 8)

InternalIterator::key — Возвращает ключ текущего элемента

Описание

public InternalIterator::key(): mixed

Возвращает ключ текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ключ текущего элемента.


Переходит к следующему элементу

  • « InternalIterator::key
  • InternalIterator::rewind »
  • PHP Manual
  • InternalIterator
  • Переходит к следующему элементу

InternalIterator::next

(PHP 8)

InternalIterator::next — Переходит к следующему элементу

Описание

public InternalIterator::next(): void

Перемещает текущую позицию к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Перематывает итератор к первому элементу

  • « InternalIterator::next
  • InternalIterator::valid »
  • PHP Manual
  • InternalIterator
  • Перематывает итератор к первому элементу

InternalIterator::rewind

(PHP 8)

InternalIterator::rewind — Перематывает итератор к первому элементу

Описание

public InternalIterator::rewind(): void

Возвращается к первому элементу итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Проверяет, действительна ли текущая позиция

  • « InternalIterator::rewind
  • Throwable »
  • PHP Manual
  • InternalIterator
  • Проверяет, действительна ли текущая позиция

InternalIterator::valid

(PHP 8)

InternalIterator::valid — Проверяет, действительна ли текущая позиция

Описание

public InternalIterator::valid(): bool

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает, действительна ли текущая позиция.


Throwable

(PHP 7, PHP 8)

Введение

Throwable является родительским интерфейсом для всех объектов, выбрасывающихся с помощью выражения throw, включая классы Error и Exception.

Замечание:

Классы PHP не могут напрямую реализовать интерфейс Throwable. Вместо этого они могут наследовать подкласс Exception.

Обзор интерфейсов

interface Throwable extends Stringable {
/* Методы */
public getMessage(): string
public getCode(): int
public getFile(): string
public getLine(): int
public getTrace(): array
public getTraceAsString(): string
public getPrevious(): ?Throwable
public __toString(): string
/* Наследуемые методы */
public Stringable::__toString(): string
}

Список изменений

Версия | Описание
8.0.0 | Класс Throwable теперь реализует интерфейс Stringable.

Содержание

  • 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, PHP 8)

Throwable::getMessage — Получает сообщение ошибки

Описание

public Throwable::getMessage(): string

Возвращает сообщение ошибки данного выброшенного объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое сообщение.

Смотрите также

  • Exception::getMessage() - Получает сообщение исключения


Возвращает код исключения

  • « Throwable::getMessage
  • Throwable::getFile »
  • PHP Manual
  • Throwable
  • Возвращает код исключения

Throwable::getCode

(PHP 7, PHP 8)

Throwable::getCode — Возвращает код исключения

Описание

public Throwable::getCode(): int

Возвращает код ошибки выброшенного объекта, к которому применена функция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код исключения в виде целого числа (int) в Exception, но возможен и другой возвращаемый тип в классах, наследующих Exception (например, в виде строки (string), если тип ошибки PDOException).

Смотрите также

  • Exception::getCode() - Получает код исключения


Возвращает файл, в котором выброшено исключение

  • « Throwable::getCode
  • Throwable::getLine »
  • PHP Manual
  • Throwable
  • Возвращает файл, в котором выброшено исключение

Throwable::getFile

(PHP 7, PHP 8)

Throwable::getFile — Возвращает файл, в котором выброшено исключение

Описание

public Throwable::getFile(): string

Возвращает имя файла, в котором данный объект был выброшен.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое значение имени файла.

Смотрите также

  • Exception::getFile() - Получает файл, в котором возникло исключение


Получает строку скрипта, в которой данный объект был выброшен

  • « Throwable::getFile
  • Throwable::getTrace »
  • PHP Manual
  • Throwable
  • Получает строку скрипта, в которой данный объект был выброшен

Throwable::getLine

(PHP 7, PHP 8)

Throwable::getLine — Получает строку скрипта, в которой данный объект был выброшен

Описание

public Throwable::getLine(): int

Возвращает номер строки, в которой данный объект был выброшен.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение строки.

Смотрите также

  • Exception::getLine() - Получает строку, в которой возникло исключение


Возвращает трассировку стека

  • « Throwable::getLine
  • Throwable::getTraceAsString »
  • PHP Manual
  • Throwable
  • Возвращает трассировку стека

Throwable::getTrace

(PHP 7, PHP 8)

Throwable::getTrace — Возвращает трассировку стека

Описание

public Throwable::getTrace(): array

Возвращает трассировку стека в виде массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает трассировку стека в виде массива в таком же формате, что и debug_backtrace().

Смотрите также

  • Exception::getTrace() - Получает трассировку стека


Получает результаты трассировки стека в виде строки

  • « Throwable::getTrace
  • Throwable::getPrevious »
  • PHP Manual
  • Throwable
  • Получает результаты трассировки стека в виде строки

Throwable::getTraceAsString

(PHP 7, PHP 8)

Throwable::getTraceAsString — Получает результаты трассировки стека в виде строки

Описание

public Throwable::getTraceAsString(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает результаты трассировки стека в виде строки.

Смотрите также

  • Exception::getTraceAsString() - Получает трассировку стека в виде строки


Возвращает предыдущий Throwable

  • « Throwable::getTraceAsString
  • Throwable::__toString »
  • PHP Manual
  • Throwable
  • Возвращает предыдущий Throwable

Throwable::getPrevious

(PHP 7, PHP 8)

Throwable::getPrevious — Возвращает предыдущий Throwable

Описание

public Throwable::getPrevious(): ?Throwable

Возвращает любой предыдущий Throwable (для примера, переданное третьим параметром в Exception::__construct()).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает предыдущий Throwable, если он доступен, или null в противном случае.

Смотрите также

  • Exception::getPrevious() - Возвращает предыдущий объект, реализующий Throwable


Получает строковое представление выброшенного объекта

  • « Throwable::getPrevious
  • ArrayAccess »
  • PHP Manual
  • Throwable
  • Получает строковое представление выброшенного объекта

Throwable::__toString

(PHP 7, PHP 8)

Throwable::__toString — Получает строковое представление выброшенного объекта

Описание

public Throwable::__toString(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое (string) представление выброшенного объекта.

Смотрите также

  • Exception::__toString() - Строковое представление исключения


Интерфейс ArrayAccess

(PHP 5, PHP 7, PHP 8)

Введение

Интерфейс обеспечивает доступ к объектам в виде массивов.

Обзор интерфейсов

interface ArrayAccess {
/* Методы */
public offsetExists(mixed $offset): bool
public offsetGet(mixed $offset): mixed
public offsetSet(mixed $offset, mixed $value): void
public offsetUnset(mixed $offset): void
}

Пример #1 Основы использования

<?php
class Obj implements ArrayAccess {
public $container = [
"one" => 1,
"two" => 2,
"three" => 3,
];

public function offsetSet($offset, $value): void {
if (is_null($offset)) {
$this->container[] = $value;
} else {
$this->container[$offset] = $value;
}
}

public function offsetExists($offset): bool {
return isset($this->container[$offset]);
}

public function offsetUnset($offset): void {
unset($this->container[$offset]);
}

public function offsetGet($offset): mixed {
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, PHP 8)

ArrayAccess::offsetExists — Определяет, существует ли заданное смещение (ключ)

Описание

public ArrayAccess::offsetExists(mixed $offset): bool

Определяет, существует или нет данное смещение (ключ).

Данный метод выполняется при использовании isset() или empty() на объектах, реализующих интерфейс ArrayAccess.

Замечание:

При использовании функции empty(), вызывается метод ArrayAccess::offsetGet() и проверка на пустоту произойдёт, только если метод ArrayAccess::offsetExists() вернёт true.

Список параметров

offset

Смещение (ключ) для проверки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Замечание:

Возвращаемое значение будет приведено к логическому типу (bool), если возвращаемое значение не является логическим.

Примеры

Пример #1 Пример использования ArrayAccess::offsetExists()

<?php
class obj implements ArrayAccess {
public function offsetSet($offset, $value): void {
var_dump(__METHOD__);
}

public function offsetExists($var): bool {
var_dump(__METHOD__);
if ($var == "foobar") {
return true;
}
return false;
}

public function offsetUnset($var): void {
var_dump(__METHOD__);
}

#[\ReturnTypeWillChange]
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, PHP 8)

ArrayAccess::offsetGet — Возвращает заданное смещение (ключ)

Описание

public ArrayAccess::offsetGet(mixed $offset): mixed

Возвращает заданное смещение (ключ).

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

Список параметров

offset

Смещение (ключ) для возврата.

Возвращаемые значения

Может возвращать значение любого типа.

Примечания

Замечание:

Возможна реализация данного метода с возвращением по ссылке. Это делает возможным косвенную модификацию для величин массива перегруженного объекта 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, PHP 8)

ArrayAccess::offsetSet — Присваивает значение заданному смещению

Описание

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(). Данная операция будет успешна только в том случае, если метод возвращает по ссылке.


Удаляет смещение

  • « ArrayAccess::offsetSet
  • Serializable »
  • PHP Manual
  • ArrayAccess
  • Удаляет смещение

ArrayAccess::offsetUnset

(PHP 5, PHP 7, PHP 8)

ArrayAccess::offsetUnset — Удаляет смещение

Описание

public ArrayAccess::offsetUnset(mixed $offset): void

Удаляет смещение (ключ).

Замечание:

Этот метод не будет вызван при приведении типа к (unset)

Список параметров

offset

Смещение (ключ) для удаления.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Интерфейс Serializable

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Интерфейс для индивидуальной сериализации.

Классы, реализующие этот интерфейс, больше не поддерживают __sleep() и __wakeup(). Метод serialize вызывается всякий раз, когда необходима сериализация экземпляру класса. Этот метод не вызывает __destruct() и не имеет никаких побочных действий кроме тех, которые запрограммированы внутри него. Когда данные десериализуются, класс известен и соответствующий метод unserialize() вызывается как конструктор вместо вызова __construct(). Если вам необходимо вызвать стандартный конструктор, вы можете это сделать в этом методе.

Внимание

Начиная с PHP 8.1.0, класс, который реализует Serializable без реализации __serialize() и __unserialize() выдаст предупреждение об устаревании.

Обзор интерфейсов

interface Serializable {
/* Методы */
public serialize(): ?string
public unserialize(string $data): 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, PHP 8)

Serializable::serialize — Представляет объект в виде строки

Описание

public Serializable::serialize(): ?string

Возвращает строковое представление объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление объекта или null.

Ошибки

Выбрасывает исключение Exception при возвращении типов, отличных от строки или null.

Смотрите также

  • __sleep()
  • __serialize()


Создаёт объект

  • « Serializable::serialize
  • Closure »
  • PHP Manual
  • Serializable
  • Создаёт объект

Serializable::unserialize

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Serializable::unserialize — Создаёт объект

Описание

public Serializable::unserialize(string $data): void

Вызывается во время десериализации объекта.

Замечание:

Метод действует как конструктор объекта. Метод __construct() не вызывается после этого метода.

Список параметров

data

Строковое представление объекта.

Возвращаемые значения

Возвращаемое значение метода игнорируется.

Смотрите также

  • __wakeup()
  • __unserialize()


Класс Closure

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Класс, используемый для создания анонимных функций.

Анонимные функции выдают объекты этого типа. Класс получил методы, позволяющие контролировать анонимную функцию после её создания.

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

Обзор классов

final class Closure {
/* Методы */
private __construct()
public static bind(Closure $closure, ?object $newThis, object|string|null $newScope = "static"): ?Closure
public bindTo(?object $newThis, object|string|null $newScope = "static"): ?Closure
public call(object $newThis, mixed ...$args): mixed
public static fromCallable(callable $callback): 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, PHP 8)

Closure::__construct — Конструктор, запрещающий создание экземпляра

Описание

private Closure::__construct()

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

Список параметров

У этой функции нет параметров.

Смотрите также

  • Анонимные функции


Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса

  • « Closure::__construct
  • Closure::bindTo »
  • PHP Manual
  • Closure
  • Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса

Closure::bind

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Closure::bind — Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса

Описание

public static Closure::bind(Closure $closure, ?object $newThis, object|string|null $newScope = "static"): ?Closure

Этот метод является статическим вариантом Closure::bindTo(). Смотрите документацию к указанному методу для подробной информации.

Список параметров

closure

Анонимная функция для привязывания к объекту.

newThis

Объект, к которому будет привязана переданная анонимная функция, или null для отсоединения функции от её текущего объекта.

newScope

Область видимости класса, с которой должно быть связано замыкание, или 'static' для сохранения текущей области видимости. Если передан объект, то будет использован его класс. Этот параметр определяет видимость protected (защищённых) и private (закрытых) методов привязанного объекта. Запрещено в качестве этого параметра передавать (объектом) внутренний класс.

Возвращаемые значения

Возвращает новый объект Closure или null в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

Closure::bindTo — Дублирует замыкание с указанием связанного объекта и области видимости класса

Описание

public Closure::bindTo(?object $newThis, object|string|null $newScope = "static"): ?Closure

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

"Связанный объект" определяет значение $this, которое будет доступно в теле функции, а "область видимости класса" представляет собой класс, который определяет к каким protected (защищённым) и private (закрытым) элементам этого объекта будет иметь доступ анонимная функция. Если точнее, то это те элементы, как если бы анонимная функция была бы методом класса, переданного в параметре newScope.

Статические замыкания не могут иметь привязанный объект (значение параметра newThis должно быть равно null), но эта функция может всё равно использоваться для изменения его области видимости класса.

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

Замечание:

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

Список параметров

newThis

Объект, к которому будет привязана переданная анонимная функция, или null для отсоединения замыкания от её текущего объекта.

newScope

Область видимости класса, с которой должно быть связано замыкание или 'static' для сохранения текущей области видимости. Если передан объект, то будет использован его класс. Этот параметр определяет видимость protected (защищённых) и private (закрытых) методов привязанного объекта. Запрещается передавать в этот параметр внутренний класс (объект класса).

Возвращаемые значения

Возвращает новый объект Closure или null в случае возникновения ошибки.

Примеры

Пример #1 Пример Closure::bindTo()

<?php

class A {
private $val;

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, PHP 8)

Closure::call — Связывает и запускает замыкание

Описание

public Closure::call(object $newThis, mixed ...$args): mixed

Временно связывает замыкание с newThis и вызывает его с заданными параметрами.

Список параметров

newThis

Объект (object) для привязки к замыканию на время его вызова.

args

Ноль или больше параметров, которые передаются замыканию.

Возвращаемые значения

Возвращает возвращаемое значение замыкания

Примеры

Пример #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
  • stdClass »
  • PHP Manual
  • Closure
  • Конвертирует callable в замыкание

Closure::fromCallable

(PHP 7 >= 7.1.0)

Closure::fromCallable — Конвертирует callable в замыкание

Описание

public static Closure::fromCallable(callable $callback): Closure

Создаёт и возвращает новую анонимную функцию из заданного callback, используя текущую область видимости. Этот метод проверяет, что callback является типом callable в текущей области видимости и выбрасывает исключение TypeError, если это не так.

Замечание:

Начиная с PHP 8.1.0, у Callback-функций как объектов первого класса та же семантика, что и у этого метода.

Список параметров

callback

Объект типа callable.

Возвращаемые значения

Возвращает новый объект класса Closure или выбрасывает исключение TypeError, если callback не является объектом типа callable в текущей области видимости.

Смотрите также

  • Анонимные функции
  • Callback-функции как объекты первого класса


Класс stdClass

(PHP 4, PHP 5, PHP 7, PHP 8)

Введение

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

Объекты класса могут быть инициализированы с помощью оператора new или созданы с помощью преобразования в объект. Некоторые функции PHP также создают экземпляры этого класса, например, функции json_decode(), mysqli_fetch_object() или PDOStatement::fetchObject().

Несмотря на отсутствие реализации магических методов __get()/__set(), класс позволяет использовать динамические свойства и не требует атрибута #[\AllowDynamicProperties].

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

Обзор классов

class stdClass {
}

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

Примеры

Пример #1 Создание в результате преобразования в объект

<?php
$obj = (object) array('foo' => 'bar');
var_dump($obj);

Результат выполнения данного примера:

object(stdClass)#1 (1) {
  ["foo"]=>
  string(3) "bar"
}

Пример #2 Создание в результате работы функции json_decode()

<?php
$json = '{"foo":"bar"}';
var_dump(json_decode($json));

Результат выполнения данного примера:

object(stdClass)#1 (1) {
  ["foo"]=>
  string(3) "bar"
}

Пример #3 Объявление динамических свойств

<?php
$obj = new stdClass();
$obj->foo = 42;
$obj->{1} = 42;
var_dump($obj);

Результат выполнения данного примера:

object(stdClass)#1 (2) {
  ["foo"]=>
  int(42)
  ["1"]=>
  int(42)
}


Класс Generator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Введение

Создание объектов типа Generator описано в разделе Генераторы.

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

Объекты Generator не могут быть созданы с помощью оператора new.

Обзор классов

final class Generator implements Iterator {
/* Методы */
public current(): mixed
public getReturn(): mixed
public key(): mixed
public next(): void
public rewind(): void
public send(mixed $value): mixed
public throw(Throwable $exception): mixed
public valid(): bool
public __wakeup(): 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, PHP 8)

Generator::current — Получить текущее значение генератора

Описание

public Generator::current(): mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущее значение.


Получить значение, возвращаемое генератором

  • « Generator::current
  • Generator::key »
  • PHP Manual
  • Generator
  • Получить значение, возвращаемое генератором

Generator::getReturn

(PHP 7, PHP 8)

Generator::getReturn — Получить значение, возвращаемое генератором

Описание

public Generator::getReturn(): 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, PHP 8)

Generator::key — Получить ключ сгенерированного элемента

Описание

public Generator::key(): 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, PHP 8)

Generator::next — Возобновить работу генератора

Описание

public Generator::next(): void

Вызов Generator::next() имеет тот же эффект, что и вызов Generator::send() с null в качестве аргумента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Перемотать итератор

  • « Generator::next
  • Generator::send »
  • PHP Manual
  • Generator
  • Перемотать итератор

Generator::rewind

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::rewind — Перемотать итератор

Описание

public Generator::rewind(): void

Если итерация уже начата, то выбрасывает исключение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Передать значение в генератор

  • « Generator::rewind
  • Generator::throw »
  • PHP Manual
  • Generator
  • Передать значение в генератор

Generator::send

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

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, PHP 8)

Generator::throw — Бросить исключение в генератор

Описание

public Generator::throw(Throwable $exception): mixed

Выбрасывает исключение в генератор и возобновляет его выполнение. Поведение будет таким, как будто текущее значение yield заменили на выражение throw $exception.

Если к моменту вызова этого метода генератор закрыт, исключение будет выброшено в контексте вызывающего кода.

Список параметров

exception

Исключение, которое надо выбросить в генератор.

Возвращаемые значения

Возвращает сгенерированное значение.

Примеры

Пример #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, PHP 8)

Generator::valid — Проверка, закрыт ли итератор

Описание

public Generator::valid(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает false, если итератор закрыт и true в обратном случае.


Callback-функция сериализации

  • « Generator::valid
  • Fiber »
  • PHP Manual
  • Generator
  • Callback-функция сериализации

Generator::__wakeup

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::__wakeup — Callback-функция сериализации

Описание

public Generator::__wakeup(): void

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Класс Fiber

(PHP 8 >= 8.1.0)

Введение

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

Обзор классов

final class Fiber {
/* Методы */
public __construct(callable $callback)
public start(mixed ...$args): mixed
public resume(mixed $value = null): mixed
public throw(Throwable $exception): mixed
public getReturn(): mixed
public isStarted(): bool
public isSuspended(): bool
public isRunning(): bool
public isTerminated(): bool
public static suspend(mixed $value = null): mixed
public static getCurrent(): ?Fiber
}

Смотрите также

Обзор файберов

Содержание

  • Fiber::__construct — Создаёт новый экземпляр Fiber
  • Fiber::start — Начинает выполнение файбера
  • Fiber::resume — Возобновляет выполнение файбера со значением
  • Fiber::throw — Возобновляет выполнение файбера с исключением
  • Fiber::getReturn — Получает значение, возвращаемое файбером
  • Fiber::isStarted — Определяет, запущен ли файбер
  • Fiber::isSuspended — Определяет, приостановлен ли файбер
  • Fiber::isRunning — Определяет, работает ли файбер
  • Fiber::isTerminated — Определяет, завершён ли файбер
  • Fiber::suspend — Приостанавливает выполнение текущего файбера
  • Fiber::getCurrent — Получает текущий выполняющийся экземпляр Fiber


Создаёт новый экземпляр Fiber

  • « Fiber
  • Fiber::start »
  • PHP Manual
  • Fiber
  • Создаёт новый экземпляр Fiber

Fiber::__construct

(PHP 8 >= 8.1.0)

Fiber::__construct — Создаёт новый экземпляр Fiber

Описание

public Fiber::__construct(callable $callback)

Список параметров

callback

callable-функция для вызова при запуске файбера. Аргументы для Fiber::start() будут предоставляется в качестве аргументов для данного вызываемого объекта.


Начинает выполнение файбера

  • « Fiber::__construct
  • Fiber::resume »
  • PHP Manual
  • Fiber
  • Начинает выполнение файбера

Fiber::start

(PHP 8 >= 8.1.0)

Fiber::start — Начинает выполнение файбера

Описание

public Fiber::start(mixed ...$args): mixed

Переменный список аргументов, передаваемый вызываемому объекту, используемый при построении файбера.

Если при вызове метода файбер уже был запущен, будет выброшено FiberError.

Список параметров

args

Аргументы, которые следует использовать при вызове вызываемого объекта, передаваемого конструктору файбера.

Возвращаемые значения

Значение, предоставленное при первом вызове Fiber::suspend() или null в случае возврата файбера. Если файбер выбросил исключение перед приостановкой, оно будет выброшено из вызова этого метода.


Возобновляет выполнение файбера со значением

  • « Fiber::start
  • Fiber::throw »
  • PHP Manual
  • Fiber
  • Возобновляет выполнение файбера со значением

Fiber::resume

(PHP 8 >= 8.1.0)

Fiber::resume — Возобновляет выполнение файбера со значением

Описание

public Fiber::resume(mixed $value = null): mixed

Возобновляет файбер, используя заданное значение в результате текущего вызова Fiber::suspend().

Если файбер не приостановлен при вызове метода, будет выброшена ошибка FiberError.

Список параметров

value

Значение для возобновления файбера. Значение будет возвращаемым значением текущего вызова Fiber::suspend().

Возвращаемые значения

Значение, предоставленное для следующего вызова Fiber::suspend() или null в случае возврата файбера. Если файбер выбросил исключение перед приостановкой, оно будет выброшено из вызова этого метода.


Возобновляет выполнение файбера с исключением

  • « Fiber::resume
  • Fiber::getReturn »
  • PHP Manual
  • Fiber
  • Возобновляет выполнение файбера с исключением

Fiber::throw

(PHP 8 >= 8.1.0)

Fiber::throw — Возобновляет выполнение файбера с исключением

Описание

public Fiber::throw(Throwable $exception): mixed

Возобновляет выполнение файбера, выбрасывая данное исключение из текущего вызова Fiber::suspend().

Если файбер не приостановлен при вызове метода, будет выброшена ошибка FiberError.

Список параметров

exception

Исключение, которое нужно передать в файбер из текущего вызова Fiber::suspend().

Возвращаемые значения

Значение, предоставленное при первом вызове Fiber::suspend() или null в случае возврата файбера. Если файбер выбросил исключение перед приостановкой, оно будет выброшено из вызова этого метода.


Получает значение, возвращаемое файбером

  • « Fiber::throw
  • Fiber::isStarted »
  • PHP Manual
  • Fiber
  • Получает значение, возвращаемое файбером

Fiber::getReturn

(PHP 8 >= 8.1.0)

Fiber::getReturn — Получает значение, возвращаемое файбером

Описание

public Fiber::getReturn(): mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение, возвращаемое callable-функцией, предоставленной в Fiber::__construct(). Если файбер не вернул значение, либо потому, что он не было запущен, либо не был завершён, либо выбросил исключение, будет выброшено исключение FiberError.


Определяет, запущен ли файбер

  • « Fiber::getReturn
  • Fiber::isSuspended »
  • PHP Manual
  • Fiber
  • Определяет, запущен ли файбер

Fiber::isStarted

(PHP 8 >= 8.1.0)

Fiber::isStarted — Определяет, запущен ли файбер

Описание

public Fiber::isStarted(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true только после того, как файбер был запущен, в противном случае возвращает false.


Определяет, приостановлен ли файбер

  • « Fiber::isStarted
  • Fiber::isRunning »
  • PHP Manual
  • Fiber
  • Определяет, приостановлен ли файбер

Fiber::isSuspended

(PHP 8 >= 8.1.0)

Fiber::isSuspended — Определяет, приостановлен ли файбер

Описание

public Fiber::isSuspended(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если файбер в данный момент приостановлен, в противном случае возвращает false.


Определяет, работает ли файбер

  • « Fiber::isSuspended
  • Fiber::isTerminated »
  • PHP Manual
  • Fiber
  • Определяет, работает ли файбер

Fiber::isRunning

(PHP 8 >= 8.1.0)

Fiber::isRunning — Определяет, работает ли файбер

Описание

public Fiber::isRunning(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true только если файбер работает. Файбер считается работающим после вызова Fiber::start(), Fiber::resume() или Fiber::throw(), который ещё не был возвращён. Возвращает false, если файбер не работает.


Определяет, завершён ли файбер

  • « Fiber::isRunning
  • Fiber::suspend »
  • PHP Manual
  • Fiber
  • Определяет, завершён ли файбер

Fiber::isTerminated

(PHP 8 >= 8.1.0)

Fiber::isTerminated — Определяет, завершён ли файбер

Описание

public Fiber::isTerminated(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true только после того, как файбер завершился, либо путём возврата, либо выбросив исключение, в противном случае возвращает false.


Приостанавливает выполнение текущего файбера

  • « Fiber::isTerminated
  • Fiber::getCurrent »
  • PHP Manual
  • Fiber
  • Приостанавливает выполнение текущего файбера

Fiber::suspend

(PHP 8 >= 8.1.0)

Fiber::suspend — Приостанавливает выполнение текущего файбера

Описание

public static Fiber::suspend(mixed $value = null): mixed

Приостанавливает выполнение текущего файбера. Значение, предоставленное этому методу, будет возвращено из вызова Fiber::start(), Fiber::resume() или Fiber::throw(), который переключил выполнение текущего файбера.

Когда выполнение файбера возобновляется, метод возвращает значение, предоставленное в Fiber::resume(). Если выполнение файбера возобновляется с использованием Fiber::throw, исключение, переданное этому методу, будет выброшено при вызове метода.

Если этот метод вызывается извне файбера, будет выброшена ошибка FiberError.

Список параметров

value

Значение, возвращаемое при вызове Fiber::start(), Fiber::resume() или Fiber::throw(), которые переключают выполнение текущего файбера.

Возвращаемые значения

Значение, предоставленное Fiber::resume().


Получает текущий выполняющийся экземпляр Fiber

  • « Fiber::suspend
  • WeakReference »
  • PHP Manual
  • Fiber
  • Получает текущий выполняющийся экземпляр Fiber

Fiber::getCurrent

(PHP 8 >= 8.1.0)

Fiber::getCurrent — Получает текущий выполняющийся экземпляр Fiber

Описание

public static Fiber::getCurrent(): ?Fiber

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает выполняющийся в данный момент экземпляр Fiber или null, если метод вызывается извне файбера.


Класс WeakReference

(PHP 7 >= 7.4.0, PHP 8)

Введение

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

Объект класса WeakReference не может быть сериализован.

Обзор классов

final class WeakReference {
/* Методы */
public __construct()
public static create(object $object): WeakReference
public get(): ?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, PHP 8)

WeakReference::__construct — Конструктор, который запрещает реализацию

Описание

public WeakReference::__construct()

Метод существует только для запрета создания экземпляров класса WeakReference. Слабые ссылки должны быть созданы с помощью фабричного метода WeakReference::create().

Список параметров

У этой функции нет параметров.

Смотрите также

  • WeakReference::create() - Создаёт новую слабую ссылку


Создаёт новую слабую ссылку

  • « WeakReference::__construct
  • WeakReference::get »
  • PHP Manual
  • WeakReference
  • Создаёт новую слабую ссылку

WeakReference::create

(PHP 7 >= 7.4.0, PHP 8)

WeakReference::create — Создаёт новую слабую ссылку

Описание

public static WeakReference::create(object $object): WeakReference

Создаёт новый WeakReference.

Список параметров

object

Объект для слабой ссылки.

Возвращаемые значения

Возвращает только что созданный объект.


Получает объект со слабой ссылкой

  • « WeakReference::create
  • WeakMap »
  • PHP Manual
  • WeakReference
  • Получает объект со слабой ссылкой

WeakReference::get

(PHP 7 >= 7.4.0, PHP 8)

WeakReference::get — Получает объект со слабой ссылкой

Описание

public WeakReference::get(): ?object

Получает объект со слабой ссылкой. Если объект уже был уничтожен, возвращается null.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ссылку object или null, если объект был уничтожен.


Класс WeakMap

(PHP 8)

Введение

WeakMap - это коллекция (map) или словарь, который принимает объекты в качестве ключей. Однако, в отличие от аналогичного в остальном SplObjectStorage, объект в ключе WeakMap не влияет на счётчик ссылок объекта. То есть, если в какой-то момент единственной оставшейся ссылкой на объект является ключ WeakMap, объект будет собран сборщиком мусора и удалён из WeakMap. Его основной вариант использования - создание кешей данных, полученных из объекта, которым не нужно жить дольше, чем объект.

WeakMap реализует ArrayAccess, Iterator и Countable, поэтому в большинстве случаев его можно использовать так же, как ассоциативный массив.

Обзор классов

final class WeakMap implements ArrayAccess, Countable, IteratorAggregate {
/* Методы */
public count(): int
public getIterator(): Iterator
public offsetExists(object $object): bool
public offsetGet(object $object): mixed
public offsetSet(object $object, mixed $value): void
public offsetUnset(object $object): void
}

Примеры

Пример #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::count — Подсчитывает количество живых записей в коллекции (map)
  • WeakMap::getIterator — Получает внешний итератор
  • WeakMap::offsetExists — Проверяет, есть ли в коллекции (map) определённый объект
  • WeakMap::offsetGet — Возвращает значение, на которое указывает определённый объект
  • WeakMap::offsetSet — Обновляет коллекцию (map) новой парой ключ-значение
  • WeakMap::offsetUnset — Удаляет запись из коллекции (map)


Подсчитывает количество живых записей в коллекции (map)

  • « WeakMap
  • WeakMap::getIterator »
  • PHP Manual
  • WeakMap
  • Подсчитывает количество живых записей в коллекции (map)

WeakMap::count

(PHP 8)

WeakMap::count — Подсчитывает количество живых записей в коллекции (map)

Описание

public WeakMap::count(): int

Подсчитывает количество живых записей в коллекции (map).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество живых записей в коллекции (map).


Получает внешний итератор

  • « WeakMap::count
  • WeakMap::offsetExists »
  • PHP Manual
  • WeakMap
  • Получает внешний итератор

WeakMap::getIterator

(PHP 8)

WeakMap::getIterator — Получает внешний итератор

Описание

public WeakMap::getIterator(): Iterator

Возвращает внешний итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр объекта, реализующего Iterator или Traversable

Ошибки

Выбрасывает Exception в случае возникновения ошибки.


Проверяет, есть ли в коллекции (map) определённый объект

  • « WeakMap::getIterator
  • WeakMap::offsetGet »
  • PHP Manual
  • WeakMap
  • Проверяет, есть ли в коллекции (map) определённый объект

WeakMap::offsetExists

(PHP 8)

WeakMap::offsetExists — Проверяет, есть ли в коллекции (map) определённый объект

Описание

public WeakMap::offsetExists(object $object): bool

Проверяет, есть ли ссылка на переданный объект в коллекции (map).

Список параметров

object

Объект для проверки.

Возвращаемые значения

Возвращает true, если объект содержится в коллекции (map) или false в противном случае.


Возвращает значение, на которое указывает определённый объект

  • « WeakMap::offsetExists
  • WeakMap::offsetSet »
  • PHP Manual
  • WeakMap
  • Возвращает значение, на которое указывает определённый объект

WeakMap::offsetGet

(PHP 8)

WeakMap::offsetGet — Возвращает значение, на которое указывает определённый объект

Описание

public WeakMap::offsetGet(object $object): mixed

Возвращает значение, на которое указывает определённый объект.

Список параметров

object

Какой-то объект содержится в качестве ключа в коллекции (map).

Возвращаемые значения

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


Обновляет коллекцию (map) новой парой ключ-значение

  • « WeakMap::offsetGet
  • WeakMap::offsetUnset »
  • PHP Manual
  • WeakMap
  • Обновляет коллекцию (map) новой парой ключ-значение

WeakMap::offsetSet

(PHP 8)

WeakMap::offsetSet — Обновляет коллекцию (map) новой парой ключ-значение

Описание

public WeakMap::offsetSet(object $object, mixed $value): void

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

Список параметров

object

Объект, служащий ключом пары ключ-значение.

value

Произвольные данные, служащие значением пары ключ-значение.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Удаляет запись из коллекции (map)

  • « WeakMap::offsetSet
  • Stringable »
  • PHP Manual
  • WeakMap
  • Удаляет запись из коллекции (map)

WeakMap::offsetUnset

(PHP 8)

WeakMap::offsetUnset — Удаляет запись из коллекции (map)

Описание

public WeakMap::offsetUnset(object $object): void

Удаляет запись из коллекции (map).

Список параметров

object

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

Возвращаемые значения

Функция не возвращает значения после выполнения.


Интерфейс Stringable

(PHP 8)

Введение

Интерфейс Stringable обозначает класс, реализующий метод __toString(). В отличие от большинства интерфейсов, Stringable неявно присутствует в любом классе, в котором определён магический метод __toString(), хотя он может и должен быть объявлен явно.

Его основное значение - разрешить функциям выполнять проверку типа на соответствие типу union string|Stringable, чтобы принимать либо строковый примитив, либо объект, который может быть преобразован в строку.

Обзор интерфейсов

interface Stringable {
/* Методы */
public __toString(): string
}

Примеры использования Stringable

Пример #1 Простой пример использования Stringable

<?php
class IPv4Address implements Stringable {
private string $oct1;
private string $oct2;
private string $oct3;
private string $oct4;

public function __construct(string $oct1, string $oct2, string $oct3, string $oct4) {
$this->oct1 = $oct1;
$this->oct2 = $oct2;
$this->oct3 = $oct3;
$this->oct4 = $oct4;
}

public function __toString(): string {
return "$this->oct1.$this->oct2.$this->oct3.$this->oct4";
}
}

function showStuff(string|Stringable $value) {
// Здесь Stringable будет преобразован в строку путем вызова
// __toString.
print $value;
}

$ip = new IPv4Address('123', '234', '42', '9');

showStuff($ip);
?>

Результатом выполнения данного примера будет что-то подобное:

123.234.42.9

Содержание

  • Stringable::__toString — Получает строковое представление объекта


Получает строковое представление объекта

  • « Stringable
  • UnitEnum »
  • PHP Manual
  • Stringable
  • Получает строковое представление объекта

Stringable::__toString

(PHP 8)

Stringable::__toString — Получает строковое представление объекта

Описание

public Stringable::__toString(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое (string) представление объекта.

Смотрите также

  • __toString()


Интерфейс UnitEnum

(PHP 8 >= 8.1.0)

Введение

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

Обзор интерфейсов

interface UnitEnum {
/* Методы */
public static cases(): array
}

Содержание

  • UnitEnum::cases — Возвращает список вариантов перечисления


Возвращает список вариантов перечисления

  • « UnitEnum
  • BackedEnum »
  • PHP Manual
  • UnitEnum
  • Возвращает список вариантов перечисления

UnitEnum::cases

(PHP 8 >= 8.1.0)

UnitEnum::cases — Возвращает список вариантов перечисления

Описание

public static UnitEnum::cases(): array

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив всех определённых вариантов перечисления в порядке объявления.

Примеры

Пример #1 Простой пример использования

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

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

var_dump(Suit::cases());
?>

Результат выполнения данного примера:

array(4) {
    [0]=>
    enum(Suit::Hearts)
    [1]=>
    enum(Suit::Diamonds)
    [2]=>
    enum(Suit::Clubs)
    [3]=>
    enum(Suit::Spades)
}


Интерфейс BackedEnum

(PHP 8 >= 8.1.0)

Введение

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

Обзор интерфейсов

interface BackedEnum extends UnitEnum {
/* Методы */
public static from(int|string $value): static
public static tryFrom(int|string $value): ?static
/* Наследуемые методы */
public static UnitEnum::cases(): array
}

Содержание

  • BackedEnum::from — Сопоставляет скаляр с экземпляром перечисления
  • BackedEnum::tryFrom — Сопоставляет скаляр с экземпляром перечисления или null


Сопоставляет скаляр с экземпляром перечисления

  • « BackedEnum
  • BackedEnum::tryFrom »
  • PHP Manual
  • BackedEnum
  • Сопоставляет скаляр с экземпляром перечисления

BackedEnum::from

(PHP 8 >= 8.1.0)

BackedEnum::from — Сопоставляет скаляр с экземпляром перечисления

Описание

public static BackedEnum::from(int|string $value): static

Метод from() переводит строку (string) или число (int) в соответствующее значение перечисления, если такое имеется. Если соответствующее значение не определено, выбрасывается ValueError.

Список параметров

value

Скалярное значение для сопоставления с перечислением.

Возвращаемые значения

Случайный экземпляр этого перечисления.

Примеры

Пример #1 Простой пример использования

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

<?php
enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

$h = Suit::from('H');

var_dump($h);

$b = Suit::from('B');
?>

Результат выполнения данного примера:

enum(Suit::Hearts)

Fatal error: Uncaught ValueError: "B" is not a valid backing value for enum "Suit" in /file.php:15

Смотрите также

  • UnitEnum::cases() - Возвращает список вариантов перечисления
  • BackedEnum::tryFrom() - Сопоставляет скаляр с экземпляром перечисления или null


Сопоставляет скаляр с экземпляром перечисления или null

  • « BackedEnum::from
  • SensitiveParameterValue »
  • PHP Manual
  • BackedEnum
  • Сопоставляет скаляр с экземпляром перечисления или null

BackedEnum::tryFrom

(PHP 8 >= 8.1.0)

BackedEnum::tryFrom — Сопоставляет скаляр с экземпляром перечисления или null

Описание

public static BackedEnum::tryFrom(int|string $value): ?static

Метод tryFrom() переводит строку (string) или число (int) в соответствующее значение перечисления, если такое имеется. Если соответствующее значение не определено, возвращается null.

Список параметров

value

Скалярное значение для сопоставления с перечислением.

Возвращаемые значения

Экземпляр перечисления или null, если экземпляр не найден.

Примеры

Пример #1 Простой пример использования

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

<?php
enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

$h = Suit::tryFrom('H');

var_dump($h);

$b = Suit::tryFrom('B') ?? Suit::Spades;

var_dump($b);
?>

Результат выполнения данного примера:

enum(Suit::Hearts)
enum(Suit::Spades)

Смотрите также

  • UnitEnum::cases() - Возвращает список вариантов перечисления
  • BackedEnum::from() - Сопоставляет скаляр с экземпляром перечисления


Класс SensitiveParameterValue

(PHP 8 >= 8.2.0)

Введение

Класс SensitiveParameterValue позволяет обернуть чувствительные значения, чтобы защитить их от случайного раскрытия.

Значения параметров с атрибутом SensitiveParameter будут автоматически обёрнуты внутри объекта SensitiveParameterValue в трассировках стека.

Обзор классов

final class SensitiveParameterValue {
/* Свойства */
private readonly mixed $value;
/* Методы */
public __construct(mixed $value)
public __debugInfo(): array
public getValue(): mixed
}

Свойства

value

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

Содержание

  • SensitiveParameterValue::__construct — Создаёт новый объект SensitiveParameterValue
  • SensitiveParameterValue::__debugInfo — Защита чувствительных значений от случайного воздействия
  • SensitiveParameterValue::getValue — Возвращает чувствительное значение


Создаёт новый объект SensitiveParameterValue

  • « SensitiveParameterValue
  • SensitiveParameterValue::__debugInfo »
  • PHP Manual
  • SensitiveParameterValue
  • Создаёт новый объект SensitiveParameterValue

SensitiveParameterValue::__construct

(PHP 8 >= 8.2.0)

SensitiveParameterValue::__construct — Создаёт новый объект SensitiveParameterValue

Описание

public SensitiveParameterValue::__construct(mixed $value)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

value

Произвольное значение, которое должно храниться внутри объекта SensitiveParameterValue.


Защита чувствительных значений от случайного воздействия

  • « SensitiveParameterValue::__construct
  • SensitiveParameterValue::getValue »
  • PHP Manual
  • SensitiveParameterValue
  • Защита чувствительных значений от случайного воздействия

SensitiveParameterValue::__debugInfo

(PHP 8 >= 8.2.0)

SensitiveParameterValue::__debugInfo — Защита чувствительных значений от случайного воздействия

Описание

public SensitiveParameterValue::__debugInfo(): array

Возвращает пустой массив (array) для защиты чувствительного значения от случайного раскрытия при использовании функции var_dump().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Пустой массив (array).

Примеры

Пример #1 Передача объекта SensitiveParameterValue в функцию var_dump()

<?php
$s = new \SensitiveParameterValue('secret');

var_dump($s);
?>

Результат выполнения данного примера:

object(SensitiveParameterValue)#1 (0) {
}


Возвращает чувствительное значение

  • « SensitiveParameterValue::__debugInfo
  • Предопределённые атрибуты »
  • PHP Manual
  • SensitiveParameterValue
  • Возвращает чувствительное значение

SensitiveParameterValue::getValue

(PHP 8 >= 8.2.0)

SensitiveParameterValue::getValue — Возвращает чувствительное значение

Описание

public SensitiveParameterValue::getValue(): mixed

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Чувствительное значение.

Примеры

Пример #1 Пример использования SensitiveParameterValue::getValue()

<?php
$s = new \SensitiveParameterValue('secret');

echo "Защищённое значение: ", $s->getValue(), "\n";
?>

Результат выполнения данного примера:

Защищённое значение: secret


Предопределённые атрибуты

Содержание

  • Attribute
  • AllowDynamicProperties
  • ReturnTypeWillChange
  • SensitiveParameter

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


Класс Attribute

(PHP 8)

Введение

Атрибуты дают возможность добавлять структурированную, машиночитаемую информацию метаданных о декларациях в коде: целью атрибута могут быть классы, методы, функции, параметры, свойства и константы класса. Метаданные, определённые атрибутами, могут быть проверены во время выполнения с помощью Reflection API. Поэтому атрибуты можно рассматривать как язык конфигурации, встроенный непосредственно в код.

Обзор классов

final class Attribute {
/* Константы */
const int TARGET_CLASS;
const int TARGET_FUNCTION;
const int TARGET_METHOD;
const int TARGET_PROPERTY;
const int TARGET_CLASS_CONSTANT;
const int TARGET_PARAMETER;
const int TARGET_ALL;
const int IS_REPEATABLE;
/* Свойства */
public int $flags;
/* Методы */
public __construct(int $flags = Attribute::TARGET_ALL)
}

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

Attribute::TARGET_CLASS

Attribute::TARGET_FUNCTION

Attribute::TARGET_METHOD

Attribute::TARGET_PROPERTY

Attribute::TARGET_CLASS_CONSTANT

Attribute::TARGET_PARAMETER

Attribute::TARGET_ALL

Attribute::IS_REPEATABLE

Свойства

flags

Смотрите также

Введение в атрибуты

Содержание

  • Attribute::__construct — Создаёт новый экземпляр Attribute


Создаёт новый экземпляр Attribute

  • « Attribute
  • AllowDynamicProperties »
  • PHP Manual
  • Attribute
  • Создаёт новый экземпляр Attribute

Attribute::__construct

(PHP 8)

Attribute::__construct — Создаёт новый экземпляр Attribute

Описание

public Attribute::__construct(int $flags = Attribute::TARGET_ALL)

Создаёт новый экземпляр Attribute.

Список параметров

flags


Класс AllowDynamicProperties

(PHP 8 >= 8.2.0)

Введение

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

Обзор классов

final class AllowDynamicProperties {
/* Методы */
public __construct()
}

Примеры

Динамические свойства устарели, начиная с PHP 8.2.0, поэтому их использование без маркировки класса этим атрибутом приведёт к появлению уведомления об устаревании.

<?php
class DefaultBehaviour { }

#[\AllowDynamicProperties]
class ClassAllowsDynamicProperties { }

$o1 = new DefaultBehaviour();
$o2 = new ClassAllowsDynamicProperties();

$o1->nonExistingProp = true;
$o2->nonExistingProp = true;
?>

Результат выполнения данного примера в PHP 8.2:

Deprecated: Creation of dynamic property DefaultBehaviour::$nonExistingProp is deprecated in file on line 10

Смотрите также

Введение в атрибуты

Содержание

  • AllowDynamicProperties::__construct — Создаёт новый экземпляр атрибута AllowDynamicProperties


Создаёт новый экземпляр атрибута AllowDynamicProperties

  • « AllowDynamicProperties
  • ReturnTypeWillChange »
  • PHP Manual
  • AllowDynamicProperties
  • Создаёт новый экземпляр атрибута AllowDynamicProperties

AllowDynamicProperties::__construct

(PHP 8 >= 8.2.0)

AllowDynamicProperties::__construct — Создаёт новый экземпляр атрибута AllowDynamicProperties

Описание

public AllowDynamicProperties::__construct()

Создаёт новый экземпляр AllowDynamicProperties.

Список параметров

У этой функции нет параметров.


Класс ReturnTypeWillChange

(PHP 8 >= 8.1.0)

Введение

Большинство неокончательных внутренних методов теперь требуют, чтобы переопределяющие методы объявляли совместимый тип возвращаемого значения, иначе при проверке наследования будет выдано уведомление об устаревании. В случае если тип возвращаемого значения не может быть объявлен для переопределяемого метода из-за проблем совместимости с кросс-версиями PHP, может быть добавлен атрибут #[\ReturnTypeWillChange], чтобы заглушить уведомление об устаревании.

Обзор классов

final class ReturnTypeWillChange {
/* Методы */
public __construct()
}

Смотрите также

Введение в атрибуты

Содержание

  • ReturnTypeWillChange::__construct — Создаёт новый экземпляр атрибута ReturnTypeWillChange


Создаёт новый экземпляр атрибута ReturnTypeWillChange

  • « ReturnTypeWillChange
  • SensitiveParameter »
  • PHP Manual
  • ReturnTypeWillChange
  • Создаёт новый экземпляр атрибута ReturnTypeWillChange

ReturnTypeWillChange::__construct

(PHP 8 >= 8.1.0)

ReturnTypeWillChange::__construct — Создаёт новый экземпляр атрибута ReturnTypeWillChange

Описание

public ReturnTypeWillChange::__construct()

Создаёт новый экземпляр ReturnTypeWillChange.

Список параметров

У этой функции нет параметров.


Класс SensitiveParameter

(PHP 8 >= 8.2.0)

Введение

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

Обзор классов

final class SensitiveParameter {
/* Методы */
public __construct()
}

Примеры

<?php

function defaultBehavior(
string $secret,
string $normal
) {
throw new Exception('Error!');
}

function sensitiveParametersWithAttribute(
#[\SensitiveParameter]
string $secret,
string $normal
) {
throw new Exception('Error!');
}

try {
defaultBehavior('password', 'normal');
} catch (Exception $e) {
echo $e, PHP_EOL, PHP_EOL;
}

try {
sensitiveParametersWithAttribute('password', 'normal');
} catch (Exception $e) {
echo $e, PHP_EOL, PHP_EOL;
}

?>

Результат выполнения данного примера в PHP 8.2 аналогичен:

Exception: Error! in example.php:7
Stack trace:
#0 example.php(19): defaultBehavior('password', 'normal')
#1 {main}

Exception: Error! in example.php:15
Stack trace:
#0 example.php(25): sensitiveParametersWithAttribute(Object(SensitiveParameterValue), 'normal')
#1 {main}

Смотрите также

  • Введение в атрибуты
  • SensitiveParameterValue

Содержание

  • SensitiveParameter::__construct — Создаёт новый экземпляр атрибута SensitiveParameter


Создаёт новый экземпляр атрибута SensitiveParameter

  • « SensitiveParameter
  • Контекстные опции и параметры »
  • PHP Manual
  • SensitiveParameter
  • Создаёт новый экземпляр атрибута SensitiveParameter

SensitiveParameter::__construct

(PHP 8 >= 8.2.0)

SensitiveParameter::__construct — Создаёт новый экземпляр атрибута SensitiveParameter

Описание

public SensitiveParameter::__construct()

Создаёт новый экземпляр SensitiveParameter.

Список параметров

У этой функции нет параметров.


Контекстные опции и параметры

PHP предлагает различные контекстные опции и параметры, которые могут быть использованы со всеми
файловыми системами и обёртками потоков. Контекст создаётся с помощью функции
stream_context_create(). Опции устанавливаются с помощью
stream_context_set_option(), а параметры с помощью
stream_context_set_params().

Содержание

  • Контекстные опции сокета — Список контекстных опций сокета
  • Опции контекста HTTP — Список опций контекста HTTP
  • Параметры контекста FTP — Список параметров контекста FTP
  • Опции контекста SSL — Список опций контекста SSL
  • Контекстные опции Phar — Список контекстных опций Phar
  • Параметры контекста — Список параметров контекста
  • Опции контекста Zip — Список опций контекста Zip
  • Zlib context options — Перечисление опций контекста Zlib


Список контекстных опций сокета

  • « Контекстные опции и параметры
  • Опции контекста 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.

Примеры

Пример #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:), даже при следующих переадресациях Location:. Таким образом, не рекомендуется устанавливать заголовок Host:, если включён параметр follow_location.

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 bool

Когда установлено в true, весь URI будет использован при формировании запроса. (Например, GET http://www.example.com/path/to/file.html HTTP/1.0). Хотя это нестандартный формат запроса, некоторые прокси-серверы требуют его.

По умолчанию false.

follow_location int

Следовать переадресациям заголовка Location. Для отключения установите в значение 0.

По умолчанию 1.

max_redirects int

Максимальное количество переадресаций, которым можно следовать. Значение 1 или меньше означает, что никаких переадресаций не будет произведено.

По умолчанию 20.

protocol_version float

Версия протокола HTTP.

По умолчанию 1.1, начиная с PHP 8.0.0; до этой версии значение по умолчанию было 1.0.

timeout float

Время ожидания на чтение в секундах, указанное в виде числа с плавающей точкой (float), например, 10.5.

По умолчанию используется значение директивы default_socket_timeout из файла php.ini.

ignore_errors bool

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

По умолчанию false.

Примеры

Пример #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 Permanently',
    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 bool

Разрешает перезаписывать существующие файлы на удалённом сервере. Работает только в режиме записи (upload).

По умолчанию false.

resume_pos int

Смещение в файле, с которого начинается передача. Работает только в режиме чтения (download).

По умолчанию 0 (Начало файла).

proxy string

FTP-запрос через прокси-сервер HTTP. Применяется только при операции чтения файла. Пример: tcp://squid.example.com:8000.

Примечания

Замечание: Опции контекста нижележащего потока в сокете
Дополнительные опции контекста могут поддерживаться нижележащим транспортным протоколом. Для потоков ftp://, это относится к опциям контекста для транспортного протокола tcp://. Для потоков ftps://, это относится к опциям контекста для транспортного протокола ssl://.

Смотрите также

  • ftp://
  • Контекстные опции сокета
  • Опции контекста SSL


Список опций контекста SSL

  • « Параметры контекста FTP
  • Контекстные опции Phar »
  • PHP Manual
  • Контекстные опции и параметры
  • Список опций контекста SSL

Опции контекста SSL

Опции контекста SSL — Список опций контекста SSL

Описание

Опции контекста для протоколов ssl:// и tls://

Опции

peer_name string

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

verify_peer bool

Требовать проверки используемого SSL-сертификата.

По умолчанию true.

verify_peer_name bool

Требовать проверки имени узла.

По умолчанию true.

allow_self_signed bool

Разрешить самоподписанные сертификаты. Требует 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 был закодирован.

verify_depth int

Прервать, если цепочка сертификата слишком длинная.

По умолчанию проверка отсутствует.

ciphers string

Устанавливает список доступных алгоритмов шифрования. Формат этой строки описан в разделе » шифры(1).

По умолчанию принимает значение DEFAULT.

capture_peer_cert bool

Если установлено в true, то будет создана опция контекста peer_certificate, содержащая сертификат удалённого узла.

capture_peer_cert_chain bool

Если установлено в true, то будет создана опция контекста peer_certificate_chain, содержащая цепочку сертификатов.

SNI_enabled bool

Если установлено в true, то будет включено указание имени сервера. Включение SNI позволяет использовать разные сертификаты на одном и том же IP-адресе.

disable_compression bool

Отключает сжатие TLS, что помогает предотвратить атаки типа CRIME.

peer_fingerprint string | array

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

Если указана строка (string), то её длина определяет какой алгоритм хеширования будет использован: "md5" (32) или "sha1" (40).

Если указан массив (array), то ключи определяют алгоритм хеширования, а каждое соответствующее значение является требуемым хешом.

security_level int

Устанавливает уровень безопасности. Если не указан, используется стандартный уровень безопасности, указанный в библиотеке. Уровни безопасности описаны в » SSL_CTX_get_security_level(3).

Доступна с PHP 7.2.0 и OpenSSL 1.1.0.

Список изменений

Версия | Описание
7.2.0 | Добавлен security_level. Требуется OpenSSL >= 1.1.0.

Примечания

Замечание: Так как ssl:// - это нижележащий транспортный протокол для обёрток https:// и ftps://, то любые опции контекста, которые применяются к ssl:// будут также применяться к https:// и ftps://.

Замечание: Чтобы была доступна возможность указания имени сервера (SNI, Server Name Indication), PHP должен быть скомпилирован с OpenSSL 0.9.8j или более поздней. Используйте константу OPENSSL_TLSEXT_SERVER_NAME чтобы определить, поддерживается ли SNI.

Смотрите также

  • Контекстные опции сокета


Список контекстных опций Phar

  • « Опции контекста SSL
  • Параметры контекста »
  • PHP Manual
  • Контекстные опции и параметры
  • Список контекстных опций Phar

Контекстные опции Phar

Контекстные опции Phar — Список контекстных опций Phar

Описание

Контекстные опции для обёртки phar://.

Опции

compress int

Одна из констант сжатия Phar.

metadata mixed

Метаданные Phar. Смотрите Phar::setMetadata().

Смотрите также

  • phar://
  • Потоки Phar


Список параметров контекста

  • « Контекстные опции Phar
  • Опции контекста Zip »
  • PHP Manual
  • Контекстные опции и параметры
  • Список параметров контекста

Параметры контекста

Параметры контекста — Список параметров контекста

Описание

Данные параметры могут быть заданы для контекста с помощью функции stream_context_set_params().

Список параметров

notification callable

Функция типа callable, вызываемая при наступлении события в потоке.

За подробностями обращайтесь к документации функции stream_notification_callback.


Список опций контекста Zip

  • « Параметры контекста
  • Zlib context options »
  • 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);

?>


Перечисление опций контекста Zlib

  • « Опции контекста Zip
  • Поддерживаемые протоколы и обёртки »
  • PHP Manual
  • Контекстные опции и параметры
  • Перечисление опций контекста Zlib

Zlib context options

Zlib context options — Перечисление опций контекста Zlib

Описание

Опции контекста Zlib доступны для обёрток zlib.

Опции

level

Используется для указания уровня сжатия (0 - 9).

Список изменений

Версия | Описание
7.3.0 | Добавлен параметр level.


Поддерживаемые протоколы и обёртки

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. По умолчанию используется HTTP 1.0 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(), filemtime(), filetype(), file_exists(), is_file() и is_dir().
Поддержка 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, остаётся неизменным. Рекомендуется просто использовать константы STDIN, STDOUT и STDERR вместо ручного открытия потоков, используя эти обёртки.

Поток php://stdin предназначен только для чтения, тогда как php://stdout и php://stderr предназначены только для записи.

php://input

php://input является потоком только для чтения, который позволяет вам читать необработанные данные из тела запроса. php://input недоступен в POST-запросах с enctype="multipart/form-data", если опция enable_post_data_reading включена.

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 может потребоваться стандартный поток ввода-вывода и они могут попытаться преобразовать заданный поток в стандартный поток ввода-вывода. Это преобразование может завершиться ошибкой для потоков памяти, поскольку для такого приведения необходима функция fopencookie() языка Си. Такая функция языка Си недоступна в операционных системах Windows.

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 поддерживают fstat().
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет
Поддержка stream_select() | только php://stdin, php://stdout, php://stderr, php://fd и 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() | Нет

Смотрите также

  • Zlib context options


Схема Data (RFC 2397)

  • « zlib://
  • glob:// »
  • PHP Manual
  • Поддерживаемые протоколы и обёртки
  • Схема Data (RFC 2397)

data://

data:// — Схема Data (RFC 2397)

Описание

data: (» RFC 2397) - это обёртка потоков.

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

  • 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:.

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

  • 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://. Смотрите раздел Обёртка потока 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-инъекции
  • Сообщения об ошибках
  • Данные, введённые пользователем
  • Сокрытие 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-модулем на необходимом уровне безопасности, вы можете включить ini-директиву cgi.force_redirect. Но при этом вы всё ещё должны убедиться, что альтернативные способы вызова скрипта, такие как непосредственный вызов 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 директива ini cgi.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 "Файл был удалён!";
?>
Существуют две важные меры, которые можно предпринять для предотвращения описанной проблемы.
  • Ограничить доступ пользователя, с правами которого работает веб-сервер с 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 может вам помочь с этой задачей с помощью таких модулей как OpenSSL и Sodium, реализующих довольно большое число алгоритмов шифрования. При таком подходе скрипт вначале шифрует сохраняемые данные, а затем дешифрует их при запросе. Ниже приведены примеры того, как работает шифрование данных в PHP-скриптах.

Хеширование

В случае работы со скрытыми служебными данными, если не требуется их нешифрованное представление (т.е. его не нужно показывать), то, как следствие, можно использовать хеширование. Хорошо известный пример хеширования - хранение криптографического хеша от пароля в БД, вместо хранения оригинального значения.

Функция password позволяет удобно хешировать конфиденциальные данные и работать с этими хешами.

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) . '.';
}

?>


SQL-инъекции

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

Пример #1 Постраничный вывод результата и создание суперпользователя в PostgreSQL

В следующем примере пользовательский ввод напрямую интерполируется в SQL-запрос, что позволяет злоумышленнику получить учётную запись суперпользователя в базе данных.

<?php

$offset = $_GET['offset']; // осторожно, нет валидации ввода!
$query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
$result = pg_query($conn, $query);
?>
Обычно пользователи нажимают по ссылкам 'вперёд' и 'назад', вследствие чего значение переменной $offset заносится в URL. Скрипт ожидает, что $offset - десятичное число. Однако, взломщик может попытаться взломать систему, присоединив к URL следующее значение:
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
  select 'crack', usesysid, 't','t','crack'
  from pg_shadow where usename='postgres';
--
Если это произойдёт, скрипт предоставит злоумышленнику доступ суперпользователя. Обратите внимание, что значение 0; использовано для того, чтобы задать правильное смещение для первого запроса и корректно его завершить.

Замечание:

Это распространённый приём, чтобы заставить синтаксический анализатор SQL игнорировать остальную часть запроса, написанного разработчиком с помощью --, который является знаком комментария в 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;
--

Выражения UPDATE и INSERT также подвержены таким атакам.

Пример #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
...;";
?>

Хотя остаётся очевидным, что для проведения успешной атаки злоумышленник должен обладать хотя бы некоторыми знаниями об архитектуре базы данных, получить эту информацию зачастую очень просто. Например, код может быть частью программного обеспечения с открытым исходным кодом и находиться в открытом доступе. Эта информация также может быть раскрыта закрытым кодом - даже если он закодирован, обфусцирован или скомпилирован, и даже вашим собственным кодом через отображение сообщений об ошибках. Другие методы включают использование типичных имён таблиц и столбцов. Например, форма входа в систему, использующая таблицу 'users' с именами столбцов 'id', 'username' и 'password'.

Пример #4 Атака на операционную систему сервера базы данных (MSSQL Server)

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

<?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 Server выполняет SQL запросы в пакете, включая команду добавления нового пользователя в локальную базу данных учётных записей. Если бы это приложение было запущено от имени sa и служба MSSQLSERVER была запущена с достаточными привилегиями, у злоумышленника появилась бы учётная запись, с помощью которой он мог бы получить доступ к этой машине.

Замечание:

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

Забавный пример проблем, связанных с SQL-инъекциями
Изображение любезно предоставлено » xkcd

Способы защиты

Рекомендуемый способ избежать SQL-инъекций - связывание всех данных с помощью подготовленных запросов. Использование подготовленных запросов недостаточно для полного предотвращения SQL-инъекций, но это самый простой и безопасный способ обеспечить ввод данных в SQL-запросы. Все динамические литералы данных в выражениях WHERE, SET и VALUES должны быть заменены заполнителями. Фактические данные будут связаны во время выполнения и отправлены отдельно от команды SQL.

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

Пример #5 Избегание SQL-инъекций с помощью подготовленных операторов PDO

<?php

// Динамическая часть SQL проверяется на соответствие ожидаемым значениям
$sortingOrder = $_GET['sortingOrder'] === 'DESC' ? 'DESC' : 'ASC';
$productId = $_GET['productId'];

// SQL подготавливается с заполнителем
$stmt = $pdo->prepare("SELECT * FROM products WHERE id LIKE ? ORDER BY price {$sortingOrder}");

// Значение предоставляется с подстановочными знаками LIKE
$stmt->execute(["%{$productId}%"]);
?>

Подготовленные операторы предоставляются PDO, MySQLi, а также другими библиотеками баз данных.

Атаки SQL-инъекций в основном основаны на использовании кода, написанного без учёта требований безопасности. Никогда не доверяйте любому вводу, особенно со стороны клиента, даже если он поступает из поля выбора, скрытого поля ввода или cookie. Первый пример показывает, что такой простой запрос может привести к катастрофе.

Стратегия "защита в глубину" включает в себя несколько эффективных методов написания кода:

  • Никогда не подключайтесь к базе данных как суперпользователь или владелец базы данных. Всегда используйте настроенных пользователей с минимальными привилегиями.
  • Всегда проверяйте введённые данные на соответствие ожидаемому типу. В PHP есть множество функций для проверки данных: начиная от простейших функций для работы с переменными и функций определения типа символов (таких как is_numeric() и ctype_digit() соответственно) и заканчивая Perl-совместимыми регулярными выражениями.
  • В случае, если приложение ожидает цифровой ввод, примените функцию ctype_digit() для проверки введённых данных, или принудительно укажите их тип при помощи settype(), или просто используйте числовое представление при помощи функции sprintf().
  • Если на уровне базы данных не поддерживаются привязанные переменные, то всегда экранируйте любые нечисловые данные, используемый в запросах к БД при помощи специальных экранирующих функций, специфичных для используемой вами базы данных (например, 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");
}
?>


Данные, введённые пользователем

Наиболее опасные уязвимости во многих 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

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

Несколько несложных методик могут помочь вам скрыть 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". Подробнее смотрите функцию 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 использует указание директивы 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 (значение по умолчанию).


Cookies

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

Любые cookies, отправленные серверу браузером клиента, будут автоматически включены в суперглобальный массив $_COOKIE, если директива variables_order содержит букву "C". Для назначения нескольких значений одной cookie, просто добавьте [] к её имени.

Дополнительная информация, в том числе и особенности реализации браузеров, приведена в описании функций 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']

Код ошибки, которая может возникнуть при загрузке файла.

$_FILES['userfile']['full_path']

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

По умолчанию принятые файлы сохраняются на сервере в стандартной временной папке до тех пор, пока не будет задана другая директория при помощи директивы 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; Отсутствует временная папка.

UPLOAD_ERR_CANT_WRITE

Значение: 7; Не удалось записать файл на диск.

UPLOAD_ERR_EXTENSION

Значение: 8; Модуль PHP остановил загрузку файла. PHP не предоставляет способа определить, какой модуль остановил загрузку файла; в этом может помочь просмотр списка загруженных модулей с помощью phpinfo().


Наиболее распространённые ошибки

Опция 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 достаточно велико.

Опция max_file_uploads контролирует максимальное количество загружаемых файлов в течение одного запроса. Если загружается большее количество файлов, чем указано в этом ограничении, то массив $_FILES прекратит дальнейшую обработку файлов по достижении этого ограничения. Например, если max_file_uploads установлено в 10, то $_FILES никогда не будет содержать больше 10 элементов.

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

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

Разработчики не должны использовать одинаковые имена для обычных полей ввода (тег 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'] будут инициализированы.

Например, предположим, что были загружены файлы /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] также будут инициализированы.

Внимание

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

Пример #2 Загрузка всего каталога

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

С помощью информации full_path можно сохранить относительные пути или восстановить тот же каталог на сервере.

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Загрузка каталога:<br />
  <input name="userfile[]" type="file" webkitdirectory multiple />
  <input type="submit" value="Загрузить файлы" />
</form>
Внимание

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

PHP анализирует только информацию об относительном пути, отправленную браузером/пользовательским агентом и передаёт эту информацию в массив $_FILES. Нет никакой гарантии, что значения в массиве full_path содержат реальную структуру каталогов и приложение PHP не должно доверять этой информации.


Поддержка метода 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 (для корректной работы этих функций должна быть включена опция 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 реализована поддержка 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() для указания простой функции, которая снимает блокировку таблиц или отката ваших транзакций. Ещё лучше избежать этих проблем полностью, не используя постоянные соединения в скриптах, которые используют блокировку таблиц или транзакции (при этом вы всё ещё можете использовать их где-то в другом месте).

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

Смотрите также ibase_pconnect(), ociplogon(),
odbc_pconnect(), oci_pconnect(),
pfsockopen() и pg_pconnect().


Использование 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.

Бинарный файл 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. Этот параметр необязателен и может быть опущен - достаточно просто указать имя запускаемого файла.

-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://github.com/php/php-src/issues. Можно столкнуться с проблемами при попытке получить доступ к переменным оболочки или при работе с экранирующими обратными слешами. Теперь вы предупреждены!

Замечание:

Ключ -r доступен в CLI SAPI, но недоступен в CGI SAPI.

Замечание:

Эта опция предназначена только для самого простого кода. Поэтому некоторые конфигурационные директивы (например, auto_prepend_file и auto_append_file) в этом режиме будут проигнорированы.

-B --process-begin

Выполняемый код PHP перед обработкой потока ввода (stdin).

-R --process-code

PHP-код, выполняемый для каждой строки ввода.

В этом режиме есть две специальные переменные: $argn и $argi. $argn содержит строку, которую PHP обрабатывает в данный момент, а $argi содержит номер этой строки.

-F --process-file

PHP-файл, выполняемый для каждой строки ввода.

-E --process-end

PHP-код, выполняемый после обработки ввода.

Пример #4 Использование опций -B, -R и -E для подсчёта количества строк в проекте.

$ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Всего строк: $l\n";'
Всего строк: 37328

-S --server

Запускает встроенный веб-сервер.

-t | --docroot | Указывает корень документа для встроенного веб-сервера.
-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

Показывает имена конфигурационных файлов и отсканированные директории.

Пример #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 был скомпилирован с поддержкой 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 был скомпилирован с поддержкой 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 был скомпилирован с поддержкой 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()).

--ri --rextinfo

Показывает информацию о конфигурации указанного модуля (та же информация, которая возвращается phpinfo()). Конфигурацию ядра можно узнать, указав в качестве имени модуля значение "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.

  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] будет "Стандартный поток" ("Standard input code"); до PHP 7.2.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.

Замечание:

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


Потоки ввода/вывода

Модуль 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.


Интерактивная консоль

Модуль 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.

Модуль CLI SAPI предоставляет две новые настройки в php.ini: cli.pager и cli.prompt. Настройка cli.pager позволяет использовать внешнюю программу (такую как less) для постраничного просмотра данных вместо их прямого вывода на экран. Настройка cli.prompt позволяет задавать приглашение php > на ввод команды.

Также можно устанавливать настройки 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 обрабатываются в этом режиме с некоторыми ограничениями, например, функции должны быть объявлены до их использования.

Интерактивный режим

Если модуль readline недоступен, то до PHP 8.1.0 вызов файла CLI SAPI с параметром -a обеспечивал интерактивный режим. В этом режиме предполагается, что полный скрипт PHP передаётся через STDIN, а после завершения скрипт оценивается с помощью CRTL+d (POSIX) или CTRL+z с последующим ENTER (Windows). По сути это то же самое, что и вызов CLI SAPI без параметра -a. option.

Начиная с PHP 8.1.0, вызов CLI SAPI с параметром -a завершается ошибкой, если модуль readline недоступен.


Встроенный веб-сервер

Внимание

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

Модуль 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
История изменений
Версия | Описание
7.4.0 | Вы можете настроить встроенный веб-сервер так, чтобы он выполнял разветвление нескольких воркеров для проверки кода, который требует нескольких одновременных запросов к встроенному веб-серверу. Задайте в переменной окружения PHP_CLI_SERVER_WORKERS количество требуемых воркеров перед запуском сервера. Не поддерживается в Windows. Внимание Эта экспериментальная функция не предназначена для продакшен использования. Обычно встроенный веб-сервер не предназначен для продакшен использования.

Пример #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

Обратите внимание, что до PHP 7.4.0 статические ресурсы с символическими ссылками не были доступны в Windows, если только скрипт маршрутизатора не обработал бы их.

Пример #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 |

Краткое разъяснение конфигурационных директив.

cli_server.color bool

Включает поддержку цветовых кодов 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, т. к. только одно имя переменной указывает на данный контейнер. Обратите внимание, что ссылки (т. е. "is_ref" равно true) с "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_THRESHOLD_DEFAULT в файле 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';
public $self;
}

$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.14159265359';
public $self;
}

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, также могут быть использованы с 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-скрипт будет выводить аргументы всех сработавших зондов.

Когда вы увидели все, что хотели, прервать работу скрипта можно комбинацией CTRL+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
    • APCu — Пользовательский кеш APC
    • Componere
    • Обработка ошибок — Обработка и логирование ошибок
    • FFI — Интерфейс внешней функции (Foreign Function Interface)
    • OPcache
    • Контроль вывода — Управление буфером вывода
    • Опции/информация PHP — Опции и информация PHP
    • phpdbg — Интерактивный отладчик PHP
    • runkit7
    • uopz — User Operations для Zend
    • WinCache — Windows Cache для PHP
    • Xhprof — Hierarchical Profiler
    • Yac
  • Обработка аудио форматов
    • OpenAL — Аудиопотоки OpenAL
  • Службы аутентификации
    • Radius
  • Модули для работы с командной строкой
    • Readline — GNU Readline
  • Модули для сжатия и архивации
    • Bzip2
    • LZF
    • Phar
    • Rar — Архивирование Rar
    • Zip
    • Zlib
  • Криптографические модули
    • Hash — Фреймворк хеш-кодов HASH
    • Mcrypt
    • Mhash
    • OpenSSL
    • Хеширование паролей
    • Rnp
    • Sodium
  • Модули для работы с базами данных
    • Уровни абстракции
    • Модули для работы с базами данных отдельных производителей
  • Модули для работы с датой и временем
    • Календарь
    • Дата/время — Дата и время
    • HRTime — Время высокого разрешения
  • Модули для работы с файловой системой
    • Прямой ввод/вывод (Direct IO)
    • Каталоги
    • FileInfo — Информация о файле
    • Файловая система
    • Inotify
    • xattr
    • xdiff
  • Поддержка языков и кодировок
    • Enchant — Библиотека проверки правописания Enchant
    • Gender — Определение пола по имени
    • Gettext
    • iconv
    • intl — Функции интернационализации
    • Многобайтовые строки
    • Pspell
    • Recode — GNU Recode
  • Обработка и генерация изображений
    • Exif — Изменяемая информация об изображении
    • GD — Обработка изображений и GD
    • Gmagick
    • ImageMagick — Обработка изображений (ImageMagick)
  • Модули для работы с почтой
    • IMAP — IMAP, POP3 и NNTP
    • Mail
    • Mailparse
  • Математические модули
    • BC Math — Вычисления над числами с произвольной точностью BCMath
    • GMP — Вычисления над целыми числами с произвольной точностью (GNU Multiple Precision)
    • Math — Математические функции
    • Статистика
    • Trader — Технический анализ для трейдеров
  • Генерация нетекстовых MIME-форматов
    • FDF — Формат данных форм
    • GnuPG — GNU Privacy Guard
    • wkhtmltox
    • PS — Создание документов PostScript
    • RpmInfo
    • XLSWriter
  • Модули для управления процессами программ
    • Eio
    • Ev
    • Expect
    • PCNTL — Управление процессами
    • POSIX
    • Запуск программы — Запуск программ в системе
    • parallel
    • pthreads
    • Семафоры — Семафоры, разделяемая память и IPC
    • Управление разделяемой памятью
    • Sync
  • Другие базовые модули
    • GeoIP — Geo IP Location
    • FANN — Быстрая искусственная нейронная сеть (Fast Artificial Neural Network или FANN)
    • Igbinary
    • JSON — JavaScript Object Notation
    • Simdjson
    • Lua
    • LuaSandbox
    • Misc. — Разные функции
    • Random — Генераторы случайных чисел и функции, связанные со случайностью
    • Seaslog
    • SPL — Стандартная библиотека PHP (SPL)
    • Потоки
    • Swoole
    • Tidy
    • Лексер (Tokenizer)
    • URL
    • V8js — Интеграция V8 Javascript Engine
    • Yaml — Сериализация данных YAML
    • Yaf — Yet Another Framework
    • Yaconf
    • Taint
    • Структуры данных
    • var_representation
  • Другие службы
    • cURL — Клиентская библиотека работы с URL
    • Event
    • FTP
    • Gearman
    • LDAP — Облегчённый протокол доступа к каталогам (LDAP)
    • Memcache
    • Memcached
    • mqseries
    • Сеть
    • RRD — RRDtool
    • ScoutAPM
    • SNMP
    • Сокеты
    • SSH2 — Secure Shell2
    • Stomp — Stomp Client
    • SVM — Support Vector Machine (Вспомогательная векторная машина)
    • SVN — Subversion
    • TCP — Обёртки TCP
    • Varnish
    • YAZ
    • Обмен сообщениями 0MQ — ZMQ
    • ZooKeeper
  • Модули для работы с поисковыми системами
    • Solr — Apache Solr
  • Модули для работы с серверами
    • Apache
    • Менеджер процессов FastCGI
  • Модули для работы с сессиями
    • Сессии — Управление сессиями
  • Обработка текста
    • CommonMark
    • Parle — Разбор и лексирование
    • PCRE — Функции для работы с регулярными выражениями (Perl-совместимые)
    • ssdeep — Нечёткое хеширование ssdeep
    • Строки
  • Модули, относящиеся к переменным и типам
    • Массивы
    • Классы и объекты — Информация о классе и объекте
    • Ctype — Функции определения типа символов
    • Filter — Фильтрация данных
    • Управление функциями
    • Quickhash
    • Reflection
    • Обработка переменных
  • Веб-сервисы
    • OAuth
    • SOAP
    • Yar — Ещё один RPC-фреймворк
    • XML-RPC
  • Модули только для Windows
    • COM — COM и .Net (Windows)
    • win32service
  • Обработка XML
    • DOM — Document Object Model
    • libxml
    • SimpleXML
    • WDDX
    • XMLDiff — Сравнение и объединение XML
    • Разбор XML
    • XMLReader
    • XMLWriter
    • XSL
  • Модули для работы с GUI
    • UI


Изменение поведения PHP

  • APCu — Пользовательский кеш APC
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции APCu
    • APCUIterator — Класс APCUIterator
  • Componere
    • Введение
    • Установка и настройка
    • Componere\Abstract\Definition — Класс Componere\Abstract\Definition
    • Componere\Definition — Класс Componere\Definition
    • Componere\Patch — Класс Componere\Patch
    • Componere\Method — Класс Componere\Method
    • Componere\Value — Класс Componere\Value
    • Функции Componere
  • Обработка ошибок — Обработка и логирование ошибок
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции обработки ошибок
  • FFI — Интерфейс внешней функции (Foreign Function Interface)
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • FFI — Основной интерфейс к коду и данным C
    • FFI\CData — Доступ к данным C
    • FFI\CType — Доступ к типам C
    • FFI\Exception — Исключения FFI
    • FFI\ParserException — Исключения парсера FFI
  • OPcache
    • Введение
    • Установка и настройка
    • Preloading
    • Функции OPcache
  • Контроль вывода — Управление буфером вывода
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции контроля вывода
  • Опции/информация PHP — Опции и информация PHP
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Опции PHP/информационные функции
  • phpdbg — Интерактивный отладчик PHP
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции phpdbg
  • runkit7
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции runkit7
  • uopz — User Operations для Zend
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции Uopz
  • WinCache — Windows Cache для PHP
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции WinCache
    • Сборка для Windows
  • Xhprof — Hierarchical Profiler
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции Xhprof
  • Yac
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Yac — Класс Yac


Пользовательский кеш APC

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции APCu
    • apcu_add — Добавить переменную в кеш
    • apcu_cache_info — Извлекает закешированную информацию из хранилища APCu
    • apcu_cas — Заменяет старое значение на новое
    • apcu_clear_cache — Очистить кеш APCu
    • apcu_dec — Уменьшить сохранённое число
    • apcu_delete — Удаляет сохранённое значение из кеша
    • apcu_enabled — Возможно ли использовать APCu в текущем окружении
    • apcu_entry — Автоматическое извлечение или создание записи в кеше
    • apcu_exists — Проверяет, существуют ли записи
    • apcu_fetch — Извлекает из кеша сохранённую переменную
    • apcu_inc — Увеличить сохранённое число
    • apcu_key_info — Получить детальную информацию о ключе в кеше
    • 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 - это хранилище "ключ-значение" в памяти для PHP. Ключи являются строками (string), а значения могут быть любыми переменными PHP. APCu поддерживает только кеширование переменных в пользовательском пространстве.

В Windows кеш APCu относится к каждому процессу, поэтому при использовании SAPI, основанного на процессах (а не на потоках), он не будет разделяться между различными процессами.

APCu - это APC без кеширования опкода.

Первая версия APCu имеет номер 4.0.0, так как она была клонирована из основной кодовой ветви APC. Поддержка PHP 7 доступна, начиная с APCu 5.0.0. Поддержка PHP 8 доступна, начиная с APCu 5.1.19.


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

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Типы ресурсов


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для сборки этого модуля не требуются внешние библиотеки.


Установка

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/apcu.

Подсказка

В PHP 7 есть отдельный модуль (» apcu-bc) для обратной совместимости с APC.

В режиме обратной совместимости, APCu регистрирует применимые функции APC с помощью специальных, обратно совместимых, прототипов.

Если функция APC принимает параметр cache_type, он просто игнорируется и опускается в прототипе функции APCu.

Внимание

Начиная с PHP 8.0.0, apcu-bc больше не поддерживается.

Замечание: В Windows, APCu необходимо, чтобы был задана временная директория и веб-сервер имел право туда писать. Модуль проверяет переменные окружающей среды в таком порядке: TMP, TEMP, USERPROFILE. Если ни одна из них не задана, то модуль пытается работать с каталогом WINDOWS.

Замечание: Крайне подробная, в техническом плане, документация о реализации этого модуля доступна в » предоставленном разработчиком файле TECHNOTES.

Исходные коды APCu можно найти » тут.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Хотя настроек APCu по умолчанию вполне достаточно для большинства задач, но для серьёзных проектов необходимо внимательно изучить следующие настройки.

При настройке APCu необходимо определиться, сколько памяти предоставить в распоряжение APCu. Директива ini-файла, ответственная за эту настройку - apc.shm_size. Внимательно прочитайте нижеследующий раздел.

После запуска сервера скрипт apc.php, который поставляется вместе с модулем, следует скопировать в docroot и просмотреть в браузере, поскольку он предоставляет подробный анализ внутренней работы APCu. Если в PHP включён модуль GD, он даже отобразит некоторые интересные графики.

Если APCu работает, число Cache full count (слева) покажет, сколько раз кеш достигал максимальной ёмкости и был вынужден вытеснять записи, чтобы освободить память. Во время вытеснения, если было указано значение apc.ttl, APCu сначала попытается удалить записи с истёкшим сроком действия, т.е. записи, TTL которых либо истёк, либо записи, у которых TTL не установлен и к которым не было доступа в течение последних apc.ttl секунд. Если значение apc.ttl не было установлена или удаление истёкших записей не освободило достаточно места, APCu очистит весь кеш.

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

Если 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 | "0" | PHP_INI_ALL | До APCu 5.1.19 значение по умолчанию было "1".
apc.serializer | "php" | PHP_INI_SYSTEM | До APCu 5.1.19 значение по умолчанию было "default".
apc.coredump_unmap | "0" | PHP_INI_SYSTEM |
apc.preload_path | NULL | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

apc.enabled bool

Если установить apc.enabled равным 0, то APCu не будет запущен. Это полезно, когда APCu статически включён в PHP и нет других вариантов, для запрещения его использования. Если APC собран как DSO, можно просто закомментировать строку extension в php.ini.

apc.shm_segments int

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

apc.shm_size string

Размер сегмента разделяемой памяти, заданный в короткой нотации (смотрите этот FAQ). По умолчанию, некоторые системы (включая большинство вариантов BSD) ограничивают это значение крайне малым значением.

apc.entries_hint int

Это подсказка о количестве уникальных пользовательских переменных, которые надо кешировать. Установите равным нулю или вообще не указывайте, если не уверены.

apc.ttl int

Записи кеша без явного указания TTL считаются истёкшими, если к ним не обращались в течение этого количества секунд. По сути, это позволяет удалять такие записи оппортунистически во время добавления кеша или перед полным удалением. Обратите внимание, что поскольку удаление происходит по обстоятельствам, записи могут быть доступны для чтения, даже если их срок жизни превышает apc.ttl секунд. Параметр не влияет на записи кеша, для которых явно задан TTL.

apc.gc_ttl int

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

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 int

На очень загруженных серверах, когда вы запускаете веб-сервер, сразу множество процессов будут пытаться закешировать один и тот же файл одновременно. Этой опцией задаётся вероятность, в процентах, того, что попытка одного конкретного процесса закешировать данные будет отклонена. Например, если apc.slam_defense установить равной 75, то это означает, что вероятность закешировать файл, которого в кеше нет, будет равна 25% и вероятность того, что в кешировании будет отказано равна 75%. Для запрета данного функционала установите этот параметр равным 0.

apc.enable_cli int

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

apc.serializer string

Указывает APC использовать сторонний сериализатор.

apc.coredump_unmap bool

Разрешает APC перехватывать сигналы, такие как SIGSEGV, который записывает coredump, когда подан. Когда эти сигналы будут получены, APC попытается освободить всю разделяемую память, чтобы не включать её в coredump. Эта настройка может увеличить стабильность системы, когда критический сигнал был получен, а APC сконфигурирован на использование большого объёма памяти.

Внимание

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

Замечание:

Хотя некоторые ядра предоставляют возможность игнорировать некоторые сегменты разделяемой памяти при записи core-файла, эти реализации могут также игнорировать важные сегменты памяти, такие как Apache scoreboard.

apc.preload_path string

Опционально. Задаёт путь, который используется APC для загрузки кешированных данных во время запуска.

apc.use_request_time bool

Использовать время старта запроса SAPI для TTL.


  • « Настройка во время выполнения
  • Предопределённые константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данный модуль не определяет каких-либо типов ресурсов.


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

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

APC_ITER_ALL (int)
APC_ITER_ATIME (int)
APC_ITER_CTIME (int)
APC_ITER_DEVICE (int)
APC_ITER_DTIME (int)
APC_ITER_FILENAME (int)
APC_ITER_INODE (int)
APC_ITER_KEY (int)
APC_ITER_MD5 (int)
APC_ITER_MEM_SIZE (int)
APC_ITER_MTIME (int)
APC_ITER_NONE (int)
APC_ITER_NUM_HITS (int)
APC_ITER_REFCOUNT (int)
APC_ITER_TTL (int)
APC_ITER_TYPE (int)
APC_ITER_VALUE (int)
APC_LIST_ACTIVE (int)
APC_LIST_DELETED (int)


Функции APCu

Содержание

  • apcu_add — Добавить переменную в кеш
  • apcu_cache_info — Извлекает закешированную информацию из хранилища APCu
  • apcu_cas — Заменяет старое значение на новое
  • apcu_clear_cache — Очистить кеш APCu
  • apcu_dec — Уменьшить сохранённое число
  • apcu_delete — Удаляет сохранённое значение из кеша
  • apcu_enabled — Возможно ли использовать APCu в текущем окружении
  • apcu_entry — Автоматическое извлечение или создание записи в кеше
  • apcu_exists — Проверяет, существуют ли записи
  • apcu_fetch — Извлекает из кеша сохранённую переменную
  • apcu_inc — Увеличить сохранённое число
  • apcu_key_info — Получить детальную информацию о ключе в кеше
  • 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|false

Извлекает закешированную информацию из хранилища APCu.

Список параметров

limited

Если limited задан как true, возвращаемое значение не будет содержать индивидуальный список записей кеша. Это полезно при попытках оптимизировать вызовы для получения статистики.

Возвращаемые значения

Массив кешированных данных (и метаданные) или false в случае возникновения ошибки

Замечание: apcu_cache_info() вызывает предупреждение, если невозможно получить данные кеша APC. Обычно это происходит, если APC не разрешён.

Список изменений

Версия | Описание
PECL apcu 3.0.11 | Добавлен параметр limited.
PECL apcu 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(): 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|false

Уменьшает сохранённое число.

Список параметров

key

Ключ значения, которое надо уменьшить.

step

Величина, на которую необходимо уменьшить.

success

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

ttl

TTL(время жизни), используемое если операция вставляет новое значение (а не уменьшает существующее).

Возвращаемые значения

Возвращает текущее значение key в случае успешного выполнения или false в случае возникновения ошибки

Примеры

Пример #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_enabled »
  • 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 в текущем окружении

  • « apcu_delete
  • apcu_entry »
  • PHP Manual
  • Функции APCu
  • Возможно ли использовать APCu в текущем окружении

apcu_enabled

(PECL apcu >= 4.0.3)

apcu_enabled — Возможно ли использовать APCu в текущем окружении

Описание

apcu_enabled(): bool

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true или false в зависимости от возможности использовать APCu.


Автоматическое извлечение или создание записи в кеше

  • « apcu_enabled
  • 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 в случае возникновения ошибки

Список изменений

Версия | Описание
PECL apcu 3.0.17 | Добавлен параметр success.

Примеры

Пример #1 Пример использования apcu_fetch()

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

Результат выполнения данного примера:

string(3) "BAR"

Смотрите также

  • apcu_store() - Кеширует переменную
  • apcu_delete() - Удаляет сохранённое значение из кеша
  • APCUIterator


Увеличить сохранённое число

  • « apcu_fetch
  • apcu_key_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|false

Увеличивает сохранённое число.

Список параметров

key

Ключ значения, которое надо увеличить.

step

Величина, на которую необходимо увеличить.

success

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

ttl

TTL(время жизни), используемое если операция вставляет новое значение (а не увеличивает существующее).

Возвращаемые значения

Возвращает текущее значение key в случае успешного выполнения или false в случае возникновения ошибки

Примеры

Пример #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_inc
  • apcu_sma_info »
  • PHP Manual
  • Функции APCu
  • Получить детальную информацию о ключе в кеше

apcu_key_info

(Информация о версии неизвестна, возможно, только в Git)

apcu_key_info — Получить детальную информацию о ключе в кеше

Описание

apcu_key_info(string $key): ?array

Получить детальную информацию о ключе в кеше

Список параметров

key

Получить детальную информацию о ключе в кеше

Возвращаемые значения

Массив, содержащий подробную информацию о ключе кеша или null, если ключ не существует.

Примеры

Пример #1 Пример использования apcu_key_info()

<?php
apcu_add('a','b');
var_dump(apcu_key_info('a'));
?>

Результат выполнения данного примера:

array(7) {
  ["hits"]=>
  int(0)
  ["access_time"]=>
  int(1606701783)
  ["mtime"]=>
  int(1606701783)
  ["creation_time"]=>
  int(1606701783)
  ["deletion_time"]=>
  int(0)
  ["ttl"]=>
  int(0)
  ["refs"]=>
  int(0)
}

Смотрите также

  • apcu_store() - Кеширует переменную
  • apcu_fetch() - Извлекает из кеша сохранённую переменную
  • apcu_delete() - Удаляет сохранённое значение из кеша


Извлекает информацию о выделении разделяемой памяти APCu

  • « apcu_key_info
  • 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|false

Извлекает информацию о выделении разделяемой памяти 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.

Обзор классов

class APCUIterator implements Iterator {
/* Методы */
public __construct(
array|string|null $search = null,
int $format = APC_ITER_ALL,
int $chunk_size = 100,
int $list = APC_LIST_ACTIVE
)
public current(): mixed
public getTotalCount(): int
public getTotalHits(): int
public getTotalSize(): int
public key(): string
public next(): bool
public rewind(): void
public valid(): 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(
array|string|null $search = null,
int $format = APC_ITER_ALL,
int $chunk_size = 100,
int $list = APC_LIST_ACTIVE
)

Создаёт объект APCUIterator.

Список параметров

search

Либо регулярное выражение PCRE, которое соответствует именам ключей APCu, заданным как строки (string). Или массив (array) строк (string) с именами ключей APCu. Или, необязательно, null чтобы пропустить поиск.

format

Формат, заданный одной из констант APC_ITER_*.

chunk_size

Размер блока данных. Должно быть больше 0. По умолчанию 100.

list

Тип списка. Задаётся константами APC_LIST_ACTIVE или APC_LIST_DELETED.

Примеры

Пример #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(): 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(): 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(): 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(): int

Возвращает общий размер кеша.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Общий размер кеша.

Смотрите также

  • APCUIterator::getTotalCount() - Получить общее количество записей
  • APCUIterator::getTotalHits() - Получить общее количество попаданий в кеш
  • apc_cache_info()


Получить ключ итератора

  • « APCUIterator::getTotalSize
  • APCUIterator::next »
  • PHP Manual
  • APCUIterator
  • Получить ключ итератора

APCUIterator::key

(PECL apcu >= 5.0.0)

APCUIterator::key — Получить ключ итератора

Описание

public APCUIterator::key(): 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(): 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

Устанавливает указатель итератора на первый элемент.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • APCUIterator::next() - Перемещает указатель на следующий элемент
  • Iterator::next() - Переходит к следующему элементу


Проверяет, корректна ли текущая позиция итератора

  • « APCUIterator::rewind
  • Componere »
  • PHP Manual
  • APCUIterator
  • Проверяет, корректна ли текущая позиция итератора

APCUIterator::valid

(PECL apcu >= 5.0.0)

APCUIterator::valid — Проверяет, корректна ли текущая позиция итератора

Описание

public APCUIterator::valid(): bool

Проверяет, корректна ли текущая позиция итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true или false, в зависимости от того, корректна ли позиция.

Смотрите также

  • APCUIterator::current() - Получить текущий элемент
  • Iterator::valid() - Проверяет корректность текущей позиции


Componere

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • Componere\Abstract\Definition — Класс Componere\Abstract\Definition
    • Componere\Abstract\Definition::addInterface — Добавляет интерфейс
    • Componere\Abstract\Definition::addMethod — Добавляет метод
    • Componere\Abstract\Definition::addTrait — Добавляет трейт
    • Componere\Abstract\Definition::getReflector — Reflection
  • Componere\Definition — Класс Componere\Definition
    • Componere\Definition::__construct — Определение конструктора
    • Componere\Definition::addConstant — Добавляет константу
    • Componere\Definition::addProperty — Добавляет свойство
    • Componere\Definition::register — Регистрация
    • Componere\Definition::isRegistered — Определение состояния
    • Componere\Definition::getClosure — Получает замыкание
    • Componere\Definition::getClosures — Получает замыкание
  • Componere\Patch — Класс Componere\Patch
    • Componere\Patch::__construct — Конструктор класса Patch
    • Componere\Patch::apply — Приложение
    • Componere\Patch::revert — Отмена
    • Componere\Patch::isApplied — Определение состояния
    • Componere\Patch::derive — Получение патча
    • Componere\Patch::getClosure — Получает замыкание
    • Componere\Patch::getClosures — Получает замыкания
  • Componere\Method — Класс Componere\Method
    • Componere\Method::__construct — Конструктор класса Method
    • Componere\Method::setPrivate — Изменение доступности
    • Componere\Method::setProtected — Изменение доступности
    • Componere\Method::setStatic — Изменение доступности
    • Componere\Method::getReflector — Reflection
  • Componere\Value — Класс Componere\Value
    • Componere\Value::__construct — Конструктор класса Value
    • Componere\Value::setPrivate — Изменение доступности
    • Componere\Value::setProtected — Изменение доступности
    • Componere\Value::setStatic — Изменение доступности
    • Componere\Value::isPrivate — Определение доступности
    • Componere\Value::isProtected — Определение доступности
    • Componere\Value::isStatic — Определение доступности
    • Componere\Value::hasDefault — Взаимодействие с классом Value
  • Функции Componere
    • Componere\cast — Приведение к типу
    • Componere\cast_by_ref — Приведение к типу


Введение

Componere (латинский, английский: compose) предназначен для производственных окружений и предоставляет API для составления классов, обезьяньих патчей и приведения.

Структура:

Componere\Definition используется для определения (или переопределения) класса во время выполнения; Затем класс может быть зарегистрирован и в случае переопределения он заменяет исходный класс до тех пор, пока существует Componere\Definition.

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)

Патчинг:

Componere\Patch используется для изменения класса конкретного экземпляра объекта во время выполнения; После применения исправление будет применяться до тех пор, пока существует Componere\Patch и его можно явно отменить.

public Componere\Patch::__construct(object $instance)
public Componere\Patch::__construct(object $instance, array $interfaces)

Приведение:

Componere\ функции приведения могут приводить среди определённых пользователем совместимых типов; В случае совместимости означает, что Type является подчинённым или супер типом object.

Componere\cast(Type $type, $object): Type
Componere\cast_by_ref(Type $type, $object): Type


  • « Введение
  • Требования »
  • PHP Manual
  • Componere
  • Установка и настройка

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

Содержание

  • Требования
  • Установка


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для работы модуля требуется Reflection


  • « Требования
  • Componere\Abstract\Definition »
  • PHP Manual
  • Установка и настройка
  • Установка

Установка

Исходный код Componere и выпуски доступны на » github


Класс Componere\Abstract\Definition

(Componere 2 >= 2.1.0)

Введение

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

Обзор классов

final abstract class Componere\Abstract\Definition {
/* Методы */
public addInterface(string $interface): Definition
public addMethod(string $name, Componere\Method $method): Definition
public addTrait(string $trait): Definition
public getReflector(): ReflectionClass
}

Содержание

  • Componere\Abstract\Definition::addInterface — Добавляет интерфейс
  • Componere\Abstract\Definition::addMethod — Добавляет метод
  • Componere\Abstract\Definition::addTrait — Добавляет трейт
  • Componere\Abstract\Definition::getReflector — Reflection


Добавляет интерфейс

  • « Componere\Abstract\Definition
  • Componere\Abstract\Definition::addMethod »
  • PHP Manual
  • Componere\Abstract\Definition
  • Добавляет интерфейс

Componere\Abstract\Definition::addInterface

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addInterface — Добавляет интерфейс

Описание

public Componere\Abstract\Definition::addInterface(string $interface): Definition

Реализует данный интерфейс по текущему определению

Список параметров

interface

Имя интерфейса без учёта регистра

Возвращаемые значения

The current Definition

Exceptions

Внимание

Выбрасывает исключение RuntimeException, если Definition был зарегистрирован


Добавляет метод

  • « Componere\Abstract\Definition::addInterface
  • Componere\Abstract\Definition::addTrait »
  • PHP Manual
  • Componere\Abstract\Definition
  • Добавляет метод

Componere\Abstract\Definition::addMethod

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addMethod — Добавляет метод

Описание

public Componere\Abstract\Definition::addMethod(string $name, Componere\Method $method): Definition

Должен создать или переопределить метод в текущем определении.

Список параметров

name

Нечувствительное к регистру имя метода

method

Componere\Method ранее не добавленный к другому Definition

Возвращаемые значения

The current Definition

Exceptions

Внимание

Выбрасывает исключение RuntimeException, если Definition был зарегистрирован

Внимание

Выбрасывает исключение RuntimeException, если метод был добавлен к другому определению


Добавляет трейт

  • « Componere\Abstract\Definition::addMethod
  • Componere\Abstract\Definition::getReflector »
  • PHP Manual
  • Componere\Abstract\Definition
  • Добавляет трейт

Componere\Abstract\Definition::addTrait

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addTrait — Добавляет трейт

Описание

public Componere\Abstract\Definition::addTrait(string $trait): Definition

Использовать данный трейт для текущего определения

Список параметров

trait

Нечувствительное к регистру имя трейта

Возвращаемые значения

The current Definition

Exceptions

Внимание

Выбрасывает исключение RuntimeException, если Definition был зарегистрирован


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(): ReflectionClass

Должен создать или вернуть ReflectionClass

Возвращаемые значения

ReflectionClass для текущего определения (кешируется)


Класс Componere\Definition

(Componere 2 >= 2.1.0)

Введение

Класс Definition позволяет программисту создавать и регистрировать тип во время выполнения.

Если Definition заменит существующий класс, существующий класс будет восстановлен после уничтожения Definition.

Обзор классов

final class Componere\Definition extends Componere\Abstract\Definition {
/* Конструкторы класса */
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
public isRegistered(): bool
public getClosure(string $name): Closure
public getClosures(): 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(): ReflectionClass
}

Содержание

  • Componere\Definition::__construct — Определение конструктора
  • Componere\Definition::addConstant — Добавляет константу
  • Componere\Definition::addProperty — Добавляет свойство
  • Componere\Definition::register — Регистрация
  • Componere\Definition::isRegistered — Определение состояния
  • Componere\Definition::getClosure — Получает замыкание
  • Componere\Definition::getClosures — Получает замыкание


Определение конструктора

  • « Componere\Definition
  • Componere\Definition::addConstant »
  • PHP Manual
  • Componere\Definition
  • Определение конструктора

Componere\Definition::__construct

(Componere 2 >= 2.1.0)

Componere\Definition::__construct — Определение конструктора

Описание

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

Регистронезависимое имя класса

parent

Регистронезависимое имя класса

interfaces

Массив регистронезависимых имён классов

Исключения

Внимание

Выбрасывает исключение InvalidArgumentException, если сделана попытка заменить внутренний класс

Внимание

Выбрасывает исключение InvalidArgumentException, если сделана попытка заменить интерфейс

Внимание

Выбрасывает исключение InvalidArgumentException, если сделана попытка заменить трейт

Внимание

Выбрасывает исключение RuntimeException, если класс, указанный в interfaces не найден

Внимание

Выбрасывает исключение RuntimeException, если класс, указанный в interfaces не является интерфейсом


Добавляет константу

  • « Componere\Definition::__construct
  • Componere\Definition::addProperty »
  • PHP Manual
  • Componere\Definition
  • Добавляет константу

Componere\Definition::addConstant

(Componere 2 >= 2.1.0)

Componere\Definition::addConstant — Добавляет константу

Описание

public Componere\Definition::addConstant(string $name, Componere\Value $value): Definition

Должен объявить константу класса в текущем определении

Список параметров

name

Регистронезависимое имя константы

value

Значение для константы не должно быть неопределённым (undefined) или статичным

Возвращаемые значения

Текущее определение

Исключения

Внимание

Выбрасывает исключение RuntimeException, если Definition уже было зарегистрировано

Внимание

Выбрасывает исключение RuntimeException, если name уже объявлено как константа

Внимание

Выбрасывает исключение RuntimeException, если value является статичным

Внимание

Выбрасывает исключение RuntimeException, если value является неопределённым


Добавляет свойство

  • « Componere\Definition::addConstant
  • Componere\Definition::register »
  • PHP Manual
  • Componere\Definition
  • Добавляет свойство

Componere\Definition::addProperty

(Componere 2 >= 2.1.0)

Componere\Definition::addProperty — Добавляет свойство

Описание

public Componere\Definition::addProperty(string $name, Componere\Value $value): Definition

Должен объявить свойство класса в текущем определении

Список параметров

name

Регистронезависимое имя свойства

value

Значение свойства по умолчанию

Возвращаемые значения

Текущее определение

Исключения

Внимание

Выбрасывает исключение RuntimeException, если Definition уже было зарегистрировано

Внимание

Выбрасывает исключение RuntimeException, если name уже объявлен как свойство


Регистрация

  • « Componere\Definition::addProperty
  • Componere\Definition::isRegistered »
  • PHP Manual
  • Componere\Definition
  • Регистрация

Componere\Definition::register

(Componere 2 >= 2.1.0)

Componere\Definition::register — Регистрация

Описание

public Componere\Definition::register(): void

Регистрирует текущее определение

Исключения

Внимание

Выбрасывает исключение RuntimeException, если Definition уже был зарегистрирован


Определение состояния

  • « Componere\Definition::register
  • Componere\Definition::getClosure »
  • PHP Manual
  • Componere\Definition
  • Определение состояния

Componere\Definition::isRegistered

(Componere 2 >= 2.1.0)

Componere\Definition::isRegistered — Определение состояния

Описание

public Componere\Definition::isRegistered(): bool

Определяет состояние регистрации этого определения

Возвращаемые значения

Возвращает true, если определение зарегистрировано


Получает замыкание

  • « Componere\Definition::isRegistered
  • Componere\Definition::getClosures »
  • PHP Manual
  • Componere\Definition
  • Получает замыкание

Componere\Definition::getClosure

(Componere 2 >= 2.1.0)

Componere\Definition::getClosure — Получает замыкание

Описание

public Componere\Definition::getClosure(string $name): Closure

Должен вернуть замыкание для указанного метода

Список параметров

name

Регистронезависимое имя метода

Возвращаемые значения

Замыкание, привязанное к корректной области

Исключения

Внимание

Выбрасывает исключение RuntimeException, если Definition уже было зарегистрировано

Внимание

Выбрасывает исключение RuntimeException, если name не найдено


Получает замыкание

  • « Componere\Definition::getClosure
  • Componere\Patch »
  • PHP Manual
  • Componere\Definition
  • Получает замыкание

Componere\Definition::getClosures

(Componere 2 >= 2.1.0)

Componere\Definition::getClosures — Получает замыкание

Описание

public Componere\Definition::getClosures(): array

Возвращает массив замыканий

Возвращаемые значения

Возвращает все методы в виде массива объектов Closure, привязанных к корректной области

Исключения

Внимание

Выбрасывает исключение RuntimeException, если Definition уже было зарегистрировано


Класс Componere\Patch

(Componere 2 >= 2.1.0)

Введение

Класс Patch позволяет программисту изменять тип экземпляра во время выполнения без регистрации нового Definition.

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

Обзор классов

final class Componere\Patch extends Componere\Abstract\Definition {
/* Конструкторы класса */
public __construct(object $instance)
public __construct(object $instance, array $interfaces)
/* Методы */
public apply(): void
public revert(): void
public isApplied(): bool
public derive(object $instance): Patch
public getClosure(string $name): Closure
public getClosures(): 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(): ReflectionClass
}

Содержание

  • Componere\Patch::__construct — Конструктор класса Patch
  • Componere\Patch::apply — Приложение
  • Componere\Patch::revert — Отмена
  • Componere\Patch::isApplied — Определение состояния
  • Componere\Patch::derive — Получение патча
  • Componere\Patch::getClosure — Получает замыкание
  • Componere\Patch::getClosures — Получает замыкания


Конструктор класса Patch

  • « Componere\Patch
  • Componere\Patch::apply »
  • PHP Manual
  • Componere\Patch
  • Конструктор класса Patch

Componere\Patch::__construct

(Componere 2 >= 2.1.0)

Componere\Patch::__construct — Конструктор класса Patch

Описание

public Componere\Patch::__construct(object $instance)
public Componere\Patch::__construct(object $instance, array $interfaces)

Список параметров

instance

Назначение для этого патча

interfaces

Регистронезависимый массив имён классов

Исключения

Внимание

Выбрасывает исключение RuntimeException, если класс не может быть найден interfaces

Внимание

Выбрасывает исключение RuntimeException, если класс в interfaces не является интерфейсом


Приложение

  • « Componere\Patch::__construct
  • Componere\Patch::revert »
  • PHP Manual
  • Componere\Patch
  • Приложение

Componere\Patch::apply

(Componere 2 >= 2.1.0)

Componere\Patch::apply — Приложение

Описание

public Componere\Patch::apply(): void

Применяет текущий патч


Отмена

  • « Componere\Patch::apply
  • Componere\Patch::isApplied »
  • PHP Manual
  • Componere\Patch
  • Отмена

Componere\Patch::revert

(Componere 2 >= 2.1.0)

Componere\Patch::revert — Отмена

Описание

public Componere\Patch::revert(): void

Отменяет текущий патч


Определение состояния

  • « Componere\Patch::revert
  • Componere\Patch::derive »
  • PHP Manual
  • Componere\Patch
  • Определение состояния

Componere\Patch::isApplied

(Componere 2 >= 2.1.0)

Componere\Patch::isApplied — Определение состояния

Описание

public Componere\Patch::isApplied(): bool


Получение патча

  • « Componere\Patch::isApplied
  • Componere\Patch::getClosure »
  • PHP Manual
  • Componere\Patch
  • Получение патча

Componere\Patch::derive

(Componere 2 >= 2.1.1)

Componere\Patch::derive — Получение патча

Описание

public Componere\Patch::derive(object $instance): Patch

Должен получить Patch для заданного экземпляра instance

Список параметров

instance

Назначение для полученного патча

Возвращаемые значения

Patch для instance получается из текущего Patch

Исключения

Внимание

Выбрасывает исключение InvalidArgumentException если instance не совместим


Получает замыкание

  • « Componere\Patch::derive
  • Componere\Patch::getClosures »
  • PHP Manual
  • Componere\Patch
  • Получает замыкание

Componere\Patch::getClosure

(Componere 2 >= 2.1.0)

Componere\Patch::getClosure — Получает замыкание

Описание

public Componere\Patch::getClosure(string $name): Closure

Должен вернуть замыкание для указанного метода

Список параметров

name

Регистронезависимое имя метода

Возвращаемые значения

Замыкание, привязанное к правильной области и объекту

Исключения

Внимание

Выбрасывает исключение RuntimeException если name не найден


Получает замыкания

  • « Componere\Patch::getClosure
  • Componere\Method »
  • PHP Manual
  • Componere\Patch
  • Получает замыкания

Componere\Patch::getClosures

(Componere 2 >= 2.1.0)

Componere\Patch::getClosures — Получает замыкания

Описание

public Componere\Patch::getClosures(): array

Должен вернуть массив замыканий

Возвращаемые значения

Должен вернуть все методы в виде массива объектов Closure, привязанных к правильной области и объекту


Класс Componere\Method

(Componere 2 >= 2.1.0)

Введение

Method представляет функцию с изменяемыми флагами доступности

Обзор классов

final class Componere\Method {
/* Конструктор класса */
public __construct(Closure $closure)
/* Методы */
public setPrivate(): Method
public setProtected(): Method
public setStatic(): Method
public getReflector(): ReflectionMethod
}

Содержание

  • Componere\Method::__construct — Конструктор класса Method
  • Componere\Method::setPrivate — Изменение доступности
  • Componere\Method::setProtected — Изменение доступности
  • Componere\Method::setStatic — Изменение доступности
  • Componere\Method::getReflector — Reflection


Конструктор класса Method

  • « Componere\Method
  • Componere\Method::setPrivate »
  • PHP Manual
  • Componere\Method
  • Конструктор класса Method

Componere\Method::__construct

(Componere 2 >= 2.1.0)

Componere\Method::__construct — Конструктор класса Method

Описание

public Componere\Method::__construct(Closure $closure)

Список параметров

closure


Изменение доступности

  • « Componere\Method::__construct
  • Componere\Method::setProtected »
  • PHP Manual
  • Componere\Method
  • Изменение доступности

Componere\Method::setPrivate

(Componere 2 >= 2.1.0)

Componere\Method::setPrivate — Изменение доступности

Описание

public Componere\Method::setPrivate(): Method

Возвращаемые значения

Текущий метод

Исключения

Внимание

Выбрасывает исключение RuntimeException, если уровень доступа был ранее установлен


Изменение доступности

  • « Componere\Method::setPrivate
  • Componere\Method::setStatic »
  • PHP Manual
  • Componere\Method
  • Изменение доступности

Componere\Method::setProtected

(Componere 2 >= 2.1.0)

Componere\Method::setProtected — Изменение доступности

Описание

public Componere\Method::setProtected(): Method

Возвращаемые значения

Текущий метод

Исключения

Внимание

Выбрасывает исключение RuntimeException, если уровень доступа был ранее установлен


Изменение доступности

  • « Componere\Method::setProtected
  • Componere\Method::getReflector »
  • PHP Manual
  • Componere\Method
  • Изменение доступности

Componere\Method::setStatic

(Componere 2 >= 2.1.0)

Componere\Method::setStatic — Изменение доступности

Описание

public Componere\Method::setStatic(): 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(): ReflectionMethod

Должен создать и вернуть ReflectionMethod

Возвращаемые значения

ReflectionMethod для текущего метода (кешируется)


Класс Componere\Value

(Componere 2 >= 2.1.0)

Введение

Value представляет переменную PHP всех типов, включая неопределённую (undefined)

Обзор классов

final class Componere\Value {
/* Конструктор класса */
public __construct( $default = ?)
/* Методы */
public setPrivate(): Value
public setProtected(): Value
public setStatic(): Value
public isPrivate(): bool
public isProtected(): bool
public isStatic(): bool
public hasDefault(): bool
}

Содержание

  • Componere\Value::__construct — Конструктор класса Value
  • Componere\Value::setPrivate — Изменение доступности
  • Componere\Value::setProtected — Изменение доступности
  • Componere\Value::setStatic — Изменение доступности
  • Componere\Value::isPrivate — Определение доступности
  • Componere\Value::isProtected — Определение доступности
  • Componere\Value::isStatic — Определение доступности
  • Componere\Value::hasDefault — Взаимодействие с классом Value


Конструктор класса Value

  • « Componere\Value
  • Componere\Value::setPrivate »
  • PHP Manual
  • Componere\Value
  • Конструктор класса Value

Componere\Value::__construct

(Componere 2 >= 2.1.0)

Componere\Value::__construct — Конструктор класса Value

Описание

public Componere\Value::__construct( $default = ?)

Список параметров

default

Исключения

Внимание

Выбрасывает исключение InvalidArgumentException, если default не имеет подходящего значения


Изменение доступности

  • « Componere\Value::__construct
  • Componere\Value::setProtected »
  • PHP Manual
  • Componere\Value
  • Изменение доступности

Componere\Value::setPrivate

(Componere 2 >= 2.1.0)

Componere\Value::setPrivate — Изменение доступности

Описание

public Componere\Value::setPrivate(): Value

Возвращаемые значения

Текущее значение

Исключения

Внимание

Выбрасывает исключение RuntimeException, если уровень доступа был ранее установлен


Изменение доступности

  • « Componere\Value::setPrivate
  • Componere\Value::setStatic »
  • PHP Manual
  • Componere\Value
  • Изменение доступности

Componere\Value::setProtected

(Componere 2 >= 2.1.0)

Componere\Value::setProtected — Изменение доступности

Описание

public Componere\Value::setProtected(): Value

Возвращаемые значения

Текущее значение

Исключения

Внимание

Выбрасывает исключение RuntimeException, если уровень доступа был ранее установлен


Изменение доступности

  • « Componere\Value::setProtected
  • Componere\Value::isPrivate »
  • PHP Manual
  • Componere\Value
  • Изменение доступности

Componere\Value::setStatic

(Componere 2 >= 2.1.0)

Componere\Value::setStatic — Изменение доступности

Описание

public Componere\Value::setStatic(): Value

Возвращаемые значения

Текущее значение


Определение доступности

  • « Componere\Value::setStatic
  • Componere\Value::isProtected »
  • PHP Manual
  • Componere\Value
  • Определение доступности

Componere\Value::isPrivate

(Componere 2 >= 2.1.0)

Componere\Value::isPrivate — Определение доступности

Описание

public Componere\Value::isPrivate(): bool


Определение доступности

  • « Componere\Value::isPrivate
  • Componere\Value::isStatic »
  • PHP Manual
  • Componere\Value
  • Определение доступности

Componere\Value::isProtected

(Componere 2 >= 2.1.0)

Componere\Value::isProtected — Определение доступности

Описание

public Componere\Value::isProtected(): bool


Определение доступности

  • « Componere\Value::isProtected
  • Componere\Value::hasDefault »
  • PHP Manual
  • Componere\Value
  • Определение доступности

Componere\Value::isStatic

(Componere 2 >= 2.1.0)

Componere\Value::isStatic — Определение доступности

Описание

public Componere\Value::isStatic(): bool


Взаимодействие с классом Value

  • « Componere\Value::isStatic
  • Функции Componere »
  • PHP Manual
  • Componere\Value
  • Взаимодействие с классом Value

Componere\Value::hasDefault

(Componere 2 >= 2.1.0)

Componere\Value::hasDefault — Взаимодействие с классом Value

Описание

public Componere\Value::hasDefault(): bool


Функции Componere

Содержание

  • Componere\cast — Приведение к типу
  • Componere\cast_by_ref — Приведение к типу


Приведение к типу

  • « Функции Componere
  • Componere\cast_by_ref »
  • PHP Manual
  • Функции Componere
  • Приведение к типу

Componere\cast

(Componere 2 >= 2.1.2)

Componere\cast — Приведение к типу

Описание

Componere\cast(Type $type, $object): Type

Список параметров

type

Пользовательский тип

object

Объект с пользовательским типом, совместимый с Type

Возвращаемые значения

object типа Type, приведённый из object

Ошибки

Внимание

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

Внимание

Выбрасывает исключение InvalidArgumentException, если Type является интерфейсом

Внимание

Выбрасывает исключение InvalidArgumentException, если Type является трейтом

Внимание

Выбрасывает исключение InvalidArgumentException, если Type является абстрактным классом

Внимание

Выбрасывает исключение InvalidArgumentException, если Type не совместим с типом object

Смотрите также

  • Componere\cast_by_ref


Приведение к типу

  • « Componere\cast
  • Обработка ошибок »
  • PHP Manual
  • Функции Componere
  • Приведение к типу

Componere\cast_by_ref

(Componere 2 >= 2.1.2)

Componere\cast_by_ref — Приведение к типу

Описание

Componere\cast_by_ref(Type $type, $object): Type

Список параметров

type

Пользовательский тип

object

Объект с пользовательским типом, совместимым с Type

Возвращаемые значения

object типа Type, приведённый из object, где элементы являются ссылками на элементы object

Ошибки

Внимание

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

Внимание

Выбрасывает исключение InvalidArgumentException, если Type является интерфейсом

Внимание

Выбрасывает исключение InvalidArgumentException, если Type является трейтом

Внимание

Выбрасывает исключение InvalidArgumentException, если Type является абстрактным классом

Внимание

Выбрасывает исключение InvalidArgumentException, если Type не совместим с типом 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 | "1" | PHP_INI_ALL | До PHP 8.0.0 значение по умолчанию было "0".
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL | Не имеет смысла в версии PHP 8.0.0, удалено в версии PHP 8.1.0.
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, удалено в PHP 8.0.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 |
error_log_mode | 0o644 | PHP_INI_ALL | Доступно, начиная с PHP 8.2.0
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 int

Задаёт уровень протоколирования ошибки. Параметр может быть либо числом, представляющим битовое поле, либо именованной константой. Соответствующие уровни и константы приведены в разделе Предопределённые константы, а также в php.ini. Для установки настройки во время выполнения используйте функцию error_reporting(). Смотрите также описание директивы display_errors.

Значение по умолчанию равно E_ALL.

До PHP 8.0.0 значение по умолчанию было: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED. При этой настройке не отображаются уровни ошибок E_NOTICE, E_STRICT и E_DEPRECATED.

Замечание: PHP-константы за пределами PHP

Использование PHP-констант за пределами PHP, например в файле httpd.conf, не имеет смысла, так как в таких случаях требуются целочисленные значения (int). Более того, с течением времени будут добавляться новые уровни ошибок, а максимальное значение константы E_ALL соответственно будет расти. Поэтому в месте, где предполагается указать E_ALL, лучше задать большое целое число, чтобы перекрыть все возможные битовые поля. Таким числом может быть, например, 2147483647 (оно включит все возможные ошибки, не только E_ALL).

display_errors string

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

Значение "stderr" посылает ошибки в поток stderr вместо stdout.

Замечание:

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

Замечание:

Несмотря на то, что display_errors может быть установлена во время выполнения (функцией ini_set()), это ни на что не повлияет, если в скрипте есть фатальные ошибки. Это обусловлено тем, что ожидаемые действия программы во время выполнения не получат управления (не будут выполняться).

display_startup_errors bool

Даже если display_errors включена, ошибки, возникающие во время запуска PHP, не будут отображаться. Настойчиво рекомендуем включать директиву display_startup_errors только для отладки.

log_errors bool

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

Замечание:

Настоятельно рекомендуем при работе на готовых работающих web сайтах протоколировать ошибки там, где они отображаются.

log_errors_max_len int

Задание максимальной длины log_errors в байтах. В error_log добавляется информация об источнике. Значение по умолчанию 1024. Установка значения в 0 позволяет снять ограничение на длину log_errors. Это ограничение распространяется на записываемые в журнал ошибки, на отображаемые ошибки, а также на $php_errormsg, но не на явно вызываемые функции, такие как error_log().

Если используется int, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.
ignore_repeated_errors bool

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

ignore_repeated_source bool

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

report_memleaks bool

Если настройка включена (по умолчанию), будет формироваться отчёт об утечках памяти, зафиксированных менеджером памяти Zend. На POSIX платформах этот отчёт будет направляться в поток stderr. На Windows платформах он будет посылаться в отладчик функцией OutputDebugString(), просмотреть отчёт в этом случае можно с помощью утилит, вроде » DbgView. Эта настройка имеет смысл в сборках, предназначенных для отладки. При этом E_WARNING должна быть включена в список error_reporting.

track_errors bool

Если включена, последняя произошедшая ошибка будет первой в переменной $php_errormsg.

html_errors bool

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

Если запрещена, то ошибки будут выдаваться простым текстом, без форматирования.

xmlrpc_errors bool

Если включена, то нормальное оповещение об ошибках отключается и, вместо него, ошибки выводятся в формате XML-RPC.

xmlrpc_error_number int

Используется в качестве значения 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

Строка, которая будет выводиться непосредственно перед сообщением об ошибке. Используется только тогда, когда на экране отображается сообщение об ошибке. Основная цель - добавить дополнительную HTML-разметку к сообщению об ошибке.

error_append_string string

Строка, которая будет выводиться после сообщения об ошибке. Используется только тогда, когда на экране отображается сообщение об ошибке. Основная цель - добавить дополнительную HTML-разметку к сообщению об ошибке.

error_log string

Имя файла, в который будут добавляться сообщения об ошибках. Файл должен быть открыт для записи пользователем веб-сервера. Если используется специальное значение syslog, то сообщения будут посылаться в системный журнал. На Unix-системах это syslog(3), на Windows NT - журнал событий. Смотрите также: syslog(). Если директива не задана, ошибки будут направляться в SAPI журналы. Например, это могут быть журналы ошибок Apache или поток stderr командной строки CLI. Смотрите также функцию error_log().

error_log_mode int

Режим файла, описанного в error_log.

syslog.facility string

Указывает, какой тип программы регистрирует сообщение. Действует только в том случае, если опция error_log установлена в "syslog".

syslog.filter string

Указывает тип фильтра для фильтрации регистрируемых сообщений. Разрешённые символы передаются без изменений; все остальные записываются в шестнадцатеричном представлении с префиксом \x.

  • all - строка будет разделена на символы новой строки и все символы будут переданы без изменений
  • ascii - строка будет разделена на символы новой строки, а любые непечатаемые 7-битные символы ASCII будут экранированы
  • no-ctrl - строка будет разделена на символы новой строки, а любые непечатаемые символы будут экранированы
  • raw - все символы передаются в системный журнал без изменений, без разделения на новые строки (идентично PHP до 7.3)
Параметр влияет на ведение журнала через error_log установленного в "syslog" и вызовы syslog().

Замечание:

Тип фильтра raw доступен начиная с PHP 7.3.8 и PHP 7.4.0.

Директива не поддерживается в Windows.
syslog.ident string

Определяет строку идентификатора, которая добавляется к каждому сообщению. Действует только в том случае, если опция error_log установлена в "syslog".


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

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Замечание: Данные имена констант можно использовать в файле php.ini но не вне PHP, как например в файле httpd.conf, где вместо них необходимо использовать значения их битовых масок.

Ошибки и протоколирование
Значение | Константа | Описание | Примечание
1 | E_ERROR (int) | Фатальные ошибки времени выполнения. Это неустранимые средствами самого скрипта ошибки, такие как ошибка распределения памяти и т.п. Выполнение скрипта в таком случае прекращается. |
2 | E_WARNING (int) | Предупреждения времени выполнения (не фатальные ошибки). Выполнение скрипта в таком случае не прекращается. |
4 | E_PARSE (int) | Ошибки на этапе компиляции. Должны генерироваться только парсером. |
8 | E_NOTICE (int) | Уведомления времени выполнения. Указывают на то, что во время выполнения скрипта произошло что-то, что может указывать на ошибку, хотя это может происходить и при обычном выполнении программы. |
16 | E_CORE_ERROR (int) | Фатальные ошибки, которые происходят во время запуска РНР. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются ядром PHP. |
32 | E_CORE_WARNING (int) | Предупреждения (не фатальные ошибки), которые происходят во время начального запуска РНР. Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются ядром PHP. |
64 | E_COMPILE_ERROR (int) | Фатальные ошибки на этапе компиляции. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются скриптовым движком Zend. |
128 | E_COMPILE_WARNING (int) | Предупреждения на этапе компиляции (не фатальные ошибки). Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются скриптовым движком Zend. |
256 | E_USER_ERROR (int) | Сообщения об ошибках, сгенерированные пользователем. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются в коде скрипта средствами функции PHP trigger_error(). |
512 | E_USER_WARNING (int) | Предупреждения, сгенерированные пользователем. Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются в коде скрипта средствами функции PHP trigger_error(). |
1024 | E_USER_NOTICE (int) | Уведомления, сгенерированные пользователем. Такие уведомления схожи с E_NOTICE, за исключением того, что они генерируются в коде скрипта, средствами функции PHP trigger_error(). |
2048 | E_STRICT (int) | Включаются для того, чтобы PHP предлагал изменения в коде, которые обеспечат лучшее взаимодействие и совместимость кода. |
4096 | E_RECOVERABLE_ERROR (int) | Фатальные ошибки с возможностью обработки. Такие ошибки указывают, что, вероятно, возникла опасная ситуация, но при этом, скриптовый движок остаётся в стабильном состоянии. Если такая ошибка не обрабатывается функцией, определённой пользователем для обработки ошибок (смотрите set_error_handler()), выполнение приложения прерывается, как происходит при ошибках E_ERROR. |
8192 | E_DEPRECATED (int) | Уведомления времени выполнения об использовании устаревших конструкций. Включаются для того, чтобы получать предупреждения о коде, который не будет работать в следующих версиях PHP. |
16384 | E_USER_DEPRECATED (int) | Уведомления времени выполнения об использовании устаревших конструкций, сгенерированные пользователем. Такие уведомления схожи с E_DEPRECATED за исключением того, что они генерируются в коде скрипта, с помощью функции PHP trigger_error(). |
32767 | E_ALL (int) | Все поддерживаемые ошибки, предупреждения и замечания. |

Представленные выше значения (как числовые, так и символьные) используются для задания битовой маски, определяющей об ошибках какого типа будет даваться отчёт. Вы можете использовать побитовые операторы, чтобы совмещать эти значения для указания определённых типов ошибок. Стоит отметить, что в 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, PHP 8)

debug_backtrace — Генерирует стек вызовов функций

Описание

debug_backtrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT, int $limit = 0): array

Функция debug_backtrace() генерирует стек вызовов функций PHP.

Список параметров

options

Этот параметр — битовая маска для следующих настроек:

Опции debug_backtrace()
DEBUG_BACKTRACE_PROVIDE_OBJECT | Нужно ли заполнять ключ "object" (в выходом массиве).
DEBUG_BACKTRACE_IGNORE_ARGS | Нужно ли исключить ключ "args" (из выходного массива) с сопутствующим исключением всех аргументов функций/методов, чтобы уменьшить расход памяти.

Замечание:

Возможны четыре комбинации:

Опции debug_backtrace()
debug_backtrace() | Заполняются оба ключа.
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)
debug_backtrace(1)
debug_backtrace(0) | Не включается ключ "object" и заполняется ключ "args".
debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) | Опускается ключ "object" и ключ "args".
debug_backtrace(2)
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS) | Заполняется ключ "object" и опускается ключ "args".
debug_backtrace(3)

limit

Этим параметром можно ограничить количество возвращаемых вызовов функций. По умолчанию параметр (limit=0) — будет выведен весь стек вызовов.

Возвращаемые значения

Функция возвращает массив вложенных ассоциативных массивов (array). Описание элементов массива приведено ниже:

Список возможных элементов массивов, возвращаемых функцией debug_backtrace()
Имя | Тип | Описание
function | string | Имя текущей функции. Смотрите также __FUNCTION__.
line | int | Текущий номер строки. Смотрите также __LINE__.
file | string | Имя текущего файла. Смотрите также __FILE__.
class | string | Имя текущего класса. Смотрите также __CLASS__
object | object | Текущий объект.
type | string | Текущий тип вызова функции. Если это вызов метода объекта, будет возвращено значение "->". Если это вызов статического метода класса, то "::". Если это простой вызов функции, ничего не возвращается.
args | array | Если (функция debug_backtrace()) вызвана внутри функции, в этих ключах будут перечислены аргументы функций. Если вызов выполнен внутри включаемого файла, будут перечислены имена включённых файлов.

Примеры

Пример #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, PHP 8)

debug_print_backtrace — Выводит стек вызовов функций

Описание

debug_print_backtrace(int $options = 0, int $limit = 0): void

debug_print_backtrace() выводит стек вызовов функций. Выводит вызовы функций, имена включённых/требуемых файлов и другую информацию из функций (eval()).

Список параметров

options

Аргумент является битовой маской для следующих настроек:

Опции debug_print_backtrace()
DEBUG_BACKTRACE_IGNORE_ARGS Нужно ли исключить ключ "args", то есть списки аргументов всех функций/методов, чтобы уменьшить расход памяти.

limit

Аргумент используется для ограничения количества вызовов функций, которые будут выведены. По умолчанию (limit=0) будет выведен весь стек вызовов.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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, PHP 8)

error_clear_last — Очистить самую последнюю ошибку

Описание

error_clear_last(): 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, PHP 8)

error_get_last — Получение информации о последней произошедшей ошибке

Описание

error_get_last(): ?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, PHP 8)

error_log — Отправляет сообщение об ошибке заданному обработчику ошибок

Описание

error_log(
string $message,
int $message_type = 0,
?string $destination = null,
?string $additional_headers = null
): bool

Отправляет сообщение об ошибке в лог веб-сервера или в пользовательский файл.

Список параметров

message

Сообщение об ошибке, которое должно быть логировано.

message_type

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

Типы журналов error_log()
0 | Сообщение message отправляется в системный регистратор PHP, используя механизм логирования операционной системы, или файл, в зависимости от значения директивы error_log в конфигурационном файле. Это значение по умолчанию.
1 | Сообщение message отправляется электронной почтой на адрес, установленный в параметре destination. Это единственный тип сообщения, где используется четвёртый параметр additional_headers.
2 | Больше не используется.
3 | message применяется к указанному в destination файлу. Перенос строки автоматически не добавляется в конец message.
4 | Сообщение message отправляется напрямую в обработчик логера SAPI.

destination

Назначение. Устанавливается в зависимости от параметра message_type.

additional_headers

Дополнительные заголовки. Используется, когда значение параметра message_type - 1. Данный тип сообщения использует ту же внутреннюю функцию, что и mail().

Возвращаемые значения

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

Список изменений

Версия | Описание
8.0.0 | Параметр destination и additional_headers теперь допускают значение null.

Примеры

Пример #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");
?>

Примечания

Внимание

error_log() не является бинарно-безопасной функцией. message обрезается по null-символу.

Подсказка

message не должен содержать null-символ. Учтите, что message может передаваться в файл, по почте, в syslog и т.д. Используйте подходящую преобразующую или экранирующую функцию, base64_encode(), rawurlencode() или addslashes() перед вызовом error_log().


Задаёт, какие ошибки PHP попадут в отчёт

  • « error_log
  • restore_error_handler »
  • PHP Manual
  • Функции обработки ошибок
  • Задаёт, какие ошибки PHP попадут в отчёт

error_reporting

(PHP 4, PHP 5, PHP 7, PHP 8)

error_reporting — Задаёт, какие ошибки PHP попадут в отчёт

Описание

error_reporting(?int $error_level = null): int

Функция error_reporting() задаёт значение директивы error_reporting во время выполнения. В PHP есть много уровней ошибок. Используя эту функцию, можно задать уровень ошибок времени выполнения скрипта, которые попадут в отчёт. Если необязательный аргумент error_level не задан, error_reporting() вернёт текущее значение уровня протоколирования ошибок.

Список параметров

error_level

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

Доступные константы уровней ошибок и их описания приведены в разделе Предопределённые константы.

Возвращаемые значения

Функция возвращает значение директивы error_reporting, которое в ней хранилось до того, как оно было изменено на значение параметра error_level.

Замечание: Оператор управления ошибками (@) изменяет значение параметра error_level во время обработки ошибки.

Список изменений

Версия | Описание
8.0.0 | error_level теперь допускает значение null.

Примеры

Пример #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);

?>

Примечания

Подсказка

Если передать значение -1, будут отображаться все возможные ошибки, даже если в новых версиях PHP добавятся уровни или константы. Поведение эквивалентно передаче константы 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, PHP 8)

restore_error_handler — Восстанавливает предыдущий обработчик ошибок

Описание

restore_error_handler(): true

Используется после смены обработчика ошибок функцией 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, PHP 8)

restore_exception_handler — Восстанавливает предыдущий обработчик исключений

Описание

restore_exception_handler(): true

Используется после смены обработчика исключений функцией 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, PHP 8)

set_error_handler — Задаёт пользовательский обработчик ошибок

Описание

set_error_handler(?callable $callback, int $error_levels = E_ALL): ?callable

Задаёт пользовательскую функцию (callback), как обработчик ошибок в скрипте.

Функция может быть использована для определения пользовательских обработчиков ошибок во время выполнения, например, в приложениях, которые должны выполнять очистку файлов/данных в случае возникновения критической ошибки или при инициировании ошибки в ответ на определённые условия (используя функцию trigger_error()).

Важно помнить, что стандартный обработчик ошибок PHP не будет обрабатывать никакие типы ошибок, определённые в error_levels, пока callback-функция не вернёт false. Пользовательский обработчик будет вызываться в случае возникновения любой ошибки, независимо от настроек, заданных функцией error_reporting.

Также обратите внимание, что обработчик обязан при необходимости остановить выполнение скрипта, вызвав функцию exit(). Если происходит возврат из обработчика ошибок, управление передаётся следующему выражению, стоящему за тем, что вызвало ошибку.

Ошибки следующих типов не могут быть обработаны пользователем: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING независимо от того, где они были сгенерированы и большинство ошибок E_STRICT, произошедших в файле, где вызвана функция set_error_handler().

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

Список параметров

callback

Если передано значение null, обработчик сбрасывается в состояние по умолчанию. В противном случае обработчик представляет собой callback-функцию со следующей сигнатурой:

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 и был УДАЛЁН в PHP 8.0.0. Если в вашей функции этот параметр используется и для него не задано значение по умолчанию, то при вызове функции обработчика будет выдана ошибка "too few arguments".

Если функция возвращает false, управление передаётся встроенному обработчику ошибок.

error_levels

Может использоваться для задания маски, в соответствии с которой будет вызываться callback, по аналогии с ini-настройкой error_reporting, которая отвечает за то, какие ошибки будут показаны в отчёте. Без этой маски callback будет вызываться для обработки всех происходящих ошибок, вне зависимости от настроек в error_reporting.

Возвращаемые значения

Возвращает ранее определённый обработчик ошибок (если есть) Если на данный момент используется встроенный обработчик, функция вернёт null. Если предыдущий определённый обработчик является методом класса, функция вернёт массив, содержащий имя класса и имя метода.

Список изменений

Версия | Описание
8.0.0 | Параметр errcontext был удалён и больше не передаётся в пользовательскую функцию обработки ошибок.
7.2.0 | Параметр errcontext объявлен устаревшим. Теперь при его использовании будет вызываться ошибка уровня E_DEPRECATED.

Примеры

Пример #1 Обработка ошибок с помощью функций set_error_handler() и trigger_error()

Пример ниже демонстрирует обработку внутренних исключений путём вызова ошибок разных типов и их обработки пользовательской функцией:

<?php
// функция обработки ошибок
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
if (!(error_reporting() & $errno)) {
// Этот код ошибки не включён в error_reporting,
// так что пусть обрабатываются стандартным обработчиком ошибок PHP
return false;
}

// может потребоваться экранирование $errstr:
$errstr = htmlspecialchars($errstr);

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);

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() - Вызывает пользовательскую ошибку/предупреждение/уведомление
  • Константы уровней ошибок


Задаёт пользовательский обработчик исключений

  • « set_error_handler
  • trigger_error »
  • PHP Manual
  • Функции обработки ошибок
  • Задаёт пользовательский обработчик исключений

set_exception_handler

(PHP 5, PHP 7, PHP 8)

set_exception_handler — Задаёт пользовательский обработчик исключений

Описание

set_exception_handler(?callable $callback): ?callable

Задаёт обработчик по умолчанию для случаев, когда исключение выброшено вне блока try/catch. После вызова callback выполнение будет остановлено.

Список параметров

callback

Функция, вызываемая при возникновении неперехваченного исключения. Эта функция-обработчик должна принимать один параметр, которым будет объект выброшенного исключения Throwable. И Error и Exception реализуют интерфейс Throwable. Сигнатура обработчика:

handler(Throwable $ex): void

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

Возвращаемые значения

Возвращает ранее определённый обработчик исключений или null в случае ошибки. Если предыдущих обработчиков определено не было, то также возвращается null.

Примеры

Пример #1 Пример использования set_exception_handler()

<?php
function exception_handler(Throwable $exception) {
echo "Неперехваченное исключение: " , $exception->getMessage(), "\n";
}

set_exception_handler('exception_handler');

throw new Exception('Неперехваченное исключение');
echo "Не выполнено\n";
?>

Смотрите также

  • restore_exception_handler() - Восстанавливает предыдущий обработчик исключений
  • restore_error_handler() - Восстанавливает предыдущий обработчик ошибок
  • error_reporting() - Задаёт, какие ошибки PHP попадут в отчёт
  • Исключения


Вызывает пользовательскую ошибку/предупреждение/уведомление

  • « set_exception_handler
  • user_error »
  • PHP Manual
  • Функции обработки ошибок
  • Вызывает пользовательскую ошибку/предупреждение/уведомление

trigger_error

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

trigger_error — Вызывает пользовательскую ошибку/предупреждение/уведомление

Описание

trigger_error(string $message, int $error_level = E_USER_NOTICE): bool

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

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

Список параметров

message

Сообщение, соответствующее этой ошибке. Ограничено 1024 байтами в длину. Символы дальше 1024-го будут обрезаны.

error_level

Назначенный тип ошибки. Работает только с семейством констант E_USER. По умолчанию E_USER_NOTICE.

Возвращаемые значения

Функция возвращает false, если задан неправильный error_level, и true в остальных случаях.

Примеры

Пример #1 Пример использования trigger_error()

Более подробный пример приведён в описании функции set_error_handler().

<?php
if ($divisor == 0) {
trigger_error("Не могу поделить на ноль", E_USER_ERROR);
}
?>

Примечания

Внимание

HTML-сущности в message не экранированы. Чтобы сообщение можно было отобразить в браузере, преобразуйте его функцией 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, PHP 8)

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\CType::getAlignment — Описание
    • FFI\CType::getArrayElementType — Описание
    • FFI\CType::getArrayLength — Описание
    • FFI\CType::getAttributes — Описание
    • FFI\CType::getEnumKind — Описание
    • FFI\CType::getFuncABI — Описание
    • FFI\CType::getFuncParameterCount — Описание
    • FFI\CType::getFuncParameterType — Описание
    • FFI\CType::getFuncReturnType — Описание
    • FFI\CType::getKind — Описание
    • FFI\CType::getName — Описание
    • FFI\CType::getPointerType — Описание
    • FFI\CType::getSize — Описание
    • FFI\CType::getStructFieldNames — Описание
    • FFI\CType::getStructFieldOffset — Описание
    • FFI\CType::getStructFieldType — Описание
  • FFI\Exception — Исключения FFI
  • FFI\ParserException — Исключения парсера FFI


Введение

Модуль позволяет загружать общие(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", "мир");
?>

Результат выполнения данного примера:

Привет, мир!

Замечание:

Обратите внимание, что для некоторых функций C требуются определённые соглашения о вызовах, например: __fastcall, __stdcall или ,__vectorcall.

Пример #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)

Пример #6 Работа с перечислениями C

<?php
$a = FFI::cdef('typedef enum _zend_ffi_symbol_kind {
ZEND_FFI_SYM_TYPE,
ZEND_FFI_SYM_CONST = 2,
ZEND_FFI_SYM_VAR,
ZEND_FFI_SYM_FUNC
} zend_ffi_symbol_kind;
');
var_dump($a->ZEND_FFI_SYM_TYPE);
var_dump($a->ZEND_FFI_SYM_CONST);
var_dump($a->ZEND_FFI_SYM_VAR);
?>

Результат выполнения данного примера:

int(0)
int(2)
int(3)


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, PHP 8)

Введение

Объекты этого класса создаются фабричными методами 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.

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

Обзор классов

final class FFI {
/* Константы */
public const int __BIGGEST_ALIGNMENT__;
/* Методы */
public static addr(FFI\CData &$ptr): FFI\CData
public static alignof(FFI\CData|FFI\CType &$ptr): int
public static arrayType(FFI\CType $type, array $dimensions): FFI\CType
public static cast(FFI\CType|string $type, FFI\CData|int|float|bool|null &$ptr): ?FFI\CData
public cast(FFI\CType|string $type, FFI\CData|int|float|bool|null &$ptr): ?FFI\CData
public static cdef(string $code = "", ?string $lib = null): FFI
public static free(FFI\CData &$ptr): void
public static isNull(FFI\CData &$ptr): bool
public static load(string $filename): ?FFI
public static memcmp(string|FFI\CData &$ptr1, string|FFI\CData &$ptr2, int $size): int
public static memcpy(FFI\CData &$to, FFI\CData|string &$from, int $size): void
public static memset(FFI\CData &$ptr, int $value, int $size): void
public static new(FFI\CType|string $type, bool $owned = true, bool $persistent = false): ?FFI\CData
public new(FFI\CType|string $type, bool $owned = true, bool $persistent = false): ?FFI\CData
public static scope(string $name): FFI
public static sizeof(FFI\CData|FFI\CType &$ptr): int
public static string(FFI\CData &$ptr, ?int $size = null): string
public static type(string $type): ?FFI\CType
public type(string $type): ?FFI\CType
public static typeof(FFI\CData &$ptr): FFI\CType
}

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

FFI::__BIGGEST_ALIGNMENT__

Содержание

  • 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, PHP 8)

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, PHP 8)

FFI::alignof — Возвращает величину выравнивания

Описание

public static FFI::alignof(FFI\CData|FFI\CType &$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, PHP 8)

FFI::arrayType — Динамически конструирует новый тип С массива

Описание

public static FFI::arrayType(FFI\CType $type, array $dimensions): FFI\CType

Динамически конструирует новый тип С массива с элементами типа type и размерностями, заданными в dimensions. В следующем примере $t1 и $t2 определяют массивы одинакового типа:

<?php
$t1 = FFI::type("int[2][3]");
$t2 = FFI::arrayType(FFI::type("int"), [2, 3]);
?>

Список параметров

type

Корректная декларация типа С, например string, или заранее созданный объект класса FFI\CType.

dimensions

Массив, определяющий размерность типа.

Возвращаемые значения

Возвращает новый объект FFI\CType.


Производит преобразование типа C

  • « FFI::arrayType
  • FFI::cdef »
  • PHP Manual
  • FFI
  • Производит преобразование типа C

FFI::cast

(PHP 7 >= 7.4.0, PHP 8)

FFI::cast — Производит преобразование типа C

Описание

public static FFI::cast(FFI\CType|string $type, FFI\CData|int|float|bool|null &$ptr): ?FFI\CData
public FFI::cast(FFI\CType|string $type, FFI\CData|int|float|bool|null &$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, PHP 8)

FFI::cdef — Создаёт новый объект FFI

Описание

public static FFI::cdef(string $code = "", ?string $lib = null): FFI

Создаёт новый объект FFI.

Список параметров

code

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

Замечание:

Директивы сопроцессора С не поддерживаются. Т.е. #include, #define и макросы CPP работать не будут.

lib

Имя файла библиотеки, который будет загружен и связан с заданными декларациями.

Замечание:

Если параметр lib не задан или null, то для платформ, поддерживающих RTLD_DEFAULT, будет произведён поиск задекларированных в code сущностей в глобальной области видимости. Для прочих платформ произвести привязку не получится.

Возвращаемые значения

Возвращает новый объект FFI.

Список изменений

Версия | Описание
8.0.0 | lib теперь допускает значение null.


Высвобождает неуправляемую структуру данных

  • « FFI::cdef
  • FFI::isNull »
  • PHP Manual
  • FFI
  • Высвобождает неуправляемую структуру данных

FFI::free

(PHP 7 >= 7.4.0, PHP 8)

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, PHP 8)

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, PHP 8)

FFI::load — Загрузить декларации C из заголовочного файла

Описание

public static FFI::load(string $filename): ?FFI

Загружает декларации C из заголовочного файла. Можно указать общие библиотеки для загрузки с помощью специальной #define директивы FFI_LIB в заголовочном файле.

Список параметров

filename

Имя заголовочного файла C.

Директивы сопроцессора С не поддерживаются. Т.е. #include, #define и макросы CPP работать не будут, за исключением особых случаев, перечисленных ниже.

Заголовочный файл должен содержать оператор #define для переменной FFI_SCOPE, например, #define FFI_SCOPE "MYLIB". За подробностями обратитесь к Введению в FFI.

Заголовочный файл может содержать оператор #define для переменной FFI_LIB, чтобы указать библиотеку, которую он раскрывает. Если это системная библиотека, требуется только имя файла, например: #define FFI_LIB "libc.so.6". Если это пользовательская библиотека, требуется относительный путь, например: #define FFI_LIB "./mylib.so".

Возвращаемые значения

Возвращает новый объект FFI или null в случае возникновения ошибки.

Смотрите также

  • FFI::scope() - Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки


Сравнивает две области памяти

  • « FFI::load
  • FFI::memcpy »
  • PHP Manual
  • FFI
  • Сравнивает две области памяти

FFI::memcmp

(PHP 7 >= 7.4.0, PHP 8)

FFI::memcmp — Сравнивает две области памяти

Описание

public static FFI::memcmp(string|FFI\CData &$ptr1, string|FFI\CData &$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, PHP 8)

FFI::memcpy — Копирует содержимое одной области памяти в другую

Описание

public static FFI::memcpy(FFI\CData &$to, FFI\CData|string &$from, int $size): void

Копирует size байт из области памяти from в область памяти to.

Список параметров

to

Целевая область памяти.

from

Область памяти, откуда будет происходить копирование.

size

Количество байт для копирования.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Заполнить область памяти

  • « FFI::memcpy
  • FFI::new »
  • PHP Manual
  • FFI
  • Заполнить область памяти

FFI::memset

(PHP 7 >= 7.4.0, PHP 8)

FFI::memset — Заполнить область памяти

Описание

public static FFI::memset(FFI\CData &$ptr, int $value, int $size): void

Заполняет size байт памяти по указателю ptr значением value.

Список параметров

ptr

Указатель на начало участка памяти.

value

Значение для заполнения.

size

Количество байт, которые будут заполнены.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Создаёт структуру данных C

  • « FFI::memset
  • FFI::scope »
  • PHP Manual
  • FFI
  • Создаёт структуру данных C

FFI::new

(PHP 7 >= 7.4.0, PHP 8)

FFI::new — Создаёт структуру данных C

Описание

public static FFI::new(FFI\CType|string $type, bool $owned = true, bool $persistent = false): ?FFI\CData
public FFI::new(FFI\CType|string $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 или null в случае возникновения ошибки.


Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки

  • « FFI::new
  • FFI::sizeof »
  • PHP Manual
  • FFI
  • Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки

FFI::scope

(PHP 7 >= 7.4.0, PHP 8)

FFI::scope — Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки

Описание

public static FFI::scope(string $name): FFI

Инстанциирует объект FFI в соответствии с декларацией С, разобранной на этапе предзагрузки.

Метод FFI::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, PHP 8)

FFI::sizeof — Возвращает размер данных или типа C

Описание

public static FFI::sizeof(FFI\CData|FFI\CType &$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, PHP 8)

FFI::string — Создаёт строку PHP из области памяти

Описание

public static FFI::string(FFI\CData &$ptr, ?int $size = null): string

Создаёт переменную PHP типа string из size байт памяти, начиная с адреса по указателю ptr.

Список параметров

ptr

Начало участка памяти, из которой будет создаваться строка.

size

Количество байт для копирования в строку. Если параметр size не задан или null, то ptr должен указывать на массив C типа char, завершающийся нулевым байтом.

Возвращаемые значения

Строка PHP.

Список изменений

Версия | Описание
8.0.0 | size теперь допускает значение null; ранее значением по умолчанию был 0.


Создаёт объект FFI\CType из декларации С

  • « FFI::string
  • FFI::typeof »
  • PHP Manual
  • FFI
  • Создаёт объект FFI\CType из декларации С

FFI::type

(PHP 7 >= 7.4.0, PHP 8)

FFI::type — Создаёт объект FFI\CType из декларации С

Описание

public static FFI::type(string $type): ?FFI\CType
public FFI::type(string $type): ?FFI\CType

Функция создаёт и возвращает объект FFI\CType для заданной строки, содержащей декларацию типа С. Если метод вызывается статически, то можно использовать только предопределённые имена типов С (например, int, char, и т.д.); если метод вызывается как метод объекта, то допустимы любые определённые для него типы.

Список параметров

type

Корректная декларация типа C в качестве строки (string).

Возвращаемые значения

Возвращает новый объект FFI\CType или null в случае возникновения ошибки.


Получает FFI\CType для FFI\CData

  • « FFI::type
  • FFI\CData »
  • PHP Manual
  • FFI
  • Получает FFI\CType для FFI\CData

FFI::typeof

(PHP 7 >= 7.4.0, PHP 8)

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, PHP 8)

Введение

Объекты 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.

Обзор классов

final class FFI\CData {
}


Доступ к типам C

(PHP 7 >= 7.4.0, PHP 8)

Введение

Обзор классов

final class FFI\CType {
/* Константы */
public const int TYPE_VOID;
public const int TYPE_FLOAT;
public const int TYPE_DOUBLE;
public const int TYPE_LONGDOUBLE;
public const int TYPE_UINT8;
public const int TYPE_SINT8;
public const int TYPE_UINT16;
public const int TYPE_SINT16;
public const int TYPE_UINT32;
public const int TYPE_SINT32;
public const int TYPE_UINT64;
public const int TYPE_SINT64;
public const int TYPE_ENUM;
public const int TYPE_BOOL;
public const int TYPE_CHAR;
public const int TYPE_POINTER;
public const int TYPE_FUNC;
public const int TYPE_ARRAY;
public const int TYPE_STRUCT;
public const int ATTR_CONST;
public const int ATTR_INCOMPLETE_TAG;
public const int ATTR_VARIADIC;
public const int ATTR_INCOMPLETE_ARRAY;
public const int ATTR_VLA;
public const int ATTR_UNION;
public const int ATTR_PACKED;
public const int ATTR_MS_STRUCT;
public const int ATTR_GCC_STRUCT;
public const int ABI_DEFAULT;
public const int ABI_CDECL;
public const int ABI_FASTCALL;
public const int ABI_THISCALL;
public const int ABI_STDCALL;
public const int ABI_PASCAL;
public const int ABI_REGISTER;
public const int ABI_MS;
public const int ABI_SYSV;
public const int ABI_VECTORCALL;
/* Методы */
public getAlignment(): int
public getArrayElementType(): FFI\CType
public getArrayLength(): int
public getAttributes(): int
public getEnumKind(): int
public getFuncABI(): int
public getFuncParameterCount(): int
public getFuncParameterType(int $index): FFI\CType
public getFuncReturnType(): FFI\CType
public getKind(): int
public getName(): string
public getPointerType(): FFI\CType
public getSize(): int
public getStructFieldNames(): array
public getStructFieldOffset(string $name): int
public getStructFieldType(string $name): FFI\CType
}

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

FFI\CType::TYPE_VOID

FFI\CType::TYPE_FLOAT

FFI\CType::TYPE_DOUBLE

FFI\CType::TYPE_LONGDOUBLE

FFI\CType::TYPE_UINT8

FFI\CType::TYPE_SINT8

FFI\CType::TYPE_UINT16

FFI\CType::TYPE_SINT16

FFI\CType::TYPE_UINT32

FFI\CType::TYPE_SINT32

FFI\CType::TYPE_UINT64

FFI\CType::TYPE_SINT64

FFI\CType::TYPE_ENUM

FFI\CType::TYPE_BOOL

FFI\CType::TYPE_CHAR

FFI\CType::TYPE_POINTER

FFI\CType::TYPE_FUNC

FFI\CType::TYPE_ARRAY

FFI\CType::TYPE_STRUCT

FFI\CType::ATTR_CONST

FFI\CType::ATTR_INCOMPLETE_TAG

FFI\CType::ATTR_VARIADIC

FFI\CType::ATTR_INCOMPLETE_ARRAY

FFI\CType::ATTR_VLA

FFI\CType::ATTR_UNION

FFI\CType::ATTR_PACKED

FFI\CType::ATTR_MS_STRUCT

FFI\CType::ATTR_GCC_STRUCT

FFI\CType::ABI_DEFAULT

FFI\CType::ABI_CDECL

FFI\CType::ABI_FASTCALL

FFI\CType::ABI_THISCALL

FFI\CType::ABI_STDCALL

FFI\CType::ABI_PASCAL

FFI\CType::ABI_REGISTER

FFI\CType::ABI_MS

FFI\CType::ABI_SYSV

FFI\CType::ABI_VECTORCALL

Содержание

  • FFI\CType::getAlignment — Описание
  • FFI\CType::getArrayElementType — Описание
  • FFI\CType::getArrayLength — Описание
  • FFI\CType::getAttributes — Описание
  • FFI\CType::getEnumKind — Описание
  • FFI\CType::getFuncABI — Описание
  • FFI\CType::getFuncParameterCount — Описание
  • FFI\CType::getFuncParameterType — Описание
  • FFI\CType::getFuncReturnType — Описание
  • FFI\CType::getKind — Описание
  • FFI\CType::getName — Описание
  • FFI\CType::getPointerType — Описание
  • FFI\CType::getSize — Описание
  • FFI\CType::getStructFieldNames — Описание
  • FFI\CType::getStructFieldOffset — Описание
  • FFI\CType::getStructFieldType — Описание


Описание

  • « FFI\CType
  • FFI\CType::getArrayElementType »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getAlignment

(PHP 8 >= 8.1.0)

FFI\CType::getAlignment — Описание

Описание

public FFI\CType::getAlignment(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getAlignment
  • FFI\CType::getArrayLength »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getArrayElementType

(PHP 8 >= 8.1.0)

FFI\CType::getArrayElementType — Описание

Описание

public FFI\CType::getArrayElementType(): FFI\CType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getArrayElementType
  • FFI\CType::getAttributes »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getArrayLength

(PHP 8 >= 8.1.0)

FFI\CType::getArrayLength — Описание

Описание

public FFI\CType::getArrayLength(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getArrayLength
  • FFI\CType::getEnumKind »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getAttributes

(PHP 8 >= 8.1.0)

FFI\CType::getAttributes — Описание

Описание

public FFI\CType::getAttributes(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getAttributes
  • FFI\CType::getFuncABI »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getEnumKind

(PHP 8 >= 8.1.0)

FFI\CType::getEnumKind — Описание

Описание

public FFI\CType::getEnumKind(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getEnumKind
  • FFI\CType::getFuncParameterCount »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getFuncABI

(PHP 8 >= 8.1.0)

FFI\CType::getFuncABI — Описание

Описание

public FFI\CType::getFuncABI(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getFuncABI
  • FFI\CType::getFuncParameterType »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getFuncParameterCount

(PHP 8 >= 8.1.0)

FFI\CType::getFuncParameterCount — Описание

Описание

public FFI\CType::getFuncParameterCount(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getFuncParameterCount
  • FFI\CType::getFuncReturnType »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getFuncParameterType

(PHP 8 >= 8.1.0)

FFI\CType::getFuncParameterType — Описание

Описание

public FFI\CType::getFuncParameterType(int $index): FFI\CType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Возвращаемые значения


Описание

  • « FFI\CType::getFuncParameterType
  • FFI\CType::getKind »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getFuncReturnType

(PHP 8 >= 8.1.0)

FFI\CType::getFuncReturnType — Описание

Описание

public FFI\CType::getFuncReturnType(): FFI\CType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getFuncReturnType
  • FFI\CType::getName »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getKind

(PHP 8 >= 8.1.0)

FFI\CType::getKind — Описание

Описание

public FFI\CType::getKind(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getKind
  • FFI\CType::getPointerType »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getName

(PHP 7 >= 7.4.0, PHP 8)

FFI\CType::getName — Описание

Описание

public FFI\CType::getName(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getName
  • FFI\CType::getSize »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getPointerType

(PHP 8 >= 8.1.0)

FFI\CType::getPointerType — Описание

Описание

public FFI\CType::getPointerType(): FFI\CType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getPointerType
  • FFI\CType::getStructFieldNames »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getSize

(PHP 8 >= 8.1.0)

FFI\CType::getSize — Описание

Описание

public FFI\CType::getSize(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getSize
  • FFI\CType::getStructFieldOffset »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getStructFieldNames

(PHP 8 >= 8.1.0)

FFI\CType::getStructFieldNames — Описание

Описание

public FFI\CType::getStructFieldNames(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « FFI\CType::getStructFieldNames
  • FFI\CType::getStructFieldType »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getStructFieldOffset

(PHP 8 >= 8.1.0)

FFI\CType::getStructFieldOffset — Описание

Описание

public FFI\CType::getStructFieldOffset(string $name): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Описание

  • « FFI\CType::getStructFieldOffset
  • FFI\Exception »
  • PHP Manual
  • FFI\CType
  • Описание

FFI\CType::getStructFieldType

(PHP 8 >= 8.1.0)

FFI\CType::getStructFieldType — Описание

Описание

public FFI\CType::getStructFieldType(string $name): FFI\CType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Исключения FFI

(PHP 7 >= 7.4.0, PHP 8)

Введение

Обзор классов

class FFI\Exception extends Error {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


Исключения парсера FFI

(PHP 7 >= 7.4.0, PHP 8)

Введение

Обзор классов

final class FFI\ParserException extends FFI\Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


OPcache

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Preloading
  • Функции 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 можно собирать только как разделяемый модуль. Если вы запретили сборку модулей по умолчанию с помощью --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.

Замечание:

Если вы хотите использовать OPcache с » Xdebug, то сперва нужно загружать OPcache, а потом Xdebug.

Рекомендованные настройки php.ini

Данные опции рекомендованы для обеспечения хорошей производительности:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1 ; до PHP 7.2.0
opcache.enable_cli=1

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

В Windows должен быть включён параметр opcache.file_cache_fallback и opcache.file_cache должна быть установлена на уже существующий и доступный для записи каталог.

Полный список опций настройки 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 |
opcache.interned_strings_buffer | "8" | PHP_INI_SYSTEM |
opcache.max_accelerated_files | "10000" | PHP_INI_SYSTEM |
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.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
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 | Недоступно с PHP 8.1.18 и 8.2.5. Удалено в PHP 8.3.0.
opcache.force_restart_timeout | "180" | PHP_INI_SYSTEM |
opcache.error_log | "" | PHP_INI_SYSTEM |
opcache.log_verbosity_level | "1" | PHP_INI_SYSTEM |
opcache.record_warnings | "0" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0.
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 | Доступно с PHP 7.1.0
opcache.file_cache | NULL | PHP_INI_SYSTEM |
opcache.file_cache_only | "0" | PHP_INI_SYSTEM |
opcache.file_cache_consistency_checks | "1" | PHP_INI_SYSTEM |
opcache.file_cache_fallback | "1" | PHP_INI_SYSTEM |
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 | "" | PHP_INI_SYSTEM | Только в Windows. Доступно с PHP 7.4.0
opcache.jit | "tracing" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_buffer_size | "0" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_debug | "0" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_bisect_limit | "0" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_prof_threshold | "0.005" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_max_root_traces | "1024" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_max_side_traces | "128" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_max_exit_counters | "8192" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_hot_loop | "64" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_hot_func | "127" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_hot_return | "8" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_hot_side_exit | "8" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_blacklist_root_trace | "16" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_blacklist_side_trace | "8" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_max_loop_unrolls | "8" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_max_recursive_calls | "2" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_max_recursive_returns | "2" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_max_polymorphic_calls | "2" | PHP_INI_ALL | Доступно с PHP 8.0.0
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

opcache.enable bool

Разрешает кеширование опкодов. Если запрещено, код не будет оптимизироваться и кешироваться. Опцию opcache.enable нельзя включить во время исполнения с помощью ini_set(), но можно выключить. Попытка включить её таким образом приведёт к генерации предупреждения.

opcache.enable_cli bool

Разрешает кеширование опкодов для CLI-версии PHP.

opcache.memory_consumption int

Размер разделяемой памяти в мегабайтах для OPcache. Минимально допустимое значение — "8", которое применяется, если установлено меньшее значение.

opcache.interned_strings_buffer int

Количество памяти в мегабайтах для хранения интернированных строк.

opcache.max_accelerated_files int

Максимальное количество ключей (и, соответственно, скриптов) в хеш-таблице OPcache. Фактическое используемое значение будет первым числом из набора { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 }, которое больше или равно заданному в этом параметре. Минимум 200, максимум 1000000. Значения за пределами этого диапазона ограничены до допустимого диапазона.

opcache.max_wasted_percentage int

Максимальное значение потерянной памяти (в процентах) после которого планируется перезапуск, если недостаточно свободной памяти. Максимально допустимое значение: "50", которое применяется, если установлено большее значение.

opcache.use_cwd bool

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

opcache.validate_timestamps bool

Если включено, OPcache будет проверять актуальность закешированных скриптов каждые opcache.revalidate_freq секунд. Когда запрещено, вы можете перезапустить OPcache вручную с помощью opcache_reset(), opcache_invalidate() или перезапустив веб-сервер для того, чтобы изменения вступили в силу.

Замечание: OPcache всё ещё может проверять временную метку файла во время компиляции, если для опций opcache.file_update_protection или opcache.max_file_size установлены ненулевые значения.

opcache.revalidate_freq int

Как часто в секундах проверять временные метки файлов. 0 приведёт к тому, что OPcache будет производить эту проверку при каждом запросе.

Эта директива игнорируется, если выключена opcache.validate_timestamps.

opcache.revalidate_path bool

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

opcache.save_comments bool

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

opcache.fast_shutdown bool

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

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

opcache.enable_file_override bool

Если включено, то кеш опкодов будет проверять, закеширован ли уже файл при вызове функций file_exists(), is_file() и is_readable(). Это может повысить производительность для приложений, проверяющих присутствие и доступность для чтения скриптом PHP, но несёт риск возврата устаревших данных, если запрещена опция opcache.validate_timestamps.

opcache.optimization_level int

Битовая маска, контролирующая, какие шаги оптимизации выполняются. По умолчанию применяются все безопасные оптимизации. Изменение значения по умолчанию в основном полезно для отладки/разработки оптимизатора (смотрите также opcache.opt_debug_level).

opcache.inherited_hack bool

Эта директива игнорируется.

opcache.dups_fix bool

Этот хак требуется только для обхода ошибок "Cannot redeclare class".

opcache.blacklist_filename string

Местоположение чёрного списка OPcache. Файл чёрного списка содержит имена файлов, которые не нужно ускорять, по одной записи на строку. Допустимы шаблоны поиска и префиксы. Строки, начинающиеся с точки с запятой игнорируются

Пример простого чёрного списка:

; Указываем конкретный файл.
/var/www/broken.php
; Префикс, обозначающий все файлы, начинающиеся с x.
/var/www/x
; Шаблон поиска.
/var/www/*-broken.php
opcache.max_file_size int

Максимальный размер файла для кеширования в байтах. Если задать 0, то кешироваться будут все файлы.

opcache.consistency_checks int

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

Замечание:

Недоступно с PHP 8.1.18 и 8.2.5. Удалено в PHP 8.3.0.

opcache.force_restart_timeout int

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

Если параметр opcache.log_verbosity_level задать равным 2 или больше, то, при возникновении подобной ситуации, в лог ошибок будет записано предупреждение.

Директива не поддерживается в Windows.

opcache.error_log string

Лог ошибок OPcache. Пустая строка считается как stderr, и ошибки будут выведены в стандартный поток ошибок (в большинстве случаев это лог ошибок веб-сервера).

opcache.log_verbosity_level int

Уровень подробности лога ошибок. По умолчанию будут записываться только фатальные ошибки (уровень 0) и ошибки (уровень 1). Также значения могут быть следующими: предупреждения (уровень 2), информационные сообщения (уровень 3) и сообщения отладки (уровень 4).

opcache.record_warnings bool

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

opcache.preferred_memory_model string

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

Возможные значения включают mmap, shm, posix и win32.

opcache.protect_memory bool

Защищает разделяемую память от неожиданной записи во время запуска скриптов. Полезно только для внутренней отладки.

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 bool

Включает или отключает копирование кода PHP (текстового сегмента) в HUGE PAGES. Это может повысить производительность, но требует соответствующих системных настроек. Доступно в Linux начиная с PHP 7.0.0 и FreeBSD начиная с PHP 7.4.0.

opcache.lockfile_path string

Абсолютный путь к хранилищу общих файлов блокировок (только *nix)

opcache.opt_debug_level string

Производит вывод опкодов для отладки разных этапов оптимизации. 0x10000 приведёт к выводу опкодов как только они сгенерированы компилятором, до применения какой-либо оптимизации. 0x20000 приведёт к выводу опкодов после оптимизации.

opcache.file_cache string

Разрешает и задаёт директорию кеша второго уровня. Это должно повысить производительность в случае, если память SHM заполнена, сервер перезапущен или SHM сброшена. Значение по умолчанию "" запрещает кеширование на файловой системе.

opcache.file_cache_only bool

Включает или выключает кеширование опкодов в разделяемой памяти.

Замечание:

До PHP 8.1.0 отключение этой директивы с уже заполненным файловым кешем требовало ручной очистки файлового кеша.

opcache.file_cache_consistency_checks bool

Включает или выключает проверку контрольной суммы при загрузке скрипта из файлового кеша.

opcache.file_cache_fallback bool

Применяет opcache.file_cache_only=1 для некоторых процессов, которые завершились ошибкой при переподключении к разделяемой памяти (только для Windows). Требуется явно разрешённое кеширование на файловую систему.

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

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

opcache.validate_permission bool

Проверяет права доступа к кешированному файлу для текущего пользователя.

opcache.validate_root bool

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

opcache.preload string

Задаёт скрипт PHP, который будет скомпилирован и запущен при старте сервера и сможет предзагрузить другие файлы, либо с помощью include, либо используя функцию opcache_compile_file(). Все сущности (например функции и классы), определённые в этих файлах, автоматически будут доступны до момента выключения сервера.

Замечание:

Предварительная загрузка не поддерживается в Windows.

opcache.preload_user string

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

opcache.cache_id string

В Windows все процессы, выполняющие один и тот же PHP SAPI под одной и той же учётной записью пользователя с одинаковым идентификатором кеша, совместно используют один экземпляр OPcache. Значение идентификатора кеша может быть свободно выбрано.

Подсказка

Для IIS разные пулы приложений могут иметь собственный экземпляр OPcache, используя переменную среды APP_POOL_ID как opcache.cache_id.

opcache.jit string|int

Для обычного использования параметр принимает одно из четырёх строковых значений:

  • disable: Полностью отключён, не может быть включён во время выполнения.
  • off: Отключено, но может быть включено во время выполнения.
  • tracing/on: Используйте трассировку JIT. Включено по умолчанию и рекомендуется для большинства пользователей.
  • function: Используйте функцию JIT.

Для расширенного использования параметр принимает 4-значное целое число CRTO, где цифры означают:

C (Флаги оптимизации для процессора)
  • 0: Отключить оптимизацию для ЦП.
  • 1: Включите использование AVX, если ЦП поддерживает его.
R (распределение регистров)
  • 0: Не выполнять распределение регистров.
  • 1: Выполнять выделение локального блочного регистра.
  • 2: Выполнять выделение глобального регистра.
T (триггер)
  • 0: Компиляция всех функций при загрузке скрипта.
  • 1: Компиляция функций при первом выполнении.
  • 2: Профилирование функций при первом запросе и затем компилирование самых популярных функций.
  • 3: Профилирование на лету и компиляция горячих функций.
  • 4: В настоящее время не используется.
  • 5: Использование трассировки JIT. Профилирование на лету и компиляция трассировки для горячих сегментов кода.
O (уровень оптимизации)
  • 0: Без JIT.
  • 1: Минимальный JIT (вызов стандартных обработчиков виртуальных машин).
  • 2: Встроенные обработчики виртуальных машин.
  • 3: Использовать вывод типа.
  • 4: Использовать график вызовов.
  • 5: Оптимизировать весь скрипт.
Режим "tracing" соответствует CRTO = 1254, Режим "function" соответствует CRTO = 1205.

opcache.jit_buffer_size int

Объем разделяемой памяти, резервируемый для скомпилированного JIT-кода. Нулевое значение отключает JIT.

Если используется int, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.
opcache.jit_debug int

Битовая маска, определяющая, какой вывод отладки JIT следует включить. Возможные значения смотрите в файле » zend_jit.h (поиск макроопределений, начинающихся с ZEND_JIT_DEBUG).

opcache.jit_bisect_limit int

Опция отладки, отключающая JIT-компиляцию после компиляции определённого количества функций. Может быть полезно для разделения источника неправильной компиляции JIT. Примечание: этот параметр работает, только если для триггера JIT установлено значение 0 (компиляция при загрузке скрипта) или 1 (компиляция при первом выполнении), например, opcache.jit=1215. Подробнее смотрите в разделе opcache.jit.

opcache.jit_prof_threshold float

При использовании режима триггера "профилирование функций при первом запросе" этот порог определяет, считается ли функция горячей. Количество вызовов функции, разделённое на количество вызовов всех функций, должно быть выше порогового значения. Например, порог 0,005 означает, что функции, составляющие более 0,5% всех вызовов, будут скомпилированы JIT.

opcache.jit_max_root_traces int

Максимальное количество корневых стеков вызова. Корневой стек вызова — это поток выполнения, проходящий по коду сначала по одному пути, что является единицей компиляции JIT. JIT не будет компилировать новый код, если он достигнет этого предела.

opcache.jit_max_side_traces int

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

opcache.jit_max_exit_counters int

Максимальное количество счётчиков выхода бокового стека вызова. Это ограничивает общее количество боковых стеков, которые могут быть во всех корневых стеках.

opcache.jit_hot_loop int

Через сколько итераций цикл считается горячим. Допустимый диапазон значений: [0,255]; для любого значения вне этого диапазона, например, -1 или 256, будет использоваться значение по умолчанию. В частности, нулевое значение отключит JIT для отслеживания и компиляции любых циклов.

opcache.jit_hot_func int

Через сколько вызовов функция считается горячей. Допустимый диапазон значений: [0,255]; для любого значения вне этого диапазона, например, -1 или 256, будет использоваться значение по умолчанию. В частности, нулевое значение отключит JIT для отслеживания и компиляции любых функций.

opcache.jit_hot_return int

Через сколько возвратов возврат считается горячим. Допустимый диапазон значений: [0,255]; для любого значения вне этого диапазона, например, -1 или 256, будет использоваться значение по умолчанию. В частности, нулевое значение отключит JIT для отслеживания и компиляции любых возвратов.

opcache.jit_hot_side_exit int

Через сколько выходов боковой стек считается горячим. Допустимый диапазон значений: [0,255]; для любого значения вне этого диапазона, например, -1 или 256, будет использоваться значение по умолчанию. В частности, нулевое значение отключит JIT для отслеживания и компиляции любых побочных выходов.

opcache.jit_blacklist_root_trace int

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

opcache.jit_blacklist_side_trace int

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

opcache.jit_max_loop_unrolls int

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

opcache.jit_max_recursive_calls int

Максимальное количество развёрнутых рекурсивных циклов вызова.

opcache.jit_max_recursive_returns int

Максимальное количество развёрнутых рекурсивных циклов возврата.

opcache.jit_max_polymorphic_calls int

Максимальное количество попыток встроенных полиморфных (динамических или методических) вызовов. Вызовы выше этого лимита обрабатываются как метаморфические и не встраиваются.


  • « Настройка во время выполнения
  • Preloading »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данный модуль не определяет каких-либо типов ресурсов.


Preloading

Начиная с PHP 7.4.0 можно настроить предзагрузку скриптов в opcache в момент старта PHP. Любые функции, классы, интерфейсы или трейты (но не константы) в этих файлах будут глобально доступны для всех запросов без необходимости их явной загрузки. Такая предзагрузка позволяет добиться большего удобства и производительности (потому что код всегда доступен) за счёт использования большего количества памяти. Также, при внесении изменений в предзагруженные скрипты, чтобы эти изменения стали доступны, придётся перезагрузить PHP. Из этого следует, что предзагрузку имеет смысл использовать только в производственном окружении, но не в окружении разработки.

Обратите внимание, что баланс повышения производительности и потребления памяти сильно зависит от приложения. «Предзагрузка всего на свете» может быть простейшей стратегией, но совсем не обязательно лучшей. Также, предзагрузка будет работать только в случае, когда PHP работает в режиме обслуживания запросов без перезагрузки. Таким образом, хоть предзагрузку и можно использовать в режиме CLI с включённым opcache, но в большинстве случаев бессмысленно. Исключением является использование предзагрузки с библиотеками FFI.

Замечание:

Предзагрузка не поддерживается в Windows.

Настройка предзагрузки состоит из двух этапов и требует включённого opcache. Для начала, настройте opcache.preload в php.ini:

opcache.preload=preload.php

Файл preload.php — это обязательный файл, который будет запущен один раз при старте сервера (PHP-FPM, mod_php, etc.) и который загрузит код в постоянную память. В серверах, которые запускаются от имени root перед переключением на непривилегированного пользователя системы или если PHP запускается от имени root (не рекомендуется), значение opcache.preload_user может указывать системного пользователя для запуска предварительной загрузки. Запуск предварительной загрузки от имени root по умолчанию запрещён. Установите opcache.preload_user=root, чтобы явно разрешить это.

В скрипте preload.php любой файл, указанный в выражениях include, include_once, require, require_once или opcache_compile_file(), будет загружен в постоянную память. В следующем примере будут загружены все файлы .php в директории src, если они не содержат Test в имени.

<?php
$directory = new RecursiveDirectoryIterator(__DIR__ . '/src');
$fullTree = new RecursiveIteratorIterator($directory);
$phpFiles = new RegexIterator($fullTree, '/.+((?<!Test)+\.php$)/i', RecursiveRegexIterator::GET_MATCH);

foreach ($phpFiles as $key => $file) {
require_once $file[0];
}
?>

И include и opcache_compile_file() будут работать, но при этом будут немного по разному обработаны.

  • Выражение include запустит код из файла, а opcache_compile_file() нет. Это повлияет только на условные декларации (функции объявленные в блоках if).
  • Из за того, что include запустит код, вложенные include также будут обработаны и предзагружены.
  • Функция opcache_compile_file() может загружать файлы в любом порядке. То есть, если файл a.php определяет класс A и b.php определяет класс B, который является наследником A, то функция opcache_compile_file() может загрузить эти два файла в любом порядке. При использовании выражения include, с другой стороны, файл a.php должен быть загружен первым.
  • В любом случае, если какой-то скрипт в последствии запросит включение уже предзагруженного скрипта, то он будет выполнен, но сущности пересоздаваться не будут. Использование выражения include_once не предотвратит повторное включение файла. Может потребоваться загрузить файл снова, чтобы включить в него определённые глобальные константы, поскольку они не обрабатываются предварительной загрузкой.
Какой подход использовать — зависит от желаемого поведения. Для кода, который использует автозагрузчик, подход с вызовом функции opcache_compile_file() даст больше гибкости. С кодом, который будет загружаться вручную, вариант с выражением include может быть более надёжным.


Функции 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, PHP 8, PECL ZendOpcache > 7.0.2)

opcache_compile_file — Скомпилировать и закешировать, но не исполнять скрипт PHP

Описание

opcache_compile_file(string $filename): bool

Эта функция компилирует PHP-скрипт и помещает его в кеш опкодов, но не запускает его. Можно использовать для прогрева кеша после перезапуска веб-сервера.

Список параметров

filename

Путь к скрипту PHP.

Возвращаемые значения

Возвращает true, если filename успешно скомпилирован или false в случае возникновения ошибки.

Ошибки

Если filename не может быть загружен или скомпилирован, будет выдана ошибка уровня E_WARNING. Для подавления предупреждения можно использовать @.

Смотрите также

  • opcache_invalidate() - Аннулирует закешированный скрипт


Получить конфигурационную информацию кеша

  • « opcache_compile_file
  • opcache_get_status »
  • PHP Manual
  • Функции OPcache
  • Получить конфигурационную информацию кеша

opcache_get_configuration

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL ZendOpcache > 7.0.2)

opcache_get_configuration — Получить конфигурационную информацию кеша

Описание

opcache_get_configuration(): array|false

Эта функция возвращает настройки конфигурации экземпляра кеша.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с информацией, включая 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, PHP 8, PECL ZendOpcache > 7.0.2)

opcache_get_status — Получить информацию о состоянии кеша

Описание

opcache_get_status(bool $include_scripts = true): array|false

Функция возвращает информацию о состоянии экземпляра кеша в памяти. Она не возвращает никакой информации о файловом кеше.

Список параметров

include_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, PHP 8, PECL ZendOpcache >= 7.0.0)

opcache_invalidate — Аннулирует закешированный скрипт

Описание

opcache_invalidate(string $filename, bool $force = false): bool

Функция аннулирует закешированный скрипт. Если параметр force не задан или задан как false, скрипт аннулируется, только если скрипт был модифицирован после помещения в кеш. Функция аннулирует только кеш в памяти, не затрагивая файловый кеш.

Список параметров

filename

Путь к скрипту.

force

Если установлено как true, кеш скрипта будет принудительно аннулирован независимо от того, требуется ли это или нет

Возвращаемые значения

Возвращает true, если кеш опкодов для filename аннулирован, либо если аннулировать нечего. В случае, если кеш опкодов отключён, возвращается 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, PHP 8, PECL ZendOpcache >= 7.0.4)

opcache_is_script_cached — Проверяет, закеширован ли скрипт в OPCache

Описание

opcache_is_script_cached(string $filename): bool

Функция проверяет, закеширован ли указанный скрипт в OPCache. Может быть использована для определения, прогрет ли кеш для конкретного скрипта. Функция проверяет только кеш в памяти, не проверяя файловый кеш.

Список параметров

filename

Путь к файлу скрипта.

Возвращаемые значения

Возвращает true, если filename закеширован в OPCache, false если нет.

Смотрите также

  • opcache_compile_file() - Скомпилировать и закешировать, но не исполнять скрипт PHP


Сбрасывает содержимое кеша опкодов

  • « opcache_is_script_cached
  • Контроль вывода »
  • PHP Manual
  • Функции OPcache
  • Сбрасывает содержимое кеша опкодов

opcache_reset

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL ZendOpcache >= 7.0.0)

opcache_reset — Сбрасывает содержимое кеша опкодов

Описание

opcache_reset(): bool

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если кеш опкодов был сброшен или false, если кеш отключён, ожидается перезапуск или перезапуск выполняется (смотрите opcache_get_status()).

Смотрите также

  • opcache_invalidate() - Аннулирует закешированный скрипт
  • opcache_get_status() - Получить информацию о состоянии кеша


Управление буфером вывода

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
    • Базовое использование
    • Использование перезаписи вывода
  • Функции контроля вывода
    • 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 bool/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 bool

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 (int)

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

PHP_OUTPUT_HANDLER_WRITE (int)

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

PHP_OUTPUT_HANDLER_FLUSH (int)

Обозначает, что буфер был сброшен (очищен и выведен).

PHP_OUTPUT_HANDLER_CLEAN (int)

Обозначает, что буфер был очищен.

PHP_OUTPUT_HANDLER_FINAL (int)

Обозначает, что это последняя операция буферирования.

PHP_OUTPUT_HANDLER_CONT (int)

Обозначает, что буфер был очищен, но буферирование вывода будет продолжено.

Это синоним для PHP_OUTPUT_HANDLER_WRITE.

PHP_OUTPUT_HANDLER_END (int)

Обозначает, что буферирование вывода завершено.

Это синоним для PHP_OUTPUT_HANDLER_FINAL.

PHP_OUTPUT_HANDLER_CLEANABLE (int)

Определяет может ли буфер вывода, созданный ob_start(), быть очищенным.

PHP_OUTPUT_HANDLER_FLUSHABLE (int)

Определяет может ли буфер вывода, созданный ob_start(), быть сброшен (выведен и очищен).

PHP_OUTPUT_HANDLER_REMOVABLE (int)

Определяет может ли буфер вывода, созданный ob_start(), быть удалённым до завершения скрипта.

PHP_OUTPUT_HANDLER_STDFLAGS (int)

Значение по умолчанию для флагов буфера вывода. Равняется PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE.


  • « Предопределённые константы
  • Базовое использование »
  • 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, PHP 8)

flush — Сброс системного буфера вывода

Описание

flush(): void

Функция очищает системный буфер вывода PHP, при этом всё содержимое буфера отправляется в браузер пользователя (с некоторыми исключениями), независимо от используемого бекенда PHP (CGI, веб-сервер и т. д.).

flush() не сможет переопределить схему буферизации вашего веб-сервера и никак не влияет на буферизацию браузера на стороне клиента. Функция также не влияет на механизм буферизации пользовательского PHP-кода. Это означает, что 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, PHP 8)

ob_clean — Очистить (стереть) буфер вывода

Описание

ob_clean(): bool

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

Эта функция не уничтожает буфер вывода, как это делает ob_end_clean().

Буфер вывода должен запускаться функцией ob_start() с флагом PHP_OUTPUT_HANDLER_CLEANABLE. Иначе ob_clean() не сработает.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ob_flush() - Сбросить (отправить) буфер вывода
  • ob_end_flush() - Сбросить (отправить) буфер вывода и отключить буферизацию вывода
  • ob_end_clean() - Очистить (стереть) буфер вывода и отключить буферизацию вывода


Очистить (стереть) буфер вывода и отключить буферизацию вывода

  • « ob_clean
  • ob_end_flush »
  • PHP Manual
  • Функции контроля вывода
  • Очистить (стереть) буфер вывода и отключить буферизацию вывода

ob_end_clean

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_end_clean — Очистить (стереть) буфер вывода и отключить буферизацию вывода

Описание

ob_end_clean(): 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, PHP 8)

ob_end_flush — Сбросить (отправить) буфер вывода и отключить буферизацию вывода

Описание

ob_end_flush(): 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, PHP 8)

ob_flush — Сбросить (отправить) буфер вывода

Описание

ob_flush(): bool

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

Эта функция не уничтожает буфер вывода, как это делает ob_end_flush().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • 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, PHP 8)

ob_get_clean — Получить содержимое текущего буфера и удалить его

Описание

ob_get_clean(): string|false

Получает содержимое текущего буфера и затем удаляет текущий буфер.

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, PHP 8)

ob_get_contents — Возвращает содержимое буфера вывода

Описание

ob_get_contents(): string|false

Получает содержимое буфера без его очистки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция вернёт содержимое буфера вывода или 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, PHP 8)

ob_get_flush — Сбросить буфер вывода, вернуть его в виде строки и отключить буферизацию вывода

Описание

ob_get_flush(): string|false

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, PHP 8)

ob_get_length — Возвращает размер буфера вывода

Описание

ob_get_length(): int|false

Вернёт размер в байтах содержимого в буфере вывода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер в байтах содержимого буфера вывода или 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, PHP 8)

ob_get_level — Возвращает уровень вложенности механизма буферизации вывода

Описание

ob_get_level(): 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, PHP 8)

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)
type | 0 (внутренний обработчик) или 1 (предоставленный пользователем обработчик)
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, PHP 8)

ob_gzhandler — callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start

Описание

ob_gzhandler(string $data, int $flags): string|false

Функция ob_gzhandler() предназначена для использования в качестве callback-функции для ob_start(), чтобы облегчить отправку gz-кодированных данных браузерам, поддерживающим сжатие веб-страниц. Прежде чем ob_gzhandler() отправит сжатые данные, она определяет, какой тип кодирования содержимого сможет принять браузер ("gzip", "deflate" или вообще никакой) и вернёт его содержимое соответствующим образом. Поддерживаются все браузеры, отправляющие корректные заголовки о том, что они принимают сжатые веб-страницы. Если браузер не поддерживает сжатие страниц, эта функция вернёт false.

Список параметров

data

flags

Возвращаемые значения

Примеры

Пример #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, PHP 8)

ob_implicit_flush — Включение/выключение неявного сброса

Описание

ob_implicit_flush(bool $enable = true): void

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

Список параметров

enable

true для включения неявного сброса, false в противном случае.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | enable теперь принимает логическое значение (bool); ранее принималось целое число (int).

Смотрите также

  • 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, PHP 8)

ob_list_handlers — Список всех используемых обработчиков вывода

Описание

ob_list_handlers(): 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, PHP 8)

ob_start — Включение буферизации вывода

Описание

ob_start(callable $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-функций, вывод последовательно фильтруется для каждой из них в порядке вложения.

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

Список параметров

callback

Можно задать необязательный параметр callback. Эта функция принимает строку в виде аргумента и должна также вернуть строку. Она вызывается при сбросе (отправке) или очистке (с помощью ob_flush(), ob_clean() или подобных функций) или если буфер вывода сбрасывается в браузер по окончанию запроса. При вызове функции callback, она получает содержимое буфера и, как ожидается, должна вернуть обновлённое содержимое для буфера вывода, которое будет отправлено браузеру. Если callback не является допустимой функцией, то эта функция вернёт false. Описание функции для этого параметра:

handler(string $buffer, int $phase = ?): string
buffer
Содержимое буфера вывода.
phase
Битовая маска констант PHP_OUTPUT_HANDLER_*.

Если callback вернёт false, то оригинальная информация отправится в браузер без изменений.

Параметр 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 означает, что функция вывода будет вызвана, когда буфер будет закрыт.

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 в случае возникновения ошибки.

Примеры

Пример #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

ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_REMOVABLE);

?>

Смотрите также

  • 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, PHP 8)

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, PHP 8)

output_reset_rewrite_vars — Сбросить значения обработчика URL

Описание

output_reset_rewrite_vars(): 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 — Проверяет утверждение
    • 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_parse_quantity — Get interpreted size from ini shorthand syntax
    • ini_restore — Восстанавливает значение настройки конфигурации
    • ini_set — Устанавливает значение настройки конфигурации
    • memory_get_peak_usage — Возвращает пиковое значение объёма памяти, выделенное PHP
    • memory_get_usage — Возвращает количество памяти, выделенное для PHP
    • memory_reset_peak_usage — Сбрасывает пиковое использование памяти
    • php_ini_loaded_file — Получить путь к загруженному файлу php.ini
    • php_ini_scanned_files — Возвращает список .ini-файлов, найденных в дополнительной ini-директории
    • 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_time_limit — Ограничение времени выполнения скрипта
    • sys_get_temp_dir — Возвращает путь к директории временных файлов
    • version_compare — Сравнивает две "стандартизованные" строки с номером версии PHP
    • 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 | Удалено в PHP 8.0.0
assert.exception | "1" | PHP_INI_ALL | До PHP 8.0.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 |
max_input_vars | 1000 | PHP_INI_PERDIR |
zend.enable_gc | "1" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

assert.active bool

Включение выполнение assert(). zend.assertions следует использовать вместо этого для управления поведением функции assert().

assert.bail bool

Завершение работы скрипта при провале проверки утверждений.

assert.warning bool

Вызов предупреждений PHP для каждой проваленной проверки утверждения.

assert.callback string

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

assert.quiet_eval bool
Внимание

Данная функциональность была УДАЛЕНА, начиная с PHP 8.0.0.

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

assert.exception bool

Генерирует исключение AssertionError для неудачной проверки утверждения.

enable_dl bool

Директива позволяет включать и выключать динамическую подгрузку модулей PHP с помощью функции dl().

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

max_execution_time int

Эта директива задаёт максимальное время в секундах, в течение которого скрипт должен полностью загрузиться. Если этого не происходит, парсер завершает работу скрипта. Этот механизм помогает предотвратить зависание сервера из-за плохо написанного скрипта. По умолчанию на загрузку даётся 30 секунд. Если PHP запущен из командной строки, это значение по умолчанию равно 0.

В системах, отличных от Windows, на максимальное время выполнения не влияют системные вызовы, потоковые операции и т.п. За дополнительной информацией обращайтесь к документации к функции set_time_limit().

Веб-серверы обычно имеют свои настройки времени ожидания, по превышении которого сами завершают выполнение скрипта PHP. В Apache есть директива Timeout, в IIS есть функция CGI timeout. В обоих случаях по умолчанию установлено 300 секунд. Точные значения можно узнать из документации к веб-серверу.

max_input_time int

Эта директива задаёт максимальное время в секундах, в течение которого скрипт должен разобрать все входные данные, переданные запросами вроде POST или GET. Это время измеряется от момента, когда PHP вызван на сервере до момента, когда скрипт начинает выполняться. Значение по умолчанию -1, что означает, что будет использоваться max_execution_time. Если установить равным 0, то ограничений по времени не будет.

max_input_nesting_level int

Задаёт максимальную глубину вложенности входных переменных (то есть $_GET, $_POST.)

max_input_vars int

Сколько входных переменных может быть принято в одном запросе (ограничение накладывается на каждую из глобальных переменных $_GET, $_POST и $_COOKIE отдельно). Использование этой директивы снижает вероятность сбоев в случае атак с использованием хеш-коллизий. Если входных переменных больше, чем задано директивой, выбрасывается предупреждение E_WARNING, а все последующие переменные в запросе игнорируются.

zend.enable_gc bool

Включает или отключает сборщик циклических ссылок.


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

Перечисленные ниже константы всегда доступны как часть ядра 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() проверок. Внимание Данная функциональность объявлена УСТАРЕВШЕЙ, начиная с PHP 8.3.0 и её крайне не рекомендуется использовать.
ASSERT_CALLBACK | assert.callback | Обратный вызов при провале проверки утверждения. Внимание Данная функциональность объявлена УСТАРЕВШЕЙ, начиная с PHP 8.3.0 и её крайне не рекомендуется использовать.
ASSERT_BAIL | assert.bail | Прервать выполнение при провале проверки утверждения. Внимание Данная функциональность объявлена УСТАРЕВШЕЙ, начиная с PHP 8.3.0 и её крайне не рекомендуется использовать.
ASSERT_EXCEPTION | assert.exception | Выдаёт предупреждение PHP для каждого неудачного утверждения. Внимание Данная функциональность объявлена УСТАРЕВШЕЙ, начиная с PHP 8.3.0 и её крайне не рекомендуется использовать.
ASSERT_WARNING | assert.warning | Выдавать предупреждение PHP в случае провала проверки каждого утверждения Внимание Данная функциональность объявлена УСТАРЕВШЕЙ, начиная с PHP 8.3.0 и её крайне не рекомендуется использовать.
ASSERT_QUIET_EVAL | assert.quiet_eval | Отключить error_reporting во время выполнения проверки утверждения. Внимание Данная функциональность была УДАЛЕНА, начиная с PHP 8.0.0.

Следующие константы доступны только под 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 — Проверяет утверждение
  • 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_parse_quantity — Get interpreted size from ini shorthand syntax
  • ini_restore — Восстанавливает значение настройки конфигурации
  • ini_set — Устанавливает значение настройки конфигурации
  • memory_get_peak_usage — Возвращает пиковое значение объёма памяти, выделенное PHP
  • memory_get_usage — Возвращает количество памяти, выделенное для PHP
  • memory_reset_peak_usage — Сбрасывает пиковое использование памяти
  • php_ini_loaded_file — Получить путь к загруженному файлу php.ini
  • php_ini_scanned_files — Возвращает список .ini-файлов, найденных в дополнительной ini-директории
  • 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_time_limit — Ограничение времени выполнения скрипта
  • sys_get_temp_dir — Возвращает путь к директории временных файлов
  • version_compare — Сравнивает две "стандартизованные" строки с номером версии PHP
  • zend_thread_id — Возвращает уникальный идентификатор текущего потока выполнения
  • zend_version — Получает версию движка Zend


Установка и получение настроек механизма проверки утверждений

  • « Опции PHP/информационные функции
  • assert »
  • PHP Manual
  • Опции PHP/информационные функции
  • Установка и получение настроек механизма проверки утверждений

assert_options

(PHP 4, PHP 5, PHP 7, PHP 8)

assert_options — Установка и получение настроек механизма проверки утверждений

Внимание

Функция объявлена УСТАРЕВШЕЙ, начиная с PHP 8.3.0. Использовать эту функцию крайне не рекомендуется.

Описание

assert_options(int $option, mixed $value = ?): mixed

Задание значений настроек механизма проверки утверждений assert() или получение их текущих значений.

Замечание: Использование assert_options() не рекомендуется в пользу установки и получения php.ini директив zend.assertions и assert.exception с помощью ini_set() и ini_get() соответственно.

Список параметров

option

Настройки механизма проверки утверждений
Настройка | INI-параметр | Значение по умолчанию | Описание
ASSERT_ACTIVE | assert.active | 1 | включение механизма проверки утверждений
ASSERT_EXCEPTION | assert.exception | 1 | выбрасывает AssertionError для каждого неудачного утверждения
ASSERT_WARNING | assert.warning | 1 | вывод предупреждения PHP для каждой неудачной проверки
ASSERT_BAIL | assert.bail | 0 | завершить выполнение в случае неудачной проверки
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | отключить error_reporting во время проверки утверждения. Удалено начиная с PHP 8.0.0.
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
До PHP 8.0.0 утверждение, которое передавалось в функцию assert(), но только если утверждение задано в виде строки. (Если утверждение является булевым условием, этот параметр будет пустой строкой). Начиная с PHP 8.0.0, этот параметр всегда null.
description
Описание, которое было передано в assert().
Передача пустой строки в value сбрасывает assert callback.

Возвращаемые значения

Возвращает исходное значение настройки.

Ошибки

Функция выбрасывает ValueError, если параметр option не является допустимой опцией.

Список изменений

Версия | Описание
8.3.0 | Функция assert_option() объявлена устаревшей.
8.0.0 | Если параметр option не является допустимой опцией, теперь выбрасывается ошибка ValueError; ранее возвращалось значение 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() - Проверяет утверждение


Проверяет утверждение

  • « assert_options
  • cli_get_process_title »
  • PHP Manual
  • Опции PHP/информационные функции
  • Проверяет утверждение

assert

(PHP 4, PHP 5, PHP 7, PHP 8)

assert — Проверяет утверждение

Описание

assert(mixed $assertion, Throwable|string|null $description = null): bool

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

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

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

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

Поведение конструкции assert() определяется следующими настройками INI:

Опции настройки конструкции assert
Имя | По умолчанию | Описание | Список изменений
zend.assertions 1
  • 1: генерирует и выполняет код (режим разработки)
  • 0: генерирует код, но перепрыгивает через него во время выполнения
  • -1: не генерирует код (рабочий режим)
assert.active | true | Если false, assert() не проверяет ожидание и возвращает true, безоговорочно.
assert.callback null Определяемая пользователем функция, вызываемая в случае неудачной проверки утверждения. Её сигнатура должна быть следующей:
assert_callback(
string $file,
int $line,
null $assertion,
string $description = ?
): void
 До PHP 8.0.0 сигнатура callback-функции должна быть:
assert_callback(
string $file,
int $line,
string $assertion,
string $description = ?
): void
assert.exception | true | Если true, будет выброшена ошибка AssertionError в случае неудачной проверки утверждения.
assert.bail | false | Если true, выполнение PHP-скрипта прервётся в случае неудачной проверки утверждении.
assert.warning | true | Если true, будет выдана ошибка уровня E_WARNING в случае неудачной проверки утверждения. Эта INI-настройка неэффективна, если включена assert.exception.
Опции, начинающиеся с assert., могут быть настроены с помощью функции assert_options(). Однако это не рекомендуется.

Список параметров

assertion

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

Внимание

До версии PHP 8.0.0, если параметр assertion представлял собой строку (string), он интерпретировался как PHP-код и выполнялся с помощью функции eval(). Эта строка передавалась в callback-функцию в качестве третьего аргумента. Это поведение УСТАРЕЛО в PHP 7.2.0 и УДАЛЕНО в PHP 8.0.0.

description

Если параметр description является экземпляром класса Throwable, он будет выброшен только в том случае, если проверка утверждения assertion не удастся.

Замечание:

Начиная с PHP 8.0.0, это делается до вызова потенциально определённой callback-функции утверждения.

Замечание:

Начиная с PHP 8.0.0, объект (object) будет выброшен независимо от конфигурации параметра assert.exception.

Замечание:

Начиная с PHP 8.0.0, параметр assert.bail не имеет никакого эффекта в этом случае.

Если параметр description является строкой (string), это сообщение будет использоваться в случае выбрасывания исключения или предупреждения. Необязательное описание, которое будет включено в сообщение, если проверка утверждения assertion не удастся.

Если параметр description опущен. Во время компиляции создаётся описание по умолчанию, равное исходному коду для вызова assert().

Возвращаемые значения

Возвращает false, если проверка провалена, true в противном случае.

Список изменений

Версия | Описание
8.0.0 | assert() больше не будет оценивать строковые аргументы, вместо этого они будут рассматриваться как любой другой аргумент. Вместо assert($a == $b) следует использовать assert('$a == $b'). Директива assert.quiet_eval php.ini и константа ASSERT_QUIET_EVAL также были удалены, поскольку они больше не будут иметь никакого эффекта.
8.0.0 | Если параметр description является экземпляром класса Throwable, объект выбрасывается в случае неудачной проверки утверждения, независимо от значения assert.exception.
8.0.0 | Если параметр description является экземпляром класса Throwable, пользовательская callback-функция не вызывается, даже если она установлена.
8.0.0 | Объявление функции с именем assert() внутри пространства имён больше не допускается и выдаёт ошибку уровня E_COMPILE_ERROR.
7.3.0 | Объявление функции assert() внутри пространства имён устарело. Такое объявление теперь выдаёт ошибку уровня E_DEPRECATED.
7.2.0 | Использование строки (string) в качестве assertion устарело. Теперь оно выдаёт ошибку уровня E_DEPRECATED, когда значение и assert.active и zend.assertions равно 1.

Примеры

Ожидания

<?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

Пример #1 Ожидания при использовании пользовательского исключения

<?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

Оцениваемые утверждения кода (только для PHP 7)

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

Пример #2 Обработка неудачной проверки утверждения с помощью пользовательского обработчика

<?php
// Активируйте утверждение и отключите error_reporting
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');

// Создайте утверждение, которое должно потерпеть неудачу
$array = [];
assert('count($array);');
?>

Результат выполнения данного примера в PHP 7.2:

Deprecated: assert(): Calling assert() with a string argument is deprecated in test.php on line 21
<hr>Утверждение не выполнено:
        Файл 'test.php'<br />
        Строка '21'<br />
        Код 'count($array);'<br /><hr />

Результат выполнения данного примера в PHP 7.1:

<hr>Утверждение не выполнено:
        Файл 'test.php'<br />
        Строка '21'<br />
        Код 'count($array);'<br /><hr />

Пример #3 Использование пользовательского обработчика для вывода описания

<?php
// Активируйте утверждение и отключите error_reporting
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', 'Два меньше, чем один');
?>

Результат выполнения данного примера в PHP 7.2:

Deprecated: assert(): Calling assert() with a string argument is deprecated in test.php on line 21
Утверждение не выполнено в test.php:21: 2 < 1

Deprecated: assert(): Calling assert() with a string argument is deprecated in test.php on line 22
Утверждение не выполнено в test.php:22: 2 < 1: Два меньше, чем один

Результат выполнения данного примера в PHP 7.1:

Утверждение не выполнено в test.php:21: 2 < 1
Утверждение не выполнено в test.php:22: 2 < 1: Два меньше, чем один

Смотрите также

  • assert_options() - Установка и получение настроек механизма проверки утверждений


Возвращает заголовок текущего процесса

  • « assert
  • cli_set_process_title »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает заголовок текущего процесса

cli_get_process_title

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

cli_get_process_title — Возвращает заголовок текущего процесса

Описание

cli_get_process_title(): ?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, PHP 8)

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() - Возвращает заголовок текущего процесса


Загружает модуль PHP во время выполнения

  • « cli_set_process_title
  • extension_loaded »
  • PHP Manual
  • Опции PHP/информационные функции
  • Загружает модуль PHP во время выполнения

dl

(PHP 4, PHP 5, PHP 7, PHP 8)

dl — Загружает модуль PHP во время выполнения

Описание

dl(string $extension_filename): bool

Загружает модуль PHP, заданный аргументом extension_filename.

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

Внимание

Функция доступна только для CLI и встроенного SAPI, а также для CGI SAPI при запуске из командной строки.

Список параметров

extension_filename

Аргумент содержит только имя файла модуля, который требуется загрузить. Это имя зависит от платформы. Например, модуль 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);
}
?>

Примечания

Замечание:

dl() чувствительна к регистру на Unix-платформах.

Смотрите также

  • Директивы загрузки модулей
  • extension_loaded() - Определяет, загружен ли модуль


Определяет, загружен ли модуль

  • « dl
  • gc_collect_cycles »
  • PHP Manual
  • Опции PHP/информационные функции
  • Определяет, загружен ли модуль

extension_loaded

(PHP 4, PHP 5, PHP 7, PHP 8)

extension_loaded — Определяет, загружен ли модуль

Описание

extension_loaded(string $extension): bool

Определяет, загружен ли указанный модуль.

Список параметров

extension

Имя модуля. Этот параметр регистронезависимый.

Чтобы посмотреть все имена модулей, воспользуйтесь функцией phpinfo(). Если вы работаете с CGI- или CLI-версией PHP, используйте параметр -m для отображения списка доступных модулей:

$ php -m
[PHP Modules]
xml
tokenizer
standard
sockets
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

Возвращаемые значения

Возвращает true, если модуль с заданным именем extension загружен или 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, PHP 8)

gc_collect_cycles — Принудительный запуск сборщика мусора

Описание

gc_collect_cycles(): int

Явным образом запускает механизм поиска циклических ссылок.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число найденных ссылок.

Смотрите также

  • Сборка мусора


Отключает сборщик циклических ссылок

  • « gc_collect_cycles
  • gc_enable »
  • PHP Manual
  • Опции PHP/информационные функции
  • Отключает сборщик циклических ссылок

gc_disable

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gc_disable — Отключает сборщик циклических ссылок

Описание

gc_disable(): void

Отключает сборщик циклических ссылок, путём установки значения zend.enable_gc в 0.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • Сборка мусора


Включает сборщик циклических ссылок

  • « gc_disable
  • gc_enabled »
  • PHP Manual
  • Опции PHP/информационные функции
  • Включает сборщик циклических ссылок

gc_enable

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gc_enable — Включает сборщик циклических ссылок

Описание

gc_enable(): void

Включает сборщик циклических ссылок, устанавливая zend.enable_gc в 1.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • Сборка мусора


Возвращает текущее состояние сборщика циклических ссылок

  • « gc_enable
  • gc_mem_caches »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает текущее состояние сборщика циклических ссылок

gc_enabled

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

gc_enabled — Возвращает текущее состояние сборщика циклических ссылок

Описание

gc_enabled(): 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, PHP 8)

gc_mem_caches — Освобождает память, используемую менеджером памяти Zend Engine

Описание

gc_mem_caches(): int

Освобождает память, используемую менеджером памяти Zend Engine.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество освобождённых байт.

Смотрите также

  • Сборка мусора


Возвращает информацию о текущем статусе сборщика мусора

  • « gc_mem_caches
  • get_cfg_var »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает информацию о текущем статусе сборщика мусора

gc_status

(PHP 7 >= 7.3.0, PHP 8)

gc_status — Возвращает информацию о текущем статусе сборщика мусора

Описание

gc_status(): 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, PHP 8)

get_cfg_var — Извлекает значение настройки конфигурации PHP

Описание

get_cfg_var(string $option): string|array|false

Извлекает значение настройки конфигурации PHP option.

Функция не вернёт никакой информации, заданной при сборке PHP или указанной в конфигурационном файле Apache.

Чтобы проверить, что система использует файл конфигурации, попробуйте получить значение настройки конфигурации cfg_file_path. Если эта настройка доступна, значит используется файл конфигурации.

Список параметров

option

Имя настройки конфигурации.

Возвращаемые значения

Возвращает текущее значение настройки конфигурации PHP option или false в случае возникновения ошибки.

Смотрите также

  • 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, PHP 8)

get_current_user — Получает имя владельца текущего скрипта PHP

Описание

get_current_user(): 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, PHP 8)

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
        )

)

Возвращаемые значения

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

Примеры

Пример #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() - Проверяет существование указанной именованной константы
  • constant() - Возвращает значение константы
  • 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, PHP 8)

get_extension_funcs — Возвращает массив имён функций модуля

Описание

get_extension_funcs(string $extension): array|false

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

Список параметров

extension

Имя модуля.

Замечание:

Значение этого аргумента должно задаваться в нижнем регистре.

Возвращаемые значения

Возвращает массив имён функций или false, если extension не является допустимым модулем.

Примеры

Пример #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
)

Смотрите также

  • 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, PHP 8)

get_include_path — Получение текущего значения настройки конфигурации include_path

Описание

get_include_path(): string|false

Получает значение настройки конфигурации include_path.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь к файлу в виде строки или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

get_included_files — Возвращает массив имён включённых в скрипт файлов

Описание

get_included_files(): 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, PHP 8)

get_loaded_extensions — Возвращает массив имён всех скомпилированных и загруженных модулей

Описание

get_loaded_extensions(bool $zend_extensions = false): array

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

Список параметров

zend_extensions

Возвращать только модули Zend или обычные модули, такие как mysqli. По умолчанию false (возврат обычных модулей).

Возвращаемые значения

Возвращает индексированный массив имён всех модулей.

Примеры

Пример #1 Пример использования get_loaded_extensions()

<?php
print_r(get_loaded_extensions());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Core
    [1] => date
    [2] => libxml
    [3] => pcre
    [4] => sqlite3
    [5] => zlib
    [6] => ctype
    [7] => dom
    [8] => fileinfo
    [9] => filter
    [10] => hash
    [11] => json
    [12] => mbstring
    [13] => SPL
    [14] => PDO
    [15] => session
    [16] => posix
    [17] => Reflection
    [18] => standard
    [19] => SimpleXML
    [20] => pdo_sqlite
    [21] => Phar
    [22] => tokenizer
    [23] => xml
    [24] => xmlreader
    [25] => xmlwriter
    [26] => gmp
    [27] => iconv
    [28] => intl
    [29] => bcmath
    [30] => sodium
    [31] => Zend OPcache
)

Смотрите также

  • 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 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

get_magic_quotes_gpc(): false

Всегда возвращает false.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Всегда возвращает false.

Список изменений

Версия | Описание
7.4.0 | Функция объявлена устаревшей.

Смотрите также

  • 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 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

get_magic_quotes_runtime(): false

Всегда возвращает false.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Всегда возвращает false.

Список изменений

Версия | Описание
7.4.0 | Функция объявлена устаревшей.

Смотрите также

  • get_magic_quotes_gpc() - Получение текущего значения настройки конфигурации magic_quotes_gpc


Псевдоним get_included_files

  • « get_magic_quotes_runtime
  • get_resources »
  • PHP Manual
  • Опции PHP/информационные функции
  • Псевдоним get_included_files

get_required_files

(PHP 4, PHP 5, PHP 7, PHP 8)

get_required_files — Псевдоним get_included_files()

Описание

Функция является псевдонимом: get_included_files().


Возвращает активные ресурсы

  • « get_required_files
  • getenv »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает активные ресурсы

get_resources

(PHP 7, PHP 8)

get_resources — Возвращает активные ресурсы

Описание

get_resources(?string $type = null): array

Возвращает массив всех текущих активных ресурсов (resource), опционально отфильтрованный по типу ресурса.

Замечание: Функция предназначена для отладки и тестирования. Функцию не следует использовать в рабочем окружении, особенно для доступа или даже управления ресурсами, которые обычно недоступны (например, базовый ресурс потока экземпляров SplFileObject).

Список параметров

type

Если задано, то get_resources() вернёт только ресурсы указанного типа. Список доступных типов ресурсов.

Если в качестве типа задана строка Unknown, то будут возвращены только ресурсы неизвестного типа.

Если не задано, то будут возвращены все ресурсы.

Возвращаемые значения

Возвращает массив текущих активных ресурсов, проиндексированных по номеру ресурса.

Список изменений

Версия | Описание
8.0.0 | type теперь допускает значение null.

Примеры

Пример #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, PHP 8)

getenv — Получает значение одной или всех переменных окружения

Описание

getenv(?string $name = null, bool $local_only = false): string|array|false

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

Список всех переменных окружения можно посмотреть с помощью функции phpinfo(). Многие из этих переменных есть в документе » RFC 3875, по большей части в разделе 4.1, "Request Meta-Variables".

Список параметров

name

Имя переменной в виде строки (string) или null.

local_only

Если установлено значение true, возвращаются только локальные переменные окружения, установленные операционной системой или командой putenv. Это имеет значение только в том случае, если параметр name является строкой (string).

Возвращаемые значения

Возвращает значение переменной окружения name или false, если переменная окружения name не существует. Если name равно null, возвращаются все переменные окружения в виде ассоциативного массива (array).

Список изменений

Версия | Описание
8.0.0 | Параметр name теперь допускает значение null.
7.1.0 | Параметр name теперь может быть опущен для получения ассоциативного массива (array) всех переменных окружения.
7.0.9 | Был добавлен параметр 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');
?>

Примечания

Внимание

Если PHP запущен в SAPI, например как Fast CGI, эта функция будет возвращать значения переменных окружения установленных SAPI, даже если вы использовали putenv() для установки локальной переменной с таким же именем. Используйте параметр local_only для получения установленных локально переменных.

Смотрите также

  • putenv() - Устанавливает значение переменной среды
  • apache_getenv() - Возвращает переменную окружения подпроцесса сервера Apache
  • Суперглобальные переменные


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

  • « getenv
  • getmygid »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает время последней модификации страницы

getlastmod

(PHP 4, PHP 5, PHP 7, PHP 8)

getlastmod — Получает время последней модификации страницы

Описание

getlastmod(): int|false

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

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время последней модификации текущей страницы. Значение является меткой времени Unix, подходящая для функции date(). Функция вернёт false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования getlastmod()

<?php
// Выводит нечто вроде 'Последнее изменение: March 04 1998 20:43:59.'
echo "Последнее изменение: " . date ("F d Y H:i:s.", getlastmod());
?>

Смотрите также

  • date() - Форматирует временную метку Unix
  • 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, PHP 8)

getmygid — Получить GID владельца скрипта PHP

Описание

getmygid(): int|false

Получает идентификатор группы текущего скрипта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает групповой идентификатор текущего скрипта или 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, PHP 8)

getmyinode — Получает значение inode текущего скрипта

Описание

getmyinode(): int|false

Получает 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, PHP 8)

getmypid — Получение ID процесса PHP

Описание

getmypid(): int|false

Получает идентификатор процесса 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, PHP 8)

getmyuid — Получение UID владельца скрипта PHP

Описание

getmyuid(): int|false

Получает идентификатор пользователя текущего скрипта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор пользователя текущего скрипта или 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, PHP 8)

getopt — Получает параметры из списка аргументов командной строки

Описание

getopt(string $short_options, array $long_options = [], int &$rest_index = null): array|false

Анализирует параметры переданные в скрипт.

Список параметров

short_options
Каждый символ в этой строке будет рассматриваться как параметр и сравниваться с символами, переданными в скрипт, перед которыми будет стоять дефис (-). Например, строка параметров "x" распознается, как параметр -x. Допускаются только символы a-z, A-Z и 0-9.
long_options
Массив параметров. Каждый элемент массива будет использоваться как строковый параметр и сравниваться с параметрами, переданными в скрипт, перед которыми будет стоять двойной дефис (--). Например, элемент longopts "opt" будет расшифровываться как --opt.
rest_index
Если задан параметр rest_index, то индекс, на котором остановился разбор, будет записан в него.

Аргумент short_options может содержать следующие элементы:

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

Замечание: Необязательные значения нельзя отделять от других пробелом " ".

Значения массива long_options могут содержать:

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

Замечание:

Форматы short_options и long_options практически совпадают. Различие состоит только в том, что long_options принимает массив параметров (в котором каждый элемент является параметром) в то время, как short_options принимает строку (где параметром является каждый символ).

Возвращаемые значения

Функция вернёт массив пар параметров / аргументов или false в случае возникновения ошибки.

Замечание:

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

Список изменений

Версия | Описание
7.1.0 | Добавлен параметр rest_index.

Примеры

Пример #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() с параметром rest_index

<?php
// Скрипт example.php
$rest_index = null;
$opts = getopt('a:b:', [], $rest_index);
$pos_args = array_slice($argv, $rest_index);
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, PHP 8)

getrusage — Получает информацию об использовании текущего ресурса

Описание

getrusage(int $mode = 0): array|false

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

Список параметров

mode

Если аргумент mode равен 1, getrusage будет вызвана с RUSAGE_CHILDREN.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий данные возвращённые из системного вызова. Имена элементов соответствуют документированным именам полей. Возвращает false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | Добавлен поддержка этой функции в Windows.

Примеры

Пример #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) (микросекунды)
echo $dat["ru_stime.tv_sec"]; // время на системные задачи (system time) (секунды)
?>

Примечания

Замечание:

В Windows getrusage() возвращает только следующее:

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"
  • "ru_majflt" (только если mode - RUSAGE_SELF)
  • "ru_maxrss" (только если mode - RUSAGE_SELF)

Если getrusage() вызвана с mode равным 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, PHP 8)

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, PHP 8)

ini_get_all — Получает все настройки конфигурации

Описание

ini_get_all(?string $extension = null, bool $details = true): array|false

Возвращает все зарегистрированные настройки конфигурации.

Список параметров

extension

Необязательное имя модуля. Если не null и не строка (string) core, функция возвращает только параметры.

details

Выводить детальные сведения о настройках или только текущие значения. По умолчанию true (выводить детальные сведения).

Возвращаемые значения

Возвращает ассоциативный массив с именами директив в качестве ключей. Возвращает false и вызывает ошибку уровня E_WARNING, если extension не существует.

Если details равен true (по умолчанию), в массиве будут содержаться global_value (значение настройки php.ini), local_value (например, заданное с помощью ini_set() или .htaccess) и access (уровень доступа).

Если details равен false, значением массива будет соответствующее текущее значение настройки.

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

Замечание:

Директива может иметь несколько уровней доступа, в этом случае access будет содержать соответствующую битовую маску.

Примеры

Пример #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_all() игнорирует опции типа "массив" такие как pdo.dsn.*.

Смотрите также

  • Как изменить настройки конфигурации
  • ini_get() - Получает значение настройки конфигурации
  • ini_restore() - Восстанавливает значение настройки конфигурации
  • ini_set() - Устанавливает значение настройки конфигурации
  • get_loaded_extensions() - Возвращает массив имён всех скомпилированных и загруженных модулей
  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • ReflectionExtension::getINIEntries() - Получение ini-настроек модуля


Получает значение настройки конфигурации

  • « ini_get_all
  • ini_parse_quantity »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает значение настройки конфигурации

ini_get

(PHP 4, PHP 5, PHP 7, PHP 8)

ini_get — Получает значение настройки конфигурации

Описание

ini_get(string $option): string|false

В случае успешного выполнения возвращает значение настройки конфигурации.

Список параметров

option

Имя настройки конфигурации.

Возвращаемые значения

Возвращает значение настройки конфигурации в виде строки. Для значений 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' доступен
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, а НЕ целочисленный (int) эквивалент этой величины. Попытка использования полученной величины в арифметических операциях не даст желаемого результата. В приведённом выше примере продемонстрировано, как можно перевести сокращённую запись в число байт.

Замечание:

ini_get() не может прочесть опции типа "массив", такие как pdo.dsn.*, и возвращает false таких случаях.

Смотрите также

  • get_cfg_var() - Извлекает значение настройки конфигурации PHP
  • ini_get_all() - Получает все настройки конфигурации
  • ini_restore() - Восстанавливает значение настройки конфигурации
  • ini_set() - Устанавливает значение настройки конфигурации


Get interpreted size from ini shorthand syntax

  • « ini_get
  • ini_restore »
  • PHP Manual
  • Опции PHP/информационные функции
  • Get interpreted size from ini shorthand syntax

ini_parse_quantity

(PHP 8 >= 8.2.0)

ini_parse_quantity — Get interpreted size from ini shorthand syntax

Описание

ini_parse_quantity(string $shorthand): int

В случае успешного выполнения возвращает интерпретируемый размер в байтах из сокращений байтовых значений.

Список параметров

shorthand

Сокращение байтовых значений для разбора, должно быть числом, за которым следует необязательный множитель. Поддерживаются следующие множители: k/K (1024), m/M (1048576), g/G (1073741824). Число может быть десятичным, шестнадцатеричным (с префиксом 0x или 0X), восьмеричным (с префиксом 0o, 0O или 0) или двоичным (с префиксом 0b или 0B).

Возвращаемые значения

Возвращает интерпретируемый размер в байтах в виде целого числа (int).

Ошибки

Если значение не может быть разобрано или используется недопустимый множитель, то выдаётся ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования ini_parse_quantity()

<?php

var_dump(ini_parse_quantity('1024'));
var_dump(ini_parse_quantity('1024M'));
var_dump(ini_parse_quantity('512K'));
var_dump(ini_parse_quantity('0xFFk'));
var_dump(ini_parse_quantity('0b1010k'));
var_dump(ini_parse_quantity('0o1024'));
var_dump(ini_parse_quantity('01024'));
var_dump(ini_parse_quantity('Foobar'));
var_dump(ini_parse_quantity('10F'));

?>

Результатом выполнения данного примера будет что-то подобное:

int(1024)
int(1073741824)
int(524288)
int(261120)
int(10240)
int(532)
int(532)

Warning: Invalid quantity "Foobar": no valid leading digits, interpreting as "0" for backwards compatibility
int(0)

Warning: Invalid quantity "10F": unknown multiplier "F", interpreting as "10" for backwards compatibility
int(10)

Смотрите также

  • ini_get() - Получает значение настройки конфигурации


Восстанавливает значение настройки конфигурации

  • « ini_parse_quantity
  • ini_set »
  • PHP Manual
  • Опции PHP/информационные функции
  • Восстанавливает значение настройки конфигурации

ini_restore

(PHP 4, PHP 5, PHP 7, PHP 8)

ini_restore — Восстанавливает значение настройки конфигурации

Описание

ini_restore(string $option): void

Восстанавливает исходное значение настройки конфигурации.

Список параметров

option

Имя настройки.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ini_restore()

<?php
$setting = 'html_errors';

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;
?>

Результат выполнения данного примера:

Текущее значение настройки 'html_errors': 1
Новое значение настройки 'html_errors': 0
Исходное значение настройки 'html_errors': 1

Смотрите также

  • ini_get() - Получает значение настройки конфигурации
  • ini_get_all() - Получает все настройки конфигурации
  • ini_set() - Устанавливает значение настройки конфигурации


Устанавливает значение настройки конфигурации

  • « ini_restore
  • memory_get_peak_usage »
  • PHP Manual
  • Опции PHP/информационные функции
  • Устанавливает значение настройки конфигурации

ini_set

(PHP 4, PHP 5, PHP 7, PHP 8)

ini_set — Устанавливает значение настройки конфигурации

Описание

ini_set(string $option, string|int|float|bool|null $value): string|false

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

Список параметров

option

Не все доступные настройки можно изменять функцией ini_set(). Список доступных настроек приведён в приложении.

value

Новое значение настройки.

Возвращаемые значения

В случае успешного выполнения возвращает старое значение или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр value теперь принимает любой скалярный тип (включая null). Ранее допускались только строковые (string) значения.

Примеры

Пример #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() - Восстанавливает значение настройки конфигурации
  • Как изменить настройки конфигурации


Возвращает пиковое значение объёма памяти, выделенное PHP

  • « ini_set
  • memory_get_usage »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает пиковое значение объёма памяти, выделенное PHP

memory_get_peak_usage

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

memory_get_peak_usage — Возвращает пиковое значение объёма памяти, выделенное PHP

Описание

memory_get_peak_usage(bool $real_usage = false): int

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

Список параметров

real_usage

Передача true в качестве этого аргумента позволяет получить реальный объем памяти, выделенный системой. Если аргумент не задан или равен false, возвращаются сведения только о памяти, выделенной функцией emalloc().

Возвращаемые значения

Возвращает максимальный объем памяти в байтах.

Смотрите также

  • memory_get_usage() - Возвращает количество памяти, выделенное для PHP
  • memory_reset_peak_usage() - Сбрасывает пиковое использование памяти
  • memory_limit


Возвращает количество памяти, выделенное для PHP

  • « memory_get_peak_usage
  • memory_reset_peak_usage »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает количество памяти, выделенное для PHP

memory_get_usage

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

memory_get_usage — Возвращает количество памяти, выделенное для PHP

Описание

memory_get_usage(bool $real_usage = false): int

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

Список параметров

real_usage

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

Замечание:

PHP не отслеживает память, которая выделялась не emalloc()

Возвращаемые значения

Возвращает количество памяти в байтах.

Примеры

Пример #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


Сбрасывает пиковое использование памяти

  • « memory_get_usage
  • php_ini_loaded_file »
  • PHP Manual
  • Опции PHP/информационные функции
  • Сбрасывает пиковое использование памяти

memory_reset_peak_usage

(PHP 8 >= 8.2.0)

memory_reset_peak_usage — Сбрасывает пиковое использование памяти

Описание

memory_reset_peak_usage(): void

Сбрасывает пиковое использование памяти, возвращаемое функцией memory_get_peak_usage().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования memory_reset_peak_usage()

<?php

var_dump(memory_get_peak_usage());

$a = str_repeat("Hello", 424242);
var_dump(memory_get_peak_usage());

unset($a);
memory_reset_peak_usage();

$a = str_repeat("Hello", 2424);
var_dump(memory_get_peak_usage());

?>

Результатом выполнения данного примера будет что-то подобное:

int(422440)
int(2508672)
int(399208)

Смотрите также

  • memory_get_peak_usage() - Возвращает пиковое значение объёма памяти, выделенное PHP


Получить путь к загруженному файлу php.ini

  • « memory_reset_peak_usage
  • php_ini_scanned_files »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получить путь к загруженному файлу php.ini

php_ini_loaded_file

(PHP 5 >= 5.2.4, PHP 7, PHP 8)

php_ini_loaded_file — Получить путь к загруженному файлу php.ini

Описание

php_ini_loaded_file(): string|false

Проверяет, загружен ли файл 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_sapi_name »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает список .ini-файлов, найденных в дополнительной ini-директории

php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

php_ini_scanned_files — Возвращает список .ini-файлов, найденных в дополнительной ini-директории

Описание

php_ini_scanned_files(): string|false

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


Возвращает тип интерфейса между веб-сервером и PHP

  • « php_ini_scanned_files
  • php_uname »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает тип интерфейса между веб-сервером и PHP

php_sapi_name

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

php_sapi_name — Возвращает тип интерфейса между веб-сервером и PHP

Описание

php_sapi_name(): string|false

Возвращает строку в нижнем регистре, содержащую описание типа интерфейса (Server API, SAPI), который использует PHP. Например, в CLI PHP эта строка будет "cli", в то время как с Apache может быть несколько разных значений в зависимости от конкретного SAPI. Возможные значение приведены ниже.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает тип интерфейса в виде строки в нижнем регистре или false в случае возникновения ошибки.

Возможные возвращаемые значения (список может быть неполным): apache, apache2handler, cgi (до PHP 5.3), cgi-fcgi, cli, cli-server, embed, fpm-fcgi, litespeed, phpdbg.

Примеры

Пример #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.

Смотрите также

  • PHP_SAPI


Возвращает информацию об операционной системе, на которой запущен PHP

  • « php_sapi_name
  • phpcredits »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает информацию об операционной системе, на которой запущен PHP

php_uname

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

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, PHP 8)

phpcredits — Выводит список разработчиков PHP

Описание

phpcredits(int $flags = CREDITS_ALL): true

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

Список параметров

flags

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

Предопределённые флаги 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.

Примеры

Пример #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
  • phpinfo() - Выводит информацию о текущей конфигурации PHP


Выводит информацию о текущей конфигурации PHP

  • « phpcredits
  • phpversion »
  • PHP Manual
  • Опции PHP/информационные функции
  • Выводит информацию о текущей конфигурации PHP

phpinfo

(PHP 4, PHP 5, PHP 7, PHP 8)

phpinfo — Выводит информацию о текущей конфигурации PHP

Описание

phpinfo(int $flags = INFO_ALL): true

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

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

phpinfo() также используется в целях отладки, так как содержит все данные EGPCS (Environment, GET, POST, Cookie, Server).

Список параметров

flags

Вывод функции можно настраивать, передавая битовую маску из одной или более приведённых ниже констант (constants). Эта маска передаётся в качестве необязательного аргумента flags. Отдельные константы или битовые значения можно комбинировать с помощью побитового оператора ИЛИ.

Настройки 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.

Примеры

Пример #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
  • ini_get() - Получает значение настройки конфигурации
  • ini_set() - Устанавливает значение настройки конфигурации
  • get_loaded_extensions() - Возвращает массив имён всех скомпилированных и загруженных модулей
  • Предопределённые переменные


Получает текущую версию PHP

  • « phpinfo
  • putenv »
  • PHP Manual
  • Опции PHP/информационные функции
  • Получает текущую версию PHP

phpversion

(PHP 4, PHP 5, PHP 7, PHP 8)

phpversion — Получает текущую версию PHP

Описание

phpversion(?string $extension = null): string|false

Возвращает строку с номером версии текущего PHP-интерпретатора или модуля.

Список параметров

extension

Необязательное имя модуля.

Возвращаемые значения

Возвращает текущую версию PHP в виде строки (string). Если в параметре extension указано строковое значение (string), phpversion() вернёт версию этого модуля или false, если информации о версии нет или модуль в данный момент не включён.

Список изменений

Версия | Описание
8.0.0 | extension теперь допускает значение null.

Примеры

Пример #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.

Смотрите также

  • Константы PHP_VERSION
  • version_compare() - Сравнивает две "стандартизованные" строки с номером версии PHP
  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • phpcredits() - Выводит список разработчиков PHP
  • zend_version() - Получает версию движка Zend


Устанавливает значение переменной среды

  • « phpversion
  • restore_include_path »
  • PHP Manual
  • Опции PHP/информационные функции
  • Устанавливает значение переменной среды

putenv

(PHP 4, PHP 5, PHP 7, PHP 8)

putenv — Устанавливает значение переменной среды

Описание

putenv(string $assignment): bool

Добавляет assignment в переменные окружения сервера. Переменная будет существовать только на время выполнения текущего запроса. По его завершении переменная вернётся в изначальное состояние.

Список параметров

assignment

Установка вида "FOO=BAR"

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Установка значения переменной среды

<?php
putenv("UNIQID=$uniqid");
?>

Смотрите также

  • 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

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

restore_include_path(): 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_time_limit »
  • PHP Manual
  • Опции PHP/информационные функции
  • Устанавливает значение настройки конфигурации include_path

set_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

set_include_path — Устанавливает значение настройки конфигурации include_path

Описание

set_include_path(string $include_path): string|false

Задаёт значение настройки конфигурации include_path на время выполнения скрипта.

Список параметров

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


Ограничение времени выполнения скрипта

  • « set_include_path
  • sys_get_temp_dir »
  • PHP Manual
  • Опции PHP/информационные функции
  • Ограничение времени выполнения скрипта

set_time_limit

(PHP 4, PHP 5, PHP 7, PHP 8)

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.

Примечания

Замечание:

Функция 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, PHP 8)

sys_get_temp_dir — Возвращает путь к директории временных файлов

Описание

sys_get_temp_dir(): 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_thread_id »
  • PHP Manual
  • Опции PHP/информационные функции
  • Сравнивает две "стандартизованные" строки с номером версии PHP

version_compare

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

version_compare — Сравнивает две "стандартизованные" строки с номером версии PHP

Описание

version_compare(string $version1, string $version2, ?string $operator = null): int|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 функция вернёт 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, если указанная функция определена


Возвращает уникальный идентификатор текущего потока выполнения

  • « version_compare
  • zend_version »
  • PHP Manual
  • Опции PHP/информационные функции
  • Возвращает уникальный идентификатор текущего потока выполнения

zend_thread_id

(PHP 5, PHP 7, PHP 8)

zend_thread_id — Возвращает уникальный идентификатор текущего потока выполнения

Описание

zend_thread_id(): 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, PHP 8)

zend_version — Получает версию движка Zend

Описание

zend_version(): string

Возвращает строку с номером версии работающего в данный момент ядра Zend Engine.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер версии Zend Engine в виде строки.

Примеры

Пример #1 Пример использования zend_version()

<?php
echo "Версия движка Zend: " . zend_version();
?>

Результатом выполнения данного примера будет что-то подобное:

Версия движка Zend: 2.2.0

Смотрите также

  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • phpcredits() - Выводит список разработчиков PHP
  • 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 8.1.0
phpdbg.path |  | 6 | Удалено, начиная с PHP 8.1.0

Краткое разъяснение конфигурационных директив.

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 (int)
Удалено в PHP 7.3.0.
PHPDBG_METHOD (int)
Удалено в PHP 7.3.0.
PHPDBG_LINENO (int)
Удалено в PHP 7.3.0.
PHPDBG_FUNC (int)
Удалено в PHP 7.3.0.
PHPDBG_COLOR_PROMPT (int)
PHPDBG_COLOR_NOTICE (int)
PHPDBG_COLOR_ERROR (int)


Функции 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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

phpdbg_break_next — Добавить точку прерывания на следующий опкод

Описание

phpdbg_break_next(): 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, PHP 8)

phpdbg_clear — Убрать все точки прерывания

Описание

phpdbg_clear(): 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, PHP 8)

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, PHP 8)

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, PHP 8)

phpdbg_exec — Попытаться задать контекст исполнения

Описание

phpdbg_exec(string $context): string|bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Возвращаемые значения

Предыдущий контекст исполнения, если он был задан. true, если контекст исполнения ранее не был задан. Если запрос на установку контекста завершится с ошибкой, то будет возвращено false и вызвана ошибка уровня E_WARNING.


Описание

  • « phpdbg_exec
  • phpdbg_prompt »
  • PHP Manual
  • Функции phpdbg
  • Описание

phpdbg_get_executable

(PHP 7, PHP 8)

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, PHP 8)

phpdbg_prompt — Установить приглашение командной строки

Описание

phpdbg_prompt(string $string): void

Устанавливает приглашение командной строки как задано в string.

Список параметров

string

Строка, которая будет использована как приглашение.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • phpdbg_color() - Задать цвет для элемента


Описание

  • « phpdbg_prompt
  • runkit7 »
  • PHP Manual
  • Функции phpdbg
  • Описание

phpdbg_start_oplog

(PHP 7, PHP 8)

phpdbg_start_oplog —

Описание

phpdbg_start_oplog(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


runkit7

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции runkit7
    • runkit7_constant_add — Аналогичен define(), но также позволяет определить константу класса
    • runkit7_constant_redefine — Переопределяет уже определённую константу
    • runkit7_constant_remove — Удаляет уже определённую константу
    • runkit7_function_add — Добавляет новую функцию, функция аналогична create_function
    • runkit7_function_copy — Копирует функцию в новое имя функции
    • runkit7_function_redefine — Заменяет определение функции новой реализацией
    • runkit7_function_remove — Удаляет определение функции
    • runkit7_function_rename — Изменяет имя функции
    • runkit7_import — Обрабатывает функцию импорта файла PHP и определения классов, при необходимости перезаписывая
    • runkit7_method_add — Динамически добавляет новый метод в заданный класс
    • runkit7_method_copy — Копирует метод из одного класса в другой
    • runkit7_method_redefine — Динамически изменяет код заданного метода
    • runkit7_method_remove — Динамически удаляет заданный метод
    • runkit7_method_rename — Динамически изменяет имя заданного метода
    • runkit7_object_id — Возвращает дескриптор целочисленного объекта для данного объекта
    • runkit7_superglobals — Возвращает числовой индексированный массив зарегистрированных суперглобальных переменных
    • runkit7_zval_inspect — Возвращает информацию о переданном значении с типами данных, количеством ссылок и так далее


Введение

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

Этот пакет является форком пакета » runkit, обеспечивающего поддержку PHP 7.


Требования

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


Установка

Этот модуль » PECL не поставляется вместе с PHP.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/runkit7.

Бинарные файлы 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, но может работать в контекстах конфигурации perdir в зависимости от вашего SAPI.

Пример #1 Пользовательские суперглобальные файлы с runkit.superglobal=_FOO,_BAR в php.ini

<?php
function show_values() {
echo "Foo is $_FOO\n";
echo "Bar is $_BAR\n";
echo "Baz is $_BAZ\n";
}

$_FOO = 'foo';
$_BAR = 'bar';
$_BAZ = 'baz';

/* Отобразит foo и bar, но не baz */
show_values();
?>
runkit.internal_override bool
Позволяет изменять/переименовывать/удалять внутренние функции.


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

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

RUNKIT7_IMPORT_FUNCTIONS (int)
runkit7_import() флаг, указывающий, что нормальные функции должны быть импортированы из указанного файла.
RUNKIT7_IMPORT_CLASS_METHODS (int)
runkit7_import() флаг, указывающий, что методы класса должны быть импортированы из указанного файла.
RUNKIT7_IMPORT_CLASS_CONSTS (int)
runkit7_import() флаг, указывающий, что константы класса должны быть импортированы из указанного файла.
RUNKIT7_IMPORT_CLASS_PROPS (int)
runkit7_import() флаг, указывающий, что стандартные свойства класса должны быть импортированы из указанного файла.
RUNKIT7_IMPORT_CLASS_STATIC_PROPS (int)
runkit7_import() флаг, указывающий, что статические свойства класса должны быть импортированы из указанного файла. Доступно с Runkit 1.0.1.
RUNKIT7_IMPORT_CLASSES (int)
runkit7_import() флаг, представляющий побитовое значение ИЛИ константы RUNKIT7_IMPORT_CLASS_*.
RUNKIT7_IMPORT_OVERRIDE (int)
runkit7_import() флаг, указывающий, что если какие-либо импортированные функции, методы, константы или свойства уже существуют, они должны быть заменены новыми определениями. Если этот флаг не установлен, то любые импортированные определения, которые уже существуют, будут отброшены.
RUNKIT7_ACC_RETURN_REFERENCE (int)
Включите этот флаг, чтобы создаваемая или повторно объявленная функция или метод возвращали ссылку.
RUNKIT7_ACC_PUBLIC (int)
Флаг для runkit7_method_add() и runkit7_method_redefine(), чтобы сделать метод публичным.
RUNKIT7_ACC_PROTECTED (int)
Флаг для runkit7_method_add() and runkit7_method_redefine(), чтобы сделать метод защищённым.
RUNKIT7_ACC_PRIVATE (int)
Флаг для runkit7_method_add() and runkit7_method_redefine(), чтобы сделать метод приватным.
RUNKIT7_ACC_STATIC (int)
Флаг для runkit7_method_add() and runkit7_method_redefine(), чтобы сделать метод статичным.
RUNKIT7_FEATURE_MANIPULATION (int)
Равен 1, если включена манипуляция во время выполнения и 0 в противном случае.
RUNKIT7_FEATURE_SUPERGLOBALS (int)
Равен 1, если пользовательские суперглобальные переменные включены и 0 в противном случае.
RUNKIT7_FEATURE_SANDBOX (int)
Всегда 0, нереально реализовать функцию песочницы в php 7.


Функции runkit7

Содержание

  • runkit7_constant_add — Аналогичен define(), но также позволяет определить константу класса
  • runkit7_constant_redefine — Переопределяет уже определённую константу
  • runkit7_constant_remove — Удаляет уже определённую константу
  • runkit7_function_add — Добавляет новую функцию, функция аналогична create_function
  • runkit7_function_copy — Копирует функцию в новое имя функции
  • runkit7_function_redefine — Заменяет определение функции новой реализацией
  • runkit7_function_remove — Удаляет определение функции
  • runkit7_function_rename — Изменяет имя функции
  • runkit7_import — Обрабатывает функцию импорта файла PHP и определения классов, при необходимости перезаписывая
  • runkit7_method_add — Динамически добавляет новый метод в заданный класс
  • runkit7_method_copy — Копирует метод из одного класса в другой
  • runkit7_method_redefine — Динамически изменяет код заданного метода
  • runkit7_method_remove — Динамически удаляет заданный метод
  • runkit7_method_rename — Динамически изменяет имя заданного метода
  • runkit7_object_id — Возвращает дескриптор целочисленного объекта для данного объекта
  • runkit7_superglobals — Возвращает числовой индексированный массив зарегистрированных суперглобальных переменных
  • runkit7_zval_inspect — Возвращает информацию о переданном значении с типами данных, количеством ссылок и так далее


Аналогичен define(), но также позволяет определить константу класса

  • « Функции runkit7
  • runkit7_constant_redefine »
  • PHP Manual
  • Функции runkit7
  • Аналогичен define(), но также позволяет определить константу класса

runkit7_constant_add

(PECL runkit7 >= Unknown)

runkit7_constant_add — Аналогичен define(), но также позволяет определить константу класса

Описание

runkit7_constant_add(string $constant_name, mixed $value, int $newVisibility = ?): bool

Список параметров

constant_name

Имя объявляемой константы. Либо строка для обозначения глобальной константы, либо classname::constname для определения константы класса.

value

Значение константы (NULL, Bool, Long, Double, String, Array или Resource).

newVisibility

Видимость константы для констант класса. По умолчанию общедоступный. Одна из констант RUNKIT7_ACC_*.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • define() - Определяет именованную константу
  • runkit7_constant_redefine() - Переопределяет уже определённую константу
  • runkit7_constant_remove() - Удаляет уже определённую константу


Переопределяет уже определённую константу

  • « runkit7_constant_add
  • runkit7_constant_remove »
  • PHP Manual
  • Функции runkit7
  • Переопределяет уже определённую константу

runkit7_constant_redefine

(PECL runkit7 >= Unknown)

runkit7_constant_redefine — Переопределяет уже определённую константу

Описание

runkit7_constant_redefine(string $constant_name, mixed $value, int $new_visibility = ?): bool

Список параметров

constant_name

Константа, которую необходимо переопределить. Либо имя глобальной константы, либо classname::constname для переопределения константы класса.

value

Значение, присваиваемое константе.

new_visibility

Новая видимость константы для констант класса. По умолчанию без изменений. Одна из констант RUNKIT7_ACC_*.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • runkit7_constant_add() - Аналогичен define(), но также позволяет определить константу класса
  • runkit7_constant_remove() - Удаляет уже определённую константу


Удаляет уже определённую константу

  • « runkit7_constant_redefine
  • runkit7_function_add »
  • PHP Manual
  • Функции runkit7
  • Удаляет уже определённую константу

runkit7_constant_remove

(PECL runkit7 >= Unknown)

runkit7_constant_remove — Удаляет уже определённую константу

Описание

runkit7_constant_remove(string $constant_name): bool

Список параметров

constant_name

Константа, которую необходимо удалить. Либо имя глобальной константы, либо classname::constname для удаления константы класса.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • define() - Определяет именованную константу
  • runkit7_constant_add() - Аналогичен define(), но также позволяет определить константу класса
  • runkit7_constant_redefine() - Переопределяет уже определённую константу


Добавляет новую функцию, функция аналогична create_function

  • « runkit7_constant_remove
  • runkit7_function_copy »
  • PHP Manual
  • Функции runkit7
  • Добавляет новую функцию, функция аналогична create_function

runkit7_function_add

(PECL runkit7 >= Unknown)

runkit7_function_add — Добавляет новую функцию, функция аналогична create_function()

Описание

runkit7_function_add(
string $function_name,
string $argument_list,
string $code,
bool $return_by_reference = null,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool
runkit7_function_add(
string $function_name,
Closure $closure,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool

Список параметров

function_name

Имя создаваемой функции.

argument_list

Список аргументов, разделённых запятыми.

code

Код, составляющий функцию.

closure

Замыкание (closure), определяющее функцию.

return_by_reference

Определяет, должна ли функция возвращаться по ссылке.

doc_comment

Документальный комментарий функции.

return_type

Тип возвращаемого значения функции.

is_strict

Определяет, должна ли функция вести себя так, как если бы она была объявлена в файле с strict_types=1.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования runkit7_function_add()

<?php
runkit7_function_add('testme','$a,$b','echo "Значение A - $a\n"; echo "Значение B - $b\n";');
testme(1,2);
?>

Результат выполнения данного примера:

Значение A - 1
Значение B - 2

Смотрите также

  • create_function() - Создаёт функцию динамически, оценивая строку кода
  • runkit7_function_redefine() - Заменяет определение функции новой реализацией
  • runkit7_function_copy() - Копирует функцию в новое имя функции
  • runkit7_function_rename() - Изменяет имя функции
  • runkit7_function_remove() - Удаляет определение функции
  • runkit7_method_add() - Динамически добавляет новый метод в заданный класс


Копирует функцию в новое имя функции

  • « runkit7_function_add
  • runkit7_function_redefine »
  • PHP Manual
  • Функции runkit7
  • Копирует функцию в новое имя функции

runkit7_function_copy

(PECL runkit7 >= Unknown)

runkit7_function_copy — Копирует функцию в новое имя функции

Описание

runkit7_function_copy(string $source_name, string $target_name): bool

Список параметров

source_name

Имя существующей функции.

target_name

Имя новой функции, в которую нужно скопировать определение.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования runkit7_function_copy()

<?php
function original() {
echo "В функции\n";
}
runkit7_function_copy('original','duplicate');
original();
duplicate();
?>

Результат выполнения данного примера:

В функции
В функции

Смотрите также

  • runkit7_function_add() - Добавляет новую функцию, функция аналогична create_function
  • runkit7_function_redefine() - Заменяет определение функции новой реализацией
  • runkit7_function_rename() - Изменяет имя функции
  • runkit7_function_remove() - Удаляет определение функции


Заменяет определение функции новой реализацией

  • « runkit7_function_copy
  • runkit7_function_remove »
  • PHP Manual
  • Функции runkit7
  • Заменяет определение функции новой реализацией

runkit7_function_redefine

(PECL runkit7 >= Unknown)

runkit7_function_redefine — Заменяет определение функции новой реализацией

Описание

runkit7_function_redefine(
string $function_name,
string $argument_list,
string $code,
bool $return_by_reference = null,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool
runkit7_function_redefine(
string $function_name,
Closure $closure,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool

Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.

Список параметров

function_name

Имя функции для переопределения.

argument_list

Новый список аргументов, принимаемых функцией.

code

Реализация нового кода.

closure

Замыкание (closure), определяющее функцию.

return_by_reference

Определяет, должна ли функция возвращаться по ссылке.

doc_comment

Документальный комментарий функции.

return_type

Тип возвращаемого значения функции.

is_strict

Определяет, должна ли функция вести себя так, как если бы она была объявлена в файле с strict_types=1.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования runkit7_function_redefine()

<?php
function testme() {
echo "Оригинальная реализация Testme\n";
}
testme();
runkit7_function_redefine('testme','','echo "Новая реализация Testme\n";');
testme();
?>

Результат выполнения данного примера:

Оригинальная реализация Testme
Новая реализация Testme

Смотрите также

  • runkit7_function_add() - Добавляет новую функцию, функция аналогична create_function
  • runkit7_function_copy() - Копирует функцию в новое имя функции
  • runkit7_function_rename() - Изменяет имя функции
  • runkit7_function_remove() - Удаляет определение функции
  • runkit7_method_redefine() - Динамически изменяет код заданного метода


Удаляет определение функции

  • « runkit7_function_redefine
  • runkit7_function_rename »
  • PHP Manual
  • Функции runkit7
  • Удаляет определение функции

runkit7_function_remove

(PECL runkit7 >= Unknown)

runkit7_function_remove — Удаляет определение функции

Описание

runkit7_function_remove(string $function_name): bool

Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.

Список параметров

function_name

Имя удаляемой функции.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • runkit7_function_add() - Добавляет новую функцию, функция аналогична create_function
  • runkit7_function_copy() - Копирует функцию в новое имя функции
  • runkit7_function_redefine() - Заменяет определение функции новой реализацией
  • runkit7_function_rename() - Изменяет имя функции


Изменяет имя функции

  • « runkit7_function_remove
  • runkit7_import »
  • PHP Manual
  • Функции runkit7
  • Изменяет имя функции

runkit7_function_rename

(PECL runkit7 >= Unknown)

runkit7_function_rename — Изменяет имя функции

Описание

runkit7_function_rename(string $source_name, string $target_name): bool

Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.

Список параметров

source_name

Текущее имя функции.

target_name

Новое имя функции.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • runkit7_function_add() - Добавляет новую функцию, функция аналогична create_function
  • runkit7_function_copy() - Копирует функцию в новое имя функции
  • runkit7_function_redefine() - Заменяет определение функции новой реализацией
  • runkit7_function_remove() - Удаляет определение функции


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

  • « runkit7_function_rename
  • runkit7_method_add »
  • PHP Manual
  • Функции runkit7
  • Обрабатывает функцию импорта файла PHP и определения классов, при необходимости перезаписывая

runkit7_import

(PECL runkit7 >= Unknown)

runkit7_import — Обрабатывает функцию импорта файла PHP и определения классов, при необходимости перезаписывая

Внимание

Функционал был удалён в PECL runkit7 4.0.0.

Описание

runkit7_import(string $filename, int $flags = ?): bool

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

Список параметров

filename

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

flags

Побитовое ИЛИ констант RUNKIT7_IMPORT_*.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Динамически добавляет новый метод в заданный класс

  • « runkit7_import
  • runkit7_method_copy »
  • PHP Manual
  • Функции runkit7
  • Динамически добавляет новый метод в заданный класс

runkit7_method_add

(PECL runkit7 >= Unknown)

runkit7_method_add — Динамически добавляет новый метод в заданный класс

Описание

runkit7_method_add(
string $class_name,
string $method_name,
string $argument_list,
string $code,
int $flags = RUNKIT7_ACC_PUBLIC,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool
runkit7_method_add(
string $class_name,
string $method_name,
Closure $closure,
int $flags = RUNKIT7_ACC_PUBLIC,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool

Список параметров

class_name

Класс, в котором нужно добавить метод.

method_name

Имя метода, который нужно добавить.

argument_list

Разделённый запятыми список аргументов для нового метода.

code

Код, который будет выполняться при вызове method_name.

closure

Замыкание (closure), определяющее метод.

flags

Метод может быть RUNKIT7_ACC_PUBLIC, RUNKIT7_ACC_PROTECTED или RUNKIT7_ACC_PRIVATE, и, при необходимости, объединён с помощью побитового ИЛИ с RUNKIT7_ACC_STATIC.

doc_comment

Документальный комментарий метода.

return_type

Тип возвращаемого значения метода.

is_strict

Определяет, будет ли метод вести себя так, как если бы он был объявлен в файле с strict_types=1.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования runkit7_method_add()

<?php
class Example {
function foo() {
echo "foo!\n";
}
}

// создание объекта Example
$e = new Example();

// добавление нового общедоступного метода
runkit7_method_add(
'Example',
'add',
'$num1, $num2',
'return $num1 + $num2;',
RUNKIT7_ACC_PUBLIC
);

// добавление 12 + 4
echo $e->add(12, 4);
?>

Результат выполнения данного примера:

16

Смотрите также

  • runkit7_method_copy() - Копирует метод из одного класса в другой
  • runkit7_method_redefine() - Динамически изменяет код заданного метода
  • runkit7_method_remove() - Динамически удаляет заданный метод
  • runkit7_method_rename() - Динамически изменяет имя заданного метода
  • runkit7_function_add() - Добавляет новую функцию, функция аналогична create_function


Копирует метод из одного класса в другой

  • « runkit7_method_add
  • runkit7_method_redefine »
  • PHP Manual
  • Функции runkit7
  • Копирует метод из одного класса в другой

runkit7_method_copy

(PECL runkit7 >= Unknown)

runkit7_method_copy — Копирует метод из одного класса в другой

Описание

runkit7_method_copy(
string $destination_class,
string $destination_method_name,
string $source_class,
string $source_method_name = ?
): bool

Список параметров

destination_class

Целевой класс для скопированного метода.

destination_method_name

Название метода назначения.

source_class

Исходный класс скопированного метода.

source_method_name

Имя метода для копирования из исходного класса. Если этот параметр опущен, предполагается значение destination_method_name.

Возвращаемые значения

Примеры

Пример #1 Пример использования runkit7_method_copy()

<?php
class Foo {
function example() {
return "foo!\n";
}
}

class Bar {
// изначально никаких методов
}

// копирование метода example() из класса Foo в класс Bar как baz()
runkit7_method_copy('Bar', 'baz', 'Foo', 'example');

// функция вывода скопирована
echo Bar::baz();
?>

Результат выполнения данного примера:

foo!

Смотрите также

  • runkit7_method_add() - Динамически добавляет новый метод в заданный класс
  • runkit7_method_redefine() - Динамически изменяет код заданного метода
  • runkit7_method_remove() - Динамически удаляет заданный метод
  • runkit7_method_rename() - Динамически изменяет имя заданного метода
  • runkit7_function_copy() - Копирует функцию в новое имя функции


Динамически изменяет код заданного метода

  • « runkit7_method_copy
  • runkit7_method_remove »
  • PHP Manual
  • Функции runkit7
  • Динамически изменяет код заданного метода

runkit7_method_redefine

(PECL runkit7 >= Unknown)

runkit7_method_redefine — Динамически изменяет код заданного метода

Описание

runkit7_method_redefine(
string $class_name,
string $method_name,
string $argument_list,
string $code,
int $flags = RUNKIT7_ACC_PUBLIC,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool
runkit7_method_redefine(
string $class_name,
string $method_name,
Closure $closure,
int $flags = RUNKIT7_ACC_PUBLIC,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool

Список параметров

class_name

Класс, в котором нужно переопределить метод.

method_name

Имя метода, который нужно переопределить.

argument_list

Разделённый запятыми список аргументов для переопределённого метода.

code

Новый код, который будет выполняться при вызове method_name.

closure

Замыкание (closure), определяющее метод.

flags

Переопределённый метод может быть RUNKIT7_ACC_PUBLIC, RUNKIT7_ACC_PROTECTED или RUNKIT7_ACC_PRIVATE, и, при необходимости, объединён с помощью побитового ИЛИ с RUNKIT7_ACC_STATIC.

doc_comment

Документальный комментарий метода.

return_type

Тип возвращаемого значения метода.

is_strict

Определяет, будет ли метод вести себя так, как если бы он был объявлен в файле с strict_types=1.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования runkit7_method_redefine()

<?php
class Example {
function foo() {
return "foo!\n";
}
}

// создание объекта Example
$e = new Example();

// вывод Example::foo() (до переопределения)
echo "До: " . $e->foo();

// Переопределение метода 'foo'
runkit7_method_redefine(
'Example',
'foo',
'',
'return "bar!\n";',
RUNKIT7_ACC_PUBLIC
);

// вывод Example::foo() (после переопределения)
echo "После: " . $e->foo();
?>

Результат выполнения данного примера:

До: foo!
После: bar!

Смотрите также

  • runkit7_method_add() - Динамически добавляет новый метод в заданный класс
  • runkit7_method_copy() - Копирует метод из одного класса в другой
  • runkit7_method_remove() - Динамически удаляет заданный метод
  • runkit7_method_rename() - Динамически изменяет имя заданного метода
  • runkit7_function_redefine() - Заменяет определение функции новой реализацией


Динамически удаляет заданный метод

  • « runkit7_method_redefine
  • runkit7_method_rename »
  • PHP Manual
  • Функции runkit7
  • Динамически удаляет заданный метод

runkit7_method_remove

(PECL runkit7 >= Unknown)

runkit7_method_remove — Динамически удаляет заданный метод

Описание

runkit7_method_remove(string $class_name, string $method_name): bool

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Список параметров

class_name

Класс, в котором нужно удалить метод.

method_name

Имя удаляемого метода.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования runkit7_method_remove()

<?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() - Динамически добавляет новый метод в заданный класс
  • runkit7_method_copy() - Копирует метод из одного класса в другой
  • runkit7_method_redefine() - Динамически изменяет код заданного метода
  • runkit7_method_rename() - Динамически изменяет имя заданного метода
  • runkit7_function_remove() - Удаляет определение функции


Динамически изменяет имя заданного метода

  • « runkit7_method_remove
  • runkit7_object_id »
  • PHP Manual
  • Функции runkit7
  • Динамически изменяет имя заданного метода

runkit7_method_rename

(PECL runkit7 >= Unknown)

runkit7_method_rename — Динамически изменяет имя заданного метода

Описание

runkit7_method_rename(string $class_name, string $source_method_name, string $target_method_name): bool

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Список параметров

class_name

Класс, в котором нужно переименовать метод.

source_method_name

Метод, который нужно переименовать.

target_method_name

Новое имя метода.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования runkit7_method_rename()

<?php
class Example {
function foo() {
return "foo!\n";
}
}

// Переименование метода 'foo' в 'bar'
runkit7_method_rename(
'Example',
'foo',
'bar'
);

// Вывод переименованной функции
echo (new Example)->bar();
?>

Результат выполнения данного примера:

foo!

Смотрите также

  • runkit7_method_add() - Динамически добавляет новый метод в заданный класс
  • runkit7_method_copy() - Копирует метод из одного класса в другой
  • runkit7_method_redefine() - Динамически изменяет код заданного метода
  • runkit7_method_remove() - Динамически удаляет заданный метод
  • runkit7_function_rename() - Изменяет имя функции


Возвращает дескриптор целочисленного объекта для данного объекта

  • « runkit7_method_rename
  • runkit7_superglobals »
  • PHP Manual
  • Функции runkit7
  • Возвращает дескриптор целочисленного объекта для данного объекта

runkit7_object_id

(PECL runkit7 >= Unknown)

runkit7_object_id — Возвращает дескриптор целочисленного объекта для данного объекта

Описание

runkit7_object_id(object $obj): int

Функция эквивалентна spl_object_id().

Функция возвращает уникальный идентификатор объекта. Идентификатор объекта уникален на протяжении всего времени существования объекта. После уничтожения объекта его идентификатор может быть повторно использован для других объектов. Поведение похоже на spl_object_hash().

Список параметров

obj

Любой объект.

Возвращаемые значения

Целочисленный идентификатор, уникальный для каждого существующего в данный момент объекта и всегда одинаковый для каждого объекта.

Примечания

Замечание:

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

Смотрите также

  • spl_object_id() - Получить целочисленный идентификатор объекта


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

  • « runkit7_object_id
  • runkit7_zval_inspect »
  • PHP Manual
  • Функции runkit7
  • Возвращает числовой индексированный массив зарегистрированных суперглобальных переменных

runkit7_superglobals

(PECL runkit7 >= Unknown)

runkit7_superglobals — Возвращает числовой индексированный массив зарегистрированных суперглобальных переменных

Описание

runkit7_superglobals(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает числовой индексированный массив зарегистрированных суперглобальных переменных. Например: _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES.

Смотрите также

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


Возвращает информацию о переданном значении с типами данных, количеством ссылок и так далее

  • « runkit7_superglobals
  • uopz »
  • PHP Manual
  • Функции runkit7
  • Возвращает информацию о переданном значении с типами данных, количеством ссылок и так далее

runkit7_zval_inspect

(PECL runkit7 >= Unknown)

runkit7_zval_inspect — Возвращает информацию о переданном значении с типами данных, количеством ссылок и так далее

Описание

runkit7_zval_inspect(string $value): array

Список параметров

value

Значение, чтобы вернуть представление.

Возвращаемые значения

Массив, возвращаемый этой функцией, содержит следующие элементы:

  • address
  • refcount (необязательный)
  • is_ref (необязательный)
  • type

Примеры

Пример #1 Пример использования runkit7_zval_inspect()

<?php

$var = new DateTime();
var_dump(runkit7_zval_inspect($var));

$var = 1;
var_dump(runkit7_zval_inspect($var));
?>

Результат выполнения данного примера:

array(4) {
  ["address"]=>
  string(14) "0x7f45ab21b1e0"
  ["refcount"]=>
  int(2)
  ["is_ref"]=>
  bool(false)
  ["type"]=>
  int(8)
}

array(2) {
  ["address"]=>
  string(14) "0x7f45ab21b1e0"
  ["type"]=>
  int(4)
}

Смотрите также

  • Объяснение ссылок
  • » Объяснение ссылок (Дерик Ретанс)


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

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

PECL uopz 6.1.1 несовместим с Xdebug >= 2.9.4. Более поздние версии uopz несовместимы с Xdebug < 2.9.4.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для uopz 5.0 требуется PHP 7.0. Начиная с 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
uopz.overloads | "1" | PHP_INI_SYSTEM | Доступно начиная с uopz 2.0.2. Удалено начиная с uopz 5.0.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

uopz.disable bool

Если включено, uopz перестанет влиять на работу PHP.

uopz.exit bool

Позволять ли модулю исполнять опкод exit(выход). Эта настройка может быть переопределена во время исполнения с помощью функции uopz_allow_exit().

uopz.overloads bool

Даёт возможность использовать uopz_overload().

Замечание: При работе с включённым OPcache может потребоваться отключить все оптимизации OPcache (opcache.optimization_level=0).


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

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

Следующие опкоды определяются как константы с помощью uopz до версии 5.0.0:

ZEND_EXIT (int)
Вызывается с помощью exit() and die(), не принимает аргументов. Возвращает логический true для выхода, false для продолжения
ZEND_NEW (int)
Вызывается конструкцией объекта, получает класс создаваемого объекта в качестве единственного аргумента
ZEND_THROW (int)
Вызывается конструкцией throw, получает класс выбрасываемого исключения в качестве единственного аргумента
ZEND_FETCH_CLASS (int)
Вызывается во время композиции, получает имя получаемого в качестве единственного аргумента
ZEND_ADD_TRAIT (int)
Вызывается во время композиции, получает класс добавляемого трейта первым аргументом, и имя трейта в качестве второго аргумента
ZEND_ADD_INTERFACE (int)
Вызывается во время композиции, получает класс добавляемого интерфейса первым аргументом, и имя интерфейса в качестве второго аргумента
ZEND_INSTANCEOF (int)
Вызывается оператором instanceof, получает проверяемый объект первым аргументом и имя класса, который должен быть в объекте в качестве второго аргумента

Следующие константы управляют поведением виртуальной машины после вызова обработчика пользователя, будьте предельно осторожны! Эти константы удалены с uopz версии 5.0.0.

ZEND_USER_OPCODE_CONTINUE (int)
Продвинуть 1 опкод и продолжить
ZEND_USER_OPCODE_ENTER (int)
Ввести новый new op_array без рекурсии
ZEND_USER_OPCODE_LEAVE (int)
Вернуть вызывающий op_array внутри того же исполнителя
ZEND_USER_OPCODE_DISPATCH (int)
Отправить в исходный обработчик опкода
ZEND_USER_OPCODE_DISPATCH_TO (int)
Отправить на конкретный обработчик (посредством бинарного OR с константой опкода ZEND)
ZEND_USER_OPCODE_RETURN (int)
Выйти из исполнителя (возврат из функции)

Следующие модификаторы регистрируются как константы uopz

ZEND_ACC_PUBLIC (int)
Отметить функцию как общедоступную, по умолчанию
ZEND_ACC_PROTECTED (int)
Отметить функцию как защищённую
ZEND_ACC_PRIVATE (int)
Отметить функцию как закрытую
ZEND_ACC_STATIC (int)
Отметить функцию как статическую
ZEND_ACC_FINAL (int)
Отметить функцию как окончательную
ZEND_ACC_ABSTRACT (int)
Отметить функцию как абстрактную
ZEND_ACC_CLASS (int)
Фиктивная регистрация для согласованности, запись класса по умолчанию. Удалено в uopz 5.0.0.
ZEND_ACC_INTERFACE (int)
Отметить класс как интерфейс. Удалено в uopz 5.0.0.
ZEND_ACC_TRAIT (int)
Отметить класс как трейт. Удалено в uopz 5.0.0.
ZEND_ACC_FETCH (int)
Используется только для получения флагов. Удалено в 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, PECL uopz 7)

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, PECL uopz 7)

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, PECL uopz 7)

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, PECL uopz 7 < 7.1.0)

uopz_extend — Расширить класс во время выполнения

Описание

uopz_extend(string $class, string $parent): bool

Расширяет текущий класс class родительским parent

Список параметров

class

Название класса для расширения

parent

Название класса для наследования

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Начиная с PHP 7.4.0, uopz_extends() выбрасывает RuntimeException, если OPcache включён и запись класса либо class, либо parent (если это признак) неизменны.

Примеры

Пример #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, PECL uopz 7)

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

Имя функции. Если задан class и пустая строка передана как function, uopz_flags() получает или устанавливает флаги записи класса.

flags

Корректный набор флагов ZEND_ACC_. Если не заданы, uopz_flags() используется как геттер.

Возвращаемые значения

При установке новых флагов, возвращает старые флаги, иначе возвращает текущие флаги

Ошибки

Начиная с PHP 7.4.0, если передан параметр flags, uopz_extends() выбрасывает RuntimeException, если OPcache включён и запись класса либо class, либо parent (если это признак) неизменны.

Список изменений

Версия | Описание
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)

Пример #2 "Отменить final" класса

<?php
final class MyClass
{
}

$flags = uopz_flags(MyClass::class, '');
uopz_flags(MyClass::class, '', $flags & ~ZEND_ACC_FINAL);
var_dump((new ReflectionClass(MyClass::class))->isFinal());
?>

Результат выполнения данного примера:

bool(false)


Создаёт функцию во время выполнения

  • « 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 , PECL uopz 7)

uopz_get_exit_status — Получить последний установленный статус выхода

Описание

uopz_get_exit_status(): 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, PECL uopz 7)

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, PECL uopz 7)

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, PECL uopz 7)

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, PECL uopz 7)

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, PECL uopz 7)

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, PECL uopz 7 < 7.1.0)

uopz_implement — Реализует интерфейс во время выполнения

Описание

uopz_implement(string $class, string $interface): bool

Делает class, реализующий interface

Список параметров

class

interface

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Начиная с PHP 7.4.0, uopz_implements() выбрасывает RuntimeException, если OPcache включён и запись класса class неизменна.

Примеры

Пример #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, PECL uopz 7)

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, PECL uopz 7)

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, PECL uopz 7)

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, PECL uopz 7)

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, PECL uopz 7)

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 , PECL uopz 7)

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, PECL uopz 7)

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, PECL uopz 7)

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, PECL uopz 7)

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
  • WinCache »
  • PHP Manual
  • Функции Uopz
  • Отменяет ранее установленное возвращаемое значение для функции

uopz_unset_return

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

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


Windows Cache для PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Скрипт статистики WinCache
    • Обработчик сессий WinCache
    • Перенаправление функций WinCache
    • Типы ресурсов
  • Предопределённые константы
  • Функции WinCache
    • wincache_fcache_fileinfo — Получает информацию о файлах, закешированных в файловом кеше
    • wincache_fcache_meminfo — Получает информацию об использовании памяти файлового кеша
    • wincache_lock — Получает эксклюзивную блокировку для данного ключа
    • wincache_ocache_fileinfo — Получает информацию о файлах, закешированных в кеше опкодов
    • wincache_ocache_meminfo — Получает информацию об использовании кеш-памяти опкодов
    • wincache_refresh_if_changed — Обновляет записи кеша для закешированных файлов
    • wincache_rplist_fileinfo — Получает информацию о разрешении кеша пути к файлу разрешения
    • wincache_rplist_meminfo — Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
    • wincache_scache_info — Получает информацию о файлах, закешированных в кеше сессии
    • wincache_scache_meminfo — Получает информацию об использовании кеш-памяти сессии
    • wincache_ucache_add — Добавляет переменную в пользовательский кеш, только если переменная ещё не существует в кеше
    • wincache_ucache_cas — Сравнивает переменную со старым значением и присваивает ей новое значение
    • wincache_ucache_clear — Удаляет всё содержимое пользовательского кеша
    • wincache_ucache_dec — Уменьшает значение, связанное с ключом
    • wincache_ucache_delete — Удаляет переменные из пользовательского кеша
    • wincache_ucache_exists — Проверяет, существует ли переменная в пользовательском кеше
    • wincache_ucache_get — Получает переменную, хранящуюся в пользовательском кеше
    • wincache_ucache_inc — Увеличивает значение, связанное с ключом
    • wincache_ucache_info — Получает информацию о данных, хранящихся в пользовательском кеше
    • wincache_ucache_meminfo — Получает информацию об использовании памяти пользовательского кеша
    • wincache_ucache_set — Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше
    • wincache_unlock — Снимает эксклюзивную блокировку данного ключа
  • Сборка для 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.

  • 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 bool
Включает/отключает файловое кеширование.
wincache.fcenabledfilter string
Определяет список идентификаторов IIS веб-серверов, разделённых запятой, для которых должно быть разрешено/запрещено файловое кеширование. Эта настройка работает в паре с wincache.fcenabled: если wincache.fcenabled установлено в 1, то для серверов, перечисленных в wincache.fcenabledfilter файловое кеширование будет отключено; если wincache.fcenabled установлено как 0, то для серверов, перечисленных в wincache.fcenabledfilter файловое кеширование будет включено.
wincache.fcachesize int
Определяет максимальный размер памяти (в мегабайтах) для файлового кеша. Когда размер всех закешированных файлов превысит это значение, из кеша будут удалены самые устаревшие файлы.
wincache.fcndetect bool
Включает/отключает функциональность оповещения об изменении файла. Если функционал оповещения об изменениях файла поддерживается, то он может быть использован для обновления кеша опкодов и файлового кеша при получении соответствующих оповещений. Если подобный механизм не поддерживается, например, при использовании сетевых папок, wincache будет самостоятельно проверять файлы на предмет изменения через заданные в настройке wincache.chkinterval интервалы времени.
wincache.maxfilesize int
Определяет максимальный размер одного файла (в килобайтах) для файлового кеша. Если размер файла превышает заданное значение, то он не будет закеширован. Данная настройка применяется только к файловому кешу.
wincache.ocenabled bool
Внимание

Эта опция была УДАЛЕНА в версии 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 int
Внимание

Эта опция была УДАЛЕНА в версии 2.0.0.0

Определяет максимальный размер памяти (в мегабайтах) для кеша опкодов. Когда размер всех закешированных опкодов превысит это значение, из кеша будут удалены самые устаревшие из них. Обратите внимание, что кеш опкодов должен быть как минимум в 3 раза больше файлового кеша. Если это не так, то размер кеша опкодов будет автоматически увеличен.
wincache.filecount int
Определяет, сколько примерно файлов будет закешировано модулем, чтобы при старте был выделен соответствующий кусок памяти. Если количество файлов превысит заданное значение, то WinCache произведёт переаллокацию памяти.
wincache.chkinterval int
Определяет насколько часто (в секундах) модуль будет проверять файлы на предмет их изменения для обновления кешей. Значение 0 отключает данный функционал. Изменения файлов не будут отражены в кеше до тех пор, пока закешированная запись не будет удалена из кеша сборщиком устаревших записей, либо пока не будет переработан пул приложений IIS, либо не будет вызвана функция wincache_refresh_if_changed.
wincache.ttlmax int
Определяет максимальное время (в секундах) невостребованности для записи в кеше. Установка в 0 отключает процесс удаления устаревших записей, что приведёт к тому, что запись будет лежать в кеше пока сервер IIS не будет остановлен.
wincache.enablecli bool
Определяет, разрешено ли кеширование при работе PHP из командной строки (CLI).
wincache.ignorelist string

Определяет список файлов, которые не нужно кешировать. Указываются только имена файлов. Символ разделитель - вертикальная черта "|".

Пример #1 Пример использования wincache.ignorelist

wincache.ignorelist = "index.php|misc.php|admin.php"

wincache.namesalt string
Определяет строку, которая будет использоваться при именовании объектов, помещаемых в разделяемую память. Это необходимо для предотвращения коллизий, когда несколько процессов работают с разделяемой памятью. Длина данной строки не должна превышать 8 символов.
wincache.ucenabled bool
Включает/отключает пользовательский кеш.
wincache.ucachesize int
Определяет максимальный размер памяти (в мегабайтах) для пользовательского кеша. Когда размер всех закешированных переменных превысит это значение, из кеша будут удалены самые устаревшие переменные.
wincache.scachesize int
Определяет максимальный размер памяти (в мегабайтах) для сессионного кеша. Когда размер всех закешированных данных превысит это значение, из кеша будут удалены самые устаревшие данные.
wincache.rerouteini string
Внимание

Эта опция была УДАЛЕНА в версии 1.3.7. Начиная с 1.3.7. вместо неё используйте wincache.reroute_enabled.

Задаёт абсолютный или относительный путь к reroute.ini, который содержит список функций PHP, чья реализация должна быть подменена реализацией из модуля WinCache. Если задан относительный путь, то он будет разрешаться относительно местоположения файла php-cgi.exe.
wincache.reroute_enabled bool
Включает/отключает перенаправление некоторых функций файлового ввода/вывода для работы через файловый кеш.
wincache.srwlocks bool
Внимание

Эта опция была УДАЛЕНА в версии 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 — Получает информацию о файлах, закешированных в файловом кеше
  • wincache_fcache_meminfo — Получает информацию об использовании памяти файлового кеша
  • wincache_lock — Получает эксклюзивную блокировку для данного ключа
  • wincache_ocache_fileinfo — Получает информацию о файлах, закешированных в кеше опкодов
  • wincache_ocache_meminfo — Получает информацию об использовании кеш-памяти опкодов
  • wincache_refresh_if_changed — Обновляет записи кеша для закешированных файлов
  • wincache_rplist_fileinfo — Получает информацию о разрешении кеша пути к файлу разрешения
  • wincache_rplist_meminfo — Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
  • wincache_scache_info — Получает информацию о файлах, закешированных в кеше сессии
  • wincache_scache_meminfo — Получает информацию об использовании кеш-памяти сессии
  • wincache_ucache_add — Добавляет переменную в пользовательский кеш, только если переменная ещё не существует в кеше
  • wincache_ucache_cas — Сравнивает переменную со старым значением и присваивает ей новое значение
  • wincache_ucache_clear — Удаляет всё содержимое пользовательского кеша
  • wincache_ucache_dec — Уменьшает значение, связанное с ключом
  • wincache_ucache_delete — Удаляет переменные из пользовательского кеша
  • wincache_ucache_exists — Проверяет, существует ли переменная в пользовательском кеше
  • wincache_ucache_get — Получает переменную, хранящуюся в пользовательском кеше
  • wincache_ucache_inc — Увеличивает значение, связанное с ключом
  • wincache_ucache_info — Получает информацию о данных, хранящихся в пользовательском кеше
  • wincache_ucache_meminfo — Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_set — Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше
  • wincache_unlock — Снимает эксклюзивную блокировку данного ключа


Получает информацию о файлах, закешированных в файловом кеше

  • « Функции WinCache
  • wincache_fcache_meminfo »
  • PHP Manual
  • Функции WinCache
  • Получает информацию о файлах, закешированных в файловом кеше

wincache_fcache_fileinfo

(PECL wincache >= 1.0.0)

wincache_fcache_fileinfo — Получает информацию о файлах, закешированных в файловом кеше

Описание

wincache_fcache_fileinfo(bool $summaryonly = false): array|false

Получает информацию о содержимом файлового кеша и его использовании.

Список параметров

summaryonly

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

Возвращаемые значения

Массив метаданных о файловом кеше или false в случае возникновения ошибки.

Массив, возвращаемый этой функцией, содержит следующие элементы:

  • total_cache_uptime - общее время в секундах, в течение которого файловый кеш был активен
  • total_file_count - общее количество файлов, которые в данный момент находятся в файловом кеше
  • total_hit_count - количество раз, когда файлы обслуживались из файлового кеша
  • total_miss_count - количество раз, когда файлы не были найдены в файловом кеше

  • file_entries - массив, содержащий информацию обо всех закешированных файлах:

    • file_name - абсолютное имя закешированного файла
    • add_time - время в секундах с момента добавления файла в кеш
    • use_time - время в секундах с момента обращения к файлу в кеше
    • last_check - время в секундах с момента проверки файла на наличие модификаций
    • hit_count - количество раз, когда файл был обработан из кеша
    • file_size - размер кешируемого файла в байтах

Примеры

Пример #1 Пример использования wincache_fcache_fileinfo()

<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() - Получает информацию об использовании памяти файлового кеша
  • wincache_ocache_fileinfo() - Получает информацию о файлах, закешированных в кеше опкодов
  • wincache_ocache_meminfo() - Получает информацию об использовании кеш-памяти опкодов
  • wincache_rplist_fileinfo() - Получает информацию о разрешении кеша пути к файлу разрешения
  • wincache_rplist_meminfo() - Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
  • wincache_refresh_if_changed() - Обновляет записи кеша для закешированных файлов
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • wincache_scache_info() - Получает информацию о файлах, закешированных в кеше сессии
  • wincache_scache_meminfo() - Получает информацию об использовании кеш-памяти сессии


Получает информацию об использовании памяти файлового кеша

  • « wincache_fcache_fileinfo
  • wincache_lock »
  • PHP Manual
  • Функции WinCache
  • Получает информацию об использовании памяти файлового кеша

wincache_fcache_meminfo

(PECL wincache >= 1.0.0)

wincache_fcache_meminfo — Получает информацию об использовании памяти файлового кеша

Описание

wincache_fcache_meminfo(): array|false

Получает информацию об использовании памяти файлового кеша.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив метаданных об использовании памяти файлового кеша или false в случае возникновения ошибки

Массив, возвращаемый этой функцией, содержит следующие элементы:

  • memory_total - объем памяти в байтах, выделенный для файлового кеша
  • memory_free - объем свободной памяти в байтах, доступной для файлового кеша
  • num_used_blks - количество блоков памяти, используемых файловым кешем
  • num_free_blks - количество свободных блоков памяти, доступных для файлового кеша
  • memory_overhead - объем памяти в байтах, используемый для внутренних структур файлового кеша

Примеры

Пример #1 Пример использования wincache_fcache_meminfo()

<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() - Получает информацию о файлах, закешированных в файловом кеше
  • wincache_ocache_fileinfo() - Получает информацию о файлах, закешированных в кеше опкодов
  • wincache_ocache_meminfo() - Получает информацию об использовании кеш-памяти опкодов
  • wincache_rplist_fileinfo() - Получает информацию о разрешении кеша пути к файлу разрешения
  • wincache_rplist_meminfo() - Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
  • wincache_refresh_if_changed() - Обновляет записи кеша для закешированных файлов
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • wincache_scache_info() - Получает информацию о файлах, закешированных в кеше сессии
  • wincache_scache_meminfo() - Получает информацию об использовании кеш-памяти сессии


Получает эксклюзивную блокировку для данного ключа

  • « wincache_fcache_meminfo
  • wincache_ocache_fileinfo »
  • PHP Manual
  • Функции WinCache
  • Получает эксклюзивную блокировку для данного ключа

wincache_lock

(PECL wincache >= 1.1.0)

wincache_lock — Получает эксклюзивную блокировку для данного ключа

Описание

wincache_lock(string $key, bool $isglobal = false): bool

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

Внимание

Использование wincache_lock() и wincache_unlock() может вызвать взаимную блокировку при выполнении скриптов PHP в многопроцессорной среде, такой как FastCGI. Не используйте эти функции, если вы не уверены, что вам это нужно. Для большинства операций с пользовательским кешем эти функции использовать не обязательно.

Список параметров

key

Имя ключа в кеше для включения блокировки.

isglobal

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

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования wincache_lock()

<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock("lock_txt_lock")) { // получить эксклюзивную блокировку
ftruncate($fp, 0); // обрезать файл
fwrite($fp, "Напишите что-нибудь здесь\n");
wincache_unlock("lock_txt_lock"); // снять блокировку
} else {
echo "Не удалось получить блокировку!";
}
fclose($fp);
?>

Смотрите также

  • wincache_unlock() - Снимает эксклюзивную блокировку данного ключа
  • wincache_ucache_set() - Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше
  • wincache_ucache_get() - Получает переменную, хранящуюся в пользовательском кеше
  • wincache_ucache_delete() - Удаляет переменные из пользовательского кеша
  • wincache_ucache_clear() - Удаляет всё содержимое пользовательского кеша
  • wincache_ucache_exists() - Проверяет, существует ли переменная в пользовательском кеше
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • wincache_scache_info() - Получает информацию о файлах, закешированных в кеше сессии


Получает информацию о файлах, закешированных в кеше опкодов

  • « wincache_lock
  • wincache_ocache_meminfo »
  • PHP Manual
  • Функции WinCache
  • Получает информацию о файлах, закешированных в кеше опкодов

wincache_ocache_fileinfo

(PECL wincache >= 1.0.0)

wincache_ocache_fileinfo — Получает информацию о файлах, закешированных в кеше опкодов

Описание

wincache_ocache_fileinfo(bool $summaryonly = false): array|false

Получает информацию о содержимом кеша опкодов и его использовании.

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Список параметров

summaryonly

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

Возвращаемые значения

Массив метаданных о кеше опкодов или false в случае возникновения ошибки.

Массив, возвращаемый этой функцией, содержит следующие элементы:

  • total_cache_uptime - общее время в секундах, в течение которого кеш опкода был активен.
  • total_file_count - общее количество файлов, которые в настоящее время находятся в кеше опкодов.
  • total_hit_count - количество раз, когда скомпилированный опкод был использован из кеша.
  • total_miss_count - количество раз, когда скомпилированный опкод не был найден в кеше.
  • is_local_cache - true, если метаданные кеша предназначены для экземпляра локального кеша, false, если метаданные предназначены для глобального кеша.

  • file_entries - массив, содержащий информацию обо всех закешированных файлах:

    • file_name - абсолютное имя закешированного файла.
    • add_time - время в секундах с момента добавления файла в кеш опкодов.
    • use_time - время в секундах с момента обращения к файлу в кеше опкодов.
    • last_check - время в секундах с момента проверки файла на наличие модификаций.
    • hit_count - количество раз, когда файл был использован из кеша.
    • function_count - количество функций в закешированном файле.
    • class_count - количество классов в закешированном файле.

Примеры

Пример #1 Пример использования wincache_ocache_fileinfo()

<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() - Получает информацию о файлах, закешированных в файловом кеше
  • wincache_fcache_meminfo() - Получает информацию об использовании памяти файлового кеша
  • wincache_ocache_meminfo() - Получает информацию об использовании кеш-памяти опкодов
  • wincache_rplist_fileinfo() - Получает информацию о разрешении кеша пути к файлу разрешения
  • wincache_rplist_meminfo() - Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
  • wincache_refresh_if_changed() - Обновляет записи кеша для закешированных файлов
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • wincache_scache_info() - Получает информацию о файлах, закешированных в кеше сессии
  • wincache_scache_meminfo() - Получает информацию об использовании кеш-памяти сессии


Получает информацию об использовании кеш-памяти опкодов

  • « wincache_ocache_fileinfo
  • wincache_refresh_if_changed »
  • PHP Manual
  • Функции WinCache
  • Получает информацию об использовании кеш-памяти опкодов

wincache_ocache_meminfo

(PECL wincache >= 1.0.0)

wincache_ocache_meminfo — Получает информацию об использовании кеш-памяти опкодов

Описание

wincache_ocache_meminfo(): array|false

Получает информацию об использовании кеш-памяти опкодов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив метаданных об использовании кеш-памяти опкодов или false в случае возникновения ошибки.

Массив, возвращаемый этой функцией, содержит следующие элементы:

  • memory_total - объём памяти в байтах, выделенный для кеша опкодов.
  • memory_free - объём свободной памяти в байтах, доступной для кеша опкодов.
  • num_used_blks - количество блоков памяти, используемых кешем опкодов.
  • num_free_blks - количество свободных блоков памяти, доступных для кеша опкодов.
  • memory_overhead - объём памяти в байтах, используемый для внутренних структур кеша опкодов.

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Примеры

Пример #1 Пример использования wincache_ocache_meminfo()

<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() - Получает информацию о файлах, закешированных в файловом кеше
  • wincache_fcache_meminfo() - Получает информацию об использовании памяти файлового кеша
  • wincache_ocache_fileinfo() - Получает информацию о файлах, закешированных в кеше опкодов
  • wincache_rplist_fileinfo() - Получает информацию о разрешении кеша пути к файлу разрешения
  • wincache_rplist_meminfo() - Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
  • wincache_refresh_if_changed() - Обновляет записи кеша для закешированных файлов
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • wincache_scache_info() - Получает информацию о файлах, закешированных в кеше сессии
  • wincache_scache_meminfo() - Получает информацию об использовании кеш-памяти сессии


Обновляет записи кеша для закешированных файлов

  • « wincache_ocache_meminfo
  • wincache_rplist_fileinfo »
  • PHP Manual
  • Функции WinCache
  • Обновляет записи кеша для закешированных файлов

wincache_refresh_if_changed

(PECL wincache >= 1.0.0)

wincache_refresh_if_changed — Обновляет записи кеша для закешированных файлов

Описание

wincache_refresh_if_changed(array $files = NULL): bool

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

Список параметров

files

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

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

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

Пример #1 Пример использования wincache_refresh_if_changed()

<?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() - Получает информацию о файлах, закешированных в файловом кеше
  • wincache_fcache_meminfo() - Получает информацию об использовании памяти файлового кеша
  • wincache_ocache_fileinfo() - Получает информацию о файлах, закешированных в кеше опкодов
  • wincache_ocache_meminfo() - Получает информацию об использовании кеш-памяти опкодов
  • wincache_rplist_fileinfo() - Получает информацию о разрешении кеша пути к файлу разрешения
  • wincache_rplist_meminfo() - Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше


Получает информацию о разрешении кеша пути к файлу разрешения

  • « wincache_refresh_if_changed
  • wincache_rplist_meminfo »
  • PHP Manual
  • Функции WinCache
  • Получает информацию о разрешении кеша пути к файлу разрешения

wincache_rplist_fileinfo

(PECL wincache >= 1.0.0)

wincache_rplist_fileinfo — Получает информацию о разрешении кеша пути к файлу разрешения

Описание

wincache_rplist_fileinfo(bool $summaryonly = false): array|false

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

Список параметров

summaryonly

Возвращаемые значения

Массив метаданных о кеше пути к файлу разрешения или false в случае возникновения ошибки.

Массив, возвращаемый этой функцией, содержит следующие элементы:

  • total_file_count - общее количество сопоставлений пути к файлу, хранящихся в кеше.

  • rplist_entries - массив, содержащий информацию обо всех путях закешированных файлов:

    • resolve_path - путь к файлу.
    • subkey_data - соответствующий абсолютный путь к файлу.

Примеры

Пример #1 Пример использования wincache_rplist_fileinfo()

<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() - Получает информацию об использовании памяти файлового кеша
  • wincache_fcache_fileinfo() - Получает информацию о файлах, закешированных в файловом кеше
  • wincache_ocache_fileinfo() - Получает информацию о файлах, закешированных в кеше опкодов
  • wincache_ocache_meminfo() - Получает информацию об использовании кеш-памяти опкодов
  • wincache_rplist_meminfo() - Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
  • wincache_refresh_if_changed() - Обновляет записи кеша для закешированных файлов
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • wincache_scache_info() - Получает информацию о файлах, закешированных в кеше сессии
  • wincache_scache_meminfo() - Получает информацию об использовании кеш-памяти сессии


Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения

  • « wincache_rplist_fileinfo
  • wincache_scache_info »
  • PHP Manual
  • Функции WinCache
  • Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения

wincache_rplist_meminfo

(PECL wincache >= 1.0.0)

wincache_rplist_meminfo — Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения

Описание

wincache_rplist_meminfo(): array|false

Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

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

Массив, возвращаемый этой функцией, содержит следующие элементы:

  • memory_total - объём памяти в байтах, выделенный для кеша пути к файлу разрешения.
  • memory_free - объём свободной памяти в байтах, доступной для кеша пути к файлу разрешения.
  • num_used_blks - количество блоков памяти, используемых кешем пути к файлу разрешения.
  • num_free_blks - количество свободных блоков памяти, доступных для кеша пути к файлу разрешения.
  • memory_overhead - объём памяти в байтах, используемый для внутренних структур кеширования пути к файлу разрешения.

Примеры

Пример #1 Пример использования wincache_rplist_meminfo()

<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() - Получает информацию о файлах, закешированных в файловом кеше
  • wincache_fcache_meminfo() - Получает информацию об использовании памяти файлового кеша
  • wincache_ocache_fileinfo() - Получает информацию о файлах, закешированных в кеше опкодов
  • wincache_ocache_meminfo() - Получает информацию об использовании кеш-памяти опкодов
  • wincache_rplist_fileinfo() - Получает информацию о разрешении кеша пути к файлу разрешения
  • wincache_refresh_if_changed() - Обновляет записи кеша для закешированных файлов
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • wincache_scache_info() - Получает информацию о файлах, закешированных в кеше сессии
  • wincache_scache_meminfo() - Получает информацию об использовании кеш-памяти сессии


Получает информацию о файлах, закешированных в кеше сессии

  • « wincache_rplist_meminfo
  • wincache_scache_meminfo »
  • PHP Manual
  • Функции WinCache
  • Получает информацию о файлах, закешированных в кеше сессии

wincache_scache_info

(PECL wincache >= 1.1.0)

wincache_scache_info — Получает информацию о файлах, закешированных в кеше сессии

Описание

wincache_scache_info(bool $summaryonly = false): array|false

Получает информацию о содержимом кеша сессии и его использовании.

Список параметров

summaryonly

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

Возвращаемые значения

Массив метаданных о кеше сессии или false в случае возникновения ошибки.

Массив, возвращаемый этой функцией, содержит следующие элементы:

  • total_cache_uptime - общее время в секундах, в течение которого кеш сессии был активен.
  • total_item_count - общее количество элементов, которые в настоящее время находятся в кеше сессии.
  • is_local_cache - true, если метаданные кеша предназначены для экземпляра локального кеша, false, если метаданные предназначены для глобального кеша.
  • total_hit_count - количество раз, когда данные были обработаны из кеша.
  • total_miss_count - количество раз, когда данные не были найдены в кеше.

  • scache_entries - массив, содержащий информацию обо всех закешированных элементах:

    • key_name - имя ключа, который используется для хранения данных.
    • value_type - тип значения, хранимого ключом.
    • use_time - время в секундах с момента обращения к файлу в кеше опкодов.
    • last_check - время в секундах с момента проверки файла на наличие модификаций.
    • ttl_seconds - время, оставшееся для данных, чтобы оставаться в кеше, 0 означает бесконечность.
    • age_seconds - время, прошедшее с момента добавления данных в кеш.
    • hitcount - количество раз, когда данные были получены из кеша.

Примеры

Пример #1 Пример использования wincache_scache_info()

<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() - Получает информацию о файлах, закешированных в файловом кеше
  • wincache_fcache_meminfo() - Получает информацию об использовании памяти файлового кеша
  • wincache_ocache_meminfo() - Получает информацию об использовании кеш-памяти опкодов
  • wincache_rplist_fileinfo() - Получает информацию о разрешении кеша пути к файлу разрешения
  • wincache_rplist_meminfo() - Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
  • wincache_refresh_if_changed() - Обновляет записи кеша для закешированных файлов
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • wincache_scache_meminfo() - Получает информацию об использовании кеш-памяти сессии


Получает информацию об использовании кеш-памяти сессии

  • « wincache_scache_info
  • wincache_ucache_add »
  • PHP Manual
  • Функции WinCache
  • Получает информацию об использовании кеш-памяти сессии

wincache_scache_meminfo

(PECL wincache >= 1.1.0)

wincache_scache_meminfo — Получает информацию об использовании кеш-памяти сессии

Описание

wincache_scache_meminfo(): array|false

Получает информацию об использовании памяти кешем сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив метаданных об использовании кеш-памяти сессии или false в случае возникновения ошибки.

Массив, возвращаемый этой функцией, содержит следующие элементы:

  • memory_total - объём памяти в байтах, выделенный для кеш-памяти сессии.
  • memory_free - объём свободной памяти в байтах, доступной для кеш-памяти сессии.
  • num_used_blks - количество блоков памяти, используемых кешем сессии.
  • num_free_blks - количество свободных блоков памяти, доступных для кеша сессии.
  • memory_overhead - объём памяти в байтах, используемый для внутренних структур кеша сессии.

Примеры

Пример #1 Пример использования wincache_scache_meminfo()

<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() - Получает информацию о файлах, закешированных в файловом кеше
  • wincache_fcache_meminfo() - Получает информацию об использовании памяти файлового кеша
  • wincache_ocache_fileinfo() - Получает информацию о файлах, закешированных в кеше опкодов
  • wincache_rplist_fileinfo() - Получает информацию о разрешении кеша пути к файлу разрешения
  • wincache_rplist_meminfo() - Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
  • wincache_refresh_if_changed() - Обновляет записи кеша для закешированных файлов
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • wincache_scache_info() - Получает информацию о файлах, закешированных в кеше сессии


Добавляет переменную в пользовательский кеш, только если переменная ещё не существует в кеше

  • « wincache_scache_meminfo
  • wincache_ucache_cas »
  • PHP Manual
  • Функции WinCache
  • Добавляет переменную в пользовательский кеш, только если переменная ещё не существует в кеше

wincache_ucache_add

(PECL wincache >= 1.1.0)

wincache_ucache_add — Добавляет переменную в пользовательский кеш, только если переменная ещё не существует в кеше

Описание

wincache_ucache_add(string $key, mixed $value, int $ttl = 0): bool
wincache_ucache_add(array $values, mixed $unused = NULL, int $ttl = 0): bool

Добавляет переменную в пользовательский кеш, только если эта переменная ещё не существует в кеше. Добавленная переменная остаётся в пользовательском кеше, пока не истечёт срок её действия или она не будет удалена с помощью функций wincache_ucache_delete() или wincache_ucache_clear().

Список параметров

key

Сохраняет переменную с использованием этого имени key. Если переменная с таким же key уже существует, завершится ошибкой и вернёт false. key чувствителен к регистру. Чтобы переопределить значение, даже если key уже существует, используйте функцию wincache_ucache_set(). key также может принимать массив пар имя => значение, где имена будут использоваться в качестве ключей. Это можно использовать для добавления нескольких значений в кеш за одну операцию, что позволяет избежать состояния гонки.

value

Значение переменной, которую необходимо сохранить. Value поддерживает все типы данных, кроме ресурсов, таких как дескрипторы файлов. Параметр игнорируется, если первым аргументом является массив. Общее руководство - передать null в качестве value при использовании массива key. Если value является объектом или массивом, содержащим объекты, то объекты будут сериализованы. Подробнее о сериализации объектов смотрите в описании __sleep().

values

Ассоциативный массив ключей и значений.

ttl

Время, в течение которого переменная находится в кеше, в секундах. После того, как значение, указанное в ttl будет передано, сохранённая переменная будет удалена из кеша. Параметр принимает значение по умолчанию 0, что означает, что переменная останется в кеше, пока она не будет явно удалена с помощью функций wincache_ucache_delete() или wincache_ucache_clear().

Возвращаемые значения

Если key является строкой, функция возвращает true в случае успешного выполнения и false в случае возникновения ошибки.

Если key является массивом, функция возвращает:

  • Если все пары имя => значение в массиве могут быть установлены, функция возвращает пустой массив;
  • Если все пары имя => значение в массиве не могут быть установлены, функция возвращает false;
  • Если некоторые из них могут быть установлены, а другие - нет, функция возвращает массив с парами name => value, которые не удалось добавить в пользовательский кеш.

Примеры

Пример #1 Пример использования wincache_ucache_add() с key в виде строки

<?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() с key в виде массива

<?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() - Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше
  • wincache_ucache_get() - Получает переменную, хранящуюся в пользовательском кеше
  • wincache_ucache_delete() - Удаляет переменные из пользовательского кеша
  • wincache_ucache_clear() - Удаляет всё содержимое пользовательского кеша
  • wincache_ucache_exists() - Проверяет, существует ли переменная в пользовательском кеше
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • __sleep()


Сравнивает переменную со старым значением и присваивает ей новое значение

  • « wincache_ucache_add
  • wincache_ucache_clear »
  • PHP Manual
  • Функции WinCache
  • Сравнивает переменную со старым значением и присваивает ей новое значение

wincache_ucache_cas

(PECL wincache >= 1.1.0)

wincache_ucache_cas — Сравнивает переменную со старым значением и присваивает ей новое значение

Описание

wincache_ucache_cas(string $key, int $old_value, int $new_value): bool

Сравнивает переменную, связанную с key с old_value и, если она совпадает, присваивает ей new_value.

Список параметров

key

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

old_value

Старое значение переменной, на которую указывает key в пользовательском кеше. Значение должно быть типа long, иначе функция вернёт false.

new_value

Новое значение, которое будет присвоено указателю переменной key, если будет найдено совпадение. Значение должно быть типа long, иначе функция вернёт false.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования 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() - Увеличивает значение, связанное с ключом
  • wincache_ucache_dec() - Уменьшает значение, связанное с ключом


Удаляет всё содержимое пользовательского кеша

  • « wincache_ucache_cas
  • wincache_ucache_dec »
  • PHP Manual
  • Функции WinCache
  • Удаляет всё содержимое пользовательского кеша

wincache_ucache_clear

(PECL wincache >= 1.1.0)

wincache_ucache_clear — Удаляет всё содержимое пользовательского кеша

Описание

wincache_ucache_clear(): bool

Очищает/удаляет все значения, хранящиеся в пользовательском кеше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования 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() - Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше
  • wincache_ucache_add() - Добавляет переменную в пользовательский кеш, только если переменная ещё не существует в кеше
  • wincache_ucache_delete() - Удаляет переменные из пользовательского кеша
  • wincache_ucache_get() - Получает переменную, хранящуюся в пользовательском кеше
  • wincache_ucache_exists() - Проверяет, существует ли переменная в пользовательском кеше
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше


Уменьшает значение, связанное с ключом

  • « wincache_ucache_clear
  • wincache_ucache_delete »
  • PHP Manual
  • Функции WinCache
  • Уменьшает значение, связанное с ключом

wincache_ucache_dec

(PECL wincache >= 1.1.0)

wincache_ucache_dec — Уменьшает значение, связанное с ключом

Описание

wincache_ucache_dec(string $key, int $dec_by = 1, bool &$success = ?): mixed

Уменьшает значение, связанное с key на 1 или как указано в dec_by.

Список параметров

key

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

dec_by

Значение, на которое должна быть уменьшена переменная, связанная с key. Если аргумент является числом с плавающей точкой, он будет усечён до ближайшего целого числа. Переменная, связанная с key, должна иметь тип long, иначе функция завершится ошибкой и вернёт false.

success

Будет установлено значение true в случае успешного выполнения и false в случае возникновения ошибки.

Возвращаемые значения

Возвращает уменьшенное значение в случае успешного выполнения и false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования 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() - Увеличивает значение, связанное с ключом
  • wincache_ucache_cas() - Сравнивает переменную со старым значением и присваивает ей новое значение


Удаляет переменные из пользовательского кеша

  • « wincache_ucache_dec
  • wincache_ucache_exists »
  • PHP Manual
  • Функции WinCache
  • Удаляет переменные из пользовательского кеша

wincache_ucache_delete

(PECL wincache >= 1.1.0)

wincache_ucache_delete — Удаляет переменные из пользовательского кеша

Описание

wincache_ucache_delete(mixed $key): bool

Удаляет элементы из пользовательского кеша, на которые указывает параметр key.

Список параметров

key

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

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

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

Примеры

Пример #1 Пример использования wincache_ucache_delete() с key в виде строки

<?php
wincache_ucache_set('foo', 'bar');
var_dump(wincache_ucache_delete('foo'));
var_dump(wincache_ucache_exists('foo'));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Пример #2 Пример использования wincache_ucache_delete() с key в виде массива

<?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 Пример использования wincache_ucache_delete() с key в виде массива, из которого нельзя удалить некоторые элементы

<?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() - Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше
  • wincache_ucache_add() - Добавляет переменную в пользовательский кеш, только если переменная ещё не существует в кеше
  • wincache_ucache_get() - Получает переменную, хранящуюся в пользовательском кеше
  • wincache_ucache_clear() - Удаляет всё содержимое пользовательского кеша
  • wincache_ucache_exists() - Проверяет, существует ли переменная в пользовательском кеше
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше


Проверяет, существует ли переменная в пользовательском кеше

  • « wincache_ucache_delete
  • wincache_ucache_get »
  • PHP Manual
  • Функции WinCache
  • Проверяет, существует ли переменная в пользовательском кеше

wincache_ucache_exists

(PECL wincache >= 1.1.0)

wincache_ucache_exists — Проверяет, существует ли переменная в пользовательском кеше

Описание

wincache_ucache_exists(string $key): bool

Проверяет, существует ли переменная key в пользовательском кеше или нет.

Список параметров

key

Параметр key, который использовался для хранения переменной в кеше. key чувствителен к регистру.

Возвращаемые значения

Возвращает true, если переменная с key существует, в противном случае возвращает false.

Примеры

Пример #1 Пример использования 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() - Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше
  • wincache_ucache_add() - Добавляет переменную в пользовательский кеш, только если переменная ещё не существует в кеше
  • wincache_ucache_get() - Получает переменную, хранящуюся в пользовательском кеше
  • wincache_ucache_clear() - Удаляет всё содержимое пользовательского кеша
  • wincache_ucache_delete() - Удаляет переменные из пользовательского кеша
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше


Получает переменную, хранящуюся в пользовательском кеше

  • « wincache_ucache_exists
  • wincache_ucache_inc »
  • PHP Manual
  • Функции WinCache
  • Получает переменную, хранящуюся в пользовательском кеше

wincache_ucache_get

(PECL wincache >= 1.1.0)

wincache_ucache_get — Получает переменную, хранящуюся в пользовательском кеше

Описание

wincache_ucache_get(mixed $key, bool &$success = ?): mixed

Получает переменную, хранящуюся в пользовательском кеше.

Список параметров

key

Параметр key, который использовался для хранения переменной в кеше. key чувствителен к регистру. key может быть массивом ключей. В этом случае возвращаемое значение будет массивом значений каждого элемента в массиве key. Если возвращается объект или массив, содержащий объекты, то объекты будут десериализованы. Подробнее о десериализации объектов смотрите __wakeup().

success

Будет установлено значение true в случае успешного выполнения или false в случае возникновения ошибки.

Возвращаемые значения

Если параметр key является строкой, функция возвращает значение переменной, хранящейся с этим ключом. Для параметра success будет установлено значение true в случае успешного выполнения или false в случае возникновения ошибки.

Если параметр key - это массив, параметр success всегда будет иметь значение true. Возвращённый массив (пары имя => значение) будет содержать только те пары имя => значение, для которых операция получения в пользовательском кеше была успешной. Если ни один из ключей в массиве ключей не находит совпадения в пользовательском кеше, будет возвращён пустой массив.

Примеры

Пример #1 wincache_ucache_get() с key в виде строки

<?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() с key в виде массива

<?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() - Добавляет переменную в пользовательский кеш, только если переменная ещё не существует в кеше
  • wincache_ucache_set() - Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше
  • wincache_ucache_delete() - Удаляет переменные из пользовательского кеша
  • wincache_ucache_clear() - Удаляет всё содержимое пользовательского кеша
  • wincache_ucache_exists() - Проверяет, существует ли переменная в пользовательском кеше
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • __wakeup()


Увеличивает значение, связанное с ключом

  • « wincache_ucache_get
  • wincache_ucache_info »
  • PHP Manual
  • Функции WinCache
  • Увеличивает значение, связанное с ключом

wincache_ucache_inc

(PECL wincache >= 1.1.0)

wincache_ucache_inc — Увеличивает значение, связанное с ключом

Описание

wincache_ucache_inc(string $key, int $inc_by = 1, bool &$success = ?): mixed

Увеличивает значение, связанное с key на 1 или как указано в inc_by.

Список параметров

key

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

inc_by

Значение, на которое должна быть увеличена переменная, связанная с key. Если аргумент является числом с плавающей точкой, он будет усечён до ближайшего целого числа. Переменная, связанная с key, должна иметь тип long, иначе функция завершится ошибкой и вернёт false.

success

Будет установлено значение true в случае успешного выполнения и false в случае возникновения ошибки.

Возвращаемые значения

Возвращает увеличенное значение в случае успешного выполнения и false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования 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() - Уменьшает значение, связанное с ключом
  • wincache_ucache_cas() - Сравнивает переменную со старым значением и присваивает ей новое значение


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

  • « wincache_ucache_inc
  • wincache_ucache_meminfo »
  • PHP Manual
  • Функции WinCache
  • Получает информацию о данных, хранящихся в пользовательском кеше

wincache_ucache_info

(PECL wincache >= 1.1.0)

wincache_ucache_info — Получает информацию о данных, хранящихся в пользовательском кеше

Описание

wincache_ucache_info(bool $summaryonly = false, string $key = NULL): array|false

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

Список параметров

summaryonly

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

key

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

Возвращаемые значения

Массив метаданных об использовании пользовательского кеша или false в случае возникновения ошибки

Массив, возвращаемый этой функцией, содержит следующие элементы:

  • total_cache_uptime - общее время в секундах, в течение которого пользовательский кеш был активен.
  • total_item_count - общее количество элементов, которые в данный момент находятся в пользовательском кеше.
  • is_local_cache - true - метаданные кеша предназначены для экземпляра локального кеша, false, если метаданные предназначены для глобального кеша.
  • total_hit_count - количество раз, когда данные были получены из кеша.
  • total_miss_count - количество раз, когда данные не были найдены в кеше.

  • ucache_entries - массив, содержащий информацию обо всех кешированных элементах:

    • key_name - имя ключа, который используется для хранения данных.
    • value_type - тип значения, хранимого ключом.
    • use_time - время в секундах с момента обращения к файлу в кеше опкодов.
    • last_check - время в секундах с момента проверки файла на наличие модификаций.
    • is_session - указывает, являются ли данные переменной сессии.
    • ttl_seconds - время, оставшееся для данных, чтобы находиться в кеше, 0 означает бесконечность.
    • age_seconds - время, прошедшее с момента добавления данных в кеш.
    • hitcount - количество раз, когда данные были получены из кеша.

Примеры

Пример #1 Пример использования 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() - Получает информацию об использовании памяти файлового кеша
  • wincache_ocache_fileinfo() - Получает информацию о файлах, закешированных в кеше опкодов
  • wincache_ocache_meminfo() - Получает информацию об использовании кеш-памяти опкодов
  • wincache_rplist_meminfo() - Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
  • wincache_rplist_fileinfo() - Получает информацию о разрешении кеша пути к файлу разрешения
  • wincache_refresh_if_changed() - Обновляет записи кеша для закешированных файлов
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_scache_info() - Получает информацию о файлах, закешированных в кеше сессии
  • wincache_scache_meminfo() - Получает информацию об использовании кеш-памяти сессии


Получает информацию об использовании памяти пользовательского кеша

  • « wincache_ucache_info
  • wincache_ucache_set »
  • PHP Manual
  • Функции WinCache
  • Получает информацию об использовании памяти пользовательского кеша

wincache_ucache_meminfo

(PECL wincache >= 1.1.0)

wincache_ucache_meminfo — Получает информацию об использовании памяти пользовательского кеша

Описание

wincache_ucache_meminfo(): array|false

Получает информацию об использовании памяти пользовательского кеша.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив метаданных об использовании памяти пользовательского кеша или false в случае возникновения ошибки

Массив, возвращаемый этой функцией, содержит следующие элементы:

  • memory_total - объем памяти в байтах, выделенный для пользовательского кеша
  • memory_free - объем свободной памяти в байтах, доступной для пользовательского кеша
  • num_used_blks - количество блоков памяти, используемых пользовательским кешем
  • num_free_blks - количество свободных блоков памяти, доступных для пользовательского кеша
  • memory_overhead - объем памяти в байтах, используемый для внутренних структур пользовательского кеша

Примеры

Пример #1 Пример использования wincache_ucache_meminfo()

<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() - Получает информацию о файлах, закешированных в файловом кеше
  • wincache_fcache_meminfo() - Получает информацию об использовании памяти файлового кеша
  • wincache_ocache_fileinfo() - Получает информацию о файлах, закешированных в кеше опкодов
  • wincache_rplist_fileinfo() - Получает информацию о разрешении кеша пути к файлу разрешения
  • wincache_rplist_meminfo() - Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
  • wincache_refresh_if_changed() - Обновляет записи кеша для закешированных файлов
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • wincache_scache_info() - Получает информацию о файлах, закешированных в кеше сессии
  • wincache_scache_meminfo() - Получает информацию об использовании кеш-памяти сессии


Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше

  • « wincache_ucache_meminfo
  • wincache_unlock »
  • PHP Manual
  • Функции WinCache
  • Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше

wincache_ucache_set

(PECL wincache >= 1.1.0)

wincache_ucache_set — Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше

Описание

wincache_ucache_set(mixed $key, mixed $value, int $ttl = 0): bool
wincache_ucache_set(array $values, mixed $unused = NULL, int $ttl = 0): bool

Добавляет переменную в пользовательский кеш. Заменяет переменную, если она уже существует в кеше. Добавленная или обновлённая переменная остаётся в пользовательском кеше, пока не истечёт срок её действия или она не будет удалена с помощью функций wincache_ucache_delete() или wincache_ucache_clear().

Список параметров

key

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

value

Значение переменной, которую необходимо сохранить. Value поддерживает все типы данных, кроме ресурсов, таких как дескрипторы файлов. Параметр игнорируется, если первым аргументом является массив. Общее руководство - передать null в качестве value при использовании массива key. Если value является объектом или массивом, содержащим объекты, то объекты будут сериализованы. Подробнее о сериализации объектов смотрите в описании __sleep().

values

Ассоциативный массив ключей и значений.

ttl

Время, в течение которого переменная находится в кеше, в секундах. После того, как значение, указанное в ttl будет передано, сохранённая переменная будет удалена из кеша. Параметр принимает значение по умолчанию 0, что означает, что переменная останется в кеше, пока она не будет явно удалена с помощью функций wincache_ucache_delete() или wincache_ucache_clear().

Возвращаемые значения

Если key является строкой, функция возвращает true в случае успешного выполнения и false в случае возникновения ошибки.

Если key является массивом, функция возвращает:

  • Если все пары имя => значение в массиве могут быть установлены, функция возвращает пустой массив;
  • Если все пары имя => значение в массиве не могут быть установлены, функция возвращает false;
  • Если некоторые из них могут быть установлены, а другие - нет, функция возвращает массив с парами name => value, которые не удалось добавить в пользовательский кеш.

Примеры

Пример #1 Пример использования wincache_ucache_set() с key в виде строки

<?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() с key в виде массива

<?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() - Добавляет переменную в пользовательский кеш, только если переменная ещё не существует в кеше
  • wincache_ucache_get() - Получает переменную, хранящуюся в пользовательском кеше
  • wincache_ucache_delete() - Удаляет переменные из пользовательского кеша
  • wincache_ucache_clear() - Удаляет всё содержимое пользовательского кеша
  • wincache_ucache_exists() - Проверяет, существует ли переменная в пользовательском кеше
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • __sleep()


Снимает эксклюзивную блокировку данного ключа

  • « wincache_ucache_set
  • Сборка для Windows »
  • PHP Manual
  • Функции WinCache
  • Снимает эксклюзивную блокировку данного ключа

wincache_unlock

(PECL wincache >= 1.1.0)

wincache_unlock — Снимает эксклюзивную блокировку данного ключа

Описание

wincache_unlock(string $key): bool

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

Внимание

Использование wincache_lock() и wincache_unlock() может вызвать взаимную блокировку при выполнении скриптов PHP в многопроцессорной среде, такой как FastCGI. Не используйте эти функции, если вы не уверены, что вам это нужно. Для большинства операций с пользовательским кешем эти функции использовать не обязательно.

Список параметров

key

Имя ключа в кеше для снятия блокировки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования wincache_unlock()

<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock("lock_txt_lock")) { // получить эксклюзивную блокировку
ftruncate($fp, 0); // обрезать файл
fwrite($fp, "Напишите что-нибудь здесь\n");
wincache_unlock("lock_txt_lock"); // снять блокировку
} else {
echo "Не удалось получить блокировку!";
}
fclose($fp);
?>

Смотрите также

  • wincache_lock() - Получает эксклюзивную блокировку для данного ключа
  • wincache_ucache_set() - Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше
  • wincache_ucache_get() - Получает переменную, хранящуюся в пользовательском кеше
  • wincache_ucache_delete() - Удаляет переменные из пользовательского кеша
  • wincache_ucache_clear() - Удаляет всё содержимое пользовательского кеша
  • wincache_ucache_exists() - Проверяет, существует ли переменная в пользовательском кеше
  • wincache_ucache_meminfo() - Получает информацию об использовании памяти пользовательского кеша
  • wincache_ucache_info() - Получает информацию о данных, хранящихся в пользовательском кеше
  • wincache_scache_info() - Получает информацию о файлах, закешированных в кеше сессии


  • « 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 (int)
Используется для исключения профилирования встроенных функций.
XHPROF_FLAGS_CPU (int)
Используется для добавления в отчёт информации по профилированию CPU.
XHPROF_FLAGS_MEMORY (int)
Используется для добавления в отчёт информации по профилированию памяти.


Примеры

Пример #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(): 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

Список изменений

Версия | Описание
PECL xhprof 0.9.2 | Добавлен необязательный параметр options.

Примеры

Пример #1 Пример использования xhprof_enable()

<?php
// 1. время исполнения + память + CPU; также игнорируем функции стандартной библиотеки
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

// 2. время исполнения; игнорируем при профилировании 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(): 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
  • Yac »
  • PHP Manual
  • Функции Xhprof
  • Запуск сэмплирующего режима профилирования XHProf

xhprof_sample_enable

(PECL xhprof >= 0.9.0)

xhprof_sample_enable — Запуск сэмплирующего режима профилирования XHProf

Описание

xhprof_sample_enable(): void

Запуск сэмплирующего режима профилирования, который является облегчённой версией xhprof_enable(). Интервал семплирования составляет 0.1 секунды и при каждой итерации записывается стек вызовов. Данный режим предназначен для снижения накладных расходов при мониторинге производительности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

null

Смотрите также

  • xhprof_sample_disable() - Остановить сэмплирующие профилирование xhprof
  • xhprof_enable() - Запуск профилирования xhprof
  • memory_get_usage() - Возвращает количество памяти, выделенное для PHP
  • getrusage() - Получает информацию об использовании текущего ресурса


Yac

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Yac — Класс Yac
    • Yac::add — Сохраняет в кеш
    • Yac::__construct — Конструктор класса
    • Yac::delete — Удаляет элементы из кеша
    • Yac::dump — Дамп кеша
    • Yac::flush — Очищает кеш
    • Yac::get — Извлекает значения из кеша
    • Yac::__get — Геттер
    • Yac::info — Состояние кеша
    • Yac::set — Сохраняет в кеш
    • Yac::__set — Сеттер


Введение

Yac (Yet Another cache) - это свободный от блокировок кеш пользовательских данных с общей памятью, который можно использовать для замены APC и локального кеширования в памяти.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования


Установка

Этот модуль » PECL не поставляется вместе с PHP.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/yac.

Бинарные файлы Windows (файлы DLL) для этого модуля PECL доступны на сайте PECL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Yac
Имя | По умолчанию | Место изменения | Список изменений
yac.compress_threshold | -1 | PHP_INI_SYSTEM |
yac.debug | 0 | PHP_INI_ALL |
yac.enable | 1 | PHP_INI_SYSTEM |
yac.enable_cli | 0 | PHP_INI_SYSTEM |
yac.keys_memory_size | 4M | PHP_INI_SYSTEM |
yac.serializer | php | PHP_INI_SYSTEM |
yac.values_memory_size | 64M | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

yac.compress_threshold int

yac.debug int

yac.enable int

yac.enable_cli int

yac.keys_memory_size string

yac.serializer string

yac.values_memory_size string


  • « Настройка во время выполнения
  • Предопределённые константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов


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

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

YAC_VERSION (string)
YAC_MAX_KEY_LEN (int)
Максимальная длина ключа может быть 48 байтов.
YAC_MAX_VALUE_RAW_LEN (int)
YAC_MAX_RAW_COMPRESSED_LEN (int)
YAC_SERIALIZER_PHP (int)
Использовать php serialize в качестве сериализатора
YAC_SERIALIZER_JSON (int)
Использовать json в качестве сериализатора (требуется --enable-json)
YAC_SERIALIZER_IGBINARY (int)
Использовать igbinary в качестве сериализатора (требуется --enable-igbinary)
YAC_SERIALIZER_MSGPACK (int)
Использовать msgpack в качестве сериализатора (требуется --enable-msgpack)
YAC_SERIALIZER (string)
Какой сериализатор используется в yac


Класс Yac

(PECL yac >= 1.0.0)

Введение

Обзор классов

class Yac {
/* Свойства */
protected $_prefix;
/* Методы */
public __construct(string $prefix = "")
public add(string $keys, mixed $value, int $ttl = 0): bool
public add(array $key_vals): bool
public delete(string|array $keys, int $ttl = ?): bool
public dump(int $$num): mixed
public flush(): bool
public get(string|array $key, int &$cas = null): mixed
public __get(string $key): mixed
public info(): array
public set(string $keys, mixed $value, int $ttl = 0): bool
public add(array $key_vals): bool
public __set(string $keys, mixed $value): mixed
}

Свойства

_prefix

Содержание

  • Yac::add — Сохраняет в кеш
  • Yac::__construct — Конструктор класса
  • Yac::delete — Удаляет элементы из кеша
  • Yac::dump — Дамп кеша
  • Yac::flush — Очищает кеш
  • Yac::get — Извлекает значения из кеша
  • Yac::__get — Геттер
  • Yac::info — Состояние кеша
  • Yac::set — Сохраняет в кеш
  • Yac::__set — Сеттер


Сохраняет в кеш

  • « Yac
  • Yac::__construct »
  • PHP Manual
  • Yac
  • Сохраняет в кеш

Yac::add

(PECL yac >= 1.0.0)

Yac::add — Сохраняет в кеш

Описание

public Yac::add(string $keys, mixed $value, int $ttl = 0): bool
public Yac::add(array $key_vals): bool

Добавляет элемент в кеш.

Список параметров

keys

Ключ (string)

value

Смешанное значение. Могут быть сохранены все типы значений php, кроме resource

ttl

Время жизни

Возвращаемые значения

bool, true в случае успешного выполнения, false в случае возникновения ошибки

Замечание:

Yac::add() может завершиться с ошибкой, если не удалось получить блокировку cas, поэтому, если вам нужно, чтобы значение сохранялось должным образом, вы можете написать следующее:

Пример #1 Убедитесь, что элемент хранится

while(!$yac->set("key", "vale));


Конструктор класса

  • « Yac::add
  • Yac::delete »
  • PHP Manual
  • Yac
  • Конструктор класса

Yac::__construct

(PECL yac >= 1.0.0)

Yac::__construct — Конструктор класса

Описание

public Yac::__construct(string $prefix = "")

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

Список параметров

prefix

Префикс (string)

Ошибки

Выбрасывает Exception, если Yac не включён. Выбрасывает Exception, если prefix превышает максимальную длину ключа 48 (YAC_MAX_KEY_LEN) байтов.


Удаляет элементы из кеша

  • « Yac::__construct
  • Yac::dump »
  • PHP Manual
  • Yac
  • Удаляет элементы из кеша

Yac::delete

(PECL yac >= 1.0.0)

Yac::delete — Удаляет элементы из кеша

Описание

public Yac::delete(string|array $keys, int $ttl = ?): bool

Удаляет элементы из кеша

Список параметров

keys

Строковый ключ или массив из нескольких ключей, которые нужно удалить

ttl

Если задана задержка, удаление отметит элементы как недопустимые в течение ttl секунд.

Возвращаемые значения


Дамп кеша

  • « Yac::delete
  • Yac::flush »
  • PHP Manual
  • Yac
  • Дамп кеша

Yac::dump

(PECL yac >= 1.0.0)

Yac::dump — Дамп кеша

Описание

public Yac::dump(int $$num): mixed

Дамп значений, хранящихся в кеше

Список параметров

num

Максимальное количество элементов, которые должны быть возвращены

Возвращаемые значения

Смешанное значение.


Очищает кеш

  • « Yac::dump
  • Yac::get »
  • PHP Manual
  • Yac
  • Очищает кеш

Yac::flush

(PECL yac >= 1.0.0)

Yac::flush — Очищает кеш

Описание

public Yac::flush(): bool

Удаляет все кешированные значения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Логическое значение, всегда возвращает true


Извлекает значения из кеша

  • « Yac::flush
  • Yac::__get »
  • PHP Manual
  • Yac
  • Извлекает значения из кеша

Yac::get

(PECL yac >= 1.0.0)

Yac::get — Извлекает значения из кеша

Описание

public Yac::get(string|array $key, int &$cas = null): mixed

Извлекает значения из кеша

Список параметров

key

Ключ (string) или массив (array), состоящий из нескольких ключей

cas

Если не null, будет установлен регистр извлечённых элементов.

Возвращаемые значения

Смешанное значение в случае успешного выполнения, false в случае возникновения ошибки


Геттер

  • « Yac::get
  • Yac::info »
  • PHP Manual
  • Yac
  • Геттер

Yac::__get

(PECL yac >= 1.0.0)

Yac::__get — Геттер

Описание

public Yac::__get(string $key): mixed

Извлекает значения из кеша

Список параметров

key

Ключ (string)

Возвращаемые значения

Смешанное значение в случае успешного выполнения, null в случае возникновения ошибки


Состояние кеша

  • « Yac::__get
  • Yac::set »
  • PHP Manual
  • Yac
  • Состояние кеша

Yac::info

(PECL yac >= 1.0.0)

Yac::info — Состояние кеша

Описание

public Yac::info(): array

Получает статус кеш-системы

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Вернуть массив, соответствующий: "memory_size", "slots_memory_size", "values_memory_size", "segment_size", "segment_num", "miss", "hits", "fails", "kicks", "recycles", "slots_size", "slots_used"


Сохраняет в кеш

  • « Yac::info
  • Yac::__set »
  • PHP Manual
  • Yac
  • Сохраняет в кеш

Yac::set

(PECL yac >= 1.0.0)

Yac::set — Сохраняет в кеш

Описание

public Yac::set(string $keys, mixed $value, int $ttl = 0): bool
public Yac::add(array $key_vals): bool

Добавляет элемент в кеш, если ключ уже существует, заменяет его.

Список параметров

keys

Ключ (string)

value

Смешанное значение. Могут быть сохранены все типы значений php, кроме resource

ttl

Время жизни

Возвращаемые значения

Собственное значение


Сеттер

  • « Yac::set
  • Обработка аудио форматов »
  • PHP Manual
  • Yac
  • Сеттер

Yac::__set

(PECL yac >= 1.0.0)

Yac::__set — Сеттер

Описание

public Yac::__set(string $keys, mixed $value): mixed

Сохраняет элемент в кеш

Список параметров

keys

Ключ (string)

value

Смешанное значение. Могут быть сохранены все типы значений php, кроме resource

Возвращаемые значения

Всегда возвращает собственное значение


Обработка аудио форматов

  • OpenAL — Аудиопотоки OpenAL
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции OpenAL


Аудиопотоки 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.


  • « Установка
  • Типы ресурсов »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

Данный модуль не определяет никакие директивы конфигурации в php.ini.


Типы ресурсов

Этот модуль определяет четыре типа ресурсов:
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 (int)
Атрибут контекста
ALC_REFRESH (int)
Атрибут контекста
ALC_SYNC (int)
Атрибут контекста
AL_FREQUENCY (int)
Настройка буфера
AL_BITS (int)
Настройка буфера
AL_CHANNELS (int)
Настройка буфера
AL_SIZE (int)
Настройка буфера
AL_BUFFER (int)
Настройка источника/слушателя (целое число)
AL_SOURCE_RELATIVE (int)
Настройка источника/слушателя (целое число)
AL_SOURCE_STATE (int)
Настройка источника/слушателя (целое число)
AL_PITCH (int)
Настройка источника/слушателя (рациональное число)
AL_GAIN (int)
Настройка источника/слушателя (рациональное число)
AL_MIN_GAIN (int)
Настройка источника/слушателя (рациональное число)
AL_MAX_GAIN (int)
Настройка источника/слушателя (рациональное число)
AL_MAX_DISTANCE (int)
Настройка источника/слушателя (рациональное число)
AL_ROLLOFF_FACTOR (int)
Настройка источника/слушателя (рациональное число)
AL_CONE_OUTER_GAIN (int)
Настройка источника/слушателя (рациональное число)
AL_CONE_INNER_ANGLE (int)
Настройка источника/слушателя (рациональное число)
AL_CONE_OUTER_ANGLE (int)
Настройка источника/слушателя (рациональное число)
AL_REFERENCE_DISTANCE (int)
Настройка источника/слушателя (рациональное число)
AL_POSITION (int)
Настройка источника/слушателя (рациональный вектор)
AL_VELOCITY (int)
Настройка источника/слушателя (рациональный вектор)
AL_DIRECTION (int)
Настройка источника/слушателя (рациональный вектор)
AL_ORIENTATION (int)
Настройка источника/слушателя (рациональный вектор)
AL_FORMAT_MONO8 (int)
Формат PCM
AL_FORMAT_MONO16 (int)
Формат PCM
AL_FORMAT_STEREO8 (int)
Формат PCM
AL_FORMAT_STEREO16 (int)
Формат PCM
AL_INITIAL (int)
Статус источника
AL_PLAYING (int)
Статус источника
AL_PAUSED (int)
Статус источника
AL_STOPPED (int)
Статус источника
AL_LOOPING (int)
Статус источника
AL_TRUE (int)
Логическое значение, понимаемое OpenAL
AL_FALSE (int)
Логическое значение, понимаемое 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(): 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|false

Список параметров

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(): 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|false

Список параметров

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() - Бинарно-безопасная запись в файл


Службы аутентификации

  • Radius
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции Radius


Radius

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
    • Опции RADIUS
    • типы пакетов RADIUS
    • Типы атрибутов RADIUS
    • Атрибуты RADIUS специфичные для разных производителей
  • Примеры
  • Функции Radius
    • radius_acct_open — Создаёт дескриптор Radius для учёта
    • radius_add_server — Добавляет сервер
    • radius_auth_open — Создаёт дескриптор Radius для аутентификации
    • radius_close — Освобождает все ресурсы
    • radius_config — Заставляет библиотеку читать данный файл конфигурации
    • radius_create_request — Создаёт учётную запись или запрос аутентификации
    • radius_cvt_addr — Преобразует необработанные данные в IP-адрес
    • radius_cvt_int — Преобразует необработанные данные в целое число
    • radius_cvt_string — Преобразует необработанные данные в строку
    • radius_demangle_mppe_key — Получает mppe-ключи из искажённых данных
    • radius_demangle — Расшифровывает данные
    • radius_get_attr — Извлекает атрибут
    • radius_get_tagged_attr_data — Извлекает данные из помеченного атрибута
    • radius_get_tagged_attr_tag — Извлекает тег из помеченного атрибута
    • radius_get_vendor_attr — Извлекает атрибут, зависящий от поставщика
    • radius_put_addr — Присоединяет атрибут IP-адреса
    • radius_put_attr — Присоединяет бинарный атрибут
    • radius_put_int — Присоединяет целочисленный атрибут
    • radius_put_string — Присоединяет строковый атрибут
    • radius_put_vendor_addr — Присоединяет атрибут IP-адреса конкретного поставщика
    • radius_put_vendor_attr — Присоединяет бинарный атрибут, зависящий от поставщика
    • radius_put_vendor_int — Присоединяет целочисленный атрибут, зависящий от поставщика
    • radius_put_vendor_string — Присоединяет строковый атрибут, зависящий от поставщика
    • radius_request_authenticator — Возвращает аутентификатор запроса
    • radius_salt_encrypt_attr — Зашифровывает значение с помощью соли
    • radius_send_request — Отправляет запрос и ждёт ответ
    • radius_server_secret — Возвращает общий секрет
    • radius_strerror — Возвращает сообщение об ошибке


Введение

Пакет базируется на библиотеке 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 (int)
Максимальная длина ключей MPPE.


Опции RADIUS

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

RADIUS_OPTION_SALT (int)

Если установлено, то значение атрибута будет зашифровано с солью.

RADIUS_OPTION_TAGGED (int)

Если установлено, то значение атрибута будет помечено тегом, заданным соответствующим параметром.


типы пакетов RADIUS

Пакеты RADIUS, будь то запрос или ответ, всегда включают тип. Эти константы полезны при задании типа при использовании radius_create_request() и при обработке ответа radius_send_request().

RADIUS_ACCESS_REQUEST (int)

Запрос Access-Request (Запрос доступа), используется для аутентификации пользователя сервером RADIUS. Данные пакеты должны содержать атрибут RADIUS_NAS_IP_ADDRESS или RADIUS_NAS_IDENTIFIER , также должны содержать RADIUS_USER_PASSWORD, RADIUS_CHAP_PASSWORD или RADIUS_STATE , и могут содержать атрибут RADIUS_USER_NAME.

RADIUS_ACCESS_ACCEPT (int)

Ответ Access-Accept (Доступ разрешён) приходит в ответ на запрос Access-Request и означает, что сервер RADIUS успешно аутентифицировал пользователя.

RADIUS_ACCESS_REJECT (int)

Ответ Access-Reject (В доступе отказано) приходит в ответ на запрос Access-Request и означает, что сервер RADIUS не смог аутентифицировать пользователя.

RADIUS_ACCESS_CHALLENGE (int)

Ответ Access-Challenge (СОмнение в праве на доступ) приходит в ответ на запрос Access-Request и означает, что серверу RADIUS требуется дополнительная информация для принятия решения по аутентификации.

RADIUS_ACCOUNTING_REQUEST (int)

Запрос Accounting-Request (Запрос учётных данных), используется для передачи учётной информации для службы на сервер RADIUS.

RADIUS_ACCOUNTING_RESPONSE (int)

Ответ Accounting-Response (Учётные данные) является ответом на запрос Accounting-Request.

RADIUS_COA_REQUEST (int)

Запрос CoA-Request посылается с сервера RADIUS и означает, что изменилась авторизация в сеансе пользователя. Ответ должен быть отправлен в форме CoA-ACK или CoA-NAK.

Эта константа доступна в PECL radius 1.3.0 и выше.

RADIUS_COA_ACK (int)

Ответ CoA-ACK, посылается на сервер RADIUS для обозначения, что авторизация пользователя обновлена.

Эта константа доступна в PECL radius 1.3.0 и выше.

RADIUS_COA_NAK (int)

Ответ CoA-NAK, посылается на сервер RADIUS для обозначения, что авторизация пользователя не может быть обновлена.

Эта константа доступна в PECL radius 1.3.0 и выше.

RADIUS_DISCONNECT_REQUEST (int)

Запрос Disconnect-Request (Запрос прерывания сессии), посылается с сервера RADIUS и означает, что необходимо прервать сеанс пользователя.

Эта константа доступна в PECL radius 1.3.0 и выше.

RADIUS_DISCONNECT_ACK (int)

Ответ Disconnect-ACK, посылается на сервер RADIUS и означает, что пользовательская сессия завершена.

Эта константа доступна в PECL radius 1.3.0 и выше.

RADIUS_DISCONNECT_NAK (int)

Ответ 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 (int)

Атрибут User-Name. Должен быть типа string и содержать имя аутентифицируемого пользователя. Атрибут можно установить функцией radius_put_attr().

RADIUS_USER_PASSWORD (int)

Атрибут User-Password. Должен быть типа string и содержать пароль пользователя. Атрибут можно установить функцией radius_put_attr(). Это значение будет обфусцировано при передаче согласно » секции 5.2 RFC 2865.

RADIUS_CHAP_PASSWORD (int)

Атрибут 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 (int)

Атрибут NAS-IP-Address. Ожидается, что значение будет IP-адресом клиента RADIUS в виде целого числа. Атрибут устанавливается функцией radius_put_addr().

RADIUS_NAS_PORT (int)

Атрибут NAS-Port. Ожидается, что значение будет физическим портом клиента RADIUS в виде целого числа. Атрибут устанавливается функцией radius_put_addr().

RADIUS_SERVICE_TYPE (int)

Атрибут 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 (int)

Атрибут Framed-Protocol. Атрибут должен быть целым числом, означающим используемый протокол обёртку. Атрибут устанавливается функцией radius_put_addr(). Допустимые значения:

  • RADIUS_PPP
  • RADIUS_SLIP
  • RADIUS_ARAP
  • RADIUS_GANDALF
  • RADIUS_XYLOGICS

RADIUS_FRAMED_IP_ADDRESS (int)

Атрибут Framed-IP-Address. Атрибут должен содержать адрес пользовательской сети в виде целого числа. Атрибут устанавливается функцией radius_put_addr() и извлекается функцией radius_cvt_addr().

RADIUS_FRAMED_IP_NETMASK (int)

Атрибут Framed-IP-Netmask. Атрибут должен содержать маску пользовательской сети в виде целого числа. Атрибут устанавливается функцией radius_put_addr() и извлекается функцией radius_cvt_addr()

RADIUS_FRAMED_ROUTING (int)

Атрибут Framed-Routing. Атрибут должен быть целым числом и содержать метод маршрутизации. Атрибут устанавливается функцией radius_put_addr().

Допустимые значения:

  • 0: Без маршрутизации
  • 1: Посылка пакетов маршрутизации
  • 2: Ожидать пакеты маршрутизации
  • 3: Посылать и ожидать

RADIUS_FILTER_ID (int)

Атрибут Filter-ID. Атрибут должен быть зависящей от реализации, человеко-читаемой строкой фильтров. Атрибут устанавливается функцией radius_put_addr()

RADIUS_FRAMED_MTU (int)

Атрибут Framed-MTU. Целое число, означающее значение MTU. Атрибут устанавливается функцией radius_put_addr()

RADIUS_FRAMED_COMPRESSION (int)

Атрибут 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 (int)

Атрибут Login-IP-Host. Целое число, представляющее IP-адрес, с которым соединяется пользователь. Атрибут устанавливается функцией radius_put_addr()

RADIUS_LOGIN_SERVICE (int)

Атрибут Login-Service. Значение атрибута означает сервис, с которым пользователь соединяется на сервере аутентификации. Это значение можно преобразовать в целое число PHP с помощью функции radius_cvt_int().

RADIUS_LOGIN_TCP_PORT (int)

Атрибут Login-TCP-Port. Значение атрибута означает порт, с которым пользователь соединяется на сервере аутентификации. Это значение можно преобразовать в целое число PHP с помощью функции radius_cvt_int().

RADIUS_REPLY_MESSAGE (int)

Атрибут Reply-Message. Значение атрибута содержит текст, который можно показать пользователю в ответ на запрос аутентификации.

RADIUS_CALLBACK_NUMBER (int)

Атрибут Callback-Number. Атрибут содержит строку, которую можно использовать как функцию обратного вызова.

RADIUS_CALLBACK_ID (int)

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

RADIUS_FRAMED_ROUTE (int)

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

RADIUS_FRAMED_IPX_NETWORK (int)

Атрибут Framed-IPX-Network. Целое число, определяющее сеть IPX, настроенную для пользователя или 0xFFFFFFFE, что призывает клиента RADIUS выбрать сеть самостоятельно. Можно извлечь с помощью radius_cvt_int().

RADIUS_STATE (int)

Атрибут State. Зависящая от реализации строка, включённая в ответ Access-Challenge пришедший от сервера, которую необходимо включить в последующий запрос Access-Request. Должен устанавливаться функцией radius_put_attr().

RADIUS_CLASS (int)

Атрибут Class. Произвольная строка включённая в сообщение Access-Accept и которая должна быть отослана серверу учётных данных в запросе Accounting-Request. Должен устанавливаться функцией radius_put_attr().

RADIUS_VENDOR_SPECIFIC (int)

Атрибут 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 (int)

Время ожидания сессии

RADIUS_IDLE_TIMEOUT (int)

Время ожидания простоя

RADIUS_TERMINATION_ACTION (int)

Прекращение операции

RADIUS_CALLED_STATION_ID (int)

Идентификатор вызываемой станции

RADIUS_CALLING_STATION_ID (int)

Идентификатор вызывающей станции

RADIUS_NAS_IDENTIFIER (int)

NAS ID

RADIUS_PROXY_STATE (int)

Состояние прокси

RADIUS_LOGIN_LAT_SERVICE (int)

Сервис входа в систему LAT

RADIUS_LOGIN_LAT_NODE (int)

Узел входа в систему LAT

RADIUS_LOGIN_LAT_GROUP (int)

Группа входа в систему LAT

RADIUS_FRAMED_APPLETALK_LINK (int)

Framed Appletalk Link

RADIUS_FRAMED_APPLETALK_NETWORK (int)

Framed Appletalk Network

RADIUS_FRAMED_APPLETALK_ZONE (int)

Framed Appletalk Zone

RADIUS_CHAP_CHALLENGE (int)

Проверочное значение

RADIUS_NAS_PORT_TYPE (int)

Тип порта 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 (int)

Ограничение на порты

RADIUS_LOGIN_LAT_PORT (int)

Порт входа в систему LAT

RADIUS_CONNECT_INFO (int)

Информация о соединении

RADIUS_ACCT_STATUS_TYPE (int)

Статус системы управления учётными данными, одна из констант:

  • RADIUS_START
  • RADIUS_STOP
  • RADIUS_ACCOUNTING_ON
  • RADIUS_ACCOUNTING_OFF

RADIUS_ACCT_DELAY_TIME (int)

Время задержки системы управления учётными данными

RADIUS_ACCT_INPUT_OCTETS (int)

Входящие байты в систему управления учётными данными

RADIUS_ACCT_OUTPUT_OCTETS (int)

Исходящие байты из системы управления учётными данными

RADIUS_ACCT_SESSION_ID (int)

Идентификатор сессии системы управления учётными данными

RADIUS_ACCT_AUTHENTIC (int)

Тип системы управления учётными данными, одна из констант:

  • RADIUS_AUTH_RADIUS
  • RADIUS_AUTH_LOCAL
  • RADIUS_AUTH_REMOTE

RADIUS_ACCT_SESSION_TIME (int)

Время сессии в системе управления учётными данными

RADIUS_ACCT_INPUT_PACKETS (int)

Входящие пакеты в систему управления учётными данными

RADIUS_ACCT_OUTPUT_PACKETS (int)

Исходящие пакеты из системы управления учётными данными

RADIUS_ACCT_TERMINATE_CAUSE (int)

Аварийное завершение сеанса управления учётными данными:

  • 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 (int)

Многосессионный идентификатор системы управления учётными данными

RADIUS_ACCT_LINK_COUNT (int)

Количество соединений системы управления учётными данными


Атрибуты RADIUS специфичные для разных производителей

RADIUS_VENDOR_MICROSOFT (int)

Атрибуты 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 — Создаёт дескриптор Radius для учёта
  • radius_add_server — Добавляет сервер
  • radius_auth_open — Создаёт дескриптор Radius для аутентификации
  • radius_close — Освобождает все ресурсы
  • radius_config — Заставляет библиотеку читать данный файл конфигурации
  • radius_create_request — Создаёт учётную запись или запрос аутентификации
  • radius_cvt_addr — Преобразует необработанные данные в IP-адрес
  • radius_cvt_int — Преобразует необработанные данные в целое число
  • radius_cvt_string — Преобразует необработанные данные в строку
  • radius_demangle_mppe_key — Получает mppe-ключи из искажённых данных
  • radius_demangle — Расшифровывает данные
  • radius_get_attr — Извлекает атрибут
  • radius_get_tagged_attr_data — Извлекает данные из помеченного атрибута
  • radius_get_tagged_attr_tag — Извлекает тег из помеченного атрибута
  • radius_get_vendor_attr — Извлекает атрибут, зависящий от поставщика
  • radius_put_addr — Присоединяет атрибут IP-адреса
  • radius_put_attr — Присоединяет бинарный атрибут
  • radius_put_int — Присоединяет целочисленный атрибут
  • radius_put_string — Присоединяет строковый атрибут
  • radius_put_vendor_addr — Присоединяет атрибут IP-адреса конкретного поставщика
  • radius_put_vendor_attr — Присоединяет бинарный атрибут, зависящий от поставщика
  • radius_put_vendor_int — Присоединяет целочисленный атрибут, зависящий от поставщика
  • radius_put_vendor_string — Присоединяет строковый атрибут, зависящий от поставщика
  • radius_request_authenticator — Возвращает аутентификатор запроса
  • radius_salt_encrypt_attr — Зашифровывает значение с помощью соли
  • radius_send_request — Отправляет запрос и ждёт ответ
  • radius_server_secret — Возвращает общий секрет
  • radius_strerror — Возвращает сообщение об ошибке


Создаёт дескриптор Radius для учёта

  • « Функции Radius
  • radius_add_server »
  • PHP Manual
  • Функции Radius
  • Создаёт дескриптор Radius для учёта

radius_acct_open

(PECL radius >= 1.1.0)

radius_acct_open — Создаёт дескриптор Radius для учёта

Описание

radius_acct_open(): resource

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает дескриптор в случае успешного выполнения или false в случае возникновения ошибки. Функция завершится с ошибкой, только если недостаточно памяти.

Примеры

Пример #1 Пример использования radius_acct_open()

<?php
$res = radius_acct_open ()
or die ("Не удалось создать дескриптор");
print("Дескриптор успешно создан");
?>


Добавляет сервер

  • « radius_acct_open
  • radius_auth_open »
  • PHP Manual
  • Функции Radius
  • Добавляет сервер

radius_add_server

(PECL radius >= 1.1.0)

radius_add_server — Добавляет сервер

Описание

radius_add_server(
resource $radius_handle,
string $hostname,
int $port,
string $secret,
int $timeout,
int $max_tries
): bool

radius_add_server() может вызываться несколько раз и может использоваться вместе с radius_config(). Можно указать не более 10 серверов. Когда задано несколько серверов, они проверяются циклически, пока не будет получен действительный ответ или пока не будет достигнут предел max_tries для каждого сервера.

Список параметров

radius_handle

hostname

Параметр hostname указывает хост сервера в виде полного доменного имени или IP-адреса, разделённого точками, в текстовом виде.

port

port указывает UDP-порт для связи на сервере. Если порт задан как 0, библиотека ищет сервис radius/udp или radacct/udp в базе данных сетевых сервисов, и использует найденный там порт. Если запись не найдена, библиотека использует стандартные порты Radius, 1812 для аутентификации и 1813 для учёта.

secret

Общий секрет для хоста сервера передаётся в параметре secret. Протокол Radius игнорирует всё, кроме первых 128 байтов общего секрета.

timeout

Время ожидания получения ответов от сервера передаётся в параметре timeout в секундах.

max_tries

Максимальное количество повторных запросов, которые нужно сделать перед отказом, передаётся в max_tries.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования radius_add_server()

<?php
if (!radius_add_server($res, 'radius.example.com', 1812, 'testing123', 3, 3)) {
echo 'RadiusError:' . radius_strerror($res). "\n<br>";
exit;
}
?>

Смотрите также

  • radius_config() - Заставляет библиотеку читать данный файл конфигурации


Создаёт дескриптор Radius для аутентификации

  • « radius_add_server
  • radius_close »
  • PHP Manual
  • Функции Radius
  • Создаёт дескриптор Radius для аутентификации

radius_auth_open

(PECL radius >= 1.1.0)

radius_auth_open — Создаёт дескриптор Radius для аутентификации

Описание

radius_auth_open(): resource

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает дескриптор в случае успешного выполнения или false в случае возникновения ошибки. Функция завершится с ошибкой, только если недостаточно памяти.

Примеры

Пример #1 Пример использования radius_auth_open()

<?php
$radh = radius_auth_open()
or die ("Не удалось создать дескриптор");
echo "Дескриптор успешно создан";
?>


Освобождает все ресурсы

  • « radius_auth_open
  • radius_config »
  • PHP Manual
  • Функции Radius
  • Освобождает все ресурсы

radius_close

(PECL radius >= 1.1.0)

radius_close — Освобождает все ресурсы

Описание

radius_close(resource $radius_handle): bool

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

Список параметров

radius_handle

Ресурс RADIUS.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Заставляет библиотеку читать данный файл конфигурации

  • « radius_close
  • radius_create_request »
  • PHP Manual
  • Функции Radius
  • Заставляет библиотеку читать данный файл конфигурации

radius_config

(PECL radius >= 1.1.0)

radius_config — Заставляет библиотеку читать данный файл конфигурации

Описание

radius_config(resource $radius_handle, string $file): bool

Перед выполнением любых запросов Radius, библиотека должна быть информирована о серверах, с которыми она может связаться. Самый простой способ настроить библиотеку - вызвать radius_config(). radius_config() заставляет библиотеку читать файл конфигурации, формат которого описан в » radius.conf.

Список параметров

radius_handle

file

Путь к файлу конфигурации передаётся в качестве аргумента файла в radius_config(). Библиотека также может быть настроена программно с помощью вызова radius_add_server().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • radius_add_server() - Добавляет сервер


Создаёт учётную запись или запрос аутентификации

  • « radius_config
  • radius_cvt_addr »
  • PHP Manual
  • Функции Radius
  • Создаёт учётную запись или запрос аутентификации

radius_create_request

(PECL radius >= 1.1.0)

radius_create_request — Создаёт учётную запись или запрос аутентификации

Описание

radius_create_request(resource $radius_handle, int $type): bool

Запрос Radius состоит из кода, указывающего тип запроса, и нуля или более атрибутов, которые предоставляют дополнительную информацию. Чтобы начать создание нового запроса, вызовите radius_create_request().

Замечание: Внимание: вы должны вызвать эту функцию, прежде чем вы сможете поместить любой атрибут!

Список параметров

radius_handle

type

Тип RADIUS_ACCESS_REQUEST или RADIUS_ACCOUNTING_REQUEST.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования radius_create_request()

<?php
if (!radius_create_request($res, RADIUS_ACCESS_REQUEST)) {
echo 'RadiusError:' . radius_strerror($res). "\n<br />";
exit;
}
?>

Смотрите также

  • radius_send_request() - Отправляет запрос и ждёт ответ


Преобразует необработанные данные в IP-адрес

  • « radius_create_request
  • radius_cvt_int »
  • PHP Manual
  • Функции Radius
  • Преобразует необработанные данные в IP-адрес

radius_cvt_addr

(PECL radius >= 1.1.0)

radius_cvt_addr — Преобразует необработанные данные в IP-адрес

Описание

radius_cvt_addr(string $data): string

Преобразует необработанные данные в IP-адрес

Список параметров

data

Входные данные

Возвращаемые значения

Возвращает IP-адрес.

Примеры

Пример #1 Пример использования radius_cvt_addr()

<?php
while ($resa = radius_get_attr($res)) {

if (!is_array($resa)) {
printf ("Ошибка при получении атрибута: %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<br>\n";
break;
}
}
?>

Смотрите также

  • radius_cvt_int() - Преобразует необработанные данные в целое число
  • radius_cvt_string() - Преобразует необработанные данные в строку


Преобразует необработанные данные в целое число

  • « radius_cvt_addr
  • radius_cvt_string »
  • PHP Manual
  • Функции Radius
  • Преобразует необработанные данные в целое число

radius_cvt_int

(PECL radius >= 1.1.0)

radius_cvt_int — Преобразует необработанные данные в целое число

Описание

radius_cvt_int(string $data): int

Преобразует необработанные данные в целое число

Список параметров

data

Входные данные

Возвращаемые значения

Возвращает целое число, полученное из данных.

Примеры

Пример #1 Пример использования radius_cvt_int()

<?php
while ($resa = radius_get_attr($res)) {

if (!is_array($resa)) {
printf ("Ошибка при получении атрибута: %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<br>\n";
break;
}
}
?>

Смотрите также

  • radius_cvt_addr() - Преобразует необработанные данные в IP-адрес
  • radius_cvt_string() - Преобразует необработанные данные в строку


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

  • « radius_cvt_int
  • radius_demangle_mppe_key »
  • PHP Manual
  • Функции Radius
  • Преобразует необработанные данные в строку

radius_cvt_string

(PECL radius >= 1.1.0)

radius_cvt_string — Преобразует необработанные данные в строку

Описание

radius_cvt_string(string $data): string

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

Список параметров

data

Входные данные

Возвращаемые значения

Возвращает строку, полученную из данных.

Примеры

Пример #1 Пример использования radius_cvt_string()

<?php
while ($resa = radius_get_attr($res)) {

if (!is_array($resa)) {
printf ("Ошибка при получении атрибута: %s\n", radius_strerror($res));
exit;
}

$attr = $resa['attr'];
$data = $resa['data'];

switch ($attr) {

case RADIUS_FILTER_ID:
$id = radius_cvt_string($data);
echo "Идентификатор фильтра: $id<br>\n";
break;
}
}
?>

Смотрите также

  • radius_cvt_addr() - Преобразует необработанные данные в IP-адрес
  • radius_cvt_int() - Преобразует необработанные данные в целое число


Получает mppe-ключи из искажённых данных

  • « radius_cvt_string
  • radius_demangle »
  • PHP Manual
  • Функции Radius
  • Получает mppe-ключи из искажённых данных

radius_demangle_mppe_key

(PECL radius >= 1.2.0)

radius_demangle_mppe_key — Получает mppe-ключи из искажённых данных

Описание

radius_demangle_mppe_key(resource $radius_handle, string $mangled): string

При использовании MPPE с MS-CHAPv2, ключи отправляемые и получаемые ключи искажаются (смотрите » RFC 2548), однако эта функция бесполезна, поскольку я не думаю, что есть или будет реализация PPTP-MPPE в PHP.

Список параметров

radius_handle

Ресурс RADIUS.

mangled

Искажённые данные, которые необходимо деформировать

Возвращаемые значения

Возвращает деформированную строку или false в случае возникновения ошибки.


Расшифровывает данные

  • « radius_demangle_mppe_key
  • radius_get_attr »
  • PHP Manual
  • Функции Radius
  • Расшифровывает данные

radius_demangle

(PECL radius >= 1.2.0)

radius_demangle — Расшифровывает данные

Описание

radius_demangle(resource $radius_handle, string $mangled): string

Некоторые данные (пароли, MS-CHAPv1 MPPE-ключи) искажены по соображениям безопасности и их необходимо расшифровать, прежде чем вы сможете их использовать.

Список параметров

radius_handle

Ресурс RADIUS.

mangled

Искажённые данные, которые необходимо расшифровать.

Возвращаемые значения

Возвращает расшифрованную строку или false в случае возникновения ошибки.


Извлекает атрибут

  • « radius_demangle
  • radius_get_tagged_attr_data »
  • PHP Manual
  • Функции Radius
  • Извлекает атрибут

radius_get_attr

(PECL radius >= 1.1.0)

radius_get_attr — Извлекает атрибут

Описание

radius_get_attr(resource $radius_handle): mixed

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

Список параметров

radius_handle

Ресурс RADIUS.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий тип атрибута и данные или номер ошибки <= 0.

Примеры

Пример #1 Пример использования radius_get_attr()

<?php
while ($resa = radius_get_attr($res)) {

if (!is_array($resa)) {
printf("Ошибка при получении атрибута: %s\n", radius_strerror($res));
exit;
}

$attr = $resa['attr'];
$data = $resa['data'];
printf("Получен атрибут: %d %d байт %s\n", $attr, strlen($data), bin2hex($data));
}
?>

Смотрите также

  • radius_put_attr() - Присоединяет бинарный атрибут
  • radius_get_vendor_attr() - Извлекает атрибут, зависящий от поставщика
  • radius_put_vendor_attr() - Присоединяет бинарный атрибут, зависящий от поставщика
  • radius_send_request() - Отправляет запрос и ждёт ответ


Извлекает данные из помеченного атрибута

  • « radius_get_attr
  • radius_get_tagged_attr_tag »
  • PHP Manual
  • Функции Radius
  • Извлекает данные из помеченного атрибута

radius_get_tagged_attr_data

(PECL radius >= 1.3.0)

radius_get_tagged_attr_data — Извлекает данные из помеченного атрибута

Описание

radius_get_tagged_attr_data(string $data): string|false

Если из radius_get_attr() был возвращён тегированный атрибут, radius_get_tagged_attr_data() вернёт тег из атрибута.

Список параметров

data

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

Возвращаемые значения

Возвращает данные из тегированного атрибута или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования radius_get_tagged_attr_data()

<?php
while ($resa = radius_get_attr($res)) {
if (!is_array($resa)) {
printf ("Ошибка при получении атрибута: %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("Получен тегированный атрибут с тегом %d и значением %s\n", $tag, $value);
}
?>

Смотрите также

  • radius_get_attr() - Извлекает атрибут
  • radius_get_tagged_attr_tag() - Извлекает тег из помеченного атрибута


Извлекает тег из помеченного атрибута

  • « radius_get_tagged_attr_data
  • radius_get_vendor_attr »
  • PHP Manual
  • Функции Radius
  • Извлекает тег из помеченного атрибута

radius_get_tagged_attr_tag

(PECL radius >= 1.3.0)

radius_get_tagged_attr_tag — Извлекает тег из помеченного атрибута

Описание

radius_get_tagged_attr_tag(string $data): int|false

Если из radius_get_attr() был возвращён тегированный атрибут, radius_get_tagged_attr_data() вернёт тег из атрибута.

Список параметров

data

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

Возвращаемые значения

Возвращает тег из тегированного атрибута или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования radius_get_tagged_attr_tag()

<?php
while ($resa = radius_get_attr($res)) {
if (!is_array($resa)) {
printf ("Ошибка при получении атрибута: %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("Получен тегированный атрибут с тегом %d и значением %s\n", $tag, $value);
}
?>

Смотрите также

  • radius_get_attr() - Извлекает атрибут
  • radius_get_tagged_attr_data() - Извлекает данные из помеченного атрибута


Извлекает атрибут, зависящий от поставщика

  • « radius_get_tagged_attr_tag
  • radius_put_addr »
  • PHP Manual
  • Функции Radius
  • Извлекает атрибут, зависящий от поставщика

radius_get_vendor_attr

(PECL radius >= 1.1.0)

radius_get_vendor_attr — Извлекает атрибут, зависящий от поставщика

Описание

radius_get_vendor_attr(string $data): array

Если radius_get_attr() вернула RADIUS_VENDOR_SPECIFIC, radius_get_vendor_attr() может быть вызвана для определения поставщика.

Список параметров

data

Входные данные

Возвращаемые значения

Возвращает ассоциативный массив, содержащий тип атрибута, поставщика и данные или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования radius_get_vendor_attr()

<?php
while ($resa = radius_get_attr($res)) {

if (!is_array($resa)) {
printf ("Ошибка при получении атрибута: %s\n", radius_strerror($res));
exit;
}

$attr = $resa['attr'];
$data = $resa['data'];
printf("Получен атрибут:%d %d байт %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("Получен атрибут поставщика:%d %d байт %s\n", $attrv, strlen($datav), bin2hex($datav));
}

}
}
?>

Смотрите также

  • radius_get_attr() - Извлекает атрибут
  • radius_put_vendor_attr() - Присоединяет бинарный атрибут, зависящий от поставщика


Присоединяет атрибут IP-адреса

  • « radius_get_vendor_attr
  • radius_put_attr »
  • PHP Manual
  • Функции Radius
  • Присоединяет атрибут IP-адреса

radius_put_addr

(PECL radius >= 1.1.0)

radius_put_addr — Присоединяет атрибут IP-адреса

Описание

radius_put_addr(
resource $radius_handle,
int $type,
string $addr,
int $options = 0,
int $tag = ?
): bool

Присоединяет атрибут IP-адреса к текущему запросу RADIUS.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

type

Тип атрибута.

addr

Адрес IPv4 в виде строки, например, 10.0.0.1.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | Добавлены параметры options и tag.


Присоединяет бинарный атрибут

  • « radius_put_addr
  • radius_put_int »
  • PHP Manual
  • Функции Radius
  • Присоединяет бинарный атрибут

radius_put_attr

(PECL radius >= 1.1.0)

radius_put_attr — Присоединяет бинарный атрибут

Описание

radius_put_attr(
resource $radius_handle,
int $type,
string $value,
int $options = 0,
int $tag = ?
): bool

Присоединяет бинарный атрибут к текущему запросу RADIUS.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

type

Тип атрибута.

value

Значение атрибута, которое будет рассматриваться как необработанная двоичная строка.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | Добавлены параметры options и tag.

Примеры

Пример #1 Пример использования radius_put_attr()

<?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 'Ошибка Radius:' . radius_strerror($res). "\n<br />";
exit;
}
?>

Смотрите также

  • radius_get_attr() - Извлекает атрибут
  • radius_get_vendor_attr() - Извлекает атрибут, зависящий от поставщика
  • radius_put_vendor_attr() - Присоединяет бинарный атрибут, зависящий от поставщика


Присоединяет целочисленный атрибут

  • « radius_put_attr
  • radius_put_string »
  • PHP Manual
  • Функции Radius
  • Присоединяет целочисленный атрибут

radius_put_int

(PECL radius >= 1.1.0)

radius_put_int — Присоединяет целочисленный атрибут

Описание

radius_put_int(
resource $radius_handle,
int $type,
int $value,
int $options = 0,
int $tag = ?
): bool

Присоединяет целочисленный атрибут к текущему запросу RADIUS.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

type

Тип атрибута.

value

Значение атрибута.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | Добавлены параметры options и tag.

Примеры

Пример #1 Пример использования radius_put_int()

<?php
if (!radius_put_int($res, RAD_FRAMED_PROTOCOL, RAD_PPP)) {
echo 'Ошибка Radius:' . radius_strerror($res). "\n<br />";
exit;
}
?>

Смотрите также

  • radius_put_string() - Присоединяет строковый атрибут
  • radius_put_vendor_int() - Присоединяет целочисленный атрибут, зависящий от поставщика
  • radius_put_vendor_string() - Присоединяет строковый атрибут, зависящий от поставщика


Присоединяет строковый атрибут

  • « radius_put_int
  • radius_put_vendor_addr »
  • PHP Manual
  • Функции Radius
  • Присоединяет строковый атрибут

radius_put_string

(PECL radius >= 1.1.0)

radius_put_string — Присоединяет строковый атрибут

Описание

radius_put_string(
resource $radius_handle,
int $type,
string $value,
int $options = 0,
int $tag = ?
): bool

Присоединяет строковый атрибут к текущему запросу RADIUS. В общем, radius_put_attr() - более полезная функция для присоединения строковых атрибутов, поскольку она бинарно безопасна.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

type

Тип атрибута.

value

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

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | Добавлены параметры options и tag.

Примеры

Пример #1 Пример использования radius_put_string()

<?php
if (!radius_put_string($res, RADIUS_USER_NAME, 'billy')) {
echo 'Ошибка Radius:' . radius_strerror($res). "\n<br />";
exit;
}
?>

Смотрите также

  • radius_put_int() - Присоединяет целочисленный атрибут
  • radius_put_vendor_int() - Присоединяет целочисленный атрибут, зависящий от поставщика
  • radius_put_vendor_string() - Присоединяет строковый атрибут, зависящий от поставщика


Присоединяет атрибут IP-адреса конкретного поставщика

  • « radius_put_string
  • radius_put_vendor_attr »
  • PHP Manual
  • Функции Radius
  • Присоединяет атрибут IP-адреса конкретного поставщика

radius_put_vendor_addr

(PECL radius >= 1.1.0)

radius_put_vendor_addr — Присоединяет атрибут IP-адреса конкретного поставщика

Описание

radius_put_vendor_addr(
resource $radius_handle,
int $vendor,
int $type,
string $addr
): bool

Присоединяет атрибут поставщика IP-адреса к текущему запросу RADIUS.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

vendor

ID производителя (vendor).

type

Тип атрибута.

addr

Адрес IPv4 в виде строки, например, 10.0.0.1.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | Добавлены параметры options и tag.


Присоединяет бинарный атрибут, зависящий от поставщика

  • « radius_put_vendor_addr
  • radius_put_vendor_int »
  • PHP Manual
  • Функции Radius
  • Присоединяет бинарный атрибут, зависящий от поставщика

radius_put_vendor_attr

(PECL radius >= 1.1.0)

radius_put_vendor_attr — Присоединяет бинарный атрибут, зависящий от поставщика

Описание

radius_put_vendor_attr(
resource $radius_handle,
int $vendor,
int $type,
string $value,
int $options = 0,
int $tag = ?
): bool

Присоединяет к текущему запросу RADIUS бинарный атрибут, зависящий от поставщика.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

vendor

ID производителя (vendor).

type

Тип атрибута.

value

Значение атрибута, которое будет рассматриваться как необработанная двоичная строка.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | Добавлены параметры options и tag.

Примеры

Пример #1 Пример использования radius_put_vendor_attr()

<?php
if (!radius_put_vendor_attr($res, RADIUS_VENDOR_MICROSOFT, RAD_MICROSOFT_MS_CHAP_CHALLENGE, $challenge)) {
echo 'Ошибка Radius:' . radius_strerror($res). "\n<br />";
exit;
}
?>

Смотрите также

  • radius_get_vendor_attr() - Извлекает атрибут, зависящий от поставщика


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

  • « radius_put_vendor_attr
  • radius_put_vendor_string »
  • PHP Manual
  • Функции Radius
  • Присоединяет целочисленный атрибут, зависящий от поставщика

radius_put_vendor_int

(PECL radius >= 1.1.0)

radius_put_vendor_int — Присоединяет целочисленный атрибут, зависящий от поставщика

Описание

radius_put_vendor_int(
resource $radius_handle,
int $vendor,
int $type,
int $value,
int $options = 0,
int $tag = ?
): bool

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

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

vendor

ID производителя (vendor).

type

Тип атрибута.

value

Значение атрибута.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | Добавлены параметры options и tag.

Смотрите также

  • radius_put_vendor_string() - Присоединяет строковый атрибут, зависящий от поставщика


Присоединяет строковый атрибут, зависящий от поставщика

  • « radius_put_vendor_int
  • radius_request_authenticator »
  • PHP Manual
  • Функции Radius
  • Присоединяет строковый атрибут, зависящий от поставщика

radius_put_vendor_string

(PECL radius >= 1.1.0)

radius_put_vendor_string — Присоединяет строковый атрибут, зависящий от поставщика

Описание

radius_put_vendor_string(
resource $radius_handle,
int $vendor,
int $type,
string $value,
int $options = 0,
int $tag = ?
): bool

Присоединяет к текущему запросу RADIUS строковый атрибут, зависящий от поставщика. В общем, radius_put_vendor_attr() - более полезная функция для присоединения строковых атрибутов, поскольку она бинарно безопасна.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

vendor

ID производителя (vendor).

type

Тип атрибута.

value

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

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | Добавлены параметры options и tag.

Смотрите также

  • radius_put_vendor_int() - Присоединяет целочисленный атрибут, зависящий от поставщика


Возвращает аутентификатор запроса

  • « radius_put_vendor_string
  • radius_salt_encrypt_attr »
  • PHP Manual
  • Функции Radius
  • Возвращает аутентификатор запроса

radius_request_authenticator

(PECL radius >= 1.1.0)

radius_request_authenticator — Возвращает аутентификатор запроса

Описание

radius_request_authenticator(resource $radius_handle): string

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

Список параметров

radius_handle

Ресурс RADIUS.

Возвращаемые значения

Возвращает аутентификатор запроса в виде строки или false в случае возникновения ошибки.

Смотрите также

  • radius_demangle() - Расшифровывает данные


Зашифровывает значение с помощью соли

  • « radius_request_authenticator
  • radius_send_request »
  • PHP Manual
  • Функции Radius
  • Зашифровывает значение с помощью соли

radius_salt_encrypt_attr

(PECL radius >= 1.3.0)

radius_salt_encrypt_attr — Зашифровывает значение с помощью соли

Описание

radius_salt_encrypt_attr(resource $radius_handle, string $data): string|false

Применяет алгоритм шифрования RADIUS к заданному значению.

Как правило, это делается автоматически путём предоставления опции RADIUS_OPTION_SALT функции установки атрибута, но эту функцию можно использовать, если требуется создание низкоуровневого запроса.

Список параметров

data

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

Возвращаемые значения

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

Смотрите также

  • radius_put_addr() - Присоединяет атрибут IP-адреса
  • radius_put_attr() - Присоединяет бинарный атрибут
  • radius_put_int() - Присоединяет целочисленный атрибут
  • radius_put_string() - Присоединяет строковый атрибут


Отправляет запрос и ждёт ответ

  • « radius_salt_encrypt_attr
  • radius_server_secret »
  • PHP Manual
  • Функции Radius
  • Отправляет запрос и ждёт ответ

radius_send_request

(PECL radius >= 1.1.0)

radius_send_request — Отправляет запрос и ждёт ответ

Описание

radius_send_request(resource $radius_handle): int

После создания запроса Radius отправляет его с помощью radius_send_request().

Функция radius_send_request() отправляет запрос и ожидает корректный ответ, повторяя попытки с определёнными серверами в циклическом режиме по мере необходимости.

Список параметров

radius_handle

Ресурс RADIUS.

Возвращаемые значения

Если получен корректный ответ, radius_send_request() возвращает код Radius, который указывает тип ответа. Обычно это RADIUS_ACCESS_ACCEPT, RADIUS_ACCESS_REJECT или RADIUS_ACCESS_CHALLENGE. Если корректный ответ не получен, radius_send_request() возвращает false.

Смотрите также

  • radius_create_request() - Создаёт учётную запись или запрос аутентификации


Возвращает общий секрет

  • « radius_send_request
  • radius_strerror »
  • PHP Manual
  • Функции Radius
  • Возвращает общий секрет

radius_server_secret

(PECL radius >= 1.1.0)

radius_server_secret — Возвращает общий секрет

Описание

radius_server_secret(resource $radius_handle): string

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

Список параметров

radius_handle

Ресурс RADIUS.

Возвращаемые значения

Возвращает общий секрет сервера в виде строки или false в случае возникновения ошибки.


Возвращает сообщение об ошибке

  • « radius_server_secret
  • Модули для работы с командной строкой »
  • PHP Manual
  • Функции Radius
  • Возвращает сообщение об ошибке

radius_strerror

(PECL radius >= 1.1.0)

radius_strerror — Возвращает сообщение об ошибке

Описание

radius_strerror(resource $radius_handle): string

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

Список параметров

radius_handle

Ресурс RADIUS.

Возвращаемые значения

Возвращает сообщения об ошибках в виде строки из функций radius, завершившихся ошибкой.


Модули для работы с командной строкой

  • Readline — GNU Readline
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции Readline


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 |
cli.prompt | "\\b \\> " | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

cli.pager string

Внешняя утилита для отображения вывода в командную строку.

cli.prompt string

Подсказка командной строки.


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

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

READLINE_LIB (string)
Библиотека, которая используется для поддержки readline; в настоящее время либо readline, либо libedit.


Функции 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, PHP 8)

readline_add_history — Добавляет строку в историю

Описание

readline_add_history(string $prompt): bool

Добавляет строку в историю ввода.

Список параметров

prompt

Строка, которую надо добавить в историю команд.

Возвращаемые значения

Возвращает 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, PHP 8)

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() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds


Удаляет ранее зарегистрированную callback-функцию и восстанавливает терминал

  • « readline_callback_handler_install
  • readline_callback_read_char »
  • PHP Manual
  • Функции Readline
  • Удаляет ранее зарегистрированную callback-функцию и восстанавливает терминал

readline_callback_handler_remove

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_callback_handler_remove — Удаляет ранее зарегистрированную callback-функцию и восстанавливает терминал

Описание

readline_callback_handler_remove(): 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, PHP 8)

readline_callback_read_char — Читает символ и информирует callback-функцию readline, что получена строка

Описание

readline_callback_read_char(): 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, PHP 8)

readline_clear_history — Очищает историю команд

Описание

readline_clear_history(): bool

Функция очищает историю ввода команд.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Зарегистрировать функцию автодополнения

  • « readline_clear_history
  • readline_info »
  • PHP Manual
  • Функции Readline
  • Зарегистрировать функцию автодополнения

readline_completion_function

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_completion_function — Зарегистрировать функцию автодополнения

Описание

readline_completion_function(callable $callback): bool

Функция регистрирует функцию автодополнения. Это то же самое, как если вы нажимаете табуляцию в Bash и строка дополняется наиболее подходящим текстом.

Список параметров

callback

Имя функции, которая принимает строку и возвращает массив подходящих совпадений.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Устанавливает/читает различные внутренние переменные readline

  • « readline_completion_function
  • readline_list_history »
  • PHP Manual
  • Функции Readline
  • Устанавливает/читает различные внутренние переменные readline

readline_info

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_info — Устанавливает/читает различные внутренние переменные readline

Описание

readline_info(?string $var_name = null, int|string|bool|null $value = null): mixed

Устанавливает/читает различные внутренние переменные readline.

Список параметров

var_name

Имя переменной.

value

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

Возвращаемые значения

Если вызвать функцию без параметров, то будет возвращён массив значений всех внутренних переменных readline. У элементов массива будут следующие индексы: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name и terminal_name. Массив (array) будет содержать только те элементы, которые поддерживаются библиотекой, используемой для сборки модуля readline.

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

Список изменений

Версия | Описание
8.0.0 | var_name и value теперь допускают значение null.


Список истории команд

  • « readline_info
  • readline_on_new_line »
  • PHP Manual
  • Функции Readline
  • Список истории команд

readline_list_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_list_history — Список истории команд

Описание

readline_list_history(): array

Возвращает полную историю команд.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает индексированный массив с занесёнными в историю командами.


Информирует readline, что курсор переместился на новую строку

  • « readline_list_history
  • readline_read_history »
  • PHP Manual
  • Функции Readline
  • Информирует readline, что курсор переместился на новую строку

readline_on_new_line

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_on_new_line — Информирует readline, что курсор переместился на новую строку

Описание

readline_on_new_line(): void

Информирует readline, что курсор переместился на новую строку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примечания

Замечание:

Функция доступна только в том случае, если поддерживается базовой библиотекой readline. Не поддерживается в Windows.


Прочитать историю команд из файла

  • « readline_on_new_line
  • readline_redisplay »
  • PHP Manual
  • Функции Readline
  • Прочитать историю команд из файла

readline_read_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_read_history — Прочитать историю команд из файла

Описание

readline_read_history(?string $filename = null): bool

Функция читает историю команд из файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | filename теперь допускает значение null.


Перерисовать экран

  • « readline_read_history
  • readline_write_history »
  • PHP Manual
  • Функции Readline
  • Перерисовать экран

readline_redisplay

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

readline_redisplay — Перерисовать экран

Описание

readline_redisplay(): void

Перерисовывает экран.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Записать историю команд в файл

  • « readline_redisplay
  • readline »
  • PHP Manual
  • Функции Readline
  • Записать историю команд в файл

readline_write_history

(PHP 4, PHP 5, PHP 7, PHP 8)

readline_write_history — Записать историю команд в файл

Описание

readline_write_history(?string $filename = null): bool

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

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | filename теперь допускает значение null.


Читает строку

  • « readline_write_history
  • Модули для сжатия и архивации »
  • PHP Manual
  • Функции Readline
  • Читает строку

readline

(PHP 4, PHP 5, PHP 7, PHP 8)

readline — Читает строку

Описание

readline(?string $prompt = null): string|false

Читает одну строку, введённую пользователем. Если вам нужно добавить эту строку в историю, то сделать это вы должны самостоятельно, с помощью readline_add_history().

Список параметров

prompt

Подсказка, которая будет выведена пользователю.

Возвращаемые значения

Возвращает одну строку, введённую пользователем. Символ конца строки будет удалён. Если больше нет данных для чтения, тогда возвращает false.

Примеры

Пример #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 от 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
    • DeflateContext — Класс DeflateContext
    • InflateContext — Класс InflateContext


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, PHP 8)

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, PHP 8)

bzcompress — Сжимает строку с использованием bzip2

Описание

bzcompress(string $data, int $block_size = 4, int $work_factor = 0): string|int

bzcompress() сжимает переданную строку и возвращает её в виде закодированных данных bzip2.

Список параметров

data

Сжимаемая строка.

block_size

Определяет размера блока, используемый при сжатии, должен быть числом в диапазоне от 1 до 9, где 9 даст наилучшее, но более ресурсоёмкое сжатие.

work_factor

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

Генерируемый результат не зависит от параметра work_factor и является одним и тем же.

Возвращаемые значения

Сжатая строка или код ошибки в случае неудачного завершения работы.

Примеры

Пример #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, PHP 8)

bzdecompress — Распаковывает данные, сжатые с использованием bzip2

Описание

bzdecompress(string $data, bool $use_less_memory = false): string|int|false

bzdecompress() распаковывает переданную строку, содержащую сжатые bzip2 данные.

Список параметров

data

Распаковываемая строка.

use_less_memory

Если true, то будет использован альтернативный алгоритм распаковки, использующий меньше памяти (максимально требуемая память находится в районе 2300K), но работает приблизительно вдвое медленнее.

Смотрите » документацию по bzip2 для более подробной информации об этой возможности.

Возвращаемые значения

Распакованная строка или false или код ошибки в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Тип use_less_memory изменён с int на bool. Ранее значением по умолчанию был 0.

Примеры

Пример #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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

bzflush — Ничего не делает

Описание

bzflush(resource $bz): bool

Функция должна принудительно записывать все буферизованные данные bzip2 в файл, на который ссылается указатель bz, но в libbz2 реализована как нулевая функция и поэтому ничего не делает.

Список параметров

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, PHP 8)

bzopen — Открывает файл, сжатый с использованием bzip2

Описание

bzopen(string|resource $file, string $mode): resource|false

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, PHP 8)

bzread — Бинарно-безопасное чтение файла bzip2

Описание

bzread(resource $bz, int $length = 1024): string|false

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, PHP 8)

bzwrite — Бинарно-безопасная запись bzip2 файла

Описание

bzwrite(resource $bz, string $data, ?int $length = null): int|false

bzwrite() записывает строку в переданный bzip2 файловый поток.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

data

Записываемые данные.

length

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

Возвращаемые значения

Возвращает количество записанных байт или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | length теперь допускает значение null.

Примеры

Пример #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(): int

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 1, если LZF оптимизирован под скорость работы и 0, если под эффективность сжатия.


Phar

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Использование Phar-архивов
    • Использование Phar-архивов: Введение
    • Использование Phar-архивов: обёртка потока phar
    • Использование Phar-архивов: классы Phar и PharData
  • Создание 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::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::__destruct — Уничтожает объект архива 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::unlinkArchive — Полностью удалить архив из памяти и с диска
    • Phar::webPhar — Направляет запрос из браузера во внутренний файл в 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::__destruct — Уничтожает неисполняемый объект архива 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)
    • PharData::setMetadata — Установить метаданные phar-архива
    • PharData::setSignatureAlgorithm — Установить алгоритм подписания phar-архива и применение его
    • PharData::setStub — Функция заглушка (Phar::setStub нельзя использовать для PharData)
  • PharFileInfo — Класс PharFileInfo
    • PharFileInfo::chmod — Установка прав доступа
    • PharFileInfo::compress — Сжать текущий файл с помощью zlib или bzip2
    • PharFileInfo::__construct — Конструктор объекта PharFileInfo
    • PharFileInfo::decompress — Разжимает текущий файл
    • PharFileInfo::delMetadata — Удалить метаданные файла
    • PharFileInfo::__destruct — Уничтожает входной объект Phar
    • PharFileInfo::getCRC32 — Получить контрольную сумму CRC32
    • PharFileInfo::getCompressedSize — Получить реальный занимаемый файлом размер на диске с учётом сжатия
    • PharFileInfo::getContent — Получить полное содержимое файла записи
    • PharFileInfo::getMetadata — Получить метаданные, связанные с файлом
    • PharFileInfo::getPharFlags — Получить флаги файла в phar-архиве
    • PharFileInfo::hasMetadata — Проверить, есть ли у файла метаданные
    • PharFileInfo::isCRCChecked — Определить, прошёл ли файл проверку CRC
    • PharFileInfo::isCompressed — Проверить, сжат ли файл
    • PharFileInfo::setMetadata — Установка метаданных для конкретного файла
  • 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, часто требуют существенных изменений для работы.


Требования

Кроме того, вы можете подключить модули zlib и bzip2, чтобы воспользоваться поддерживаемой компрессией phar. Также, чтобы иметь возможность подписывания OpenSSL, должен быть подключён модуль OpenSSL.

Если zend.multibyte включён, то необходимо также включить zend.detect_unicode.


Установка

Модуль Phar поставляется с PHP и по умолчанию включён. Для отключения поддержки Phar, используйте --disable-phar.

Модуль может быть установлен из репозитория PECL. Более подробные сведения и история версий доступны на » странице Phar в репозитории PECL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации файловой системы и потоков
Имя | По умолчанию | Место изменения | Список изменений
phar.readonly | "1" | PHP_INI_ALL |
phar.require_hash | "1" | PHP_INI_ALL |
phar.cache_list | "" | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

phar.readonly bool

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

Замечание:

Этот параметр может быть отключён в php.ini только исходя из соображений безопасности. Если параметр phar.readonly отключён в php.ini, пользователь может включить phar.readonly в скрипте или отключить его позже. Если параметр phar.readonly включён в php.ini, скрипт может безвредно "повторно включить" переменную INI, но не может отключить её.

phar.require_hash bool

Этот параметр сделает обязательной какую-либо подпись (в настоящий момент поддерживаются MD5, SHA1, SHA256, SHA512 и OpenSSL) для всех открываемых Phar-архивов и сделает невозможной обработку любого Phar-архива, не содержащего подпись.

Замечание:

Этот параметр может быть отключён в php.ini. Если параметр phar.require_hash отключён в php.ini, пользователь может включить phar.require_hash в скрипте или отключить его позже. Если параметр phar.require_hash включён в php.ini, скрипт может безвредно "повторно включить" переменную INI, но не может отключить её.

Этот параметр не влияет на чтение простых tar-файлов при помощи класса PharData.

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

phar.require_hash не обеспечивает безопасности как таковой - это всего лишь мера по защите от запуска повреждённого Phar архива, поскольку кто угодно, имеющий возможность модифицировать архив может с тем же успехом модифицировать и подпись.

phar.cache_list string

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

Пример #1 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 (int) | 0x00000000 | без сжатия
Phar::COMPRESSED (int) | 0x0000F000 | битовая маска, которая может быть использована с флагами файла для определения наличия сжатия
Phar::GZ (int) | 0x00001000 | сжатие zlib (gzip)
Phar::BZ2 (int) | 0x00002000 | сжатие bzip2
Константы формата файла Phar
Константа | Значение | Описание
Phar::PHAR (int) | 1 | формат файла phar
Phar::TAR (int) | 2 | формат файла tar
Phar::ZIP (int) | 3 | формат файла zip
Константы подписи Phar
Константа | Значение | Описание
Phar::MD5 (int) | 0x0001 | подпись с помощью алгоритма хеширования md5
Phar::SHA1 (int) | 0x0002 | подпись с помощью алгоритма хеширования sha1
Phar::SHA256 (int) | 0x0003 | подпись с помощью алгоритма хеширования sha256 (требуется модуль hash)
Phar::SHA512 (int) | 0x0004 | подпись с помощью алгоритма хеширования sha512 (требуется модуль hash)
Phar::OPENSSL (int) | 0x0010 | подпись с помощью пары открытого/закрытого ключей OpenSSL. Это подлинная подпись, использующая асимметричный ключ.
Phar::OPENSSL_SHA256 (int) |  |
Phar::OPENSSL_SHA512 (int) |  |
Константы переопределения MIME-типов webPhar
Константа | Значение | Описание
Phar::PHP (int) | 1 | используется для указания параметру переопределения MIME-типа Phar::webPhar() на то, что расширение должно быть разобрано как файл PHP
Phar::PHPS (int) | 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. Для того чтобы использовать подписывание 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.

Класс 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(), 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 от 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] | Да | Нет | Нет
Пофайловое сжатие | Да | Нет | Да
Сжатие всего архива | Да | Да | Нет
Проверка подписи всего архива | Да | Да | Да
Поддержка веб-приложений | Да | Да | Да
Пофайловые метаданные | Да | Да | Да
Метаданные всего архива | Да | Да | Да
Создание/изменение архива [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.

Существует ограниченная поддержка чтения архивов в формате обмена pax, но все распознанные заголовки pax (в настоящее время typeflag x and g) игнорируются. Также имеется ограниченная поддержка архивов GNU Tar; в настоящее время заголовки ././@LongLink разрешены.

Для сжатия всего архива используйте Phar::compress(). Для распаковки всего массива используйте Phar::decompress().


Phar-архивы, основанные на zip

Архивы, основанные на формате файла zip, поддерживают некоторые возможности, встроенные в формат файла zip. Пофайловые и относящиеся ко всему архиву метаданные хранятся в файловых комментариях zip и в комментарии всего zip-архива в виде сериализованных строк. Уже существующие zip-комментарии будут успешно считаны в виде строки. Пофайловое сжатие при чтении/записи поддерживается в случае использования сжатия zlib DEFLATE, а в случае использования 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 DEFLATE.
0x00002000 | Если задано, значит этот Phar содержит по меньшей мере один файл, сжатый при помощи bzip2-сжатия.


Описание записи файла в манифесте Phar

Каждый файл в манифесте содержит следующую информацию:

Запись файла в манифесте Phar
Размер в байтах | Описание
4 байта | Длина имени файла в байтах
?? | Имя файла (длина указана в предыдущем поле)
4 байта | Размер распакованного файла в байтах
4 байта | Метка времени Unix файла
4 байта | Размер сжатого файла в байтах
4 байта | Контрольная сумма CRC32 содержимого распакованного файла
4 байта | Флаги битовой карты файла
4 байта | Длина сериализованных метаданных файла (0 в случае отсутствия)
?? | Сериализованные метаданные файла, хранящиеся в формате serialize()

Обратите внимание, что начиная с версии API 1.1.1 пустые каталоги хранятся в виде файлов с завершающим слешем в их имени, как my/directory/

К распознаваемым значениям битовой карты файла относятся:

Распознаваемые значения битовой карты
Значение | Описание
0x000001FF | Эти биты зарезервированы для определения конкретных прав доступа файла. Права доступа используются для fstat() и могут быть использованы для воссоздания требуемых прав доступа при извлечении.
0x00001000 | Если задано, то этот файл сжат при помощи сжатия zlib DEFLATE.
0x00002000 | Если задано, то этот файл сжат при помощи bzip2-сжатия.


Формат подписи Phar

В содержащих подпись phar-архивах подпись всегда присоединена к концу Phar-архива после загрузчика, манифеста и содержимого файлов. В настоящее время поддерживаются следующие форматы подписи: MD5, SHA1, SHA256, SHA512 и OPENSSL.

Формат подписи
Длина в байтах | Описание
переменная | Собственно подпись. 20 байт в случае использования подписи SHA1, 16 байт в случае использования подписи MD5, 32 байта в случае использования подписи SHA256, 64 байта в случае использования подписи SHA512. Длина подписи OPENSSL зависит от размера закрытого ключа.
4 байта | Флаги подписи. 0x0001 используется для определения подписи MD5, 0x0002 используется для определения подписи SHA1, 0x0003 используется для определения подписи SHA256, 0x0004 используется для определения подписи SHA512. Поддержка подписей SHA256 и SHA512 была введена начиная с версии API 1.1.0. 0x0010 используется для определения подписи OPENSSL, которая доступна с версии API 1.1.1, если доступен OpenSSL.
4 байта | Магический GBMB используется для определения наличия подписи.


Класс Phar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Введение

Класс Phar предоставляет высокоуровневый интерфейс для доступа и создания архивов phar.

Обзор классов

class Phar extends RecursiveDirectoryIterator implements Countable, ArrayAccess {
/* Наследуемые константы */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Константы */
const int BZ2;
const int GZ;
const int NONE;
const int PHAR;
const int TAR;
const int ZIP;
const int COMPRESSED;
const int PHP;
const int PHPS;
const int MD5;
const int OPENSSL;
const int OPENSSL_SHA256;
const int OPENSSL_SHA512;
const int SHA1;
const int SHA256;
const int SHA512;
/* Методы */
public __construct(string $filename, int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS, ?string $alias = null)
public addEmptyDir(string $directory): void
public addFile(string $filename, ?string $localName = null): void
public addFromString(string $localName, string $contents): void
final public static apiVersion(): string
public buildFromDirectory(string $directory, string $pattern = ""): array
public buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array
final public static canCompress(int $compression = 0): bool
final public static canWrite(): bool
public compress(int $compression, ?string $extension = null): ?Phar
public compressFiles(int $compression): void
public convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData
public convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar
public copy(string $from, string $to): bool
public count(int $mode = COUNT_NORMAL): int
final public static createDefaultStub(?string $index = null, ?string $webIndex = null): string
public decompress(?string $extension = null): ?Phar
public decompressFiles(): bool
public delMetadata(): bool
public delete(string $localName): bool
public extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool
public getAlias(): ?string
public getMetadata(array $unserializeOptions = []): mixed
public getModified(): bool
public getPath(): string
public getSignature(): array|false
public getStub(): string
final public static getSupportedCompression(): array
final public static getSupportedSignatures(): array
public getVersion(): string
public hasMetadata(): bool
final public static interceptFileFuncs(): void
public isBuffering(): bool
public isCompressed(): int|false
public isFileFormat(int $format): bool
final public static isValidPharFilename(string $filename, bool $executable = true): bool
public isWritable(): bool
final public static loadPhar(string $filename, ?string $alias = null): bool
final public static mapPhar(?string $alias = null, int $offset = 0): bool
final public static mount(string $pharPath, string $externalPath): void
final public static mungServer(array $variables): void
public offsetExists(string $localName): bool
public offsetGet(string $localName): SplFileInfo
public offsetSet(string $localName, resource|string $value): void
public offsetUnset(string $localName): void
final public static running(bool $returnPhar = true): string
public setAlias(string $alias): bool
public setDefaultStub(?string $index = null, ?string $webIndex = null): bool
public setMetadata(mixed $metadata): void
public setSignatureAlgorithm(int $algo, ?string $privateKey = null): void
public setStub(resource|string $stub, int $length = -1): bool
public startBuffering(): void
public stopBuffering(): void
final public static unlinkArchive(string $filename): bool
final public static webPhar(
?string $alias = null,
?string $index = null,
?string $fileNotFoundScript = null,
array $mimeTypes = [],
?callable $rewrite = null
): void
public __destruct()
/* Наследуемые методы */
public RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator
public RecursiveDirectoryIterator::getSubPath(): string
public RecursiveDirectoryIterator::getSubPathname(): string
public RecursiveDirectoryIterator::hasChildren(bool $allowLinks = false): bool
public RecursiveDirectoryIterator::key(): string
public RecursiveDirectoryIterator::next(): void
public RecursiveDirectoryIterator::rewind(): void
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Содержание

  • 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::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::__destruct — Уничтожает объект архива 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::unlinkArchive — Полностью удалить архив из памяти и с диска
  • Phar::webPhar — Направляет запрос из браузера во внутренний файл в phar-архиве


Добавляет в phar-архив пустую директорию

  • « Phar
  • Phar::addFile »
  • PHP Manual
  • Phar
  • Добавляет в phar-архив пустую директорию

Phar::addEmptyDir

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::addEmptyDir — Добавляет в phar-архив пустую директорию

Описание

public Phar::addEmptyDir(string $directory): void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

С помощью этого метода создаётся пустая директория, путь к которой указан в dirname. Этот метод аналогичен ZipArchive::addEmptyDir().

Список параметров

directory

Имя пустого каталога, который должен быть создан в 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, PHP 8, PECL phar >= 2.0.0)

Phar::addFile — Добавляет в phar-архив файл из файловой системы

Описание

public Phar::addFile(string $filename, ?string $localName = null): void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

С помощью этого метода в phar-архив может быть добавлен любой файл или содержимое, доступное по URL. Если указан необязательный второй параметр localName, то файл будет сохранён в архиве с таким именем, в ином случае в качестве пути для сохранения внутри архива будет использован параметр file. При добавлении содержимого, доступного по URL, параметр localname должен быть указан, иначе будет выброшено исключение. Этот метод аналогичен ZipArchive::addFile().

Список параметров

filename

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

localName

Путь, по которому файл будет сохранён в архиве.

Возвращаемые значения

Нет возвращаемого значения, в случае возникновения ошибки выбрасывается исключение.

Список изменений

Версия | Описание
8.0.0 | localName теперь допускает значение null.

Примеры

Пример #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::addFile(), Phar::addFromString() и Phar::offsetSet() сохраняет новый phar-архив каждый раз при их вызове. Если производительность вызывает беспокойство, вместо этого следует использовать Phar::buildFromDirectory() или Phar::buildFromIterator().

Смотрите также

  • 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, PHP 8, 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::addFile(), Phar::addFromString() и Phar::offsetSet() сохраняет новый phar-архив каждый раз при их вызове. Если производительность вызывает беспокойство, вместо этого следует использовать Phar::buildFromDirectory() или Phar::buildFromIterator().

Смотрите также

  • 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, PHP 8, PECL phar >= 1.0.0)

Phar::apiVersion — Возвращает версию API

Описание

final public static Phar::apiVersion(): 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, PHP 8, PECL phar >= 2.0.0)

Phar::buildFromDirectory — Создаёт phar-архив из файлов, расположенных внутри директории

Описание

public Phar::buildFromDirectory(string $directory, string $pattern = ""): array

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Заполняет phar-архив содержимым директории. Необязательный второй параметр является регулярным выражением (PCRE) и используется для исключения файлов. Любой файл, чьё имя соответствует регулярному выражению, будет включён, все остальные будут исключены. Для более детализированного контроля используйте Phar::buildFromIterator().

Список параметров

directory

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

pattern

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

Возвращаемые значения

Phar::buildFromDirectory() возвращает ассоциативный массив, в котором отражено соответствие пути к файлу внутри архива к пути к файлу в файловой системе.

Ошибки

Этот метод выбрасывает исключение BadMethodCallException в том случае, если не удалось создать экземпляр итератора внутренних директорий. Исключение PharException выбрасывается в случае ошибок сохранения phar-архива.

Список изменений

Версия | Описание
8.1.0 | Phar::buildFromDirectory() больше не возвращает значение false.

Примеры

Пример #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, PHP 8, PECL phar >= 2.0.0)

Phar::buildFromIterator — Создаёт phar-архив из итератора

Описание

public Phar::buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Заполняет phar-архив из итератора. Поддерживаются итераторы двух типов: такие, в которых отображается соответствие имени файла внутри phar-архива к файлу на диске, и такие как DirectoryIterator, которые возвращают объекты SplFileInfo. Для итераторов, которые возвращают объекты SplFileInfo, второй параметр является обязательным.

Список параметров

iterator

Любой итератор, который или ассоциативно отображает пути к файлам внутри phar-архива к файлам на диске, или возвращает объекты SplFileInfo.

baseDirectory

Для итераторов, возвращающих объекты SplFileInfo, — часть полного пути каждого файла, которая должна быть удалена во время его добавления в phar-архив.

Возвращаемые значения

Phar::buildFromIterator() возвращает ассоциативный массив, в котором отображаются соответствия пути к файлу внутри архива к пути к файлу в файловой системе.

Ошибки

Этот метод выбрасывает исключение UnexpectedValueException, когда итератор возвращает некорректные значения, такие как целочисленный ключ вместо строки. Исключение BadMethodCallException будет брошено, когда итератор, основанный на SplFileInfo, используется без параметра baseDirectory. Исключение PharException выбрасывается в случае ошибок сохранения phar-архива.

Список изменений

Версия | Описание
8.1.0 | Phar::buildFromIterator() больше не возвращает значение false.
8.0.0 | baseDirectory теперь допускает значение null.

Примеры

Пример #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'));
?>

Смотрите также

  • 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, PHP 8, PECL phar >= 1.0.0)

Phar::canCompress — Проверяет, поддерживает ли модуль phar сжатие с использованием zlib или bzip2

Описание

final public static Phar::canCompress(int $compression = 0): bool

Этот метод следует использовать для проверки поддержки сжатия до загрузки phar-архива, содержащего сжатые файлы.

Список параметров

compression

Может быть использована одна из констант 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, PHP 8, PECL phar >= 1.0.0)

Phar::canWrite — Проверяет, поддерживает ли модуль phar сохранение и создание phar-архивов

Описание

final public static Phar::canWrite(): 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::compressFiles »
  • PHP Manual
  • Phar
  • Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия

Phar::compress

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::compress — Сжимает весь Phar-архив с помощью Gzip- или Bzip2-сжатия

Описание

public Phar::compress(int $compression, ?string $extension = null): ?Phar

Замечание:

Для корректной работы с объектами 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 или null в случае возникновения ошибки.

Ошибки

Выбрасывает исключение BadMethodCallException, если INI-переменная phar.readonly включена, модуль zlib не доступен или модуль bzip2 не включён.

Список изменений

Версия | Описание
8.0.0 | extension теперь допускает значение null.

Примеры

Пример #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-архиве

  • « Phar::compress
  • Phar::__construct »
  • PHP Manual
  • Phar
  • Сжимает все файлы в текущем Phar-архиве

Phar::compressFiles

(PHP 5 >= 5.3.0, PHP 7, PHP 8, 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, PHP 8, PECL phar >= 1.0.0)

Phar::__construct — Создаёт объект Phar-архива

Описание

public Phar::__construct(string $filename, int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS, ?string $alias = null)

Список параметров

filename

Путь к уже существующему 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, PHP 8, PECL phar >= 2.0.0)

Phar::convertToData — Конвертирует phar-архив в неисполняемый tar- или zip-файл

Описание

public Phar::convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?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 в случае успешного выполнения и null в случае возникновения ошибки.

Ошибки

Данный метод выбрасывает исключение BadMethodCallException в следующих случаях: при невозможности сжатия; если был передан неизвестный алгоритм сжатия; в запрошенном архиве была включена буферизация с помощью Phar::startBuffering() и не была завершена с помощью Phar::stopBuffering(). В случае возникновения каких-либо проблем в процессе создания phar будет выброшено исключение PharException.

Список изменений

Версия | Описание
8.0.0 | format, compression и extension теперь допускают значение null.

Примеры

Пример #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, PHP 8, PECL phar >= 2.0.0)

Phar::convertToExecutable — Конвертирует phar-архив в другой исполняемый формат файла

Описание

public Phar::convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?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 в успешного выполнения и null в случае возникновения ошибки.

Ошибки

Данный метод выбрасывает исключение BadMethodCallException в следующих случаях: при невозможности сжатия; если был передан неизвестный алгоритм сжатия; в запрошенном архиве была включена буферизация с помощью Phar::startBuffering() и не была завершена с помощью Phar::stopBuffering(). Если поддержка записи отключена, то будет брошено исключение UnexpectedValueException. В случае возникновения каких-либо проблем в процессе создания phar выбрасывается исключение PharException.

Список изменений

Версия | Описание
8.0.0 | format, compression и extension теперь допускают значение null.

Примеры

Пример #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, PHP 8, PECL phar >= 2.0.0)

Phar::copy — Копирует один файл внутри phar-архива в другой новый файл внутри phar-архива

Описание

public Phar::copy(string $from, string $to): bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Копирует внутренний файл phar-архива в другой новый файл внутри phar-архива. Это объектно-ориентированная альтернатива использованию copy() с обёрткой потока phar.

Список параметров

from

to

Возвращаемые значения

возвращает 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, PHP 8, PECL phar >= 1.0.0)

Phar::count — Возвращает количество записей (файлов) в Phar-архиве

Описание

public Phar::count(int $mode = COUNT_NORMAL): int

Список параметров

mode

Параметр mode - целочисленное значение, определяющее используемый режим подсчёта. По умолчанию установлено значение COUNT_NORMAL, подсчитываются только элементы в архиве, которые не были удалены или скрыты. Если установлено значение COUNT_RECURSIVE, подсчитываются все элементы в архиве, включая удалённые или скрытые.

Возвращаемые значения

Количество файлов, содержащихся в этом 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, PHP 8, PECL phar >= 2.0.0)

Phar::createDefaultStub — Создать заглушку в формате phar-архива

Описание

final public static Phar::createDefaultStub(?string $index = null, ?string $webIndex = null): string

Этот метод создаёт код заглушку (stub) в специфичном для phar-архива формате и не предназначенный для использования с файловыми архивами на основе tar или zip.

Phar-архивы содержат загрузчик (stub), написанный на PHP, который запускается при запуске архива, когда его подключают через include:

<?php
include 'myphar.phar';
?>
или просто запускают:
php myphar.phar

Этот метод предоставляет простой способ для создания заглушку, который будет отрабатывать при запуске phar-архива. Кроме того, можно указывать разные файлы для запуска phar-архива через веб-сервер и через командную строку. Заглушка также вызывает Phar::interceptFileFuncs() для простого создания приложений PHP с доступом к файловой системе. Если модуль phar отсутствует, то заглушка распакует phar-архив во временную директорию и запустит приложение оттуда. Функция завершения работы удалит все временные файлы.

Список параметров

index

Относительный путь в phar-архиве для запуска при доступе из командной строки

webIndex

Относительный путь в phar-архиве для запуска при доступе через браузер

Возвращаемые значения

Возвращает текст с кодом заглушку, который позволит Phar-архиву запускаться независимо от того, подключён ли модуль Phar или нет.

Ошибки

Выбросит исключение UnexpectedValueException, если любой из параметров будет длиннее 400 байт.

Список изменений

Версия | Описание
8.0.0 | index и webIndex теперь допускают значение null.

Примеры

Пример #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, PHP 8, PECL phar >= 2.0.0)

Phar::decompress — Распаковывает весь Phar-архив

Описание

public Phar::decompress(?string $extension = null): ?Phar

Замечание:

Для корректной работы с объектами 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 в случае успешного выполнения и null в случае возникновения ошибки.

Ошибки

Выбрасывает исключение BadMethodCallException, если INI-переменная phar.readonly включена, модуль zlib не доступен или модуль bzip2 не включён.

Список изменений

Версия | Описание
8.0.0 | extension теперь допускает значение null.

Примеры

Пример #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, PHP 8, PECL phar >= 2.0.0)

Phar::decompressFiles — Распаковывает все файлы в текущем Phar-архиве

Описание

public Phar::decompressFiles(): 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, PHP 8, PECL phar >= 1.2.0)

Phar::delMetadata — Удалить глобальные метаданные в архиве phar

Описание

public Phar::delMetadata(): 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::__destruct »
  • PHP Manual
  • Phar
  • Удаляет файл внутри phar-архива

Phar::delete

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::delete — Удаляет файл внутри phar-архива

Описание

public Phar::delete(string $localName): bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Удаляет файл из архива. Эта функция аналогична вызову unlink() для обёртки потока, как это показано в примере ниже.

Список параметров

localName

Путь внутри архива к файлу для удаления.

Возвращаемые значения

Возвращает 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::extractTo »
  • PHP Manual
  • Phar
  • Уничтожает объект архива Phar

Phar::__destruct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::__destruct — Уничтожает объект архива Phar

Описание

public Phar::__destruct()

Список параметров

У этой функции нет параметров.


Извлечь содержимое phar-архива в директорию

  • « Phar::__destruct
  • Phar::getAlias »
  • PHP Manual
  • Phar
  • Извлечь содержимое phar-архива в директорию

Phar::extractTo

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::extractTo — Извлечь содержимое phar-архива в директорию

Описание

public Phar::extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool

Извлекает все файлы phar-архива на диск. Извлечённые файлы и директории сохраняют все разрешения, которые у них были. Опциональные параметры позволяют контролировать, какие именно файлы извлекать и нужно ли перезаписывать уже существующие. Второй параметр files может быть как именем файла, так и путём директории, которые надо извлекать. По умолчанию уже существующие на диске файлы перезаписываться не будут. Для указания, что нужно использовать перезапись, используется третий параметр. Этот метод аналогичен методу ZipArchive::extractTo().

Список параметров

directory

Путь, по которому необходимо сохраните извлечённые файлы (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
}
?>

Примечания

Замечание:

Файловые системы Windows NTFS не поддерживают некоторые символы в именах файлов, а именно <|>*?":. Имена файлов с точкой в конце также не поддерживаются. В отличие от некоторых инструментов извлечения, этот метод не поддерживает замену этих символов на подчёркивание, а вместо этого возникает ошибка при извлечении таких файлов.

Смотрите также

  • PharData::extractTo() - Извлечь содержимое tar/zip-архива в директорию


Получить псевдоним для Phar

  • « Phar::extractTo
  • Phar::getMetadata »
  • PHP Manual
  • Phar
  • Получить псевдоним для Phar

Phar::getAlias

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.1)

Phar::getAlias — Получить псевдоним для Phar

Описание

public Phar::getAlias(): ?string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает псевдоним или null в случае его отсутствия.


Извлечь метаданные phar-архива

  • « Phar::getAlias
  • Phar::getModified »
  • PHP Manual
  • Phar
  • Извлечь метаданные phar-архива

Phar::getMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::getMetadata — Извлечь метаданные phar-архива

Описание

public Phar::getMetadata(array $unserializeOptions = []): mixed

Возвращает метаданные phar-архива. Метаданными может быть любая переменная PHP, которая может быть сериализована.

Список параметров

Без параметров.

Возвращаемые значения

Любое значение PHP, которое может быть сериализовано и хранится как метаданные для архива Phar, либо null, если метаданные отсутствуют.

Список изменений

Версия | Описание
8.0.0 | Добавлен параметр unserializeOptions.

Примеры

Пример #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, PHP 8, PECL phar >= 1.0.0)

Phar::getModified — Определить, изменялся phar-архив

Описание

public Phar::getModified(): bool

Этот метод используется для определения, изменялось ли что-либо в phar-архиве.

Список параметров

Без параметров.

Возвращаемые значения

true, если архив после открытия изменялся и false, в противном случае.


Получить реальный путь к Phar-архиву на диске

  • « Phar::getModified
  • Phar::getSignature »
  • PHP Manual
  • Phar
  • Получить реальный путь к Phar-архиву на диске

Phar::getPath

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Phar::getPath — Получить реальный путь к Phar-архиву на диске

Описание

public Phar::getPath(): 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, PHP 8, PECL phar >= 1.0.0)

Phar::getSignature — Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива

Описание

public Phar::getSignature(): array|false

Возвращает проверочную подпись phar-архива в виде строки шестнадцатеричных цифр.

Список параметров

Возвращаемые значения

Массив, содержащий цифровую подпись открытого архива по ключу hash, и MD5, SHA-1, SHA-256, SHA-512 или OpenSSL по ключу hash_type. Подпись - это хеш, вычисленный от содержимого архива, которую можно использовать для проверки его целостности. Корректная подпись требуется для всех запускаемых phar-архивов, если разрешена INI-переменная phar.require_hash. Если сигнатуры нет, функция возвращает false.


Получить загрузчик PHP или загрузчик заглушки Phar-архива

  • « Phar::getSignature
  • Phar::getSupportedCompression »
  • PHP Manual
  • Phar
  • Получить загрузчик PHP или загрузчик заглушки Phar-архива

Phar::getStub

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::getStub — Получить загрузчик PHP или загрузчик заглушки Phar-архива

Описание

public Phar::getStub(): 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, PHP 8, PECL phar >= 1.2.0)

Phar::getSupportedCompression — Возвращает массив поддерживаемых алгоритмов сжатия

Описание

final public static Phar::getSupportedCompression(): 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, PHP 8, PECL phar >= 1.1.0)

Phar::getSupportedSignatures — Получить массив поддерживаемых алгоритмов подписи архива

Описание

final public static Phar::getSupportedSignatures(): 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, PHP 8, PECL phar >= 1.0.0)

Phar::getVersion — Получить версию Phar-архива

Описание

public Phar::getVersion(): 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, PHP 8, PECL phar >= 1.2.0)

Phar::hasMetadata — Проверить, содержит ли phar-архив глобальные метаданные

Описание

public Phar::hasMetadata(): 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, PHP 8, PECL phar >= 2.0.0)

Phar::interceptFileFuncs — Указывает phar перехватывать fopen, file_get_contents, opendir и все stat-функции

Описание

final public static Phar::interceptFileFuncs(): 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, PHP 8, PECL phar >= 1.0.0)

Phar::isBuffering — Проверить, будут ли операции с Phar-архивом буферизованы или записаны напрямую на диск

Описание

public Phar::isBuffering(): 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, PHP 8, PECL phar >= 2.0.0)

Phar::isCompressed — Возвращает Phar::GZ или PHAR::BZ2, если phar-архив сжат целиком (.tar.gz/tar.bz и так далее)

Описание

public Phar::isCompressed(): int|false

Замечание:

Для корректной работы с объектами 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, PHP 8, 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, PHP 8, 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, PHP 8, PECL phar >= 2.0.0)

Phar::isWritable — Проверяет, можно ли модифицировать phar-архив

Описание

public Phar::isWritable(): 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, PHP 8, PECL phar >= 1.0.0)

Phar::loadPhar — Загрузить phar-архив с псевдонимом

Описание

final public static Phar::loadPhar(string $filename, ?string $alias = null): 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, PHP 8, PECL phar >= 1.0.0)

Phar::mapPhar — Прочитать текущий запущенный phar-архив и зарегистрировать его манифест

Описание

final public static Phar::mapPhar(?string $alias = null, int $offset = 0): bool

Этот статический метод можно использовать только в заглушке загрузчика Phar-архива в целях его инициализации, когда он запущен напрямую, либо включён в другой скрипт.

Список параметров

alias

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

offset

Неиспользуемая переменная. Существует только для совместимости с 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, PHP 8, 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, PHP 8, PECL phar >= 2.0.0)

Phar::mungServer — Определить список до четырёх $_SERVER-переменных, которые должны быть изменены для запуска

Описание

final public static Phar::mungServer(array $variables): 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.

Список параметров

variables

Массив любой из строк: 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() - Направляет запрос из браузера во внутренний файл в phar-архиве
  • Phar::setStub() - Установить загрузчик или загрузочную заглушку в Phar-архив


Определить, есть ли файл в архиве

  • « Phar::mungServer
  • Phar::offsetGet »
  • PHP Manual
  • Phar
  • Определить, есть ли файл в архиве

Phar::offsetExists

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::offsetExists — Определить, есть ли файл в архиве

Описание

public Phar::offsetExists(string $localName): bool

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

offsetExists() запускается каждый раз, когда вызывается isset().

Список параметров

localName

Имя файла (относительный путь).

Возвращаемые значения

Возвращает 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, PHP 8, PECL phar >= 1.0.0)

Phar::offsetGet — Получить объект PharFileInfo для конкретного файла

Описание

public Phar::offsetGet(string $localName): SplFileInfo

Это реализация интерфейса ArrayAccess, позволяющая манипулировать содержимым Phar-архива в стиле доступа к элементам массива. Phar::offsetGet() используется для извлечения файлов из архива.

Список параметров

localName

Имя файла (относительный путь).

Возвращаемые значения

Объект класса 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, PHP 8, PECL phar >= 1.0.0)

Phar::offsetSet — Изменение содержимого файла

Описание

public Phar::offsetSet(string $localName, resource|string $value): void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Это реализация интерфейса ArrayAccess, позволяющая манипулировать содержимым Phar-архива в стиле доступа к элементам массива. offsetSet используется для изменения контента существующего файла, либо для создания нового.

Список параметров

localName

Имя файла (относительный путь).

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::addFile(), Phar::addFromString() и Phar::offsetSet() сохраняет новый phar-архив каждый раз при их вызове. Если производительность вызывает беспокойство, вместо этого следует использовать Phar::buildFromDirectory() или Phar::buildFromIterator().

Смотрите также

  • 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, PHP 8, PECL phar >= 1.0.0)

Phar::offsetUnset — Удалить файл из phar-архива

Описание

public Phar::offsetUnset(string $localName): void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Это реализация интерфейса ArrayAccess, позволяющая манипулировать содержимым Phar-архива в стиле доступа к элементам массива. offsetUnset используется для удаления файлов и запускается каждый раз, когда используется конструкция unset().

Список параметров

localName

Имя файла (относительный путь).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Если опция 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, PHP 8, PECL phar >= 2.0.0)

Phar::running — Получить полный путь на диске, либо полный URL запущенного Phar-архива

Описание

final public static Phar::running(bool $returnPhar = true): string

Возвращает полный путь запущенного phar-архива. Используется для того же, для чего используется константа __FILE__ и работает только внутри запущенного phar-архива.

При запуске Phar::running() из загрузчика результат будет "". Внутри загрузчика используйте константу __FILE__.

Список параметров

returnPhar

Если 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, PHP 8, 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, PHP 8, PECL phar >= 2.0.0)

Phar::setDefaultStub — Установить загрузчик PHP или начальную заглушку Phar-архива в загрузчик по умолчанию

Описание

public Phar::setDefaultStub(?string $index = null, ?string $webIndex = null): bool

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Этот метод комбинирует функциональность двух других методов, Phar::createDefaultStub() и Phar::setStub().

Список параметров

index

Относительный путь в phar-архиве для запуска при доступе из командной строки

webIndex

Относительный путь в phar-архиве для запуска при доступе из веб-браузера

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Будет выброшено исключение UnexpectedValueException, если phar.readonly разрешено в php.ini. В случае проблем с записью на диск будет выброшено исключение PharException.

Список изменений

Версия | Описание
8.0.0 | webIndex теперь допускает значение null.

Примеры

Пример #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, PHP 8, 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, PHP 8, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithm — Установить алгоритм подписания phar-архива и применение его

Описание

public Phar::setSignatureAlgorithm(int $algo, ?string $privateKey = null): 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() подпись.

Список параметров

algo

Одна из констант: 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.

Список изменений

Версия | Описание
8.0.0 | privateKey теперь допускает значение null.

Смотрите также

  • 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, PHP 8, PECL phar >= 1.0.0)

Phar::setStub — Установить загрузчик или загрузочную заглушку в Phar-архив

Описание

public Phar::setStub(resource|string $stub, int $length = -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

Строка, либо открытый ресурс потока.

length

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выбрасывается исключение UnexpectedValueException, если phar.readonly разрешено в php.ini. В случае проблем с записью на диск будет выброшено исключение PharException.

Список изменений

Версия | Описание
8.3.0 | Вызов метода Phar::setStub() с ресурсом (resource) и параметром length теперь является устаревшим. Такие вызовы должны быть заменены на: $phar->setStub(stream_get_contents($resource));

Примеры

Пример #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(); ?>"

Смотрите также

  • 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, PHP 8, PECL phar >= 1.0.0)

Phar::startBuffering — Запускает буферизацию операций записи, отключая запись изменений Phar-архива на диск

Описание

public Phar::startBuffering(): 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::unlinkArchive »
  • PHP Manual
  • Phar
  • Останавливает буферизацию и записывает все изменения на диск

Phar::stopBuffering

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::stopBuffering — Останавливает буферизацию и записывает все изменения на диск

Описание

public Phar::stopBuffering(): 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::stopBuffering
  • Phar::webPhar »
  • PHP Manual
  • Phar
  • Полностью удалить архив из памяти и с диска

Phar::unlinkArchive

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::unlinkArchive — Полностью удалить архив из памяти и с диска

Описание

final public static Phar::unlinkArchive(string $filename): bool

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

Список параметров

filename

Путь к архиву на файловой системе.

Возвращаемые значения

Возвращает 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-архива


Направляет запрос из браузера во внутренний файл в phar-архиве

  • « Phar::unlinkArchive
  • PharData »
  • PHP Manual
  • Phar
  • Направляет запрос из браузера во внутренний файл в phar-архиве

Phar::webPhar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::webPhar — Направляет запрос из браузера во внутренний файл в phar-архиве

Описание

final public static Phar::webPhar(
?string $alias = null,
?string $index = null,
?string $fileNotFoundScript = null,
array $mimeTypes = [],
?callable $rewrite = null
): void

Phar::webPhar() служит Phar::mapPhar() для веб-архивов phar. Метод анализирует $_SERVER['REQUEST_URI'] и направляет запрос из браузера во внутренний файл в phar-архиве. Он имитирует веб-сервер, направляет запросы к нужному файлу, отображает правильные заголовки и анализирует файлы PHP по мере необходимости. В сочетании с Phar::mungServer() и Phar::interceptFileFuncs(), любое веб-приложение можно использовать без изменений из phar-архива.

Phar::webPhar() должен вызываться только из заглушки (stub) phar-архива (о том, что такое заглушка и как с ним работать, читайте тут).

Список параметров

alias

Псевдоним для использования в обёртках phar://.

index

Местоположение в phar-архиве индексного файла.

fileNotFoundScript

Местоположение скрипта, отвечающего за обработку ошибки 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',
);
?>

rewrite

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

Если вы используете fast-cgi или cgi, то параметром, передаваемым в эту функцию будет значение переменной $_SERVER['PATH_INFO']. В ином случае передаваться будет значение переменной $_SERVER['REQUEST_URI'].

Если будет возвращена строка, то она будет использована как путь к файлу внутри архива. Если вернётся false, то webPhar() пошлёт код ошибки HTTP 403.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбросит исключение PharException, если будет невозможно открыть какой-либо файл, либо если вызывать её не из заглушки. Если в параметре mimeTypes указать некорректный MIME-тип, или в rewrite будет передана некорректная функция обратного вызова, то будет выброшено исключение UnexpectedValueException.

Список изменений

Версия | Описание
8.0.0 | Параметр fileNotFoundScript и rewrite теперь допускают значение null.

Примеры

Пример #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, PHP 8, PECL phar >= 2.0.0)

Введение

Класс PharData предоставляет высокоуровневый интерфейс доступа и создания неисполняемых tar- и zip-архивов. Поскольку архивы этих типов не содержат заглушку и не могут быть выполнены модулем Phar, есть возможность создавать и обрабатывать обычные zip- и tar-файлы, используя класс PharData, даже если параметр phar.readonly в php.ini равен 1.

Обзор классов

class PharData extends RecursiveDirectoryIterator implements Countable, ArrayAccess {
/* Наследуемые константы */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Методы */
public __construct(
string $filename,
int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS,
?string $alias = null,
int $format = 0
)
public addEmptyDir(string $directory): void
public addFile(string $filename, ?string $localName = null): void
public addFromString(string $localName, string $contents): void
public buildFromDirectory(string $directory, string $pattern = ""): array
public buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array
public compress(int $compression, ?string $extension = null): ?PharData
public compressFiles(int $compression): void
public convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData
public convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar
public copy(string $from, string $to): bool
public decompress(?string $extension = null): ?PharData
public decompressFiles(): bool
public delMetadata(): bool
public delete(string $localName): bool
public extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool
public isWritable(): bool
public offsetSet(string $localName, resource|string $value): void
public offsetUnset(string $localName): void
public setAlias(string $alias): bool
public setDefaultStub(?string $index = null, ?string $webIndex = null): bool
public setMetadata(mixed $metadata): void
public setSignatureAlgorithm(int $algo, ?string $privateKey = null): void
public setStub(string $stub, int $len = -1): bool
public __destruct()
/* Наследуемые методы */
public RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator
public RecursiveDirectoryIterator::getSubPath(): string
public RecursiveDirectoryIterator::getSubPathname(): string
public RecursiveDirectoryIterator::hasChildren(bool $allowLinks = false): bool
public RecursiveDirectoryIterator::key(): string
public RecursiveDirectoryIterator::next(): void
public RecursiveDirectoryIterator::rewind(): void
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Содержание

  • 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::__destruct — Уничтожает неисполняемый объект архива 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)
  • PharData::setMetadata — Установить метаданные phar-архива
  • PharData::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, PHP 8, PECL phar >= 2.0.0)

PharData::addEmptyDir — Добавить пустую директорию в tar/zip-архив

Описание

public PharData::addEmptyDir(string $directory): void

С помощью этого места можно создать директорию по пути dirname. Этот метод аналогичен ZipArchive::addEmptyDir().

Список параметров

directory

Путь создаваемой директории

Возвращаемые значения

Ничего не возвращает. В случае ошибок выбрасывает исключение.

Примеры

Пример #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, PHP 8, PECL phar >= 2.0.0)

PharData::addFile — Добавить существующие файлы к tar/zip-архиву

Описание

public PharData::addFile(string $filename, ?string $localName = null): void

С помощью этого метода можно добавить к архиву любые файлы или URL. Если задан опциональный параметр localname, то файл будет добавлен в архив с указанным именем, иначе будет использовано оригинальное имя из параметра file. Для URL локальное имя должно быть указано в обязательном порядке, иначе будет выброшено исключение. Метод аналогичен ZipArchive::addFile().

Список параметров

filename

Полный или относительный путь до файла на диске.

localName

Путь, по которому файл необходимо добавить в архив.

Возвращаемые значения

Ничего не возвращает, а в случае возникновения ошибки выбрасывает исключение.

Список изменений

Версия | Описание
8.0.0 | localName теперь допускает значение null.

Примеры

Пример #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::addFile(), PharData::addFromString() and PharData::offsetSet() save a new phar archive each time they are called. If performance is a concern, PharData::buildFromDirectory() or PharData::buildFromIterator() should be used instead.

Смотрите также

  • 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, PHP 8, PECL phar >= 2.0.0)

PharData::addFromString — Добавляет файл из строки в архив tar/zip

Описание

public 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::addFile(), PharData::addFromString() and PharData::offsetSet() save a new phar archive each time they are called. If performance is a concern, PharData::buildFromDirectory() or PharData::buildFromIterator() should be used instead.

Смотрите также

  • 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, PHP 8, PECL phar >= 2.0.0)

PharData::buildFromDirectory — Создаёт tar/zip-архив из файлов в директории

Описание

public PharData::buildFromDirectory(string $directory, string $pattern = ""): array

Наполняет tar/zip-архив содержимым директории. Второй опциональный параметр является регулярным выражением (pcre). Файлы, имена которых подходят под регулярное выражение, будут включены в архив, а все остальные нет. Если при создании архива нужна большая избирательность, то используйте метод PharData::buildFromIterator().

Список параметров

directory

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

pattern

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

Возвращаемые значения

Phar::buildFromDirectory() возвращает ассоциативный массив, связывающий путь к файлу внутри архива с полным путём к файлу на диске или false в случае возникновения ошибки.

Ошибки

Выбрасывает исключение BadMethodCallException, если не удаётся инициализировать внутренние итераторы директории. Исключение PharException выбрасывается при ошибках записи на диск.

Список изменений

Версия | Описание
8.1.0 | PharData::buildFromDirectory() больше не возвращает значение false.

Примеры

Пример #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, PHP 8, PECL phar >= 2.0.0)

PharData::buildFromIterator — Создание tar/zip-архива с помощью итератора

Описание

public PharData::buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array

Наполнение архив tar или zip с помощью итератора. Поддерживаются два типа итераторов: итератор, связывающий файл на диске с файлом внутри архива и итератор в стиле DirectoryIterator, который возвращает объекты SplFileInfo. Для итераторов, возвращающих объекты SplFileInfo, второй параметр является обязательным.

Список параметров

iterator

Итератор, предоставляющий связки ключ=>значение, либо объекты SplFileInfo

baseDirectory

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

Возвращаемые значения

PharData::buildFromIterator() возвращает ассоциативный массив, связывающий путь к файлу внутри архива с полным путём к файлу на диске.

Ошибки

Метод выбрасывает исключение UnexpectedValueException, если итератор вернул некорректное значение, например целочисленный ключ вместо строки. Исключение BadMethodCallException выбрасывается когда задан итератор, возвращающий объекты SplFileInfo без задания параметра baseDirectory. В случае проблем с записью на диск бросается исключение PharException.

Список изменений

Версия | Описание
8.1.0 | PharData::buildFromIterator() больше не возвращает значение false.
8.0.0 | baseDirectory теперь допускает значение null.

Примеры

Пример #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'),
)));
?>

Смотрите также

  • 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, PHP 8, PECL phar >= 2.0.0)

PharData::compress — Сжимает весь архив tar/zip, используя сжатие Gzip или Bzip2

Описание

public PharData::compress(int $compression, ?string $extension = null): ?PharData

Для 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 в случае успешного выполнения или null в случае возникновения ошибки.

Ошибки

Выбрасывает исключение BadMethodCallException, если недоступен модуль zlib или выключен модуль bzip2.

Список изменений

Версия | Описание
8.0.0 | extension теперь допускает значение null.

Примеры

Пример #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, PHP 8, PECL phar >= 2.0.0)

PharData::compressFiles — Сжать все файлы в текущем tar/zip-архиве

Описание

public 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, PHP 8, PECL phar >= 2.0.0)

PharData::__construct — Конструктор объекта PharData

Описание

public PharData::__construct(
string $filename,
int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS,
?string $alias = null,
int $format = 0
)

Список параметров

filename

Путь либо к существующему 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, PHP 8, PECL phar >= 2.0.0)

PharData::convertToData — Конвертация phar-архива в незапускаемый tar/zip-архив

Описание

public PharData::convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?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 или null в случае возникновения ошибки.

Ошибки

Метод выбрасывает исключениеBadMethodCallException когда не может произвести сжатие, когда задан неизвестный метод сжатия, для архива включена буферизация с помощью Phar::startBuffering(), и не отключена при помощи Phar::stopBuffering(). Исключение PharException выбрасывается при любых проблемах создания phar-архива.

Список изменений

Версия | Описание
8.0.0 | format, compression и extension теперь допускают значение null.

Примеры

Пример #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, PHP 8, PECL phar >= 2.0.0)

PharData::convertToExecutable — Конвертация tar/zip-архива с данными в запускаемый phar-архив

Описание

public PharData::convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?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 и null в случае возникновения ошибки.

Ошибки

Метод выбрасывает исключение BadMethodCallException если не может произвести сжатие, либо если задан неизвестный алгоритм сжатия, для архива включена буферизация с помощью Phar::startBuffering(), а метод Phar::stopBuffering() не вызывался. Выбрасывается исключение UnexpectedValueException, если запись запрещена. И выбрасывается PharException, если возникли проблемы записи на диск.

Список изменений

Версия | Описание
8.0.0 | format, compression и localName теперь допускают значение null.

Примеры

Пример #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, PHP 8, PECL phar >= 2.0.0)

PharData::copy — Скопировать файл из tar/zip-архива в новый файл внутри него же

Описание

public PharData::copy(string $from, string $to): bool

Копирует файл из tar/zip-архива в новый файл внутри него же. Это объектно-ориентированная альтернатива для copy() с потоковой обёрткой phar.

Список параметров

from

to

Возвращаемые значения

Возвращает 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, PHP 8, PECL phar >= 2.0.0)

PharData::decompress — Распаковать весь Phar-архив

Описание

public PharData::decompress(?string $extension = null): ?PharData

Для архивов типа tar, этот метод распаковывает весь архив.

Для архивов типа Zip этот метод выбросит исключение. Для разжатия gzip-архивов должен быть включён модуль zlib, а для bzip2, соответственно, модуль bzip2.

Также этот метод автоматически меняет расширение файла, по умолчанию .tar. Расширение можно указать явно с помощью параметра extension.

Список параметров

extension

По умолчанию при распаковке файлу меняется расширение на .tar. С помощью этого параметра можно явно указать новое расширение. Будьте осторожны, только запускаемые архивы могут содержать .phar в своих именах.

Возвращаемые значения

Возвращает объект типа PharData в случае успешного выполнения и null в случае возникновения ошибки.

Ошибки

Выбрасывает исключение BadMethodCallException, если отсутствует модуль, необходимый для распаковки: zlib или bzip2.

Список изменений

Версия | Описание
8.0.0 | extension теперь допускает значение null.

Примеры

Пример #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, PHP 8, PECL phar >= 2.0.0)

PharData::decompressFiles — Распаковать все файлы в текущем zip-архиве

Описание

public PharData::decompressFiles(): 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, PHP 8, PECL phar >= 2.0.0)

PharData::delMetadata — Удалить глобальные метаданные для zip-архива

Описание

public PharData::delMetadata(): 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::__destruct »
  • PHP Manual
  • PharData
  • Удалить файл из tar/zip-архива

PharData::delete

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::delete — Удалить файл из tar/zip-архива

Описание

public PharData::delete(string $localName): bool

Удаляет файл в архиве. Функционально аналогично вызову unlink() на эквиваленте потоковой обёртки, как показано в примере ниже.

Список параметров

localName

Путь до удаляемого файла.

Возвращаемые значения

Возвращает 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::extractTo »
  • PHP Manual
  • PharData
  • Уничтожает неисполняемый объект архива tar или zip

PharData::__destruct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::__destruct — Уничтожает неисполняемый объект архива tar или zip

Описание

public PharData::__destruct()

Список параметров

У этой функции нет параметров.


Извлечь содержимое tar/zip-архива в директорию

  • « PharData::__destruct
  • PharData::isWritable »
  • PHP Manual
  • PharData
  • Извлечь содержимое tar/zip-архива в директорию

PharData::extractTo

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::extractTo — Извлечь содержимое tar/zip-архива в директорию

Описание

public PharData::extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool

Извлекает все файлы tar/zip-архива на диск. Извлечённые файлы и директории сохраняют все разрешения, которые у них были. Опциональные параметры позволяют контролировать, какие именно файлы извлекать и нужно ли перезаписывать уже существующие. Второй параметр files может быть как именем файла, так и путём директории, которые надо извлекать. По умолчанию уже существующие на диске файлы перезаписываться не будут. Для указания, что нужно использовать перезапись, используется третий параметр. Этот метод аналогичен методу ZipArchive::extractTo().

Список параметров

directory

Путь, по которому необходимо сохраните извлечённые файлы (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) {
// обработка ошибок
}
?>

Примечания

Замечание:

Файловые системы Windows NTFS не поддерживают некоторые символы в именах файлов, а именно <|>*?":. Имена файлов с точкой в конце также не поддерживаются. В отличие от некоторых инструментов извлечения, этот метод не поддерживает замену этих символов на подчёркивание, а вместо этого возникает ошибка при извлечении таких файлов.

Смотрите также

  • Phar::extractTo() - Извлечь содержимое phar-архива в директорию


Проверить, можно ли модифицировать tar/zip-архив

  • « PharData::extractTo
  • PharData::offsetSet »
  • PHP Manual
  • PharData
  • Проверить, можно ли модифицировать tar/zip-архив

PharData::isWritable

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::isWritable — Проверить, можно ли модифицировать tar/zip-архив

Описание

public PharData::isWritable(): 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, PHP 8, PECL phar >= 2.0.0)

PharData::offsetSet — Изменение содержимого файла

Описание

public PharData::offsetSet(string $localName, resource|string $value): void

Это реализация интерфейса ArrayAccess, позволяющая манипулировать содержимым tar/zip-архива в стиле доступа к элементам массива. offsetSet используется для изменения контента существующего файла, либо для создания нового.

Список параметров

localName

Имя файла (относительный путь).

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;
}
?>

Примечания

Замечание: PharData::addFile(), PharData::addFromString() and PharData::offsetSet() save a new phar archive each time they are called. If performance is a concern, PharData::buildFromDirectory() or PharData::buildFromIterator() should be used instead.

Смотрите также

  • Phar::offsetSet() - Изменение содержимого файла


Удалить файл из tar/zip-архива

  • « PharData::offsetSet
  • PharData::setAlias »
  • PHP Manual
  • PharData
  • Удалить файл из tar/zip-архива

PharData::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::offsetUnset — Удалить файл из tar/zip-архива

Описание

public PharData::offsetUnset(string $localName): void

Это реализация интерфейса ArrayAccess, позволяющая манипулировать содержимым tar/zip-архива в стиле доступа к элементам массива. offsetUnset используется для удаления файлов и запускается каждый раз, когда используется конструкция unset().

Список параметров

localName

Имя файла (относительный путь).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение 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, PHP 8, PECL phar >= 2.0.0)

PharData::setAlias — Функция заглушка (Phar::setAlias нельзя использовать для PharData)

Описание

public PharData::setAlias(string $alias): bool

Незапускаемые tar/zip-архивы не могут иметь псевдонима, так что этот метод просто выбрасывает исключение.

Список параметров

alias

Параметр игнорируется.

Возвращаемые значения

Ошибки

Выбрасывает исключение PharException

Смотрите также

  • Phar::setAlias() - Установить псевдоним для Phar-архива


Функция заглушка (Phar::setDefaultStub нельзя использовать для PharData)

  • « PharData::setAlias
  • PharData::setMetadata »
  • PHP Manual
  • PharData
  • Функция заглушка (Phar::setDefaultStub нельзя использовать для PharData)

PharData::setDefaultStub

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::setDefaultStub — Функция заглушка (Phar::setDefaultStub нельзя использовать для PharData)

Описание

public PharData::setDefaultStub(?string $index = null, ?string $webIndex = null): bool

Незапускаемые tar/zip-архивы не могут иметь заглушку, так что этот метод просто выбрасывает исключение.

Список параметров

index

Относительный путь в phar-архиве для запуска при доступе из командной строки

webIndex

Относительный путь в phar-архиве для запуска при доступе через браузер

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выбрасывает исключение PharException

Список изменений

Версия | Описание
8.0.0 | webIndex теперь допускает значение null.

Смотрите также

  • Phar::setDefaultStub() - Установить загрузчик PHP или начальную заглушку Phar-архива в загрузчик по умолчанию


Установить метаданные phar-архива

  • « PharData::setDefaultStub
  • PharData::setSignatureAlgorithm »
  • PHP Manual
  • PharData
  • Установить метаданные phar-архива

PharData::setMetadata

(Информация о версии неизвестна, возможно, только в Git)

PharData::setMetadata — Установить метаданные phar-архива

Описание

public PharData::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-архива и применение его

  • « PharData::setMetadata
  • PharData::setStub »
  • PHP Manual
  • PharData
  • Установить алгоритм подписания phar-архива и применение его

PharData::setSignatureAlgorithm

(Информация о версии неизвестна, возможно, только в Git)

PharData::setSignatureAlgorithm — Установить алгоритм подписания phar-архива и применение его

Описание

public PharData::setSignatureAlgorithm(int $algo, ?string $privateKey = null): void

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Устанавливает алгоритм подписания phar-архива и применяет его.
Доступны следующие алгоритмы подписания: Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512 и Phar::OPENSSL.
(pgp пока не поддерживается, вместо него используется SHA-1).

Список параметров

algo

Одна из констант: Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512 или Phar::OPENSSL

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение UnexpectedValueException для большинства ошибок. Для архивов на основе zip или tar выбрасывает исключение BadMethodCallException. При ошибках записи на диск выбрасывает исключение PharException.

Список изменений

Версия | Описание
8.0.0 | privateKey теперь допускает значение null.

Смотрите также

  • Phar::getSupportedSignatures() - Получить массив поддерживаемых алгоритмов подписи архива
  • Phar::getSignature() - Получить MD5/SHA1/SHA256/SHA512/OpenSSL подпись Phar-архива


Функция заглушка (Phar::setStub нельзя использовать для PharData)

  • « PharData::setSignatureAlgorithm
  • PharFileInfo »
  • PHP Manual
  • PharData
  • Функция заглушка (Phar::setStub нельзя использовать для PharData)

PharData::setStub

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::setStub — Функция заглушка (Phar::setStub нельзя использовать для PharData)

Описание

public PharData::setStub(string $stub, int $len = -1): bool

Незапускаемые tar/zip-архивы не могут иметь загрузчика (stub), так что этот метод просто бросает исключение.

Список параметров

stub

Параметр игнорируется.

len

Параметр игнорируется.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выбрасывает исключение PharException

Смотрите также

  • Phar::setStub() - Установить загрузчик или загрузочную заглушку в Phar-архив


Класс PharFileInfo

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Введение

Класс PharFileInfo предоставляет высокоуровневый интерфейс к содержимому и атрибутам отдельного файла в phar-архиве.

Обзор классов

class PharFileInfo extends SplFileInfo {
/* Методы */
public __construct(string $filename)
public chmod(int $perms): void
public compress(int $compression): bool
public decompress(): bool
public delMetadata(): bool
public getCRC32(): int
public getCompressedSize(): int
public getContent(): string
public getMetadata(array $unserializeOptions = []): mixed
public getPharFlags(): int
public hasMetadata(): bool
public isCRCChecked(): bool
public isCompressed(?int $compression = null): bool
public setMetadata(mixed $metadata): void
public __destruct()
/* Наследуемые методы */
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Содержание

  • PharFileInfo::chmod — Установка прав доступа
  • PharFileInfo::compress — Сжать текущий файл с помощью zlib или bzip2
  • PharFileInfo::__construct — Конструктор объекта PharFileInfo
  • PharFileInfo::decompress — Разжимает текущий файл
  • PharFileInfo::delMetadata — Удалить метаданные файла
  • PharFileInfo::__destruct — Уничтожает входной объект Phar
  • PharFileInfo::getCRC32 — Получить контрольную сумму CRC32
  • PharFileInfo::getCompressedSize — Получить реальный занимаемый файлом размер на диске с учётом сжатия
  • PharFileInfo::getContent — Получить полное содержимое файла записи
  • PharFileInfo::getMetadata — Получить метаданные, связанные с файлом
  • PharFileInfo::getPharFlags — Получить флаги файла в phar-архиве
  • PharFileInfo::hasMetadata — Проверить, есть ли у файла метаданные
  • PharFileInfo::isCRCChecked — Определить, прошёл ли файл проверку CRC
  • PharFileInfo::isCompressed — Проверить, сжат ли файл
  • PharFileInfo::setMetadata — Установка метаданных для конкретного файла


Установка прав доступа

  • « PharFileInfo
  • PharFileInfo::compress »
  • PHP Manual
  • PharFileInfo
  • Установка прав доступа

PharFileInfo::chmod

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::chmod — Установка прав доступа

Описание

public PharFileInfo::chmod(int $perms): void

PharFileInfo::chmod() позволяет устанавливать биты разрешений на запуск и чтение для файлов. Биты записи игнорируются, поскольку настраиваются во время исполнения на основании значения INI-переменной phar.readonly. Как и для любого другого функционала, модифицирующего phar-архив, необходимо, чтобы переменная phar.readonly была отключена для успешного изменения прав на файл в архиве Phar. Архивы PharData не имеют таких ограничений.

Список параметров

perms

Разрешения (смотрите описание функции 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, PHP 8, 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.

Список параметров

compression

Сжатие должно быть Phar::GZ или Phar::BZ2.

Возвращаемые значения

Возвращает 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, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::__construct — Конструктор объекта PharFileInfo

Описание

public PharFileInfo::__construct(string $filename)

Не должен вызываться напрямую. Объект PharFileInfo следует инициализировать с помощью Phar::offsetGet(), используя синтаксис доступа к массиву.

Список параметров

filename

Полный 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, PHP 8, PECL phar >= 2.0.0)

PharFileInfo::decompress — Разжимает текущий файл

Описание

public PharFileInfo::decompress(): 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::__destruct »
  • PHP Manual
  • PharFileInfo
  • Удалить метаданные файла

PharFileInfo::delMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)

PharFileInfo::delMetadata — Удалить метаданные файла

Описание

public PharFileInfo::delMetadata(): 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-архива


Уничтожает входной объект Phar

  • « PharFileInfo::delMetadata
  • PharFileInfo::getCRC32 »
  • PHP Manual
  • PharFileInfo
  • Уничтожает входной объект Phar

PharFileInfo::__destruct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::__destruct — Уничтожает входной объект Phar

Описание

public PharFileInfo::__destruct()

Список параметров

У этой функции нет параметров.


Получить контрольную сумму CRC32

  • « PharFileInfo::__destruct
  • PharFileInfo::getCompressedSize »
  • PHP Manual
  • PharFileInfo
  • Получить контрольную сумму CRC32

PharFileInfo::getCRC32

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::getCRC32 — Получить контрольную сумму CRC32

Описание

public PharFileInfo::getCRC32(): 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, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::getCompressedSize — Получить реальный занимаемый файлом размер на диске с учётом сжатия

Описание

public PharFileInfo::getCompressedSize(): 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, PHP 8)

PharFileInfo::getContent — Получить полное содержимое файла записи

Описание

public PharFileInfo::getContent(): string

Эта функция ведёт себя как file_get_contents(), но для Phar.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое файла.


Получить метаданные, связанные с файлом

  • « PharFileInfo::getContent
  • PharFileInfo::getPharFlags »
  • PHP Manual
  • PharFileInfo
  • Получить метаданные, связанные с файлом

PharFileInfo::getMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::getMetadata — Получить метаданные, связанные с файлом

Описание

public PharFileInfo::getMetadata(array $unserializeOptions = []): mixed

Возвращает метаданные, связанные с файлом.

Список параметров

Возвращаемые значения

Любая переменная PHP, которая может быть сериализована и сохранена в виде метаданных файла, либо null, если метаданных нет.

Список изменений

Версия | Описание
8.0.0 | Добавлен параметр unserializeOptions.

Примеры

Пример #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, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::getPharFlags — Получить флаги файла в phar-архиве

Описание

public PharFileInfo::getPharFlags(): 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, PHP 8, PECL phar >= 1.2.0)

PharFileInfo::hasMetadata — Проверить, есть ли у файла метаданные

Описание

public PharFileInfo::hasMetadata(): 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, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::isCRCChecked — Определить, прошёл ли файл проверку CRC

Описание

public PharFileInfo::isCRCChecked(): 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::setMetadata »
  • PHP Manual
  • PharFileInfo
  • Проверить, сжат ли файл

PharFileInfo::isCompressed

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::isCompressed — Проверить, сжат ли файл

Описание

public PharFileInfo::isCompressed(?int $compression = null): bool

Проверяет, сжат ли файл внутри Phar-архива с помощью Gzip или Bzip2.

Список параметров

compression

Одна из констант Phar::GZ или Phar::BZ2. По умолчанию - любой тип сжатия.

Возвращаемые значения

true, если файл сжат и false в противном случае.

Список изменений

Версия | Описание
8.0.0 | compression теперь допускает значение null.

Примеры

Пример #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-архиве


Установка метаданных для конкретного файла

  • « PharFileInfo::isCompressed
  • PharException »
  • PHP Manual
  • PharFileInfo
  • Установка метаданных для конкретного файла

PharFileInfo::setMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, 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-архива


Класс PharException

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Введение

Класс PharException предоставляет класс исключения модуля phar для блоков try/catch.

Обзор классов

class PharException extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): 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 (int)
Используйте вместо неё константу RarEntry::HOST_MSDOS.
RAR_HOST_OS2 (int)
Используйте вместо неё константу RarEntry::HOST_OS2.
RAR_HOST_WIN32 (int)
Используйте вместо неё константу RarEntry::HOST_WIN32.
RAR_HOST_UNIX (int)
Используйте вместо неё константу RarEntry::HOST_UNIX.
RAR_HOST_BEOS (int)
Используйте вместо неё константу 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(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс RarArchive

(PECL rar >= 2.0.0)

Введение

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

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

Обзор классов

final class RarArchive implements Traversable {
/* Методы */
public close(): bool
public getComment(): string
public getEntries(): array|false
public getEntry(string $entryname): RarEntry|false
public isBroken(): bool
public isSolid(): bool
public static open(string $filename, string $password = NULL, callable $volume_callback = NULL): RarArchive|false
public setAllowBroken(bool $allow_broken): bool
public __toString(): 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 архив и освобождает все ресурсы

Описание

Объектно-ориентированный стиль (метод):

public RarArchive::close(): bool

Процедурный стиль:

rar_close(RarArchive $rarfile): bool

Закрывает RAR архив и освобождает все ресурсы связанные с ним.

Список параметров

rarfile

Объект RarArchive, открытый с помощью rar_open().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL rar 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

Описание

Объектно-ориентированный стиль (метод):

public RarArchive::getComment(): 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 архива

Описание

Объектно-ориентированный стиль (метод):

public RarArchive::getEntries(): array|false

Процедурный стиль:

rar_list(RarArchive $rarfile): array|false

Возвращает элементы (файлы и директории) из RAR архива.

Замечание:

Если архив имеет элементы с одинаковым именем, то этот метод совместно с циклом foreach по RarArchive и доступом к нему как к массиву с числовыми индексами являются единственными способами получить доступ к этим элементам (т.е. RarArchive::getEntry() и rar:// обработчик (wrapper) не помогут).

Список параметров

rarfile

Объект RarArchive открытый с помощью rar_open().

Возвращаемые значения

rar_list() возвращает массив объектов RarEntry или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL rar 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 архива

Описание

Объектно-ориентированный стиль (метод):

public RarArchive::getEntry(string $entryname): RarEntry|false

Процедурный стиль:

rar_entry_get(RarArchive $rarfile, string $entryname): RarEntry|false

Возвращает объект элемента (файл или директорию) из 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 — Проверяет, не сломан ли архив (не завершён)

Описание

Объектно-ориентированный стиль (метод):

public RarArchive::isBroken(): 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 — Проверить, является ли архив сплошным

Описание

Объектно-ориентированный стиль (метод):

public RarArchive::isSolid(): 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

Описание

Объектно-ориентированный стиль (метод):

public static RarArchive::open(string $filename, string $password = NULL, callable $volume_callback = NULL): RarArchive|false

Процедурный стиль:

rar_open(string $filename, string $password = NULL, callable $volume_callback = NULL): RarArchive|false

Открывает указанный RAR-архив и возвращает объект RarArchive, представляющий его.

Замечание:

При открытии многотомного архива путь к первому тому должен быть передан первым параметром. Иначе не будут видны все файлы.

Список параметров

filename

Путь к архиву Rar.

password

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

volume_callback

Функция, которой передаётся единственный параметр - путь к тому, который не был найден, и возвращающая строку с правильным путём для этого тома или null, если данный том не существует или неизвестен. Разработчик должен быть уверен, что данная функция не приведёт к зацикливанию, так как она вызывается повторно, если путь полученный предыдущим вызовом не соответствует нужному тому. Указание этого параметра устраняет предупреждения, которые появлялись бы, если бы том не был бы найден. В случае, если функция возвращает только null, то не будет ни одного предупреждения.

Внимание

До версии 2.0.0 эта функция не обрабатывала правильно относительные пути. В таких случаях используйте realpath().

Возвращаемые значения

Возвращает запрашиваемый объект RarArchive или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL rar 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 — Открывать ли повреждённые архивы

Описание

Объектно-ориентированный стиль (метод):

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(): 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 class RarEntry {
/* Константы */
const int HOST_MSDOS = 0;
const int HOST_OS2 = 1;
const int HOST_WIN32 = 2;
const int HOST_UNIX = 3;
const int HOST_MACOS = 4;
const int HOST_BEOS = 5;
const int ATTRIBUTE_WIN_READONLY = 1;
const int ATTRIBUTE_WIN_HIDDEN = 2;
const int ATTRIBUTE_WIN_SYSTEM = 4;
const int ATTRIBUTE_WIN_DIRECTORY = 16;
const int ATTRIBUTE_WIN_ARCHIVE = 32;
const int ATTRIBUTE_WIN_DEVICE = 64;
const int ATTRIBUTE_WIN_NORMAL = 128;
const int ATTRIBUTE_WIN_TEMPORARY = 256;
const int ATTRIBUTE_WIN_SPARSE_FILE = 512;
const int ATTRIBUTE_WIN_REPARSE_POINT = 1024;
const int ATTRIBUTE_WIN_COMPRESSED = 2048;
const int ATTRIBUTE_WIN_OFFLINE = 4096;
const int ATTRIBUTE_WIN_NOT_CONTENT_INDEXED = 8192;
const int ATTRIBUTE_WIN_ENCRYPTED = 16384;
const int ATTRIBUTE_WIN_VIRTUAL = 65536;
const int ATTRIBUTE_UNIX_WORLD_EXECUTE = 1;
const int ATTRIBUTE_UNIX_WORLD_WRITE = 2;
const int ATTRIBUTE_UNIX_WORLD_READ = 4;
const int ATTRIBUTE_UNIX_GROUP_EXECUTE = 8;
const int ATTRIBUTE_UNIX_GROUP_WRITE = 16;
const int ATTRIBUTE_UNIX_GROUP_READ = 32;
const int ATTRIBUTE_UNIX_OWNER_EXECUTE = 64;
const int ATTRIBUTE_UNIX_OWNER_WRITE = 128;
const int ATTRIBUTE_UNIX_OWNER_READ = 256;
const int ATTRIBUTE_UNIX_STICKY = 512;
const int ATTRIBUTE_UNIX_SETGID = 1024;
const int ATTRIBUTE_UNIX_SETUID = 2048;
const int ATTRIBUTE_UNIX_FINAL_QUARTET = 61440;
const int ATTRIBUTE_UNIX_FIFO = 4096;
const int ATTRIBUTE_UNIX_CHAR_DEV = 8192;
const int ATTRIBUTE_UNIX_DIRECTORY = 16384;
const int ATTRIBUTE_UNIX_BLOCK_DEV = 24576;
const int ATTRIBUTE_UNIX_REGULAR_FILE = 32768;
const int ATTRIBUTE_UNIX_SYM_LINK = 40960;
const int ATTRIBUTE_UNIX_SOCKET = 49152;
/* Методы */
public extract(
string $dir,
string $filepath = "",
string $password = NULL,
bool $extended_data = false
): bool
public getAttr(): int
public getCrc(): string
public getFileTime(): string
public getHostOs(): int
public getMethod(): int
public getName(): string
public getPackedSize(): int
public getStream(string $password = ?): resource|false
public getUnpackedSize(): int
public getVersion(): int
public isDirectory(): bool
public isEncrypted(): bool
public __toString(): 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 в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL rar 3.0.0 | Был добавлен параметр extended_data.
PECL rar 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(): 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(): string

Возвращает шестнадцатеричное строковое представление CRC элемента архива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает CRC элемента архива или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL rar 2.0.0 | Теперь этот метод возвращает корректные значения для многотомных архивов.


Возвращает последнее время изменения элемента

  • « RarEntry::getCrc
  • RarEntry::getHostOs »
  • PHP Manual
  • RarEntry
  • Возвращает последнее время изменения элемента

RarEntry::getFileTime

(PECL rar >= 0.1)

RarEntry::getFileTime — Возвращает последнее время изменения элемента

Описание

public RarEntry::getFileTime(): 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(): 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(): 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(): string

Возвращает имя элемента массива (вместе с путём).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя элемента в виде строки, или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL rar 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(): int

Возвращает размер сжатого элемента архива.

Замечание:

Учтите, что на платформах с 32-х битными целыми long (включая Windows x64), максимальный возвращаемый размер ограничен 2 ГБ. Проверьте константу PHP_INT_MAX.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер сжатого элемента, или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL rar 2.0.0 | Данный метод теперь возвращает правильные значения для сжатых данных больше 2 ГБ на платформах с 64-х битными целыми (int) и никогда не возвращает отрицательные значения на всех платформах.

Примеры

Пример #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|false

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

Обработчик не уничтожается при вызове rar_close().

Внимание

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

Список параметров

password

Пароль, использовавшийся для шифрования записи. Если запись не шифрована, то этот параметр игнорируется и в целом может быть опущен. Если же параметр опущен, а запись шифрована, то будет использован пароль заданный в функции rar_open(), если конечно он был задан. Если был задан неверный пароль, явно или неявно через rar_open(), этот метод вернёт поток с неверными данными. Если пароль не задан вообще, а он нужен, то метод вернёт false. Зашифрована ли запись или нет можно проверить с помощью RarEntry::isEncrypted().

Возвращаемые значения

Обработчик или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL rar 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(): int

Возвращает размер элемента архива в распакованном состоянии.

Замечание:

Учтите, что на платформах с 32-х битными целыми long (включая Windows x64), максимальный возвращаемый размер ограничен 2 ГБ. Проверьте константу PHP_INT_MAX.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер распакованного элемента, или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL rar 2.0.0 | Данный метод теперь возвращает правильные значения для сжатых данных больше 2 ГБ на платформах с 64-х битными целыми (int) и никогда не возвращает отрицательные значения на всех платформах.

Возвращаемые значения

Пример #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(): 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(): 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(): bool

Проверяет, зашифрована ли текущая запись.

Замечание:

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true или false в зависимости от результата.


Получить текстовое представление записи

  • « RarEntry::isEncrypted
  • RarException »
  • PHP Manual
  • RarEntry
  • Получить текстовое представление записи

RarEntry::__toString

(PECL rar >= 2.0.0)

RarEntry::__toString — Получить текстовое представление записи

Описание

public RarEntry::__toString(): 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 class RarException extends Exception {
/* Методы */
public static isUsingExceptions(): bool
public static setUsingExceptions(bool $using_exceptions): void
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Содержание

  • RarException::isUsingExceptions — Проверить, будут ли функции возвращать ошибки или выбрасывать исключения
  • RarException::setUsingExceptions — Включить или отключить генерацию исключений вместо возвращения ошибок


Проверить, будут ли функции возвращать ошибки или выбрасывать исключения

  • « RarException
  • RarException::setUsingExceptions »
  • PHP Manual
  • RarException
  • Проверить, будут ли функции возвращать ошибки или выбрасывать исключения

RarException::isUsingExceptions

(PECL rar >= 2.0.0)

RarException::isUsingExceptions — Проверить, будут ли функции возвращать ошибки или выбрасывать исключения

Описание

public static RarException::isUsingExceptions(): 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::clearError — Удаляет сообщение об ошибке статуса, системные и/или сообщения модуля zip
    • ZipArchive::close — Закрывает активный архив (открытый или вновь созданный)
    • ZipArchive::count — Подсчитывает количество файлов в архиве
    • ZipArchive::deleteIndex — Удаляет элемент в архиве, используя его индекс
    • ZipArchive::deleteName — Удаляет элемент в архиве, используя его имя
    • ZipArchive::extractTo — Извлекает содержимое архива
    • ZipArchive::getArchiveComment — Возвращает комментарий ZIP-архива
    • ZipArchive::getArchiveFlag — Возвращает значение глобального флага ZIP-архива
    • ZipArchive::getCommentIndex — Возвращает комментарий элемента, используя его индекс
    • ZipArchive::getCommentName — Возвращает комментарий элемента, используя его имя
    • ZipArchive::getExternalAttributesIndex — Извлечь внешние атрибуты записи по её индексу
    • ZipArchive::getExternalAttributesName — Извлечь внешние атрибуты записи по её имени
    • ZipArchive::getFromIndex — Возвращает содержимое элемента по его индексу
    • ZipArchive::getFromName — Возвращает содержимое элемента по его имени
    • ZipArchive::getNameIndex — Возвращает имя элемента по его индексу
    • ZipArchive::getStatusString — Возвращают статус сообщения об ошибке, системный и/или zip-статус
    • ZipArchive::getStream — Получить дескриптор файла элемента, определённый по имени элемента (только для чтения)
    • ZipArchive::getStreamIndex — Получает обработчик файла для записи, определённой её индексом (только для чтения)
    • ZipArchive::getStreamName — Получает обработчик файла для записи, определённой её именем (только для чтения)
    • ZipArchive::isCompressionMethodSupported — Проверяет, поддерживается ли метод сжатия libzip
    • ZipArchive::isEncryptionMethodSupported — Проверяет, поддерживается ли метод шифрования libzip
    • ZipArchive::locateName — Возвращает индекс элемента в архиве
    • ZipArchive::open — Открывает ZIP-архив
    • ZipArchive::registerCancelCallback — Регистрирует callback-функцию для разрешения отмены во время закрытия архива
    • ZipArchive::registerProgressCallback — Регистрирует callback-функцию для предоставления обновлений при закрытии архива
    • ZipArchive::renameIndex — Переименовывает элемент по его индексу
    • ZipArchive::renameName — Переименовывает элемент по его имени
    • ZipArchive::replaceFile — Заменяет файл в ZIP-архиве указанным путём
    • ZipArchive::setArchiveComment — Устанавливает комментарий к ZIP-архиву
    • ZipArchive::setArchiveFlag — Устанавливает глобальный флаг 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-архивы, так и в файлы внутри них.


Требования

Для модуля требуется » libzip. Версия 1.1.2 была включена в PHP до версии 7.3.

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

  • Для поддержки шифрования необходима версия 1.2, смотрите ZipArchive::setEncryptionIndex()
  • Для поддержки прогресса необходима версия 1.3, смотрите ZipArchive::registerProgressCallback()
  • Для поддержки отмены необходима версия 1.6, смотрите ZipArchive::registerCancelCallback()


Установка

Системы Linux

Начиная с PHP 7.4.0, чтобы использовать эти функции, вы должны скомпилировать PHP с поддержкой zip с помощью --with-zip. Ранее поддержку zip нужно было включать с помощью параметра конфигурации --enable-zip. Начиная с PHP 7.4.0, пакет libzip удалён.

Начиная с PHP 7.3.0, сборка с использованием libzip, входящего в PHP, не рекомендуется, но всё же возможно путём добавления --without-libzip в конфигурацию.

Опция --with-libzip=DIR, указывающая использовать системную библиотеку libzip. Требуется libzip версии 0.11, рекомендуется версия 0.11.2 или новее.

Windows

Начиная с PHP 8.2.0, php_zip.dll DLL должен быть включён в php.ini. Ранее модуль был встроен по умолчанию.

Установка через PECL

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/zip.


Типы ресурсов

В Zip-модуле используются два типа ресурсов. Первый — директория Zip для Zip-архива, второй — Zip Entry для записей архива.


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

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

ZipArchive использует константы класса. Существуют различные типы констант, основными из которых являются: Глобальные флаги (префикс AFL_), флаги (префикс FL_), ошибки (префикс ER_) и режима работы (без префикса).

Режимы открытия архива
ZipArchive::CREATE
Создавать архив, если он не существует.
ZipArchive::OVERWRITE
Если архив существует, то игнорировать текущее его содержимое. Другими словами, обработать его так же, как и пустой архив.
ZipArchive::EXCL
Выводить ошибку, если архив существует.
ZipArchive::RDONLY
Открыть архив в режиме только для чтения. Доступно с PHP 7.4.3 и PECL zip 1.17.1, соответственно, если скомпилировано с использованием libzip ? 1.0.0.
ZipArchive::CHECKCONS
Выполнять дополнительные проверки на структуру архива и выдавать ошибку при неудаче.
Глобальные флаги архива
ZipArchive::AFL_RDONLY
Архив доступен только для чтения, очистить его нельзя. Доступно, начиная с PHP 8.3.0 и PECL zip 1.22.0, соответственно, если собрано с libzip ? 1.10.0.
ZipArchive::AFL_IS_TORRENTZIP
Текущий архив записан в формате torrentzip. Доступно, начиная с PHP 8.3.0 и PECL zip 1.22.0, соответственно, если собран с libzip ? 1.10.0.
ZipArchive::AFL_WANT_TORRENTZIP
Запись архива в формате torrentzip. Доступно, начиная с PHP 8.3.0 и PECL zip 1.22.0, соответственно, если собран с libzip ? 1.10.0.
ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE
Не удалять файл, если архив пуст. Доступно, начиная с PHP 8.3.0 и PECL zip 1.22.0, соответственно, если собрано с libzip ? 1.10.0.
Флаги архива
ZipArchive::FL_NOCASE
Игнорировать регистр символов в именах элементов архива.
ZipArchive::FL_NODIR
Не учитывать пути директорий в архиве.
ZipArchive::FL_COMPRESSED
Читать сжатые данные.
ZipArchive::FL_UNCHANGED
Использовать исходные данные, игнорируя изменения.
ZipArchive::FL_RECOMPRESS
Принудительное повторное сжатие данных. Доступно с PHP 8.0.0 и PECL zip 1.18.0. Объявлено устаревшим, начиная с PHP 8.3.0 и PECL zip 1.22.1, будет удалено в будущей версии libzip.
ZipArchive::FL_ENCRYPTED
Чтение зашифрованных данных (подразумевается FL_COMPRESSED). Доступно с PHP 8.0.0 и PECL zip 1.18.0.
ZipArchive::FL_OVERWRITE
Если файл с именем существует, перезаписывает (заменяет) его. Доступно с PHP 8.0.0 и PECL zip 1.18.0.
ZipArchive::FL_LOCAL
В локальном заголовке. Доступно с PHP 8.0.0 и PECL zip 1.18.0.
ZipArchive::FL_CENTRAL
В центральном каталоге. Доступно с PHP 8.0.0 и PECL zip 1.18.0.
ZipArchive::FL_ENC_GUESS
Угадать кодировку строки (по умолчанию). Доступно с PHP 7.0.8.
ZipArchive::FL_ENC_RAW
Взять немодифицированную строку. Доступно с PHP 7.0.8.
ZipArchive::FL_ENC_STRICT
Строго следовать спецификации. Доступно с PHP 7.0.8.
ZipArchive::FL_ENC_UTF_8
Строка в кодировке UTF-8. Доступно с PHP 7.0.8.
ZipArchive::FL_ENC_CP437
Строка в кодировке CP437. Доступно с PHP 7.0.8.
ZipArchive::FL_OPEN_FILE_NOW
Открывает файл при добавлении вместо того, чтобы ждать закрытия архива. Помните о потреблении файловых дескрипторов. Доступно, начиная с PHP 8.3.0 и PECL zip 1.22.1.
Режимы сжатия
ZipArchive::CM_DEFAULT
Выбрать лучший метод сжатия "deflate" или "stored" (без сжатия).
ZipArchive::CM_STORE
Метод сжатия "stored" (без сжатия).
ZipArchive::CM_SHRINK
Метод сжатия "shrunk".
ZipArchive::CM_REDUCE_1
Метод сжатия "reduced" с коэффициентом 1.
ZipArchive::CM_REDUCE_2
Метод сжатия "reduced" с коэффициентом 2.
ZipArchive::CM_REDUCE_3
Метод сжатия "reduced" с коэффициентом 3.
ZipArchive::CM_REDUCE_4
Метод сжатия "reduced" с коэффициентом 4.
ZipArchive::CM_IMPLODE
Метод сжатия "imploded".
ZipArchive::CM_DEFLATE
Метод сжатия "deflated".
ZipArchive::CM_DEFLATE64
Метод сжатия "deflate64".
ZipArchive::CM_PKWARE_IMPLODE
Метод сжатия "PKWARE imploding".
ZipArchive::CM_BZIP2
Метод сжатия алгоритмом BZIP2.
ZipArchive::CM_LZMA
Метод сжатия алгоритмом LZMA.
ZipArchive::CM_LZMA2
Метод сжатия алгоритмом LZMA2. Доступно с PHP 7.4.3 и PECL zip 1.16.0, соответственно, если скомпилировано с использованием libzip ? 1.6.0.
ZipArchive::CM_ZSTD
Метод сжатия алгоритмом Zstandard. Доступно, начиная с PHP 8.0.0 и PECL zip 1.19.1, соответственно, если скомпилировано с использованием libzip ? 1.8.0.
ZipArchive::CM_XZ
Метод сжатия алгоритмом XZ. Доступно с PHP 7.4.3 и PECL zip 1.16.0, соответственно, если скомпилировано с использованием libzip ? 1.6.0.
ZipArchive::CM_TERSE
ZipArchive::CM_LZ77
ZipArchive::CM_WAVPACK
ZipArchive::CM_PPMD
Ошибки
ZipArchive::ER_OK
Нет ошибок.
ZipArchive::ER_MULTIDISK
Многотомный ZIP-архив не поддерживается.
ZipArchive::ER_RENAME
Переименование временного файла не удалось.
ZipArchive::ER_CLOSE
Закрытие ZIP-архива не удалось.
ZipArchive::ER_SEEK
Ошибка поиска.
ZipArchive::ER_READ
Ошибка чтения.
ZipArchive::ER_WRITE
Ошибка записи.
ZipArchive::ER_CRC
Ошибка контрольной суммы.
ZipArchive::ER_ZIPCLOSED
Открытый ZIP-архив был закрыт.
ZipArchive::ER_NOENT
Нет такого файла.
ZipArchive::ER_EXISTS
Файл уже существует.
ZipArchive::ER_OPEN
Невозможно открыть файл.
ZipArchive::ER_TMPOPEN
Не удалось создать временный файл.
ZipArchive::ER_ZLIB
Ошибка Zlib.
ZipArchive::ER_MEMORY
Ошибка выделения памяти.
ZipArchive::ER_CHANGED (string)
Запись была изменена.
ZipArchive::ER_COMPNOTSUPP
Метод сжатия не поддерживается.
ZipArchive::ER_EOF
Преждевременный конец файла.
ZipArchive::ER_INVAL
Недопустимый аргумент.
ZipArchive::ER_NOZIP
Не ZIP-архив.
ZipArchive::ER_INTERNAL
Внутренняя ошибка.
ZipArchive::ER_INCONS
ZIP-архив несовместим.
ZipArchive::ER_REMOVE
Невозможно удалить файл.
ZipArchive::ER_DELETED
Запись была удалена.
ZipArchive::ER_ENCRNOTSUPP
Метод шифрования не поддерживается. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно.
ZipArchive::ER_RDONLY
Архив только для чтения. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно.
ZipArchive::ER_NOPASSWD
Пароль не указан. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно.
ZipArchive::ER_WRONGPASSWD
Предоставлен неверный пароль. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно.
ZipArchive::ER_OPNOTSUPP
Операция не поддерживается. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно, если скомпилировано с использованием libzip ? 1.0.0.
ZipArchive::ER_INUSE
Ресурс всё ещё используется. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно, если скомпилировано с использованием libzip ? 1.0.0.
ZipArchive::ER_TELL
Указана ошибка. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно, если скомпилировано с использованием libzip ? 1.0.0.
ZipArchive::ER_COMPRESSED_DATA
Сжатые данные неверны. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно, если скомпилировано с использованием libzip ? 1.0.0.
ZipArchive::ER_CANCELLED
Операция отменена. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.1, соответственно, если скомпилировано с использованием libzip ? 1.0.0.
ZipArchive::ER_DATA_LENGTH
Неожиданная длина данных. Доступно, начиная с PHP 8.3.0 и PECL zip 1.22.0, соответственно, если собрано с libzip ? 1.10.0.
ZipArchive::ER_NOT_ALLOWED
Не допускается в torrentzip. Доступно, начиная с PHP 8.3.0 и PECL zip 1.22.0, соответственно, если собран с libzip ? 1.10.0.
Режимы шифрования
ZipArchive::EM_NONE
Без шифрования. Доступно, начиная с PHP 7.2.0 и PECL zip 1.14.0, соответственно, если скомпилировано с использованием libzip ? 1.2.0.
ZipArchive::EM_TRAD_PKWARE
Традиционное шифрование PKWARE. Доступно, начиная с PHP 8.0.0 и PECL zip 1.19.0.
ZipArchive::EM_AES_128
Шифрование AES 128. Доступно, начиная с PHP 7.2.0 и PECL zip 1.14.0, соответственно, если скомпилировано с использованием libzip ? 1.2.0.
ZipArchive::EM_AES_192
Шифрование AES 192. Доступно, начиная с PHP 7.2.0 и PECL zip 1.14.0, соответственно, если скомпилировано с использованием libzip ? 1.2.0.
ZipArchive::EM_AES_256
Шифрование AES 256. Доступно, начиная с PHP 7.2.0 и PECL zip 1.14.0, соответственно, если скомпилировано с использованием libzip ? 1.2.0.
ZipArchive::EM_UNKNOWN
Без шифрования. Доступно, начиная с PHP 8.0.0 и PECL zip 1.19.0.
Другие константы
ZipArchive::LIBZIP_VERSION (string)
Версия библиотеки Zip. Доступно, начиная с PHP 7.4.3 и PECL zip 1.16.0.
Константы операционной системы для внешних атрибутов
ZipArchive::OPSYS_DOS
ZipArchive::OPSYS_AMIGA
ZipArchive::OPSYS_OPENVMS
ZipArchive::OPSYS_UNIX
ZipArchive::OPSYS_VM_CMS
ZipArchive::OPSYS_ATARI_ST
ZipArchive::OPSYS_OS_2
ZipArchive::OPSYS_MACINTOSH
ZipArchive::OPSYS_Z_SYSTEM
ZipArchive::OPSYS_CPM
ZipArchive::OPSYS_WINDOWS_NTFS
ZipArchive::OPSYS_MVS
ZipArchive::OPSYS_VSE
ZipArchive::OPSYS_ACORN_RISC
ZipArchive::OPSYS_VFAT
ZipArchive::OPSYS_ALTERNATE_MVS
ZipArchive::OPSYS_BEOS
ZipArchive::OPSYS_TANDEM
ZipArchive::OPSYS_OS_400
ZipArchive::OPSYS_OS_X
ZipArchive::OPSYS_DEFAULT
Начиная с 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, PHP 8, PECL zip >= 1.1.0)

Введение

Файловый архив, сжатый Zip.

Обзор классов

class ZipArchive implements Countable {
/* Константы */
public const int CREATE;
public const int EXCL;
public const int CHECKCONS;
public const int OVERWRITE;
public const int RDONLY;
public const int FL_NOCASE;
public const int FL_NODIR;
public const int FL_COMPRESSED;
public const int FL_UNCHANGED;
public const int FL_RECOMPRESS;
public const int FL_ENCRYPTED;
public const int FL_OVERWRITE;
public const int FL_LOCAL;
public const int FL_CENTRAL;
public const int FL_ENC_GUESS;
public const int FL_ENC_RAW;
public const int FL_ENC_STRICT;
public const int FL_ENC_UTF_8;
public const int FL_ENC_CP437;
public const int CM_DEFAULT;
public const int CM_STORE;
public const int CM_SHRINK;
public const int CM_REDUCE_1;
public const int CM_REDUCE_2;
public const int CM_REDUCE_3;
public const int CM_REDUCE_4;
public const int CM_IMPLODE;
public const int CM_DEFLATE;
public const int CM_DEFLATE64;
public const int CM_PKWARE_IMPLODE;
public const int CM_BZIP2;
public const int CM_LZMA;
public const int CM_LZMA2;
public const int CM_ZSTD;
public const int CM_XZ;
public const int CM_TERSE;
public const int CM_LZ77;
public const int CM_WAVPACK;
public const int CM_PPMD;
public const int ER_OK;
public const int ER_MULTIDISK;
public const int ER_RENAME;
public const int ER_CLOSE;
public const int ER_SEEK;
public const int ER_READ;
public const int ER_WRITE;
public const int ER_CRC;
public const int ER_ZIPCLOSED;
public const int ER_NOENT;
public const int ER_EXISTS;
public const int ER_OPEN;
public const int ER_TMPOPEN;
public const int ER_ZLIB;
public const int ER_MEMORY;
public const int ER_CHANGED;
public const int ER_COMPNOTSUPP;
public const int ER_EOF;
public const int ER_INVAL;
public const int ER_NOZIP;
public const int ER_INTERNAL;
public const int ER_INCONS;
public const int ER_REMOVE;
public const int ER_DELETED;
public const int ER_ENCRNOTSUPP;
public const int ER_RDONLY;
public const int ER_NOPASSWD;
public const int ER_WRONGPASSWD;
public const int ER_OPNOTSUPP;
public const int ER_INUSE;
public const int ER_TELL;
public const int ER_COMPRESSED_DATA;
public const int ER_CANCELLED;
public const int OPSYS_DOS;
public const int OPSYS_AMIGA;
public const int OPSYS_OPENVMS;
public const int OPSYS_UNIX;
public const int OPSYS_VM_CMS;
public const int OPSYS_ATARI_ST;
public const int OPSYS_OS_2;
public const int OPSYS_MACINTOSH;
public const int OPSYS_Z_SYSTEM;
public const int OPSYS_CPM;
public const int OPSYS_WINDOWS_NTFS;
public const int OPSYS_MVS;
public const int OPSYS_VSE;
public const int OPSYS_ACORN_RISC;
public const int OPSYS_VFAT;
public const int OPSYS_ALTERNATE_MVS;
public const int OPSYS_BEOS;
public const int OPSYS_TANDEM;
public const int OPSYS_OS_400;
public const int OPSYS_OS_X;
public const int OPSYS_DEFAULT;
public const int EM_NONE;
public const int EM_TRAD_PKWARE;
public const int EM_AES_128;
public const int EM_AES_192;
public const int EM_AES_256;
public const int EM_UNKNOWN;
public const string LIBZIP_VERSION;
/* Свойства */
public readonly int $lastId;
public readonly int $status;
public readonly int $statusSys;
public readonly int $numFiles;
public readonly string $filename;
public readonly string $comment;
/* Методы */
public addEmptyDir(string $dirname, int $flags = 0): bool
public addFile(
string $filepath,
string $entryname = "",
int $start = 0,
int $length = 0,
int $flags = ZipArchive::FL_OVERWRITE
): bool
public addFromString(string $name, string $content, int $flags = ZipArchive::FL_OVERWRITE): bool
public addGlob(string $pattern, int $flags = 0, array $options = []): array|false
public addPattern(string $pattern, string $path = ".", array $options = []): array|false
public clearError(): void
public close(): bool
public count(): int
public deleteIndex(int $index): bool
public deleteName(string $name): bool
public extractTo(string $pathto, array|string|null $files = null): bool
public getArchiveComment(int $flags = 0): string|false
public getArchiveFlag(int $flag = 0, int $flags = 0): int
public getCommentIndex(int $index, int $flags = 0): string|false
public getCommentName(string $name, int $flags = 0): string|false
public getExternalAttributesIndex(
int $index,
int &$opsys,
int &$attr,
int $flags = 0
): bool
public getExternalAttributesName(
string $name,
int &$opsys,
int &$attr,
int $flags = 0
): bool
public getFromIndex(int $index, int $len = 0, int $flags = 0): string|false
public getFromName(string $name, int $len = 0, int $flags = 0): string|false
public getNameIndex(int $index, int $flags = 0): string|false
public getStatusString(): string
public getStream(string $name): resource|false
public getStreamIndex(int $index, int $flags = 0): resource|false
public getStreamName(string $name, int $flags = 0): resource|false
public static isCompressionMethodSupported(int $method, bool $enc = true): bool
public static isEncryptionMethodSupported(int $method, bool $enc = true): bool
public locateName(string $name, int $flags = 0): int|false
public open(string $filename, int $flags = 0): bool|int
public registerCancelCallback(callable $callback): bool
public registerProgressCallback(float $rate, callable $callback): bool
public renameIndex(int $index, string $new_name): bool
public renameName(string $name, string $new_name): bool
public replaceFile(
string $filepath,
int $index,
int $start = 0,
int $length = 0,
int $flags = 0
): bool
public setArchiveComment(string $comment): bool
public setArchiveFlag(int $flag, int $value): bool
public setCommentIndex(int $index, string $comment): bool
public setCommentName(string $name, string $comment): bool
public setCompressionIndex(int $index, int $method, int $compflags = 0): bool
public setCompressionName(string $name, int $method, int $compflags = 0): bool
public setEncryptionIndex(int $index, int $method, ?string $password = null): bool
public setEncryptionName(string $name, int $method, ?string $password = null): bool
public setExternalAttributesIndex(
int $index,
int $opsys,
int $attr,
int $flags = 0
): bool
public setExternalAttributesName(
string $name,
int $opsys,
int $attr,
int $flags = 0
): bool
public setMtimeIndex(int $index, int $timestamp, int $flags = 0): bool
public setMtimeName(string $name, int $timestamp, int $flags = 0): bool
public setPassword(string $password): bool
public statIndex(int $index, int $flags = 0): array|false
public statName(string $name, int $flags = 0): array|false
public unchangeAll(): bool
public unchangeArchive(): bool
public unchangeIndex(int $index): bool
public unchangeName(string $name): bool
}

Свойства

lastId

Значение индекса последней добавленной записи (файл или каталог). Доступно с PHP 8.0.0 и PECL zip 1.18.0.

status

Статус Zip-архива. Доступно для закрытого архива, начиная с PHP 8.0.0 и PECL zip 1.18.0.

statusSys

Системный статус Zip-архива. Доступно для закрытого архива, начиная с PHP 8.0.0 и PECL zip 1.18.0.

numFiles

Количество файлов в архиве

filename

Имя файла в файловой системе

comment

Комментарий к архиву

Содержание

  • ZipArchive::addEmptyDir — Добавляет новую директорию
  • ZipArchive::addFile — Добавляет в ZIP-архив файл по указанному пути
  • ZipArchive::addFromString — Добавляет файл в ZIP-архив, используя его содержимое
  • ZipArchive::addGlob — Добавить файлы из директории в соответствии с шаблоном
  • ZipArchive::addPattern — Добавить файлы из директории в соответствии с шаблоном регулярного выражения PCRE
  • ZipArchive::clearError — Удаляет сообщение об ошибке статуса, системные и/или сообщения модуля zip
  • ZipArchive::close — Закрывает активный архив (открытый или вновь созданный)
  • ZipArchive::count — Подсчитывает количество файлов в архиве
  • ZipArchive::deleteIndex — Удаляет элемент в архиве, используя его индекс
  • ZipArchive::deleteName — Удаляет элемент в архиве, используя его имя
  • ZipArchive::extractTo — Извлекает содержимое архива
  • ZipArchive::getArchiveComment — Возвращает комментарий ZIP-архива
  • ZipArchive::getArchiveFlag — Возвращает значение глобального флага ZIP-архива
  • ZipArchive::getCommentIndex — Возвращает комментарий элемента, используя его индекс
  • ZipArchive::getCommentName — Возвращает комментарий элемента, используя его имя
  • ZipArchive::getExternalAttributesIndex — Извлечь внешние атрибуты записи по её индексу
  • ZipArchive::getExternalAttributesName — Извлечь внешние атрибуты записи по её имени
  • ZipArchive::getFromIndex — Возвращает содержимое элемента по его индексу
  • ZipArchive::getFromName — Возвращает содержимое элемента по его имени
  • ZipArchive::getNameIndex — Возвращает имя элемента по его индексу
  • ZipArchive::getStatusString — Возвращают статус сообщения об ошибке, системный и/или zip-статус
  • ZipArchive::getStream — Получить дескриптор файла элемента, определённый по имени элемента (только для чтения)
  • ZipArchive::getStreamIndex — Получает обработчик файла для записи, определённой её индексом (только для чтения)
  • ZipArchive::getStreamName — Получает обработчик файла для записи, определённой её именем (только для чтения)
  • ZipArchive::isCompressionMethodSupported — Проверяет, поддерживается ли метод сжатия libzip
  • ZipArchive::isEncryptionMethodSupported — Проверяет, поддерживается ли метод шифрования libzip
  • ZipArchive::locateName — Возвращает индекс элемента в архиве
  • ZipArchive::open — Открывает ZIP-архив
  • ZipArchive::registerCancelCallback — Регистрирует callback-функцию для разрешения отмены во время закрытия архива
  • ZipArchive::registerProgressCallback — Регистрирует callback-функцию для предоставления обновлений при закрытии архива
  • ZipArchive::renameIndex — Переименовывает элемент по его индексу
  • ZipArchive::renameName — Переименовывает элемент по его имени
  • ZipArchive::replaceFile — Заменяет файл в ZIP-архиве указанным путём
  • ZipArchive::setArchiveComment — Устанавливает комментарий к ZIP-архиву
  • ZipArchive::setArchiveFlag — Устанавливает глобальный флаг 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, PHP 8, PECL zip >= 1.8.0)

ZipArchive::addEmptyDir — Добавляет новую директорию

Описание

public ZipArchive::addEmptyDir(string $dirname, int $flags = 0): bool

Добавляет пустую директорию в архив.

Список параметров

dirname

Директория для добавления.

flags

Битовая маска, состоящая из
ZipArchive::FL_ENC_GUESS,
ZipArchive::FL_ENC_UTF_8,
ZipArchive::FL_ENC_CP437.
Поведение констант описано на странице ZIP-константы.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 / 1.18.0 | Добавлен параметр flags.

Примеры

Пример #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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::addFile — Добавляет в ZIP-архив файл по указанному пути

Описание

public ZipArchive::addFile(
string $filepath,
string $entryname = "",
int $start = 0,
int $length = 0,
int $flags = ZipArchive::FL_OVERWRITE
): bool

Добавляет в ZIP-архив файл по указанному пути.

Замечание: Для максимальной переносимости, рекомендуется всегда использовать прямые слеши (/) в качестве разделителя директорий в именах файлов.

Список параметров

filepath

Путь к файлу для добавления.

entryname

Имя файла внутри ZIP-архива. Если указано, то переопределит filepath.

start

Для частичного копирования начальная позиция.

length

Для частичного копирования - длина копируемого файла, если 0 или -1, используется весь файл (начиная с start).

flags

Битовая маска, состоящая из
ZipArchive::FL_OVERWRITE,
ZipArchive::FL_ENC_GUESS,
ZipArchive::FL_ENC_UTF_8,
ZipArchive::FL_ENC_CP437,
ZipArchive::FL_OPEN_FILE_NOW.
Поведение констант описано на странице ZIP-константы.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 / 1.18.0 | Добавлен параметр flags.
8.3.0 / 1.22.1 | Добавлена константа ZipArchive::FL_OPEN_FILE_NOW.

Примеры

В данном примере открывается файл 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. Это предотвращает удаление только что добавленного в архив файла до того, как он будет разблокирован.

Смотрите также

  • ZipArchive::replaceFile() - Заменяет файл в ZIP-архиве указанным путём


Добавляет файл в ZIP-архив, используя его содержимое

  • « ZipArchive::addFile
  • ZipArchive::addGlob »
  • PHP Manual
  • ZipArchive
  • Добавляет файл в ZIP-архив, используя его содержимое

ZipArchive::addFromString

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::addFromString — Добавляет файл в ZIP-архив, используя его содержимое

Описание

public ZipArchive::addFromString(string $name, string $content, int $flags = ZipArchive::FL_OVERWRITE): bool

Добавляет файл в ZIP-архив, используя его содержимое.

Замечание: Для максимальной переносимости, рекомендуется всегда использовать прямые слеши (/) в качестве разделителя директорий в именах файлов.

Список параметров

name

Локальное имя файла для создания.

content

Содержимое для создания файла. Используется в двоичном безопасном режиме.

flags

Битовая маска, состоящая из
ZipArchive::FL_OVERWRITE,
ZipArchive::FL_ENC_GUESS,
ZipArchive::FL_ENC_UTF_8,
ZipArchive::FL_ENC_CP437.
Поведение констант описано на странице ZIP-константы.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 / 1.18.0 | Добавлен параметр flags.

Примеры

Пример #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, PHP 8, PECL zip >= 1.9.0)

ZipArchive::addGlob — Добавить файлы из директории в соответствии с шаблоном

Описание

public ZipArchive::addGlob(string $pattern, int $flags = 0, array $options = []): array|false

Добавить файлы из директории в соответствии с шаблоном pattern.

Замечание: Для максимальной переносимости, рекомендуется всегда использовать прямые слеши (/) в качестве разделителя директорий в именах файлов.

Список параметров

pattern

Шаблон функции glob(), по которому будут выбираться файлы.

flags

Битовая маска флагов glob().

options

Ассоциативный массив опций. Доступные значения:

  • "add_path"

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

  • "remove_path"

    Префикс, который будет удалён из пути перед добавлением к архиву.

  • "remove_all_path"

    Установите как true для использования только имени файлов и складывания их в корень архива.

  • "flags"

    Битовая маска, состоящая из
ZipArchive::FL_OVERWRITE,
ZipArchive::FL_ENC_GUESS,
ZipArchive::FL_ENC_UTF_8,
ZipArchive::FL_ENC_CP437,
ZipArchive::FL_OPEN_FILE_NOW.
Поведение констант описано на странице ZIP-константы.

  • "comp_method"

    Метод сжатия, одна из констант ZipArchive::CM_*, смотрите страницу константы ZIP.

  • "comp_flags"

    Уровень сжатия.

  • "enc_method"

    Метод шифрования, одна из констант ZipArchive::EM_*, смотрите страницу константы ZIP.

  • "enc_password"

    Пароль, используемый для шифрования.

Возвращаемые значения

Массив (array) добавленных файлов в случае успешного выполнения или false в случае возникновения ошибки Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 / 1.18.0 | Добавлен параметр "flags" в options.
8.0.0 / 1.18.1 | Добавлены параметры "comp_method", "comp_flags", "enc_method" и "enc_password" в options.
8.3.0 / 1.22.1 | Добавлена константа ZipArchive::FL_OPEN_FILE_NOW.

Примеры

Пример #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::clearError »
  • PHP Manual
  • ZipArchive
  • Добавить файлы из директории в соответствии с шаблоном регулярного выражения PCRE

ZipArchive::addPattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL zip >= 1.9.0)

ZipArchive::addPattern — Добавить файлы из директории в соответствии с шаблоном регулярного выражения PCRE

Описание

public ZipArchive::addPattern(string $pattern, string $path = ".", array $options = []): array|false

Добавляет файлы из директории в соответствии с шаблоном регулярного выражения pattern. Операция не рекурсивна. Шаблон применяется только к именам файлов.

Список параметров

pattern

Шаблон PCRE.

path

Директория для сканирования. По умолчанию выбирается текущая директория.

options

Ассоциативный массив параметров, принимаемых ZipArchive::addGlob().

Возвращаемые значения

Массив (array) добавленных файлов в случае успешного выполнения или 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() - Добавить файлы из директории в соответствии с шаблоном


Удаляет сообщение об ошибке статуса, системные и/или сообщения модуля zip

  • « ZipArchive::addPattern
  • ZipArchive::close »
  • PHP Manual
  • ZipArchive
  • Удаляет сообщение об ошибке статуса, системные и/или сообщения модуля zip

ZipArchive::clearError

(PHP 8 >= 8.2.0, PECL zip >= 1.20.0)

ZipArchive::clearError — Удаляет сообщение об ошибке статуса, системные и/или сообщения модуля zip

Описание

public ZipArchive::clearError(): void

Удаляет сообщение об ошибке статуса, системные и/или сообщения модуля zip.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • ZipArchive::getStatusString() - Возвращают статус сообщения об ошибке, системный и/или zip-статус


Закрывает активный архив (открытый или вновь созданный)

  • « ZipArchive::clearError
  • ZipArchive::count »
  • PHP Manual
  • ZipArchive
  • Закрывает активный архив (открытый или вновь созданный)

ZipArchive::close

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::close — Закрывает активный архив (открытый или вновь созданный)

Описание

public ZipArchive::close(): bool

Закрывает открытый или созданный архив и сохраняет изменения. Метод автоматически вызывается в конце выполнения скрипта.

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ZipArchive::setArchiveFlag() - Устанавливает глобальный флаг ZIP-архива


Подсчитывает количество файлов в архиве

  • « ZipArchive::close
  • ZipArchive::deleteIndex »
  • PHP Manual
  • ZipArchive
  • Подсчитывает количество файлов в архиве

ZipArchive::count

(PHP 7 >= 7.2.0, PHP 8, PECL zip >= 1.15.0)

ZipArchive::count — Подсчитывает количество файлов в архиве

Описание

public ZipArchive::count(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество файлов в архиве.


Удаляет элемент в архиве, используя его индекс

  • « ZipArchive::count
  • ZipArchive::deleteName »
  • PHP Manual
  • ZipArchive
  • Удаляет элемент в архиве, используя его индекс

ZipArchive::deleteIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::deleteIndex — Удаляет элемент в архиве, используя его индекс

Описание

public 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, PHP 8, PECL zip >= 1.5.0)

ZipArchive::deleteName — Удаляет элемент в архиве, используя его имя

Описание

public 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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::extractTo — Извлекает содержимое архива

Описание

public ZipArchive::extractTo(string $pathto, array|string|null $files = null): bool

Извлечение всего архива или его части в указанное место назначения.

Внимание

Разрешения по умолчанию для извлечённых файлов и каталогов предоставляют максимально широкий доступ. Это можно ограничить установкой текущего umask, который изменяется с помощью umask().

Список параметров

pathto

Место назначение, куда извлекать файлы.

files

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

Возвращаемые значения

Возвращает 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 'ошибка';
}
?>

Примечания

Замечание:

Файловые системы Windows NTFS не поддерживают некоторые символы в именах файлов, а именно <|>*?":. Имена файлов с точкой в конце также не поддерживаются. В отличие от некоторых инструментов извлечения, этот метод не поддерживает замену этих символов на подчёркивание, а вместо этого возникает ошибка при извлечении таких файлов.


Возвращает комментарий ZIP-архива

  • « ZipArchive::extractTo
  • ZipArchive::getArchiveFlag »
  • PHP Manual
  • ZipArchive
  • Возвращает комментарий ZIP-архива

ZipArchive::getArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getArchiveComment — Возвращает комментарий ZIP-архива

Описание

public ZipArchive::getArchiveComment(int $flags = 0): string|false

Возвращает комментарий 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;
}
?>


Возвращает значение глобального флага ZIP-архива

  • « ZipArchive::getArchiveComment
  • ZipArchive::getCommentIndex »
  • PHP Manual
  • ZipArchive
  • Возвращает значение глобального флага ZIP-архива

ZipArchive::getArchiveFlag

(PHP >= 8.3.0, PECL zip >= 1.22.0)

ZipArchive::getArchiveFlag — Возвращает значение глобального флага ZIP-архива

Описание

public ZipArchive::getArchiveFlag(int $flag = 0, int $flags = 0): int

Возвращает значение глобального флага ZIP-архива.

Список параметров

flag

Глобальный флаг для извлечения, из констант AFL_*:

  • ZipArchive::AFL_RDONLY

  • ZipArchive::AFL_IS_TORRENTZIP

  • ZipArchive::AFL_WANT_TORRENTZIP

  • ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE

flags

Если значение flags равно ZipArchive::FL_UNCHANGED, то возвращается исходный неизменённый флаг.

Возвращаемые значения

Возвращает 1, если флаг установлен для архива, 0, если нет, и -1 в случае возникновения ошибки.

Примеры

Пример #1 Проверка, является ли архив форматом torrentzip

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
var_dump($zip->getArchiveFlag(ZipArchive::AFL_IS_TORRENTZIP));
} else {
echo 'failed, code:' . $res;
}
?>

Смотрите также

  • ZipArchive::setArchiveFlag() - Устанавливает глобальный флаг ZIP-архива


Возвращает комментарий элемента, используя его индекс

  • « ZipArchive::getArchiveFlag
  • ZipArchive::getCommentName »
  • PHP Manual
  • ZipArchive
  • Возвращает комментарий элемента, используя его индекс

ZipArchive::getCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::getCommentIndex — Возвращает комментарий элемента, используя его индекс

Описание

public ZipArchive::getCommentIndex(int $index, int $flags = 0): string|false

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

Список параметров

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, PHP 8, PECL zip >= 1.4.0)

ZipArchive::getCommentName — Возвращает комментарий элемента, используя его имя

Описание

public ZipArchive::getCommentName(string $name, int $flags = 0): string|false

Возвращает комментарий элемента, используя его имя.

Список параметров

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, PHP 8, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesIndex — Извлечь внешние атрибуты записи по её индексу

Описание

public ZipArchive::getExternalAttributesIndex(
int $index,
int &$opsys,
int &$attr,
int $flags = 0
): 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, PHP 8, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesName — Извлечь внешние атрибуты записи по её имени

Описание

public ZipArchive::getExternalAttributesName(
string $name,
int &$opsys,
int &$attr,
int $flags = 0
): 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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getFromIndex — Возвращает содержимое элемента по его индексу

Описание

public ZipArchive::getFromIndex(int $index, int $len = 0, int $flags = 0): string|false

Возвращает содержимое элемента по его индексу.

Список параметров

index

Индекс элемента.

len

Размер читаемых данных из элемента. Если 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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getFromName — Возвращает содержимое элемента по его имени

Описание

public ZipArchive::getFromName(string $name, int $len = 0, int $flags = 0): string|false

Возвращает содержимое элемента по его имени.

Список параметров

name

Имя элемента.

len

Размер читаемых данных из элемента. Если 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, PHP 8, PECL zip >= 1.5.0)

ZipArchive::getNameIndex — Возвращает имя элемента по его индексу

Описание

public ZipArchive::getNameIndex(int $index, int $flags = 0): string|false

Возвращает имя элемента по его индексу.

Список параметров

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, PHP 8)

ZipArchive::getStatusString — Возвращают статус сообщения об ошибке, системный и/или zip-статус

Описание

public ZipArchive::getStatusString(): string

Возвращают статус сообщения об ошибке, системный и/или zip-статус.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string) с сообщением о статусе.

Список изменений

Версия | Описание
8.0.0 / 1.18.0 | Метод можно вызвать в закрытом архиве.
8.0.0 / 1.18.0 | Метод больше не возвращает false в случае возникновения ошибки.


Получить дескриптор файла элемента, определённый по имени элемента (только для чтения)

  • « ZipArchive::getStatusString
  • ZipArchive::getStreamIndex »
  • PHP Manual
  • ZipArchive
  • Получить дескриптор файла элемента, определённый по имени элемента (только для чтения)

ZipArchive::getStream

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getStream — Получить дескриптор файла элемента, определённый по имени элемента (только для чтения)

Описание

public ZipArchive::getStream(string $name): resource|false

Получить дескриптор файла, определённый по имени элемента. На данный момент поддерживаются только операции чтения.

Список параметров

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::getStreamIndex() - Получает обработчик файла для записи, определённой её индексом (только для чтения)
  • ZipArchive::getStreamName() - Получает обработчик файла для записи, определённой её именем (только для чтения)
  • Сжатые потоки


Получает обработчик файла для записи, определённой её индексом (только для чтения)

  • « ZipArchive::getStream
  • ZipArchive::getStreamName »
  • PHP Manual
  • ZipArchive
  • Получает обработчик файла для записи, определённой её индексом (только для чтения)

ZipArchive::getStreamIndex

(PHP 8 >= 8.2.0, PECL zip >= 1.20.0)

ZipArchive::getStreamIndex — Получает обработчик файла для записи, определённой её индексом (только для чтения)

Описание

public ZipArchive::getStreamIndex(int $index, int $flags = 0): resource|false

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

Список параметров

index

Индекс записи.

flags

Если в flags установлена константа ZipArchive::FL_UNCHANGED, возвращается исходный неизмененный поток.

Возвращаемые значения

В случае успешного выполнения возвращает указатель на файл (ресурс) или false в случае возникновения ошибки.

Примеры

Пример #1 Получение и сохранение содержимого записи с помощью fread()

<?php
$contents = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
$fp = $z->getStreamIndex(1, ZipArchive::FL_UNCHANGED);
if(!$fp) die($z->getStatusString());

echo stream_get_contents($fp);

fclose($fp);
}
?>

Смотрите также

  • ZipArchive::getStreamName() - Получает обработчик файла для записи, определённой её именем (только для чтения)


Получает обработчик файла для записи, определённой её именем (только для чтения)

  • « ZipArchive::getStreamIndex
  • ZipArchive::isCompressionMethodSupported »
  • PHP Manual
  • ZipArchive
  • Получает обработчик файла для записи, определённой её именем (только для чтения)

ZipArchive::getStreamName

(PHP 8 >= 8.2.0, PECL zip >= 1.20.0)

ZipArchive::getStreamName — Получает обработчик файла для записи, определённой её именем (только для чтения)

Описание

public ZipArchive::getStreamName(string $name, int $flags = 0): resource|false

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

Список параметров

name

Имя записи для использования.

flags

Если в flags установлена константа ZipArchive::FL_UNCHANGED, возвращается исходный неизмененный поток.

Возвращаемые значения

В случае успешного выполнения возвращает указатель на файл (ресурс) или false в случае возникновения ошибки.

Примеры

Пример #1 Получение и сохранение содержимого записи с помощью fread()

<?php
$contents = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
$fp = $z->getStreamName('test', ZipArchive::FL_UNCHANGED);
if(!$fp) die($z->getStatusString());

echo stream_get_contents($fp);

fclose($fp);
}
?>

Смотрите также

  • ZipArchive::getStreamIndex() - Получает обработчик файла для записи, определённой её индексом (только для чтения)


Проверяет, поддерживается ли метод сжатия libzip

  • « ZipArchive::getStreamName
  • ZipArchive::isEncryptionMethodSupported »
  • PHP Manual
  • ZipArchive
  • Проверяет, поддерживается ли метод сжатия libzip

ZipArchive::isCompressionMethodSupported

(PHP >= 8.0.0, PECL zip >= 1.19.0)

ZipArchive::isCompressionMethodSupported — Проверяет, поддерживается ли метод сжатия libzip

Описание

public static ZipArchive::isCompressionMethodSupported(int $method, bool $enc = true): bool

Проверяет, поддерживается ли метод сжатия libzip.

Список параметров

method

Метод сжатия, одна из констант ZipArchive::CM_*.

enc

Если true проверка на сжатие, иначе проверка на декомпрессию.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примечания

Замечание:

Функция доступна только в том случае, если PHP собран с libzip ? 1.7.0.

Смотрите также

  • ZipArchive::setCompressionIndex() - Установить метод сжатия записи, заданной её индексом
  • ZipArchive::setCompressionName() - Установить метод сжатия записи, заданной по имени


Проверяет, поддерживается ли метод шифрования libzip

  • « ZipArchive::isCompressionMethodSupported
  • ZipArchive::locateName »
  • PHP Manual
  • ZipArchive
  • Проверяет, поддерживается ли метод шифрования libzip

ZipArchive::isEncryptionMethodSupported

(PHP >= 8.0.0, PECL zip >= 1.19.0)

ZipArchive::isEncryptionMethodSupported — Проверяет, поддерживается ли метод шифрования libzip

Описание

public static ZipArchive::isEncryptionMethodSupported(int $method, bool $enc = true): bool

Проверяет, поддерживается ли метод шифрования libzip.

Список параметров

method

Метод шифрования, одна из констант ZipArchive::EM_*.

enc

Если true проверка шифрования, иначе проверка расшифровки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примечания

Замечание:

Функция доступна только в том случае, если PHP собран с libzip ? 1.7.0.

Смотрите также

  • ZipArchive::setEncryptionIndex() - Установить метод шифрования записи по её индексу
  • ZipArchive::setEncryptionName() - Установить метод шифрования записи по её имени


Возвращает индекс элемента в архиве

  • « ZipArchive::isEncryptionMethodSupported
  • ZipArchive::open »
  • PHP Manual
  • ZipArchive
  • Возвращает индекс элемента в архиве

ZipArchive::locateName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::locateName — Возвращает индекс элемента в архиве

Описание

public ZipArchive::locateName(string $name, int $flags = 0): int|false

Находит элемент по его имени.

Список параметров

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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::open — Открывает ZIP-архив

Описание

public ZipArchive::open(string $filename, int $flags = 0): bool|int

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

Начиная с libzip 1.6.0, пустой файл больше не является корректным архивом.

Список параметров

filename

Имя ZIP-архива для открытия.

flags

Используемый режим открытия файлов.

  • ZipArchive::OVERWRITE

  • ZipArchive::CREATE

  • ZipArchive::RDONLY

  • ZipArchive::EXCL

  • ZipArchive::CHECKCONS

Возвращаемые значения

Возвращает true в случае успешного выполнения, false или один из следующих кодов ошибки:

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 'ошибка';
}
?>

Пример #3 Создать временный архив

<?php
$name = tempnam(sys_get_temp_dir(), "FOO");
$zip = new ZipArchive;
$res = $zip->open($name, ZipArchive::OVERWRITE); /* усечение, поскольку пустой файл недопустим */
if ($res === TRUE) {
$zip->addFile('data.txt', 'entryname.txt');
$zip->close();
echo 'готово';
} else {
echo 'ошибка';
}
?>


Регистрирует callback-функцию для разрешения отмены во время закрытия архива

  • « ZipArchive::open
  • ZipArchive::registerProgressCallback »
  • PHP Manual
  • ZipArchive
  • Регистрирует callback-функцию для разрешения отмены во время закрытия архива

ZipArchive::registerCancelCallback

(PHP >= 8.0.0, PECL zip >= 1.17.0)

ZipArchive::registerCancelCallback — Регистрирует callback-функцию для разрешения отмены во время закрытия архива

Описание

public ZipArchive::registerCancelCallback(callable $callback): bool

Регистрирует callback-функцию для разрешения отмены во время закрытия архива.

Список параметров

callback

Если функция вернёт 0, операция продолжится, при другом значении она будет отменена.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

В этом примере создаётся ZIP-архив php.zip и отменяется операция при некоторых условиях запуска.

Пример #1 Архивация файла

<?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();
}

Примечания

Замечание:

Функция доступна, если PHP скомпилирован с libzip ? 1.6.0.

Смотрите также

  • ZipArchive::registerProgressCallback() - Регистрирует callback-функцию для предоставления обновлений при закрытии архива


Регистрирует callback-функцию для предоставления обновлений при закрытии архива

  • « ZipArchive::registerCancelCallback
  • ZipArchive::renameIndex »
  • PHP Manual
  • ZipArchive
  • Регистрирует callback-функцию для предоставления обновлений при закрытии архива

ZipArchive::registerProgressCallback

(PHP >= 8.0.0, PECL zip >= 1.17.0)

ZipArchive::registerProgressCallback — Регистрирует callback-функцию для предоставления обновлений при закрытии архива

Описание

public ZipArchive::registerProgressCallback(float $rate, callable $callback): bool

Регистрирует callback-функцию для предоставления обновлений при закрытии архива.

Список параметров

rate

Изменение между каждым вызовом callback-функции (от 0,0 до 1,0).

callback

Функция будет получать текущее состояние (state) в виде числа с плавающей точкой (float) (от 0,0 до 1,0).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

В этом примере создаётся ZIP-архив php.zip и отображается прогрессия.

Пример #1 Архивация файла

$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();
}

Примечания

Замечание:

Функция доступна, если PHP скомпилирован с libzip ? 1.6.0.

Смотрите также

  • ZipArchive::registerCancelCallback() - Регистрирует callback-функцию для разрешения отмены во время закрытия архива


Переименовывает элемент по его индексу

  • « ZipArchive::registerProgressCallback
  • ZipArchive::renameName »
  • PHP Manual
  • ZipArchive
  • Переименовывает элемент по его индексу

ZipArchive::renameIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::renameIndex — Переименовывает элемент по его индексу

Описание

public ZipArchive::renameIndex(int $index, string $new_name): bool

Переименовывает элемент по его индексу.

Список параметров

index

Индекс элемента для переименования.

new_name

Новое имя.

Возвращаемые значения

Возвращает 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::replaceFile »
  • PHP Manual
  • ZipArchive
  • Переименовывает элемент по его имени

ZipArchive::renameName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::renameName — Переименовывает элемент по его имени

Описание

public ZipArchive::renameName(string $name, string $new_name): bool

Переименовывает элемент, заданный по имени.

Список параметров

name

Имя элемента для переименования.

new_name

Новое имя.

Возвращаемые значения

Возвращает 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::setArchiveComment »
  • PHP Manual
  • ZipArchive
  • Заменяет файл в ZIP-архиве указанным путём

ZipArchive::replaceFile

(PHP >= 8.0.0, PECL zip >= 1.18.0)

ZipArchive::replaceFile — Заменяет файл в ZIP-архиве указанным путём

Описание

public ZipArchive::replaceFile(
string $filepath,
int $index,
int $start = 0,
int $length = 0,
int $flags = 0
): bool

Заменяет файл в ZIP-архиве указанным путём.

Замечание: Для максимальной переносимости, рекомендуется всегда использовать прямые слеши (/) в качестве разделителя директорий в именах файлов.

Список параметров

filepath

Путь к файлу для добавления.

index

Индекс файла, подлежащего замене, его имя не изменяется.

start

Для частичного копирования начальная позиция.

length

Для частичного копирования - длина, которую нужно скопировать, если 0 или -1, используется весь файл (начиная со start).

flags

Битовая маска, состоящая из ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437, ZipArchive::FL_OPEN_FILE_NOW. Поведение этих констант описано на странице Константы ZIP.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.3.0 / 1.22.1 | Добавлена константа ZipArchive::FL_OPEN_FILE_NOW.

Примеры

В этом примере открывается ZIP-архив test.zip и заменяется запись с индексом 1 на /path/to/index.txt.

Пример #1 Открытие и замена

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->replaceFile('/path/to/index.txt', 1);
$zip->close();
echo 'Ок';
} else {
echo 'Ошибка';
}
?>

Смотрите также

  • ZipArchive::addFile() - Добавляет в ZIP-архив файл по указанному пути


Устанавливает комментарий к ZIP-архиву

  • « ZipArchive::replaceFile
  • ZipArchive::setArchiveFlag »
  • PHP Manual
  • ZipArchive
  • Устанавливает комментарий к ZIP-архиву

ZipArchive::setArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::setArchiveComment — Устанавливает комментарий к ZIP-архиву

Описание

public 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 'ошибка';
}
?>


Устанавливает глобальный флаг ZIP-архива

  • « ZipArchive::setArchiveComment
  • ZipArchive::setCommentIndex »
  • PHP Manual
  • ZipArchive
  • Устанавливает глобальный флаг ZIP-архива

ZipArchive::setArchiveFlag

(PHP >= 8.3.0, PECL zip >= 1.22.0)

ZipArchive::setArchiveFlag — Устанавливает глобальный флаг ZIP-архива

Описание

public ZipArchive::setArchiveFlag(int $flag, int $value): bool

Устанавливает глобальный флаг ZIP-архива.

Список параметров

flag

Глобальный флаг, который необходимо изменить, из констант AFL_*:

  • ZipArchive::AFL_WANT_TORRENTZIP

  • ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE

value

Новое значение флага.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Создание архива torrentzip

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->setArchiveFlag(ZipArchive::AFL_WANT_TORRENTZIP, 1);
$zip->addFromString('test.txt', 'содержимое файла');
$zip->close();
echo 'Успешное выполнение';
} else {
echo 'Ошибка';
}
?>

Смотрите также

  • ZipArchive::getArchiveFlag() - Возвращает значение глобального флага ZIP-архива


Устанавливает комментарий к элементу по его индексу

  • « ZipArchive::setArchiveFlag
  • ZipArchive::setCommentName »
  • PHP Manual
  • ZipArchive
  • Устанавливает комментарий к элементу по его индексу

ZipArchive::setCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::setCommentIndex — Устанавливает комментарий к элементу по его индексу

Описание

public 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, PHP 8, PECL zip >= 1.4.0)

ZipArchive::setCommentName — Устанавливает комментарий к элементу, заданному по имени

Описание

public 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, PHP 8, PECL zip >= 1.13.0)

ZipArchive::setCompressionIndex — Установить метод сжатия записи, заданной её индексом

Описание

public ZipArchive::setCompressionIndex(int $index, int $method, int $compflags = 0): bool

Устанавливает метод сжатия записи, заданной её индексом.

Список параметров

index

Индекс записи.

method

Метод сжатия, одна из констант ZipArchive::CM_*.

compflags

Уровень сжатия.

Возвращаемые значения

Возвращает 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, PHP 8, PECL zip >= 1.13.0)

ZipArchive::setCompressionName — Установить метод сжатия записи, заданной по имени

Описание

public ZipArchive::setCompressionName(string $name, int $method, int $compflags = 0): bool

Устанавливает метод сжатия записи заданной по имени.

Список параметров

name

Имя записи.

method

Метод сжатия, одна из констант ZipArchive::CM_*.

compflags

Уровень сжатия.

Возвращаемые значения

Возвращает 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 'ошибка';
}
?>

Пример #2 Добавить файл и установить метод сжатия

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFile('foo.jpg', 'bar.jpg');
$zip->setCompressionName('bar.jpg', ZipArchive::CM_XZ);
$zip->close();
echo 'готово';
} else {
echo 'ошибка';
}
?>


Установить метод шифрования записи по её индексу

  • « ZipArchive::setCompressionName
  • ZipArchive::setEncryptionName »
  • PHP Manual
  • ZipArchive
  • Установить метод шифрования записи по её индексу

ZipArchive::setEncryptionIndex

(PHP >= 7.2.0, PHP 8, PECL zip >= 1.14.0)

ZipArchive::setEncryptionIndex — Установить метод шифрования записи по её индексу

Описание

public ZipArchive::setEncryptionIndex(int $index, int $method, ?string $password = null): bool

Устанавливает метод шифрования записи, указанной по индексу.

Список параметров

index

Индекс записи.

method

Метод шифрования, заданный одной из констант ZipArchive::EM_.

password

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

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | password теперь допускает значение null.

Примечания

Замечание:

Функция доступна только если скомпилировано с использованием libzip ? 1.2.0.

Смотрите также

  • ZipArchive::setPassword() - Установка пароля для активного архива
  • ZipArchive::setEncryptionName() - Установить метод шифрования записи по её имени


Установить метод шифрования записи по её имени

  • « ZipArchive::setEncryptionIndex
  • ZipArchive::setExternalAttributesIndex »
  • PHP Manual
  • ZipArchive
  • Установить метод шифрования записи по её имени

ZipArchive::setEncryptionName

(PHP >= 7.2.0, PHP 8, PECL zip >= 1.14.0)

ZipArchive::setEncryptionName — Установить метод шифрования записи по её имени

Описание

public ZipArchive::setEncryptionName(string $name, int $method, ?string $password = null): bool

Установить метод шифрования записи, указанной по её имени.

Список параметров

name

Имя записи.

method

Метод шифрования, заданный одной из констант ZipArchive::EM_.

password

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

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | password теперь допускает значение null.

Примеры

В этом примере создаётся 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, PHP 8, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesIndex — Установить внешние атрибуты записи по её индексу

Описание

public ZipArchive::setExternalAttributesIndex(
int $index,
int $opsys,
int $attr,
int $flags = 0
): 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, PHP 8, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesName — Установка внешних атрибутов записи, заданной по имени

Описание

public ZipArchive::setExternalAttributesName(
string $name,
int $opsys,
int $attr,
int $flags = 0
): 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 — Установить время модификации файла по его индексу

Описание

public ZipArchive::setMtimeIndex(int $index, int $timestamp, int $flags = 0): 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->setMtimeIndex(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 — Установить время модификации файла по его имени

Описание

public ZipArchive::setMtimeName(string $name, int $timestamp, int $flags = 0): 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, PHP 8, 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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::statIndex — Получение детальной информации о элементе по его индексу

Описание

public ZipArchive::statIndex(int $index, int $flags = 0): array|false

Получение детальной информации об элементе по его индексу.

Список параметров

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, PHP 8, PECL zip >= 1.5.0)

ZipArchive::statName — Получение детальной информации об элементе по его имени

Описание

public ZipArchive::statName(string $name, int $flags = 0): array|false

Получение детальной информации об элементе по его имени.

Список параметров

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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::unchangeAll — Отменяет все изменения, сделанные в архиве

Описание

public ZipArchive::unchangeAll(): bool

Отменяет все изменения, сделанные в архиве.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Возвращает все глобальные изменения, сделанные в архиве

  • « ZipArchive::unchangeAll
  • ZipArchive::unchangeIndex »
  • PHP Manual
  • ZipArchive
  • Возвращает все глобальные изменения, сделанные в архиве

ZipArchive::unchangeArchive

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::unchangeArchive — Возвращает все глобальные изменения, сделанные в архиве

Описание

public ZipArchive::unchangeArchive(): bool

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Отменяет все изменения у позиции с заданным индексом

  • « ZipArchive::unchangeArchive
  • ZipArchive::unchangeName »
  • PHP Manual
  • ZipArchive
  • Отменяет все изменения у позиции с заданным индексом

ZipArchive::unchangeIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::unchangeIndex — Отменяет все изменения у позиции с заданным индексом

Описание

public ZipArchive::unchangeIndex(int $index): bool

Отменяет все изменения у позиции с заданным индексом.

Список параметров

index

Индекс позиции.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Отменяет все изменения у позиции с заданным именем

  • « ZipArchive::unchangeIndex
  • Функции Zip »
  • PHP Manual
  • ZipArchive
  • Отменяет все изменения у позиции с заданным именем

ZipArchive::unchangeName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::unchangeName — Отменяет все изменения у позиции с заданным именем

Описание

public ZipArchive::unchangeName(string $name): bool

Отменяет все изменения у позиции с заданным именем.

Список параметров

name

Имя позиции.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Функции Zip

Внимание

Процедурный API устарел с PHP 8.0.0. Вместо него следует использовать ZipArchive.

Содержание

  • 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, PHP 8, PECL zip >= 1.0.0)

zip_close — Закрывает дескриптор ZIP-архива

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

zip_close(resource $zip): void

Закрывает дескриптор ZIP-архива.

Список параметров

zip

ZIP-файл должен быть открыт с помощью функции zip_open().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | Функция устарела в пользу Object API, смотрите ZipArchive::close().

Смотрите также

  • 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, PHP 8, PECL zip >= 1.0.0)

zip_entry_close — Закрывает дескриптор директории

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

zip_entry_close(resource $zip_entry): bool

Закрывает заданный дескриптор директории.

Список параметров

zip_entry

Дескриптор директории, ранее открытый функцией zip_entry_open().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция устарела в пользу Object API.

Смотрите также

  • 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, PHP 8, PECL zip >= 1.0.0)

zip_entry_compressedsize — Возвращает сжатый размер файла для дескриптора директории

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

zip_entry_compressedsize(resource $zip_entry): int|false

Возвращает сжатый размер заданного дескриптора директории.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

Возвращаемые значения

Сжатый размер дескриптора директории или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция устарела в пользу Object API, смотрите ZipArchive::statIndex().

Смотрите также

  • 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, PHP 8, PECL zip >= 1.0.0)

zip_entry_compressionmethod — Возвращает метод сжатия дескриптора директории

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

zip_entry_compressionmethod(resource $zip_entry): string|false

Возвращает метод сжатия дескриптора директории, заданного в zip_entry.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

Возвращаемые значения

Метод сжатия или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция устарела в пользу Object API, смотрите ZipArchive::statIndex().

Смотрите также

  • 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, PHP 8, PECL zip >= 1.0.0)

zip_entry_filesize — Возвращает реальный размер файла для дескриптора директории

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

zip_entry_filesize(resource $zip_entry): int|false

Возвращает реальный размер заданного дескриптора директории.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

Возвращаемые значения

Реальный размер дескриптора директории или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция устарела в пользу Object API, смотрите ZipArchive::statIndex().

Смотрите также

  • 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, PHP 8, PECL zip >= 1.0.0)

zip_entry_name — Получает имя дескриптора директории

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

zip_entry_name(resource $zip_entry): string|false

Возвращает имя заданного дескриптора директории.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

Возвращаемые значения

Имя дескриптора директории или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция устарела в пользу Object API, смотрите ZipArchive::statIndex().

Смотрите также

  • 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, PHP 8, PECL zip >= 1.0.0)

zip_entry_open — Открывает директорию для чтения

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

zip_entry_open(resource $zip_dp, resource $zip_entry, string $mode = "rb"): bool

Открывает директорию в ZIP-архиве для чтения.

Список параметров

zip_dp

Дескриптор, возвращаемый функцией zip_open().

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

mode

Доступные режимы приведены в документации к функции fopen().

Замечание:

В настоящее время параметр mode игнорируется и всегда имеет значение "rb". Это связано с тем, что ZIP в PHP поддерживается только в режиме чтения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Замечание:

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

Список изменений

Версия | Описание
8.0.0 | Функция устарела в пользу Object API.

Смотрите также

  • 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, PHP 8, PECL zip >= 1.0.0)

zip_entry_read — Читает данные из открытого ранее дескриптора директории

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

zip_entry_read(resource $zip_entry, int $len = 1024): string|false

Читает данные из открытого ранее дескриптора директории.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

len

Число байт, которое нужно считать.

Замечание:

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

Возвращаемые значения

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

Список изменений

Версия | Описание
8.0.0 | Функция устарела в пользу Object API, смотрите ZipArchive::getFromIndex().

Смотрите также

  • 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, PHP 8, PECL zip >= 1.0.0)

zip_open — Открывает ZIP-архив

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

zip_open(string $filename): resource|int|false

Открывает ZIP-архив для чтения.

Список параметров

filename

Имя файла ZIP-архива для открытия.

Возвращаемые значения

Возвращает ссылку на ресурс для последующего использования с функциями zip_read() и zip_close() либо возвращает номер ошибки, если filename не существует или в случае другой ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция устарела в пользу Object API, смотрите ZipArchive::open().

Смотрите также

  • 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, PHP 8, PECL zip >= 1.0.0)

zip_read — Считывает следующую запись в ZIP-архиве

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

zip_read(resource $zip): resource|false

Считывает следующую запись в ZIP-архиве.

Список параметров

zip

ZIP-файл, предварительно открытый с помощью функции zip_open().

Возвращаемые значения

Возвращает запись каталога для дальнейшего использования с функциями zip_entry_..., или false, если больше нет записей для чтения, или код ошибки, если она произошла.

Список изменений

Версия | Описание
8.0.0 | Функция устарела в пользу Object API, смотрите ZipArchive::statIndex().

Смотрите также

  • 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 — Возвращает способ кодирования, используемый для сжатия вывода
  • DeflateContext — Класс DeflateContext
  • InflateContext — Класс InflateContext


Введение

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

Замечание:

PHP поставляется с fopen-обёрткой для .gz-файлов. Больше информации доступно в разделе о zlib://.


Требования

Модуль использует библиотеку » zlib, написанную Jean-loup Gailly и Mark Adler. Требуется 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 bool/int

Следует ли сжимать страницы. Если значение равно "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 int

Уровень сжатия используется для прозрачного сжатия вывода. Укажите значение между 0 (без сжатия) и 9 (максимальное сжатие). По умолчанию значение -1 позволяет серверу решать, какой уровень использовать.

zlib.output_handler string

Если zlib.output_compression активирован, нельзя указывать дополнительные обработчики вывода. Этот параметр выполняет то же, что и output_handler, но в ином порядке.


Типы ресурсов

Модуль определяет ресурс дескриптора, который возвращается функцией gzopen(). До PHP 8.0.0 также были определены ресурсы zlib.deflate и zlib.inflate.


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

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

FORCE_GZIP (int)
FORCE_DEFLATE (int)
ZLIB_ENCODING_RAW (int)
Алгоритм компрессии DEFLATE по RFC 1951.
ZLIB_ENCODING_DEFLATE (int)
Алгоритм компрессии ZLIB по RFC 1950.
ZLIB_ENCODING_GZIP (int)
Алгоритм компрессии GZIP по RFC 1952.
ZLIB_FILTERED (int)
ZLIB_HUFFMAN_ONLY (int)
ZLIB_FIXED (int)
ZLIB_RLE (int)
ZLIB_DEFAULT_STRATEGY (int)
ZLIB_BLOCK (int)
ZLIB_NO_FLUSH (int)
ZLIB_PARTIAL_FLUSH (int)
ZLIB_SYNC_FLUSH (int)
ZLIB_FULL_FLUSH (int)
ZLIB_FINISH (int)


Примеры

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

Пример #1 Пример использования Zlib

<?php

$filename = tempnam('/tmp', 'zlibtest') . '.gz';
echo "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Только тест, тест, тест, тест, тест, тест, тест, тест!\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

// Выполнение компрессии GZIP:
$deflateContext = deflate_init(ZLIB_ENCODING_GZIP);
$compressed = deflate_add($deflateContext, "Данные для сжатия", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", больше данных", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, "и ещё больше данных!", 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;
?>

Результат выполнения данного примера:

Данные для сжатия, больше данных и ещё больше данных!


Функции 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, PHP 8)

deflate_add — Инкрементальное сжатие данных

Описание

deflate_add(DeflateContext $context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): string|false

Инкрементальное сжатие данных в указанном контексте.

Список параметров

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.

Список изменений

Версия | Описание
8.0.0 | context ожидает экземпляр DeflateContext; раньше, ожидался ресурс (resource).

Смотрите также

  • deflate_init() - Инициализировать контекст инкрементального сжатия


Инициализировать контекст инкрементального сжатия

  • « deflate_add
  • gzclose »
  • PHP Manual
  • Функции Zlib
  • Инициализировать контекст инкрементального сжатия

deflate_init

(PHP 7, PHP 8)

deflate_init — Инициализировать контекст инкрементального сжатия

Описание

deflate_init(int $encoding, array $options = []): DeflateContext|false

Инициализирует контекст инкрементального сжатия с использованием указанной кодировки 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. zlib изменяет размер окна с 8 на 9, а с zlib 1.2.8 будет выдавать предупреждение, если запрашивается размер окна равный 8 для ZLIB_ENCODING_RAW или ZLIB_ENCODING_GZIP.

strategy

Одна из констант: ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED или ZLIB_DEFAULT_STRATEGY (по умолчанию).

dictionary

Строка или массив строк текущего словаря (по умолчанию предустановленного словаря нет).

Возвращаемые значения

Возвращает ресурс контекста сжатия (zlib.deflate) или false в случае возникновения ошибки.

Ошибки

Если в options была передана некорректная опция или контекст не может быть создан, то будет вызвана ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр DeflateContext; раньше, возвращался ресурс (resource).

Смотрите также

  • deflate_add() - Инкрементальное сжатие данных
  • inflate_init() - Инициализация контекста инкрементальной распаковки


Закрыть указатель открытого gz-файла

  • « deflate_init
  • gzcompress »
  • PHP Manual
  • Функции Zlib
  • Закрыть указатель открытого gz-файла

gzclose

(PHP 4, PHP 5, PHP 7, PHP 8)

gzclose — Закрыть указатель открытого gz-файла

Описание

gzclose(resource $stream): bool

Закрывает открытый gz-файл по переданному указателю.

Список параметров

stream

Указатель на 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, PHP 8)

gzcompress — Сжать строку

Описание

gzcompress(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_DEFLATE): string|false

Данная функция сжимает строку используя формат данных 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;
?>

Смотрите также

  • gzdeflate() - Сжимает строку
  • gzinflate() - Распаковать сжатую строку
  • gzuncompress() - Распаковать сжатую строку
  • gzencode() - Создать сжатую строку gzip


Декодирует строку, сжатую с помощью gzip

  • « gzcompress
  • gzdeflate »
  • PHP Manual
  • Функции Zlib
  • Декодирует строку, сжатую с помощью gzip

gzdecode

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

gzdecode — Декодирует строку, сжатую с помощью gzip

Описание

gzdecode(string $data, int $max_length = 0): string|false

Эта функция возвращает декодированную версию входных данных. data.

Список параметров

data

Данные для декодирования, закодированные с помощью gzencode().

max_length

Максимальный размер строки для декодирования.

Возвращаемые значения

Распакованная строка или false в случае возникновения ошибки.

Ошибки

В случае возникновения ошибки возвращает ошибку уровня E_WARNING.

Смотрите также

  • gzencode() - Создать сжатую строку gzip


Сжимает строку

  • « gzdecode
  • gzencode »
  • PHP Manual
  • Функции Zlib
  • Сжимает строку

gzdeflate

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gzdeflate — Сжимает строку

Описание

gzdeflate(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_RAW): string|false

Данная функция сжимает строку, используя формат данных DEFLATE.

Подробнее об алгоритме сжатия DEFLATE смотрите "» Формат сжатия данных DEFLATE. Спецификация версии 1.3" (RFC 1951).

Список параметров

data

Данные для сжатия.

level

Уровень сжатия. 0 - без сжатия, 9 - максимум. Если не указан, будет использоваться уровень сжатия по умолчанию библиотеки zlib.

encoding

Одна из ZLIB_ENCODING_* констант.

Возвращаемые значения

Сжатая строка или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования gzdeflate()

<?php
$compressed = gzdeflate('Сожми меня', 9);
echo $compressed;
?>

Смотрите также

  • gzinflate() - Распаковать сжатую строку
  • gzcompress() - Сжать строку
  • gzuncompress() - Распаковать сжатую строку
  • gzencode() - Создать сжатую строку gzip


Создать сжатую строку gzip

  • « gzdeflate
  • gzeof »
  • PHP Manual
  • Функции Zlib
  • Создать сжатую строку gzip

gzencode

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gzencode — Создать сжатую строку gzip

Описание

gzencode(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_GZIP): string|false

Эта функция возвращает сжатую версию входных данных data, аналогично выводу программы gzip.

Подробности о формате GZIP смотрите » Формат файла GZIP. Спецификация версии 4.3 (RFC 1952).

Список параметров

data

Данные для кодирования.

level

Уровень сжатия. 0 - без сжатия, 9 - максимальное сжатие. Если не указано, будет использоваться уровень сжатия по умолчанию библиотеки zlib.

encoding

Режим сжатия, может быть FORCE_GZIP (по умолчанию) или FORCE_DEFLATE.

Использование константы FORCE_DEFLATE генерирует вывод, совместимый с RFC 1950, состоящий из заголовка zlib, сжатых данных и контрольной суммы Adler.

Возвращаемые значения

Сжатая строка или false в случае возникновения ошибки.

Примеры

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

Пример #1 Создание файла gzip

<?php
$data = file_get_contents("bigfile.txt");
$gzdata = gzencode($data, 9);
file_put_contents("bigfile.txt.gz", $gzdata);
?>

Смотрите также

  • 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, PHP 8)

gzeof — Проверяет, находится ли текущая позиция в конце (EOF) gz-файла

Описание

gzeof(resource $stream): bool

Проверяет, соответствует ли позиция указателя в GZ-файле позиции EOF (end-of-file, конец файла).

Список параметров

stream

Указатель на 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, PHP 8)

gzfile — Считывает весь gz-файл в массив

Описание

gzfile(string $filename, int $use_include_path = 0): array|false

Аналогична readgzfile(), за исключением того, что она возвращает файл в массиве.

Список параметров

filename

Имя файла.

use_include_path

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

Возвращаемые значения

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

Примеры

Пример #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, PHP 8)

gzgetc — Получить символ из указателя на gz-файл

Описание

gzgetc(resource $stream): string|false

Возвращает строку, содержащую один символ (несжатый), считанный из заданного указателя gz-файла.

Список параметров

stream

Указатель на 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, PHP 8)

gzgets — Получить строку из указателя файла

Описание

gzgets(resource $stream, ?int $length = null): string|false

Получает строку (несжатую) из gz-файла, её длина ограничивается length - 1 байтами. Чтение заканчивается при достижении максимальной длины, конца строки или конца файла (EOF), в зависимости от того, что наступит раньше.

Список параметров

stream

Указатель на gz-файл. Он должен быть корректный и должен указывать на файл, успешно открытый gzopen().

length

Максимальный размер возвращаемых данных.

Возвращаемые значения

Распакованная строка или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | length теперь допускает значение null; ранее значение по умолчанию было 1024.

Примеры

Пример #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 и была УДАЛЕНА в версии PHP 8.0.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, PHP 8)

gzinflate — Распаковать сжатую строку

Описание

gzinflate(string $data, int $max_length = 0): string|false

Распаковывает сжатую строку.

Список параметров

data

Данные, сжатые функцией gzdeflate().

max_length

Максимальный размер декодируемых данных.

Возвращаемые значения

Распакованные данные или false в случае возникновения ошибки.

Функция вернёт ошибку, если несжатые данные в 32768 раз больше размера сжатых данных data или, если max_length не 0 и больше, чем необязательный параметр max_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, PHP 8)

gzopen — Открыть gz-файл

Описание

gzopen(string $filename, string $mode, int $use_include_path = 0): resource|false

Открывает файл 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, PHP 8)

gzpassthru — Вывод всех оставшихся данных из указателя gz-файла.

Описание

gzpassthru(resource $stream): int

Читает до конца файла (EOF) данные из указателя gz-файла, начиная с текущей позиции, и записывает результат (без сжатия) в стандартный вывод.

Замечание:

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

Подсказка

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

Список параметров

stream

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Количество несжатых символов, прочитанных из gz и переданных на вход.

Примеры

Пример #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, PHP 8)

gzputs — Псевдоним gzwrite()

Описание

Функция является псевдонимом: gzwrite().


Бинарное чтение gz-файла

  • « gzputs
  • gzrewind »
  • PHP Manual
  • Функции Zlib
  • Бинарное чтение gz-файла

gzread

(PHP 4, PHP 5, PHP 7, PHP 8)

gzread — Бинарное чтение gz-файла

Описание

gzread(resource $stream, int $length): string|false

gzread() читает (распаковывая) до length байт из gz-файла из переданного указателя gz-файла. Чтение заканчивается при достижении максимального размера length распакованных данных или конца файла (EOF)

Список параметров

stream

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

length

Количество байт (после распаковки), которые следует прочитать.

Возвращаемые значения

Прочтённые данные или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.4.0 | В случае возникновения ошибки возвращается false; раньше, возвращался 0.

Примеры

Пример #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, PHP 8)

gzrewind — Переместить позицию указатель gz-файла в начало

Описание

gzrewind(resource $stream): bool

Устанавливает указатель на позицию файла на начало потока этого файла.

Список параметров

stream

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • gzseek() - Переместить указатель на позицию в указателе gz-файла
  • gztell() - Возвращает текущую позицию чтения/записи в указателе gz-файла


Переместить указатель на позицию в указателе gz-файла

  • « gzrewind
  • gztell »
  • PHP Manual
  • Функции Zlib
  • Переместить указатель на позицию в указателе gz-файла

gzseek

(PHP 4, PHP 5, PHP 7, PHP 8)

gzseek — Переместить указатель на позицию в указателе gz-файла

Описание

gzseek(resource $stream, int $offset, int $whence = SEEK_SET): int

Устанавливает указатель на позицию в файле, на который ссылается zp. Выполняется смещение потока этого файла на указанное количество байт. Эквивалентно вызову (в C) gzseek(zp, offset, SEEK_SET).

Если файл открыт для чтения, функция эмулируется, при этом будет работать очень медленно. Если файл открыт для записи, разрешено только перемещение вперёд; gzseek() при этом сжимает последовательность нулей до новой позиции.

Список параметров

stream

Указатель на 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, PHP 8)

gztell — Возвращает текущую позицию чтения/записи в указателе gz-файла

Описание

gztell(resource $stream): int|false

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

Список параметров

stream

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Текущая позиция или false в случае возникновения ошибки.

Смотрите также

  • gzopen() - Открыть gz-файл
  • gzseek() - Переместить указатель на позицию в указателе gz-файла
  • gzrewind() - Переместить позицию указатель gz-файла в начало


Распаковать сжатую строку

  • « gztell
  • gzwrite »
  • PHP Manual
  • Функции Zlib
  • Распаковать сжатую строку

gzuncompress

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

gzuncompress — Распаковать сжатую строку

Описание

gzuncompress(string $data, int $max_length = 0): string|false

Распаковывает сжатую строку.

Список параметров

data

Данные, сжатые функцией gzcompress().

max_length

Максимальный размер данных для декодирования.

Возвращаемые значения

Исходные несжатые данные или false в случае возникновения ошибки.

Функция также сообщит об ошибке в случае, если несжатые данные в 32768 раз больше размера сжатых данных data или больше параметра max_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, PHP 8)

gzwrite — Бинарная запись в gz-файл

Описание

gzwrite(resource $stream, string $data, ?int $length = null): int|false

gzwrite() записывает содержимое data в данный gz-файл.

Список параметров

stream

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

data

Записываемая строка.

length

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

Возвращаемые значения

Возвращает количество записанных байт (без учёта сжатия) в поток gz-файла или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | length теперь допускает значение null; раньше значением по умолчанию был 0.
7.4.0 | В случае возникновения ошибки функция возвращает false. раньше возвращался 0.

Примеры

Пример #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, PHP 8)

inflate_add — Инкрементальное распаковать закодированные данные

Описание

inflate_add(InflateContext $context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): string|false

Инкрементальное распаковывает закодированные данные в указанном контексте context.

Ограничение: информация заголовка из сжатых данных GZIP не доступны.

Список параметров

context

Контекст, созданный с помощью inflate_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.

Список изменений

Версия | Описание
8.0.0 | context ожидает экземпляр InflateContext; раньше, ожидался ресурс (resource).

Смотрите также

  • inflate_init() - Инициализация контекста инкрементальной распаковки


Получает количество прочитанных байт

  • « inflate_add
  • inflate_get_status »
  • PHP Manual
  • Функции Zlib
  • Получает количество прочитанных байт

inflate_get_read_len

(PHP 7 >= 7.2.0, PHP 8)

inflate_get_read_len — Получает количество прочитанных байт

Описание

inflate_get_read_len(InflateContext $context): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Возвращаемые значения

Возвращает количество прочитанных байт или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | context ожидает экземпляр InflateContext; раньше, ожидался ресурс (resource).


Получает статус декомпрессии

  • « inflate_get_read_len
  • inflate_init »
  • PHP Manual
  • Функции Zlib
  • Получает статус декомпрессии

inflate_get_status

(PHP 7 >= 7.2.0, PHP 8)

inflate_get_status — Получает статус декомпрессии

Описание

inflate_get_status(InflateContext $context): int

Обычно возвращает ZLIB_OK или ZLIB_STREAM_END.

Список параметров

context

Возвращаемые значения

Возвращает статус декомпрессии.

Список изменений

Версия | Описание
8.0.0 | context ожидает экземпляр InflateContext; раньше, ожидался ресурс (resource).


Инициализация контекста инкрементальной распаковки

  • « inflate_get_status
  • readgzfile »
  • PHP Manual
  • Функции Zlib
  • Инициализация контекста инкрементальной распаковки

inflate_init

(PHP 7, PHP 8)

inflate_init — Инициализация контекста инкрементальной распаковки

Описание

inflate_init(int $encoding, array $options = []): InflateContext|false

Инициализирует контекст инкрементальной распаковки с указанной кодировкой 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.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр InflateContext; раньше возвращался ресурс (resource).

Примечания

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

В отличие от gzinflate(), контексты инкрементального расширения не ограничивают длину декодированных данных, поэтому не обеспечивают автоматической защиты от ZIP-бомб.

Смотрите также

  • inflate_add() - Инкрементальное распаковать закодированные данные
  • deflate_init() - Инициализировать контекст инкрементального сжатия


Выводит содержимое gz-файла

  • « inflate_init
  • zlib_decode »
  • PHP Manual
  • Функции Zlib
  • Выводит содержимое gz-файла

readgzfile

(PHP 4, PHP 5, PHP 7, PHP 8)

readgzfile — Выводит содержимое gz-файла

Описание

readgzfile(string $filename, int $use_include_path = 0): int|false

Читает файл, распаковывает его и записывает в стандартный вывод.

Может также использоваться для чтения файла, не имеющего формат 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, PHP 8)

zlib_decode — Распаковывает любые закодированные данные raw/gzip/zlib

Описание

zlib_decode(string $data, int $max_length = 0): string|false

Распаковывает любые закодированные данные raw/gzip/zlib.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

max_length

Возвращаемые значения

Возвращает распакованные данные или false в случае возникновения ошибки.

Смотрите также

  • zlib_encode() - Сжатие данных с указанной кодировкой


Сжатие данных с указанной кодировкой

  • « zlib_decode
  • zlib_get_coding_type »
  • PHP Manual
  • Функции Zlib
  • Сжатие данных с указанной кодировкой

zlib_encode

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

zlib_encode — Сжатие данных с указанной кодировкой

Описание

zlib_encode(string $data, int $encoding, int $level = -1): string|false

Сжимает данные с указанной кодировкой.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

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
  • DeflateContext »
  • PHP Manual
  • Функции Zlib
  • Возвращает способ кодирования, используемый для сжатия вывода

zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

zlib_get_coding_type — Возвращает способ кодирования, используемый для сжатия вывода

Описание

zlib_get_coding_type(): string|false

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возможные значения: gzip, deflate или false.

Смотрите также

  • Директива zlib.output_compression


Класс DeflateContext

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы zlib.deflate в PHP 8.0.0.

Обзор классов

final class DeflateContext {
}


Класс InflateContext

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы zlib.inflate в PHP 8.0.0.

Обзор классов

final class InflateContext {
}


Криптографические модули

  • Hash — Фреймворк хеш-кодов HASH
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • HashContext — Класс HashContext
    • Функции Hash
  • Mcrypt
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Шифры Mcrypt
    • Mcrypt
  • Mhash
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции Mhash
  • OpenSSL
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Параметры ключа/сертификата
    • Проверка сертификатов
    • Функции OpenSSL
    • OpenSSLCertificate — Класс OpenSSLCertificate
    • OpenSSLCertificateSigningRequest — Класс OpenSSLCertificateSigningRequest
    • OpenSSLAsymmetricKey — Класс OpenSSLAsymmetricKey
  • Хеширование паролей
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции хеширования паролей
  • Rnp
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции Rnp
    • RnpFFI — Класс RnpFFI
  • Sodium
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции Sodium
    • SodiumException — Класс SodiumException


Фреймворк хеш-кодов HASH

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • HashContext — Класс HashContext
    • HashContext::__construct — Закрытый конструктор для запрета непосредственного создания объекта
    • HashContext::__serialize — Сериализует объект HashContext
    • HashContext::__unserialize — Десериализует параметр data в объект HashContext
  • Функции 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 (int)
Необязательный флаг для hash_init().


Класс HashContext

(PHP 7 >= 7.2.0, PHP 8)

Введение

Обзор классов

final class HashContext {
/* Методы */
private __construct()
public __serialize(): array
public __unserialize(array $data): void
}

Содержание

  • HashContext::__construct — Закрытый конструктор для запрета непосредственного создания объекта
  • HashContext::__serialize — Сериализует объект HashContext
  • HashContext::__unserialize — Десериализует параметр data в объект HashContext


Закрытый конструктор для запрета непосредственного создания объекта

  • « HashContext
  • HashContext::__serialize »
  • PHP Manual
  • HashContext
  • Закрытый конструктор для запрета непосредственного создания объекта

HashContext::__construct

(PHP 7 >= 7.2.0, PHP 8)

HashContext::__construct — Закрытый конструктор для запрета непосредственного создания объекта

Описание

private HashContext::__construct()

Список параметров

У этой функции нет параметров.


Сериализует объект HashContext

  • « HashContext::__construct
  • HashContext::__unserialize »
  • PHP Manual
  • HashContext
  • Сериализует объект HashContext

HashContext::__serialize

(PHP 8)

HashContext::__serialize — Сериализует объект HashContext

Описание

public HashContext::__serialize(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Десериализует параметр data в объект HashContext

  • « HashContext::__serialize
  • Функции Hash »
  • PHP Manual
  • HashContext
  • Десериализует параметр data в объект HashContext

HashContext::__unserialize

(PHP 8)

HashContext::__unserialize — Десериализует параметр data в объект HashContext

Описание

public HashContext::__unserialize(array $data): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Десериализуемое значение.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Функции 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, PHP 8, PECL hash >= 1.1)

hash_algos — Возвращает список зарегистрированных алгоритмов хеширования

Описание

hash_algos(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

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

Список изменений

Версия | Описание
8.1.0 | Добавлена поддержка алгоритмов MurmurHash3 и xxHash.
7.4.0 | Добавлена поддержка для crc32c.
7.1.0 | Добавлена поддержка для sha512/224, sha512/256, sha3-224, sha3-256, sha3-384 и sha3-512.

Примеры

Пример #1 Пример использования hash_algos()

Начиная с PHP 8.1.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/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] => adler32
    [30] => crc32
    [31] => crc32b
    [32] => crc32c
    [33] => fnv132
    [34] => fnv1a32
    [35] => fnv164
    [36] => fnv1a64
    [37] => joaat
    [38] => murmur3a
    [39] => murmur3c
    [40] => murmur3f
    [41] => xxh32
    [42] => xxh64
    [43] => xxh3
    [44] => xxh128
    [45] => haval128,3
    [46] => haval160,3
    [47] => haval192,3
    [48] => haval224,3
    [49] => haval256,3
    [50] => haval128,4
    [51] => haval160,4
    [52] => haval192,4
    [53] => haval224,4
    [54] => haval256,4
    [55] => haval128,5
    [56] => haval160,5
    [57] => haval192,5
    [58] => haval224,5
    [59] => haval256,5
)

Смотрите также

  • hash_hmac_algos() - Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac


Копирует контекст хеширования

  • « hash_algos
  • hash_equals »
  • PHP Manual
  • Функции Hash
  • Копирует контекст хеширования

hash_copy

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

hash_copy — Копирует контекст хеширования

Описание

hash_copy(HashContext $context): HashContext

Список параметров

context

Контекст хеширования, возвращённый hash_init().

Возвращаемые значения

Возвращает копию контекста хеширования.

Список изменений

Версия | Описание
7.2.0 | Принимает и возвращает HashContext, а не ресурс.

Примеры

Пример #1 Пример использования hash_copy()

<?php
$context = hash_init("sha256");
hash_update($context, "Наглый коричневый лисёнок");

/* копия контекста для дальнейшего использования */
$copy_context = hash_copy($context);

echo hash_final($context), "\n";

hash_update($copy_context, "прыгает вокруг ленивой собаки.");
echo hash_final($copy_context), "\n";
?>

Результат выполнения данного примера:

49fd7dddcdc0e0e6b2252f966b750d78536e8cd2677bf84db0c605652f7f1699
8b0ec9465a2a0befe6b45bc081e32e4629a7f3e39dcf1fda31af101b8d85145b


Сравнивает строки без риска атаки по времени

  • « hash_copy
  • hash_file »
  • PHP Manual
  • Функции Hash
  • Сравнивает строки без риска атаки по времени

hash_equals

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

hash_equals — Сравнивает строки без риска атаки по времени

Описание

hash_equals(string $known_string, string $user_string): bool

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

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

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

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

Список параметров

known_string

Известная строка (string), которая должна держаться в секрете.

user_string

Пользовательская строка (string) для сравнения.

Возвращаемые значения

Возвращает true, если строки идентичны, и false, если нет.

Примеры

Пример #1 Пример использования hash_equals()

<?php
$secretKey = '8uRhAeH89naXfFXKGOEj';

// Значение и подпись получены от пользователя, например, содержались в URL-адресе
// и были извлечены из глобальной переменной $_GET.
$value = 'username=rasmuslerdorf';
$signature = '8c35009d3b50caf7f5d2c1e031842e6b7823a1bb781d33c5237cd27b57b5f327';

if (hash_equals(hash_hmac('sha256', $value, $secretKey), $signature)) {
echo "Значение подписано правильно.", PHP_EOL;
} else {
echo "Значение было подделано.", PHP_EOL;
}
?>

Результат выполнения данного примера:

Значение подписано правильно.

Примечания

Замечание:

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

Смотрите также

  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC


Генерация хеш-значения, используя содержимое заданного файла

  • « hash_equals
  • hash_final »
  • PHP Manual
  • Функции Hash
  • Генерация хеш-значения, используя содержимое заданного файла

hash_file

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_file — Генерация хеш-значения, используя содержимое заданного файла

Описание

hash_file(
string $algo,
string $filename,
bool $binary = false,
array $options = []
): string|false

Список параметров

algo

Название выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.). Список поддерживаемых алгоритмов смотрите в hash_algos().

filename

Путь или URL к файлу, который будет хеширован; Поддерживается интерфейс fopen.

binary

Когда установлено в true, выводит необработанные двоичные данные. При false выводит данные в шестнадцатеричной кодировке в нижнем регистре.

options

Множество опций для различных алгоритмов хеширования. В настоящее время в вариантах MurmurHash поддерживается только параметр "seed".

Возвращаемые значения

Возвращает строку, содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если binary задан как true, то возвращается хеш-код в виде бинарных данных.

Список изменений

Версия | Описание
8.1.0 | Добавлен параметр options.

Примеры

Пример #1 Использование hash_file()

<?php
/* Создаём файл, чтобы вычислить его хеш */
file_put_contents('example.txt', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');

echo hash_file('sha256', 'example.txt');
?>

Результат выполнения данного примера:

199f52fc9f2492c64449ed96003f135f8ea428e353e50c40b0c1a16b9c16f571

Смотрите также

  • 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, PHP 8, PECL hash >= 1.1)

hash_final — Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода

Описание

hash_final(HashContext $context, bool $binary = false): string

Список параметров

context

Контекст хеширования, возвращённый hash_init().

binary

Когда установлено в true, выводит необработанные двоичные данные. При false выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если binary задан как true, то возвращается хеш-код в виде бинарных данных.

Список изменений

Версия | Описание
7.2.0 | Принимает HashContext, а не ресурс.

Смотрите также

  • 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, PHP 8)

hash_hkdf — Формирования ключа HKDF для заданных входных данных

Описание

hash_hkdf(
string $algo,
string $key,
int $length = 0,
string $info = "",
string $salt = ""
): string

Список параметров

algo

Имя выбранного хеширующего алгоритма (например, "sha256", "sha512", "haval160,4" и т.д.) Список поддерживаемых алгоритмов можно посмотреть в описании функции hash_algos().

Замечание:

Не криптографические хеширующие функции не допускаются.

key

Входные данные (необработанные бинарные данные). Не может быть пустым.

length

Выбранная длина вывода в байтах. Не может быть более чем в 255 раз больше размера выбранной хеширующей функции.

Если length установлено как 0, то вывод по длине будет равен размеру выбранной хеширующей функции.

info

Информационная строка, специфичная для приложения/контекста.

salt

Соль, используемая при формировании ключа.

Хотя и необязательно, но добавление случайной соли значительно улучшает силу HKDF.

Возвращаемые значения

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

Ошибки

Выбрасывается ValueError, если параметр key пуст, в параметре algo указан неизвестный либо не криптографический алгоритм, параметр length меньше 0 или очень большой (более чем в 255 раз больше размера хеш-функции).

Список изменений

Версия | Описание
8.0.0 | Теперь выбрасывается исключение ValueError в случае возникновения ошибки; ранее выдавалась ошибка уровня E_WARNING и возвращалось значение false.

Примеры

Пример #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, PHP 8)

hash_hmac_algos — Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac

Описание

hash_hmac_algos(): 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, PHP 8, PECL hash >= 1.1)

hash_hmac_file — Генерация хеш-кода на основе ключа, используя метод HMAC и содержимое полученного файла

Описание

hash_hmac_file(
string $algo,
string $filename,
string $key,
bool $binary = false
): string|false

Список параметров

algo

Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.) Смотрите hash_hmac_algos() для получения списка поддерживаемых алгоритмов.

filename

URL расположения файла для хеширования; Поддерживаются обработчики fopen.

key

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

binary

Когда установлено в true, выводит необработанные двоичные данные. При false выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку, содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если binary задан как true, то возвращается хеш-код в виде бинарных данных. Возвращает false, если файл filename недоступен для чтения.

Ошибки

Выбрасывает исключение ValueError, если параметр algo неизвестен или не является криптографической хеш-функцией.

Список изменений

Версия | Описание
8.0.0 | Теперь выбрасывает исключение ValueError, если алгоритм algo неизвестен или не является криптографической хеш-функцией; ранее вместо этого возвращалось значение false.
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('sha256', 'example.txt', 'secret');
?>

Результат выполнения данного примера:

bc83c8fabc807cabbbb087bf90c760888349b223b5ba0a35251f7b37b05bf9c9

Смотрите также

  • 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, PHP 8, PECL hash >= 1.1)

hash_hmac — Генерация хеш-кода на основе ключа, используя метод HMAC

Описание

hash_hmac(
string $algo,
string $data,
string $key,
bool $binary = false
): string

Список параметров

algo

Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.) Смотрите hash_hmac_algos() для получения списка поддерживаемых алгоритмов.

data

Сообщение для хеширования.

key

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

binary

Когда установлено в true, выводит необработанные двоичные данные. При false выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку, содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если binary задан как true, то возвращается хеш-код в виде бинарных данных.

Ошибки

Выбрасывает исключение ValueError, если параметр algo неизвестен или не является криптографической хеш-функцией.

Список изменений

Версия | Описание
8.0.0 | Теперь выбрасывает исключение ValueError, если алгоритм algo неизвестен или не является криптографической хеш-функцией; ранее вместо этого возвращалось значение false.
7.2.0 | Запрещено использование некриптографических хеш-функций (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat).

Примеры

Пример #1 Пример использования hash_hmac()

<?php
echo hash_hmac('sha256', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.', 'secret');
?>

Результат выполнения данного примера:

bc83c8fabc807cabbbb087bf90c760888349b223b5ba0a35251f7b37b05bf9c9

Смотрите также

  • hash() - Генерирует хеш-код (подпись сообщения)
  • hash_hmac_algos() - Возвращает список зарегистрированных алгоритмов хеширования, применимых для hash_hmac
  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_hmac_file() - Генерация хеш-кода на основе ключа, используя метод HMAC и содержимое полученного файла
  • hash_equals() - Сравнивает строки без риска атаки по времени


Инициализация инкрементального контекста хеширования

  • « hash_hmac
  • hash_pbkdf2 »
  • PHP Manual
  • Функции Hash
  • Инициализация инкрементального контекста хеширования

hash_init

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_init — Инициализация инкрементального контекста хеширования

Описание

hash_init(
string $algo,
int $flags = 0,
string $key = "",
array $options = []
): HashContext

Список параметров

algo

Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.). Весь список поддерживаемых алгоритмов можно посмотреть в описании функции hash_algos().

flags

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

key

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

options

Множество опций для различных алгоритмов хеширования. В настоящее время в вариантах MurmurHash поддерживается только параметр "seed".

Возвращаемые значения

Возвращает контекст хеширования для использования в функциях hash_update(), hash_update_stream(), hash_update_file() и hash_final().

Ошибки

Выбрасывает исключение ValueError, если параметр algo неизвестен или не является криптографической хеш-функцией или если параметр key не задан.

Список изменений

Версия | Описание
8.1.0 | Добавлен параметр options.
8.0.0 | Теперь выбрасывает исключение ValueError, если параметр algo неизвестен или не является криптографической хеш-функцией или если параметр key не задан; ранее возвращалось значение false и выдавалась ошибка уровня E_WARNING. emitted.
7.2.0 | Запрещено использование некриптографических хеш-функций (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) с константой HASH_HMAC.
7.2.0 | Возвращает HashContext, а не ресурс.

Примеры

Пример #1 Пример инкрементального хеширования

<?php
$hash = hash('sha256', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');

$ctx = hash_init('sha256');

hash_update($ctx, 'Наглый коричневый лисёнок ');
hash_update($ctx, 'прыгает вокруг ленивой собаки.');

$incremental_hash = hash_final($ctx);

echo $incremental_hash, PHP_EOL;
var_dump($hash === $incremental_hash);
?>

Результат выполнения данного примера:

199f52fc9f2492c64449ed96003f135f8ea428e353e50c40b0c1a16b9c16f571
bool(true)

Смотрите также

  • 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, PHP 8)

hash_pbkdf2 — Формирования ключа PBKDF2 для заданных входных данных

Описание

hash_pbkdf2(
string $algo,
string $password,
string $salt,
int $iterations,
int $length = 0,
bool $binary = false
): string

Список параметров

algo

Имя выбранного хеширующего алгоритма (например, md5, sha256, haval160,4 и т.д.) Список поддерживаемых алгоритмов можно посмотреть в описании функции hash_algos().

password

Пароль, используемый для формирования.

salt

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

iterations

Количество итераций для формирования ключа.

length

Длина генерируемой строки. Если параметр binary задан как true, то этот параметр равен количеству байт в генерируемом ключе. Если binary установлен как false, то длина ключа в байтах будет в два раза меньше, так как каждый байт ключа будет возвращён в виде двух символов шестнадцатеричной системы (0-F).

Если задано как 0, то используется весь вывод заданного алгоритма.

binary

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

Возвращаемые значения

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

Ошибки

Выбрасывается исключение ValueError, если заданный алгоритм некорректен, параметр iterations меньше или равен 0, параметр length меньше чем 0 или если salt очень длинный (больше чем INT_MAX - 4).

Список изменений

Версия | Описание
8.0.0 | Теперь выбрасывается исключение ValueError в случае возникновения ошибки; ранее возвращалось значение false и выдавалась ошибка уровня E_WARNING.
7.2.0 | Запрещено использование некриптографических функций (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat).

Примеры

Пример #1 Пример простого использования hash_pbkdf2()

<?php
$password = "password";
$iterations = 600000;

// Создание криптографически безопасной случайной соли с помощью random_bytes()
$salt = random_bytes(16);

$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20);
var_dump($hash);

// для необработанного двоичного файла параметр $length должен быть уменьшен вдвое для получения аналогичных результатов
$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 10, true);
var_dump(bin2hex($hash));?>

Результатом выполнения данного примера будет что-то подобное:

string(20) "120fb6cffcf8b32c43e7"
string(20) "120fb6cffcf8b32c43e7"

Примечания

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

Метод PBKDF2 может быть использован для хеширования паролей в целях их хранения. Однако стоит помнить, что для этих целей гораздо лучше использовать password_hash() или crypt() с CRYPT_BLOWFISH.

Смотрите также

  • password_hash() - Создаёт хеш пароля
  • hash_hkdf() - Формирования ключа HKDF для заданных входных данных
  • sodium_crypto_pwhash() - Получает ключ из пароля, используя Argon2


Добавляет данные из файла в активный контекст хеширования

  • « hash_pbkdf2
  • hash_update_stream »
  • PHP Manual
  • Функции Hash
  • Добавляет данные из файла в активный контекст хеширования

hash_update_file

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_update_file — Добавляет данные из файла в активный контекст хеширования

Описание

hash_update_file(HashContext $context, string $filename, ?resource $stream_context = null): bool

Список параметров

context

Контекст хеширования, возвращённый hash_init().

filename

Имя или URL файла для хеширования; Поддерживаются обработчики fopen.

stream_context

Контекст потока, возвращённый stream_context_create().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | stream_context теперь допускает значение null.
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, PHP 8, PECL hash >= 1.1)

hash_update_stream — Добавляет данные из открытого потока в активный контекст хеширования

Описание

hash_update_stream(HashContext $context, resource $stream, int $length = -1): int

Список параметров

context

Контекст хеширования, возвращаемый hash_init().

stream

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

length

Максимальное число символов для копирования из stream в контекст хеширования.

Возвращаемые значения

Фактическое количество байт, добавленное в контекст хеширования из stream.

Список изменений

Версия | Описание
7.2.0 | Принимает HashContext, а не ресурс.

Примеры

Пример #1 Пример использования hash_update_stream()

<?php
$fp = tmpfile();
fwrite($fp, 'прыгает вокруг ленивой собаки.');

rewind($fp);

$ctx = hash_init('sha256');
hash_update($ctx, 'Наглый коричневый лисёнок ');

hash_update_stream($ctx, $fp);
echo hash_final($ctx);
?>

Результат выполнения данного примера:

199f52fc9f2492c64449ed96003f135f8ea428e353e50c40b0c1a16b9c16f571

Смотрите также

  • 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, PHP 8, 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, PHP 8, PECL hash >= 1.1)

hash — Генерирует хеш-код (подпись сообщения)

Описание

hash(
string $algo,
string $data,
bool $binary = false,
array $options = []
): string

Список параметров

algo

Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.). Список поддерживаемых алгоритмов смотрите в hash_algos().

data

Сообщение для хеширования.

binary

Когда установлено в true, выводит необработанные двоичные данные. При false выводит данные в шестнадцатеричной кодировке в нижнем регистре.

options

Множество опций для различных алгоритмов хеширования. В настоящее время в вариантах MurmurHash поддерживается только параметр "seed".

Возвращаемые значения

Возвращает строку содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если binary задан как true, то возвращается хеш-код в виде бинарных данных.

Список изменений

Версия | Описание
8.1.0 | Добавлен параметр options.
8.0.0 | Функция hash() теперь выбрасывает исключение ValueError, если алгоритм algo неизвестен; ранее вместо этого возвращалось значение false.

Примеры

Пример #1 Пример использования hash()

<?php
echo hash('sha256', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');
?>

Результат выполнения данного примера:

199f52fc9f2492c64449ed96003f135f8ea428e353e50c40b0c1a16b9c16f571

Смотрите также

  • hash_file() - Генерация хеш-значения, используя содержимое заданного файла
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • hash_init() - Инициализация инкрементального контекста хеширования
  • md5() - Возвращает MD5-хеш строки
  • sha1() - Возвращает SHA1-хеш строки


Mcrypt

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Шифры Mcrypt
  • Mcrypt
    • mcrypt_create_iv — Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника
    • mcrypt_decrypt — Расшифровывает данные с заданными параметрами
    • 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_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 — Функция запускает самопроверку указанного модуля
    • 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 7.2.0

Информация по установке этого модуля 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 (int)
MCRYPT_DECRYPT (int)
MCRYPT_DEV_RANDOM (int)
MCRYPT_DEV_URANDOM (int)
MCRYPT_RAND (int)


Шифры 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

Содержание

  • mcrypt_create_iv — Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника
  • mcrypt_decrypt — Расшифровывает данные с заданными параметрами
  • 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_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 — Функция запускает самопроверку указанного модуля
  • mdecrypt_generic — Дешифровка данных


Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника

  • « Mcrypt
  • 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 в случае возникновения ошибки.

Примеры

Пример #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_enc_get_algorithms_name »
  • 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|false

Расшифровывает 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 в случае возникновения ошибки.

Смотрите также

  • mcrypt_encrypt() - Шифрует текст с заданными параметрами


Возвращает имя алгоритма

  • « mcrypt_decrypt
  • 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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.0. Использовать эту функцию крайне не рекомендуется.

Описание

mcrypt_enc_self_test(resource $td): int

Функция запускает самопроверку алгоритма, заданного дескриптором шифрования td.

Список параметров

td

Дескриптор шифрования.

Возвращаемые значения

Возвращает 0 в случае успешного выполнения и отрицательное int в противном случае.


Шифрует текст с заданными параметрами

  • « 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 и была УДАЛЕНА в версии PHP 7.2.0. Использовать эту функцию крайне не рекомендуется.

Описание

mcrypt_encrypt(
string $cipher,
string $key,
string $data,
string $mode,
string $iv = ?
): string|false

Шифрует данные.

Список параметров

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 в случае возникновения ошибки.

Примеры

Пример #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_init »
  • 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 и была УДАЛЕНА в версии PHP 7.2.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 »
  • 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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.0. Использовать эту функцию крайне не рекомендуется.

Описание

mcrypt_get_block_size(int $cipher): int|false
mcrypt_get_block_size(string $cipher, string $mode): int|false

Первый прототип собран с библиотекой 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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.0. Использовать эту функцию крайне не рекомендуется.

Описание

mcrypt_get_key_size(int $cipher): int|false
mcrypt_get_key_size(string $cipher, string $mode): int|false

Первый прототип собран с библиотекой 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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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 и была УДАЛЕНА в версии PHP 7.2.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
  • mdecrypt_generic »
  • 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 и была УДАЛЕНА в версии PHP 7.2.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)


Дешифровка данных

  • « mcrypt_module_self_test
  • 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 и была УДАЛЕНА в версии PHP 7.2.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, PHP 8)

mhash_count — Получить наибольший доступный идентификатор хеша

Внимание

Функция объявлена УСТАРЕВШЕЙ, начиная с PHP 8.1.0. Использовать эту функцию крайне не рекомендуется.

Описание

mhash_count(): int

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

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Получить наибольший доступный идентификатор хеша. Хеши нумеруются от 0 до этого идентификатора.

Список изменений

Версия | Описание
8.1.0 | Функция объявлена устаревшей. Используйте вместо неё функции hash_*().

Примеры

Пример #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, PHP 8)

mhash_get_block_size — Получить размер блока для заданного хеша

Внимание

Функция объявлена УСТАРЕВШЕЙ, начиная с PHP 8.1.0. Использовать эту функцию крайне не рекомендуется.

Описание

mhash_get_block_size(int $algo): int|false

Возвращает размер блока для заданного algo.

Список параметров

algo

Идентификатор хеша. Одна из констант MHASH_hashname.

Возвращаемые значения

Возвращает размер в байтах или false, если параметр algo задан некорректно.

Список изменений

Версия | Описание
8.1.0 | Функция объявлена устаревшей. Используйте вместо неё функции 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, PHP 8)

mhash_get_hash_name — Получить имя указанного хеша

Внимание

Функция объявлена УСТАРЕВШЕЙ, начиная с PHP 8.1.0. Использовать эту функцию крайне не рекомендуется.

Описание

mhash_get_hash_name(int $algo): string|false

Возвращает имя заданного algo.

Список параметров

algo

Идентификатор хеша. Одна из констант MHASH_hashname.

Возвращаемые значения

Возвращает строку с названием или false, если такого хеша нет.

Список изменений

Версия | Описание
8.1.0 | Функция объявлена устаревшей. Используйте вместо неё функции hash_*().

Примеры

Пример #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, PHP 8)

mhash_keygen_s2k — Генерация ключа

Внимание

Функция объявлена УСТАРЕВШЕЙ, начиная с PHP 8.1.0. Использовать эту функцию крайне не рекомендуется.

Описание

mhash_keygen_s2k(
int $algo,
string $password,
string $salt,
int $length
): string|false

Генерирует ключ в соответствии с заданным algo и указанным паролем password.

Используется алгоритм S2K с солью, как описано в документе OpenPGP (» RFC 2440).

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

Список параметров

algo

Идентификатор хеша. Одна из констант MHASH_hashname.

password

Пользовательский пароль.

salt

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

length

Длина ключа в байтах.

Возвращаемые значения

Возвращает строку с ключом или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Функция объявлена устаревшей. Используйте вместо неё функции hash_*().


Вычисляет хеш

  • « mhash_keygen_s2k
  • OpenSSL »
  • PHP Manual
  • Функции Mhash
  • Вычисляет хеш

mhash

(PHP 4, PHP 5, PHP 7, PHP 8)

mhash — Вычисляет хеш

Внимание

Функция объявлена УСТАРЕВШЕЙ, начиная с PHP 8.1.0. Использовать эту функцию крайне не рекомендуется.

Описание

mhash(int $algo, string $data, ?string $key = null): string|false

mhash() принимает хеш-функцию, заданную algo для data.

Список параметров

algo

Идентификатор хеша. Одна из констант MHASH_hashname.

data

Строка с пользовательскими данными.

key

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

Возвращаемые значения

Возвращает строку с результирующим хешем (также называемый дайджестом) или HMAC, или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Функция объявлена устаревшей. Используйте вместо неё функции hash_*().
8.0.0 | key теперь допускает значение null.


OpenSSL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
    • Флаги проверки
    • Флаги заполнения для ассиметричного шифрования
    • Типы ключей
    • Флаги/константы PKCS7
    • Флаги/Константы CMS
    • Алгоритмы подписи
    • Алгоритмы шифрования
    • Константы версий
    • Константа SNI (Server Name Indication)
    • Другие константы
  • Параметры ключа/сертификата
  • Проверка сертификатов
  • Функции OpenSSL
    • openssl_cipher_iv_length — Получает длину инициализирующего вектора шифра
    • openssl_cipher_key_length — Получает длину ключа шифрования
    • openssl_cms_decrypt — Расшифровывает CMS-сообщение
    • openssl_cms_encrypt — Зашифровывает CMS-сообщение
    • openssl_cms_read — Экспортирует файл CMS в массив сертификатов PEM
    • openssl_cms_sign — Подписывает файл
    • openssl_cms_verify — Проверяет подпись CMS
    • 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_derive — Вычисляет общий секрет для открытого значения удалённого и локального ключа DH или ECDH
    • 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_x509_verify — Проверка цифровой подписи сертификата x509 с помощью публичного ключа
  • OpenSSLCertificate — Класс OpenSSLCertificate
  • OpenSSLCertificateSigningRequest — Класс OpenSSLCertificateSigningRequest
  • OpenSSLAsymmetricKey — Класс OpenSSLAsymmetricKey


Введение

Этот модуль использует функции библиотеки » OpenSSL для симметричных и асимметричных шифрования и дешифровки, PBKDF2, PKCS7, PKCS12, X509 и других криптографических операций. Также оно реализует потоки TLS.

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


Требования

Для использования функций OpenSSL вам необходимо установить библиотеку » OpenSSL. Для версии PHP 7.0 требуется OpenSSL >= 0.9.8, < 1.2. Для версии PHP 7.1-8.0 требуется OpenSSL >= 1.0.1, < 3.0. Для версии PHP >= 8.1 требуется OpenSSL >= 1.0.2, < 4.0.

Внимание

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


Установка

Для поддержки OpenSSL в PHP вам необходимо скомпилировать его с опцией --with-openssl[=DIR].

Также библиотека OpenSSL имеет дополнительные требования для нормальной работы во время исполнения. Самое главное, OpenSSL требуется доступ к генераторам случайных и псевдослучайных чисел; на большинстве систем Unix/Linux, это означает доступ к устройствам /dev/urandom или /dev/random.

Опция конфигурации --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/ssl.

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.

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

Убедитесь, что непривилегированным пользователям не разрешено изменять 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 |
openssl.capath | "" | PHP_INI_PERDIR |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

openssl.cafile string

Местоположение файла Certificate Authority на локальной файловой системе, который должен использоваться с опцией контекста verify_peer для аутентификации удалённой точки.

openssl.capath string

Если cafile не задан или сертификат не найден, то директория, указанная в capath будет использована для поиска сертификата. capath должна быть корректно хешированной директорией сертификата.

Также смотрите опции контекста потока SSL.


Типы ресурсов

До PHP 8.0.0 в модуле OpenSSL было определено 3 типа ресурсов:

  • OpenSSL ключ
  • OpenSSL X.509
  • OpenSSL X.509 CSR


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

Содержание

  • Флаги проверки
  • Флаги заполнения для ассиметричного шифрования
  • Типы ключей
  • Флаги/константы PKCS7
  • Флаги/Константы CMS
  • Алгоритмы подписи
  • Алгоритмы шифрования
  • Константы версий
  • Константа SNI (Server Name Indication)
  • Другие константы

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


Флаги проверки

X509_PURPOSE_SSL_CLIENT (int)
X509_PURPOSE_SSL_SERVER (int)
X509_PURPOSE_NS_SSL_SERVER (int)
X509_PURPOSE_SMIME_SIGN (int)
X509_PURPOSE_SMIME_ENCRYPT (int)
X509_PURPOSE_CRL_SIGN (int)
X509_PURPOSE_ANY (int)


Флаги заполнения для ассиметричного шифрования

OPENSSL_PKCS1_PADDING (int)
OPENSSL_SSLV23_PADDING (int)
OPENSSL_NO_PADDING (int)
OPENSSL_PKCS1_OAEP_PADDING (int)


Типы ключей

OPENSSL_KEYTYPE_RSA (int)
OPENSSL_KEYTYPE_DSA (int)
OPENSSL_KEYTYPE_DH (int)
OPENSSL_KEYTYPE_EC (int)
Эта константа доступна, только если PHP скомпилирован с OpenSSL 0.9.8+.


Флаги/константы 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 | Не пытаться проверить подписи у сообщения
PKCS7_NOOLDMIMETYPE | Доступно, начиная с PHP 8.3.0. Устанавливает тип содержимого application/pkcs7-mime вместо application/x-pkcs7-mime для шифрования сообщения.


Флаги/Константы CMS

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

Константы CMS
Константа | Описание
OPENSSL_CMS_TEXT | Добавляет заголовки content-type text/plain в зашифрованное/подписанное сообщение. При расшифровке или проверке эти заголовки удаляются из вывода - если расшифрованное или проверенное сообщение не относится к MIME-типу text/plain, произойдёт ошибка.
OPENSSL_CMS_BINARY | Обычно входное сообщение преобразуется в "каноничный" формат, который эффективно использует CR и LF в качестве конца строки: как требуется спецификацией CMS. Когда присутствует эта опция, перевод не выполняется. Это полезно при обработке двоичных данных, которые могут быть не в формате CMS.
OPENSSL_CMS_NOINTERN | При проверке сообщения, сертификаты (если есть), включённые в сообщение, обычно проверяются на наличие сертификата подписи. С этой опцией используются только сертификаты, указанные в параметре untrusted_certificates_filename в openssl_cms_verify(). Однако предоставленные сертификаты можно использовать как ненадёжные центры сертификации.
OPENSSL_CMS_NOVERIFY | Не проверять сертификат подписавшего у подписанного сообщения.
OPENSSL_CMS_NOCERTS | При подписании сообщения сертификат подписывающей стороны обычно включается - с этой опцией он исключается. Это уменьшит размер подписанного сообщения, но у проверяющего должна быть копия сертификата подписавшего, доступная локально (например, переданная с помощью untrusted_certificates_filename в openssl_cms_verify()).
OPENSSL_CMS_NOATTR | Обычно при подписании сообщения включается набор атрибутов, который включает время подписи и поддерживаемые симметричные алгоритмы. С этой опцией они не включены.
OPENSSL_CMS_DETACHED | При подписании сообщения используйте подпись открытым текстом с MIME-типом "multipart/signed". Это значение по умолчанию, если вы не укажете никаких flags для openssl_cms_sign(). Если вы отключите эту опцию, сообщение будет подписано с использованием непрозрачной подписи, которая более устойчива к переводу почтовыми ретрансляторами, но не может быть прочитана почтовыми агентами, не поддерживающими S/MIME.
OPENSSL_CMS_NOSIGS | Не пытаться проверять подписи в сообщении
OPENSSL_CMS_OLDMIMETYPE | Доступно, начиная с PHP 8.3.0. Устанавливает тип содержимого application/x-pkcs7-mime вместо application/pkcs7-mime для шифрования сообщения.


Алгоритмы подписи

OPENSSL_ALGO_DSS1 (int)
OPENSSL_ALGO_SHA1 (int)
Используется как алгоритм по умолчанию для функций openssl_sign() и openssl_verify().
OPENSSL_ALGO_SHA224 (int)
OPENSSL_ALGO_SHA256 (int)
OPENSSL_ALGO_SHA384 (int)
OPENSSL_ALGO_SHA512 (int)
OPENSSL_ALGO_RMD160 (int)
OPENSSL_ALGO_MD5 (int)
OPENSSL_ALGO_MD4 (int)
OPENSSL_ALGO_MD2 (int)
Эта константа доступна, только если PHP скомпилирован с поддержкой MD2. Для этого нужно передать в -DHAVE_OPENSSL_MD2_H CFLAG при компиляции PHP и включить md2 при компиляции OpenSSL 1.0.0+.


Алгоритмы шифрования

OPENSSL_CIPHER_RC2_40 (int)
OPENSSL_CIPHER_RC2_128 (int)
OPENSSL_CIPHER_RC2_64 (int)
OPENSSL_CIPHER_DES (int)
OPENSSL_CIPHER_3DES (int)
OPENSSL_CIPHER_AES_128_CBC (int)
OPENSSL_CIPHER_AES_192_CBC (int)
OPENSSL_CIPHER_AES_256_CBC (int)


  • « Алгоритмы шифрования
  • Константа SNI (Server Name Indication) »
  • PHP Manual
  • Предопределённые константы
  • Константы версий

Константы версий

OPENSSL_VERSION_TEXT (string)
OPENSSL_VERSION_NUMBER (int)


Константа SNI (Server Name Indication)

OPENSSL_TLSEXT_SERVER_NAME (string)
Независимо от доступности SNI.

Замечание:

Эта константа требует PHP собранного с библиотекой OpenSSL версии 0.9.8j или выше.


Другие константы

OPENSSL_RAW_DATA (bool)
Если OPENSSL_RAW_DATA установлена в openssl_encrypt() или openssl_decrypt(), возвращаемые данные возвращаются как есть. Если константа не указана, вызывающей стороне возвращаются данные в кодировке Base64.
OPENSSL_ZERO_PADDING (bool)
По умолчанию операции шифрования дополняются стандартным заполнением блока, а заполнение проверяется и удаляется при дешифровании. Если OPENSSL_ZERO_PADDING установлен в options функции openssl_encrypt() или openssl_decrypt(), то заполнение не выполняется, общий объем зашифрованных или расшифрованных данных должен быть кратен размеру блока, иначе возникнет ошибка.
OPENSSL_ENCODING_SMIME (int)
Указывает, что используется кодировка S/MIME.
OPENSSL_ENCODING_DER (int)
Указывает, что используется кодировка DER (Distinguished Encoding Rules).
OPENSSL_ENCODING_PEM (int)
Указывает, что используется кодировка PEM (Privacy-Enhanced Mail).


Параметры ключа/сертификата

Некоторые функции openssl требуют параметры в виде ключа или сертификата. Можно использовать один из следующих вариантов:

  • Сертификаты

    1. Экземпляр OpenSSLCertificate (или до PHP 8.0.0 ресурс (resource) типа OpenSSL X.509), возвращаемый функцией openssl_x509_read()
    2. Строка формата file://path/to/cert.pem; указанный файл должен содержать сертификат в формате PEM.
    3. Строка, в которой находится содержимое сертификата/ключа, закодированного PEM, может начинаться с -----BEGIN CERTIFICATE-----.

  • Запросы подписи сертификата (Certificate Signing Requests или CSRs)

    1. Экземпляр OpenSSLCertificateSigningRequest (или до PHP 8.0.0 ресурс (resource) типа OpenSSL X.509 CSR), возвращаемый функцией openssl_csr_new()
    2. Строка вида file://path/to/csr.pem; указанный файл должен содержать CSR в формате PEM.
    3. Строка с CSR, кодированная в формате PEM, должна начинаться с -----BEGIN CERTIFICATE REQUEST-----.

  • Открытые/закрытые ключи

    1. Экземпляр OpenSSLAsymmetricKey (или до PHP 8.0.0 ресурс (resource) типа OpenSSL key), возвращаемый функцией openssl_get_publickey() или openssl_get_privatekey()
    2. Только для открытых ключей: экземпляр OpenSSLCertificate (или до PHP 8.0.0 ресурс (resource) типа OpenSSL X.509)
    3. Строка формата file://path/to/file.pem - указанный файл должен содержать сертификат в формате PEM (может содержать оба ключа).
    4. Строка, в которой находится содержимое сертификата/ключа, закодированного PEM, может начинаться с -----BEGIN CERTIFICATE-----.
    5. Для закрытых ключей возможно использование синтаксиса array($key, $passphrase) где $key представляет ключ указанный при помощи формата file:// или текстовое содержимое описанное выше, а $passphrase представляет строку, содержащую пароль для указанного закрытого ключа


Проверка сертификатов

Когда происходит вызов функции проверки подписи/сертификата, параметр ca_info должен содержать массив файлов и директорий, указывающие на размещение доверенных корневых сертификатов. Если указывается директория, она должна соответствовать директории, которую сможет использовать команда openssl.


Функции OpenSSL

Содержание

  • openssl_cipher_iv_length — Получает длину инициализирующего вектора шифра
  • openssl_cipher_key_length — Получает длину ключа шифрования
  • openssl_cms_decrypt — Расшифровывает CMS-сообщение
  • openssl_cms_encrypt — Зашифровывает CMS-сообщение
  • openssl_cms_read — Экспортирует файл CMS в массив сертификатов PEM
  • openssl_cms_sign — Подписывает файл
  • openssl_cms_verify — Проверяет подпись CMS
  • 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_derive — Вычисляет общий секрет для открытого значения удалённого и локального ключа DH или ECDH
  • 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_x509_verify — Проверка цифровой подписи сертификата x509 с помощью публичного ключа


Получает длину инициализирующего вектора шифра

  • « Функции OpenSSL
  • openssl_cipher_key_length »
  • PHP Manual
  • Функции OpenSSL
  • Получает длину инициализирующего вектора шифра

openssl_cipher_iv_length

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

openssl_cipher_iv_length — Получает длину инициализирующего вектора шифра

Описание

openssl_cipher_iv_length(string $cipher_algo): int|false

Возвращает длину инициализирующего вектора шифра.

Список параметров

cipher_algo

Метод шифрования. Список потенциальных значений можно получить с помощью 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


Получает длину ключа шифрования

  • « openssl_cipher_iv_length
  • openssl_cms_decrypt »
  • PHP Manual
  • Функции OpenSSL
  • Получает длину ключа шифрования

openssl_cipher_key_length

(PHP 8 >= 8.2.0)

openssl_cipher_key_length — Получает длину ключа шифрования

Описание

openssl_cipher_key_length(string $cipher_algo): int|false

Получает длину ключа шифрования.

Список параметров

cipher_algo

Метод шифрования, список возможных значений смотрите в описании функции openssl_get_cipher_methods().

Возвращаемые значения

Возвращает длину шифра в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если алгоритм шифрования неизвестен.

Примеры

Пример #1 Пример использования openssl_cipher_key_length()

<?php
$method = 'AES-128-CBC';

var_dump(openssl_cipher_key_length($method));
?>

Результатом выполнения данного примера будет что-то подобное:

int(16)


Расшифровывает CMS-сообщение

  • « openssl_cipher_key_length
  • openssl_cms_encrypt »
  • PHP Manual
  • Функции OpenSSL
  • Расшифровывает CMS-сообщение

openssl_cms_decrypt

(PHP 8)

openssl_cms_decrypt — Расшифровывает CMS-сообщение

Описание

openssl_cms_decrypt(
string $input_filename,
string $output_filename,
OpenSSLCertificate|string $certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key = null,
int $encoding = OPENSSL_ENCODING_SMIME
): bool

Расшифровывает CMS-сообщение.

Список параметров

input_filename

Имя файла, содержащего зашифрованное содержимое.

output_filename

Имя файла для хранения расшифрованного содержимого.

certificate

Имя файла, содержащего сертификат получателя.

private_key

Имя файла, содержащего ключ PKCS#8.

encoding

Кодировка входного файла. OPENSSL_ENCODING_SMIME, OPENSSL_ENCODING_DER или OPENSSL_ENCODING_PEM.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Зашифровывает CMS-сообщение

  • « openssl_cms_decrypt
  • openssl_cms_read »
  • PHP Manual
  • Функции OpenSSL
  • Зашифровывает CMS-сообщение

openssl_cms_encrypt

(PHP 8)

openssl_cms_encrypt — Зашифровывает CMS-сообщение

Описание

openssl_cms_encrypt(
string $input_filename,
string $output_filename,
OpenSSLCertificate|array|string $certificate,
?array $headers,
int $flags = 0,
int $encoding = OPENSSL_ENCODING_SMIME,
int $cipher_algo = OPENSSL_CIPHER_AES_128_CBC
): bool

Шифрует содержимое для одного или нескольких получателей на основе переданных ему сертификатов.

Список параметров

input_filename

Файл, который нужно зашифровать.

output_filename

Выходной файл.

certificate

Получатели, для которых производится шифрование.

headers

Заголовки, которые будут включены при использовании S/MIME.

flags

Флаги, передаваемые CMS_sign.

encoding

Кодировка для вывода. OPENSSL_ENCODING_SMIME, OPENSSL_ENCODING_DER или OPENSSL_ENCODING_PEM.

cipher_algo

Используемый алгоритм шифрования.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Алгоритм шифрования по умолчанию (cipher_algo) теперь AES-128-CBC (OPENSSL_CIPHER_AES_128_CBC). Ранее использовался алгоритм PKCS7/CMS (OPENSSL_CIPHER_RC2_40).


Экспортирует файл CMS в массив сертификатов PEM

  • « openssl_cms_encrypt
  • openssl_cms_sign »
  • PHP Manual
  • Функции OpenSSL
  • Экспортирует файл CMS в массив сертификатов PEM

openssl_cms_read

(PHP 8)

openssl_cms_read — Экспортирует файл CMS в массив сертификатов PEM

Описание

openssl_cms_read(string $input_filename, array &$certificates): bool

Работает аналогично openssl_pkcs7_read().

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

input_filename

certificates

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Подписывает файл

  • « openssl_cms_read
  • openssl_cms_verify »
  • PHP Manual
  • Функции OpenSSL
  • Подписывает файл

openssl_cms_sign

(PHP 8)

openssl_cms_sign — Подписывает файл

Описание

openssl_cms_sign(
string $input_filename,
string $output_filename,
OpenSSLCertificate|string $certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
?array $headers,
int $flags = 0,
int $encoding = OPENSSL_ENCODING_SMIME,
?string $untrusted_certificates_filename = null
): bool

Подписывает файл сертификатом X.509 и ключом.

Список параметров

input_filename

Имя файла для подписи.

output_filename

Имя файла для хранения результатов.

certificate

Сертификат подписи. Смотрите параметры ключа/сертификата для получения списка допустимых значений.

private_key

Ключ, связанный с certificate. Смотрите параметры ключа/сертификата для получения списка допустимых значений.

headers

Массив заголовков для включения в вывод S/MIME.

flags

Флаги, передаваемые cms_sign().

encoding

Кодировка выходного файла. OPENSSL_ENCODING_SMIME, OPENSSL_ENCODING_DER или OPENSSL_ENCODING_PEM.

untrusted_certificates_filename

Промежуточные сертификаты, включаемые в подпись.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_cms_sign()

<?php
openssl_cms_sign('input.txt', 'output.txt', 'file://cert.pem', 'file://privkey.pem', null, OPENSSL_CMS_BINARY, OPENSSL_ENCODING_DER, 'chain.pem');
?>


Проверяет подпись CMS

  • « openssl_cms_sign
  • openssl_csr_export_to_file »
  • PHP Manual
  • Функции OpenSSL
  • Проверяет подпись CMS

openssl_cms_verify

(PHP 8)

openssl_cms_verify — Проверяет подпись CMS

Описание

openssl_cms_verify(
string $input_filename,
int $flags = 0,
?string $certificates = null,
array $ca_info = [],
?string $untrusted_certificates_filename = null,
?string $content = null,
?string $pk7 = null,
?string $sigfile = null,
int $encoding = OPENSSL_ENCODING_SMIME
): bool

Проверяет подпись CMS, прикреплённую или отсоединённую, с указанной кодировкой.

Список параметров

input_filename

Входной файл.

flags

Флаги, передаваемые cms_verify().

certificates

Файл с сертификатом подписавшего и, по выбору, промежуточными сертификатами.

ca_info

Массив, содержащий самозаверенные сертификаты центра сертификации.

untrusted_certificates_filename

Файл, содержащий дополнительные промежуточные сертификаты.

content

Файл, указывающий на содержимое, когда подписи отсоединены.

pk7

sigfile

Файл, в который нужно сохранить подпись.

encoding

Кодировка входного файла. OPENSSL_ENCODING_SMIME, OPENSSL_ENCODING_DER или OPENSSL_ENCODING_PEM.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Экспортирует CSR в файл

  • « openssl_cms_verify
  • openssl_csr_export »
  • PHP Manual
  • Функции OpenSSL
  • Экспортирует CSR в файл

openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_csr_export_to_file — Экспортирует CSR в файл

Описание

openssl_csr_export_to_file(OpenSSLCertificateSigningRequest|string $csr, string $output_filename, bool $no_text = true): bool

openssl_csr_export_to_file() записывает запрос на подпись сертификата csr в формате PEM в файл output_filename.

Список параметров

csr

Для получения списка допустимых значений смотрите параметры CSR.

output_filename

Путь к файлу.

no_text

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в false, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является true.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.

Примеры

Пример #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, PHP 8)

openssl_csr_export — Экспортирует CSR в виде строки

Описание

openssl_csr_export(OpenSSLCertificateSigningRequest|string $csr, string &$output, bool $no_text = true): bool

openssl_csr_export() записывает запрос на подпись сертификата csr в формате PEM в переменную output, которая передаётся по ссылке.

Список параметров

csr

Для получения списка допустимых значений смотрите параметры CSR.

output

В случае успешного выполнения, в этой переменной будет сохранён CSR в формате PEM.

no_text

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в false, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является true.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.

Примеры

Пример #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, PHP 8)

openssl_csr_get_public_key — Возвращает открытый ключ CSR

Описание

openssl_csr_get_public_key(OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true): OpenSSLAsymmetricKey|false

openssl_csr_get_public_key() извлекает открытый ключ из csr и подготавливает его для использования в других функциях.

Список параметров

csr

Для получения списка допустимых значений смотрите параметры CSR.

short_names
Внимание

Этот параметр игнорируется

Возвращаемые значения

Возвращает OpenSSLAsymmetricKey в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения возвращает экземпляр OpenSSLAsymmetricKey; ранее возвращался ресурс (resource) типа OpenSSL key.
8.0.0 | csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.

Примеры

Пример #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, PHP 8)

openssl_csr_get_subject — Возвращает субъект CSR

Описание

openssl_csr_get_subject(OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true): array|false

openssl_csr_get_subject() возвращает известную об субъекте информацию закодированную в csr, включая поля commonName (CN), organizationName (O), countryName (C) и т.д.

Список параметров

csr

Для получения списка допустимых значений смотрите параметры CSR.

short_names

shortnames определяет, как данные индексируются в массиве, если shortnames задан как true (по умолчанию), то поля будут индексированы именами в коротком формате, в противном случае будут использованы длинные имена. Например, CN - короткое имя для commonName.

Возвращаемые значения

Возвращает ассоциативный массив с описанием субъекта или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.

Примеры

Пример #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, PHP 8)

openssl_csr_new — Генерирует CSR

Описание

openssl_csr_new(
array $distinguished_names,
OpenSSLAsymmetricKey &$private_key,
?array $options = null,
?array $extra_attributes = null
): OpenSSLCertificateSigningRequest|false

openssl_csr_new() создаёт новый CSR основываясь на информации указанной в параметре distinguished_names.

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

distinguished_names

Уникальное имя (Distinguished Name) или поля субъекта для использования в сертификате.

private_key

Параметр private_key должен быть задан закрытым ключом ранее сгенерированным функцией openssl_pkey_new() (или полученный с помощью любой другой функции семейства openssl_pkey). Соответствующая открытая часть ключа будет использована для подписания CSR.

options

По умолчанию для инициализации запроса используется информация из вашего системного openssl.conf. Вы можете указать секцию конфигурационного файла путём задания ключа config_section_section в options. Также вы можете задать альтернативный файл конфигурации openssl путём задания ключа config значением пути до него. Соответствие ключей, указанных в options ключам из openssl.conf представлено ниже.

Переопределение конфигурации
Ключ options | Тип | Соответствие в 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 | int | default_bits | Задаёт, сколько бит должно использоваться для генерации закрытого ключа
private_key_type | int | none | Задаёт тип создаваемого закрытого ключа. Одна из констант: OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_RSA или OPENSSL_KEYTYPE_EC. По умолчанию OPENSSL_KEYTYPE_RSA.
encrypt_key | bool | encrypt_key | Должен ли шифроваться (паролем) экспортируемый ключ?
encrypt_key_cipher | int | none | Одна из констант шифров.
curve_name | string | none | Одно из openssl_get_curve_names().
config | string | N/A | Путь до альтернативного файла конфигурации openssl.conf.

extra_attributes

extra_attributes используется для указания дополнительных опций для CSR. И distinguished_names, и extra_attributes являются ассоциативными массивами, ключи которых преобразуются в OI-ы и применяются к соответствующим частям запроса.

Возвращаемые значения

Возвращает CSR или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey; ранее принимался ресурс (resource) типа OpenSSL key.
7.1.0 | Параметр options теперь поддерживает 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, PHP 8)

openssl_csr_sign — Подписать CSR с помощью другого сертификата (или им же) и создать сертификат

Описание

openssl_csr_sign(
OpenSSLCertificateSigningRequest|string $csr,
OpenSSLCertificate|string|null $ca_certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
int $days,
?array $options = null,
int $serial = 0
): OpenSSLCertificate|false

openssl_csr_sign() создаёт сертификат x509 из заданного CSR.

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

csr

Созданный с помощью openssl_csr_new() CSR. Также может быть путём на кодированный в PEM CSR, если задано как file://path/to/csr или экспортированной строкой, созданной с помощью openssl_csr_export().

ca_certificate

Создаваемый сертификат будет подписан ca_certificate. Если ca_certificate задан как null, то будет сгенерирован самоподписанный сертификат.

private_key

private_key - секретный ключ, соответствующий ca_certificate.

days

days - время жизни создаваемого сертификата, в днях.

options

Можно тонко настроить подпись CSR с помощью options. Подробности смотрите в описании функции openssl_csr_new(), в разделе посвящённом параметру options.

serial

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

Возвращаемые значения

Возвращает OpenSSLCertificate в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | On success, this function returns an OpenSSLCertificate instance now; previously, a resource of type OpenSSL X.509 was returned.
8.0.0 | csr теперь принимает экземпляр OpenSSLCertificateSigningRequest; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
8.0.0 | ca_certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.

Примеры

Пример #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, PHP 8)

openssl_decrypt — Расшифровывает данные

Описание

openssl_decrypt(
string $data,
string $cipher_algo,
string $passphrase,
int $options = 0,
string $iv = "",
?string $tag = null,
string $aad = ""
): string|false

Берет необработанную или кодированную в base64 строку и расшифровывает её с помощью заданного метода и ключа.

Список параметров

data

Данные для расшифровки.

cipher_algo

Метод шифрования. Список доступных методов можно получить с помощью функции openssl_get_cipher_methods().

passphrase

Ключ.

options

options можно задать одной из констант: OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING.

iv

Ненулевой инициализирующий вектор.

tag

Тег аутентификации в режиме шифрования AEAD. Если он некорректен, то аутентификация завершится неудачей и функция вернёт false.

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

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

aad

Дополнительные аутентифицированные данные.

Возвращаемые значения

Расшифрованная строка или false в случае возникновения ошибки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если в параметр cipher_algo передан неизвестный алгоритм шифрования.

Выдаёт ошибку уровня E_WARNING, если в параметр iv передано пустое значение.

Список изменений

Версия | Описание
8.1.0 | Параметр tag теперь допускает значение null.
7.1.0 | Добавлены параметры tag и aad.

Смотрите также

  • openssl_encrypt() - Шифрует данные


Вычисляет общий секретный ключ для значения удалённого открытого ключа DH и локального ключа DH

  • « openssl_decrypt
  • openssl_digest »
  • PHP Manual
  • Функции OpenSSL
  • Вычисляет общий секретный ключ для значения удалённого открытого ключа DH и локального ключа DH

openssl_dh_compute_key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_dh_compute_key — Вычисляет общий секретный ключ для значения удалённого открытого ключа DH и локального ключа DH

Описание

openssl_dh_compute_key(string $public_key, OpenSSLAsymmetricKey $private_key): string|false

Общий секретный ключ, возвращаемый openssl_dh_compute_key() часто используется в качестве ключа шифрования для секретного взаимодействия с удалённой стороной (remote party). Это известно как алгоритм обмена ключами алгоритма Диффи-Хеллмана.

Замечание: ECDH поддерживается только начиная с PHP 8.1.0 и OpenSSL 3.0.0.

Список параметров

public_key

Открытый ключ DH удалённой стороны.

private_key

Локальный закрытый ключ DH, соответствующий открытому ключу для обмена с удалённой стороной.

Возвращаемые значения

Возвращает общий секретный ключ или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.

Примеры

Пример #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, PHP 8)

openssl_digest — Вычисление дайджеста

Описание

openssl_digest(string $data, string $digest_algo, bool $binary = false): string|false

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

Список параметров

data

Данные.

digest_algo

Метод вычисления дайджеста, например "sha256". Список доступных методов можно получить с помощью openssl_get_md_methods().

binary

Если true, то будет возвращена необработанная строка. Иначе будет возвращена строка шестнадцатеричных чисел.

Возвращаемые значения

Возвращает вычисленный дайджест или false в случае возникновения ошибки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если в параметр digest_algo передан неизвестный метод.

Смотрите также

  • openssl_get_md_methods() - Получить список доступных методов хеширования


Шифрует данные

  • « openssl_digest
  • openssl_error_string »
  • PHP Manual
  • Функции OpenSSL
  • Шифрует данные

openssl_encrypt

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_encrypt — Шифрует данные

Описание

openssl_encrypt(
string $data,
string $cipher_algo,
string $passphrase,
int $options = 0,
string $iv = "",
string &$tag = null,
string $aad = "",
int $tag_length = 16
): string|false

Шифрует данные с заданным шифром и ключом и возвращает необработанную строку, либо строку, закодированную в base64

Список параметров

data

Данные для шифрования.

cipher_algo

Метод шифрования. Список доступных методов можно получить с помощью функции openssl_get_cipher_methods().

passphrase

Кодовая фраза. Если кодовая фраза укорочена, чем ожидалось, она автоматически дополняется символами NUL; если кодовая фраза длиннее, чем ожидалось, она автоматически усекается.

options

options можно задать одной из констант: OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING.

iv

Ненулевой инициализирующий вектор.

tag

Тег аутентификации, передаваемый по ссылке, в режиме шифрования AEAD (GCM или CCM).

aad

Дополнительные аутентифицированные данные.

tag_length

Длина параметра tag. Для режима GCM должно быть от 4 до 16.

Возвращаемые значения

Возвращает зашифрованную строку или false в случае возникновения ошибки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если в параметр cipher_algo передан неизвестный алгоритм шифрования.

Выдаёт ошибку уровня E_WARNING, если в параметр iv передано пустое значение.

Список изменений

Версия | Описание
7.1.0 | Добавлены параметры tag, aad и tag_length.

Примеры

Пример #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 7.1

<?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))// сравнение, не подверженное атаке по времени
{
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, PHP 8)

openssl_error_string — Возвращает сообщение об ошибке openSSL

Описание

openssl_error_string(): string|false

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, PHP 8)

openssl_free_key — Высвобождение ресурса ключа

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

openssl_free_key(OpenSSLAsymmetricKey $key): void

openssl_free_key() удаляет ключ, связанный с заданным идентификатором key из памяти.

Список параметров

key

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | Функция устарела, так как больше не имеет смысла.
8.0.0 | key теперь принимает OpenSSLAsymmetricKey; ранее принимала ресурс (resource) типа OpenSSL key.


Получить доступные месторасположения сертификатов

  • « openssl_free_key
  • openssl_get_cipher_methods »
  • PHP Manual
  • Функции OpenSSL
  • Получить доступные месторасположения сертификатов

openssl_get_cert_locations

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_get_cert_locations — Получить доступные месторасположения сертификатов

Описание

openssl_get_cert_locations(): 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, PHP 8)

openssl_get_cipher_methods — Получить список доступных алгоритмов шифрования

Описание

openssl_get_cipher_methods(bool $aliases = false): array

Возвращает список доступных алгоритмов шифрования.

Список параметров

aliases

Если хотите включить псевдонимы шифров в возвращаемый массив, то установите этот параметр в значение true.

Возвращаемые значения

Массив (array) доступных методов шифрования. Обратите внимание, что до OpenSSL 1.1.1 методы шифрования возвращались в верхнем и нижнем регистре; с OpenSSL 1.1.1 возвращаются только строчные варианты.

Примеры

Пример #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-cbc-hmac-sha1
    [2] => aes-128-cbc-hmac-sha256
    [3] => aes-128-ccm
    [4] => aes-128-cfb
    [5] => aes-128-cfb1
    [6] => aes-128-cfb8
    [7] => aes-128-ctr
    [9] => aes-128-gcm
    [10] => aes-128-ocb
    [11] => aes-128-ofb
    [12] => aes-128-xts
    [13] => aes-192-cbc
    [14] => aes-192-ccm
    [15] => aes-192-cfb
    [16] => aes-192-cfb1
    [17] => aes-192-cfb8
    [18] => aes-192-ctr
    [20] => aes-192-gcm
    [21] => aes-192-ocb
    [22] => aes-192-ofb
    [23] => aes-256-cbc
    [24] => aes-256-cbc-hmac-sha1
    [25] => aes-256-cbc-hmac-sha256
    [26] => aes-256-ccm
    [27] => aes-256-cfb
    [28] => aes-256-cfb1
    [29] => aes-256-cfb8
    [30] => aes-256-ctr
    [32] => aes-256-gcm
    [33] => aes-256-ocb
    [34] => aes-256-ofb
    [35] => aes-256-xts
    [36] => aria-128-cbc
    [37] => aria-128-ccm
    [38] => aria-128-cfb
    [39] => aria-128-cfb1
    [40] => aria-128-cfb8
    [41] => aria-128-ctr
    [43] => aria-128-gcm
    [44] => aria-128-ofb
    [45] => aria-192-cbc
    [46] => aria-192-ccm
    [47] => aria-192-cfb
    [48] => aria-192-cfb1
    [49] => aria-192-cfb8
    [50] => aria-192-ctr
    [52] => aria-192-gcm
    [53] => aria-192-ofb
    [54] => aria-256-cbc
    [55] => aria-256-ccm
    [56] => aria-256-cfb
    [57] => aria-256-cfb1
    [58] => aria-256-cfb8
    [59] => aria-256-ctr
    [61] => aria-256-gcm
    [62] => aria-256-ofb
    [63] => bf-cbc
    [64] => bf-cfb
    [66] => bf-ofb
    [67] => camellia-128-cbc
    [68] => camellia-128-cfb
    [69] => camellia-128-cfb1
    [70] => camellia-128-cfb8
    [71] => camellia-128-ctr
    [73] => camellia-128-ofb
    [74] => camellia-192-cbc
    [75] => camellia-192-cfb
    [76] => camellia-192-cfb1
    [77] => camellia-192-cfb8
    [78] => camellia-192-ctr
    [80] => camellia-192-ofb
    [81] => camellia-256-cbc
    [82] => camellia-256-cfb
    [83] => camellia-256-cfb1
    [84] => camellia-256-cfb8
    [85] => camellia-256-ctr
    [87] => camellia-256-ofb
    [88] => cast5-cbc
    [89] => cast5-cfb
    [91] => cast5-ofb
    [92] => chacha20
    [93] => chacha20-poly1305
    [111] => id-aes128-CCM
    [112] => id-aes128-GCM
    [113] => id-aes128-wrap
    [114] => id-aes128-wrap-pad
    [115] => id-aes192-CCM
    [116] => id-aes192-GCM
    [117] => id-aes192-wrap
    [118] => id-aes192-wrap-pad
    [119] => id-aes256-CCM
    [120] => id-aes256-GCM
    [121] => id-aes256-wrap
    [122] => id-aes256-wrap-pad
    [124] => idea-cbc
    [125] => idea-cfb
    [127] => idea-ofb
    [137] => seed-cbc
    [138] => seed-cfb
    [140] => seed-ofb
    [141] => sm4-cbc
    [142] => sm4-cfb
    [143] => sm4-ctr
    [145] => sm4-ofb
)
Array
(
    [36] => aes128
    [37] => aes128-wrap
    [38] => aes192
    [39] => aes192-wrap
    [40] => aes256
    [41] => aes256-wrap
    [69] => aria128
    [70] => aria192
    [71] => aria256
    [72] => bf
    [77] => blowfish
    [99] => camellia128
    [100] => camellia192
    [101] => camellia256
    [102] => cast
    [103] => cast-cbc
    [146] => idea
    [164] => seed
    [169] => sm4
)

Смотрите также

  • 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, PHP 8)

openssl_get_curve_names — Список доступных имён кривых для ECC

Описание

openssl_get_curve_names(): array|false

Возвращает список доступных имён кривых для использования в эллиптической криптографии (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 бит.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив с доступными именами кривых или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

openssl_open — Открыть запечатанные данные

Описание

openssl_open(
string $data,
string &$output,
string $encrypted_key,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string $cipher_algo,
?string $iv = null
): bool

openssl_open() открывает (дешифрует) data, используя секретный ключ, связанный с идентификатором private_key и ключ обёртки encrypted_key, и заполняет output расшифрованными данными. Ключ обёртки создаётся при запечатывании данных и может использоваться только с одним единственным секретным ключом. Более подробно можно прочитать на странице описания функции openssl_seal().

Список параметров

data

output

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

encrypted_key

private_key

cipher_algo

Метод шифрования.

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

Значение по умолчанию ('RC4') считается небезопасным. Настоятельно рекомендуется явно указывать метод безопасного шифрования.

iv

Инициализирующий вектор.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509 CSR.
8.0.0 | cipher_algo больше не является необязательным параметром.

Примеры

Пример #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, PHP 8)

openssl_pbkdf2 — Генерирует строки PKCS5 v2 PBKDF2

Описание

openssl_pbkdf2(
string $password,
string $salt,
int $key_length,
int $iterations,
string $digest_algo = "sha1"
): string|false

openssl_pbkdf2() вычисляет PBKDF2 (Password-Based Key Derivation Function 2), функцию деривации ключа, определённую в PKCS5 v2.

Список параметров

password

Пароль, из которого будет сгенерирован ключ.

salt

PBKDF2 рекомендует использовать криптографическую соль как минимум 64 бита (8 байт) длиной.

key_length

Длина генерируемого ключа.

iterations

Количество итераций. » NIST рекомендует как минимум 10,000.

digest_algo

Опциональный алгоритм хеширования полученный из openssl_get_md_methods(). По умолчанию SHA-1.

Возвращаемые значения

Возвращает необработанную бинарную строку или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_pbkdf2()

<?php
$password = 'password';
$salt = openssl_random_pseudo_bytes(16);
$keyLength = 20;
$iterations = 600000;
$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, PHP 8)

openssl_pkcs12_export_to_file — Экспортирует в совместимый с PKCS#12 файл хранилища сертификатов

Описание

openssl_pkcs12_export_to_file(
OpenSSLCertificate|string $certificate,
string $output_filename,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string $passphrase,
array $options = []
): bool

openssl_pkcs12_export_to_file() сохраняет certificate в файл output_filename в формате PKCS#12.

Список параметров

x509

Для списка корректных значений смотрите Параметры ключей/сертификатов.

output_filename

Путь до файла.

private_key

Закрытый компонент ключа файла PKCS#12. Допустимые значения смотрите Параметры закрытого/открытого ключа.

passphrase

Пароль для разблокировки файла PKCS#12.

options

Массив опций. Не описанные здесь ключи будут проигнорированы.

Ключ | Описание
"extracerts" | массив дополнительных сертификатов или один сертификат для включения в файл PKCS#12.
"friendly_name" | строка для использования сертификатом и ключом

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.


Экспортирует совместимый с 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, PHP 8)

openssl_pkcs12_export — Экспортирует совместимый с PKCS#12 файл хранилища сертификатов в переменную

Описание

openssl_pkcs12_export(
OpenSSLCertificate|string $certificate,
string &$output,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string $passphrase,
array $options = []
): bool

openssl_pkcs12_export() сохраняет x509 в переменную out в формате PKCS#12.

Список параметров

x509

Для списка корректных значений смотрите Параметры ключей/сертификатов.

output

В случае успешного выполнения будет содержать PKCS#12.

private_key

Компонент закрытого ключа файла PKCS#12. Список допустимых значений смотрите на странице параметров открытого/закрытого ключа.

passphrase

Пароль для шифрования файла PKCS#12.

options

Массив опций. Не описанные здесь ключи будут проигнорированы.

Ключ | Описание
"extracerts" | массив дополнительных сертификатов или один сертификат для включения в файл PKCS#12.
"friendly_name" | строка для использования сертификатом и ключом

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.


Разбирает хранилище сертификатов PKCS#12 в массив

  • « openssl_pkcs12_export
  • openssl_pkcs7_decrypt »
  • PHP Manual
  • Функции OpenSSL
  • Разбирает хранилище сертификатов PKCS#12 в массив

openssl_pkcs12_read

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

openssl_pkcs12_read — Разбирает хранилище сертификатов PKCS#12 в массив

Описание

openssl_pkcs12_read(string $pkcs12, array &$certificates, string $passphrase): bool

openssl_pkcs12_read() разбирает хранилище сертификатов PKCS#12, заданное в pkcs12 и помещает в массив certificates.

Список параметров

pkcs12

Содержимое хранилища сертификатов, а не его имя файла.

certificates

В случае успешного выполнения будет содержать данные хранилища сертификата (Certificate Store Data).

passphrase

Пароль для расшифровки файла 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, PHP 8)

openssl_pkcs7_decrypt — Расшифровать сообщение, зашифрованное S/MIME

Описание

openssl_pkcs7_decrypt(
string $input_filename,
string $output_filename,
OpenSSLCertificate|string $certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key = null
): bool

Расшифровывает сообщение, зашифрованное S/MIME, содержащееся в файле input_filename, с использованием сертификата certificate и соответствующего закрытого ключа private_key.

Список параметров

input_filename

output_filename

Расшифрованное сообщение будет записано в файл output_filename.

certificate

private_key

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509 CSR.

Примеры

Пример #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, PHP 8)

openssl_pkcs7_encrypt — Шифрует сообщение S/MIME

Описание

openssl_pkcs7_encrypt(
string $input_filename,
string $output_filename,
OpenSSLCertificate|array|string $certificate,
?array $headers,
int $flags = 0,
int $cipher_algo = OPENSSL_CIPHER_AES_128_CBC
): bool

openssl_pkcs7_encrypt() читает сообщение из файла input_filename, шифрует его с помощью 40-битного RC2 шифра таким образом, что расшифровать его могут только получатели, указанными в certificate.

Список параметров

input_filename

output_filename

certificate

Массив, либо единичный сертификат X.509.

headers

headers задаётся массивом заголовков, которые будут добавлены в начало сообщения перед шифрованием.

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

flags

flags используется для настройки процесса шифрования. Смотрите Константы PKCS7.

cipher_algo

Одна из констант шифров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Алгоритм шифрования по умолчанию (cipher_algo) теперь AES-128-CBC (OPENSSL_CIPHER_AES_128_CBC). Ранее использовался алгоритм PKCS7/CMS (OPENSSL_CIPHER_RC2_40).
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.

Примеры

Пример #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, PHP 8)

openssl_pkcs7_read — Экспортировать файл PKCS7 в массив сертификатов PEM

Описание

openssl_pkcs7_read(string $data, array &$certificates): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Строка данных, которые вы хотите проанализировать (формат p7b).

certificates

Массив сертификатов PEM из входных данных p7b.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Получение массива PEM из файла P7B

<?php

$file = 'certs.p7b';

$f = file_get_contents($file);
$p7 = array();
$r = openssl_pkcs7_read($f, $p7);

if ($r === false) {
printf("ОШИБКА: %s не является корректным файлом p7b".PHP_EOL, $file);
for($e = openssl_error_string(), $i = 0; $e; $e = openssl_error_string(), $i++)
printf("SSL l%d: %s".PHP_EOL, $i, $e);
exit(1);
}

print_r($p7);
?>

Смотрите также

  • openssl_csr_sign() - Подписать CSR с помощью другого сертификата (или им же) и создать сертификат


Подписать сообщение 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, PHP 8)

openssl_pkcs7_sign — Подписать сообщение S/MIME

Описание

openssl_pkcs7_sign(
string $input_filename,
string $output_filename,
OpenSSLCertificate|string $certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
?array $headers,
int $flags = PKCS7_DETACHED,
?string $untrusted_certificates_filename = null
): bool

openssl_pkcs7_sign() берет содержимое файла input_filename и подписывает его с использованием сертификата certificate и закрытого ключа private_key.

Список параметров

input_filename

Файл, который нужно подписать.

output_filename

Файл, в который будет записана цифровая подпись.

certificate

Сертификат X.509, который будет использован для подписи input_filename. Смотрите параметры ключа/сертификата.

private_key

private_key задаётся секретным ключом, соответствующим сертификату (certificate). Смотрите параметры открытого/секретного ключа.

headers

headers задаётся массивом заголовков, которые будут добавлены в начало данных после подписания. (смотрите openssl_pkcs7_encrypt() для получения дополнительной информации о формате этого параметра).

flags

flags используется для настройки вывода. Смотрите константы PKCS7.

untrusted_certificates_filename

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

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509 CSR.
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key or OpenSSL X.509 CSR.

Примеры

Пример #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_derive »
  • PHP Manual
  • Функции OpenSSL
  • Проверить подпись сообщения S/MIME

openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_pkcs7_verify — Проверить подпись сообщения S/MIME

Описание

openssl_pkcs7_verify(
string $input_filename,
int $flags,
?string $signers_certificates_filename = null,
array $ca_info = [],
?string $untrusted_certificates_filename = null,
?string $content = null,
?string $output_filename = null
): bool|int

openssl_pkcs7_verify() читает S/MIME сообщение из файла и проверяет его подпись.

Список параметров

input_filename

Путь к файлу с сообщением.

flags

flags можно использовать для модификации процесса проверки. Более подробно смотрите константы PKCS7.

signers_certificates_filename

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

ca_info

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

untrusted_certificates_filename

Если задан параметр untrusted_certificates_filename, в нем должно содержаться имя файла, содержащего набор недоверенных сертификатов CA.

content

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

output_filename

Возвращаемые значения

Возвращает true, если проверка успешна, false, если нет и -1 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | signers_certificates_filename, untrusted_certificates_filename, content и output_filename теперь допускают значение null.
7.2.0 | Добавлен параметр output_filename.

Примечания

Замечание: Как указано в RFC 2045, длина параметра input_filename не должна быть длиннее 76 символов.


Вычисляет общий секрет для открытого значения удалённого и локального ключа DH или ECDH

  • « openssl_pkcs7_verify
  • openssl_pkey_export_to_file »
  • PHP Manual
  • Функции OpenSSL
  • Вычисляет общий секрет для открытого значения удалённого и локального ключа DH или ECDH

openssl_pkey_derive

(PHP 7 >= 7.3.0, PHP 8)

openssl_pkey_derive — Вычисляет общий секрет для открытого значения удалённого и локального ключа DH или ECDH

Описание

openssl_pkey_derive(OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key, OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key, int $key_length = 0): string|false

openssl_pkey_derive() принимает набор из public_key и private_key и порождает общий секрет для ключей DH или EC.

Список параметров

public_key

Открытый ключ для вывода. Список допустимых значений смотрите в разделе Параметры ключа/сертификата.

private_key

Закрытый ключ для вывода. Список допустимых значений смотрите в разделе Параметры ключа/сертификата.

key_length

Устанавливает желаемую длину производимого секрета, если значение не равно нулю.

Возвращаемые значения

Произведённый секрет в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования openssl_pkey_derive()

<?php
// Загрузка закрытого ключа
$priv = openssl_pkey_get_private("-----BEGIN PRIVATE KEY-----
MIICJgIBADCCARcGCSqGSIb3DQEDATCCAQgCggEBAJLxRCaZ933uW+AXmabHFDDy
upojBIRlbmQLJZfigDaSA1f9YOTsIv+WwVFTX/J1mtCyx9uBcz0Nt2kmVwxWuc2f
VtCEMPsmLsVXX7xRUFLpyX1Y1IYGBVXQOoOvLWYQjpZgnx47Pkh1Ok1+smffztfC
0DCNt4KorWrbsPcmqBejXHN79KvWFjZmXOksRiNu/Bn76RiqvofC4z8Ri3kHXQG2
197JGZzzFXHadGC3xbkg8UxsNbYhVMKbm0iANfafUH7/hoS9UjAVQYtvwe7YNiW/
HnyfVCrKwcc7sadd8Iphh+3lf5P1AhaQEAMytanrzq9RDXKBxuvpSJifRYasZYsC
AQIEggEEAoIBAGwAYC2E81Y1U2Aox0U7u1+vBcbht/OO87tutMvc4NTLf6NLPHsW
cPqBixs+3rSn4fADzAIvdLBmogjtiIZoB6qyHrllF/2xwTVGEeYaZIupQH3bMK2b
6eUvnpuu4Ytksiz6VpXBBRMrIsj3frM+zUtnq8vKUr+TbjV2qyKR8l3eNDwzqz30
dlbKh9kIhZafclHfRVfyp+fVSKPfgrRAcLUgAbsVjOjPeJ90xQ4DTMZ6vjiv6tHM
hkSjJIcGhRtSBzVF/cT38GyCeTmiIA/dRz2d70lWrqDQCdp9ArijgnpjNKAAulSY
CirnMsGZTDGmLOHg4xOZ5FEAzZI2sFNLlcw=
-----END PRIVATE KEY-----
");

// Загрузка открытого ключа
$pub = openssl_pkey_get_public("-----BEGIN PUBLIC KEY-----
MIICJDCCARcGCSqGSIb3DQEDATCCAQgCggEBAJLxRCaZ933uW+AXmabHFDDyupoj
BIRlbmQLJZfigDaSA1f9YOTsIv+WwVFTX/J1mtCyx9uBcz0Nt2kmVwxWuc2fVtCE
MPsmLsVXX7xRUFLpyX1Y1IYGBVXQOoOvLWYQjpZgnx47Pkh1Ok1+smffztfC0DCN
t4KorWrbsPcmqBejXHN79KvWFjZmXOksRiNu/Bn76RiqvofC4z8Ri3kHXQG2197J
GZzzFXHadGC3xbkg8UxsNbYhVMKbm0iANfafUH7/hoS9UjAVQYtvwe7YNiW/Hnyf
VCrKwcc7sadd8Iphh+3lf5P1AhaQEAMytanrzq9RDXKBxuvpSJifRYasZYsCAQID
ggEFAAKCAQAiCSBpxvGgsTorxAWtcAlSmzAJnJxFgSPef0g7OjhESytnc8G2QYmx
ovMt5KVergcitztWh08hZQUdAYm4rI+zMlAFDdN8LWwBT/mGKSzRkWeprd8E7mvy
ucqC1YXCMqmIwPySvLQUB/Dl8kgau7BLAnIJm8VP+MVrn8g9gghD0qRCgPgtEaDV
vocfgnOU43rhKnIgO0cHOKtw2qybSFB8QuZrYugq4j8Bwkrzh6rdMMeyMl/ej5Aj
c0wamOzuBDtXt0T9+Fx3khHaowjCc7xJZRgZCxg43SbqMWJ9lUg94I7+LTX61Gyv
dtlkbGbtoDOnxeNnN93gwQZngGYZYciu
-----END PUBLIC KEY-----
");

// Выводит шестнадцатеричную версию произведённого ключа
echo bin2hex(openssl_pkey_derive($pub,$priv));


Записывает в файл ключ в формате PEM

  • « openssl_pkey_derive
  • openssl_pkey_export »
  • PHP Manual
  • Функции OpenSSL
  • Записывает в файл ключ в формате PEM

openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_export_to_file — Записывает в файл ключ в формате PEM

Описание

openssl_pkey_export_to_file(
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key,
string $output_filename,
?string $passphrase = null,
?array $options = null
): bool

openssl_pkey_export_to_file() записывает key в формате PEM в файл output_filename.

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

key

output_filename

Путь до файла.

passphrase

Ключ опционально защищается паролем passphrase.

options

options можно использовать для тонкой настройки процесса экспорта путём указания, либо переопределения опций конфигурационного файла openssl. Смотрите openssl_csr_new() для подробной информации о options.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.


Получает строку с ключом в формате 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, PHP 8)

openssl_pkey_export — Получает строку с ключом в формате PEM

Описание

openssl_pkey_export(
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key,
string &$output,
?string $passphrase = null,
?array $options = null
): bool

openssl_pkey_export() экспортирует key в виде строки в формате PEM и сохраняет его в output (передаётся по ссылке).

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

key

output

passphrase

Ключ опционально защищается паролем passphrase.

options

options можно использовать для тонкой настройки процесса экспорта путём указания, либо переопределения опций конфигурационного файла openssl. Смотрите описание openssl_csr_new() для подробной информации о options.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.


Освобождает ресурс закрытого ключа

  • « openssl_pkey_export
  • openssl_pkey_get_details »
  • PHP Manual
  • Функции OpenSSL
  • Освобождает ресурс закрытого ключа

openssl_pkey_free

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_free — Освобождает ресурс закрытого ключа

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

openssl_pkey_free(OpenSSLAsymmetricKey $key): void

Замечание:

Использование функции больше не имеет смысла. До PHP 8.0.0 она использовалась для закрытия ресурса.

Функция высвобождает ресурс закрытого ключа, созданный openssl_pkey_new().

Список параметров

key

Ресурс, содержащий ключ.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | Функция устарела, так как больше не имеет смысла.
8.0.0 | key теперь принимает экземпляр OpenSSLAsymmetricKey; ранее принимался ресурс (resource) типа OpenSSL key.


Получает массив с детальной информацией о ключе

  • « openssl_pkey_free
  • openssl_pkey_get_private »
  • PHP Manual
  • Функции OpenSSL
  • Получает массив с детальной информацией о ключе

openssl_pkey_get_details

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

openssl_pkey_get_details — Получает массив с детальной информацией о ключе

Описание

openssl_pkey_get_details(OpenSSLAsymmetricKey $key): array|false

Эта функция возвращает массив с детальной информацией о ключе.

Список параметров

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" | секретный ключ

Список изменений

Версия | Описание
8.0.0 | key теперь принимает экземпляр OpenSSLAsymmetricKey; ранее принимался ресурс (resource) типа OpenSSL key.


Получить закрытый ключ

  • « openssl_pkey_get_details
  • openssl_pkey_get_public »
  • PHP Manual
  • Функции OpenSSL
  • Получить закрытый ключ

openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_get_private — Получить закрытый ключ

Описание

openssl_pkey_get_private(OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key, ?string $passphrase = null): OpenSSLAsymmetricKey|false

openssl_pkey_get_private() разбирает private_key и подготавливает его к использованию в других функциях.

Список параметров

private_key

private_key может быть задан следующим образом:

  1. строка вида file://path/to/file.pem. Файл должен содержать кодированный в PEM сертификат/закрытый ключ (может содержать и то и другое).
  2. Секретный ключ в формате PEM.

passphrase

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

Возвращаемые значения

Возвращает экземпляр OpenSSLAsymmetricKey или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр OpenSSLAsymmetricKey; ранее возвращался ресурс (resource) типа OpenSSL key.
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.
8.0.0 | passphrase теперь допускает значение null.


Извлекает открытый ключ из сертификата и подготавливает его к использованию

  • « openssl_pkey_get_private
  • openssl_pkey_new »
  • PHP Manual
  • Функции OpenSSL
  • Извлекает открытый ключ из сертификата и подготавливает его к использованию

openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_get_public — Извлекает открытый ключ из сертификата и подготавливает его к использованию

Описание

openssl_pkey_get_public(OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key): OpenSSLAsymmetricKey|false

openssl_pkey_get_public() извлекает открытый ключ из public_key и подготавливает его к использованию в других функциях.

Список параметров

public_key

public_key может быть одним из:

  1. экземпляр OpenSSLAsymmetricKey
  2. строка вида file://path/to/file.pem. Файл должен содержать кодированный в PEM сертификат/публичный ключ (может содержать и то и другое).
  3. Открытый ключ в формате PEM.

Возвращаемые значения

Возвращает экземпляр OpenSSLAsymmetricKey или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр OpenSSLAsymmetricKey; ранее возвращался ресурс (resource) типа OpenSSL key.
8.0.0 | public_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.


Генерирует новый закрытый ключ

  • « openssl_pkey_get_public
  • openssl_private_decrypt »
  • PHP Manual
  • Функции OpenSSL
  • Генерирует новый закрытый ключ

openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_new — Генерирует новый закрытый ключ

Описание

openssl_pkey_new(?array $options = null): OpenSSLAsymmetricKey|false

openssl_pkey_new() создаёт новый закрытый ключ. Как получить открытую часть ключа показано в примере ниже.

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

options

Вы можете настроить параметры генерации ключа (например указать число бит) с помощью options. Смотрите описание функции openssl_csr_new() для детальной информации о options.

Возвращаемые значения

Возвращает экземпляр OpenSSLAsymmetricKey, либо false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр OpenSSLAsymmetricKey; ранее возвращался ресурс (resource) типа OpenSSL key.
7.1.0 | Добавлен ключ curve_name в option для обеспечения возможности создания EC ключей.

Примеры

Пример #1 Получить открытую часть ключа из закрытого ключа

<?php
$private_key = openssl_pkey_new();
$public_key_pem = openssl_pkey_get_details($private_key)['key'];
echo $public_key_pem;
$public_key = openssl_pkey_get_public($public_key_pem);
var_dump($public_key);
?>

Результатом выполнения данного примера будет что-то подобное:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArZFsmN2P6rx1Xt7YV95o
gcdlal0k3ryiIhFNzjwtRNNTXfEfBr6lUuaIJYQ8/XqEBX0hpcfuuF6tTRlonA3t
WLME0QFD93YVsAaXcy76YqjjqcRRodIBphAbYyyMI/lXkQAdn7kbAmr7neSOsMYJ
El9Wo4Hl4oG6e52ZnYHyqW9dxh4hX93eupR2TmcCdVf+r9xoHewP0KJYSHt7vDUX
AQlWYcQiWHIadFsmL0orr6mutlXFReoHbesgKY9/3YLOu0JfxflSjIZ2JeL1NTl1
MsmODsUwgAUrwnWKKx+eQUP5g3GnSB3dPkRh9zRVRiLNWbCugyjrf3e6DgQWrW7j
pwIDAQAB
-----END PUBLIC KEY-----
resource(5) of type (OpenSSL key)


Расшифровывает данные с помощью закрытого ключа

  • « openssl_pkey_new
  • openssl_private_encrypt »
  • PHP Manual
  • Функции OpenSSL
  • Расшифровывает данные с помощью закрытого ключа

openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_private_decrypt — Расшифровывает данные с помощью закрытого ключа

Описание

openssl_private_decrypt(
string $data,
string &$decrypted_data,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
int $padding = OPENSSL_PKCS1_PADDING
): bool

openssl_private_decrypt() расшифровывает данные data, которые ранее были зашифрованы с помощью openssl_public_encrypt() и сохраняет результат в decrypted_data.

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

Список параметров

data

decrypted_data

private_key

private_key должен быть секретным ключом, соответствующим тому, чем мы шифровали данные.

padding

padding может принимать одно из следующих значений: OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.

Смотрите также

  • 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, PHP 8)

openssl_private_encrypt — Шифрует данные секретным ключом

Описание

openssl_private_encrypt(
string $data,
string &$encrypted_data,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
int $padding = OPENSSL_PKCS1_PADDING
): bool

openssl_private_encrypt() шифрует data с помощью секретного ключа private_key и сохраняет результат в encrypted_data. Потом данные можно расшифровать с помощью openssl_public_decrypt().

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

Список параметров

data

encrypted_data

private_key

padding

padding может быть одной из констант: OPENSSL_PKCS1_PADDING, OPENSSL_NO_PADDING.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.

Смотрите также

  • 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, PHP 8)

openssl_public_decrypt — Расшифровка данных с помощью открытого ключа

Описание

openssl_public_decrypt(
string $data,
string &$decrypted_data,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key,
int $padding = OPENSSL_PKCS1_PADDING
): bool

openssl_public_decrypt() расшифровывает данные data, которые ранее были зашифрованы с помощью openssl_private_encrypt() и сохраняет результат в decrypted_data.

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

Список параметров

data

decrypted_data

public_key

public_key должен содержать соответствующий открытый ключ.

padding

padding может быть одной из констант: OPENSSL_PKCS1_PADDING, OPENSSL_NO_PADDING.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | public_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.

Смотрите также

  • 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, PHP 8)

openssl_public_encrypt — Шифрование данных открытым ключом

Описание

openssl_public_encrypt(
string $data,
string &$encrypted_data,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key,
int $padding = OPENSSL_PKCS1_PADDING
): bool

openssl_public_encrypt() шифрует data открытым ключом public_key и сохраняет в encrypted_data. Впоследствии расшифровать их можно функцией openssl_private_decrypt().

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

Список параметров

data

encrypted_data

Будет содержать результат шифрования.

public_key

Открытый ключ.

padding

padding может быть одной из констант: OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | public_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.

Смотрите также

  • 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, PHP 8)

openssl_random_pseudo_bytes — Генерирует псевдослучайную последовательность байт

Описание

openssl_random_pseudo_bytes(int $length, bool &$strong_result = null): string

Генерирует строку псевдослучайных байт длиной length.

Также, если задать необязательный параметр strong_result, который передаётся по ссылке, то в него запишется true или false, в зависимости от того, был ли использован криптографически сильный алгоритм.

Список параметров

length

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

strong_result

Если задано, то в переданную переменную будет записано true или false, в зависимости от того, был ли использован криптографически сильный алгоритм.

Возвращаемые значения

Возвращает строку случайных байт.

Ошибки

Функция openssl_random_pseudo_bytes() выбрасывает исключение Exception в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | strong_result теперь допускает значение null.

Примеры

Пример #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: 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() - Необратимое хеширование строки
  • random_int() - Получает криптографически безопасное, равномерно выбранное целое число


Запечатать (зашифровать) данные

  • « openssl_random_pseudo_bytes
  • openssl_sign »
  • PHP Manual
  • Функции OpenSSL
  • Запечатать (зашифровать) данные

openssl_seal

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

openssl_seal — Запечатать (зашифровать) данные

Описание

openssl_seal(
string $data,
string &$sealed_data,
array &$encrypted_keys,
array $public_key,
string $cipher_algo,
string &$iv = null
): int|false

openssl_seal() запечатывает (шифрует) data, используя метод cipher_algo со сгенерированным случайно секретным ключом. Ключ будет зашифрован каждым открытым ключом, указанном в массиве public_key, и каждый зашифрованный ключ будет помещён в encrypted_keys. То есть вы можете разослать запечатанные данные сразу нескольким получателям. Каждый получатель должен получить как запечатанные данные, так и зашифрованный соответствующим открытым ключом ключ для их открытия.

Список параметров

data

Запечатываемые данные.

sealed_data

Запечатанные данные.

encrypted_keys

Массив зашифрованных ключей.

public_key

Массив экземпляров OpenSSLAsymmetricKey, содержащих открытые ключи.

cipher_algo

Метод шифрования.

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

Значение по умолчанию ('RC4') считается небезопасным. Настоятельно рекомендуется явно указывать метод безопасного шифрования.

iv

Инициализирующий вектор.

Возвращаемые значения

Возвращает длину запечатанных данных или false. В случае успешного выполнения в sealed_data будут содержаться запечатанные данные, а в encrypted_keys зашифрованные ключи.

Список изменений

Версия | Описание
8.0.0 | public_key теперь принимает массив (array) экземпляров OpenSSLAsymmetricKey; ранее принимался массив (array) ресурсов (resource) типа OpenSSL key.
8.0.0 | cipher_algo больше не является необязательным параметром.
8.0.0 | iv теперь допускает значение null.

Примеры

Пример #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, PHP 8)

openssl_sign — Генерация подписи

Описание

openssl_sign(
string $data,
string &$signature,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string|int $algorithm = OPENSSL_ALGO_SHA1
): bool

openssl_sign() вычисляет подпись данных data путём генерации криптографического цифрового слепка с использованием секретного ключа private_key. Обратите внимание, что сами данные не шифруются.

Список параметров

data

Строка данных, для которых вы хотите получить отпечаток

signature

Если функция отработает успешно, то подпись будет помещена в переменную, заданную в signature.

private_key

Идентификатор ключа, типа OpenSSLAsymmetricKey, полученный из openssl_get_privatekey()

Строка, представляющая собой ключ в формате PEM.

algorithm

Целое число, определяющее алгоритм. Смотрите алгоритмы подписи.

Строка, возвращённая openssl_get_md_methods(). Например, "sha256WithRSAEncryption" или "sha384".

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.

Примеры

Пример #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, PHP 8)

openssl_spki_export_challenge — Экспорт вызова, связанного с подписанным ключом и вызовом

Описание

openssl_spki_export_challenge(string $spki): string|false

Экспорт вызова из подписанного открытого ключа и вызова.

Список параметров

spki

Корректный подписанный открытый ключ с вызовом

Возвращаемые значения

Возвращает строку вызова или false в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если в параметр spki переданы некорректные данные.

Примеры

Пример #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, PHP 8)

openssl_spki_export — Экспорт открытого ключа в формате PEM из подписанного открытого ключа с вызовом

Описание

openssl_spki_export(string $spki): string|false

Экспортирует открытый ключ в формате PEM из подписанного открытого ключа с вызовом

Список параметров

spki

Корректный открытый ключ с вызовом.

Возвращаемые значения

Возвращает открытый ключ в формате PEM или false в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING если в параметр spki переданы некорректные данные.

Примеры

Пример #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, PHP 8)

openssl_spki_new — Создание нового подписанного открытого ключа с вызовом

Описание

openssl_spki_new(OpenSSLAsymmetricKey $private_key, string $challenge, int $digest_algo = OPENSSL_ALGO_MD5): string|false

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

Список параметров

private_key

private_key задаётся секретным ключом, созданным ранее функцией openssl_pkey_new() (или полученный другим образом). Соответствующая открытая часть ключа будет использована для подписи CSR.

challenge

Вызов, связанный с SPKAC

digest_algo

Алгоритм хеширования. Смотрите openssl_get_md_method().

Возвращаемые значения

Возвращает подписанный открытый ключ со строкой вызова или false в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если указан некорректный алгоритм в digest_algo.

Список изменений

Версия | Описание
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey; ранее принимался ресурс (resource) типа OpenSSL key.

Примеры

Пример #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, PHP 8)

openssl_spki_verify — Проверяет подписанный открытый ключ и вызов

Описание

openssl_spki_verify(string $spki): bool

Проверяет подписанный открытый ключ и вызов

Список параметров

spki

Корректный подписанный открытый ключ и вызов

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если в параметр spki переданы некорректные данные.

Примеры

Пример #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, PHP 8)

openssl_verify — Сверка сигнатуры

Описание

openssl_verify(
string $data,
string $signature,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key,
string|int $algorithm = OPENSSL_ALGO_SHA1
): int|false

openssl_verify() проверяет, что подпись signature корректна для данных data и открытого ключа public_key. Открытый ключ должен соответствовать закрытому ключу, с помощью которого генерировалась подпись.

Список параметров

data

Проверяемые данные

signature

Необработанная бинарная строка, созданная функцией openssl_sign() или её аналогом

public_key

Переменная типа OpenSSLAsymmetricKey, содержащая ключ, подготовленный openssl_get_publickey()

Строка с ключом в формате PEM. Примерно такого вида -----BEGIN PUBLIC KEY----- MIIBCgK....

algorithm

Целое число, соответствующее одному из алгоритмов подписи.

Строка, возвращённая openssl_get_md_methods(), например "sha1WithRSAEncryption" или "sha512".

Возвращаемые значения

Возвращает 1, если подпись корректная, 0, если нет и -1 или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | public_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.

Примеры

Пример #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, "sha256WithRSAEncryption");

//Сверяем подпись
$ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA256);
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, PHP 8)

openssl_x509_check_private_key — Проверить, относится ли секретный ключ к сертификату

Описание

openssl_x509_check_private_key(OpenSSLCertificate|string $certificate, OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key): bool

Проверяет, что заданный private_key является секретным ключом, соответствующим сертификату certificate.

Внимание

Функция не проверяет, является ли private_key секретным ключом или нет. Он просто сравнивает открытые данные (например, экспоненту и модуль ключа RSA) и/или параметры ключа (например, параметры EC для EC-ключа) пары ключей.

То есть, если поместить в private_key соответствующий открытый ключ, то функция может вернуть true.

Список параметров

certificate

Сертификат.

private_key

Ключ.

Возвращаемые значения

Возвращает true, если private_key является ключом соответствующим сертификату certificate, или false в противном случае.

Список изменений

Версия | Описание
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.
8.0.0 | private_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.


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

  • « 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, PHP 8)

openssl_x509_checkpurpose — Проверяет, можно ли использовать сертификат для конкретных задач

Описание

openssl_x509_checkpurpose(
OpenSSLCertificate|string $certificate,
int $purpose,
array $ca_info = [],
?string $untrusted_certificates_file = null
): bool|int

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

Список параметров

certificate

Сертификат.

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 | Можно ли использовать для любых задач?
Эти опции не являются бинарной маской - можно использовать только одно значение за раз!

ca_info

ca_info должен содержать массив доверенных CA файлов/директорий, как описано на странице проверки сертификатов.

untrusted_certificates_file

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

Возвращаемые значения

Возвращает true, если сертификат можно использовать по указанному назначению, false - если нельзя и -1 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.
8.0.0 | untrusted_certificates_file теперь допускает значение null.


Экспортирует сертификат в файл

  • « openssl_x509_checkpurpose
  • openssl_x509_export »
  • PHP Manual
  • Функции OpenSSL
  • Экспортирует сертификат в файл

openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_x509_export_to_file — Экспортирует сертификат в файл

Описание

openssl_x509_export_to_file(OpenSSLCertificate|string $certificate, string $output_filename, bool $no_text = true): bool

openssl_x509_export_to_file() сохраняет сертификат certificate в файл output_filename в виде строки в формате PEM.

Список параметров

x509

Для списка корректных значений смотрите Параметры ключей/сертификатов.

output_filename

Путь к файлу.

no_text

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в false, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является true.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.


Экспортирует сертификат в строку

  • « openssl_x509_export_to_file
  • openssl_x509_fingerprint »
  • PHP Manual
  • Функции OpenSSL
  • Экспортирует сертификат в строку

openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_x509_export — Экспортирует сертификат в строку

Описание

openssl_x509_export(OpenSSLCertificate|string $certificate, string &$output, bool $no_text = true): bool

openssl_x509_export() сохраняет сертификат certificate в виде PEM строки в output.

Список параметров

x509

Для списка корректных значений смотрите Параметры ключей/сертификатов.

output

В случае успешного выполнения в этой переменной будет PEM-представление сертификата.

no_text

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в false, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является true.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.


Вычисляет отпечаток или дайджест, заданный сертификатом X.509

  • « openssl_x509_export
  • openssl_x509_free »
  • PHP Manual
  • Функции OpenSSL
  • Вычисляет отпечаток или дайджест, заданный сертификатом X.509

openssl_x509_fingerprint

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

openssl_x509_fingerprint — Вычисляет отпечаток или дайджест, заданный сертификатом X.509

Описание

openssl_x509_fingerprint(OpenSSLCertificate|string $certificate, string $digest_algo = "sha1", bool $binary = false): string|false

openssl_x509_fingerprint() возвращает дайджест certificate в виде строки.

Список параметров

x509

Для списка корректных значений смотрите Параметры ключей/сертификатов.

digest_algo

Метод хеширования. Список доступных методов можно получить с помощью openssl_get_md_methods().

binary

Если установлено как true, будут возвращены необработанные бинарные данные. Если false, то выводит строку из шестнадцатеричных чисел в нижнем регистре.

Возвращаемые значения

Возвращает отпечаток сертификата в виде строки шестнадцатеричных чисел. Если binary установлен в true, то в виде бинарных данных.

В случае возникновения ошибки возвращает false.

Список изменений

Версия | Описание
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.


Высвобождает ресурс сертификата

  • « openssl_x509_fingerprint
  • openssl_x509_parse »
  • PHP Manual
  • Функции OpenSSL
  • Высвобождает ресурс сертификата

openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_free — Высвобождает ресурс сертификата

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

openssl_x509_free(OpenSSLCertificate $certificate): void

Замечание:

Использование функции больше не имеет смысла. До PHP 8.0.0 она использовалась для закрытия ресурса.

openssl_x509_free() удаляет сертификат с идентификатором certificate из памяти.

Список параметров

certificate

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | Функция устарела, так как больше не имеет смысла.
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.


Разобрать сертификат X509 и получить массив с данными о нем

  • « openssl_x509_free
  • openssl_x509_read »
  • PHP Manual
  • Функции OpenSSL
  • Разобрать сертификат X509 и получить массив с данными о нем

openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_parse — Разобрать сертификат X509 и получить массив с данными о нем

Описание

openssl_x509_parse(OpenSSLCertificate|string $certificate, bool $short_names = true): array|false

openssl_x509_parse() возвращает информацию сертификате с идентификатором certificate, включая такие поля, как имя субъекта, имя издателя, назначение, даты начала и окончания действия и т.д.

Список параметров

certificate

Сертификат X509. Список корректных значений смотри в Параметры Key/Certificate.

short_names

short_names определяет, как будут индексироваться данные в итоговом массиве. Если short_names задать как true (по умолчанию), то поля будут индексироваться короткими именами, а не длинными. Например, CN - это короткое имя для commonName.

Возвращаемые значения

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

Список изменений

Версия | Описание
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.


Разобрать сертификат X.509 и вернуть для него объект

  • « openssl_x509_parse
  • openssl_x509_verify »
  • PHP Manual
  • Функции OpenSSL
  • Разобрать сертификат X.509 и вернуть для него объект

openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_read — Разобрать сертификат X.509 и вернуть для него объект

Описание

openssl_x509_read(OpenSSLCertificate|string $certificate): OpenSSLCertificate|false

openssl_x509_read() извлекает сертификат из certificate и возвращает объект OpenSSLCertificate для него.

Список параметров

certificate

Сертификат X509. Список корректных значений смотрите на странице Параметры ключей и сертификатов.

Возвращаемые значения

Возвращает объект OpenSSLCertificate в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения возвращает экземпляр OpenSSLCertificate; ранее возвращался ресурс (resource) типа OpenSSL X.509.
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.


Проверка цифровой подписи сертификата x509 с помощью публичного ключа

  • « openssl_x509_read
  • OpenSSLCertificate »
  • PHP Manual
  • Функции OpenSSL
  • Проверка цифровой подписи сертификата x509 с помощью публичного ключа

openssl_x509_verify

(PHP 7 >= 7.4.0, PHP 8)

openssl_x509_verify — Проверка цифровой подписи сертификата x509 с помощью публичного ключа

Описание

openssl_x509_verify(OpenSSLCertificate|string $certificate, OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key): int

openssl_x509_verify() проверяет, что сертификат certificate был подписан приватным ключом, соответствующим публичному ключу public_key.

Список параметров

x509

Для списка корректных значений смотрите Параметры ключей/сертификатов.

public_key

OpenSSLAsymmetricKey - ключ, возвращённый функцией openssl_get_publickey()

string - ключ в формате PEM, такого вида: -----BEGIN PUBLIC KEY----- MIIBCgK....

Возвращаемые значения

Возвращает 1, если подпись корректна, 0, если нет, и -1 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | certificate теперь принимает экземпляр OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL X.509.
8.0.0 | public_key теперь принимает экземпляр OpenSSLAsymmetricKey или OpenSSLCertificate; ранее принимался ресурс (resource) типа OpenSSL key или OpenSSL X.509.

Примеры

Пример #1 Пример использования openssl_x509_verify()

<?php
$hostname = "news.php.net";
$ssloptions = array(
"capture_peer_cert" => true,
"capture_peer_cert_chain" => true,
"allow_self_signed"=> false,
"CN_match" => $hostname,
"verify_peer" => true,
"SNI_enabled" => true,
"SNI_server_name" => $hostname,
);

$ctx = stream_context_create( array("ssl" => $ssloptions) );
$result = stream_socket_client("ssl://$hostname:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx);
$cont = stream_context_get_params($result);
$x509 = $cont["options"]["ssl"]["peer_certificate"];
$certparsed = openssl_x509_parse($x509);

foreach($cont["options"]["ssl"]["peer_certificate_chain"] as $chaincert)
{
$chainparsed = openssl_x509_parse($chaincert);
$chain_public_key = openssl_get_publickey($chaincert);
$r = openssl_x509_verify($x509, $chain_public_key);
if ($r==1)
{
echo $certparsed['subject']['CN'];
echo " was digitally signed by ";
echo $chainparsed['subject']['CN']."\n";
}
}
?>

Смотрите также

  • openssl_verify() - Сверка сигнатуры
  • openssl_get_publickey() - Псевдоним openssl_pkey_get_public


Класс OpenSSLCertificate

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы OpenSSL X.509 в PHP 8.0.0.

Обзор классов

final class OpenSSLCertificate {
}


Класс OpenSSLCertificateSigningRequest

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы OpenSSL X.509 CSR в PHP 8.0.0.

Обзор классов

final class OpenSSLCertificateSigningRequest {
}


Класс OpenSSLAsymmetricKey

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы OpenSSL key в PHP 8.0.0.

Обзор классов

final class OpenSSLAsymmetricKey {
}


Хеширование паролей

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции хеширования паролей
    • password_algos — Получает доступные идентификаторы алгоритма хеширования пароля
    • password_get_info — Возвращает информацию о заданном хеше
    • password_hash — Создаёт хеш пароля
    • password_needs_rehash — Проверяет, что указанный хеш соответствует заданным опциям
    • password_verify — Проверяет, соответствует ли пароль хешу


Введение

API хеширования паролей предоставляет простую в использовании обёртку функции crypt() и некоторых других алгоритмов хеширования пароля для лёгкого создания и управления паролями.


Требования

Для сборки этого модуля не требуются внешние библиотеки.

Для хеширования паролей через Argon2 требуется » libargon2. Начиная с PHP 7.3.0, требуется libargon2 версии 20161029 или выше.


Установка

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

Однако, чтобы включить хеширование используя Argon2, PHP должен собран с поддержкой libargon2 с использованием опции конфигурации --with-password-argon2.

До PHP 8.1.0 можно было указать каталог argon2 с помощью команды --with-password-argon2[=DIR].


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

Перечисленные ниже константы всегда доступны как часть ядра PHP.

PASSWORD_BCRYPT (string)

PASSWORD_BCRYPT используется для создания новых хешей паролей используя алгоритм CRYPT_BLOWFISH.

Результат всегда представляет из себя хеш формата "$2y$" длиной 60 символов.

Поддерживаемые опции:

  • salt (string) - соль для использования при создании хеша пароля. Обратите внимание, что задание этой опции предотвращает автоматическую генерацию соли.

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

  • cost (int) - алгоритмическая стоимость, которую следует использовать. Примеры использования этого значения смотрите на странице описания функции crypt().

    Если не задано, то будет использовано значение 10. Это хорошая базовая стоимость, но вы всегда можете её увеличить в зависимости от имеющихся в вашем распоряжении вычислительных ресурсов.

PASSWORD_ARGON2I (string)

PASSWORD_ARGON2I используется для создания новых хешей паролей с помощью алгоритма Argon2i.

Поддерживаемые опции:

  • memory_cost (int) - Максимальный размер памяти (в кибибайтах), которую можно использовать для вычисления хеша Argon2. По умолчанию PASSWORD_ARGON2_DEFAULT_MEMORY_COST.

  • time_cost (int) - Максимально возможное время которое можно потратить для вычисления хеша Argon2. По умолчанию PASSWORD_ARGON2_DEFAULT_TIME_COST.

  • threads (int) - Количество потоков, которые можно использовать для вычисления хеша Argon2. По умолчанию PASSWORD_ARGON2_DEFAULT_THREADS. Доступно только с libargon2, но не с реализацией libsodium.

Доступно с PHP 7.2.0.

PASSWORD_ARGON2ID (string)

PASSWORD_ARGON2ID используется для создания хешей паролей с помощью алгоритма Argon2id. Поддерживаются те же опции, что и для PASSWORD_ARGON2I.

Доступно с PHP 7.3.0.

PASSWORD_ARGON2_DEFAULT_MEMORY_COST (тип int)

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

Доступно с PHP 7.2.0.

PASSWORD_ARGON2_DEFAULT_TIME_COST (int)

Ограничение времени по умолчанию на вычисление хеша.

Доступно с PHP 7.2.0.

PASSWORD_ARGON2_DEFAULT_THREADS (int)

Количество потоков по умолчанию для библиотеки Argon2lib. Недоступно с реализацией libsodium.

Доступно с PHP 7.2.0.

PASSWORD_DEFAULT (mixed)

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

Стоит отметить, что со временем эта константа может (и, вероятно, так и будет) измениться. Так что имейте в виду, что длина полученного хеша может измениться. Помните, что если вы используете PASSWORD_DEFAULT, то предусмотрите для хранения хешей больше чем 60 символов (рекомендуется 255).

Значения для этой константы:

  • PHP 5.5.0 - PASSWORD_BCRYPT

Список изменений

Версия | Описание
7.4.0 | Значения идентификаторов алгоритма пароля (PASSWORD_BCRYPT, PASSWORD_ARGON2I, PASSWORD_ARGON2ID и PASSWORD_DEFAULT) теперь являются строками (string). Ранее они были числами (int).


Функции хеширования паролей

Содержание

  • password_algos — Получает доступные идентификаторы алгоритма хеширования пароля
  • password_get_info — Возвращает информацию о заданном хеше
  • password_hash — Создаёт хеш пароля
  • password_needs_rehash — Проверяет, что указанный хеш соответствует заданным опциям
  • password_verify — Проверяет, соответствует ли пароль хешу


Получает доступные идентификаторы алгоритма хеширования пароля

  • « Функции хеширования паролей
  • password_get_info »
  • PHP Manual
  • Функции хеширования паролей
  • Получает доступные идентификаторы алгоритма хеширования пароля

password_algos

(PHP 7 >= 7.4.0, PHP 8)

password_algos — Получает доступные идентификаторы алгоритма хеширования пароля

Описание

password_algos(): array

Возвращает полный список всех зарегистрированных идентификаторов алгоритма хеширования паролей в виде массива (array) строк (string)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает доступные идентификаторы алгоритма хеширования пароля.

Примеры

Пример #1 Пример использования password()

<?php
print_r(password_algos());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 2y
    [1] => argon2i
    [2] => argon2id
)


Возвращает информацию о заданном хеше

  • « password_algos
  • password_hash »
  • PHP Manual
  • Функции хеширования паролей
  • Возвращает информацию о заданном хеше

password_get_info

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

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, PHP 8)

password_hash — Создаёт хеш пароля

Описание

password_hash(string $password, string|int|null $algo, array $options = []): string

Функция password_hash() создаёт хеш пароля, используя сильный необратимый алгоритм хеширования.

Поддерживаются следующие алгоритмы:

  • PASSWORD_DEFAULT — будет выбран алгоритм bcrypt (по умолчанию с PHP 5.5.0). Обратите внимание, алгоритм может измениться на более сильный, когда такой добавится в PHP. При изменении алгоритма и длина результата также может измениться. Поэтому длину поля для хранения в базе данных лучше устанавливать более 60 символов (255 символов будет хорошим значением).
  • PASSWORD_BCRYPT — будет выбран алгоритм CRYPT_BLOWFISH. Генерирует стандартный хеш с идентификатором "$2y$", совместимый с тем, который генерирует функция crypt(). В результате будет сгенерирована строка длиной 60 символов или false в случае возникновения ошибки.
  • PASSWORD_ARGON2I — будет выбран алгоритм хеширования Argon2i. Этот алгоритм будет доступен, только если PHP собран с поддержкой Argon2.
  • PASSWORD_ARGON2ID — будет выбран алгоритм хеширования Argon2id. Этот алгоритм будет доступен, только если PHP собран с поддержкой Argon2.

Поддерживаемые опции для PASSWORD_BCRYPT:

  • salt (string) — для самостоятельного задания соли для хеширования. Обратите внимание, что это приведёт к переопределению и предотвратит автоматическое создание соли.

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

    Внимание

    Эта опция объявлена устаревшей. Рекомендуется использовать автоматически генерируемую соль. Начиная с PHP 8.0.0 явно заданная соль игнорируется.

  • cost (int) — задаёт алгоритмическую сложность. Пример с этой опцией можно посмотреть на странице, посвящённой функции crypt().

    Если не задано, то будет выбрано значение по умолчанию: 10. Это хорошая базовая стоимость, но можно увеличить её, если позволяет производительность оборудования.

Поддерживаемые опции для PASSWORD_ARGON2I и PASSWORD_ARGON2ID:

  • memory_cost (int) — максимальный размер памяти (в килобайтах), которая будет использована для вычисления хеша Argon2. По умолчанию будет выбрано значение константы PASSWORD_ARGON2_DEFAULT_MEMORY_COST.

  • time_cost (int) — максимально возможное время, которое можно потратить на вычисление хеша Argon2. По умолчанию будет выбрано значение константы PASSWORD_ARGON2_DEFAULT_TIME_COST.

  • threads (int) — количество потоков, которые можно задействовать для вычисления хеша Argon2. По умолчанию будет выбрано значение константы PASSWORD_ARGON2_DEFAULT_THREADS.

    Внимание

    Доступно только тогда, когда в PHP доступен модуль libargon2, но не при реализации libsodium.

Список параметров

password

Пользовательский пароль.

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

Использование алгоритма PASSWORD_BCRYPT приведёт к обрезанию поля password до максимальной длины — 72 байта.

algo

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

options

Ассоциативный массив с опциями. За документацией по поддерживаемым опциям для каждого алгоритма обратитесь к разделу Константы алгоритмов хеширования паролей.

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

Возвращаемые значения

Возвращает хешированный пароль.

Выбранный алгоритм, стоимость и соль будут возвращены как часть хеша. Таким образом, информация, необходимая для проверки хеша, будет в него включена. Это позволит функции password_verify() проверять хеш без отдельного хранения информации о соли и алгоритме.

Список изменений

Версия | Описание
8.0.0 | password_hash() больше не возвращает значение false в случае возникновения ошибки. Вместо этого будет выброшено исключение ValueError, если алгоритм хеширования пароля недействителен, или Error, если хеширование пароля не удалось из-за неизвестной ошибки.
8.0.0 | Параметр algo теперь допускает значение null.
7.4.0 | Параметр algo теперь ожидает строку (string), но всё ещё принимает число (int) для обратной совместимости.
7.4.0 | Модуль sodium обеспечивает альтернативную реализацию паролей Argon2.
7.3.0 | Добавлена поддержка алгоритма хеширования паролей Argon2id с помощью PASSWORD_ARGON2ID.
7.2.0 | Добавлена поддержка хеширующего алгоритма Argon2i с помощью PASSWORD_ARGON2I.

Примеры

Пример #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
/**
* Данный код замерит скорость выполнения операции с разными значениями алгоритмической сложности хеширования
* на вашем сервере и определит
* его максимальное значение, не приводящее к деградации производительности. Хорошее базовое
* значение — 10, но если ваш сервер достаточно мощный, то можно
* задать и больше. Данный скрипт ищет максимальное значение, при котором
* хеширование уложится в значение ? 350 миллисекундам, что считается приемлемой задержкой
* для систем, которые обрабатывают интерактивные входы.
*/
$timeTarget = 0.350; // 350 миллисекунд

$cost = 8;
do {
$cost++;
$start = microtime(true);
password_hash("test", PASSWORD_BCRYPT, ["cost" => $cost]);
$end = microtime(true);
} while (($end - $start) < $timeTarget);

echo "Оптимальная стоимость: " . $cost;
?>

Результатом выполнения данного примера будет что-то подобное:

Оптимальная стоимость: 12

Пример #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 и будет вызывать соответствующее предупреждение. Поддержка ручного задания соли была удалена в PHP 8.0.

Замечание:

Рекомендуется протестировать данную функцию на вашем оборудовании для определения оптимального значения алгоритмической сложности. Убедитесь, что с выбранной сложностью функция выполняется быстрее 350 миллисекунд для интерактивных систем. Скрипт в приведённом выше примере поможет выбрать оптимальное значение.

Замечание: Обновление поддерживаемых алгоритмов для этой функции (или изменение значения по умолчанию) обязаны следовать правилам:

  • Любой новый алгоритм должен присутствовать в ядре как минимум 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 и т. д.), но не в промежуточных. Единственное исключение — это критическая уязвимость, найденная в текущем алгоритме.

Смотрите также

  • password_verify() - Проверяет, соответствует ли пароль хешу
  • password_needs_rehash() - Проверяет, что указанный хеш соответствует заданным опциям
  • crypt() - Необратимое хеширование строки
  • sodium_crypto_pwhash_str() - Получить ASCII-кодированный хеш


Проверяет, что указанный хеш соответствует заданным опциям

  • « password_hash
  • password_verify »
  • PHP Manual
  • Функции хеширования паролей
  • Проверяет, что указанный хеш соответствует заданным опциям

password_needs_rehash

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_needs_rehash — Проверяет, что указанный хеш соответствует заданным опциям

Описание

password_needs_rehash(string $hash, string|int|null $algo, array $options = []): bool

Проверяет, что указанный хеш соответствует заданным опциям и заданному алгоритму. Если нет, то можно сделать вывод о том, что хеш надо пересоздать.

Список параметров

hash

Хеш, созданный функцией password_hash().

algo

Константа, обозначающая используемый алгоритм хеширования пароля.

options

Ассоциативный массив с опциями. За документацией по поддерживаемым опциям для каждого алгоритма обратитесь к разделу Константы алгоритмов хеширования паролей.

Возвращаемые значения

Возвращает true, если пароль должен быть перехеширован с использованием алгоритма algo и опций options, или false, если нет.

Список изменений

Версия | Описание
7.4.0 | Параметр algo теперь ожидает строку (string), но всё ещё принимает число (int) для обратной совместимости.

Примеры

Пример #1 Пример использования password_needs_rehash()

<?php

$password = 'rasmuslerdorf';
$hash = '$2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS';

$algorithm = PASSWORD_BCRYPT;
// Значение bcrypt-стоимости может измениться по мере роста производительности оборудования
$options = ['cost' => 12];

// Сравниваем сохранённый хеш с открытым паролем
if (password_verify($password, $hash)) {
// Проверяем, не изменился ли алгоритм или параметры
if (password_needs_rehash($hash, $algorithm, $options)) {
// Если были изменения, перехешируем и заменяем старый хеш новым
$newHash = password_hash($password, $algorithm, $options);

// Обновляем запись пользователя новым $newHash
}

// Авторизуем пользователя
}
?>


Проверяет, соответствует ли пароль хешу

  • « password_needs_rehash
  • Rnp »
  • PHP Manual
  • Функции хеширования паролей
  • Проверяет, соответствует ли пароль хешу

password_verify

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_verify — Проверяет, соответствует ли пароль хешу

Описание

password_verify(string $password, string $hash): bool

Проверяет, соответствует ли пароль хешу.
Функция password_verify() совместима с crypt().
Следовательно, хеши паролей, созданные crypt(),
могут быть использованы в password_verify().

Обратите внимание, что password_hash() возвращает алгоритм, стоимость и соль как части хеша. Таким образом, вся необходимая для проверки информация включена в него. Это позволяет производить проверку без необходимости хранить все эти данные раздельно.

Эта функция безопасна для атак по времени.

Список параметров

password

Пользовательский пароль.

hash

Хеш, созданный функцией password_hash().

Возвращаемые значения

Возвращает true или false, в зависимости от результатов проверки.

Примеры

Пример #1 Пример использования password_verify()

Это упрощённый пример; при необходимости рекомендуется пересоздать правильный пароль; смотрите пример в описании функции password_needs_rehash().

<?php
// Смотрите пример использования password_hash(), для понимания откуда это взялось.
$hash = '$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a';

if (password_verify('rasmuslerdorf', $hash)) {
echo 'Пароль правильный!';
} else {
echo 'Пароль неправильный.';
}
?>

Результат выполнения данного примера:

Пароль правильный!

Смотрите также

  • password_needs_rehash() - Проверяет, что указанный хеш соответствует заданным опциям
  • password_hash() - Создаёт хеш пароля
  • » пользовательская реализация
  • sodium_crypto_pwhash_str_verify() - Проверяет, что пароль соответствует хешу


Rnp

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
    • Подписание текста
  • Функции Rnp
    • rnp_backend_string — Возвращает имя библиотеки криптографического бэкенда
    • rnp_backend_version — Возвращает версию криптографической библиотеки бэкенда
    • rnp_decrypt — Расшифровывает сообщение PGP
    • rnp_dump_packets_to_json — Выгрузка информации о потоке пакетов OpenPGP в строку JSON
    • rnp_dump_packets — Выгружает информацию о потоке пакетов OpenPGP в человеко-читаемом формате
    • rnp_ffi_create — Создаёт объект верхнего уровня, используемый для взаимодействия с библиотекой
    • rnp_ffi_destroy — Уничтожает объект верхнего уровня, используемый для взаимодействия с библиотекой
    • rnp_ffi_set_pass_provider — Устанавливает callback-функцию поставщика паролей
    • rnp_import_keys — Импортирует ключи из строки PHP в связку ключей и получает JSON с описанием новых/обновлённых ключей
    • rnp_import_signatures — Импортирует автономные подписи в связку ключей и получает JSON с описанием обновлённых ключей
    • rnp_key_export_autocrypt — Экспортирует минимальный ключ для функции автоматического шифрования (всего 5 пакетов: ключ, uid, подпись, дочерний ключ шифрования, подпись)
    • rnp_key_export_revocation — Генерирует и экспортирует подпись отзыва первичного ключа
    • rnp_key_export — Экспортирует ключ
    • rnp_key_get_info — Получает информацию о ключе
    • rnp_key_remove — Удаляет ключ из связки (связок)
    • rnp_key_revoke — Отзывает ключ или дочерний ключ путём создания и добавления подписи отзыва
    • rnp_list_keys — Перечисляет все ключи, присутствующие в связке ключей, по указанному типу идентификатора
    • rnp_load_keys_from_path — Загружает ключи из указанного пути
    • rnp_load_keys — Загружает ключи из строки PHP
    • rnp_locate_key — Поиск ключа
    • rnp_op_encrypt — Шифрует сообщение
    • rnp_op_generate_key — Генерирует ключ
    • rnp_op_sign_cleartext — Выполняет операцию подписания текстовых данных, возвращая подписанный открытый текст сообщения
    • rnp_op_sign_detached — Выполняет операцию подписания, возвращает отсоединённую подпись (подписи)
    • rnp_op_sign — Выполняет операцию подписания бинарных данных, возвращает присоединённую подпись (подписи)
    • rnp_op_verify_detached — Проверяет отсоединённые подписи
    • rnp_op_verify — Проверяет присоединённую подпись или подпись открытого текста
    • rnp_save_keys_to_path — Сохраняет ключи по указанному пути
    • rnp_save_keys — Сохраняет ключи в строке PHP
    • rnp_supported_features — Получает поддерживаемые функции в формате JSON
    • rnp_version_string_full — Возвращает строку полной версии библиотеки RNP
    • rnp_version_string — Возвращает строку версии библиотеки RNP
  • RnpFFI — Класс RnpFFI


Введение

Модуль позволяет использовать библиотеку » RNP. RNP - это высокопроизводительная C++ библиотека OpenPGP, используемая Mozilla Thunderbird.


Требования

Для того чтобы использовать функции библиотеки RNP, необходимо установить » библиотеку RNP. Требуется версия библиотеки RNP >= 0.16.2.


Установка

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/rnp


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

RNP_KEYSTORE_GPG (string)
Формат хранилища ключей "GPG".
RNP_KEYSTORE_KBX (string)
Формат хранилища ключей "KBX". Только для открытых ключей. Хранилище ключей - это формат файла, используемый для хранения открытых ключей вместе с метаинформацией и индексами.
RNP_KEYSTORE_G10 (string)
Формат хранилища ключей "G10". Для закрытых ключей.
RNP_LOAD_SAVE_PUBLIC_KEYS (integer)
Загрузка или сохранение только открытых ключей. Может быть ИЛИ с константой RNP_LOAD_SAVE_SECRET_KEYS для загрузки открытых и закрытых ключей в контекст FFI или сохранения их из контекста.
RNP_LOAD_SAVE_SECRET_KEYS (integer)
Загрузка или сохранение только секретных ключей. Может быть ИЛИ с константой RNP_LOAD_SAVE_PUBLIC_KEYS для загрузки открытых и закрытых ключей в контекст FFI или сохранения их из контекста.
RNP_LOAD_SAVE_PERMISSIVE (integer)
Позволяет игнорировать пакеты плохих подписей/ключей/дочерних ключей при импорте ключей.
RNP_LOAD_SAVE_SINGLE (integer)
Если установлено, будет загружен только первый ключ.
RNP_LOAD_SAVE_BASE64 (integer)
Разрешить импорт base64-кодированных ключей (autocrypt).
RNP_FEATURE_SYMM_ALG (string)
Список доступных алгоритмов симметричного шифрования.
RNP_FEATURE_AEAD_ALG (string)
Список доступных алгоритмов AEAD.
RNP_FEATURE_PROT_MODE (string)
Список доступных режимов защиты.
RNP_FEATURE_PK_ALG (string)
Список доступных алгоритмов открытых ключей.
RNP_FEATURE_HASH_ALG (string)
Список доступных хеш-алгоритмов.
RNP_FEATURE_COMP_ALG (string)
Список доступных алгоритмов сжатия.
RNP_FEATURE_CURVE (string)
Список доступных эллиптических кривых.
RNP_DUMP_MPI (integer)
Выгрузка значений MPI (многоточечных целых чисел).
RNP_DUMP_RAW (integer)
Выгрузка содержимого необработанного пакета.
RNP_DUMP_GRIP (integer)
Выгрузка цифрового отпечатка и захватов клавиш.
RNP_JSON_DUMP_MPI (integer)
Выгрузка значений MPI (многоточечных целых чисел).
RNP_JSON_DUMP_RAW (integer)
Выгрузка содержимого необработанного пакета.
RNP_JSON_DUMP_GRIP (integer)
Выгрузка цифровых отпечатков пальцев и захватов клавиш.
RNP_ENCRYPT_NOWRAP (integer)
Позволяет зашифровать подписанное сообщение. Сообщение не заворачивается в строчный пакет данных.
RNP_KEY_EXPORT_ARMORED (integer)
Включение ASCII-преобразования экспортируемых данных.
RNP_KEY_EXPORT_PUBLIC (integer)
Экспорт открытого ключа.
RNP_KEY_EXPORT_SECRET (integer)
Экспорт закрытого ключа.
RNP_KEY_EXPORT_SUBKEYS (integer)
Если экспортируется первичный ключ, все дочерние ключи также будут экспортированы.
RNP_KEY_EXPORT_BASE64 (integer)
Экспорт ключа автоматического шифрования в base64-кодировке вместо двоичной.
RNP_KEY_REMOVE_PUBLIC (integer)
Удаление открытого ключа.
RNP_KEY_REMOVE_SECRET (integer)
Удаление закрытого ключа.
RNP_KEY_REMOVE_SUBKEYS (integer)
Если удаляется первичный ключ, все его дочерние ключи также будут удалены.


  • « Предопределённые константы
  • Подписание текста »
  • PHP Manual
  • Rnp
  • Примеры

Примеры

Содержание

  • Подписание текста


Подписание текста

В данном примере будет подписание заданного текста.

Пример #1 Пример расчёта RNP

<?php
// Инициализация объекта FFI
$ffi = rnp_ffi_create('GPG', 'GPG');

// Генерация ключа RSA
$key = rnp_op_generate_key($ffi, 'test@example.com', 'RSA');

// Подписание
$data = "Пример текста для подписи";
$signature = rnp_op_sign_cleartext($ffi, $data, array($key));

echo $signature;

// Уничтожение объекта FFI
rnp_ffi_destroy($ffi);
?>


Функции Rnp

Содержание

  • rnp_backend_string — Возвращает имя библиотеки криптографического бэкенда
  • rnp_backend_version — Возвращает версию криптографической библиотеки бэкенда
  • rnp_decrypt — Расшифровывает сообщение PGP
  • rnp_dump_packets_to_json — Выгрузка информации о потоке пакетов OpenPGP в строку JSON
  • rnp_dump_packets — Выгружает информацию о потоке пакетов OpenPGP в человеко-читаемом формате
  • rnp_ffi_create — Создаёт объект верхнего уровня, используемый для взаимодействия с библиотекой
  • rnp_ffi_destroy — Уничтожает объект верхнего уровня, используемый для взаимодействия с библиотекой
  • rnp_ffi_set_pass_provider — Устанавливает callback-функцию поставщика паролей
  • rnp_import_keys — Импортирует ключи из строки PHP в связку ключей и получает JSON с описанием новых/обновлённых ключей
  • rnp_import_signatures — Импортирует автономные подписи в связку ключей и получает JSON с описанием обновлённых ключей
  • rnp_key_export_autocrypt — Экспортирует минимальный ключ для функции автоматического шифрования (всего 5 пакетов: ключ, uid, подпись, дочерний ключ шифрования, подпись)
  • rnp_key_export_revocation — Генерирует и экспортирует подпись отзыва первичного ключа
  • rnp_key_export — Экспортирует ключ
  • rnp_key_get_info — Получает информацию о ключе
  • rnp_key_remove — Удаляет ключ из связки (связок)
  • rnp_key_revoke — Отзывает ключ или дочерний ключ путём создания и добавления подписи отзыва
  • rnp_list_keys — Перечисляет все ключи, присутствующие в связке ключей, по указанному типу идентификатора
  • rnp_load_keys_from_path — Загружает ключи из указанного пути
  • rnp_load_keys — Загружает ключи из строки PHP
  • rnp_locate_key — Поиск ключа
  • rnp_op_encrypt — Шифрует сообщение
  • rnp_op_generate_key — Генерирует ключ
  • rnp_op_sign_cleartext — Выполняет операцию подписания текстовых данных, возвращая подписанный открытый текст сообщения
  • rnp_op_sign_detached — Выполняет операцию подписания, возвращает отсоединённую подпись (подписи)
  • rnp_op_sign — Выполняет операцию подписания бинарных данных, возвращает присоединённую подпись (подписи)
  • rnp_op_verify_detached — Проверяет отсоединённые подписи
  • rnp_op_verify — Проверяет присоединённую подпись или подпись открытого текста
  • rnp_save_keys_to_path — Сохраняет ключи по указанному пути
  • rnp_save_keys — Сохраняет ключи в строке PHP
  • rnp_supported_features — Получает поддерживаемые функции в формате JSON
  • rnp_version_string_full — Возвращает строку полной версии библиотеки RNP
  • rnp_version_string — Возвращает строку версии библиотеки RNP


Возвращает имя библиотеки криптографического бэкенда

  • « Функции Rnp
  • rnp_backend_version »
  • PHP Manual
  • Функции Rnp
  • Возвращает имя библиотеки криптографического бэкенда

rnp_backend_string

(PECL rnp >= 0.1.1)

rnp_backend_string — Возвращает имя библиотеки криптографического бэкенда

Описание

rnp_backend_string(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка имени бэкенда. В настоящее время поддерживаются следующие: "Botan" и "OpenSSL".


Возвращает версию криптографической библиотеки бэкенда

  • « rnp_backend_string
  • rnp_decrypt »
  • PHP Manual
  • Функции Rnp
  • Возвращает версию криптографической библиотеки бэкенда

rnp_backend_version

(PECL rnp >= 0.1.1)

rnp_backend_version — Возвращает версию криптографической библиотеки бэкенда

Описание

rnp_backend_version(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает версию в виде строки.


Расшифровывает сообщение PGP

  • « rnp_backend_version
  • rnp_dump_packets_to_json »
  • PHP Manual
  • Функции Rnp
  • Расшифровывает сообщение PGP

rnp_decrypt

(PECL rnp >= 0.1.1)

rnp_decrypt — Расшифровывает сообщение PGP

Описание

rnp_decrypt(RnpFFI $ffi, string $input): string|false

Закрытые ключи, используемые для расшифровки, должны быть загружены в объект FFI перед вызовом функции. Если использовалось шифрование паролем, то провайдер пароля должен быть установлен вызовом функции rnp_ffi_set_pass_provider().

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

input

Зашифрованное сообщение.

Возвращаемые значения

Расшифрованное сообщение в случае успешного выполнения или false в случае возникновения ошибки.


Выгрузка информации о потоке пакетов OpenPGP в строку JSON

  • « rnp_decrypt
  • rnp_dump_packets »
  • PHP Manual
  • Функции Rnp
  • Выгрузка информации о потоке пакетов OpenPGP в строку JSON

rnp_dump_packets_to_json

(PECL rnp >= 0.1.1)

rnp_dump_packets_to_json — Выгрузка информации о потоке пакетов OpenPGP в строку JSON

Описание

rnp_dump_packets_to_json(string $input, int $flags): string|false

Список параметров

input

Входная строка, содержащая данные OpenPGP в двоичном или ASCII-закодированном формате.

flags

Смотрите предопределённые константы RNP_JSON_DUMP_*.

Возвращаемые значения

Строка JSON с выводом или false в случае возникновения ошибки.


Выгружает информацию о потоке пакетов OpenPGP в человеко-читаемом формате

  • « rnp_dump_packets_to_json
  • rnp_ffi_create »
  • PHP Manual
  • Функции Rnp
  • Выгружает информацию о потоке пакетов OpenPGP в человеко-читаемом формате

rnp_dump_packets

(PECL rnp >= 0.1.1)

rnp_dump_packets — Выгружает информацию о потоке пакетов OpenPGP в человеко-читаемом формате

Описание

rnp_dump_packets(string $input, int $flags): string|false

Список параметров

input

Входная строка, содержащая данные OpenPGP в двоичном или ASCII-закодированном формате.

flags

Смотрите предопределённые константы RNP_JSON_DUMP_*.

Возвращаемые значения

Текст, описывающий последовательность пакетов или false в случае возникновения ошибки.


Создаёт объект верхнего уровня, используемый для взаимодействия с библиотекой

  • « rnp_dump_packets
  • rnp_ffi_destroy »
  • PHP Manual
  • Функции Rnp
  • Создаёт объект верхнего уровня, используемый для взаимодействия с библиотекой

rnp_ffi_create

(PECL rnp >= 0.1.1)

rnp_ffi_create — Создаёт объект верхнего уровня, используемый для взаимодействия с библиотекой

Описание

rnp_ffi_create(string $pub_format, string $sec_format): RnpFFI|false

Список параметров

pub_format

Формат открытого ключа, RNP_KEYSTORE_GPG или другая константа RNP_KEYSTORE_*.

sec_format

Формат закрытого ключа, RNP_KEYSTORE_GPG или другая константа RNP_KEYSTORE_*.

Возвращаемые значения

Возвращает объект RnpFFI в случае успешного выполнения или false в случае возникновения ошибки.


Уничтожает объект верхнего уровня, используемый для взаимодействия с библиотекой

  • « rnp_ffi_create
  • rnp_ffi_set_pass_provider »
  • PHP Manual
  • Функции Rnp
  • Уничтожает объект верхнего уровня, используемый для взаимодействия с библиотекой

rnp_ffi_destroy

(PECL rnp >= 0.1.1)

rnp_ffi_destroy — Уничтожает объект верхнего уровня, используемый для взаимодействия с библиотекой

Описание

rnp_ffi_destroy(RnpFFI $ffi): void

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

Возвращаемые значения


Устанавливает callback-функцию поставщика паролей

  • « rnp_ffi_destroy
  • rnp_import_keys »
  • PHP Manual
  • Функции Rnp
  • Устанавливает callback-функцию поставщика паролей

rnp_ffi_set_pass_provider

(PECL rnp >= 0.1.1)

rnp_ffi_set_pass_provider — Устанавливает callback-функцию поставщика паролей

Описание

rnp_ffi_set_pass_provider(RnpFFI $ffi, callable $password_callback): bool

Устанавливает callback-функцию поставщика пароля. Функция может запрашивать пароль на стандартном входе (если PHP скрипт выполняется в среде командной строки), отображать диалог GUI или предоставлять пароль любым другим возможным способом. Запрашиваемые пароли используются для шифрования или расшифровки секретных ключей или выполнения операций симметричного шифрования/дешифрования.

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

password_callback

Функция, которая будет вызываться для каждого запроса пароля. У неё следующая сигнатура:

password_callback(string $key_fp, string $pgp_context, string &$password): bool
  • $key_fp - Цифровой отпечаток, если таковой имеется. Может быть пустым.
  • $pgp_context - Строка, описывающая, почему запрашивается ключ.
  • $password - Ссылка на строку пароля, в которой должен храниться предоставленный пароль.
Callback-функция должна возвращать true, если пароль был успешно установлен или false в случае возникновения ошибки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример простой callback-функции

<?php
function password_callback(string $key_fp, string $pgp_context, string &$password)
{
$password = "password";

return true;
}

$ffi = rnp_ffi_create('GPG', 'GPG');

rnp_ffi_set_pass_provider($ffi, 'password_callback');


Импортирует ключи из строки PHP в связку ключей и получает JSON с описанием новых/обновлённых ключей

  • « rnp_ffi_set_pass_provider
  • rnp_import_signatures »
  • PHP Manual
  • Функции Rnp
  • Импортирует ключи из строки PHP в связку ключей и получает JSON с описанием новых/обновлённых ключей

rnp_import_keys

(PECL rnp >= 0.1.1)

rnp_import_keys — Импортирует ключи из строки PHP в связку ключей и получает JSON с описанием новых/обновлённых ключей

Описание

rnp_import_keys(RnpFFI $ffi, string $input, int $flags): string|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

input

Пакеты OpenPGP, содержащие ключ(и), которые нужно загрузить. Могут быть бинарными или ASCII-закодированными.

flags

Смотрите предопределённые константы RNP_LOAD_SAVE_*.

Возвращаемые значения

JSON-строка с информацией о новых и обновлённых ключах в случае успешного выполнения или false в случае возникновения ошибки.


Импортирует автономные подписи в связку ключей и получает JSON с описанием обновлённых ключей

  • « rnp_import_keys
  • rnp_key_export_autocrypt »
  • PHP Manual
  • Функции Rnp
  • Импортирует автономные подписи в связку ключей и получает JSON с описанием обновлённых ключей

rnp_import_signatures

(PECL rnp >= 0.1.1)

rnp_import_signatures — Импортирует автономные подписи в связку ключей и получает JSON с описанием обновлённых ключей

Описание

rnp_import_signatures(RnpFFI $ffi, string $input, int $flags): string|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

input

Пакеты OpenPGP, содержащие подписи, которые необходимо импортировать. Могут быть бинарными или ASCII-закодированными.

flags

В настоящее время должно быть 0.

Возвращаемые значения

JSON-строка с информацией об обновлённых ключах в случае успешного выполнения или false в случае возникновения ошибки.


Экспортирует минимальный ключ для функции автоматического шифрования (всего 5 пакетов: ключ, uid, подпись, дочерний ключ шифрования, подпись)

  • « rnp_import_signatures
  • rnp_key_export_revocation »
  • PHP Manual
  • Функции Rnp
  • Экспортирует минимальный ключ для функции автоматического шифрования (всего 5 пакетов: ключ, uid, подпись, дочерний ключ шифрования, подпись)

rnp_key_export_autocrypt

(PECL rnp >= 0.1.1)

rnp_key_export_autocrypt — Экспортирует минимальный ключ для функции автоматического шифрования (всего 5 пакетов: ключ, uid, подпись, дочерний ключ шифрования, подпись)

Описание

rnp_key_export_autocrypt(
RnpFFI $ffi,
string $key_fp,
string $subkey_fp,
string $uid,
int $flags
): string|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

key_fp

Цифровой отпечаток первичного ключа.

subkey_fp

Дочерний ключ для экспорта. Может быть пустой строкой, чтобы выбрать первый подходящий дочерний ключ.

uid

Идентификатор пользователя для экспорта. Может быть пустой строкой, если у экспортируемого ключа только один uid.

flags

В настоящее время поддерживается только RNP_KEY_EXPORT_BASE64. Включение приведёт к экспорту данных ключа в кодировке base64 вместо двоичной.

Возвращаемые значения

OpenPGP-пакеты экспортированного ключа в случае успешного выполнения или false в случае возникновения ошибки.


Генерирует и экспортирует подпись отзыва первичного ключа

  • « rnp_key_export_autocrypt
  • rnp_key_export »
  • PHP Manual
  • Функции Rnp
  • Генерирует и экспортирует подпись отзыва первичного ключа

rnp_key_export_revocation

(PECL rnp >= 0.1.1)

rnp_key_export_revocation — Генерирует и экспортирует подпись отзыва первичного ключа

Описание

rnp_key_export_revocation(
RnpFFI $ffi,
string $key_fp,
int $flags,
array $options = ?
): string|false

Примечание: чтобы отозвать ключ, вам нужно импортировать подпись в хранилище ключей или воспользоваться функцией rnp_key_revoke().

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

key_fp

Цифровой отпечаток первичного ключа, который должен быть отозван.

flags

RNP_KEY_EXPORT_ARMORED или 0.

options

Ассоциативный массив с опциями.

Ключ | Тип данных | Описание
"hash" | string | Установить хеш-алгоритм, используемый при вычислении подписи.
"code" | string | Код причины для кода отзыва. Возможные значения: 'no', 'supersed', 'compromised', 'retired'. Если не определено, то по умолчанию будет использоваться значение 'no'.
"reason" | string | Текстовое представление причины отзыва.

Возвращаемые значения

Экспортированная подпись отзыва в случае успешного выполнения или false в случае возникновения ошибки.


Экспортирует ключ

  • « rnp_key_export_revocation
  • rnp_key_get_info »
  • PHP Manual
  • Функции Rnp
  • Экспортирует ключ

rnp_key_export

(PECL rnp >= 0.1.1)

rnp_key_export — Экспортирует ключ

Описание

rnp_key_export(RnpFFI $ffi, string $key_fp, int $flags): string|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

key_fp

Цифровой отпечаток ключа.

flags

Смотрите предопределённые константы RNP_KEY_EXPORT_* (за исключением RNP_KEY_EXPORT_BASE64).

Возвращаемые значения

OpenPGP-пакеты экспортированного ключа (двоичные или ASCII-закодированные) в случае успешного выполнения или false в случае возникновения ошибки.


Получает информацию о ключе

  • « rnp_key_export
  • rnp_key_remove »
  • PHP Manual
  • Функции Rnp
  • Получает информацию о ключе

rnp_key_get_info

(PECL rnp >= 0.1.1)

rnp_key_get_info — Получает информацию о ключе

Описание

rnp_key_get_info(RnpFFI $ffi, string $key_fp): array|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

key_fp

Цифровой отпечаток ключа.

Возвращаемые значения

Ассоциативный массив с информацией о ключе или false в случае возникновения ошибки.

Ключ | Тип данных | Описание
"is_primary" | boolean | true, если ключ является первичным ключом.
"is_sub" | boolean | true, если этот ключ является дочерним ключом.
"is_valid" | boolean | true, если открытый ключ действителен. Сюда входит проверка подписей, сроков действия, аннулирования и так далее.
"is_revoked" | boolean | true, если ключ отозван.
"is_superseded" | boolean | true, если ключ заменён. Присутствует только в случае отзыва ключа.
"is_compromised" | boolean | true, если этот ключ скомпрометирован. Присутствует только в случае отзыва ключа.
"is_retired" | boolean | true, если данный ключ отозван. Присутствует только в случае отзыва ключа.
"is_expired" | boolean | true, если срок действия этого ключа истёк.
"have_secret" | boolean | true, если у ключа есть закрытая часть.
"is_locked" | boolean | true, если ключ в настоящее время заблокирован. Присутствует только для закрытых ключей.
"is_protected" | boolean | true, если данный ключ защищён. Присутствует только для закрытых ключей. Защищённый ключ - это ключ, который зашифрован и может безопасно храниться в памяти и блокируется/разблокируется по мере необходимости.
"have_public" | boolean | true, если у ключа есть открытая часть. Как правило, у всех ключей есть открытую часть.
"valid_till" | integer | Метка времени, до которой ключ считается действительным. Примечание: при этом учитывается не только истечение срока действия ключа, но и его отзыв. Для подключаемого дочернего ключа также будет проверяться время действия первичного ключа.
"bits" | integer | Количество битов в ключе. Для ключей на основе EC, будет содержаться размер кривой.
"alg" | string | Имя алгоритма ключа.
"subkeys" | array | Индексированный массив, содержащий строки цифровых отпечатков дочерних ключей. Присутствует только для первичных ключей. Может быть пустым, если у первичного ключа нет дочерних ключей.
"uids" | array | Индексированный массив, содержащий строки идентификаторов пользователей. Присутствует только для первичных ключей. Может быть пустым, если первичный ключ не содержит идентификаторов пользователей.


Удаляет ключ из связки (связок)

  • « rnp_key_get_info
  • rnp_key_revoke »
  • PHP Manual
  • Функции Rnp
  • Удаляет ключ из связки (связок)

rnp_key_remove

(PECL rnp >= 0.1.1)

rnp_key_remove — Удаляет ключ из связки (связок)

Описание

rnp_key_remove(RnpFFI $ffi, string $key_fp, int $flags): bool

Примечание: необходимо вызвать функцию rnp_save_keys() для записи обновлённых связок ключей.

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

key_fp

Цифровой отпечаток ключа.

flags

Смотрите константы RNP_KEY_REMOVE_*. Флаг RNP_KEY_REMOVE_SUBKEYS будет работать только для первичного ключа и удалит также все его подключи.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Отзывает ключ или дочерний ключ путём создания и добавления подписи отзыва

  • « rnp_key_remove
  • rnp_list_keys »
  • PHP Manual
  • Функции Rnp
  • Отзывает ключ или дочерний ключ путём создания и добавления подписи отзыва

rnp_key_revoke

(PECL rnp >= 0.1.1)

rnp_key_revoke — Отзывает ключ или дочерний ключ путём создания и добавления подписи отзыва

Описание

rnp_key_revoke(
RnpFFI $ffi,
string $key_fp,
int $flags,
array $options = ?
): bool

Примечание: необходимо вызвать функцию rnp_save_keys() для записи обновлённых связок ключей.

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

key_fp

Цифровой отпечаток ключа.

flags

В настоящее время должно быть 0.

options

Ассоциативный массив с опциями.

Ключ | Тип данных | Описание
"hash" | string | Установить хеш-алгоритм, используемый при вычислении подписи.
"code" | string | Код причины для кода отзыва. Возможные значения: 'no', 'supersed', 'compromised', 'retired'. Если не определено, то по умолчанию будет использоваться значение 'no'.
"reason" | string | Текстовое представление причины отзыва.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Перечисляет все ключи, присутствующие в связке ключей, по указанному типу идентификатора

  • « rnp_key_revoke
  • rnp_load_keys_from_path »
  • PHP Manual
  • Функции Rnp
  • Перечисляет все ключи, присутствующие в связке ключей, по указанному типу идентификатора

rnp_list_keys

(PECL rnp >= 0.1.1)

rnp_list_keys — Перечисляет все ключи, присутствующие в связке ключей, по указанному типу идентификатора

Описание

rnp_list_keys(RnpFFI $ffi, string $identifier_type): array|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

identifier_type

Тип идентификатора ключа ("userid", "keyid", "grip", "fingerprint").

Возвращаемые значения

Ассоциативный массив, где ключ - строка идентификатора, а значение - цифровой отпечаток ключа PGP или false в случае возникновения ошибки.


Загружает ключи из указанного пути

  • « rnp_list_keys
  • rnp_load_keys »
  • PHP Manual
  • Функции Rnp
  • Загружает ключи из указанного пути

rnp_load_keys_from_path

(PECL rnp >= 0.1.1)

rnp_load_keys_from_path — Загружает ключи из указанного пути

Описание

rnp_load_keys_from_path(
RnpFFI $ffi,
string $format,
string $input_path,
int $flags
): bool

Обратите внимание, что для G10 входными данными должен быть каталог (который должен уже существовать).

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

format

Формат ключа данных (GPG, KBX, G10).

input_path

Файл или каталог, содержащий ключи.

flags

Смотрите описание флагов RNP_LOAD_SAVE_*.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Загружает ключи из строки PHP

  • « rnp_load_keys_from_path
  • rnp_locate_key »
  • PHP Manual
  • Функции Rnp
  • Загружает ключи из строки PHP

rnp_load_keys

(PECL rnp >= 0.1.1)

rnp_load_keys — Загружает ключи из строки PHP

Описание

rnp_load_keys(
RnpFFI $ffi,
string $format,
string $input,
int $flags
): bool

Обратите внимание, что для G10 входными данными должен быть каталог (который должен уже существовать).

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

format

Формат ключа данных (GPG, KBX, G10).

input

Пакеты OpenPGP, содержащие ключ(и), которые нужно загрузить. Могут быть бинарными или ASCII-закодированными.

flags

Смотрите описание флагов RNP_LOAD_SAVE_*.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Поиск ключа

  • « rnp_load_keys
  • rnp_op_encrypt »
  • PHP Manual
  • Функции Rnp
  • Поиск ключа

rnp_locate_key

(PECL rnp >= 0.1.1)

rnp_locate_key — Поиск ключа

Описание

rnp_locate_key(RnpFFI $ffi, string $identifier_type, string $identifier): string|false

Примечание: при поиске по userid проверяются только действительные имена пользователей.

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

identifier_type

Строка типа идентификатора: "userid", "keyid", "fingerprint", "grip".

identifier

PGP идентификатор пользователя (имя и e-mail) для типа "userid", шестнадцатеричная строка, которая представляет собой идентификатор ключа, цифровой отпечаток или захват ключа соответственно.

Возвращаемые значения

Возвращает шестнадцатеричный цифровой отпечаток ключа, найденного в случае успешного выполнения или false в случае возникновения ошибки.


Шифрует сообщение

  • « rnp_locate_key
  • rnp_op_generate_key »
  • PHP Manual
  • Функции Rnp
  • Шифрует сообщение

rnp_op_encrypt

(PECL rnp >= 0.1.1)

rnp_op_encrypt — Шифрует сообщение

Описание

rnp_op_encrypt(
RnpFFI $ffi,
string $message,
array $recipient_keys_fp,
array $options = ?
): string|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

message

Сообщение, которое необходимо зашифровать.

recipient_keys_fp

Массив с отпечатками ключей получателя. Должен присутствовать хотя бы один ключ.

options

Ассоциативный массив с опциями.

Ключ | Тип данных | Описание
"compression_alg" | string | Алгоритм сжатия. Для включения сжатия данных должны быть заданы как "compression_alg", так и "compression_level".
"compression_level" | integer | Уровень сжатия, 0-9. 0 отключает сжатие.
"armor" | boolean | Включает ASCII-защищённый вывод. По умолчанию отключён.
"add_signature" | boolean | Зашифрованное сообщение будет также подписано.
"hash" | string | Устанавливает хеш-алгоритм, используемый при вычислении подписи. Опции "add_signature" должно быть установлено значение true.
"creation_time" | integer | Устанавливает время создания подписи в секундах с 1 января 1970 года по Гринвичу. По умолчанию используется текущее время.
"expiration_time" | integer | Устанавливает время истечения срока действия подписи в секундах с момента создания. Значение 0 используется для пометки подписи как не истекающей (значение по умолчанию).
"password" | string | Добавляет пароль, который используется для шифрования данных.
"cipher" | string | Устанавливает алгоритм симметричного шифрования. Возможные значения: "IDEA", "TRIPLEDES", "CAST5", "BLOWFISH", "AES128", "AES192", "AES256", "TWOFISH", "CAMELLIA128", "CAMELLIA192", "CAMELLIA256", "SM4".
"aead" | string | Устанавливает алгоритм режима AEAD. Возможные значения: "None" для отключения AEAD, "EAX", "OCB".
"aead_bits" | integer | Устанавливает длину ячейки для режима AEAD через количество битов размера ячейки. Должно быть от 0 до 56.
"flags" | integer | Устанавливает дополнительные флаги шифрования. Поддерживаемые флаги: RNP_ENCRYPT_NOWRAP - не заворачивать данные в литеральный пакет данных. Это позволит шифровать уже подписанные данные.
"file_name" | string | Устанавливает внутреннее имя файла для шифруемых данных. Специальное значение _CONSOLE может использоваться для пометки сообщения как "только для ваших глаз", т.е. оно не должно нигде храниться, а только отображаться получателю. По умолчанию используется пустая строка.
"file_mtime" | integer | Устанавливает дату модификации входного файла в секундах с 1 января 1970 года по Гринвичу.

Возвращаемые значения

Зашифрованные данные в случае успешного выполнения или false в случае возникновения ошибки.


Генерирует ключ

  • « rnp_op_encrypt
  • rnp_op_sign_cleartext »
  • PHP Manual
  • Функции Rnp
  • Генерирует ключ

rnp_op_generate_key

(PECL rnp >= 0.1.1)

rnp_op_generate_key — Генерирует ключ

Описание

rnp_op_generate_key(
RnpFFI $ffi,
string $userid,
string $key_alg,
string $sub_alg = ?,
array $options = ?
): string|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

userid

PGP User ID - текст, предназначенный для представления имени и адреса электронной почты владельца ключа.

key_alg

Алгоритм первичного ключа (например, 'RSA', 'DSA' и т.д.).

sub_alg

Алгоритм дочернего ключа. Если значение не задано, то дочерний ключ генерироваться не будет.

options

Ассоциативный массив с опциями.

Ключ | Тип данных | Описание
"bits" | integer | Размер первичного ключа в битах. Применяется только для ключей RSA, DSA и El-Gamal.
"hash" | string | Хеш-алгоритм, используемый в самоподписи или подписи с привязкой к дочернему ключу.
"dsa_qbits" | integer | Устанавливает размер параметра q для DSA-ключа. Примечание: в зависимости от разрядности ключа будет установлено соответствующее значение по умолчанию. Однако при необходимости его можно переопределить.
"curve" | string | Установка кривой, используемой для ключа ECC. Примечание: это применимо только для ключей ECDSA, ECDH и SM2.
"request_password" | boolean | Включает запрос пароля через провайдера паролей. Этот пароль будет использоваться для шифрования ключа. Callback-функция провайдера паролей должна быть задана заранее вызовом функции rnp_ffi_set_pass_provider(). Примечание: данная настройка будет проигнорирована, если пароль был задан через с помощью "password".
"password" | string | Устанавливает пароль, используемый для шифрования данных секретного ключа.
"expiration" | integer | Устанавливает время истечения срока действия ключей и дочерних ключей в секундах.
"sub_bits" | integer | Размер дочернего ключа в битах. Применяется только для ключей RSA, DSA и El-Gamal.
"sub_hash" | string | Хеш-алгоритм, используемый в самоподписи дочернего ключа или в подписи с привязкой к дочернему ключу.
"sub_curve" | string | Устанавливает кривую, используемую для дочернего ключа ECC. Примечание: это применимо только для ключей ECDSA, ECDH и SM2.

Возвращаемые значения

Отпечаток сгенерированного первичного ключа или false в случае возникновения ошибки. Этот отпечаток может быть использован в дальнейшем для ссылки на ключ в операциях подписи и шифрования. Данные ключа хранятся в контексте памяти FFI и могут быть сохранены с помощью функции rnp_save_keys() или rnp_save_keys_to_path().


Выполняет операцию подписания текстовых данных, возвращая подписанный открытый текст сообщения

  • « rnp_op_generate_key
  • rnp_op_sign_detached »
  • PHP Manual
  • Функции Rnp
  • Выполняет операцию подписания текстовых данных, возвращая подписанный открытый текст сообщения

rnp_op_sign_cleartext

(PECL rnp >= 0.1.1)

rnp_op_sign_cleartext — Выполняет операцию подписания текстовых данных, возвращая подписанный открытый текст сообщения

Описание

rnp_op_sign_cleartext(
RnpFFI $ffi,
string $data,
array $keys_fp,
array $options = ?
): string|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

data

Данные для подписи.

keys_fp

Массив с цифровыми отпечатками ключей. Должен быть указан хотя бы один ключ. Ключи должны присутствовать в параметре ffi.

options

Ассоциативный массив с опциями.

Ключ | Тип данных | Описание
"armor" | boolean | Включает ASCII-защищённый вывод. По умолчанию отключён.
"hash" | string | Устанавливает хеш-алгоритм, используемый при вычислении подписи.
"creation_time" | integer | Устанавливает время создания подписи в секундах с 1 января 1970 года по Гринвичу. По умолчанию используется текущее время.
"expiration_time" | integer | Устанавливает время истечения срока действия подписи в секундах с момента создания. Значение 0 используется для пометки подписи как не истекающей (значение по умолчанию).

Возвращаемые значения

Подписанный открытый текст, содержащий исходные данные с дополнительными заголовками и ASCII-защищённой подписью в случае успешного выполнения или false в случае возникновения ошибки.


Выполняет операцию подписания, возвращает отсоединённую подпись (подписи)

  • « rnp_op_sign_cleartext
  • rnp_op_sign »
  • PHP Manual
  • Функции Rnp
  • Выполняет операцию подписания, возвращает отсоединённую подпись (подписи)

rnp_op_sign_detached

(PECL rnp >= 0.1.1)

rnp_op_sign_detached — Выполняет операцию подписания, возвращает отсоединённую подпись (подписи)

Описание

rnp_op_sign_detached(
RnpFFI $ffi,
string $data,
array $keys_fp,
array $options = ?
): string|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

data

Данные для подписи.

keys_fp

Массив с цифровыми отпечатками ключей. Должен быть указан хотя бы один ключ. Ключи должны присутствовать в параметре ffi.

options

Ассоциативный массив с опциями.

Ключ | Тип данных | Описание
"armor" | boolean | Включает ASCII-защищённый вывод. По умолчанию отключён.
"hash" | string | Устанавливает хеш-алгоритм, используемый при вычислении подписи.
"creation_time" | integer | Устанавливает время создания подписи в секундах с 1 января 1970 года по Гринвичу. По умолчанию используется текущее время.
"expiration_time" | integer | Устанавливает время истечения срока действия подписи в секундах с момента создания. Значение 0 используется для пометки подписи как не истекающей (значение по умолчанию).

Возвращаемые значения

Возвращает данные с отсоединённой подписью (подписями) в случае успешного выполнения или false в случае возникновения ошибки.


Выполняет операцию подписания бинарных данных, возвращает присоединённую подпись (подписи)

  • « rnp_op_sign_detached
  • rnp_op_verify_detached »
  • PHP Manual
  • Функции Rnp
  • Выполняет операцию подписания бинарных данных, возвращает присоединённую подпись (подписи)

rnp_op_sign

(PECL rnp >= 0.1.1)

rnp_op_sign — Выполняет операцию подписания бинарных данных, возвращает присоединённую подпись (подписи)

Описание

rnp_op_sign(
RnpFFI $ffi,
string $data,
array $keys_fp,
array $options = ?
): string|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

data

Данные для подписи.

keys_fp

Массив с цифровыми отпечатками ключей. Должен быть указан хотя бы один ключ. Ключи должны присутствовать в параметре ffi.

options

Ассоциативный массив с опциями.

Ключ | Тип данных | Описание
"compression_alg" | string | Алгоритм сжатия. Для включения сжатия данных должны быть заданы как "compression_alg", так и "compression_level".
"compression_level" | integer | Уровень сжатия, 0-9. 0 отключает сжатие.
"armor" | boolean | Включает ASCII-защищённый вывод. По умолчанию отключён.
"hash" | string | Устанавливает хеш-алгоритм, используемый при вычислении подписи.
"creation_time" | integer | Устанавливает время создания подписи в секундах с 1 января 1970 года по Гринвичу. По умолчанию используется текущее время.
"expiration_time" | integer | Устанавливает время истечения срока действия подписи в секундах с момента создания. Значение 0 используется для пометки подписи как не истекающей (значение по умолчанию).
"file_name" | string | Устанавливает внутреннее имя файла для шифруемых данных. Специальное значение _CONSOLE может использоваться для пометки сообщения как "только для ваших глаз", т.е. оно не должно нигде храниться, а только отображаться получателю. По умолчанию используется пустая строка.
"file_mtime" | integer | Устанавливает дату модификации входного файла в секундах с 1 января 1970 года по Гринвичу.

Возвращаемые значения

Возвращает данные с присоединённой подписью (подписями) в случае успешного выполнения или false в случае возникновения ошибки.


Проверяет отсоединённые подписи

  • « rnp_op_sign
  • rnp_op_verify »
  • PHP Manual
  • Функции Rnp
  • Проверяет отсоединённые подписи

rnp_op_verify_detached

(PECL rnp >= 0.1.1)

rnp_op_verify_detached — Проверяет отсоединённые подписи

Описание

rnp_op_verify_detached(RnpFFI $ffi, string $data, string $signature): array|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

data

Исходные данные.

signature

Данные отсоединённой подписи.

Возвращаемые значения

Ассоциативный массив, содержащий информацию о результатах проверки или false в случае возникновения ошибки.

Ключ | Тип данных | Описание
"verification_status" | string | Общий результат проверки, либо строка "Success", либо соответствующее сообщение об ошибке. Результат "Success" устанавливается, если хотя бы одна подпись является действительной и успешно проверена. Индивидуальные результаты проверки для каждой подписи можно проверить в массиве "signatures".
"file_name" | string | Имя файла.
"file_mtime" | integer | Время изменения файла.
"mode" | string | Режим защиты данных (шифрования), используемый в обрабатываемом сообщении. В настоящее время определены следующие значения: "none", "cfb", "cfb-mdc", "aead-ocb", "aead-eax".
"cipher" | string | Симметричный шифр, используемый для шифрования данных.
"valid_integrity" | boolean | true, если использовалась защита целостности сообщения (т.е. MDC или AEAD) и она была успешно подтверждена.
"signatures" | array | Ассоциативный массив, описывающий каждую найденную подпись. Смотрите описание ниже.

Дочерний массив "signatures".

Ключ | Тип данных | Описание
"verification_status" | string | Статус проверки подписи, либо строка "Success", либо соответствующее сообщение об ошибке.
"creation_time" | integer | Время создания подписи в секундах с 1 января 1970 года по Гринвичу.
"expiration_time" | integer | Время истечения срока действия подписи в секундах с момента создания или 0, если срок действия подписи не истекает.
"hash" | string | Алгоритм хеш-функции, используемый для вычисления подписи.
"signing_key" | string | Цифровой отпечаток ключа, используемого для подписи. Может иметь значение "Not found", если соответствующий открытый ключ не загружен в объект FFI.
"signature_type" | string | Тип подписи. В настоящее время определены следующие значения: 'binary', 'text', 'standalone', 'certification (generic)', 'certification (persona)', 'certification (casual)', 'certification (positive)', 'subkey binding', 'primary key binding', 'direct', 'key revocation', 'subkey revocation', 'certification revocation', 'timestamp', 'uknown: 0..255'.


Проверяет присоединённую подпись или подпись открытого текста

  • « rnp_op_verify_detached
  • rnp_save_keys_to_path »
  • PHP Manual
  • Функции Rnp
  • Проверяет присоединённую подпись или подпись открытого текста

rnp_op_verify

(PECL rnp >= 0.1.1)

rnp_op_verify — Проверяет присоединённую подпись или подпись открытого текста

Описание

rnp_op_verify(RnpFFI $ffi, string $data): array|false

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

data

Подписанные данные.

Возвращаемые значения

Ассоциативный массив, содержащий информацию о результатах проверки или false в случае возникновения ошибки.

Key | Data type | Описание
"verification_status" | string | Общий результат проверки, либо строка "Success", либо соответствующее сообщение об ошибке. Результат "Success" устанавливается, если хотя бы одна подпись является действительной и успешно проверена. Индивидуальные результаты проверки для каждой подписи можно проверить в массиве "signatures".
"file_name" | string | Имя файла.
"file_mtime" | integer | Время изменения файла.
"mode" | string | Режим защиты данных (шифрования), используемый в обрабатываемом сообщении. В настоящее время определены следующие значения: "none", "cfb", "cfb-mdc", "aead-ocb", "aead-eax".
"cipher" | string | Симметричный шифр, используемый для шифрования данных.
"valid_integrity" | boolean | true, если использовалась защита целостности сообщения (т.е. MDC или AEAD) и она была успешно подтверждена.
"signatures" | array | Ассоциативный массив, описывающий каждую найденную подпись. Смотрите описание ниже.

Дочерний массив "signatures".

Ключ | Тип данных | Описание
"verification_status" | string | Статус проверки подписи, либо строка "Success", либо соответствующее сообщение об ошибке.
"creation_time" | integer | Время создания подписи в секундах с 1 января 1970 года по Гринвичу.
"expiration_time" | integer | Время истечения срока действия подписи в секундах с момента создания или 0, если срок действия подписи не истекает.
"hash" | string | Алгоритм хеш-функции, используемый для вычисления подписи.
"signing_key" | string | Цифровой отпечаток ключа, используемого для подписи. Может иметь значение "Not found", если соответствующий открытый ключ не загружен в объект FFI.
"signature_type" | string | Тип подписи. В настоящее время определены следующие значения: 'binary', 'text', 'standalone', 'certification (generic)', 'certification (persona)', 'certification (casual)', 'certification (positive)', 'subkey binding', 'primary key binding', 'direct', 'key revocation', 'subkey revocation', 'certification revocation', 'timestamp', 'uknown: 0..255'.


Сохраняет ключи по указанному пути

  • « rnp_op_verify
  • rnp_save_keys »
  • PHP Manual
  • Функции Rnp
  • Сохраняет ключи по указанному пути

rnp_save_keys_to_path

(PECL rnp >= 0.1.1)

rnp_save_keys_to_path — Сохраняет ключи по указанному пути

Описание

rnp_save_keys_to_path(
RnpFFI $ffi,
string $format,
string $output_path,
int $flags
): bool

Сохраняет ключи, присутствующие в объекте FFI (загруженном или сгенерированном), в указанном файле или каталоге.

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

format

Формат ключа данных (GPG, KBX, G10).

output_path

Путь к файлу или каталогу, в который должны быть сохранены ключи.

flags

Смотрите описание флагов RNP_LOAD_SAVE_*.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Сохраняет ключи в строке PHP

  • « rnp_save_keys_to_path
  • rnp_supported_features »
  • PHP Manual
  • Функции Rnp
  • Сохраняет ключи в строке PHP

rnp_save_keys

(PECL rnp >= 0.1.1)

rnp_save_keys — Сохраняет ключи в строке PHP

Описание

rnp_save_keys(
RnpFFI $ffi,
string $format,
string &$output,
int $flags
): bool

Обратите внимание, что для G10 значением output должен быть каталог (который уже должен существовать).

Список параметров

ffi

Объект FFI, возвращаемый функцией rnp_ffi_create.

format

Формат ключа данных (GPG, KBX, G10).

output

Ключевые пакеты будут сохранены в строке, на которую ссылается output.

flags

Смотрите описание флагов RNP_LOAD_SAVE_*.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Получает поддерживаемые функции в формате JSON

  • « rnp_save_keys
  • rnp_version_string_full »
  • PHP Manual
  • Функции Rnp
  • Получает поддерживаемые функции в формате JSON

rnp_supported_features

(PECL rnp >= 0.1.1)

rnp_supported_features — Получает поддерживаемые функции в формате JSON

Описание

rnp_supported_features(string $type): string|false

Получение строки в формате JSON, содержащей массив поддерживаемых значений признаков rnp (алгоритмов, кривых и т.д.) по типам.

Список параметров

type

Поддерживаемые значения смотрите в константах RNP_FEATURE_*.

Возвращаемые значения

Возвращает строку, содержащую JSON-форматированный массив поддерживаемых алгоритмов, кривых и т.д. или false в случае возникновения ошибки.


Возвращает строку полной версии библиотеки RNP

  • « rnp_supported_features
  • rnp_version_string »
  • PHP Manual
  • Функции Rnp
  • Возвращает строку полной версии библиотеки RNP

rnp_version_string_full

(PECL rnp >= 0.1.1)

rnp_version_string_full — Возвращает строку полной версии библиотеки RNP

Описание

rnp_version_string_full(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку полной версии библиотеки RNP.


Возвращает строку версии библиотеки RNP

  • « rnp_version_string_full
  • RnpFFI »
  • PHP Manual
  • Функции Rnp
  • Возвращает строку версии библиотеки RNP

rnp_version_string

(PECL rnp >= 0.1.1)

rnp_version_string — Возвращает строку версии библиотеки RNP

Описание

rnp_version_string(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку версии библиотеки RNP.


  • « rnp_version_string
  • Sodium »
  • PHP Manual
  • Rnp
  • Класс RnpFFI

Класс RnpFFI

(PECL rnp >= 0.1.1)

Введение

Обзор классов

class RnpFFI {
}


Sodium

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции Sodium
    • sodium_add — Добавляет большие числа
    • sodium_base642bin — Преобразует строку в кодировке base64 в необработанный двоичный файл
    • sodium_bin2base64 — Кодирует необработанную двоичную строку с помощью base64
    • sodium_bin2hex — Кодировать в шестнадцатеричное представление
    • sodium_compare — Сравнить большие числа
    • sodium_crypto_aead_aes256gcm_decrypt — Проверяет и расшифровывает сообщение с помощью AES-256-GCM
    • sodium_crypto_aead_aes256gcm_encrypt — Шифрует, а затем проверяет подлинность с помощью AES-256-GCM
    • sodium_crypto_aead_aes256gcm_is_available — Проверить, поддерживает ли оборудование AES256-GCM
    • sodium_crypto_aead_aes256gcm_keygen — Создаёт случайный ключ AES-256-GCM
    • sodium_crypto_aead_chacha20poly1305_decrypt — Проверяет, затем расшифровывает с помощью ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_encrypt — Шифрует, а затем проверяет подлинность с помощью ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Проверить, что зашифрованный текст содержит допустимый тег
    • sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Зашифровать сообщение
    • sodium_crypto_aead_chacha20poly1305_ietf_keygen — Создаёт случайный ключ ChaCha20-Poly1305 (IETF)
    • sodium_crypto_aead_chacha20poly1305_keygen — Создаёт случайный ключ ChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — (Предпочтительно) Проверяет, затем расшифровывает с помощью XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — (Предпочтительно) Шифрует, а затем проверяет подлинность с помощью XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Создаёт случайный ключ XChaCha20-Poly1305
    • sodium_crypto_auth_keygen — Создаёт случайный ключ для sodium_crypto_auth
    • 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 — Извлекает открытый ключ из ключевой пары crypto_box
    • sodium_crypto_box_seal_open — Расшифровка открытым ключом без проверки подлинности
    • sodium_crypto_box_seal — Шифрование открытым ключом без проверки подлинности
    • sodium_crypto_box_secretkey — Извлекает секретный ключ из ключевой пары crypto_box
    • sodium_crypto_box_seed_keypair — Детерминистический вывод ключевой пары из одного ключа
    • sodium_crypto_box — Шифрование открытым ключом с проверкой подлинности
    • sodium_crypto_core_ristretto255_add — Добавляет элемент
    • sodium_crypto_core_ristretto255_from_hash — Сопоставляет вектор
    • sodium_crypto_core_ristretto255_is_valid_point — Определяет, лежит ли точка на кривой ristretto255
    • sodium_crypto_core_ristretto255_random — Генерирует случайный ключ
    • sodium_crypto_core_ristretto255_scalar_add — Добавляет скалярное значение
    • sodium_crypto_core_ristretto255_scalar_complement — Назначение sodium_crypto_core_ristretto255_scalar_complement
    • sodium_crypto_core_ristretto255_scalar_invert — Инвертирует скалярное значение
    • sodium_crypto_core_ristretto255_scalar_mul — Умножает скалярное значение
    • sodium_crypto_core_ristretto255_scalar_negate — Отменяет скалярное значение
    • sodium_crypto_core_ristretto255_scalar_random — Генерирует случайный ключ
    • sodium_crypto_core_ristretto255_scalar_reduce — Уменьшает скалярное значение
    • sodium_crypto_core_ristretto255_scalar_sub — Вычитает скалярное значение
    • sodium_crypto_core_ristretto255_sub — Вычитает элемент
    • 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 — Создаёт случайный корневой ключ для интерфейса KDF
    • sodium_crypto_kx_client_session_keys — Вычисляет ключи сессии на стороне клиента
    • sodium_crypto_kx_keypair — Создаёт новую пару ключей sodium
    • sodium_crypto_kx_publickey — Извлекает открытый ключ из пары ключей crypto_kx
    • sodium_crypto_kx_secretkey — Извлекает секретный ключ из пары ключей crypto_kx
    • 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 — Получает ключ из пароля, используя scrypt
    • sodium_crypto_pwhash_str_needs_rehash — Определяет, следует ли повторно использовать пароль
    • sodium_crypto_pwhash_str_verify — Проверяет, что пароль соответствует хешу
    • sodium_crypto_pwhash_str — Получить ASCII-кодированный хеш
    • sodium_crypto_pwhash — Получает ключ из пароля, используя Argon2
    • sodium_crypto_scalarmult_base — Псевдоним sodium_crypto_box_publickey_from_secretkey
    • sodium_crypto_scalarmult_ristretto255_base — Вычисляет открытый ключ из закрытого ключа
    • sodium_crypto_scalarmult_ristretto255 — Вычисляет общий секрет
    • sodium_crypto_scalarmult — Вычислить общий секрет на основании секретного ключа пользователя и открытого ключа другого пользователя
    • sodium_crypto_secretbox_keygen — Создаёт случайный ключ для sodium_crypto_secretbox
    • sodium_crypto_secretbox_open — Расшифровка с использованием общего ключа с проверкой подлинности
    • sodium_crypto_secretbox — Шифрование с общим ключом с проверкой подлинности
    • sodium_crypto_secretstream_xchacha20poly1305_init_pull — Инициализирует контекст secretstream для дешифрования
    • sodium_crypto_secretstream_xchacha20poly1305_init_push — Инициализирует контекст secretstream для шифрования
    • sodium_crypto_secretstream_xchacha20poly1305_keygen — Создаёт случайный ключ secretstream
    • sodium_crypto_secretstream_xchacha20poly1305_pull — Расшифровывает часть данных из зашифрованного потока
    • sodium_crypto_secretstream_xchacha20poly1305_push — Шифрует фрагмент данных, чтобы его можно было безопасно расшифровать в потоковом API
    • sodium_crypto_secretstream_xchacha20poly1305_rekey — Явно поворачивает ключ в состояние secretstream
    • 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 — Извлекает открытый ключ Ed25519 из секретного ключа
    • sodium_crypto_sign_publickey — Извлекает открытый ключ Ed25519 из пары ключей
    • sodium_crypto_sign_secretkey — Извлекает секретный ключ Ed25519 из пары ключей
    • sodium_crypto_sign_seed_keypair — Детерминированный вывод пары ключей из одного ключа
    • sodium_crypto_sign_verify_detached — Проверить подпись для сообщения
    • sodium_crypto_sign — Подписать сообщение
    • sodium_crypto_stream_keygen — Генерирует случайный ключ sodium_crypto_stream
    • sodium_crypto_stream_xchacha20_keygen — Возвращает безопасный случайный ключ
    • sodium_crypto_stream_xchacha20_xor_ic — Шифрует сообщение, используя неясный код и секретный ключ (без аутентификации)
    • sodium_crypto_stream_xchacha20_xor — Шифрует сообщение, используя одноразовый номер и секретный ключ (без аутентификации)
    • sodium_crypto_stream_xchacha20 — Расширяет ключ и одноразовый номер в ключевой поток псевдослучайных байтов
    • sodium_crypto_stream_xor — Шифрует сообщение без аутентификации
    • sodium_crypto_stream — Создаёт детерминированную последовательность байтов из начального числа
    • sodium_hex2bin — Декодирует строку в шестнадцатеричном представлении в бинарное
    • sodium_increment — Увеличить на единицу большое число
    • sodium_memcmp — Проверка на равенство за постоянное количество времени
    • sodium_memzero — Перезаписывает строку символами NULL
    • sodium_pad — Дополняет строку отступами
    • sodium_unpad — Удаление данных отступов
  • SodiumException — Класс SodiumException


Введение

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 (int)
SODIUM_LIBRARY_MINOR_VERSION (int)
SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES (int)
SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES (int)
SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES (int)
SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES (int)
SODIUM_CRYPTO_AUTH_BYTES (int)
SODIUM_CRYPTO_AUTH_KEYBYTES (int)
SODIUM_CRYPTO_BOX_SEALBYTES (int)
SODIUM_CRYPTO_BOX_SECRETKEYBYTES (int)
SODIUM_CRYPTO_BOX_PUBLICKEYBYTES (int)
SODIUM_CRYPTO_BOX_KEYPAIRBYTES (int)
SODIUM_CRYPTO_BOX_MACBYTES (int)
SODIUM_CRYPTO_BOX_NONCEBYTES (int)
SODIUM_CRYPTO_BOX_SEEDBYTES (int)
SODIUM_CRYPTO_KDF_BYTES_MIN (int)
SODIUM_CRYPTO_KDF_BYTES_MAX (int)
SODIUM_CRYPTO_KDF_CONTEXTBYTES (int)
SODIUM_CRYPTO_KDF_KEYBYTES (int)
SODIUM_CRYPTO_KX_SEEDBYTES (int)
SODIUM_CRYPTO_KX_SESSIONKEYBYTES (int)
SODIUM_CRYPTO_KX_PUBLICKEYBYTES (int)
SODIUM_CRYPTO_KX_SECRETKEYBYTES (int)
SODIUM_CRYPTO_KX_KEYPAIRBYTES (int)
SODIUM_CRYPTO_GENERICHASH_BYTES (int)
SODIUM_CRYPTO_GENERICHASH_BYTES_MIN (int)
SODIUM_CRYPTO_GENERICHASH_BYTES_MAX (int)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES (int)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN (int)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX (int)
SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13 (int)
SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13 (int)
SODIUM_CRYPTO_PWHASH_ALG_DEFAULT (int)
SODIUM_CRYPTO_PWHASH_SALTBYTES (int)
SODIUM_CRYPTO_PWHASH_STRPREFIX (string)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE (int)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE (int)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX (string)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES (int)
Доступно, начиная с PHP 8.1.0.
SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES (int)
Доступно, начиная с PHP 8.1.0.
SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES (int)
Доступно, начиная с PHP 8.1.0.
SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES (int)
Доступно, начиная с PHP 8.1.0.
SODIUM_CRYPTO_SCALARMULT_BYTES (int)
SODIUM_CRYPTO_SCALARMULT_SCALARBYTES (int)
SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES (int)
Доступно, начиная с PHP 8.1.0.
SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES (int)
Доступно, начиная с PHP 8.1.0.
SODIUM_CRYPTO_SHORTHASH_BYTES (int)
SODIUM_CRYPTO_SHORTHASH_KEYBYTES (int)
SODIUM_CRYPTO_SECRETBOX_KEYBYTES (int)
SODIUM_CRYPTO_SECRETBOX_MACBYTES (int)
SODIUM_CRYPTO_SECRETBOX_NONCEBYTES (int)
SODIUM_CRYPTO_SIGN_BYTES (int)
SODIUM_CRYPTO_SIGN_SEEDBYTES (int)
SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES (int)
SODIUM_CRYPTO_SIGN_SECRETKEYBYTES (int)
SODIUM_CRYPTO_SIGN_KEYPAIRBYTES (int)
SODIUM_CRYPTO_STREAM_NONCEBYTES (int)
SODIUM_CRYPTO_STREAM_KEYBYTES (int)
SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES (int)
Доступно, начиная с PHP 8.1.0.
SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES (int)
Доступно, начиная с PHP 8.1.0.


Функции Sodium

Содержание

  • sodium_add — Добавляет большие числа
  • sodium_base642bin — Преобразует строку в кодировке base64 в необработанный двоичный файл
  • sodium_bin2base64 — Кодирует необработанную двоичную строку с помощью base64
  • sodium_bin2hex — Кодировать в шестнадцатеричное представление
  • sodium_compare — Сравнить большие числа
  • sodium_crypto_aead_aes256gcm_decrypt — Проверяет и расшифровывает сообщение с помощью AES-256-GCM
  • sodium_crypto_aead_aes256gcm_encrypt — Шифрует, а затем проверяет подлинность с помощью AES-256-GCM
  • sodium_crypto_aead_aes256gcm_is_available — Проверить, поддерживает ли оборудование AES256-GCM
  • sodium_crypto_aead_aes256gcm_keygen — Создаёт случайный ключ AES-256-GCM
  • sodium_crypto_aead_chacha20poly1305_decrypt — Проверяет, затем расшифровывает с помощью ChaCha20-Poly1305
  • sodium_crypto_aead_chacha20poly1305_encrypt — Шифрует, а затем проверяет подлинность с помощью ChaCha20-Poly1305
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Проверить, что зашифрованный текст содержит допустимый тег
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Зашифровать сообщение
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen — Создаёт случайный ключ ChaCha20-Poly1305 (IETF)
  • sodium_crypto_aead_chacha20poly1305_keygen — Создаёт случайный ключ ChaCha20-Poly1305
  • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — (Предпочтительно) Проверяет, затем расшифровывает с помощью XChaCha20-Poly1305
  • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — (Предпочтительно) Шифрует, а затем проверяет подлинность с помощью XChaCha20-Poly1305
  • sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Создаёт случайный ключ XChaCha20-Poly1305
  • sodium_crypto_auth_keygen — Создаёт случайный ключ для sodium_crypto_auth
  • 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 — Извлекает открытый ключ из ключевой пары crypto_box
  • sodium_crypto_box_seal_open — Расшифровка открытым ключом без проверки подлинности
  • sodium_crypto_box_seal — Шифрование открытым ключом без проверки подлинности
  • sodium_crypto_box_secretkey — Извлекает секретный ключ из ключевой пары crypto_box
  • sodium_crypto_box_seed_keypair — Детерминистический вывод ключевой пары из одного ключа
  • sodium_crypto_box — Шифрование открытым ключом с проверкой подлинности
  • sodium_crypto_core_ristretto255_add — Добавляет элемент
  • sodium_crypto_core_ristretto255_from_hash — Сопоставляет вектор
  • sodium_crypto_core_ristretto255_is_valid_point — Определяет, лежит ли точка на кривой ristretto255
  • sodium_crypto_core_ristretto255_random — Генерирует случайный ключ
  • sodium_crypto_core_ristretto255_scalar_add — Добавляет скалярное значение
  • sodium_crypto_core_ristretto255_scalar_complement — Назначение sodium_crypto_core_ristretto255_scalar_complement
  • sodium_crypto_core_ristretto255_scalar_invert — Инвертирует скалярное значение
  • sodium_crypto_core_ristretto255_scalar_mul — Умножает скалярное значение
  • sodium_crypto_core_ristretto255_scalar_negate — Отменяет скалярное значение
  • sodium_crypto_core_ristretto255_scalar_random — Генерирует случайный ключ
  • sodium_crypto_core_ristretto255_scalar_reduce — Уменьшает скалярное значение
  • sodium_crypto_core_ristretto255_scalar_sub — Вычитает скалярное значение
  • sodium_crypto_core_ristretto255_sub — Вычитает элемент
  • 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 — Создаёт случайный корневой ключ для интерфейса KDF
  • sodium_crypto_kx_client_session_keys — Вычисляет ключи сессии на стороне клиента
  • sodium_crypto_kx_keypair — Создаёт новую пару ключей sodium
  • sodium_crypto_kx_publickey — Извлекает открытый ключ из пары ключей crypto_kx
  • sodium_crypto_kx_secretkey — Извлекает секретный ключ из пары ключей crypto_kx
  • 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 — Получает ключ из пароля, используя scrypt
  • sodium_crypto_pwhash_str_needs_rehash — Определяет, следует ли повторно использовать пароль
  • sodium_crypto_pwhash_str_verify — Проверяет, что пароль соответствует хешу
  • sodium_crypto_pwhash_str — Получить ASCII-кодированный хеш
  • sodium_crypto_pwhash — Получает ключ из пароля, используя Argon2
  • sodium_crypto_scalarmult_base — Псевдоним sodium_crypto_box_publickey_from_secretkey
  • sodium_crypto_scalarmult_ristretto255_base — Вычисляет открытый ключ из закрытого ключа
  • sodium_crypto_scalarmult_ristretto255 — Вычисляет общий секрет
  • sodium_crypto_scalarmult — Вычислить общий секрет на основании секретного ключа пользователя и открытого ключа другого пользователя
  • sodium_crypto_secretbox_keygen — Создаёт случайный ключ для sodium_crypto_secretbox
  • sodium_crypto_secretbox_open — Расшифровка с использованием общего ключа с проверкой подлинности
  • sodium_crypto_secretbox — Шифрование с общим ключом с проверкой подлинности
  • sodium_crypto_secretstream_xchacha20poly1305_init_pull — Инициализирует контекст secretstream для дешифрования
  • sodium_crypto_secretstream_xchacha20poly1305_init_push — Инициализирует контекст secretstream для шифрования
  • sodium_crypto_secretstream_xchacha20poly1305_keygen — Создаёт случайный ключ secretstream
  • sodium_crypto_secretstream_xchacha20poly1305_pull — Расшифровывает часть данных из зашифрованного потока
  • sodium_crypto_secretstream_xchacha20poly1305_push — Шифрует фрагмент данных, чтобы его можно было безопасно расшифровать в потоковом API
  • sodium_crypto_secretstream_xchacha20poly1305_rekey — Явно поворачивает ключ в состояние secretstream
  • 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 — Извлекает открытый ключ Ed25519 из секретного ключа
  • sodium_crypto_sign_publickey — Извлекает открытый ключ Ed25519 из пары ключей
  • sodium_crypto_sign_secretkey — Извлекает секретный ключ Ed25519 из пары ключей
  • sodium_crypto_sign_seed_keypair — Детерминированный вывод пары ключей из одного ключа
  • sodium_crypto_sign_verify_detached — Проверить подпись для сообщения
  • sodium_crypto_sign — Подписать сообщение
  • sodium_crypto_stream_keygen — Генерирует случайный ключ sodium_crypto_stream
  • sodium_crypto_stream_xchacha20_keygen — Возвращает безопасный случайный ключ
  • sodium_crypto_stream_xchacha20_xor_ic — Шифрует сообщение, используя неясный код и секретный ключ (без аутентификации)
  • sodium_crypto_stream_xchacha20_xor — Шифрует сообщение, используя одноразовый номер и секретный ключ (без аутентификации)
  • sodium_crypto_stream_xchacha20 — Расширяет ключ и одноразовый номер в ключевой поток псевдослучайных байтов
  • sodium_crypto_stream_xor — Шифрует сообщение без аутентификации
  • sodium_crypto_stream — Создаёт детерминированную последовательность байтов из начального числа
  • sodium_hex2bin — Декодирует строку в шестнадцатеричном представлении в бинарное
  • sodium_increment — Увеличить на единицу большое число
  • sodium_memcmp — Проверка на равенство за постоянное количество времени
  • sodium_memzero — Перезаписывает строку символами NULL
  • sodium_pad — Дополняет строку отступами
  • sodium_unpad — Удаление данных отступов


Добавляет большие числа

  • « Функции Sodium
  • sodium_base642bin »
  • PHP Manual
  • Функции Sodium
  • Добавляет большие числа

sodium_add

(PHP 7 >= 7.2.0, PHP 8)

sodium_add — Добавляет большие числа

Описание

sodium_add(string &$string1, string $string2): void

Добавляет параметр string2 к string1, перезаписывая значение, хранящееся в string1. Функция предполагает, что оба параметра являются двоичными строками, которые представляют целые числа без знака в обратном порядке байтов.

Список параметров

string1

Строка, представляющая целое число произвольной длины без знака в обратном порядке байтов. Этот параметр передаётся по ссылке и будет содержать сумму двух параметров.

string2

Строка, представляющая целое число произвольной длины без знака в обратном порядке байтов.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Преобразует строку в кодировке base64 в необработанный двоичный файл

  • « sodium_add
  • sodium_bin2base64 »
  • PHP Manual
  • Функции Sodium
  • Преобразует строку в кодировке base64 в необработанный двоичный файл

sodium_base642bin

(PHP 7 >= 7.2.0, PHP 8)

sodium_base642bin — Преобразует строку в кодировке base64 в необработанный двоичный файл

Описание

sodium_base642bin(string $string, int $id, string $ignore = ""): string

Преобразует строку в кодировке base64 в необработанный двоичный файл. В отличие от base64_decode(), sodium_base642bin() является постоянным по времени (свойство, которое важно для любого кода, который касается криптографических входных данных, таких как простые тексты или ключи) и поддерживает несколько наборов символов.

Список параметров

string

Строка (string); Закодированная строка.

id

  • SODIUM_BASE64_VARIANT_ORIGINAL для стандартного (A-Za-z0-9/\+). Кодировка Base64.
  • SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING для стандартного (A-Za-z0-9/\+) Кодировка Base64 без дополнительных символов =.
  • SODIUM_BASE64_VARIANT_URLSAFE для URL-безопасного (A-Za-z0-9\-_). Кодировка Base64.
  • SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING for URL-safe (A-Za-z0-9\-_). Кодировка Base64 без дополнительных символов =.

ignore

Символы, которые следует игнорировать во время преобразования (например, символы пробела).

Возвращаемые значения

Преобразованная строка.


Кодирует необработанную двоичную строку с помощью base64

  • « sodium_base642bin
  • sodium_bin2hex »
  • PHP Manual
  • Функции Sodium
  • Кодирует необработанную двоичную строку с помощью base64

sodium_bin2base64

(PHP 7 >= 7.2.0, PHP 8)

sodium_bin2base64 — Кодирует необработанную двоичную строку с помощью base64

Описание

sodium_bin2base64(string $string, int $id): string

Преобразует необработанную двоичную строку в строку в кодировке base64. В отличие от base64_encode(), sodium_bin2base64() является постоянной по времени (свойство, которое важно для любого кода, который касается криптографических входных данных, таких как простые тексты или ключи), и поддерживает несколько наборов символов.

Список параметров

string

Необработанная двоичная строка.

id

  • SODIUM_BASE64_VARIANT_ORIGINAL для стандартного (A-Za-z0-9/\+) Кодировка Base64.
  • SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING for standard (A-Za-z0-9/\+) Кодировка Base64 без дополнительных символов =.
  • SODIUM_BASE64_VARIANT_URLSAFE для URL-безопасного (A-Za-z0-9\-_) Кодировка Base64.
  • SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING для URL-безопасного (A-Za-z0-9\-_) Кодировка Base64 без дополнительных символов =.

Возвращаемые значения

Строка в кодировке Base64.


Кодировать в шестнадцатеричное представление

  • « sodium_bin2base64
  • sodium_compare »
  • PHP Manual
  • Функции Sodium
  • Кодировать в шестнадцатеричное представление

sodium_bin2hex

(PHP 7 >= 7.2.0, PHP 8)

sodium_bin2hex — Кодировать в шестнадцатеричное представление

Описание

sodium_bin2hex(string $string): string

Преобразует необработанную двоичную строку в строку в шестнадцатеричной кодировке. В отличие от стандартной функции шестнадцатеричного кодирования, sodium_bin2hex() является постоянной по времени (свойство, которое важно для любого кода, который касается криптографических данных, таких как тексты или ключи).

Список параметров

string

Необработанная двоичная строка.

Возвращаемые значения

Строка в шестнадцатеричном коде.


Сравнить большие числа

  • « sodium_bin2hex
  • sodium_crypto_aead_aes256gcm_decrypt »
  • PHP Manual
  • Функции Sodium
  • Сравнить большие числа

sodium_compare

(PHP 7 >= 7.2.0, PHP 8)

sodium_compare — Сравнить большие числа

Описание

sodium_compare(string $string1, string $string2): int

Сравнивает две строки, как если бы они были целыми числами произвольной длины без знака с прямым порядком байтов, без утечки из побочного канала.

Список параметров

string1

Левый операнд

string2

Правый операнд

Возвращаемые значения

Возвращает -1, если string1 меньше string2.

Возвращает 1, если string1 больше string2.

Возвращает 0, если строки равны.


Проверяет и расшифровывает сообщение с помощью AES-256-GCM

  • « sodium_compare
  • sodium_crypto_aead_aes256gcm_encrypt »
  • PHP Manual
  • Функции Sodium
  • Проверяет и расшифровывает сообщение с помощью AES-256-GCM

sodium_crypto_aead_aes256gcm_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_decrypt — Проверяет и расшифровывает сообщение с помощью AES-256-GCM

Описание

sodium_crypto_aead_aes256gcm_decrypt(
string $ciphertext,
string $additional_data,
string $nonce,
string $key
): string|false

Проверяет и расшифровывает сообщение с помощью AES-256-GCM Доступно, только если sodium_crypto_aead_aes256gcm_is_available() возвращает true.

Список параметров

ciphertext

Должен быть в формате, предоставленном sodium_crypto_aead_aes256gcm_encrypt() (зашифрованный текст и тег, объединённые).

additional_data

Дополнительные проверенные данные. Это используется при проверке тега аутентификации, добавленного к зашифрованному тексту, но он не шифруется и не сохраняется в зашифрованном тексте.

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 12 байт.

key

Ключ шифрования (256 бит).

Возвращаемые значения

В случае успешного выполнения возвращает текст или false в случае возникновения ошибки.


Шифрует, а затем проверяет подлинность с помощью AES-256-GCM

  • « sodium_crypto_aead_aes256gcm_decrypt
  • sodium_crypto_aead_aes256gcm_is_available »
  • PHP Manual
  • Функции Sodium
  • Шифрует, а затем проверяет подлинность с помощью AES-256-GCM

sodium_crypto_aead_aes256gcm_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_encrypt — Шифрует, а затем проверяет подлинность с помощью AES-256-GCM

Описание

sodium_crypto_aead_aes256gcm_encrypt(
string $message,
string $additional_data,
string $nonce,
string $key
): string

Шифрует, а затем проверяет подлинность с помощью AES-256-GCM. Доступно, только если sodium_crypto_aead_aes256gcm_is_available() возвращает true.

Список параметров

message

Текстовое сообщение, которое нужно зашифровать.

additional_data

Дополнительные проверенные данные. Это используется при проверке тега подлинности, добавленного к зашифрованному тексту, но он не шифруется и не сохраняется в зашифрованном тексте.

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 12 байт.

key

Ключ шифрования (256 бит).

Возвращаемые значения

Возвращает зашифрованный текст и тег проверки подлинности в виде строки необработанных двоичных байтов. (Формат: зашифрованный текст, затем тег.)


Проверить, поддерживает ли оборудование 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, PHP 8)

sodium_crypto_aead_aes256gcm_is_available — Проверить, поддерживает ли оборудование AES256-GCM

Описание

sodium_crypto_aead_aes256gcm_is_available(): bool

Возвращаемое значение этой функции зависит от того, поддерживает ли оборудование аппаратное ускорение AES.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если шифрование с помощью AES-256-GCM безопасно, в противном случае возвращает false.


Создаёт случайный ключ AES-256-GCM

  • « sodium_crypto_aead_aes256gcm_is_available
  • sodium_crypto_aead_chacha20poly1305_decrypt »
  • PHP Manual
  • Функции Sodium
  • Создаёт случайный ключ AES-256-GCM

sodium_crypto_aead_aes256gcm_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_keygen — Создаёт случайный ключ AES-256-GCM

Описание

sodium_crypto_aead_aes256gcm_keygen(): string

Создаёт случайный ключ для использования в sodium_crypto_aead_aes256gcm_encrypt() и sodium_crypto_aead_aes256gcm_decrypt().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 256-битный случайный ключ.


Проверяет, затем расшифровывает с помощью ChaCha20-Poly1305

  • « sodium_crypto_aead_aes256gcm_keygen
  • sodium_crypto_aead_chacha20poly1305_encrypt »
  • PHP Manual
  • Функции Sodium
  • Проверяет, затем расшифровывает с помощью ChaCha20-Poly1305

sodium_crypto_aead_chacha20poly1305_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_decrypt — Проверяет, затем расшифровывает с помощью ChaCha20-Poly1305

Описание

sodium_crypto_aead_chacha20poly1305_decrypt(
string $ciphertext,
string $additional_data,
string $nonce,
string $key
): string|false

Проверяет, затем расшифровывает с помощью ChaCha20-Poly1305

Список параметров

ciphertext

Должен быть в формате, предоставленном sodium_crypto_aead_chacha20poly1305_encrypt() (зашифрованный текст и тег, объединённые).

additional_data

Дополнительные проверенные данные. Это используется при проверке тега подлинности, добавленного к зашифрованному тексту, но он не шифруется и не сохраняется в зашифрованном тексте.

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 8 байт.

key

Ключ шифрования (256 бит).

Возвращаемые значения

В случае успешного выполнения возвращает текст или false в случае возникновения ошибки.


Шифрует, а затем проверяет подлинность с помощью ChaCha20-Poly1305

  • « sodium_crypto_aead_chacha20poly1305_decrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt »
  • PHP Manual
  • Функции Sodium
  • Шифрует, а затем проверяет подлинность с помощью ChaCha20-Poly1305

sodium_crypto_aead_chacha20poly1305_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_encrypt — Шифрует, а затем проверяет подлинность с помощью ChaCha20-Poly1305

Описание

sodium_crypto_aead_chacha20poly1305_encrypt(
string $message,
string $additional_data,
string $nonce,
string $key
): string

Шифрует, а затем проверяет подлинность с помощью ChaCha20-Poly1305

Список параметров

message

Текстовое сообщение, которое нужно зашифровать.

additional_data

Дополнительные проверенные данные. Это используется при проверке тега подлинности, добавленного к зашифрованному тексту, но он не шифруется и не сохраняется в зашифрованном тексте.

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 8 байт.

key

Ключ шифрования (256 бит).

Возвращаемые значения

В случае успешного выполнения возвращает зашифрованный текст и тег или false в случае возникновения ошибки.


Проверить, что зашифрованный текст содержит допустимый тег

  • « 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, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Проверить, что зашифрованный текст содержит допустимый тег

Описание

sodium_crypto_aead_chacha20poly1305_ietf_decrypt(
string $ciphertext,
string $additional_data,
string $nonce,
string $key
): string|false

Проверяет, затем расшифровывает с помощью ChaCha20-Poly1305 (вариант IETF).

Вариант IETF использует 96-битные одноразовые номера и 32-битные внутренние счётчики вместо 64-битных и для того и для другого.

Список параметров

ciphertext

Должен быть в формате, предоставленном sodium_crypto_aead_chacha20poly1305_ietf_encrypt() (зашифрованный текст и тег, объединённые).

additional_data

Дополнительные проверенные данные. Это используется при проверке тега подлинности, добавленного к зашифрованному тексту, но он не шифруется и не сохраняется в зашифрованном тексте.

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 12 байт.

key

Ключ шифрования (256 бит).

Возвращаемые значения

В случае успешного выполнения возвращает текст или false в случае возникновения ошибки.


Зашифровать сообщение

  • « 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, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Зашифровать сообщение

Описание

sodium_crypto_aead_chacha20poly1305_ietf_encrypt(
string $message,
string $additional_data,
string $nonce,
string $key
): string

Шифрует, а затем проверяет подлинность с помощью ChaCha20-Poly1305 (вариант IETF).

Вариант IETF использует 96-битные одноразовые номера и 32-битные внутренние счётчики вместо 64-битных и для того и для другого.

Список параметров

message

Текстовое сообщение, которое нужно зашифровать.

additional_data

Дополнительные проверенные данные. Это используется при проверке тега подлинности, добавленного к зашифрованному тексту, но он не шифруется и не сохраняется в зашифрованном тексте.

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 12 байт.

key

Ключ шифрования (256 бит).

Возвращаемые значения

В случае успешного выполнения возвращает зашифрованный текст и тег или false в случае возникновения ошибки.


Создаёт случайный ключ ChaCha20-Poly1305 (IETF)

  • « sodium_crypto_aead_chacha20poly1305_ietf_encrypt
  • sodium_crypto_aead_chacha20poly1305_keygen »
  • PHP Manual
  • Функции Sodium
  • Создаёт случайный ключ ChaCha20-Poly1305 (IETF)

sodium_crypto_aead_chacha20poly1305_ietf_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_keygen — Создаёт случайный ключ ChaCha20-Poly1305 (IETF)

Описание

sodium_crypto_aead_chacha20poly1305_ietf_keygen(): string

Создаёт случайный ключ для использования в sodium_crypto_aead_chacha20poly1305_ietf_encrypt() и sodium_crypto_aead_chacha20poly1305_ietf_decrypt().

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 256-битный случайный ключ.


Создаёт случайный ключ ChaCha20-Poly1305

  • « sodium_crypto_aead_chacha20poly1305_ietf_keygen
  • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt »
  • PHP Manual
  • Функции Sodium
  • Создаёт случайный ключ ChaCha20-Poly1305

sodium_crypto_aead_chacha20poly1305_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_keygen — Создаёт случайный ключ ChaCha20-Poly1305

Описание

sodium_crypto_aead_chacha20poly1305_keygen(): string

Создаёт случайный ключ для использования в sodium_crypto_aead_chacha20poly1305_encrypt() и sodium_crypto_aead_chacha20poly1305_decrypt().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 256-битный случайный ключ.


(Предпочтительно) Проверяет, затем расшифровывает с помощью XChaCha20-Poly1305

  • « sodium_crypto_aead_chacha20poly1305_keygen
  • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt »
  • PHP Manual
  • Функции Sodium
  • (Предпочтительно) Проверяет, затем расшифровывает с помощью XChaCha20-Poly1305

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — (Предпочтительно) Проверяет, затем расшифровывает с помощью XChaCha20-Poly1305

Описание

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt(
string $ciphertext,
string $additional_data,
string $nonce,
string $key
): string|false

(Предпочтительно) Проверяет, затем расшифровывает с помощью XChaCha20-Poly1305

Как правило, XChaCha20-Poly1305 - лучший из имеющихся режимов AEAD для использования.

Список параметров

ciphertext

Должен быть в формате, предоставленном sodium_crypto_aead_chacha20poly1305_ietf_encrypt() (зашифрованный текст и тег, объединённые).

additional_data

Дополнительные проверенные данные. Это используется при проверке тега подлинности, добавленного к зашифрованному тексту, но он не шифруется и не сохраняется в зашифрованном тексте.

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 24 байта. Это достаточно большая граница для случайной генерации (например, random_bytes()).

key

Ключ шифрования (256 бит).

Возвращаемые значения

В случае успешного выполнения возвращает текст или false в случае возникновения ошибки.


(Предпочтительно) Шифрует, а затем проверяет подлинность с помощью XChaCha20-Poly1305

  • « sodium_crypto_aead_xchacha20poly1305_ietf_decrypt
  • sodium_crypto_aead_xchacha20poly1305_ietf_keygen »
  • PHP Manual
  • Функции Sodium
  • (Предпочтительно) Шифрует, а затем проверяет подлинность с помощью XChaCha20-Poly1305

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — (Предпочтительно) Шифрует, а затем проверяет подлинность с помощью XChaCha20-Poly1305

Описание

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt(
string $message,
string $additional_data,
string $nonce,
string $key
): string

Шифрует, а затем проверяет подлинность с помощью XChaCha20-Poly1305(вариант eXtended-nonce).

Как правило, XChaCha20-Poly1305 - лучший из имеющихся режимов AEAD для использования.

Список параметров

message

Текстовое сообщение, которое нужно зашифровать.

additional_data

Дополнительные проверенные данные. Это используется при проверке тега подлинности, добавленного к зашифрованному тексту, но он не шифруется и не сохраняется в зашифрованном тексте.

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 24 байта. Это достаточно большая граница для случайной генерации (например, random_bytes()).

key

Ключ шифрования (256 бит).

Возвращаемые значения

В случае успешного выполнения возвращает зашифрованный текст и тег или false в случае возникновения ошибки.


Создаёт случайный ключ XChaCha20-Poly1305

  • « sodium_crypto_aead_xchacha20poly1305_ietf_encrypt
  • sodium_crypto_auth_keygen »
  • PHP Manual
  • Функции Sodium
  • Создаёт случайный ключ XChaCha20-Poly1305

sodium_crypto_aead_xchacha20poly1305_ietf_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Создаёт случайный ключ XChaCha20-Poly1305

Описание

sodium_crypto_aead_xchacha20poly1305_ietf_keygen(): string

Создаёт случайный ключ для использования в sodium_crypto_aead_xchacha20poly1305_ietf_encrypt() и sodium_crypto_aead_xchacha20poly1305_ietf_decrypt().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 256-битный случайный ключ.


Создаёт случайный ключ для sodium_crypto_auth

  • « sodium_crypto_aead_xchacha20poly1305_ietf_keygen
  • sodium_crypto_auth_verify »
  • PHP Manual
  • Функции Sodium
  • Создаёт случайный ключ для sodium_crypto_auth

sodium_crypto_auth_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth_keygen — Создаёт случайный ключ для sodium_crypto_auth

Описание

sodium_crypto_auth_keygen(): string

Создаёт ключ для использования в sodium_crypto_auth() и sodium_crypto_auth_verify().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 256-битный случайный ключ.


Проверяет, допустим ли тег для сообщения

  • « sodium_crypto_auth_keygen
  • sodium_crypto_auth »
  • PHP Manual
  • Функции Sodium
  • Проверяет, допустим ли тег для сообщения

sodium_crypto_auth_verify

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth_verify — Проверяет, допустим ли тег для сообщения

Описание

sodium_crypto_auth_verify(string $mac, string $message, string $key): bool

Проверяет, что тег аутентификации действителен для данного сообщения и ключа.

В отличие от цифровых подписей (например, sodium_crypto_sign_verify_detached()), любая сторона, способная проверить сообщение, также способна проверить подлинность своих собственных сообщений. (Следовательно, симметричная проверка подлинности.)

Список параметров

mac

Тег аутентификации, созданный sodium_crypto_auth()

message

Сообщение

key

Ключ аутентификации

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Вычислить тег для сообщения

  • « sodium_crypto_auth_verify
  • sodium_crypto_box_keypair_from_secretkey_and_publickey »
  • PHP Manual
  • Функции Sodium
  • Вычислить тег для сообщения

sodium_crypto_auth

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth — Вычислить тег для сообщения

Описание

sodium_crypto_auth(string $message, string $key): string

Симметричная проверка подлинности сообщения с помощью sodium_crypto_auth() обеспечивает целостность, но не конфиденциальность.

В отличие от цифровых подписей (например, sodium_crypto_sign_detached()), любая сторона, способная проверить сообщение, также способна проверить подлинность своих собственных сообщений. (Следовательно, симметричная аутентификация.)

Список параметров

message

Сообщение, которое вы собираетесь подтвердить.

key

Ключ аутентификации

Возвращаемые значения

Тег аутентификации


Создаёт унифицированную строку ключевой пары из секретного и открытого ключей

  • « sodium_crypto_auth
  • sodium_crypto_box_keypair »
  • PHP Manual
  • Функции Sodium
  • Создаёт унифицированную строку ключевой пары из секретного и открытого ключей

sodium_crypto_box_keypair_from_secretkey_and_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_keypair_from_secretkey_and_publickey — Создаёт унифицированную строку ключевой пары из секретного и открытого ключей

Описание

sodium_crypto_box_keypair_from_secretkey_and_publickey(string $secret_key, string $public_key): string

Функция существует для удовлетворения требований API, например crypto_box(). Передайте секретный ключ одной стороны и открытый ключ другой и вы получите ключевую пару для коммуникации.

Список параметров

secret_key

Секретный ключ.

public_key

Открытый ключ.

Возвращаемые значения

Ключевая пара X25519.


Сгенерировать случайным образом секретный ключ и соответствующий ему открытый ключ

  • « sodium_crypto_box_keypair_from_secretkey_and_publickey
  • sodium_crypto_box_open »
  • PHP Manual
  • Функции Sodium
  • Сгенерировать случайным образом секретный ключ и соответствующий ему открытый ключ

sodium_crypto_box_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_keypair — Сгенерировать случайным образом секретный ключ и соответствующий ему открытый ключ

Описание

sodium_crypto_box_keypair(): string

Создаёт секретный и открытый ключи как одну строку.

Чтобы получить секретный ключ из этой унифицированной строки ключевой пары, смотрите sodium_crypto_box_secretkey(). Чтобы получить открытый ключ из этой унифицированной строки ключевой пары, смотрите sodium_crypto_box_publickey().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Одна строка, содержащая секретный ключ X25519 и соответствующий открытый ключ X25519.


Расшифровка открытого ключа с проверкой подлинности

  • « sodium_crypto_box_keypair
  • sodium_crypto_box_publickey_from_secretkey »
  • PHP Manual
  • Функции Sodium
  • Расшифровка открытого ключа с проверкой подлинности

sodium_crypto_box_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_open — Расшифровка открытого ключа с проверкой подлинности

Описание

sodium_crypto_box_open(string $ciphertext, string $nonce, string $key_pair): string|false

Расшифровывает сообщение с использованием асимметричной криптографии (с открытым ключом).

Список параметров

ciphertext

Зашифрованное сообщение, которое нужно попытаться расшифровать.

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 24 байта. Это достаточно большая граница для случайной генерации (например, random_bytes()).

key_pair

Смотрите sodium_crypto_box_keypair_from_secretkey_and_publickey(). Должна включать открытый ключ отправителя и секретный ключ получателя.

Возвращаемые значения

Возвращает сообщение в случае успешного выполнения или false в случае возникновения ошибки.


Вычисляет открытый ключ из секретного ключа

  • « sodium_crypto_box_open
  • sodium_crypto_box_publickey »
  • PHP Manual
  • Функции Sodium
  • Вычисляет открытый ключ из секретного ключа

sodium_crypto_box_publickey_from_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_publickey_from_secretkey — Вычисляет открытый ключ из секретного ключа

Описание

sodium_crypto_box_publickey_from_secretkey(string $secret_key): string

Учитывая секретный ключ, вычисляет соответствующий открытый ключ.

Работает только с типом ключей, предназначенным для использования с crypto_box() (который использует эллиптическую кривую Диффи-Хеллмана на кривой Монтгомери, Curve25519; сокращённо X25519), а не crypto_sign() (который использует алгоритм цифровой подписи Эдвардса по кривой Эдвардса с соответствующими параметрами; сокращённо Ed25519).

Список параметров

secret_key

Секретный ключ X25519

Возвращаемые значения

Открытый ключ X25519.


Извлекает открытый ключ из ключевой пары crypto_box

  • « sodium_crypto_box_publickey_from_secretkey
  • sodium_crypto_box_seal_open »
  • PHP Manual
  • Функции Sodium
  • Извлекает открытый ключ из ключевой пары crypto_box

sodium_crypto_box_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_publickey — Извлекает открытый ключ из ключевой пары crypto_box

Описание

sodium_crypto_box_publickey(string $key_pair): string

Получает только открытый ключ из ключевой пары.

Список параметров

key_pair

Ключевая пара, созданная, например, sodium_crypto_box_keypair() или sodium_crypto_box_seed_keypair().

Возвращаемые значения

Открытый ключ X25519.


Расшифровка открытым ключом без проверки подлинности

  • « sodium_crypto_box_publickey
  • sodium_crypto_box_seal »
  • PHP Manual
  • Функции Sodium
  • Расшифровка открытым ключом без проверки подлинности

sodium_crypto_box_seal_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seal_open — Расшифровка открытым ключом без проверки подлинности

Описание

sodium_crypto_box_seal_open(string $ciphertext, string $key_pair): string|false

Расшифровывает сообщение, зашифрованное с помощью sodium_crypto_box_seal().

Список параметров

ciphertext

Зашифрованное сообщение

key_pair

Ключевая пара получателя. Должна включать секретный ключ.

Возвращаемые значения

Текст в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sodium_crypto_box_seal_open()

<?php
// Шифрованный текст нечувствителен; base64_decode в порядке
$sealed_b64 = "oRBXXAV4iQBrxlV4A21Bord8Yo/D8ZlrIIGNyaRCcGBfpz0map52I3xq6l+CST+1NSgQkbV+HiYyFjXWiWiaCGupGf+zl4bgWj/A9Adtem7Jt3h3emrMsLw=";
$sealed = base64_decode($sealed_b64);

// Ключевая пара содержит криптографический секрет; использовать безопасный по времени декодер
$keypair_b64 = "KZkF8wnB7bnC2aXB3lFOqCTc0Z6MllvaQb9ASVG8o2/MsewkuE4u1uaEgTzSakeiYyIW8DGj+02/L3cWIbs9bQ==";
$keypair = sodium_base642bin($keypair_b64, SODIUM_BASE64_VARIANT_ORIGINAL);

$opened = sodium_crypto_box_seal_open($sealed, $keypair);
var_dump($opened);
?>

Результатом выполнения данного примера будет что-то подобное:

string(41) "Writing software in PHP can be a delight!"


Шифрование открытым ключом без проверки подлинности

  • « sodium_crypto_box_seal_open
  • sodium_crypto_box_secretkey »
  • PHP Manual
  • Функции Sodium
  • Шифрование открытым ключом без проверки подлинности

sodium_crypto_box_seal

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seal — Шифрование открытым ключом без проверки подлинности

Описание

sodium_crypto_box_seal(string $message, string $public_key): string

Шифрует сообщение так, что только получатель может его расшифровать.

В отличие от sodium_crypto_box(), вам нужно знать только открытый ключ получателя, чтобы использовать sodium_crypto_box_seal(). Однако одним из следствий этого удобства является то, что зашифрованный текст не привязан к статическому открытому ключу и, следовательно, не аутентифицируется. Следовательно, шифрование открытым ключом без проверки подлинности.

sodium_crypto_box_seal() по-прежнему обеспечивает целостность зашифрованного текста. Только не проверяет подлинность отправителя.

Если вам также нужна проверка подлинности отправителя, лучше всего начать с функций sodium_crypto_sign().

Список параметров

message

Сообщение, которое нужно зашифровать.

public_key

Открытый ключ, соответствующий единственному ключу, который может расшифровать сообщение.

Возвращаемые значения

Строка зашифрованного текста в формате (одноразовый открытый ключ, зашифрованное сообщение, тег аутентификации).

Примеры

Пример #1 Пример использования sodium_crypto_box_seal()

<?php
$keypair = sodium_crypto_box_keypair();
$public_key = sodium_crypto_box_publickey($keypair);

// Обфусцированный текст, чтобы сделать пример более увлекательным
$plaintext_b64 = "V3JpdGluZyBzb2Z0d2FyZSBpbiBQSFAgY2FuIGJlIGEgZGVsaWdodCE=";
$decoded_plaintext = sodium_base642bin($plaintext_b64, SODIUM_BASE64_VARIANT_ORIGINAL);

$sealed = sodium_crypto_box_seal($decoded_plaintext, $public_key);
var_dump(base64_encode($sealed));

$opened = sodium_crypto_box_seal_open($sealed, $keypair);
var_dump($opened);
?>

Результатом выполнения данного примера будет что-то подобное:

string(120) "oRBXXAV4iQBrxlV4A21Bord8Yo/D8ZlrIIGNyaRCcGBfpz0map52I3xq6l+CST+1NSgQkbV+HiYyFjXWiWiaCGupGf+zl4bgWj/A9Adtem7Jt3h3emrMsLw="
string(41) "Writing software in PHP can be a delight!"


Извлекает секретный ключ из ключевой пары crypto_box

  • « sodium_crypto_box_seal
  • sodium_crypto_box_seed_keypair »
  • PHP Manual
  • Функции Sodium
  • Извлекает секретный ключ из ключевой пары crypto_box

sodium_crypto_box_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_secretkey — Извлекает секретный ключ из ключевой пары crypto_box

Описание

sodium_crypto_box_secretkey(string $key_pair): string

Получает только секретный ключ для данной ключевой пары.

Список параметров

key_pair

Пара ключей, созданная, например, sodium_crypto_box_keypair() или sodium_crypto_box_seed_keypair()

Возвращаемые значения

Секретный ключ X25519.


Детерминистический вывод ключевой пары из одного ключа

  • « sodium_crypto_box_secretkey
  • sodium_crypto_box »
  • PHP Manual
  • Функции Sodium
  • Детерминистический вывод ключевой пары из одного ключа

sodium_crypto_box_seed_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seed_keypair — Детерминистический вывод ключевой пары из одного ключа

Описание

sodium_crypto_box_seed_keypair(string $seed): string

Скрепляет начальное значение для формирования секретного ключа, извлекает открытый ключ и возвращает их в виде пары ключей.

Функции *_seed_keypair идеально подходят для создания пары ключей из пароля и соли. Используйте результат как seed для генерации желаемых ключей.

Список параметров

seed

Какие-то криптографические данные. Должно быть 32 байта.

Возвращаемые значения

Ключевая пара X25519 (секретный и открытый ключи).


Шифрование открытым ключом с проверкой подлинности

  • « sodium_crypto_box_seed_keypair
  • sodium_crypto_core_ristretto255_add »
  • PHP Manual
  • Функции Sodium
  • Шифрование открытым ключом с проверкой подлинности

sodium_crypto_box

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box — Шифрование открытым ключом с проверкой подлинности

Описание

sodium_crypto_box(string $message, string $nonce, string $key_pair): string

Шифрует сообщение с использованием асимметричной криптографии (с открытым ключом).

Алгоритм, используемый функциями с префиксом sodium_crypto_box(): Эллиптическая кривая Диффи-Хеллмана на кривой Монтгомери, Curve25519; обычно сокращённо X25519.

Список параметров

message

Сообщение, которое нужно зашифровать.

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 24 байта. Это достаточно большая граница для случайной генерации (например, random_bytes()).

key_pair

Смотрите sodium_crypto_box_keypair_from_secretkey_and_publickey(). Должен включать секретный ключ X25519 отправителя и открытый ключ X25519 получателя.

Возвращаемые значения

Возвращает зашифрованное сообщение (зашифрованный текст плюс тег аутентификации). Зашифрованный текст будет на 16 байтов длиннее, чем открытый текст, и необработанная двоичная строка. Смотрите sodium_bin2base64() для безопасного кодирования для хранения.


Добавляет элемент

  • « sodium_crypto_box
  • sodium_crypto_core_ristretto255_from_hash »
  • PHP Manual
  • Функции Sodium
  • Добавляет элемент

sodium_crypto_core_ristretto255_add

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_add — Добавляет элемент

Описание

sodium_crypto_core_ristretto255_add(string $p, string $q): string

Добавляет элемент q к p. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

p

Элемент.

q

Элемент.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Примеры

Пример #1 Пример использования sodium_crypto_core_ristretto255_add()

<?php

$foo = sodium_crypto_core_ristretto255_random();
$bar = sodium_crypto_core_ristretto255_random();

$value = sodium_crypto_core_ristretto255_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • sodium_crypto_core_ristretto255_random() - Генерирует случайный ключ
  • sodium_crypto_core_ristretto255_sub() - Вычитает элемент


Сопоставляет вектор

  • « sodium_crypto_core_ristretto255_add
  • sodium_crypto_core_ristretto255_is_valid_point »
  • PHP Manual
  • Функции Sodium
  • Сопоставляет вектор

sodium_crypto_core_ristretto255_from_hash

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_from_hash — Сопоставляет вектор

Описание

sodium_crypto_core_ristretto255_from_hash(string $s): string

Сопоставляет вектор 64-байтовый вектор s с элементом группы. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

s

64-байтовый вектор.

Возвращаемые значения

Возвращает 32-байтовую случайную строку (string).

Примеры

Пример #1 Пример использования sodium_crypto_core_ristretto255_from_hash()

<?php

$hashes = sodium_hex2bin(
'5d1be09e3d0c82fc538112490e35701979d99e06ca3e2b5b54bffe8b4dc772c1' .
'4d98b696a1bbfb5ca32c436cc61c16563790306c79eaca7705668b47dffe5bb6'
);
var_dump(sodium_bin2hex(sodium_crypto_core_ristretto255_from_hash($hashes)));
?>

Результат выполнения данного примера:

string(64) "3066f82a1a747d45120d1740f14358531a8f04bbffe6a819f86dfe50f44a0a46"

Смотрите также

  • sodium_hex2bin() - Декодирует строку в шестнадцатеричном представлении в бинарное
  • sodium_bin2hex() - Кодировать в шестнадцатеричное представление
  • sodium_crypto_core_ristretto255_from_hash()


Определяет, лежит ли точка на кривой ristretto255

  • « sodium_crypto_core_ristretto255_from_hash
  • sodium_crypto_core_ristretto255_random »
  • PHP Manual
  • Функции Sodium
  • Определяет, лежит ли точка на кривой ristretto255

sodium_crypto_core_ristretto255_is_valid_point

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_is_valid_point — Определяет, лежит ли точка на кривой ristretto255

Описание

sodium_crypto_core_ristretto255_is_valid_point(string $s): bool

Определяет, лежит ли точка на кривой ristretto255 в канонической форме на главной подгруппе и что точка не имеет малого порядка. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

s

Точка эллиптической кривой.

Возвращаемые значения

Возвращает true, если точка s находится на кривой ristretto255, в противном случае возвращаетfalse.

Примеры

Пример #1 Пример использования sodium_crypto_core_ristretto255_is_valid_point()

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();
$bar = sodium_crypto_scalarmult_ristretto255_base($foo);

var_dump(sodium_crypto_core_ristretto255_is_valid_point($bar));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • sodium_crypto_core_ristretto255_scalar_random() - Генерирует случайный ключ
  • sodium_crypto_scalarmult_ristretto255_base() - Вычисляет открытый ключ из закрытого ключа


Генерирует случайный ключ

  • « sodium_crypto_core_ristretto255_is_valid_point
  • sodium_crypto_core_ristretto255_scalar_add »
  • PHP Manual
  • Функции Sodium
  • Генерирует случайный ключ

sodium_crypto_core_ristretto255_random

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_random — Генерирует случайный ключ

Описание

sodium_crypto_core_ristretto255_random(): string

Генерирует случайный ключ. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Примеры

Пример #1 Пример использования sodium_crypto_core_ristretto255_random()

<?php

$foo = sodium_crypto_core_ristretto255_random();
$bar = sodium_crypto_core_ristretto255_random();

$value = sodium_crypto_core_ristretto255_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • sodium_crypto_core_ristretto255_add() - Добавляет элемент
  • sodium_crypto_core_ristretto255_sub() - Вычитает элемент


Добавляет скалярное значение

  • « sodium_crypto_core_ristretto255_random
  • sodium_crypto_core_ristretto255_scalar_complement »
  • PHP Manual
  • Функции Sodium
  • Добавляет скалярное значение

sodium_crypto_core_ristretto255_scalar_add

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_add — Добавляет скалярное значение

Описание

sodium_crypto_core_ristretto255_scalar_add(string $x, string $y): string

Добавляет элемент y к x. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

Скаляр, представляющий координату X.

y

Скаляр, представляющий координату Y.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Примеры

Пример #1 Пример использования sodium_crypto_core_ristretto255_scalar_add()

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();
$bar = sodium_crypto_core_ristretto255_scalar_random();

$value = sodium_crypto_core_ristretto255_scalar_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_scalar_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • sodium_crypto_core_ristretto255_scalar_random() - Генерирует случайный ключ
  • sodium_crypto_core_ristretto255_scalar_sub() - Вычитает скалярное значение


Назначение sodium_crypto_core_ristretto255_scalar_complement

  • « sodium_crypto_core_ristretto255_scalar_add
  • sodium_crypto_core_ristretto255_scalar_invert »
  • PHP Manual
  • Функции Sodium
  • Назначение sodium_crypto_core_ristretto255_scalar_complement

sodium_crypto_core_ristretto255_scalar_complement

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_complement — Назначение sodium_crypto_core_ristretto255_scalar_complement

Описание

sodium_crypto_core_ristretto255_scalar_complement(string $s): string

Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

s

Скалярное значение.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Смотрите также

  • sodium_crypto_core_ristretto255_scalar_random() - Генерирует случайный ключ


Инвертирует скалярное значение

  • « sodium_crypto_core_ristretto255_scalar_complement
  • sodium_crypto_core_ristretto255_scalar_mul »
  • PHP Manual
  • Функции Sodium
  • Инвертирует скалярное значение

sodium_crypto_core_ristretto255_scalar_invert

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_invert — Инвертирует скалярное значение

Описание

sodium_crypto_core_ristretto255_scalar_invert(string $s): string

Инвертирует скалярное значение. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

s

Скалярное значение.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Примеры

Пример #1 Пример использования sodium_crypto_core_ristretto255_scalar_invert()

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();

$inverted = sodium_crypto_core_ristretto255_scalar_invert($foo);
$reInverted = sodium_crypto_core_ristretto255_scalar_invert($inverted);

var_dump(hash_equals($foo, $reInverted));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • sodium_crypto_core_ristretto255_scalar_random() - Генерирует случайный ключ


Умножает скалярное значение

  • « sodium_crypto_core_ristretto255_scalar_invert
  • sodium_crypto_core_ristretto255_scalar_negate »
  • PHP Manual
  • Функции Sodium
  • Умножает скалярное значение

sodium_crypto_core_ristretto255_scalar_mul

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_mul — Умножает скалярное значение

Описание

sodium_crypto_core_ristretto255_scalar_mul(string $x, string $y): string

Умножает скалярное значение. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

Скаляр, представляющий координату X.

y

Скаляр, представляющий координату Y.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Смотрите также

  • sodium_crypto_core_ristretto255_scalar_random() - Генерирует случайный ключ


Отменяет скалярное значение

  • « sodium_crypto_core_ristretto255_scalar_mul
  • sodium_crypto_core_ristretto255_scalar_random »
  • PHP Manual
  • Функции Sodium
  • Отменяет скалярное значение

sodium_crypto_core_ristretto255_scalar_negate

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_negate — Отменяет скалярное значение

Описание

sodium_crypto_core_ristretto255_scalar_negate(string $s): string

Отменяет скалярное значение. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

s

Скалярное значение.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Примеры

Пример #1 Пример использования sodium_crypto_core_ristretto255_scalar_negate()

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();

$negate = sodium_crypto_core_ristretto255_scalar_negate($foo);
$reNegate = sodium_crypto_core_ristretto255_scalar_negate($negate);

var_dump(hash_equals($foo, $reNegate));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • sodium_crypto_core_ristretto255_scalar_random() - Генерирует случайный ключ


Генерирует случайный ключ

  • « sodium_crypto_core_ristretto255_scalar_negate
  • sodium_crypto_core_ristretto255_scalar_reduce »
  • PHP Manual
  • Функции Sodium
  • Генерирует случайный ключ

sodium_crypto_core_ristretto255_scalar_random

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_random — Генерирует случайный ключ

Описание

sodium_crypto_core_ristretto255_scalar_random(): string

Генерирует случайный ключ. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Примеры

Пример #1 Пример использования sodium_crypto_core_ristretto255_scalar_random()

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();
$bar = sodium_crypto_core_ristretto255_scalar_random();

$value = sodium_crypto_core_ristretto255_scalar_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_scalar_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • sodium_crypto_core_ristretto255_scalar_add() - Добавляет скалярное значение
  • sodium_crypto_core_ristretto255_scalar_sub() - Вычитает скалярное значение


Уменьшает скалярное значение

  • « sodium_crypto_core_ristretto255_scalar_random
  • sodium_crypto_core_ristretto255_scalar_sub »
  • PHP Manual
  • Функции Sodium
  • Уменьшает скалярное значение

sodium_crypto_core_ristretto255_scalar_reduce

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_reduce — Уменьшает скалярное значение

Описание

sodium_crypto_core_ristretto255_scalar_reduce(string $s): string

Уменьшает скалярное значение. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

s

Скалярное значение.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Смотрите также

  • sodium_crypto_core_ristretto255_scalar_random() - Генерирует случайный ключ


Вычитает скалярное значение

  • « sodium_crypto_core_ristretto255_scalar_reduce
  • sodium_crypto_core_ristretto255_sub »
  • PHP Manual
  • Функции Sodium
  • Вычитает скалярное значение

sodium_crypto_core_ristretto255_scalar_sub

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_sub — Вычитает скалярное значение

Описание

sodium_crypto_core_ristretto255_scalar_sub(string $x, string $y): string

Вычитает скалярное значение y из x. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

Скаляр, представляющий координату X.

y

Скаляр, представляющий координату Y.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Примеры

Пример #1 Пример использования sodium_crypto_core_ristretto255_scalar_sub()

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();
$bar = sodium_crypto_core_ristretto255_scalar_random();

$value = sodium_crypto_core_ristretto255_scalar_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_scalar_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • sodium_crypto_core_ristretto255_scalar_random() - Генерирует случайный ключ
  • sodium_crypto_core_ristretto255_scalar_add() - Добавляет скалярное значение


Вычитает элемент

  • « sodium_crypto_core_ristretto255_scalar_sub
  • sodium_crypto_generichash_final »
  • PHP Manual
  • Функции Sodium
  • Вычитает элемент

sodium_crypto_core_ristretto255_sub

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_sub — Вычитает элемент

Описание

sodium_crypto_core_ristretto255_sub(string $p, string $q): string

Вычитает элемент q из p. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

p

Элемент.

q

Элемент.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Примеры

Пример #1 Пример использования sodium_crypto_core_ristretto255_sub()

<?php

$foo = sodium_crypto_core_ristretto255_random();
$bar = sodium_crypto_core_ristretto255_random();

$value = sodium_crypto_core_ristretto255_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • sodium_crypto_core_ristretto255_random() - Генерирует случайный ключ
  • sodium_crypto_core_ristretto255_add() - Добавляет элемент


Закончить хеширование

  • « sodium_crypto_core_ristretto255_sub
  • sodium_crypto_generichash_init »
  • PHP Manual
  • Функции Sodium
  • Закончить хеширование

sodium_crypto_generichash_final

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_final — Закончить хеширование

Описание

sodium_crypto_generichash_final(string &$state, int $length = SODIUM_CRYPTO_GENERICHASH_BYTES): string

Метод завершения для потокового API-интерфейса generichash.

Список параметров

state

Состояние хеша, возвращённое sodium_crypto_generichash_init()

length

Длина вывода.

Возвращаемые значения

Криптографический хеш.

Примеры

Пример #1 Пример использования sodium_crypto_generichash_final()

<?php
$messages = [random_bytes(32), random_bytes(32), random_bytes(16)];
$state = sodium_crypto_generichash_init('', 32);
foreach ($messages as $message) {
sodium_crypto_generichash_update($state, $message);
}

$final = sodium_crypto_generichash_final($state, 32);
var_dump(sodium_bin2hex($final));

$allAtOnce = sodium_crypto_generichash(implode('', $messages));
var_dump(sodium_bin2hex($allAtOnce));
?>

Результатом выполнения данного примера будет что-то подобное:

string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"
string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"


Инициализирует хеш для потоковой передачи

  • « sodium_crypto_generichash_final
  • sodium_crypto_generichash_keygen »
  • PHP Manual
  • Функции Sodium
  • Инициализирует хеш для потоковой передачи

sodium_crypto_generichash_init

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_init — Инициализирует хеш для потоковой передачи

Описание

sodium_crypto_generichash_init(string $key = "", int $length = SODIUM_CRYPTO_GENERICHASH_BYTES): string

Метод инициализации для потокового API-интерфейса generichash.

Список параметров

key

Ключ generichash.

length

Ожидаемая длина вывода хеш-функции.

Возвращаемые значения

Возвращает состояние хеша, сериализованное как необработанная двоичная строка.

Примеры

Пример #1 Пример использования sodium_crypto_generichash_init()

<?php
$messages = [random_bytes(32), random_bytes(32), random_bytes(16)];
$state = sodium_crypto_generichash_init('', 32);
foreach ($messages as $message) {
sodium_crypto_generichash_update($state, $message);
}
$final = sodium_crypto_generichash_final($state, 32);
var_dump(sodium_bin2hex($final));
$allAtOnce = sodium_crypto_generichash(implode('', $messages));
var_dump(sodium_bin2hex($allAtOnce));
?>

Результатом выполнения данного примера будет что-то подобное:

string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"
string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"


Создаёт случайный общий хеш-ключ

  • « sodium_crypto_generichash_init
  • sodium_crypto_generichash_update »
  • PHP Manual
  • Функции Sodium
  • Создаёт случайный общий хеш-ключ

sodium_crypto_generichash_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_keygen — Создаёт случайный общий хеш-ключ

Описание

sodium_crypto_generichash_keygen(): string

Создаёт случайный ключ для использования с API generichash.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Случайный 256-битный ключ.


Добавить сообщение к хешу

  • « sodium_crypto_generichash_keygen
  • sodium_crypto_generichash »
  • PHP Manual
  • Функции Sodium
  • Добавить сообщение к хешу

sodium_crypto_generichash_update

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_update — Добавить сообщение к хешу

Описание

sodium_crypto_generichash_update(string &$state, string $message): true

Добавляет сообщение к внутреннему хеш-состоянию.

Список параметров

state

Возвращаемое значение sodium_crypto_generichash_init().

message

Данные для добавления в состояние хеширования.

Возвращаемые значения

Функция всегда возвращает true.

Примеры

Пример #1 Пример использования sodium_crypto_generichash_update()

<?php
$messages = [random_bytes(32), random_bytes(32), random_bytes(16)];
$state = sodium_crypto_generichash_init();
foreach ($messages as $message) {
sodium_crypto_generichash_update($state, $message);
}
$final = sodium_crypto_generichash_final($state);
var_dump(sodium_bin2hex($final));

$allAtOnce = sodium_crypto_generichash(implode('', $messages));
var_dump(sodium_bin2hex($allAtOnce));
?>

Результатом выполнения данного примера будет что-то подобное:

string(64) "e16e28bbbbcc39d9f5b1cbc33c41f1d217808640103e57a41f24870f79831e04"
string(64) "e16e28bbbbcc39d9f5b1cbc33c41f1d217808640103e57a41f24870f79831e04"


Получить хеш сообщения

  • « sodium_crypto_generichash_update
  • sodium_crypto_kdf_derive_from_key »
  • PHP Manual
  • Функции Sodium
  • Получить хеш сообщения

sodium_crypto_generichash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash — Получить хеш сообщения

Описание

sodium_crypto_generichash(string $message, string $key = "", int $length = SODIUM_CRYPTO_GENERICHASH_BYTES): string

Хеширует сообщение с помощью BLAKE2b.

Список параметров

message

Хешируемое сообщение.

key

(Необязательный) криптографический ключ. Он выполняет ту же функцию, что и ключ HMAC, но используется как зарезервированный раздел внутреннего состояния BLAKE2.

length

Размер вывода.

Возвращаемые значения

Криптографический хеш в виде необработанных байтов. Если желателен вывод в шестнадцатеричном коде, результат можно передать в sodium_bin2hex().


Извлечь подраздел

  • « sodium_crypto_generichash
  • sodium_crypto_kdf_keygen »
  • PHP Manual
  • Функции Sodium
  • Извлечь подраздел

sodium_crypto_kdf_derive_from_key

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kdf_derive_from_key — Извлечь подраздел

Описание

sodium_crypto_kdf_derive_from_key(
int $subkey_length,
int $subkey_id,
string $context,
string $key
): string

Получает подраздел из корневого ключа и дополнительного контекста.

Похожа наhash_hkdf().

Список параметров

subkey_length

Длина возвращаемого ключа (в байтах)

subkey_id

Вернуть подключ n из заданного корневого ключа. Полезно для поиска.

context

Контекст, зависящий от приложения.

key

Корневой ключ, из которого получен подключ.

Возвращаемые значения

Строка псевдослучайных (необработанных двоичных) байтов.


Создаёт случайный корневой ключ для интерфейса KDF

  • « sodium_crypto_kdf_derive_from_key
  • sodium_crypto_kx_client_session_keys »
  • PHP Manual
  • Функции Sodium
  • Создаёт случайный корневой ключ для интерфейса KDF

sodium_crypto_kdf_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kdf_keygen — Создаёт случайный корневой ключ для интерфейса KDF

Описание

sodium_crypto_kdf_keygen(): string

Создаёт случайный ключ, подходящий для использования в качестве корневого ключа для sodium_crypto_kdf_derive_from_key().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Случайный 256-битный ключ.


Вычисляет ключи сессии на стороне клиента

  • « sodium_crypto_kdf_keygen
  • sodium_crypto_kx_keypair »
  • PHP Manual
  • Функции Sodium
  • Вычисляет ключи сессии на стороне клиента

sodium_crypto_kx_client_session_keys

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_client_session_keys — Вычисляет ключи сессии на стороне клиента

Описание

sodium_crypto_kx_client_session_keys(string $client_key_pair, string $server_key): array

Вычисляет ключи сеанса на стороне клиента, используя метод обмена ключами X25519 + BLAKE2b.

Список параметров

client_key_pair

Пара ключей crypto_kx, например, сгенерированная sodium_crypto_kx_keypair().

server_key

Открытый ключ crypto_kx.

Возвращаемые значения

Массив, состоящий из двух строк. Первую следует использовать для приёма данных с сервера. Вторую следует использовать для отправки данных на сервер.


Создаёт новую пару ключей sodium

  • « sodium_crypto_kx_client_session_keys
  • sodium_crypto_kx_publickey »
  • PHP Manual
  • Функции Sodium
  • Создаёт новую пару ключей sodium

sodium_crypto_kx_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_keypair — Создаёт новую пару ключей sodium

Описание

sodium_crypto_kx_keypair(): 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", sodium_bin2hex($secret), sodium_bin2hex($public));
?>

Результатом выполнения данного примера будет что-то подобное:

секретный ключ: e7c5c918fdc40762e6000542c0118f4368ce8fd242b0e48c1e17202797a25daf
открытый ключ: d1f59fda8652caf40ed1a01d2b6f3802b60846986372cd8fa337b7c12c428b18


Извлекает открытый ключ из пары ключей crypto_kx

  • « sodium_crypto_kx_keypair
  • sodium_crypto_kx_secretkey »
  • PHP Manual
  • Функции Sodium
  • Извлекает открытый ключ из пары ключей crypto_kx

sodium_crypto_kx_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_publickey — Извлекает открытый ключ из пары ключей crypto_kx

Описание

sodium_crypto_kx_publickey(string $key_pair): string

Извлекает открытый ключ из пары ключей crypto_kx.

Список параметров

key_pair

Пара ключей X25519, например, сгенерированная sodium_crypto_kx_keypair().

Возвращаемые значения

Открытый ключ X25519.


Извлекает секретный ключ из пары ключей crypto_kx

  • « sodium_crypto_kx_publickey
  • sodium_crypto_kx_seed_keypair »
  • PHP Manual
  • Функции Sodium
  • Извлекает секретный ключ из пары ключей crypto_kx

sodium_crypto_kx_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_secretkey — Извлекает секретный ключ из пары ключей crypto_kx

Описание

sodium_crypto_kx_secretkey(string $key_pair): string

Извлекает секретный ключ из пары ключей crypto_kx.

Список параметров

key_pair

Пара ключей X25519, например, сгенерированная sodium_crypto_kx_keypair().

Возвращаемые значения

Секретный ключ X25519.


Описание

  • « sodium_crypto_kx_secretkey
  • sodium_crypto_kx_server_session_keys »
  • PHP Manual
  • Функции Sodium
  • Описание

sodium_crypto_kx_seed_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_seed_keypair — Описание

Описание

sodium_crypto_kx_seed_keypair(string $seed): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

seed

Возвращаемые значения


Вычисляет ключи сессии на стороне сервера

  • « 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, PHP 8)

sodium_crypto_kx_server_session_keys — Вычисляет ключи сессии на стороне сервера

Описание

sodium_crypto_kx_server_session_keys(string $server_key_pair, string $client_key): array

Вычисляет ключи сессии на стороне сервера, используя метод обмена ключами X25519 + BLAKE2b.

Список параметров

server_key_pair

Пара ключей crypto_kx, например, сгенерированная sodium_crypto_kx_keypair().

client_key

Открытый ключ crypto_kx.

Возвращаемые значения

Массив, состоящий из двух строк. Первую следует использовать для получения данных от клиента. Вторую следует использовать для отправки данных клиенту.


Проверить, что пароль является действительной строкой проверки пароля

  • « 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, PHP 8)

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, PHP 8)

sodium_crypto_pwhash_scryptsalsa208sha256_str — Получить закодированный в ASCII хеш

Описание

sodium_crypto_pwhash_scryptsalsa208sha256_str(string $password, int $opslimit, int $memlimit): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

password

opslimit

memlimit

Возвращаемые значения


Получает ключ из пароля, используя scrypt

  • « sodium_crypto_pwhash_scryptsalsa208sha256_str
  • sodium_crypto_pwhash_str_needs_rehash »
  • PHP Manual
  • Функции Sodium
  • Получает ключ из пароля, используя scrypt

sodium_crypto_pwhash_scryptsalsa208sha256

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_scryptsalsa208sha256 — Получает ключ из пароля, используя scrypt

Описание

sodium_crypto_pwhash_scryptsalsa208sha256(
int $length,
string $password,
string $salt,
int $opslimit,
int $memlimit
): string

Аналог функции scrypt sodium_crypto_pwhash().

Распространённая причина использования этой конкретной функции - получить начальные числа для криптографических ключей из пароля и соли, а затем использовать эти начальные числа для генерации фактических ключей, необходимых для некоторых целей (например, sodium_crypto_sign_detached()).

Список параметров

length

Длина генерируемого хеша пароля в байтах.

password

Пароль, для которого создаётся хеш.

salt

Соль, которую нужно добавить к паролю перед хешированием. Соль должна быть непредсказуемой, в идеале сгенерированной из хорошего источника случайных чисел, такого как random_bytes(), и иметь длину не менее SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES байт.

opslimit

Представляет максимальное количество вычислений для выполнения. Увеличение этого числа приведёт к тому, что функции потребуется больше циклов ЦП для вычисления ключа. Доступны некоторые константы для установки предела операций на соответствующие значения в зависимости от предполагаемого использования, в порядке размера: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE и SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE.

memlimit

Максимальный объем ОЗУ, который будет использовать функция, в байтах. Существуют константы, которые помогут вам выбрать подходящее значение в порядке их размера: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE and SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE. Обычно они должны сочетаться с соответствующими значениями opslimit.

Возвращаемые значения

Строка байтов желаемой длины.


Определяет, следует ли повторно использовать пароль

  • « sodium_crypto_pwhash_scryptsalsa208sha256
  • sodium_crypto_pwhash_str_verify »
  • PHP Manual
  • Функции Sodium
  • Определяет, следует ли повторно использовать пароль

sodium_crypto_pwhash_str_needs_rehash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_str_needs_rehash — Определяет, следует ли повторно использовать пароль

Описание

sodium_crypto_pwhash_str_needs_rehash(string $password, int $opslimit, int $memlimit): bool

Определяет, следует ли повторно использовать пароль, на основе текущего хеш-значения opslimit и memlimit.

Список параметров

password

Хеш пароля

opslimit

Настроенный opslimit; смотрите sodium_crypto_pwhash_str()

memlimit

Настроенный memlimit; смотрите sodium_crypto_pwhash_str()

Возвращаемые значения

Возвращает true, если предоставленный memlimit/opslimit не соответствует тому, что хранится в хеше. Возвращает false, если они совпадают.


Проверяет, что пароль соответствует хешу

  • « sodium_crypto_pwhash_str_needs_rehash
  • sodium_crypto_pwhash_str »
  • PHP Manual
  • Функции Sodium
  • Проверяет, что пароль соответствует хешу

sodium_crypto_pwhash_str_verify

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_str_verify — Проверяет, что пароль соответствует хешу

Описание

sodium_crypto_pwhash_str_verify(string $hash, string $password): bool

Проверяет, что хеш пароля, созданный sodium_crypto_pwhash_str(), соответствует заданному паролю. Обратите внимание, что в этой функции порядок аргументов не соответствует порядку аргументов в похожей функции password_verify().

Список параметров

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, PHP 8)

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.

Возвращаемые значения

Возвращает хеш пароля.

Для того, чтобы для одного и того же пароля всегда генерировался один и тот же хеш, необходимо использовать одинаковые значения opslimit и memlimit. Так как эти параметры включены в сгенерированный хеш, функция sodium_crypto_pwhash_str_verify() может проверять его корректность без необходимости хранить эти параметры отдельно.

Примеры

Пример #1 Пример использования sodium_crypto_pwhash_str()

<?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

Примечания

Замечание:

Хеши вычисляются с помощью алгоритма Argon2ID, устойчивого для атак стороннего канала и GPU. В отличие от функции password_hash(), у этой функции нет параметра salt (он генерируется автоматически), а параметры opslimit и memlimit являются обязательными.

Смотрите также

  • sodium_crypto_pwhash_str_verify() - Проверяет, что пароль соответствует хешу
  • sodium_crypto_pwhash() - Получает ключ из пароля, используя Argon2
  • password_hash() - Создаёт хеш пароля
  • password_verify() - Проверяет, соответствует ли пароль хешу
  • » Документация на Libsodium Argon2


Получает ключ из пароля, используя Argon2

  • « sodium_crypto_pwhash_str
  • sodium_crypto_scalarmult_base »
  • PHP Manual
  • Функции Sodium
  • Получает ключ из пароля, используя Argon2

sodium_crypto_pwhash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash — Получает ключ из пароля, используя Argon2

Описание

sodium_crypto_pwhash(
int $length,
string $password,
string $salt,
int $opslimit,
int $memlimit,
int $algo = SODIUM_CRYPTO_PWHASH_ALG_DEFAULT
): string

Эта функция предоставляет низкоуровневый доступ к функции crypto_pwhash библиотеки libsodium. Если у вас нет принципиальной необходимости в этой функции, то лучше использовать sodium_crypto_pwhash_str() или password_hash().

Распространённая причина использования этой конкретной функции - получить начальные числа для криптографических ключей из пароля и соли, а затем использовать эти начальные числа для генерации фактических ключей, необходимых для некоторых целей (например, sodium_crypto_sign_detached()).

Список параметров

length

int; Длина создаваемого хеша пароля в байтах.

password

string; Пароль, для которого создаётся хеш.

salt

Соль, которую нужно добавить к паролю перед хешированием. Соль должна быть непредсказуемой, в идеале генерируемой из хорошего источника случайных чисел, такого как 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.

algo

int Число, указывающее используемый алгоритм хеширования. По умолчанию задана SODIUM_CRYPTO_PWHASH_ALG_DEFAULT (рекомендуемый в настоящее время алгоритм, который может быть изменён с при смене версии libsodium на другую), или явно используя константу SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13, представляющую версию алгоритма Argon2id 1.3.

Возвращаемые значения

Возвращает захешированный пароль. Возвращаемое значение является бинарной строкой, а не 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_ristretto255_base »
  • PHP Manual
  • Функции Sodium
  • Псевдоним sodium_crypto_box_publickey_from_secretkey

sodium_crypto_scalarmult_base

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_scalarmult_base — Псевдоним sodium_crypto_box_publickey_from_secretkey()

Описание

Функция является псевдонимом: sodium_crypto_box_publickey_from_secretkey().


Вычисляет открытый ключ из закрытого ключа

  • « sodium_crypto_scalarmult_base
  • sodium_crypto_scalarmult_ristretto255 »
  • PHP Manual
  • Функции Sodium
  • Вычисляет открытый ключ из закрытого ключа

sodium_crypto_scalarmult_ristretto255_base

(PHP 8 >= 8.1.1)

sodium_crypto_scalarmult_ristretto255_base — Вычисляет открытый ключ из закрытого ключа

Описание

sodium_crypto_scalarmult_ristretto255_base(string $n): string

Учитывая закрытый ключ, вычисляет соответствующий открытый ключ. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

n

Закрытый ключ.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Смотрите также

  • sodium_crypto_scalarmult_ristretto255() - Вычисляет общий секрет


Вычисляет общий секрет

  • « sodium_crypto_scalarmult_ristretto255_base
  • sodium_crypto_scalarmult »
  • PHP Manual
  • Функции Sodium
  • Вычисляет общий секрет

sodium_crypto_scalarmult_ristretto255

(PHP 8 >= 8.1.1)

sodium_crypto_scalarmult_ristretto255 — Вычисляет общий секрет

Описание

sodium_crypto_scalarmult_ristretto255(string $n, string $p): string

Вычисляет скаляр n, умноженный на точку p. Доступно, начиная с libsodium 1.0.18.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

n

Скаляр, который обычно является закрытым ключом.

p

Точка (x-координата), которая обычно является открытым ключом.

Возвращаемые значения

Возвращает случайную 32-байтовую строку (string).

Смотрите также

  • sodium_crypto_scalarmult_ristretto255_base() - Вычисляет открытый ключ из закрытого ключа


Вычислить общий секрет на основании секретного ключа пользователя и открытого ключа другого пользователя

  • « sodium_crypto_scalarmult_ristretto255
  • sodium_crypto_secretbox_keygen »
  • PHP Manual
  • Функции Sodium
  • Вычислить общий секрет на основании секретного ключа пользователя и открытого ключа другого пользователя

sodium_crypto_scalarmult

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_scalarmult — Вычислить общий секрет на основании секретного ключа пользователя и открытого ключа другого пользователя

Описание

sodium_crypto_scalarmult(string $n, string $p): string

Эллиптическая кривая Диффи-Хеллмана. Вычисляет скаляр n умноженный на точку p на эллиптической кривой.

Список параметров

n

скаляр, который обычно является секретным ключом

p

точка (координата x), которая обычно является открытым ключом

Возвращаемые значения

32-байтовая случайная строка.


Создаёт случайный ключ для sodium_crypto_secretbox

  • « sodium_crypto_scalarmult
  • sodium_crypto_secretbox_open »
  • PHP Manual
  • Функции Sodium
  • Создаёт случайный ключ для sodium_crypto_secretbox

sodium_crypto_secretbox_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretbox_keygen — Создаёт случайный ключ для sodium_crypto_secretbox

Описание

sodium_crypto_secretbox_keygen(): string

Создаёт случайный ключ для sodium_crypto_secretbox() и sodium_crypto_secretbox_open().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сгенерированную строку криптографически безопасных случайных байтов.

Примеры

Пример #1 Пример использования sodium_crypto_secretbox_keygen()

<?php
$key = sodium_crypto_secretbox_keygen();
var_dump( sodium_bin2hex( $key ) );
?>

Результатом выполнения данного примера будет что-то подобное:

string(64) "88bd1dc51ec81984f3ddc5a8f59a3d95b647e2da3e879f1b9ceb0abd89e7286c"

Пример #2 Сравнение sodium_crypto_secretbox_keygen() с random_bytes()

<?php
$key = sodium_crypto_secretbox_keygen();
$bytes = random_bytes( SODIUM_CRYPTO_SECRETBOX_KEYBYTES );
var_dump( mb_strlen( $key, '8bit' ) === mb_strlen( $bytes, '8bit' ) );
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • sodium_bin2hex() - Кодировать в шестнадцатеричное представление
  • random_bytes() - Получает криптографически безопасные случайные байты


Расшифровка с использованием общего ключа с проверкой подлинности

  • « sodium_crypto_secretbox_keygen
  • sodium_crypto_secretbox »
  • PHP Manual
  • Функции Sodium
  • Расшифровка с использованием общего ключа с проверкой подлинности

sodium_crypto_secretbox_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretbox_open — Расшифровка с использованием общего ключа с проверкой подлинности

Описание

sodium_crypto_secretbox_open(string $ciphertext, string $nonce, string $key): string|false

Расшифровывает зашифрованное сообщение симметричным (общим) ключом.

Список параметров

ciphertext

Должен быть в формате, предоставленном sodium_crypto_secretbox() (зашифрованный текст и тег, объединённые).

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 24 байта. Это достаточно большая граница для случайной генерации (например, random_bytes()).

key

Ключ шифрования (256 бит).

Возвращаемые значения

Расшифрованная строка в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

  • Выбрасывается SodiumException, если длина байтов параметра nonce отличается от SODIUM_CRYPTO_SECRETBOX_NONCEBYTES (24 байта).
  • Выбрасывается SodiumException, если длина байтов параметра key отличается от SODIUM_CRYPTO_SECRETBOX_KEYBYTES (32 байта).

Примеры

Пример #1 Пример использования sodium_crypto_secretbox_open()

<?php
// $key должен храниться в секрете.
$key = random_bytes(SODIUM_CRYPTO_SECRETBOX_KEYBYTES);
// Не используйте $nonce повторно с тем же ключом
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$ciphertext = sodium_crypto_secretbox('message to be encrypted', $nonce, $key);

// Для расшифровки $ciphertext требуются те же имя и ключ.
$plaintext = sodium_crypto_secretbox_open($ciphertext, $nonce, $key);
if ($plaintext !== false) {
echo $plaintext . PHP_EOL;
}
?>

Результат выполнения данного примера:

message to be encrypted

Смотрите также

  • sodium_crypto_secretbox() - Шифрование с общим ключом с проверкой подлинности
  • sodium_crypto_secretbox_keygen() - Создаёт случайный ключ для sodium_crypto_secretbox
  • random_bytes() - Получает криптографически безопасные случайные байты


Шифрование с общим ключом с проверкой подлинности

  • « sodium_crypto_secretbox_open
  • sodium_crypto_secretstream_xchacha20poly1305_init_pull »
  • PHP Manual
  • Функции Sodium
  • Шифрование с общим ключом с проверкой подлинности

sodium_crypto_secretbox

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretbox — Шифрование с общим ключом с проверкой подлинности

Описание

sodium_crypto_secretbox(string $message, string $nonce, string $key): string

Шифрование сообщения симметричным (общим) ключом.

Список параметров

message

Текстовое сообщение, которое нужно зашифровать.

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 24 байта. Это достаточно большая граница для случайной генерации (например, random_bytes()).

key

Ключ шифрования (256 бит).

Возвращаемые значения

Возвращает зашифрованную строку.

Ошибки

  • Выбрасывается SodiumException, если длина байтов параметра nonce отличается от SODIUM_CRYPTO_SECRETBOX_NONCEBYTES (24 байта).
  • Выбрасывается SodiumException, если длина байтов параметра key отличается от SODIUM_CRYPTO_SECRETBOX_KEYBYTES (32 байта).
  • Выбрасывает SodiumException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sodium_crypto_secretbox()

<?php
// $key должен храниться в секрете.
$key = sodium_crypto_secretbox_keygen();
// Не используйте $nonce повторно с тем же ключом
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$plaintext = "message to be encrypted";
$ciphertext = sodium_crypto_secretbox($plaintext, $nonce, $key);

var_dump(bin2hex($ciphertext));
// Для расшифровки $ciphertext требуются те же имя и ключ.
var_dump(sodium_crypto_secretbox_open($ciphertext, $nonce, $key));
?>

Результатом выполнения данного примера будет что-то подобное:

string(78) "3a1fa3e9f7b72ef8be51d40abf8e296c6899c185d07b18b4c93e7f26aa776d24c50852cd6b1076"
string(23) "message to be encrypted"

Смотрите также

  • sodium_crypto_secretbox_open() - Расшифровка с использованием общего ключа с проверкой подлинности
  • sodium_crypto_secretbox_keygen() - Создаёт случайный ключ для sodium_crypto_secretbox
  • random_bytes() - Получает криптографически безопасные случайные байты


Инициализирует контекст secretstream для дешифрования

  • « sodium_crypto_secretbox
  • sodium_crypto_secretstream_xchacha20poly1305_init_push »
  • PHP Manual
  • Функции Sodium
  • Инициализирует контекст secretstream для дешифрования

sodium_crypto_secretstream_xchacha20poly1305_init_pull

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_init_pull — Инициализирует контекст secretstream для дешифрования

Описание

sodium_crypto_secretstream_xchacha20poly1305_init_pull(string $header, string $key): string

Инициализирует контекст secretstream для дешифрования

Список параметров

header

Заголовок secretstream. Должно быть одно из значений, созданных sodium_crypto_secretstream_xchacha20poly1305_init_push().

key

Ключ шифрования (256 бит).

Возвращаемые значения

Состояние secretstream.

Примеры

Пример #1 Пример использования sodium_crypto_secretstream_xchacha20poly1305_init_pull()

<?php
function decrypt_file(string $inputFilePath, string $outputFilePath, string $key): void
{
$inputFile = fopen($inputFilePath, 'rb');
$outputFile = fopen($outputFilePath, 'wb');
$header = fread($inputFile, 24);

$state = sodium_crypto_secretstream_xchacha20poly1305_init_pull($header, $key);
$inputFileSize = fstat($inputFile)['size'];

// Расшифровка файла и запись содержимого в выходной файл:
for ($i = 24; $i < $inputFileSize; $i += 8192) {
$ctxt_chunk = fread($inputFile, 8192);

// Мы не используем $tag, но в реальных протоколах вы можете использовать его для шифрования, например,
// инициировать смену ключа или указать конец файла. Затем при расшифровке
// вы можете подтвердить это поведение.
[$ptxt_chunk, $tag] = sodium_crypto_secretstream_xchacha20poly1305_pull($state, $ctxt_chunk);
fwrite($outputFile, $ptxt_chunk);
}

sodium_memzero($state);
fclose($inputFile);
fclose($outputFile);
}

// sodium_crypto_secretstream_xchacha20poly1305_keygen()
$key = sodium_base642bin('MS0lzb7HC+thY6jY01pkTE/cwsQxnRq0/2L1eL4Hxn8=', SODIUM_BASE64_VARIANT_ORIGINAL);

$example = sodium_hex2bin('971e33b255f0990ef3931caf761c59136efa77b434832f28ec719e3ff73f5aec38b3bba1574ab5b70a8844d8da36a668e802cfea2c');
file_put_contents('hello.enc', $example);
decrypt_file('hello.enc', 'hello.txt.decrypted', $key);
var_dump(file_get_contents('hello.txt.decrypted'));
?>

Результатом выполнения данного примера будет что-то подобное:

string(12) "Hello world!"


Инициализирует контекст secretstream для шифрования

  • « sodium_crypto_secretstream_xchacha20poly1305_init_pull
  • sodium_crypto_secretstream_xchacha20poly1305_keygen »
  • PHP Manual
  • Функции Sodium
  • Инициализирует контекст secretstream для шифрования

sodium_crypto_secretstream_xchacha20poly1305_init_push

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_init_push — Инициализирует контекст secretstream для шифрования

Описание

sodium_crypto_secretstream_xchacha20poly1305_init_push(string $key): array

Инициализирует контекст secretstream для шифрования

Список параметров

key

Ключ криптографии. Смотрите sodium_crypto_secretstream_xchacha20poly1305_keygen().

Возвращаемые значения

Массив с двумя строковыми значениями:

  • Состояние secretstream, необходимое для дальнейших действий
  • Заголовок secretstream, который необходимо предоставить получателю, чтобы он мог извлекать данные.

Примеры

Пример #1 Пример использования sodium_crypto_secretstream_xchacha20poly1305_init_push()

<?php
function encrypt_file(string $inputFilePath, string $outputFilePath, string $key): void
{
[$state, $header] = sodium_crypto_secretstream_xchacha20poly1305_init_push($key);

$inputFile = fopen($inputFilePath, 'rb');
$outputFile = fopen($outputFilePath, 'wb');
// Запись заголовка:
fwrite($outputFile, $header);
$inputFileSize = fstat($inputFile)['size'];

// Зашифровка файла и запись его содержимого в выходной файл:
for ($i = 0; $i < $inputFileSize; $i += 8175) {
$ptxt_chunk = fread($inputFile, 8175);
$ctxt_chunk = sodium_crypto_secretstream_xchacha20poly1305_push($state, $ptxt_chunk);
fwrite($outputFile, $ctxt_chunk);
}

sodium_memzero($state);
fclose($inputFile);
fclose($outputFile);
}

// sodium_crypto_secretstream_xchacha20poly1305_keygen()
$key = sodium_base642bin('MS0lzb7HC+thY6jY01pkTE/cwsQxnRq0/2L1eL4Hxn8=', SODIUM_BASE64_VARIANT_ORIGINAL);

file_put_contents('hello.txt', 'Hello world!');
encrypt_file('hello.txt', 'hello.txt.encrypted', $key);
var_dump(sodium_bin2hex(file_get_contents('hello.txt.encrypted')));
?>

Результатом выполнения данного примера будет что-то подобное:

string(106) "971e33b255f0990ef3931caf761c59136efa77b434832f28ec719e3ff73f5aec38b3bba1574ab5b70a8844d8da36a668e802cfea2c"


Создаёт случайный ключ secretstream

  • « sodium_crypto_secretstream_xchacha20poly1305_init_push
  • sodium_crypto_secretstream_xchacha20poly1305_pull »
  • PHP Manual
  • Функции Sodium
  • Создаёт случайный ключ secretstream

sodium_crypto_secretstream_xchacha20poly1305_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_keygen — Создаёт случайный ключ secretstream

Описание

sodium_crypto_secretstream_xchacha20poly1305_keygen(): string

Создаёт случайный ключ secretstream

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку случайных байтов.


Расшифровывает часть данных из зашифрованного потока

  • « sodium_crypto_secretstream_xchacha20poly1305_keygen
  • sodium_crypto_secretstream_xchacha20poly1305_push »
  • PHP Manual
  • Функции Sodium
  • Расшифровывает часть данных из зашифрованного потока

sodium_crypto_secretstream_xchacha20poly1305_pull

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_pull — Расшифровывает часть данных из зашифрованного потока

Описание

sodium_crypto_secretstream_xchacha20poly1305_pull(string &$state, string $ciphertext, string $additional_data = ""): array|false

Расшифровывает часть данных из зашифрованного потока.

Список параметров

state

Смотрите sodium_crypto_secretstream_xchacha20poly1305_init_pull() и sodium_crypto_secretstream_xchacha20poly1305_init_push()

ciphertext

Фрагмент зашифрованного текста, который нужно расшифровать.

additional_data

Необязательные дополнительные данные для включения в тег аутентификации.

Возвращаемые значения

Массив с двумя значениями:

  • Строка (string); Расшифрованный фрагмент

  • Целое число (int); Необязательный тег (если предоставляется во время отправки). Возможные значения:

    • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE: самый распространённый тег, который не добавляет никакой информации о характере сообщения.
    • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL: указывает, что сообщение отмечает конец потока, и стирает секретный ключ, использованный для шифрования предыдущей последовательности.
    • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH: указывает, что сообщение отмечает конец набора сообщений, но не конец потока. Например, огромная строка JSON, отправленная в виде нескольких фрагментов, может использовать этот тег, чтобы указать приложению, что строка завершена и что её можно декодировать. Но сам поток не закрывается и могут последовать дополнительные данные.
    • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY: "забывает" ключ, использованный для шифрования этого и предыдущих сообщений и получает новый секретный ключ.


Шифрует фрагмент данных, чтобы его можно было безопасно расшифровать в потоковом API

  • « sodium_crypto_secretstream_xchacha20poly1305_pull
  • sodium_crypto_secretstream_xchacha20poly1305_rekey »
  • PHP Manual
  • Функции Sodium
  • Шифрует фрагмент данных, чтобы его можно было безопасно расшифровать в потоковом API

sodium_crypto_secretstream_xchacha20poly1305_push

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_push — Шифрует фрагмент данных, чтобы его можно было безопасно расшифровать в потоковом API

Описание

sodium_crypto_secretstream_xchacha20poly1305_push(
string &$state,
string $message,
string $additional_data = "",
int $tag = SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE
): string

Шифрует фрагмент данных, чтобы его можно было безопасно расшифровать в потоковом API.

Список параметров

state

Смотрите sodium_crypto_secretstream_xchacha20poly1305_init_pull() и sodium_crypto_secretstream_xchacha20poly1305_init_push()

message

additional_data

tag

Необязательно. Может использоваться для подтверждения поведения дешифрования (т.е. повторного ввода ключей или указания последнего фрагмента в потоке).

  • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE: самый распространённый тег, который не добавляет никакой информации о характере сообщения.
  • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL: указывает, что сообщение отмечает конец потока, и стирает секретный ключ, использованный для шифрования предыдущей последовательности.
  • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH: указывает, что сообщение отмечает конец набора сообщений, но не конец потока. Например, огромная строка JSON, отправленная в виде нескольких фрагментов, может использовать этот тег, чтобы указать приложению, что строка завершена и что её можно декодировать. Но сам поток не закрывается и могут последовать дополнительные данные.
  • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY: "забывает" ключ, использованный для шифрования этого и предыдущих сообщений и получает новый секретный ключ.

Возвращаемые значения

Возвращает зашифрованный текст.


Явно поворачивает ключ в состояние secretstream

  • « sodium_crypto_secretstream_xchacha20poly1305_push
  • sodium_crypto_shorthash_keygen »
  • PHP Manual
  • Функции Sodium
  • Явно поворачивает ключ в состояние secretstream

sodium_crypto_secretstream_xchacha20poly1305_rekey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_rekey — Явно поворачивает ключ в состояние secretstream

Описание

sodium_crypto_secretstream_xchacha20poly1305_rekey(string &$state): void

Явно поворачивает ключ в состояние secretstream. Заменяет переданное значение.

Список параметров

state

Состояние secretstream

Возвращаемые значения

Функция не возвращает значения после выполнения.


Получить случайные байты для ключа

  • « sodium_crypto_secretstream_xchacha20poly1305_rekey
  • sodium_crypto_shorthash »
  • PHP Manual
  • Функции Sodium
  • Получить случайные байты для ключа

sodium_crypto_shorthash_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_shorthash_keygen — Получить случайные байты для ключа

Описание

sodium_crypto_shorthash_keygen(): string

Создаёт ключ для использования с sodium_crypto_shorthash().

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Вычисляет короткий хеш сообщения и ключ

  • « sodium_crypto_shorthash_keygen
  • sodium_crypto_sign_detached »
  • PHP Manual
  • Функции Sodium
  • Вычисляет короткий хеш сообщения и ключ

sodium_crypto_shorthash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_shorthash — Вычисляет короткий хеш сообщения и ключ

Описание

sodium_crypto_shorthash(string $message, string $key): string

sodium_crypto_shorthash() обёртывает хеш-функцию под названием SipHash-2-4, которая идеально подходит для реализации хеш-таблиц, которые не подвержены атакам отказа в обслуживании из-за коллизии хешей (Hash-DoS).

SipHash-2-4 не является криптографической хеш-функцией общего назначения.

Список параметров

message

Сообщение, хеш которого необходимо вычислить.

key

Хеш-ключ.

Возвращаемые значения


Подписать сообщение

  • « sodium_crypto_shorthash
  • sodium_crypto_sign_ed25519_pk_to_curve25519 »
  • PHP Manual
  • Функции Sodium
  • Подписать сообщение

sodium_crypto_sign_detached

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_detached — Подписать сообщение

Описание

sodium_crypto_sign_detached(string $message, string $secret_key): string

Подписывает сообщение секретным ключом, который можно проверить с помощью соответствующего открытого ключа. Функция возвращает отсоединённую подпись.

Список параметров

message

Сообщение для подписания.

secret_key

Секретный ключ. Смотрите sodium_crypto_sign_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, PHP 8)

sodium_crypto_sign_ed25519_pk_to_curve25519 — Преобразование открытого ключа системы Ed25519 в открытый ключ Curve25519

Описание

sodium_crypto_sign_ed25519_pk_to_curve25519(string $public_key): string

Вычисляет бирационально-эквивалентный открытый ключ X25519 для открытого ключа Ed25519.

Список параметров

public_key

Открытый ключ, подходящий для функций crypto_sign.

Возвращаемые значения

Открытый ключ, подходящий для функций crypto_box.


Преобразовать секретный ключ из системы 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, PHP 8)

sodium_crypto_sign_ed25519_sk_to_curve25519 — Преобразовать секретный ключ из системы Ed25519 в секретный ключ Curve25519

Описание

sodium_crypto_sign_ed25519_sk_to_curve25519(string $secret_key): string

Вычисляет бирационально-эквивалентный секретный ключ X25519 для секретного ключа Ed25519.

Список параметров

secret_key

Секретный ключ, подходящий для функций crypto_sign.

Возвращаемые значения

Секретный ключ, подходящий для функций crypto_box.


Объединяет секретный ключ и открытый ключ вместе

  • « 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, PHP 8)

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

Секретный ключ Ed25519

public_key

Открытый ключ Ed25519

Возвращаемые значения

Ключевая пара


Произвольно сгенерировать секретный ключ и соответствующий открытый ключ

  • « sodium_crypto_sign_keypair_from_secretkey_and_publickey
  • sodium_crypto_sign_open »
  • PHP Manual
  • Функции Sodium
  • Произвольно сгенерировать секретный ключ и соответствующий открытый ключ

sodium_crypto_sign_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_keypair — Произвольно сгенерировать секретный ключ и соответствующий открытый ключ

Описание

sodium_crypto_sign_keypair(): string

Создаёт случайную пару ключей Ed25519 в виде одной строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключевая пара Ed25519.


Проверить, что подписанное сообщение имеет корректную подпись

  • « sodium_crypto_sign_keypair
  • sodium_crypto_sign_publickey_from_secretkey »
  • PHP Manual
  • Функции Sodium
  • Проверить, что подписанное сообщение имеет корректную подпись

sodium_crypto_sign_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_open — Проверить, что подписанное сообщение имеет корректную подпись

Описание

sodium_crypto_sign_open(string $signed_message, string $public_key): string|false

Проверяет подпись, прикреплённую к сообщению, и возвращает сообщение

Список параметров

signed_message

Сообщение, подписанное sodium_crypto_sign()

public_key

Открытый ключ Ed25519

Возвращаемые значения

В случае успешного выполнения возвращает исходное подписанное сообщение или false в случае возникновения ошибки.


Извлекает открытый ключ Ed25519 из секретного ключа

  • « sodium_crypto_sign_open
  • sodium_crypto_sign_publickey »
  • PHP Manual
  • Функции Sodium
  • Извлекает открытый ключ Ed25519 из секретного ключа

sodium_crypto_sign_publickey_from_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_publickey_from_secretkey — Извлекает открытый ключ Ed25519 из секретного ключа

Описание

sodium_crypto_sign_publickey_from_secretkey(string $secret_key): string

Извлекает открытый ключ Ed25519 из секретного ключа

Список параметров

secret_key

Секретный ключ Ed25519

Возвращаемые значения

Открытый ключ Ed25519


Извлекает открытый ключ Ed25519 из пары ключей

  • « sodium_crypto_sign_publickey_from_secretkey
  • sodium_crypto_sign_secretkey »
  • PHP Manual
  • Функции Sodium
  • Извлекает открытый ключ Ed25519 из пары ключей

sodium_crypto_sign_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_publickey — Извлекает открытый ключ Ed25519 из пары ключей

Описание

sodium_crypto_sign_publickey(string $key_pair): string

Извлекает открытый ключ Ed25519 из пары ключей

Список параметров

key_pair

Ключевая пара Ed25519 (смотрите sodium_crypto_sign_keypair())

Возвращаемые значения

Открытый ключ Ed25519


Извлекает секретный ключ Ed25519 из пары ключей

  • « sodium_crypto_sign_publickey
  • sodium_crypto_sign_seed_keypair »
  • PHP Manual
  • Функции Sodium
  • Извлекает секретный ключ Ed25519 из пары ключей

sodium_crypto_sign_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_secretkey — Извлекает секретный ключ Ed25519 из пары ключей

Описание

sodium_crypto_sign_secretkey(string $key_pair): string

Извлекает секретный ключ Ed25519 из пары ключей

Список параметров

key_pair

Ключевая пара Ed25519 (смотрите sodium_crypto_sign_keypair())

Возвращаемые значения

Секретный ключ Ed25519


Детерминированный вывод пары ключей из одного ключа

  • « sodium_crypto_sign_secretkey
  • sodium_crypto_sign_verify_detached »
  • PHP Manual
  • Функции Sodium
  • Детерминированный вывод пары ключей из одного ключа

sodium_crypto_sign_seed_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_seed_keypair — Детерминированный вывод пары ключей из одного ключа

Описание

sodium_crypto_sign_seed_keypair(string $seed): string

Скрепляет начальное значение для формирования секретного ключа, извлекает открытый ключ и возвращает их в виде пары ключей.

Функции *_seed_keypair идеально подходят для создания пары ключей из пароля и соли. Используйте результат как seed для генерации желаемых ключей.

Список параметров

seed

Какие-то криптографические данные. Должно быть 32 байта.

Возвращаемые значения

Ключевая пара (секретный и открытый ключи)


Проверить подпись для сообщения

  • « sodium_crypto_sign_seed_keypair
  • sodium_crypto_sign »
  • PHP Manual
  • Функции Sodium
  • Проверить подпись для сообщения

sodium_crypto_sign_verify_detached

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_verify_detached — Проверить подпись для сообщения

Описание

sodium_crypto_sign_verify_detached(string $signature, string $message, string $public_key): bool

Проверяет подпись для сообщения

Список параметров

signature

Криптографическая подпись, полученная с помощью sodium_crypto_sign_detached()

message

Проверяемое сообщение

public_key

Открытый ключ ed25519

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Подписать сообщение

  • « sodium_crypto_sign_verify_detached
  • sodium_crypto_stream_keygen »
  • PHP Manual
  • Функции Sodium
  • Подписать сообщение

sodium_crypto_sign

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign — Подписать сообщение

Описание

sodium_crypto_sign(string $message, string $secret_key): string

Подписывает сообщение секретным ключом, который можно проверить с помощью соответствующего открытого ключа. Функция прикрепляет подпись к сообщению. Подробности в разделе sodium_crypto_sign_detached() для отдельных подписей.

Список параметров

message

Сообщение для подписи.

secret_key

Секретный ключ. Смотрите sodium_crypto_sign_secretkey()

Возвращаемые значения

Подписанное сообщение (не зашифрованное).


Генерирует случайный ключ sodium_crypto_stream

  • « sodium_crypto_sign
  • sodium_crypto_stream_xchacha20_keygen »
  • PHP Manual
  • Функции Sodium
  • Генерирует случайный ключ sodium_crypto_stream

sodium_crypto_stream_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_stream_keygen — Генерирует случайный ключ sodium_crypto_stream

Описание

sodium_crypto_stream_keygen(): string

Создаёт ключ, который используется в sodium_crypto_stream() и sodium_crypto_stream_xor().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключ шифрования (256 бит).


Возвращает безопасный случайный ключ

  • « sodium_crypto_stream_keygen
  • sodium_crypto_stream_xchacha20_xor_ic »
  • PHP Manual
  • Функции Sodium
  • Возвращает безопасный случайный ключ

sodium_crypto_stream_xchacha20_keygen

(PHP 8 >= 8.1.0)

sodium_crypto_stream_xchacha20_keygen — Возвращает безопасный случайный ключ

Описание

sodium_crypto_stream_xchacha20_keygen(): string

Возвращает безопасный случайный ключ для использования функцией sodium_crypto_stream_xchacha20().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 32-байтовый безопасный случайный ключ для использования функцией sodium_crypto_stream_xchacha20().


Шифрует сообщение, используя неясный код и секретный ключ (без аутентификации)

  • « sodium_crypto_stream_xchacha20_keygen
  • sodium_crypto_stream_xchacha20_xor »
  • PHP Manual
  • Функции Sodium
  • Шифрует сообщение, используя неясный код и секретный ключ (без аутентификации)

sodium_crypto_stream_xchacha20_xor_ic

(PHP 8 >= 8.2.0)

sodium_crypto_stream_xchacha20_xor_ic — Шифрует сообщение, используя неясный код и секретный ключ (без аутентификации)

Описание

sodium_crypto_stream_xchacha20_xor_ic(
string $message,
string $nonce,
int $counter,
string $key
): string

Функция аналогична sodium_crypto_stream_xchacha20_xor(), но добавляет возможность установить начальное значение счётчика блоков в ненулевое значение. Это позволяет получить прямой доступ к любому блоку без необходимости вычисления предыдущих.

Предостережение

Это шифрование является неаутентифицированным и не предотвращает атаки с подобранным шифротекста. Обязательно объедините шифротекст с кодом аутентификации сообщения, например, с помощью функции sodium_crypto_aead_xchacha20poly1305_ietf_encrypt() или sodium_crypto_auth().

Список параметров

message

Сообщение для шифрования.

nonce

24-байтовый одноразовый номер.

counter

Начальное значение счётчика блоков.

key

Ключ, возможно, сгенерированный функцией sodium_crypto_stream_xchacha20_keygen().

Возвращаемые значения

Возвращает зашифрованное сообщение или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sodium_crypto_stream_xchacha20_xor_ic()

<?php
$n2 = random_bytes(SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES);
$left = str_repeat("\x01", 64);
$right = str_repeat("\xfe", 64);

// Всё сразу:
$stream7_unified = sodium_crypto_stream_xchacha20_xor($left . $right, $n2, $key);

// По частям, с начальным счётчиком:
$stream7_left = sodium_crypto_stream_xchacha20_xor_ic($left, $n2, 0, $key);
$stream7_right = sodium_crypto_stream_xchacha20_xor_ic($right, $n2, 1, $key);
$stream7_concat = $stream7_left . $stream7_right;

var_dump(strlen($stream7_concat));
var_dump($stream7_unified === $stream7_concat);
?>

Результатом выполнения данного примера будет что-то подобное:

int(128)
bool(true)

Смотрите также

  • sodium_crypto_stream_xchacha20_xor() - Шифрует сообщение, используя одноразовый номер и секретный ключ (без аутентификации)


Шифрует сообщение, используя одноразовый номер и секретный ключ (без аутентификации)

  • « sodium_crypto_stream_xchacha20_xor_ic
  • sodium_crypto_stream_xchacha20 »
  • PHP Manual
  • Функции Sodium
  • Шифрует сообщение, используя одноразовый номер и секретный ключ (без аутентификации)

sodium_crypto_stream_xchacha20_xor

(PHP 8 >= 8.1.0)

sodium_crypto_stream_xchacha20_xor — Шифрует сообщение, используя одноразовый номер и секретный ключ (без аутентификации)

Описание

sodium_crypto_stream_xchacha20_xor(string $message, string $nonce, string $key): string

Шифрует сообщение message, используя одноразовый номер nonce и секретный ключ key (без аутентификации).

Предостережение

Это шифрование не аутентифицируется и не предотвращает атаки с выбранным зашифрованным текстом. Обязательно объедините зашифрованный текст с кодом аутентификации сообщения (Message Authentication Code), например, с помощью функции sodium_crypto_aead_xchacha20poly1305_ietf_encrypt() или sodium_crypto_auth().

Список параметров

message

Сообщение для шифрования.

nonce

24-байтовый одноразовый номер.

key

Ключ, возможно, сгенерированный с помощью функции sodium_crypto_stream_xchacha20_keygen().

Возвращаемые значения

Зашифрованное сообщение.

Смотрите также

  • sodium_crypto_stream_xchacha20_xor_ic() - Шифрует сообщение, используя неясный код и секретный ключ (без аутентификации)


Расширяет ключ и одноразовый номер в ключевой поток псевдослучайных байтов

  • « sodium_crypto_stream_xchacha20_xor
  • sodium_crypto_stream_xor »
  • PHP Manual
  • Функции Sodium
  • Расширяет ключ и одноразовый номер в ключевой поток псевдослучайных байтов

sodium_crypto_stream_xchacha20

(PHP 8 >= 8.1.0)

sodium_crypto_stream_xchacha20 — Расширяет ключ и одноразовый номер в ключевой поток псевдослучайных байтов

Описание

sodium_crypto_stream_xchacha20(int $length, string $nonce, string $key): string

Расширяет ключ key и одноразовый номер nonce в ключевой поток псевдослучайных байтов.

Список параметров

length

Желаемое количество байтов.

nonce

24-байтовый одноразовый номер.

key

Ключ, возможно, сгенерированный с помощью функции sodium_crypto_stream_xchacha20_keygen().

Возвращаемые значения

Возвращает псевдослучайный поток, который можно использовать функцией sodium_crypto_stream_xchacha20_xor().


Шифрует сообщение без аутентификации

  • « sodium_crypto_stream_xchacha20
  • sodium_crypto_stream »
  • PHP Manual
  • Функции Sodium
  • Шифрует сообщение без аутентификации

sodium_crypto_stream_xor

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_stream_xor — Шифрует сообщение без аутентификации

Описание

sodium_crypto_stream_xor(string $message, string $nonce, string $key): string

Функция шифрует сообщение с помощью XSalsa20, но не предоставляет никаких гарантий зашифрованного текста для открытого текста.

Список параметров

message

Сообщение для шифрования

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 24 байта. Это достаточно большая граница для случайной генерации (например, random_bytes()).

key

Ключ шифрования (256 бит).

Возвращаемые значения

Зашифрованное сообщение.


Создаёт детерминированную последовательность байтов из начального числа

  • « sodium_crypto_stream_xor
  • sodium_hex2bin »
  • PHP Manual
  • Функции Sodium
  • Создаёт детерминированную последовательность байтов из начального числа

sodium_crypto_stream

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_stream — Создаёт детерминированную последовательность байтов из начального числа

Описание

sodium_crypto_stream(int $length, string $nonce, string $key): string

Создаёт детерминированную последовательность байтов из начального числа с использованием потокового шифра XSalsa20.

Список параметров

length

Количество возвращаемых байтов.

nonce

Номер, который необходимо использовать только один раз для каждого сообщения. Длина 24 байта. Это достаточно большая граница для случайной генерации (например, random_bytes()).

key

Ключ шифрования (256 бит).

Возвращаемые значения

Строка псевдослучайных байтов.


Декодирует строку в шестнадцатеричном представлении в бинарное

  • « sodium_crypto_stream
  • sodium_increment »
  • PHP Manual
  • Функции Sodium
  • Декодирует строку в шестнадцатеричном представлении в бинарное

sodium_hex2bin

(PHP 7 >= 7.2.0, PHP 8)

sodium_hex2bin — Декодирует строку в шестнадцатеричном представлении в бинарное

Описание

sodium_hex2bin(string $string, string $ignore = ""): string

Декодирует строку, закодированную в шестнадцатеричное представление в бинарное.

Как и sodium_bin2hex(), функция sodium_hex2bin() устойчива к атакам по сторонним каналам (side-channel attacks), в отличие от функции hex2bin().

Список параметров

string

Шестнадцатеричное представление данных.

ignore

Необязательный строковый аргумент с игнорируемыми символами.

Возвращаемые значения

Возвращает двоичное представление переданных в аргументе string данных.


Увеличить на единицу большое число

  • « sodium_hex2bin
  • sodium_memcmp »
  • PHP Manual
  • Функции Sodium
  • Увеличить на единицу большое число

sodium_increment

(PHP 7 >= 7.2.0, PHP 8)

sodium_increment — Увеличить на единицу большое число

Описание

sodium_increment(string &$string): void

Обрабатывает строку как целое число без знака с прямым порядком байтов, затем увеличивает его на 1. Постоянное время.

Список параметров

string

Строка для увеличения.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Проверка на равенство за постоянное количество времени

  • « sodium_increment
  • sodium_memzero »
  • PHP Manual
  • Функции Sodium
  • Проверка на равенство за постоянное количество времени

sodium_memcmp

(PHP 7 >= 7.2.0, PHP 8)

sodium_memcmp — Проверка на равенство за постоянное количество времени

Описание

sodium_memcmp(string $string1, string $string2): int

Сравнивает две строки за постоянное время.

На практике чаще вместо этой функции используется hash_equals(), поскольку она предоставляет ту же логику, но возвращает логическое значение (bool) вместо целого числа (int). Однако, если вы используете возвращаемое значение сравнения в вычислениях, которые чувствительны ко времени, и беспокоитесь об утечках времени при преобразованиях типа bool-to-int, sodium_memcmp() - идеальная замена.

Список параметров

string1

Строка для сравнения.

string2

Другая строка для сравнения.

Возвращаемые значения

Возвращает 0, если обе строки равны; -1 в противном случае.


Перезаписывает строку символами NULL

  • « sodium_memcmp
  • sodium_pad »
  • PHP Manual
  • Функции Sodium
  • Перезаписывает строку символами NULL

sodium_memzero

(PHP 7 >= 7.2.0, PHP 8)

sodium_memzero — Перезаписывает строку символами NULL

Описание

sodium_memzero(string &$string): void

sodium_memzero() обнуляет строку, переданную по ссылке.

Список параметров

string

Строка.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Дополняет строку отступами

  • « sodium_memzero
  • sodium_unpad »
  • PHP Manual
  • Функции Sodium
  • Дополняет строку отступами

sodium_pad

(PHP 7 >= 7.2.0, PHP 8)

sodium_pad — Дополняет строку отступами

Описание

sodium_pad(string $string, int $block_size): string

Дополняет строку вправо до заданной длины. Безопасная по времени.

Список параметров

string

Входная строка.

block_size

Строка будет дополнена до тех пор, пока она не станет чётной кратной размеру блока.

Возвращаемые значения

Дополненная строка.


Удаление данных отступов

  • « sodium_pad
  • SodiumException »
  • PHP Manual
  • Функции Sodium
  • Удаление данных отступов

sodium_unpad

(PHP 7 >= 7.2.0, PHP 8)

sodium_unpad — Удаление данных отступов

Описание

sodium_unpad(string $string, int $block_size): string

Удаляет данные отступов у дополненной строки. Безопасная по времени.

Список параметров

string

Дополненная строка.

block_size

Размер блока для заполнения.

Возвращаемые значения

Стока с удалёнными отступами.


Класс SodiumException

(PHP 7 >= 7.2.0, PHP 8)

Введение

Исключения, выбрасываемые функциями sodium.

Обзор классов

class SodiumException extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Модули для работы с базами данных

  • Уровни абстракции
    • DBA — Database (dbm-style) Abstraction Layer
    • ODBC — ODBC (Unified)
    • PDO — Объекты данных PHP
  • Модули для работы с базами данных отдельных производителей
    • CUBRID
    • dBase
    • Firebird/InterBase
    • IBM DB2 — IBM DB2, Cloudscape и Apache Derby
    • MongoDB — Драйвер MongoDB
    • MySQL — MySQL драйверы и плагины
    • OCI8 — Oracle OCI8
    • PostgreSQL
    • SQLite3
    • SQLSRV — Драйвер СУБД Microsoft SQL Server для PHP


Уровни абстракции

  • DBA — Database (dbm-style) Abstraction Layer
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции DBA
  • 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 | Библиотека qdbm доступна по ссылке » http://fallabs.com/qdbm/index.html.
tcadb | Библиотека 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].

Замечание:

Библиотеку можно скачать по ссылке » 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 с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

DBA_LMDB_USE_SUB_DIR (int)

Флаг LMDB Driver, разрешающий создание подкаталога для файлов базы данных. Доступно, начиная с PHP 8.2.0.

DBA_LMDB_NO_SUB_DIR (int)

Флаг LMDB Driver, запрещающий создание подкаталога для файлов базы данных. Доступно, начиная с PHP 8.2.0.


  • « Предопределённые константы
  • Базовое использование »
  • 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, PHP 8)

dba_close — Закрывает базу данных DBA

Описание

dba_close(resource $dba): void

dba_close() закрывает установленную базу данных и освобождает все связанные с ней ресурсы.

Список параметров

dba

Обработчик базы данных, возвращённый dba_open() или dba_popen().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • dba_open() - Открывает базу данных
  • dba_popen() - Установить постоянный экземпляр базы данных


Удаляет запись базы данных определённую ключом

  • « dba_close
  • dba_exists »
  • PHP Manual
  • Функции DBA
  • Удаляет запись базы данных определённую ключом

dba_delete

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_delete — Удаляет запись базы данных определённую ключом

Описание

dba_delete(string|array $key, resource $dba): bool

dba_delete() удаляет указанную запись в базе данных.

Список параметров

key

Ключ записи, которую надо удалить.

dba

Обработчик базы данных, возвращённый 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, PHP 8)

dba_exists — Проверяет, существует ли ключ

Описание

dba_exists(string|array $key, resource $dba): bool

dba_exists() проверяет, если в базе данных заданный ключ key.

Список параметров

key

Проверяемый ключ.

dba

Обработчик базы данных, возвращённый 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, PHP 8)

dba_fetch — Извлекает данные по указанному ключу

Описание

dba_fetch(string|array $key, resource $dba, int $skip = 0): string|false

Перегруженная сигнатура:

dba_fetch(string $key, int $skip, resource $dba): string

dba_fetch() извлекает данные из базы данных, заданной dba, определённые ключом key.

Список параметров

key

Ключ, для которого надо извлечь данные.

Замечание:

Когда работает с ini-файлом, эта функция принимает массив в качестве ключа, где по индексу 0 задана группа, а по индексу 1 - имя параметра. Дополнительно смотрите dba_key_split().

dba

Обработчик базы данных, возвращённый dba_open() или dba_popen().

skip

Число пар ключ-значение, которые нужно проигнорировать при работе с базой данных cdb. Этот параметр игнорируется при работе со всеми остальными базами данных, в которых не поддерживаются множественные ключи с одинаковым именем.

Возвращаемые значения

Возвращает строку, если пара ключ/данные найдена, иначе возвращает false.

Список изменений

Версия | Описание
8.2.0 | Необязательный параметр skip функции dba_fetch() теперь находится в конце в соответствии с пользовательской семантикой PHP; перегруженная сигнатура по-прежнему принимается, но не рекомендуется.

Смотрите также

  • 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, PHP 8)

dba_firstkey — Извлекает первый ключ

Описание

dba_firstkey(resource $dba): string|false

dba_firstkey() возвращает первый ключ из базы данных и сбрасывает внутренний указатель. Это позволяет производить прямой поиск по всей базе.

Список параметров

dba

Обработчик базы данных, возвращённый 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, PHP 8)

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, PHP 8)

dba_insert — Вставляет запись

Описание

dba_insert(string|array $key, string $value, resource $dba): bool

dba_insert() вставляет в базу данных запись заданную параметрами key и value.

Список параметров

key

Ключ записи для вставки. Если такой ключ уже существует в базе данных, функция завершится с ошибкой. Для замены записи используйте функцию dba_replace().

value

Значение для вставки.

dba

Обработчик базы данных, возвращённый 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, PHP 8)

dba_key_split — Разделяет ключ, заданный в виде строки и создаёт массив из полученных частей

Описание

dba_key_split(string|false|null $key): array|false

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, PHP 8)

dba_list — Список всех открытых файлов базы данных

Описание

dba_list(): array

dba_list() возвращает список всех открытых файлов базы данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив типа resourceid => filename.


Извлекает следующий ключ

  • « dba_list
  • dba_open »
  • PHP Manual
  • Функции DBA
  • Извлекает следующий ключ

dba_nextkey

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_nextkey — Извлекает следующий ключ

Описание

dba_nextkey(resource $dba): string|false

dba_nextkey() возвращает следующий ключ из базы данных и перемещает внутренний указатель.

Список параметров

dba

Обработчик базы данных, возвращённый 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, PHP 8)

dba_open — Открывает базу данных

Описание

dba_open(
string $path,
string $mode,
?string $handler = null,
int $permission = 0644,
int $map_size = 0,
?int $flags = null
): resource|false

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(). Если параметр handler равен null, то вызывается обработчик по умолчанию.

permission

Необязательный параметр, заданный целым числом (int), который передаётся драйверу. У него то же значение, что и у параметра permissions функции chmod(), значение по умолчанию - 0644.

Драйверы db1, db2, db3, db4, dbm, gdbm, ndbm и lmdb поддерживают параметр permission.

map_size

Необязательный параметр, заданный целым числом (int), который передаётся драйверу. Его значение должно быть кратно размеру страницы ОС или равно нулю, чтобы использовать размер карты по умолчанию.

Только драйвер lmdb допускает параметр map_size.

flags

Флаги для передачи драйверам базы данных. Если указано значение null, будут переданы флаги по умолчанию. В настоящее время только драйвер LMDB поддерживает следующие флаги: DBA_LMDB_USE_SUB_DIR и DBA_LMDB_NO_SUB_DIR.

Возвращаемые значения

Возвращает обработчик в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Функция возвращает значение false и выдаёт ошибку уровня E_WARNING, если параметр handler равен null, но нет обработчика по умолчанию.

Список изменений

Версия | Описание
8.2.0 | Добавлен параметр flags.
8.2.0 | Параметр handler теперь допускает значение null.
7.3.14, 7.4.2 | Драйвер lmdb теперь поддерживает дополнительный параметр map_size.

Смотрите также

  • dba_popen() - Установить постоянный экземпляр базы данных
  • dba_close() - Закрывает базу данных DBA


Оптимизирует базу данных

  • « dba_open
  • dba_popen »
  • PHP Manual
  • Функции DBA
  • Оптимизирует базу данных

dba_optimize

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_optimize — Оптимизирует базу данных

Описание

dba_optimize(resource $dba): bool

dba_optimize() оптимизирует основную базу данных.

Список параметров

dba

Обработчик базы данных, возвращённый dba_open() или dba_popen().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • dba_sync() - Синхронизирует базу данных


Установить постоянный экземпляр базы данных

  • « dba_optimize
  • dba_replace »
  • PHP Manual
  • Функции DBA
  • Установить постоянный экземпляр базы данных

dba_popen

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_popen — Установить постоянный экземпляр базы данных

Описание

dba_popen(
string $path,
string $mode,
?string $handler = null,
int $permission = 0644,
int $map_size = 0,
?int $flags = null
): resource|false

dba_open() устанавливает постоянный экземпляр базы данных по пути path в режиме mode, используя обработчик handler.

Список параметров

path

Путь до файлов базы данных.

mode

r для режима чтения, w для режима чтения/записи с уже существующей базой данных. c для режима чтения/записи и создания базы данных, если она ещё не была создана, и n для создания, обрезания и доступа для чтения/записи. База данных создаётся с архитектурой BTree, другие архитектуры (вроде Hash или Queue) не поддерживаются.

handler

Имя обработчика, который будет использоваться для доступа по пути path. Ему передаются все необязательные параметры, заданные в dba_open(). Если параметр handler равен null, то вызывается обработчик по умолчанию.

permission

Необязательный параметр, заданный целым числом (int), который передаётся драйверу. У него то же значение, что и у параметра permissions функции chmod(), значение по умолчанию - 0644.

Драйверы db1, db2, db3, db4, dbm, gdbm, ndbm и lmdb поддерживают параметр permission.

map_size

Необязательный параметр, заданный целым числом (int), который передаётся драйверу. Его значение должно быть кратно размеру страницы ОС или равно нулю, чтобы использовать размер карты по умолчанию.

Только драйвер lmdb допускает параметр map_size.

flags

Флаги для передачи драйверам базы данных. Если указано значение null, будут переданы флаги по умолчанию. В настоящее время только драйвер LMDB поддерживает следующие флаги: DBA_LMDB_USE_SUB_DIR и DBA_LMDB_NO_SUB_DIR.

Возвращаемые значения

Возвращает обработчик в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Функция возвращает значение false и выдаёт ошибку уровня E_WARNING, если параметр handler равен null, но нет обработчика по умолчанию.

Список изменений

Версия | Описание
8.2.0 | Добавлен параметр flags.
8.1.0 | Параметр handler теперь допускает значение null.
7.3.14, 7.4.2 | Драйвер lmdb теперь поддерживает дополнительный параметр map_size.

Смотрите также

  • dba_open() - Открывает базу данных
  • dba_close() - Закрывает базу данных DBA


Перезаписать или вставить запись

  • « dba_popen
  • dba_sync »
  • PHP Manual
  • Функции DBA
  • Перезаписать или вставить запись

dba_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_replace — Перезаписать или вставить запись

Описание

dba_replace(string|array $key, string $value, resource $dba): bool

dba_replace() перезаписывает или вставляет запись, заданную ключом key и значением value в базу данных определённую обработчиком dba.

Список параметров

key

Ключ записи, которую надо заменить.

value

Новое значение.

dba

Обработчик базы данных, возвращённый dba_open() или dba_popen().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • dba_exists() - Проверяет, существует ли ключ
  • dba_delete() - Удаляет запись базы данных определённую ключом
  • dba_fetch() - Извлекает данные по указанному ключу
  • dba_insert() - Вставляет запись


Синхронизирует базу данных

  • « dba_replace
  • ODBC »
  • PHP Manual
  • Функции DBA
  • Синхронизирует базу данных

dba_sync

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_sync — Синхронизирует базу данных

Описание

dba_sync(resource $dba): bool

dba_sync() синхронизирует базу данных. Скорее всего эта функция, если поддерживается, вызовет запись на диск.

Список параметров

dba

Обработчик базы данных, возвращённый dba_open() или dba_popen().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • dba_optimize() - Оптимизирует базу данных


ODBC (Unified)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции ODBC
    • odbc_autocommit — Переключает поведение автоматической фиксации
    • odbc_binmode — Управляет обработкой двоичных данных столбца
    • odbc_close_all — Закрывает все соединения ODBC
    • odbc_close — Закрывает соединение ODBC
    • odbc_columnprivileges — Перечисляет столбцы и связанные привилегии для данной таблицы
    • odbc_columns — Перечисляет имена столбцов в указанных таблицах
    • odbc_commit — Фиксирует транзакцию ODBC
    • odbc_connect — Соединяет с источником данных
    • odbc_connection_string_is_quoted — Определяет, заключено ли значение строки соединения ODBC в кавычки
    • odbc_connection_string_quote — Заключает в кавычки значение строки подключения
    • odbc_connection_string_should_quote — Определяет, следует ли заключать значение строки соединения ODBC в кавычки
    • odbc_cursor — Возвращает имя курсора
    • odbc_data_source — Возвращает информацию о доступных DSN
    • odbc_do — Псевдоним odbc_exec
    • odbc_error — Возвращает последний код ошибки
    • odbc_errormsg — Возвращает последнее сообщение об ошибке
    • odbc_exec — Выполняет инструкцию SQL напрямую
    • odbc_execute — Выполняет запрос
    • odbc_fetch_array — Возвращает строку результата в виде ассоциативного массива
    • odbc_fetch_into — Возвращает одну строку результата в массив
    • odbc_fetch_object — Возвращает строку результата в виде объекта
    • odbc_fetch_row — Возвращает строку
    • odbc_field_len — Возвращает длину (точность) поля
    • odbc_field_name — Возвращает имя столбца
    • odbc_field_num — Возвращает номер столбца
    • odbc_field_precision — Псевдоним odbc_field_len
    • odbc_field_scale — Возвращает масштаб поля
    • odbc_field_type — Возвращает тип данных поля
    • odbc_foreignkeys — Возвращает список внешних ключей
    • odbc_free_result — Освобождает ресурсы, связанные с результатом
    • odbc_gettypeinfo — Возвращает информацию о типах данных, поддерживаемых источником данных
    • odbc_longreadlen — Обрабатывает столбцы LONG
    • odbc_next_result — Проверяет, доступно ли несколько результатов
    • odbc_num_fields — Возвращает количество столбцов в результате
    • odbc_num_rows — Возвращает количество строк в результате
    • odbc_pconnect — Открывает постоянное соединение с базой данных
    • odbc_prepare — Подготавливает запрос к выполнению
    • odbc_primarykeys — Получает первичные ключи таблицы
    • odbc_procedurecolumns — Получает информацию о параметрах процедур
    • odbc_procedures — Получает список процедур, хранящихся в определённом источнике данных
    • odbc_result_all — Выводит результат в виде HTML-таблицы
    • odbc_result — Получает данные результата
    • odbc_rollback — Откатывает транзакцию
    • odbc_setoption — Регулирует настройки ODBC
    • odbc_specialcolumns — Извлекает особые столбцы
    • odbc_statistics — Получает статистику о таблице
    • odbc_tableprivileges — Перечисляет таблицы и привилегии, связанные с каждой таблицей
    • odbc_tables — Получает список имён таблиц, хранящихся в определённом источнике данных


Введение

В дополнение к обычной поддержке ODBC, функции Unified ODBC в PHP позволяют получить доступ к нескольким базам данных, которые позаимствовали семантику ODBC API для реализации своего собственного API. Вместо того чтобы поддерживать несколько драйверов баз данных, которые были практически идентичны, эти драйверы были объединены в единый набор функций ODBC.

Следующие базы данных поддерживаются функциями Unified ODBC: » Adabas D, » IBM DB2, » iODBC, » Solid, и » Sybase SQL Anywhere.

Замечание:

За исключением iODBC, при подключении к вышеуказанным базам данных ODBC не задействуется. Функции, которые вы используете для непосредственного общения с ними, просто имеют те же имена и синтаксис, что и функции ODBC. Тем не менее, сборка PHP с поддержкой iODBC позволяет вам использовать любые ODBC-совместимые драйверы с вашими PHP-приложениями. Дополнительную информацию о iODBC можно получить по адресу » www.iodbc.org, а альтернативный вариант unixODBC доступен по адресу » www.unixodbc.org.


Требования

Для доступа к любой из поддерживаемых баз данных вам требуется установить необходимые библиотеки.


Установка

--with-adabas[=DIR]

Включить поддержку Adabas D. DIR - это каталог установки Adabas, по умолчанию /usr/local.

--with-sapdb[=DIR]

Включить поддержку SAP DB. DIR - каталог установки SAP DB, по умолчанию /usr/local.

--with-solid[=DIR]

Включить поддержку Solid. DIR - каталог установки Solid base, по умолчанию /usr/local/solid.

--with-ibm-db2[=DIR]

Включить поддержку IBM DB2. DIR - это каталог установки DB2, по умолчанию /home/db2inst1/sqllib.

--with-empress[=DIR]

Включить поддержку Empress. DIR - это каталог установки Empress, по умолчанию $EMPRESSPATH. Опция поддерживается только Empress версии 8.60 и выше.

--with-empress-bcs[=DIR]

Включить поддержку "Empress Local Access". DIR - это каталог установки Empress, по умолчанию $EMPRESSPATH. Опция поддерживается только Empress версии 8.60 и выше.

--with-birdstep[=DIR]

Включить поддержку Birdstep. DIR - это каталог установки Birdstep, по умолчанию /usr/local/birdstep.

--with-custom-odbc[=DIR]

Включить определённую пользователем поддержку ODBC. DIR - это каталог установки ODBC, по умолчанию /usr/local. Убедитесь, что вы определили CUSTOM_ODBC_LIBS и у вас есть несколько odbc.h в ваших включаемых каталогах. Например, вы должны определить следующее для Sybase SQL Anywhere 5.5.00 в QNX перед запуском скрипта настройки:

   CPPFLAGS="-DODBC_QNX -DSQLANY_BUG"
   LDFLAGS=-lunix
   CUSTOM_ODBC_LIBS="-ldblib -lodbc".

--with-iodbc[=DIR]

Включить поддержку iODBC. DIR - это каталог установки iODBC, по умолчанию /usr/local.

--with-esoob[=DIR]

Включить поддержку Easysoft OOB. DIR - это каталог установки Easysoft OOB, по умолчанию /usr/local/easysoft/oob/client.

--with-unixODBC[=DIR]

Включить поддержку unixODBC. DIR - это каталог установки unixODBC, по умолчанию /usr/local.

--with-openlink[=DIR]

Включить поддержку OpenLink ODBC. DIR - это каталог установки OpenLink, по умолчанию /usr/local. Это то же самое, что и iODBC.

--with-dbmaker[=DIR]

Включить поддержку DBMaker. DIR - это каталог установки DBMaker, по умолчанию это место, где установлена последняя версия DBMaker (например, /home/dbmaker/3.6).

Пользователи Windows должны включить php_odbc.dll, чтобы использовать этот модуль.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации Unified ODBC
Имя | По умолчанию | Место изменения | Список изменений
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 |

Замечание: Записи, помеченные *, ещё не реализованы.

Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

odbc.default_db string

Источник данных ODBC для использования, если ни один не указан в odbc_connect() или odbc_pconnect().

odbc.default_user string

Имя пользователя для использования, если ни один не указан в odbc_connect() или odbc_pconnect().

odbc.default_pw string

Пароль для использования, если ни один не указан в odbc_connect() или odbc_pconnect().

odbc.allow_persistent bool

Разрешать ли постоянные соединения ODBC.

odbc.check_persistent bool

Перед повторным использованием убедитесь, что соединение всё ещё доступно.

odbc.max_persistent int

Максимальное количество постоянных соединений ODBC на процесс.

odbc.max_links int

Максимальное количество соединений ODBC на процесс, включая постоянные соединения.

odbc.defaultlrl int

Обработка длинных (LONG) полей. Определяет количество байтов, возвращаемых переменным. Смотрите odbc_longreadlen() для подробностей.

Если используется int, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.
odbc.defaultbinmode int

Обработка двоичных данных. Смотрите odbc_binmode() для подробностей.

odbc.default_cursortype int

Управляет моделью курсора ODBC. Возможные значения SQL_CURSOR_FORWARD_ONLY, SQL_CURSOR_KEYSET_DRIVEN, SQL_CURSOR_DYNAMIC и SQL_CURSOR_STATIC (по умолчанию).


  • « Настройка во время выполнения
  • Предопределённые константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Модуль определяет два типа ресурсов: идентификатор соединения ODBC и идентификатор результата ODBC.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

ODBC_TYPE (string)
ODBC_BINMODE_PASSTHRU (int)
ODBC_BINMODE_RETURN (int)
ODBC_BINMODE_CONVERT (int)
SQL_ODBC_CURSORS (int)
SQL_CUR_USE_DRIVER (int)
SQL_CUR_USE_IF_NEEDED (int)
SQL_CUR_USE_ODBC (int)
SQL_CONCURRENCY (int)
SQL_CONCUR_READ_ONLY (int)
SQL_CONCUR_LOCK (int)
SQL_CONCUR_ROWVER (int)
SQL_CONCUR_VALUES (int)
SQL_CURSOR_TYPE (int)
SQL_CURSOR_FORWARD_ONLY (int)
SQL_CURSOR_KEYSET_DRIVEN (int)
SQL_CURSOR_DYNAMIC (int)
SQL_CURSOR_STATIC (int)
SQL_KEYSET_SIZE (int)
SQL_CHAR (int)
SQL_VARCHAR (int)
SQL_LONGVARCHAR (int)
SQL_DECIMAL (int)
SQL_NUMERIC (int)
SQL_BIT (int)
SQL_TINYINT (int)
SQL_SMALLINT (int)
SQL_INTEGER (int)
SQL_BIGINT (int)
SQL_REAL (int)
SQL_FLOAT (int)
SQL_DOUBLE (int)
SQL_BINARY (int)
SQL_VARBINARY (int)
SQL_LONGVARBINARY (int)
SQL_DATE (int)
SQL_TIME (int)
SQL_TIMESTAMP (int)
SQL_TYPE_DATE (int)
SQL_TYPE_TIME (int)
SQL_TYPE_TIMESTAMP (int)
SQL_BEST_ROWID (int)
SQL_ROWVER (int)
SQL_SCOPE_CURROW (int)
SQL_SCOPE_TRANSACTION (int)
SQL_SCOPE_SESSION (int)
SQL_NO_NULLS (int)
SQL_NULLABLE (int)
SQL_INDEX_UNIQUE (int)
SQL_INDEX_ALL (int)
SQL_ENSURE (int)
SQL_QUICK (int)


Функции ODBC

Содержание

  • odbc_autocommit — Переключает поведение автоматической фиксации
  • odbc_binmode — Управляет обработкой двоичных данных столбца
  • odbc_close_all — Закрывает все соединения ODBC
  • odbc_close — Закрывает соединение ODBC
  • odbc_columnprivileges — Перечисляет столбцы и связанные привилегии для данной таблицы
  • odbc_columns — Перечисляет имена столбцов в указанных таблицах
  • odbc_commit — Фиксирует транзакцию ODBC
  • odbc_connect — Соединяет с источником данных
  • odbc_connection_string_is_quoted — Определяет, заключено ли значение строки соединения ODBC в кавычки
  • odbc_connection_string_quote — Заключает в кавычки значение строки подключения
  • odbc_connection_string_should_quote — Определяет, следует ли заключать значение строки соединения ODBC в кавычки
  • odbc_cursor — Возвращает имя курсора
  • odbc_data_source — Возвращает информацию о доступных DSN
  • odbc_do — Псевдоним odbc_exec
  • odbc_error — Возвращает последний код ошибки
  • odbc_errormsg — Возвращает последнее сообщение об ошибке
  • odbc_exec — Выполняет инструкцию SQL напрямую
  • odbc_execute — Выполняет запрос
  • odbc_fetch_array — Возвращает строку результата в виде ассоциативного массива
  • odbc_fetch_into — Возвращает одну строку результата в массив
  • odbc_fetch_object — Возвращает строку результата в виде объекта
  • odbc_fetch_row — Возвращает строку
  • odbc_field_len — Возвращает длину (точность) поля
  • odbc_field_name — Возвращает имя столбца
  • odbc_field_num — Возвращает номер столбца
  • odbc_field_precision — Псевдоним odbc_field_len
  • odbc_field_scale — Возвращает масштаб поля
  • odbc_field_type — Возвращает тип данных поля
  • odbc_foreignkeys — Возвращает список внешних ключей
  • odbc_free_result — Освобождает ресурсы, связанные с результатом
  • odbc_gettypeinfo — Возвращает информацию о типах данных, поддерживаемых источником данных
  • odbc_longreadlen — Обрабатывает столбцы LONG
  • odbc_next_result — Проверяет, доступно ли несколько результатов
  • odbc_num_fields — Возвращает количество столбцов в результате
  • odbc_num_rows — Возвращает количество строк в результате
  • odbc_pconnect — Открывает постоянное соединение с базой данных
  • odbc_prepare — Подготавливает запрос к выполнению
  • odbc_primarykeys — Получает первичные ключи таблицы
  • odbc_procedurecolumns — Получает информацию о параметрах процедур
  • odbc_procedures — Получает список процедур, хранящихся в определённом источнике данных
  • odbc_result_all — Выводит результат в виде HTML-таблицы
  • odbc_result — Получает данные результата
  • odbc_rollback — Откатывает транзакцию
  • odbc_setoption — Регулирует настройки ODBC
  • odbc_specialcolumns — Извлекает особые столбцы
  • odbc_statistics — Получает статистику о таблице
  • odbc_tableprivileges — Перечисляет таблицы и привилегии, связанные с каждой таблицей
  • odbc_tables — Получает список имён таблиц, хранящихся в определённом источнике данных


Переключает поведение автоматической фиксации

  • « Функции ODBC
  • odbc_binmode »
  • PHP Manual
  • Функции ODBC
  • Переключает поведение автоматической фиксации

odbc_autocommit

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_autocommit — Переключает поведение автоматической фиксации

Описание

odbc_autocommit(resource $odbc, bool $enable = false): int|bool

Переключает поведение автоматической фиксации.

По умолчанию для подключения включена автоматическая фиксация. Отключение автоматической фиксации эквивалентно запуску транзакции.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

enable

Если enable установлен true, автоматическая фиксация включена, если false - автоматическая фиксация отключена.

Возвращаемые значения

Без параметра enable функция возвращает статус автоматической фиксации для odbc. Ненулевое значение возвращается, если автоматическая фиксация включена, 0 - если выключена и false в случае возникновения ошибки.

Если задано значение enable, функция возвращает true в случае успешного выполнения и false в случае возникновения ошибки.

Смотрите также

  • odbc_commit() - Фиксирует транзакцию ODBC
  • odbc_rollback() - Откатывает транзакцию


Управляет обработкой двоичных данных столбца

  • « odbc_autocommit
  • odbc_close_all »
  • PHP Manual
  • Функции ODBC
  • Управляет обработкой двоичных данных столбца

odbc_binmode

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_binmode — Управляет обработкой двоичных данных столбца

Описание

odbc_binmode(resource $statement, int $mode): bool

Управляет обработкой двоичных данных столбца. Затрагиваемые типы ODBC SQL: BINARY, VARBINARY и LONGVARBINARY. Режим по умолчанию можно установить с помощью директивы php.ini uodbc.defaultbinmode.

Когда двоичные данные SQL преобразуются в символьные данные C (ODBC_BINMODE_CONVERT), каждый байт (8 бит) исходных данных представляется в виде двух символов ASCII. Эти символы представляют собой символьное представление числа в формате ASCII в его шестнадцатеричной форме. Например, двоичное число 00000001 преобразуется в "01" , а 11111111 - в "FF".

Хотя обработка столбцов BINARY и VARBINARY зависит только от binmode, обработка столбцов LONGVARBINARY также зависит от longreadlen:

Обработка LONGVARBINARY
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_RETURN | >0 | вернуть как есть
ODBC_BINMODE_CONVERT | >0 | вернуть в виде char

Если используется odbc_fetch_into(), passthru означает, что для этих столбцов возвращается пустая строка. Если используется odbc_result(), passthru означает, что данные отправляются клиенту напрямую (т.е. печатаются).

Список параметров

statement

Идентификатор результата.

Если statement равен 0, настройки применяются по умолчанию для новых результатов.

mode

Возможные значения для mode:

  • ODBC_BINMODE_PASSTHRU: Использовать режим passthru для двоичных данных
  • ODBC_BINMODE_RETURN: Вернуть как есть
  • ODBC_BINMODE_CONVERT: Преобразовать в char и вернуть

Замечание: На обработку двоичных столбцов LONG также влияет функция odbc_longreadlen().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Закрывает все соединения ODBC

  • « odbc_binmode
  • odbc_close »
  • PHP Manual
  • Функции ODBC
  • Закрывает все соединения ODBC

odbc_close_all

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_close_all — Закрывает все соединения ODBC

Описание

odbc_close_all(): void

odbc_close_all() закроет все соединения с сервером (серверами) базы данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примечания

Замечание:

Эта функция не сработает, если в соединении есть открытые транзакции. В этом случае соединение останется открытым.


Закрывает соединение ODBC

  • « odbc_close_all
  • odbc_columnprivileges »
  • PHP Manual
  • Функции ODBC
  • Закрывает соединение ODBC

odbc_close

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_close — Закрывает соединение ODBC

Описание

odbc_close(resource $odbc): void

Закрывает соединение с сервером базы данных.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примечания

Замечание:

Эта функция не сработает, если в соединении есть открытые транзакции. В этом случае соединение останется открытым.


Перечисляет столбцы и связанные привилегии для данной таблицы

  • « odbc_close
  • odbc_columns »
  • PHP Manual
  • Функции ODBC
  • Перечисляет столбцы и связанные привилегии для данной таблицы

odbc_columnprivileges

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_columnprivileges — Перечисляет столбцы и связанные привилегии для данной таблицы

Описание

odbc_columnprivileges(
resource $odbc,
?string $catalog,
string $schema,
string $table,
string $column
): resource|false

Перечисляет столбцы и связанные привилегии для данной таблицы.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

catalog

Каталог ('qualifier' на языке ODBC 2).

schema

Схема ('owner' на языке ODBC 2). Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

table

Имя таблицы. Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

column

Имя столбца. Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

Возвращаемые значения

Возвращает идентификатор результата ODBC или false в случае возникновения ошибки. Этот идентификатор результата можно использовать для получения списка столбцов и связанных привилегий.

В результирующем наборе имеются следующие столбцы:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE
Драйверы могут сообщать дополнительные столбцы.

Результирующий набор упорядочивается по TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME и PRIVILEGE.

Примеры

Пример #1 Перечисление привилегий для столбца

<?php
$conn = odbc_connect($dsn, $user, $pass);
$privileges = odbc_columnprivileges($conn, 'TutorialDB', 'dbo', 'test', 'id');
while (($row = odbc_fetch_array($privileges))) {
print_r($row);
break; // последующие строки опущены для краткости
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => test
    [COLUMN_NAME] => id
    [GRANTOR] => dbo
    [GRANTEE] => dbo
    [PRIVILEGE] => INSERT
    [IS_GRANTABLE] => YES
)


Перечисляет имена столбцов в указанных таблицах

  • « odbc_columnprivileges
  • odbc_commit »
  • PHP Manual
  • Функции ODBC
  • Перечисляет имена столбцов в указанных таблицах

odbc_columns

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_columns — Перечисляет имена столбцов в указанных таблицах

Описание

odbc_columns(
resource $odbc,
?string $catalog = null,
?string $schema = null,
?string $table = null,
?string $column = null
): resource|false

Перечисляет все столбцы в запрошенном диапазоне.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

catalog

Каталог ('qualifier' на языке ODBC 2).

schema

Схема ('owner' на языке ODBC 2). Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

table

Имя таблицы. Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

column

Имя столбца. Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

Возвращаемые значения

Возвращает идентификатор результата ODBC или false в случае возникновения ошибки.

В результирующем наборе имеются следующие столбцы:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • NUM_PREC_RADIX
  • NULLABLE
  • REMARKS
  • COLUMN_DEF
  • SQL_DATA_TYPE
  • SQL_DATETIME_SUB
  • CHAR_OCTET_LENGTH
  • ORDINAL_POSITION
  • IS_NULLABLE
Драйверы могут сообщать дополнительные столбцы.

Результирующий набор упорядочивается по TABLE_CAT, TABLE_SCHEM, TABLE_NAME и ORDINAL_POSITION.

Список изменений

Версия | Описание
8.0.0 | schema, table и column теперь допускают значение null.

Примеры

Пример #1 Перечисление столбцов таблицы

<?php
$conn = odbc_connect($dsn, $user, $pass);
$columns = odbc_columns($conn, 'TutorialDB', 'dbo', 'test', '%');
while (($row = odbc_fetch_array($columns))) {
print_r($row);
break; // последующие строки опущены для краткости
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [COLUMN_NAME] => id
    [DATA_TYPE] => 4
    [TYPE_NAME] => int
    [COLUMN_SIZE] => 10
    [BUFFER_LENGTH] => 4
    [DECIMAL_DIGITS] => 0
    [NUM_PREC_RADIX] => 10
    [NULLABLE] => 0
    [REMARKS] =>
    [COLUMN_DEF] =>
    [SQL_DATA_TYPE] => 4
    [SQL_DATETIME_SUB] =>
    [CHAR_OCTET_LENGTH] =>
    [ORDINAL_POSITION] => 1
    [IS_NULLABLE] => NO
)

Смотрите также

  • odbc_columnprivileges() - Перечисляет столбцы и связанные привилегии для данной таблицы
  • odbc_procedurecolumns() - Получает информацию о параметрах процедур


Фиксирует транзакцию ODBC

  • « odbc_columns
  • odbc_connect »
  • PHP Manual
  • Функции ODBC
  • Фиксирует транзакцию ODBC

odbc_commit

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_commit — Фиксирует транзакцию ODBC

Описание

odbc_commit(resource $odbc): bool

Фиксирует все незавершённые транзакции в соединении.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Соединяет с источником данных

  • « odbc_commit
  • odbc_connection_string_is_quoted »
  • PHP Manual
  • Функции ODBC
  • Соединяет с источником данных

odbc_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_connect — Соединяет с источником данных

Описание

odbc_connect(
string $dsn,
string $user,
string $password,
int $cursor_option = SQL_CUR_USE_DRIVER
): resource|false

Идентификатор соединения, возвращаемый этой функцией, необходим для других 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_option

Устанавливает тип используемого курсора для соединения. Обычно этот параметр не нужен, но может оказаться полезным для обхода проблем с некоторыми драйверами 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() - Открывает постоянное соединение с базой данных


Определяет, заключено ли значение строки соединения ODBC в кавычки

  • « odbc_connect
  • odbc_connection_string_quote »
  • PHP Manual
  • Функции ODBC
  • Определяет, заключено ли значение строки соединения ODBC в кавычки

odbc_connection_string_is_quoted

(PHP 8 >= 8.2.0)

odbc_connection_string_is_quoted — Определяет, заключено ли значение строки соединения ODBC в кавычки

Описание

odbc_connection_string_is_quoted(string $str): bool

Определяет, правильно ли заключена строка в кавычки для значения строки соединения ODBC. Для кавычек в строке соединения ODBC используются фигурные скобки, причём завершающие скобки в строке должны быть экранированы путём повторения их дважды, аналогично кавычкам в SQL.

Список параметров

str

Строка, которую необходимо проверить на наличие кавычек.

Возвращаемые значения

Возвращает true, если кавычки приведены правильно, в противном случае возвращает false.

Смотрите также

  • odbc_connection_string_quote() - Заключает в кавычки значение строки подключения
  • odbc_connection_string_should_quote() - Определяет, следует ли заключать значение строки соединения ODBC в кавычки


Заключает в кавычки значение строки подключения

  • « odbc_connection_string_is_quoted
  • odbc_connection_string_should_quote »
  • PHP Manual
  • Функции ODBC
  • Заключает в кавычки значение строки подключения

odbc_connection_string_quote

(PHP 8 >= 8.2.0)

odbc_connection_string_quote — Заключает в кавычки значение строки подключения

Описание

odbc_connection_string_quote(string $str): string

Заключает в кавычки значение строки подключения в соответствии с правилами ODBC. То есть оно будет окружено кавычками, а все завершающие фигурные скобки будут экранированы. Это необходимо делать для всех значений строки подключения, которые поступают от пользователя. Невыполнение этого требования может привести к проблемам с разбором строки подключения или к инъекции значений в строку подключения.

Обратите внимание, что данная функция не проверяет, не заключена ли уже строка в кавычки и не нуждается ли она в кавычках. Для этого следует использовать функцию odbc_connection_string_is_quoted() и odbc_connection_string_should_quote().

Список параметров

str

Строка, не заключённая в кавычки.

Возвращаемые значения

Возвращает строку, заключённую в кавычки, окружённую фигурными скобками и правильно экранированную.

Примеры

Пример #1 Пример использования odbc_connection_string_quote()

В этом примере строка заключается в кавычки, а затем помещается в строку соединения. Обратите внимание, что строка заключена в кавычки, а символ окончания кавычек в середине строки был экранирован.

<?php
$value = odbc_connection_string_quote("foo}bar");
$connection_string = "DSN=PHP;UserValue=$value";
echo $connection_string;
?>

Результатом выполнения данного примера будет что-то подобное:

DSN=PHP;UserValue={foo}}bar}

Смотрите также

  • odbc_connection_string_is_quoted() - Определяет, заключено ли значение строки соединения ODBC в кавычки
  • odbc_connection_string_should_quote() - Определяет, следует ли заключать значение строки соединения ODBC в кавычки


Определяет, следует ли заключать значение строки соединения ODBC в кавычки

  • « odbc_connection_string_quote
  • odbc_cursor »
  • PHP Manual
  • Функции ODBC
  • Определяет, следует ли заключать значение строки соединения ODBC в кавычки

odbc_connection_string_should_quote

(PHP 8 >= 8.2.0)

odbc_connection_string_should_quote — Определяет, следует ли заключать значение строки соединения ODBC в кавычки

Описание

odbc_connection_string_should_quote(string $str): bool

Определяет, нужно ли заключать строку в кавычки для строкового значения соединения ODBC, т.е. содержит ли она специальные символы.

Обратите внимание, что при этом не проверяется, заключена ли строка в кавычки; уже заключённая в кавычки строка будет содержать символы, которые заставят эту функцию вернуть значение true. Для проверки следует использовать функцию odbc_connection_string_is_quoted().

Список параметров

str

Строка, которую необходимо проверить.

Возвращаемые значения

Возвращает true, если строка должна быть заключена в кавычки, в противном случае возвращает false.

Смотрите также

  • odbc_connection_string_quote() - Заключает в кавычки значение строки подключения
  • odbc_connection_string_is_quoted() - Определяет, заключено ли значение строки соединения ODBC в кавычки


Возвращает имя курсора

  • « odbc_connection_string_should_quote
  • odbc_data_source »
  • PHP Manual
  • Функции ODBC
  • Возвращает имя курсора

odbc_cursor

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_cursor — Возвращает имя курсора

Описание

odbc_cursor(resource $statement): string|false

Возвращает имя курсора для данного result_id.

Список параметров

statement

Идентификатор результата.

Возвращаемые значения

Возвращает имя курсора в виде строки или false в случае возникновения ошибки.


Возвращает информацию о доступных DSN

  • « odbc_cursor
  • odbc_do »
  • PHP Manual
  • Функции ODBC
  • Возвращает информацию о доступных DSN

odbc_data_source

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

odbc_data_source — Возвращает информацию о доступных DSN

Описание

odbc_data_source(resource $odbc, int $fetch_type): array|false

Эта функция вернёт список доступных DSN (после нескольких вызовов).

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

fetch_type

fetch_type может быть одним из двух типов констант: SQL_FETCH_FIRST, SQL_FETCH_NEXT. Используйте SQL_FETCH_FIRST при первом вызове этой функции, после этого используйте SQL_FETCH_NEXT.

Возвращаемые значения

Возвращает false в случае возникновения ошибки, массив (array) в случае успешного выполнения и null после выборки последнего доступного DSN.

Примеры

Пример #1 Перечисление доступных DSN

<?php
$conn = odbc_connect('dsn', 'user', 'pass');
$dsn_info = odbc_data_source($conn, SQL_FETCH_FIRST);
while ($dsn_info) {
print_r($dsn_info);
$dsn_info = odbc_data_source($conn, SQL_FETCH_NEXT);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [server] => dsn
    [description] => ODBC Driver 17 for SQL Server
)
Array
(
    [server] => other_dsn
    [description] => Microsoft Access Driver (*.mdb, *.accdb)
)


Псевдоним odbc_exec

  • « odbc_data_source
  • odbc_error »
  • PHP Manual
  • Функции ODBC
  • Псевдоним odbc_exec

odbc_do

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_do — Псевдоним odbc_exec()

Описание

Функция является псевдонимом: odbc_exec().


Возвращает последний код ошибки

  • « odbc_do
  • odbc_errormsg »
  • PHP Manual
  • Функции ODBC
  • Возвращает последний код ошибки

odbc_error

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

odbc_error — Возвращает последний код ошибки

Описание

odbc_error(?resource $odbc = null): string

Возвращает шестизначное состояние ODBC или пустую строку, если ошибок не возникло.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

Если указан параметр odbc, возвращается последнее состояние этого соединения, иначе возвращается последнее состояние любого соединения.

Эта функция возвращает осмысленное значение, только если последний запрос ODBC завершился неудачно (т.е. функция odbc_exec() вернула false).

Список изменений

Версия | Описание
8.0.0 | odbc теперь допускает значение null.

Смотрите также

  • odbc_errormsg() - Возвращает последнее сообщение об ошибке
  • odbc_exec() - Выполняет инструкцию SQL напрямую


Возвращает последнее сообщение об ошибке

  • « odbc_error
  • odbc_exec »
  • PHP Manual
  • Функции ODBC
  • Возвращает последнее сообщение об ошибке

odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

odbc_errormsg — Возвращает последнее сообщение об ошибке

Описание

odbc_errormsg(?resource $odbc = null): string

Возвращает строку, содержащую последнее сообщение об ошибке ODBC, или пустую строку, если ошибок не возникло.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

Если указан параметр odbc, возвращается последнее состояние этого соединения, иначе возвращается последнее состояние любого соединения.

Эта функция возвращает осмысленное значение, только если последний запрос ODBC завершился неудачно (т.е. функция odbc_exec() вернула false).

Список изменений

Версия | Описание
8.0.0 | odbc теперь допускает значение null.

Смотрите также

  • odbc_error() - Возвращает последний код ошибки
  • odbc_exec() - Выполняет инструкцию SQL напрямую


Выполняет инструкцию SQL напрямую

  • « odbc_errormsg
  • odbc_execute »
  • PHP Manual
  • Функции ODBC
  • Выполняет инструкцию SQL напрямую

odbc_exec

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_exec — Выполняет инструкцию SQL напрямую

Описание

odbc_exec(resource $odbc, string $query): resource|false

Отправляет инструкцию SQL на сервер базы данных.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

query

Инструкция SQL.

Возвращаемые значения

Возвращает идентификатор результата ODBC, если команда SQL была выполнена успешно, или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр flags был удалён.

Смотрите также

  • odbc_prepare() - Подготавливает запрос к выполнению
  • odbc_execute() - Выполняет запрос


Выполняет запрос

  • « odbc_exec
  • odbc_fetch_array »
  • PHP Manual
  • Функции ODBC
  • Выполняет запрос

odbc_execute

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_execute — Выполняет запрос

Описание

odbc_execute(resource $statement, array $params = []): bool

Выполняет запрос, подготовленный odbc_prepare().

Список параметров

statement

Ресурс (resource) с идентификатором результата из odbc_prepare().

params

Параметры в params заменят псевдопеременные подготовленном запросе по порядку. Элементы этого массива будут преобразованы в строки при вызове этой функции.

Любые параметры в params, заключённые в одинарные кавычки, будут восприниматься как имя файла для чтения и отправки на сервер базы данных в качестве данных для соответствующей псевдопеременной.

Если необходимо сохранить строку, которая на самом деле начинается и заканчивается одинарными кавычками, нужно добавить пробел или другой символ, не являющийся одинарной кавычкой, в начало или конец параметра, что предотвратит использование параметра в качестве имени файла. Если этот вариант не подходит, необходимо использовать другой механизм для хранения строки, например, выполнение запроса напрямую с помощью odbc_exec().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования odbc_execute() и odbc_prepare()

В данном коде $success будет иметь значение true, только если все три параметра myproc присутствуют в массиве параметров:

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>

Если нужно вызвать хранимую процедуру с использованием параметров INOUT или OUT, рекомендуется использовать собственный модуль для вашей базы данных (например, oci8 для Oracle).

Смотрите также

  • odbc_prepare() - Подготавливает запрос к выполнению


Возвращает строку результата в виде ассоциативного массива

  • « odbc_execute
  • odbc_fetch_into »
  • PHP Manual
  • Функции ODBC
  • Возвращает строку результата в виде ассоциативного массива

odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

odbc_fetch_array — Возвращает строку результата в виде ассоциативного массива

Описание

odbc_fetch_array(resource $statement, int $row = -1): array|false

Возвращает ассоциативный массив (array) из запроса ODBC.

Список параметров

statement

Ресурс результата из odbc_exec().

row

Необязательный параметр, указывающий номер строки для возврата.

Возвращаемые значения

Возвращает массив, соответствующий возвращаемой строке, или false если строк больше нет.

Примечания

Замечание: Функция существует при компиляции с поддержкой DBMaker, IBM DB2 или UnixODBC.

Смотрите также

  • odbc_fetch_row() - Возвращает строку
  • odbc_fetch_object() - Возвращает строку результата в виде объекта
  • odbc_num_rows() - Возвращает количество строк в результате


Возвращает одну строку результата в массив

  • « odbc_fetch_array
  • odbc_fetch_object »
  • PHP Manual
  • Функции ODBC
  • Возвращает одну строку результата в массив

odbc_fetch_into

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_fetch_into — Возвращает одну строку результата в массив

Описание

odbc_fetch_into(resource $statement, array &$array, int $row = 0): int|false

Возвращает одну строку результата в массив (array).

Список параметров

statement

Ресурс результата (resource).

array

Массив результатов (array) может быть любого типа, поскольку он будет преобразован в массив типов. Он будет содержать значения столбцов, начиная с индекса 0.

row

Номер строки.

Возвращаемые значения

Возвращает количество столбцов в результате; false в случае возникновения ошибки.

Примеры

Пример #1 Примеры использования odbc_fetch_into()

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

или

<?php
$rc = odbc_fetch_into($res_id, $my_array, 2);
?>


Возвращает строку результата в виде объекта

  • « odbc_fetch_into
  • odbc_fetch_row »
  • PHP Manual
  • Функции ODBC
  • Возвращает строку результата в виде объекта

odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

odbc_fetch_object — Возвращает строку результата в виде объекта

Описание

odbc_fetch_object(resource $statement, int $row = -1): stdClass|false

Возвращает объект (object) из запроса ODBC.

Список параметров

statement

Ресурс результата из odbc_exec().

row

Необязательный параметр, указывающий номер строки для возврата.

Возвращаемые значения

Возвращает объект, соответствующий возвращаемой строке, или false если строк больше нет.

Примечания

Замечание: Функция существует при компиляции с поддержкой DBMaker, IBM DB2 или UnixODBC.

Смотрите также

  • odbc_fetch_row() - Возвращает строку
  • odbc_fetch_array() - Возвращает строку результата в виде ассоциативного массива
  • odbc_num_rows() - Возвращает количество строк в результате


Возвращает строку

  • « odbc_fetch_object
  • odbc_field_len »
  • PHP Manual
  • Функции ODBC
  • Возвращает строку

odbc_fetch_row

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_fetch_row — Возвращает строку

Описание

odbc_fetch_row(resource $statement, ?int $row = null): bool

Выбирает строку из данных, которые были возвращены odbc_do() или odbc_exec(). После вызова odbc_fetch_row() к полям этой строки можно получить доступ с помощью odbc_result().

Список параметров

statement

Идентификатор результата.

row

Если параметр row не указан, odbc_fetch_row() попытается выбрать следующую строку в результирующем наборе. Вызовы odbc_fetch_row() с параметром row и без него можно смешивать.

Чтобы пошагово пройти по результату более одного раза, можно вызвать odbc_fetch_row() со значением параметра row, равным 1, а затем продолжить выполнение odbc_fetch_row() без row, чтобы просмотреть результат. Если драйвер не поддерживает выборку строк по номеру, параметр row игнорируется.

Возвращаемые значения

Возвращает true, если строка существует, false в противном случае.

Список изменений

Версия | Описание
8.0.0 | row теперь допускает значение null.


Возвращает длину (точность) поля

  • « odbc_fetch_row
  • odbc_field_name »
  • PHP Manual
  • Функции ODBC
  • Возвращает длину (точность) поля

odbc_field_len

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_len — Возвращает длину (точность) поля

Описание

odbc_field_len(resource $statement, int $field): int|false

Возвращает длину поля, на которое ссылается число в заданном идентификаторе результата.

Список параметров

statement

Идентификатор результата.

field

Номер поля. Нумерация полей начинается с 1.

Возвращаемые значения

Возвращает длину поля или false в случае возникновения ошибки.

Смотрите также

  • odbc_field_scale() - Возвращает масштаб поля для получения масштаба числа с плавающей точкой


Возвращает имя столбца

  • « odbc_field_len
  • odbc_field_num »
  • PHP Manual
  • Функции ODBC
  • Возвращает имя столбца

odbc_field_name

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_name — Возвращает имя столбца

Описание

odbc_field_name(resource $statement, int $field): string|false

Возвращает имя поля, занимающего заданный номер столбца в заданном идентификаторе результата.

Список параметров

statement

Идентификатор результата.

field

Номер поля. Нумерация полей начинается с 1.

Возвращаемые значения

Возвращает имя поля в виде строки или false в случае возникновения ошибки.


Возвращает номер столбца

  • « odbc_field_name
  • odbc_field_precision »
  • PHP Manual
  • Функции ODBC
  • Возвращает номер столбца

odbc_field_num

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_num — Возвращает номер столбца

Описание

odbc_field_num(resource $statement, string $field): int|false

Получает номер слота столбца, который соответствует названному полю в заданном идентификаторе результата.

Список параметров

statement

Идентификатор результата.

field

Имя поля.

Возвращаемые значения

Возвращает номер поля в виде целого числа или false в случае возникновения ошибки. Нумерация полей начинается с 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, PHP 8)

odbc_field_precision — Псевдоним odbc_field_len()

Описание

Функция является псевдонимом: odbc_field_len().

Смотрите также

  • odbc_field_scale() - Возвращает масштаб поля для получения масштаба числа с плавающей точкой


Возвращает масштаб поля

  • « odbc_field_precision
  • odbc_field_type »
  • PHP Manual
  • Функции ODBC
  • Возвращает масштаб поля

odbc_field_scale

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_scale — Возвращает масштаб поля

Описание

odbc_field_scale(resource $statement, int $field): int|false

Возвращает масштаб поля, на которое ссылается число в заданном идентификаторе результата.

Список параметров

statement

Идентификатор результата.

field

Номер поля. Нумерация полей начинается с 1.

Возвращаемые значения

Возвращает масштаб поля в виде целого числа или false в случае возникновения ошибки.


Возвращает тип данных поля

  • « odbc_field_scale
  • odbc_foreignkeys »
  • PHP Manual
  • Функции ODBC
  • Возвращает тип данных поля

odbc_field_type

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_field_type — Возвращает тип данных поля

Описание

odbc_field_type(resource $statement, int $field): string|false

Получает SQL-тип поля, на которое ссылается число в заданном идентификаторе результата.

Список параметров

statement

Идентификатор результата.

field

Номер поля. Нумерация полей начинается с 1.

Возвращаемые значения

Возвращает тип поля в виде строки или false в случае возникновения ошибки.


Возвращает список внешних ключей

  • « odbc_field_type
  • odbc_free_result »
  • PHP Manual
  • Функции ODBC
  • Возвращает список внешних ключей

odbc_foreignkeys

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_foreignkeys — Возвращает список внешних ключей

Описание

odbc_foreignkeys(
resource $odbc,
?string $pk_catalog,
string $pk_schema,
string $pk_table,
string $fk_catalog,
string $fk_schema,
string $fk_table
): resource|false

Возвращает список внешних ключей в указанной таблице или список внешних ключей в других таблицах, которые ссылаются на первичный ключ в указанной таблице.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

fk_catalog

Каталог ('квалификатор' на языке ODBC 2) таблицы с первичным ключом.

pk_schema

Схема ('владелец' на языке ODBC 2) таблицы с первичным ключом.

pk_table

Таблица с первичным ключом.

pk_catalog

Каталог ('квалификатор' на языке ODBC 2) таблицы c внешним ключом.

fk_schema

Схема ('владелец' на языке ODBC 2) таблицы с внешним ключом.

fk_table

Таблица с внешним ключом.

Возвращаемые значения

Возвращает идентификатор результата ODBC или false в случае возникновения ошибки.

В результирующем наборе имеются следующие столбцы:

  • PKTABLE_CAT
  • PKTABLE_SCHEM
  • PKTABLE_NAME
  • PKCOLUMN_NAME
  • FKTABLE_CAT
  • FKTABLE_SCHEM
  • FKTABLE_NAME
  • FKCOLUMN_NAME
  • KEY_SEQ
  • UPDATE_RULE
  • DELETE_RULE
  • FK_NAME
  • PK_NAME
  • DEFERRABILITY
Драйверы могут сообщать дополнительные столбцы.

Если запрашиваются внешние ключи, связанные с первичным ключом, результирующий набор упорядочивается по FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME и KEY_SEQ. Если запрашиваются первичные ключи, связанные с внешним ключом, результирующий набор упорядочивается по PKTABLE_CAT, PKTABLE_SCHEM, PKTABLE_NAME и KEY_SEQ.

Если pk_table содержит имя таблицы, odbc_foreignkeys() возвращает результирующий набор, содержащий первичный ключ указанной таблицы и все внешние ключи, которые ссылаются на него.

Если fk_table содержит имя таблицы, odbc_foreignkeys() возвращает результирующий набор, содержащий все внешние ключи в указанной таблице и первичные ключи (в других таблицах), на которые они ссылаются.

Если и pk_table и fk_table содержат имена таблиц, odbc_foreignkeys() возвращает внешние ключи в таблице, указанной в fk_table, которые ссылаются на первичный ключ таблицы, указанной в pk_table. Ключ должен быть один, не более.

Смотрите также

  • odbc_tables() - Получает список имён таблиц, хранящихся в определённом источнике данных
  • odbc_primarykeys() - Получает первичные ключи таблицы


Освобождает ресурсы, связанные с результатом

  • « odbc_foreignkeys
  • odbc_gettypeinfo »
  • PHP Manual
  • Функции ODBC
  • Освобождает ресурсы, связанные с результатом

odbc_free_result

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_free_result — Освобождает ресурсы, связанные с результатом

Описание

odbc_free_result(resource $statement): bool

Освобождает ресурсы, связанные с результатом.

odbc_free_result() нужно вызывать только в том случае, если во время работы вашего скрипта используется слишком много памяти. Вся память, хранящая результат, будет автоматически освобождена после завершения скрипта.

Список параметров

statement

Идентификатор результата.

Возвращаемые значения

Всегда возвращает true.

Примечания

Замечание:

Если автоматическая фиксация отключена (см. odbc_autocommit()), и odbc_free_result() вызывается перед фиксацией, все ожидающие транзакции откатываются.


Возвращает информацию о типах данных, поддерживаемых источником данных

  • « odbc_free_result
  • odbc_longreadlen »
  • PHP Manual
  • Функции ODBC
  • Возвращает информацию о типах данных, поддерживаемых источником данных

odbc_gettypeinfo

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_gettypeinfo — Возвращает информацию о типах данных, поддерживаемых источником данных

Описание

odbc_gettypeinfo(resource $odbc, int $data_type = 0): resource|false

Возвращает информацию о типах данных, поддерживаемых источником данных.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

data_type

Тип данных, который можно использовать для ограничения информации до одного типа данных.

Возвращаемые значения

Возвращает идентификатор результата ODBC или false в случае возникновения ошибки.

В результирующем наборе имеются следующие столбцы:

  • 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

Набор результатов упорядочен по DATA_TYPE и TYPE_NAME.


Обрабатывает столбцы LONG

  • « odbc_gettypeinfo
  • odbc_next_result »
  • PHP Manual
  • Функции ODBC
  • Обрабатывает столбцы LONG

odbc_longreadlen

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_longreadlen — Обрабатывает столбцы LONG

Описание

odbc_longreadlen(resource $statement, int $length): bool

Управляет обработкой столбцов LONG, LONGVARCHAR и LONGVARBINARY. Длина по умолчанию может быть установлена с помощью директивы php.ini uodbc.defaultlrl.

Список параметров

statement

Идентификатор результата.

length

Количество байтов, возвращаемых PHP, контролируется длиной параметра. Если установлено значение 0, данные столбца LONG передаются клиенту (т.е. печатаются) при получении с помощью odbc_result().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примечания

Замечание:

На обработку столбцов LONGVARBINARY также влияет odbc_binmode().


Проверяет, доступно ли несколько результатов

  • « odbc_longreadlen
  • odbc_num_fields »
  • PHP Manual
  • Функции ODBC
  • Проверяет, доступно ли несколько результатов

odbc_next_result

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

odbc_next_result — Проверяет, доступно ли несколько результатов

Описание

odbc_next_result(resource $statement): bool

Проверяет, доступны ли другие результирующие наборы, а также разрешает доступ к следующему результирующему набору с помощью odbc_fetch_array(), odbc_fetch_row(), odbc_result() и т.д.

Список параметров

statement

Идентификатор результата.

Возвращаемые значения

Возвращает true если доступны другие результирующие наборы, false в противном случае.

Примеры

Пример #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 "Вывод первого результирующего набора ";
var_dump($a_Row1, $a_Row2);

echo "Получение второго результирующего набора ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Вывод второго результирующего набора ";
var_dump($a_Row1, $a_Row2);

echo "Получение третьего результирующего набора ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Вывод третьего результирующего набора ";
var_dump($a_Row1, $a_Row2);

echo "Попытка получения четвёртого результирующего набора ";
var_dump(odbc_next_result($r_Results));
?>

Результат выполнения данного примера:

Вывод первого результирующего набора array(1) {
  ["A"]=>
  string(1) "A"
}
bool(false)
Получение второго результирующего набора bool(true)
Вывод второго результирующего набора array(1) {
  ["B"]=>
  string(1) "B"
}
bool(false)
Получение третьего результирующего набора bool(true)
Вывод третьего результирующего набора array(1) {
  ["C"]=>
  string(1) "C"
}
bool(false)
Попытка получения четвёртого результирующего набора bool(false)


Возвращает количество столбцов в результате

  • « odbc_next_result
  • odbc_num_rows »
  • PHP Manual
  • Функции ODBC
  • Возвращает количество столбцов в результате

odbc_num_fields

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_num_fields — Возвращает количество столбцов в результате

Описание

odbc_num_fields(resource $statement): int

Возвращает количество полей (столбцов) в результате ODBC.

Список параметров

statement

Идентификатор результата, возвращаемый odbc_exec().

Возвращаемые значения

Возвращает количество полей или -1 в случае возникновения ошибки.


Возвращает количество строк в результате

  • « odbc_num_fields
  • odbc_pconnect »
  • PHP Manual
  • Функции ODBC
  • Возвращает количество строк в результате

odbc_num_rows

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_num_rows — Возвращает количество строк в результате

Описание

odbc_num_rows(resource $statement): int

Возвращает количество строк в результате. Для операторов INSERT, UPDATE и DELETE odbc_num_rows() возвращает количество затронутых строк. Для предложения SELECT это может быть количество доступных строк.

Список параметров

statement

Идентификатор результата, возвращаемый odbc_exec().

Возвращаемые значения

Возвращает количество строк в результате ODBC. Функция вернёт -1 в случае возникновения ошибки.

Примечания

Замечание:

Использование odbc_num_rows() для определения количества строк, доступных после выполнения SELECT, вернёт -1 для многих драйверов.


Открывает постоянное соединение с базой данных

  • « odbc_num_rows
  • odbc_prepare »
  • PHP Manual
  • Функции ODBC
  • Открывает постоянное соединение с базой данных

odbc_pconnect

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_pconnect — Открывает постоянное соединение с базой данных

Описание

odbc_pconnect(
string $dsn,
string $user,
string $password,
int $cursor_option = SQL_CUR_USE_DRIVER
): resource|false

Открывает постоянное соединение с базой данных.

Функция очень похожа на odbc_connect(), за исключением того, что соединение на самом деле не закрывается после завершения работы скрипта. Последующие запросы на соединение с той же комбинацией dsn, user и password (с помощью odbc_connect() и odbc_pconnect()) могут повторно использовать постоянное соединение.

Список параметров

Для более подробной информации стоит обратиться к описанию odbc_connect().

Возвращаемые значения

Возвращает соединение ODBC или false в случае возникновения ошибки.

Примечания

Замечание: Постоянные соединения не действуют, если PHP используется как CGI.

Смотрите также

  • odbc_connect() - Соединяет с источником данных
  • Постоянные соединения с базами данных


Подготавливает запрос к выполнению

  • « odbc_pconnect
  • odbc_primarykeys »
  • PHP Manual
  • Функции ODBC
  • Подготавливает запрос к выполнению

odbc_prepare

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_prepare — Подготавливает запрос к выполнению

Описание

odbc_prepare(resource $odbc, string $query): resource|false

Подготавливает запрос к выполнению. Идентификатор результата может быть использован позже для выполнения запроса с помощью odbc_execute().

Некоторые базы данных (например, IBM DB2, MS SQL Server и Oracle) поддерживают хранимые процедуры, которые принимают параметры типа IN, INOUT и OUT, как определено в спецификации ODBC. Однако драйвер Unified ODBC в настоящее время поддерживает только параметры типа IN для хранимых процедур.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

query

Подготавливаемый запрос в виде строки.

Возвращаемые значения

Возвращает идентификатор результата ODBC, если SQL-команда была успешно подготовлена. В случае возникновения ошибки возвращает false.

Примеры

Пример #1 Пример использования odbc_execute() и odbc_prepare()

В данном коде значение $success будет равно true, только если все три параметра myproc являются параметрами IN:

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>

Если нужно вызвать хранимую процедуру с использованием параметров INOUT или OUT, рекомендуется использовать собственный модуль для вашей базы данных (например, oci8 для Oracle).

Смотрите также

  • odbc_execute() - Выполняет запрос


Получает первичные ключи таблицы

  • « odbc_prepare
  • odbc_procedurecolumns »
  • PHP Manual
  • Функции ODBC
  • Получает первичные ключи таблицы

odbc_primarykeys

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_primarykeys — Получает первичные ключи таблицы

Описание

odbc_primarykeys(
resource $odbc,
?string $catalog,
string $schema,
string $table
): resource|false

Возвращает идентификатор результата, который можно использовать для получения имён столбцов, составляющих первичный ключ таблицы.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

catalog

Каталог ('qualifier' на языке ODBC 2).

schema

Схема ('owner' на языке ODBC 2).

table

Возвращаемые значения

Возвращает идентификатор результата ODBC или false в случае возникновения ошибки.

В результирующем наборе имеются следующие столбцы:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • KEY_SEQ
  • PK_NAME
Драйверы могут сообщать дополнительные столбцы.

Результирующий набор упорядочивается по TABLE_CAT, TABLE_SCHEM, TABLE_NAME и KEY_SEQ.

Примеры

Пример #1 Перечисление первичных ключей столбца

<?php
$conn = odbc_connect($dsn, $user, $pass);
$primarykeys = odbc_primarykeys($conn, 'TutorialDB', 'dbo', 'TEST');
while (($row = odbc_fetch_array($primarykeys))) {
print_r($row);
break; // последующие строки опущены для краткости
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [COLUMN_NAME] => id
    [KEY_SEQ] => 1
    [PK_NAME] => PK__TEST__3213E83FE141F843
)

Смотрите также

  • odbc_tables() - Получает список имён таблиц, хранящихся в определённом источнике данных
  • odbc_foreignkeys() - Возвращает список внешних ключей


Получает информацию о параметрах процедур

  • « odbc_primarykeys
  • odbc_procedures »
  • PHP Manual
  • Функции ODBC
  • Получает информацию о параметрах процедур

odbc_procedurecolumns

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_procedurecolumns — Получает информацию о параметрах процедур

Описание

odbc_procedurecolumns(
resource $odbc,
?string $catalog = null,
?string $schema = null,
?string $procedure = null,
?string $column = null
): resource|false

Получает информацию о параметрах процедур.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

catalog

Каталог ('qualifier' на языке ODBC 2).

schema

Схема ('owner' на языке ODBC 2). Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

procedure

Процедура. Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

column

Столбец. Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

Возвращаемые значения

Возвращает список входных и выходных параметров, а также столбцы, составляющие результирующий набор для указанных процедур. Возвращает идентификатор результата ODBC или false в случае возникновения ошибки.

В результирующем наборе имеются следующие столбцы:

  • PROCEDURE_CAT
  • PROCEDURE_SCHEM
  • PROCEDURE_NAME
  • COLUMN_NAME
  • COLUMN_TYPE
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • NUM_PREC_RADIX
  • NULLABLE
  • REMARKS
  • COLUMN_DEF
  • SQL_DATA_TYPE
  • SQL_DATETIME_SUB
  • CHAR_OCTET_LENGTH
  • ORDINAL_POSITION
  • IS_NULLABLE
Драйверы могут сообщать дополнительные столбцы.

Результирующий набор упорядочивается по PROCEDURE_CAT, PROCEDURE_SCHEM, PROCEDURE_NAME и COLUMN_TYPE.

Список изменений

Версия | Описание
8.0.0 | До этой версии функцию можно было вызывать только с одним или пятью аргументами.

Примеры

Пример #1 Перечисление столбцов хранимой процедуры

<?php
$conn = odbc_connect($dsn, $user, $pass);
$columns = odbc_procedurecolumns($conn, 'TutorialDB', 'dbo', 'GetEmployeeSalesYTD;1', '%');
while (($row = odbc_fetch_array($columns))) {
print_r($row);
break; // последующие строки опущены для краткости
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [PROCEDURE_CAT] => TutorialDB
    [PROCEDURE_SCHEM] => dbo
    [PROCEDURE_NAME] => GetEmployeeSalesYTD;1
    [COLUMN_NAME] => @SalesPerson
    [COLUMN_TYPE] => 1
    [DATA_TYPE] => -9
    [TYPE_NAME] => nvarchar
    [COLUMN_SIZE] => 50
    [BUFFER_LENGTH] => 100
    [DECIMAL_DIGITS] =>
    [NUM_PREC_RADIX] =>
    [NULLABLE] => 1
    [REMARKS] =>
    [COLUMN_DEF] =>
    [SQL_DATA_TYPE] => -9
    [SQL_DATETIME_SUB] =>
    [CHAR_OCTET_LENGTH] => 100
    [ORDINAL_POSITION] => 1
    [IS_NULLABLE] => YES
)

Смотрите также

  • odbc_columns() - Перечисляет имена столбцов в указанных таблицах


Получает список процедур, хранящихся в определённом источнике данных

  • « odbc_procedurecolumns
  • odbc_result_all »
  • PHP Manual
  • Функции ODBC
  • Получает список процедур, хранящихся в определённом источнике данных

odbc_procedures

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_procedures — Получает список процедур, хранящихся в определённом источнике данных

Описание

odbc_procedures(
resource $odbc,
?string $catalog = null,
?string $schema = null,
?string $procedure = null
): resource|false

Перечисляет все процедуры в запрошенном диапазоне.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

catalog

Каталог ('qualifier' на языке ODBC 2).

schema

Схема ('owner' на языке ODBC 2). Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

procedure

Имя процедуры. Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

Возвращаемые значения

Возвращает идентификатор результата ODBC, содержащий информацию или false в случае возникновения ошибки.

В результирующем наборе имеются следующие столбцы:

  • PROCEDURE_CAT
  • PROCEDURE_SCHEM
  • PROCEDURE_NAME
  • NUM_INPUT_PARAMS
  • NUM_OUTPUT_PARAMS
  • NUM_RESULT_SETS
  • REMARKS
  • PROCEDURE_TYPE
Драйверы могут сообщать дополнительные столбцы.

Результирующий набор упорядочивается по PROCEDURE_CAT, PROCEDURE_SCHEMA и PROCEDURE_NAME.

Список изменений

Версия | Описание
8.0.0 | До этой версии функцию можно было вызывать только с одним или четырьмя аргументами.

Примеры

Пример #1 Перечисление хранимых процедур базы данных

<?php
$conn = odbc_connect($dsn, $user, $pass);
$procedures = odbc_procedures($conn, $catalog, $schema, '%');
while (($row = odbc_fetch_array($procedures))) {
print_r($row);
break; // последующие строки опущены для краткости
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [PROCEDURE_CAT] => TutorialDB
    [PROCEDURE_SCHEM] => dbo
    [PROCEDURE_NAME] => GetEmployeeSalesYTD;1
    [NUM_INPUT_PARAMS] => -1
    [NUM_OUTPUT_PARAMS] => -1
    [NUM_RESULT_SETS] => -1
    [REMARKS] =>
    [PROCEDURE_TYPE] => 2
)

Смотрите также

  • odbc_procedurecolumns() - Получает информацию о параметрах процедур
  • odbc_tables() - Получает список имён таблиц, хранящихся в определённом источнике данных


Выводит результат в виде HTML-таблицы

  • « odbc_procedures
  • odbc_result »
  • PHP Manual
  • Функции ODBC
  • Выводит результат в виде HTML-таблицы

odbc_result_all

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_result_all — Выводит результат в виде HTML-таблицы

Внимание

Функция объявлена УСТАРЕВШЕЙ, начиная с PHP 8.1.0. Использовать эту функцию крайне не рекомендуется.

Описание

odbc_result_all(resource $statement, string $format = ""): int|false

Печатает все строки из идентификатора результата, созданного odbc_exec(). Результат печатается в формате HTML-таблицы. Данные не экранируются.

Функция не предназначена для использования в производственной среде; она должна использоваться при разработке для быстрого получения результирующего набора.

Список параметров

statement

Идентификатор результата.

format

Дополнительный параметр для указания общего форматирования таблицы.

Возвращаемые значения

Возвращает количество строк в результате или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Функция объявлена устаревшей.


Получает данные результата

  • « odbc_result_all
  • odbc_rollback »
  • PHP Manual
  • Функции ODBC
  • Получает данные результата

odbc_result

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_result — Получает данные результата

Описание

odbc_result(resource $statement, string|int $field): string|bool|null

Получает данные результата.

Список параметров

statement

Ресурс (resource) ODBC.

field

Имя получаемого поля. Это может быть целое число, содержащее номер столбца нужного поля; или это может быть строка, содержащая имя поля.

Возвращаемые значения

Возвращает строковое содержимое поля, false в случае возникновения ошибки, null для данных NULL или true для двоичных данных.

Примеры

Первый вызов odbc_result() возвращает значение третьего поля в текущей записи результата запроса. Второй вызов функции odbc_result() возвращает значение поля с именем "val" в текущей записи результата запроса. Ошибка возникает, если параметр номера столбца для поля меньше единицы или превышает количество столбцов (или полей) в текущей записи. Также ошибка возникает при попытке получения столбца с именем, которое не является одним из имён полей запрашиваемой таблицы (или нескольких таблиц).

Пример #1 Примеры использования odbc_result()

<?php
$item_3 = odbc_result($Query_ID, 3);
$item_val = odbc_result($Query_ID, "val");
?>

Примечания

Индексы полей начинаются с 1. Для получения информации о способе возврата двоичных данных или данных столбцов LONG необходимо обратиться к odbc_binmode() и odbc_longreadlen().


Откатывает транзакцию

  • « odbc_result
  • odbc_setoption »
  • PHP Manual
  • Функции ODBC
  • Откатывает транзакцию

odbc_rollback

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_rollback — Откатывает транзакцию

Описание

odbc_rollback(resource $odbc): bool

Откатывает все незавершённые операции в соединении.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Регулирует настройки ODBC

  • « odbc_rollback
  • odbc_specialcolumns »
  • PHP Manual
  • Функции ODBC
  • Регулирует настройки ODBC

odbc_setoption

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_setoption — Регулирует настройки ODBC

Описание

odbc_setoption(
resource $odbc,
int $which,
int $option,
int $value
): bool

Функция позволяет настраивать параметры ODBC для конкретного соединения или результата запроса. Она используется для того, чтобы помочь найти решение проблем в специфических драйверах ODBC. Следует использовать эту функцию только программистам ODBC, понимающим, какой эффект оказывают различные параметры. Чтобы объяснить различные параметры и значения, которые можно использовать, понадобится хорошее справочное руководство по ODBC. Различные версии драйверов поддерживают разные параметры.

Поскольку эффекты могут различаться в зависимости от драйвера ODBC, настоятельно не рекомендуется использовать данную функцию в скриптах, которые являются общедоступными. Кроме того, для данной функции недоступны некоторые параметры ODBC, потому что они должны быть настроены до установки соединения или подготовки запроса. Однако на определённой работе она может заставить PHP работать, чтобы начальник не говорил об использовании коммерческого продукта, и это единственное, что имеет значение.

Список параметров

odbc

Идентификатор соединения или идентификатор результата, для которого нужно изменить настройки. Для SQLSetConnectOption() это идентификатор соединения. Для SQLSetStmtOption() это идентификатор результата.

which

Используемая функция ODBC. Значение должно быть равно 1 для SQLSetConnectOption() и 2 для SQLSetStmtOption().

option

Устанавливаемая опция.

value

Значение для option.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Примеры использования odbc_setoption()

<?php
// 1. Опция 102 SQLSetConnectOption() - SQL_AUTOCOMMIT.
// Значение 1 SQL_AUTOCOMMIT - SQL_AUTOCOMMIT_ON.
// Этот пример имеет тот же эффект, что и
// odbc_autocommit($conn, true);

odbc_setoption($conn, 1, 102, 1);

// 2. Опция 0 SQLSetStmtOption() - SQL_QUERY_TIMEOUT.
// Данный пример устанавливает время ожидания запроса, равное 30 секундам.

$result = odbc_prepare($conn, $sql);
odbc_setoption($result, 2, 0, 30);
odbc_execute($result);
?>


Извлекает особые столбцы

  • « odbc_setoption
  • odbc_statistics »
  • PHP Manual
  • Функции ODBC
  • Извлекает особые столбцы

odbc_specialcolumns

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_specialcolumns — Извлекает особые столбцы

Описание

odbc_specialcolumns(
resource $odbc,
int $type,
?string $catalog,
string $schema,
string $table,
int $scope,
int $nullable
): resource|false

Извлекает либо оптимальный набор столбцов, который однозначно определяет строку в таблице, либо столбцы, которые автоматически обновляются, когда любое значение в строке обновляется транзакцией.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

type
Когда аргументом является SQL_BEST_ROWID, odbc_specialcolumns() возвращает столбец или столбцы, которые однозначно идентифицируют каждую строку в таблице. Когда аргументом является SQL_ROWVER, odbc_specialcolumns() возвращает столбец или столбцы в указанной таблице, если они есть, которые автоматически обновляются источником данных, когда любое значение в строке обновляется любой транзакцией.
catalog

Каталог ('qualifier' на языке ODBC 2).

schema

Схема ('owner' на языке ODBC 2).

table

Таблица.

scope

Область, которая упорядочивает результирующий набор. Одна из констант SQL_SCOPE_CURROW, SQL_SCOPE_TRANSACTION или SQL_SCOPE_SESSION.

nullable

Определяет, возвращать ли специальные столбцы, которые могут иметь значение NULL. Одна из констант SQL_NO_NULLS или SQL_NULLABLE .

Возвращаемые значения

Возвращает идентификатор результата ODBC или false в случае возникновения ошибки.

В результирующем наборе имеются следующие столбцы:

  • SCOPE
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • PSEUDO_COLUMN
Драйверы могут сообщать дополнительные столбцы.

Результирующий набор упорядочивается по SCOPE.

Смотрите также

  • odbc_tables() - Получает список имён таблиц, хранящихся в определённом источнике данных


Получает статистику о таблице

  • « odbc_specialcolumns
  • odbc_tableprivileges »
  • PHP Manual
  • Функции ODBC
  • Получает статистику о таблице

odbc_statistics

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_statistics — Получает статистику о таблице

Описание

odbc_statistics(
resource $odbc,
?string $catalog,
string $schema,
string $table,
int $unique,
int $accuracy
): resource|false

Получает статистику о таблице и её индексах.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

catalog

Каталог ('qualifier' на языке ODBC 2).

schema

Схема ('owner' на языке ODBC 2).

table

Имя таблицы.

unique

Тип индекса. Одна из констант SQL_INDEX_UNIQUE или SQL_INDEX_ALL.

accuracy

Одна из констант SQL_ENSURE или SQL_QUICK. Последняя запрашивает у драйвера получение CARDINALITY и PAGES, только если они легко доступны с сервера.

Возвращаемые значения

Возвращает идентификатор результата ODBC или false в случае возникновения ошибки.

В результирующем наборе имеются следующие столбцы:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • NON_UNIQUE
  • INDEX_QUALIFIER
  • INDEX_NAME
  • TYPE
  • ORDINAL_POSITION
  • COLUMN_NAME
  • ASC_OR_DESC
  • CARDINALITY
  • PAGES
  • FILTER_CONDITION
Драйверы могут сообщать дополнительные столбцы.

Результирующий набор упорядочивается по NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME и ORDINAL_POSITION.

Примеры

Пример #1 Вывод статистики о таблице

<?php
$conn = odbc_connect($dsn, $user, $pass);
$statistics = odbc_statistics($conn, 'TutorialDB', 'dbo', 'TEST', SQL_INDEX_UNIQUE, SQL_QUICK);
while (($row = odbc_fetch_array($statistics))) {
print_r($row);
break; // последующие строки опущены для краткости
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [NON_UNIQUE] =>
    [INDEX_QUALIFIER] =>
    [INDEX_NAME] =>
    [TYPE] => 0
    [ORDINAL_POSITION] =>
    [COLUMN_NAME] =>
    [ASC_OR_DESC] =>
    [CARDINALITY] => 15
    [PAGES] => 3
    [FILTER_CONDITION] =>
)

Смотрите также

  • odbc_tables() - Получает список имён таблиц, хранящихся в определённом источнике данных


Перечисляет таблицы и привилегии, связанные с каждой таблицей

  • « odbc_statistics
  • odbc_tables »
  • PHP Manual
  • Функции ODBC
  • Перечисляет таблицы и привилегии, связанные с каждой таблицей

odbc_tableprivileges

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_tableprivileges — Перечисляет таблицы и привилегии, связанные с каждой таблицей

Описание

odbc_tableprivileges(
resource $odbc,
?string $catalog,
string $schema,
string $table
): resource|false

Перечисляет таблицы в запрошенном диапазоне и привилегии, связанные с каждой таблицей.

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

catalog

Каталог ('qualifier' на языке ODBC 2).

schema

Схема ('owner' на языке ODBC 2). Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

table

Имя таблицы. Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

Возвращаемые значения

Идентификатор результата ODBC или false в случае возникновения ошибки.

В результирующем наборе имеются следующие столбцы:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE
Драйверы могут сообщать дополнительные столбцы.

Результирующий набор упорядочивается по TABLE_CAT, TABLE_SCHEM, TABLE_NAME, PRIVILEGE и GRANTEE.

Примеры

Пример #1 Перечисление привилегий таблицы

<?php
$conn = odbc_connect($dsn, $user, $pass);
$privileges = odbc_tableprivileges($conn, 'SalesOrders', 'dbo', 'Orders');
while (($row = odbc_fetch_array($privileges))) {
print_r($row);
break; // последующие строки опущены для краткости
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [TABLE_CAT] => SalesOrders
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => Orders
    [GRANTOR] => dbo
    [GRANTEE] => dbo
    [PRIVILEGE] => DELETE
    [IS_GRANTABLE] => YES
)

Смотрите также

  • odbc_tables() - Получает список имён таблиц, хранящихся в определённом источнике данных


Получает список имён таблиц, хранящихся в определённом источнике данных

  • « odbc_tableprivileges
  • PDO »
  • PHP Manual
  • Функции ODBC
  • Получает список имён таблиц, хранящихся в определённом источнике данных

odbc_tables

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_tables — Получает список имён таблиц, хранящихся в определённом источнике данных

Описание

odbc_tables(
resource $odbc,
?string $catalog = null,
?string $schema = null,
?string $table = null,
?string $types = null
): resource|false

Перечисляет все таблицы в запрошенном диапазоне.

Для поддержки перечисления квалификаторов, владельцев и типов таблиц доступна следующая специальная семантика для catalog, schema, table и table_type:

  • Если значение catalog равно символу процента (%), а schema и table являются пустыми строками, то результирующий набор будет содержать список допустимых квалификаторов для источника данных (все столбцы, кроме столбца TABLE_QUALIFIER, содержат NULL).
  • Если значение schema равно символу процента (%), а catalog и table являются пустыми строками, то результирующий набор будет содержать список допустимых владельцев для источника данных (все столбцы, кроме столбца TABLE_OWNER, содержат NULL).
  • Если значение table_type равно символу процента (%), а catalog, schema и table являются пустыми строками, то результирующий набор будет содержать список допустимых типов таблиц для источника данных. (все столбцы, кроме столбца TABLE_TYPE, содержат NULL).

Список параметров

odbc

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

catalog

Каталог ('qualifier' на языке ODBC 2).

schema

Схема ('owner' на языке ODBC 2). Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

table

Имя таблицы. Этот параметр принимает следующие шаблоны поиска: % соответствующий нулю или более символам, и _ соответствующий ровно одному символу.

types

Если параметр table_type не является пустой строкой, то он должен содержать список значений, разделённых запятыми, для интересующих типов; каждое значение может быть заключено в одинарные кавычки (') или не заключено в кавычки. Например, 'TABLE','VIEW' или TABLE, VIEW. Если источник данных не поддерживает указанный тип таблицы, odbc_tables() не вернёт никаких результатов для этого типа.

Возвращаемые значения

Возвращает идентификатор результата ODBC, содержащий информацию или false в случае возникновения ошибки.

В результирующем наборе имеются следующие столбцы:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • TABLE_TYPE
  • REMARKS
Драйверы могут сообщать дополнительные столбцы.

Результирующий набор упорядочивается по TABLE_TYPE, TABLE_CAT, TABLE_SCHEM и TABLE_NAME.

Список изменений

Версия | Описание
8.0.0 | schema, table и types теперь могут принимать значение null.

Примеры

Пример #1 Перечисление таблиц в каталоге

<?php
$conn = odbc_connect($dsn, $user, $pass);
$tables = odbc_tables($conn, 'SalesOrders', 'dbo', '%', 'TABLE');
while (($row = odbc_fetch_array($tables))) {
print_r($row);
break; // последующие строки опущены для краткости
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [TABLE_CAT] => SalesOrders
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => Orders
    [TABLE_TYPE] => TABLE
    [REMARKS] =>
)

Смотрите также

  • odbc_tableprivileges() - Перечисляет таблицы и привилегии, связанные с каждой таблицей
  • odbc_columns() - Перечисляет имена столбцов в указанных таблицах
  • odbc_specialcolumns() - Извлекает особые столбцы
  • odbc_statistics() - Получает статистику о таблице
  • odbc_procedures() - Получает список процедур, хранящихся в определённом источнике данных


Объекты данных 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 без заполнителей
    • 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::getIterator — Получает итератор набора результатов
    • 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)


Введение

Модуль Объекты данных PHP (PDO) определяет простой и согласованный интерфейс для доступа к базам данных в PHP. Каждый драйвер базы данных, в котором реализован этот интерфейс, может представить специфичную для базы данных функциональность в виде стандартных функций модуля. Но надо заметить, что сам по себе модуль PDO не позволяет манипулировать доступом к базе данных. Чтобы воспользоваться возможностями PDO, необходимо использовать соответствующий конкретной базе данных PDO драйвер.

PDO обеспечивает абстракцию доступу к данным, это значит, что вне зависимости от того, какая конкретная база данных используется, вы можете пользоваться одними и теми же функциями для выполнения запросов и выборки данных. PDO не абстрагирует саму базу данных, этот модуль не переписывает SQL-запросы и не эмулирует отсутствующий в СУБД функционал. Если нужно именно это, необходимо воспользоваться полноценной абстракцией базы данных.

Модуль PDO внедрён в PHP.


Установка

Установка PDO на Unix-системах

  1. PDO и драйвер PDO_SQLITE включены по умолчанию в PHP. Чтобы включить PDO драйвер для произвольной базы данных, обратитесь к документации драйверы PDO баз данных.

    Замечание:

    Если PDO собирается, как подгружаемый модуль (не рекомендуется), то все PDO-драйверы должны быть загружены после загрузки самого PDO.

  2. При установке PDO в качестве подгружаемого модуля в файл php.ini необходимо внести изменения, чтобы модуль PDO загружался автоматически при запуске PHP. Также туда придётся включить загрузку некоторых драйверов баз данных; при этом убедитесь, что они перечислены после строки pdo.so, так как PDO должен загрузиться первым. Если вы устанавливаете PDO и драйверы баз данных как статичные модули, этот шаг можно пропустить.

    extension=pdo.so

Пользователи Windows

  1. Выберите 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::PARAM_BOOL (int)
Представляет логический тип данных.
PDO::PARAM_NULL (int)
Представляет тип данных SQL NULL.
PDO::PARAM_INT (int)
Представляет тип данных SQL INTEGER.
PDO::PARAM_STR (int)
Представляет типы данных SQL CHAR, VARCHAR и другие строковые типы.
PDO::PARAM_STR_NATL (int)
Флаг для обозначения, что строки используют национальный набор символов. Константа доступна с версии PHP 7.2.0
PDO::PARAM_STR_CHAR (int)
Флаг для обозначения, что строки используют обычный набор символов. Константа доступна с версии PHP 7.2.0
PDO::PARAM_LOB (int)
Представляет тип данных больших объектов SQL.
PDO::PARAM_STMT (int)
Представляет тип recordset. На данный момент не поддерживается драйверами.
PDO::PARAM_INPUT_OUTPUT (int)
Указывает, что параметр является параметром INOUT для хранимой процедуры. Для задания типа данных необходимо применить побитовое ИЛИ этой константы с константой типа PDO::PARAM_*.
PDO::FETCH_DEFAULT (int)
Указывает, что должен использоваться режим выборки по умолчанию. Доступно с PHP 8.0.7.
PDO::FETCH_LAZY (int)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку выборки в виде объекта, в котором имена переменных соответствуют именам столбцов результирующего набора. PDO::FETCH_LAZY создаёт объект с такими же именами переменных, с которыми осуществлялась выборка. Константа недействительна для функции PDOStatement::fetchAll().
PDO::FETCH_ASSOC (int)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде ассоциативного массива, индексы которого соответствуют именам столбцов результата выборки. Если в результирующем наборе несколько столбцов с одинаковыми именами, PDO::FETCH_ASSOC будет возвращать по одному значению для каждого столбца. Значения дублирующихся столбцов будут утеряны.
PDO::FETCH_NAMED (int)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде ассоциативного массива, индексы которого соответствуют именам столбцов результата выборки. Если в результирующем наборе несколько столбцов с одинаковыми именами, PDO::FETCH_NAMED возвращает массив значений для каждого имени столбца.
PDO::FETCH_NUM (int)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде массива, индексы которого соответствуют порядковым номерам столбцов результата выборки. Нумерация начинается с 0.
PDO::FETCH_BOTH (int)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде массива. Индексация массива производится и по именам столбцов и по их порядковым номерам в результирующей таблице. Нумерация начинается с 0.
PDO::FETCH_OBJ (int)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде объекта, имена свойств которого соответствуют именам столбцов результирующей таблицы.
PDO::FETCH_BOUND (int)
Указывает, что метод, осуществляющий выборку данных, должен возвращать TRUE и присваивать значения столбцов таблицы переменным PHP, которые были привязаны методами PDOStatement::bindParam() или PDOStatement::bindColumn().
PDO::FETCH_COLUMN (int)
Указывает, что метод, осуществляющий выборку данных, должен возвращать значение только одного столбца из следующей строки результирующего набора.
PDO::FETCH_CLASS (int)
Указывает, что метод, осуществляющий выборку данных, должен возвращать новый объект запрашиваемого класса, заполняя именованные свойства класса значениями столбцов результирующей таблицы.

Замечание: Если в классе нет свойства с необходимым именем, будет вызван магический метод __set().

PDO::FETCH_INTO (int)
Указывает, что метод, осуществляющий выборку данных, должен обновлять существующий объект запрашиваемого класса, заполняя именованные свойства класса значениями столбцов результирующей таблицы.
PDO::FETCH_FUNC (int)
Позволяет настроить обработку данных "на лету" во время выборки (константа действительна только для функции PDOStatement::fetchAll()).
PDO::FETCH_GROUP (int)
Группировка возвращаемых значений. Обычно комбинируется с константами PDO::FETCH_COLUMN или PDO::FETCH_KEY_PAIR.
PDO::FETCH_UNIQUE (int)
Выбирать только уникальные значения, исключать дубли из результата.
PDO::FETCH_KEY_PAIR (int)
Выборка из двух столбцов будет помещена в массив, в котором значения первого столбца принимаются за ключи, а значения второго - за значения.
PDO::FETCH_CLASSTYPE (int)
Определение имени класса по значению первого столбца.
PDO::FETCH_SERIALIZE (int)
Аналогична PDO::FETCH_INTO, но объект представлен в виде сериализованной строки. Конструктор класса не будет вызван, если этот флаг установлен. Объявлена устаревшей, начиная с PHP 8.1.0.
PDO::FETCH_PROPS_LATE (int)
Вызывать конструктор до установки свойств.
PDO::ATTR_AUTOCOMMIT (int)
Если значение false, PDO попытается отключить автоматическую фиксацию изменений в базе данных, таким образом началом транзакции будет установление соединения.
PDO::ATTR_PREFETCH (int)
Изменение размера буфера предвыборки позволяет регулировать баланс между затрачиваемой памятью и скоростью работы с базой данных. Не все связки база/драйвер поддерживают изменение размера этого буфера. Чем больше этот размер, тем выше быстродействие, но и выше затраты памяти.
PDO::ATTR_TIMEOUT (int)
Задаёт время в секундах, в течение которого должен быть завершён обмен с базой данных.
PDO::ATTR_ERRMODE (int)
Подробно об этом атрибуте смотрите раздел Ошибки и их обработка.
PDO::ATTR_SERVER_VERSION (int)
Этот атрибут предназначен только для чтения; он содержит информацию о версии сервера баз данных, к которому подключён PDO.
PDO::ATTR_CLIENT_VERSION (int)
Этот атрибут предназначен только для чтения; он содержит информацию о версии клиентских библиотек, которые использует драйвер PDO.
PDO::ATTR_SERVER_INFO (int)
Этот атрибут предназначен только для чтения; он содержит информацию о сервере баз данных, к которому подключён PDO.
PDO::ATTR_CONNECTION_STATUS (int)
PDO::ATTR_CASE (int)
Приведение имён столбцов к нужному регистру, который задаётся константами PDO::CASE_*.
PDO::ATTR_CURSOR_NAME (int)
Получение или установке имени курсора. Особенно полезно при использовании прокручиваемых курсоров или обновления данных в конкретных позициях.
PDO::ATTR_CURSOR (int)
Выбор типа курсора. 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 (int)
Преобразование пустых строк в SQL NULL в выборках.
PDO::ATTR_PERSISTENT (mixed)
Запрашивать постоянное соединение вместо создания нового подключения. Подробнее об этом атрибуте смотрите раздел Подключения и управление подключениями.
PDO::ATTR_STATEMENT_CLASS (int)
Устанавливает имя класса, для которого возвращаются запросы (statements).
PDO::ATTR_FETCH_CATALOG_NAMES (int)
Предписание предварять имена столбцов именами каталогов в результирующем наборе. Имя столбца отделяется от имени каталога десятичной точкой (.). Поддержка этого атрибута заложена на уровне драйвера; этот функционал поддерживается не всеми драйверами.
PDO::ATTR_FETCH_TABLE_NAMES (int)
Предписание предварять имена столбцов именами исходных таблиц в результирующем наборе. Имя столбца отделяется от имени таблицы десятичной точкой (.). Поддержка этого атрибута заложена на уровне драйвера; этот функционал поддерживается не всеми драйверами.
PDO::ATTR_STRINGIFY_FETCHES (int)
Принудительно преобразовывать все получаемые значения в строки.
PDO::ATTR_MAX_COLUMN_LEN (int)
Устанавливает максимальную длину имени столбца.
PDO::ATTR_DEFAULT_FETCH_MODE (int)
PDO::ATTR_EMULATE_PREPARES (int)
PDO::ATTR_DEFAULT_STR_PARAM (int)
Устанавливает по умолчанию тип параметра строку, значением может быть одна из констант: PDO::PARAM_STR_NATL или PDO::PARAM_STR_CHAR. Константа доступна с версии PHP 7.2.0.
PDO::ERRMODE_SILENT (int)
Предписание не выбрасывать исключений в случае ошибок. Предполагается, что разработчик скрипта явно проверяет все исключительные ситуации. Это режим по умолчанию. Подробнее об этом атрибуте смотрите в разделе Ошибки и их обработка.
PDO::ERRMODE_WARNING (int)
Предписание выдавать сообщение об ошибке PHP уровня E_WARNING. Подробнее об этом атрибуте смотрите в разделе Ошибки и их обработка.
PDO::ERRMODE_EXCEPTION (int)
Предписание выбрасывать исключение PDOException в случае возникновения ошибки. Подробнее об этом атрибуте смотрите в разделе Ошибки и их обработка.
PDO::CASE_NATURAL (int)
Предписание оставлять имена столбцов такими, какие выдал драйвер базы данных.
PDO::CASE_LOWER (int)
Приводить имена столбцов к нижнему регистру.
PDO::CASE_UPPER (int)
Приводить имена столбцов к верхнему регистру.
PDO::NULL_NATURAL (int)
PDO::NULL_EMPTY_STRING (int)
PDO::NULL_TO_STRING (int)
PDO::FETCH_ORI_NEXT (int)
Предписание выбрать следующую строку из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_PRIOR (int)
Предписание выбрать предыдущую строку из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_FIRST (int)
Предписание выбрать первую строку из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_LAST (int)
Предписание выбрать последнюю строку из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_ABS (int)
Предписание выбрать строку с указанным номером из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_REL (int)
Предписание выбрать строку из результирующего набора относительно текущего положения курсора. Константа действительна только для прокручиваемых курсоров.
PDO::CURSOR_FWDONLY (int)
Предписание создать объект PDOStatement с последовательным курсором. Последовательные курсоры выбираются по умолчанию, так как это наиболее общий и быстрый способ доступа к данным в БД из PHP.
PDO::CURSOR_SCROLL (int)
Предписание создать объект PDOStatement с прокручиваемым курсором. Передача констант PDO::FETCH_ORI_* позволяет задать режим работы курсора, то, как будут выбираться строки из результирующего набора запроса.
PDO::ERR_NONE (string)
Соответствует коду SQLSTATE '00000'. Это означает, что SQL-запрос выполнен успешно без ошибок или предупреждений. Эта константа внедрена для удобства при проверке, есть ли ошибки, функциями PDO::errorCode() или PDOStatement::errorCode(). Также можно проверять, есть ли ошибка внутри метода, сравнивая его код возврата с этой константой.
PDO::PARAM_EVT_ALLOC (int)
Событие, возникающее при выделении памяти под объект
PDO::PARAM_EVT_FREE (int)
Событие, возникающее при освобождении занимаемой объектом памяти
PDO::PARAM_EVT_EXEC_PRE (int)
Событие, возникающее перед запуском подготовленного запроса.
PDO::PARAM_EVT_EXEC_POST (int)
Событие, возникающее после запуска подготовленного запроса.
PDO::PARAM_EVT_FETCH_PRE (int)
Событие, возникающее перед выборкой данных из результирующего набора.
PDO::PARAM_EVT_FETCH_POST (int)
Событие, возникающее после выборки данных из результирующего набора.
PDO::PARAM_EVT_NORMALIZE (int)
Событие, возникающее во время регистрации параметров, позволяющее драйверу нормализовать имена параметров.
PDO::SQLITE_DETERMINISTIC (int)
Указывает, что функция созданная 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 преобразуется в логическое значение (bool) (включить/отключить постоянные подключения), если это не числовая строка (string), которая в этом случае позволяет использовать несколько пулов постоянных подключений. Это полезно, если разные соединения используют несовместимые настройки, например, разные значения PDO::MYSQL_ATTR_USE_BUFFERED_QUERY.

Замечание:

Чтобы использовать постоянные соединения, необходимо добавить константу 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 = ?");
$stmt->execute([$_GET['name']]);
foreach ($stmt as $row) {
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([$_GET['name']]);

// псевдопеременная может использоваться только в виде отдельного значения
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->execute(["%$_GET[name]%"]);
?>


Ошибки и их обработка

PDO предлагает на выбор 3 стратегии обработки ошибок в зависимости от вашего стиля разработки приложений.

  • PDO::ERRMODE_SILENT

    До PHP 8.0.0, это был режим по умолчанию. PDO просто предоставит вам код ошибки, который можно получить методами PDO::errorCode() и PDO::errorInfo(). Эти методы реализованы как в объектах запросов, так и в объектах баз данных. Если ошибка вызвана во время выполнения кода объекта запроса, нужно вызвать метод PDOStatement::errorCode() или PDOStatement::errorInfo() этого объекта. Если ошибка вызова объекта базы данных, нужно вызвать аналогичные методы у этого объекта.

  • PDO::ERRMODE_WARNING

    Помимо установки кода ошибки PDO выдаст обычное E_WARNING сообщение. Это может быть полезно при отладке или тестировании, когда нужно видеть, что произошло, но не нужно прерывать работу приложения.

  • PDO::ERRMODE_EXCEPTION

    Начиная с PHP 8.0.0 является режимом по умолчанию. Помимо задания кода ошибки 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';

$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// PDO выбросит исключение PDOException (если таблица не существует)
$dbh->query("SELECT wrongcolumn FROM wrongtable");
?>

Результат выполнения данного примера:

Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'testdb.wrongtable' doesn't exist in /tmp/pdo_test.php:10
Stack trace:
#0 /tmp/pdo_test.php(10): PDO->query('SELECT wrongcol...')
#1 {main}
  thrown in /tmp/pdo_test.php on line 10

Замечание:

Метод PDO::__construct() будет всегда бросать исключение PDOException, если соединение оборвалось, независимо от установленного значения PDO::ATTR_ERRMODE.

Пример #2 Создание экземпляра класса PDO и установка режима обработки ошибок в конструкторе

<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'googleguy';
$password = 'googleguy';

$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));

// Следующий запрос приводит к ошибке уровня 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 9


Большие объекты (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, PHP 8, PECL pdo >= 0.1.0)

Введение

Представляет соединение между PHP и сервером базы данных.

Обзор классов

class PDO {
/* Константы */
public const int PARAM_NULL;
public const int PARAM_BOOL = 5;
public const int PARAM_INT = 1;
public const int PARAM_STR = 2;
public const int PARAM_LOB = 3;
public const int PARAM_STMT = 4;
public const int PARAM_INPUT_OUTPUT;
public const int PARAM_STR_NATL;
public const int PARAM_STR_CHAR;
public const int PARAM_EVT_ALLOC;
public const int PARAM_EVT_FREE;
public const int PARAM_EVT_EXEC_PRE;
public const int PARAM_EVT_EXEC_POST;
public const int PARAM_EVT_FETCH_PRE;
public const int PARAM_EVT_FETCH_POST;
public const int PARAM_EVT_NORMALIZE;
public const int FETCH_DEFAULT;
public const int FETCH_LAZY;
public const int FETCH_ASSOC;
public const int FETCH_NUM;
public const int FETCH_BOTH;
public const int FETCH_OBJ;
public const int FETCH_BOUND;
public const int FETCH_COLUMN;
public const int FETCH_CLASS;
public const int FETCH_INTO;
public const int FETCH_FUNC;
public const int FETCH_GROUP;
public const int FETCH_UNIQUE;
public const int FETCH_KEY_PAIR;
public const int FETCH_CLASSTYPE;
public const int FETCH_SERIALIZE;
public const int FETCH_PROPS_LATE;
public const int FETCH_NAMED;
public const int ATTR_AUTOCOMMIT;
public const int ATTR_PREFETCH;
public const int ATTR_TIMEOUT;
public const int ATTR_ERRMODE;
public const int ATTR_SERVER_VERSION;
public const int ATTR_CLIENT_VERSION;
public const int ATTR_SERVER_INFO;
public const int ATTR_CONNECTION_STATUS;
public const int ATTR_CASE;
public const int ATTR_CURSOR_NAME;
public const int ATTR_CURSOR;
public const int ATTR_ORACLE_NULLS;
public const int ATTR_PERSISTENT;
public const int ATTR_STATEMENT_CLASS;
public const int ATTR_FETCH_TABLE_NAMES;
public const int ATTR_FETCH_CATALOG_NAMES;
public const int ATTR_DRIVER_NAME;
public const int ATTR_STRINGIFY_FETCHES;
public const int ATTR_MAX_COLUMN_LEN;
public const int ATTR_EMULATE_PREPARES;
public const int ATTR_DEFAULT_FETCH_MODE;
public const int ATTR_DEFAULT_STR_PARAM;
public const int ERRMODE_SILENT;
public const int ERRMODE_WARNING;
public const int ERRMODE_EXCEPTION;
public const int CASE_NATURAL;
public const int CASE_LOWER;
public const int CASE_UPPER;
public const int NULL_NATURAL;
public const int NULL_EMPTY_STRING;
public const int NULL_TO_STRING;
public const string ERR_NONE;
public const int FETCH_ORI_NEXT;
public const int FETCH_ORI_PRIOR;
public const int FETCH_ORI_FIRST;
public const int FETCH_ORI_LAST;
public const int FETCH_ORI_ABS;
public const int FETCH_ORI_REL;
public const int CURSOR_FWDONLY;
public const int CURSOR_SCROLL;
/* Методы */
public __construct(
string $dsn,
?string $username = null,
?string $password = null,
?array $options = null
)
public beginTransaction(): bool
public commit(): bool
public errorCode(): ?string
public errorInfo(): array
public exec(string $statement): int|false
public getAttribute(int $attribute): mixed
public static getAvailableDrivers(): array
public inTransaction(): bool
public lastInsertId(?string $name = null): string|false
public prepare(string $query, array $options = []): PDOStatement|false
public query(string $query, ?int $fetchMode = null): PDOStatement|false
public query(string $query, ?int $fetchMode = PDO::FETCH_COLUMN, int $colno): PDOStatement|false
public query(
string $query,
?int $fetchMode = PDO::FETCH_CLASS,
string $classname,
array $constructorArgs
): PDOStatement|false
public query(string $query, ?int $fetchMode = PDO::FETCH_INTO, object $object): PDOStatement|false
public quote(string $string, int $type = PDO::PARAM_STR): string|false
public rollBack(): 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 без заполнителей
  • PDO::quote — Заключает строку в кавычки для использования в запросе
  • PDO::rollBack — Откат транзакции
  • PDO::setAttribute — Установка атрибута


Инициализация транзакции

  • « PDO
  • PDO::commit »
  • PHP Manual
  • PDO
  • Инициализация транзакции

PDO::beginTransaction

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::beginTransaction — Инициализация транзакции

Описание

public PDO::beginTransaction(): 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, PHP 8, PECL pdo >= 0.1.0)

PDO::commit — Фиксирует транзакцию

Описание

public PDO::commit(): 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, PHP 8, PECL pdo >= 0.1.0)

PDO::__construct — Создаёт экземпляр PDO, предоставляющий соединение с базой данных

Описание

public PDO::__construct(
string $dsn,
?string $username = null,
?string $password = null,
?array $options = null
)

Создаёт экземпляр 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.

password

Пароль для строки DSN. Этот параметр опционален для некоторых драйверов PDO.

options

Массив ключ=>значение специфичных для драйвера настроек подключения.

Ошибки

PDO::__construct() выбрасывает исключение PDOException, если попытка подключения к запрашиваемой базе данных завершается с ошибкой, независимо от того, какой PDO::ATTR_ERRMODE установлен в данный момент.

Примеры

Пример #1 Создание экземпляра PDO через вызов драйвера

<?php
/* Подключение к базе данных MySQL с помощью вызова драйвера */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

$dbh = new PDO($dsn, $user, $password);

?>

Пример #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 = '';

$dbh = new PDO($dsn, $user, $password);

?>

Пример #3 Создание экземпляра PDO, используя псевдоним

В следующем примере предполагается, что php.ini содержит следующую запись, позволяющую подключиться к базе данных MySQL, используя только псевдоним mydb:

[PDO]
     pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php
/* Подключение к базе данных ODBC, используя псевдоним */
$dsn = 'mydb';
$user = '';
$password = '';

$dbh = new PDO($dsn, $user, $password);

?>


Возвращает код SQLSTATE результата последней операции с базой данных

  • « PDO::__construct
  • PDO::errorInfo »
  • PHP Manual
  • PDO
  • Возвращает код SQLSTATE результата последней операции с базой данных

PDO::errorCode

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::errorCode — Возвращает код SQLSTATE результата последней операции с базой данных

Описание

public PDO::errorCode(): ?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, PHP 8, PECL pdo >= 0.1.0)

PDO::errorInfo — Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных

Описание

public PDO::errorInfo(): 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, PHP 8, PECL pdo >= 0.1.0)

PDO::exec — Выполняет SQL-запрос и возвращает количество затронутых строк

Описание

public PDO::exec(string $statement): int|false

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)); // неправильно
?>

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #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::execute() - Запускает подготовленный запрос на выполнение


Получить атрибут соединения с базой данных

  • « PDO::exec
  • PDO::getAvailableDrivers »
  • PHP Manual
  • PDO
  • Получить атрибут соединения с базой данных

PDO::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8, 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, PHP 8, PECL pdo >= 1.0.3)

PDO::getAvailableDrivers -- pdo_drivers — Возвращает массив доступных драйверов PDO

Описание

public static PDO::getAvailableDrivers(): array
pdo_drivers(): 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, PHP 8)

PDO::inTransaction — Проверяет, начата ли транзакция

Описание

public PDO::inTransaction(): bool

Проверяет, активна ли в данный момент транзакция в драйвере. Этот метод работает только для драйверов баз данных, которые поддерживают транзакции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если транзакция в данный момент активна и false, если нет.


Возвращает ID последней вставленной строки или значение последовательности

  • « PDO::inTransaction
  • PDO::prepare »
  • PHP Manual
  • PDO
  • Возвращает ID последней вставленной строки или значение последовательности

PDO::lastInsertId

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::lastInsertId — Возвращает ID последней вставленной строки или значение последовательности

Описание

public PDO::lastInsertId(?string $name = null): string|false

Возвращает ID последней вставленной строки или последнее значение от объекта последовательности, в зависимости от базового драйвера. Например, драйвер PDO_PGSQL разрешает задать имя объекта последовательности для параметра name.

Замечание:

В зависимости от драйвера PDO этот метод может вообще не выдать осмысленного результата, так как база данных может не поддерживать автоматического инкремента полей или последовательностей.

Список параметров

name

Имя объекта последовательности, который должен выдать ID.

Возвращаемые значения

Если объект последовательности для параметра name не задан, метод PDO::lastInsertId() вернёт строку, представляющую ID последней добавленной в базу записи.

Если же объект последовательности для параметра name задан, метод PDO::lastInsertId() вернёт строку, представляющую последнее значение, полученное от этого объекта.

Если PDO-драйвер не поддерживает эту возможность, метод PDO::lastInsertId() запишет значение IM001 в SQLSTATE.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.


Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект

  • « PDO::lastInsertId
  • PDO::query »
  • PHP Manual
  • PDO
  • Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект

PDO::prepare

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PHP 8,PECL pdo >= 0.1.0)

PDO::prepare — Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект

Описание

public PDO::prepare(string $query, array $options = []): PDOStatement|false

Подготавливает SQL-запрос к базе данных к запуску посредством метода PDOStatement::execute(). Запрос может содержать именованные (:name) или неименованные (?) псевдопеременные, которые будут заменены реальными значениями во время запуска запроса на выполнение. Использовать одновременно и именованные, и неименованные псевдопеременные в одном запросе нельзя, необходимо выбрать что-то одно. Используйте псевдопеременные, чтобы привязать к запросу пользовательский ввод, не включайте данные, введённые пользователем, напрямую в запрос.

Вы должны подбирать уникальные имена псевдопеременных для каждого значения, которое необходимо передавать в запрос при вызове PDOStatement::execute(). Нельзя использовать одну псевдопеременную в запросе более одного раза, кроме варианта, когда включён режим эмуляции.

Замечание:

Псевдопеременные должны представлять только единичный объем данных. Ни часть значения, ни служебное слово, ни имя поля, ни какую-либо произвольную часть запроса. К примеру, вы не можете связать псевдопеременную с несколькими значениями для вставки в конструкцию IN().

Вызов PDO::prepare() и PDOStatement::execute() для запросов, которые будут запускаться многократно с различными параметрами, повышает производительность приложения, позволяя драйверу кешировать на клиенте и/или сервере план выполнения запроса и метаданные, а также помогает избежать SQL-инъекций, так как нет необходимости экранировать передаваемые параметры.

Если драйвер не поддерживает подготавливаемые запросы, PDO умеет их эмулировать, а также может заменять псевдопеременные на то, что больше подходит, если, например, драйвер поддерживает только именованные или, наоборот, только неименованные псевдопеременные.

Замечание: Синтаксический анализатор, используемый для эмулируемых подготовленных операторов и для перезаписи именованных параметров или параметров стиля вопросительного знака, поддерживает нестандартные обратные слеши для одинарных и двойных кавычек. Это означает, что завершающие кавычки, непосредственно предшествующие обратной косой черте, не распознаются как таковые, что может привести к неправильному обнаружению параметров, что приведёт к сбою подготовленного оператора при его выполнении. Обходной путь — не использовать эмулированную подготовку к таким SQL-запросам и избегать перезаписи параметров, используя стиль параметров, который изначально поддерживается драйвером.

Начиная с PHP 7.4.0, можно избежать экранирования вопросительных знаков, удвоив их. Это означает, что строка ?? будет преобразована в ? при отправке запроса в базу данных.

Список параметров

query

Это должен быть корректный SQL-запрос с точки зрения целевой СУБД.

options

Этот массив содержит одну или более пар ключ=>значение для установки значений атрибутов объекта PDOStatement, который будет возвращён из этого метода. В основном, вы будете использовать этот массив для присвоения значения PDO::ATTR_CURSOR атрибуту PDO::CURSOR_SCROLL, чтобы получить прокручиваемый курсор. У некоторых драйверов могут быть свои специфические настройки, которые можно задать во время подготовки запроса.

Возвращаемые значения

Если СУБД успешно подготовила запрос, PDO::prepare() возвращает объект PDOStatement. Если подготовить запрос не удалось, PDO::prepare() возвращает false или выбрасывает исключение PDOException (зависит от текущего режима обработки ошибок).

Замечание:

Эмулируемые подготовленные запросы не создаются на сервере баз данных, поэтому PDO::prepare() не может проверить правильность построенного запроса.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #1 Подготовка SQL-запроса с именованными параметрами

<?php
/* Выполнение запроса с передачей ему массива параметров */
$sql = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, [PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY]);
$sth->execute(['calories' => 150, 'colour' => 'red']);
$red = $sth->fetchAll();
/* Ключи массива также могут начинаться с двоеточия ":" (необязательно) */
$sth->execute([':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([150, 'red']);
$red = $sth->fetchAll();
$sth->execute([175, 'yellow']);
$yellow = $sth->fetchAll();
?>

Пример #3 Подготовка SQL-запроса с экранированным вопросительным знаком

<?php
/* замечание: работает только с базами данных PostgreSQL */
$sth = $dbh->prepare('SELECT * FROM issues WHERE tag::jsonb ?? ?');
$sth->execute(['feature']);
$featureIssues = $sth->fetchAll();
$sth->execute(['performance']);
$performanceIssues = $sth->fetchAll();
?>

Смотрите также

  • PDO::exec() - Выполняет SQL-запрос и возвращает количество затронутых строк
  • PDO::query() - Подготавливает и выполняет выражение SQL без заполнителей
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение


Подготавливает и выполняет выражение SQL без заполнителей

  • « PDO::prepare
  • PDO::quote »
  • PHP Manual
  • PDO
  • Подготавливает и выполняет выражение SQL без заполнителей

PDO::query

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDO::query — Подготавливает и выполняет выражение SQL без заполнителей

Описание

public PDO::query(string $query, ?int $fetchMode = null): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_COLUMN, int $colno): PDOStatement|false
public PDO::query(
string $query,
?int $fetchMode = PDO::FETCH_CLASS,
string $classname,
array $constructorArgs
): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_INTO, object $object): PDOStatement|false

PDO::query() подготавливает и выполняет выражение SQL за один вызов функции, возвращая выражение как объект PDOStatement.

Если запрос будет запускаться многократно, для улучшения производительности приложения имеет смысл этот запрос один раз подготовить PDOStatement методом PDO::prepare(), а затем запускать на выполнение методом PDOStatement::execute() столько раз, сколько потребуется.

Если после выполнения предыдущего запроса вы не выбрали все данные из результирующего набора, следующий вызов PDO::query() может потерпеть неудачу. В таких случаях следует вызывать метод PDOStatement::closeCursor(), который освободит ресурсы базы данных, занятые предыдущим объектом PDOStatement. После этого можно безопасно вызывать PDO::query().

Замечание:

Если query содержит заполнители, выражение должно быть подготовлено и выполнено отдельно с использованием методов PDO::prepare() и PDOStatement::execute().

Список параметров

query

SQL-запрос для подготовки и выполнения.

Если SQL содержит заполнители, вместо этого метода следует использовать PDO::prepare() и PDOStatement::execute(). В качестве альтернативы, SQL можно подготовить вручную перед вызовом PDO::query(), при этом данные должны быть правильно отформатированы с использованием PDO::quote(), если драйвер поддерживает это.

fetchMode

Режим выборки по умолчанию для возвращённого PDOStatement. Должен быть одной из констант PDO::FETCH_*.

Если этот аргумент передаётся функции, остальные аргументы будут обрабатываться так, как если бы PDOStatement::setFetchMode() был вызван для полученного объекта выражения. Последующие аргументы зависят от выбранного режима выборки.

Возвращаемые значения

Возвращает объект PDOStatement или false в случае возникновения ошибки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #1 SQL без заполнителей может быть выполнен с использованием PDO::query()

<?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, PHP 8, PECL pdo >= 0.2.1)

PDO::quote — Заключает строку в кавычки для использования в запросе

Описание

public PDO::quote(string $string, int $type = PDO::PARAM_STR): string|false

PDO::quote() заключает строку в кавычки (если требуется) и экранирует специальные символы внутри строки подходящим для драйвера способом.

Если вы используете эту функцию для построения SQL запросов, настоятельно рекомендуется пользоваться методом PDO::prepare() для подготовки запроса с псевдопеременными вместо использования PDO::quote() для вставки данных введённых пользователем в SQL запрос. Подготавливаемые запросы с параметрами не только компактней, удобней, устойчивей к SQL-инъекции, но и работают быстрее, нежели вручную построенные запросы, так как клиент и сервер могут кешировать такие запросы в уже скомпилированном виде.

Не все драйверы PDO реализуют этот метод (особенно PDO_ODBC). Предполагается, что вместо него будут использоваться подготавливаемые запросы.

Предостережение

Безопасность: набор символов по умолчанию

Для корректной работы PDO::quote() набор символов должен быть задан либо на сервере, либо задаваться самим соединением с базой данных (это зависит от драйвера). Подробнее смотрите документацию к драйверу базы данных.

Список параметров

string

Экранируемая строка.

type

Предоставляет подсказку о типе данных для драйверов, которые имеют альтернативные способы экранирования. Например, PDO_PARAM_LOB укажет драйверу экранировать двоичные данные.

Возвращаемые значения

Возвращает экранированную строку, которую теоретически безопасно использовать в теле 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, PHP 8, PECL pdo >= 0.1.0)

PDO::rollBack — Откат транзакции

Описание

public PDO::rollBack(): 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, PHP 8, 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. Может принимать одно из следующих значений:

PDO::ERRMODE_SILENT
Устанавливает только коды ошибок.
PDO::ERRMODE_WARNING
Вызывает диагностику ошибок уровня E_WARNING.
PDO::ERRMODE_EXCEPTION
Выбрасывает PDOException.
PDO::ATTR_ORACLE_NULLS

Замечание: Атрибут доступен для всех драйверов, а не только для Oracle.

Определяет, следует ли и как преобразовывать null и пустые строки. Может принимать одно из следующих значений:

PDO::NULL_NATURAL
Никакого преобразования не происходит.
PDO::NULL_EMPTY_STRING
Пустые строки преобразуются в null.
PDO::NULL_TO_STRING
null преобразуется в пустую строку.
PDO::ATTR_STRINGIFY_FETCHES

Следует ли преобразовывать числовые значения в строки при выборке. Принимает логическое значение (bool): true для включения и false для выключения.

PDO::ATTR_STATEMENT_CLASS

Установка пользовательского класса оператора, производного от PDOStatement. Требуется array(string classname, array(mixed constructor_args)).

Предостережение

Не может использоваться с постоянными экземплярами PDO.

PDO::ATTR_TIMEOUT

Указывает продолжительность времени ожидания в секундах. Принимает значение в виде целого числа (int).

Замечание:

Не все драйверы поддерживают этот параметр и его значение может отличаться от драйвера к драйверу. Например, SQLite будет ждать до этого значения времени, прежде чем отказаться от получения блокировки на запись, но другие драйверы могут интерпретировать это как интервал ожидания соединения или чтения.

PDO::ATTR_AUTOCOMMIT

Замечание: Доступно только для драйверов OCI, Firebird и MySQL.

Следует ли автоматически фиксировать каждый отдельный оператор. Принимает логическое значение (bool): true для включения и false для отключения. По умолчанию true.

PDO::ATTR_EMULATE_PREPARES

Замечание: Доступно только для драйверов OCI, Firebird и MySQL.

Включить или отключить эмуляцию подготовленных запросов. Некоторые драйверы не поддерживают подготовленные запросы нативно или имеют ограниченную поддержку. Если установлено значение true PDO всегда будет эмулировать подготовленные запросы, в противном случае PDO будет пытаться использовать встроенные подготовленные запросы. Если драйвер не сможет успешно подготовить текущий запрос, PDO всегда будет возвращаться к эмуляции подготовленного запроса.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY

Замечание: Доступно только для драйвера MySQL.

Определяет, использовать ли буферизованные запросы. Принимает логическое значение (bool): true для включения и false для отключения. По умолчанию true.

PDO::ATTR_DEFAULT_FETCH_MODE

Устанавливает режим выборки по умолчанию. Описание режимов и их использования доступно в документации PDOStatement::fetch().

Список параметров

attribute

Атрибут для изменения.

value

Значение для установки параметра attribute, может потребовать определённого типа в зависимости от атрибута.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • PDO::getAttribute() - Получить атрибут соединения с базой данных
  • PDOStatement::getAttribute() - Получение значения атрибута запроса PDOStatement
  • PDOStatement::setAttribute() - Устанавливает атрибут объекту PDOStatement


Класс PDOStatement

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 1.0.0)

Введение

Представляет подготовленный запрос к базе данных, а после выполнения запроса соответствующий результирующий набор.

Обзор классов

class PDOStatement implements IteratorAggregate {
/* Свойства */
public string $queryString;
/* Методы */
public bindColumn(
string|int $column,
mixed &$var,
int $type = PDO::PARAM_STR,
int $maxLength = 0,
mixed $driverOptions = null
): bool
public bindParam(
string|int $param,
mixed &$var,
int $type = PDO::PARAM_STR,
int $maxLength = 0,
mixed $driverOptions = null
): bool
public bindValue(string|int $param, mixed $value, int $type = PDO::PARAM_STR): bool
public closeCursor(): bool
public columnCount(): int
public debugDumpParams(): ?bool
public errorCode(): ?string
public errorInfo(): array
public execute(?array $params = null): bool
public fetch(int $mode = PDO::FETCH_DEFAULT, int $cursorOrientation = PDO::FETCH_ORI_NEXT, int $cursorOffset = 0): mixed
public fetchAll(int $mode = PDO::FETCH_DEFAULT): array
public fetchAll(int $mode = PDO::FETCH_COLUMN, int $column): array
public fetchAll(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs): array
public fetchAll(int $mode = PDO::FETCH_FUNC, callable $callback): array
public fetchColumn(int $column = 0): mixed
public fetchObject(?string $class = "stdClass", array $constructorArgs = []): object|false
public getAttribute(int $name): mixed
public getColumnMeta(int $column): array|false
public getIterator(): Iterator
public nextRowset(): bool
public rowCount(): int
public setAttribute(int $attribute, mixed $value): bool
public setFetchMode(int $mode): bool
public setFetchMode(int $mode = PDO::FETCH_COLUMN, int $colno): bool
public setFetchMode(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs = null): bool
public setFetchMode(int $mode = PDO::FETCH_INTO, object $object): bool
}

Свойства

queryString

Используемая строка запроса.

Список изменений

Версия | Описание
8.0.0 | PDOStatement теперь реализует интерфейс IteratorAggregate вместо Traversable.

Содержание

  • 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::getIterator — Получает итератор набора результатов
  • 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, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::bindColumn — Связывает столбец с переменной PHP

Описание

public PDOStatement::bindColumn(
string|int $column,
mixed &$var,
int $type = PDO::PARAM_STR,
int $maxLength = 0,
mixed $driverOptions = null
): bool

PDOStatement::bindColumn() привязывает переменную к заданному столбцу в результирующем наборе запроса. Каждый вызов PDOStatement::fetch() или PDOStatement::fetchAll() будет обновлять все переменные, задавать им значения столбцов, с которыми они связаны.

Замечание:

В связи с тем, что информация о столбцах результирующего набора запроса не всегда доступна объекту PDO, пока запрос не будет запущен, приложениям следует вызывать этот метод после вызова PDOStatement::execute().

Однако, при работе с драйвером PgSQL, когда привязывается столбец с LOB-данными, приложению необходимо вызывать этот метод до вызова PDOStatement::execute(). В противном случае идентификатор большого объекта OID будет иметь тип integer.

Список параметров

column

Номер столбца (начиная с 1) или его имя в результирующем наборе запроса. Используя имя столбца, имейте в виду, что имя должно быть в том же регистре, в каком оно возвращено драйвером.

var

Имя переменной PHP, к которой требуется привязать столбец.

type

Тип данных параметра, заданный одной из констант PDO::PARAM_*.

maxLength

Подсказка для предварительного выделения памяти под переменную.

driverOptions

Дополнительные параметры для драйвера.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #1 Связывание результирующего набора с переменными PHP

Привязывание столбцов результирующего набора к PHP переменным является эффективным способом сразу сделать данные каждой строки набора доступными приложению. В следующем примере показано, как PDO позволяет привязывать переменные и получать данные столбцов, принимая различные настройки и умолчания.

<?php
$stmt = $dbh->prepare('SELECT name, colour, calories FROM fruit');
$stmt->execute();

/* Bind by column number */
$stmt->bindColumn(1, $name);
$stmt->bindColumn(2, $colour);

/* Bind by column name */
$stmt->bindColumn('calories', $cals);

while ($stmt->fetch(PDO::FETCH_BOUND)) {
print $name . "\t" . $colour . "\t" . $cals . "\n";
}

Результат выполнения данного примера:

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, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::bindParam — Привязывает параметр запроса к переменной

Описание

public PDOStatement::bindParam(
string|int $param,
mixed &$var,
int $type = PDO::PARAM_STR,
int $maxLength = 0,
mixed $driverOptions = null
): bool

Связывает переменную PHP с именованным или неименованным параметром подготавливаемого SQL-запроса. В отличие от PDOStatement::bindValue(), переменная привязывается по ссылке и её значение будет вычисляться во время вызова PDOStatement::execute().

В большинстве случаев в подготавливаемых запросах используются только входные параметры, то есть при построении запроса доступ к ним осуществляется только в режиме чтения (возможно приведение в соответствии с type). Тем не менее, некоторые драйверы позволяют запускать хранимые процедуры, которые, в свою очередь, могут возвращать данные посредством выходных параметров. Зачастую, такие параметры используются одновременно как входные и как выходные.

Список параметров

param

Идентификатор параметра. Для подготавливаемых запросов с именованными параметрами это будет имя в виде :name. Если используются неименованные параметры (знаки вопроса ?) это будет позиция псевдопеременной в запросе (начиная с 1).

var

Имя переменной PHP, которую требуется привязать к параметру SQL-запроса.

type

Явно заданный тип данных параметра. Тип задаётся одной из констант PDO::PARAM_*. Если параметр используется, в том числе для вывода информации из хранимой процедуры, к значению аргумента type необходимо добавить PDO::PARAM_INPUT_OUTPUT, используя оператор побитовое ИЛИ.

maxLength

Размер типа данных. Чтобы указать, что параметр используется для вывода данных из хранимой процедуры, необходимо явно задать его размер. Имеет значение, только если у параметра type установлено значение PDO::PARAM_INPUT_OUTPUT.

driverOptions

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #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);
$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);
$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, PHP 8, PECL pdo >= 1.0.0)

PDOStatement::bindValue — Связывает параметр с заданным значением

Описание

public PDOStatement::bindValue(string|int $param, mixed $value, int $type = PDO::PARAM_STR): bool

Задаёт значение именованной или неименованной псевдопеременной в подготовленном SQL-запросе.

Список параметров

param

Идентификатор параметра запроса. Для подготавливаемых запросов с именованными параметрами это будет имя в виде :name. Если используются неименованные параметры (знаки вопроса ?) это будет позиция псевдопеременной в запросе (начиная с 1).

value

Значение, которое требуется привязать к параметру.

type

Явно заданный тип данных параметра. Тип задаётся одной из констант PDO::PARAM_*.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #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, PHP 8, PECL pdo >= 0.9.0)

PDOStatement::closeCursor — Закрывает курсор, переводя запрос в состояние готовности к повторному запуску

Описание

public PDOStatement::closeCursor(): 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 в случае возникновения ошибки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #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, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::columnCount — Возвращает количество столбцов в результирующем наборе

Описание

public PDOStatement::columnCount(): int

Используйте PDOStatement::columnCount(), чтобы узнать количество столбцов в результирующем наборе, который представляет объект PDOStatement.

Если объект PDOStatement был возвращён из метода PDO::query(), число столбцов можно узнать сразу же.

Если объект PDOStatement был возвращён из метода PDO::prepare(), точное количество столбцов можно будет узнать только после запуска метода PDOStatement::execute().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество столбцов в результирующем наборе запроса PDOStatement, даже если он пуст. Если результирующего набора нет, PDOStatement::columnCount() возвращает 0.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #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, PHP 8, PECL pdo >= 0.9.0)

PDOStatement::debugDumpParams — Вывод информации о подготовленной SQL-команде в целях отладки

Описание

public PDOStatement::debugDumpParams(): ?bool

Выводит информацию о подготовленном запросе в выходной поток. Будет выводиться текст используемого SQL запроса, количество задействованных параметров (Params), список параметров с их именами ключей или индексами, их именами, индексами в запросе (если поддерживается в драйвере PDO, иначе -1), типом (param_type) в виде целого числа и логическое значение is_param.

Это отладочная функция, которая направляет данные на стандартный вывод.

Подсказка

Как и с любой другой функцией, осуществляющей вывод непосредственно в браузер, вы можете использовать функции контроля вывода, чтобы перехватывать выводимые этой функцией данные и сохранять их, например, в строку (string).

Эта функция выведет информацию о параметрах запроса, существующих на момент вызова. Дополнительные параметры не хранятся в запросе, поэтому отображены не будут.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает null или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | PDOStatement::debugDumpParams() теперь возвращает SQL, отправленный в базу данных, в том числе полный необработанный запрос (включая заменённые параметры с их связанными значениями). Обратите внимание, что это будет работать только при включённой эмуляции подготавливаемых запросов.

Примеры

Пример #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

Смотрите также

  • 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, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::errorCode — Получает код SQLSTATE, связанный с последней операцией в объекте PDOStatement

Описание

public PDOStatement::errorCode(): ?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, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::errorInfo — Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement

Описание

public PDOStatement::errorInfo(): 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, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::execute — Запускает подготовленный запрос на выполнение

Описание

public PDOStatement::execute(?array $params = null): bool

Запускает подготовленный запрос. Если запрос содержит маркеры параметров (псевдопеременные), вы должны либо:

  • вызвать PDOStatement::bindParam() и/или PDOStatement::bindValue(), чтобы связать эти маркеры, соответственно, с переменными или значениями. Связанные переменные передают свои значения как входные данные и получают выходные значения

  • или передать массив значений только на вход

Список параметров

params

Массив значений, содержащий столько элементов, сколько параметров заявлено в SQL-запросе. Все значения будут приняты, как имеющие тип PDO::PARAM_STR.

Нельзя привязать несколько значений к одному параметру; например, нельзя привязать два значения к именованному параметру в выражении IN().

Нельзя привязать больше значений, чем заявлено в запросе; если в массиве params больше элементов, чем заявлено в SQL-запросе методом PDO::prepare(), выполнение запроса завершится неудачей и будет вызвана ошибка.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #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));
/* Ключи массива также могут начинаться с двоеточия ":" (необязательно) */
$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, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::fetch — Извлечение следующей строки из результирующего набора

Описание

public PDOStatement::fetch(int $mode = PDO::FETCH_DEFAULT, int $cursorOrientation = PDO::FETCH_ORI_NEXT, int $cursorOffset = 0): mixed

Извлекает следующую строку из результирующего набора объекта PDOStatement. Параметр mode определяет, в каком виде PDO вернёт эту строку.

Список параметров

mode

Определяет, в каком виде следующая строка будет возвращена в вызывающий метод. Это может быть одна из констант 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. Если mode включает в себя атрибут 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, конструктор класса будет вызван перед назначением свойств из значений столбцов.

cursorOrientation

Для объектов PDOStatement представляющих прокручиваемый курсор, этот параметр определяет, какая строка будет возвращаться в вызывающий метод. Значением параметра должна быть одна из констант PDO::FETCH_ORI_*, по умолчанию PDO::FETCH_ORI_NEXT. Чтобы запросить прокручиваемый курсор для запроса PDOStatement, необходимо задать атрибут PDO::ATTR_CURSOR со значением PDO::CURSOR_SCROLL во время подготовки запроса методом PDO::prepare().

cursorOffset

Для объектов PDOStatement, представляющих прокручиваемый курсор, параметр cursorOrientation которых принимает значение PDO::FETCH_ORI_ABS, эта величина означает абсолютный номер строки, которую необходимо извлечь из результирующего набора.

Для объектов PDOStatement, представляющих прокручиваемый курсор, параметр cursorOrientation которых принимает значение PDO::FETCH_ORI_REL, эта величина указывает, какая строка относительно текущего положения курсора будет извлечена функцией PDOStatement::fetch().

Возвращаемые значения

В случае успешного выполнения функции возвращаемое значение зависит от режима выборки. В случае возникновения ошибки или если больше нет строк, функция возвращает false.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #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';
$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;
}
}
function readDataBackwards($dbh) {
$sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
$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));
}

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, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::fetchAll — Выбирает оставшиеся строки из набора результатов

Описание

public PDOStatement::fetchAll(int $mode = PDO::FETCH_DEFAULT): array
public PDOStatement::fetchAll(int $mode = PDO::FETCH_COLUMN, int $column): array
public PDOStatement::fetchAll(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs): array
public PDOStatement::fetchAll(int $mode = PDO::FETCH_FUNC, callable $callback): array

Список параметров

mode

Определяет содержимое возвращаемого массива. Подробней можно узнать из документации к методу PDOStatement::fetch(). По умолчанию параметр принимает значение PDO::ATTR_DEFAULT_FETCH_MODE (которое в свою очередь имеет умолчание PDO::FETCH_BOTH)

Чтобы извлечь значения только одного столбца, передайте в качестве значения этого параметра константу PDO::FETCH_COLUMN. С помощью параметра column можно задать столбец, из которого требуется извлечь данные.

Если требуется извлечь только уникальные строки одного столбца, нужно передать побитовое ИЛИ констант PDO::FETCH_COLUMN и PDO::FETCH_UNIQUE.

Чтобы получить ассоциативный массив строк сгруппированный по значениям определённого столбца, нужно передать побитовое ИЛИ констант PDO::FETCH_COLUMN и PDO::FETCH_GROUP.

Следующие параметры являются динамическими и зависят от режима выборки. Они не могут использоваться совместно с именованными параметрами.
column

Используется с PDO::FETCH_COLUMN. Возвращает указанный столбец с индексом, начинающимся с 0.

class

Используется с PDO::FETCH_CLASS. Возвращает экземпляры указанного класса, сопоставляя столбцы каждой строки с именованными свойствами класса.

constructorArgs

Аргументы конструктора пользовательского класса, когда параметр mode равен PDO::FETCH_CLASS.

callback

Используется с PDO::FETCH_FUNC. Возвращает результаты вызова указанной функции, используя столбцы каждой строки в качестве параметров вызова.

Возвращаемые значения

Метод PDOStatement::fetchAll() возвращает массив, содержащий все оставшиеся строки результирующего набора. Массив представляет каждую строку либо в виде массива значений одного столбца, либо в виде объекта, имена свойств которого совпадают с именами столбцов.

Использование этого метода для извлечения строк больших результирующих наборов может пагубно сказаться на производительности системы и сетевых ресурсов. Вместо извлечения всех данных и их обработки в PHP рекомендуется использовать встроенные средства СУБД. Например, использование выражений WHERE и ORDER BY языка SQL может уменьшить размеры результирующего набора.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Список изменений

Версия | Описание
8.0.0 | Метод теперь всегда возвращает массив (array), раньше в случае возникновения ошибки могло возвращаться false.

Примеры

Пример #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::fetch() - Извлечение следующей строки из результирующего набора
  • PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора
  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::setFetchMode() - Устанавливает режим выборки по умолчанию для объекта запроса


Возвращает данные одного столбца следующей строки результирующего набора

  • « PDOStatement::fetchAll
  • PDOStatement::fetchObject »
  • PHP Manual
  • PDOStatement
  • Возвращает данные одного столбца следующей строки результирующего набора

PDOStatement::fetchColumn

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)

PDOStatement::fetchColumn — Возвращает данные одного столбца следующей строки результирующего набора

Описание

public PDOStatement::fetchColumn(int $column = 0): mixed

Возвращает данные одного столбца следующей строки результирующей таблицы. Если в результате запроса строк больше нет, функция вернёт false.

Замечание:

Не следует использовать PDOStatement::fetchColumn() для получения булевых полей, так как невозможно отличить значение false от отсутствия оставшихся строк результата. Вместо этого используйте метод PDOStatement::fetch().

Список параметров

column

Номер столбца, данные которого необходимо извлечь. Нумерация начинается с 0. Если параметр не задан, PDOStatement::fetchColumn() выберет данные первого столбца.

Возвращаемые значения

Метод PDOStatement::fetchColumn() возвращает значение одного столбца следующей строки результирующего набора или false, если больше нет строк.

Внимание

При вызове метода PDOStatement::fetchColumn() для извлечения данных из результирующего набора невозможно получить значение другого столбца той же строки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #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::fetch() - Извлечение следующей строки из результирующего набора
  • PDOStatement::fetchAll() - Выбирает оставшиеся строки из набора результатов
  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::setFetchMode() - Устанавливает режим выборки по умолчанию для объекта запроса


Извлекает следующую строку и возвращает её в виде объекта

  • « PDOStatement::fetchColumn
  • PDOStatement::getAttribute »
  • PHP Manual
  • PDOStatement
  • Извлекает следующую строку и возвращает её в виде объекта

PDOStatement::fetchObject

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.4)

PDOStatement::fetchObject — Извлекает следующую строку и возвращает её в виде объекта

Описание

public PDOStatement::fetchObject(?string $class = "stdClass", array $constructorArgs = []): object|false

Извлекает следующую строку и возвращает её в виде объекта. Этот метод
является альтернативой вызову PDOStatement::fetch() с
параметром PDO::FETCH_CLASS или
PDO::FETCH_OBJ.

Когда объект извлечён, его свойства наполняются значениями соответствующих столбцов, и, после этого, вызывается его конструктор.

Список параметров

class

Имя класса создаваемого объекта.

constructorArgs

Элементы этого массива будут переданы в конструктор класса.

Возвращаемые значения

Возвращает новый объект указанного класса, имена свойств которого соответствуют именам столбцов результирующего набора или false в случае возникновения ошибки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Смотрите также

  • PDOStatement::fetch() - Извлечение следующей строки из результирующего набора


Получение значения атрибута запроса PDOStatement

  • « PDOStatement::fetchObject
  • PDOStatement::getColumnMeta »
  • PHP Manual
  • PDOStatement
  • Получение значения атрибута запроса PDOStatement

PDOStatement::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::getAttribute — Получение значения атрибута запроса PDOStatement

Описание

public PDOStatement::getAttribute(int $name): mixed

Получает значение атрибута запроса. На данный момент не существует общих атрибутов, есть только характерные для конкретного драйвера:

  • PDO::ATTR_CURSOR_NAME (для Firebird и ODBC): Получение имени курсора для запроса UPDATE ... WHERE CURRENT OF.

Обратите внимание, что атрибуты драйвера не должны использоваться с другими драйверами.

Список параметров

name

Атрибут для запроса.

Возвращаемые значения

Возвращает значение атрибута.

Смотрите также

  • PDO::getAttribute() - Получить атрибут соединения с базой данных
  • PDO::setAttribute() - Установка атрибута
  • PDOStatement::setAttribute() - Устанавливает атрибут объекту PDOStatement


Возвращает метаданные столбца в результирующей таблице

  • « PDOStatement::getAttribute
  • PDOStatement::getIterator »
  • PHP Manual
  • PDOStatement
  • Возвращает метаданные столбца в результирующей таблице

PDOStatement::getColumnMeta

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::getColumnMeta — Возвращает метаданные столбца в результирующей таблице

Описание

public PDOStatement::getColumnMeta(int $column): array|false

Возвращает метаданные столбца результирующей таблицы в виде ассоциативного массива. Индексация столбцов начинается с 0.

Внимание

Некоторые драйверы PDO могут не реализуют функцию PDOStatement::getColumnMeta(), поскольку она является необязательной. Однако все драйверы PDO, указанные в руководстве, реализуют эту функцию.

Список параметров

column

Индекс (начиная с 0) столбца результирующего набора.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий следующие значения метаданных:

Метаданные столбца
Имя | Значение
native_type | Внутренний тип PHP, используемый для представления значения столбца.
driver:decl_type | Тип SQL, используемый для представления значения столбца в базе данных. Если значение столбца результирующей таблицы было возвращено из функции, PDOStatement::getColumnMeta() не будет определять этот тип.
flags | Какие-либо флаги, установленные для столбца.
name | Имя этого столбца, возвращаемое базой данных.
table | Имя таблицы этого столбца, возвращаемое базой данных.
len | Размер поля столбца. Как правило, для типов, отличных от чисел с плавающей точкой, это значение равно -1.
precision | Числовая точность этого столбца. Как правило, для типов, отличных от чисел с плавающей точкой, это значение равно 0.
pdo_type | Тип PDO значения столбца в виде одной из констант PDO::PARAM_*.

Возвращает false в случаях, когда указанного столбца нет в результирующей таблице, а также если не существует самого результирующего набора.

Примеры

Пример #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::nextRowset »
  • PHP Manual
  • PDOStatement
  • Получает итератор набора результатов

PDOStatement::getIterator

(PHP 8)

PDOStatement::getIterator — Получает итератор набора результатов

Описание

public PDOStatement::getIterator(): Iterator

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Переход к следующему набору строк в результате запроса

  • « PDOStatement::getIterator
  • PDOStatement::rowCount »
  • PHP Manual
  • PDOStatement
  • Переход к следующему набору строк в результате запроса

PDOStatement::nextRowset

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::nextRowset — Переход к следующему набору строк в результате запроса

Описание

public PDOStatement::nextRowset(): 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 без заполнителей


Возвращает количество строк, затронутых последним SQL-запросом

  • « PDOStatement::nextRowset
  • PDOStatement::setAttribute »
  • PHP Manual
  • PDOStatement
  • Возвращает количество строк, затронутых последним SQL-запросом

PDOStatement::rowCount

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::rowCount — Возвращает количество строк, затронутых последним SQL-запросом

Описание

public PDOStatement::rowCount(): int

PDOStatement::rowCount() возвращает количество строк, которые были затронуты в ходе выполнения последнего запроса DELETE, INSERT или UPDATE, запущенного соответствующим объектом PDOStatement.

Для операторов, создающих наборы результатов, таких как SELECT, поведение не определено и может быть различным для каждого драйвера. Некоторые базы данных могут возвращать количество строк, созданных этим оператором (например, MySQL в буферизованном режиме), но такое поведение не гарантируется для всех баз данных и не должно использоваться в переносимых приложениях.

Замечание:

Этот метод всегда возвращает "0" (ноль) с драйвером SQLite, а с драйвером PostgreSQL только при установке атрибута оператора PDO::ATTR_CURSOR равным PDO::CURSOR_SCROLL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество строк.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #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";
$res = $conn->query($sql);
$count = $res->fetchColumn();

print "Совпадающих записей: " . $count;
?>

Результатом выполнения данного примера будет что-то подобное:

Совпадающих записей: 2

Смотрите также

  • PDOStatement::columnCount() - Возвращает количество столбцов в результирующем наборе
  • PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора
  • PDO::query() - Подготавливает и выполняет выражение SQL без заполнителей


Устанавливает атрибут объекту PDOStatement

  • « PDOStatement::rowCount
  • PDOStatement::setFetchMode »
  • PHP Manual
  • PDOStatement
  • Устанавливает атрибут объекту PDOStatement

PDOStatement::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8, 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.

Обратите внимание, что атрибуты драйвера не должны использоваться с другими драйверами.

Список параметров

attribute

Атрибут для изменения.

value

Значение для установки параметра attribute может потребовать определённого типа в зависимости от атрибута.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • PDO::getAttribute() - Получить атрибут соединения с базой данных
  • PDO::setAttribute() - Установка атрибута
  • PDOStatement::getAttribute() - Получение значения атрибута запроса PDOStatement


Устанавливает режим выборки по умолчанию для объекта запроса

  • « PDOStatement::setAttribute
  • PDOException »
  • PHP Manual
  • PDOStatement
  • Устанавливает режим выборки по умолчанию для объекта запроса

PDOStatement::setFetchMode

(PHP 5 >= 5.1.0, PHP 7, PHP 8, 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 $class, ?array $constructorArgs = null): bool
public PDOStatement::setFetchMode(int $mode = PDO::FETCH_INTO, object $object): bool

Список параметров

mode

Режим выборки можно задавать только одной из констант PDO::FETCH_*.

colno

Номер столбца.

class

Имя класса.

constructorArgs

Аргументы конструктора класса.

object

Объект.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Изменение режима выборки

В следующем примере показано, как метод PDOStatement::setFetchMode() меняет режим выборки по умолчанию для объекта PDOStatement.

<?php
$stmt = $dbh->query('SELECT name, colour, calories FROM fruit');
$stmt->setFetchMode(PDO::FETCH_NUM);
foreach ($stmt as $row) {
print $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
}

Результат выполнения данного примера:

apple   red     150
banana  yellow  250
orange  orange  300
kiwi    brown   75
lemon   yellow  25
pear    green   150


Класс PDOException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Представляет ошибку, вызванную PDO. Вам не следует выбрасывать исключения PDOException из своего кода. Для дополнительной информации об исключениях в PHP смотрите раздел Исключения.

Обзор классов

class PDOException extends RuntimeException {
/* Свойства */
protected int|string $code;
public ?array $errorInfo = null;
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): 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)

Следующие драйверы в настоящее время реализованы в 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/8.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


Функции 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

(PECL PDO_CUBRID >= 8.3.0.0001)

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

(PECL PDO_CUBRID >= 8.3.0.0001)

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.

В 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 (int)

устанавливает формат даты.

PDO::FB_ATTR_TIME_FORMAT (int)

Устанавливает формат времени.

PDO::FB_ATTR_TIMESTAMP_FORMAT (int)

Устанавливает формат временной метки.

Содержание

  • 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.

PDO_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-запроса завершит все открытые транзакции, а также выполнит весь стек не завершённых запросов.

Замечание:

Драйвер MySQL не поддерживает должным образом PDO::PARAM_INPUT_OUTPUT через PDOStatement::bindParam(); хотя параметр можно использовать, он не обновляется (т.е. фактический вывод игнорируется).

Установка

Обычно установочные пакеты 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. По умолчанию используется библиотека 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.

Предопределённые константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого модуля, или данный модуль был динамически загружен во время выполнения. Вдобавок, эти зависимые от драйвера константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO::ATTR_DRIVER_NAME для проверки драйвера.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (bool)
По умолчанию все запросы выполняются в буферизованном режиме. Если этот атрибут установлен в значение false для объекта PDO, драйвер MySQL будет использовать небуферизованный режим.

Пример #1 Установка небуферизованного режима MySQL

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_password');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$unbufferedResult = $pdo->query("SELECT Name FROM City");
foreach ($unbufferedResult as $row) {
echo $row['Name'] . PHP_EOL;
}
?>

PDO::MYSQL_ATTR_LOCAL_INFILE (int)

Включить LOAD LOCAL INFILE.

Обратите внимание, что эта константа может быть использована только в массиве driver_options при создании дескриптора новой базы данных.

PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY (string)

Позволяет ограничить загрузку LOCAL DATA файлами, расположенными в указанном каталоге. Доступно, начиная с версии PHP 8.1.0.

Обратите внимание, что эта константа может использоваться только в массиве driver_options при создании нового дескриптора базы данных.

PDO::MYSQL_ATTR_INIT_COMMAND (string)

Команда, которую необходимо выполнить при подключении к MySQL-серверу. Также будет автоматически выполнена при переподключении.

Обратите внимание, что эта константа может быть использована только в массиве driver_options при создании дескриптора новой базы данных.

PDO::MYSQL_ATTR_READ_DEFAULT_FILE (int)

Чтение именованных параметров из файла my.cnf. Эта опция недоступна, если используется mysqlnd, потому что mysqlnd не читает файлы конфигурации MySQL.

PDO::MYSQL_ATTR_READ_DEFAULT_GROUP (int)

Чтение именованной группы параметров из файла my.cnf или из файла, определённого в константе MYSQL_READ_DEFAULT_FILE. Эта опция недоступна, если используется mysqlnd, потому что mysqlnd не читает файлы конфигурации MySQL.

PDO::MYSQL_ATTR_MAX_BUFFER_SIZE (int)

Максимальный размер буфера. По умолчанию равен 1 Мб. Эта константа не поддерживается при компиляции вместе с mysqlnd.

PDO::MYSQL_ATTR_DIRECT_QUERY (int)

Выполнять прямые запросы, не использовать подготовленные конструкции.

PDO::MYSQL_ATTR_FOUND_ROWS (int)

Возвращает количество найденных (совпавших) строк, а не количество изменённых строк.

PDO::MYSQL_ATTR_IGNORE_SPACE (int)

Разрешает пробелы после имён функций. Делает все имена функций зарезервированными словами.

PDO::MYSQL_ATTR_COMPRESS (int)

Включить сжатие сетевого соединения.

PDO::MYSQL_ATTR_SSL_CA (int)

Путь к файлу сертификата SSL.

PDO::MYSQL_ATTR_SSL_CAPATH (int)

Путь к директории, которая содержит SSL-сертификаты доверенных центров (CA), хранящиеся в формате PEM.

PDO::MYSQL_ATTR_SSL_CERT (int)

Путь к файлу с SSL-сертификатом.

PDO::MYSQL_ATTR_SSL_CIPHER (int)

Список из одного или более допустимых шифров для использования в SSL-шифровании в формате, который понимает OpenSSL. Например: DHE-RSA-AES256-SHA:AES128-SHA

PDO::MYSQL_ATTR_SSL_KEY (int)

Путь к файлу с ключом SSL.

PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT (int)

Предоставляет способ отключения проверки SSL-сертификата сервера.

Существует, начиная с PHP 7.0.18 и PHP 7.1.4.

PDO::MYSQL_ATTR_MULTI_STATEMENTS (int)

Если установлено как false, запрещает запуск множественных запросов, как для PDO::prepare(), так и для PDO::query().

Обратите внимание, что эта константа может быть использована только в массиве driver_options при создании нового дескриптора БД.

Настройка во время выполнения

Поведение этих функций зависит от установок в 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 bool

Разрешает отладку для 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 префикс

DSN-префикс - это mysql:.

host

Имя хоста, где находится сервер баз данных.

port

Номер порта, который слушает сервер баз данных.

dbname

Имя базы данных.

unix_socket

Сокет MySQL Unix (не должен использоваться совместно с host или port).

charset

Кодировка. Смотрите раздел Кодировки для дополнительной информации.

Примеры

Пример #1 Примеры DSN для 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.

Установка

Наиболее часто используемая версия драйвера доступна здесь: » Загрузка SQLSRV. Исходный код драйвера размещён в » публичном репозитории.

За подробностями о системных требованиях обратитесь к разделу » Системные требования SQLSRV.

В Windows модуль PDO_SQLSRV включается путём загрузки и добавления соответствующих DLL-файлов в каталог модулей PHP и соответствующей записи в файл php.ini.

В Linux и macOS модуль PDO_SQLSRV можно установить с помощью » PECL. Подробности смотрите в » руководстве по установке.

Предопределённые константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого модуля, или данный модуль был динамически загружен во время выполнения. Вдобавок, эти зависимые от драйвера константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO::ATTR_DRIVER_NAME для проверки драйвера.

PDO::SQLSRV_TXN_READ_UNCOMMITTED (int)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Read Uncommitted.
PDO::SQLSRV_TXN_READ_COMMITTED (int)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Read Committed.
PDO::SQLSRV_TXN_REPEATABLE_READ (int)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Repeateable Read.
PDO::SQLSRV_TXN_SNAPSHOT (int)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Snapshot.
PDO::SQLSRV_TXN_SERIALIZABLE (int)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Serializable.
PDO::SQLSRV_ENCODING_BINARY (int)
Определяет, что данные отправляются/получаются в виде потока байтов к/от сервера без выполнения преобразования кодировки или другого преобразования. Константа может быть передана в функции PDOStatement::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_SYSTEM (int)
Определяет, что данные отправляются/получаются к/от сервера в 8ми-битной кодировке локали Windows, установленной в системе. Все мультибайтовые символы и символы, не преобразуемые в данную кодировку, заменяются символом вопроса (?). Константа может быть передана в функции PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_UTF8 (int)
Определяет, что данные отправляются/получаются к/от сервера в кодировке UTF-8. Константа может быть передана в функции PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_DEFAULT (int)
Определяет, что данные отправляются/получаются к/от сервера согласно значению PDO::SQLSRV_ENCODING_SYSTEM, указанному при подключении. Для подключения может использоваться кодировка, указанная при подготовке выражения. Константа может быть передана в функции PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
PDO::SQLSRV_ATTR_QUERY_TIMEOUT (int)
Неотрицательное целое число, отражающее время ожидания в секундах. Ноль (0) - это значение по умолчанию, означающее, что время ожидания не учитывается. Константа может быть передана в функции PDOStatement::setAttribute, PDO::setAttribute и PDO::prepare.
PDO::SQLSRV_ATTR_DIRECT_QUERY (int)
Показывает, что запрос должен быть немедленно выполнен, без подготовки выражения. Константа может быть передана в функции 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

(PECL pdo_sqlsrv >= 2.0.1)

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 (int)

Позволяет задать действие для сессии.

Существует, начиная с PHP 7.2.16 и 7.3.3

PDO::OCI_ATTR_CLIENT_INFO (int)

Позволяет задать информацию по клиенту для сессии.

Существует, начиная с PHP 7.2.16 и 7.3.3

PDO::OCI_ATTR_CLIENT_IDENTIFIER (int)

Позволяет задать идентификатор клиента для сессии.

Существует, начиная с PHP 7.2.16 и 7.3.3

PDO::OCI_ATTR_MODULE (int)

Позволяет задать модуль для сессии.

Существует, начиная с 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.

Установка

PDO_ODBC на UNIX системах

  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 был собран с поддержкой этого модуля, или данный модуль был динамически загружен во время выполнения. Вдобавок, эти зависимые от драйвера константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO::ATTR_DRIVER_NAME для проверки драйвера.

PDO::ODBC_ATTR_USE_CURSOR_LIBRARY (int)

Этот параметр определяет, используется ли библиотека курсоров ODBC. Библиотека курсоров ODBC поддерживает некоторые дополнительные особенности ODBC (например блочные прокручиваемые курсоры), которые могут не реализовываться драйвером. Поддерживаются следующие значения:

  • PDO::ODBC_SQL_USE_IF_NEEDED (по умолчанию): использовать библиотеку курсоров ODBC если необходимо.

  • PDO::ODBC_SQL_USE_DRIVER: никогда не использовать библиотеку курсоров ODBC.

  • PDO::ODBC_SQL_USE_ODBC: всегда использовать библиотеку курсоров ODBC.

PDO::ODBC_ATTR_ASSUME_UTF8 (bool)

Только для Windows. Если true, то данные в кодировке UTF-16 (CHAR, VARCHAR и LONGVARCHAR) будут сконвертированны в UTF-8 при чтении или записи. Если false (по умолчанию), преобразование кодировки символов может быть выполнено драйвером.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Конфигурационные опции PDO_ODBC
Имя | По умолчанию | Место изменения | Список изменений
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL |
pdo_odbc.db2_instance_name | NULL | PHP_INI_SYSTEM | Эта возможность устарела и будет обязательно удалена в будущем.
Для подробного описания констант 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

Предопределённые константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого модуля, или данный модуль был динамически загружен во время выполнения. Вдобавок, эти зависимые от драйвера константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO::ATTR_DRIVER_NAME для проверки драйвера.

PDO::PGSQL_ATTR_DISABLE_PREPARES (int)

Отправьте запрос и параметры на сервер вместе за один вызов, избегая необходимости отдельно создавать именованный подготовленный оператор. Если запрос будет выполняться только один раз, это может уменьшить задержку, избегая ненужного обхода сервера.

Общие замечания

Замечание:

Поля bytea возвращаются как потоки.

Содержание

  • 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

(PHP 5 >= 5.1.0, PHP 7, 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 проигнорирует значение, переданное в качестве параметра конструктору.

sslmode

Режим SSL. Поддерживаемые значения и их описание перечислены в » документации PostgreSQL.

Замечание: Все точки с запятой в строке DSN заменяются пробелами, потому что PostgreSQL ожидает такой формат. Это означает, что точки с запятой в любом из компонентов (например, password or dbname) не поддерживаются.

Примеры

Пример #1 Примеры PDO_PGSQL DSN

Следующий пример демонстрирует строку подключения к базе PostgreSQL:

pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass

Следующий пример демонстрирует PDO_PGSQL DSN для подключения к базе данных PostgreSQL с помощью unix сокета /tmp/.s.PGSQL.5432:

pgsql:host=/tmp;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, PHP 8)

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, PHP 8)

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, PHP 8)

PDO::pgsqlCopyToArray — Выгрузить данные из таблицы в массив PHP

Описание

public PDO::pgsqlCopyToArray(
string $table_name,
string $delimiter = "\t",
string $null_as = "\\\\N",
string $fields = ?
): array|false

Выгружает данные из таблицы 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, PHP 8)

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, PHP 8)

PDO::pgsqlGetNotify — Получить асинхронное уведомление

Описание

public PDO::pgsqlGetNotify(int $result_type = PDO::FETCH_USE_DEFAULT, int $ms_timeout = 0): array|false

Возвращает результирующий набор, представляющий ожидание асинхронного уведомления.

Список параметров

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, PHP 8)

PDO::pgsqlGetPid — Получает PID сервера

Описание

public PDO::pgsqlGetPid(): int

Возвращает PID сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

PID сервера.


Создать новый большой объект (LOB)

  • « PDO::pgsqlGetPid
  • PDO::pgsqlLOBOpen »
  • PHP Manual
  • PostgreSQL (PDO)
  • Создать новый большой объект (LOB)

PDO::pgsqlLOBCreate

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBCreate — Создать новый большой объект (LOB)

Описание

public PDO::pgsqlLOBCreate(): 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, PHP 8, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBOpen — Открывает поток для существующего большого объекта

Описание

public PDO::pgsqlLOBOpen(string $oid, string $mode = "rb"): resource|false

Функция 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, PHP 8, 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.

Замечание:

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

(PHP 5 >= 5.1.0, PHP 7, 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 состоит только из префикса DSN, используется временная база данных, которая удаляется при закрытии соединения.

Примеры

Пример #1 Пример DSN PDO_SQLITE

В следующем примере показаны DSN PDO_SQLITE для соединения с SQLite:

sqlite:/opt/databases/mydb.sq3
sqlite::memory:
sqlite:


Регистрация агрегирующей пользовательской функции для использования в SQL-запросах

  • « PDO_SQLITE DSN
  • PDO::sqliteCreateCollation »
  • PHP Manual
  • SQLite (PDO)
  • Регистрация агрегирующей пользовательской функции для использования в SQL-запросах

PDO::sqliteCreateAggregate

(PHP 5 >= 5.1.0, PHP 7, PHP 8, 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 $value,
mixed ...$values
): mixed
context

Для первой строки должно равняться null; Для всех последующих строк его значение должно быть равно значению, возвращённому на предыдущем шаге; вы должны использовать его для сохранения состояния агрегации.

rownumber

Номер текущей строки.

value

Первый аргумент переданный агрегатору.

values

Последующие аргументы.

Возвращаемое значение функции будет использовано как параметр 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.

Смотрите также

  • PDO::sqliteCreateFunction
  • sqlite_create_function()
  • sqlite_create_aggregate()


Регистрация пользовательской функции сортировки для использования в SQL-запросах

  • « PDO::sqliteCreateAggregate
  • PDO::sqliteCreateFunction »
  • PHP Manual
  • SQLite (PDO)
  • Регистрация пользовательской функции сортировки для использования в SQL-запросах

PDO::sqliteCreateCollation

(PHP 5 >= 5.3.11, PHP 7, PHP 8)

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


Регистрация пользовательской функции для использования в SQL-запросах

  • « PDO::sqliteCreateCollation
  • Модули для работы с базами данных отдельных производителей »
  • PHP Manual
  • SQLite (PDO)
  • Регистрация пользовательской функции для использования в SQL-запросах

PDO::sqliteCreateFunction

(PHP 5 >= 5.1.0, PHP 7, PHP 8, 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 $value, mixed ...$values): mixed
value

Первый аргумент передаваемый в SQL-функцию.

values

Последующие аргументы.

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.

Смотрите также

  • PDO::sqliteCreateAggregate
  • sqlite_create_function()
  • sqlite_create_aggregate()


Модули для работы с базами данных отдельных производителей

  • CUBRID
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции CUBRID
    • Функции совместимости CUBRID MySQL
    • Устаревшие псевдонимы и функции CUBRID
  • dBase
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • dBase
  • Firebird/InterBase
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции Firebird/InterBase
  • IBM DB2 — IBM DB2, Cloudscape и Apache Derby
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции IBM DB2
  • MongoDB — Драйвер MongoDB
    • Установка и настройка
    • Обучающие материалы
    • Архитектура и внутреннее устройство драйвера — Обзор архитектуры драйвера и её особенностей
    • Безопасность
    • MongoDB\Driver — Классы драйвера MongoDB
    • MongoDB\BSON — Классы типов BSON и функции сериализации
    • MongoDB\Driver\Monitoring — Классы мониторинга и функции подписчика
    • MongoDB\Driver\Exception — Классы исключений
  • MySQL — MySQL драйверы и плагины
    • Обзор PHP драйверов MySQL
    • MySQLi — Улучшенный модуль MySQL (MySQL Improved)
    • Mysql_xdevapi
    • MySQL (Original) — Оригинальное API MySQL
    • Mysqlnd — Встроенный драйвер MySQL
  • OCI8 — Oracle OCI8
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Работа с соединениями OCI8 и Connection Pooling
    • Поддержка OCI8 Fast Application Notification (FAN)
    • Поддержка прозрачного для приложений восстановления после отказа (Transparent Application Failover или TAF) для OCI8
    • OCI8 и динамическая трассировка DTrace
    • Поддерживаемые типы данных
    • OCI8 Функции
    • OCICollection — Класс OCICollection
    • OCILob — Класс OCILob
    • Устаревшие наименования и функции OCI8
  • PostgreSQL
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции PostgreSQL
    • PgSql\Connection — Класс PgSql\Connection
    • PgSql\Result — Класс PgSql\Result
    • PgSql\Lob — Класс PgSql\Lob
  • SQLite3
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • SQLite3 — Класс SQLite3
    • SQLite3Stmt — Класс SQLite3Stmt
    • SQLite3Result — Класс SQLite3Result
  • SQLSRV — Драйвер СУБД Microsoft SQL Server для PHP
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции SQLSRV


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 — Выполняет подготовленный SQL-оператор
    • cubrid_fetch — Выбирает следующую строку из набора результатов
    • cubrid_free_result — Освобождает память, занятую данными результата
    • cubrid_get_autocommit — Возвращает настройку авто-коммита для соединения
    • cubrid_get_charset — Возвращает кодировку текущего соединения CUBRID
    • cubrid_get_class_name — Получает имя класса с помощью OID
    • cubrid_get_client_info — Возвращает версию клиентской библиотеки
    • cubrid_get_db_parameter — Возвращает параметры базы данных CUBRID
    • cubrid_get_query_timeout — Получает значение времени ожидания запроса
    • cubrid_get_server_info — Возвращает версию сервера CUBRID
    • cubrid_get — Получает столбец, используя OID
    • cubrid_insert_id — Возвращает идентификатор, сгенерированный для последнего обновлённого столбца AUTO_INCREMENT
    • cubrid_is_instance — Проверяет, существует ли экземпляр, на который указывает OID
    • cubrid_lob_close — Закрывает данные BLOB/CLOB
    • cubrid_lob_export — Экспортирует данные BLOB/CLOB в файл
    • cubrid_lob_get — Получает данные BLOB/CLOB
    • cubrid_lob_send — Читает данные BLOB/CLOB и отправляет их прямо в браузер
    • cubrid_lob_size — Получает размер данных BLOB/CLOB
    • cubrid_lob2_bind — Связывает объект LOB или строку в виде объекта LOB с подготовленным оператором в качестве параметров
    • cubrid_lob2_close — Закрывает объект LOB
    • cubrid_lob2_export — Экспортирует LOB-объект в файл
    • cubrid_lob2_import — Импортирует данные BLOB/CLOB из файла
    • cubrid_lob2_new — Создаёт объект LOB
    • cubrid_lob2_read — Производит чтение из данных BLOB/CLOB
    • cubrid_lob2_seek64 — Перемещает курсор LOB-объекта
    • cubrid_lob2_seek — Перемещает курсор LOB-объекта
    • cubrid_lob2_size64 — Получает размер LOB-объекта
    • cubrid_lob2_size — Получает размер LOB-объекта
    • cubrid_lob2_tell64 — Сообщает положение курсора LOB-объекта
    • cubrid_lob2_tell — Сообщает положение курсора LOB-объекта
    • cubrid_lob2_write — Записывает в LOB-объект
    • cubrid_lock_read — Устанавливает блокировку чтения для данного OID
    • cubrid_lock_write — Устанавливает блокировку записи для данного OID
    • cubrid_move_cursor — Перемещает курсор в результате
    • cubrid_next_result — Получает результат следующего запроса при выполнении нескольких SQL-операторов
    • cubrid_num_cols — Возвращает количество столбцов в наборе результатов
    • cubrid_num_rows — Получить количество строк в наборе результатов
    • cubrid_pconnect_with_url — Открывает постоянное соединение с сервером CUBRID
    • cubrid_pconnect — Открывает постоянное соединение с сервером CUBRID
    • cubrid_prepare — Подготавливает SQL-выражение к выполнению
    • cubrid_put — Обновляет столбец с использованием OID
    • cubrid_rollback — Откат транзакции
    • cubrid_schema — Получает запрошенную информацию о схеме
    • cubrid_seq_drop — Удаляет элемент из столбца типа последовательности, используя OID
    • cubrid_seq_insert — Вставляет элемент в столбец типа последовательности, используя OID
    • cubrid_seq_put — Обновляет значение элемента столбца типа последовательности, используя OID
    • cubrid_set_add — Вставляет один элемент для установки столбца типа с помощью OID
    • cubrid_set_autocommit — Устанавливает режим авто-коммита для соединения
    • cubrid_set_db_parameter — Устанавливает параметры базы данных CUBRID
    • cubrid_set_drop — Удаляет элемент из столбца заданного типа, используя OID
    • cubrid_set_query_timeout — Устанавливает время ожидания выполнения запроса
    • 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 — Выполняет подготовленный SQL-оператор
  • cubrid_fetch — Выбирает следующую строку из набора результатов
  • cubrid_free_result — Освобождает память, занятую данными результата
  • cubrid_get_autocommit — Возвращает настройку авто-коммита для соединения
  • cubrid_get_charset — Возвращает кодировку текущего соединения CUBRID
  • cubrid_get_class_name — Получает имя класса с помощью OID
  • cubrid_get_client_info — Возвращает версию клиентской библиотеки
  • cubrid_get_db_parameter — Возвращает параметры базы данных CUBRID
  • cubrid_get_query_timeout — Получает значение времени ожидания запроса
  • cubrid_get_server_info — Возвращает версию сервера CUBRID
  • cubrid_get — Получает столбец, используя OID
  • cubrid_insert_id — Возвращает идентификатор, сгенерированный для последнего обновлённого столбца AUTO_INCREMENT
  • cubrid_is_instance — Проверяет, существует ли экземпляр, на который указывает OID
  • cubrid_lob_close — Закрывает данные BLOB/CLOB
  • cubrid_lob_export — Экспортирует данные BLOB/CLOB в файл
  • cubrid_lob_get — Получает данные BLOB/CLOB
  • cubrid_lob_send — Читает данные BLOB/CLOB и отправляет их прямо в браузер
  • cubrid_lob_size — Получает размер данных BLOB/CLOB
  • cubrid_lob2_bind — Связывает объект LOB или строку в виде объекта LOB с подготовленным оператором в качестве параметров
  • cubrid_lob2_close — Закрывает объект LOB
  • cubrid_lob2_export — Экспортирует LOB-объект в файл
  • cubrid_lob2_import — Импортирует данные BLOB/CLOB из файла
  • cubrid_lob2_new — Создаёт объект LOB
  • cubrid_lob2_read — Производит чтение из данных BLOB/CLOB
  • cubrid_lob2_seek64 — Перемещает курсор LOB-объекта
  • cubrid_lob2_seek — Перемещает курсор LOB-объекта
  • cubrid_lob2_size64 — Получает размер LOB-объекта
  • cubrid_lob2_size — Получает размер LOB-объекта
  • cubrid_lob2_tell64 — Сообщает положение курсора LOB-объекта
  • cubrid_lob2_tell — Сообщает положение курсора LOB-объекта
  • cubrid_lob2_write — Записывает в LOB-объект
  • cubrid_lock_read — Устанавливает блокировку чтения для данного OID
  • cubrid_lock_write — Устанавливает блокировку записи для данного OID
  • cubrid_move_cursor — Перемещает курсор в результате
  • cubrid_next_result — Получает результат следующего запроса при выполнении нескольких SQL-операторов
  • cubrid_num_cols — Возвращает количество столбцов в наборе результатов
  • cubrid_num_rows — Получить количество строк в наборе результатов
  • cubrid_pconnect_with_url — Открывает постоянное соединение с сервером CUBRID
  • cubrid_pconnect — Открывает постоянное соединение с сервером CUBRID
  • cubrid_prepare — Подготавливает SQL-выражение к выполнению
  • cubrid_put — Обновляет столбец с использованием OID
  • cubrid_rollback — Откат транзакции
  • cubrid_schema — Получает запрошенную информацию о схеме
  • cubrid_seq_drop — Удаляет элемент из столбца типа последовательности, используя OID
  • cubrid_seq_insert — Вставляет элемент в столбец типа последовательности, используя OID
  • cubrid_seq_put — Обновляет значение элемента столбца типа последовательности, используя OID
  • cubrid_set_add — Вставляет один элемент для установки столбца типа с помощью OID
  • cubrid_set_autocommit — Устанавливает режим авто-коммита для соединения
  • cubrid_set_db_parameter — Устанавливает параметры базы данных CUBRID
  • cubrid_set_drop — Удаляет элемент из столбца заданного типа, используя OID
  • cubrid_set_query_timeout — Устанавливает время ожидания выполнения запроса
  • 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() - Выполняет подготовленный SQL-оператор
  • cubrid_prepare() - Подготавливает SQL-выражение к выполнению


Закрывает обработчик запроса

  • « 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() - Подготавливает SQL-выражение к выполнению
  • cubrid_execute() - Выполняет подготовленный SQL-оператор
  • 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() - Подготавливает SQL-выражение к выполнению
  • cubrid_execute() - Выполняет подготовленный SQL-оператор


Подтверждение транзакции

  • « 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() - Откат транзакции
  • 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() - Открывает постоянное соединение с сервером CUBRID
  • cubrid_pconnect_with_url() - Открывает постоянное соединение с сервером CUBRID
  • 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() - Открывает постоянное соединение с сервером CUBRID
  • cubrid_connect_with_url() - Создаёт окружение для соединения с сервером CUBRID
  • cubrid_pconnect_with_url() - Открывает постоянное соединение с сервером CUBRID
  • 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() - Выполняет подготовленный SQL-оператор


Закрывает соединение с базой данных

  • « 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() - Проверяет, существует ли экземпляр, на который указывает OID


Получить код уровня, на котором произошла ошибка

  • « 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(): 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(): 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(): 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() - Получить код уровня, на котором произошла ошибка


Выполняет подготовленный SQL-оператор

  • « cubrid_error_msg
  • cubrid_fetch »
  • PHP Manual
  • Функции CUBRID
  • Выполняет подготовленный SQL-оператор

cubrid_execute

(PECL CUBRID >= 8.3.0)

cubrid_execute — Выполняет подготовленный SQL-оператор

Описание

cubrid_execute(resource $conn_identifier, string $sql, int $option = 0): resource
cubrid_execute(resource $request_identifier, int $option = 0): bool

Функция cubrid_execute() используется для выполнения данного SQL-оператора. Она выполняет запрос, используя conn_identifier и SQL, а затем возвращает созданный идентификатор запроса. Функция используется для простого выполнения запроса, когда привязка параметров не требуется. Кроме того, функция cubrid_execute() используется для выполнения подготовленного оператора с помощью cubrid_prepare() и cubrid_bind(). В это время вам необходимо указать аргументы request_identifier и option.

Параметр option используется для определения, следует ли получать OID после выполнения запроса и следует ли выполнять запрос в синхронном или асинхронном режиме. Константа CUBRID_INCLUDE_OID и CUBRID_ASYNC (или CUBRID_EXEC_QUERY_ALL, если необходимо выполнить несколько SQL-операторов) можно указать с помощью побитового оператора ИЛИ. Если не указано, ни один из них не выбран. Если установлен флаг CUBRID_EXEC_QUERY_ALL, для получения результатов запроса используется синхронный режим (sync_mode) и в таких случаях применяются следующие правила:

  • Возвращаемое значение - результат первого запроса.
  • Если в каком-либо запросе возникает ошибка, выполнение обрабатывается как сбой.
  • В запросе, состоящем из q1 q2 q3, если ошибка возникает в q2 после успешного выполнения q1, результат q1 остаётся действительным. То есть предыдущее успешное выполнение запроса не откатывается в случае возникновения ошибки.
  • В случае успешного выполнения запроса, результат второго запроса можно получить с помощью cubrid_next_result().

Если первым аргументом является request_identifier для выполнения функции cubrid_prepare() можно указать только CUBRID_ASYNC.

Список параметров

conn_identifier

Идентификатор соединения.

sql

SQL для выполнения.

option

Вариант выполнения запроса: CUBRID_INCLUDE_OID, CUBRID_ASYNC, CUBRID_EXEC_QUERY_ALL.

request_identifier

Идентификатор cubrid_prepare().

Возвращаемые значения

Идентификатор запроса в случае успешного выполнения запроса и если первым параметром является conn_identifier; true, в случае успешного выполнения запроса и первым аргументом request_identifier или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.4.0 | Добавлен новый параметр CUBRID_EXEC_QUERY_ALL.

Примеры

Пример #1 Пример использования cubrid_execute()

<?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() - Подготавливает SQL-выражение к выполнению
  • cubrid_bind() - Связывает переменные с подготовленным запросом
  • cubrid_next_result() - Получает результат следующего запроса при выполнении нескольких SQL-операторов
  • cubrid_close_request() - Закрывает обработчик запроса
  • cubrid_commit() - Подтверждение транзакции
  • cubrid_rollback() - Откат транзакции


Выбирает следующую строку из набора результатов

  • « cubrid_execute
  • cubrid_free_result »
  • PHP Manual
  • Функции CUBRID
  • Выбирает следующую строку из набора результатов

cubrid_fetch

(PECL CUBRID >= 8.3.0)

cubrid_fetch — Выбирает следующую строку из набора результатов

Описание

cubrid_fetch(resource $result, int $type = CUBRID_BOTH): mixed

Функция cubrid_fetch() используется для получения одной строки из результата запроса. Курсор автоматически переместится на следующую строку после получения результата.

Список параметров

result

result, полученный из cubrid_execute()

type

Тип массива полученного результата CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH, CUBRID_OBJECT. Для управления LOB-объектом, используйте CUBRID_LOB.

Возвращаемые значения

Массив результатов или объект, в случае успешного выполнения процесса.

false, если строк больше нет; NULL в случае возникновения ошибки.

Результат может быть получен либо как массив, либо как объект, установка параметра type определяет, какой тип данных использовать. Переменной type можно присвоить одно из следующих значений:

  • CUBRID_NUM : Числовой массив (начиная с 0)
  • CUBRID_ASSOC : Ассоциативный массив
  • CUBRID_BOTH : Числовой & ассоциативный массив (по умолчанию)
  • CUBRID_OBJECT : объект, с именем атрибута в качестве имени столбца результата запроса

Если параметр type опущен, результат будет получен с использованием опции CUBRID_BOTH по умолчанию. Для получения результата запроса в виде объектных данных, имя столбца результата должно подчиняться правилам именования идентификаторов в PHP. Например, имя столбца, такое как "count(*)", не может быть получено в виде объекта.

Примеры

Пример #1 Пример использования cubrid_fetch()

<?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"]);
}

// для управления LOB-объектом, можно использовать 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() - Выполняет подготовленный SQL-оператор
  • cubrid_fetch_array() - Извлечение строки из результирующего набора в виде ассоциативного массива, индексированного массива или обоих сразу
  • cubrid_fetch_row() - Извлечь строку из результирующего набора в виде индексированного массива
  • cubrid_fetch_assoc() - Извлечь строку из результирующего набора в виде ассоциативного массива
  • cubrid_fetch_object() - Извлечь следующую строку как объект


Освобождает память, занятую данными результата

  • « cubrid_fetch
  • cubrid_get_autocommit »
  • PHP Manual
  • Функции CUBRID
  • Освобождает память, занятую данными результата

cubrid_free_result

(PECL CUBRID >= 8.3.0)

cubrid_free_result — Освобождает память, занятую данными результата

Описание

cubrid_free_result(resource $req_identifier): bool

Функция освобождает память, занятую данными результата. Она возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Стоит обратить внимание, что функция теперь может только освобождать буфер выборки клиента, и если необходимо освободить всю память, то нужно использовать функцию cubrid_close_request().

Список параметров

req_identifier

Идентификатор запроса.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_free_result()

<?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


Получает имя класса с помощью OID

  • « cubrid_get_charset
  • cubrid_get_client_info »
  • PHP Manual
  • Функции CUBRID
  • Получает имя класса с помощью OID

cubrid_get_class_name

(PECL CUBRID >= 8.3.0)

cubrid_get_class_name — Получает имя класса с помощью OID

Описание

cubrid_get_class_name(resource $conn_identifier, string $oid): string

Функция cubrid_get_class_name() используется для получения имени класса из параметра oid. Не работает при выборе данных из системных таблиц, например db_class.

Список параметров

conn_identifier

Идентификатор подключения.

oid

OID экземпляра, существование которого необходимо проверить.

Возвращаемые значения

Имя класса при успешном завершении процесса или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_get_class_name()

<?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() - Проверяет, существует ли экземпляр, на который указывает OID
  • cubrid_drop() - Удаление экземпляра по OID


Возвращает версию клиентской библиотеки

  • « cubrid_get_class_name
  • cubrid_get_db_parameter »
  • PHP Manual
  • Функции CUBRID
  • Возвращает версию клиентской библиотеки

cubrid_get_client_info

(PECL CUBRID >= 8.3.0)

cubrid_get_client_info — Возвращает версию клиентской библиотеки

Описание

cubrid_get_client_info(): string

Функция возвращает строку, представляющую версию клиентской библиотеки.

Список параметров

Возвращаемые значения

Строка, представляющая версию клиентской библиотеки в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_get_client_info()

<?php
printf("%-30s %s\n", "Версия CUBRID PHP:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
die('Ошибка подключения ('. 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);
printf("%-30s %s\n", "Информация о клиенте:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "Кодировка CUBRID:", $charset);

cubrid_disconnect($conn);

?>

Результат выполнения данного примера:

Версия CUBRID PHP:             9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Информация о сервере:          9.1.0.0212
Информация о клиенте:          9.1.0

Кодировка CUBRID:              iso8859-1


Возвращает параметры базы данных CUBRID

  • « cubrid_get_client_info
  • cubrid_get_query_timeout »
  • PHP Manual
  • Функции CUBRID
  • Возвращает параметры базы данных CUBRID

cubrid_get_db_parameter

(PECL CUBRID >= 8.3.0)

cubrid_get_db_parameter — Возвращает параметры базы данных CUBRID

Описание

cubrid_get_db_parameter(resource $conn_identifier): array

Функция возвращает параметры базы данных CUBRID или false в случае возникновения ошибки. Возвращается ассоциативный массив со значениями следующих параметров:

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT
  • PARAM_MAX_STRING_LENGTH
  • PARAM_AUTO_COMMIT

Параметры базы данных
Параметр | Описание
PARAM_ISOLATION_LEVEL | Уровень изоляции транзакции.
LOCK_TIMEOUT | CUBRID предоставляет функцию времени ожидания блокировки, которая устанавливает время ожидания (в секундах) для блокировки до тех пор, пока не будет разрешена настройка блокировки транзакции. Значение по умолчанию для параметра lock_timeout_in_secs равно -1, что означает, что клиент приложения будет ждать бесконечно, пока блокировка транзакции не будет разрешена.
PARAM_AUTO_COMMIT | В CUBRID PHP режим автоматической фиксации отключён по умолчанию для управления транзакциями. Его можно установить с помощью cubrid_set_autocommit().

В следующей таблице показаны уровни изоляции от 1 до 6. Она состоит из схемы (строки) таблицы и уровня изоляции:

Уровни изоляции, поддерживаемые CUBRID
Имя | Описание
SERIALIZABLE (6) | На этом уровне изоляции проблем, связанных с параллелизмом (например, грязное чтение, неповторяющееся чтение, фантомное чтение и т.д.) не возникает.
REPEATABLE READ CLASS с REPEATABLE READ INSTANCES (5) | Другая транзакция T2 не может обновить схему таблицы A, пока транзакция T1 просматривает таблицу A. Транзакция T1 может испытывать фантомное чтение для записи R, которая была вставлена другой транзакцией T2, когда она повторно получает определённую запись.
REPEATABLE READ CLASS с READ COMMITTED INSTANCES (или CURSOR STABILITY) (4) | Другая транзакция T2 не может обновить схему таблицы A, пока транзакция T1 просматривает таблицу A. Транзакция T1 может испытывать чтение R (неповторяющееся чтение), которое было обновлено и зафиксировано другой транзакцией T2, когда она повторно получает запись R.
REPEATABLE READ CLASS с READ UNCOMMITTED INSTANCES (3) | Уровень изоляции по умолчанию. Другая транзакция T2 не может обновить схему таблицы A, пока транзакция T1 просматривает таблицу A. В транзакции T1 может произойти чтение R (грязное чтение) для записи, которая была обновлена, но не зафиксирована другой транзакцией T2.
READ COMMITTED CLASS с READ COMMITTED INSTANCES (2) | Транзакция T1 может испытывать чтение A' (неповторяющееся чтение) для таблицы, которая была обновлена и зафиксирована другой транзакцией T2, пока она просматривает таблицу A несколько раз. Транзакция T1 может испытывать чтение R' (неповторяющееся чтение) для записи, которая была обновлена и зафиксирована другой транзакцией T2, пока она повторно извлекает запись R.
READ COMMITTED CLASS с READ UNCOMMITTED INSTANCES (1) | Транзакция T1 может испытывать чтение A' (неповторяющееся чтение) для таблицы, которая была обновлена и зафиксирована другой транзакцией T2, в то время как она многократно просматривает таблицу A. Транзакция T1 может испытывать чтение R' (грязное чтение) для записи, которая была обновлена, но не зафиксирована другой транзакцией T2.

Список параметров

conn_identifier

Соединение CUBRID. Если идентификатор соединения не указан, предполагается последняя ссылка, открытая cubrid_connect().

Возвращаемые значения

Ассоциативный массив с параметрами базы данных CUBRID в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.4.0 | В результате изменился LOCK_TIMEOUT на PARAM_LOCK_TIMEOUT и MAX_STRING_LENGTH на PARAM_MAX_STRING_LENGTH.

Примеры

Пример #1 Пример использования cubrid_get_db_parameter()

<?php
printf("%-30s %s\n", "Версия CUBRID PHP:", 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);
printf("%-30s %s\n", "Информация о клиенте:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "Кодировка CUBRID:", $charset);

cubrid_disconnect($conn);

?>

Результат выполнения данного примера:

Версия CUBRID PHP:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Информация о сервере:             9.1.0.0212
Информация о клиенте:             9.1.0

Кодировка CUBRID:                iso8859-1

Смотрите также

  • cubrid_set_db_parameter() - Устанавливает параметры базы данных CUBRID
  • cubrid_get_autocommit() - Возвращает настройку авто-коммита для соединения


Получает значение времени ожидания запроса

  • « cubrid_get_db_parameter
  • cubrid_get_server_info »
  • PHP Manual
  • Функции CUBRID
  • Получает значение времени ожидания запроса

cubrid_get_query_timeout

(PECL CUBRID >= 8.4.1)

cubrid_get_query_timeout — Получает значение времени ожидания запроса

Описание

cubrid_get_query_timeout(resource $req_identifier): int

Функция cubrid_get_query_timeout() используется для получения времени ожидания запроса.

Список параметров

req_identifier

Идентификатор запроса.

Возвращаемые значения

Возвращает значение времени ожидания текущего запроса в миллисекундах в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_get_query_timeout()

<?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() - Устанавливает время ожидания выполнения запроса


Возвращает версию сервера CUBRID

  • « cubrid_get_query_timeout
  • cubrid_get »
  • PHP Manual
  • Функции CUBRID
  • Возвращает версию сервера CUBRID

cubrid_get_server_info

(PECL CUBRID >= 8.3.0)

cubrid_get_server_info — Возвращает версию сервера CUBRID

Описание

cubrid_get_server_info(resource $conn_identifier): string

Функция возвращает строку, представляющую версию сервера CUBRID.

Список параметров

conn_identifier

Соединение CUBRID.

Возвращаемые значения

Строка, представляющая версию сервера CUBRID в случае успешного выполнения, или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_get_server_info()

<?php
printf("%-30s %s\n", "Версия CUBRID PHP:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
die('Ошибка подключения ('. 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);
printf("%-30s %s\n", "Информация о клиенте:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "Кодировка CUBRID:", $charset);

cubrid_disconnect($conn);

?>

Результат выполнения данного примера:

Версия CUBRID PHP:             9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Информация о сервере:          9.1.0.0212
Информация о клиенте:          9.1.0

Кодировка CUBRID:              iso8859-1


Получает столбец, используя OID

  • « cubrid_get_server_info
  • cubrid_insert_id »
  • PHP Manual
  • Функции CUBRID
  • Получает столбец, используя OID

cubrid_get

(PECL CUBRID >= 8.3.0)

cubrid_get — Получает столбец, используя OID

Описание

cubrid_get(resource $conn_identifier, string $oid, mixed $attr = ?): mixed

Функция cubrid_get() используется для получения атрибута экземпляра данного oid. Вы можете получить один атрибут, используя строковый тип данных для аргумента attr, или множество атрибутов, используя тип данных массива для аргумента attr.

Список параметров

conn_identifier

Идентификатор соединения.

oid

OID экземпляра, который вы хотите прочитать.

attr

Имя атрибута, который вы хотите прочитать.

Возвращаемые значения

Содержимое запрошенного атрибута, когда процесс успешен; Когда attr установлен со строковым типом данных, результат возвращается в виде строки; если для attr задан тип данных массива (числовой массив, начинающийся с 0), то результат возвращается в ассоциативном массиве. Когда attr опущен, все атрибуты принимаются в виде массива.

false, если процесс завершился с ошибкой или результат NULL (если возникает ошибка, чтобы отличить пустую строку от NULL, печатается предупреждающее сообщение. Вы можете проверить ошибку, используя cubrid_error_code())

Примеры

Пример #1 Пример использования cubrid_get()

<?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() - Обновляет столбец с использованием OID


Возвращает идентификатор, сгенерированный для последнего обновлённого столбца AUTO_INCREMENT

  • « cubrid_get
  • cubrid_is_instance »
  • PHP Manual
  • Функции CUBRID
  • Возвращает идентификатор, сгенерированный для последнего обновлённого столбца AUTO_INCREMENT

cubrid_insert_id

(PECL CUBRID >= 8.3.0)

cubrid_insert_id — Возвращает идентификатор, сгенерированный для последнего обновлённого столбца AUTO_INCREMENT

Описание

cubrid_insert_id(resource $conn_identifier = ?): string

Функция cubrid_insert_id() возвращает идентификатор, сгенерированный для столбца AUTO_INCREMENT, который обновляется предыдущим запросом INSERT. Она возвращает 0, если предыдущий запрос не генерирует новые строки, или FALSE в случае возникновения ошибки.

Замечание:

CUBRID поддерживает AUTO_INCREMENT для более чем одного столбца в таблице. В большинстве случаев в таблице будет один столбец AUTO_INCREMENT. Если имеется несколько столбцов AUTO_INCREMENT, данную функцию не следует использовать, даже если она вернёт значение.

Список параметров

conn_identifier

Идентификатор соединения, полученный ранее при вызове cubrid_connect().

Возвращаемые значения

Строка, представляющая идентификатор, сгенерированный для столбца AUTO_INCREMENT предыдущим запросом в случае успешного выполнения.

0, если предыдущий запрос не сгенерировал новые строки.

false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.4.0 | Возвращаемое значение в виде массива заменено на строку; Удалён первый параметр class_name.

Примеры

Пример #1 Пример использования cubrid_insert_id()

<?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"


Проверяет, существует ли экземпляр, на который указывает OID

  • « cubrid_insert_id
  • cubrid_lob_close »
  • PHP Manual
  • Функции CUBRID
  • Проверяет, существует ли экземпляр, на который указывает OID

cubrid_is_instance

(PECL CUBRID >= 8.3.0)

cubrid_is_instance — Проверяет, существует ли экземпляр, на который указывает OID

Описание

cubrid_is_instance(resource $conn_identifier, string $oid): int

Функция cubrid_is_instance() используется, чтобы проверить, существует ли экземпляр, на который указывает данный oid, или нет.

Список параметров

conn_identifier

Идентификатор подключения.

oid

OID экземпляра, существование которого требуется проверить.

Возвращаемые значения

1, если такой экземпляр существует;

0, если такого экземпляра не существует;

-1 в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_is_instance()

<?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 "Экземпляр, на который указывает $oid, существует.\n";
} else if ($res == 0){
echo "Экземпляр, на который указывает $oid, не существует.\n";
} else {
echo "Ошибка\n";
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Экземпляр, на который указывает @0|0|0, не существует.

Смотрите также

  • cubrid_drop() - Удаление экземпляра по OID
  • cubrid_get_class_name() - Получает имя класса с помощью OID


Закрывает данные BLOB/CLOB

  • « cubrid_is_instance
  • cubrid_lob_export »
  • PHP Manual
  • Функции CUBRID
  • Закрывает данные BLOB/CLOB

cubrid_lob_close

(PECL CUBRID >= 8.3.1)

cubrid_lob_close — Закрывает данные BLOB/CLOB

Описание

cubrid_lob_close(array $lob_identifier_array): bool

cubrid_lob_close() используется для закрытия всех BLOB/CLOB, возвращаемых функцией cubrid_lob_get().

Список параметров

lob_identifier_array

Массив идентификаторов LOB, возвращённый cubrid_lob_get().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_lob_close()

<?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 "Размер документа: ".cubrid_lob_size($lobs[0])." байтов";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob_get() - Получает данные BLOB/CLOB
  • cubrid_lob_size() - Получает размер данных BLOB/CLOB
  • cubrid_lob_export() - Экспортирует данные BLOB/CLOB в файл
  • cubrid_lob_send() - Читает данные BLOB/CLOB и отправляет их прямо в браузер


Экспортирует данные BLOB/CLOB в файл

  • « cubrid_lob_close
  • cubrid_lob_get »
  • PHP Manual
  • Функции CUBRID
  • Экспортирует данные BLOB/CLOB в файл

cubrid_lob_export

(PECL CUBRID >= 8.3.1)

cubrid_lob_export — Экспортирует данные BLOB/CLOB в файл

Описание

cubrid_lob_export(resource $conn_identifier, resource $lob_identifier, string $path_name): bool

cubrid_lob_export() используется для получения данных BLOB/CLOB из базы данных CUBRID и сохранения их содержимого в файл. Чтобы использовать данную функцию, необходимо сначала использовать cubrid_lob_get(), чтобы получить информацию BLOB/CLOB из CUBRID.

Список параметров

conn_identifier

Идентификатор подключения.

lob_identifier

Идентификатор LOB.

path_name

Имя пути к файлу.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_lob_export()

<?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 "Размер документа: ".cubrid_lob_size($lobs[0])." байтов";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob_get() - Получает данные BLOB/CLOB
  • cubrid_lob_close() - Закрывает данные BLOB/CLOB
  • cubrid_lob_size() - Получает размер данных BLOB/CLOB
  • cubrid_lob_send() - Читает данные BLOB/CLOB и отправляет их прямо в браузер


Получает данные BLOB/CLOB

  • « cubrid_lob_export
  • cubrid_lob_send »
  • PHP Manual
  • Функции CUBRID
  • Получает данные BLOB/CLOB

cubrid_lob_get

(PECL CUBRID >= 8.3.1)

cubrid_lob_get — Получает данные BLOB/CLOB

Описание

cubrid_lob_get(resource $conn_identifier, string $sql): array

cubrid_lob_get() используется для получения метаинформации BLOB/CLOB из базы данных CUBRID, CUBRID получает BLOB/CLOB, выполняя оператор SQL, и возвращает все LOB в виде массива ресурсов. Необходимо убедиться, что SQL возвращает только один столбец, и его тип данных - BLOB или CLOB.

Не стоит забывать об использовании cubrid_lob_close() для освобождения LOB, если они больше не нужны.

Список параметров

conn_identifier

Идентификатор подключения.

sql

Выполняемый оператор SQL.

Возвращаемые значения

Возвращает массив LOB-ресурсов в случае успешного выполнения процесса или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_lob_get()

<?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 "Размер документа: ".cubrid_lob_size($lobs[0])." байтов";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob_close() - Закрывает данные BLOB/CLOB
  • cubrid_lob_size() - Получает размер данных BLOB/CLOB
  • cubrid_lob_export() - Экспортирует данные BLOB/CLOB в файл
  • cubrid_lob_send() - Читает данные BLOB/CLOB и отправляет их прямо в браузер


Читает данные BLOB/CLOB и отправляет их прямо в браузер

  • « cubrid_lob_get
  • cubrid_lob_size »
  • PHP Manual
  • Функции CUBRID
  • Читает данные BLOB/CLOB и отправляет их прямо в браузер

cubrid_lob_send

(PECL CUBRID >= 8.3.1)

cubrid_lob_send — Читает данные BLOB/CLOB и отправляет их прямо в браузер

Описание

cubrid_lob_send(resource $conn_identifier, resource $lob_identifier): bool

cubrid_lob_send() считывает данные BLOB/CLOB и передаёт их прямо в браузер. Чтобы использовать данную функцию, необходимо сначала использовать cubrid_lob_get(), чтобы получить информацию BLOB/CLOB из CUBRID.

Список параметров

conn_identifier

Идентификатор подключения.

lob_identifier

Идентификатор LOB.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_lob_send()

<?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() - Получает данные BLOB/CLOB
  • cubrid_lob_close() - Закрывает данные BLOB/CLOB
  • cubrid_lob_size() - Получает размер данных BLOB/CLOB
  • cubrid_lob_export() - Экспортирует данные BLOB/CLOB в файл


Получает размер данных BLOB/CLOB

  • « cubrid_lob_send
  • cubrid_lob2_bind »
  • PHP Manual
  • Функции CUBRID
  • Получает размер данных BLOB/CLOB

cubrid_lob_size

(PECL CUBRID >= 8.3.1)

cubrid_lob_size — Получает размер данных BLOB/CLOB

Описание

cubrid_lob_size(resource $lob_identifier): string

cubrid_lob_size() используется для получения размера данных BLOB/CLOB.

Список параметров

lob_identifier

Идентификатор LOB.

Возвращаемые значения

Строка, представляющая размер LOB-данных в случае успешного выполнения процесса, или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.4.0 | Тип возвращаемого значения изменён с int на string.

Примеры

Пример #1 Пример использования cubrid_lob_size()

<?php
$lobs = cubrid_lob_get($con, "SELECT doc_content FROM doc WHERE doc_id=5");
echo "Размер документа:".cubrid_lob_size($lobs[0]);
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
?>

Смотрите также

  • cubrid_lob_get() - Получает данные BLOB/CLOB
  • cubrid_lob_close() - Закрывает данные BLOB/CLOB
  • cubrid_lob_export() - Экспортирует данные BLOB/CLOB в файл
  • cubrid_lob_send() - Читает данные BLOB/CLOB и отправляет их прямо в браузер


Связывает объект LOB или строку в виде объекта LOB с подготовленным оператором в качестве параметров

  • « cubrid_lob_size
  • cubrid_lob2_close »
  • PHP Manual
  • Функции CUBRID
  • Связывает объект LOB или строку в виде объекта LOB с подготовленным оператором в качестве параметров

cubrid_lob2_bind

(PECL CUBRID >= 8.4.1)

cubrid_lob2_bind — Связывает объект LOB или строку в виде объекта LOB с подготовленным оператором в качестве параметров

Описание

cubrid_lob2_bind(
resource $req_identifier,
int $bind_index,
mixed $bind_value,
string $bind_value_type = ?
): bool

Функция cubrid_lob2_bind() используется для привязки данных BLOB/CLOB к соответствующей псевдопеременной в операторе SQL, который был передан в cubrid_prepare(). Если параметр bind_value_type не указан, по умолчанию будет использоваться строка "BLOB". Но если ранее использовалась функция cubrid_lob2_new(), bind_value_type будет соответствовать параметру type в cubrid_lob2_new() по умолчанию.

Список параметров

req_identifier

Идентификатор запроса, полученный в результате работы cubrid_prepare().

bind_index

Расположение параметров привязки. Начинается с 1.

bind_value

Фактическое значение для привязки.

bind_value_type

Значение должно быть равно "BLOB" или "CLOB", регистр не учитывается. Если значение не указано, по умолчанию используется "BLOB".

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_lob2_bind()

<?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 (?, ?)");

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() - Создаёт объект LOB
  • cubrid_lob2_close() - Закрывает объект LOB


Закрывает объект LOB

  • « cubrid_lob2_bind
  • cubrid_lob2_export »
  • PHP Manual
  • Функции CUBRID
  • Закрывает объект LOB

cubrid_lob2_close

(PECL CUBRID >= 8.4.1)

cubrid_lob2_close — Закрывает объект LOB

Описание

cubrid_lob2_close(resource $lob_identifier): bool

Функция cubrid_lob2_close() используется для закрытия объекта LOB, возвращённого функцией cubrid_lob2_new() или полученного из результирующего набора.

Список параметров

lob_identifier

Идентификатор LOB, возвращённый функцией cubrid_lob2_new() или полученный из результирующего набора.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • cubrid_lob2_new() - Создаёт объект LOB


Экспортирует LOB-объект в файл

  • « cubrid_lob2_close
  • cubrid_lob2_import »
  • PHP Manual
  • Функции CUBRID
  • Экспортирует LOB-объект в файл

cubrid_lob2_export

(PECL CUBRID >= 8.4.1)

cubrid_lob2_export — Экспортирует LOB-объект в файл

Описание

cubrid_lob2_export(resource $lob_identifier, string $file_name): bool

Функция cubrid_lob2_export() используется для сохранения содержимого данных BLOB/CLOB в файл. Чтобы использовать эту функцию, необходимо использовать cubrid_lob2_new() или сначала получить LOB-объект из базы данных CUBRID. Если файл уже существует, операция завершится ошибкой. Функция не будет влиять на положение курсора LOB-объекта. Она управляет всем LOB-объектом.

Список параметров

lob_identifier

Идентификатор LOB, полученный в результате cubrid_lob2_new() или полученный из набора результатов.

filename

Имя файла, в который вы хотите импортировать данные BLOB/CLOB. Также поддерживается путь к файлу.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_lob2_export()

<?php
// Таблица: 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() - Создаёт объект LOB
  • cubrid_lob2_close() - Закрывает объект LOB
  • cubrid_lob2_import() - Импортирует данные BLOB/CLOB из файла
  • cubrid_lob2_bind() - Связывает объект LOB или строку в виде объекта LOB с подготовленным оператором в качестве параметров


Импортирует данные BLOB/CLOB из файла

  • « cubrid_lob2_export
  • cubrid_lob2_new »
  • PHP Manual
  • Функции CUBRID
  • Импортирует данные BLOB/CLOB из файла

cubrid_lob2_import

(PECL CUBRID >= 8.4.1)

cubrid_lob2_import — Импортирует данные BLOB/CLOB из файла

Описание

cubrid_lob2_import(resource $lob_identifier, string $file_name): bool

Функция cubrid_lob2_import() используется для сохранения содержимого данных BLOB/CLOB из файла. Чтобы использовать эту функцию, необходимо использовать cubrid_lob2_new() или сначала получить LOB-объект из базы данных CUBRID. Если файл уже существует, операция завершится ошибкой. Функция не будет влиять на положение курсора LOB-объекта. Она управляет всем LOB-объектом.

Список параметров

lob_identifier

Идентификатор LOB, полученный в результате cubrid_lob2_new() или полученный из набора результатов.

filename

Имя файла, в который вы хотите импортировать данные BLOB/CLOB. Также поддерживается путь к файлу.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_lob2_export()

<?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'); // или cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_lob2_close($lob);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_new() - Создаёт объект LOB
  • cubrid_lob2_close() - Закрывает объект LOB
  • cubrid_lob2_export() - Экспортирует LOB-объект в файл
  • cubrid_lob2_bind() - Связывает объект LOB или строку в виде объекта LOB с подготовленным оператором в качестве параметров


Создаёт объект LOB

  • « cubrid_lob2_import
  • cubrid_lob2_read »
  • PHP Manual
  • Функции CUBRID
  • Создаёт объект LOB

cubrid_lob2_new

(PECL CUBRID >= 8.4.1)

cubrid_lob2_new — Создаёт объект LOB

Описание

cubrid_lob2_new(resource $conn_identifier = ?, string $type = "BLOB"): resource

Функция cubrid_lob2_new() используется для создания объекта LOB (как BLOB, так и CLOB). Её следует использовать перед привязкой объекта LOB.

Список параметров

conn_identifier

Идентификатор подключения. Если идентификатор соединения не указан, предполагается последнее подключение, открытое с помощью cubrid_connect() или cubrid_connect_with_url().

type

Значение должно быть равно "BLOB" или "CLOB", регистр не учитывается. По умолчанию используется значение "BLOB".

Возвращаемые значения

Идентификатор LOB в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • cubrid_lob2_close() - Закрывает объект LOB


Производит чтение из данных BLOB/CLOB

  • « cubrid_lob2_new
  • cubrid_lob2_seek64 »
  • PHP Manual
  • Функции CUBRID
  • Производит чтение из данных BLOB/CLOB

cubrid_lob2_read

(PECL CUBRID >= 8.4.1)

cubrid_lob2_read — Производит чтение из данных BLOB/CLOB

Описание

cubrid_lob2_read(resource $lob_identifier, int $len): string

Функция cubrid_lob2_read() считывает len байтов из данных LOB и возвращает прочитанные байты.

Список параметров

lob_identifier

Идентификатор LOB, возвращённый функцией cubrid_lob2_new() или полученный из результирующего набора.

len

Длина из буфера, используемая для чтения из данных LOB.

Возвращаемые значения

Возвращает содержимое в виде строки, false, если данных больше нет, или null в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_lob2_read() 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 "текущая позиция - " . cubrid_lob2_tell($row[1]) . "\n";

cubrid_lob2_seek($row[1], 10, CUBRID_CURSOR_FIRST);

print "\nпозиция после движения вперед - " . cubrid_lob2_tell($row[1]) . "\n";

$data = cubrid_lob2_read($row[1], 12);

print "\nпозиция после чтения - " . cubrid_lob2_tell($row[1]) . "\n";

print $data . "\n";

cubrid_lob2_seek($row[1], 5, CUBRID_CURSOR_CURRENT);

print "\nпозиция после повторного движения вперед - " . cubrid_lob2_tell($row[1]) . "\n";

$data = cubrid_lob2_read($row[1], 20);
print $data . "\n";

cubrid_disconnect($conn);
?>

Пример #2 Пример использования cubrid_lob2_read() 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 "Данных больше нет\n";
break;
}
else {
print "Произошла ошибка\n";
break;
}
}

cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_write() - Записывает в LOB-объект
  • cubrid_lob2_seek() - Перемещает курсор LOB-объекта
  • cubrid_lob2_seek64() - Перемещает курсор LOB-объекта
  • cubrid_lob2_tell() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_tell64() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_size() - Получает размер LOB-объекта
  • cubrid_lob2_size64() - Получает размер LOB-объекта


Перемещает курсор LOB-объекта

  • « cubrid_lob2_read
  • cubrid_lob2_seek »
  • PHP Manual
  • Функции CUBRID
  • Перемещает курсор LOB-объекта

cubrid_lob2_seek64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_seek64 — Перемещает курсор LOB-объекта

Описание

cubrid_lob2_seek64(resource $lob_identifier, string $offset, int $origin = CUBRID_CURSOR_CURRENT): bool

Функция cubrid_lob2_seek64() используется для перемещения позиции курсора LOB-объекта на значение, заданное в параметре offset, в направлении, заданном в параметре origin. Если значение параметра offset больше, чем можно сохранить целочисленные данные, вы можете использовать эту функцию.

Чтобы установить параметр origin, вы можете использовать CUBRID_CURSOR_FIRST, чтобы установить позицию курсора, перемещающегося вперёд на offset единиц от начала LOB-объекта. В этом случае параметр offset должен быть положительным значением.

Если вы используете CUBRID_CURSOR_CURRENT для origin, вы можете двигаться вперёд или назад, offset может быть положительным или отрицательным.

Если вы используете CUBRID_CURSOR_LAST для origin, вы можете перемещать назад на единицу offset с конца LOB-объекта. В этом случае параметр offset должен быть положительным значением.

Замечание:

Если вы используете эту функцию для перемещения позиции курсора LOB-объекта, вы должны передать offset в качестве строки.

Список параметров

lob_identifier

Идентификатор LOB в результате работы функции cubrid_lob2_new() или полученный из набора результатов.

offset

Количество единиц, на которое нужно переместить курсор.

origin

Параметр может иметь следующие значения:

CUBRID_CURSOR_FIRST: двигаться вперёд от начала LOB-объекта.

CUBRID_CURSOR_CURRENT: двигаться вперёд или назад от текущей позиции.

CUBRID_CURSOR_LAST: двигаться назад с конца LOB-объекта.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования: cubrid_lob2_seek64()

<?php
// test_lob (id INT, contents CLOB)
// Длина данных doc_1.txt должна быть больше 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'); // или 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() - Производит чтение из данных BLOB/CLOB
  • cubrid_lob2_write() - Записывает в LOB-объект
  • cubrid_lob2_seek() - Перемещает курсор LOB-объекта
  • cubrid_lob2_tell() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_tell64() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_size() - Получает размер LOB-объекта
  • cubrid_lob2_size64() - Получает размер LOB-объекта


Перемещает курсор LOB-объекта

  • « cubrid_lob2_seek64
  • cubrid_lob2_size64 »
  • PHP Manual
  • Функции CUBRID
  • Перемещает курсор LOB-объекта

cubrid_lob2_seek

(PECL CUBRID >= 8.4.1)

cubrid_lob2_seek — Перемещает курсор LOB-объекта

Описание

cubrid_lob2_seek(resource $lob_identifier, int $offset, int $origin = CUBRID_CURSOR_CURRENT): bool

Функция cubrid_lob2_seek() используется для перемещения позиции курсора LOB-объекта на значение, заданное в параметре offset, в направлении, заданном в параметре origin.

Чтобы установить параметр origin, вы можете использовать CUBRID_CURSOR_FIRST, чтобы установить позицию курсора, перемещающегося вперёд на offset единиц от начала LOB-объекта. В этом случае параметр offset должен быть положительным значением.

Если вы используете CUBRID_CURSOR_CURRENT для origin, вы можете двигаться вперёд или назад, offset может быть положительным или отрицательным.

Если вы используете CUBRID_CURSOR_LAST для origin, вы можете перемещать назад на единицу offset с конца LOB-объекта. В этом случае параметр offset должен быть положительным значением.

Список параметров

lob_identifier

Идентификатор LOB в результате работы функции cubrid_lob2_new() или полученный из набора результатов.

offset

Количество единиц, на которое нужно переместить курсор.

origin

Параметр может иметь следующие значения:

CUBRID_CURSOR_FIRST: двигаться вперёд от начала LOB-объекта.

CUBRID_CURSOR_CURRENT: двигаться вперёд или назад от текущей позиции.

CUBRID_CURSOR_LAST: двигаться назад с конца LOB-объекта.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_lob2_seek()

<?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() - Производит чтение из данных BLOB/CLOB
  • cubrid_lob2_write() - Записывает в LOB-объект
  • cubrid_lob2_seek64() - Перемещает курсор LOB-объекта
  • cubrid_lob2_tell() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_tell64() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_size() - Получает размер LOB-объекта
  • cubrid_lob2_size64() - Получает размер LOB-объекта


Получает размер LOB-объекта

  • « cubrid_lob2_seek
  • cubrid_lob2_size »
  • PHP Manual
  • Функции CUBRID
  • Получает размер LOB-объекта

cubrid_lob2_size64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_size64 — Получает размер LOB-объекта

Описание

cubrid_lob2_size64(resource $lob_identifier): string

Функция cubrid_lob2_size64() используется для получения размера LOB-объекта. Если размер LOB-объекта больше, чем могут быть сохранены целочисленные данные, вы можете использовать эту функцию и она вернёт размер в виде строки.

Список параметров

lob_identifier

Идентификатор LOB в результате работы функции cubrid_lob2_new() или полученный из набора результатов.

Возвращаемые значения

Возвращает размер LOB-объекта в виде строки в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • cubrid_lob2_read() - Производит чтение из данных BLOB/CLOB
  • cubrid_lob2_write() - Записывает в LOB-объект
  • cubrid_lob2_seek() - Перемещает курсор LOB-объекта
  • cubrid_lob2_seek64() - Перемещает курсор LOB-объекта
  • cubrid_lob2_tell() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_tell64() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_size() - Получает размер LOB-объекта


Получает размер LOB-объекта

  • « cubrid_lob2_size64
  • cubrid_lob2_tell64 »
  • PHP Manual
  • Функции CUBRID
  • Получает размер LOB-объекта

cubrid_lob2_size

(PECL CUBRID >= 8.4.1)

cubrid_lob2_size — Получает размер LOB-объекта

Описание

cubrid_lob2_size(resource $lob_identifier): int

Функция cubrid_lob2_size() используется для получения размера LOB-объекта.

Список параметров

lob_identifier

Идентификатор LOB в результате работы функции cubrid_lob2_new() или полученный из набора результатов.

Возвращаемые значения

Возвращает размер LOB-объекта в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • cubrid_lob2_read() - Производит чтение из данных BLOB/CLOB
  • cubrid_lob2_write() - Записывает в LOB-объект
  • cubrid_lob2_seek() - Перемещает курсор LOB-объекта
  • cubrid_lob2_seek64() - Перемещает курсор LOB-объекта
  • cubrid_lob2_tell() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_tell64() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_size64() - Получает размер LOB-объекта


Сообщает положение курсора LOB-объекта

  • « cubrid_lob2_size
  • cubrid_lob2_tell »
  • PHP Manual
  • Функции CUBRID
  • Сообщает положение курсора LOB-объекта

cubrid_lob2_tell64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_tell64 — Сообщает положение курсора LOB-объекта

Описание

cubrid_lob2_tell64(resource $lob_identifier): string

Функция cubrid_lob2_tell64() используется для определения положения курсора LOB-объекта. Если размер LOB-объекта больше, чем могут быть сохранены целочисленные данные, вы можете использовать эту функцию и она вернёт информацию о позиции в виде строки.

Список параметров

lob_identifier

Идентификатор Lob в результате cubrid_lob2_new() или полученный из набора результатов.

Возвращаемые значения

Возвращает позицию курсора LOB-объекта в виде строки в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • cubrid_lob2_read() - Производит чтение из данных BLOB/CLOB
  • cubrid_lob2_write() - Записывает в LOB-объект
  • cubrid_lob2_seek() - Перемещает курсор LOB-объекта
  • cubrid_lob2_seek64() - Перемещает курсор LOB-объекта
  • cubrid_lob2_tell() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_size() - Получает размер LOB-объекта
  • cubrid_lob2_size64() - Получает размер LOB-объекта


Сообщает положение курсора LOB-объекта

  • « cubrid_lob2_tell64
  • cubrid_lob2_write »
  • PHP Manual
  • Функции CUBRID
  • Сообщает положение курсора LOB-объекта

cubrid_lob2_tell

(PECL CUBRID >= 8.4.1)

cubrid_lob2_tell — Сообщает положение курсора LOB-объекта

Описание

cubrid_lob2_tell(resource $lob_identifier): int

Функция cubrid_lob2_tell() используется для определения положения курсора LOB-объекта.

Список параметров

lob_identifier

Идентификатор Lob в результате cubrid_lob2_new() или полученный из набора результатов.

Возвращаемые значения

Возвращает позицию курсора LOB-объекта, когда он будет успешно обработан или false в случае возникновения ошибки.

Смотрите также

  • cubrid_lob2_read() - Производит чтение из данных BLOB/CLOB
  • cubrid_lob2_write() - Записывает в LOB-объект
  • cubrid_lob2_seek() - Перемещает курсор LOB-объекта
  • cubrid_lob2_seek64() - Перемещает курсор LOB-объекта
  • cubrid_lob2_tell64() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_size() - Получает размер LOB-объекта
  • cubrid_lob2_size64() - Получает размер LOB-объекта


Записывает в LOB-объект

  • « cubrid_lob2_tell
  • cubrid_lock_read »
  • PHP Manual
  • Функции CUBRID
  • Записывает в LOB-объект

cubrid_lob2_write

(PECL CUBRID >= 8.4.1)

cubrid_lob2_write — Записывает в LOB-объект

Описание

cubrid_lob2_write(resource $lob_identifier, string $buf): bool

Функция cubrid_lob2_write() считывает данные из buf и сохраняет их в LOB-объект. Обратите внимание, что функция может только добавлять символы.

Список параметров

lob_identifier

Идентификатор LOB, полученный в результате cubrid_lob2_new() или полученный из набора результатов.

buf

Данные, которые необходимо записать в LOB-объект.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_lob2_write()

<?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()

<?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\n";

cubrid_lob2_write($lob2, "Hello world");

$pos = cubrid_lob2_tell($lob2);
print "позиция после записи: $pos\n";

cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_read() - Производит чтение из данных BLOB/CLOB
  • cubrid_lob2_seek() - Перемещает курсор LOB-объекта
  • cubrid_lob2_seek64() - Перемещает курсор LOB-объекта
  • cubrid_lob2_tell() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_tell64() - Сообщает положение курсора LOB-объекта
  • cubrid_lob2_size() - Получает размер LOB-объекта
  • cubrid_lob2_size64() - Получает размер LOB-объекта


Устанавливает блокировку чтения для данного OID

  • « cubrid_lob2_write
  • cubrid_lock_write »
  • PHP Manual
  • Функции CUBRID
  • Устанавливает блокировку чтения для данного OID

cubrid_lock_read

(PECL CUBRID >= 8.3.0)

cubrid_lock_read — Устанавливает блокировку чтения для данного OID

Описание

cubrid_lock_read(resource $conn_identifier, string $oid): bool

Функция cubrid_lock_read() используется для установки блокировки чтения экземпляра, на который указывает данный oid.

Список параметров

conn_identifier

Идентификатор соединения.

oid

OID экземпляра, на который необходимо установить блокировку чтения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_lock_read()

<?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() - Устанавливает блокировку записи для данного OID


Устанавливает блокировку записи для данного OID

  • « cubrid_lock_read
  • cubrid_move_cursor »
  • PHP Manual
  • Функции CUBRID
  • Устанавливает блокировку записи для данного OID

cubrid_lock_write

(PECL CUBRID >= 8.3.0)

cubrid_lock_write — Устанавливает блокировку записи для данного OID

Описание

cubrid_lock_write(resource $conn_identifier, string $oid): bool

Функция cubrid_lock_write() используется для установки блокировки записи экземпляра, на который указывает данный oid.

Список параметров

conn_identifier

Идентификатор соединения.

oid

OID экземпляра, на который необходимо установить блокировку записи.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_lock_write()

<?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() - Устанавливает блокировку чтения для данного OID


Перемещает курсор в результате

  • « cubrid_lock_write
  • cubrid_next_result »
  • PHP Manual
  • Функции CUBRID
  • Перемещает курсор в результате

cubrid_move_cursor

(PECL CUBRID >= 8.3.0)

cubrid_move_cursor — Перемещает курсор в результате

Описание

cubrid_move_cursor(resource $req_identifier, int $offset, int $origin = CUBRID_CURSOR_CURRENT): bool

Функция cubrid_move_cursor() используется для перемещения текущего положения курсора req_identifier на значение, заданное в аргументе offset, в направлении, заданном в аргументе origin. Чтобы установить аргумент origin, вы можете использовать CUBRID_CURSOR_FIRST для первой части результата, CUBRID_CURSOR_CURRENT для текущего местоположения результата или CUBRID_CURSOR_LAST для последней части результата. Если аргумент origin не указан явно, тогда функция использует CUBRID_CURSOR_CURRENT в качестве значения по умолчанию.

Если значение диапазона перемещения курсора превышает допустимый предел, то курсор перемещается в следующее место после допустимого диапазона для курсора. Например, если вы переместите 20 единиц в результате с размером 10, то курсор переместится на 11-е место и вернёт CUBRID_NO_MORE_DATA.

Список параметров

req_identifier

Идентификатор запроса.

offset

Количество единиц, на которые нужно переместить курсор.

origin

Место, из которого вы хотите переместить курсор: CUBRID_CURSOR_FIRST, CUBRID_CURSOR_CURRENT или CUBRID_CURSOR_LAST.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_move_cursor()

<?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() - Выполняет подготовленный SQL-оператор


Получает результат следующего запроса при выполнении нескольких SQL-операторов

  • « cubrid_move_cursor
  • cubrid_num_cols »
  • PHP Manual
  • Функции CUBRID
  • Получает результат следующего запроса при выполнении нескольких SQL-операторов

cubrid_next_result

(PECL CUBRID >= 8.4.0)

cubrid_next_result — Получает результат следующего запроса при выполнении нескольких SQL-операторов

Описание

cubrid_next_result(resource $result): bool

Функция cubrid_next_result() используется для получения результатов следующего запроса, если выполняется несколько SQL-операторов и для cubrid_execute() установлен флаг CUBRID_EXEC_QUERY_ALL.

Список параметров

result

result из вызова функции cubrid_execute().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_next_result()

<?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_num);
printf("%-30s %d\n", "Количество столбцов:", $col_num);
printf("\n");

printf("%-30s %-30s %-15s\n", "Названия столбцов", "Типы столбцов", "Длина столбцов");
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", "Название последнего столбца:", $column_last_name);
printf("%-30s %s\n", "Таблица последнего столбца:", $column_last_table);
printf("%-30s %s\n", "Тип последнего столбца:", $column_last_type);
printf("%-30s %d\n", "Длина последнего столбца:", $column_last_len);
printf("%-30s %s\n", "Флаги второго столбца:", $column_1_flags);

printf("\n\n");
}
?>

Результат выполнения данного примера:

------------ get_result_info --------------------
Row count:                     6
Column count:                  2

Названия столбцов                 Типы столбцов                   Длина столбцов
------------------------------------------------------------------------------
s_name                         char                           1
f_name                         varchar                        6

Название последнего столбца:          f_name
Таблица последнего столбца:           code
Тип последнего столбца:              varchar
Длина последнего столбца:            6
Флаги второго столбца:

------------ get_result_info --------------------
Количество строк:                    4
Количество столбцов:                  5

Названия столбцов                 Типы столбцов                   Длина столбцов
------------------------------------------------------------------------------
event_code                     integer                        11
athlete                        varchar                        40
host_year                      integer                        11
score                          varchar                        10
unit                           varchar                        5

Название последнего столбца:      unit
Таблица последнего столбца:       history
Тип последнего столбца:          varchar
Длина последнего столбца:        5
Флаги второго столбца:          not_null primary_key unique_key

Смотрите также

  • cubrid_execute() - Выполняет подготовленный SQL-оператор


Возвращает количество столбцов в наборе результатов

  • « cubrid_next_result
  • cubrid_num_rows »
  • PHP Manual
  • Функции CUBRID
  • Возвращает количество столбцов в наборе результатов

cubrid_num_cols

(PECL CUBRID >= 8.3.0)

cubrid_num_cols — Возвращает количество столбцов в наборе результатов

Описание

cubrid_num_cols(resource $result): int

Функция cubrid_num_cols() используется для получения количества столбцов из результата запроса. Её можно использовать только в том случае, если выполняемый запрос является оператором SELECT.

Список параметров

result

Результат.

Возвращаемые значения

Количество столбцов в случае успешного выполнения.

false, если SQL-выражение не является SELECT.

Примеры

Пример #1 Пример использования cubrid_num_cols()

<?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("Количество строк: %d\nКоличество столбцов: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Количество строк: 6
Количество столбцов: 2

Смотрите также

  • cubrid_execute() - Выполняет подготовленный SQL-оператор
  • cubrid_num_rows() - Получить количество строк в наборе результатов


Получить количество строк в наборе результатов

  • « cubrid_num_cols
  • cubrid_pconnect_with_url »
  • PHP Manual
  • Функции CUBRID
  • Получить количество строк в наборе результатов

cubrid_num_rows

(PECL CUBRID >= 8.3.0)

cubrid_num_rows — Получить количество строк в наборе результатов

Описание

cubrid_num_rows(resource $result): int

Функция cubrid_num_rows() используется для получения количества строк результата запроса. Может использоваться для операторов SELECT. Для запросов INSERT, UPDATE или DELETE, используйте функцию cubrid_affected_rows().

Примечание: Функцию cubrid_num_rows() можно использовать только для синхронного запроса; функция возвращает 0, если используется для асинхронного запроса.

Список параметров

result

result из вызова функций cubrid_execute(), cubrid_query() и cubrid_prepare()

Возвращаемые значения

Количество строк в случае успешного выполнения процесса.

0, если запрос был выполнен в асинхронном режиме.

-1, если SQL-оператор не является SELECT.

false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_num_rows()

<?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("Количество строк: %d\nКоличество столбцов: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Количество строк: 6
Количество столбцов: 2

Смотрите также

  • cubrid_execute() - Выполняет подготовленный SQL-оператор
  • cubrid_num_cols() - Возвращает количество столбцов в наборе результатов
  • cubrid_affected_rows() - Количество строк, затронутых последним SQL-запросом


Открывает постоянное соединение с сервером CUBRID

  • « cubrid_num_rows
  • cubrid_pconnect »
  • PHP Manual
  • Функции CUBRID
  • Открывает постоянное соединение с сервером CUBRID

cubrid_pconnect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_pconnect_with_url — Открывает постоянное соединение с сервером CUBRID

Описание

cubrid_pconnect_with_url(string $conn_url, string $userid = ?, string $passwd = ?): resource

Устанавливает постоянное соединение с сервером CUBRID.

cubrid_pconnect_with_url() действует очень похоже на cubrid_connect_with_url() с двумя основными отличиями:

Во-первых, при подключении функция сначала попытается найти (постоянную) ссылку, которая уже открыта с тем же хостом, портом, именем базы данных и идентификатором пользователя. Если соединение будет найдено, вместо открытия нового будет возвращён его идентификатор.

Во-вторых, соединение с SQL-сервером не будет закрыто по окончании выполнения скрипта. Вместо этого ссылка останется открытой для использования в будущем (cubrid_close() или cubrid_disconnect() не закроет ссылки, установленные cubrid_pconnect_with_url()).

Поэтому этот тип ссылки называется "постоянным".

<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_pconnect_with_url ($url, "dba", "12?");

Если логин или пароль пусты, необходимо всё равно сохранять символы ":":

$url = "CUBRID:localhost:33000:demodb:::";

Список параметров

conn_url

Строка, содержащая информацию для соединения.

userid

Имя пользователя базы данных.

passwd

Пароль пользователя.

Возвращаемые значения

Идентификатор соединения в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_pconnect_with_url() без задания свойств

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::";
$con = cubrid_pconnect_with_url ($conn_url);

if ($con) {
echo "соединение успешно выполнено";
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 "соединение успешно выполнено";
$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() - Открывает постоянное соединение с сервером CUBRID
  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_close() - Закрывает соединение с базой данных


Открывает постоянное соединение с сервером CUBRID

  • « cubrid_pconnect_with_url
  • cubrid_prepare »
  • PHP Manual
  • Функции CUBRID
  • Открывает постоянное соединение с сервером CUBRID

cubrid_pconnect

(PECL CUBRID >= 8.3.1)

cubrid_pconnect — Открывает постоянное соединение с сервером CUBRID

Описание

cubrid_pconnect(
string $host,
int $port,
string $dbname,
string $userid = ?,
string $passwd = ?
): resource

Устанавливает постоянное соединение с сервером CUBRID.

cubrid_pconnect() действует очень похоже на cubrid_connect() с двумя основными отличиями:

Во-первых, при подключении функция сначала попытается найти (постоянную) ссылку, которая уже открыта с тем же хостом, портом, именем базы данных и идентификатором пользователя. Если соединение будет найдено, вместо открытия нового будет возвращён его идентификатор.

Во-вторых, соединение с SQL-сервером не будет закрыто по окончании выполнения скрипта. Вместо этого ссылка останется открытой для использования в будущем (cubrid_close() или cubrid_disconnect() не закроет ссылки, установленные cubrid_pconnect()).

Поэтому этот тип ссылки называется "постоянным".

Список параметров

host

Имя хоста или IP-адрес сервера CUBRID CAS.

port

Номер порта CUBRID CAS-сервера (BROKER_PORT настроенный в $CUBRID/conf/cubrid_broker.conf).

dbname

Имя базы данных.

userid

Имя пользователя базы данных.

passwd

Пароль пользователя.

Возвращаемые значения

Идентификатор соединения в случае успешного выполнения процесса или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_connect()

<?php
printf("%-30s %s\n", "Версия PHP CUBRID:", cubrid_version());

printf("\n");

$conn = cubrid_pconnect("localhost", 33000, "demodb", "dba");

if (!$conn) {
die('Ошибка соединения ('. 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);
printf("%-30s %s\n", "Информация о клиенте:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "Кодировка CUBRID:", $charset);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Версия PHP CUBRID:             9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Информация о сервере:             9.1.0.0212
Информация о клиенте:             9.1.0

Кодировка CUBRID:                iso8859-1

Смотрите также

  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_connect_with_url() - Создаёт окружение для соединения с сервером CUBRID
  • cubrid_pconnect_with_url() - Открывает постоянное соединение с сервером CUBRID
  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_close() - Закрывает соединение с базой данных


Подготавливает SQL-выражение к выполнению

  • « cubrid_pconnect
  • cubrid_put »
  • PHP Manual
  • Функции CUBRID
  • Подготавливает SQL-выражение к выполнению

cubrid_prepare

(PECL CUBRID >= 8.3.0)

cubrid_prepare — Подготавливает SQL-выражение к выполнению

Описание

cubrid_prepare(resource $conn_identifier, string $prepare_stmt, int $option = 0): resource

Функция cubrid_prepare() - это своего рода API, который представляет выражения SQL, скомпилированные ранее для данного дескриптора соединения. Этот предварительно скомпилированное SQL-выражение будет включено в функцию cubrid_prepare().

Соответственно, вы можете эффективно использовать этот оператор для многократного выполнения или для обработки больших данных. Можно использовать только один оператор, а в параметре можно указать вопросительный знак (?) в соответствующую область SQL-выражения. Добавьте параметр при привязке значения в VALUES выражения INSERT или в выражении WHERE. Обратите внимание, что можно привязать значение к вопросительному знаку (?) только с помощью функции cubrid_bind().

Список параметров

conn_identifier

Идентификатор соединения.

prepare_stmt

Подготовленный запрос.

option

Опция возврата OID CUBRID_INCLUDE_OID.

Возвращаемые значения

Идентификатор запроса в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_prepare()

<?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("%d соревнований пройдут на олимпиаде 2004, но не в 2000. Например:\n\n", $row_num);

printf("%-15s %s\n", "Код соревнования", "Название");
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);
?>

Результат выполнения данного примера:

27 соревнований пройдут на олимпиаде 2004, но не в 2000. Например:

Код соревнования   Название
----------------------------
20063           +91kg
20070           64kg

Смотрите также

  • cubrid_execute() - Выполняет подготовленный SQL-оператор
  • cubrid_bind() - Связывает переменные с подготовленным запросом


Обновляет столбец с использованием OID

  • « cubrid_prepare
  • cubrid_rollback »
  • PHP Manual
  • Функции CUBRID
  • Обновляет столбец с использованием OID

cubrid_put

(PECL CUBRID >= 8.3.0)

cubrid_put — Обновляет столбец с использованием OID

Описание

cubrid_put(
resource $conn_identifier,
string $oid,
string $attr = ?,
mixed $value
): bool

Функция cubrid_put() используется для обновления атрибута экземпляра данного oid.

Вы можете обновить один атрибут, используя строковый тип данных для установки attr. В таком случае вы можете использовать данные целого числа, числа с плавающей запятой или числа строкового типа в качестве аргумента value. Чтобы обновить несколько атрибутов, вы можете пропустить аргумент attr и установить аргумент value в виде ассоциативного массива.

Список параметров

conn_identifier

Идентификатор соединения

oid

OID экземпляра, который необходимо обновить

attr

Имя атрибута, который необходимо обновить

value

Новое значение, которое необходимо присвоить атрибуту

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_put()

<?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() - Получает столбец, используя OID
  • cubrid_set_add() - Вставляет один элемент для установки столбца типа с помощью OID
  • cubrid_set_drop() - Удаляет элемент из столбца заданного типа, используя OID
  • cubrid_seq_insert() - Вставляет элемент в столбец типа последовательности, используя OID
  • cubrid_seq_drop() - Удаляет элемент из столбца типа последовательности, используя OID
  • cubrid_seq_put() - Обновляет значение элемента столбца типа последовательности, используя OID


Откат транзакции

  • « cubrid_put
  • cubrid_schema »
  • PHP Manual
  • Функции CUBRID
  • Откат транзакции

cubrid_rollback

(PECL CUBRID >= 8.3.0)

cubrid_rollback — Откат транзакции

Описание

cubrid_rollback(resource $conn_identifier): bool

Функция cubrid_rollback() выполняет откат транзакции, на которую указывает conn_identifier, которая в данный момент выполняется.

Соединение с сервером закрывается после вызова cubrid_rollback(). Однако дескриптор соединения всё ещё действителен.

Список параметров

conn_identifier

Connection identifier.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_rollback()

<?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("Ошибка объекта: %d\nКод ошибки: %d\nСообщение об ошибке: %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() - Закрывает соединение с базой данных


Получает запрошенную информацию о схеме

  • « cubrid_rollback
  • cubrid_seq_drop »
  • PHP Manual
  • Функции CUBRID
  • Получает запрошенную информацию о схеме

cubrid_schema

(PECL CUBRID >= 8.3.0)

cubrid_schema — Получает запрошенную информацию о схеме

Описание

cubrid_schema(
resource $conn_identifier,
int $schema_type,
string $class_name = ?,
string $attr_name = ?
): array

Функция cubrid_schema() используется для получения запрошенной информации о схеме из базы данных. Вы должны указать class_name, если вы хотите получить информацию об определённом классе, attr_name, если вы хотите получить информацию об определённом атрибуте (может использоваться только с CUBRID_SCH_ATTR_PRIVILEGE).

Результат функции cubrid_schema() возвращается в виде двумерного массива (столбец(ассоциативный массив) * строка(числовой массив)). В следующих таблицах показаны типы схем и структура столбцов результирующего массива, которые должны быть возвращены на основе типа схемы.

Состав результата каждого типа
Схема | Номер столбца | Имя столбца | Значение
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

Идентификатор соединения.

schema_type

Данные схемы, которые вы хотите узнать.

class_name

Класс, для которого вы хотите узнать схему.

attr_name

Атрибут, для которого вы хотите узнать схему.

Возвращаемые значения

Массив, содержащий информацию о схеме, в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.3.1 | Изменено возвращаемое значение: если процесс завершился с ошибкой, возвращается false, а не -1.

Примеры

Пример #1 Пример использования cubrid_schema()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

printf("\n--- Первичный ключ ---\n");
$pk = cubrid_schema($conn, CUBRID_SCH_PRIMARY_KEY, "game");
var_dump($pk);

printf("\n--- Внешние ключи ---\n");
$fk = cubrid_schema($conn, CUBRID_SCH_IMPORTED_KEYS, "game");
var_dump($fk);

printf("\n--- Атрибут столбца ---\n");
$attr = cubrid_schema($conn, CUBRID_SCH_ATTRIBUTE, "stadium", "area");
var_dump($attr);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

--- Первичный ключ ---
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"
  }
}

--- Внешние ключи ---
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"
  }
}

--- Атрибут столбца ---
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"
  }
}


Удаляет элемент из столбца типа последовательности, используя OID

  • « cubrid_schema
  • cubrid_seq_insert »
  • PHP Manual
  • Функции CUBRID
  • Удаляет элемент из столбца типа последовательности, используя OID

cubrid_seq_drop

(PECL CUBRID >= 8.3.0)

cubrid_seq_drop — Удаляет элемент из столбца типа последовательности, используя OID

Описание

cubrid_seq_drop(
resource $conn_identifier,
string $oid,
string $attr_name,
int $index
): bool

Функция cubrid_seq_drop() используется для удаления элемента, который вы запрашиваете из данного атрибута типа последовательности в базе данных.

Список параметров

conn_identifier

Идентификатор соединения.

oid

OID экземпляра, с которым вы хотите работать.

attr_name

Имя атрибута, из которого вы хотите удалить элемент.

index

Индекс элемента, который вы хотите удалить (начиная с 1).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_seq_drop()

<?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() - Вставляет элемент в столбец типа последовательности, используя OID
  • cubrid_seq_put() - Обновляет значение элемента столбца типа последовательности, используя OID


Вставляет элемент в столбец типа последовательности, используя OID

  • « cubrid_seq_drop
  • cubrid_seq_put »
  • PHP Manual
  • Функции CUBRID
  • Вставляет элемент в столбец типа последовательности, используя OID

cubrid_seq_insert

(PECL CUBRID >= 8.3.0)

cubrid_seq_insert — Вставляет элемент в столбец типа последовательности, используя OID

Описание

cubrid_seq_insert(
resource $conn_identifier,
string $oid,
string $attr_name,
int $index,
string $seq_element
): bool

Функция cubrid_col_insert() используется для вставки элемента в атрибут типа последовательности в запрошенном месте.

Список параметров

conn_identifier

Идентификатор соединения.

oid

OID экземпляра, с которым вы хотите работать.

attr_name

Имя атрибута, в который вы хотите вставить экземпляр.

index

Расположение элемента, в который вы хотите вставить элемент (начиная с 1).

seq_element

Содержимое элемента, который вы хотите вставить.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_seq_insert()

<?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() - Удаляет элемент из столбца типа последовательности, используя OID
  • cubrid_seq_put() - Обновляет значение элемента столбца типа последовательности, используя OID


Обновляет значение элемента столбца типа последовательности, используя OID

  • « cubrid_seq_insert
  • cubrid_set_add »
  • PHP Manual
  • Функции CUBRID
  • Обновляет значение элемента столбца типа последовательности, используя OID

cubrid_seq_put

(PECL CUBRID >= 8.3.0)

cubrid_seq_put — Обновляет значение элемента столбца типа последовательности, используя OID

Описание

cubrid_seq_put(
resource $conn_identifier,
string $oid,
string $attr_name,
int $index,
string $seq_element
): bool

Функция cubrid_seq_put() используется для обновления содержимого запрошенного элемента в атрибуте sequent type с использованием OID.

Список параметров

conn_identifier

Идентификатор соединения.

oid

OID экземпляра, с которым вы хотите работать.

attr_name

Имя атрибута, который вы хотите обновить элемент.

index

Индекс (начиная с 1) элемента, который вы хотите обновить.

seq_element

Новый контент, который вы хотите использовать для обновления.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_seq_put()

<?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() - Удаляет элемент из столбца типа последовательности, используя OID
  • cubrid_seq_insert() - Вставляет элемент в столбец типа последовательности, используя OID


Вставляет один элемент для установки столбца типа с помощью OID

  • « cubrid_seq_put
  • cubrid_set_autocommit »
  • PHP Manual
  • Функции CUBRID
  • Вставляет один элемент для установки столбца типа с помощью OID

cubrid_set_add

(PECL CUBRID >= 8.3.0)

cubrid_set_add — Вставляет один элемент для установки столбца типа с помощью OID

Описание

cubrid_set_add(
resource $conn_identifier,
string $oid,
string $attr_name,
string $set_element
): bool

Функция cubrid_set_add() используется для вставки одного элемента в заданный вами атрибут типа (set, multiset, sequence).

Список параметров

conn_identifier

Идентификатор соединения.

oid

OID экземпляра, с которым вы хотите работать.

attr_name

Имя атрибута, который вы хотите вставить элемент.

set_element

Содержимое элемента, который вы хотите вставить.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_set_add()

<?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() - Удаляет элемент из столбца типа последовательности, используя 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() - Подтверждение транзакции


Устанавливает параметры базы данных CUBRID

  • « cubrid_set_autocommit
  • cubrid_set_drop »
  • PHP Manual
  • Функции CUBRID
  • Устанавливает параметры базы данных CUBRID

cubrid_set_db_parameter

(PECL CUBRID >= 8.4.0)

cubrid_set_db_parameter — Устанавливает параметры базы данных CUBRID

Описание

cubrid_set_db_parameter(resource $conn_identifier, int $param_type, int $param_value): bool

Функция cubrid_set_db_parameter() используется для установки параметров базы данных CUBRID. Он может установить следующие параметры базы данных CUBRID:

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT

Замечание:

Режим автоматической фиксации может быть установлен с помощью cubrid_set_autocommit().

Список параметров

conn_identifier

CUBRID соединение. Если идентификатор соединения не указан, предполагается последняя ссылка, открываемая cubrid_connect().

param_type

Тип параметра базы данных.

param_value

Значение уровня изоляции (1-6) или значение времени ожидания блокировки (в секундах).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_get_db_parameter()

<?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() - Возвращает параметры базы данных CUBRID
  • cubrid_set_autocommit() - Устанавливает режим авто-коммита для соединения


Удаляет элемент из столбца заданного типа, используя OID

  • « cubrid_set_db_parameter
  • cubrid_set_query_timeout »
  • PHP Manual
  • Функции CUBRID
  • Удаляет элемент из столбца заданного типа, используя OID

cubrid_set_drop

(PECL CUBRID >= 8.3.0)

cubrid_set_drop — Удаляет элемент из столбца заданного типа, используя OID

Описание

cubrid_set_drop(
resource $conn_identifier,
string $oid,
string $attr_name,
string $set_element
): bool

Функция cubrid_set_drop() используется для удаления элемента, который вы запрашиваете из заданного атрибута типа набора (set, multiset) базы данных.

Список параметров

conn_identifier

Connection identifier.

oid

OID экземпляра, с которым вы хотите работать.

attr_name

Имя атрибута, из которого вы хотите удалить элемент.

set_element

Содержимое элемента, который вы хотите удалить.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования cubrid_set_drop()

<?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() - Вставляет один элемент для установки столбца типа с помощью OID


Устанавливает время ожидания выполнения запроса

  • « cubrid_set_drop
  • cubrid_version »
  • PHP Manual
  • Функции CUBRID
  • Устанавливает время ожидания выполнения запроса

cubrid_set_query_timeout

(PECL CUBRID >= 8.4.1)

cubrid_set_query_timeout — Устанавливает время ожидания выполнения запроса

Описание

cubrid_set_query_timeout(resource $req_identifier, int $timeout): bool

Функция cubrid_set_query_timeout() используется для установки времени ожидания выполнения запроса.

Список параметров

req_identifier

Request identifier.

timeout

Время ожидания, в миллисекундах.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • cubrid_get_query_timeout() - Получает значение времени ожидания запроса


Получить версию модуля 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(): 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() - Выполняет подготовленный SQL-оператор


Возвращает кодировку текущего соединения 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() - Выполняет подготовленный SQL-оператор
  • cubrid_fetch() - Выбирает следующую строку из набора результатов
  • 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() - Выполняет подготовленный SQL-оператор
  • cubrid_fetch() - Выбирает следующую строку из набора результатов
  • 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() - Выполняет подготовленный SQL-оператор
  • cubrid_fetch() - Выбирает следующую строку из набора результатов
  • 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() - Выполняет подготовленный SQL-оператор
  • cubrid_fetch() - Выбирает следующую строку из набора результатов
  • 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 в случае возникновения ошибки.

Примеры

Пример #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_unbuffered_query() имеют свою цену:
вы не сможете использовать cubrid_num_rows() и
cubrid_data_seek() для результирующего набора, возвращённого
cubrid_unbuffered_query().


Устаревшие псевдонимы и функции 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
  • dBase »
  • 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 и записывает их в файл


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.

База данных 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.
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 $database, array $data): bool

Добавляет данные в базу данных

Список параметров

database

Ресурс базы данных, возвращаемый функцией dbase_open() или dbase_create().

data

Индексированный массив с данными. Количество элементов должно быть равно числу полей в базе данных, в противном случае dbase_add_record() не удастся выполнить.

Замечание:

Если вы используете в качестве параметра запись, которую вернула функция dbase_get_record(), не забудьте сбросить ключ deleted. (прим пер. - unset(record['deleted']);

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр database теперь имеет тип 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 $database): bool

Закрывает указанный ресурс базы данных.

Список параметров

database

Ресурс базы данных, возвращаемый функцией dbase_open() или dbase_create().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр database теперь имеет тип 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 $path, array $fields, int $type = DBASE_TYPE_DBASE): resource

dbase_create() создаёт базу данных dBase с заданными свойствами. Если файл уже существует, то он не будет предварительно очищен. Для принудительной очистки используйте функцию dbase_pack().

Замечание:

На поведение этой функции влияет значение директивы open_basedir.

Список параметров

path

Путь к базе данных. Это может быть относительный или абсолютный путь к файлу, в котором 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 $database, int $number): bool

Помечает указанные записи для удаления из базы данных.

Замечание:

Для окончательного удаления записей из базы данных, необходимо вызвать dbase_pack().

Список параметров

database

Ресурс базы данных, возвращаемый функцией dbase_open() или dbase_create().

number

Целое число, в промежутке от 1 до количества записей в базе дынных (количество записей возвращает функция dbase_numrecords()).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр database теперь имеет тип 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 $database): array

Возвращает информацию о структуре полей (столбцов) данного ресурса базы данных.

Список параметров

database

Ресурс базы данных, полученный с помощью dbase_open() или dbase_create().

Возвращаемые значения

Индексированный массив значений для каждой колонки (поля). Индекс массива начинается с 0.

Каждый элемент массива содержит ассоциативный массив информации о столбцах БД следующего вида:

name
Наименование поля
type
Тип поля dBase в удобном для восприятия виде (date, boolean, и т.д.) Поддерживаемые типы файлов перечислены в вводной секции.
length
Максимально хранимое число байт данного поля (включая "precision" - прим. пер.)
precision
Количество цифр после запятой
format
Предложенный в printf() формат спецификации для данного типа
offset
Байт смещения, указывающий размещение поля от начала записи (строки).

Если информация в заголовке базы данных не может быть прочитана, возвращает false.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр database теперь имеет тип 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 $database, int $number): array

Получает запись из базы данных dBase в виде ассоциативного массива (вместе с именами соответствующих полей).

Список параметров

database

Ресурс базы данных, возвращаемый функцией dbase_open() или dbase_create().

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 | Параметр database теперь имеет тип 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 $database, int $number): array

Получает записи из базы данных, как из индексированного массива.

Список параметров

database

Ресурс базы данных, возвращаемый функцией dbase_open() или dbase_create().

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 | Параметр database теперь имеет тип 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 $database): int

Получает количество полей (колонок) в указанной базе данных.

Замечание:

Поле номеруются от 0 до dbase_numfields($db)-1, тогда как записи базы данных от 1 до dbase_numrecords($db).

Список параметров

database

Ресурс базы данных, возвращаемый функцией dbase_open() или dbase_create().

Возвращаемые значения

Количество полей в базе данных или false в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр database теперь имеет тип 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 $database): int

Получает количество записей (строк) в указанной базе данных.

Замечание:

Записи, помеченные как удалённые, также учитываются.

Замечание:

Записи базы данных нумеруются от 1 dbase_numrecords($db), тогда как поля от 0 до dbase_numfields($db)-1.

Список параметров

database

Ресурс базы данных, возвращаемый функцией dbase_open() или dbase_create().

Возвращаемые значения

Количество записей в базе данных, или false в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр database теперь имеет тип 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 $path, int $mode): resource|false

dbase_open() открывает базу данных dBase с заданным режимом доступа.

Замечание:

На поведение этой функции влияет значение директивы open_basedir.

Список параметров

path

Путь к базе данных. Это может быть относительный или абсолютный путь к файлу, в котором dBase будет хранить ваши данные.

mode

Целое число, которое соответствует аналогичному в системном вызове open() (Обычно 0 означает режим для чтения, 1 - режим для записи, и 2 - режим для чтения и записи).

Замечание:

Вы не можете открыть файл в dBase в режиме только для записи, потому что функция будет не в состоянии читать информацию из заголовка БД, и, таким образом, вы не можете использовать 1 в качестве значения mode.

С версии dbase 7.0.0 вы можете использовать DBASE_RDONLY и DBASE_RDWR, для задания режима открытия базы в mode.

Возвращаемые значения

Возвращает ресурс базы данных в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр database теперь имеет тип resource а не int.

Примеры

Пример #1 Открытие dBase файл базы данных

<?php

// открытие в режиме чтения
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
// чтение некотрых данных

dbase_close($db);
}

?>

Смотрите также

  • 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 $database): bool

Фиксирует удаление из базы данных, окончательно удаляет записи, которые были помечены на удаление с помощью dbase_delete_record(). Обратите внимание, что после выполнения этой операции файл будет усечён (в отличие от команды dBASE III's PACK)

Список параметров

database

Ресурс базы данных, возвращаемый функцией dbase_open() или dbase_create().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр database теперь имеет тип 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
  • Firebird/InterBase »
  • PHP Manual
  • dBase
  • Заменяет запись в базе данных

dbase_replace_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_replace_record — Заменяет запись в базе данных

Описание

dbase_replace_record(resource $database, array $data, int $number): bool

Заменяет данную запись в базе данных на заданные значения.

Список параметров

database

Ресурс базы данных, возвращаемый функцией dbase_open() или dbase_create().

data

Индексированный массив данных. Количество элементов должно быть равно количеству полей в базе данных, в противном случае вызов dbase_replace_record() не удастся.

Замечание:

Если вы используете в качестве параметра запись, которую вернула dbase_get_record(), не забудьте сбросить ключ с именем deleted.

number

Целое число, которое может быть в диапазоне от 1 до числа записей в базе данных (которое вернула функция dbase_numrecords()).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр database теперь имеет тип 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(), поля логического типа возвращаются как целочисленное (int) значение (0 либо 1). Если вы собираетесь записывать эти значения обратно, необходимо помнить, что результат станет равным 0.

Смотрите также

  • dbase_add_record() - Добавляет запись в базу данных
  • dbase_delete_record() - Удаление записей из базы данных


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 — Отменяет создание 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 — Возвращает количество полей в результирующем наборе
    • ibase_num_params — Возвращает количество параметров в подготовленном запросе
    • ibase_param_info — Возвращает информацию о параметре в подготовленном запросе
    • ibase_pconnect — Открывает постоянное соединение с базой данных InterBase
    • ibase_prepare — Подготавливает запрос для последующего связывания псевдопеременных и выполнения
    • ibase_query — Выполняет запрос к базе данных InterBase
    • ibase_restore — Запускает задачу восстановления в диспетчере служб и немедленно возвращается
    • ibase_rollback_ret — Откатывает транзакцию, не закрывая её
    • ibase_rollback — Откатывает транзакцию
    • ibase_server_info — Запрашивает информацию о сервере базы данных
    • ibase_service_attach — Подключается к диспетчеру служб
    • ibase_service_detach — Отключается от диспетчера служб
    • ibase_set_event_handler — Регистрирует callback-функцию, которая будет вызываться при публикации событий
    • ibase_trans — Начинает транзакцию
    • ibase_wait_event — Ждём, пока событие будет опубликовано в базе данных


Введение

Внимание

Этот модуль считается неподдерживаемым и мёртвым. В любом случае, исходники доступны через PECL GIT тут: » https://github.com/php/pecl-database-interbase.

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/.

Замечание:

Этот модуль был перемещен в репозиторий » PECL и больше не поставляется с PHP 7.4.0

Модуль поддерживает InterBase версии 6 и выше и Firebird версии 2.0 и выше.


Установка

Этот модуль был перемещен в репозиторий » PECL и больше не поставляется с PHP 7.4.0

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/ibase.

Для включения поддержки 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 bool

Разрешено ли использовать постоянные соединения к Firebird/InterBase.

ibase.max_persistent int

Максимальное количество постоянных соединений для процесса. Если данное ограничение будет превышено, то функция ibase_pconnect() будет возвращать непостоянные соединения.

ibase.max_links int

Максимальное количество соединений с 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 — Отменяет создание 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 — Возвращает количество полей в результирующем наборе
  • ibase_num_params — Возвращает количество параметров в подготовленном запросе
  • ibase_param_info — Возвращает информацию о параметре в подготовленном запросе
  • ibase_pconnect — Открывает постоянное соединение с базой данных InterBase
  • ibase_prepare — Подготавливает запрос для последующего связывания псевдопеременных и выполнения
  • ibase_query — Выполняет запрос к базе данных InterBase
  • ibase_restore — Запускает задачу восстановления в диспетчере служб и немедленно возвращается
  • ibase_rollback_ret — Откатывает транзакцию, не закрывая её
  • ibase_rollback — Откатывает транзакцию
  • ibase_server_info — Запрашивает информацию о сервере базы данных
  • ibase_service_attach — Подключается к диспетчеру служб
  • ibase_service_detach — Отключается от диспетчера служб
  • ibase_set_event_handler — Регистрирует callback-функцию, которая будет вызываться при публикации событий
  • ibase_trans — Начинает транзакцию
  • 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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

fbird_blob_add — Псевдоним ibase_blob_add()

Описание

Функция является псевдонимом: ibase_blob_add().

Смотрите также

  • fbird_blob_cancel() - Отменяет создание BLOB
  • fbird_blob_close() - Псевдоним ibase_blob_close
  • fbird_blob_create() - Псевдоним ibase_blob_create
  • fbird_blob_import() - Псевдоним ibase_blob_import


Отменяет создание BLOB

  • « fbird_blob_add
  • fbird_blob_close »
  • PHP Manual
  • Функции Firebird/InterBase
  • Отменяет создание BLOB

fbird_blob_cancel

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_cancel — Отменяет создание BLOB

Описание

fbird_blob_cancel(resource $blob_handle): bool

Эта функция прекращает использование BLOB, если он ещё не был закрыт fbird_blob_close().

Список параметров

blob_handle

Дескриптор BLOB, открытый с помощью 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 < 7.4.0)

fbird_blob_close — Псевдоним ibase_blob_close()

Описание

Функция является псевдонимом: ibase_blob_close().

Смотрите также

  • fbird_blob_create() - Псевдоним ibase_blob_create
  • fbird_blob_cancel() - Отменяет создание 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 < 7.4.0)

fbird_blob_create — Псевдоним ibase_blob_create()

Описание

Функция является псевдонимом: ibase_blob_create().

Смотрите также

  • fbird_blob_add() - Псевдоним ibase_blob_add
  • fbird_blob_cancel() - Отменяет создание 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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

fbird_blob_import — Псевдоним ibase_blob_import()

Описание

Функция является псевдонимом: ibase_blob_import().

Смотрите также

  • fbird_blob_add() - Псевдоним ibase_blob_add
  • fbird_blob_cancel() - Отменяет создание 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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

fbird_prepare — Псевдоним ibase_prepare()

Описание

Функция является псевдонимом: ibase_prepare().


Псевдоним ibase_query

  • « fbird_prepare
  • fbird_restore »
  • PHP Manual
  • Функции Firebird/InterBase
  • Псевдоним ibase_query

fbird_query

(PHP 5, PHP 7 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

ibase_affected_rows — Возвращает количество строк, на которые повлиял предыдущий запрос

Описание

ibase_affected_rows(resource $link_identifier = ?): int

Эта функция возвращает количество строк, на которые повлиял предыдущий запрос (INSERT, UPDATE или DELETE), который был выполнен из указанного контекста транзакции.

Список параметров

link_identifier

Контекст транзакции. Если link_identifier является ресурсом соединения, используется его транзакция по умолчанию.

Возвращаемые значения

Возвращает количество строк в виде целого числа.

Смотрите также

  • ibase_query() - Выполняет запрос к базе данных InterBase
  • ibase_execute() - Выполняет предварительно подготовленный запрос


Инициирует задание резервного копирования в диспетчере служб и немедленно возвращает

  • « ibase_affected_rows
  • ibase_blob_add »
  • PHP Manual
  • Функции Firebird/InterBase
  • Инициирует задание резервного копирования в диспетчере служб и немедленно возвращает

ibase_backup

(PHP 5, PHP 7 < 7.4.0)

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() - Запускает задачу восстановления в диспетчере служб и немедленно возвращается


Добавляет данные во вновь созданный BLOB-объект

  • « ibase_backup
  • ibase_blob_cancel »
  • PHP Manual
  • Функции Firebird/InterBase
  • Добавляет данные во вновь созданный BLOB-объект

ibase_blob_add

(PHP 5, PHP 7 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

ibase_blob_create — Создаёт новый BLOB-объект для заполнения данными

Описание

ibase_blob_create(resource $link_identifier = null): resource|false

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

ibase_blob_open — Открывает BLOB-объект для извлечения частей данных

Описание

ibase_blob_open(resource $link_identifier, string $blob_id): resource|false
ibase_blob_open(string $blob_id): resource|false

Открывает существующий 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 < 7.4.0)

ibase_close — Закрывает соединение с базой данных InterBase

Описание

ibase_close(resource $connection_id = null): bool

Закрывает ссылку на базу данных InterBase, связанную с идентификатором соединения, полученным с помощью ibase_connect(). Транзакция по умолчанию для ссылки зафиксирована, остальные транзакции отменены.

Список параметров

connection_id

Идентификатор ссылки InterBase, полученный с помощью ibase_connect(). Если не указан, предполагается последняя открытая ссылка.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ibase_connect() - Открывает соединение с базой данных
  • ibase_pconnect() - Открывает постоянное соединение с базой данных InterBase


Фиксирует транзакцию, не закрывая её

  • « ibase_close
  • ibase_commit »
  • PHP Manual
  • Функции Firebird/InterBase
  • Фиксирует транзакцию, не закрывая её

ibase_commit_ret

(PHP 5, PHP 7 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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() - Открывает постоянное соединение с базой данных InterBase
  • ibase_close() - Закрывает соединение с базой данных InterBase


Запрашивает статистику базы данных

  • « ibase_connect
  • ibase_delete_user »
  • PHP Manual
  • Функции Firebird/InterBase
  • Запрашивает статистику базы данных

ibase_db_info

(PHP 5, PHP 7 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

ibase_drop_db — Удаляет базу данных

Описание

ibase_drop_db(resource $connection = null): bool

Функция удаляет базу данных, которая была открыта либо с помощью ibase_connect(), либо ibase_pconnect(). База данных закрывается и удаляется с сервера.

Список параметров

connection

Идентификатор ссылки InterBase. Если не указан, предполагается последняя открытая ссылка.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ibase_connect() - Открывает соединение с базой данных
  • ibase_pconnect() - Открывает постоянное соединение с базой данных InterBase


Возвращает код ошибки

  • « ibase_drop_db
  • ibase_errmsg »
  • PHP Manual
  • Функции Firebird/InterBase
  • Возвращает код ошибки

ibase_errcode

(PHP 5, PHP 7 < 7.4.0)

ibase_errcode — Возвращает код ошибки

Описание

ibase_errcode(): int

Возвращает код ошибки, полученный в результате последнего вызова функции InterBase.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ошибки в виде целого числа или false, если ошибки не произошло.

Смотрите также

  • ibase_errmsg() - Возвращает сообщение об ошибке


Возвращает сообщение об ошибке

  • « ibase_errcode
  • ibase_execute »
  • PHP Manual
  • Функции Firebird/InterBase
  • Возвращает сообщение об ошибке

ibase_errmsg

(PHP 5, PHP 7 < 7.4.0)

ibase_errmsg — Возвращает сообщение об ошибке

Описание

ibase_errmsg(): string

Возвращает сообщение об ошибке, полученное в результате последнего вызова функции InterBase.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сообщение об ошибке в виде строки или false если ошибки не произошло.

Смотрите также

  • ibase_errcode() - Возвращает код ошибки


Выполняет предварительно подготовленный запрос

  • « ibase_errmsg
  • ibase_fetch_assoc »
  • PHP Manual
  • Функции Firebird/InterBase
  • Выполняет предварительно подготовленный запрос

ibase_execute

(PHP 5, PHP 7 < 7.4.0)

ibase_execute — Выполняет предварительно подготовленный запрос

Описание

ibase_execute(resource $query, mixed ...$values): resource

Выполняет запрос, подготовленный с помощью ibase_prepare().

Это намного эффективнее, чем использование ibase_query(), если вы повторяете один и тот же тип запроса несколько раз, изменяя только некоторые параметры.

Список параметров

query

Запрос InterBase, подготовленный с помощью ibase_prepare().

values

Возвращаемые значения

Если запрос вызывает ошибку, возвращает 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() - Выполняет запрос к базе данных InterBase


Извлекает строку результата из запроса в виде ассоциативного массива

  • « ibase_execute
  • ibase_fetch_object »
  • PHP Manual
  • Функции Firebird/InterBase
  • Извлекает строку результата из запроса в виде ассоциативного массива

ibase_fetch_assoc

(PHP 5, PHP 7 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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() - Возвращает количество полей в результирующем наборе


Отменяет зарегистрированный обработчик события

  • « ibase_field_info
  • ibase_free_query »
  • PHP Manual
  • Функции Firebird/InterBase
  • Отменяет зарегистрированный обработчик события

ibase_free_event_handler

(PHP 5, PHP 7 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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 < 7.4.0)

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() - Подготавливает запрос для последующего связывания псевдопеременных и выполнения
  • ibase_execute() - Выполняет предварительно подготовленный запрос


Возвращает количество полей в результирующем наборе

  • « ibase_name_result
  • ibase_num_params »
  • PHP Manual
  • Функции Firebird/InterBase
  • Возвращает количество полей в результирующем наборе

ibase_num_fields

(PHP 5, PHP 7 < 7.4.0)

ibase_num_fields — Возвращает количество полей в результирующем наборе

Описание

ibase_num_fields(resource $result_id): int

Возвращает количество полей в результирующем наборе.

Список параметров

result_id

Идентификатор результата InterBase.

Возвращаемые значения

Возвращает количество полей в виде целого числа.

Примеры

Пример #1 Пример использования ibase_num_fields()

<?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_field_info() - Получает информацию о поле


Возвращает количество параметров в подготовленном запросе

  • « ibase_num_fields
  • ibase_param_info »
  • PHP Manual
  • Функции Firebird/InterBase
  • Возвращает количество параметров в подготовленном запросе

ibase_num_params

(PHP 5, PHP 7 < 7.4.0)

ibase_num_params — Возвращает количество параметров в подготовленном запросе

Описание

ibase_num_params(resource $query): int

Эта функция возвращает количество параметров в подготовленном запросе, указанном query. Это количество связывающих аргументов, которые должны присутствовать при вызове ibase_execute().

Список параметров

query

Дескриптор подготовленного запроса.

Возвращаемые значения

Возвращает количество параметров в виде целого числа.

Смотрите также

  • ibase_prepare() - Подготавливает запрос для последующего связывания псевдопеременных и выполнения
  • ibase_param_info() - Возвращает информацию о параметре в подготовленном запросе


Возвращает информацию о параметре в подготовленном запросе

  • « ibase_num_params
  • ibase_pconnect »
  • PHP Manual
  • Функции Firebird/InterBase
  • Возвращает информацию о параметре в подготовленном запросе

ibase_param_info

(PHP 5, PHP 7 < 7.4.0)

ibase_param_info — Возвращает информацию о параметре в подготовленном запросе

Описание

ibase_param_info(resource $query, int $param_number): array

Возвращает массив с информацией о параметре после подготовки запроса.

Список параметров

query

Дескриптор подготовленного запроса InterBase.

param_number

Смещение параметра.

Возвращаемые значения

Возвращает массив со следующими ключами: name, alias, relation, length и type.

Смотрите также

  • ibase_field_info() - Получает информацию о поле
  • ibase_num_params() - Возвращает количество параметров в подготовленном запросе


Открывает постоянное соединение с базой данных InterBase

  • « ibase_param_info
  • ibase_prepare »
  • PHP Manual
  • Функции Firebird/InterBase
  • Открывает постоянное соединение с базой данных InterBase

ibase_pconnect

(PHP 5, PHP 7 < 7.4.0)

ibase_pconnect — Открывает постоянное соединение с базой данных InterBase

Описание

ibase_pconnect(
string $database = ?,
string $username = ?,
string $password = ?,
string $charset = ?,
int $buffers = ?,
int $dialect = ?,
string $role = ?,
int $sync = ?
): resource

Открывает постоянное соединение с базой данных InterBase.

Принцип работы ibase_pconnect() очень похож на ibase_connect() с двумя основными отличиями.

Во-первых, при подключении функция сначала попытается найти (постоянную) ссылку, которая уже открыта с такими же параметрами. Если она будет найдена, вместо открытия нового соединения будет возвращён её идентификатор.

Во-вторых, соединение с сервером InterBase не будет закрыто по окончании выполнения скрипта. Вместо этого ссылка останется открытой для использования в дальнейшем (ibase_close() не будет закрывать ссылки, установленные ibase_pconnect()). Поэтому этот тип ссылки называется "постоянным".

Список параметров

database

Аргумент database должен быть допустимым путём к файлу базы данных на сервере, на котором он находится. Если сервер не является локальным, он должен иметь префикс 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) или 'hostname@' (IPX/SPX), в зависимости от используемого протокола подключения.

username

Имя пользователя. Можно установить с помощью директивы php.ini ibase.default_user.

password

Пароль для username. Можно установить с помощью директивы php.ini ibase.default_password.

charset

charset - набор символов по умолчанию для базы данных.

buffers

buffers - количество буферов базы данных, выделяемых для кеша на стороне сервера. Если значение равно 0 или опущено, сервер выбирает собственное значение по умолчанию.

dialect

dialect выбирает диалект SQL по умолчанию для любого выражения, выполняемого в соединении, и по умолчанию выбирает самый высокий диалект, поддерживаемый клиентскими библиотеками. Работает только с InterBase 6 и выше.

role

Работает только с InterBase 5 и выше.

sync

Возвращаемые значения

Возвращает идентификатор ссылки InterBase в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ibase_close() - Закрывает соединение с базой данных InterBase
  • ibase_connect() - Открывает соединение с базой данных


Подготавливает запрос для последующего связывания псевдопеременных и выполнения

  • « ibase_pconnect
  • ibase_query »
  • PHP Manual
  • Функции Firebird/InterBase
  • Подготавливает запрос для последующего связывания псевдопеременных и выполнения

ibase_prepare

(PHP 5, PHP 7 < 7.4.0)

ibase_prepare — Подготавливает запрос для последующего связывания псевдопеременных и выполнения

Описание

ibase_prepare(string $query): resource
ibase_prepare(resource $link_identifier, string $query): resource
ibase_prepare(resource $link_identifier, string $trans, string $query): resource

Подготавливает запрос для последующего связывания псевдопеременных и выполнения (с помощью ibase_execute()).

Список параметров

query

Запрос InterBase.

link_identifier

Идентификатор ссылки InterBase, возвращаемый функцией ibase_connect(). Если не указан, предполагается последняя открытая ссылка.

trans

Дескриптор транзакции InterBase, с которой должен быть связан запрос. Если не указан, предполагается транзакция соединения по умолчанию.

Возвращаемые значения

Возвращает дескриптор подготовленного запроса или false в случае возникновения ошибки.


Выполняет запрос к базе данных InterBase

  • « ibase_prepare
  • ibase_restore »
  • PHP Manual
  • Функции Firebird/InterBase
  • Выполняет запрос к базе данных InterBase

ibase_query

(PHP 5, PHP 7 < 7.4.0)

ibase_query — Выполняет запрос к базе данных InterBase

Описание

ibase_query(resource $link_identifier = ?, string $query, int $bind_args = ?): resource

Выполняет запрос к базе данных InterBase.

Список параметров

link_identifier

Идентификатор ссылки InterBase. Если не указан, предполагается последняя открытая ссылка.

query

Запрос InterBase.

bind_args

Возвращаемые значения

Если запрос вызывает ошибку, возвращает false. В случае успешного выполнения и наличия (возможно, пустого) результирующего набора (например, с запросом SELECT) возвращает идентификатор результата. Если запрос был успешным и результатов не было, возвращает true.

Замечание:

В PHP 5.0.0 и выше эта функция будет возвращать количество строк, затронутых запросом, для операторов INSERT, UPDATE и DELETE. Чтобы сохранить обратную совместимость, она будет возвращать true для этих операций, если запрос выполнен успешно без затрагивания каких-либо строк.

Ошибки

Если вы получаете сообщение об ошибке вроде "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (это происходит, когда вы пытаетесь использовать какой-либо символ с диакритическими знаками) при использовании этой функции и после использования ibase_query(), вы должны установить символьную кодировку (ISO8859_1 или вашу текущую символьную кодировку).

Примеры

Пример #1 Пример использования ibase_query()

<?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() - Освобождает набор результатов


Запускает задачу восстановления в диспетчере служб и немедленно возвращается

  • « ibase_query
  • ibase_rollback_ret »
  • PHP Manual
  • Функции Firebird/InterBase
  • Запускает задачу восстановления в диспетчере служб и немедленно возвращается

ibase_restore

(PHP 5, PHP 7 < 7.4.0)

ibase_restore — Запускает задачу восстановления в диспетчере служб и немедленно возвращается

Описание

ibase_restore(
resource $service_handle,
string $source_file,
string $dest_db,
int $options = 0,
bool $verbose = false
): mixed

Эта функция передаёт аргументы (удалённому) серверу базы данных. Там она начинает новый процесс восстановления. Поэтому вы не получите никакого ответа.

Список параметров

service_handle

Ранее открытое соединение с сервером базы данных.

source_file

Абсолютный путь на сервере, где находится файл резервной копии.

dest_db

Путь для создания новой базы данных на сервере. Вы также можете использовать псевдоним базы данных.

options

Дополнительные параметры для передачи на сервер базы данных для восстановления. Параметр options может быть комбинацией следующих констант: 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. Читайте раздел о Предопределённые константы для получения дополнительной информации.

verbose

Поскольку процесс восстановления выполняется на сервере базы данных, у вас нет возможности получить вывод. Этот аргумент бесполезен.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Поскольку процесс восстановления выполняется на (удалённом) сервере, эта функция просто передаёт ему аргументы. Если аргументы недействительны, то вернётся false.

Примеры

Пример #1 Пример использования ibase_restore()

<?php

// Подключение к серверу базы данных по ip-адресу и порту
$service = ibase_service_attach ('10.1.11.200/3050', 'sysdba', 'masterkey');

// Запуск процесса восстановления на сервере базы данных
// Восстановление резервной копии employee в новую базу данных emps.fdb
// Не используйте никаких специальных аргументов
ibase_restore($service, '/srv/backup/employees.fbk', '/srv/firebird/emps.fdb');

// Освобождение соединения
ibase_service_detach ($service);
?>

Пример #2 Пример использования ibase_restore() с аргументами

<?php

// Присоединение к серверу базы данных по имени и порту по умолчанию
$service = ibase_service_attach ('fb-server.contoso.local', 'sysdba', 'masterkey');

// Запуск процесса восстановления на сервере базы данных
// Восстановление базы данных employee с использованием псевдонима.
// Восстановление без индексов. Замена существующей базы данных.
ibase_restore($service, '/srv/backup/employees.fbk', 'employees.fdb', IBASE_RES_DEACTIVATE_IDX | IBASE_RES_REPLACE);

// Освобождение прикрепленного соединения
ibase_service_detach ($service);
?>

Смотрите также

  • ibase_backup() - Инициирует задание резервного копирования в диспетчере служб и немедленно возвращает


Откатывает транзакцию, не закрывая её

  • « ibase_restore
  • ibase_rollback »
  • PHP Manual
  • Функции Firebird/InterBase
  • Откатывает транзакцию, не закрывая её

ibase_rollback_ret

(PHP 5, PHP 7 < 7.4.0)

ibase_rollback_ret — Откатывает транзакцию, не закрывая её

Описание

ibase_rollback_ret(resource $link_or_trans_identifier = null): bool

Откатывает транзакцию, не закрывая её.

Список параметров

link_or_trans_identifier

Если вызывается без аргумента, эта функция откатывает транзакцию по умолчанию для ссылки по умолчанию. Если аргумент является идентификатором соединения, транзакция по умолчанию для соответствующего соединения будет отменена. Если аргумент является идентификатором транзакции, соответствующая транзакция будет отменена. Контекст транзакции будет сохранён, поэтому выражения, выполняемые из этой транзакции, не будут признаны недействительными.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Откатывает транзакцию

  • « ibase_rollback_ret
  • ibase_server_info »
  • PHP Manual
  • Функции Firebird/InterBase
  • Откатывает транзакцию

ibase_rollback

(PHP 5, PHP 7 < 7.4.0)

ibase_rollback — Откатывает транзакцию

Описание

ibase_rollback(resource $link_or_trans_identifier = null): bool

Откатывает транзакцию.

Список параметров

link_or_trans_identifier

Если вызывается без аргумента, эта функция откатывает транзакцию по умолчанию для ссылки по умолчанию. Если аргумент является идентификатором соединения, транзакция по умолчанию для соответствующего соединения будет отменена. Если аргумент является идентификатором транзакции, соответствующая транзакция будет отменена.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Запрашивает информацию о сервере базы данных

  • « ibase_rollback
  • ibase_service_attach »
  • PHP Manual
  • Функции Firebird/InterBase
  • Запрашивает информацию о сервере базы данных

ibase_server_info

(PHP 5, PHP 7 < 7.4.0)

ibase_server_info — Запрашивает информацию о сервере базы данных

Описание

ibase_server_info(resource $service_handle, int $action): string

Список параметров

service_handle

Ранее созданное соединение с сервером базы данных.

action

Допустимая константа.

Возвращаемые значения

Возвращает смешанные типы в зависимости от контекста.

Примеры

Пример #1 Пример использования ibase_service_attach()

<?php
// Присоединение к удаленному серверу Firebird
if (($service = ibase_service_attach('10.1.1.254/3050', 'sysdba', 'masterkey')) != FALSE) {

// Присоединение прошло успешно.

// Вывод информации
echo "Версия сервера: " . ibase_server_info($service, IBASE_SVC_SERVER_VERSION) . "\n";
echo "Реализация сервера: " . ibase_server_info($service, IBASE_SVC_IMPLEMENTATION) . "\n";
echo "Пользователи сервера: " . print_r(ibase_server_info($service, IBASE_SVC_GET_USERS), true) . "\n";
echo "Директория сервера: " . ibase_server_info($service, IBASE_SVC_GET_ENV) . "\n";
echo "Путь блокировки сервера: " . ibase_server_info($service, IBASE_SVC_GET_ENV_LOCK) . "\n";
echo "Путь к библиотекам сервера: " . ibase_server_info($service, IBASE_SVC_GET_ENV_MSG) . "\n";
echo "Путь пользователя базы данных: " . ibase_server_info($service, IBASE_SVC_USER_DBPATH) . "\n";
echo "Установленные соединения: " . print_r(ibase_server_info($service, IBASE_SVC_SVR_DB_INFO),true) . "\n";

// Отсоединение от сервера (отключение)
ibase_service_detach($service);

}
else {
// Вывод сообщения в случае возникновения ошибки
$conn_error = ibase_errmsg();
die($conn_error);
}
?>

Результат выполнения данного примера:

Версия сервера: LI-V3.0.4.33054 Firebird 3.0
Реализация сервера: Firebird/Linux/AMD/Intel/x64
Пользователи сервера: Array
(
    [0] => Array
        (
            [user_name] => SYSDBA
            [first_name] => Sql
            [middle_name] => Server
            [last_name] => Administrator
            [user_id] => 0
            [group_id] => 0
        )

)

Директория сервера: /etc/firebird/
Путь блокировки сервера: /tmp/firebird/
Путь к библиотекам сервера: /usr/lib64/firebird/lib/
Путь пользователя базы данных: /var/lib/firebird/secdb/security3.fdb
Установленные соединения: Array
(
    [attachments] => 3
    [databases] => 2
    [0] => /srv/firebird/poss.fdb
    [1] => /srv/firebird/employees.fdb
)


Подключается к диспетчеру служб

  • « ibase_server_info
  • ibase_service_detach »
  • PHP Manual
  • Функции Firebird/InterBase
  • Подключается к диспетчеру служб

ibase_service_attach

(PHP 5, PHP 7 < 7.4.0)

ibase_service_attach — Подключается к диспетчеру служб

Описание

ibase_service_attach(string $host, string $dba_username, string $dba_password): resource|false

Список параметров

host

Имя или IP-адрес хоста базы данных. Вы можете указать порт, добавив '/' и номер порта. Если порт не указан, будет использоваться порт 3050.

dba_username

Имя любого действительного пользователя.

dba_password

Пароль пользователя.

Возвращаемые значения

Возвращает идентификатор ссылки Interbase / Firebird в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ibase_service_attach()

<?php
// Присоединение к удаленному серверу Firebird по IP-адресу
if (($service = ibase_service_attach('10.1.1.199', 'sysdba', 'masterkey')) != FALSE) {

// Присоединение прошло успешно.
// Возврат версии сервера (что-то вроде 'LI-V3.0.4.33054 Firebird 3.0')
$server_version = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

// Возврат реализации сервера (что-то вроде 'Firebird/Linux/AMD/Intel/x64')
$server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

// Отсоединение от сервера (отключение)
ibase_service_detach($service);

// Вывод информации
echo "Версия сервера: " . $server_version . "<br/>";
echo "Реализация сервера: " . $server_implementation;
}
else {
// Вывод сообщения в случае возникновения ошибки
$conn_error = ibase_errmsg();
die($conn_error);
}

?>

Пример #2 Пример использования ibase_service_attach() с синтаксисом hostname/port

<?php
// Присоединение к удаленному серверу Firebird по имени. Используется порт 3050.
if (($service = ibase_service_attach('FB-SRV-01.contoso.local/3050', 'sysdba', 'masterkey')) != FALSE) {

// Присоединение прошло успешно.
// Возврат версии сервера (что-то вроде 'LI-V3.0.4.33054 Firebird 3.0')
$server_version = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

// Возврат реализации сервера (что-то вроде 'Firebird/Linux/AMD/Intel/x64')
$server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

// Отсоединение от сервера (отключение)
ibase_service_detach($service);

// Вывод информации
echo "Версия сервера: " . $server_version . "<br/>";
echo "Реализация сервера: " . $server_implementation;
}
else {
// Вывод сообщения в случае возникновения ошибки
$conn_error = ibase_errmsg();
die($conn_error);
}

?>

Смотрите также

  • ibase_service_detach() - Отключается от диспетчера служб


Отключается от диспетчера служб

  • « ibase_service_attach
  • ibase_set_event_handler »
  • PHP Manual
  • Функции Firebird/InterBase
  • Отключается от диспетчера служб

ibase_service_detach

(PHP 5, PHP 7 < 7.4.0)

ibase_service_detach — Отключается от диспетчера служб

Описание

ibase_service_detach(resource $service_handle): bool

Список параметров

service_handle

Ранее созданное соединение с сервером базы данных.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ibase_service_detach()

<?php
// Присоединение к удаленному серверу Firebird по IP-адресу
if (($service = ibase_service_attach('10.1.1.199', 'sysdba', 'masterkey')) != FALSE) {

// Присоединение прошло успешно.
// Возврат версии сервера (что-то вроде 'LI-V3.0.4.33054 Firebird 3.0')
$server_version = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

// Возврат реализации сервера (что-то вроде 'Firebird/Linux/AMD/Intel/x64')
$server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

// Отсоединение от сервера (отключение)
if(ibase_service_detach($service) == FALSE) {
echo "Ошибка при отсоединении от службы.";
}
else {
echo "Отсоединение от службы прошло успешно.";
}

}
else {
// Вывод сообщения в случае возникновения ошибки
$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 < 7.4.0)

ibase_set_event_handler — Регистрирует callback-функцию, которая будет вызываться при публикации событий

Описание

ibase_set_event_handler(callable $event_handler, string $event_name, string ...$even_names): resource
ibase_set_event_handler(
resource $connection,
callable $event_handler,
string $event_name,
string ...$event_names
): resource

Функция регистрирует пользовательскую функцию PHP в качестве обработчика событий для указанных событий.

Список параметров

event_handler

Callback-функция вызывается с именем события и ресурсом ссылки в качестве аргументов всякий раз, когда одно из указанных событий публикуется базой данных.

Callback-функция должна возвращать false, если обработчик события должен быть отменён. Любое другое возвращаемое значение игнорируется. Функция принимает до 15 аргументов события.

event_name

Наименование события.

event_names

Разрешено максимум 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() - Ждём, пока событие будет опубликовано в базе данных


Начинает транзакцию

  • « ibase_set_event_handler
  • ibase_wait_event »
  • PHP Manual
  • Функции Firebird/InterBase
  • Начинает транзакцию

ibase_trans

(PHP 5, PHP 7 < 7.4.0)

ibase_trans — Начинает транзакцию

Описание

ibase_trans(int $trans_args = ?, resource $link_identifier = ?): resource
ibase_trans(resource $link_identifier = ?, int $trans_args = ?): resource

Начинает транзакцию.

Замечание:

Первый вызов ibase_trans() не вернёт транзакцию соединения по умолчанию. Все транзакции, запущенные с помощью ibase_trans(), будут отменены в конце скрипта, если они не были зафиксированы, или будут отменены с помощью ibase_commit() или ibase_rollback().

Замечание:

Эта функция принимает несколько аргументов trans_args и link_identifier. Это позволяет выполнять транзакции через несколько соединений с базой данных, которые фиксируются с использованием алгоритма двухэтапной фиксации. Это означает, что вы можете рассчитывать на то, что обновления будут успешными в каждой базе данных или завершатся ошибкой в каждой базе данных. Это НЕ означает, что вы можете использовать таблицы из разных баз данных в одном запросе!

Если вы используете транзакции в нескольких базах данных, вам нужно будет указать как link_id, так и transaction_id в вызовах ibase_query() и ibase_prepare().

Список параметров

trans_args

trans_args может быть комбинацией IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT и IBASE_NOWAIT.

link_identifier

Идентификатор ссылки InterBase. Если не указан, предполагается последняя открытая ссылка.

Возвращаемые значения

Возвращает дескриптор транзакции или false в случае возникновения ошибки.


Ждём, пока событие будет опубликовано в базе данных

  • « ibase_trans
  • IBM DB2 »
  • PHP Manual
  • Функции Firebird/InterBase
  • Ждём, пока событие будет опубликовано в базе данных

ibase_wait_event

(PHP 5, PHP 7 < 7.4.0)

ibase_wait_event — Ждём, пока событие будет опубликовано в базе данных

Описание

ibase_wait_event(string $event_name, string ...$event_names): string
ibase_wait_event(resource $connection, string $event_name, string ...$event_names): string

Функция приостанавливает выполнение сценария до тех пор, пока одно из указанных событий не будет опубликовано в базе данных. Имя события, которое было опубликовано, возвращается. Функция принимает до 15 аргументов события.

Список параметров

event_name

Название события.

event_names

Возвращаемые значения

Возвращает название события, которое было опубликовано.

Смотрите также

  • ibase_set_event_handler() - Регистрирует callback-функцию, которая будет вызываться при публикации событий
  • ibase_free_event_handler() - Отменяет зарегистрированный обработчик события


IBM DB2, Cloudscape и Apache Derby

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции IBM DB2
    • db2_autocommit — Возвращает или устанавливает режим автоподтверждения транзакций для соединения
    • db2_bind_param — Связывает переменную PHP с параметром SQL-выражения
    • db2_client_info — Возвращает объект со свойствами, описывающими клиента DB2
    • db2_close — Закрывает соединение с базой данных
    • db2_column_privileges — Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
    • db2_columns — Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
    • db2_commit — Подтверждает транзакцию
    • db2_conn_error — Возвращает строку, содержащую значение SQLSTATE, возвращённое последней попыткой подключения
    • db2_conn_errormsg — Возвращает последнее сообщение об ошибке подключения и значение SQLCODE
    • db2_connect — Возвращает соединение с базой данных
    • db2_cursor_type — Возвращает тип курсора, который используется в ресурсе оператора
    • db2_escape_string — Используется для экранирования некоторых символов
    • db2_exec — Выполняет SQL-запрос напрямую
    • db2_execute — Выполняет подготовленный SQL-запрос
    • db2_fetch_array — Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов
    • db2_fetch_assoc — Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов
    • db2_fetch_both — Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов
    • db2_fetch_object — Возвращает объект со свойствами, представляющими столбцы в выбранной строке
    • db2_fetch_row — Устанавливает указатель набора результатов на следующую строку или запрошенную строку
    • db2_field_display_size — Возвращает максимальное количество байтов, необходимое для отображения столбца
    • db2_field_name — Возвращает имя столбца в наборе результатов
    • db2_field_num — Возвращает позицию указанного столбца в наборе результатов
    • db2_field_precision — Возвращает точность указанного столбца в наборе результатов
    • db2_field_scale — Возвращает масштаб указанного столбца в наборе результатов
    • db2_field_type — Возвращает тип данных указанного столбца в наборе результатов
    • db2_field_width — Возвращает ширину текущего значения указанного столбца в наборе результатов
    • db2_foreign_keys — Возвращает набор результатов, в котором перечислены внешние ключи таблицы
    • db2_free_result — Освобождает ресурсы, связанные с набором результатов
    • db2_free_stmt — Освобождает ресурсы, связанные с указанным ресурсом выражения
    • db2_get_option — Извлекает значение параметра для ресурса оператора или ресурса соединения
    • db2_last_insert_id — Возвращает автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении
    • db2_lob_read — Получает определённый пользователем размер LOB-файлов при каждом вызове
    • db2_next_result — Запрашивает следующий набор результатов из хранимой процедуры
    • db2_num_fields — Возвращает количество полей в результирующем наборе
    • db2_num_rows — Возвращает количество строк, затронутых SQL-запросом
    • db2_pclose — Закрывает постоянное соединение с базой данных
    • db2_pconnect — Возвращает постоянное соединение с базой данных
    • db2_prepare — Подготавливает SQL-запрос к выполнению
    • db2_primary_keys — Возвращает набор результатов, содержащий первичные ключи таблицы
    • db2_procedure_columns — Возвращает набор результатов со списком параметров хранимой процедуры
    • db2_procedures — Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных
    • db2_result — Возвращает один столбец из строки в наборе результатов
    • db2_rollback — Откатывает транзакцию
    • db2_server_info — Возвращает объект со свойствами, описывающими сервер базы данных DB2
    • db2_set_option — Установка опции для соединения или ресурса оператора
    • db2_special_columns — Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы
    • db2_statistics — Возвращает набор результатов, содержащий индекс и статистику таблицы
    • db2_stmt_error — Возвращает строку, содержащую SQLSTATE, возвращённую SQL-оператором
    • db2_stmt_errormsg — Возвращает строку, содержащую последнее сообщение об ошибке SQL-выражения
    • db2_table_privileges — Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных
    • db2_tables — Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных


Введение

Эти функции позволят вам получить доступ к базам данных 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 int

Эта опция контролирует режим конвертации из/в бинарные данные в приложении PHP.

  • 1 (DB2_BINARY)

  • 2 (DB2_CONVERT)

  • 3 (DB2_PASSTHRU)

ibm_db2.i5_all_pconnect int

Эта опция полностью переопределяет поведение 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 int

Эта опция контролирует уровень изоляции, используемый для i5 схемы коллекций в приложении PHP (смотри i5_commit для переопределения).

  • 0 - контроль обязательств не используется.

  • 1 - read uncommitted, возможно грязное чтение.

  • 2 - read committed, грязное чтение не возможно.

  • 3 - repeatable read, грязное и неповторяющееся чтение не возможны.

  • 4 - serializeable, грязное чтение, неповторяющееся чтение и фантомы не возможны.

ibm_db2.i5_dbcs_alloc int

Эта опция контролирует внутреннюю схему расположения для больших буферов колонок DBCS.

  • 0 - нет расширенного размещения (смотри i5_dbcs_alloc для переопределения)

  • 1 - использовать расширенное размещение (смотри i5_dbcs_alloc для переопределения)

ibm_db2.instance_name string

В операционных системах Linux и UNIX, эта опция задаёт имя экземпляра для использования каталогизированных соединений с базой данных. Если эта опция определена, её значение используется вместо значения переменной окружения DB2INSTANCE.

Эта опция игнорируется в Windows .

ibm_db2.i5_ignore_userid int

Эта опция переопределяет 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 (int)
Указывает, что бинарные данные должны быть возвращены как есть. Этот режим используется по умолчанию.
DB2_CONVERT (int)
Указывает, что бинарные данные должны конвертироваться в шестнадцатеричный формат и возвращаться как строка ASCII.
DB2_PASSTHRU (int)
Указывает, что бинарные данные должны быть конвертированы в null.
DB2_SCROLLABLE (int)
Курсор "scrollable" - перематываемый. Этот режим разрешает случайный доступ к строкам в результирующем наборе, но в данный момент поддерживается только для IBM DB2 Universal Database.
DB2_FORWARD_ONLY (int)
Курсор "forward-only" - только вперёд. Используется по умолчанию и поддерживается всеми серверами баз данных.
DB2_PARAM_IN (int)
Указанная переменная PHP должна быть привязана как параметр IN для хранимой процедуры.
DB2_PARAM_OUT (int)
Указанная переменная PHP должна быть привязана как параметр OUT для хранимой процедуры.
DB2_PARAM_INOUT (int)
Указанная переменная PHP должна быть привязана как параметр INOUT для хранимой процедуры.
DB2_PARAM_FILE (int)
Указывает, что столбец должен быть привязан непосредственно к файлу для ввода.
DB2_AUTOCOMMIT_ON (int)
Указывает, что необходимо включить режим автоподтверждения транзакции.
DB2_AUTOCOMMIT_OFF (int)
Указывает, что необходимо отключить режим автоподтверждения транзакции.
DB2_DOUBLE (int)
Указывает, что переменная должна быть связана как тип данных DOUBLE, FLOAT или REAL.
DB2_LONG (int)
Указывает, что переменная должна быть связана как тип данных SMALLINT, INTEGER или BIGINT.
DB2_CHAR (int)
Указывает, что переменная должна быть связана как тип данных CHAR или VARCHAR.
DB2_CASE_NATURAL (int)
Указывает, что имена столбцов должны возвращаться как есть, без изменения регистра символов.
DB2_CASE_LOWER (int)
Указывает, что имена столбцов должны возвращаться в нижнем регистре.
DB2_CASE_UPPER (int)
Указывает, что имена столбцов должны возвращаться в верхнем регистре.
DB2_DEFERRED_PREPARE_ON (int)
Указывает, что для данного ресурса оператора должен быть включён режим отложенной подготовки запроса.
DB2_DEFERRED_PREPARE_OFF (int)
Указывает, что для данного ресурса оператора должен быть отключён режим отложенной подготовки запроса.


Функции IBM DB2

Содержание

  • db2_autocommit — Возвращает или устанавливает режим автоподтверждения транзакций для соединения
  • db2_bind_param — Связывает переменную PHP с параметром SQL-выражения
  • db2_client_info — Возвращает объект со свойствами, описывающими клиента DB2
  • db2_close — Закрывает соединение с базой данных
  • db2_column_privileges — Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns — Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_commit — Подтверждает транзакцию
  • db2_conn_error — Возвращает строку, содержащую значение SQLSTATE, возвращённое последней попыткой подключения
  • db2_conn_errormsg — Возвращает последнее сообщение об ошибке подключения и значение SQLCODE
  • db2_connect — Возвращает соединение с базой данных
  • db2_cursor_type — Возвращает тип курсора, который используется в ресурсе оператора
  • db2_escape_string — Используется для экранирования некоторых символов
  • db2_exec — Выполняет SQL-запрос напрямую
  • db2_execute — Выполняет подготовленный SQL-запрос
  • db2_fetch_array — Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов
  • db2_fetch_assoc — Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов
  • db2_fetch_both — Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов
  • db2_fetch_object — Возвращает объект со свойствами, представляющими столбцы в выбранной строке
  • db2_fetch_row — Устанавливает указатель набора результатов на следующую строку или запрошенную строку
  • db2_field_display_size — Возвращает максимальное количество байтов, необходимое для отображения столбца
  • db2_field_name — Возвращает имя столбца в наборе результатов
  • db2_field_num — Возвращает позицию указанного столбца в наборе результатов
  • db2_field_precision — Возвращает точность указанного столбца в наборе результатов
  • db2_field_scale — Возвращает масштаб указанного столбца в наборе результатов
  • db2_field_type — Возвращает тип данных указанного столбца в наборе результатов
  • db2_field_width — Возвращает ширину текущего значения указанного столбца в наборе результатов
  • db2_foreign_keys — Возвращает набор результатов, в котором перечислены внешние ключи таблицы
  • db2_free_result — Освобождает ресурсы, связанные с набором результатов
  • db2_free_stmt — Освобождает ресурсы, связанные с указанным ресурсом выражения
  • db2_get_option — Извлекает значение параметра для ресурса оператора или ресурса соединения
  • db2_last_insert_id — Возвращает автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении
  • db2_lob_read — Получает определённый пользователем размер LOB-файлов при каждом вызове
  • db2_next_result — Запрашивает следующий набор результатов из хранимой процедуры
  • db2_num_fields — Возвращает количество полей в результирующем наборе
  • db2_num_rows — Возвращает количество строк, затронутых SQL-запросом
  • db2_pclose — Закрывает постоянное соединение с базой данных
  • db2_pconnect — Возвращает постоянное соединение с базой данных
  • db2_prepare — Подготавливает SQL-запрос к выполнению
  • db2_primary_keys — Возвращает набор результатов, содержащий первичные ключи таблицы
  • db2_procedure_columns — Возвращает набор результатов со списком параметров хранимой процедуры
  • db2_procedures — Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных
  • db2_result — Возвращает один столбец из строки в наборе результатов
  • db2_rollback — Откатывает транзакцию
  • db2_server_info — Возвращает объект со свойствами, описывающими сервер базы данных DB2
  • db2_set_option — Установка опции для соединения или ресурса оператора
  • db2_special_columns — Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы
  • db2_statistics — Возвращает набор результатов, содержащий индекс и статистику таблицы
  • db2_stmt_error — Возвращает строку, содержащую SQLSTATE, возвращённую SQL-оператором
  • db2_stmt_errormsg — Возвращает строку, содержащую последнее сообщение об ошибке SQL-выражения
  • db2_table_privileges — Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных
  • db2_tables — Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных


Возвращает или устанавливает режим автоподтверждения транзакций для соединения

  • « Функции IBM DB2
  • db2_bind_param »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает или устанавливает режим автоподтверждения транзакций для соединения

db2_autocommit

(PECL ibm_db2 >= 1.0.0)

db2_autocommit — Возвращает или устанавливает режим автоподтверждения транзакций для соединения

Описание

db2_autocommit(resource $connection, int $value = ?): int|bool

Возвращает или устанавливает режим автоподтверждения транзакций для указанного соединения.

Список параметров

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() - Возвращает соединение с базой данных
  • db2_pconnect() - Возвращает постоянное соединение с базой данных


Связывает переменную PHP с параметром SQL-выражения

  • « db2_autocommit
  • db2_client_info »
  • PHP Manual
  • Функции IBM DB2
  • Связывает переменную PHP с параметром SQL-выражения

db2_bind_param

(PECL ibm_db2 >= 1.0.0)

db2_bind_param — Связывает переменную PHP с параметром SQL-выражения

Описание

db2_bind_param(
resource $stmt,
int $parameter_number,
string $variable_name,
int $parameter_type = DB2_PARAM_IN,
int $data_type = 0,
int $precision = -1,
int $scale = 0
): bool

Связывает переменную PHP с параметром SQL-выражения в ресурсе выражения, возвращаемом db2_prepare(). Эта функция даёт больший контроль над типом параметра, типом данных, точностью и масштабом для параметра, чем простая передача переменной как части необязательного входного массива в db2_execute().

Список параметров

stmt

Подготовленное выражение, возвращаемое db2_prepare().

parameter_number

Задаёт позицию параметра, которая нумеруется с 1, в подготовленном выражении.

variable_name

Строка, определяющая имя переменной PHP для привязки к параметру, заданному parameter_number.

parameter_type

Константа, определяющая, должна ли переменная PHP быть привязана к параметру SQL как входной параметр (DB2_PARAM_IN), выходной параметр (DB2_PARAM_OUT) или как параметр, принимающий ввод и возвращающий вывод (DB2_PARAM_INOUT). Чтобы избежать перегрузки памяти, можно также указать DB2_PARAM_FILE, чтобы привязать переменную PHP к имени файла, содержащего данные большого объекта (BLOB, CLOB или DBCLOB).

data_type

Константа, указывающая тип данных SQL, с которым должна быть связана переменная PHP: DB2_BINARY, DB2_CHAR, DB2_DOUBLE или DB2_LONG.

precision

Задаёт точность, с которой переменная должна быть привязана к базе данных. Этот параметр также можно использовать для получения выходных значений XML из хранимых процедур. Неотрицательное значение указывает максимальный размер данных XML, которые будут извлечены из базы данных. Если этот параметр не используется, для получения выходного значения XML из хранимой процедуры предполагается значение по умолчанию 1 МБ.

scale

Задаёт масштаб, с которым переменная должна быть привязана к базе данных.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Привязка переменных PHP к подготовленному выражению

SQL-выражение в данном примере использует два входных параметра в предложении WHERE. Вызывается db2_bind_param(), чтобы связать две переменные PHP с соответствующими параметрами SQL. Обратите внимание, что переменные PHP не нужно объявлять или присваивать перед вызовом db2_bind_param(); в этом примере $lower_limit присваивается значение перед вызовом db2_bind_param(), а $upper_limit присваивается значение после вызова db2_bind_param(). Перед вызовом db2_execute() переменные должны быть связаны, а параметрам, принимающим ввод, должно быть присвоено любое значение. 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);

// Можно объявить переменную перед вызовом 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);

// Также можно объявить переменную после вызова 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 Вызов хранимых процедур с параметрами IN и OUT

Хранимая процедура match_animal в данном примере принимает три разных параметра:

  1. входной параметр (IN), который принимает имя первого животного в качестве входных данных

  2. параметр ввода-вывода (INOUT), который принимает имя второго животного в качестве входных данных и возвращает строку TRUE, если животное в базе данных совпадает с этим именем

  3. выходной параметр (OUT), который возвращает сумму веса двух идентифицированных животных

Кроме того, хранимая процедура возвращает набор результатов, состоящий из животных, перечисленных в алфавитном порядке, начиная с животного, соответствующего входному значению первого параметра, и заканчивая животным, соответствующим входному значению второго параметра.

<?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 Вставка большого двоичного объекта (BLOB) напрямую из файла

Данные для больших объектов обычно хранятся в файлах, таких как документы XML или аудиофайлы. Вместо того, чтобы считывать весь файл в переменную PHP и затем связывать эту переменную PHP с SQL-выражением, можно избежать некоторых накладных расходов на память, привязав файл напрямую к входному параметру SQL-выражения. В данном примере показано, как привязать файл напрямую к столбцу BLOB.

<?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() - Выполняет подготовленный SQL-запрос
  • db2_prepare() - Подготавливает SQL-запрос к выполнению


Возвращает объект со свойствами, описывающими клиента 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): stdClass|false

Эта функция возвращает объект с доступными только на чтение свойствами, возвращающими информацию о клиенте 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() - Возвращает объект со свойствами, описывающими сервер базы данных DB2


Закрывает соединение с базой данных

  • « 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() - Возвращает соединение с базой данных
  • db2_pclose() - Закрывает постоянное соединение с базой данных
  • db2_pconnect() - Возвращает постоянное соединение с базой данных


Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы

  • « 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 = null,
?string $schema = null,
?string $table_name = null,
?string $column_name = null
): 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() - Возвращает набор результатов, в котором перечислены внешние ключи таблицы
  • db2_primary_keys() - Возвращает набор результатов, содержащий первичные ключи таблицы
  • db2_procedure_columns() - Возвращает набор результатов со списком параметров хранимой процедуры
  • db2_procedures() - Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных
  • db2_special_columns() - Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы
  • db2_statistics() - Возвращает набор результатов, содержащий индекс и статистику таблицы
  • db2_table_privileges() - Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных
  • db2_tables() - Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных


Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы

  • « 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 = null,
?string $schema = null,
?string $table_name = null,
?string $column_name = null
): 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() - Возвращает набор результатов, в котором перечислены внешние ключи таблицы
  • db2_primary_keys() - Возвращает набор результатов, содержащий первичные ключи таблицы
  • db2_procedure_columns() - Возвращает набор результатов со списком параметров хранимой процедуры
  • db2_procedures() - Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных
  • db2_special_columns() - Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы
  • db2_statistics() - Возвращает набор результатов, содержащий индекс и статистику таблицы
  • db2_table_privileges() - Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных
  • db2_tables() - Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных


Подтверждает транзакцию

  • « 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() - Откатывает транзакцию


Возвращает строку, содержащую значение SQLSTATE, возвращённое последней попыткой подключения

  • « db2_commit
  • db2_conn_errormsg »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает строку, содержащую значение SQLSTATE, возвращённое последней попыткой подключения

db2_conn_error

(PECL ibm_db2 >= 1.0.0)

db2_conn_error — Возвращает строку, содержащую значение SQLSTATE, возвращённое последней попыткой подключения

Описание

db2_conn_error(?resource $connection = null): string

Возвращает значение SQLSTATE, представляющее причину, по которой последняя попытка подключения к базе данных завершилась неудачей. Поскольку db2_connect() возвращает false в случае неудачной попытки подключения, не нужно передавать никаких параметров в db2_conn_error() для получения значения SQLSTATE.

Однако, если соединение было успешным, но со временем стало недействительным, можно передать параметр connection, чтобы получить значение SQLSTATE для конкретного соединения.

Чтобы узнать, что означает значение SQLSTATE, вы можете ввести следующую команду в командной строке DB2 Command Line Processor: db2 '? sqlstate-value'. Также можно вызвать db2_conn_errormsg(), чтобы получить явное сообщение об ошибке и соответствующее значение SQLCODE.

Список параметров

connection

Ресурс подключения, связанный с подключением, которое изначально было успешным, но со временем стало недействительным.

Возвращаемые значения

Возвращает значение SQLSTATE, полученное в результате неудачной попытки подключения. Возвращает пустую строку, если при последней попытке подключения ошибок не возникло.

Примеры

Пример #1 Получение значения SQLSTATE для неудачной попытки подключения

В данном примере показано, как вернуть значение SQLSTATE после преднамеренной передачи недопустимых параметров в db2_connect().

<?php
$conn = db2_connect('badname', 'baduser', 'badpassword');
if (!$conn) {
print "SQLSTATE value: " . db2_conn_error();
}
?>

Результат выполнения данного примера:

SQLSTATE value: 08001

Смотрите также

  • db2_conn_errormsg() - Возвращает последнее сообщение об ошибке подключения и значение SQLCODE
  • db2_connect() - Возвращает соединение с базой данных
  • db2_stmt_error() - Возвращает строку, содержащую SQLSTATE, возвращённую SQL-оператором
  • db2_stmt_errormsg() - Возвращает строку, содержащую последнее сообщение об ошибке SQL-выражения


Возвращает последнее сообщение об ошибке подключения и значение SQLCODE

  • « db2_conn_error
  • db2_connect »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает последнее сообщение об ошибке подключения и значение SQLCODE

db2_conn_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_conn_errormsg — Возвращает последнее сообщение об ошибке подключения и значение SQLCODE

Описание

db2_conn_errormsg(?resource $connection = null): string

Возвращает сообщение об ошибке и значение SQLCODE, представляющее причину, по которой последняя попытка подключения к базе данных завершилась неудачей. Поскольку db2_connect() возвращает false в случае неудачной попытки подключения, не нужно передавать никаких параметров в db2_conn_errormsg() для получения соответствующего сообщения об ошибке и значения SQLCODE.

Однако, если соединение было успешным, но со временем стало недействительным, можно передать параметр connection, чтобы получить соответствующее сообщение об ошибке и значение SQLCODE для конкретного соединения.

Список параметров

connection

Ресурс подключения, связанный с подключением, которое изначально было успешным, но со временем стало недействительным.

Возвращаемые значения

Возвращает строку, содержащую сообщение об ошибке и значение SQLCODE, полученное в результате неудачной попытки подключения. Если при последней попытке подключения ошибок не возникло, db2_conn_errormsg() возвращает пустую строку.

Примеры

Пример #1 Получение сообщения об ошибке, возвращённого при неудачной попытке подключения

В данном примере показано, как вернуть сообщение об ошибке и значение SQLCODE после преднамеренной передачи недопустимых параметров в 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() - Возвращает строку, содержащую значение SQLSTATE, возвращённое последней попыткой подключения
  • db2_connect() - Возвращает соединение с базой данных
  • db2_stmt_error() - Возвращает строку, содержащую SQLSTATE, возвращённую SQL-оператором
  • db2_stmt_errormsg() - Возвращает строку, содержащую последнее сообщение об ошибке SQL-выражения


Возвращает соединение с базой данных

  • « db2_conn_errormsg
  • db2_cursor_type »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает соединение с базой данных

db2_connect

(PECL ibm_db2 >= 1.0.0)

db2_connect — Возвращает соединение с базой данных

Описание

db2_connect(
string $database,
?string $username,
?string $password,
array $options = []
): resource|false

Создаёт новое соединение с базой данных IBM DB2 Universal Database, IBM Cloudscape или Apache Derby database.

Список параметров

database

Для каталогизированного соединения с базой данных database представляет собой псевдоним базы данных в клиентском каталоге DB2.

Для некаталогизированного подключения к базе данных database представляет собой полную строку подключения в следующем формате:

DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password;
где параметры представляют следующие значения:
database

Имя базы данных.

hostname

Имя хоста или IP-адрес сервера базы данных.

port

Порт TCP/IP, который используется базой данных для принятия запросов.

username

Имя пользователя, под которым происходит подключение к базе данных.

password

Пароль, с которым происходит подключение к базе данных.

username

Имя пользователя, под которым происходит подключение к базе данных.

Для некаталогизированных соединений необходимо передать значение null или пустую строку.

password

Пароль, с которым происходит подключение к базе данных.

Для некаталогизированных соединений необходимо передать значение null или пустую строку.

options

Ассоциативный массив параметров подключения, которые влияют на поведение подключения, где допустимые ключи массива включают:

autocommit

Передача значения DB2_AUTOCOMMIT_ON включает автоматическую фиксацию (autocommit) для этого дескриптора соединения.

Передача значения DB2_AUTOCOMMIT_OFF выключает автоматическую фиксацию (autocommit) для этого дескриптора соединения.

DB2_ATTR_CASE

Передача значения DB2_CASE_NATURAL указывает, что имена столбцов возвращаются в естественном регистре.

Передача значения DB2_CASE_LOWER указывает, что имена столбцов возвращаются в нижнем регистре.

Передача значения DB2_CASE_UPPER указывает, что имена столбцов возвращаются в верхнем регистре.

CURSOR

Передача значения DB2_FORWARD_ONLY задаёт курсор, который двигается только вперёд, для ресурса оператора. Данный тип курсора используется по умолчанию, он поддерживается всеми серверами баз данных.

Передача значения DB2_SCROLLABLE задаёт прокручиваемый курсор для ресурса оператора. Этот режим включает произвольный доступ к строкам в наборе результатов, но в настоящее время поддерживается только IBM DB2 Universal Database.

Данная новая опция доступна в ibm_db2 версии 1.7.0 и новее.

trustedcontext

Передача значения DB2_TRUSTED_CONTEXT_ENABLE включает доверенный контекст для этого дескриптора соединения. Этот параметр нельзя установить с помощью db2_set_option().

Этот ключ работает только в том случае, если база данных каталогизирована (даже если база данных является локальной) или если будет указан полный DSN при создании соединения.

Чтобы каталогизировать базу данных, используйте следующие команды:

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

Данные новые опции i5/OS доступны в ibm_db2 версии 1.5.1 и новее.

i5_lib

Символьное значение, указывающее библиотеку по умолчанию, которая будет использоваться для разрешения неквалифицированных ссылок на файлы. Это недопустимо, если соединение использует режим именования системы.

i5_naming

Значение DB2_I5_NAMING_ON включает режим именования системы DB2 UDB CLI iSeries. Файлы квалифицируются с помощью косой черты (/) в качестве разделителя. Неквалифицированные файлы разрешаются с использованием списка библиотек для работы.

Значение DB2_I5_NAMING_OFF выключает режим именования по умолчанию DB2 UDB CLI, который является именованием SQL. Файлы квалифицируются с использованием точки (.) в качестве разделителя. Неквалифицированные файлы разрешаются с использованием либо библиотеки по умолчанию, либо текущего идентификатора пользователя.

i5_commit

Атрибут i5_commit должен быть установлен перед вызовом db2_connect(). Если значение изменяется после того, как соединение было установлено, и соединение установлено с удалённым источником данных, изменение не вступит в силу до следующего успешного вызова db2_connect() для дескриптора соединения.

Замечание:

Параметр php.ini ibm_db2.i5_allow_commit==0 или DB2_I5_TXN_NO_COMMIT используется по умолчанию, но может быть изменён с помощью параметра i5_commit.

DB2_I5_TXN_NO_COMMIT - Контроль транзакций не используется.

DB2_I5_TXN_READ_UNCOMMITTED - Возможны грязные чтения, неповторяющиеся чтения и фантомы.

DB2_I5_TXN_READ_COMMITTED - Грязное чтение невозможно. Возможны неповторяющиеся чтения и фантомы

DB2_I5_TXN_REPEATABLE_READ - Грязные чтения и неповторяющиеся чтения невозможны. Возможны фантомы.

DB2_I5_TXN_SERIALIZABLE - Транзакции сериализуемы. Грязные чтения, неповторяющиеся чтения и фантомы невозможны.

i5_query_optimize

DB2_FIRST_IO - Все запросы оптимизированы с целью максимально быстрого возврата первой страницы вывода. Эта цель хорошо работает, когда вывод контролируется пользователем, который, скорее всего, отменит запрос после просмотра первой страницы выходных данных. Запросы, закодированные с предложением OPTIMIZE FOR nnn ROWS, учитывают цель, указанную в предложении.

DB2_ALL_IO - Все запросы оптимизированы с целью выполнить весь запрос до завершения в кратчайшие сроки. Это хороший вариант, когда выходные данные запроса записываются в файл или отчёт, или когда интерфейс ставит выходные данные в очередь. Запросы, закодированные с предложением OPTIMIZE FOR nnn ROWS, учитывают цель, указанную в предложении. Это значение по умолчанию.

i5_dbcs_alloc

Значение DB2_I5_DBCS_ALLOC_ON включает схему распределения DB2 6X для увеличения размера столбца преобразования DBCS.

Значение DB2_I5_DBCS_ALLOC_OFF отключает схему распределения DB2 6X для увеличения размера столбца преобразования DBCS.

Замечание: параметр php.ini ibm_db2.i5_dbcs_alloc== 0 или DB2_I5_DBCS_ALLOC_OFF является значением по умолчанию, но его можно изменить с помощью параметра i5_dbcs_alloc.

i5_date_fmt

DB2_I5_FMT_ISO - Используется формат даты Международной организации по стандартизации (ISO) (yyyy-mm-dd). Это значение по умолчанию.

DB2_I5_FMT_USA - Используется формат даты США (mm/dd/yyyy).

DB2_I5_FMT_EUR - Используется европейский формат даты (dd.mm.yyyy).

DB2_I5_FMT_JIS - Используется формат даты японского промышленного стандарта (yyyy-mm-dd).

DB2_I5_FMT_MDY - Используется формат даты mm/dd/yyyy.

DB2_I5_FMT_DMY - Используется формат даты dd/mm/yyyy.

DB2_I5_FMT_YMD - Используется формат даты yy/mm/dd.

DB2_I5_FMT_JUL - Используется юлианский формат даты (yy/ddd).

DB2_I5_FMT_JOB - Используется задание по умолчанию.

i5_date_sep

DB2_I5_SEP_SLASH - В качестве разделителя даты используется косая черта ( / ). Это значение по умолчанию.

DB2_I5_SEP_DASH - В качестве разделителя даты используется тире ( - ).

DB2_I5_SEP_PERIOD - В качестве разделителя даты используется точка ( . ).

DB2_I5_SEP_COMMA - В качестве разделителя даты используется запятая ( , ).

DB2_I5_SEP_BLANK - В качестве разделителя даты используется пробел.

DB2_I5_SEP_JOB - Используется задание по умолчанию.

i5_time_fmt

DB2_I5_FMT_ISO - Используется формат времени Международной организации по стандартизации (ISO) (hh.mm.ss). Это значение по умолчанию.

DB2_I5_FMT_USA - Используется формат времени США (hh:mmxx, где xx - это AM или PM).

DB2_I5_FMT_EUR - Используется европейский формат времени (hh.mm.ss).

DB2_I5_FMT_JIS - Используется японский промышленный стандартный формат времени (hh:mm:ss).

DB2_I5_FMT_HMS - Используется формат hh:mm:ss.

i5_time_sep

DB2_I5_SEP_COLON - В качестве разделителя времени используется двоеточие ( : ). Это значение по умолчанию.

DB2_I5_SEP_PERIOD - В качестве разделителя времени используется точка ( . ).

DB2_I5_SEP_COMMA - В качестве разделителя времени используется запятая ( , ).

DB2_I5_SEP_BLANK - В качестве разделителя времени используется пробел.

DB2_I5_SEP_JOB - Используется задание по умолчанию.

i5_decimal_sep

DB2_I5_SEP_PERIOD - В качестве десятичного разделителя используется точка ( . ). Это значение по умолчанию.

DB2_I5_SEP_COMMA - В качестве десятичного разделителя используется запятая ( , ).

DB2_I5_SEP_JOB - Используется задание по умолчанию.

Данная новая опция i5/OS доступна в ibm_db2 версии 1.8.0 и новее.

i5_libl

Символьное значение, указывающее список библиотек, который будет использоваться для разрешения неквалифицированных ссылок на файлы. Укажите элементы списка библиотек, разделённые пробелами 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Замечание:

i5_libl вызывает qsys2/qcmdexc('cmd',cmdlen), который доступен только в i5/OS V5R4 и новее.

Возвращаемые значения

Возвращает ресурс дескриптора подключения, если попытка подключения успешна. Если попытка подключения потерпела неудачу, db2_connect() возвращает false.

Примеры

Пример #1 Создание каталогизированного соединения

Каталогизированные соединения требуют, чтобы целевая база данных была предварительно каталогизирована с помощью DB2 Command Line Processor (CLP) или 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 Создание некаталогизированного соединения

Некаталогизированное соединение позволяет динамически подключаться к базе данных.

<?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 Создание соединения с отключённым автокоммитом по умолчанию

Передача массива параметров в db2_connect() позволяет изменять поведение дескриптора соединения по умолчанию.

<?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

Для достижения максимальной производительности вашего приложения PHP i5/OS ibm_db2 1.5.1 используйте хост по умолчанию, идентификатор пользователя и пароль для 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 Использование доверенного контекста

В данном примере показано, как включить доверенный контекст, переключить пользователей и получить текущий идентификатор пользователя.

<?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");

// Выполнение работы в качестве пользователя 1

// Переключение на доверенного пользователя
$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");
// Продолжение выполнения работы в качестве доверенного пользователя

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() - Возвращает постоянное соединение с базой данных


Возвращает тип курсора, который используется в ресурсе оператора

  • « 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() - Подготавливает SQL-запрос к выполнению


Используется для экранирования некоторых символов

  • « 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() - Подготавливает SQL-запрос к выполнению


Выполняет SQL-запрос напрямую

  • « db2_escape_string
  • db2_execute »
  • PHP Manual
  • Функции IBM DB2
  • Выполняет SQL-запрос напрямую

db2_exec

(PECL ibm_db2 >= 1.0.0)

db2_exec — Выполняет SQL-запрос напрямую

Описание

db2_exec(resource $connection, string $statement, array $options = []): resource|false

Выполняет SQL-запрос напрямую.

Если вы планируете интерполировать переменные PHP в SQL-запрос, имейте в виду, что это одна из наиболее распространённых уязвимостей безопасности. Рассмотрите возможность вызова db2_prepare() для подготовки SQL-запроса с маркерами параметров для входных значений. Затем вы можете вызвать db2_execute(), чтобы передать входные значения и избежать атак SQL-инъекций.

Если вы планируете многократно выполнять один и тот же SQL-запрос с разными параметрами, рассмотрите возможность вызова db2_prepare() и db2_execute(), чтобы сервер базы данных мог повторно использовать свой план доступа и повысить эффективность вашей базы данных.

Список параметров

connection

Допустимая переменная ресурса соединения с базой данных, возвращаемого функцией db2_connect() или db2_pconnect().

statement

SQL-запрос. Запрос не может содержать маркеры параметров.

options

Ассоциативный массив, содержащий параметры оператора. Параметр можно использовать для запроса прокручиваемого курсора на серверах баз данных, поддерживающих эту функцию.

Описание допустимых опций оператора смотрите в разделе db2_set_option().

Возвращаемые значения

Возвращает ресурс оператора, в случае успешного выполнения SQL-запроса или false, если базе данных не удалось выполнить SQL-запрос.

Примеры

Пример #1 Создание таблицы с помощью db2_exec()

В следующем примере db2_exec() используется для выполнения набора DDL-запросов в процессе создания таблицы.

<?php
$conn = db2_connect($database, $user, $password);

// Создание таблицы test
$create = 'CREATE TABLE animals (id INTEGER, breed VARCHAR(32),
name CHAR(16), weight DECIMAL(7,2))';
$result = db2_exec($conn, $create);
if ($result) {
print "Таблица создана.\n";
}

// Наполнение таблицы test
$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 "Добавлена запись... ";
}
}
?>

Результат выполнения данного примера:

Таблица создана.
Добавлена запись... Добавлена запись... Добавлена запись... Добавлена запись... Добавлена запись... Добавлена запись... Добавлена запись...

Пример #2 Выполнение запроса SELECT с прокручиваемым курсором

В следующем примере показано, как запросить прокручиваемый курсор для SQL-запроса, полученного с помощью 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 Получение XML-данных как SQL ResultSet

В следующем примере показано, как работать с документами, хранящимися в столбце XML с помощью базы данных SAMPLE. Используя довольно простой SQL/XML, этот пример возвращает некоторые узлы в XML-документе в формате SQL ResultSet, с которым знакомо большинство пользователей.

<?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 Выполнение "JOIN" с данными XML

Следующий пример работает с документами, хранящимися в 2 разных столбцах XML в базе данных SAMPLE. Он создаёт 2 временные таблицы из XML-документов из 2 разных столбца и возвращает SQL ResultSet с информацией о статусе доставки для клиента.

<?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 Возврат SQL-данных как части большого XML-документа

Следующий пример работает с частью документов PRODUCT.DESCRIPTION в базе данных SAMPLE. Он создаёт XML-документ, содержащий описание продукта (данные XML) и информацию о ценах (данные SQL).

<?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() - Выполняет подготовленный SQL-запрос
  • db2_prepare() - Подготавливает SQL-запрос к выполнению


Выполняет подготовленный SQL-запрос

  • « db2_exec
  • db2_fetch_array »
  • PHP Manual
  • Функции IBM DB2
  • Выполняет подготовленный SQL-запрос

db2_execute

(PECL ibm_db2 >= 1.0.0)

db2_execute — Выполняет подготовленный SQL-запрос

Описание

db2_execute(resource $stmt, array $parameters = []): bool

db2_execute() выполняет SQL-запрос, подготовленный с помощью db2_prepare().

Если SQL-запрос возвращает набор результатов, например, инструкция SELECT или CALL для хранимой процедуры, которая возвращает один или несколько наборов результатов, вы можете получить строку как массив из ресурса stmt, используя db2_fetch_assoc(), db2_fetch_both()или db2_fetch_array(). В качестве альтернативы вы можете использовать db2_fetch_row() для перемещения указателя набора результатов на следующую строку и выборки столбца из этой строки с помощью db2_result().

Обратитесь к db2_prepare() для краткого обсуждения преимуществ использования db2_prepare() и db2_execute() вместо db2_exec().

Список параметров

stmt

Подготовленный запрос, возвращаемый функцией db2_prepare().

parameters

Массив входных параметров, соответствующих любым маркерам параметров, содержащимся в подготовленном запросе.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Подготовка и выполнение SQL-запроса с маркерами параметров

В следующем примере подготавливается запрос INSERT, который принимает четыре маркера параметров, а затем выполняет итерацию по массиву массивов, содержащих входные значения, которые необходимо передать в 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 "Успешно добавлен новый питомец.";
}
}
?>

Результат выполнения данного примера:

Успешно добавлен новый питомец.

Пример #2 Вызов хранимой процедуры с параметром OUT

В следующем примере подготавливается запрос CALL, который принимает один маркер параметра, представляющий параметр OUT, связывает переменную PHP $my_pets с параметром с помощью db2_bind_param(), а затем вызывает db2_execute() для выполнения запроса CALL. После выполнения запроса CALL хранимой процедуры значение $num_pets изменяется, чтобы отразить значение, возвращаемое хранимой процедурой для этого параметра OUT.

<?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 "У меня $num_pets домашних животных!";
?>

Результат выполнения данного примера:

У меня 7 домашних животных!

Пример #3 Возврат XML-данных как SQL ResultSet

В следующем примере показано, как работать с документами, хранящимися в столбце XML с помощью базы данных SAMPLE. Используя довольно простой SQL/XML, этот пример возвращает некоторые узлы в XML-документе в формате SQL ResultSet, с которым знакомо большинство пользователей.

<?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 Выполнение "JOIN" с данными XML

Следующий пример работает с документами, хранящимися в 2 разных столбцах XML в базе данных SAMPLE. Он создаёт 2 временные таблицы из XML-документов из 2 разных столбца и возвращает SQL ResultSet с информацией о статусе доставки для клиента.

<?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 Возврат SQL-данных как части большого XML-документа

Следующий пример работает с частью документов PRODUCT.DESCRIPTION в базе данных SAMPLE. Он создаёт XML-документ, содержащий описание продукта (данные XML) и информацию о ценах (данные SQL).

<?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() - Выполняет SQL-запрос напрямую
  • db2_fetch_array() - Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов
  • db2_fetch_assoc() - Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов
  • db2_fetch_both() - Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов
  • db2_fetch_row() - Устанавливает указатель набора результатов на следующую строку или запрошенную строку
  • db2_prepare() - Подготавливает SQL-запрос к выполнению
  • db2_result() - Возвращает один столбец из строки в наборе результатов


Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов

  • « db2_execute
  • db2_fetch_assoc »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов

db2_fetch_array

(PECL ibm_db2 >= 1.0.1)

db2_fetch_array — Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов

Описание

db2_fetch_array(resource $stmt, int $row_number = -1): array|false

Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов. Индекс столбцов начинается с 0.

Список параметров

stmt

Допустимый ресурс stmt, содержащий набор результатов.

row_number

Запрашивает конкретную строку по индексу (начинается с 1) из набора результатов. Передача параметра приводит к предупреждению PHP, если в наборе результатов используется курсор "forward-only".

Возвращаемые значения

Возвращает индексированный массив (начинается с 0) со значениями столбцов, индексированными по позиции столбца, представляющий следующую или запрошенную строку в наборе результатов. Возвращает false, если в наборе результатов не осталось строк или если строка, запрошенная row_number, не существует в наборе результатов.

Примеры

Пример #1 Перебор курсором "forward-only"

Если вы вызываете db2_fetch_array() без определённого номера строки, он автоматически получает следующую строку в наборе результатов.

<?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 Получение определённых строк с помощью db2_fetch_array() из прокручиваемого курсора

Если в вашем наборе результатов используется прокручиваемый курсор, вы можете вызвать db2_fetch_array() с определённым номером строки. В следующем примере извлекается каждая вторая строка в наборе результатов, начиная со второй строки.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_array($result, $i)) {
printf ("%-5d %-16s %-32s %10s\n",
$row[0], $row[1], $row[2], $row[3]);
$i = $i + 2;
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Смотрите также

  • db2_fetch_assoc() - Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов
  • db2_fetch_both() - Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов
  • db2_fetch_object() - Возвращает объект со свойствами, представляющими столбцы в выбранной строке
  • db2_fetch_row() - Устанавливает указатель набора результатов на следующую строку или запрошенную строку
  • db2_result() - Возвращает один столбец из строки в наборе результатов


Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов

  • « db2_fetch_array
  • db2_fetch_both »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов

db2_fetch_assoc

(PECL ibm_db2 >= 1.0.0)

db2_fetch_assoc — Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов

Описание

db2_fetch_assoc(resource $stmt, int $row_number = -1): array|false

Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов.

Список параметров

stmt

Допустимый ресурс stmt, содержащий набор результатов.

row_number

Запрашивает конкретную строку по индексу (начинается с 1) из набора результатов. Передача параметра приводит к предупреждению PHP, если в наборе результатов используется курсор "forward-only".

Возвращаемые значения

Возвращает ассоциативный массив со значениями столбцов, проиндексированными по имени столбца, представляющий следующую или запрошенную строку в наборе результатов. Возвращает false, если в наборе результатов не осталось строк или если строка, запрошенная row_number, не существует в наборе результатов.

Примеры

Пример #1 Перебор курсором "forward-only"

Если вы вызываете db2_fetch_assoc() без определённого номера строки, он автоматически получает следующую строку в наборе результатов.

<?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 Получение определённых строк с помощью db2_fetch_assoc() из прокручиваемого курсора

Если в вашем наборе результатов используется прокручиваемый курсор, вы можете вызвать db2_fetch_assoc() с определённым номером строки. В следующем примере извлекается каждая вторая строка в наборе результатов, начиная со второй строки.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_assoc($result, $i)) {
printf ("%-5d %-16s %-32s %10s\n",
$row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
$i = $i + 2;
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Смотрите также

  • db2_fetch_array() - Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов
  • db2_fetch_both() - Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов
  • db2_fetch_object() - Возвращает объект со свойствами, представляющими столбцы в выбранной строке
  • db2_fetch_row() - Устанавливает указатель набора результатов на следующую строку или запрошенную строку
  • db2_result() - Возвращает один столбец из строки в наборе результатов


Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов

  • « db2_fetch_assoc
  • db2_fetch_object »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов

db2_fetch_both

(PECL ibm_db2 >= 1.0.0)

db2_fetch_both — Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов

Описание

db2_fetch_both(resource $stmt, int $row_number = -1): array|false

Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов. Обратите внимание, что строка, возвращаемая db2_fetch_both(), требует больше памяти, чем массивы с одним индексом, возвращаемые db2_fetch_assoc() или db2_fetch_array().

Список параметров

stmt

Допустимый ресурс stmt, содержащий набор результатов.

row_number

Запрашивает конкретную строку по индексу (начинается с 1) из набора результатов. Передача параметра приводит к предупреждению PHP, если в наборе результатов используется курсор "forward-only".

Возвращаемые значения

Возвращает ассоциативный массив со значениями столбцов, проиндексированными как по имени столбца, так и по индексу столбца (начиная с 0). Массив представляет следующую или запрошенную строку в наборе результатов. Возвращает false, если в наборе результатов не осталось строк или если строка, запрошенная row_number, не существует в наборе результатов.

Примеры

Пример #1 Перебор курсором "forward-only"

Если вы вызываете db2_fetch_both() без определённого номера строки, он автоматически получает следующую строку в наборе результатов. В следующем примере доступ к столбцам в возвращаемом массиве осуществляется как по имени столбца, так и по числовому индексу.

<?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 Получение определённых строк с помощью db2_fetch_both() из прокручиваемого курсора

Если в вашем наборе результатов используется прокручиваемый курсор, вы можете вызвать db2_fetch_both() с определённым номером строки. В следующем примере извлекается каждая вторая строка в наборе результатов, начиная со второй строки.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_both($result, $i)) {
printf ("%-5d %-16s %-32s %10s\n",
$row[0], $row['NAME'], $row[2], $row['WEIGHT']);
$i = $i + 2;
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Смотрите также

  • db2_fetch_array() - Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов
  • db2_fetch_assoc() - Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов
  • db2_fetch_object() - Возвращает объект со свойствами, представляющими столбцы в выбранной строке
  • db2_fetch_row() - Устанавливает указатель набора результатов на следующую строку или запрошенную строку
  • db2_result() - Возвращает один столбец из строки в наборе результатов


Возвращает объект со свойствами, представляющими столбцы в выбранной строке

  • « db2_fetch_both
  • db2_fetch_row »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает объект со свойствами, представляющими столбцы в выбранной строке

db2_fetch_object

(PECL ibm_db2 >= 1.0.0)

db2_fetch_object — Возвращает объект со свойствами, представляющими столбцы в выбранной строке

Описание

db2_fetch_object(resource $stmt, int $row_number = -1): stdClass|false

Возвращает объект, в котором каждое свойство представляет столбец, возвращённый в строке, полученной из набора результатов.

Список параметров

stmt

Допустимый ресурс stmt, содержащий набор результатов.

row_number

Запрашивает конкретную строку по индексу (начинается с 1) из набора результатов. Передача параметра приводит к предупреждению PHP, если в наборе результатов используется курсор "forward-only".

Возвращаемые значения

Возвращает объект, представляющий одну строку в наборе результатов. Свойства объекта сопоставляются с именами столбцов в наборе результатов.

Серверы баз данных IBM DB2, Cloudscape и Apache Derby обычно переводят имена столбцов в верхний регистр, поэтому свойства объекта будут отражать этот регистр.

Если запрос SELECT вызывает скалярную функцию для изменения значения столбца, серверы баз данных возвращают номер столбца как имя столбца в наборе результатов. Если требуется более осмысленное имя столбца и свойство объекта, вы можете использовать конструкцию AS, чтобы присвоить имя столбцу в наборе результатов.

Возвращает false, если ни одна строка не была получена.

Примеры

Пример #1 Пример использования db2_fetch_object()

В следующем примере выполняется запрос SELECT со скалярной функцией RTRIM, которая удаляет пробелы в конце столбца. Вместо того, чтобы создавать объект со свойствами "BREED" и "2", мы используем конструкцию AS в запросе SELECT для присвоения имени "name" изменённому столбцу. Сервер базы данных переводит имена столбцов в верхний регистр, в результате чего получается объект со свойствами "BREED" и "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 "Иди сюда, {$pet->NAME}, мой маленький {$pet->BREED}!";
}
db2_close($conn);
}
?>

Результат выполнения данного примера:

Иди сюда, Пушок, мой маленький котёнок!

Смотрите также

  • db2_fetch_array() - Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов
  • db2_fetch_assoc() - Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов
  • db2_fetch_both() - Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов
  • db2_fetch_row() - Устанавливает указатель набора результатов на следующую строку или запрошенную строку
  • db2_result() - Возвращает один столбец из строки в наборе результатов


Устанавливает указатель набора результатов на следующую строку или запрошенную строку

  • « db2_fetch_object
  • db2_field_display_size »
  • PHP Manual
  • Функции IBM DB2
  • Устанавливает указатель набора результатов на следующую строку или запрошенную строку

db2_fetch_row

(PECL ibm_db2 >= 1.0.0)

db2_fetch_row — Устанавливает указатель набора результатов на следующую строку или запрошенную строку

Описание

db2_fetch_row(resource $stmt, int $row_number = -1): bool

Используйте db2_fetch_row() для итерации по набору результатов или для указания на определённую строку в наборе результатов, если вы запросили прокручиваемый курсор.

Чтобы получить отдельные поля из набора результатов, вызовите функцию db2_result().

Вместо того, чтобы вызывать db2_fetch_row() и
db2_result(), большинство приложений будет вызывать одну
из функций db2_fetch_assoc(), db2_fetch_both()
или db2_fetch_array(), чтобы продвинуть указатель набора результатов
и вернуть полную строку в виде массива.

Список параметров

stmt

Допустимый ресурс stmt.

row_number

С помощью прокручиваемых курсоров вы можете запросить конкретный номер строки в наборе результатов. Нумерация строк начинается с 1.

Возвращаемые значения

Возвращает true, если запрошенная строка существует в наборе результатов. Возвращает false, если запрошенная строка не существует в наборе результатов.

Примеры

Пример #1 Итерации по набору результатов

В следующем примере показано, как выполнить итерацию по набору результатов с помощью db2_fetch_row() и получить столбцы из набора результатов с помощью 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 Рекомендуемые альтернативы db2_fetch_row/db2_result для i5/OS

В i5/OS рекомендуется использовать db2_fetch_both(),
db2_fetch_array() или db2_fetch_object()
вместо db2_fetch_row()/db2_result().
Обычно у db2_fetch_row()/db2_result() больше проблем
с различными типами столбцов при преобразовании EBCIDIC в ASCII,
включая возможное усечение в DBCS приложениях.
Вы также можете обнаружить, что производительность db2_fetch_both(),
db2_fetch_array() и db2_fetch_object()
превосходит 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() - Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов
  • db2_fetch_assoc() - Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов
  • db2_fetch_both() - Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов
  • db2_fetch_object() - Возвращает объект со свойствами, представляющими столбцы в выбранной строке
  • db2_result() - Возвращает один столбец из строки в наборе результатов


Возвращает максимальное количество байтов, необходимое для отображения столбца

  • « db2_fetch_row
  • db2_field_name »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает максимальное количество байтов, необходимое для отображения столбца

db2_field_display_size

(PECL ibm_db2 >= 1.0.0)

db2_field_display_size — Возвращает максимальное количество байтов, необходимое для отображения столбца

Описание

db2_field_display_size(resource $stmt, int|string $column): int|false

Возвращает максимальное количество байтов, необходимое для отображения столбца в наборе результатов.

Список параметров

stmt

Задаёт ресурс оператора, содержащий набор результатов.

column

Задаёт столбец в наборе результатов. Это может быть целое число, представляющее индекс столбца (начиная с 0) или строка, содержащая имя столбца.

Возвращаемые значения

Возвращает целочисленное значение с максимальным количеством байтов, необходимых для отображения указанного столбца. Если указанный столбец не существует в наборе результатов, db2_field_display_size() возвращает false.

Смотрите также

  • db2_field_name() - Возвращает имя столбца в наборе результатов
  • db2_field_num() - Возвращает позицию указанного столбца в наборе результатов
  • db2_field_precision() - Возвращает точность указанного столбца в наборе результатов
  • db2_field_scale() - Возвращает масштаб указанного столбца в наборе результатов
  • db2_field_type() - Возвращает тип данных указанного столбца в наборе результатов
  • db2_field_width() - Возвращает ширину текущего значения указанного столбца в наборе результатов


Возвращает имя столбца в наборе результатов

  • « db2_field_display_size
  • db2_field_num »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает имя столбца в наборе результатов

db2_field_name

(PECL ibm_db2 >= 1.0.0)

db2_field_name — Возвращает имя столбца в наборе результатов

Описание

db2_field_name(resource $stmt, int|string $column): string|false

Возвращает имя указанного столбца в наборе результатов.

Список параметров

stmt

Задаёт ресурс оператора, содержащий набор результатов.

column

Задаёт столбец в наборе результатов. Это может быть целое число, представляющее индекс столбца (начиная с 0) или строка, содержащая имя столбца.

Возвращаемые значения

Возвращает строку, содержащую имя указанного столбца. Если указанный столбец не существует в наборе результатов, db2_field_name() возвращает false.

Смотрите также

  • db2_field_display_size() - Возвращает максимальное количество байтов, необходимое для отображения столбца
  • db2_field_num() - Возвращает позицию указанного столбца в наборе результатов
  • db2_field_precision() - Возвращает точность указанного столбца в наборе результатов
  • db2_field_scale() - Возвращает масштаб указанного столбца в наборе результатов
  • db2_field_type() - Возвращает тип данных указанного столбца в наборе результатов
  • db2_field_width() - Возвращает ширину текущего значения указанного столбца в наборе результатов


Возвращает позицию указанного столбца в наборе результатов

  • « db2_field_name
  • db2_field_precision »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает позицию указанного столбца в наборе результатов

db2_field_num

(PECL ibm_db2 >= 1.0.0)

db2_field_num — Возвращает позицию указанного столбца в наборе результатов

Описание

db2_field_num(resource $stmt, int|string $column): int|false

Возвращает позицию указанного столбца в наборе результатов.

Список параметров

stmt

Задаёт ресурс оператора, содержащий набор результатов.

column

Задаёт столбец в наборе результатов. Это может быть целое число, представляющее индекс столбца (начиная с 0) или строка, содержащая имя столбца.

Возвращаемые значения

Возвращает целое число, содержащее индекс (начиная с 0) указанного столбца в наборе результатов. Если указанный столбец не существует в наборе результатов, db2_field_num() возвращает false.

Смотрите также

  • db2_field_display_size() - Возвращает максимальное количество байтов, необходимое для отображения столбца
  • db2_field_name() - Возвращает имя столбца в наборе результатов
  • db2_field_precision() - Возвращает точность указанного столбца в наборе результатов
  • db2_field_scale() - Возвращает масштаб указанного столбца в наборе результатов
  • db2_field_type() - Возвращает тип данных указанного столбца в наборе результатов
  • db2_field_width() - Возвращает ширину текущего значения указанного столбца в наборе результатов


Возвращает точность указанного столбца в наборе результатов

  • « db2_field_num
  • db2_field_scale »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает точность указанного столбца в наборе результатов

db2_field_precision

(PECL ibm_db2 >= 1.0.0)

db2_field_precision — Возвращает точность указанного столбца в наборе результатов

Описание

db2_field_precision(resource $stmt, int|string $column): int|false

Возвращает точность указанного столбца в наборе результатов.

Список параметров

stmt

Задаёт ресурс оператора, содержащий набор результатов.

column

Задаёт столбец в наборе результатов. Это может быть целое число, представляющее индекс столбца (начиная с 0) или строка, содержащая имя столбца.

Возвращаемые значения

Возвращает целое число, содержащее точность указанного столбца. Если указанный столбец не существует в наборе результатов, db2_field_precision() возвращает false.

Смотрите также

  • db2_field_display_size() - Возвращает максимальное количество байтов, необходимое для отображения столбца
  • db2_field_name() - Возвращает имя столбца в наборе результатов
  • db2_field_num() - Возвращает позицию указанного столбца в наборе результатов
  • db2_field_scale() - Возвращает масштаб указанного столбца в наборе результатов
  • db2_field_type() - Возвращает тип данных указанного столбца в наборе результатов
  • db2_field_width() - Возвращает ширину текущего значения указанного столбца в наборе результатов


Возвращает масштаб указанного столбца в наборе результатов

  • « db2_field_precision
  • db2_field_type »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает масштаб указанного столбца в наборе результатов

db2_field_scale

(PECL ibm_db2 >= 1.0.0)

db2_field_scale — Возвращает масштаб указанного столбца в наборе результатов

Описание

db2_field_scale(resource $stmt, int|string $column): int|false

Возвращает масштаб указанного столбца в наборе результатов.

Список параметров

stmt

Задаёт ресурс оператора, содержащий набор результатов.

column

Задаёт столбец в наборе результатов. Это может быть целое число, представляющее индекс столбца (начиная с 0) или строка, содержащая имя столбца.

Возвращаемые значения

Возвращает целое число, содержащее масштаб указанного столбца. Если указанный столбец не существует в наборе результатов, db2_field_scale() возвращает false.

Смотрите также

  • db2_field_display_size() - Возвращает максимальное количество байтов, необходимое для отображения столбца
  • db2_field_name() - Возвращает имя столбца в наборе результатов
  • db2_field_num() - Возвращает позицию указанного столбца в наборе результатов
  • db2_field_precision() - Возвращает точность указанного столбца в наборе результатов
  • db2_field_type() - Возвращает тип данных указанного столбца в наборе результатов
  • db2_field_width() - Возвращает ширину текущего значения указанного столбца в наборе результатов


Возвращает тип данных указанного столбца в наборе результатов

  • « db2_field_scale
  • db2_field_width »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает тип данных указанного столбца в наборе результатов

db2_field_type

(PECL ibm_db2 >= 1.0.0)

db2_field_type — Возвращает тип данных указанного столбца в наборе результатов

Описание

db2_field_type(resource $stmt, int|string $column): string|false

Возвращает тип данных указанного столбца в наборе результатов.

Список параметров

stmt

Задаёт ресурс оператора, содержащий набор результатов.

column

Задаёт столбец в наборе результатов. Это может быть либо целое число, представляющее позицию столбца с индексом 0, либо строка, содержащая имя столбца.

Возвращаемые значения

Возвращает строку, содержащую определённый тип данных указанного столбца. Если указанный столбец не существует в наборе результатов, db2_field_type() возвращает false.

Смотрите также

  • db2_field_display_size() - Возвращает максимальное количество байтов, необходимое для отображения столбца
  • db2_field_name() - Возвращает имя столбца в наборе результатов
  • db2_field_num() - Возвращает позицию указанного столбца в наборе результатов
  • db2_field_precision() - Возвращает точность указанного столбца в наборе результатов
  • db2_field_scale() - Возвращает масштаб указанного столбца в наборе результатов
  • db2_field_width() - Возвращает ширину текущего значения указанного столбца в наборе результатов


Возвращает ширину текущего значения указанного столбца в наборе результатов

  • « db2_field_type
  • db2_foreign_keys »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает ширину текущего значения указанного столбца в наборе результатов

db2_field_width

(PECL ibm_db2 >= 1.0.0)

db2_field_width — Возвращает ширину текущего значения указанного столбца в наборе результатов

Описание

db2_field_width(resource $stmt, int|string $column): int|false

Возвращает ширину текущего значения указанного столбца в наборе результатов. Это максимальная ширина столбца для типа данных фиксированной длины или фактическая ширина столбца для типа данных переменной длины.

Список параметров

stmt

Задаёт ресурс оператора, содержащий набор результатов.

column

Задаёт столбец в наборе результатов. Это может быть либо целое число, представляющее позицию столбца с индексом 0, либо строка, содержащая имя столбца.

Возвращаемые значения

Возвращает целое число, содержащее ширину указанного столбца символьного или двоичного типа данных в наборе результатов. Если указанный столбец не существует в наборе результатов, db2_field_width() возвращает false.

Смотрите также

  • db2_field_display_size() - Возвращает максимальное количество байтов, необходимое для отображения столбца
  • db2_field_name() - Возвращает имя столбца в наборе результатов
  • db2_field_num() - Возвращает позицию указанного столбца в наборе результатов
  • db2_field_precision() - Возвращает точность указанного столбца в наборе результатов
  • db2_field_scale() - Возвращает масштаб указанного столбца в наборе результатов
  • db2_field_type() - Возвращает тип данных указанного столбца в наборе результатов


Возвращает набор результатов, в котором перечислены внешние ключи таблицы

  • « db2_field_width
  • db2_free_result »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает набор результатов, в котором перечислены внешние ключи таблицы

db2_foreign_keys

(PECL ibm_db2 >= 1.0.0)

db2_foreign_keys — Возвращает набор результатов, в котором перечислены внешние ключи таблицы

Описание

db2_foreign_keys(
resource $connection,
?string $qualifier,
?string $schema,
string $table_name
): resource

Возвращает набор результатов, в котором перечислены внешние ключи таблицы.

Список параметров

connection

Допустимое соединение с базой данных IBM DB2, Cloudscape или Apache Derby.

qualifier

Квалификатор для баз данных DB2, работающих на серверах OS/390 или z/OS. Для других баз данных передайте null или пустую строку.

schema

Схема, содержащая таблицы. Если schema равно null, db2_foreign_keys() соответствует схеме для текущего соединения.

table_name

Название таблицы.

Возвращаемые значения

Возвращает ресурс оператора с набором результатов, содержащим строки, описывающие внешние ключи для указанной таблицы. Набор результатов состоит из следующих столбцов:

Название столбца | Описание
PKTABLE_CAT | Название каталога таблицы, содержащей первичный ключ. Значение NULL, если в этой таблице нет каталогов.
PKTABLE_SCHEM | Название схемы таблицы, содержащей первичный ключ.
PKTABLE_NAME | Название таблицы, содержащей первичный ключ.
PKCOLUMN_NAME | Название столбца, содержащего первичный ключ.
FKTABLE_CAT | Название каталога таблицы, содержащей внешний ключ. Значение NULL, если в этой таблице нет каталогов.
FKTABLE_SCHEM | Название схемы таблицы, содержащей внешний ключ.
FKTABLE_NAME | Название таблицы, содержащей внешний ключ.
FKCOLUMN_NAME | Название столбца, содержащего внешний ключ.
KEY_SEQ | Индекс (начиная с 1) столбца в ключе.
UPDATE_RULE | Целочисленное значение, представляющее действие, применяемое к внешнему ключу, если операция SQL - UPDATE.
DELETE_RULE | Целочисленное значение, представляющее действие, применяемое к внешнему ключу, если операция SQL - DELETE.
FK_NAME | Имя внешнего ключа.
PK_NAME | Имя первичного ключа.
DEFERRABILITY | Целочисленное значение, представляющее, является ли возможность отсрочки внешнего ключа: SQL_INITIALLY_DEFERRED, SQL_INITIALLY_IMMEDIATE или SQL_NOT_DEFERRABLE.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_primary_keys() - Возвращает набор результатов, содержащий первичные ключи таблицы
  • db2_procedure_columns() - Возвращает набор результатов со списком параметров хранимой процедуры
  • db2_procedures() - Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных
  • db2_special_columns() - Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы
  • db2_statistics() - Возвращает набор результатов, содержащий индекс и статистику таблицы
  • db2_table_privileges() - Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных
  • db2_tables() - Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных


Освобождает ресурсы, связанные с набором результатов

  • « db2_foreign_keys
  • db2_free_stmt »
  • PHP Manual
  • Функции IBM DB2
  • Освобождает ресурсы, связанные с набором результатов

db2_free_result

(PECL ibm_db2 >= 1.0.0)

db2_free_result — Освобождает ресурсы, связанные с набором результатов

Описание

db2_free_result(resource $stmt): bool

Освобождает ресурсы системы и базы данных, связанные с набором результатов. Эти ресурсы неявно освобождаются при завершении скрипта, но вы можете вызвать db2_free_result(), чтобы явно освободить ресурсы набора результатов до завершения скрипта.

Список параметров

stmt

Допустимый ресурс выражения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • db2_free_stmt() - Освобождает ресурсы, связанные с указанным ресурсом выражения


Освобождает ресурсы, связанные с указанным ресурсом выражения

  • « db2_free_result
  • db2_get_option »
  • PHP Manual
  • Функции IBM DB2
  • Освобождает ресурсы, связанные с указанным ресурсом выражения

db2_free_stmt

(PECL ibm_db2 >= 1.0.0)

db2_free_stmt — Освобождает ресурсы, связанные с указанным ресурсом выражения

Описание

db2_free_stmt(resource $stmt): bool

Освобождает ресурсы системы и базы данных, связанные с ресурсом выражения. Эти ресурсы неявно освобождаются при завершении скрипта, но вы можете вызвать db2_free_stmt(), чтобы явно освободить ресурсы выражения до окончания работы скрипта.

Список параметров

stmt

Допустимый ресурс выражения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • db2_free_result() - Освобождает ресурсы, связанные с набором результатов


Извлекает значение параметра для ресурса оператора или ресурса соединения

  • « db2_free_stmt
  • db2_last_insert_id »
  • PHP Manual
  • Функции IBM DB2
  • Извлекает значение параметра для ресурса оператора или ресурса соединения

db2_get_option

(PECL ibm_db2 >= 1.6.0)

db2_get_option — Извлекает значение параметра для ресурса оператора или ресурса соединения

Описание

db2_get_option(resource $resource, string $option): string|false

Извлекает значение указанного параметра для ресурса оператора или ресурса соединения.

Список параметров

resource

Допустимый ресурс оператора, возвращаемый db2_prepare() или допустимый ресурс соединения, возвращаемый db2_connect() или db2_pconnect().

option

Допустимый оператор или варианты подключения. Следующие новые параметры доступны в ibm_db2 версии 1.6.0. Они предоставляют полезную информацию для отслеживания, которую можно установить во время выполнения с помощью db2_get_option().

Замечание:

Предыдущие версии ibm_db2 не поддерживают эти новые параметры.

Когда устанавливается значение в каждой опции, некоторые серверы могут не обрабатывать всю предоставленную длину и могут усекать значение.

Чтобы обеспечить правильное преобразование данных, указанных в каждой опции, при передаче в хост-систему, используйте только символы от A до Z, от 0 до 9, знак подчёркивания (_) или точку (.).

userid

SQL_ATTR_INFO_USERID - Указатель на символьную строку с завершающим нулём, используемую для идентификации ID пользователя клиента, отправляемого на сервер базы данных хоста при использовании DB2 Connect.

Замечание:

Серверы DB2 для z/OS и OS/390 поддерживают длину до 16 символов. Идентификатор пользователя не следует путать с идентификатором пользователя для аутентификации, он используется только для целей идентификации и не используется для какой-либо авторизации.

acctstr

SQL_ATTR_INFO_ACCTSTR - Указатель на символьную строку с завершающим нулём, используемую для идентификации учётной строки клиента, отправляемой на сервер базы данных хоста при использовании DB2 Connect.

Замечание:

Серверы DB2 для z/OS и OS/390 поддерживают длину до 200 символов.

applname

SQL_ATTR_INFO_APPLNAME - Указатель на символьную строку с завершающим нулём, используемую для идентификации имени клиентского приложения, отправляемого на сервер базы данных хоста при использовании DB2 Connect.

Замечание:

Серверы DB2 для z/OS и OS/390 поддерживают длину до 32 символов.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME - Указатель на символьную строку с завершающим нулём, используемую для идентификации имени клиентского приложения, отправляемого на сервер базы данных хоста при использовании DB2 Connect.

Замечание:

Серверы DB2 для z/OS и OS/390 поддерживают длину до 18 символов.

В следующей таблице указаны параметры, совместимые с доступными типами ресурсов:

Матрица параметров ресурсов
Ключ | Значение | Тип ресурса
 |  | 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 | -

Возвращаемые значения

Возвращает текущую настройку атрибута подключения, предоставленную в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Установка и получение параметров через ресурс подключения

<?php
/* Параметры подключения к базе данных */
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

/* Получение ресурса подключения */
$conn = db2_connect($database, $user, $password);

echo "Атрибуты клиента, передаваемые через строку подключения:\n";

/* Создайте массив ассоциативных опций с допустимыми парами "ключ-значение" */
/* Назначьте атрибуты через строку подключения */
/* Доступ к указанным параметрам */
$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 "Атрибуты клиента прошли после подключения:\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";
?>

Результат выполнения данного примера:

Атрибуты клиента, передаваемые через строку подключения
db2inst1
account
myapp
workstation
Атрибуты клиента прошли после подключения:
db2inst1
account
myapp
workstation

Смотрите также

  • db2_connect() - Возвращает соединение с базой данных
  • db2_cursor_type() - Возвращает тип курсора, который используется в ресурсе оператора
  • db2_exec() - Выполняет SQL-запрос напрямую
  • db2_set_option() - Установка опции для соединения или ресурса оператора
  • db2_pconnect() - Возвращает постоянное соединение с базой данных
  • db2_prepare() - Подготавливает SQL-запрос к выполнению


Возвращает автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении

  • « db2_get_option
  • db2_lob_read »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении

db2_last_insert_id

(PECL ibm_db2 >= 1.7.1)

db2_last_insert_id — Возвращает автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении

Описание

db2_last_insert_id(resource $resource): ?string

Возвращает автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении.

На результат этой функции не влияет ни одно из следующего:

  • Оператор INSERT для одной строки с VALUES для таблицы без столбца идентификаторов.

  • Оператор INSERT для нескольких строк с VALUES.

  • Оператор INSERT с полной выборкой.

  • Оператор ROLLBACK TO SAVEPOINT.

Список параметров

resource

Допустимый ресурс подключения, возвращаемый db2_connect() или db2_pconnect(). Значение этого параметра не может быть ресурсом оператора или ресурсом набора результатов.

Возвращаемые значения

Возвращает автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении.

Примеры

Пример #1 Пример использования db2_last_insert_id()

В следующем примере показано, как вернуть автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении.

<?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);

/* Проверка на вставку одной строки. */
$stmt = db2_exec($conn, $insertTable);
$ret = db2_last_insert_id($conn);
if($ret) {
echo "Последний идентификатор : " . $ret . "\n";
} else {
echo "Последний идентификатор отсутствует.\n";
}

db2_close($conn);
}
else {
echo "Ошибка соединения.";
}
?>

Результат выполнения данного примера:

Последний идентификатор : 1


Получает определённый пользователем размер LOB-файлов при каждом вызове

  • « db2_last_insert_id
  • db2_next_result »
  • PHP Manual
  • Функции IBM DB2
  • Получает определённый пользователем размер LOB-файлов при каждом вызове

db2_lob_read

(PECL ibm_db2 >= 1.6.0)

db2_lob_read — Получает определённый пользователем размер LOB-файлов при каждом вызове

Описание

db2_lob_read(resource $stmt, int $colnum, int $length): string|false

Используйте db2_lob_read() для итерации по указанному столбцу набора результатов и получения заданного пользователем размера LOB-данных.

Список параметров

stmt

Допустимый ресурс stmt, содержащий LOB-данные.

colnum

Допустимый номер столбца в наборе результатов ресурса stmt.

length

Размер LOB-данных, извлекаемых из ресурса stmt.

Возвращаемые значения

Возвращает количество данных, указанных пользователем. Возвращает false, если данные не могут быть получены.

Примеры

Пример #1 Итерации по разным типам данных

<?php

/* Параметры подключения к базе данных */
$db = 'SAMPLE';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Получение ресурса подключения */
$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;
/* Чтение LOB-данных */
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;
/* Чтенеи LOB-данных */
while ($data = db2_lob_read($result, 2, 6)) {
echo "Loop $i: $data\n";
$i = $i + 1;
}
} else {
echo 'Нет соединения: ' . 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() - Связывает переменную PHP с параметром SQL-выражения
  • db2_exec() - Выполняет SQL-запрос напрямую
  • db2_execute() - Выполняет подготовленный SQL-запрос
  • db2_fetch_row() - Устанавливает указатель набора результатов на следующую строку или запрошенную строку
  • db2_prepare() - Подготавливает SQL-запрос к выполнению
  • db2_result() - Возвращает один столбец из строки в наборе результатов


Запрашивает следующий набор результатов из хранимой процедуры

  • « db2_lob_read
  • db2_num_fields »
  • PHP Manual
  • Функции IBM DB2
  • Запрашивает следующий набор результатов из хранимой процедуры

db2_next_result

(PECL ibm_db2 >= 1.0.0)

db2_next_result — Запрашивает следующий набор результатов из хранимой процедуры

Описание

db2_next_result(resource $stmt): resource|false

Хранимая процедура может возвращать ноль или более наборов результатов. Хотя вы обрабатываете первый набор результатов точно так же, как и результаты, возвращаемые простым оператором SELECT, для получения второго и последующих наборов результатов из хранимой процедуры вы должны вызвать функцию db2_next_result() и вернуть результат в переменную PHP с уникальным именем.

Список параметров

stmt

Подготовленный оператор, возвращаемый функцией db2_exec() или db2_execute().

Возвращаемые значения

Возвращает новый ресурс оператора, содержащий следующий набор результатов, если хранимая процедура вернула другой набор результатов. Возвращает false, если хранимая процедура не вернула другой набор результатов.

Примеры

Пример #1 Вызов хранимой процедуры, возвращающей несколько наборов результатов

В следующем примере вызывается хранимая процедура, которая возвращает три набора результатов. Первый набор результатов извлекается непосредственно из того же ресурса операторов, для которого вызывается оператор CALL, а второй и третий наборы результатов извлекаются из ресурсов операторов, возвращаемых вызовами функции db2_next_result().

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
$stmt = db2_exec($conn, 'CALL multiResults()');

print "Получение первого набора результатов\n";
while ($row = db2_fetch_array($stmt)) {
var_dump($row);
}

print "\nПолучение второго набора результатов\n";
$res = db2_next_result($stmt);
if ($res) {
while ($row = db2_fetch_array($res)) {
var_dump($row);
}
}

print "\nПолучение третьего набора результатов\n";
$res2 = db2_next_result($stmt);
if ($res2) {
while ($row = db2_fetch_array($res2)) {
var_dump($row);
}
}

db2_close($conn);
}
?>

Результат выполнения данного примера:

Получение первого набора результатов
array(2) {
  [0]=>
  string(16) "Bubbles         "
  [1]=>
  int(3)
}
array(2) {
  [0]=>
  string(16) "Gizmo           "
  [1]=>
  int(4)
}

Получение второго набора результатов
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"
}

Получение третьего набора результатов
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|false

Возвращает количество полей в результирующем наборе. Это полезно при обработке результирующих наборов динамически сформированных запросов, или в случае использования хранимых процедур.

Список параметров

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() - Выполняет подготовленный SQL-запрос
  • db2_field_display_size() - Возвращает максимальное количество байтов, необходимое для отображения столбца
  • db2_field_name() - Возвращает имя столбца в наборе результатов
  • db2_field_num() - Возвращает позицию указанного столбца в наборе результатов
  • db2_field_precision() - Возвращает точность указанного столбца в наборе результатов
  • db2_field_scale() - Возвращает масштаб указанного столбца в наборе результатов
  • db2_field_type() - Возвращает тип данных указанного столбца в наборе результатов
  • db2_field_width() - Возвращает ширину текущего значения указанного столбца в наборе результатов


Возвращает количество строк, затронутых SQL-запросом

  • « db2_num_fields
  • db2_pclose »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает количество строк, затронутых SQL-запросом

db2_num_rows

(PECL ibm_db2 >= 1.0.0)

db2_num_rows — Возвращает количество строк, затронутых SQL-запросом

Описание

db2_num_rows(resource $stmt): int|false

Возвращает количество строк, удалённых, добавленных или обновлённых SQL-запросом.

Чтобы определить количество строк, которые будут возвращены оператором SELECT, введите SELECT COUNT(*) с теми же параметрами, что и предполагаемый оператор SELECT и получите значение.

Если логика вашего приложения проверяет количество строк, возвращаемых оператором SELECT и ветвей, если количество строк равно 0, рассмотрите возможность изменения вашего приложения, чтобы попытаться вернуть первую строку одной из функций db2_fetch_assoc(), db2_fetch_both(), db2_fetch_array() или db2_fetch_row() и переходите, если функция выборки возвращает false.

Замечание:

Если вы выполняете оператор SELECT с помощью прокручиваемого курсора, db2_num_rows() возвращает количество строк, возвращаемых оператором SELECT. Однако накладные расходы, связанные с прокручиваемыми курсорами, значительно ухудшают производительность вашего приложения, поэтому, если это единственная причина, по которой вы рассматриваете возможность использования прокручиваемых курсоров, вам следует использовать курсор "forward-only" и либо вызвать SELECT COUNT(*), либо полагаться на логическое значение (bool), которое возвращает значение функций выборки для достижения эквивалентной функциональности с гораздо большей производительностью.

Список параметров

stmt

Допустимый ресурс stmt, содержащий набор результатов.

Возвращаемые значения

Возвращает количество строк, затронутых последним SQL-оператором, выданным указанным дескриптором оператора или false в случае возникновения ошибки.


Закрывает постоянное соединение с базой данных

  • « db2_num_rows
  • db2_pconnect »
  • PHP Manual
  • Функции IBM DB2
  • Закрывает постоянное соединение с базой данных

db2_pclose

(PECL ibm_db2 >= 1.8.0)

db2_pclose — Закрывает постоянное соединение с базой данных

Описание

db2_pclose(resource $connection): bool

Функция закрывает клиентское соединение DB2, созданное с помощью db2_pconnect() и возвращает соответствующие ресурсы серверу базы данных.

Замечание:

Эта функция доступна только в i5/OS в ответ на запросы системного администратора i5/OS.

Если у вас есть постоянное клиентское соединение DB2, созданное с помощью db2_pconnect(), вы можете использовать эту функцию, чтобы закрыть соединение. Чтобы избежать значительных потерь производительности соединения, эту функцию следует использовать только в редких случаях, когда постоянное соединение перестало отвечать или постоянное соединение не будет требоваться в течение длительного периода времени.

Список параметров

connection

Задаёт активное соединение клиента DB2.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Закрытие постоянного соединения

В следующем примере демонстрируется успешная попытка закрыть соединение с базой данных IBM DB2 i5/OS.

<?php
$conn = db2_pconnect('', '', '');
$rc = db2_pclose($conn);
if ($rc) {
echo "Соединение было успешно закрыто.";
}
?>

Результат выполнения данного примера:

Соединение было успешно закрыто.

Смотрите также

  • db2_close() - Закрывает соединение с базой данных
  • db2_pconnect() - Возвращает постоянное соединение с базой данных


Возвращает постоянное соединение с базой данных

  • « db2_pclose
  • db2_prepare »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает постоянное соединение с базой данных

db2_pconnect

(PECL ibm_db2 >= 1.0.0)

db2_pconnect — Возвращает постоянное соединение с базой данных

Описание

db2_pconnect(
string $database,
?string $username,
?string $password,
array $options = []
): resource|false

Возвращает постоянное соединение с базой данных IBM DB2 Universal Database, IBM Cloudscape или Apache Derby.

Для получения дополнительной информации о постоянных соединениях смотрите Постоянные соединения с базами данных.

Вызов db2_close() в постоянном соединении всегда возвращает true, но базовое клиентское соединение DB2 остаётся открытым и ожидает обслуживания следующего соответствующего запроса db2_pconnect().

Пользователи, использующие ibm_db2 версии 1.9.0 или более поздней, должны знать, что модуль выполнит откат транзакции для постоянных соединений в конце запроса, тем самым завершив транзакцию. Это предотвращает перенос блока транзакции на следующий запрос, который использует это соединение, если выполнение скрипта завершается раньше, чем блок транзакции.

Список параметров

database

Псевдоним базы данных в клиентском каталоге DB2.

username

Имя пользователя, под которым производится подключение к базе данных.

password

Пароль, который используется при подключении к базе данных.

options

Ассоциативный массив параметров подключения, которые влияют на поведение подключения, где допустимыми ключами массива являются:

autocommit

Передача значения DB2_AUTOCOMMIT_ON включает автоматическую фиксацию для этого дескриптора соединения.

Передача значения DB2_AUTOCOMMIT_OFF выключает автоматическую фиксацию для этого дескриптора соединения.

DB2_ATTR_CASE

Передача значения DB2_CASE_NATURAL указывает, что имена столбцов возвращаются в естественном регистре.

Передача значения DB2_CASE_LOWER указывает, что имена столбцов возвращаются в нижнем регистре.

Передача значения DB2_CASE_UPPER указывает, что имена столбцов возвращаются в верхнем регистре.

CURSOR

Передача значения DB2_FORWARD_ONLY задаёт курсор только вперёд для ресурса оператора. Это тип курсора по умолчанию, который поддерживается на всех серверах баз данных.

Передача значения DB2_SCROLLABLE задаёт прокручиваемый курсор для ресурса оператора. Этот режим включает произвольный доступ к строкам в наборе результатов, но в настоящее время поддерживается только IBM DB2 Universal Database.

Следующая новая опция доступна в ibm_db2 версии 1.7.0 и новее.

trustedcontext

Передача значения DB2_TRUSTED_CONTEXT_ENABLE включает доверенный контекст для этого дескриптора соединения. Параметр нельзя установить с помощью db2_set_option().

Ключ работает только в том случае, если база данных каталогизирована (даже если база данных является локальной) или если вы укажете полный DSN при создании соединения.

Чтобы каталогизировать базу данных, используйте следующие команды:

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

Следующие новые параметры i5/OS доступны в ibm_db2 версии 1.5.1 и новее.

Подсказка

Конфликтующие атрибуты соединения, используемые вместе с постоянными соединениями, могут привести к неопределённым результатам в i5/OS. Политики сайта должны быть установлены для всех приложений, использующих каждый профиль пользователя с постоянным подключением. При использовании постоянных соединений предлагается значение по умолчанию DB2_AUTOCOMMIT_ON.

i5_lib

Символьное значение, указывающее библиотеку по умолчанию, которая будет использоваться для разрешения неквалифицированных ссылок на файлы. Недопустимо, если соединение использует режим именования системы.

i5_naming

Значение DB2_I5_NAMING_ON включает режим именования системы DB2 UDB CLI iSeries. Файлы квалифицируются с помощью разделителя косой черты (/). Неквалифицированные файлы разрешаются с использованием списка библиотек для задания.

Значение DB2_I5_NAMING_OFF отключает режим именования по умолчанию CLI DB2 UDB, который является именованием SQL. Файлы квалифицируются с использованием разделителя точки (.). Неквалифицированные файлы разрешаются с использованием либо библиотеки по умолчанию, либо текущего идентификатора пользователя.

i5_commit

Атрибут i5_commit должен быть установлен до вызова db2_pconnect(). Если значение изменяется после того, как соединение было установлено и соединение установлено с удалённым источником данных, изменение не вступит в силу до следующего успешного db2_pconnect() для дескриптора соединения.

Замечание:

Параметр php.ini ibm_db2.i5_allow_commit==0 или DB2_I5_TXN_NO_COMMIT является значением по умолчанию, но его можно изменить с помощью параметра i5_commit.

DB2_I5_TXN_NO_COMMIT - Контроль фиксации не используется.

DB2_I5_TXN_READ_UNCOMMITTED - Грязное чтение, неповторимые reads, and phantoms are possible.

DB2_I5_TXN_READ_COMMITTED - Грязное чтение невозможно. Возможны неповторяющееся чтение и фантомы.

DB2_I5_TXN_REPEATABLE_READ - Грязное чтение и неповторяющиеся читки невозможны. Возможны фантомы.

DB2_I5_TXN_SERIALIZABLE - Транзакции сериализуемы. Грязное чтение, неповторяющееся чтение и фантомы невозможны.

i5_query_optimize

DB2_FIRST_IO Все запросы оптимизированы с целью максимально быстрого возврата первой страницы вывода. Эта цель хорошо работает, когда вывод контролируется пользователем, который, скорее всего, отменит запрос после просмотра первой страницы выходных данных. Запросы, закодированные с предложением OPTIMIZE FOR nnn ROWS, соответствуют цели, указанной в предложении.

DB2_ALL_IO Все запросы оптимизированы с целью выполнить весь запрос о завершения в кратчайшие сроки. Это хороший вариант, когда выходные данные запроса записываются в файл или отчёт или когда интерфейс ставит выходные данные в очередь. Запросы, закодированные с предложением OPTIMIZE FOR nnn ROWS, соответствуют цели, указанной в предложении. Это значение по умолчанию.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON Значение включает схему распределения DB2 6X для увеличения размера столбца преобразования DBCS.

DB2_I5_DBCS_ALLOC_OFF Значение выключает схему распределения DB2 6X для увеличения размера столбца преобразования DBCS.

Замечание:

Параметр php.ini ibm_db2.i5_dbcs_alloc==0 или DB2_I5_DBCS_ALLOC_OFF является значением по умолчанию, но его можно изменить с помощью параметра i5_dbcs_alloc.

i5_date_fmt

DB2_I5_FMT_ISO - Используется формат даты Международной организации по стандартизации (ISO) yyyy-mm-dd. Это значение по умолчанию.

DB2_I5_FMT_USA - Используется формат даты США mm/dd/yyyy.

DB2_I5_FMT_EUR - Используется европейский формат даты dd.mm.yyyy.

DB2_I5_FMT_JIS - Используется японский формат даты yyyy-mm-dd.

DB2_I5_FMT_MDY - Используется формат даты mm/dd/yyyy.

DB2_I5_FMT_DMY - Используется формат даты dd/mm/yyyy.

DB2_I5_FMT_YMD - Используется формат даты yy/mm/dd.

DB2_I5_FMT_JUL - Используется юлианский формат даты yy/ddd.

DB2_I5_FMT_JOB - Используется задание по умолчанию.

i5_date_sep

DB2_I5_SEP_SLASH -В качестве разделителя даты используется косая черта (/). Это значение по умолчанию.

DB2_I5_SEP_DASH - В качестве разделителя даты используется тире (-).

DB2_I5_SEP_PERIOD - В качестве разделителя даты используется точка (.).

DB2_I5_SEP_COMMA - В качестве разделителя даты используется запятая (,).

DB2_I5_SEP_BLANK - В качестве разделителя даты используется пробел.

DB2_I5_SEP_JOB - Используется задание по умолчанию.

i5_time_fmt

DB2_I5_FMT_ISO - Используется формат времени Международной организации по стандартизации (ISO) hh.mm.ss. Это значение по умолчанию.

DB2_I5_FMT_USA - Используется формат времени США hh:mmxx, где xx - это AM или PM.

DB2_I5_FMT_EUR - Используется европейский формат времени hh.mm.ss.

DB2_I5_FMT_JIS - Используется японский промышленный стандартный формат времени hh:mm:ss.

DB2_I5_FMT_HMS - Используется формат hh:mm:ss.

i5_time_sep

DB2_I5_SEP_COLON - Двоеточие (:) используется как разделитель времени. Это значение по умолчанию.

DB2_I5_SEP_PERIOD - Точка (.) используется как разделитель времени.

DB2_I5_SEP_COMMA - Запятая (,) используется как разделитель времени.

DB2_I5_SEP_BLANK - Пробел используется как разделитель времени.

DB2_I5_SEP_JOB - Используется задание по умолчанию.

i5_decimal_sep

DB2_I5_SEP_PERIOD - В качестве десятичного разделителя используется точка (.). Это значение по умолчанию.

DB2_I5_SEP_COMMA - В качестве десятичного разделителя используется запятая (,).

DB2_I5_SEP_JOB - Используется задание по умолчанию.

Следующая новая опция i5/OS доступна в ibm_db2 версии 1.8.0 и новее.

i5_libl

Символьное значение, указывающее список библиотек, который будет использоваться для разрешения неквалифицированных ссылок на файлы. Укажите элементы списка библиотек, разделённые пробелами 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Замечание:

i5_libl вызывает qsys2/qcmdexc ('cmd',cmdlen), который доступен только в i5/OS V5R4 и новее.

Возвращаемые значения

Возвращает ресурс дескриптора подключения, в случае успешной попытки подключения. db2_pconnect() пытается повторно использовать существующий ресурс подключения, который точно соответствует параметрам database, username и password. Если попытка подключения не удалась, db2_pconnect() вернёт false.

Список изменений

Версия | Описание
ibm_db2 1.9.0 | Активные транзакции в постоянном соединении будут откатываться в конце каждого запроса.
ibm_db2 1.8.0 | Параметр i5_libl доступен для пользователей i5/OS.
ibm_db2 1.7.0 | Доступен параметр trustedcontext.
ibm_db2 1.5.1 | Параметры i5_lib, i5_naming, i5_commit, i5_query_optimize, i5_dbcs_alloc, i5_date_fmt, i5_date_sep, i5_time_fmt, i5_time_sep и i5_decimal_sep доступны для пользователей i5/OS.

Примеры

Пример #1 Пример использования db2_pconnect()

В следующем примере первый вызов db2_pconnect() возвращает новый ресурс постоянного соединения. Второй вызов db2_pconnect() возвращает ресурс постоянного соединения, который просто повторно использует первый ресурс постоянного соединения.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$pconn = db2_pconnect($database, $user, $password);

if ($pconn) {
echo "Постоянное соединение успешно установлено.";
}
else {
echo "Постоянное соединение завершилось ошибкой.";
}

$pconn2 = db2_pconnect($database, $user, $password);
if ($pconn) {
echo "Второе постоянное соединение успешно установлено.";
}
else {
echo "Второе постоянное соединение завершилось ошибкой";
}
?>

Результат выполнения данного примера:

Постоянное соединение успешно установлено.
Второе постоянное соединение успешно установлено.

Пример #2 Использование доверенного контекста

В следующем примере показано, как включить доверенный контекст, переключить пользователей и получить текущий идентификатор пользователя.

<?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 "Явное доверенное соединение успешно установлено.\n";

if(db2_get_option($tc_conn, "trustedcontext")) {
$userBefore = db2_get_option($tc_conn, "trusted_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");
// Сделайте больше в качестве доверенного пользователя.

if($userBefore != $userAfter) {
echo "Пользователь был переключён." . "\n";
}
}

db2_close($tc_conn);
}
else {
echo "Явное доверенное соединение завершилось ошибкой.\n";
}
?>

Результат выполнения данного примера:

Явное доверенное соединение успешно установлено
Пользователь был переключён.

Смотрите также

  • db2_connect() - Возвращает соединение с базой данных


Подготавливает SQL-запрос к выполнению

  • « db2_pconnect
  • db2_primary_keys »
  • PHP Manual
  • Функции IBM DB2
  • Подготавливает SQL-запрос к выполнению

db2_prepare

(PECL ibm_db2 >= 1.0.0)

db2_prepare — Подготавливает SQL-запрос к выполнению

Описание

db2_prepare(resource $connection, string $statement, array $options = []): resource|false

db2_prepare() создаёт подготовленный SQL-запрос, который может включать 0 или более маркеров параметров (символов ?), представляющих входные параметры, параметры вывода или входные параметры и параметры вывода. Вы можете передать параметры подготовленному запросу, используя db2_bind_param() или только для входных значений в виде массива, переданного в db2_execute().

Использование подготовленных запросов в вашем приложении даёт три основных преимущества:

  • Производительность: при использовании подготовленного запроса, сервер базы данных создаёт оптимизированный план доступа для извлечения данных с помощью этого запроса. Последующее выполнение подготовленного запроса с помощью db2_execute() позволяет операторам повторно использовать этот план доступа и позволяет избежать накладных расходов на динамическое создание нового плана доступа для каждого выполняемого вами запроса.

  • Безопасность: при использовании подготовленного запроса, вы можете включить маркеры параметров для входных значений. Когда вы выполняете подготовленный запрос с входными значениями для заполнителей, сервер базы данных проверяет каждое входное значение, чтобы убедиться, что тип соответствует определению столбца или определению параметра.

  • Расширенный функционал: Маркеры параметров не только позволяют передавать входные значения в подготовленные SQL-запросы, они также позволяют извлекать параметры OUT и INOUT из хранимых процедур с помощью db2_bind_param().

Список параметров

connection

Допустимая переменная ресурса подключения к базе данных, возвращаемая функцией db2_connect() или db2_pconnect().

statement

SQL-запрос, необязательно содержащий один или несколько маркеров параметров.

options

Ассоциативный массив, содержащий параметры запроса. Параметры можно использовать для запроса прокручиваемого курсора на серверах баз данных, поддерживающих эту функцию.

Описание допустимых опций запроса смотрите в разделе db2_set_option().

Возвращаемые значения

Возвращает ресурс оператора, если SQL-запрос был успешно проанализирован и подготовлен сервером базы данных. Возвращает false, если сервер базы данных вернул ошибку. Вы можете определить, какая ошибка была возвращена, вызвав db2_stmt_error() или db2_stmt_errormsg().

Примеры

Пример #1 Подготовка и выполнение SQL-запроса с маркерами параметров

В следующем примере подготавливается запрос INSERT, который принимает четыре маркера параметров, а затем выполняет итерацию по массиву массивов, содержащих входные значения, которые необходимо передать в 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() - Связывает переменную PHP с параметром SQL-выражения
  • db2_execute() - Выполняет подготовленный SQL-запрос
  • db2_stmt_error() - Возвращает строку, содержащую SQLSTATE, возвращённую SQL-оператором
  • db2_stmt_errormsg() - Возвращает строку, содержащую последнее сообщение об ошибке SQL-выражения


Возвращает набор результатов, содержащий первичные ключи таблицы

  • « db2_prepare
  • db2_procedure_columns »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает набор результатов, содержащий первичные ключи таблицы

db2_primary_keys

(PECL ibm_db2 >= 1.0.0)

db2_primary_keys — Возвращает набор результатов, содержащий первичные ключи таблицы

Описание

db2_primary_keys(
resource $connection,
?string $qualifier,
?string $schema,
string $table_name
): resource

Возвращает набор результатов, содержащий первичные ключи таблицы.

Список параметров

connection

Допустимое соединение с базой данных IBM DB2, Cloudscape или Apache Derby.

qualifier

Квалификатор для баз данных DB2, работающих на серверах OS/390 или z/OS. Для других баз данных передайте null или пустую строку.

schema

Схема, содержащая таблицы. Если schema равен null, db2_primary_keys() соответствует схеме для текущего соединения.

table_name

Название таблицы.

Возвращаемые значения

Возвращает ресурс оператора с набором результатов, содержащим строки, описывающие первичные ключи для указанной таблицы. Набор результатов состоит из следующих столбцов:

Название столбца | Описание
TABLE_CAT | Название каталога для таблицы, содержащей первичный ключ. Значение NULL, если в этой таблице нет каталогов.
TABLE_SCHEM | Название схемы таблицы, содержащей первичный ключ.
TABLE_NAME | Название таблицы, содержащей первичный ключ.
COLUMN_NAME | Название столбца, содержащего первичный ключ.
KEY_SEQ | Индекс столбца (начиная с 1) в ключе.
PK_NAME | Имя первичного ключа.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Возвращает набор результатов, в котором перечислены внешние ключи таблицы
  • db2_procedure_columns() - Возвращает набор результатов со списком параметров хранимой процедуры
  • db2_procedures() - Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных
  • db2_special_columns() - Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы
  • db2_statistics() - Возвращает набор результатов, содержащий индекс и статистику таблицы
  • db2_table_privileges() - Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных
  • db2_tables() - Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных


Возвращает набор результатов со списком параметров хранимой процедуры

  • « db2_primary_keys
  • db2_procedures »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает набор результатов со списком параметров хранимой процедуры

db2_procedure_columns

(PECL ibm_db2 >= 1.0.0)

db2_procedure_columns — Возвращает набор результатов со списком параметров хранимой процедуры

Описание

db2_procedure_columns(
resource $connection,
?string $qualifier,
string $schema,
string $procedure,
?string $parameter
): resource

Возвращает набор результатов, в котором перечислены параметры для одной или нескольких хранимых процедур.

Список параметров

connection

Допустимое соединение с базой данных IBM DB2, Cloudscape или Apache Derby.

qualifier

Квалификатор для баз данных DB2, работающих на серверах OS/390 или z/OS. Для других баз данных передайте null или пустую строку.

schema

Схема, содержащая процедуры. Параметр принимает шаблон поиска, содержащий _ и % в качестве подстановочных знаков.

procedure

Название процедуры. Параметр принимает шаблон поиска, содержащий _ и % в качестве подстановочных знаков.

parameter

Имя параметра. Параметр принимает шаблон поиска, содержащий _ и % в качестве подстановочных знаков. Если параметр равен null, возвращаются все параметры для указанных хранимых процедур.

Возвращаемые значения

Возвращает ресурс оператора с набором результатов, содержащим строки, описывающие параметры для хранимых процедур, соответствующие указанным параметрам. Строки состоят из следующих столбцов:

Название столбца | Описание
PROCEDURE_CAT | Каталог, содержащий таблицу. Значение null, если в этой таблице нет каталогов.
PROCEDURE_SCHEM | Имя схемы, содержащей хранимую процедуру.
PROCEDURE_NAME | Название процедуры.
COLUMN_NAME | Название параметра.
COLUMN_TYPE

Целочисленное значение, представляющее тип параметра:

Возвращаемое значение | Тип параметра
1 (SQL_PARAM_INPUT) | Входной (IN) параметр.
2 (SQL_PARAM_INPUT_OUTPUT) | Входной параметр/параметр вывода (INOUT).
3 (SQL_PARAM_OUTPUT) | Параметр (OUT) вывода.
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 | Возвращает целочисленное значение, представляющее код подтипа datetime или null для типов данных SQL, к которым это не относится.
CHAR_OCTET_LENGTH | Максимальная длина в октетах для параметра символьного типа данных, который соответствует COLUMN_SIZE для однобайтовых данных набора символов или null для несимвольных типов данных.
ORDINAL_POSITION | Индекс параметра (начиная с 1) в операторе CALL.
IS_NULLABLE | Строковое значение, где "YES" означает, что параметр принимает или возвращает значения null и "NO" означает, что параметр не принимает и не возвращает значения null.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Возвращает набор результатов, в котором перечислены внешние ключи таблицы
  • db2_primary_keys() - Возвращает набор результатов, содержащий первичные ключи таблицы
  • db2_procedures() - Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных
  • db2_special_columns() - Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы
  • db2_statistics() - Возвращает набор результатов, содержащий индекс и статистику таблицы
  • db2_table_privileges() - Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных
  • db2_tables() - Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных


Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных

  • « db2_procedure_columns
  • db2_result »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных

db2_procedures

(PECL ibm_db2 >= 1.0.0)

db2_procedures — Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных

Описание

db2_procedures(
resource $connection,
?string $qualifier,
string $schema,
string $procedure
): resource

Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных.

Список параметров

connection

Допустимое соединение с базой данных IBM DB2, Cloudscape или Apache Derby.

qualifier

Квалификатор для баз данных DB2, работающих на серверах OS/390 или z/OS. Для других баз данных передайте null или пустую строку.

schema

Схема, содержащая процедуры. Параметр принимает шаблон поиска, содержащий _ и % в качестве подстановочных знаков.

procedure

Название процедуры. Параметр принимает шаблон поиска, содержащий _ и % в качестве подстановочных знаков.

Возвращаемые значения

Возвращает ресурс оператора с набором результатов, содержащим строки, описывающие хранимые процедуры, соответствующие указанным параметрам. Строки состоят из следующих столбцов:

Название столбца | Описание
PROCEDURE_CAT | Каталог, содержащий таблицу. Значение null, если в этой таблице нет каталогов.
PROCEDURE_SCHEM | Имя схемы, содержащей хранимую процедуру.
PROCEDURE_NAME | Название процедуры.
NUM_INPUT_PARAMS | Количество входных (IN) параметров для хранимой процедуры.
NUM_OUTPUT_PARAMS | Количество параметров вывода (OUT) для хранимой процедуры.
NUM_RESULT_SETS | Количество наборов результатов, возвращаемых хранимой процедурой.
REMARKS | Любые комментарии о хранимой процедуре.
PROCEDURE_TYPE | Всегда возвращает 1, указывая, что хранимая процедура не возвращает возвращаемое значение.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Возвращает набор результатов, в котором перечислены внешние ключи таблицы
  • db2_primary_keys() - Возвращает набор результатов, содержащий первичные ключи таблицы
  • db2_procedure_columns() - Возвращает набор результатов со списком параметров хранимой процедуры
  • db2_special_columns() - Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы
  • db2_statistics() - Возвращает набор результатов, содержащий индекс и статистику таблицы
  • db2_table_privileges() - Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных
  • db2_tables() - Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных


Возвращает один столбец из строки в наборе результатов

  • « db2_procedures
  • db2_rollback »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает один столбец из строки в наборе результатов

db2_result

(PECL ibm_db2 >= 1.0.0)

db2_result — Возвращает один столбец из строки в наборе результатов

Описание

db2_result(resource $stmt, int|string $column): ?mixed

Используйте db2_result(), чтобы вернуть значение указанного столбца в текущей строке набора результатов. Вы должны вызвать db2_fetch_row() перед вызовом db2_result(), чтобы установить положение указателя набора результатов.

Список параметров

stmt

Допустимый ресурс stmt.

column

Либо целочисленный индекс столбца (начиная с 0) в наборе результатов, либо строка, соответствующая имени столбца.

Возвращаемые значения

Возвращает значение запрошенного поля, если поле существует в наборе результатов. Возвращает null, если поле не существует и выдаёт предупреждение.

Примеры

Пример #1 Пример использования db2_result()

В следующем примере показано, как выполнить итерацию по набору результатов с помощью db2_fetch_row() и получить столбцы из набора результатов с помощью db2_result().

<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
$name = db2_result($stmt, 0);
$breed = db2_result($stmt, 'BREED');
print "$name $breed";
}
?>

Результат выполнения данного примера:

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride

Смотрите также

  • db2_fetch_array() - Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов
  • db2_fetch_assoc() - Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов
  • db2_fetch_both() - Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов
  • db2_fetch_object() - Возвращает объект со свойствами, представляющими столбцы в выбранной строке
  • db2_fetch_row() - Устанавливает указатель набора результатов на следующую строку или запрошенную строку


Откатывает транзакцию

  • « db2_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() - Подтверждает транзакцию


Возвращает объект со свойствами, описывающими сервер базы данных DB2

  • « db2_rollback
  • db2_set_option »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает объект со свойствами, описывающими сервер базы данных DB2

db2_server_info

(PECL ibm_db2 >= 1.1.1)

db2_server_info — Возвращает объект со свойствами, описывающими сервер базы данных DB2

Описание

db2_server_info(resource $connection): stdClass|false

Функция возвращает объект со свойствами только для чтения, которые возвращают информацию о сервере баз данных IBM DB2, Cloudscape или Apache Derby. В следующей таблице перечислены свойства сервера базы данных:

Свойства сервера базы данных
Название свойства | Тип возвращаемого значения | Описание
DBMS_NAME | string | Имя сервера базы данных, к которому вы подключены. Для серверов DB2 это комбинация DB2, за которой следует операционная система, в которой работает сервер базы данных.
DBMS_VER | string | Версия сервера базы данных в виде строки "MM.mm.uuuu", где MM - это мажорная версия, mm - это минорная версия, а uuuu - это патч-версия. Например, "08.02.0001" означает мажорную версию 8, минорную версию 2 и патч-версию 1.
DB_CODEPAGE | int | Кодовая страница базы данных, к которой вы подключены.
DB_NAME | string | Имя базы данных, к которой вы подключены.
DFT_ISOLATION string

Уровень изоляции транзакции по умолчанию, поддерживаемый сервером:

UR

Незавершённое чтение: изменения сразу видны всем параллельным транзакциям.

CS

Стабильность курсора: строка, прочитанная одной транзакцией, может быть изменена и зафиксирована второй параллельной транзакцией.

RS

Стабильность чтения: транзакция может добавлять или удалять строки, соответствующие условию поиска или ожидающей транзакции.

RR

Повторяющееся чтение: данные, на которые влияет ожидающая транзакция, недоступны для других транзакций.

NC

Без фиксации: любые изменения видны в конце успешной операции. Явные коммиты и откаты недопустимы.

IDENTIFIER_QUOTE_CHAR | string | Символ, используемый для обозначения идентификатора.
INST_NAME | string | Экземпляр на сервере базы данных, содержащий базу данных.
ISOLATION_OPTION | array | Массив параметров изоляции, поддерживаемых сервером базы данных. Параметры изоляции описаны в свойстве DFT_ISOLATION.
KEYWORDS | array | Массив ключевых слов, зарезервированных сервером базы данных.
LIKE_ESCAPE_CLAUSE | bool | true, если сервер базы данных поддерживает использование подстановочных знаков % и _. false, если сервер базы данных не поддерживает эти подстановочные знаки.
MAX_COL_NAME_LEN | int | Максимальная длина имени столбца, поддерживаемая сервером базы данных, выраженная в байтах.
MAX_IDENTIFIER_LEN | int | Максимальная длина SQL-идентификатора, поддерживаемая сервером базы данных, выраженная в символах.
MAX_INDEX_SIZE | int | Максимальный размер столбцов, объединённых в индекс, поддерживаемый сервером базы данных, выраженный в байтах.
MAX_PROC_NAME_LEN | int | Максимальная длина имени процедуры, поддерживаемая сервером базы данных, выраженная в байтах.
MAX_ROW_SIZE | int | Максимальная длина строки в таблице базы данных, поддерживаемая сервером базы данных, выраженная в байтах.
MAX_SCHEMA_NAME_LEN | int | Максимальная длина имени схемы, поддерживаемая сервером базы данных, выраженная в байтах.
MAX_STATEMENT_LEN | int | Максимальная длина SQL-оператора, поддерживаемая сервером базы данных, выраженная в байтах.
MAX_TABLE_NAME_LEN | int | Максимальная длина имени таблицы, поддерживаемая сервером базы данных, выраженная в байтах.
NON_NULLABLE_COLUMNS | bool | true, если сервер базы данных поддерживает столбцы, которые можно определить как NOT NULL, false, если сервер базы данных не поддерживает столбцы, определённые как NOT NULL.
PROCEDURES | bool | true, если сервер базы данных поддерживает использование оператора CALL для вызова хранимых процедур, false, если сервер базы данных не поддерживает оператор CALL.
SPECIAL_CHARS | string | Строка, содержащая все символы, кроме a-Z, 0-9 и подчёркивания, которые можно использовать в имени идентификатора.
SQL_CONFORMANCE string

Уровень соответствия спецификации ANSI/ISO SQL-92, предлагаемый сервером базы данных:

ENTRY

Соответствие начальному уровню SQL-92.

FIPS127

Переходное соответствие FIPS-127-2.

FULL

Полное соответствие стандарту SQL-92.

INTERMEDIATE

Соответствие среднему уровню SQL-92.

Список параметров

connection

Задаёт активное соединение клиента DB2.

Возвращаемые значения

Возвращает объект в случае успешного вызова функции или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования db2_server_info()

Чтобы получить информацию о сервере, вы должны передать действительный ресурс подключения к базе данных в 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() - Возвращает соединение с базой данных
  • db2_pconnect() - Возвращает постоянное соединение с базой данных
  • db2_exec() - Выполняет SQL-запрос напрямую
  • db2_prepare() - Подготавливает SQL-запрос к выполнению
  • db2_cursor_type() - Возвращает тип курсора, который используется в ресурсе оператора


Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы

  • « db2_set_option
  • db2_statistics »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы

db2_special_columns

(PECL ibm_db2 >= 1.0.0)

db2_special_columns — Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы

Описание

db2_special_columns(
resource $connection,
?string $qualifier,
string $schema,
string $table_name,
int $scope
): resource

Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы.

Список параметров

connection

Допустимое соединение с базой данных IBM DB2, Cloudscape или Apache Derby.

qualifier

Квалификатор для баз данных DB2, работающих на серверах OS/390 или z/OS. Для других баз данных передайте null или пустую строку.

schema

Схема, содержащая таблицы.

table_name

Название таблицы.

scope

Целочисленное значение, представляющее минимальную продолжительность, в течение которой действителен уникальный идентификатор строки. Это может быть одно из следующих значений: values:

Значение | Константа SQL | Описание
0 | SQL_SCOPE_CURROW | Идентификатор строки действителен только тогда, когда курсор находится на строке.
1 | SQL_SCOPE_TRANSACTION | Идентификатор строки действителен на протяжении всей транзакции.
2 | SQL_SCOPE_SESSION | Идентификатор строки действителен в течение всего времени соединения.

Возвращаемые значения

Возвращает ресурс оператора с набором результатов, содержащим строки с уникальной информацией идентификатора строки таблицы. Строки состоят из следующих столбцов: following columns:

Название столбца | Описание
SCOPE

Значение | Констант SQL | Описание
0 | SQL_SCOPE_CURROW | Идентификатор строки действителен только тогда, когда курсор находится на строке.
1 | SQL_SCOPE_TRANSACTION | Идентификатор строки действителен на протяжении всей транзакции.
2 | SQL_SCOPE_SESSION | Идентификатор строки действителен в течение всего времени соединения.
COLUMN_NAME | Имя уникального столбца.
DATA_TYPE | Тип данных SQL столбца.
TYPE_NAME | Символьное строковое представление типа данных SQL столбца.
COLUMN_SIZE | Целочисленное значение, представляющее размер столбца.
BUFFER_LENGTH | Максимальное количество байтов, необходимое для хранения данных из этого столбца.
DECIMAL_DIGITS | Масштаб столбца или null, если масштаб не применим.
NUM_PREC_RADIX | Целочисленное значение либо 10 (представляющее точный числовой тип данных), либо 2 (представляющее приблизительный числовой тип данных), либо null (представляющий тип данных, для которого основание системы счисления не применимо).
PSEUDO_COLUMN | Всегда возвращает 1.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Возвращает набор результатов, в котором перечислены внешние ключи таблицы
  • db2_primary_keys() - Возвращает набор результатов, содержащий первичные ключи таблицы
  • db2_procedure_columns() - Возвращает набор результатов со списком параметров хранимой процедуры
  • db2_procedures() - Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных
  • db2_statistics() - Возвращает набор результатов, содержащий индекс и статистику таблицы
  • db2_table_privileges() - Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных
  • db2_tables() - Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных


Возвращает набор результатов, содержащий индекс и статистику таблицы

  • « db2_special_columns
  • db2_stmt_error »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает набор результатов, содержащий индекс и статистику таблицы

db2_statistics

(PECL ibm_db2 >= 1.0.0)

db2_statistics — Возвращает набор результатов, содержащий индекс и статистику таблицы

Описание

db2_statistics(
resource $connection,
?string $qualifier,
?string $schema,
string $table_name,
bool $unique
): resource

Возвращает набор результатов, содержащий индекс и статистику таблицы.

Список параметров

connection

Допустимое соединение с базой данных IBM DB2, Cloudscape или Apache Derby.

qualifier

Квалификатор для баз данных DB2, работающей на серверах OS/390 или z/OS. Для других баз данных передайте null или пустую строку.

schema

Схема, содержащая целевую таблицу. Если параметр равен null, статистика и индексы возвращаются для схемы текущего пользователя.

table_name

Название таблицы.

unique

Если у параметра unique значение true, возвращается информация для всех индексов в таблице. В противном случае возвращается информация только об уникальных индексах в таблице.

Возвращаемые значения

Возвращает ресурс оператора с набором результатов, содержащим строки, описывающие статистику и индексы для таблиц базы данных, соответствующих указанным параметрам. Строки состоят из следующих столбцов:

Название столбца | Описание
TABLE_CAT | Каталог, содержащий таблицу. Значение null, если в этой таблице нет каталогов.
TABLE_SCHEM | Название схемы, содержащей таблицу.
TABLE_NAME | Название таблицы.
NON_UNIQUE

Целочисленное значение, указывающее, запрещает ли индекс уникальные значения или строка представляет статистику самой таблицы:

Возвращаемое значение | Тип параметра
0 (SQL_FALSE) | Индекс допускает повторяющиеся значения.
1 (SQL_TRUE) | Значения индекса должны быть уникальными.
null | Строка представляет собой статистическую информацию для самой таблицы.
INDEX_QUALIFIER | Строковое значение, представляющее квалификатор, который необходимо добавить к INDEX_NAME, чтобы полностью определить индекс.
INDEX_NAME | Строка, представляющая имя индекса.
TYPE

Целочисленное значение, представляющее тип информации, содержащейся в этой строке набора результатов:

Возвращаемое значение | Тип параметра
0 (SQL_TABLE_STAT) | Строка содержит статистику о самой таблице.
1 (SQL_INDEX_CLUSTERED) | Строка содержит информацию о кластеризованном индексе.
2 (SQL_INDEX_HASH) | Строка содержит информацию о хешированном индексе.
3 (SQL_INDEX_OTHER) | Строка содержит информацию о типе индекса, который не кластеризован и не хеширован.
ORDINAL_POSITION | Позиция столбца (начинается от 1) в индексе. null, если строка содержит статистическую информацию о самой таблице.
COLUMN_NAME | Название столбца (начинается от 1) в индексе. null, если строка содержит статистическую информацию о самой таблице.
ASC_OR_DESC | A, если столбец отсортирован в порядке возрастания, D, если столбец отсортирован в порядке убывания, null, если строка содержит статистическую информацию о самой таблице.
CARDINALITY

Если строка содержит информацию об индексе, этот столбец содержит целочисленное значение, представляющее количество уникальных значений в индексе.

Если строка содержит информацию о самой таблице, этот столбец содержит целочисленное значение, представляющее количество строк в таблице.

PAGES

Если строка содержит информацию об индексе, этот столбец содержит целочисленное значение, представляющее количество страниц, используемых для хранения индекса.

Если строка содержит информацию о самой таблице, этот столбец содержит целочисленное значение, представляющее количество страниц, используемых для хранения таблицы.

FILTER_CONDITION | Всегда возвращает null.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Возвращает набор результатов, в котором перечислены внешние ключи таблицы
  • db2_primary_keys() - Возвращает набор результатов, содержащий первичные ключи таблицы
  • db2_procedure_columns() - Возвращает набор результатов со списком параметров хранимой процедуры
  • db2_procedures() - Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных
  • db2_special_columns() - Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы
  • db2_table_privileges() - Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных
  • db2_tables() - Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных


Возвращает строку, содержащую SQLSTATE, возвращённую SQL-оператором

  • « db2_statistics
  • db2_stmt_errormsg »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает строку, содержащую SQLSTATE, возвращённую SQL-оператором

db2_stmt_error

(PECL ibm_db2 >= 1.0.0)

db2_stmt_error — Возвращает строку, содержащую SQLSTATE, возвращённую SQL-оператором

Описание

db2_stmt_error(?resource $stmt = null): string

Возвращает строку, содержащую SQLSTATE, возвращённую SQL-оператором.

Если вы не передадите ресурс оператора в качестве аргумента в db2_stmt_error(), драйвер вернёт значение SQLSTATE, связанное с последней попыткой вернуть ресурс оператора, например, из db2_prepare() или db2_exec().

Чтобы узнать, что означает значение SQLSTATE, вы можете ввести следующую команду в командной строке процессора DB2: db2 '? sqlstate-value'. Вы также можете вызвать db2_stmt_errormsg(), чтобы получить явное сообщение об ошибке и соответствующее значение SQLCODE.

Список параметров

stmt

Допустимый ресурс оператора.

Возвращаемые значения

Возвращает строку, содержащую значение SQLSTATE.

Смотрите также

  • db2_conn_error() - Возвращает строку, содержащую значение SQLSTATE, возвращённое последней попыткой подключения
  • db2_conn_errormsg() - Возвращает последнее сообщение об ошибке подключения и значение SQLCODE
  • db2_stmt_errormsg() - Возвращает строку, содержащую последнее сообщение об ошибке SQL-выражения


Возвращает строку, содержащую последнее сообщение об ошибке SQL-выражения

  • « db2_stmt_error
  • db2_table_privileges »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает строку, содержащую последнее сообщение об ошибке SQL-выражения

db2_stmt_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_stmt_errormsg — Возвращает строку, содержащую последнее сообщение об ошибке SQL-выражения

Описание

db2_stmt_errormsg(?resource $stmt = null): string

Возвращает строку, содержащую последнее сообщение об ошибке SQL-выражения.

Если вы не передаёте ресурс выражения в качестве аргумента в db2_stmt_errormsg(), драйвер возвращает сообщение об ошибке, связанное с последней попыткой вернуть ресурс оператора, например, из db2_prepare() или db2_exec().

Список параметров

stmt

Допустимый ресурс выражения.

Возвращаемые значения

Возвращает строку, содержащую сообщение об ошибке и значение SQLCODE последней ошибки, возникшей при выдаче SQL-выражения.

Смотрите также

  • db2_conn_error() - Возвращает строку, содержащую значение SQLSTATE, возвращённое последней попыткой подключения
  • db2_conn_errormsg() - Возвращает последнее сообщение об ошибке подключения и значение SQLCODE
  • db2_stmt_error() - Возвращает строку, содержащую SQLSTATE, возвращённую SQL-оператором


Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных

  • « db2_stmt_errormsg
  • db2_tables »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных

db2_table_privileges

(PECL ibm_db2 >= 1.0.0)

db2_table_privileges — Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных

Описание

db2_table_privileges(
resource $connection,
?string $qualifier = null,
?string $schema = null,
?string $table_name = null
): resource

Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных.

Список параметров

connection

Допустимое соединение с базой данных IBM DB2, Cloudscape или Apache Derby.

qualifier

Квалификатор для баз данных DB2, работающих на серверах OS/390 или z/OS. Для других баз данных передайте null или пустую строку.

schema

Схема, содержащая таблицы. Параметр принимает шаблон поиска, содержащий _ и % в качестве подстановочных знаков.

table_name

Название таблицы. Параметр принимает шаблон поиска, содержащий _ и % в качестве подстановочных знаков.

Возвращаемые значения

Возвращает ресурс выражения с набором результатов, содержащим строки, описывающие права доступа для таблиц, которые соответствуют указанным параметрам. Строки состоят из следующих столбцов:

Название столбца | Описание
TABLE_CAT | Каталог, содержащий таблицу или null, если в этой таблице нет каталогов.
TABLE_SCHEM | Имя схемы, содержащей таблицу.
TABLE_NAME | Название таблицы.
GRANTOR | Идентификатор авторизации пользователя, предоставившего права доступа.
GRANTEE | Идентификатор авторизации пользователя, которому были предоставлены права доступа.
PRIVILEGE | Предоставляемые права доступа. Может быть один из вариантов: ALTER, CONTROL, DELETE, INDEX, INSERT, REFERENCES, SELECT или UPDATE.
IS_GRANTABLE | Строковое значение «YES» или «NO», указывающее, может ли получатель предоставлять права доступа другим пользователям.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Возвращает набор результатов, в котором перечислены внешние ключи таблицы
  • db2_primary_keys() - Возвращает набор результатов, содержащий первичные ключи таблицы
  • db2_procedure_columns() - Возвращает набор результатов со списком параметров хранимой процедуры
  • db2_procedures() - Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных
  • db2_special_columns() - Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы
  • db2_statistics() - Возвращает набор результатов, содержащий индекс и статистику таблицы
  • db2_tables() - Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных


Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных

  • « db2_table_privileges
  • MongoDB »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных

db2_tables

(PECL ibm_db2 >= 1.0.0)

db2_tables — Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных

Описание

db2_tables(
resource $connection,
?string $qualifier = null,
?string $schema = null,
?string $table_name = null,
?string $table_type = null
): resource

Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных.

Список параметров

connection

Допустимое соединение с базой данных IBM DB2, Cloudscape или Apache Derby.

qualifier

Квалификатор для баз данных DB2, работающих на серверах OS/390 или z/OS. Для других баз данных передайте null или пустую строку.

schema

Схема, содержащая таблицы. Параметр принимает шаблон поиска, содержащий _ и % в качестве подстановочных знаков.

table_name

Название таблицы. Параметр принимает шаблон поиска, содержащий _ и % в качестве подстановочных знаков.

table_type

Список идентификаторов типов таблиц, разделённых запятыми. Чтобы соответствовать всем типам таблиц, передайте null или пустую строку. К допустимым идентификаторам типа таблицы относятся: ALIAS, HIERARCHY TABLE, INOPERATIVE VIEW, NICKNAME, MATERIALIZED QUERY TABLE, SYSTEM TABLE, TABLE, TYPED TABLE, TYPED VIEW, и VIEW.

Возвращаемые значения

Возвращает ресурс выражения с набором результатов, содержащим строки, описывающие таблицы, соответствующие указанным параметрам. Строки состоят из следующих столбцов:

Название столбца | Описание
TABLE_CAT | Каталог, содержащий таблицу или null, если в этой таблице нет каталогов.
TABLE_SCHEM | Имя схемы, содержащей таблицу.
TABLE_NAME | Название таблицы.
TABLE_TYPE | Идентификатор типа таблицы.
REMARKS | Описание таблицы.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Возвращает набор результатов, в котором перечислены внешние ключи таблицы
  • db2_primary_keys() - Возвращает набор результатов, содержащий первичные ключи таблицы
  • db2_procedure_columns() - Возвращает набор результатов со списком параметров хранимой процедуры
  • db2_procedures() - Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных
  • db2_special_columns() - Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы
  • db2_statistics() - Возвращает набор результатов, содержащий индекс и статистику таблицы
  • db2_table_privileges() - Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных


Драйвер MongoDB

Этот модуль разработан на основе библиотек » 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\ServerApi — Класс MongoDB\Driver\ServerApi
    • 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\ServerDescription — Класс MongoDB\Driver\ServerDescription
    • MongoDB\Driver\TopologyDescription — Класс MongoDB\Driver\TopologyDescription
    • MongoDB\Driver\WriteConcernError — Класс The MongoDB\Driver\WriteConcernError
    • MongoDB\Driver\WriteError — Класс MongoDB\Driver\WriteError
    • MongoDB\Driver\WriteResult — Класс MongoDB\Driver\WriteResult
  • MongoDB\BSON — Классы типов BSON и функции сериализации
    • Функции
    • MongoDB\BSON\Document — Класс MongoDB\BSON\Document
    • MongoDB\BSON\PackedArray — Класс MongoDB\BSON\PackedArray
    • MongoDB\BSON\Iterator — Класс MongoDB\BSON\Iterator
    • 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\ServerChangedEvent — Класс MongoDB\Driver\Monitoring\ServerChangedEvent
    • MongoDB\Driver\Monitoring\ServerClosedEvent — Класс MongoDB\Driver\Monitoring\ServerClosedEvent
    • MongoDB\Driver\Monitoring\ServerOpeningEvent — Класс MongoDB\Driver\Monitoring\ServerOpeningEvent
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent — Класс MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent — Класс MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent — Класс MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
    • MongoDB\Driver\Monitoring\TopologyChangedEvent — Класс MongoDB\Driver\Monitoring\TopologyChangedEvent
    • MongoDB\Driver\Monitoring\TopologyClosedEvent — Класс MongoDB\Driver\Monitoring\TopologyClosedEvent
    • MongoDB\Driver\Monitoring\TopologyOpeningEvent — Класс MongoDB\Driver\Monitoring\TopologyOpeningEvent
    • MongoDB\Driver\Monitoring\CommandSubscriber — Интерфейс The MongoDB\Driver\Monitoring\CommandSubscriber
    • MongoDB\Driver\Monitoring\LogSubscriber — The MongoDB\Driver\Monitoring\LogSubscriber interface
    • MongoDB\Driver\Monitoring\SDAMSubscriber — Интерфейс MongoDB\Driver\Monitoring\SDAMSubscriber
    • 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 — Класс MongoDB\Driver\Exception\RuntimeException
    • 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


Установка и настройка

  • Требования
  • Установка
    • Установка драйвера PHP MongoDB с помощью PECL
    • Установка драйвера PHP MongoDB на macOS помощью Homebrew
    • Установка драйвера PHP MongoDB под Windows
    • Сборка драйвера PHP MongoDB из исходного кода
  • Настройка во время выполнения
  • Предопределённые константы


Требования

Начиная с версии 1.16.0, для работы драйвера требуется PHP 7.2 или выше. Предыдущие версии драйвера обеспечивают совместимость со старыми версиями PHP.

Драйверу нужны библиотеки » libbson и » libmongoc, и по умолчанию он будет использовать их встроенные версии. Также можно использовать системные библиотеки, как описано в документации по сборке из исходного кода.

Драйвер через libmongoc, необязательно зависит от библиотеки TLS (например, OpenSSL) и будет использовать её, если она доступна. Если процессу сборки не удаётся найти библиотеку TLS, пользователи должны проверить, что соответствующий пакет разработки (например, libssl-dev) и » pkg-config установлены. Процесс обнаружения и настройки библиотек TLS более подробно описан в документации по сборке из исходного кода.

» Cyrus SASL - это необязательная зависимость для поддержки аутентификации Kerberos, которая будет использоваться, если она доступна.

Замечание: Из-за потенциальных проблем представления 64-разрядных целых чисел на 32-разрядных платформах, пользователям рекомендуется использовать 64-разрядную среду. При использовании 32-разрядной платформы помните, что любое 64-разрядное целое число, прочитанное из базы данных, будет возвращено как экземпляр MongoDB\BSON\Int64 вместо целочисленного типа PHP.


Установка

Содержание

  • Установка драйвера PHP MongoDB с помощью PECL
  • Установка драйвера PHP MongoDB на macOS помощью Homebrew
  • Установка драйвера PHP MongoDB под Windows
  • Сборка драйвера PHP MongoDB из исходного кода


Установка драйвера PHP MongoDB с помощью PECL

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/mongodb

Пользователи Linux, Unix и macOS могут использовать следующую команду для установки драйвера:

$ sudo pecl install mongodb

На системах с несколькими установленными версиями PHP (например для macOS: установка по умолчанию, Homebrew и » XAMPP) каждая версия PHP будет иметь собственную команду pecl и файл (или файлы) php.ini. Кроме того, каждое окружение PHP (например, CLI, web) может использовать отдельные файлы php.ini.

Начиная с версии драйвера 1.17.0 PECL будет запрашивать разные настройки configure. Установить драйвер с настройками по умолчанию в неинтерактивном сценарии можно с переданной на вход пустой строкой для команды yes, отделённой символом вертикальной черты от команды pecl install:

$ yes '' | sudo pecl install mongodb

Полный список поддерживаемых параметров configure можно найти в файле package.xml, включённом в пакет PECL. Чтобы установить драйвер со специфичными параметрами configure в неинтерактивном сценарии, может быть указан параметр --configureoptions для команды pecl install:

$ sudo pecl install --configureoptions='with-mongodb-system-libs="yes" enable-mongodb-developer-flags="no"' mongodb

По умолчанию установка драйвера через PECL будет использовать встроенные версии модулей: » libbson, » libmongoc, » libmongocrypt и попытается сконфигурировать их автоматически.

Замечание: Если процесс установки не сможет найти библиотеку SSL, убедитесь, что установлены пакеты для разработки (такие как libssl-dev) и пакет » pkg-config. Если это не поможет, то произведите ручную установку.

И наконец, добавьте следующую строку в файл php.ini для каждого окружения, в котором будет использован драйвер:

extension=mongodb.so


Установка драйвера PHP MongoDB на macOS помощью Homebrew

Начиная с » Homebrew 1.5.0 пакет » Homebrew/php tap был объявлен устаревшим, а формулы для отдельных модулей PHP были удалены. Пользователям macOS рекомендовано устанавливать драйвер через формулу » php и запускать предоставленную PHP, установленным через менеджер пакетов Homebrew, команду pecl, как рассказано в стандартной инструкции по установке из PECL.


Установка драйвера PHP MongoDB под Windows

Предварительно скомпилированные исполняемые файлы прикрепляются к » выпускам проекта на GitHub. Архивы публикуются для разных комбинаций версии PHP, потоковой безопасности (TS или NTS) и архитектуры (x86 или x64). Определите правильный архив для PHP-окружения и извлеките файла php_mongodb.dll в директорию с модулями (по умолчанию "ext").

Добавьте следующую строку в файл php.ini для каждого окружения, в котором будет использован драйвер:

extension=php_mongo.dll

Неправильный выбор двоичного файла приведёт к возникновению ошибки при попытке загрузить DLL-модуль во время выполнения:

PHP Warning:  PHP Startup: Unable to load dynamic library 'mongodb'

Убедитесь, что скачанная DLL соответствует следующим свойствам среды выполнения PHP:

  • Версия PHP (PHP_VERSION)
  • Потоковая безопасность (PHP_ZTS)
  • Архитектура (PHP_INT_SIZE)

Эти свойства можно увидеть в выводе функции phpinfo(). Если в системе установлено несколько версий PHP, дважды проверьте, что вывод функции phpinfo() соответствует окружению.

Замечание: Дополнительные зависимости DLL для пользователей Windows

Для работы этого модуля системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому модулю требуются следующие файлы в переменной PATH: libsasl.dll


Сборка драйвера PHP MongoDB из исходного кода

Разработчики драйверов и заинтересованные в самых свежих версиях пользователи могут собрать драйвер из исходных кодов: » 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: установка по умолчанию, Homebrew, » XAMPP) у каждой версии PHP будет своя команда phpize и файл (или файлы) php.ini. Кроме того, каждое окружение PHP (например, CLI, web) может использовать отдельные файлы php.ini.

По умолчанию драйвер будет использовать встроенные версии модулей » libbson, » libmongoc и » libmongocrypt и попытается настроить их автоматически. Если эти модули уже установлены в системе, драйвер может использовать их, передав параметр --with-mongodb-system-libs=yes команде configure.

Полный список параметров команды configure можно получить, запустив: configure --help.

При использовании встроенных версий модулей libmongoc и libmongocrypt, драйвер также попытается выбрать модуль SSL в соответствии с параметром --with-mongodb-ssl команды configure. Начиная с версии драйвера 1.17.0 по умолчанию будет отдано предпочтение библиотеке OpenSSL. Предыдущие версии драйвера на системах с macOS по умолчанию выбирали Secure Transport, а на всех остальных платформах — OpenSSL.

Замечание:

Если процесс установки не сможет найти библиотеку 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-20220829/

Убедитесь, что директива extension_dir файла php.ini указывает на каталог, в котором присутствует модуль mongodb.so. Проверить значение этой директивы можно так:

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/debug-non-zts-20220829 =>
                   /usr/lib/php/extensions/debug-non-zts-20220829

Если директории отличаются, то поменяйте значение extension_dir в php.ini или просто переместите mongodb.so в нужную директорию.

И наконец, добавьте следующую строку в файл php.ini для каждого окружения, в котором вы собираетесь использовать драйвер:

extension=mongodb.so


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки mongodb
Имя | По умолчанию | Место изменения | Список изменений
mongodb.debug | "" | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

mongodb.debug string

Этот параметр можно использовать для включения или отключения ведения журнала отладки на уровне трассировки в драйвере (и libmongoc).

Укажите пустую строку, "0", "off", "no" или "false", чтобы отключить ведение журнала.

Укажите "stderr" или "stdout", чтобы вести журнал в stderr или stdout, соответственно.

Укажите "1", "on", "yes" или "true" для ведения журнала в новый временный файл в системном временном каталоге по умолчанию (т.е. sys_get_temp_dir()).

Укажите любую другую строку для ведения журнала в новый временный файл в этом каталоге. Если каталог не может быть использован, вместо него будет использоваться системный временный каталог по умолчанию.

Замечание:

Обратите внимание, что журнал отладки может содержать конфиденциальную информацию, такую как учётные данные на сервере 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)

Драйвер MongoDB содержит API подписчика событий, который позволяет приложениям отслеживать команды и внутреннюю активность, относящуюся к » Спецификации обнаружения и мониторинга серверов. В данном руководстве будет продемонстрирован мониторинг команд с помощью интерфейса 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 ): void
{
}

public function commandSucceeded( \MongoDB\Driver\Monitoring\CommandSucceededEvent $event ): void
{
}

public function commandFailed( \MongoDB\Driver\Monitoring\CommandFailedEvent $event ): void
{
}
}

?>

Регистрация подписчика

Как только объект подписчик создан, необходимо его зарегистрировать в драйвере в системе мониторинга. Регистрация производится методом MongoDB\Driver\Monitoring\addSubscriber() или MongoDB\Driver\Manager::addSubscriber() для регистрации подписчика глобально или с помощью определённого класса Manager соответственно.

<?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 ): void
{
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 ): void
{
$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 ): void
{
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-драйвера сочетаются друг с другом, от базовых системных библиотек, через PHP-модули и до PHP-библиотек на самом верху.

Наверху стека расположена » библиотека PHP, которая распространяется в виде » пакета Composer. Эта библиотека предоставит API, согласованный с другими » драйверами MongoDB, и реализует междрайверные » спецификации. Хотя модуль можно использовать напрямую, библиотека даёт минимальные накладные расходы и должна быть общей зависимостью для большей части приложений, построенных с MongoDB.

На уровень ниже библиотеки располагается PHP-модуль, который распространяется через репозиторий » PECL. Модуль образует связующую прослойку между PHP и системными библиотеками (» libmongoc, » libbson и » libmongocrypt). Этот публичный API предлагает только самую базовую функциональность:

  • Управление соединением
  • BSON кодирование и декодирование
  • Сериализация документа объекта (для поддержки библиотек ODM)
  • Выполнение команд, запросы и запись операций
  • Обработка курсоров для команд и результатов запроса

Исходный код драйвера и проекты JIRA
Проект | GitHub | JIRA
PHP библиотека | » mongodb/mongo-php-library | » PHPLIB
PHP-модуль | » mongodb/mongo-php-driver | » PHPC


Обработка соединения и постоянство

Замечание: На Unix, драйвер MongoDB чувствителен к сценариям, которые используют системный вызов fork() без последующего exec(). Пользователям рекомендуется не переиспользовать экземпляр MongoDB\Driver\Manager в дочернем процессе. child process.

Постоянство подключения и топологии (версия PHP начиная с 1.2.0)

Все версии драйвера начиная с 1.2.0 сохраняют клиентский объект » libmongoc в рабочем процессе PHP, что позволяет ему повторно использовать соединения с базой данных, состояния аутентификации и информацию о топологии в нескольких запросах.

Когда вызывается MongoDB\Driver\Manager::__construct(), из его аргументов создаётся хеш (т. е. строка URI и параметры массива). Драйвер попытается найти ранее сохранённый клиентский объект » libmongoc для этого хеша. Если существующий клиент не может быть найден для хеша, будет создан новый клиент и сохранён для будущего использования. Это поведение можно выключить через параметр драйвера "disableClientPersistence".

Каждый клиент содержит свои собственные подключения к базе данных и представление топологии сервера (например, автономный, набор реплик, кластер сегментов). Сохраняя клиент между запросами 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. Если драйвер обнаруживает дополнительных членов набора реплик после выполнения команд hello, он также открывает дополнительные подключения к этим серверам.

Если этот же процесс снова выполнит сценарий во втором запросе, эти три клиента будут использованы повторно, а новых подключений установлено не будет. В зависимости от того, как давно был обработан предыдущий запрос, драйверу может потребоваться выполнить дополнительные команды hello для обновления своего представления топологий.

Постоянство сокетов (версии 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(): array {
return [ 'foo' => $this->foo, 'prot' => $this->prot ];
}
} // => { "foo" : 42, "prot" : "wine" }

class AnotherClass2 implements MongoDB\BSON\Serializable {
public $foo = 42;
function bsonSerialize(): array {
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(): array {
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(): array {
return $this->elements;
}
}
function bsonSerialize(): array {
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(): array {
return array_values($this->elements);
}
}
function bsonSerialize(): array {
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(): array {
return (object) $this->elements;
}
}
function bsonSerialize(): array {
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(): array {
return [ 'foo' => $this->foo, 'prot' => $this->prot ];
}
} // => { "foo" : 42, "prot" : "wine", "__pclass" : { "$type" : "80", "$binary" : "VXBwZXJDbGFzcw==" } }


Десериализация из BSON

Внимание

Документы BSON технически могут содержать повторяющиеся ключи, поскольку документы хранятся в виде списка пар ключ-значение; однако приложениям следует воздерживаться от создания документов с дубликатами ключей, поскольку поведение сервера и драйвера может быть неопределённым. Поскольку объекты и массивы PHP не могут иметь повторяющихся ключей, данные также могут быть потеряны при декодировании документа 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 массив в MongoDB\BSON\PackedArray и BSON документ в MongoDB\BSON\Document, независимо от того, есть ли у BSON документа свойство __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(), MongoDB\BSON\Document::toPHP() и MongoDB\BSON\PackedArray::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::addSubscriber — Регистрирует подписчика на событие мониторинга в данном объекте 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::getEncryptedFieldsMap — Возвращает опцию автоматического шифрования encryptedFieldsMap для Manager
    • 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::removeSubscriber — Отменяет регистрацию подписчика на событие мониторинга в данном объекте 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 — Возвращает настройки текущей транзакции
    • MongoDB\Driver\Session::getTransactionState — Возвращает статус транзакции для текущей сессии
    • MongoDB\Driver\Session::isDirty — Возвращает, была ли сессия помечена как грязная
    • MongoDB\Driver\Session::isInTransaction — Определяет, происходит ли в данный момент многодокументная транзакция
    • MongoDB\Driver\Session::startTransaction — Запускает транзакцию
  • MongoDB\Driver\ClientEncryption — Класс MongoDB\Driver\ClientEncryption
    • MongoDB\Driver\ClientEncryption::addKeyAltName — Добавляет альтернативное имя к документу с ключом
    • MongoDB\Driver\ClientEncryption::__construct — Создаёт новый объект ClientEncryption
    • MongoDB\Driver\ClientEncryption::createDataKey — Создаёт документ с ключом
    • MongoDB\Driver\ClientEncryption::decrypt — Расшифровать данных
    • MongoDB\Driver\ClientEncryption::deleteKey — Удаляет документ с ключом
    • MongoDB\Driver\ClientEncryption::encrypt — Шифрует данные
    • MongoDB\Driver\ClientEncryption::encryptExpression — Шифрует совпадение или агрегированное выражение
    • MongoDB\Driver\ClientEncryption::getKey — Получает документ с ключом
    • MongoDB\Driver\ClientEncryption::getKeyByAltName — Получает документ с ключом по альтернативному имени
    • MongoDB\Driver\ClientEncryption::getKeys — Получает все документы с ключом
    • MongoDB\Driver\ClientEncryption::removeKeyAltName — Удаляет альтернативное имя из документа с ключом
    • MongoDB\Driver\ClientEncryption::rewrapManyDataKey — Переворачивает ключи данных
  • MongoDB\Driver\ServerApi — Класс MongoDB\Driver\ServerApi
    • MongoDB\Driver\ServerApi::bsonSerialize — Возвращает объект для сериализации BSON
    • MongoDB\Driver\ServerApi::__construct — Создаёт новый экземпляр ServerApi
    • MongoDB\Driver\ServerApi::serialize — Сериализует ServerApi
    • MongoDB\Driver\ServerApi::unserialize — Десериализует ServerApi
  • 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 — Сериализация WriteConcern
    • MongoDB\Driver\WriteConcern::unserialize — Десериализация WriteConcern
  • MongoDB\Driver\ReadPreference — Класс MongoDB\Driver\ReadPreference
    • MongoDB\Driver\ReadPreference::bsonSerialize — Возвращает объект сериализации BSON
    • MongoDB\Driver\ReadPreference::__construct — Создать новый ReadPreference
    • MongoDB\Driver\ReadPreference::getHedge — Возвращает опцию "hedge" из ReadPreference
    • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Возвращает параметр "maxStalenessSeconds" ReadPreference
    • MongoDB\Driver\ReadPreference::getMode — Возвращает параметр "mode" ReadPreference
    • MongoDB\Driver\ReadPreference::getModeString — Возвращает опцию "mode" объекта ReadPreference в виде строки
    • MongoDB\Driver\ReadPreference::getTagSets — Возвращает параметр "tagSets" ReadPreference
    • MongoDB\Driver\ReadPreference::serialize — Сериализация ReadPreference
    • MongoDB\Driver\ReadPreference::unserialize — Десериализация 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 — Сериализация ReadConcern
    • MongoDB\Driver\ReadConcern::unserialize — Десериализация ReadConcern
  • MongoDB\Driver\Cursor — Класс MongoDB\Driver\Cursor
    • MongoDB\Driver\Cursor::__construct — Создаёт новый объект Cursor (не используется)
    • MongoDB\Driver\Cursor::current — Возвращает текущий элемент
    • MongoDB\Driver\Cursor::getId — Возвращает идентификатор для курсора
    • MongoDB\Driver\Cursor::getServer — Возвращает сервер, связанный с курсором
    • MongoDB\Driver\Cursor::isDead — Проверяет, исчерпан ли курсор или может содержать дополнительные результаты
    • MongoDB\Driver\Cursor::key — Возвращает индекс текущего результата в курсоре
    • MongoDB\Driver\Cursor::next — Перемещает курсор на следующий результат
    • MongoDB\Driver\Cursor::rewind — Перемещает курсор к первому результату
    • MongoDB\Driver\Cursor::setTypeMap — Устанавливает карту типа для десериализации BSON
    • MongoDB\Driver\Cursor::toArray — Возвращает массив, содержащий все результаты курсора
    • MongoDB\Driver\Cursor::valid — Проверяет, корректна ли текущая позиция курсора
  • MongoDB\Driver\CursorId — Класс MongoDB\Driver\CursorId
    • MongoDB\Driver\CursorId::__construct — Создаёт новый объект CursorId (не используется)
    • MongoDB\Driver\CursorId::serialize — Сериализация CursorId
    • MongoDB\Driver\CursorId::__toString — Строковое представление идентификатора курсора
    • MongoDB\Driver\CursorId::unserialize — Десериализация 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::getServerDescription — Возвращает ServerDescription сервера
    • 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\ServerDescription — Класс MongoDB\Driver\ServerDescription
    • MongoDB\Driver\ServerDescription::getHelloResponse — Возвращает последний ответ сервера "hello"
    • MongoDB\Driver\ServerDescription::getHost — Возвращает имя хоста сервера
    • MongoDB\Driver\ServerDescription::getLastUpdateTime — Возвращает время последнего обновления сервера в микросекундах
    • MongoDB\Driver\ServerDescription::getPort — Возвращает порт, на котором прослушивается данный сервер
    • MongoDB\Driver\ServerDescription::getRoundTripTime — Возвращает время обхода сервера в миллисекундах
    • MongoDB\Driver\ServerDescription::getType — Возвращает строку, обозначающую тип данного сервера
  • MongoDB\Driver\TopologyDescription — Класс MongoDB\Driver\TopologyDescription
    • MongoDB\Driver\TopologyDescription::getServers — Возвращает серверы в топологии
    • MongoDB\Driver\TopologyDescription::getType — Возвращает строку, обозначающую тип топологии
    • MongoDB\Driver\TopologyDescription::hasReadableServer — Возвращает, есть ли в топологии сервер, доступный для чтения
    • MongoDB\Driver\TopologyDescription::hasWritableServer — Возвращает, есть ли в топологии сервер, доступный для записи
  • 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 не работают.

Любая запись или запрос будут выбрасывать исключение соединения, поскольку соединения создаются "лениво" (по требованию). Сервер MongoDB также может быть недоступен в течение всего времени выполнения скрипта. Поэтому важно, чтобы все действия с Manager были обёрнуты в блок try/catch.

Обзор классов

final class MongoDB\Driver\Manager {
/* Методы */
final public addSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void
final public __construct(?string $uri = null, ?array $uriOptions = null, ?array $driverOptions = null)
final public createClientEncryption(array $options): MongoDB\Driver\ClientEncryption
final public executeBulkWrite(string $namespace, MongoDB\Driver\BulkWrite $bulk, array|MongoDB\Driver\WriteConcern|null $options = null): MongoDB\Driver\WriteResult
final public executeCommand(string $db, MongoDB\Driver\Command $command, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor
final public executeQuery(string $namespace, MongoDB\Driver\Query $query, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor
final public executeReadCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public executeReadWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public executeWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public getEncryptedFieldsMap(): array|object|null
final public getReadConcern(): MongoDB\Driver\ReadConcern
final public getReadPreference(): MongoDB\Driver\ReadPreference
final public getServers(): array
final public getWriteConcern(): MongoDB\Driver\WriteConcern
final public removeSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void
final public selectServer(?MongoDB\Driver\ReadPreference $readPreference = null): MongoDB\Driver\Server
final public startSession(?array $options = null): 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 (2) {
  ["uri"]=>
  string(26) "mongodb://127.0.0.1:27017/"
  ["cluster"]=>
  array(0) {
  }
}

Содержание

  • MongoDB\Driver\Manager::addSubscriber — Регистрирует подписчика на событие мониторинга в данном объекте 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::getEncryptedFieldsMap — Возвращает опцию автоматического шифрования encryptedFieldsMap для Manager
  • 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::removeSubscriber — Отменяет регистрацию подписчика на событие мониторинга в данном объекте Manager
  • MongoDB\Driver\Manager::selectServer — Выбрать сервер, соответствующий предпочтениям чтения
  • MongoDB\Driver\Manager::startSession — Запускает новый клиентский сеанс для использования с этим клиентом


Регистрирует подписчика на событие мониторинга в данном объекте Manager

  • « MongoDB\Driver\Manager
  • MongoDB\Driver\Manager::__construct »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Регистрирует подписчика на событие мониторинга в данном объекте Manager

MongoDB\Driver\Manager::addSubscriber

(mongodb >=1.10.0)

MongoDB\Driver\Manager::addSubscriber — Регистрирует подписчика на событие мониторинга в данном объекте Manager

Описание

final public MongoDB\Driver\Manager::addSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void

Регистрирует подписчика на событие мониторинга в данном объекте Manager. Подписчик будет уведомлен обо всех событиях для этого объекта Manager.

Замечание: Если subscriber уже зарегистрирован в данном объекте Manager, эта функция будет недоступна. Если subscriber также зарегистрирован глобально, он всё равно будет получать уведомление только один раз о каждом событии для этого объекта Manager.

Список параметров

subscriber (MongoDB\Driver\Monitoring\Subscriber)

Подписчик событий мониторинга, который должен быть зарегистрирован в данном объекте Manager.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывается исключение MongoDB\Driver\Exception\InvalidArgumentException, если subscriber является MongoDB\Driver\Monitoring\LogSubscriber, поскольку регистраторы могут быть зарегистрированы только глобально.

Смотрите также

  • MongoDB\Driver\Manager::removeSubscriber() - Отменяет регистрацию подписчика на событие мониторинга в данном объекте Manager
  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Создаёт новый Manager MongoDB

  • « MongoDB\Driver\Manager::addSubscriber
  • 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 = null, ?array $uriOptions = null, ?array $driverOptions = null)

Создаёт новый объект 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]]][/[defaultAuthDb][?options]]

Подробнее о поддерживаемых URI параметрах, смотрите раздел » Параметры строки подключения в руководстве MongoDB. » Параметры пула подключения не поддерживаются, т.к. PHP-драйвер не реализует пулы подключений.

uri - это URL, поэтому любые специальные символы в его компонентах должны закодированы в соответствии » RFC 3986. Это особенно актуально для имени пользователя и пароля, которые часто могут содержать специальные символы, такие как @, :, или %. При подключении через доменный сокет Unix, путь сокета может содержать специальные символы, например слеши, которые необходимо закодировать. Функция rawurlencode() может использоваться для кодирования составных частей URI-адреса.

Компонент defaultAuthDb может использоваться для указания имени базы данных, связанной с учётными данными пользователя; однако параметр URI authSource будет иметь приоритет, если он указан. Если ни defaultAuthDb, ни authSource не указаны, база данных admin будет использоваться по умолчанию. Компонент defaultAuthDb не имеет смысла при отсутствии учётных данных пользователя.

uriOptions

Дополнительные » параметры строки подключения, которые будут перезаписывать любые параметры с тем же именем в параметре uri.

uriOptions
Название опции | Тип | Описание
appname string

В MongoDB 3.4+ появилась возможность добавлять аннотации к соединениям с метаданными, предоставляемыми подключающимся клиентом. Эти метаданные включаются в журналы логирования сервера при установлении соединения, а также записываются в журналы медленных запросов, если включено профилирование базы данных.

Эта опция может использоваться для указания имени приложения, которое будет включено в метаданные. Значение не может превышать 128 символов.

authMechanism string

Механизм аутентификации, который MongoDB будет использовать для аутентификации соединения. Для просмотра дополнительных сведений и списка поддерживаемых значений, смотрите раздел » Параметры аутентификации в руководстве MongoDB.

authMechanismProperties array

Свойства для выбранного механизма аутентификации. Для просмотра дополнительных сведений и списка поддерживаемых значений, смотрите раздел » Спецификация аутентификации драйвера.

Замечание: Если не указана в строке URI-адреса, эта опция представляется в виде массива пар ключ-значение. Ключи и значения в этом массиве должны быть строками.

authSource string

Имя базы данных, связанное с учётными данными пользователя. По умолчанию используется компонент базы данных из URI-адреса соединения или база данных admin, если оба не указаны.

Для механизмов аутентификации, которые делегируют хранение учётных данных другим службам (например, GSSAPI), значение должно быть "$external".

canonicalizeHostname bool

Если true, драйвер будет преобразовывать реальное имя хоста для IP-адреса сервера перед аутентификацией через SASL. Некоторые базовые слои GSSAPI уже делают это, но эта функциональность может быть отключена в их конфигурации (например, krb.conf). По умолчанию false.

Этот параметр является устаревшим псевдонимом для свойства "CANONICALIZE_HOST_NAME" параметра URI "authMechanismProperties".

compressors string

Имеющий приоритет, список разделённых запятыми компрессоров, которые клиент хочет использовать. Сообщения сжаты только в том случае, если клиент и сервер совместно используют любые компрессоры, а компрессор, используемый в каждом направлении, будет зависеть от индивидуальной конфигурации сервера или драйвера. Смотрите » Спецификация компрессии драйвера для получения дополнительной информации.

connectTimeoutMS int

Время ожидания в миллисекундах при попытке соединения. По умолчанию - 10 000 миллисекунд.

directConnection bool

Этот параметр можно использовать для управления поведением обнаружения набора реплик, если в строке подключения указан только один хост. По умолчанию, предоставление одного члена в строке подключения приведёт к установлению прямого подключения или обнаружению дополнительных членов в зависимости от того, отсутствует или отсутствует опция URI "replicaSet" соответственно. Укажите false, чтобы вызвать обнаружение (если "replicaSet" опущен) или укажите true, чтобы форсировать прямое соединение (если "replicaSet" присутствует).

gssapiServiceName string

Устанавливает имя службы Kerberos при подключении к керберизованными экземплярам MongoDB. Это значение должно совпадать именем службы, установленным в экземплярах MongoDB (т.е. с параметром сервер, » saslServiceName ). По умолчанию используется "mongodb".

Этот параметр является устаревшим псевдонимом для свойства "SERVICE_NAME" параметра URI "authMechanismProperties".

heartbeatFrequencyMS int

Задаёт интервал в миллисекундах между проверками драйвера топологии MongoDB, отсчитываемыми с конца предыдущей проверки до начала следующей. По умолчанию - 60 000 миллисекунд.

Согласно » Спецификации по обнаружению и мониторингу сервера, это значение не может быть меньше 500 миллисекунд.

journal bool

Соответствует параметру гарантий записи journal. Если true, для записи будет требоваться подтверждение от MongoDB, что операция была записана в журнал. Подробнее смотрите MongoDB\Driver\WriteConcern.

loadBalanced bool

Указывает, подключается ли драйвер к кластеру MongoDB через балансировщик нагрузки. Если true, драйвер может подключаться только к одному узлу (указанному либо строкой подключения, либо поиском SRV), параметр URI "directConnection" не может быть true и опция URI "replicaSet" должна быть опущена. По умолчанию false.

localThresholdMS int

Размер в миллисекундах окна задержки для выбора среди нескольких подходящих экземпляров MongoDB при разрешении предпочтения чтения. По умолчанию - 15 миллисекунд.

maxStalenessSeconds int

Соответствует параметру предпочтениям чтения "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 bool

Указывает, должен ли драйвер автоматически повторять определённые операции чтения, которые не выполняются из-за временных сетевых ошибок или выборов набора реплик. Требуется MongoDB 3.6+. По умолчанию true.

Смотрите » Спецификацию по Retryable Reads для получения дополнительной информации.

retryWrites bool

Указывает, должен ли драйвер автоматически повторять определённые операции записи, которые не выполняются из-за временных сетевых ошибок или выборов набора реплик. Требуется MongoDB 3.6+. По умолчанию true.

Смотрите » Retryable Writes в руководстве MongoDB для получения дополнительной информации.

safe bool

Если true, указывает 1 для параметра w гарантии записи по умолчанию. Если false, указывается 0. Подробнее смотрите MongoDB\Driver\WriteConcern.

Эта опция устарела и не должна использоваться.

serverSelectionTimeoutMS int

Указывает как долго в миллисекунд блокировать выбор сервера перед выбросом исключения. По умолчанию - 30 000 миллисекунд.

serverSelectionTryOnce bool

Если true, то сообщает драйверу сканировать развёртывание MongoDB только один раз после неудачной попытки выбора сервера, а затем либо выбрать сервер или создать ошибку. Когда false, драйвер блокирует выбор и выполняет поиск сервера до истечения времени, указанного в параметре "serverSelectionTimeoutMS". По умолчанию - true.

socketCheckIntervalMS int

Если сокет не использовался в последнее время, драйвер должен проверить с помощью команды hello, прежде чем использовать его для любой операции. По умолчанию - 5 000 миллисекунд.

socketTimeoutMS int

Время в миллисекундах, чтобы попытаться отправить или получить в сокет до истечения времени. По умолчанию - 300 000 миллисекунд (т.е. 5 минут).

srvMaxHosts int

Максимальное количество результатов SRV для случайного выбора при первоначальном заполнении посевного списка или, во время опроса SRV, при добавлении новых узлов к топологии. По умолчанию 0 (т.е. без максимума).

srvServiceName string

Имя службы, используемое для поиска SRV в начальном списке DNS seedlist обнаружения и опроса SRV. По умолчанию "mongodb".

ssl bool

Создаёт соединение с TLS/SSL, если true. По умолчанию - false.

Параметр является устаревшим псевдонимом для параметра URI "tls".

tls bool

Инициирует соединение с TLS/SSL, если true. По умолчанию false.

tlsAllowInvalidCertificates bool

Указывает, должен ли драйвер выдавать ошибку, если сертификат TLS сервера недействителен. По умолчанию false.

Внимание

Отключение проверки сертификата создаёт уязвимость.

tlsAllowInvalidHostnames bool

Указывает, должен ли драйвер выдавать ошибку при несоответствии имени хоста сервера и имени хоста, указанного в сертификате TLS. По умолчанию false.

Внимание

Отключение проверки сертификата создаёт уязвимость. Разрешение недопустимых имён хоста может привести к атаке типа » "человек посередине" (man-in-the-middle).

tlsCAFile string

Путь к файлу с одним или несколькими центрами сертификации, которые следует считать доверенными при установлении соединения TLS. По умолчанию будет использоваться хранилище системных сертификатов.

tlsCertificateKeyFile string

Путь к файлу сертификата клиента или файлу закрытого ключа клиента; в случае, если они оба необходимы, файлы должны быть объединены.

tlsCertificateKeyFilePassword string

Пароль для расшифровки закрытого ключа клиента (т.е. параметра URI "tlsCertificateKeyFile"), который будет использоваться для соединений TLS.

tlsDisableCertificateRevocationCheck bool

Если true, драйвер не будет пытаться проверить статус отзыва сертификата (например, OCSP, CRL). По умолчанию false.

tlsDisableOCSPEndpointCheck bool

Если true, драйвер не будет пытаться связаться с конечной точкой ответа OCSP, если это необходимо (то есть ответ OCSP не сшивается). По умолчанию false.

tlsInsecure bool

Ослабьте ограничения TLS в максимально возможной степени. При значении true этот параметр имеет тот же эффект, что и указание значения true для обоих параметров URI "tlsAllowInvalidCertificates" и "tlsAllowInvalidHostnames". По умолчанию false.

Внимание

Отключение проверки сертификата создаёт уязвимость. Разрешение недопустимых имён хоста может привести к атаке типа » "человек посередине" (man-in-the-middle).

username | string | Имя пользователя для аутентификации. Эта опция полезна, если имя пользователя содержит специальные символы, которые в противном случае должны были быть закодированы в URL для URI-адреса подключения.
w int|string

Соответствует параметру гарантий записи w. Подробнее смотрите MongoDB\Driver\WriteConcern.

wTimeoutMS int|string

Соответствует параметру гарантий записи wtimeout. Указывает срок в миллисекундах для гарантии записи. Подробнее смотрите MongoDB\Driver\WriteConcern.

Если указан, wTimeoutMS должен быть 32-битным целым числом со знаком, большим или равным нулю.

zlibCompressionLevel int

Указывает уровень сжатия для использования zlib. Эта опция ничего не делает, если zlib не включён в URL опции "compressors". Смотрите » Спецификация компрессии драйвера для получения дополнительной информации.

driverOptions

driverOptions
Опция | Тип | Описание
allow_invalid_hostname bool

Отключает проверку имени хоста, если true. По умолчанию - false.

Разрешение недопустимых имён хоста может привести к атаке типа » "человек посередине" (man-in-the-middle).

Этот параметр является устаревшим псевдонимом для параметра URI "tlsAllowInvalidHostnames"

autoEncryption array

Предоставляет опции для включения автоматического шифрования на уровне поля на стороне клиента.

Замечание:

Автоматическое шифрование - функция только для Enterprise версии, которая применяется только к операциям над коллекцией. Автоматическое шифрование не поддерживается для операций над базой данных или представлением, а операции, которые не обходятся, приведут к ошибке (смотрите » libmongocrypt: Список разрешений на автоматическое шифрование). Чтобы обойти автоматическое шифрование для всех операций, установите bypassAutoEncryption в значение true.

Автоматическое шифрование требует, чтобы у аутентифицированного пользователя была привилегия » listCollections.

Явное шифрование/дешифрование и автоматическая расшифровка - это функция Community версии. Драйвер все ещё может автоматически расшифровывать, если у опции bypassAutoEncryption установлено значение true.

Поддерживаются следующие опции:

Опции для автоматического шифрования
Опция | Тип | Описание
keyVaultClient | MongoDB\Driver\Manager | Менеджер используется для маршрутизации запросов ключей данных в отдельный кластер MongoDB. По умолчанию используется текущий менеджер и кластер.
keyVaultNamespace | string | Полное пространство имён (например, "databaseName.collectionName"), обозначающее коллекцию, которая содержит все ключи данных, используемые для шифрования и дешифрования. Обязательный параметр.
kmsProviders array

Документ, содержащий конфигурацию для одного или нескольких провайдеров KMS, которые используются для шифрования ключей данных. Поддерживаются провайдеры "aws", "azure", "gcp" и "local", и, по крайней мере, один из них должен быть указан.

Если для "aws", "azure" или "gcp" указан пустой документ, драйвер попытается сконфигурировать провайдера, используя » Автоматические учётные данные.

Формат для "aws" выглядит следующим образом:

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>,
    sessionToken: <optional string>
}

Формат для "azure" выглядит следующим образом:

azure: {
    tenantId: <string>,
    clientId: <string>,
    clientSecret: <string>,
    identityPlatformEndpoint: <optional string> // По умолчанию "login.microsoftonline.com"

}

Формат для "gcp" выглядит следующим образом:

gcp: {
    email: <string>,
    privateKey: <base64 string>|<MongoDB\BSON\Binary>,
    endpoint: <optional string> // По умолчанию "oauth2.googleapis.com"

}

Формат для "kmip" выглядит следующим образом:

kmip: {
    endpoint: <string>
}

Формат для "local" выглядит следующим образом:

local: {
    // 96-байтовый главный ключ, используемый для шифрования/дешифрования ключей данных
    key: <base64 string>|<MongoDB\BSON\Binary>
}
tlsOptions array

Документ, содержащий конфигурацию TLS для одного или нескольких KMS провайдеров. Поддерживаются провайдеры "aws", "azure", "gcp" и "kmip". Все провайдеры поддерживают следующие опции:

<provider>: {
    tlsCaFile: <optional string>,
    tlsCertificateKeyFile: <optional string>,
    tlsCertificateKeyFilePassword: <optional string>,
    tlsDisableOCSPEndpointCheck: <optional bool>
}
schemaMap array|object

Карта пространств имён коллекции в локальную схему JSON. Используется для настройки автоматического шифрования. Дополнительную информацию смотрите в » Правилах автоматического шифрования в руководстве по MongoDB. Ошибкой является указание коллекции как в schemaMap, так и в encryptedFieldsMap.

Замечание: Добавление schemaMap обеспечивает большую безопасность, чем использование схем JSON, полученных с сервера. Это защищает от вредоносного сервера, рекламирующего ложную схему JSON, которая может заставить клиента отправлять незашифрованные данные, которые должны быть зашифрованы.

Замечание: Схемы, поставляемые в schemaMap, применяются только для настройки автоматического шифрования на стороне клиента. Другие правила проверки в схеме JSON не будут применяться драйвером и приведут к ошибке.

bypassAutoEncryption | bool | Если true, mongocryptd не будет появляться автоматически. Используется для отключения автоматического шифрования. По умолчанию false.
bypassQueryAnalysis | bool | Если true, автоматический анализ исходящих команд будет отключён и mongocryptd не будет появляться автоматически. Это позволяет использовать явное шифрование для запроса индексированных полей без необходимости использования лицензированной корпоративной библиотеки crypt_shared или процесса mongocryptd. По умолчанию установлено значение false.
encryptedFieldsMap array|object

Карта пространств имён коллекции в документе encryptedFields. Используется для настройки шифрования с возможностью запроса. Смотрите » Шифрование полей и возможность запросов в руководстве по MongoDB для получения дополнительной информации. Ошибкой является указание коллекции как в encryptedFieldsMap, так и в schemaMap.

Замечание: Указание encryptedFieldsMap обеспечивает большую безопасность, чем полагаться на encryptedFields, полученные от сервера. Это защищает от злонамеренного сервера, рекламирующего ложные encryptedFields.

extraOptions array

extraOptions относится к процессу mongocryptd. Поддерживаются следующие параметры:

  • mongocryptdURI (string): URI для подключения к существующему процессу mongocryptd. По умолчанию "mongodb://localhost:27020".
  • mongocryptdBypassSpawn (bool): Если true, предотвращает создание драйвером mongocryptd. По умолчанию false.
  • mongocryptdSpawnPath (string): Абсолютный путь для поиска двоичного файла mongocryptd. По умолчанию это пустая строка, использующая системные пути.
  • mongocryptdSpawnArgs (array): Массив строковых аргументов для передачи в mongocryptd при создании. По умолчанию ["--idleShutdownTimeoutSecs=60"].
  • cryptSharedLibPath (string): Абсолютный путь к библиотеке общего доступа crypt_shared. По умолчанию - пустая строка и использует системные пути.
  • cryptSharedLibRequired (bool): Если true, требует, чтобы драйвер загружал crypt_shared. По умолчанию false.

Смотрите » Руководство по шифрованию на стороне клиента, чтобы получить больше информации.

Замечание: Автоматическое шифрование — это только корпоративная функция, которая применяется только к операциям над коллекцией. Автоматическое шифрование не поддерживается для операций с базой данных или представлением, операции, которые не получится обойти, приведут к ошибке. Чтобы обойти автоматическое шифрование для всех операций, установите bypassAutoEncryption=true в 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 | Путь к файлу списка аннулированных сертификатов.
disableClientPersistence bool

Если true, Manager будет использовать новый клиент libmongoc, который не будет сохраняться или использоваться другими объектами Manager. Когда этот объект Manager будет освобождён, его клиент будет уничтожен, а все соединения будут закрыты. По умолчанию false.

Замечание: Disabling client persistence is not generally recommended.

driver array

Позволяет пользовательским драйверам добавлять свои метаданные к рукопожатию сервера. По умолчанию драйвер передаёт своё собственное имя, версию и платформу (то есть версию PHP) в рукопожатие. Пользовательские драйверы могут указывать строки для ключей "name", "version" и "platform" этого массива, которые будут добавлены к соответствующие поля в документе рукопожатия.

Замечание: Информация о рукопожатии ограничена 512 байтами. Драйвер урезает данные рукопожатия, чтобы соответствовать этой 512-байтовой строке. Драйверам и ODM рекомендуется сохранять краткость своих метаданных.

pem_file string

Путь к сертификату в формате PEM для аутентификации клиента.

Этот параметр является устаревшим псевдонимом для параметра URI "tlsCertificateKeyFile".

pem_pwd string

Парольная фраза к PEM-закодированному сертификату (если есть).

Этот параметр является устаревшим псевдонимом для параметра URI "tlsCertificateKeyFilePassword".

serverApi MongoDB\Driver\ServerApi

Опция используется для объявления версии API сервера для менеджера. Если не указана, версия API не объявляется.

weak_cert_validation bool

Отключает проверку сертификат, если true. По умолчанию - false

Этот параметр является устаревшим псевдонимом для параметра URI "tlsAllowInvalidCertificates".

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неверном формате uri выбрасывает исключение MongoDB\Driver\Exception\RuntimeException.

Список изменений

Версия Описание
PECL mongodb 1.16.0

Провайдер AWS KMS для шифрования на стороне клиента теперь принимает параметр "sessionToken", который можно использовать для аутентификации с временными учётными данными AWS.

Добавлено "tlsDisableOCSPEndpointCheck" в поле "tlsOptions" поля "autoEncryption" опции драйвера.

PECL mongodb 1.14.0

Добавлены опции автоматического шифрования "bypassQueryAnalysis" и "encryptedFieldsMap". Дополнительные опции, относящиеся к crypt_shared, теперь поддерживаются в опции автоматического шифрования "extraOptions". option.

PECL mongodb 1.13.0

Добавлены URI опции "srvMaxHosts" и "srvServiceName".

PECL mongodb 1.12.0

KMIP теперь поддерживается в качестве KMS провайдера для шифрования на стороне клиента и может быть настроен с помощью поля "kmsProviders" параметра драйвера "autoEncryption". Кроме того, параметры TLS для KMS провайдеров теперь можно настроить поле "tlsOptions" параметра драйвера "autoEncryption".

PECL mongodb 1.11.0

Добавлена опция URI "loadBalanced".

PECL mongodb 1.10.0

Добавлена опция драйвера "disableClientPersistence".

Azure и GCP теперь поддерживаются в качестве поставщиков KMS для шифрования на стороне клиента и могут быть настроены в поле "kmsProviders" параметра драйвера "autoEncryption". Строки в кодировке Base64 теперь принимаются в качестве альтернативы MongoDB\BSON\Binary для параметров внутри "kmsProviders".

PECL mongodb 1.8.0

Добавлены опции URI "directConnection", "tlsDisableCertificateRevocationCheck", и "tlsDisableOCSPEndpointCheck".

Добавлен параметр драйвера "driver".

PECL mongodb 1.7.0

Добавлена опция драйвера "autoEncryption".

Указание любой опции SSL или TLS в параметре driverOptions теперь неявно включает TLS, как это делается для соответствующих опций URI.

PECL mongodb 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, как в предыдущих версиях.

PECL mongodb 1.5.0

"wtimeoutMS" теперь всегда проверяется и применяется к гарантии записи. Ранее эта опция игнорировалась, если "w" был <= 1, поскольку время ожидания применяется только к репликации.

PECL mongodb 1.4.0

Добавлены опции URI "compressors", "retryWrites" и "zlibCompressionLevel".

PECL mongodb 1.3.0

В аргументе uriOptions теперь есть опции "authMechanism" и "authMechanismProperties". Раньше эти опции поддерживались только в аргументе uri.

PECL mongodb 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".

PECL mongodb 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/?authSource=databaseName");

?>

Подключение к MongoDB с учётными данными аутентификации для конкретного пользователя и базы данных, где имя пользователя или пароль содержат специальные символы (например, @, :, %). В следующем примере, строка с паролем myp@ss:w%rd была вручную экранирована; однако rawurlencode() может использоваться для экранирования URI-компонентов, которые могут содержать специальные символы.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://myusername:mypassword@example.com/?authSource=databaseName");

?>

Подключение к 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", "azure", "gcp" и "local", и, по крайней мере, один из них должен быть указан.

Если для "aws", "azure" или "gcp" указан пустой документ, драйвер попытается сконфигурировать провайдера, используя » Автоматические учётные данные.

Формат для "aws" выглядит следующим образом:

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>,
    sessionToken: <optional string>
}

Формат для "azure" выглядит следующим образом:

azure: {
    tenantId: <string>,
    clientId: <string>,
    clientSecret: <string>,
    identityPlatformEndpoint: <optional string> // По умолчанию "login.microsoftonline.com"

}

Формат для "gcp" выглядит следующим образом:

gcp: {
    email: <string>,
    privateKey: <base64 string>|<MongoDB\BSON\Binary>,
    endpoint: <optional string> // По умолчанию "oauth2.googleapis.com"

}

Формат для "kmip" выглядит следующим образом:

kmip: {
    endpoint: <string>
}

Формат для "local" выглядит следующим образом:

local: {
    // 96-байтовый главный ключ, используемый для шифрования/дешифрования ключей данных
    key: <base64 string>|<MongoDB\BSON\Binary>
}
tlsOptions array

Документ, содержащий конфигурацию TLS для одного или нескольких KMS провайдеров. Поддерживаются провайдеры "aws", "azure", "gcp" и "kmip". Все провайдеры поддерживают следующие опции:

<provider>: {
    tlsCaFile: <optional string>,
    tlsCertificateKeyFile: <optional string>,
    tlsCertificateKeyFilePassword: <optional string>,
    tlsDisableOCSPEndpointCheck: <optional bool>
}

Возвращаемые значения

Возвращает новый экземпляр MongoDB\Driver\ClientEncryption.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException если модуль был скомпилирован без поддержки libmongocrypt

Список изменений

Версия | Описание
PECL mongodb 1.16.0 | Провайдер AWS KMS для шифрования на стороне клиента теперь принимает параметр "sessionToken", который можно использовать для аутентификации с временными учётными данными AWS.
PECL mongodb 1.12.0 | KMIP теперь поддерживается в качестве KMS провайдера для шифрования на стороне клиента и может быть настроен с помощью параметра "kmsProviders". Добавлен параметр "tlsOptions".
PECL mongodb 1.10.0 | Azure и GCP теперь поддерживаются в качестве поставщиков KMS для шифрования на стороне клиента и могут быть настроены в поле "kmsProviders" параметра драйвера "autoEncryption". Строки в кодировке Base64 теперь принимаются в качестве альтернативы MongoDB\BSON\Binary для параметров внутри "kmsProviders".

Смотрите также

  • MongoDB\Driver\ClientEncryption::__construct() - Создаёт новый объект 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|MongoDB\Driver\WriteConcern|null $options = null): 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.

Список изменений

Версия | Описание
PECL mongodb 1.4.4 | Если опция "session" используется в сочетании с неподтверждённой гарантией записи, выбрасывается исключение MongoDB\Driver\Exception\InvalidArgumentException.
PECL mongodb 1.4.0 | Третий параметр options теперь массив. Для обратной совместимости этот параметр ещё принимает объект MongoDB\Driver\WriteConcern.
PECL mongodb 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|MongoDB\Driver\ReadPreference|null $options = null): 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.

Список изменений

Версия | Описание
PECL mongodb 1.4.4 | Если опция "session" используется в сочетании с неподтверждённой гарантией записи, выбрасывается исключение MongoDB\Driver\Exception\InvalidArgumentException.
PECL mongodb 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|MongoDB\Driver\ReadPreference|null $options = null): 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.

Список изменений

Версия | Описание
PECL mongodb 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 = null): 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 = null): MongoDB\Driver\Cursor

Выполняет команду на основном сервере.

Этот метод будет применять логику, специфичную для команд, которые читают и пишут (например, » aggregate) и учитывают версию сервера 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 для других ошибок (например, неверная команда).

Список изменений

Версия | Описание
PECL mongodb 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::getEncryptedFieldsMap »
  • 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 = null): 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 для других ошибок (например, неверная команда).

Список изменений

Версия | Описание
PECL mongodb 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() - Выполняет команду базы данных, которая пишет на сервере


Возвращает опцию автоматического шифрования encryptedFieldsMap для Manager

  • « MongoDB\Driver\Manager::executeWriteCommand
  • MongoDB\Driver\Manager::getReadConcern »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Возвращает опцию автоматического шифрования encryptedFieldsMap для Manager

MongoDB\Driver\Manager::getEncryptedFieldsMap

(mongodb >=1.14.0)

MongoDB\Driver\Manager::getEncryptedFieldsMap — Возвращает опцию автоматического шифрования encryptedFieldsMap для Manager

Описание

final public MongoDB\Driver\Manager::getEncryptedFieldsMap(): array|object|null

Возвращает параметр encryptedFieldsMap автоматического шифрования для Manager, если он указан.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Параметр encryptedFieldsMap автоматического шифрования для Manager или null, если он не был указан.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Manager::__construct() - Создаёт новый Manager MongoDB


Возвращает ReadConcern для Manager

  • « MongoDB\Driver\Manager::getEncryptedFieldsMap
  • 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(): 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(): 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(): 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_hello_response"]=>
    array(8) {
      ["isWritablePrimary"]=>
      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::removeSubscriber »
  • 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(): 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


Отменяет регистрацию подписчика на событие мониторинга в данном объекте Manager

  • « MongoDB\Driver\Manager::getWriteConcern
  • MongoDB\Driver\Manager::selectServer »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Отменяет регистрацию подписчика на событие мониторинга в данном объекте Manager

MongoDB\Driver\Manager::removeSubscriber

(mongodb >=1.10.0)

MongoDB\Driver\Manager::removeSubscriber — Отменяет регистрацию подписчика на событие мониторинга в данном объекте Manager

Описание

final public MongoDB\Driver\Manager::removeSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void

Отменяет регистрацию подписчика на событие мониторинга в данном объекте Manager.

Замечание: Если subscriber ещё не зарегистрирован в данном объекте Manager, функция отработает без результата.

Список параметров

subscriber (MongoDB\Driver\Monitoring\Subscriber)

Подписчик на событие мониторинга, которому необходимо отменить регистрацию в данном объекте Manager.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager
  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\removeSubscriber() - Отменяет глобальную регистрацию подписчика на событие мониторинга
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Выбрать сервер, соответствующий предпочтениям чтения

  • « MongoDB\Driver\Manager::removeSubscriber
  • 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 = null): MongoDB\Driver\Server

Выбирает MongoDB\Driver\Server, соответствующий readPreference. Если параметр readPreference равен null или опущен, по умолчанию будет выбран первичный сервер. Это можно использовать для предварительного выбора сервера, чтобы выполнить проверку версии перед выполнением операции.

Замечание: В отличие от MongoDB\Driver\Manager::getServers(), этот метод будет инициализировать подключение к базе данных и при необходимости выполнять обнаружение сервера. Подробнее смотрите. » Спецификацию выбора сервера.

Список параметров

readPreference (MongoDB\Driver\ReadPreference)

Предпочтение чтения используется для выбора сервера. Если null или опущен, по умолчанию будет выбран первичный сервер.

Возвращаемые значения

Возвращает MongoDB\Driver\Server, соответствующий предпочтению чтения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • При невозможности найти сервер, соответствующий предпочтению чтения, выбрасывает исключение MongoDB\Driver\Exception\RuntimeException

Список изменений

Версия | Описание
PECL mongodb 1.11.0 | Параметр readPreference теперь необязателен. Если указано значение null или опущен, по умолчанию будет выбран первичный сервер.

Смотрите также

  • MongoDB\Driver\Server
  • MongoDB\Driver\Manager::getServers() - Возвращает серверы, к которым подключён менеджер
  • » Спецификация выбора сервера


Запускает новый клиентский сеанс для использования с этим клиентом

  • « 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 = null): MongoDB\Driver\Session

Создаёт MongoDB\Driver\Session для указанных параметров. Сеанс затем может быть указан при выполнении команд, запросов и операций записи.

Замечание: MongoDB\Driver\Session может использоваться только с MongoDB\Driver\Manager, из которого он был создан.

Список параметров

options

options
Опция Тип Описание По умолчанию
causalConsistency bool

Настраивает причинную согласованность в сеансе. Если 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+.

[]
snapshot bool

Опция настраивает чтение моментальных снимков в сессии. Если true, временная метка будет получена из первой поддерживаемой операции чтения в сессии (т.е. find, aggregate или unsharded distinct). Последующие операции чтения в рамках сессии будут затем использовать уровень гарантии чтения "snapshot" для чтения данных, подтверждённых большинством, из этой временной метки. Установите значение false для отключения чтения моментальных снимков.

Для чтения моментальных снимков требуется MongoDB 5.0+, и их нельзя использовать с причинно-согласованной связью, транзакциями или операциями записи. Если "snapshot" равен true, "causalConsistency" по умолчанию будет false.

Смотрите » гарантию чтения "snapshot" в руководстве MongoDB для получения дополнительной информации.

false

Возвращаемые значения

Возвращает MongoDB\Driver\Session.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException если опции "causalConsistency" и "snapshot" равны true.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException если сеанс не может быть создан (например, libmongoc не поддерживает шифрование).

Список изменений

Версия | Описание
PECL mongodb 1.11.0 | Добавлен параметр "snapshot".
PECL mongodb 1.6.0 | Параметр "maxCommitTimeMS" добавлен в "defaultTransactionOptions".
PECL mongodb 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 class MongoDB\Driver\Command {
/* Методы */
final public __construct(array|object $document, ?array $commandOptions = null)
}

Примеры

Пример #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 = null)

Создаёт новый объект класса MongoDB\Driver\Command, который является неизменяемым значением, представляющим команду базы данных. Эту команду впоследствии можно запустить с помощью MongoDB\Driver\Manager::executeCommand().

Полный документ команды, включающий её имя и прочие опции,, должен быть задан в параметре document. Параметр commandOptions используется только для определения опций запуска команды и результирующий MongoDB\Driver\Cursor.

Список параметров

document

Полный документ команды, который будет передан серверу.

commandOptions

Замечание: Не используйте этот параметр для указания опций, описанных в руководстве по командам MongoDB. Этот параметр можно использовать только для опций перечисленных ниже.

commandOptions
Опция Тип Описание
maxAwaitTimeMS int

Положительное целое число, определяющие ограничение времени в миллисекундах, на которое сервер может блокировать операцию getMore, если данные отсутствуют. Эта опция может использоваться только совместно с командами, возвращающими хвостовые (tailable) курсоры. (например » Change Streams).

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
PECL mongodb 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 class MongoDB\Driver\Query {
/* Методы */
final public __construct(array|object $filter, ?array $queryOptions = null)
}

Содержание

  • 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 = null)

Создаёт новый MongoDB\Driver\Query, который является объектом неизменяемого значения, представляющим запрос к базе данных. Затем запрос может быть выполнен с помощью MongoDB\Driver\Manager::executeQuery().

Список параметров

filter (array|object)

» Предикат запроса. Пустой предикат совпадёт со всеми элементами коллекции.

Замечание: При вычислении критериев запроса, MongoDB сравнивает типы и значения в соответствии с собственными » правилами сравнения типов BSON, отличных от правил сравнения и приведения типов PHP. Когда используется специальный тип BSON, критерия запроса должна соответствовать классу BSON (т.е. использовать MongoDB\BSON\ObjectId для выборке по » ObjectId).

queryOptions

queryOptions
Опция | Тип | Описание
allowDiskUse bool

Позволяет MongoDB использовать временные файлы на диске для хранения данных, превышающих предел системной памяти в 100 мегабайт, при обработке операции сортировки блокировки.

allowPartialResults bool

Для запросов к изолированной коллекции возвращает частичные результаты из mongos, если некоторые шарды недоступны, вместо выдачи ошибки.

Возврат к устаревшей "partial" опции, если она не указана.

awaitData | bool | Используйте совместно с опцией "tailable", чтобы временно заблокировать операцию getMore для курсора, если в конце данных, а не возвращать никаких данных. После истечения времени ожидания запрос возвращается, как обычно.
batchSize int

Количество документов для возврата в первом пакете. По умолчанию - 101. Размер пакета 0 означает, что курсор будет установлен, но никакие документы не будут возвращены в первом пакете.

В версиях MongoDB до 3.2, где запросы используют устаревший проводной протокол OP_QUERY, размер пакета, равный 1, будет закрывать курсор независимо от количества совпадающих документов.

collation array|object

» Сопоставление позволяет пользователям указывать специфичные для конкретного языка правила для сравнения строк, такие как реакцию на регистр букв и надстрочные знаки. Если задано сопоставление, то поле "locale" также обязательно. Описание полей смотрите в разделе » Сопоставление.

Если сопоставление не задано явно, но у коллекции определено сопоставление по умолчанию, то будет использовано оно. Если нет ни того ни того, то MongoDB будет использовать простое бинарное сравнение строк.

Эта опция доступна в MongoDB 3.4+ и, если будет использована для более старых версий, вызовет исключение во время исполнения.

comment mixed

Произвольный комментарий, помогающий отследить операцию с помощью профилировщика базы данных, вывода CurrentOp и журналов.

Комментарий может быть любым допустимым типом BSON для MongoDB 4.4+. Более ранние версии сервера поддерживают только строковые значения.

Возврат к устаревшему модификатору "$comment", если он не указан.

exhaust bool

Потоковая передача данных на полную мощность в нескольких "дополнительных" пакетах при условии, что клиент полностью прочитает все запрашиваемые данные. Быстрее, когда вы извлекаете много данных и знаете, что хотите все это перенести. Примечание: клиент не имеет права не читать все данные, если он не закрывает соединение.

Эта опция не поддерживается командой find в MongoDB 3.2+ и заставит драйвер использовать устаревшую версию проводного протокола (то есть OP_QUERY).

explain bool

Если true, возвращённый MongoDB\Driver\Cursor будет содержать один документ, который описывает процесс и индексы, используемые для возврата запроса.

Возврат к устаревшему модификатору "$explain", если он не указан.

Эта опция не поддерживается командой find в MongoDB 3.2+ и будет учитываться только при использовании устаревшей версии проводного протокола (т.е. OP_QUERY). Команда » explain должна использоваться на MongoDB 3.0+.

hint string|array|object

Индекс спецификации. Укажите либо имя индекса в виде строки, либо шаблон ключа индекса. Если указано, то система запросов будет рассматривать планы только с использованием хинтованного индекса.

Откат к устаревшей опции "hint", если она не указана.

let array|object

Карта имён и значений параметров. Значения должны быть константами или закрытыми выражениями, которые не ссылаются на поля документа. К параметрам можно обращаться как к переменным в контексте агрегированного выражения (например, $$var).

Опция доступна в MongoDB 5.0+ и приведёт к исключению во время выполнения, если указана для более старой версии сервера.

limit int

Максимальное количество документов для возврата. Если не указано, то по умолчанию используется без ограничений. Значение 0 эквивалентно установке без ограничения.

Отрицательное значение будет интерпретироваться как положительное значение с параметром "singleBatch", установленным в значение true. Это поведение поддерживается для обратной совместимости, но его следует считать устаревшим.

max array|object

Эксклюзивная верхняя граница для определённого индекса.

Возврат к устаревшему модификатору "$max", если он не указан.

maxAwaitTimeMS int

Положительное целое число, обозначающее ограничение времени в миллисекундах для сервера, чтобы заблокировать операцию getMore, если данные недоступны. Эта опция должна использоваться только в сочетании с опциями "tailable" и "awaitData".

maxScan int
Внимание

Эта опция устарела и не должна использоваться.

Целое положительное число, обозначающее максимальное количество документов или индексных ключей для сканирования при выполнении запроса.

Возврат к устаревшему модификатору "$maxScan", если он не указан.

maxTimeMS int

Накопленный лимит времени в миллисекундах для операций обработки на курсоре. MongoDB прерывает операцию в ближайшей следующей точке прерывания.

Возврат к устаревшему модификатору "$maxTimeMS", если он не указан.

min array|object

Включающая нижняя граница для определённого индекса.

Возврат к устаревшему модификатору "$min", если он не указан.

modifiers | array | » Метаоператоры, изменяющие вывод или поведение запроса. Использование этих операторов не рекомендуется в пользу именованных опций.
noCursorTimeout | bool | Запрещает серверу синхронизировать незанятые курсоры после периода бездействия (10 минут).
oplogReplay bool

Внутреннее использование для наборов реплик. Чтобы использовать oplogReplay, вы должны включить в фильтр следующее условие:

[ 'ts' => [ '$gte' => <timestamp> ] ]

Замечание: Опция устарела с версии 1.8.0.
projection array|object

» Спецификация проекции для определения полей, которые необходимо включить в возвращаемые документы.

Если вы используете функцию ODM для десериализации документов в качестве их исходного класса PHP, убедитесь, что вы включили поле __pclass в проекцию. Это необходимо для работы десериализации, и без неё драйвер вернёт (по умолчанию) объект stdClass.

readConcern MongoDB\Driver\ReadConcern

Гарантии чтения, чтобы применить к операции. По умолчанию будут использоваться гарантии чтения из URI подключения MongoDB.

Эта опция доступна в MongoDB 3.2+ и приведёт к исключению во время выполнения, если указано для более старой версии сервера.

returnKey bool

Если true, возвращает только индексные ключи в результирующих документах. Значением по умолчанию является false. Если true и команда find не используют индекс, возвращённые документы будут пустыми.

Возврат к устаревшему модификатору "$returnKey", если он не указан.

showRecordId bool

Определяет, возвращать ли идентификатор записи для каждого документа. Если true, добавляет поле "$recordId" верхнего уровня к возвращённым документам.

Возврат к устаревшему модификатору "$showDiskLoc", если он не указан.

singleBatch | bool | Определяет, закрывать ли курсор после первого пакета. По умолчанию false.
skip | int | Количество документов для пропуска. По умолчанию 0.
snapshot bool
Внимание

Эта опция устарела и не должна использоваться.

Запрещает курсору возвращать документ более одного раза из-за промежуточной операции записи.

Возврат к устаревшему модификатору "$snapshot", если он не указан.

sort array|object

Спецификация сортировки для упорядочения результатов.

Возврат к устаревшему модификатору "$orderby", если он не указан.

tailable | bool | Возвращает настраиваемый курсор для ограниченной коллекции.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
PECL mongodb 1.14.0

Добавлена опция "let". Опция "comment" теперь принимает любой тип.

PECL mongodb 1.8.0

Добавлен параметр "allowDiskUse".

Параметр "oplogReplay" объявлен устаревшим.

PECL mongodb 1.5.0

Параметры "maxScan" и "snapshot" устарели.

PECL mongodb 1.3.0

Добавлен параметр "maxAwaitTimeMS".

PECL mongodb 1.2.0

Добавлен параметр "allowPartialResults", "collation", "comment", "hint", "max", "maxScan", "maxTimeMS", "min", "returnKey", "showRecordId", и "snapshot".

Переименован параметр "partial" в "allowPartialResults". Для обратной совместимости, "partial" всё равно будет прочитан, если "allowPartialResults" не указан.

Удалён устаревший параметр "secondaryOk". Для запросов, использующих устаревший проводной протокол OP_QUERY, драйвер установит бит secondaryOk по мере необходимости в соответствии с » Спецификацией выбора сервера.

PECL mongodb 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 class MongoDB\Driver\BulkWrite implements Countable {
/* Методы */
public __construct(?array $options = null)
public count(): int
public delete(array|object $filter, ?array $deleteOptions = null): void
public insert(array|object $document): mixed
public update(array|object $filter, array|object $newObj, ?array $updateOptions = null): 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 = null)

Создаёт новый MongoDB\Driver\BulkWrite, который является изменяемым объектом, к которому могут быть добавлены одна и несколько операций записи. Операции записи могут быть выполнены с помощью MongoDB\Driver\Manager::executeBulkWrite().

Список параметров

options (array)

options
Опция | Тип | Описание | Значение по умолчанию
bypassDocumentValidation bool

Если true, позволяет выполнять операции вставки или обновления, чтобы обойти проверку уровня документа.

Этот параметр доступен в MongoDB 3.2+ и игнорируется в более старых версиях сервера, которые не поддерживают проверку уровня сервера.

false
comment mixed

Произвольный комментарий, помогающий отследить операцию с помощью профилировщика базы данных, вывода CurrentOp и журналов.

Опция доступна в MongoDB 4.4+ и приведёт к исключению во время выполнения, если указана для более старой версии сервера.

let array|object

Карта имён и значений параметров. Значения должны быть константами или закрытыми выражениями, которые не ссылаются на поля документа. К параметрам можно обращаться как к переменным в контексте агрегированного выражения (например, $$var).

Опция доступна в MongoDB 5.0+ и приведёт к исключению во время выполнения, если указана для более старой версии сервера.

ordered | bool | Отсортированные операции (true) выполняется последовательно на сервере MongoDB, тогда как неотсортированные операции (false) отправляются на сервере в произвольном порядке и могут выполняться параллельно. | true

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
PECL mongodb 1.14.0 | Добавлены опции "comment" и "let".
PECL mongodb 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("Добавлено %d документ(ов)\n", $result->getInsertedCount());
printf("Обновлено %d документ(ов)\n", $result->getModifiedCount());
printf("Слито %d документ(ов)\n", $result->getUpsertedCount());
printf("Удалено %d документ(ов)\n", $result->getDeletedCount());

?>

Результат выполнения данного примера:

Добавлено 2 документ(ов)
Обновлено 1 документ(ов)
Слито 1 документ(ов)
Удалено  1 документ(ов)

Смотрите также

  • 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(): int

Возвращает количество операций записи, добавленных в объект MongoDB\Driver\BulkWrite.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество операций записи, добавленных в объект MongoDB\Driver\BulkWrite.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
PECL mongodb 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 = null): 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+ и, если будет использована для более старых версий, вызовет исключение во время исполнения.

hint string|array|object

Индекс спецификации. Укажите либо имя индекса в виде строки, либо шаблон ключа индекса. Если указано, то система запросов будет рассматривать планы только с использованием индекса подсказок.

Опция доступна с MongoDB 4.4+ и приведёт к исключению во время выполнения, если она указан для более старой версии сервера.

limit | bool | Удалить все подходящие документа (false) или только первый найденный документ (true) | false

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
PECL mongodb 1.8.0 | Добавлена опция "hint".
PECL mongodb 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.

Список изменений

Версия | Описание
PECL mongodb 1.3.0 | Всегда возвращается _id для добавленного документа. Ранее метод возвращал значение только в случае если MongoDB\BSON\ObjectId был создан.

Примеры

Пример #1 Пример использования MongoDB\Driver\BulkWrite::insert()

<?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 = null): 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

Индекс спецификации. Укажите либо имя индекса в виде строки, либо шаблон ключа индекса. Если указано, то система запросов будет рассматривать планы только с использованием индекса подсказок.

Опция доступна с MongoDB 4.4+ и приведёт к исключению во время выполнения, если она указан для более старой версии сервера.

multi | bool | Обновить только первый найденный документ, если false или все подходящие документы при true. Эта опция не может быть true, когда newObj - заменяющий документ. | false
upsert | bool | Если filter не соответствует существующему документу, будет вставлен новый документ. Документ будет создан из newObj, если он заменяющий документ (т.е. отсутствуют операторы обновления); в противном случае операторы в newObj будут применяться к filter для создания нового документа. | false

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
PECL mongodb 1.7.0 | Добавлена опция "hint".
PECL mongodb 1.6.0 | Параметр newObj теперь принимает конвейер агрегации. Требуется MongoDB 4.2+, для более старой версии сервера выбросит исключение во время выполнения.
PECL mongodb 1.5.0 | Использование опции "arrayFilters" приведёт к исключению во время выполнения, если она не поддерживается сервером. Раньше не выбрасывалось исключение, и этот параметр, возможно, был проигнорирован.
PECL mongodb 1.4.0 | Добавлена опция "arrayFilters".
PECL mongodb 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 class 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
final public advanceClusterTime(array|object $clusterTime): void
final public advanceOperationTime(MongoDB\BSON\TimestampInterface $operationTime): void
final public commitTransaction(): void
final private __construct()
final public endSession(): void
final public getClusterTime(): ?object
final public getLogicalSessionId(): object
final public getOperationTime(): ?MongoDB\BSON\Timestamp
final public getServer(): ?MongoDB\Driver\Server
final public getTransactionOptions(): ?array
final public getTransactionState(): string
final public isDirty(): bool
final public isInTransaction(): boolean
final public startTransaction(?array $options = null): 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 — Возвращает настройки текущей транзакции
  • MongoDB\Driver\Session::getTransactionState — Возвращает статус транзакции для текущей сессии
  • MongoDB\Driver\Session::isDirty — Возвращает, была ли сессия помечена как грязная
  • 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

Завершает многодокументную транзакцию и откатывает любые изменения данных, сделанные операциями внутри транзакции. То есть транзакция заканчивается без сохранения каких-либо изменений, внесённых операциями в транзакции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение 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

Сохраняет изменения, внесённые операциями в многодокументную транзакцию и завершает транзакцию. До фиксации ни одно изменение данных, сделанных из транзакции, не будет видно за пределами транзакции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение 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()

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

Этот метод закрывает существующий сеанс. Если транзакция была связана с этим сеансом, транзакция будет прервана. После вызова этого метода приложения не должны вызывать другие методы в сеансе.

Замечание: Сессии также закрыты во время сбора мусора. Не должно быть необходимости вызывать этот метод при нормальных обстоятельствах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение 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(): ?object

Возвращает время кластера для этого сеанса. Если сеанс не использовался для какой-либо операции и 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(): 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(): ?MongoDB\BSON\Timestamp

Возвращает время операции для этого сеанса. Если сеанс не использовался ни для какой операции, и 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(): ?MongoDB\Driver\Server

Возвращает MongoDB\Driver\Server, к которому привязана текущая сессия. Если сессия не привязана к серверу, то будет возвращён null.

Привязка сессии в основном используется для шардированных транзакций, так как все команды должны идти на один и тот же экземпляр mongos. Этот метод предназначен для использования в библиотеках, построенных поверх модуля, чтобы можно было закрепить сервер, а не выбирать сервер для каждой следующей команды.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\Server к которому прикреплена сессия. Или null, если сессия не прикреплена ни к какому серверу.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает настройки текущей транзакции

  • « MongoDB\Driver\Session::getServer
  • MongoDB\Driver\Session::getTransactionState »
  • PHP Manual
  • MongoDB\Driver\Session
  • Возвращает настройки текущей транзакции

MongoDB\Driver\Session::getTransactionOptions

(mongodb >=1.7.0)

MongoDB\Driver\Session::getTransactionOptions — Возвращает настройки текущей транзакции

Описание

final public MongoDB\Driver\Session::getTransactionOptions(): ?array

Возвращает настройки текущей транзакции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий настройки текущей транзакции, либо null, если транзакция не стартована.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Session::getTransactionState() - Возвращает статус транзакции для текущей сессии


Возвращает статус транзакции для текущей сессии

  • « MongoDB\Driver\Session::getTransactionOptions
  • MongoDB\Driver\Session::isDirty »
  • PHP Manual
  • MongoDB\Driver\Session
  • Возвращает статус транзакции для текущей сессии

MongoDB\Driver\Session::getTransactionState

(mongodb >=1.7.0)

MongoDB\Driver\Session::getTransactionState — Возвращает статус транзакции для текущей сессии

Описание

final public MongoDB\Driver\Session::getTransactionState(): string

Возвращает статус транзакции для текущей сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает статус транзакции для текущей сессии.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Session::isInTransaction() - Определяет, происходит ли в данный момент многодокументная транзакция
  • MongoDB\Driver\Session::getTransactionOptions() - Возвращает настройки текущей транзакции


Возвращает, была ли сессия помечена как грязная

  • « MongoDB\Driver\Session::getTransactionState
  • MongoDB\Driver\Session::isInTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Возвращает, была ли сессия помечена как грязная

MongoDB\Driver\Session::isDirty

(mongodb >=1.13.0)

MongoDB\Driver\Session::isDirty — Возвращает, была ли сессия помечена как грязная

Описание

final public MongoDB\Driver\Session::isDirty(): bool

Возвращает, была ли сессия помечена как грязная (т.е. была ли она использована с командой, которая столкнулась с сетевой ошибкой).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция возвращает, была ли сессия помечена как грязная.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Определяет, происходит ли в данный момент многодокументная транзакция

  • « MongoDB\Driver\Session::isDirty
  • 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(): boolean

Определяет, происходит ли в данный момент в текущей сессии многодокументная транзакция. Считается, что транзакция "происходит прямо сейчас", если она была запущена, но пока не была ни подтверждена ни отменена.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true или false.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Session::getTransactionState() - Возвращает статус транзакции для текущей сессии


Запускает транзакцию

  • « 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 = null): 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, если транзакция не может быть запущена (например, транзакция уже была запущена).

Список изменений

Версия | Описание
PECL mongodb 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 class 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;
const string ALGORITHM_INDEXED = Indexed;
const string ALGORITHM_UNINDEXED = Unindexed;
const string ALGORITHM_RANGE_PREVIEW = RangePreview;
const string QUERY_TYPE_EQUALITY = equality;
const string QUERY_TYPE_RANGE_PREVIEW = rangePreview;
/* Методы */
final public addKeyAltName(MongoDB\BSON\Binary $keyId, string $keyAltName): ?object
final public __construct(array $options)
final public createDataKey(string $kmsProvider, ?array $options = null): MongoDB\BSON\Binary
final public decrypt(MongoDB\BSON\Binary $value): mixed
final public deleteKey(MongoDB\BSON\Binary $keyId): object
final public encrypt(mixed $value, ?array $options = null): MongoDB\BSON\Binary
final public encryptExpression(array|object $expr, ?array $options = null): object
final public getKey(MongoDB\BSON\Binary $keyId): ?object
final public getKeyByAltName(string $keyAltName): ?object
final public getKeys(): MongoDB\Driver\Cursor
final public removeKeyAltName(MongoDB\BSON\Binary $keyId, string $keyAltName): ?object
final public rewrapManyDataKey(array|object $filter, ?array $options = null): object
}

Предопределённые константы

MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC

Определяет алгоритм для » детерминированного шифрования, который подходит для запросов.

MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM

Определяет алгоритм для » рандомизированного шифрования.

MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED

Определяет алгоритм для индексированной, зашифрованной полезной нагрузки, которая может быть использована с шифрованием с возможностью запроса.

Для добавления или запроса с индексированной, зашифрованной полезной нагрузкой MongoDB\Driver\Manager должен быть настроен с опцией драйвера "autoEncryption". Опция "bypassQueryAnalysis" автоматического шифрования может быть установлена как true. Параметр "bypassAutoEncryption" автоматического шифрования должен быть false.

MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED

Указывает алгоритм для неиндексированной, зашифрованной полезной нагрузки.

MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW

Определяет алгоритм для диапазона, зашифрованной полезной нагрузки, которая может быть использована с шифрованием с возможностью запроса.

Для выполнения запроса с зашифрованной полезной нагрузкой диапазона MongoDB\Driver\Manager должен быть настроен с опцией драйвера "autoEncryption". Опция "bypassQueryAnalysis" автоматического шифрования может быть true. Параметр "bypassAutoEncryption" автоматического шифрования должен быть false.

Замечание:

Алгоритм диапазона является экспериментальным. Он не предназначен для публичного использования.

Драйвер PHP пока не поддерживает запросы диапазона для типов полей decimal128 BSON.

MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY

Определяет тип запроса равенства, который используется в сочетании с MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED.

MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW

Задаёт тип запроса диапазона, который используется в сочетании с MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

Список изменений

Версия | Описание
PECL mongodb 1.16.0 | Добавлены константы MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW и MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW.
PECL mongodb 1.14.0 | Добавлены константы MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED, MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED и MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY.

Смотрите также

  • MongoDB\Driver\Manager::createClientEncryption()

Содержание

  • MongoDB\Driver\ClientEncryption::addKeyAltName — Добавляет альтернативное имя к документу с ключом
  • MongoDB\Driver\ClientEncryption::__construct — Создаёт новый объект ClientEncryption
  • MongoDB\Driver\ClientEncryption::createDataKey — Создаёт документ с ключом
  • MongoDB\Driver\ClientEncryption::decrypt — Расшифровать данных
  • MongoDB\Driver\ClientEncryption::deleteKey — Удаляет документ с ключом
  • MongoDB\Driver\ClientEncryption::encrypt — Шифрует данные
  • MongoDB\Driver\ClientEncryption::encryptExpression — Шифрует совпадение или агрегированное выражение
  • MongoDB\Driver\ClientEncryption::getKey — Получает документ с ключом
  • MongoDB\Driver\ClientEncryption::getKeyByAltName — Получает документ с ключом по альтернативному имени
  • MongoDB\Driver\ClientEncryption::getKeys — Получает все документы с ключом
  • MongoDB\Driver\ClientEncryption::removeKeyAltName — Удаляет альтернативное имя из документа с ключом
  • MongoDB\Driver\ClientEncryption::rewrapManyDataKey — Переворачивает ключи данных


Добавляет альтернативное имя к документу с ключом

  • « MongoDB\Driver\ClientEncryption
  • MongoDB\Driver\ClientEncryption::__construct »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Добавляет альтернативное имя к документу с ключом

MongoDB\Driver\ClientEncryption::addKeyAltName

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::addKeyAltName — Добавляет альтернативное имя к документу с ключом

Описание

final public MongoDB\Driver\ClientEncryption::addKeyAltName(MongoDB\BSON\Binary $keyId, string $keyAltName): ?object

Добавляет параметр keyAltName в набор альтернативных имён для документа с ключом с заданным UUID keyId.

Список параметров

keyId

Экземпляр MongoDB\BSON\Binary с подтипом 4 (UUID), идентифицирующий документ с ключом.

keyAltName

Альтернативное имя для добавления в документ с ключом.

Возвращаемые значения

Возвращает предыдущую версию документа с ключом или null, если ни один документ не был найден.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException в случае возникновения прочих ошибок.

Смотрите также

  • MongoDB\Driver\ClientEncryption::getKeyByAltName() - Получает документ с ключом по альтернативному имени
  • MongoDB\Driver\ClientEncryption::removeKeyAltName() - Удаляет альтернативное имя из документа с ключом


Создаёт новый объект ClientEncryption

  • « MongoDB\Driver\ClientEncryption::addKeyAltName
  • MongoDB\Driver\ClientEncryption::createDataKey »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Создаёт новый объект ClientEncryption

MongoDB\Driver\ClientEncryption::__construct

(mongodb >=1.14.0)

MongoDB\Driver\ClientEncryption::__construct — Создаёт новый объект ClientEncryption

Описание

final public MongoDB\Driver\ClientEncryption::__construct(array $options)

Создаёт новый объект MongoDB\Driver\ClientEncryption с указанными опциями.

Список параметров

options

Опции
Опция | Тип | Описание
keyVaultClient | MongoDB\Driver\Manager | Менеджер, используемый для маршрутизации запросов ключей данных. Опция является обязательной (в отличие от функции MongoDB\Driver\Manager::createClientEncryption()).
keyVaultNamespace | string | Полное пространство имён (например, "databaseName.collectionName"), обозначающее коллекцию, которая содержит все ключи данных, используемые для шифрования и дешифрования. Обязательный параметр.
kmsProviders array

Документ, содержащий конфигурацию для одного или нескольких провайдеров KMS, которые используются для шифрования ключей данных. Поддерживаются провайдеры "aws", "azure", "gcp" и "local", и, по крайней мере, один из них должен быть указан.

Если для "aws", "azure" или "gcp" указан пустой документ, драйвер попытается сконфигурировать провайдера, используя » Автоматические учётные данные.

Формат для "aws" выглядит следующим образом:

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>,
    sessionToken: <optional string>
}

Формат для "azure" выглядит следующим образом:

azure: {
    tenantId: <string>,
    clientId: <string>,
    clientSecret: <string>,
    identityPlatformEndpoint: <optional string> // По умолчанию "login.microsoftonline.com"

}

Формат для "gcp" выглядит следующим образом:

gcp: {
    email: <string>,
    privateKey: <base64 string>|<MongoDB\BSON\Binary>,
    endpoint: <optional string> // По умолчанию "oauth2.googleapis.com"

}

Формат для "kmip" выглядит следующим образом:

kmip: {
    endpoint: <string>
}

Формат для "local" выглядит следующим образом:

local: {
    // 96-байтовый главный ключ, используемый для шифрования/дешифрования ключей данных
    key: <base64 string>|<MongoDB\BSON\Binary>
}
tlsOptions array

Документ, содержащий конфигурацию TLS для одного или нескольких KMS провайдеров. Поддерживаются провайдеры "aws", "azure", "gcp" и "kmip". Все провайдеры поддерживают следующие опции:

<provider>: {
    tlsCaFile: <optional string>,
    tlsCertificateKeyFile: <optional string>,
    tlsCertificateKeyFilePassword: <optional string>,
    tlsDisableOCSPEndpointCheck: <optional bool>
}

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException, если модуль был скомпилирован без поддержки libmongocrypt.

Список изменений

Версия | Описание
PECL mongodb 1.16.0 | Провайдер AWS KMS для шифрования на стороне клиента теперь принимает параметр "sessionToken", который можно использовать для аутентификации с временными учётными данными AWS. Добавлена поддержка "tlsDisableOCSPEndpointCheck" в опцию "tlsOptions".

Смотрите также

  • MongoDB\Driver\Manager::createClientEncryption() - Создание нового объекта ClientEncryption
  • » Явное (ручное) шифрование уровня полей на стороне клиента в руководстве по MongoDB


Создаёт документ с ключом

  • « MongoDB\Driver\ClientEncryption::__construct
  • 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 = null): MongoDB\BSON\Binary

Создаёт новый документ с ключом шифрования и кладёт его в коллекцию хранилища ключей.

Список параметров

kmsProvider

Провайдер KMS ("local", "aws"), который будет использоваться для шифрования нового ключа данных.

options

Опции
Опция Тип Описание
masterKey array

Документ masterKey определяет специфический для KMS ключ, используемый для шифрования нового ключа данных. Параметр обязателен, если параметр kmsProvider не является "local".

Параметры провайдера "aws"
Параметр | Тип | Описание
region | Строка | Обязательный.
key | Строка | Обязательный. Имя ресурса Amazon (ARN) для главного ключа клиента AWS (CMK).
endpoint | Строка | Необязательный. Альтернативный идентификатор хоста для отправки запросов KMS. Может содержать номер порта.

Параметры провайдера "azure"
Параметр | Тип | Описание
keyVaultEndpoint | Строка | Обязательный. Хост с необязательным портом (например, "example.vault.azure.net").
keyName | Строка | Обязательный.
keyVersion | Строка | Необязательный. Определённая версия именованного ключа. По умолчанию используется первичная версия ключа.

Параметры провайдера "gcp"
Параметр | Тип | Описание
projectId | Строка | Обязательный.
location | Строка | Обязательный.
keyRing | Строка | Обязательный.
keyName | Строка | Обязательный.
keyVersion | Строка | Необязательный. Определённая версия именованного ключа. По умолчанию используется первичная версия ключа.
endpoint | Строка | Необязательный. Хост с дополнительным портом. По умолчанию "cloudkms.googleapis.com"..

Параметры провайдера "kmip"
Параметр | Тип | Описание
keyId | Строка | Необязательный. Уникальный идентификатор 96-байтового управляемого объекта секретных данных KMIP. Если не указан, драйвер создаёт случайный 96-байтовый управляемый объект секретных данных KMIP.
endpoint | Строка | Необязательный. Хост с дополнительным портом.

keyAltNames array

Опциональный список альтернативных имён использующихся для ссылки на ключ. Если ключ создан с использованием альтернативных имён, то при шифровании можно ссылаться на уникальное альтернативное имя вместо _id.

keyMaterial MongoDB\BSON\Binary

Необязательное 96-байтовое значение для использования в качестве материала пользовательского ключа для создаваемого ключа данных. Если задан keyMaterial, то используется пользовательский материал ключа для шифрования и расшифровки данных. В противном случае материал ключа для нового ключа данных генерируется из криптографически защищённого случайного устройства.

Возвращаемые значения

Возвращает идентификатор нового ключа в виде объекта MongoDB\BSON\Binary с подтипом 4 (UUID).

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException в случае возникновения других ошибок.

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Добавлена опция "keyMaterial".
PECL mongodb 1.10.0 | В качестве поставщиков KMS для шифрования на стороне клиента теперь поддерживаются Azure и GCP.


Расшифровать данных

  • « MongoDB\Driver\ClientEncryption::createDataKey
  • MongoDB\Driver\ClientEncryption::deleteKey »
  • 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\ClientEncryption::encrypt »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Удаляет документ с ключом

MongoDB\Driver\ClientEncryption::deleteKey

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::deleteKey — Удаляет документ с ключом

Описание

final public MongoDB\Driver\ClientEncryption::deleteKey(MongoDB\BSON\Binary $keyId): object

Удаляет документ с ключом с заданным UUID keyId из коллекции хранилища ключей.

Список параметров

keyId

Экземпляр MongoDB\BSON\Binary с подтипом 4 (UUID), идентифицирующий документ с ключом.

Возвращаемые значения

Возвращает результат внутренней операции deleteOne над коллекцией хранилища ключей.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException в случае возникновения прочих ошибок.


Шифрует данные

  • « MongoDB\Driver\ClientEncryption::deleteKey
  • MongoDB\Driver\ClientEncryption::encryptExpression »
  • 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 = null): MongoDB\BSON\Binary

Шифрует данные.

Список параметров

value

Значение для шифрования. Метод может зашифровать любые данные, которые могут быть записаны в MongoDB.

options

Encryption options
Опция Тип Описание
algorithm string

Алгоритм шифрования, который будет использоваться. Опция является обязательной. Укажите одну из следующих констант ClientEncryption:

  • MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC
  • MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM
  • MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED
  • MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED
  • MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW
contentionFactor int

Коэффициент сдерживания при оценке запросов с индексированными, зашифрованными полезными нагрузками.

Опция применяется и может быть указана только тогда, когда опция algorithm равна MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED или MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

keyAltName string

Идентифицирует документ коллекции хранилища ключей по keyAltName. Опция является взаимоисключающей с keyId и требуется ровно один.

keyId MongoDB\BSON\Binary

Идентифицирует ключ данных по _id. Значением является UUID (двоичный подтип 4). Опция является взаимоисключающей с keyAltName и требуется ровно один.

queryType int

Тип запроса для оценки запросов с индексированными, зашифрованными полезными нагрузками. Укажите одну из следующих констант ClientEncryption:

  • MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY
  • MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW

Опция применяется и может быть указана только тогда, когда опция algorithm равна MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED или MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

rangeOpts array

Опции индекса для шифруемого поля с поддержкой запросов "rangePreview". Приведённые ниже параметры должны соответствовать значениям, установленным в encryptedFields целевой коллекции. Для полей типа double и decimal128 BSON, min, max и precision должны быть либо все установлены, либо все должны отсутствовать.

Опции индекса диапазона
Опция | Тип | Описание
min | mixed | Обязательное, если установлено значение precision.
max | mixed | Обязательное, если установлено значение precision.
sparsity | int | Обязательное.
precision | int | Необязательное. Может быть установлено только для типов полей BSON double или decimal128.

Возвращаемые значения

Возвращает зашифрованные данные в виде объекта MongoDB\BSON\Binary с подтипом 6.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\EncryptionException если при шифровании возникла ошибка

Список изменений

Версия | Описание
PECL mongodb 1.14.0 | Добавлены опции "contentionFactor" и "queryType".

Смотрите также

  • MongoDB\Driver\ClientEncryption::decrypt() - Расшифровать данных


Шифрует совпадение или агрегированное выражение

  • « MongoDB\Driver\ClientEncryption::encrypt
  • MongoDB\Driver\ClientEncryption::getKey »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Шифрует совпадение или агрегированное выражение

MongoDB\Driver\ClientEncryption::encryptExpression

(mongodb >=1.16.0)

MongoDB\Driver\ClientEncryption::encryptExpression — Шифрует совпадение или агрегированное выражение

Описание

final public MongoDB\Driver\ClientEncryption::encryptExpression(array|object $expr, ?array $options = null): object

Шифрует совпадение или агрегированное выражение для запроса индекса диапазона.

Для выполнения запроса с зашифрованным диапазоном полезной нагрузки драйвер MongoDB\Driver\Manager должен быть сконфигурирован с опцией "autoEncryption". Опция "bypassQueryAnalysis" автоматического шифрования может иметь значение true. Опция "bypassAutoEncryption" автоматического шифрования должна иметь значение false.

Замечание:

Алгоритм работы с диапазоном является экспериментальным. Он не предназначен для публичного использования.

Драйвер PHP пока не поддерживает запросы диапазонов для типов полей decimal128 BSON.

Список параметров

expr

Соответствие или агрегированное выражение, которое необходимо зашифровать. В выражениях должен использоваться хотя бы один из операторов $gt, $gte, $lt или $lte. Оператор верхнего уровня $and необходим, даже если используется только один оператор сравнения.

Пример поддерживаемого выражения соответствия (применяется для запросов и этапа агрегации $match) выглядит следующим образом:

[
    '$and' => [
        [ '<field>' => [ '$gt'  => '<value1>' ] ],
        [ '<field>' => [ '$lte' => '<value2>' ] ],
    ],
]

Пример поддерживаемого агрегированного выражения выглядит следующим образом:

[
    '$and' => [
        [ '$gte' => [ '<fieldPath>', '<value1>' ] ],
        [ '$lt'  => [ '<fieldPath>', '<value2>' ] ],
    ],
]
options

Encryption options
Опция Тип Описание
algorithm string

Алгоритм шифрования, который будет использоваться. Опция является обязательной. Укажите одну из следующих констант ClientEncryption:

  • MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC
  • MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM
  • MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED
  • MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED
  • MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW
contentionFactor int

Коэффициент сдерживания при оценке запросов с индексированными, зашифрованными полезными нагрузками.

Опция применяется и может быть указана только тогда, когда опция algorithm равна MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED или MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

keyAltName string

Идентифицирует документ коллекции хранилища ключей по keyAltName. Опция является взаимоисключающей с keyId и требуется ровно один.

keyId MongoDB\BSON\Binary

Идентифицирует ключ данных по _id. Значением является UUID (двоичный подтип 4). Опция является взаимоисключающей с keyAltName и требуется ровно один.

queryType int

Тип запроса для оценки запросов с индексированными, зашифрованными полезными нагрузками. Укажите одну из следующих констант ClientEncryption:

  • MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY
  • MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW

Опция применяется и может быть указана только тогда, когда опция algorithm равна MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED или MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

rangeOpts array

Опции индекса для шифруемого поля с поддержкой запросов "rangePreview". Приведённые ниже параметры должны соответствовать значениям, установленным в encryptedFields целевой коллекции. Для полей типа double и decimal128 BSON, min, max и precision должны быть либо все установлены, либо все должны отсутствовать.

Опции индекса диапазона
Опция | Тип | Описание
min | mixed | Обязательное, если установлено значение precision.
max | mixed | Обязательное, если установлено значение precision.
sparsity | int | Обязательное.
precision | int | Необязательное. Может быть установлено только для типов полей BSON double или decimal128.

Возвращаемые значения

Возвращает зашифрованное выражение в виде объекта.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\EncryptionException в случае возникновения ошибки при шифровании выражения.

Смотрите также

  • MongoDB\Driver\Manager::__construct() - Создаёт новый Manager MongoDB


Получает документ с ключом

  • « MongoDB\Driver\ClientEncryption::encryptExpression
  • MongoDB\Driver\ClientEncryption::getKeyByAltName »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Получает документ с ключом

MongoDB\Driver\ClientEncryption::getKey

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::getKey — Получает документ с ключом

Описание

final public MongoDB\Driver\ClientEncryption::getKey(MongoDB\BSON\Binary $keyId): ?object

Находит единственный документ с ключом в коллекции хранилища ключей с заданным UUID keyId.

Список параметров

keyId

Экземпляр MongoDB\BSON\Binary с подтипом 4 (UUID), идентифицирующий документ с ключом.

Возвращаемые значения

Возвращает документ с ключом или null, если ни один документ не совпал.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException в случае возникновения прочих ошибок.


Получает документ с ключом по альтернативному имени

  • « MongoDB\Driver\ClientEncryption::getKey
  • MongoDB\Driver\ClientEncryption::getKeys »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Получает документ с ключом по альтернативному имени

MongoDB\Driver\ClientEncryption::getKeyByAltName

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::getKeyByAltName — Получает документ с ключом по альтернативному имени

Описание

final public MongoDB\Driver\ClientEncryption::getKeyByAltName(string $keyAltName): ?object

Находит единственный документ с ключом в коллекции хранилища ключей с заданным альтернативным именем keyAltName.

Список параметров

keyAltName

Альтернативное имя документа с ключом.

Возвращаемые значения

Возвращает документ с ключом или null, если ни один документ не совпал.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException в случае возникновения прочих ошибок.

Смотрите также

  • MongoDB\Driver\ClientEncryption::addKeyAltName() - Добавляет альтернативное имя к документу с ключом
  • MongoDB\Driver\ClientEncryption::removeKeyAltName() - Удаляет альтернативное имя из документа с ключом


Получает все документы с ключом

  • « MongoDB\Driver\ClientEncryption::getKeyByAltName
  • MongoDB\Driver\ClientEncryption::removeKeyAltName »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Получает все документы с ключом

MongoDB\Driver\ClientEncryption::getKeys

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::getKeys — Получает все документы с ключом

Описание

final public MongoDB\Driver\ClientEncryption::getKeys(): MongoDB\Driver\Cursor

Находит все документы с ключом в коллекции хранилища ключей.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает MongoDB\Driver\Cursor.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException в случае возникновения прочих ошибок.


Удаляет альтернативное имя из документа с ключом

  • « MongoDB\Driver\ClientEncryption::getKeys
  • MongoDB\Driver\ClientEncryption::rewrapManyDataKey »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Удаляет альтернативное имя из документа с ключом

MongoDB\Driver\ClientEncryption::removeKeyAltName

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::removeKeyAltName — Удаляет альтернативное имя из документа с ключом

Описание

final public MongoDB\Driver\ClientEncryption::removeKeyAltName(MongoDB\BSON\Binary $keyId, string $keyAltName): ?object

Удаляет параметр keyAltName из набора альтернативных имён для документа с ключом с заданным UUID keyId.

Список параметров

keyId

Экземпляр MongoDB\BSON\Binary с подтипом 4 (UUID), идентифицирующий документ с ключом.

keyAltName

Альтернативное имя для удаления из документа с ключом.

Возвращаемые значения

Возвращает предыдущую версию документа с ключом или null, если ни один документ не совпадает.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException в случае возникновения прочих ошибок.

Смотрите также

  • MongoDB\Driver\ClientEncryption::addKeyAltName() - Добавляет альтернативное имя к документу с ключом
  • MongoDB\Driver\ClientEncryption::getKeyByAltName() - Получает документ с ключом по альтернативному имени


Переворачивает ключи данных

  • « MongoDB\Driver\ClientEncryption::removeKeyAltName
  • MongoDB\Driver\ServerApi »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Переворачивает ключи данных

MongoDB\Driver\ClientEncryption::rewrapManyDataKey

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::rewrapManyDataKey — Переворачивает ключи данных

Описание

final public MongoDB\Driver\ClientEncryption::rewrapManyDataKey(array|object $filter, ?array $options = null): object

Переворачивает (т.е. расшифровывает и заново шифрует) ноль или более ключей данных в коллекции хранилища ключей, которые соответствуют заданному фильтру (filter).

Если опция "provider" не указана, совпадающие ключи данных будут повторно зашифрованы с помощью текущего поставщика KMS. В противном случае совпадающие ключи данных будут зашифрованы заново в соответствии с указанными опциями "provider" и "masterKey".

Список параметров

filter (array|object)

» Предикат запроса. Пустой предикат совпадёт со всеми элементами коллекции.

Замечание: При вычислении критериев запроса, MongoDB сравнивает типы и значения в соответствии с собственными » правилами сравнения типов BSON, отличных от правил сравнения и приведения типов PHP. Когда используется специальный тип BSON, критерия запроса должна соответствовать классу BSON (т.е. использовать MongoDB\BSON\ObjectId для выборке по » ObjectId).

options

Параметры RewrapManyDataKey
Параметр Тип Описание
provider string

KMS-провайдер (например, "local", "aws"), который будет использоваться для повторного шифрования совпавших ключей данных.

Если провайдер KMS не указан, то совпадающие ключи данных будут повторно зашифрованы с помощью текущего провайдера KMS.

masterKey array

Параметр masterKey определяет специфический для KMS ключ, используемый для шифрования нового ключа данных. Параметр не должен указываться без параметра "provider". Параметр необходим, если указан "provider", а не "local".

Параметры провайдера "aws"
Параметр | Тип | Описание
region | Строка | Обязательный.
key | Строка | Обязательный. Имя ресурса Amazon (ARN) для главного ключа клиента AWS (CMK).
endpoint | Строка | Необязательный. Альтернативный идентификатор хоста для отправки запросов KMS. Может содержать номер порта.

Параметры провайдера "azure"
Параметр | Тип | Описание
keyVaultEndpoint | Строка | Обязательный. Хост с необязательным портом (например, "example.vault.azure.net").
keyName | Строка | Обязательный.
keyVersion | Строка | Необязательный. Определённая версия именованного ключа. По умолчанию используется первичная версия ключа.

Параметры провайдера "gcp"
Параметр | Тип | Описание
projectId | Строка | Обязательный.
location | Строка | Обязательный.
keyRing | Строка | Обязательный.
keyName | Строка | Обязательный.
keyVersion | Строка | Необязательный. Определённая версия именованного ключа. По умолчанию используется первичная версия ключа.
endpoint | Строка | Необязательный. Хост с дополнительным портом. По умолчанию "cloudkms.googleapis.com"..

Параметры провайдера "kmip"
Параметр | Тип | Описание
keyId | Строка | Необязательный. Уникальный идентификатор 96-байтового управляемого объекта секретных данных KMIP. Если не указан, драйвер создаёт случайный 96-байтовый управляемый объект секретных данных KMIP.
endpoint | Строка | Необязательный. Хост с дополнительным портом.

Возвращаемые значения

Возвращает объект, у которого будет необязательное свойство bulkWriteResult, содержащее результат внутренней операции bulkWrite в виде объекта. Если ни один ключ данных не соответствует фильтру или запись не была признана, свойство bulkWriteResult будет равно null.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Выбрасывает исключение MongoDB\Driver\Exception\EncryptionException, если при расшифровке или повторном шифровании ключа данных произошла ошибка.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException в случае возникновения прочих ошибок.


Класс MongoDB\Driver\ServerApi

(mongodb >=1.10.0)

Введение

Обзор классов

final class MongoDB\Driver\ServerApi implements MongoDB\BSON\Serializable, Serializable {
/* Константы */
const string MongoDB\Driver\ServerAPI::V1 = "1";
/* Методы */
final public bsonSerialize(): stdClass
final public __construct(string $version, ?bool $strict = null, ?bool $deprecationErrors = null)
final public serialize(): string
final public unserialize(string $data): void
}

Предопределённые константы

MongoDB\Driver\ServerApi::V1

Server API версия 1.

Примеры

Пример #1 Пример объявления версии API в диспетчере

<?php

use MongoDB\Driver\Manager;
use MongoDB\Driver\ServerApi;

$v1 = new ServerApi(ServerApi::v1);
$manager = new Manager('mongodb://localhost:27017', [], ['serverApi' => $v1]);

$command = new MongoDB\Driver\Command(['buildInfo' => 1]);

try {
$cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}

/* Команда buildInfo возвращает единственный документ результата, поэтому нам нужно получить доступ
* к первому результату в курсоре. */
$buildInfo = $cursor->toArray()[0];

echo $buildInfo->version, "\n";

?>

Результат выполнения данного примера:

4.9.0-alpha7-49-gb968ca0

Пример #2 Пример объявления строгой версии API для менеджера

В следующем примере устанавливается флаг strict, который сообщает серверу отклонить любую команду, не являющуюся частью объявленной версии API. Это приводит к ошибке при выполнении команды buildInfo.

<?php

use MongoDB\Driver\Manager;
use MongoDB\Driver\ServerApi;

$v1 = new ServerApi(ServerApi::v1, true);
$manager = new Manager('mongodb://localhost:27017', [], ['serverApi' => $v1]);

$command = new MongoDB\Driver\Command(['buildInfo' => 1]);

try {
$cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}

/* Команда buildInfo возвращает единственный документ результата, поэтому нам нужно получить доступ
* к первому результату в курсоре. */
$buildInfo = $cursor->toArray()[0];

echo $buildInfo->version, "\n";

?>

Результат выполнения данного примера:

Provided apiStrict:true, but the command buildInfo is not in API Version 1

Содержание

  • MongoDB\Driver\ServerApi::bsonSerialize — Возвращает объект для сериализации BSON
  • MongoDB\Driver\ServerApi::__construct — Создаёт новый экземпляр ServerApi
  • MongoDB\Driver\ServerApi::serialize — Сериализует ServerApi
  • MongoDB\Driver\ServerApi::unserialize — Десериализует ServerApi


Возвращает объект для сериализации BSON

  • « MongoDB\Driver\ServerApi
  • MongoDB\Driver\ServerApi::__construct »
  • PHP Manual
  • MongoDB\Driver\ServerApi
  • Возвращает объект для сериализации BSON

MongoDB\Driver\ServerApi::bsonSerialize

(mongodb >=1.10.0)

MongoDB\Driver\ServerApi::bsonSerialize — Возвращает объект для сериализации BSON

Описание

final public MongoDB\Driver\ServerApi::bsonSerialize(): stdClass

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект для сериализации ServerApi как BSON.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Serializable::bsonSerialize() - Предоставляет массив или документ для сериализации в BSON


Создаёт новый экземпляр ServerApi

  • « MongoDB\Driver\ServerApi::bsonSerialize
  • MongoDB\Driver\ServerApi::serialize »
  • PHP Manual
  • MongoDB\Driver\ServerApi
  • Создаёт новый экземпляр ServerApi

MongoDB\Driver\ServerApi::__construct

(mongodb >=1.10.0)

MongoDB\Driver\ServerApi::__construct — Создаёт новый экземпляр ServerApi

Описание

final public MongoDB\Driver\ServerApi::__construct(string $version, ?bool $strict = null, ?bool $deprecationErrors = null)

Создаёт новый экземпляр MongoDB\Driver\ServerApi экземпляр, используемый для объявления версии API при создании MongoDB\Driver\Manager.

Список параметров

version

Версия API сервера.

Поддерживаемые версии API представлены в виде констант в MongoDB\Driver\ServerApi. Единственной поддерживаемой версией API является MongoDB\Driver\ServerApi::V1.

strict

Если у параметра strict установлено значение true, сервер будет выдавать ошибку для любой команды, которая не является частью указанной версии API. Если значение не указано, используется значение по умолчанию (false).

deprecationErrors

Если у параметра deprecationErrors установлено значение true, сервер будет выдавать ошибку при использовании команды, которая устарела в указанной версии API. Если значение не задано, используется значение по умолчанию (false).


Сериализует ServerApi

  • « MongoDB\Driver\ServerApi::__construct
  • MongoDB\Driver\ServerApi::unserialize »
  • PHP Manual
  • MongoDB\Driver\ServerApi
  • Сериализует ServerApi

MongoDB\Driver\ServerApi::serialize

(mongodb >=1.10.0)

MongoDB\Driver\ServerApi::serialize — Сериализует ServerApi

Описание

final public MongoDB\Driver\ServerApi::serialize(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\Driver\ServerApi.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\ServerApi::unserialize() - Десериализует ServerApi
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Десериализует ServerApi

  • « MongoDB\Driver\ServerApi::serialize
  • MongoDB\Driver\WriteConcern »
  • PHP Manual
  • MongoDB\Driver\ServerApi
  • Десериализует ServerApi

MongoDB\Driver\ServerApi::unserialize

(mongodb >=1.10.0)

MongoDB\Driver\ServerApi::unserialize — Десериализует ServerApi

Описание

final public MongoDB\Driver\ServerApi::unserialize(string $data): void

Список параметров

data

Сериализованный MongoDB\Driver\ServerApi.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает MongoDB\Driver\Exception\UnexpectedValueException, если свойства не могут быть десериализованы (например, serialized был некорректно сформирован).
  • Выбрасывает MongoDB\Driver\Exception\InvalidArgumentException, если свойства некорректны (например, отсутствуют поля или содержатся недопустимые значения).

Смотрите также

  • MongoDB\Driver\ServerApi::serialize() - Сериализует ServerApi
  • unserialize() - Создаёт PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\Driver\WriteConcern

(mongodb >=1.0.0)

Введение

MongoDB\Driver\WriteConcern описывает уровень надёжности, запрошенный MongoDB для операций записи на автономный mongod или на набор реплик или на сегментированные кластеры. В сегментированных кластерах экземпляры mongos будут передавать гарантии записи на сегменты.

Обзор классов

final class MongoDB\Driver\WriteConcern implements MongoDB\BSON\Serializable, Serializable {
/* Константы */
const string MAJORITY = "majority";
/* Методы */
final public bsonSerialize(): stdClass
final public __construct(string|int $w, ?int $wtimeout = null, ?bool $journal = null)
final public getJournal(): ?bool
final public getW(): string|int|null
final public getWtimeout(): int
final public isDefault(): bool
final public serialize(): string
final public unserialize(string $data): void
}

Предопределённые константы

MongoDB\Driver\WriteConcern::MAJORITY

Большинство членов в наборе; арбитров, члены, не участвующие в голосовании, пассивные члены, скрытые члены и отложенные члены, все они включены в определение большинства гарантии записи.

Список изменений

Версия | Описание
PECL mongodb 1.7.0 | Реализует Serializable.
PECL mongodb 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 — Сериализация WriteConcern
  • MongoDB\Driver\WriteConcern::unserialize — Десериализация 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(): stdClass

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект сериализации 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|int $w, ?int $wtimeout = null, ?bool $journal = null)

Создаёт новый MongoDB\Driver\WriteConcern, который является неизменяемым объектом значения.

Список параметров

w

Гарантия записи
Значение | Описание
1 | Требует подтверждение, что операция записи распространилась на автономный mongod или на первичный в наборе реплик. Это гарантия записи по умолчанию для MongoDB.
0 | Не требует подтверждение операции записи. Тем не менее, это может вернуть информацию о исключениях сокета и сетевых ошибках в приложение.
<целое число больше 1> | Числа, превышающие 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

Список изменений

Версия | Описание
PECL mongodb 1.7.0 | Параметр wTimeout теперь принимает 64-битные значения.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteConcern::__construct()

<?php

/* Запрос подтверждения записи от большинства узлов набора реплик */
$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 500);

/* Запрос подтверждения записи от узла, настроенного с тегом "MultipleDC" */
$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(): ?bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает опцию "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)

Смотрите также

  • » Руководство по гарантии записи


Возвращает опцию "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(): string|int|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"

Смотрите также

  • » Руководство по гарантии записи


Возвращает опцию "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(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает опцию "wtimeout" WriteConcern.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
PECL mongodb 1.7.0 | В 32-разрядных системах метод всегда будет усекать значение wTimeout, если оно выходит за пределы 32-битного диапазона. В этом случае будет выдано предупреждение.

Примеры

Пример #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)

Смотрите также

  • » Руководство по гарантии записи


Проверяет, является ли гарантия записи по умолчанию

  • « 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(): bool

Проверяет, является ли эта гарантия записи по умолчанию (т.е. не указаны параметры). Этот метод в первую очередь предназначен для использования совместно с MongoDB\Driver\Manager::getWriteConcern() для определения того, был ли объект Manager создан без каких-либо опций гарантии записи.

Драйвер не будет включать гарантию записи по умолчанию в свои операции записи (например, MongoDB\Driver\Manager::executeBulkWrite()), чтобы позволить серверу применять свою собственную по умолчанию, которая, возможно, была » изменена. Библиотеки, которые обращаются к гарантии записи Manager, чтобы включить её в свои собственные команды записи, должны использовать этот метод, чтобы гарантировать, что гарантии записи по умолчанию остаются неустановленными.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если эта гарантия записи по умолчанию, или false в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\WriteConcern::isDefault()

<?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
  • » Справочная информация по гарантии записи


Сериализация WriteConcern

  • « MongoDB\Driver\WriteConcern::isDefault
  • MongoDB\Driver\WriteConcern::unserialize »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Сериализация WriteConcern

MongoDB\Driver\WriteConcern::serialize

(mongodb >=1.7.0)

MongoDB\Driver\WriteConcern::serialize — Сериализация WriteConcern

Описание

final public MongoDB\Driver\WriteConcern::serialize(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\Driver\WriteConcern.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\WriteConcern::unserialize() - Десериализация WriteConcern
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Десериализация WriteConcern

  • « MongoDB\Driver\WriteConcern::serialize
  • MongoDB\Driver\ReadPreference »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Десериализация WriteConcern

MongoDB\Driver\WriteConcern::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\WriteConcern::unserialize — Десериализация WriteConcern

Описание

final public MongoDB\Driver\WriteConcern::unserialize(string $data): void

Список параметров

data

Сериализованный MongoDB\Driver\WriteConcern.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Бросает исключение MongoDB\Driver\Exception\UnexpectedValueException если возникла невозможно произвести десериализацию свойства, например если значение serialized не корректно.
  • Бросает исключение MongoDB\Driver\Exception\InvalidArgumentException если свойства не корректны, например пропущены поля или они имеют некорректные значения.

Смотрите также

  • MongoDB\Driver\WriteConcern::serialize() - Сериализация WriteConcern
  • unserialize() - Создаёт PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\Driver\ReadPreference

(mongodb >=1.0.0)

Введение

Обзор классов

final class MongoDB\Driver\ReadPreference implements MongoDB\BSON\Serializable, Serializable {
/* Константы */
const int RP_PRIMARY = 1;
const int RP_PRIMARY_PREFERRED = 5;
const int RP_SECONDARY = 2;
const int RP_SECONDARY_PREFERRED = 6;
const int 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 int NO_MAX_STALENESS = -1;
const int SMALLEST_MAX_STALENESS_SECONDS = 90;
/* Методы */
final public bsonSerialize(): stdClass
final public __construct(string|int $mode, ?array $tagSets = null, ?array $options = null)
final public getHedge(): ?object
final public getMaxStalenessSeconds(): int
final public getMode(): int
final public getModeString(): string
final public getTagSets(): array
final public serialize(): string
final public unserialize(string $data): 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 секунд.

Список изменений

Версия | Описание
PECL mongodb 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.
PECL mongodb 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::getHedge — Возвращает опцию "hedge" из ReadPreference
  • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Возвращает параметр "maxStalenessSeconds" ReadPreference
  • MongoDB\Driver\ReadPreference::getMode — Возвращает параметр "mode" ReadPreference
  • MongoDB\Driver\ReadPreference::getModeString — Возвращает опцию "mode" объекта ReadPreference в виде строки
  • MongoDB\Driver\ReadPreference::getTagSets — Возвращает параметр "tagSets" ReadPreference
  • MongoDB\Driver\ReadPreference::serialize — Сериализация ReadPreference
  • MongoDB\Driver\ReadPreference::unserialize — Десериализация 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(): stdClass

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект сериализации 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::getHedge »
  • 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|int $mode, ?array $tagSets = null, ?array $options = null)

Создаёт новый 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
Опция Тип Описание
hedge object|array

Указывает, использовать ли » хеджированные чтения, которые поддерживаются MongoDB 4.4+ для закрытых запросов.

Хеджированные чтения с сервера доступны для всех неосновных предпочтений чтения и включаются по умолчанию при использовании режима "nearest". Этот параметр позволяет явно разрешить чтение с хеджированием на сервере для неосновных предпочтений чтения, указав ['enabled' => true], или явно отключив серверное чтение с хеджированием для предпочтения чтения "nearest", указав ['enabled' => false].

maxStalenessSeconds int

Определяет максимальное отставание репликации или "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.

Список изменений

Версия | Описание
PECL mongodb 1.8.0 | Добавлен параметр "hedge".
PECL mongodb 1.3.0 | Аргумент mode теперь принимает строковое значение, которое соответствует URI-опции "readPreference" для MongoDB\Driver\Manager::__construct().
PECL mongodb 1.2.0 | Добавлен третий аргумент options, который поддерживает параметр "maxStalenessSeconds".

Примеры

Пример #1 Пример использования MongoDB\Driver\ReadPreference::__construct()

<?php

/* Предпочитать вторичный узел, но в случае отказа отступить к первичному. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED));

/* Предпочитать узел в Нью-Йоркском центре обработки данных с минимальной задержкой. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_NEAREST, [['dc' => 'ny']]));

/* Требуется дополнительный узел, чья задержка репликации находится в пределах двух минут от основного */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, ['maxStalenessSeconds' => 120]));

/* Явно включить хеджирование чтения на сервере */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, ['hedge' => ['enabled' => true]]));

?>

Результат выполнения данного примера:

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)
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["hedge"]=>
  object(stdClass)#1 (1) {
    ["enabled"]=>
    bool(true)
  }
}

Смотрите также

  • » Руководство по предпочтению чтения


Возвращает опцию "hedge" из ReadPreference

  • « MongoDB\Driver\ReadPreference::__construct
  • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Возвращает опцию "hedge" из ReadPreference

MongoDB\Driver\ReadPreference::getHedge

(mongodb >=1.8.0)

MongoDB\Driver\ReadPreference::getHedge — Возвращает опцию "hedge" из ReadPreference

Описание

final public MongoDB\Driver\ReadPreference::getHedge(): ?object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает опцию "hedge" из ReadPreference.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • » документация по Read Preference


Возвращает параметр "maxStalenessSeconds" ReadPreference

  • « MongoDB\Driver\ReadPreference::getHedge
  • 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(): 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)

Смотрите также

  • » Руководство по предпочтению чтения


Возвращает параметр "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(): 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() - Возвращает опцию "mode" объекта ReadPreference в виде строки
  • » Руководство по предпочтению чтения


Возвращает опцию "mode" объекта ReadPreference в виде строки

  • « MongoDB\Driver\ReadPreference::getMode
  • MongoDB\Driver\ReadPreference::getTagSets »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Возвращает опцию "mode" объекта ReadPreference в виде строки

MongoDB\Driver\ReadPreference::getModeString

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::getModeString — Возвращает опцию "mode" объекта ReadPreference в виде строки

Описание

final public MongoDB\Driver\ReadPreference::getModeString(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает опцию "mode" объекта ReadPreference в виде строки.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\ReadPreference::getModeString()

<?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


Возвращает параметр "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(): 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) {
  }
}

Смотрите также

  • » Справочная информация по предпочтению чтения


Сериализация ReadPreference

  • « MongoDB\Driver\ReadPreference::getTagSets
  • MongoDB\Driver\ReadPreference::unserialize »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Сериализация ReadPreference

MongoDB\Driver\ReadPreference::serialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::serialize — Сериализация ReadPreference

Описание

final public MongoDB\Driver\ReadPreference::serialize(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\Driver\ReadPreference.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\ReadPreference::unserialize() - Десериализация ReadPreference
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Десериализация ReadPreference

  • « MongoDB\Driver\ReadPreference::serialize
  • MongoDB\Driver\ReadConcern »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Десериализация ReadPreference

MongoDB\Driver\ReadPreference::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::unserialize — Десериализация ReadPreference

Описание

final public MongoDB\Driver\ReadPreference::unserialize(string $data): void

Список параметров

data

Сериализованный MongoDB\Driver\ReadPreference.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Бросает исключение MongoDB\Driver\Exception\UnexpectedValueExceptionесли возникла невозможно произвести десериализацию свойства, например если значение serialized не корректно.
  • Бросает исключение MongoDB\Driver\Exception\InvalidArgumentException если свойства не корректны, например пропущены поля или они имеют некорректные значения.

Смотрите также

  • MongoDB\Driver\ReadPreference::serialize() - Сериализация ReadPreference
  • unserialize() - Создаёт PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\Driver\ReadConcern

(mongodb >=1.1.0)

Введение

MongoDB\Driver\ReadConcern контролирует уровень изоляции для операций чтения для наборов реплик и сегментов наборов реплик. Эта опция требует MongoDB 3.2 или новее.

Обзор классов

final class MongoDB\Driver\ReadConcern implements MongoDB\BSON\Serializable, Serializable {
/* Константы */
const string AVAILABLE = "available";
const string LINEARIZABLE = "linearizable";
const string LOCAL = "local";
const string MAJORITY = "majority";
const string SNAPSHOT = "snapshot";
/* Методы */
final public bsonSerialize(): stdClass
final public __construct(?string $level = null)
final public getLevel(): ?string
final public isDefault(): bool
final public serialize(): string
final public unserialize(string $data): 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.

MongoDB\Driver\ReadConcern::SNAPSHOT

Гарантия чтения "snapshot" доступна для транзакций с несколькими документами, а начиная с MongoDB 5.0 также доступна для некоторых операций чтения не только для транзакций с несколькими документами.

Если транзакция не является частью причинно-согласованного сессии, после фиксации транзакции с проблемой записи "majority", операции транзакции гарантированно прочитают из моментального снимка зафиксированных большинством данных.

Если транзакция является частью причинно-согласованной сессии, при фиксации транзакции с проблемой записи "majority", операции транзакции гарантированно считывают из моментального снимка данные, подтверждённые большинством, что обеспечивает причинную согласованность с операций, непосредственно предшествующей началу транзакции.

Вне транзакций с несколькими документами, проблема чтения "snapshot" доступна на первичных и вторичных серверах для следующих операций чтения: find, aggregate и distinct (для необработанных коллекций). Все остальные команды чтения запрещают "snapshot".

Список изменений

Версия | Описание
PECL mongodb 1.11.0 | Добавлена константа MongoDB\Driver\ReadConcern::SNAPSHOT.
PECL mongodb 1.7.0 | Реализует Serializable.
PECL mongodb 1.4.0 | Добавлена константа MongoDB\Driver\ReadConcern::AVAILABLE.
PECL mongodb 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 — Сериализация ReadConcern
  • MongoDB\Driver\ReadConcern::unserialize — Десериализация 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(): stdClass

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект для сериализации 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 = null)

Создаёт новый 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(): ?string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает опцию "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(): 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
  • » Справка по гарантиям чтения


Сериализация ReadConcern

  • « MongoDB\Driver\ReadConcern::isDefault
  • MongoDB\Driver\ReadConcern::unserialize »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Сериализация ReadConcern

MongoDB\Driver\ReadConcern::serialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadConcern::serialize — Сериализация ReadConcern

Описание

final public MongoDB\Driver\ReadConcern::serialize(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\Driver\ReadConcern.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\ReadConcern::unserialize() - Десериализация ReadConcern
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Десериализация ReadConcern

  • « MongoDB\Driver\ReadConcern::serialize
  • MongoDB\Driver\Cursor »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Десериализация ReadConcern

MongoDB\Driver\ReadConcern::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadConcern::unserialize — Десериализация ReadConcern

Описание

final public MongoDB\Driver\ReadConcern::unserialize(string $data): void

Список параметров

data

Сериализованный MongoDB\Driver\ReadConcern.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Бросает исключение MongoDB\Driver\Exception\UnexpectedValueException если возникла невозможно произвести десериализацию свойства, например если значение serialized не корректно.
  • Бросает исключение MongoDB\Driver\Exception\InvalidArgumentException если свойства не корректны, например пропущены поля или они имеют некорректные значения.

Смотрите также

  • MongoDB\Driver\ReadConcern::serialize() - Сериализация ReadConcern
  • unserialize() - Создаёт PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\Driver\Cursor

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\Cursor содержит результаты команды MongoDB command или запроса и может быть возвращён MongoDB\Driver\Manager::executeCommand() или MongoDB\Driver\Manager::executeQuery() соответственно.

Обзор классов

final class MongoDB\Driver\Cursor implements MongoDB\Driver\CursorInterface, Iterator {
/* Методы */
final private __construct()
public current(): array|object|null
final public getId(): MongoDB\Driver\CursorId
final public getServer(): MongoDB\Driver\Server
final public isDead(): bool
public key(): int
public next(): void
public rewind(): void
final public setTypeMap(array $typemap): void
final public toArray(): array
public valid(): bool
}

Список изменений

Версия | Описание
PECL mongodb 1.9.0 | Реализует Iterator.
PECL mongodb 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 и » 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::current — Возвращает текущий элемент
  • MongoDB\Driver\Cursor::getId — Возвращает идентификатор для курсора
  • MongoDB\Driver\Cursor::getServer — Возвращает сервер, связанный с курсором
  • MongoDB\Driver\Cursor::isDead — Проверяет, исчерпан ли курсор или может содержать дополнительные результаты
  • MongoDB\Driver\Cursor::key — Возвращает индекс текущего результата в курсоре
  • MongoDB\Driver\Cursor::next — Перемещает курсор на следующий результат
  • MongoDB\Driver\Cursor::rewind — Перемещает курсор к первому результату
  • MongoDB\Driver\Cursor::setTypeMap — Устанавливает карту типа для десериализации BSON
  • MongoDB\Driver\Cursor::toArray — Возвращает массив, содержащий все результаты курсора
  • MongoDB\Driver\Cursor::valid — Проверяет, корректна ли текущая позиция курсора


Создаёт новый объект Cursor (не используется)

  • « MongoDB\Driver\Cursor
  • MongoDB\Driver\Cursor::current »
  • 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()

Объекты 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::getId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Возвращает текущий элемент

MongoDB\Driver\Cursor::current

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::current — Возвращает текущий элемент

Описание

public MongoDB\Driver\Cursor::current(): array|object|null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий документ в виде массива или объекта, в зависимости от настроек курсора. Если итерация не была начата, либо текущая позиция не корректна, будет возвращён null.

Смотрите также

  • Iterator::current() - Возврат текущего элемента


Возвращает идентификатор для курсора

  • « MongoDB\Driver\Cursor::current
  • 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(): 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(): 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_hello_response"]=>
  array(8) {
    ["isWritablePrimary"]=>
    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::key »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Проверяет, исчерпан ли курсор или может содержать дополнительные результаты

MongoDB\Driver\Cursor::isDead

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::isDead — Проверяет, исчерпан ли курсор или может содержать дополнительные результаты

Описание

final public MongoDB\Driver\Cursor::isDead(): 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


Возвращает индекс текущего результата в курсоре

  • « MongoDB\Driver\Cursor::isDead
  • MongoDB\Driver\Cursor::next »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Возвращает индекс текущего результата в курсоре

MongoDB\Driver\Cursor::key

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::key — Возвращает индекс текущего результата в курсоре

Описание

public MongoDB\Driver\Cursor::key(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовой индекс текущего результата в курсоре.

Смотрите также

  • Iterator::key() - Возвращает ключ текущего элемента


Перемещает курсор на следующий результат

  • « MongoDB\Driver\Cursor::key
  • MongoDB\Driver\Cursor::rewind »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Перемещает курсор на следующий результат

MongoDB\Driver\Cursor::next

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::next — Перемещает курсор на следующий результат

Описание

public MongoDB\Driver\Cursor::next(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сдвигает текущую позицию к следующему результату в курсоре.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.

Смотрите также

  • Iterator::next() - Переходит к следующему элементу


Перемещает курсор к первому результату

  • « MongoDB\Driver\Cursor::next
  • MongoDB\Driver\Cursor::setTypeMap »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Перемещает курсор к первому результату

MongoDB\Driver\Cursor::rewind

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::rewind — Перемещает курсор к первому результату

Описание

public MongoDB\Driver\Cursor::rewind(): void

Если курсор продвинулся дальше своей первой позиции, то его переместить к первому результату уже не получится.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

null.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Бросает исключение MongoDB\Driver\Exception\LogicException если метод был вызван после продвижения курсора дальше своей первой позиции.

Смотрите также

  • Iterator::rewind() - Возвращает итератор на первый элемент


Устанавливает карту типа для десериализации BSON

  • « MongoDB\Driver\Cursor::rewind
  • 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\Cursor::valid »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Возвращает массив, содержащий все результаты курсора

MongoDB\Driver\Cursor::toArray

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::toArray — Возвращает массив, содержащий все результаты курсора

Описание

final public MongoDB\Driver\Cursor::toArray(): 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\Cursor::toArray
  • MongoDB\Driver\CursorId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Проверяет, корректна ли текущая позиция курсора

MongoDB\Driver\Cursor::valid

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::valid — Проверяет, корректна ли текущая позиция курсора

Описание

public MongoDB\Driver\Cursor::valid(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если позиция корректна и false, если нет.

Смотрите также

  • Iterator::valid() - Проверяет корректность текущей позиции


Класс MongoDB\Driver\CursorId

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\CursorID - объект значения, который представляет идентификатор курсора. Экземпляры этого класса возвращаются MongoDB\Driver\Cursor::getId().

Обзор классов

final class MongoDB\Driver\CursorId implements Serializable, Stringable {
/* Методы */
final private __construct()
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.12.0 | Реализует интерфейс Stringable для PHP 8.0+.
PECL mongodb 1.7.0 | Реализует Serializable.

Содержание

  • MongoDB\Driver\CursorId::__construct — Создаёт новый объект CursorId (не используется)
  • MongoDB\Driver\CursorId::serialize — Сериализация CursorId
  • MongoDB\Driver\CursorId::__toString — Строковое представление идентификатора курсора
  • MongoDB\Driver\CursorId::unserialize — Десериализация 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()

Объекты MongoDB\Driver\CursorId возвращаются из MongoDB\Driver\Cursor::getId() и не могут созданы напрямую.

Список параметров

У этой функции нет параметров.

Смотрите также

  • MongoDB\Driver\Cursor::getId() - Возвращает идентификатор для курсора


Сериализация CursorId

  • « MongoDB\Driver\CursorId::__construct
  • MongoDB\Driver\CursorId::__toString »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Сериализация CursorId

MongoDB\Driver\CursorId::serialize

(mongodb >=1.7.0)

MongoDB\Driver\CursorId::serialize — Сериализация CursorId

Описание

final public MongoDB\Driver\CursorId::serialize(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\Driver\CursorId.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\CursorId::unserialize() - Десериализация CursorId
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Строковое представление идентификатора курсора

  • « 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(): 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() - Возвращает идентификатор для курсора


Десериализация CursorId

  • « MongoDB\Driver\CursorId::__toString
  • MongoDB\Driver\CursorInterface »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Десериализация CursorId

MongoDB\Driver\CursorId::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\CursorId::unserialize — Десериализация CursorId

Описание

final public MongoDB\Driver\CursorId::unserialize(string $data): void

Список параметров

data

Сериализованный MongoDB\Driver\CursorId.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Бросает исключение MongoDB\Driver\Exception\UnexpectedValueException если возникла невозможно произвести десериализацию свойства, например если значение serialized не корректно.
  • Бросает исключение MongoDB\Driver\Exception\InvalidArgumentException если свойства не корректны, например пропущены поля или они имеют некорректные значения.

Смотрите также

  • MongoDB\Driver\CursorId::serialize() - Сериализация CursorId
  • unserialize() - Создаёт PHP-значение из хранимого представления
  • Сериализация объектов


Интерфейс MongoDB\Driver\CursorInterface

(mongodb >=1.6.0)

Введение

Интерфейс, реализованный MongoDB\Driver\Cursor, но также может использоваться в качестве параметра, возвращаемого значения или типа свойства в классах пользовательского пространства.

Обзор классов

class MongoDB\Driver\CursorInterface implements Traversable {
/* Методы */
abstract public getId(): MongoDB\Driver\CursorId
abstract public getServer(): MongoDB\Driver\Server
abstract public isDead(): bool
abstract public setTypeMap(array $typemap): void
abstract public toArray(): array
}

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Типы возвращаемых значений для методов объявлены как предварительные в PHP 8.0 и новее, что вызывает уведомления об устаревании в коде, который реализует этот интерфейс без объявления соответствующих типов возвращаемых значений. Атрибут #[ReturnTypeWillChange] может быть добавлен, чтобы заглушить уведомление об устаревании.

Содержание

  • 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(): 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(): 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(): 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(): 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 class MongoDB\Driver\Server {
/* Константы */
const int TYPE_UNKNOWN = 0;
const int TYPE_STANDALONE = 1;
const int TYPE_MONGOS = 2;
const int TYPE_POSSIBLE_PRIMARY = 3;
const int TYPE_RS_PRIMARY = 4;
const int TYPE_RS_SECONDARY = 5;
const int TYPE_RS_ARBITER = 6;
const int TYPE_RS_OTHER = 7;
const int TYPE_RS_GHOST = 8;
const int TYPE_LOAD_BALANCER = 9;
/* Методы */
final private __construct()
final public executeBulkWrite(string $namespace, MongoDB\Driver\BulkWrite $bulk, array|MongoDB\Driver\WriteConcern|null $options = null): MongoDB\Driver\WriteResult
final public executeCommand(string $db, MongoDB\Driver\Command $command, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor
final public executeQuery(string $namespace, MongoDB\Driver\Query $query, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor
final public executeReadCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public executeReadWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public executeWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public getHost(): string
final public getInfo(): array
final public getLatency(): ?integer
final public getPort(): int
final public getServerDescription(): MongoDB\Driver\ServerDescription
final public getTags(): array
final public getType(): int
final public isArbiter(): bool
final public isHidden(): bool
final public isPassive(): bool
final public isPrimary(): bool
final public isSecondary(): 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::TYPE_LOAD_BALANCER

Тип сервера балансировщика нагрузки, возвращаемый MongoDB\Driver\Server::getType().

Список изменений

Версия | Описание
PECL mongodb 1.11.0 | Добавлена константа MongoDB\Driver\Server::TYPE_LOAD_BALANCER.

Содержание

  • 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::getServerDescription — Возвращает ServerDescription сервера
  • 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()

Объекты 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|MongoDB\Driver\WriteConcern|null $options = null): 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.

Список изменений

Версия | Описание
PECL mongodb 1.4.4 | Если опция "session" используется в сочетании с неподтверждённой гарантией записи, выбрасывается исключение MongoDB\Driver\Exception\InvalidArgumentException.
PECL mongodb 1.4.0 | Третий параметр теперь представляет собой массив options. Для обратной совместимости этот параметр всё равно примет объект MongoDB\Driver\ReadPreference.
PECL mongodb 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|MongoDB\Driver\ReadPreference|null $options = null): 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.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException в случае возникновения других ошибок (например, неверная команда, выдача команды записи на вторичное устройство).

Список изменений

Версия | Описание
PECL mongodb 1.4.4 | Если опция "session" используется в сочетании с неподтверждённой гарантией записи, выбрасывается исключение MongoDB\Driver\Exception\InvalidArgumentException.
PECL mongodb 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|MongoDB\Driver\ReadPreference|null $options = null): 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 на другие ошибки (например, недопустимые операторы запросов).

Список изменений

Версия | Описание
PECL mongodb 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 = null): 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 = null): MongoDB\Driver\Cursor

Выполняет команду на сервере.

Этот метод будет применять логику, специфичную для команд, которые читают и пишут (например, » aggregate) и учитывают версию сервера 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 на другие ошибки (например, неверная команда).

Список изменений

Версия | Описание
PECL mongodb 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 = null): 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 на другие ошибки (например, неверная команда).

Список изменений

Версия | Описание
PECL mongodb 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(): 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\ServerDescription::getHost() - Возвращает имя хоста сервера


Возвращает массив информации, описывающий сервер

  • « 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(): array

Возвращает массив информации, описывающий сервер. Этот массив получен из последнего ответа команды » hello, полученного с помощью » мониторинга сервера.

Замечание:

Когда драйвер подключён к балансировщику нагрузки, метод вернёт ответ на команду » hello от резервного сервера при первоначальном подтверждении соединения. Это отличается от других методов (например, MongoDB\Driver\Server::getType()), которые возвращают информацию о самом балансировщике нагрузки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив информации, описывающий сервер.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 Пример использования MongoDB\Driver\Server::getInfo()

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/');

$rp = new MongoDB\Driver\ReadPreference('primary');
$server = $manager->selectServer($rp);

var_dump($server->getInfo());

?>

Результатом выполнения данного примера будет что-то подобное:

array(23) {
  ["helloOk"]=>
  bool(true)
  ["topologyVersion"]=>
  array(2) {
    ["processId"]=>
    object(MongoDB\BSON\ObjectId)#4 (1) {
      ["oid"]=>
      string(24) "617b6d696a3a89d2f77e6df0"
    }
    ["counter"]=>
    int(6)
  }
  ["hosts"]=>
  array(1) {
    [0]=>
    string(15) "localhost:27017"
  }
  ["setName"]=>
  string(3) "rs0"
  ["setVersion"]=>
  int(1)
  ["ismaster"]=>
  bool(true)
  ["secondary"]=>
  bool(false)
  ["primary"]=>
  string(15) "localhost:27017"
  ["me"]=>
  string(15) "localhost:27017"
  ["electionId"]=>
  object(MongoDB\BSON\ObjectId)#5 (1) {
    ["oid"]=>
    string(24) "7fffffff0000000000000001"
  }
  ["lastWrite"]=>
  array(4) {
    ["opTime"]=>
    array(2) {
      ["ts"]=>
      object(MongoDB\BSON\Timestamp)#6 (2) {
        ["increment"]=>
        string(1) "1"
        ["timestamp"]=>
        string(10) "1635478989"
      }
      ["t"]=>
      int(1)
    }
    ["lastWriteDate"]=>
    object(MongoDB\BSON\UTCDateTime)#7 (1) {
      ["milliseconds"]=>
      string(13) "1635478989000"
    }
    ["majorityOpTime"]=>
    array(2) {
      ["ts"]=>
      object(MongoDB\BSON\Timestamp)#8 (2) {
        ["increment"]=>
        string(1) "1"
        ["timestamp"]=>
        string(10) "1635478989"
      }
      ["t"]=>
      int(1)
    }
    ["majorityWriteDate"]=>
    object(MongoDB\BSON\UTCDateTime)#9 (1) {
      ["milliseconds"]=>
      string(13) "1635478989000"
    }
  }
  ["maxBsonObjectSize"]=>
  int(16777216)
  ["maxMessageSizeBytes"]=>
  int(48000000)
  ["maxWriteBatchSize"]=>
  int(100000)
  ["localTime"]=>
  object(MongoDB\BSON\UTCDateTime)#10 (1) {
    ["milliseconds"]=>
    string(13) "1635478992136"
  }
  ["logicalSessionTimeoutMinutes"]=>
  int(30)
  ["connectionId"]=>
  int(3)
  ["minWireVersion"]=>
  int(0)
  ["maxWireVersion"]=>
  int(13)
  ["readOnly"]=>
  bool(false)
  ["ok"]=>
  float(1)
  ["$clusterTime"]=>
  array(2) {
    ["clusterTime"]=>
    object(MongoDB\BSON\Timestamp)#11 (2) {
      ["increment"]=>
      string(1) "1"
      ["timestamp"]=>
      string(10) "1635478989"
    }
    ["signature"]=>
    array(2) {
      ["hash"]=>
      object(MongoDB\BSON\Binary)#12 (2) {
        ["data"]=>
        string(20) ""
        ["type"]=>
        int(0)
      }
      ["keyId"]=>
      int(0)
    }
  }
  ["operationTime"]=>
  object(MongoDB\BSON\Timestamp)#13 (2) {
    ["increment"]=>
    string(1) "1"
    ["timestamp"]=>
    string(10) "1635478989"
  }
}

Список изменений

Версия | Описание
PECL mongodb 1.11.0 | Когда драйвер подключён к подсистеме балансировки нагрузки, метод возвращает ответ на команду hello вспомогательного сервера при первоначальном подтверждении соединения.

Смотрите также

  • MongoDB\Driver\ServerDescription::getHelloResponse() - Возвращает последний ответ сервера "hello"
  • Команда » hello в руководстве MongoDB
  • » Руководство по обнаружению и мониторингу серверов


Возвращает задержку сервера в миллисекундах

  • « 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(): ?integer

Возвращает задержку сервера в миллисекундах. Измеренное клиентом » время прохождения команды hello.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает задержку сервера в миллисекундах или null, если задержка не была измерена (например, клиент подключён к балансировщику нагрузки).

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
PECL mongodb 1.11.0 | Метод вернёт null, если задержка не была измерена. В более ранних версиях всегда возвращалось целое число, а неустановленное значение могло отображаться как -1.

Примеры

Пример #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\ServerDescription::getRoundTripTime() - Возвращает время обхода сервера в миллисекундах
  • » Спецификация обнаружения и мониторинга сервера


Возвращает порт, который слушает сервер

  • « MongoDB\Driver\Server::getLatency
  • MongoDB\Driver\Server::getServerDescription »
  • PHP Manual
  • MongoDB\Driver\Server
  • Возвращает порт, который слушает сервер

MongoDB\Driver\Server::getPort

(mongodb >=1.0.0)

MongoDB\Driver\Server::getPort — Возвращает порт, который слушает сервер

Описание

final public MongoDB\Driver\Server::getPort(): 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\ServerDescription::getPort() - Возвращает порт, на котором прослушивается данный сервер


Возвращает ServerDescription сервера

  • « MongoDB\Driver\Server::getPort
  • MongoDB\Driver\Server::getTags »
  • PHP Manual
  • MongoDB\Driver\Server
  • Возвращает ServerDescription сервера

MongoDB\Driver\Server::getServerDescription

(mongodb >=1.13.0)

MongoDB\Driver\Server::getServerDescription — Возвращает ServerDescription сервера

Описание

final public MongoDB\Driver\Server::getServerDescription(): MongoDB\Driver\ServerDescription

Возвращает MongoDB\Driver\ServerDescription сервера. Это неизменяемый объект значения, который будет описывать сервер во время вызова метода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\ServerDescription сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает массив тегов, описывающих сервер в наборе реплик

  • « MongoDB\Driver\Server::getServerDescription
  • 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(): 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(): int

Возвращает int, обозначающее тип этого сервера. Значение будет соответствовать константе MongoDB\Driver\Server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает int, обозначающее тип этого сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации, описывающий сервер
  • MongoDB\Driver\ServerDescription::getType() - Возвращает строку, обозначающую тип данного сервера


Проверяет, является ли сервер членом-арбитром в наборе реплик

  • « 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(): 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(): 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(): 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(): bool

Возвращает, является ли этот сервер » основным членом набора реплик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если этот сервер является основным членом набора реплик, и false в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации, описывающий сервер


Проверяет, является ли этот сервер второстепенным членом набора реплик

  • « MongoDB\Driver\Server::isPrimary
  • MongoDB\Driver\ServerDescription »
  • PHP Manual
  • MongoDB\Driver\Server
  • Проверяет, является ли этот сервер второстепенным членом набора реплик

MongoDB\Driver\Server::isSecondary

(mongodb >=1.0.0)

MongoDB\Driver\Server::isSecondary — Проверяет, является ли этот сервер второстепенным членом набора реплик

Описание

final public MongoDB\Driver\Server::isSecondary(): bool

Возвращает, является ли этот сервер » второстепенным членом набора реплик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если этот сервер является второстепенным членом набора реплик, и false в противном случае.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации, описывающий сервер


Класс MongoDB\Driver\ServerDescription

(mongodb >=1.13.0)

Введение

Класс MongoDB\Driver\ServerDescription представляет собой объект значения, представляющий сервер, к которому подключён драйвер. Экземпляры класса возвращаются методами MongoDB\Driver\Server::getServerDescription() и MongoDB\Driver\Monitoring\ServerChangedEvent.

Обзор классов

final class MongoDB\Driver\ServerDescription {
/* Константы */
const string TYPE_UNKNOWN = "Unknown";
const string TYPE_STANDALONE = "Standalone";
const string TYPE_MONGOS = "Mongos";
const string TYPE_POSSIBLE_PRIMARY = "PossiblePrimary";
const string TYPE_RS_PRIMARY = "RSPrimary";
const string TYPE_RS_SECONDARY = "RSSecondary";
const string TYPE_RS_ARBITER = "RSArbiter";
const string TYPE_RS_OTHER = "RSOther";
const string TYPE_RS_GHOST = "RSGhost";
const string TYPE_LOAD_BALANCER = "LoadBalancer";
/* Методы */
final public getHelloResponse(): array
final public getHost(): string
final public getLastUpdateTime(): int
final public getPort(): int
final public getRoundTripTime(): ?int
final public getType(): string
}

Предопределённые константы

MongoDB\Driver\ServerDescription::TYPE_UNKNOWN

Неизвестный тип сервера, возвращаемый методом MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_STANDALONE

Тип автономного сервера, возвращаемый методомMongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_MONGOS

Тип сервера Mongos, возвращаемый методом MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_POSSIBLE_PRIMARY

Набор реплик возможного типа первичного сервера, возвращаемый методом MongoDB\Driver\ServerDescription::getType().

Сервер может быть определён как возможный первичный, если он ещё не был проверен, но другая память набора реплик считает его первичным.

MongoDB\Driver\ServerDescription::TYPE_RS_PRIMARY

Тип первичного сервера набора реплик, возвращаемый методом MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_RS_SECONDARY

Тип вторичного сервера набора реплик, возвращаемый методом MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_RS_ARBITER

Тип сервера арбитража набора реплик, возвращаемый методом MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_RS_OTHER

Набор реплик другого типа сервера, возвращаемый методом MongoDB\Driver\ServerDescription::getType().

Такие серверы могут быть скрыты, запускаться или восстанавливаться. Их нельзя запросить, но их списки хостов полезны для обнаружения текущей конфигурации набора реплик.

MongoDB\Driver\ServerDescription::TYPE_RS_GHOST

Тип сервера-призрака набора реплик, возвращаемый методом MongoDB\Driver\ServerDescription::getType().

Серверы могут быть определены как таковые по крайней мере в трёх ситуациях: кратковременно во время запуска сервера; в неинициализированном наборе реплик; или когда сервер избегается (т.е. удаляется из конфигурации набора реплик). Они не могут быть запрошены, и их список хостов не может быть использован для обнаружения текущей конфигурации набора реплик; однако клиент может следить за этим сервером в надежде, что он перейдёт в более полезное состояние.

MongoDB\Driver\ServerDescription::TYPE_LOAD_BALANCER

Тип сервера балансировщика нагрузки, возвращаемый методом MongoDB\Driver\ServerDescription::getType().

Содержание

  • MongoDB\Driver\ServerDescription::getHelloResponse — Возвращает последний ответ сервера "hello"
  • MongoDB\Driver\ServerDescription::getHost — Возвращает имя хоста сервера
  • MongoDB\Driver\ServerDescription::getLastUpdateTime — Возвращает время последнего обновления сервера в микросекундах
  • MongoDB\Driver\ServerDescription::getPort — Возвращает порт, на котором прослушивается данный сервер
  • MongoDB\Driver\ServerDescription::getRoundTripTime — Возвращает время обхода сервера в миллисекундах
  • MongoDB\Driver\ServerDescription::getType — Возвращает строку, обозначающую тип данного сервера


Возвращает последний ответ сервера "hello"

  • « MongoDB\Driver\ServerDescription
  • MongoDB\Driver\ServerDescription::getHost »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Возвращает последний ответ сервера "hello"

MongoDB\Driver\ServerDescription::getHelloResponse

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getHelloResponse — Возвращает последний ответ сервера "hello"

Описание

final public MongoDB\Driver\ServerDescription::getHelloResponse(): array

Возвращает массив информации, описывающей сервер. Этот массив формируется из самого последнего (на момент создания MongoDB\Driver\ServerDescription) ответа команды » hello ответ команды, полученный с помощью » мониторинга сервера.

Замечание:

Если драйвер подключён к балансировщику нагрузки, метод вернёт пустой массив, так как балансировщики нагрузки не отслеживаются. В отличие от MongoDB\Driver\Server::getInfo(), которая возвращает ответ команды » hello от начального рукопожатия соединения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив информации, описывающей сервер.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Возвращает массив информации, описывающий сервер
  • Команда » hello в руководстве по MongoDB
  • » Спецификация обнаружения и мониторинга серверов


Возвращает имя хоста сервера

  • « MongoDB\Driver\ServerDescription::getHelloResponse
  • MongoDB\Driver\ServerDescription::getLastUpdateTime »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Возвращает имя хоста сервера

MongoDB\Driver\ServerDescription::getHost

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getHost — Возвращает имя хоста сервера

Описание

final public MongoDB\Driver\ServerDescription::getHost(): string

Возвращает имя хоста сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя хоста сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getHost() - Возвращает имя хоста сервера


Возвращает время последнего обновления сервера в микросекундах

  • « MongoDB\Driver\ServerDescription::getHost
  • MongoDB\Driver\ServerDescription::getPort »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Возвращает время последнего обновления сервера в микросекундах

MongoDB\Driver\ServerDescription::getLastUpdateTime

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getLastUpdateTime — Возвращает время последнего обновления сервера в микросекундах

Описание

final public MongoDB\Driver\ServerDescription::getLastUpdateTime(): int

Возвращает время последнего обновления сервера в микросекундах.

Замечание: Возвращаемое значение представляет собой монотонную метку времени, которая начинается в произвольной точке. Как таковое, оно подходит только для сравнения с другими возвращаемыми значениями из функции MongoDB\Driver\ServerDescription::getLastUpdateTime().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время последнего обновления сервера в микросекундах.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает порт, на котором прослушивается данный сервер

  • « MongoDB\Driver\ServerDescription::getLastUpdateTime
  • MongoDB\Driver\ServerDescription::getRoundTripTime »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Возвращает порт, на котором прослушивается данный сервер

MongoDB\Driver\ServerDescription::getPort

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getPort — Возвращает порт, на котором прослушивается данный сервер

Описание

final public MongoDB\Driver\ServerDescription::getPort(): int

Возвращает порт, на котором прослушивается данный сервер.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает порт, на котором прослушивается данный сервер.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getPort() - Возвращает порт, который слушает сервер


Возвращает время обхода сервера в миллисекундах

  • « MongoDB\Driver\ServerDescription::getPort
  • MongoDB\Driver\ServerDescription::getType »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Возвращает время обхода сервера в миллисекундах

MongoDB\Driver\ServerDescription::getRoundTripTime

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getRoundTripTime — Возвращает время обхода сервера в миллисекундах

Описание

final public MongoDB\Driver\ServerDescription::getRoundTripTime(): ?int

Возвращает время обхода сервера в миллисекундах. Это измерение продолжительности команды » hello.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время обхода сервера в миллисекундах.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getLatency() - Возвращает задержку сервера в миллисекундах


Возвращает строку, обозначающую тип данного сервера

  • « MongoDB\Driver\ServerDescription::getRoundTripTime
  • MongoDB\Driver\TopologyDescription »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Возвращает строку, обозначающую тип данного сервера

MongoDB\Driver\ServerDescription::getType

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getType — Возвращает строку, обозначающую тип данного сервера

Описание

final public MongoDB\Driver\ServerDescription::getType(): string

Возвращает строку (string), обозначающую тип данного сервера. Значение будет соотноситься с константой MongoDB\Driver\ServerDescription.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string), обозначающую тип данного сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getType() - Возвращает целое число, обозначающее тип этого сервера


Класс MongoDB\Driver\TopologyDescription

(mongodb >=1.13.0)

Введение

Класс MongoDB\Driver\TopologyDescription представляет собой объект значения, представляющий топологию, к которой подключён драйвер. Экземпляры класса возвращаются методами MongoDB\Driver\Monitoring\TopologyChangedEvent.

Обзор классов

final class MongoDB\Driver\TopologyDescription {
/* Константы */
const string TYPE_UNKNOWN = "Unknown";
const string TYPE_SINGLE = "Single";
const string TYPE_SHARDED = "Sharded";
const string TYPE_REPLICA_SET_NO_PRIMARY = "ReplicaSetNoPrimary";
const string TYPE_REPLICA_SET_WITH_PRIMARY = "ReplicaSetWithPrimary";
const string TYPE_LOAD_BALANCED = "LoadBalanced";
/* Методы */
final public getServers(): array
final public getType(): string
final public hasReadableServer(?MongoDB\Driver\ReadPreference $readPreference = null): bool
final public hasWritableServer(): bool
}

Предопределённые константы

MongoDB\Driver\TopologyDescription::TYPE_UNKNOWN

Неизвестный тип топологии, возвращаемый методом MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_SINGLE

Одиночный сервер (т.е. прямое соединение), возвращаемый методом MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_SHARDED

Разделяемый кластер, возвращаемый методом MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_NO_PRIMARY

Набор реплик без первичного сервера, возвращаемый методом MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_WITH_PRIMARY

Набор реплик с первичным сервером, возвращаемый методом MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_LOAD_BALANCED

Сбалансированная по нагрузке топология, возвращаемая методом MongoDB\Driver\TopologyDescription::getType().

Содержание

  • MongoDB\Driver\TopologyDescription::getServers — Возвращает серверы в топологии
  • MongoDB\Driver\TopologyDescription::getType — Возвращает строку, обозначающую тип топологии
  • MongoDB\Driver\TopologyDescription::hasReadableServer — Возвращает, есть ли в топологии сервер, доступный для чтения
  • MongoDB\Driver\TopologyDescription::hasWritableServer — Возвращает, есть ли в топологии сервер, доступный для записи


Возвращает серверы в топологии

  • « MongoDB\Driver\TopologyDescription
  • MongoDB\Driver\TopologyDescription::getType »
  • PHP Manual
  • MongoDB\Driver\TopologyDescription
  • Возвращает серверы в топологии

MongoDB\Driver\TopologyDescription::getServers

(mongodb >=1.13.0)

MongoDB\Driver\TopologyDescription::getServers — Возвращает серверы в топологии

Описание

final public MongoDB\Driver\TopologyDescription::getServers(): array

Возвращает массив объектов MongoDB\Driver\ServerDescription, соответствующих известным серверам в топологии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив объектов MongoDB\Driver\ServerDescription, соответствующих известным серверам в топологии.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает строку, обозначающую тип топологии

  • « MongoDB\Driver\TopologyDescription::getServers
  • MongoDB\Driver\TopologyDescription::hasReadableServer »
  • PHP Manual
  • MongoDB\Driver\TopologyDescription
  • Возвращает строку, обозначающую тип топологии

MongoDB\Driver\TopologyDescription::getType

(mongodb >=1.13.0)

MongoDB\Driver\TopologyDescription::getType — Возвращает строку, обозначающую тип топологии

Описание

final public MongoDB\Driver\TopologyDescription::getType(): string

Возвращает строку (string), обозначающую тип топологии. Значение будет соотноситься с константой MongoDB\Driver\TopologyDescription.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string), обозначающую тип топологии.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает, есть ли в топологии сервер, доступный для чтения

  • « MongoDB\Driver\TopologyDescription::getType
  • MongoDB\Driver\TopologyDescription::hasWritableServer »
  • PHP Manual
  • MongoDB\Driver\TopologyDescription
  • Возвращает, есть ли в топологии сервер, доступный для чтения

MongoDB\Driver\TopologyDescription::hasReadableServer

(mongodb >=1.13.0)

MongoDB\Driver\TopologyDescription::hasReadableServer — Возвращает, есть ли в топологии сервер, доступный для чтения

Описание

final public MongoDB\Driver\TopologyDescription::hasReadableServer(?MongoDB\Driver\ReadPreference $readPreference = null): bool

Возвращает, есть ли в топологии сервер, доступный для чтения, или, если указан параметр readPreference, сервер, соответствующий указанному предпочтению чтения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает, есть ли в топологии сервер, доступный для чтения, или, если указан параметр readPreference, сервер, соответствующий указанному предпочтению чтения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает, есть ли в топологии сервер, доступный для записи

  • « MongoDB\Driver\TopologyDescription::hasReadableServer
  • MongoDB\Driver\WriteConcernError »
  • PHP Manual
  • MongoDB\Driver\TopologyDescription
  • Возвращает, есть ли в топологии сервер, доступный для записи

MongoDB\Driver\TopologyDescription::hasWritableServer

(mongodb >=1.13.0)

MongoDB\Driver\TopologyDescription::hasWritableServer — Возвращает, есть ли в топологии сервер, доступный для записи

Описание

final public MongoDB\Driver\TopologyDescription::hasWritableServer(): bool

Возвращает, есть ли в топологии сервер, доступный для записи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает, есть ли в топологии сервер, доступный для записи.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Класс The MongoDB\Driver\WriteConcernError

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\WriteConcernError инкапсулирует информацию об ошибке записи и может быть возвращён MongoDB\Driver\WriteResult::getWriteConcernError().

Обзор классов

final class MongoDB\Driver\WriteConcernError {
/* Методы */
final public getCode(): int
final public getInfo(): ?object
final public getMessage(): 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(): 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(): ?object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает документ метаданных для 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(): 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 class MongoDB\Driver\WriteError {
/* Методы */
final public getCode(): int
final public getIndex(): int
final public getInfo(): ?object
final public getMessage(): 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(): 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(): 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(): ?object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает документ метаданных для 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(): 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 class MongoDB\Driver\WriteResult {
/* Методы */
final public getDeletedCount(): ?int
final public getInsertedCount(): ?int
final public getMatchedCount(): ?int
final public getModifiedCount(): ?int
final public getServer(): MongoDB\Driver\Server
final public getUpsertedCount(): ?int
final public getUpsertedIds(): array
final public getWriteConcernError(): ?MongoDB\Driver\WriteConcernError
final public getWriteErrors(): array
final public isAcknowledged(): 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(): ?int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество удалённых документов или 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(): ?int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество вставленных документов (исключая слияния) или 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(): ?int

Если операция обновления не приводит к изменению документа (например, установка значения поля в его текущее значение), сопоставленное количество может быть больше, чем значение, возвращаемое 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(): ?int

Если операция обновления не приводит к изменению документа (например, установка значения поля в его текущее значение), изменённое число может быть меньше, чем значение, возвращаемое 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(): MongoDB\Driver\Server

Возвращает MongoDB\Driver\Server, связанный с этим результатом записи. Это сервер, который выполнил MongoDB\Driver\BulkWrite.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MongoDB\Driver\Server связанный с этим результатом записи.

Ошибки

  • При ошибке парсинга аргумента бросает исключение 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(): ?int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество документов, вставленных слиянием.

Ошибки

  • При ошибке парсинга аргумента бросает исключение 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(): 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(): ?MongoDB\Driver\WriteConcernError

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 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(): 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(): 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\Document — Класс MongoDB\BSON\Document
    • MongoDB\BSON\Document::__construct — Создаёт новый BSON-документ (не используется)
    • MongoDB\BSON\Document::fromBSON — Создаёт новый экземпляр документа из BSON-строки
    • MongoDB\BSON\Document::fromJSON — Создаёт новый экземпляр документа из строки JSON
    • MongoDB\BSON\Document::fromPHP — Создаёт новый экземпляр документа из данных PHP
    • MongoDB\BSON\Document::get — Возвращает значение ключа в документе
    • MongoDB\BSON\Document::getIterator — Возвращает итератор для документа BSON
    • MongoDB\BSON\Document::has — Возвращает, присутствует ли ключ в документе
    • MongoDB\BSON\Document::serialize — Сериализует документ
    • MongoDB\BSON\Document::toCanonicalExtendedJSON — Возвращает Canonical Extended JSON-представление BSON-документа
    • MongoDB\BSON\Document::toPHP — Возвращает PHP-представление документа BSON
    • MongoDB\BSON\Document::toRelaxedExtendedJSON — Возвращает Relaxed Extended JSON представление BSON-документа
    • MongoDB\BSON\Document::__toString — Возвращает строковое представление данного BSON-документа
    • MongoDB\BSON\Document::unserialize — Десериализует BSON-документ
  • MongoDB\BSON\PackedArray — Класс MongoDB\BSON\PackedArray
    • MongoDB\BSON\PackedArray::__construct — Создаёт новый массив BSON (не используется)
    • MongoDB\BSON\PackedArray::fromPHP — Создаёт новый экземпляр массива BSON из данных PHP
    • MongoDB\BSON\PackedArray::get — Возвращает значение индекса массива
    • MongoDB\BSON\PackedArray::getIterator — Возвращает итератор для массива BSON
    • MongoDB\BSON\PackedArray::has — Возвращает, присутствует ли индекс в массиве
    • MongoDB\BSON\PackedArray::serialize — Сериализация массива BSON
    • MongoDB\BSON\PackedArray::toPHP — Возвращает PHP-представление массива BSON
    • MongoDB\BSON\PackedArray::__toString — Возвращает строковое представление BSON-массива
    • MongoDB\BSON\PackedArray::unserialize — Десериализует массив BSON
  • MongoDB\BSON\Iterator — Класс MongoDB\BSON\Iterator
    • MongoDB\BSON\Iterator::__construct — Создаёт новый итератор BSON (не используется)
    • MongoDB\BSON\Iterator::current — Возвращает текущий элемент
    • MongoDB\BSON\Iterator::key — Возвращает ключ текущего элемента
    • MongoDB\BSON\Iterator::next — Перемещает итератор к следующему элементу
    • MongoDB\BSON\Iterator::rewind — Перематывает итератор к первому элементу
    • MongoDB\BSON\Iterator::valid — Проверяет, является ли текущая позиция корректной
  • 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\Persistable::bsonSerialize — Предоставляет массив или документ для сериализации в формате BSON
  • 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\Document::fromJSON() - Создаёт новый экземпляр документа из строки JSON
  • 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\Document::fromPHP() - Создаёт новый экземпляр документа из данных PHP
  • 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\Document::fromJSON() - Создаёт новый экземпляр документа из строки JSON
  • MongoDB\BSON\Document::toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON-представление BSON-документа
  • 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 технически могут содержать повторяющиеся ключи, поскольку документы хранятся в виде списка пар ключ-значение; однако приложениям следует воздерживаться от создания документов с дубликатами ключей, поскольку поведение сервера и драйвера может быть неопределённым. Поскольку объекты и массивы PHP не могут иметь повторяющихся ключей, данные также могут быть потеряны при декодировании документа BSON с повторяющимися ключами.

Список параметров

bson (string)

Значение BSON для десериализации.

typeMap (array)

Конфигурация карты типов.

Возвращаемые значения

Десериализованное значение PHP.

Ошибки

  • Выдаёт MongoDB\Driver\Exception\InvalidArgumentException, если класс в карте типов не может быть создан или не реализует MongoDB\BSON\Unserializable.
  • Исключение MongoDB\Driver\Exception\UnexpectedValueException выбрасывается, если входные данные не являются ровно одним документом BSON. Возможные причины включают, но не ограничены некорректным BSON, лишними данными или неожиданной ошибкой » libbson.

Список изменений

Версия | Описание
PECL mongodb 1.4.0 | Если входные данные содержат неподдерживаемый устаревший тип BSON, драйвер больше не будет записывать предупреждение в журнал отладки, а вместо этого создаст объект, представляющий этот тип.
PECL mongodb 1.3.2 | MongoDB\Driver\Exception\UnexpectedValueException больше не выдаётся, если входные данные содержат неподдерживаемый, устаревший тип BSON. Такие типы будут игнорироваться (как они были в версиях до 1.3.0), хотя драйвер теперь будет записывать предупреждение в журнал отладки (смотрите: mongodb.debug).
PECL mongodb 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\Document::toPHP() - Возвращает PHP-представление документа BSON
  • MongoDB\BSON\fromPHP() - Возвращает представление BSON значения PHP
  • » MongoDB BSON
  • Постоянные данные


Возвращает Relaxed Extended JSON представление значения BSON

  • « MongoDB\BSON\toPHP
  • MongoDB\BSON\Document »
  • 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\Document::fromJSON() - Создаёт новый экземпляр документа из строки JSON
  • MongoDB\BSON\Document::toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление BSON-документа
  • MongoDB\BSON\fromJSON() - Возвращает представление BSON значения JSON
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • » Extended JSON
  • » MongoDB BSON


Класс MongoDB\BSON\Document

(mongodb >=1.16.0)

Введение

Представляет BSON-документ. Класс используется при чтении данных в виде необработанного BSON и не может быть модифицирован.

Обзор классов

final class MongoDB\BSON\Document implements MongoDB\BSON\Type, IteratorAggregate, Serializable {
/* Методы */
final private __construct()
final static public fromBSON(string $bson): MongoDB\BSON\Document
final static public fromJSON(string $json): MongoDB\BSON\Document
final static public fromPHP(object|array $value): MongoDB\BSON\Document
final public get(string $key): mixed
final public getIterator(): MongoDB\BSON\Iterator
final public has(string $key): bool
final public serialize(): string
final public toCanonicalExtendedJSON(): string
final public toPHP(?array $typeMap = null): array|object
final public toRelaxedExtendedJSON(): string
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.17.0 | Реализует MongoDB\BSON\Type.

Содержание

  • MongoDB\BSON\Document::__construct — Создаёт новый BSON-документ (не используется)
  • MongoDB\BSON\Document::fromBSON — Создаёт новый экземпляр документа из BSON-строки
  • MongoDB\BSON\Document::fromJSON — Создаёт новый экземпляр документа из строки JSON
  • MongoDB\BSON\Document::fromPHP — Создаёт новый экземпляр документа из данных PHP
  • MongoDB\BSON\Document::get — Возвращает значение ключа в документе
  • MongoDB\BSON\Document::getIterator — Возвращает итератор для документа BSON
  • MongoDB\BSON\Document::has — Возвращает, присутствует ли ключ в документе
  • MongoDB\BSON\Document::serialize — Сериализует документ
  • MongoDB\BSON\Document::toCanonicalExtendedJSON — Возвращает Canonical Extended JSON-представление BSON-документа
  • MongoDB\BSON\Document::toPHP — Возвращает PHP-представление документа BSON
  • MongoDB\BSON\Document::toRelaxedExtendedJSON — Возвращает Relaxed Extended JSON представление BSON-документа
  • MongoDB\BSON\Document::__toString — Возвращает строковое представление данного BSON-документа
  • MongoDB\BSON\Document::unserialize — Десериализует BSON-документ


Создаёт новый BSON-документ (не используется)

  • « MongoDB\BSON\Document
  • MongoDB\BSON\Document::fromBSON »
  • PHP Manual
  • MongoDB\BSON\Document
  • Создаёт новый BSON-документ (не используется)

MongoDB\BSON\Document::__construct

(mongodb >=1.16.0)

MongoDB\BSON\Document::__construct — Создаёт новый BSON-документ (не используется)

Описание

final private MongoDB\BSON\Document::__construct()

Объекты MongoDB\BSON\Document создаются с помощью статических фабричных методов и не могут быть инициализированы напрямую.

Список параметров

У этой функции нет параметров.

Смотрите также

  • MongoDB\BSON\Document::fromPHP() - Создаёт новый экземпляр документа из данных PHP
  • MongoDB\BSON\Document::fromBSON() - Создаёт новый экземпляр документа из BSON-строки
  • MongoDB\BSON\Document::fromJSON() - Создаёт новый экземпляр документа из строки JSON
  • » Типы BSON


Создаёт новый экземпляр документа из BSON-строки

  • « MongoDB\BSON\Document::__construct
  • MongoDB\BSON\Document::fromJSON »
  • PHP Manual
  • MongoDB\BSON\Document
  • Создаёт новый экземпляр документа из BSON-строки

MongoDB\BSON\Document::fromBSON

(mongodb >=1.16.0)

MongoDB\BSON\Document::fromBSON — Создаёт новый экземпляр документа из BSON-строки

Описание

final static public MongoDB\BSON\Document::fromBSON(string $bson): MongoDB\BSON\Document

Список параметров

bson (string)

Строка, содержащая документ в формате BSON.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает MongoDB\Driver\Exception\UnexpectedValueException, если параметр bson является некорректной BSON-строкой или содержит более одного документа.

Смотрите также

  • MongoDB\BSON\Document::fromPHP() - Создаёт новый экземпляр документа из данных PHP
  • MongoDB\BSON\Document::fromJSON() - Создаёт новый экземпляр документа из строки JSON
  • » Типы BSON


Создаёт новый экземпляр документа из строки JSON

  • « MongoDB\BSON\Document::fromBSON
  • MongoDB\BSON\Document::fromPHP »
  • PHP Manual
  • MongoDB\BSON\Document
  • Создаёт новый экземпляр документа из строки JSON

MongoDB\BSON\Document::fromJSON

(mongodb >=1.16.0)

MongoDB\BSON\Document::fromJSON — Создаёт новый экземпляр документа из строки JSON

Описание

final static public MongoDB\BSON\Document::fromJSON(string $json): MongoDB\BSON\Document

Преобразует файл » extended JSON в его BSON-представление.

Список параметров

json (string)

JSON-значение, подлежащее преобразованию.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\UnexpectedValueException, если параметр json не является корректным документом.

Смотрите также

  • MongoDB\BSON\Document::fromPHP() - Создаёт новый экземпляр документа из данных PHP
  • MongoDB\BSON\Document::fromBSON() - Создаёт новый экземпляр документа из BSON-строки
  • MongoDB\BSON\fromJSON() - Возвращает представление BSON значения JSON
  • » MongoDB Extended JSON
  • » Типы BSON


Создаёт новый экземпляр документа из данных PHP

  • « MongoDB\BSON\Document::fromJSON
  • MongoDB\BSON\Document::get »
  • PHP Manual
  • MongoDB\BSON\Document
  • Создаёт новый экземпляр документа из данных PHP

MongoDB\BSON\Document::fromPHP

(mongodb >=1.16.0)

MongoDB\BSON\Document::fromPHP — Создаёт новый экземпляр документа из данных PHP

Описание

final static public MongoDB\BSON\Document::fromPHP(object|array $value): MongoDB\BSON\Document

Список параметров

value (object|array)

PHP-объект или массив, содержащий документ. При передаче массива с числовыми ключами числовые значения преобразуются в строки и используются в качестве ключей документа.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Document::fromBSON() - Создаёт новый экземпляр документа из BSON-строки
  • MongoDB\BSON\Document::fromJSON() - Создаёт новый экземпляр документа из строки JSON
  • MongoDB\BSON\fromPHP() - Возвращает представление BSON значения PHP
  • » Типы BSON


Возвращает значение ключа в документе

  • « MongoDB\BSON\Document::fromPHP
  • MongoDB\BSON\Document::getIterator »
  • PHP Manual
  • MongoDB\BSON\Document
  • Возвращает значение ключа в документе

MongoDB\BSON\Document::get

(mongodb >=1.16.0)

MongoDB\BSON\Document::get — Возвращает значение ключа в документе

Описание

final public MongoDB\BSON\Document::get(string $key): mixed

Список параметров

key (string)

Ключ, который необходимо извлечь из документа.

Возвращаемые значения

Возвращает значение, связанное с заданным ключом. Если ключ отсутствует в документе, будет выброшено исключение.

Замечание: Если в BSON-документе встречается значение, закодированное как 64-битное целое число, то возвращаемым значением этого метода будет экземпляр MongoDB\BSON\Int64.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException, если ключ отсутствует в документе.

Смотрите также

  • MongoDB\BSON\Document::has() - Возвращает, присутствует ли ключ в документе
  • » Типы BSON


Возвращает итератор для документа BSON

  • « MongoDB\BSON\Document::get
  • MongoDB\BSON\Document::has »
  • PHP Manual
  • MongoDB\BSON\Document
  • Возвращает итератор для документа BSON

MongoDB\BSON\Document::getIterator

(mongodb >=1.16.0)

MongoDB\BSON\Document::getIterator — Возвращает итератор для документа BSON

Описание

final public MongoDB\BSON\Document::getIterator(): MongoDB\BSON\Iterator

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр MongoDB\BSON\Iterator, который может быть использован для итерации по всем ключам в документе.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\UnexpectedValueException, если итератор BSON не может быть инициализирован.

Смотрите также

  • » Типы BSON


Возвращает, присутствует ли ключ в документе

  • « MongoDB\BSON\Document::getIterator
  • MongoDB\BSON\Document::serialize »
  • PHP Manual
  • MongoDB\BSON\Document
  • Возвращает, присутствует ли ключ в документе

MongoDB\BSON\Document::has

(mongodb >=1.16.0)

MongoDB\BSON\Document::has — Возвращает, присутствует ли ключ в документе

Описание

final public MongoDB\BSON\Document::has(string $key): bool

Список параметров

key (string)

Ключ, который необходимо искать в документе.

Возвращаемые значения

Возвращает true, если ключ присутствует в документе, в противном случае возвращает false .

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Document::get() - Возвращает значение ключа в документе
  • » Типы BSON


Сериализует документ

  • « MongoDB\BSON\Document::has
  • MongoDB\BSON\Document::toCanonicalExtendedJSON »
  • PHP Manual
  • MongoDB\BSON\Document
  • Сериализует документ

MongoDB\BSON\Document::serialize

(mongodb >=1.16.0)

MongoDB\BSON\Document::serialize — Сериализует документ

Описание

final public MongoDB\BSON\Document::serialize(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление MongoDB\BSON\Document.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\Document::unserialize() - Десериализует BSON-документ
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает Canonical Extended JSON-представление BSON-документа

  • « MongoDB\BSON\Document::serialize
  • MongoDB\BSON\Document::toPHP »
  • PHP Manual
  • MongoDB\BSON\Document
  • Возвращает Canonical Extended JSON-представление BSON-документа

MongoDB\BSON\Document::toCanonicalExtendedJSON

(mongodb >=1.16.0)

MongoDB\BSON\Document::toCanonicalExtendedJSON — Возвращает Canonical Extended JSON-представление BSON-документа

Описание

final public MongoDB\BSON\Document::toCanonicalExtendedJSON(): string

Преобразует BSON-документ в его » Canonical Extended JSON представление. Формат Canonical предпочитает точность типов за счёт краткости вывода и наиболее подходит для получения вывода, который может быть преобразован обратно в BSON без потери информации о типе (например, числовые типы останутся дифференцированными).

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования MongoDB\BSON\Document::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\Document::fromPHP($document);
echo $bson->toCanonicalExtendedJSON(), "\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\Document::fromJSON() - Создаёт новый экземпляр документа из строки JSON
  • MongoDB\BSON\Document::toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление BSON-документа
  • MongoDB\BSON\toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON представление для значения BSON
  • » Спецификация Extended JSON
  • » Типы BSON


Возвращает PHP-представление документа BSON

  • « MongoDB\BSON\Document::toCanonicalExtendedJSON
  • MongoDB\BSON\Document::toRelaxedExtendedJSON »
  • PHP Manual
  • MongoDB\BSON\Document
  • Возвращает PHP-представление документа BSON

MongoDB\BSON\Document::toPHP

(mongodb >=1.16.0)

MongoDB\BSON\Document::toPHP — Возвращает PHP-представление документа BSON

Описание

final public MongoDB\BSON\Document::toPHP(?array $typeMap = null): array|object

Десериализует BSON-документ в его PHP-представление. Параметр typeMap может быть использован для управления типами PHP, используемыми для преобразования BSON-массивов и документов (как корневых, так и встроенных).

Внимание

Документы BSON технически могут содержать повторяющиеся ключи, поскольку документы хранятся в виде списка пар ключ-значение; однако приложениям следует воздерживаться от создания документов с дубликатами ключей, поскольку поведение сервера и драйвера может быть неопределённым. Поскольку объекты и массивы PHP не могут иметь повторяющихся ключей, данные также могут быть потеряны при декодировании документа BSON с повторяющимися ключами.

Список параметров

typeMap (array)

Конфигурация карты типов.

Возвращаемые значения

Десериализованное PHP-значение.

Замечание: Если в BSON-документе встречается значение, закодированное как 64-битное целое число, то возвращаемым значением будет экземпляр MongoDB\BSON\Int64.

Ошибки

  • Выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException, если класс в карте типов не может быть инициализирован или не реализует интерфейс MongoDB\BSON\Unserializable.

Смотрите также

  • MongoDB\BSON\toPHP() - Возвращает PHP представление значения BSON
  • » Типы BSON


Возвращает Relaxed Extended JSON представление BSON-документа

  • « MongoDB\BSON\Document::toPHP
  • MongoDB\BSON\Document::__toString »
  • PHP Manual
  • MongoDB\BSON\Document
  • Возвращает Relaxed Extended JSON представление BSON-документа

MongoDB\BSON\Document::toRelaxedExtendedJSON

(mongodb >=1.16.0)

MongoDB\BSON\Document::toRelaxedExtendedJSON — Возвращает Relaxed Extended JSON представление BSON-документа

Описание

final public MongoDB\BSON\Document::toRelaxedExtendedJSON(): string

Преобразует BSON-документ в » Relaxed Extended JSON представление. Формат Relaxed предпочитает использовать примитивы типов JSON в ущерб верности типов и наиболее подходит для создания вывода, который может быть легко использован веб-интерфейсами и людьми.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования MongoDB\BSON\Document::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\Document::fromPHP($document);
echo $bson->toRelaxedExtendedJSON(), "\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\Document::fromJSON() - Создаёт новый экземпляр документа из строки JSON
  • MongoDB\BSON\Document::toCanonicalExtendedJSON() - Возвращает Canonical Extended JSON-представление BSON-документа
  • MongoDB\BSON\toRelaxedExtendedJSON() - Возвращает Relaxed Extended JSON представление значения BSON
  • » Спецификация Extended JSON
  • » Типы BSON


Возвращает строковое представление данного BSON-документа

  • « MongoDB\BSON\Document::toRelaxedExtendedJSON
  • MongoDB\BSON\Document::unserialize »
  • PHP Manual
  • MongoDB\BSON\Document
  • Возвращает строковое представление данного BSON-документа

MongoDB\BSON\Document::__toString

(mongodb >=1.16.0)

MongoDB\BSON\Document::__toString — Возвращает строковое представление данного BSON-документа

Описание

final public MongoDB\BSON\Document::__toString(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление данного BSON-документа

Смотрите также

  • » Типы BSON


Десериализует BSON-документ

  • « MongoDB\BSON\Document::__toString
  • MongoDB\BSON\PackedArray »
  • PHP Manual
  • MongoDB\BSON\Document
  • Десериализует BSON-документ

MongoDB\BSON\Document::unserialize

(mongodb >=1.16.0)

MongoDB\BSON\Document::unserialize — Десериализует BSON-документ

Описание

final public MongoDB\BSON\Document::unserialize(string $data): void

Список параметров

data

Сериализованный MongoDB\BSON\Document.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\UnexpectedValueException, если свойства не могут быть десериализованы (например, параметр data был неправильно сформирован).
  • Выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException, если свойства недопустимы (например, отсутствуют поля или недопустимые значения).

Смотрите также

  • MongoDB\BSON\Document::serialize() - Сериализует документ
  • unserialize() - Создаёт PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\PackedArray

(mongodb >=1.16.0)

Введение

Представляет массив BSON. Класс используется при чтении данных в виде необработанного BSON и не может быть модифицирован.

Обзор классов

final class MongoDB\BSON\PackedArray implements MongoDB\BSON\Type, IteratorAggregate, Serializable {
/* Методы */
final private __construct()
final static public fromPHP(array $value): MongoDB\BSON\PackedArray
final public get(int $key): mixed
final public getIterator(): MongoDB\BSON\Iterator
final public has(int $index): bool
final public serialize(): string
final public toPHP(?array $typeMap = null): array|object
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.17.0 | Реализует MongoDB\BSON\Type.
PECL mongodb 1.17.0 | Класс MongoDB\BSON\PackedArray не может быть сериализован в контекстах, где ожидается BSON-документ. В предыдущих версиях BSON-массив должен был быть преобразован в документ.

Содержание

  • MongoDB\BSON\PackedArray::__construct — Создаёт новый массив BSON (не используется)
  • MongoDB\BSON\PackedArray::fromPHP — Создаёт новый экземпляр массива BSON из данных PHP
  • MongoDB\BSON\PackedArray::get — Возвращает значение индекса массива
  • MongoDB\BSON\PackedArray::getIterator — Возвращает итератор для массива BSON
  • MongoDB\BSON\PackedArray::has — Возвращает, присутствует ли индекс в массиве
  • MongoDB\BSON\PackedArray::serialize — Сериализация массива BSON
  • MongoDB\BSON\PackedArray::toPHP — Возвращает PHP-представление массива BSON
  • MongoDB\BSON\PackedArray::__toString — Возвращает строковое представление BSON-массива
  • MongoDB\BSON\PackedArray::unserialize — Десериализует массив BSON


Создаёт новый массив BSON (не используется)

  • « MongoDB\BSON\PackedArray
  • MongoDB\BSON\PackedArray::fromPHP »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Создаёт новый массив BSON (не используется)

MongoDB\BSON\PackedArray::__construct

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::__construct — Создаёт новый массив BSON (не используется)

Описание

final private MongoDB\BSON\PackedArray::__construct()

Объекты MongoDB\BSON\PackedArray создаются с помощью статических фабричных методов и не могут быть инициализированы напрямую.

Список параметров

У этой функции нет параметров.

Смотрите также

  • MongoDB\BSON\PackedArray::fromPHP() - Создаёт новый экземпляр массива BSON из данных PHP
  • » Типы BSON


Создаёт новый экземпляр массива BSON из данных PHP

  • « MongoDB\BSON\PackedArray::__construct
  • MongoDB\BSON\PackedArray::get »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Создаёт новый экземпляр массива BSON из данных PHP

MongoDB\BSON\PackedArray::fromPHP

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::fromPHP — Создаёт новый экземпляр массива BSON из данных PHP

Описание

final static public MongoDB\BSON\PackedArray::fromPHP(array $value): MongoDB\BSON\PackedArray

Список параметров

value (array)

Массив PHP для преобразования в массив BSON. Массив должен быть списком (т.е. иметь последовательные числовые ключи, начинающиеся с 0).

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException, если заданный массив не является списком (т.е. имеет последовательные числовые ключи, начинающиеся с 0).

Смотрите также

  • MongoDB\BSON\fromPHP() - Возвращает представление BSON значения PHP
  • » Типы BSON


Возвращает значение индекса массива

  • « MongoDB\BSON\PackedArray::fromPHP
  • MongoDB\BSON\PackedArray::getIterator »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Возвращает значение индекса массива

MongoDB\BSON\PackedArray::get

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::get — Возвращает значение индекса массива

Описание

final public MongoDB\BSON\PackedArray::get(int $key): mixed

Список параметров

key (int)

Индекс для получения из массива.

Возвращаемые значения

Возвращает значение, связанное с заданным индексом. Если индекс не присутствует в документе, то будет выброшено исключение.

Замечание: Если в массиве BSON встречается значение, закодированное как 64-битное целое число, то возвращаемым значением метода будет экземпляр MongoDB\BSON\Int64.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException, если индекс отсутствует в массиве.

Смотрите также

  • MongoDB\BSON\PackedArray::has() - Возвращает, присутствует ли индекс в массиве
  • » Типы BSON


Возвращает итератор для массива BSON

  • « MongoDB\BSON\PackedArray::get
  • MongoDB\BSON\PackedArray::has »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Возвращает итератор для массива BSON

MongoDB\BSON\PackedArray::getIterator

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::getIterator — Возвращает итератор для массива BSON

Описание

final public MongoDB\BSON\PackedArray::getIterator(): MongoDB\BSON\Iterator

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр MongoDB\BSON\Iterator, который может быть использован для итерации по всем индексам в массиве.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\UnexpectedValueException, если итератор BSON не может быть инициализирован.

Смотрите также

  • » Типы BSON


Возвращает, присутствует ли индекс в массиве

  • « MongoDB\BSON\PackedArray::getIterator
  • MongoDB\BSON\PackedArray::serialize »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Возвращает, присутствует ли индекс в массиве

MongoDB\BSON\PackedArray::has

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::has — Возвращает, присутствует ли индекс в массиве

Описание

final public MongoDB\BSON\PackedArray::has(int $index): bool

Список параметров

index (int)

Индекс, который следует искать в массиве.

Возвращаемые значения

Возвращает true, если индекс присутствует в массиве, в противном случае возвращает значение false.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\PackedArray::get() - Возвращает значение индекса массива
  • » Типы BSON


Сериализация массива BSON

  • « MongoDB\BSON\PackedArray::has
  • MongoDB\BSON\PackedArray::toPHP »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Сериализация массива BSON

MongoDB\BSON\PackedArray::serialize

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::serialize — Сериализация массива BSON

Описание

final public MongoDB\BSON\PackedArray::serialize(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованное представление массива MongoDB\BSON\PackedArray.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\PackedArray::unserialize() - Десериализует массив BSON
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Возвращает PHP-представление массива BSON

  • « MongoDB\BSON\PackedArray::serialize
  • MongoDB\BSON\PackedArray::__toString »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Возвращает PHP-представление массива BSON

MongoDB\BSON\PackedArray::toPHP

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::toPHP — Возвращает PHP-представление массива BSON

Описание

final public MongoDB\BSON\PackedArray::toPHP(?array $typeMap = null): array|object

Список параметров

typeMap (array)

Конфигурация карты типов.

Возвращаемые значения

Декодированное значение PHP.

Замечание: Если в массиве BSON встречается значение, закодированное как 64-битное целое число, то возвращаемым значением метода будет экземпляр MongoDB\BSON\Int64.

Ошибки

  • Выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException, если класс в карте типов не может быть инициализирован или не реализует интерфейс MongoDB\BSON\Unserializable.

Смотрите также

  • MongoDB\BSON\toPHP() - Возвращает PHP представление значения BSON
  • » Типы BSON


Возвращает строковое представление BSON-массива

  • « MongoDB\BSON\PackedArray::toPHP
  • MongoDB\BSON\PackedArray::unserialize »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Возвращает строковое представление BSON-массива

MongoDB\BSON\PackedArray::__toString

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::__toString — Возвращает строковое представление BSON-массива

Описание

final public MongoDB\BSON\PackedArray::__toString(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление массива в формате BSON.

Смотрите также

  • » Типы BSON


Десериализует массив BSON

  • « MongoDB\BSON\PackedArray::__toString
  • MongoDB\BSON\Iterator »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Десериализует массив BSON

MongoDB\BSON\PackedArray::unserialize

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::unserialize — Десериализует массив BSON

Описание

final public MongoDB\BSON\PackedArray::unserialize(string $data): void

Список параметров

data

Сериализованный MongoDB\BSON\PackedArray.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\UnexpectedValueException, если свойства не могут быть десериализованы (т.е. serialized был неправильно сформирован).
  • Выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException, если свойства недопустимы (например, отсутствуют поля или недопустимые значения).

Смотрите также

  • MongoDB\BSON\PackedArray::serialize() - Сериализация массива BSON
  • unserialize() - Создаёт PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\Iterator

(mongodb >=1.16.0)

Введение

Итератор, используемый для обхода BSON-документа или массива.

Обзор классов

final class MongoDB\BSON\Iterator implements Iterator {
/* Методы */
final private __construct()
public current(): mixed
public key(): string|int
public next(): void
public rewind(): void
public valid(): bool
}

Содержание

  • MongoDB\BSON\Iterator::__construct — Создаёт новый итератор BSON (не используется)
  • MongoDB\BSON\Iterator::current — Возвращает текущий элемент
  • MongoDB\BSON\Iterator::key — Возвращает ключ текущего элемента
  • MongoDB\BSON\Iterator::next — Перемещает итератор к следующему элементу
  • MongoDB\BSON\Iterator::rewind — Перематывает итератор к первому элементу
  • MongoDB\BSON\Iterator::valid — Проверяет, является ли текущая позиция корректной


Создаёт новый итератор BSON (не используется)

  • « MongoDB\BSON\Iterator
  • MongoDB\BSON\Iterator::current »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Создаёт новый итератор BSON (не используется)

MongoDB\BSON\Iterator::__construct

(Информация о версии неизвестна, возможно, только в Git)

MongoDB\BSON\Iterator::__construct — Создаёт новый итератор BSON (не используется)

Описание

final private MongoDB\BSON\Iterator::__construct()

Объекты MongoDB\BSON\Iterator создаются путём вызова MongoDB\BSON\Document::getIterator() или MongoDB\BSON\PackedArray::getIterator() и не могут быть инициализированы напрямую.

Список параметров

У этой функции нет параметров.

Смотрите также

  • MongoDB\BSON\Document::getIterator() - Возвращает итератор для документа BSON
  • MongoDB\BSON\PackedArray::getIterator() - Возвращает итератор для массива BSON
  • » Типы BSON


Возвращает текущий элемент

  • « MongoDB\BSON\Iterator::__construct
  • MongoDB\BSON\Iterator::key »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Возвращает текущий элемент

MongoDB\BSON\Iterator::current

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::current — Возвращает текущий элемент

Описание

public MongoDB\BSON\Iterator::current(): mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение текущего элемента.

Замечание: Если в структуре BSON встречается значение, закодированное как 64-битное целое число, то возвращаемым значением метода будет экземпляр MongoDB\BSON\Int64.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключениеMongoDB\Driver\Exception\LogicException, если итератор не является корректным.

Смотрите также

  • Iterator::current() - Возврат текущего элемента


Возвращает ключ текущего элемента

  • « MongoDB\BSON\Iterator::current
  • MongoDB\BSON\Iterator::next »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Возвращает ключ текущего элемента

MongoDB\BSON\Iterator::key

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::key — Возвращает ключ текущего элемента

Описание

public MongoDB\BSON\Iterator::key(): string|int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ключ текущего элемента. При итерации BSON-документа ключом всегда будет строка (string). При итерации массива BSON ключом будет целое число (int).

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\LogicException, если итератор не является корректным.

Смотрите также

  • Iterator::key() - Возвращает ключ текущего элемента


Перемещает итератор к следующему элементу

  • « MongoDB\BSON\Iterator::key
  • MongoDB\BSON\Iterator::rewind »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Перемещает итератор к следующему элементу

MongoDB\BSON\Iterator::next

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::next — Перемещает итератор к следующему элементу

Описание

public MongoDB\BSON\Iterator::next(): void

Список параметров

У этой функции нет параметров.

Смотрите также

  • Iterator::next() - Переходит к следующему элементу


Перематывает итератор к первому элементу

  • « MongoDB\BSON\Iterator::next
  • MongoDB\BSON\Iterator::valid »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Перематывает итератор к первому элементу

MongoDB\BSON\Iterator::rewind

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::rewind — Перематывает итератор к первому элементу

Описание

public MongoDB\BSON\Iterator::rewind(): void

Список параметров

У этой функции нет параметров.

Смотрите также

  • Iterator::rewind() - Возвращает итератор на первый элемент


Проверяет, является ли текущая позиция корректной

  • « MongoDB\BSON\Iterator::rewind
  • MongoDB\BSON\Binary »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Проверяет, является ли текущая позиция корректной

MongoDB\BSON\Iterator::valid

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::valid — Проверяет, является ли текущая позиция корректной

Описание

public MongoDB\BSON\Iterator::valid(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если текущая позиция итератора корректная, в противном случае возвращает false.

Смотрите также

  • Iterator::valid() - Проверяет корректность текущей позиции


Класс MongoDB\BSON\Binary

(mongodb >=1.0.0)

Введение

Тип BSON для бинарных данных (т.е. массива байт). Бинарные значения также имеют подтип, обозначающий, какой тип данных содержится в массиве байт. Подтипы с нуля до 127 предопределены или зарезервированы. Подтипы с 128-255 задаются пользователем.

Обзор классов

final class MongoDB\BSON\Binary implements MongoDB\BSON\BinaryInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Константы */
const int TYPE_GENERIC = 0;
const int TYPE_FUNCTION = 1;
const int TYPE_OLD_BINARY = 2;
const int TYPE_OLD_UUID = 3;
const int TYPE_UUID = 4;
const int TYPE_MD5 = 5;
const int TYPE_ENCRYPTED = 6;
const int TYPE_COLUMN = 7;
const int TYPE_USER_DEFINED = 128;
/* Методы */
final public __construct(string $data, int $type = MongoDB\BSON\Binary::TYPE_GENERIC)
final public getData(): string
final public getType(): int
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): 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_COLUMN

Данные столбца. Подтип используется для коллекций временных рядов.

MongoDB\BSON\Binary::TYPE_USER_DEFINED

Пользовательский тип. В то время как типы с 0 по 127 предопределены, либо зарезервированы, типы со 128 по 255 могут использоваться для чего угодно.

Список изменений

Версия | Описание
PECL mongodb 1.12.0 | Реализует интерфейс Stringable для PHP 8.0+. Добавлен тип MongoDB\BSON\Binary::TYPE_COLUMN.
PECL mongodb 1.7.0 | Добавлен тип MongoDB\BSON\Binary::TYPE_ENCRYPTED.
PECL mongodb 1.3.0 | Реализует интерфейс MongoDB\BSON\BinaryInterface.
PECL mongodb 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 = MongoDB\BSON\Binary::TYPE_GENERIC)

Список параметров

data (string)

Двоичные данные.

type (int)

8-разрядное целое число, обозначающее тип данных. По умолчанию принимает значение MongoDB\BSON\Binary::TYPE_GENERIC, если не указано.

Ошибки

  • При ошибке парсинга аргумента бросает исключение 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 байтам.

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Параметр type по умолчанию принимает значение MongoDB\BSON\Binary::TYPE_GENERIC, если не указан.
PECL mongodb 1.3.0 | MongoDB\Driver\Exception\InvalidArgumentException выдаётся, если type является MongoDB\BSON\Binary::TYPE_UUID или MongoDB\BSON\Binary::TYPE_OLD_UUID, а длина data не равна 16 байтам.
PECL mongodb 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(): 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(): 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(): 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(): 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(): 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 $data): void

Список параметров

data

Сериализованный 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 class MongoDB\BSON\Decimal128 implements MongoDB\BSON\Decimal128Interface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Методы */
final public __construct(string $value)
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.12.0 | Реализует интерфейс Stringable для PHP 8.0+.
PECL mongodb 1.3.0 | Реализует интерфейс MongoDB\BSON\Decimal128Interface.
PECL mongodb 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(): 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(): 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(): 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 $data): void

Список параметров

data

Сериализованный 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 class MongoDB\BSON\Javascript implements MongoDB\BSON\JavascriptInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Методы */
final public __construct(string $code, array|object|null $scope = null)
final public getCode(): string
final public getScope(): ?object
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.12.0 | Реализует интерфейс Stringable для PHP 8.0+.
PECL mongodb 1.3.0 | Реализует интерфейс MongoDB\BSON\JavascriptInterface.
PECL mongodb 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|null $scope = null)

Список параметров

code (string)

Код Javascript.

scope (array|object)

Контекст Javascript.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Порождает исключение MongoDB\Driver\Exception\InvalidArgumentException если code содержит null-байты.

Список изменений

Версия | Описание
PECL mongodb 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(): 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(): ?object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает область документа JavaScript или null в случае, если области нет.

Ошибки

  • При ошибке парсинга аргумента бросает исключение 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


Возвращает представление, которое может быть преобразовано в 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(): 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(): 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(): 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


Десериализовать 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 $data): void

Список параметров

data

Сериализованный 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 class MongoDB\BSON\MaxKey implements MongoDB\BSON\MaxKeyInterface, MongoDB\BSON\Type, Serializable, JsonSerializable {
/* Методы */
final public __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.3.0 | Реализует интерфейс MongoDB\BSON\MaxKeyInterface.
PECL mongodb 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()

Список параметров

У этой функции нет параметров.

Ошибки

  • При ошибке парсинга аргумента бросает исключение 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(): 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(): 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 $data): void

Список параметров

data

Сериализованный 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 class MongoDB\BSON\MinKey implements MongoDB\BSON\MinKeyInterface, MongoDB\BSON\Type, Serializable, JsonSerializable {
/* Методы */
final public __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.3.0 | Реализует интерфейс MongoDB\BSON\MinKeyInterface.
PECL mongodb 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()

Список параметров

У этой функции нет параметров.

Ошибки

  • При ошибке парсинга аргумента бросает исключение 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(): 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(): 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 $data): void

Список параметров

data

Сериализованный 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 class MongoDB\BSON\ObjectId implements MongoDB\BSON\ObjectIdInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Методы */
final public __construct(?string $id = null)
final public getTimestamp(): int
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.12.0 | Реализует интерфейс Stringable для PHP 8.0+.
PECL mongodb 1.3.0 | Переименован из MongoDB\BSON\ObjectID в MongoDB\BSON\ObjectId. Реализует интерфейс MongoDB\BSON\ObjectIdInterface.
PECL mongodb 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 = null)

Список параметров

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(): 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(): 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(): 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(): 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 $data): void

Список параметров

data

Сериализованный 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 class MongoDB\BSON\Regex implements MongoDB\BSON\RegexInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Методы */
final public __construct(string $pattern, string $flags = "")
final public getFlags(): string
final public getPattern(): string
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.12.0 | Реализует интерфейс Stringable для PHP 8.0+.
PECL mongodb 1.3.0 | Реализует интерфейс MongoDB\BSON\RegexInterface.
PECL mongodb 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 содержат нулевые байты.

Список изменений

Версия Описание
PECL mongodb 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(): 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(): 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(): 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(): 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(): 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 $data): void

Список параметров

data

Сериализованный 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 class MongoDB\BSON\Timestamp implements MongoDB\BSON\TimestampInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Методы */
final public __construct(int $increment, int $timestamp)
final public getIncrement(): int
final public getTimestamp(): int
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.12.0 | Реализует интерфейс Stringable для PHP 8.0+.
PECL mongodb 1.3.0 | Реализует интерфейс MongoDB\BSON\TimestampInterface.
PECL mongodb 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 (int)

32-разрядное целое число, обозначающее увеличивающийся порядковый номер для операций в течение данной секунды.

timestamp (int)

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(): 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(): 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(): 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(): 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(): 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 $data): void

Список параметров

data

Сериализованный 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 class MongoDB\BSON\UTCDateTime implements MongoDB\BSON\UTCDateTimeInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Методы */
final public __construct(int|float|string|DateTimeInterface|null $milliseconds = null)
final public jsonSerialize(): mixed
final public serialize(): string
final public toDateTime(): DateTime
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.12.0 | Реализует интерфейс Stringable для PHP 8.0+.
PECL mongodb 1.3.0 | Реализует интерфейс MongoDB\BSON\UTCDateTimeInterface.
PECL mongodb 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(int|float|string|DateTimeInterface|null $milliseconds = null)

Список параметров

milliseconds (int|float|string|DateTimeInterface|null)

Количество миллисекунд со времён Unix (1 января 1970 г.). Отрицательные значения представляют даты до 1970 года. Это значение может быть представлено как 64-разрядный int. Для совместимости в 32-битных системах этот параметр также может быть представлен, как float или string.

Если аргумент является DateTimeInterface, из этого значения будет получено количество миллисекунд, прошедших с начала эпохи Unix.

Если этот аргумент равен null, будет использоваться текущее время по умолчанию.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
PECL mongodb 1.2.0 | Аргумент milliseconds является необязательным и по умолчанию равен null (т.е. текущее время). Аргумент также принимает DateTimeInterface, который может использоваться для получения количества миллисекунд с начала эпохи Unix. Ранее принимался только тип int, 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(): 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(): 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(): 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(): 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 $data): void

Список параметров

data

Сериализованный 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)

Введение

Абстрактный базовый интерфейс, который не должен быть реализован напрямую.

Обзор интерфейсов

class 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.

Обзор интерфейсов

class MongoDB\BSON\Persistable implements MongoDB\BSON\Unserializable, MongoDB\BSON\Serializable {
/* Методы */
abstract public bsonSerialize(): array|stdClass|MongoDB\BSON\Document
/* Наследуемые методы */
abstract public MongoDB\BSON\Serializable::bsonSerialize(): array|object
abstract public MongoDB\BSON\Unserializable::bsonUnserialize(array $data): void
}

Содержание

  • MongoDB\BSON\Persistable::bsonSerialize — Предоставляет массив или документ для сериализации в формате BSON


Предоставляет массив или документ для сериализации в формате BSON

  • « MongoDB\BSON\Persistable
  • MongoDB\BSON\Serializable »
  • PHP Manual
  • MongoDB\BSON\Persistable
  • Предоставляет массив или документ для сериализации в формате BSON

MongoDB\BSON\Persistable::bsonSerialize

(mongodb >=1.0.0)

MongoDB\BSON\Persistable::bsonSerialize — Предоставляет массив или документ для сериализации в формате BSON

Описание

abstract public MongoDB\BSON\Persistable::bsonSerialize(): array|stdClass|MongoDB\BSON\Document

Вызывается при сериализации объекта в BSON. Метод должен возвращать массив (array), stdClass или MongoDB\BSON\Document.

Возвращаемое значение всегда будет сериализовано в виде BSON-документа. Сериализованный документ будет включать поле, содержащее имя класса объекта. По этой причине в данном методе невозможно вернуть экземпляр класса MongoDB\BSON\PackedArray.

Пользователям рекомендуется включать свойство _id (например, MongoDB\BSON\ObjectId, инициализированное в вашем конструкторе) при возвращении данных для корневого документа BSON; иначе драйверу или базе данных придётся генерировать MongoDB\BSON\ObjectId при добавлении или обновлении документа, соответственно.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array), stdClass или MongoDB\BSON\Document, который должен быть сериализован в виде BSON-документа.

Список изменений

Версия | Описание
PECL mongodb 1.17.0 | Теперь метод может также возвращать экземпляры MongoDB\BSON\Document в дополнение к массиву (array) и stdClass.

Смотрите также

  • MongoDB\BSON\Serializable::bsonSerialize() - Предоставляет массив или документ для сериализации в BSON
  • MongoDB\BSON\Unserializable::bsonUnserialize() - Создаёт объект из массива BSON или документа
  • MongoDB\BSON\Persistable
  • Постоянные данные


Интерфейс MongoDB\BSON\Serializable

(mongodb >=1.0.0)

Введение

Классы, которые реализуют этот интерфейс, могут возвращать данные для сериализации в виде массива BSON или документа вместо открытых свойств объекта.

Обзор интерфейсов

class MongoDB\BSON\Serializable implements MongoDB\BSON\Type {
/* Методы */
abstract public bsonSerialize(): array|object
}

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Типы возвращаемых значений для методов объявлены как предварительные в PHP 8.0 и новее, что вызывает уведомления об устаревании в коде, который реализует этот интерфейс без объявления соответствующих типов возвращаемых значений. Атрибут #[ReturnTypeWillChange] может быть добавлен, чтобы заглушить уведомление об устаревании.

Содержание

  • 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(): 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(): array
{
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(): array
{
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(): array
{
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(): array
{
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 (как корневых, так и встроенных).

Обзор интерфейсов

class MongoDB\BSON\Unserializable {
/* Методы */
abstract public bsonUnserialize(array $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Типы возвращаемых значений для методов объявлены как предварительные в PHP 8.0 и новее, что вызывает уведомления об устаревании в коде, который реализует этот интерфейс без объявления соответствующих типов возвращаемых значений. Атрибут #[ReturnTypeWillChange] может быть добавлен, чтобы заглушить уведомление об устаревании.

Содержание

  • 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): void
{
$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, но также может использоваться в качестве параметра, возвращаемого значения или типа свойства в классах пользовательского пространства.

Обзор классов

class MongoDB\BSON\BinaryInterface {
/* Методы */
abstract public getData(): string
abstract public getType(): int
abstract public __toString(): string
}

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Типы возвращаемых значений для методов объявлены как предварительные в PHP 8.0 и новее, что вызывает уведомления об устаревании в коде, который реализует этот интерфейс без объявления соответствующих типов возвращаемых значений. Атрибут #[ReturnTypeWillChange] может быть добавлен, чтобы заглушить уведомление об устаревании.

Содержание

  • 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(): 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(): 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(): 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, но также может использоваться в качестве параметра, возвращаемого значения или типа свойства в классах пользовательского пространства.

Обзор классов

class MongoDB\BSON\Decimal128Interface {
/* Методы */
abstract public __toString(): string
}

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Типы возвращаемых значений для методов объявлены как предварительные в PHP 8.0 и новее, что вызывает уведомления об устаревании в коде, который реализует этот интерфейс без объявления соответствующих типов возвращаемых значений. Атрибут #[ReturnTypeWillChange] может быть добавлен, чтобы заглушить уведомление об устаревании.

Содержание

  • 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(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление Decimal128Interface.

Смотрите также

  • MongoDB\BSON\Decimal128::__toString() - Возвращает строковое представление Decimal128


Интерфейс MongoDB\BSON\JavascriptInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован MongoDB\BSON\Javascript, но также может использоваться в качестве параметра, возвращаемого значения или типа свойства в классах пользовательского пространства.

Обзор классов

class MongoDB\BSON\JavascriptInterface {
/* Методы */
abstract public getCode(): string
abstract public getScope(): ?object
abstract public __toString(): string
}

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Типы возвращаемых значений для методов объявлены как предварительные в PHP 8.0 и новее, что вызывает уведомления об устаревании в коде, который реализует этот интерфейс без объявления соответствующих типов возвращаемых значений. Атрибут #[ReturnTypeWillChange] может быть добавлен, чтобы заглушить уведомление об устаревании.

Содержание

  • 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(): 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(): ?object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает области видимости документа 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(): 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\Javascript, но также может использоваться в качестве параметра, возвращаемого значения или типа свойства в классах пользовательского пространства.

Обзор классов

class MongoDB\BSON\MaxKeyInterface {
}

Этот интерфейс не имеет методов.


Интерфейс MongoDB\BSON\MinKeyInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован MongoDB\BSON\Javascript, но также может использоваться в качестве параметра, возвращаемого значения или типа свойства в классах пользовательского пространства.

Обзор классов

class MongoDB\BSON\MinKeyInterface {
}

Этот интерфейс не имеет методов.


Интерфейс MongoDB\BSON\ObjectIdInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован с помощью MongoDB\BSON\ObjectId, но также может быть использован для в качестве параметра, возвращаемого значения или типа свойства в классах пользовательского пространства.

Обзор классов

class MongoDB\BSON\ObjectIdInterface {
/* Методы */
abstract public getTimestamp(): int
abstract public __toString(): string
}

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Типы возвращаемых значений для методов объявлены как предварительные в PHP 8.0 и новее, что вызывает уведомления об устаревании в коде, который реализует этот интерфейс без объявления соответствующих типов возвращаемых значений. Атрибут #[ReturnTypeWillChange] может быть добавлен, чтобы заглушить уведомление об устаревании.

Содержание

  • 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(): 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(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает шестнадцатеричное представление ObjectIdInterface.

Смотрите также

  • MongoDB\BSON\ObjectId::__toString() - Возвращает шестнадцатеричное представление ObjectId


Интерфейс MongoDB\BSON\RegexInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован MongoDB\BSON\Regex, в качестве параметра, возвращаемого значения или типа свойства в классах пользовательского пространства.

Обзор классов

class MongoDB\BSON\RegexInterface {
/* Методы */
abstract public getFlags(): string
abstract public getPattern(): string
abstract public __toString(): string
}

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Типы возвращаемых значений для методов объявлены как предварительные в PHP 8.0 и новее, что вызывает уведомления об устаревании в коде, который реализует этот интерфейс без объявления соответствующих типов возвращаемых значений. Атрибут #[ReturnTypeWillChange] может быть добавлен, чтобы заглушить уведомление об устаревании.

Содержание

  • 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(): 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(): 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(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление RegexInterface.

Смотрите также

  • MongoDB\BSON\Regex::__toString() - Возвращает строковое представление Regex


Интерфейс MongoDB\BSON\TimestampInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован с помощью MongoDB\BSON\Timestamp, но также может использоваться в качестве параметра, возвращаемого значения или типа свойства в классах пользовательского пространства.

Обзор классов

class MongoDB\BSON\TimestampInterface {
/* Методы */
abstract public getIncrement(): int
abstract public getTimestamp(): int
abstract public __toString(): string
}

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Типы возвращаемых значений для методов объявлены как предварительные в PHP 8.0 и новее, что вызывает уведомления об устаревании в коде, который реализует этот интерфейс без объявления соответствующих типов возвращаемых значений. Атрибут #[ReturnTypeWillChange] может быть добавлен, чтобы заглушить уведомление об устаревании.

Содержание

  • 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(): 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(): 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(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление TimestampInterface.

Смотрите также

  • MongoDB\BSON\Timestamp::__toString() - Возвращает строковое представление Timestamp


Интерфейс MongoDB\BSON\UTCDateTimeInterface

(mongodb >=1.3.0)

Введение

Этот интерфейс реализован с помощью MongoDB\BSON\UTCDateTime, но также может использоваться в качестве параметра, возвращаемого значения или типа свойства в классах пользовательского пространства.

Обзор классов

class MongoDB\BSON\UTCDateTimeInterface {
/* Методы */
abstract public toDateTime(): DateTime
abstract public __toString(): string
}

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Типы возвращаемых значений для методов объявлены как предварительные в PHP 8.0 и новее, что вызывает уведомления об устаревании в коде, который реализует этот интерфейс без объявления соответствующих типов возвращаемых значений. Атрибут #[ReturnTypeWillChange] может быть добавлен, чтобы заглушить уведомление об устаревании.

Содержание

  • 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(): 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(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление UTCDateTimeInterface.

Смотрите также

  • MongoDB\BSON\UTCDateTime::__toString() - Возвращает строковое представление UTCDateTime


Класс MongoDB\BSON\DBPointer (устаревший)

(mongodb >=1.4.0)

Введение

Тип BSON для типа "DBPointer". Этот тип BSON устарел, и этот класс не может быть создан. Он будет создан из типа BSON DBPointer во время преобразования BSON в PHP, а также при преобразовании обратно в BSON при хранении документов в базе данных.

Обзор классов

class MongoDB\BSON\DBPointer implements MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Методы */
final private __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.12.0 | Реализует интерфейс Stringable для PHP 8.0+.

Содержание

  • 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()

Объекты 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(): 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(): 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(): 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 $data): void

Список параметров

data

Сериализированный MongoDB\BSON\DBPointer.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\BSON\DBPointer::serialize() - Сериализует DBPointer
  • unserialize() - Создаёт PHP-значение из хранимого представления
  • Сериализация объектов


Класс MongoDB\BSON\Int64

(mongodb >=1.5.0)

Введение

Тип BSON для 64-разрядного целого числа. При декодировании BSON в данные PHP этот класс используется, когда 64-битное целое число не может быть представлено как целое число PHP на 32-битных платформах. Эти объекты поддерживают перегруженные арифметические, побитовые операторы и операторы сравнения.

При работе с необработанными BSON данными с помощью классов MongoDB\BSON\Document, MongoDB\BSON\PackedArray и MongoDB\BSON\Iterator, любое 64-битное целое число будет возвращено как экземпляр этого класса, независимо от платформы и того, может ли значение быть представлено как целое число PHP. Это гарантирует, что значения могут быть переданы по кругу без изменения типа.

Во время кодирования BSON объекты этого класса будут преобразованы обратно в 64-битный целочисленный тип, даже если значение помещается в 32-битное целое число. Это позволяет явно хранить значения как 64-битные целые числа в BSON.

Обзор классов

final class MongoDB\BSON\Int64 implements MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Методы */
final public __construct(int|string $value)
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.16.0 | Теперь класс может быть инициализирован на всех платформах. Добавлена поддержка перегруженных арифметических, побитовых операторов и операторов сравнения.
PECL mongodb 1.12.0 | Реализует интерфейс Stringable для PHP 8.0+.

Содержание

  • 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 public MongoDB\BSON\Int64::__construct(int|string $value)

Создаёт новый экземпляр MongoDB\BSON\Int64 для заданного целого числа.

Список параметров

value (int|string)

Значение, присваиваемое экземпляру Int64. Это значение может быть предоставлено как целое число (int) или строка (string), последнее требуется на 32-битных платформах для представления 64-битных значений.

Список изменений

Версия | Описание
PECL mongodb 1.16.0 | Метод стал доступен для поддержки создания экземпляров Int64 при работе с необработанным BSON.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException, если строка value не может быть разобрана как 64-битное целое число.

Смотрите также

  • » Типы 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(): 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(): 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(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление Int64.

Примеры

Пример #1 Пример использования MongoDB\BSON\Int64::__toString()

<?php

$int64 = new MongoDB\BSON\Int64('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 $data): void

Список параметров

data

Сериализованный 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 при хранении документов в базе данных.

Обзор классов

class MongoDB\BSON\Symbol implements MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Методы */
final private __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.12.0 | Реализует интерфейс Stringable для PHP 8.0+.

Содержание

  • 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()

Объекты 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(): 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(): 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(): 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 $data): void

Список параметров

data

Сериализованный 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 class MongoDB\BSON\Undefined implements MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Методы */
final private __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Список изменений

Версия | Описание
PECL mongodb 1.12.0 | Реализует интерфейс Stringable для PHP 8.0+.

Содержание

  • 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()

Объекты 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(): 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(): 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(): 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 $data): void

Список параметров

data

Сериализованный 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\CommandFailedEvent::getServerConnectionId — Возвращает идентификатор соединения с сервером для команды
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId — Возвращает идентификатор службы балансировщика нагрузки для команды
  • 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\CommandStartedEvent::getServerConnectionId — Возвращает идентификатор соединения с сервером для команды
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId — Возвращает идентификатор службы балансировщика нагрузки для команды
  • 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\CommandSucceededEvent::getServerConnectionId — Возвращает идентификатор соединения с сервером для команды
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId — Возвращает идентификатор службы балансировщика нагрузки для команды
  • MongoDB\Driver\Monitoring\ServerChangedEvent — Класс MongoDB\Driver\Monitoring\ServerChangedEvent
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getHost — Возвращает имя хоста сервера
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription — Возвращает новое описание сервера
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort — Возвращает порт, на котором прослушивается сервер
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription — Возвращает предыдущее описание сервера
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId — Возвращает идентификатор топологии, связанный с этим сервером
  • MongoDB\Driver\Monitoring\ServerClosedEvent — Класс MongoDB\Driver\Monitoring\ServerClosedEvent
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getHost — Возвращает имя хоста сервера
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort — Возвращает порт, на котором прослушивается сервер
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId — Возвращает идентификатор топологии, связанный с этим сервером
  • MongoDB\Driver\Monitoring\ServerOpeningEvent — Класс MongoDB\Driver\Monitoring\ServerOpeningEvent
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost — Возвращает имя хоста сервера
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort — Возвращает порт, на котором прослушивается сервер
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId — Returns the topology ID associated with this server
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent — Класс MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros — Возвращает продолжительность heartbeat в микросекундах
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError — Возвращает исключение, связанное с неудачным выполнением heartbeat
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost — Возвращает имя хоста сервера
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort — Возвращает порт, на котором прослушивается сервер
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited — Возвращает, использовался ли в heartbeat потоковый протокол
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent — Класс MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost — Возвращает имя хоста сервера
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort — Возвращает порт, на котором прослушивается сервер
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited — Возвращает, использовался ли в heartbeat потоковый протокол
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent — Класс MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros — Возвращает продолжительность heartbeat в микросекундах
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost — Возвращает имя хоста сервера
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort — Возвращает порт, на котором прослушивается сервер
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply — Возвращает документ ответа heartbeat
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited — Возвращает, использовался ли в heartbeat потоковый протокол
  • MongoDB\Driver\Monitoring\TopologyChangedEvent — Класс MongoDB\Driver\Monitoring\TopologyChangedEvent
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription — Возвращает новое описание топологии
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription — Возвращает предыдущее описание топологии
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId — Возвращает идентификатор топологии
  • MongoDB\Driver\Monitoring\TopologyClosedEvent — Класс MongoDB\Driver\Monitoring\TopologyClosedEvent
    • MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId — Возвращает идентификатор топологии
  • MongoDB\Driver\Monitoring\TopologyOpeningEvent — Класс MongoDB\Driver\Monitoring\TopologyOpeningEvent
    • MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId — Возвращает идентификатор топологии
  • 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\LogSubscriber — The MongoDB\Driver\Monitoring\LogSubscriber interface
    • MongoDB\Driver\Monitoring\LogSubscriber::log — Notification method for a log message
  • MongoDB\Driver\Monitoring\SDAMSubscriber — Интерфейс MongoDB\Driver\Monitoring\SDAMSubscriber
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged — Метод уведомления об изменении описания сервера
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed — Метод уведомления о закрытии сервера
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed — Метод уведомления о неудачном heartbeat сервера
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted — Метод уведомления о запущенном heartbeat сервера
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded — Метод уведомления об успешном heartbeat сервера
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening — Метод уведомления об открытии сервера
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged — Метод уведомления об изменении описания топологии
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed — Метод уведомления о закрытии топологии
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening — Метод уведомления об открытии топологии
  • 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 уже зарегистрирован глобально, функция отработает без результата. Если subscriber также зарегистрирован с одним или несколькими менеджерами, он все равно получит уведомление один раз о каждом событии для каждого менеджера.

Список параметров

subscriber (MongoDB\Driver\Monitoring\Subscriber)

Подписчик событий мониторинга для глобальной регистрации.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\removeSubscriber() - Отменяет глобальную регистрацию подписчика на событие мониторинга
  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager
  • Мониторинг производительности приложения (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 ещё не зарегистрирован глобально, функция отработает без результата.

Список параметров

subscriber (MongoDB\Driver\Monitoring\Subscriber)

Подписчик на событие мониторинга для глобальной отмены регистрации.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Manager::removeSubscriber() - Отменяет регистрацию подписчика на событие мониторинга в данном объекте Manager
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Класс MongoDB\Driver\Monitoring\CommandFailedEvent

(mongodb >=1.3.0)

Введение

Класс MongoDB\Driver\Monitoring\CommandFailedEvent содержит информацию о неудачной команде.

Обзор классов

final class MongoDB\Driver\Monitoring\CommandFailedEvent {
/* Методы */
final public getCommandName(): string
final public getDurationMicros(): int
final public getError(): Exception
final public getOperationId(): string
final public getReply(): object
final public getRequestId(): string
final public getServer(): MongoDB\Driver\Server
final public getServerConnectionId(): ?int
final public getServiceId(): ?MongoDB\BSON\ObjectId
}

Содержание

  • 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::getServerConnectionId — Возвращает идентификатор соединения с сервером для команды
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId — Возвращает идентификатор службы балансировщика нагрузки для команды


Возвращает имя команды

  • « 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(): 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(): 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(): 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(): 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(): 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(): 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\CommandFailedEvent::getServerConnectionId »
  • 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(): 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\CommandFailedEvent::getServer
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Возвращает идентификатор соединения с сервером для команды

MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId

(mongodb >=1.14.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId — Возвращает идентификатор соединения с сервером для команды

Описание

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId(): ?int

Возвращает идентификатор соединения с сервером для команды. Идентификатор подключения к серверу отличается от сервера (т.е. MongoDB\Driver\Monitoring\CommandFailedEvent::getServer()) и возвращается в поле "connectionId" ответа команды hello в MongoDB 4.2+.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор соединения с сервером или null, если он недоступен.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает идентификатор службы балансировщика нагрузки для команды

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId
  • MongoDB\Driver\Monitoring\CommandStartedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Возвращает идентификатор службы балансировщика нагрузки для команды

MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId

(mongodb >=1.11.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId — Возвращает идентификатор службы балансировщика нагрузки для команды

Описание

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId(): ?MongoDB\BSON\ObjectId

Если драйвер подключён к кластеру MongoDB через балансировщик нагрузки, идентификатор службы соответствует полю serviceId в ответе на команду hello.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор службы балансировщика нагрузки или null, если драйвер не подключён к балансировщику нагрузки.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Класс MongoDB\Driver\Monitoring\CommandStartedEvent

(mongodb >=1.3.0)

Введение

Класс MongoDB\Driver\Monitoring\CommandStartedEvent содержит информацию о запущенной команды.

Обзор классов

final class MongoDB\Driver\Monitoring\CommandStartedEvent {
/* Методы */
final public getCommand(): object
final public getCommandName(): string
final public getDatabaseName(): string
final public getOperationId(): string
final public getRequestId(): string
final public getServer(): MongoDB\Driver\Server
final public getServerConnectionId(): ?int
final public getServiceId(): ?MongoDB\BSON\ObjectId
}

Содержание

  • 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::getServerConnectionId — Возвращает идентификатор соединения с сервером для команды
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId — Возвращает идентификатор службы балансировщика нагрузки для команды


Возвращает документ команды

  • « 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(): 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(): 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(): 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(): 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(): 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\CommandStartedEvent::getServerConnectionId »
  • 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(): 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\CommandStartedEvent::getServer
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Возвращает идентификатор соединения с сервером для команды

MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId

(mongodb >=1.14.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId — Возвращает идентификатор соединения с сервером для команды

Описание

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId(): ?int

Возвращает идентификатор соединения с сервером для команды. Идентификатор соединения с сервером отличается от сервера (т.е. MongoDB\Driver\Monitoring\CommandStartedEvent::getServer()) и возвращается в поле "connectionId" из ответа команды hello в MongoDB 4.2+.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор соединения с сервером или null, если он недоступен.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает идентификатор службы балансировщика нагрузки для команды

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId
  • MongoDB\Driver\Monitoring\CommandSucceededEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Возвращает идентификатор службы балансировщика нагрузки для команды

MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId

(mongodb >=1.11.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId — Возвращает идентификатор службы балансировщика нагрузки для команды

Описание

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId(): ?MongoDB\BSON\ObjectId

Если драйвер подключён к кластеру MongoDB через балансировщик нагрузки, идентификатор службы соответствует полю serviceId в ответе на команду hello.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор службы балансировщика нагрузки или null, если драйвер не подключён к балансировщику нагрузки.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Класс MongoDB\Driver\Monitoring\CommandSucceededEvent

(mongodb >=1.3.0)

Введение

Класс MongoDB\Driver\Monitoring\CommandSucceededEvent содержит информацию об успешной команде.

Обзор классов

final class MongoDB\Driver\Monitoring\CommandSucceededEvent {
/* Методы */
final public getCommandName(): string
final public getDurationMicros(): int
final public getOperationId(): string
final public getReply(): object
final public getRequestId(): string
final public getServer(): MongoDB\Driver\Server
final public getServerConnectionId(): ?int
final public getServiceId(): ?MongoDB\BSON\ObjectId
}

Содержание

  • 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::getServerConnectionId — Возвращает идентификатор соединения с сервером для команды
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId — Возвращает идентификатор службы балансировщика нагрузки для команды


Возвращает имя команды

  • « 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(): 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(): 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(): 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(): object

Документ ответа будет преобразован из BSON в PHP с использованием правил десериализации (например, документы BSON будут преобразованы в stdClass).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает документ ответа команды в виде объекта stdClass.

Ошибки

  • При ошибке парсинга аргумента бросает исключение 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(): 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\CommandSucceededEvent::getServerConnectionId »
  • 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(): 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)


Возвращает идентификатор соединения с сервером для команды

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Возвращает идентификатор соединения с сервером для команды

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId

(mongodb >=1.14.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId — Возвращает идентификатор соединения с сервером для команды

Описание

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId(): ?int

Возвращает идентификатор соединения с сервером для команды. Идентификатор соединения с сервером отличается от сервера (т.е. MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer()) и возвращается в поле "connectionId" из ответа команды hello в MongoDB 4.2+.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор соединения с сервером или null, если он недоступен.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает идентификатор службы балансировщика нагрузки для команды

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId
  • MongoDB\Driver\Monitoring\ServerChangedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Возвращает идентификатор службы балансировщика нагрузки для команды

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId

(mongodb >=1.11.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId — Возвращает идентификатор службы балансировщика нагрузки для команды

Описание

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId(): ?MongoDB\BSON\ObjectId

Если драйвер подключён к кластеру MongoDB через балансировщик нагрузки, идентификатор службы соответствует полю serviceId в ответе на команду hello.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор службы балансировщика нагрузки или null, если драйвер не подключён к балансировщику нагрузки.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Класс MongoDB\Driver\Monitoring\ServerChangedEvent

(mongodb >=1.13.0)

Введение

Класс MongoDB\Driver\Monitoring\ServerChangedEvent инкапсулирует информацию об изменении описания сервера.

Обзор классов

final class MongoDB\Driver\Monitoring\ServerChangedEvent {
/* Методы */
final public getHost(): string
final public getNewDescription(): MongoDB\Driver\ServerDescription
final public getPort(): int
final public getPreviousDescription(): MongoDB\Driver\ServerDescription
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Содержание

  • MongoDB\Driver\Monitoring\ServerChangedEvent::getHost — Возвращает имя хоста сервера
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription — Возвращает новое описание сервера
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort — Возвращает порт, на котором прослушивается сервер
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription — Возвращает предыдущее описание сервера
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId — Возвращает идентификатор топологии, связанный с этим сервером


Возвращает имя хоста сервера

  • « MongoDB\Driver\Monitoring\ServerChangedEvent
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Возвращает имя хоста сервера

MongoDB\Driver\Monitoring\ServerChangedEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getHost — Возвращает имя хоста сервера

Описание

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getHost(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя хоста сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает новое описание сервера

  • « MongoDB\Driver\Monitoring\ServerChangedEvent::getHost
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Возвращает новое описание сервера

MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription — Возвращает новое описание сервера

Описание

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription(): MongoDB\Driver\ServerDescription

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает новое описание (MongoDB\Driver\ServerDescription) сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает порт, на котором прослушивается сервер

  • « MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Возвращает порт, на котором прослушивается сервер

MongoDB\Driver\Monitoring\ServerChangedEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getPort — Возвращает порт, на котором прослушивается сервер

Описание

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getPort(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает порт, на котором прослушивается сервер.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает предыдущее описание сервера

  • « MongoDB\Driver\Monitoring\ServerChangedEvent::getPort
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Возвращает предыдущее описание сервера

MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription — Возвращает предыдущее описание сервера

Описание

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription(): MongoDB\Driver\ServerDescription

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает предыдущее описание (MongoDB\Driver\ServerDescription) сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает идентификатор топологии, связанный с этим сервером

  • « MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription
  • MongoDB\Driver\Monitoring\ServerClosedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Возвращает идентификатор топологии, связанный с этим сервером

MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId — Возвращает идентификатор топологии, связанный с этим сервером

Описание

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId(): MongoDB\BSON\ObjectId

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор топологии.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Класс MongoDB\Driver\Monitoring\ServerClosedEvent

(mongodb >=1.13.0)

Введение

Класс MongoDB\Driver\Monitoring\ServerClosedEvent инкапсулирует информацию о закрытом сервере.

Обзор классов

final class MongoDB\Driver\Monitoring\ServerClosedEvent {
/* Методы */
final public getHost(): string
final public getPort(): int
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Содержание

  • MongoDB\Driver\Monitoring\ServerClosedEvent::getHost — Возвращает имя хоста сервера
  • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort — Возвращает порт, на котором прослушивается сервер
  • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId — Возвращает идентификатор топологии, связанный с этим сервером


Возвращает имя хоста сервера

  • « MongoDB\Driver\Monitoring\ServerClosedEvent
  • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerClosedEvent
  • Возвращает имя хоста сервера

MongoDB\Driver\Monitoring\ServerClosedEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerClosedEvent::getHost — Возвращает имя хоста сервера

Описание

final public MongoDB\Driver\Monitoring\ServerClosedEvent::getHost(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя хоста сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает порт, на котором прослушивается сервер

  • « MongoDB\Driver\Monitoring\ServerClosedEvent::getHost
  • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerClosedEvent
  • Возвращает порт, на котором прослушивается сервер

MongoDB\Driver\Monitoring\ServerClosedEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerClosedEvent::getPort — Возвращает порт, на котором прослушивается сервер

Описание

final public MongoDB\Driver\Monitoring\ServerClosedEvent::getPort(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает порт, на котором прослушивается сервер.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает идентификатор топологии, связанный с этим сервером

  • « MongoDB\Driver\Monitoring\ServerClosedEvent::getPort
  • MongoDB\Driver\Monitoring\ServerOpeningEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerClosedEvent
  • Возвращает идентификатор топологии, связанный с этим сервером

MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId — Возвращает идентификатор топологии, связанный с этим сервером

Описание

final public MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId(): MongoDB\BSON\ObjectId

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор топологии.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Класс MongoDB\Driver\Monitoring\ServerOpeningEvent

(mongodb >=1.13.0)

Введение

Класс MongoDB\Driver\Monitoring\ServerOpeningEvent инкапсулирует информацию об открытом сервере.

Обзор классов

final class MongoDB\Driver\Monitoring\ServerOpeningEvent {
/* Методы */
final public getHost(): string
final public getPort(): int
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Содержание

  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost — Возвращает имя хоста сервера
  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort — Возвращает порт, на котором прослушивается сервер
  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId — Returns the topology ID associated with this server


Возвращает имя хоста сервера

  • « MongoDB\Driver\Monitoring\ServerOpeningEvent
  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerOpeningEvent
  • Возвращает имя хоста сервера

MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost — Возвращает имя хоста сервера

Описание

final public MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя хоста сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает порт, на котором прослушивается сервер

  • « MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost
  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerOpeningEvent
  • Возвращает порт, на котором прослушивается сервер

MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort — Возвращает порт, на котором прослушивается сервер

Описание

final public MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает порт, на котором прослушивается сервер.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Returns the topology ID associated with this server

  • « MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerOpeningEvent
  • Returns the topology ID associated with this server

MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId — Returns the topology ID associated with this server

Описание

final public MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId(): MongoDB\BSON\ObjectId

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the topology ID.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Класс MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent

(mongodb >=1.13.0)

Введение

Класс MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent инкапсулирует информацию о неудачном heartbeat сервера.

Обзор классов

final class MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent {
/* Методы */
final public getDurationMicros(): int
final public getError(): Exception
final public getHost(): string
final public getPort(): int
final public isAwaited(): bool
}

Содержание

  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros — Возвращает продолжительность heartbeat в микросекундах
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError — Возвращает исключение, связанное с неудачным выполнением heartbeat
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost — Возвращает имя хоста сервера
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort — Возвращает порт, на котором прослушивается сервер
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited — Возвращает, использовался ли в heartbeat потоковый протокол


Возвращает продолжительность heartbeat в микросекундах

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Возвращает продолжительность heartbeat в микросекундах

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros — Возвращает продолжительность heartbeat в микросекундах

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros(): int

Продолжительность heartbeat - это расчётное значение, которое включает в себя время отправки сообщения и получения ответа от сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает продолжительность heartbeat в микросекундах.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает исключение, связанное с неудачным выполнением heartbeat

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Возвращает исключение, связанное с неудачным выполнением heartbeat

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError — Возвращает исключение, связанное с неудачным выполнением heartbeat

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError(): Exception

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает исключение (Exception), связанное с неудачным выполнением heartbeat.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает имя хоста сервера

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Возвращает имя хоста сервера

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost — Возвращает имя хоста сервера

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя хоста сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает порт, на котором прослушивается сервер

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Возвращает порт, на котором прослушивается сервер

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort — Возвращает порт, на котором прослушивается сервер

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает порт, на котором прослушивается сервер.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает, использовался ли в heartbeat потоковый протокол

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Возвращает, использовался ли в heartbeat потоковый протокол

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited — Возвращает, использовался ли в heartbeat потоковый протокол

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited(): bool

Возвращает, использовался ли в heartbeat потоковый протокол. Драйвер PHP не использует потоковый протокол для мониторинга, поэтому этот метод всегда будет возвращать false.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает false.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Класс MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent

(mongodb >=1.13.0)

Введение

Класс MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent инкапсулирует информацию о запущенном heartbeat сервера.

Обзор классов

final class MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent {
/* Методы */
final public getHost(): string
final public getPort(): int
final public isAwaited(): bool
}

Содержание

  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost — Возвращает имя хоста сервера
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort — Возвращает порт, на котором прослушивается сервер
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited — Возвращает, использовался ли в heartbeat потоковый протокол


Возвращает имя хоста сервера

  • « MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • Возвращает имя хоста сервера

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost — Возвращает имя хоста сервера

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя хоста сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает порт, на котором прослушивается сервер

  • « MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • Возвращает порт, на котором прослушивается сервер

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort — Возвращает порт, на котором прослушивается сервер

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает порт, на котором прослушивается сервер.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает, использовался ли в heartbeat потоковый протокол

  • « MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • Возвращает, использовался ли в heartbeat потоковый протокол

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited — Возвращает, использовался ли в heartbeat потоковый протокол

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited(): bool

Возвращает, использовался ли в heartbeat потоковый протокол. Драйвер PHP не использует потоковый протокол для мониторинга, поэтому этот метод всегда будет возвращать false.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает false.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Класс MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent

(mongodb >=1.13.0)

Введение

Класс MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent инкапсулирует информацию об успешном heartbeat сервера.

Обзор классов

final class MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent {
/* Методы */
final public getDurationMicros(): int
final public getHost(): string
final public getPort(): int
final public getReply(): object
final public isAwaited(): bool
}

Содержание

  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros — Возвращает продолжительность heartbeat в микросекундах
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost — Возвращает имя хоста сервера
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort — Возвращает порт, на котором прослушивается сервер
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply — Возвращает документ ответа heartbeat
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited — Возвращает, использовался ли в heartbeat потоковый протокол


Возвращает продолжительность heartbeat в микросекундах

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Возвращает продолжительность heartbeat в микросекундах

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros — Возвращает продолжительность heartbeat в микросекундах

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros(): int

Продолжительность heartbeat - это расчётное значение, которое включает в себя время отправки сообщения и получения ответа от сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает продолжительность heartbeat в микросекундах.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает имя хоста сервера

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Возвращает имя хоста сервера

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost — Возвращает имя хоста сервера

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя хоста сервера.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает порт, на котором прослушивается сервер

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Возвращает порт, на котором прослушивается сервер

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort — Возвращает порт, на котором прослушивается сервер

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает порт, на котором прослушивается сервер.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает документ ответа heartbeat

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Возвращает документ ответа heartbeat

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply — Возвращает документ ответа heartbeat

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply(): object

Документ ответа будет преобразован из BSON в PHP с использованием правил десериализации по умолчанию (например, документы BSON будут преобразованы в stdClass).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает документ ответа heartbeat в виде объекта stdClass.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • Мониторинг производительности приложения (Application Performance Monitoring или APM)
  • Постоянные данные


Возвращает, использовался ли в heartbeat потоковый протокол

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply
  • MongoDB\Driver\Monitoring\TopologyChangedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Возвращает, использовался ли в heartbeat потоковый протокол

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited — Возвращает, использовался ли в heartbeat потоковый протокол

Описание

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited(): bool

Возвращает, использовался ли в heartbeat потоковый протокол. Драйвер PHP не использует потоковый протокол для мониторинга, поэтому этот метод всегда будет возвращать false.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает false.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Класс MongoDB\Driver\Monitoring\TopologyChangedEvent

(mongodb >=1.13.0)

Введение

Класс MongoDB\Driver\Monitoring\TopologyChangedEvent инкапсулирует информацию об изменённом описании топологии.

Обзор классов

final class MongoDB\Driver\Monitoring\TopologyChangedEvent {
/* Методы */
final public getNewDescription(): MongoDB\Driver\TopologyDescription
final public getPreviousDescription(): MongoDB\Driver\TopologyDescription
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Содержание

  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription — Возвращает новое описание топологии
  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription — Возвращает предыдущее описание топологии
  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId — Возвращает идентификатор топологии


Возвращает новое описание топологии

  • « MongoDB\Driver\Monitoring\TopologyChangedEvent
  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyChangedEvent
  • Возвращает новое описание топологии

MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription — Возвращает новое описание топологии

Описание

final public MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription(): MongoDB\Driver\TopologyDescription

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает новое описание (MongoDB\Driver\TopologyDescription) топологии.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает предыдущее описание топологии

  • « MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription
  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyChangedEvent
  • Возвращает предыдущее описание топологии

MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription — Возвращает предыдущее описание топологии

Описание

final public MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription(): MongoDB\Driver\TopologyDescription

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает предыдущее описание (MongoDB\Driver\TopologyDescription) топологии.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Возвращает идентификатор топологии

  • « MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription
  • MongoDB\Driver\Monitoring\TopologyClosedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyChangedEvent
  • Возвращает идентификатор топологии

MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId — Возвращает идентификатор топологии

Описание

final public MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId(): MongoDB\BSON\ObjectId

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор топологии.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Класс MongoDB\Driver\Monitoring\TopologyClosedEvent

(mongodb >=1.13.0)

Введение

Класс MongoDB\Driver\Monitoring\TopologyClosedEvent инкапсулирует информацию о закрытой топологии.

Обзор классов

final class MongoDB\Driver\Monitoring\TopologyClosedEvent {
/* Методы */
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Содержание

  • MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId — Возвращает идентификатор топологии


Возвращает идентификатор топологии

  • « MongoDB\Driver\Monitoring\TopologyClosedEvent
  • MongoDB\Driver\Monitoring\TopologyOpeningEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyClosedEvent
  • Возвращает идентификатор топологии

MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId — Возвращает идентификатор топологии

Описание

final public MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId(): MongoDB\BSON\ObjectId

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор топологии.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Класс MongoDB\Driver\Monitoring\TopologyOpeningEvent

(mongodb >=1.13.0)

Введение

Класс MongoDB\Driver\Monitoring\TopologyOpeningEvent инкапсулирует информацию об открытой топологии.

Обзор классов

final class MongoDB\Driver\Monitoring\TopologyOpeningEvent {
/* Методы */
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Содержание

  • MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId — Возвращает идентификатор топологии


Возвращает идентификатор топологии

  • « MongoDB\Driver\Monitoring\TopologyOpeningEvent
  • MongoDB\Driver\Monitoring\CommandSubscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyOpeningEvent
  • Возвращает идентификатор топологии

MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId — Возвращает идентификатор топологии

Описание

final public MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId(): MongoDB\BSON\ObjectId

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор топологии.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Интерфейс The MongoDB\Driver\Monitoring\CommandSubscriber

(mongodb >=1.3.0)

Введение

Классы могут реализовать этот интерфейс для регистрации подписчика событий, который уведомляется о каждом, успешном или неудачном событии команды. Для подробной информации смотрите Мониторинг производительности приложения (Application Performance Monitoring или APM).

Обзор интерфейсов

class 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
}

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Типы возвращаемых значений для методов объявлены как предварительные в PHP 8.0 и новее, что вызывает уведомления об устаревании в коде, который реализует этот интерфейс без объявления соответствующих типов возвращаемых значений. Атрибут #[ReturnTypeWillChange] может быть добавлен, чтобы заглушить уведомление об устаревании.

Содержание

  • 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

Если подписчик зарегистрирован, драйвер вызовет этот метод в случае возникновения ошибки команды.

Список параметров

event (MongoDB\Driver\Monitoring\CommandFailedEvent)

Объект события, содержащий информацию о неудачной команде.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager
  • Мониторинг производительности приложения (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

Если подписчик зарегистрирован, драйвер вызовет этот метод при запуске команды.

Список параметров

event (MongoDB\Driver\Monitoring\CommandStartedEvent)

Объект события, содержащий информацию о запущенной команде.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


Метод уведомления об успешной команде

  • « MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted
  • MongoDB\Driver\Monitoring\LogSubscriber »
  • 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

Если подписчик зарегистрирован, драйвер вызовет этот метод в случае успешного выполнения команды.

Список параметров

event (MongoDB\Driver\Monitoring\CommandSucceededEvent)

Объект события, содержащий информацию об успешной команде.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager
  • Мониторинг производительности приложения (Application Performance Monitoring или APM)


The MongoDB\Driver\Monitoring\LogSubscriber interface

(mongodb >=1.17.0)

Введение

Classes implementing this interface may be registered as a subscriber and receive log messages from the driver. This is similar to stream-based debug logging (i.e. mongodb.debug) except that trace-level log messages are not received.

As with stream-based logging, it is only possible to register a logger globally using MongoDB\Driver\Monitoring\addSubscriber(). The driver is not able to distinguish log messages for individual MongoDB\Driver\Manager objects.

Обзор интерфейсов

class MongoDB\Driver\Monitoring\LogSubscriber implements MongoDB\Driver\Monitoring\Subscriber {
/* Константы */
const int LEVEL_ERROR = 0;
const int LEVEL_CRITICAL = 1;
const int LEVEL_WARNING = 2;
const int LEVEL_MESSAGE = 3;
const int LEVEL_INFO = 4;
const int LEVEL_DEBUG = 5;
/* Методы */
abstract public log(int $level, string $domain, string $message): void
}

Предопределённые константы

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_ERROR

Error log level. An error condition that the driver is unable to report through its API. This is the most severe log level in the driver.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_CRITICAL

Critical log level. An error condition with slightly less severity. This constant exists for consistency with libmongoc; however, the driver is unlikely to use it in practice.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_WARNING

Warning log level. Indicates a situation where undesirable application behavior may occur.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_MESSAGE

Message or notice log level. Indicates an event that is unusual but not problematic.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_INFO

Info log level. High-level information about normal driver behavior.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_DEBUG

Debug log level. Detailed information that may be helpful when debugging an application.

Содержание

  • MongoDB\Driver\Monitoring\LogSubscriber::log — Notification method for a log message


Notification method for a log message

  • « MongoDB\Driver\Monitoring\LogSubscriber
  • MongoDB\Driver\Monitoring\SDAMSubscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\LogSubscriber
  • Notification method for a log message

MongoDB\Driver\Monitoring\LogSubscriber::log

(mongodb >=1.17.0)

MongoDB\Driver\Monitoring\LogSubscriber::log — Notification method for a log message

Описание

abstract public MongoDB\Driver\Monitoring\LogSubscriber::log(int $level, string $domain, string $message): void

If the subscriber has been registered, the driver will call this method for each logged message.

Список параметров

level

The severity level. This will be one of the interface constants.

domain

The name of the driver component that emitted the log message.

message

The log message.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга


Интерфейс MongoDB\Driver\Monitoring\SDAMSubscriber

(mongodb >=1.13.0)

Введение

Классы могут реализовать этот интерфейс для регистрации подписчика событий, который получает уведомления о различных событиях SDAM. Дополнительную информацию смотрите в руководстве по » Обнаружению и мониторингу серверов и » Мониторингу SDAM.

Обзор интерфейсов

class MongoDB\Driver\Monitoring\SDAMSubscriber implements MongoDB\Driver\Monitoring\Subscriber {
/* Методы */
abstract public serverChanged(MongoDB\Driver\Monitoring\ServerChangedEvent $event): void
abstract public serverClosed(MongoDB\Driver\Monitoring\ServerClosedEvent $event): void
abstract public serverHeartbeatFailed(MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent $event): void
abstract public serverHeartbeatStarted(MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent $event): void
abstract public serverHeartbeatSucceeded(MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent $event): void
abstract public serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event): void
abstract public topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event): void
abstract public topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event): void
abstract public topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event): void
}

Список изменений

Версия | Описание
PECL mongodb 1.15.0 | Типы возвращаемых значений для методов объявлены как предварительные в PHP 8.0 и новее, что вызывает уведомления об устаревании в коде, который реализует этот интерфейс без объявления соответствующих типов возвращаемых значений. Атрибут #[ReturnTypeWillChange] может быть добавлен, чтобы заглушить уведомление об устаревании.

Содержание

  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged — Метод уведомления об изменении описания сервера
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed — Метод уведомления о закрытии сервера
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed — Метод уведомления о неудачном heartbeat сервера
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted — Метод уведомления о запущенном heartbeat сервера
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded — Метод уведомления об успешном heartbeat сервера
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening — Метод уведомления об открытии сервера
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged — Метод уведомления об изменении описания топологии
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed — Метод уведомления о закрытии топологии
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening — Метод уведомления об открытии топологии


Метод уведомления об изменении описания сервера

  • « MongoDB\Driver\Monitoring\SDAMSubscriber
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Метод уведомления об изменении описания сервера

MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged — Метод уведомления об изменении описания сервера

Описание

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged(MongoDB\Driver\Monitoring\ServerChangedEvent $event): void

Если подписчик был зарегистрирован, драйвер будет вызывать этот метод, если описание сервера изменилось.

Список параметров

event (MongoDB\Driver\Monitoring\ServerChangedEvent)

Объект события, содержащий информацию об изменённом описании сервера.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager


Метод уведомления о закрытии сервера

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Метод уведомления о закрытии сервера

MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed — Метод уведомления о закрытии сервера

Описание

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed(MongoDB\Driver\Monitoring\ServerClosedEvent $event): void

Если подписчик был зарегистрирован, драйвер вызовет этот метод, если сервер закрылся.

Список параметров

event (MongoDB\Driver\Monitoring\ServerClosedEvent)

Объект события, содержащий информацию о закрытом сервере.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\ServerClosedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager


Метод уведомления о неудачном heartbeat сервера

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Метод уведомления о неудачном heartbeat сервера

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed — Метод уведомления о неудачном heartbeat сервера

Описание

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed(MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent $event): void

Если подписчик был зарегистрирован, драйвер вызовет этот метод, в случае возникновения ошибки heartbeat сервера (т.е. команды » hello, вызванной через » мониторинг сервера).

Список параметров

event (MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent)

Объект события, содержащий информацию о неработающем heartbeat сервера.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager


Метод уведомления о запущенном heartbeat сервера

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Метод уведомления о запущенном heartbeat сервера

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted — Метод уведомления о запущенном heartbeat сервера

Описание

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted(MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent $event): void

Если подписчик был зарегистрирован, драйвер вызовет этот метод при запуске heartbeat сервера (т.е. команды » hello, вызванной через » мониторинг сервера).

Список параметров

event (MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent)

Объект события, содержащий информацию о запущенном heartbeat сервера.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager


Метод уведомления об успешном heartbeat сервера

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Метод уведомления об успешном heartbeat сервера

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded — Метод уведомления об успешном heartbeat сервера

Описание

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded(MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent $event): void

Если подписчик был зарегистрирован, драйвер вызовет этот метод, в случае успешного выполнения heartbeat сервера (т.е. команды » hello, вызванной через » мониторинг сервера).

Список параметров

event (MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent)

Объект события, содержащий информацию об успешном heartbeat сервера.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager


Метод уведомления об открытии сервера

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Метод уведомления об открытии сервера

MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening — Метод уведомления об открытии сервера

Описание

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event): void

Если подписчик был зарегистрирован, драйвер вызовет этот метод, когда будет открыт сервер.

Список параметров

event (MongoDB\Driver\Monitoring\ServerOpeningEvent)

Объект события, содержащий информацию об открытом сервере.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\ServerOpeningEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager


Метод уведомления об изменении описания топологии

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Метод уведомления об изменении описания топологии

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged — Метод уведомления об изменении описания топологии

Описание

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event): void

Если подписчик был зарегистрирован, драйвер вызовет этот метод, если описание топологии изменится.

Список параметров

event (MongoDB\Driver\Monitoring\TopologyChangedEvent)

Объект события, содержащий информацию об изменённом описании топологии.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\TopologyChangedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager


Метод уведомления о закрытии топологии

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Метод уведомления о закрытии топологии

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed — Метод уведомления о закрытии топологии

Описание

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event): void

Если подписчик был зарегистрирован, драйвер вызовет этот метод, если топология будет закрыта.

Список параметров

event (MongoDB\Driver\Monitoring\TopologyClosedEvent)

Объект события, содержащий информацию о закрытой топологии.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\TopologyClosedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager


Метод уведомления об открытии топологии

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed
  • MongoDB\Driver\Monitoring\Subscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Метод уведомления об открытии топологии

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening — Метод уведомления об открытии топологии

Описание

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event): void

Если подписчик был зарегистрирован, драйвер вызовет этот метод, когда топология будет открыта.

Список параметров

event (MongoDB\Driver\Monitoring\TopologyOpeningEvent)

Объект события, содержащий информацию об открытой топологии.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Monitoring\TopologyOpeningEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Глобальная регистрация подписчика на событие мониторинга
  • MongoDB\Driver\Manager::addSubscriber() - Регистрирует подписчика на событие мониторинга в данном объекте Manager


Интерфейс MongoDB\Driver\Monitoring\Subscriber

(mongodb >=1.3.0)

Введение

Базовый интерфейс для подписчиков событий. Используется как тип параметра в функциях MongoDB\Driver\Monitoring\addSubscriber() и MongoDB\Driver\Monitoring\removeSubscriber(), и не должен реализовываться напрямую.

Обзор интерфейсов

class 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 — Класс MongoDB\Driver\Exception\RuntimeException
    • 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)

Введение

Выбрасывается, когда драйвер не может выполнить аутентификацию с сервером.

Обзор классов

class MongoDB\Driver\Exception\AuthenticationException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс MongoDB\Driver\Exception\BulkWriteException

(mongodb >= 1.0.0)

Введение

Выбрасывается в случае неудачной массовой операции записи.

Обзор классов

class MongoDB\Driver\Exception\BulkWriteException extends MongoDB\Driver\Exception\WriteException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected MongoDB\Driver\WriteResult $writeResult;
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\WriteException::getWriteResult(): MongoDB\Driver\WriteResult
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс MongoDB\Driver\Exception\CommandException

(mongodb >= 1.5.0)

Введение

Выбрасывается, в случае возникновения ошибки команды.

Обзор классов

abstract class MongoDB\Driver\Exception\CommandException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Свойства */
protected object $resultDocument;
/* Наследуемые свойства */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
final public getResultDocument(): object
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): 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(): object

Возвращает результат документа для неудавшейся команды.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Документ результата для неудавшейся команды.

Смотрите также

  • MongoDB\Driver\Manager::executeCommand() - Выполняет команду базы данных


Класс MongoDB\Driver\Exception\ConnectionException

(mongodb >= 1.0.0)

Введение

Базовый класс для исключений, выбрасывающихся, когда драйвер не может установить подключение к базе данных.

Обзор классов

class MongoDB\Driver\Exception\ConnectionException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс MongoDB\Driver\Exception\ConnectionTimeoutException

(mongodb >= 1.0.0)

Введение

Выбрасывается, когда драйверу не удаётся установить соединение с базой данных в течение определённого периода времени (connectTimeoutMS). или выбор сервера не удался (serverSelectionTimeoutMS).

Обзор классов

final class MongoDB\Driver\Exception\ConnectionTimeoutException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс MongoDB\Driver\Exception\EncryptionException

(mongodb >= 1.7.0)

Введение

Базовый класс для исключений бросаемых в процессе шифрования на стороне клиента.

Обзор классов

class MongoDB\Driver\Exception\EncryptionException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Интерфейс MongoDB\Driver\Exception\Exception

(mongodb >= 1.0.0)

Введение

Базовой интерфейс для всех исключений драйвера. Его можно использовать, что поймать только исключения, возникающие из самого драйвера.

Обзор классов

class MongoDB\Driver\Exception\Exception {
}


Класс MongoDB\Driver\Exception\ExecutionTimeoutException

(mongodb >= 1.0.0)

Введение

Выбрасывается, когда запрос или команда не завершается в течение определённого периода времени (например, » maxTimeMS).

Обзор классов

final class MongoDB\Driver\Exception\ExecutionTimeoutException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Список изменений

Версия | Описание
PECL mongodb 1.5.0 | Теперь этот класс расширяет MongoDB\Driver\Exception\ServerException вместо MongoDB\Driver\Exception\RuntimeException.


Класс MongoDB\Driver\Exception\InvalidArgumentException

(mongodb >= 1.0.0)

Введение

Выбрасывается, когда методу драйвера переданы некорректные аргументы (например, недопустимые типы опций).

Обзор классов

class MongoDB\Driver\Exception\InvalidArgumentException extends InvalidArgumentException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс MongoDB\Driver\Exception\LogicException

(mongodb >= 1.0.0)

Введение

Выбрасывается при неправильном использовании драйвера (например, перемотка в начало курсора).

Обзор классов

class MongoDB\Driver\Exception\LogicException extends LogicException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс MongoDB\Driver\Exception\RuntimeException

(mongodb >= 1.0.0)

Введение

Выбрасывается, когда драйвер обнаруживает ошибку во время выполнения (например, внутренняя ошибка из » libmongoc).

Обзор классов

class MongoDB\Driver\Exception\RuntimeException extends RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Свойства */
protected ?array $errorLabels;
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
final public hasErrorLabel(string $errorLabel): bool
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Свойства

errorLabels

Содержит массив меток ошибок для исключения. Например, метки ошибок могут использоваться для определения того, можно ли безопасно провести транзакцию, если присутствует метка TransientTransactionError. Существование определённой метки ошибки должно быть проверено с помощью MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() вместо интерпретации этого свойства errorLabels вручную.

Список изменений

Версия | Описание
PECL mongodb 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)

Введение

Базовый класс для исключений, выброшенных сервером. Код этого исключения и его подклассы будут соответствовать исходному коду ошибки с сервера.

Обзор классов

class MongoDB\Driver\Exception\ServerException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс MongoDB\Driver\Exception\SSLConnectionException (устаревший)

(mongodb >= 1.0.0)

Внимание

Этот класс исключений устарел и может быть удалён в будущей основной версии. Драйвер никогда не выбросит это исключение.

Введение

Выбрасывается, когда драйверу не удаётся установить SSL-соединение с сервером.

Обзор классов

final class MongoDB\Driver\Exception\SSLConnectionException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс MongoDB\Driver\Exception\UnexpectedValueException

(mongodb >= 1.0.0)

Введение

Выбрасывается, когда драйвер сталкивается с неожиданным значением (например, во время сериализации или десериализации BSON).

Обзор классов

class MongoDB\Driver\Exception\UnexpectedValueException extends UnexpectedValueException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс MongoDB\Driver\Exception\WriteException

(mongodb >= 1.0.0)

Введение

Базовый класс для исключений, вызванных неудачной операцией записи. Это исключение содержит объект MongoDB\Driver\WriteResult.

Обзор классов

abstract class MongoDB\Driver\Exception\WriteException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Свойства */
protected MongoDB\Driver\WriteResult $writeResult;
/* Наследуемые свойства */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
final public getWriteResult(): MongoDB\Driver\WriteResult
/* Наследуемые методы */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Свойства

writeResult

Объект MongoDB\Driver\WriteResult, связанный с неудачной операцией записи.

Список изменений

Версия | Описание
PECL mongodb 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(): 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


MySQL драйверы и плагины

В PHP имеется несколько драйверов и плагинов для доступа к MySQL.

В данном разделе представлен обзор отличий и функционала различных модулей для работы с MySQL.

  • Обзор PHP драйверов MySQL
    • Обзор терминологии
    • Выбор API
    • Выбор библиотеки
    • Основные понятия
  • MySQLi — Улучшенный модуль MySQL (MySQL Improved)
    • Введение
    • Краткий обзор
    • Краткое руководство
    • Установка и настройка
    • Модуль mysqli и постоянные соединения
    • Предопределённые константы
    • Основная информация о функциях модуля MySQLi
    • mysqli — Класс mysqli
    • mysqli_stmt — The mysqli_stmt class
    • mysqli_result — Класс mysqli_result
    • 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
    • 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
    • Введение
    • Обзор
    • Установка
    • Настройка во время выполнения
    • Несовместимости
    • Постоянное соединение
    • Статистика
    • Замечания
    • Управление памятью
    • API для плагинов к встроенному драйверу MySQL


Обзор PHP драйверов MySQL

Введение

Для доступа к базе данных MySQL существует несколько API-интерфейсов PHP. Пользователи могут выбирать между модулями mysqli или PDO_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 модуль PHP, mysqli, реализован с использованием инфраструктуры модулей PHP.

Обычно, модули предоставляют API для программиста, что бы он мог использовать их функциональность в своих программах. Однако существуют модули не предоставляющие никакого API.

Например модуль "PDO MySQL driver" не предоставляет никакого API для разработчика. Вместо этого он предоставляет интерфейс для вышестоящего уровня PDO.

Термины API и Модуль обозначают разные вещи, так как модуль может не предоставлять никакого API.


Выбор API

PHP предоставляет различные API для доступа к MySQL. Ниже показаны API, предоставляемые модулями 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']);
?>

Пример #2 Сравнение подготовленных запросов

<?php
// mysqli
$mysqli = new mysqli("example.com", "user", "password", "database");
$statement = $mysqli->prepare("SELECT District FROM City WHERE Name=?");
$statement->execute(["Amersfoort"]);
$result = $statement->get_result();
$row = $result->fetch_assoc();
echo htmlentities($row['District']);

// PDO
$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
$statement = $pdo->prepare("SELECT District FROM City WHERE Name=?");
$statement->execute(["Amersfoort"]);
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['District']);

Сравнение возможностей

Общая производительность обоих модулей примерно одинакова. Хотя производительность модуля составляет лишь часть общего времени выполнения веб-запроса PHP, обычно не более 0.1%.

 | ext/mysqli | PDO_MySQL
Появилось в версии PHP | 5.0 | 5.1
Работает в PHP 7.x и 8.x | Да | Да
Статус разработки | Активный | Активный
Жизненный цикл | Активный | Активный
Рекомендовано для новых проектов | Да | Да
ООП интерфейс | Да | Да
Процедурный интерфейс | Да | Нет
API поддерживает асинхронные, неблокирующие запросы mysqlnd | Да | Нет
Постоянные (persistent) соединения | Да | Да
API поддерживает кодировки (charset) | Да | Да
API поддерживает подготовленные запросы на стороне сервера | Да | Да
API поддерживает подготовленные запросы на стороне клиента | Нет | Да
API поддерживает хранимые процедуры | Да | Да
API поддерживает множественные запросы | Да | Большинство
API поддерживает транзакции | Да | Да
Можно контролировать транзакции посредством SQL | Да | Да
Поддерживает всю функциональность MySQL 5.1+ | Да | Большинство


Выбор библиотеки

Модули mysqli и PDO_MySQL - всего лишь легковесные обёртки над библиотеками написанными на языке C. Эти модули могут использовать библиотеки mysqlnd и libmysqlclient. Выбор библиотеки необходимо сделать на этапе компиляции.

Библиотека mysqlnd является частью дистрибутива PHP. Она предоставляет такие возможности как ленивое соединение(lazy connections) и кеширование запросов. В библиотеке libmysqlclient данные возможности недоступны. Так что крайне рекомендуется использовать именно встроенную библиотеку mysqlnd. Для дополнительных сведений смотрите документацию mysqlnd.

Пример #1 Команды конфигурирования для mysqlnd и libmysqlclient

//Рекомендованная, компилирует с mysqlnd
$ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

//Рекомендованная, компилирует с mysqlnd
$ ./configure --with-mysqli --with-pdo-mysql

//Не рекомендованная, компилирует с libmysqlclient
$ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-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 | Двойная лицензия
Статус разработки | Активный | Активный
Жизненный цикл | Окончание не анонсировано | Окончание не анонсировано
Компилирование по умолчанию (для всех модулей MySQL) | Да | Нет
Поддержка протокола сжатия | Да | Да
Поддержка SSL | Да | Да
Поддержка именованных конвейеров (named pipes) | Да | Да
Неблокирующие, асинхронные запросы | Да | Нет
Статистика производительности | Да | Нет
LOAD LOCAL INFILE уважает директиву open_basedir | Да | нет
Использует штатный менеджер памяти PHP (т.е., ограничения памяти PHP) | Да | Нет
Возвращает числовые значения как значения с плавающей точкой(float) (COM_QUERY) | Да | нет
Возвращает числовые значения как строки (string) (COM_QUERY) | Да | Да
Поддержка плагинов | Да | Ограниченно
Автоматическое переподключение | нет | опционально


Основные понятия

Содержание

  • Буферизированные и небуферизированные запросы
  • Кодировки символов

Эти основные понятия, связанные с драйвером MySQL для PHP.


Буферизированные и небуферизированные запросы

По умолчанию запросы используют режим буферизации. Это значит, что результаты запроса немедленно поступают от сервера MySQL к PHP и сохраняются в памяти PHP-процесса. Это позволяет делать дополнительные операции, такие как подсчёт количества строк и перемещение (поиск) текущего указателя результата. Это также даёт возможность выполнять новые запросы в том же соединении во время работы над результатом последнего запроса. Недостаток режима буферизации является то, что большие наборы результатов могут потребовать довольно много количество оперативной памяти. Память остаётся занятой до тех пор, пока все указатели на результирующий набор не будут удалены или результирующий набор не будет явно освобождён, что автоматически происходит во время окончания последнего запроса. Термин "результат сохранения" ("store result") также используется для режима буферизации, так как весь результирующий набор сохраняется сразу.

Замечание:

При использовании libmysqlclient в качестве библиотеки ограничение памяти PHP не будет учитывать память используемую для результирующих наборов, если данные не будут сохранены в переменные PHP. С mysqlnd учёт памяти также будет включать в себя размер результирующего набора.

Небуферизованные MySQL запросы выполняются, а затем ожидают получения данных с сервера MySQL. Это использует меньше памяти на стороне PHP, но может увеличить нагрузку на сервер. Пока полный результирующий набор не будет передан с сервера, никакие дальнейшие запросы не могут быть отправлены через это же соединение. Небуферизированные запросы также могут быть отложены как "use result". Когда все строки из набора результатов извлечены, набор результатов исчезает и его нельзя повторно итерировать.

Исходя из этих характеристик, небуферизированные запросы следует использовать только в тех случаях, когда ожидается большой набор результатов, который будет обрабатываться последовательно. Небуферизованные запросы содержат ряд подводных камней, что усложняет их использование, например, количество строк в наборе результатов неизвестно до тех пор, пока не будет извлечена последняя строка. Буферизованные запросы - более простой и гибкий способ обработки наборов результатов.

Поскольку буферизированные запросы применяются по умолчанию, следующие примеры продемонстрируют как выполнить небуферизированные запросы в каждом из API

Пример #1 Пример небуферизированного запроса: mysqli

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$unbufferedResult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT);

foreach ($unbufferedResult as $row) {
echo $row['Name'] . PHP_EOL;
}
?>

Пример #2 Пример небуферизированного запроса: pdo_mysql

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_password');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$unbufferedResult = $pdo->query("SELECT Name FROM City");
foreach ($unbufferedResult as $row) {
echo $row['Name'] . PHP_EOL;
}
?>


Кодировки символов

В идеальном случае кодировка символов должна устанавливаться на уровне сервера и делать это согласно описанию в разделе » Конфигурация кодировки символов документации сервера MySQL. В качестве альтернативы каждый MySQL API предлагает метод для установки кодировки символов во время выполнения.

Предостережение

Кодировка символов и экранирование символов

Кодировка символов должна быть чётко определена, поскольку влияет на каждое действие, в том числе на действия с последствиями для безопасности. Например, механизмы экранирования (такие как mysqli_real_escape_string() для mysqli и PDO::quote() для PDO_MySQL) зависят от этих настроек. Важно понимать, что эти функции не используют кодировку символов определённую в запросе, так например, следующие запросы не будут влиять на поведение этих функций:

Пример #1 Проблемы установки кодировки символов с помощью SQL

<?php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

// Этот запрос не влияет на поведение $mysqli->real_escape_string();
$mysqli->query("SET NAMES utf8mb4");

// И этот не влияет на $mysqli->real_escape_string();
$mysqli->query("SET CHARACTER SET utf8mb4");

// но вот этот запрос повлияет на поведение $mysqli->real_escape_string();
$mysqli->set_charset('utf8mb4');

// а этот НЕ повлияет, потому что нельзя использовать "-"
$mysqli->set_charset('UTF-8'); // (utf8mb4, а не UTF-8)
?>

Примеры ниже демонстрируют, как правильно изменять кодировку символов во время выполнения, используя каждый из API.

Замечание: Возможная путаница с UTF-8

Поскольку имена кодировок символов в MySQL не содержат тире/дефис, строка "utf8" применяется в MySQL для установки кодировки UTF-8 (до 3 байт в кодировке Unicode UTF-8). Строка "UTF-8" неприемлема и выбросит ошибку при установке кодировки символов.

Пример #2 Пример установки кодировки символов: mysqli

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

echo 'Первоначальная кодировка: ' . $mysqli->character_set_name() . "\n";

if (!$mysqli->set_charset('utf8mb4')) {
printf("Ошибка загрузки кодировки utf8mb4: %s\n", $mysqli->error);
exit;
}

echo 'Ваша текущая кодировка: ' . $mysqli->character_set_name() . "\n";
?>

Пример #3 Пример установки кодировки символов: pdo_mysql

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8mb4", 'my_user', 'my_pass');
?>


Улучшенный модуль MySQL (MySQL Improved)

  • Введение
  • Краткий обзор
  • Краткое руководство
    • Процедурный и объектно-ориентированный интерфейс
    • Соединения
    • Выполнение запросов
    • Подготавливаемые запросы
    • Хранимые процедуры
    • Множественные запросы
    • API поддержка транзакций
    • Метаданные
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Модуль 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::execute_query — Подготавливает, связывает параметры и выполняет SQL-запрос
    • 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 — Возвращает значение, созданное для столбца AUTO_INCREMENT последним запросом
    • 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::savepoint — Установите именованную точку сохранения транзакции
    • mysqli::select_db — Устанавливает базу данных для выполняемых запросов
    • mysqli::set_charset — Задаёт набор символов
    • 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_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 — Класс mysqli_result
    • mysqli_result::__construct — Конструктор объекта mysqli_result
    • mysqli_result::$current_field — Получает смещение указателя по отношению к текущему полю
    • mysqli_result::data_seek — Перемещает указатель результата на выбранную строку
    • mysqli_result::fetch_all — Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба
    • mysqli_result::fetch_array — Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив, обычный массив или в оба
    • mysqli_result::fetch_assoc — Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив
    • mysqli_result::fetch_column — Получает один столбец из следующей строки набора результатов
    • 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::getIterator — Извлекает внешний итератор
    • 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
  • mysqli_warning — Класс mysqli_warning
    • mysqli_warning::__construct — Закрытый конструктор для запрета прямого создания экземпляра
    • mysqli_warning::next — Получает следующее предупреждение
  • mysqli_sql_exception — Класс mysqli_sql_exception
    • mysqli_sql_exception::getSqlState — Возвращает код ошибки SQLSTATE
  • Синонимы и устаревшие функции Mysqli
    • mysqli_connect — Псевдоним mysqli::__construct
    • mysqli::escape_string — Псевдоним функции mysqli_real_escape_string
    • mysqli_execute — Псевдоним mysqli_stmt_execute
    • mysqli_get_client_stats — Получить клиентскую попроцессную статистику
    • mysqli_get_links_stats — Возвращает информацию об открытых и закешированных соединениях MySQL
    • mysqli_report — Псевдоним mysqli_driver->report_mode
    • mysqli::set_opt — Псевдоним mysqli_options
  • Список изменений


Введение

Модуль 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 и драйвер PDO MySQL, взаимодействуют с ядром с помощью фреймворка PHP модулей.

Обычно модули предоставляют свой API-интерфейс PHP-программисту, чтобы тот мог программно использовать возможности модуля. Однако, некоторые модули, использующие фреймворк PHP-модули, не предоставляют программистам никаких интерфейсов.

Драйвер PDO MySQL, например, не предоставляет своего API. Он предоставляет интерфейс только абстрактному слою PDO, лежащему выше.

Термины API и модуль нельзя воспринимать как синонимы, так как модуль может и не предоставлять API программисту.

Какие инструменты для работы с MySQL предлагает API PHP?

API предоставляет на выбор два набора инструментов для подключения к серверу баз данных MySQL:

  • Модуль PHP mysqli

  • Объекты данных PHP (PDO)

Каждый из них имеет свои достоинства и недостатки. Целью данного обзора является краткое описание ключевых особенностей каждого API.

Что такое PHP-модуль mysqli?

Модуль mysqli, или как его ещё называют улучшенный (improved) модуль MySQL, был разработан, чтобы дать возможность программистам в полной мере воспользоваться функционалом MySQL-сервера версий 4.1.3 и выше. Модуль mysqli включается в поставку PHP версий 5 и выше.

mysqli имеет ряд преимуществ и усовершенствований по сравнению с mysql, которые заключаются в следующем:

  • Объектно-ориентированный интерфейс

  • Поддержка подготавливаемых запросов

  • Поддержка мультизапросов

  • Поддержка транзакций

  • Улучшенные возможности отладки

Наравне с объектно-ориентированным интерфейсом модуль предоставляет и процедурный интерфейс.

модуль 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, модуль mysqli и драйвер PDO MYSQL используют низкоуровневую библиотеку, в которой реализованы необходимые протоколы. В прошлом была доступна только одна такая библиотека: Клиентская библиотека MySQL (MySQL Client Library), также известная как libmysqlclient.

Однако, интерфейс, который предоставляла libmysqlclient, не был оптимизирован для взаимодействия с PHP-приложениями, так как изначально libmysqlclient разрабатывалась для работы с С-приложениями. Несколько позже был разработан нативный драйвер MySQL (MySQL Native Driver) mysqlnd, который представляет собой альтернативу libmysqlclient для PHP.

И модуль mysqli и драйвер PDO MySQL можно индивидуально настроить для работы либо с libmysqlclient, либо с mysqlnd. Так как mysqlnd создавался специально для PHP-систем, у него есть преимущество в скорости и расходах памяти перед libmysqlclient. Поэтому его использование предпочтительней.

Нативный драйвер MYSQL собирается при помощи фреймворка модулей PHP, его исходный код расположен в директории ext/mysqlnd. Он не предоставляет API-интерфейс программисту PHP.

Сравнение возможностей

В приведённой таблице приводится сравнение функционала основных методов подключения к MySQL из PHP:

Сравнение опций MySQL API в PHP
 | Модуль PHP mysqli | PDO (используя драйвер PDO MySQL и нативный драйвер MySQL)
Версия PHP, в которой был внедрён функционал | 5.0 | 5.0
Статус разработки 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");
$result = mysqli_query($mysqli, "SELECT 'Пожалуйста, не используйте устаревший модуль mysql в новых проектах.' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($result);
echo $row['_msg'];

$mysql = mysql_connect("example.com", "user", "password");
mysql_select_db("test");
$result = mysql_query("SELECT 'Используйте вместо него модуль mysqli.' AS _msg FROM DUAL", $mysql);
$row = mysql_fetch_assoc($result);
echo $row['_msg'];
?>

Результат выполнения данного примера:

Пожалуйста, не используйте устаревший модуль mysql в новых проектах. Используйте вместо него модуль mysqli.

Объектно-ориентированный интерфейс

В дополнение к процедурному пользователи могут использовать объектно-ориентированный интерфейс. Документация заточена именно под объектный интерфейс. Объектно-ориентированный интерфейс предлагает функции сгруппированные по цели их применения, что облегчает их поиск и освоение. Тем не менее, в практических примерах к функциям приводится код для обеих парадигм.

Каких-либо принципиальных отличий в производительности между интерфейсами нет. Пользователи вольны в выборе интерфейса, основываясь на личных предпочтениях.

Пример #2 Объектно-ориентированный и процедурный интерфейсы

<?php

$mysqli = mysqli_connect("example.com", "user", "password", "database");

$result = mysqli_query($mysqli, "SELECT 'Мир, полный ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($result);
echo $row['_msg'];

$mysqli = new mysqli("example.com", "user", "password", "database");

$result = $mysqli->query("SELECT 'выбора, чтобы угодить всем.' AS _msg FROM DUAL");
$row = $result->fetch_assoc();
echo $row['_msg'];

Результат выполнения данного примера:

Мир, полный выбора, чтобы угодить всем.

Примеры в этом руководстве будут написаны в объектном стиле в виду того, что объектному подходу отдавалось предпочтение при создании документации.

Смешивание стилей

Переключаться между стилями программирования можно сколь угодно часто и в любое время, однако делать этого не рекомендуется, так как это ухудшает читаемость кода и затрудняет его поддержку.

Пример #3 Плохой стиль программирования

<?php

$mysqli = new mysqli("example.com", "user", "password", "database");

$result = mysqli_query($mysqli, "SELECT 'Этот код работает, но лучше так не писать.' AS _msg FROM DUAL");

if ($row = $result->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-соединение с локальным хостом, необходимо использовать 127.0.0.1 вместо имени хоста localhost.

Пример #1 Специальное назначение localhost

<?php

$mysqli = new mysqli("localhost", "user", "password", "database");

echo $mysqli->host_info . "\n";

$mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);

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::__construct() создаётся дескриптор подключения, затем подключение настраивается с помощью функции 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 Configuration Options
  • Persistent Database Connections


Выполнение запросов

За выполнение запросов отвечают функции mysqli::query(), mysqli::real_query() и mysqli::multi_query(). Чаще всего применяется функция mysqli::query(), так как она выполняет сразу две задачи: выполняет запрос и буферизует на клиенте результат этого запроса (если он есть). Вызов mysqli::query() идентичен последовательному вызову функций mysqli::real_query() и mysqli::store_result().

Пример #1 Выполнение запросов

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

Буферизация результатов запроса

После выполнения запроса результаты можно либо получить сразу, либо считать строку за строкой с сервера. Буферизация набора результатов на стороне клиента позволяет серверу как можно раньше высвободить ресурсы, связанные с результатами запроса. Проще говоря, клиенты медленно используют наборы результатов. Поэтому рекомендуется использовать буферизованные наборы результатов. mysqli::query() объединяет выполнение запроса и буферизацию набора результатов.

PHP-приложения могут свободно оперировать данными внутри буферизованных результирующих наборов. Быстрая навигация по строкам наборов обусловлена тем, что наборы полностью располагаются в памяти клиента. Следует помнить, что зачастую обработка результатов на клиенте проще, нежели средствами сервера.

Пример #2 Навигация по строкам буферизованной результирующей таблицы

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$result = $mysqli->query("SELECT id FROM test ORDER BY id ASC");

echo "Обратный порядок...\n";
for ($row_no = $result->num_rows - 1; $row_no >= 0; $row_no--) {
$result->data_seek($row_no);
$row = $result->fetch_assoc();
echo " id = " . $row['id'] . "\n";
}

echo "Исходный порядок строк...\n";
foreach ($result as $row) {
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");
$result = $mysqli->use_result();

echo "Порядок строк в результирующем наборе...\n";
foreach ($result as $row) {
echo " id = " . $row['id'] . "\n";
}

Типы данных значений в результирующей таблице

Функции mysqli::query(), mysqli::real_query() и mysqli::multi_query() предназначены для выполнения не подготавливаемых запросов. На уровне протокола клиент-серверного взаимодействия MySQL за выполнение запросов отвечают команда COM_QUERY и текстовый протокол. Когда используется текстовый протокол, сервер MySQL перед отправкой клиенту преобразует все данные в результирующем наборе в текстовые строки. Это преобразование выполняется вне зависимости от типа данных SQL-столбца результирующей таблицы. Клиентские библиотеки mysql, в свою очередь, получают все данные, принимая их за строки. На клиенте не проводится никакого обратного преобразования к исходным типам, все данные, полученные приложением остаются PHP строками.

Пример #4 Текстовый протокол по умолчанию возвращает строки

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$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')");

$result = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $result->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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli();
$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
$mysqli->real_connect("example.com", "user", "password", "database");

$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')");

$result = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $result->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::options()
  • mysqli::real_connect()
  • mysqli::query()
  • mysqli::multi_query()
  • mysqli::use_result()
  • mysqli::store_result()


Подготавливаемые запросы

СУБД MySQL поддерживает подготавливаемые запросы. Подготавливаемые (или параметризованные) запросы используются для повышения эффективности, когда один запрос выполняется многократно и защищает от SQL-инъекций.

Принцип работы

Выполнение подготавливаемого запроса проводится в два этапа: подготовка и исполнение. На этапе подготовки на сервер посылается шаблон запроса. Сервер выполняет синтаксическую проверку этого шаблона, строит план выполнения запроса и выделяет под него ресурсы.

MySQL сервер поддерживает неименованные, или позиционные, псевдопеременные ?.

За подготовкой следует выполнение. Во время выполнения клиент связывает значения параметров и отправляет их на сервер. Сервер выполняет запрос со связанными значениями, используя ранее созданные внутренние ресурсы.

Пример #1 Подготовленный запрос

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Неподготовленный запрос */
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");

/* Подготовленный запрос, шаг 1: подготовка */
$stmt = $mysqli->prepare("INSERT INTO test(id, label) VALUES (?, ?)");

/* Подготовленный запрос, шаг 2: связывание и выполнение */
$id = 1;
$label = 'PHP';
$stmt->bind_param("is", $id, $label); // "is" означает, что $id связывается, как целое число, а $label - как строка

$stmt->execute();

Повторное выполнение запроса

Подготовленный запрос можно запускать многократно. Перед каждым запуском значения привязанных переменных будут передаваться на сервер и подставляться в текст запроса. Сам текст запроса повторно не анализируется, равно как и не отсылается повторно шаблон.

Пример #2 Выражение INSERT один раз подготавливается, а затем многократно выполняется

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Неподготовленный запрос */
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");

/* Подготовленный запрос, шаг 1: подготовка */
$stmt = $mysqli->prepare("INSERT INTO test(id, label) VALUES (?, ?)");

/* Подготовленный запрос, шаг 2: связывание и выполнение */
$stmt->bind_param("is", $id, $label); // "is" означает, что $id связывается, как целое число, а $label - как строка

$data = [
1 => 'PHP',
2 => 'Java',
3 => 'C++'
];
foreach ($data as $id => $label) {
$stmt->execute();
}

$result = $mysqli->query('SELECT id, label FROM test');
var_dump($result->fetch_all(MYSQLI_ASSOC));

Результат выполнения данного примера:

array(3) {
  [0]=>
  array(2) {
    ["id"]=>
    string(1) "1"
    ["label"]=>
    string(3) "PHP"
  }
  [1]=>
  array(2) {
    ["id"]=>
    string(1) "2"
    ["label"]=>
    string(4) "Java"
  }
  [2]=>
  array(2) {
    ["id"]=>
    string(1) "3"
    ["label"]=>
    string(3) "C++"
  }
}

Каждый подготавливаемый запрос использует ресурсы сервера. Если запрос больше не нужен, его необходимо сразу закрыть. Если не сделать этого явно, запрос закроется сам, но только когда PHP освободит его дескриптор, как правило это происходит при выходе запроса из области видимости или при завершении работы скрипта.

Использование подготавливаемых запросов не всегда приводит к повышению эффективности. Если параметризованный запрос запускается лишь раз, это приводит к большему количеству клиент-серверных обменов данными, нежели при выполнении простого запроса. Именно по этой причине в примере выше выражение SELECT выполнялось, как обычный запрос.

Также имеет смысл рассмотреть SQL-синтаксис вставки множества значений в выражении INSERT. В примере выше мультивставка (значения для вставки перечисляются через запятую) в предложении INSERT обошлась бы дешевле, чем подготовленный запрос.

Пример #3 Меньше обменов данными при использовании мультивставок SQL

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

$values = [1, 2, 3, 4];

$stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?), (?), (?), (?)");
$stmt->bind_param('iiii', ...$values);
$stmt->execute();

Типы данных значений в результирующей таблице

В протоколе клиент-серверного взаимодействия MySQL для обычных и подготавливаемых запросов определены разные протоколы передачи данных клиенту. Параметризованные запросы используют так называемый двоичный протокол. Сервер MySQL посылает результирующий набор клиенту "как есть" в двоичном формате. Данные в таблице не преобразуются в текст. Клиентские библиотеки получают двоичные данные и пытаются преобразовать значения в соответствующие типы данных PHP. Например, столбец результатов запроса типа SQL INT PHP примет и преобразует в тип integer.

Пример #4 Исходные типы данных

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Неподготовленный запрос */
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'PHP')");

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();
$result = $stmt->get_result();
$row = $result->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 = PHP (string)

Такое поведение не характерно для обычных запросов, которые по умолчанию все результаты возвращают в виде текстовых строк. Это поведение по умолчанию можно изменить, настроив соединение соответствующим образом. После такой настройки разницы между данными подготавливаемого и обычного запросов уже не будет.

Получение результатов запроса с привязкой переменных

Результаты из подготовленного запроса можно получить либо привязав выходные переменные, либо запросив объект mysqli_result.

Выходные параметры нужно привязывать после выполнения запроса. Каждому столбцу результирующей таблицы должна соответствовать ровно одна переменная.

Пример #5 Привязка переменных к результату запроса

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Неподготовленный запрос */
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'PHP')");

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();

$stmt->bind_result($out_id, $out_label);

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 = PHP (string)

Объекты подготавливаемых запросов по умолчанию возвращают небуферизованные результирующие наборы. Эти таблицы никаким неявным образом не переносятся на клиента, они остаются на сервере, занимая его ресурсы, пока клиентский процесс самостоятельно не извлечёт все данные. Если клиент не может извлечь данные результирующего набора, или после закрытия объекта запроса остаются невыбранными какие-то данные, то на mysqli ложится ответственность неявно подчистить этот мусор за клиентским процессом.

Также можно буферизовать данные результирующих таблиц подготовленного запроса с помощью функции mysqli_stmt::store_result().

Извлечение результатов запроса посредством mysqli_result интерфейса

Вместо использования привязки переменных к результатам запроса, результирующие таблицы можно извлекать средствами интерфейса mysqli_result. Функция mysqli_stmt::get_result() возвращает буферизованный результирующий набор строк.

Пример #6 Использование mysqli_result для выборки результатов запроса

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Неподготовленный запрос */
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'PHP')");

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();

$result = $stmt->get_result();

var_dump($result->fetch_all(MYSQLI_ASSOC));

Результат выполнения данного примера:

array(1) {
  [0]=>
  array(2) {
    ["id"]=>
    int(1)
    ["label"]=>
    string(3) "PHP"
  }
}

Использование интерфейса mysqli_result имеет дополнительное преимущество в том, что буферизация результирующих таблиц на клиенте предлагает гибкую систему навигации по этим таблицам.

Пример #7 Буферизация результирующего набора для удобства чтения данных

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Неподготовленный запрос */
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'PHP'), (2, 'Java'), (3, 'C++')");

$stmt = $mysqli->prepare("SELECT id, label FROM test");
$stmt->execute();

$result = $stmt->get_result();

for ($row_no = $result->num_rows - 1; $row_no >= 0; $row_no--) {
$result->data_seek($row_no);
var_dump($result->fetch_assoc());
}

Результат выполнения данного примера:

array(2) {
  ["id"]=>
  int(3)
  ["label"]=>
  string(3) "C++"
}
array(2) {
  ["id"]=>
  int(2)
  ["label"]=>
  string(4) "Java"
}
array(2) {
  ["id"]=>
  int(1)
  ["label"]=>
  string(3) "PHP"
}

Экранирование и SQL-инъекции

Привязанные переменные отправляются на сервер отдельно от запроса и таким образом не могут влиять на него. Сервер использует эти значения непосредственно в момент выполнения, уже после того, как был обработан шаблон выражения. Привязанные параметры не нуждаются в экранировании, так как они никогда не подставляются непосредственно в строку запроса. Необходимо отправлять тип привязанной переменной на сервер, чтобы определить соответствующее преобразование. Смотрите функцию mysqli_stmt::bind_param() для получения большей информации.

Такое разделение часто считается единственным способом обезопаситься от SQL-инъекции, но на самом деле такого же уровня безопасности можно добиться и с неподготовленными выражениями, если правильно отформатировать все значения. Важно отметить, что правильное форматирование - не то же самое, что и экранирование, и включает в себя больше логики. Таким образом, подготовленные выражения - просто более удобный и менее подверженный ошибкам способ для достижения такой безопасности базы данных.

Эмуляция подготовленного запроса на клиенте

В API нет возможности эмулировать подготавливаемые запросы на клиенте.

Смотрите также

  • 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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

$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;");

$mysqli->query("CALL p(1)");

$result = $mysqli->query("SELECT id FROM test");

var_dump($result->fetch_assoc());

Результат выполнения данного примера:

array(1) {
  ["id"]=>
  string(1) "1"
}

Параметр INOUT/OUT

Значения параметров INOUT/OUT доступны через переменные сессии.

Пример #2 Использование переменных сессии

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP PROCEDURE IF EXISTS p");
$mysqli->query('CREATE PROCEDURE p(OUT msg VARCHAR(50)) BEGIN SELECT "Hi!" INTO msg; END;');

$mysqli->query("SET @msg = ''");
$mysqli->query("CALL p(@msg)");

$result = $mysqli->query("SELECT @msg as _p_out");

$row = $result->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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$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;');

$mysqli->multi_query("CALL p()");

do {
if ($result = $mysqli->store_result()) {
printf("---\n");
var_dump($result->fetch_all());
$result->free();
}
} while ($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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$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;');

$stmt = $mysqli->prepare("CALL p()");

$stmt->execute();

do {
if ($result = $stmt->get_result()) {
printf("---\n");
var_dump($result->fetch_all());
$result->free();
}
} while ($stmt->next_result());

Результат выполнения данного примера:

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(1)
  }
  [1]=>
  array(1) {
    [0]=>
    int(2)
  }
  [2]=>
  array(1) {
    [0]=>
    int(3)
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(2)
  }
  [1]=>
  array(1) {
    [0]=>
    int(3)
  }
  [2]=>
  array(1) {
    [0]=>
    int(4)
  }
}

Само собой, поддерживается привязка результатов к объекту запроса.

Пример #5 Хранимые процедуры и подготавливаемые запросы с использованием привязки результатов

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$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;');

$stmt = $mysqli->prepare("CALL p()");

$stmt->execute();

do {
if ($stmt->store_result()) {
$stmt->bind_result($id_out);
while ($stmt->fetch()) {
echo "id = $id_out\n";
}
}
} while ($stmt->next_result());

Результат выполнения данного примера:

id = 1
id = 2
id = 3
id = 2
id = 3
id = 4

Смотрите также

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli::next_result()
  • mysqli::more_results()


Множественные запросы

MySQL поддерживает наличие нескольких SQL-запросов в тексте одного запроса, но требует особого обращения. Пересылка на сервер нескольких выражений в одном запроса уменьшает количество клиент-серверных взаимодействий, но требует специальной обработки.

Множественные запросы, или мультизапросы, должны запускаться функцией mysqli::multi_query(). Отдельные SQL-предложения в мультизапросе отделяются точкой с запятой. После выполнения мультизапроса все результирующие наборы, которые он вернул, необходимо извлечь.

MySQL-сервер поддерживает наличие в одном мультизапросе подзапросов, как возвращающих результирующий набор, так и не возвращающих.

Пример #1 Множественные запросы

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

$sql = "SELECT COUNT(*) AS _num FROM test;
INSERT INTO test(id) VALUES (1);
SELECT COUNT(*) AS _num FROM test; ";

$mysqli->multi_query($sql);

do {
if ($result = $mysqli->store_result()) {
var_dump($result->fetch_all(MYSQLI_ASSOC));
$result->free();
}
} while ($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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT 1; DROP TABLE mysql.user");
?>

Результат выполнения данного примера:

PHP Fatal error:  Uncaught mysqli_sql_exception: 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::next_result()
  • mysqli::more_results()


API поддержка транзакций

Поддержка транзакций в СУБД MySQL зависит от используемого движка хранилища данных. Начиная с MySQL 5.5, по умолчанию используется движок InnoDB. InnoDB полностью поддерживает модель транзакций ACID.

Транзакциями можно управлять как средствами SQL, так и вызовами API-функций. Для включения и выключения режима автофиксации изменений (autocommit) рекомендуется пользоваться API функциями.

Пример #1 Установка режима автофиксации (autocommit) средствами SQL и функциями API

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

/* Рекомендуется управлять настройками транзакций средствами API */
$mysqli->autocommit(false);

/* Не будет распознаваться и учитываться плагинами репликации и балансировки нагрузки */
$mysqli->query('SET AUTOCOMMIT = 0');

Дополнительные службы сервера, такие как плагины репликации и балансировки нагрузки, могут отслеживать вызовы API-функций. Плагин репликации может сообщать балансировщику нагрузки о запущенной транзакции, если эта транзакция обслуживается API-функциями. Сервер не сможет распределять нагрузку между репликами базы, если смена режима автофиксации (autocommit), фиксация и откат транзакций осуществляются SQL-запросами.

Пример #2 Фиксация и откат

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$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::begin_transaction()
  • mysqli::commit()
  • mysqli::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

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$stmt = $mysqli->prepare("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
$stmt->execute();
$result = $stmt->result_metadata();
var_dump($result->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 DLL php_mysqli.dll должен быть включён в php.ini.

Как и при включении любого модуля PHP (например, php_mysqli.dll), директива PHP extension_dir должна устанавливать каталог, в котором находятся модули PHP. Смотрите также раздел о самостоятельной установке PHP в Windows. Пример значения extension_dir - c:\php\ext.

Замечание:

Если при запуске веб-сервера возникает ошибка, подобная следующей: "Unable to load dynamic library './php_mysqli.dll'", это происходит потому, что файл php_mysqli.dll не может быть найден системой.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации MySQLi
Имя | По умолчанию | Место изменения | Список изменений
mysqli.allow_local_infile | "0" | PHP_INI_SYSTEM | До PHP 7.2.16 и 7.3.3 значением по умолчанию было "1".
mysqli.local_infile_directory |  | PHP_INI_SYSTEM | Доступно, начиная с PHP 8.1.0.
mysqli.allow_persistent | "1" | PHP_INI_SYSTEM |
mysqli.max_persistent | "-1" | PHP_INI_SYSTEM |
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 | Удалено, начиная с PHP 8.2.0
mysqli.rollback_on_cached_plink | "0" | PHP_INI_SYSTEM |

Прочие детали и определения констант PHP_INI_* смотрите в разделе конфигурационные изменения.

Краткое разъяснение конфигурационных директив.

mysqli.allow_local_infile int

Разрешает доступ к локальным файлам, с точки зрения PHP, с помощью инструкций LOAD DATA.

mysqli.local_infile_directory string

Позволяет ограничить загрузку LOAD DATA файлами, расположенными в указанном каталоге.

mysqli.allow_persistent int

Включает возможность создавать постоянные соединения с помощью mysqli_connect().

mysqli.max_persistent int

Максимально возможное количество постоянных соединений. Для неограниченного количества установите в 0.

mysqli.max_links int

Максимальное количество соединений MySQL на процесс.

mysqli.default_port int

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 int

Автоматически восстанавливать соединение при его потере.

Замечание: Эта настройка игнорируется драйвером "mysqlnd" и была удалена в PHP 8.2.0.

mysqli.rollback_on_cached_plink bool

Если этот параметр включён, закрытие постоянного соединения откатит любые ожидающие транзакции этого соединения, прежде чем оно будет возвращено в пул постоянных соединений. В противном случае ожидающие соединения будут откатываться только тогда, когда соединение будет повторно использовано или когда оно будет фактически закрыто.

Пользователи не могут устанавливать MYSQL_OPT_READ_TIMEOUT с помощью API-вызовов или установки конфигурационных значений во время работы скрипта. Учтите, что если бы это было возможно, то libmysqlclient и потоки по-разному обрабатывали бы значение MYSQL_OPT_READ_TIMEOUT.


  • « Настройка во время выполнения
  • Модуль mysqli и постоянные соединения »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данный модуль не определяет каких-либо типов ресурсов.


Модуль mysqli и постоянные соединения

Идея постоянных подключений состоит в том, чтобы соединение между клиентским процессом и базой данных можно было использовать повторно, особенно когда требуется создавать и закрывать соединения множество раз. Это бы позволило снизить накладные расходы на создание новых подключений каждый раз, когда они требуются, за счёт использования существующих кешированных подключений, свободных для повторного использования.

В отличие от модуля 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 (int)

Читать опции из указанной группы в файле my.cnf или файле, указанном с помощью MYSQLI_READ_DEFAULT_FILE

MYSQLI_READ_DEFAULT_FILE (int)

Читать опции из указанного файла, вместо my.cnf

MYSQLI_OPT_CONNECT_TIMEOUT (int)

Время ожидания подключения в секундах.

MYSQLI_OPT_READ_TIMEOUT (int)

Время ожидания результата выполнения команды в секундах. Доступно с PHP 7.2.0.

MYSQLI_OPT_LOCAL_INFILE (int)

Включает команду LOAD LOCAL INFILE.

MYSQLI_OPT_INT_AND_FLOAT_NATIVE (int)

Преобразует целые и плавающие столбцы обратно в числа PHP. Корректно работает только с mysqlnd.

MYSQLI_OPT_NET_CMD_BUFFER_SIZE (int)

Размер внутреннего буфера команды/сети. Корректно работает только с mysqlnd.

MYSQLI_OPT_NET_READ_BUFFER_SIZE (int)

Максимальный размер блока чтения в байтах при чтении тела пакета команд MySQL. Only valid for mysqlnd.

MYSQLI_OPT_SSL_VERIFY_SERVER_CERT (int)

Требуется MySQL 5.1.10 и выше

MYSQLI_INIT_COMMAND (int)

Команда, которая будет выполнена при подключении к серверу MySQL. Эта команда будет повторно вызвана при переподключении.

MYSQLI_CLIENT_SSL (int)

Использовать SSL (шифрованный протокол). Эта опция не может быть установлена приложениями; она устанавливается внутри библиотеки клиента MySQL.

MYSQLI_CLIENT_COMPRESS (int)

Использовать компрессию.

MYSQLI_CLIENT_INTERACTIVE (int)

Ждать interactive_timeout секунд (вместо wait_timeout) бездействия перед закрытием соединения. Переменная сессии клиента wait_timeout будет установлена в значение переменной сессии interactive_timeout.

MYSQLI_CLIENT_IGNORE_SPACE (int)

Разрешить пробелы после имён функций. Делает все имена функций зарезервированными словами.

MYSQLI_CLIENT_NO_SCHEMA (int)

Запретить синтаксис db_name.tbl_name.col_name.

MYSQLI_CLIENT_MULTI_QUERIES

Разрешить выполнение в одном вызове функции mysqli_query() нескольких запросов, разделённых точкой с запятой.

MYSQLI_STORE_RESULT (int)

Для использования буферизации наборов данных. Значение равно 0.

MYSQLI_USE_RESULT (int)

Для использования небуферизированных наборов данных. Значение равно 1.

MYSQLI_ASSOC (int)

Результат возвращается в виде ассоциативного массива с именами полей в качестве индексов.

MYSQLI_NUM (int)

Результат возвращается в виде индексного массива.

MYSQLI_BOTH (int)

Результат возвращается в виде массива, который содержит как числовой, так и ассоциативный индексы.

MYSQLI_NOT_NULL_FLAG (int)

Информирует о том, что поле определено как NOT NULL.

MYSQLI_PRI_KEY_FLAG (int)

Поле является частью первичного индекса.

MYSQLI_UNIQUE_KEY_FLAG (int)

Поле является частью уникального индекса.

MYSQLI_MULTIPLE_KEY_FLAG (int)

Поле является частью индекса.

MYSQLI_BLOB_FLAG (int)

Поле определено как BLOB.

MYSQLI_UNSIGNED_FLAG (int)

Поле определено как UNSIGNED.

MYSQLI_ZEROFILL_FLAG (int)

Поле определено как ZEROFILL.

MYSQLI_AUTO_INCREMENT_FLAG (int)

Поле определено как AUTO_INCREMENT.

MYSQLI_TIMESTAMP_FLAG (int)

Поле определено как TIMESTAMP.

MYSQLI_SET_FLAG (int)

Поле определено как SET.

MYSQLI_NUM_FLAG (int)

Поле определено как NUMERIC.

MYSQLI_PART_KEY_FLAG (int)

Поле является частью мульти-индекса.

MYSQLI_GROUP_FLAG (int)

Поле является частью GROUP BY.

MYSQLI_TYPE_DECIMAL (int)

Поле определено как DECIMAL.

MYSQLI_TYPE_NEWDECIMAL (int)

Математическая точность полей DECIMAL или NUMERIC (MySQL 5.0.3 и выше).

MYSQLI_TYPE_BIT (int)

Поле определено как BIT (MySQL 5.0.3 и выше).

MYSQLI_TYPE_TINY (int)

Поле определено как TINYINT.

MYSQLI_TYPE_SHORT (int)

Поле определено как SMALLINT.

MYSQLI_TYPE_LONG (int)

Поле определено как INT.

MYSQLI_TYPE_FLOAT (int)

Поле определено как FLOAT.

MYSQLI_TYPE_DOUBLE (int)

Поле определено как DOUBLE.

MYSQLI_TYPE_NULL (int)

Поле определено как DEFAULT NULL.

MYSQLI_TYPE_TIMESTAMP (int)

Поле определено как TIMESTAMP.

MYSQLI_TYPE_LONGLONG (int)

Поле определено как BIGINT.

MYSQLI_TYPE_INT24 (int)

Поле определено как MEDIUMINT.

MYSQLI_TYPE_DATE (int)

Поле определено как DATE.

MYSQLI_TYPE_TIME (int)

Поле определено как TIME.

MYSQLI_TYPE_DATETIME (int)

Поле определено как DATETIME.

MYSQLI_TYPE_YEAR (int)

Поле определено как YEAR.

MYSQLI_TYPE_NEWDATE (int)

Поле определено как DATE.

MYSQLI_TYPE_INTERVAL (int)

Поле определено как INTERVAL

MYSQLI_TYPE_ENUM (int)

Поле определено как ENUM.

MYSQLI_TYPE_SET (int)

Поле определено как SET.

MYSQLI_TYPE_TINY_BLOB (int)

Поле определено как TINYBLOB.

MYSQLI_TYPE_MEDIUM_BLOB (int)

Поле определено как MEDIUMBLOB.

MYSQLI_TYPE_LONG_BLOB (int)

Поле определено как LONGBLOB.

MYSQLI_TYPE_BLOB (int)

Поле определено как BLOB.

MYSQLI_TYPE_VAR_STRING (int)

Поле определено как VARCHAR.

MYSQLI_TYPE_STRING (int)

Поле определено как CHAR или BINARY

MYSQLI_TYPE_CHAR (int)

Поле определено как TINYINT. Для CHAR смотрите MYSQLI_TYPE_STRING

MYSQLI_TYPE_GEOMETRY (int)

Поле определено как GEOMETRY.

MYSQLI_TYPE_JSON (int)

Поле определено как JSON. Действительно только для mysqlnd и MySQL 5.7.8 и выше.

MYSQLI_NEED_DATA

Имеются ещё данные, доступные для связанных переменных.

MYSQLI_NO_DATA (int)

Больше нет доступных данных для связанных переменных.

MYSQLI_DATA_TRUNCATED (int)

Произошло усечение данных. Доступно начиная с MySQL 5.0.5.

MYSQLI_ENUM_FLAG (int)

Поле определено как ENUM.

MYSQLI_BINARY_FLAG (int)

Поле определено как BINARY.

MYSQLI_CURSOR_TYPE_FOR_UPDATE (int)

MYSQLI_CURSOR_TYPE_NO_CURSOR (int)

MYSQLI_CURSOR_TYPE_READ_ONLY (int)

MYSQLI_CURSOR_TYPE_SCROLLABLE (int)

MYSQLI_STMT_ATTR_CURSOR_TYPE (int)

MYSQLI_STMT_ATTR_PREFETCH_ROWS (int)

MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH (int)

MYSQLI_SET_CHARSET_NAME (int)

MYSQLI_REPORT_INDEX (int)

Уведомлять, если индекс, используемый в запросе, не указан либо превышает максимум.

MYSQLI_REPORT_ERROR (int)

Уведомлять об ошибках вызова функций mysqli.

MYSQLI_REPORT_STRICT (int)

Обрабатывать mysqli_sql_exception как ошибки, а не как предупреждения.

MYSQLI_REPORT_ALL (int)

Включить все уведомления.

MYSQLI_REPORT_OFF (int)

Отключает уведомления.

MYSQLI_DEBUG_TRACE_ENABLED (int)

Установлено в 1, если используется функция mysqli_debug().

MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED (int)

MYSQLI_SERVER_QUERY_NO_INDEX_USED (int)

MYSQLI_SERVER_PUBLIC_KEY (int)

MYSQLI_REFRESH_GRANT (int)

Обновляет таблицу прав доступа.

MYSQLI_REFRESH_LOG (int)

Сбрасывает логи, точно так же, как и SQL выражение FLUSH LOGS.

MYSQLI_REFRESH_TABLES (int)

Очищает кеш таблицы, точно так же, как и SQL выражение FLUSH TABLES.

MYSQLI_REFRESH_HOSTS (int)

Очищает кеш хоста, точно так же, как и SQL выражение FLUSH HOSTS.

MYSQLI_REFRESH_REPLICA (int)

Алиас константы MYSQLI_REFRESH_SLAVE. Доступна, начиная с PHP 8.1.0.

MYSQLI_REFRESH_STATUS (int)

Сбрасывает переменные состояния, точно так же, как и SQL выражение FLUSH STATUS.

MYSQLI_REFRESH_THREADS (int)

Очищает кеш потока.

MYSQLI_REFRESH_SLAVE (int)

На ведомом реплицируемом сервере (slave): сбросить информацию ведущего сервера (master) и перезапустить ведомый сервер. Аналогично выполнению SQL выражения RESET SLAVE.

MYSQLI_REFRESH_MASTER (int)

На ведущем реплицируемом сервере (master): удалить бинарные файлы логов в бинарном индексе логов, и обрезать файл индекса. Аналогично выполнению SQL выражения RESET MASTER.

MYSQLI_TRANS_COR_AND_CHAIN (int)

Добавляет "AND CHAIN" в mysqli_commit() или mysqli_rollback().

MYSQLI_TRANS_COR_AND_NO_CHAIN (int)

Добавляет "AND NO CHAIN" в mysqli_commit() или mysqli_rollback().

MYSQLI_TRANS_COR_RELEASE (int)

Добавляет "RELEASE" в mysqli_commit() или mysqli_rollback().

MYSQLI_TRANS_COR_NO_RELEASE (int)

Добавляет "NO RELEASE" в mysqli_commit() или mysqli_rollback().

MYSQLI_TRANS_START_READ_ONLY (int)

Начинает транзакцию как "START TRANSACTION READ ONLY" с mysqli_begin_transaction().

MYSQLI_TRANS_START_READ_WRITE (int)

Начинает транзакцию как "START TRANSACTION READ WRITE" с mysqli_begin_transaction().

MYSQLI_TRANS_START_CONSISTENT_SNAPSHOT

Начинает транзакцию как "START TRANSACTION WITH CONSISTENT SNAPSHOT" с mysqli_begin_transaction().

MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT (int)

Требуется MySQL 5.6.5 и выше

MYSQLI_IS_MARIADB (bool)

Определяет, собран ли модуль mysqli с клиентской библиотекой MariaDB. Доступно, начиная с PHP 8.1.2.


Основная информация о функциях модуля 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_character_set_name() | Н/Д | Возвращает кодировку, установленную по умолчанию для соединения с базой данных
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() | - | Возвращает статистку клиента для каждого процесса. Доступно только с модулем 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::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::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_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_stmt::bind_result() | mysqli_stmt_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_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_stmt::send_long_data() | mysqli_stmt_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_column() | mysqli_fetch_column() | N/A | Получает один столбец из следующей строки набора результатов
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::mysqli_report | mysqli_report() | Не документировано | Устанавливает режим отчёта об ошибках mysqli
Методы
mysqli_driver::embedded_server_end() | mysqli_embedded_server_end() | - | Не документировано
mysqli_driver::embedded_server_start() | mysqli_embedded_server_start() | - | Не документировано

Замечание:

Псевдонимы функций предназначены только для обеспечения обратной совместимости. Не используйте их в новых проектах.


Класс mysqli

(PHP 5, PHP 7, PHP 8)

Введение

Представляет связь между PHP и базой данных MySQL.

Обзор классов

class mysqli {
/* Свойства */
public readonly int|string $affected_rows;
public readonly string $client_info;
public readonly int $client_version;
public readonly int $connect_errno;
public readonly ?string $connect_error;
public readonly int $errno;
public readonly string $error;
public readonly array $error_list;
public readonly int $field_count;
public readonly string $host_info;
public readonly ?string $info;
public readonly int|string $insert_id;
public readonly string $server_info;
public readonly int $server_version;
public readonly string $sqlstate;
public readonly int $protocol_version;
public readonly int $thread_id;
public readonly int $warning_count;
/* Методы */
public __construct(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
)
public autocommit(bool $enable): bool
public begin_transaction(int $flags = 0, ?string $name = null): bool
public change_user(string $username, string $password, ?string $database): bool
public character_set_name(): string
public close(): true
public commit(int $flags = 0, ?string $name = null): bool
public connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
): bool
public debug(string $options): true
public dump_debug_info(): bool
public execute_query(string $query, ?array $params = null): mysqli_result|bool
public get_charset(): ?object
public get_client_info(): string
public get_connection_stats(): array
public mysqli_stmt::get_server_info(): string
public get_warnings(): mysqli_warning|false
public init(): ?bool
public kill(int $process_id): bool
public more_results(): bool
public multi_query(string $query): bool
public next_result(): bool
public options(int $option, string|int $value): bool
public ping(): bool
public static poll(
?array &$read,
?array &$error,
array &$reject,
int $seconds,
int $microseconds = 0
): int|false
public prepare(string $query): mysqli_stmt|false
public query(string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool
public real_connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null,
int $flags = 0
): bool
public real_escape_string(string $string): string
public real_query(string $query): bool
public reap_async_query(): mysqli_result|bool
public refresh(int $flags): bool
public release_savepoint(string $name): bool
public rollback(int $flags = 0, ?string $name = null): bool
public savepoint(string $name): bool
public select_db(string $database): bool
public set_charset(string $charset): bool
public ssl_set(
?string $key,
?string $certificate,
?string $ca_certificate,
?string $ca_path,
?string $cipher_algos
): true
public stat(): string|false
public stmt_init(): mysqli_stmt|false
public store_result(int $mode = 0): mysqli_result|false
public thread_safe(): bool
public use_result(): mysqli_result|false
}

Содержание

  • 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::execute_query — Подготавливает, связывает параметры и выполняет SQL-запрос
  • 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 — Возвращает значение, созданное для столбца AUTO_INCREMENT последним запросом
  • 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::savepoint — Установите именованную точку сохранения транзакции
  • mysqli::select_db — Устанавливает базу данных для выполняемых запросов
  • mysqli::set_charset — Задаёт набор символов
  • 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, PHP 8)

mysqli::$affected_rows -- mysqli_affected_rows — Получает число строк, затронутых предыдущей операцией MySQL

Описание

Объектно-ориентированный стиль

int|string $mysqli->affected_rows;

Процедурный стиль

mysqli_affected_rows(mysqli $mysql): int|string

Возвращает число строк, затронутых последним запросом INSERT, UPDATE, REPLACE или DELETE. Работает аналогично mysqli_num_rows() для выражений SELECT.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Целое число, большее нуля, означает количество затронутых или полученных строк. Ноль означает, что записи для оператора UPDATE не обновлялись, ни одна строка не соответствовала выражению WHERE в запросе или что ни один запрос ещё не был выполнен. -1 означает, что во время выполнения запроса произошла ошибка или что mysqli_affected_rows() была вызвана для небуферизованного запроса SELECT.

Замечание:

Если число затронутых строк больше чем максимальное значение целого числа (PHP_INT_MAX), то число затронутых строк будет возвращено в виде строки.

Примеры

Пример #1 Пример использования $mysqli->affected_rows

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Добавление строк */
$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");

/* Обновление строк */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Затронутые строки (UPDATE): %d\n", $mysqli->affected_rows);

/* Удаление строк */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Затронутые строки (DELETE): %d\n", $mysqli->affected_rows);

/* Выборка всех строк */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Затронутые строки (SELECT): %d\n", $mysqli->affected_rows);

/* Удаление таблицы Language */
$mysqli->query("DROP TABLE Language");
?>

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Добавление строк */
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");

/* Обновление строк */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Затронутые строки (UPDATE): %d\n", mysqli_affected_rows($link));

/* Удаление строк */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Затронутые строки (DELETE): %d\n", mysqli_affected_rows($link));

/* Выборка всех строк */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Затронутые строки (SELECT): %d\n", mysqli_affected_rows($link));

/* Удаление таблицы Language */
mysqli_query($link, "DROP TABLE Language");
?>

Результат выполнения данных примеров:

Затронутые строки (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, PHP 8)

mysqli::autocommit -- mysqli_autocommit — Включает или отключает автоматическую фиксацию изменений базы данных

Описание

Объектно-ориентированный стиль

public mysqli::autocommit(bool $enable): bool

Процедурный стиль

mysqli_autocommit(mysqli $mysql, bool $enable): bool

Включает или отключает режим автоматической фиксации изменений для соединения с базой данных.

Чтобы определить текущее состояние режима, используйте команду SQL SELECT @@autocommit.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

enable

Включает или отключает режим автоматической фиксации изменений.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #1 Пример использования mysqli::autocommit()

Объектно-ориентированный стиль

<?php

/* Указать mysqli выбрасывать исключение в случае возникновения ошибки */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Движок таблиц должен поддерживать транзакции */
$mysqli->query("CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Отключить автоматическую фиксацию */
$mysqli->autocommit(false);

$result = $mysqli->query("SELECT @@autocommit");
$row = $result->fetch_row();
printf("Автоматическая фиксация: %s\n", $row[0]);

try {
/* Подготовить выражение для добавления */
$stmt = $mysqli->prepare('INSERT INTO language(Code, Speakers) VALUES (?,?)');
$stmt->bind_param('ss', $language_code, $native_speakers);

/* Добавление каких-то значений */
$language_code = 'DE';
$native_speakers = 50_123_456;
$stmt->execute();
$language_code = 'FR';
$native_speakers = 40_546_321;
$stmt->execute();

/* Зафиксируйте данные в базе данных. Это не устанавливает autocommit=true */
$mysqli->commit();
print "Зафиксировано 2 строки в базе данных\n";

$result = $mysqli->query("SELECT @@autocommit");
$row = $result->fetch_row();
printf("Автоматическая фиксация: %s\n", $row[0]);

/* Попробуйте вставить больше значений */
$language_code = 'PL';
$native_speakers = 30_555_444;
$stmt->execute();
$language_code = 'DK';
$native_speakers = 5_222_444;
$stmt->execute();

/* Установка autocommit=true вызовет фиксацию */
$mysqli->autocommit(true);

print "Зафиксировано 2 строки в базе данных\n";
} catch (mysqli_sql_exception $exception) {
$mysqli->rollback();

throw $exception;
}

Процедурный стиль

<?php

/* Указать mysqli выбрасывать исключение в случае возникновения ошибки */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Движок таблиц должен поддерживать транзакции */
mysqli_query($mysqli, "CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Отключить автоматическую фиксацию */
mysqli_autocommit($mysqli, false);

$result = mysqli_query($mysqli, "SELECT @@autocommit");
$row = mysqli_fetch_row($result);
printf("Автоматическая фиксация: %s\n", $row[0]);

try {
/* Подготовить выражение для добавления */
$stmt = mysqli_prepare($mysqli, 'INSERT INTO language(Code, Speakers) VALUES (?,?)');
mysqli_stmt_bind_param($stmt, 'ss', $language_code, $native_speakers);

/* Добавление каких-то значений */
$language_code = 'DE';
$native_speakers = 50_123_456;
mysqli_stmt_execute($stmt);
$language_code = 'FR';
$native_speakers = 40_546_321;
mysqli_stmt_execute($stmt);

/* Зафиксируйте данные в базе данных. Это не устанавливает autocommit=true */
mysqli_commit($mysqli);
print "Зафиксировано 2 строки в базе данных\n";

$result = mysqli_query($mysqli, "SELECT @@autocommit");
$row = mysqli_fetch_row($result);
printf("Автоматическая фиксация: %s\n", $row[0]);

/* Попробуйте вставить больше значений */
$language_code = 'PL';
$native_speakers = 30_555_444;
mysqli_stmt_execute($stmt);
$language_code = 'DK';
$native_speakers = 5_222_444;
mysqli_stmt_execute($stmt);

/* Установка autocommit=true вызовет фиксацию */
mysqli_autocommit($mysqli, true);

print "Зафиксировано 2 строки в базе данных\n";
} catch (mysqli_sql_exception $exception) {
mysqli_rollback($mysqli);

throw $exception;
}

Результат выполнения данных примеров:

Автоматическая фиксация: 0
Зафиксировано 2 строки в базе данных
Автоматическая фиксация: 0
Зафиксировано 2 строки в базе данных
Автоматическая фиксация: 0
Зафиксировано 2 строки в базе данных
Автоматическая фиксация: 0
Зафиксировано 2 строки в базе данных

Примечания

Замечание:

Функция не работает с нетранзакционными типами таблиц (такими как MyISAM или ISAM).

Смотрите также

  • 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, PHP 8)

mysqli::begin_transaction -- mysqli_begin_transaction — Стартует транзакцию

Описание

Объектно-ориентированный стиль

public mysqli::begin_transaction(int $flags = 0, ?string $name = null): bool

Процедурный стиль:

mysqli_begin_transaction(mysqli $mysql, int $flags = 0, ?string $name = null): bool

Стартует транзакцию. Требуется InnoDB (разрешён по умолчанию). Для дополнительной информации, как работают транзакции в MySQL, читайте » http://dev.mysql.com/doc/mysql/en/commit.html.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | name теперь допускает значение null.

Примеры

Пример #1 Пример использования mysqli::begin_transaction()

Объектно-ориентированный стиль

<?php

/* Указать mysqli выбрасывать исключение в случае возникновения ошибки */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Движок таблиц должен поддерживать транзакции */
$mysqli->query("CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Начало транзакции */
$mysqli->begin_transaction();

try {
/* Добавление каких-то значений */
$mysqli->query("INSERT INTO language(Code, Speakers) VALUES ('DE', 42000123)");

/* Попытка добавить недопустимые значения */
$language_code = 'FR';
$native_speakers = 'Unknown';
$stmt = $mysqli->prepare('INSERT INTO language(Code, Speakers) VALUES (?,?)');
$stmt->bind_param('ss', $language_code, $native_speakers);
$stmt->execute();

/* Если код достигает этой точки без ошибок, фиксируем данные в базе данных. */
$mysqli->commit();
} catch (mysqli_sql_exception $exception) {
$mysqli->rollback();

throw $exception;
}

Процедурный стиль

<?php

/* Указать mysqli выбрасывать исключение в случае возникновения ошибки */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Движок таблиц должен поддерживать транзакции */
mysqli_query($mysqli, "CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Начало транзакции */
mysqli_begin_transaction($mysqli);

try {
/* Добавление каких-то значений */
mysqli_query($mysqli, "INSERT INTO language(Code, Speakers) VALUES ('DE', 42000123)");

/* Попытка добавить недопустимые значения */
$language_code = 'FR';
$native_speakers = 'Unknown';
$stmt = mysqli_prepare($mysqli, 'INSERT INTO language(Code, Speakers) VALUES (?,?)');
mysqli_stmt_bind_param($stmt, 'ss', $language_code, $native_speakers);
mysqli_stmt_execute($stmt);

/* Если код достигает этой точки без ошибок, фиксируем данные в базе данных. */
mysqli_commit($mysqli);
} catch (mysqli_sql_exception $exception) {
mysqli_rollback($mysqli);

throw $exception;
}

Примечания

Замечание:

Функция не работает с нетранзакционными типами таблиц (такими как MyISAM или ISAM).

Смотрите также

  • 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, PHP 8)

mysqli::change_user -- mysqli_change_user — Позволяет сменить пользователя подключённого к базе данных

Описание

Объектно-ориентированный стиль

public mysqli::change_user(string $username, string $password, ?string $database): bool

Процедурный стиль

mysqli_change_user(
mysqli $mysql,
string $username,
string $password,
?string $database
): bool

Меняет пользователя, от имени которого выполнено подключение к базе данных, и устанавливает текущую базу данных

Для успешной смены пользователя необходимы корректные username и password, а также наличие достаточных прав для работы с базой. Если смена пользователя закончится ошибкой, сохранится текущая авторизация пользователя, до вызова функции.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

username

Имя пользователя для доступа к MySQL

password

Пароль для доступа к MySQL

database

Имя базы данных

Если требуется сменить пользователя без выбора базы данных, следует указывать null. Для выбора базы данных, необходимо использовать функцию mysqli_select_db().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #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, PHP 8)

mysqli::character_set_name -- mysqli_character_set_name — Возвращает текущую кодировку, установленную для соединения с БД

Описание

Объектно-ориентированный стиль

public mysqli::character_set_name(): string

Процедурный стиль

mysqli_character_set_name(mysqli $mysql): string

Возвращает текущую кодировку, установленную для соединения с БД.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Текущая кодировка, установленная для соединения

Примеры

Пример #1 Пример использования mysqli::character_set_name()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Установка кодировки по умолчанию */
$mysqli->set_charset('utf8mb4');

/* Вывод текущей кодировки */
$charset = $mysqli->character_set_name();
printf("Текущая кодировка - %s\n", $charset);
?>

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Установка кодировки по умолчанию */
mysqli_set_charset($mysqli, 'utf8mb4');

/* Вывод текущей кодировки */
$charset = mysqli_character_set_name($mysqli);
printf("Текущая кодировка - %s\n", $charset);

Результат выполнения данных примеров:

Текущая кодировка - utf8mb4

Смотрите также

  • mysqli_set_charset() - Задаёт набор символов
  • mysqli_real_escape_string() - Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения


Закрывает ранее открытое соединение с базой данных

  • « mysqli::character_set_name
  • mysqli::commit »
  • PHP Manual
  • mysqli
  • Закрывает ранее открытое соединение с базой данных

mysqli::close

mysqli_close

(PHP 5, PHP 7, PHP 8)

mysqli::close -- mysqli_close — Закрывает ранее открытое соединение с базой данных

Описание

Объектно-ориентированный стиль

public mysqli::close(): true

Процедурный стиль

mysqli_close(mysqli $mysql): true

Закрывает ранее открытое соединение с базой данных.

Открытые непостоянные соединения MySQL и наборы результатов автоматически закрываются при уничтожении их объектов. Явное закрытие открытых соединений и освобождение наборов результатов не обязательно. Однако рекомендуется закрыть соединение, как только скрипт завершит выполнение всех своих операций с базой данных, если ему ещё предстоит большая обработка после получения результатов.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Функция теперь возвращает значение true. Ранее она возвращала значение false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::close()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$result = $mysqli->query("SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");

/* Закройте соединение, как только оно становится ненужным */
$mysqli->close();

foreach ($result as $row) {
/* Обработка данных, полученных из базы данных */
}

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$result = mysqli_query($mysqli, "SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");

/* Закройте соединение, как только оно становится ненужным */
mysqli_close($mysqli);

foreach ($result as $row) {
/* Обработка данных, полученных из базы данных */
}

Примечания

Замечание:

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, PHP 8)

mysqli::commit -- mysqli_commit — Фиксирует текущую транзакцию

Описание

Объектно-ориентированный стиль

public mysqli::commit(int $flags = 0, ?string $name = null): bool

Процедурный стиль

mysqli_commit(mysqli $mysql, int $flags = 0, ?string $name = null): bool

Фиксирует транзакцию для установленного соединения с базой данных.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

flags

Битмаска констант MYSQLI_TRANS_COR_*.

name

Если передан, то выполняется COMMIT/*name*/.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Список изменений

Версия | Описание
8.0.0 | name теперь допускает значение null.

Примеры

Смотрите пример использования в разделе mysqli::begin_transaction().

Примечания

Замечание:

Функция не работает с нетранзакционными типами таблиц (такими как MyISAM или ISAM).

Смотрите также

  • 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, PHP 8)

mysqli::$connect_errno -- mysqli_connect_errno — Возвращает код ошибки последней попытки соединения

Описание

Объектно-ориентированный стиль

int $mysqli->connect_errno;

Процедурный стиль

mysqli_connect_errno(): int

Возвращает код ошибки последней попытки подключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Код ошибки последней попытки подключения. При отсутствие ошибок выводит 0.

Примеры

Пример #1 Пример использования $mysqli->connect_errno

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_OFF);

/* @ используется для подавления предупреждений */
$mysqli = @new mysqli('localhost', 'fake_user', 'wrong_password', 'does_not_exist');

if ($mysqli->connect_errno) {
/* Используйте предпочитаемый вами метод регистрации ошибок */
error_log('Ошибка соединения: ' . $mysqli->connect_errno);
}
?>

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_OFF);

/* @ is used to suppress warnings */
$link = @mysqli_connect('localhost', 'fake_user', 'wrong_password', 'does_not_exist');

if (!$link) {
/* Используйте предпочитаемый вами метод регистрации ошибок */
error_log('Ошибка соединения: ' . mysqli_connect_errno());
}
?>

Смотрите также

  • 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, PHP 8)

mysqli::$connect_error -- mysqli_connect_error — Возвращает описание последней ошибки подключения

Описание

Объектно-ориентированный стиль

?string $mysqli->connect_error;

Процедурный стиль

mysqli_connect_error(): ?string

Возвращает сообщение об ошибке последней попытки подключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сообщение об ошибке. null, если ошибка отсутствует.

Примеры

Пример #1 Пример использования $mysqli->connect_error

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_OFF);

/* @ используется для подавления предупреждений */
$mysqli = @new mysqli('localhost', 'fake_user', 'wrong_password', 'does_not_exist');

if ($mysqli->connect_error) {
/* Используйте предпочитаемый вами метод регистрации ошибок */
error_log('Ошибка при подключении: ' . $mysqli->connect_error);
}
?>

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_OFF);

/* @ используется для подавления предупреждений */
$link = @mysqli_connect('localhost', 'fake_user', 'wrong_password', 'does_not_exist');

if (!$link) {
/* Используйте предпочитаемый вами метод регистрации ошибок */
error_log('Ошибка при подключении: ' . 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, PHP 8)

mysqli::__construct -- mysqli::connect -- mysqli_connect — Устанавливает новое соединение с сервером MySQL

Описание

Объектно-ориентированный стиль

public mysqli::__construct(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
)
public mysqli::connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
): bool

Процедурный стиль

mysqli_connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
): mysqli|false

Устанавливает соединение с работающим сервером MySQL.

Список параметров

hostname

Может быть либо именем хоста, либо IP-адресом. При передаче null, значение извлекается из mysqli.default_host. По возможности вместо протокола TCP/IP будут использоваться каналы. Протокол TCP/IP используется, если указаны и имя хоста и номер порта, например, localhost:3308.

Если перед именем хоста задать строку p:, то будет открыто постоянное соединение. Если соединение открыто из пула подключений, будет автоматически вызвана функция mysqli_change_user().

username

Имя пользователя MySQL или null для принятия имени пользователя на основе ini-опции mysqli.default_user.

password

Пароль MySQL или null для принятия пароля на основе ini-опции mysqli.default_pw.

database

База данных по умолчанию, которая будет использоваться при выполнении запросов или null.

port

Номер порта для попытки подключения к серверу MySQL или null для принятия порта на основе ini-опции mysqli.default_port.

socket

Сокет или именованный пайп, который необходимо использовать или null для принятия сокета на основе ini-опции mysqli.default_socket.

Замечание:

Передача параметра socket не будет явно задавать тип соединения при подключении к серверу MySQL. То, как будет устанавливаться соединение с MySQL-сервером, определяется параметром hostname.

Возвращаемые значения

mysqli_connect() возвращает объект, который представляет соединение с сервером MySQL или false в случае возникновения ошибки.

mysqli::connect() возвращает true в случае успешного выполнения или false в случае возникновения ошибки. До PHP 8.1.0 в случае успешного выполнения возвращалось значение null.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Список изменений

Версия | Описание
8.1.0 | Метод mysqli::connect() теперь возвращает значение true вместо null в случае успешного выполнения.
7.4.0 | Все параметры теперь допускают значение null

Примеры

Пример #1 Пример использования mysqli::__construct()

Объектно-ориентированный стиль

<?php

/* Вы должны включить отчёт об ошибках для mysqli, прежде чем пытаться установить соединение */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

/* Установите желаемую кодировку после установления соединения */
$mysqli->set_charset('utf8mb4');

printf("Успешно... %s\n", $mysqli->host_info);
?>

Процедурный стиль

<?php

/* Вы должны включить отчёт об ошибках для mysqli, прежде чем пытаться установить соединение */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

/* Установите желаемую кодировку после установления соединения */
mysqli_set_charset($mysqli, 'utf8mb4');

printf("Успешно... %s\n", mysqli_get_host_info($mysqli));

Результатом выполнения данных примеров будет что-то подобное:

Успешно... localhost via TCP/IP

Пример #2 Расширение класса mysqli

<?php

class FooMysqli extends mysqli {
public function __construct($host, $user, $pass, $db, $port, $socket, $charset) {
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
parent::__construct($host, $user, $pass, $db, $port, $socket);
$this->set_charset($charset);
}
}

$db = new FooMysqli('localhost', 'my_user', 'my_password', 'my_db', 3306, null, 'utf8mb4');

Пример #3 Ручная обработка ошибок

Если отчёты об ошибках отключены, разработчик несёт ответственность за проверку и обработку ошибок

Объектно-ориентированный стиль

<?php

error_reporting(0);
mysqli_report(MYSQLI_REPORT_OFF);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
if ($mysqli->connect_errno) {
throw new RuntimeException('ошибка соединения mysqli: ' . $mysqli->connect_error);
}

/* Установите желаемую кодировку после установления соединения */
$mysqli->set_charset('utf8mb4');
if ($mysqli->errno) {
throw new RuntimeException('ошибка mysqli: ' . $mysqli->error);
}

Процедурный стиль

<?php

error_reporting(0);
mysqli_report(MYSQLI_REPORT_OFF);
$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
if (mysqli_connect_errno()) {
throw new RuntimeException('ошибка соединения mysqli: ' . mysqli_connect_error());
}

/* Установите желаемую кодировку после установления соединения */
mysqli_set_charset($mysqli, 'utf8mb4');
if (mysqli_errno($mysqli)) {
throw new RuntimeException('ошибка mysqli: ' . mysqli_error($mysqli));
}

Примечания

Замечание:

MySQLnd всегда подразумевает кодировку, которую использует по умолчанию сервер. Эта кодировка передаётся во время установки соединения/авторизации, которые использует mysqlnd.

Libmysqlclient по умолчанию использует кодировку, установленную в файле my.cnf или явным вызовом функции mysqli_options() до вызова функции mysqli_real_connect(), но после вызова функции mysqli_connect().

Замечание:

Если используется Объектно-ориентированный стиль: Если соединение установить не удалось, метод всё равно вернёт объект. Проверить успешность создания подключения можно либо функцией 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, PHP 8)

mysqli::debug -- mysqli_debug — Выполняет процедуры отладки

Описание

Объектно-ориентированный стиль

public mysqli::debug(string $options): true

Процедурный стиль

mysqli_debug(string $options): true

Выполняет процедуры отладки, используя библиотеку Fred Fish.

Список параметров

options

Строка, содержащая выполняемую процедуру отладки

Строка управления отладкой — это последовательность полей, разделённых двоеточиями, как показано ниже:

<field_1>:<field_2>:<field_N>
Каждое поле состоит из обязательного символа флага, за которым следует необязательный символ , и список модификаторов, разделённый запятыми: flag[,modifier,modifier,...,modifier]

Допустимые символы флагов
Символ options | Описание
O | MYSQLND_DEBUG_FLUSH
A/a | MYSQLND_DEBUG_APPEND
F | MYSQLND_DEBUG_DUMP_FILE
i | MYSQLND_DEBUG_DUMP_PID
L | MYSQLND_DEBUG_DUMP_LINE
m | MYSQLND_DEBUG_TRACE_MEMORY_CALLS
n | MYSQLND_DEBUG_DUMP_LEVEL
o | вывод в файл
T | MYSQLND_DEBUG_DUMP_TIME
t | MYSQLND_DEBUG_DUMP_TRACE
x | MYSQLND_DEBUG_PROFILE_CALLS

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Функция теперь возвращает значение true. Ранее она возвращала значение false в случае возникновения ошибки.

Примеры

Пример #1 Генерация файла трассировки

<?php

/* Создать файл трассировки в '/tmp/client.trace' на локальной машине (клиенте): */
mysqli_debug("d:t:o,/tmp/client.trace");

?>

Примечания

Замечание:

Чтобы функция mysqli_debug() была доступна, необходимо скомпилировать клиентскую библиотеку MySQL с поддержкой отладки.

Смотрите также

  • 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, PHP 8)

mysqli::dump_debug_info -- mysqli_dump_debug_info — Журналирование отладочной информации

Описание

Объектно-ориентированный стиль

public mysqli::dump_debug_info(): bool

Процедурный стиль

mysqli_dump_debug_info(mysqli $mysql): bool

Функция разработана для запуска от имени пользователя с привилегиями SUPER и используется для сборки отладочной информации в журнал сервера MySQL, к которому произведено подключение.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • mysqli_debug() - Выполняет процедуры отладки


Возвращает код ошибки последнего вызова функции

  • « mysqli::dump_debug_info
  • mysqli::$error_list »
  • PHP Manual
  • mysqli
  • Возвращает код ошибки последнего вызова функции

mysqli::$errno

mysqli_errno

(PHP 5, PHP 7, PHP 8)

mysqli::$errno -- mysqli_errno — Возвращает код ошибки последнего вызова функции

Описание

Объектно-ориентированный стиль

int $mysqli->errno;

Процедурный стиль

mysqli_errno(mysqli $mysql): int

Возвращает код ошибки последнего вызова функции MySQLi, завершившейся успешным выполнением или ошибкой.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Код ошибки последнего вызова функции в случае провала. При отсутствие ошибок выводит 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, PHP 8)

mysqli::$error_list -- mysqli_error_list — Возвращает список ошибок выполнения последней запущенной команды

Описание

Объектно-ориентированный стиль

array $mysqli->error_list;

Процедурный стиль

mysqli_error_list(mysqli $mysql): array

Возвращает массив ошибок последнего вызова функции MySQLi, которая может завершать работу успехом или неудачей.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Список ошибок, каждая из которых представлена ассоциативным массивом (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::execute_query »
  • PHP Manual
  • mysqli
  • Возвращает строку с описанием последней ошибки

mysqli::$error

mysqli_error

(PHP 5, PHP 7, PHP 8)

mysqli::$error -- mysqli_error — Возвращает строку с описанием последней ошибки

Описание

Объектно-ориентированный стиль

string $mysqli->error;

Процедурный стиль

mysqli_error(mysqli $mysql): string

Возвращает сообщение об ошибке последнего вызова функции MySQLi, который может успешно выполниться или провалиться.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Строка с описанием ошибки. Пустая строка, если ошибки нет.

Примеры

Пример #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 операции


Подготавливает, связывает параметры и выполняет SQL-запрос

  • « mysqli::$error
  • mysqli::$field_count »
  • PHP Manual
  • mysqli
  • Подготавливает, связывает параметры и выполняет SQL-запрос

mysqli::execute_query

mysqli_execute_query

(PHP 8 >= 8.2.0)

mysqli::execute_query -- mysqli_execute_query — Подготавливает, связывает параметры и выполняет SQL-запрос

Описание

Объектно-ориентированный стиль

public mysqli::execute_query(string $query, ?array $params = null): mysqli_result|bool

Процедурный стиль

mysqli_execute_query(mysqli $mysql, string $query, ?array $params = null): mysqli_result|bool

Подготавливает SQL-запрос, связывает параметры и выполняет его.
Метод mysqli::execute_query() является сокращением для
mysqli::prepare(),
mysqli_stmt::bind_param(),
mysqli_stmt::execute()
и mysqli_stmt::get_result().

У шаблона запроса может быть ноль или более маркеров параметров со знаком вопроса (?), которые также называются заполнителями. Значения параметров должны быть представлены в виде массива (array), переданного в параметр params.

Подготовленный запрос создаётся под капотом, но он никогда не выводится за пределы функции. Невозможно получить доступ к свойствам запроса, как это можно сделать с объектом mysqli_stmt. Из-за этого ограничения информация о состоянии копируется в объект mysqli и доступна с помощью его методов, например, mysqli_affected_rows() или mysqli_error().

Замечание:

В случае, когда функции mysqli_execute_query() передаётся запрос, длина которого превышает max_allowed_packet сервера, возвращаемые коды ошибок различаются в зависимости от операционной системы. Поведение следующее:

  • В Linux возвращается код ошибки 1153. Сообщение об ошибке означает, что получен пакет размером более max_allowed_packet (got a packet bigger than max_allowed_packet bytes).

  • В Windows возвращается код ошибки 2006. Сообщение об ошибке означает, что сервер недоступен (server has gone away).

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

query

Запрос в виде строки. Он должен состоять из одного SQL-запроса.

SQL-запрос может содержать ноль или более маркеров параметров, представленных символами вопросительного знака (?) в соответствующих позициях.

Замечание:

Эти метки можно встраивать только в определённые места в выражении. Например, они разрешены в списке VALUES() выражения INSERT (чтобы задать значения столбцов для строки), или в операциях сравнения предложения WHERE для задания сравниваемого значения. Однако они не разрешены в качестве идентификаторов (таких как имена таблиц или столбцов).

params

Необязательный список в виде массива (array) с таким количеством элементов, сколько связанных параметров в выполняемом SQL-запросе. Каждое значение рассматривается как строка (string).

Возвращаемые значения

Возвращает false в случае возникновения ошибки. Для успешных запросов, создающих набор результатов, таких как SELECT, SHOW, DESCRIBE или EXPLAIN, возвращает объект mysqli_result. Для других успешных запросов возвращается true.

Примеры

Пример #1 Пример использования mysqli::execute_query()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$query = 'SELECT Name, District FROM City WHERE CountryCode=? ORDER BY Name LIMIT 5';
$result = $mysqli->execute_query($query, ['DEU']);
foreach ($result as $row) {
printf("%s (%s)\n", $row["Name"], $row["District"]);
}

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = 'SELECT Name, District FROM City WHERE CountryCode=? ORDER BY Name LIMIT 5';
$result = mysqli_execute_query($link, $query, ['DEU']);
foreach ($result as $row) {
printf("%s (%s)\n", $row["Name"], $row["District"]);
}

Результатом выполнения данных примеров будет что-то подобное:

Aachen (Nordrhein-Westfalen)
Augsburg (Baijeri)
Bergisch Gladbach (Nordrhein-Westfalen)
Berlin (Berliini)
Bielefeld (Nordrhein-Westfalen)

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_execute() - Выполняет подготовленное утверждение
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса в виде объекта mysqli_result


Возвращает число столбцов, затронутых последним запросом

  • « mysqli::execute_query
  • mysqli::get_charset »
  • PHP Manual
  • mysqli
  • Возвращает число столбцов, затронутых последним запросом

mysqli::$field_count

mysqli_field_count

(PHP 5, PHP 7, PHP 8)

mysqli::$field_count -- mysqli_field_count — Возвращает число столбцов, затронутых последним запросом

Описание

Объектно-ориентированный стиль

int $mysqli->field_count;

Процедурный стиль

mysqli_field_count(mysqli $mysql): int

Возвращает число столбцов, затронутых последним запросом для соединения, указанного в mysql. Эта функция может быть полезной при использовании mysqli_store_result() для того, чтобы определить выдан ли непустой результат, или в случае неизвестного назначения запроса.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Целое число, содержащее число полей в результате запроса.

Примеры

Пример #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, PHP 8)

mysqli::get_charset -- mysqli_get_charset — Возвращает объект, описывающий кодировку

Описание

Объектно-ориентированный стиль

public mysqli::get_charset(): ?object

Процедурный стиль

mysqli_get_charset(mysqli $mysql): ?object

Возвращает объект, содержащий свойства текущей кодировки.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Функция возвращает объект с следующими свойствами:

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, PHP 8)

mysqli::$client_info -- mysqli::get_client_info -- mysqli_get_client_info — Получает информацию о клиенте MySQL

Описание

Объектно-ориентированный стиль

string $mysqli->client_info;
public mysqli::get_client_info(): string

Процедурный стиль

mysqli_get_client_info(?mysqli $mysql = null): string

Возвращает строку, содержащую версию клиентской библиотеки MySQL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка, содержащая версию клиентской библиотеки MySQL.

Список изменений

Версия | Описание
8.1.0 | Вызов функции mysqli_get_client_info() с аргументом mysql устарел. Функция никогда не требовала параметра, но неправильно позволяла его в качестве необязательного параметра.
8.1.0 | Объектно-ориентированный стиль вызова метода mysqli::get_client_info() устарел.

Примеры

Пример #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, PHP 8)

mysqli::$client_version -- mysqli_get_client_version — Возвращает информацию о клиенте MySQL в виде строки

Описание

Объектно-ориентированный стиль

int $mysqli->client_version;

Процедурный стиль

mysqli_get_client_version(): 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, PHP 8)

mysqli::get_connection_stats -- mysqli_get_connection_stats — Возвращает статистику соединения с клиентом

Описание

Объектно-ориентированный стиль

public mysqli::get_connection_stats(): array

Процедурный стиль

mysqli_get_connection_stats(mysqli $mysql): array

Возвращает статистику соединения с клиентом.

Замечание:

Доступно только с модулем mysqlnd.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Возвращает массив статистики соединения.

Примеры

Пример #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, PHP 8)

mysqli::$host_info -- mysqli_get_host_info — Возвращает строку, содержащую тип используемого соединения

Описание

Объектно-ориентированный стиль

string $mysqli->host_info;

Процедурный стиль

mysqli_get_host_info(mysqli $mysql): string

Возвращает строку, описывающую соединение, которое обозначено в параметре mysql (включая имя хоста сервера).

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Символьная строка, содержащая имя хоста сервера и тип подключения.

Примеры

Пример #1 Пример использования $mysqli->host_info

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* вывод информации о хосте */
printf("Информация о хосте: %s\n", $mysqli->host_info);
?>

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* вывод информации о хосте */
printf("Информация о хосте: %s\n", mysqli_get_host_info($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, PHP 8)

mysqli::$protocol_version -- mysqli_get_proto_info — Возвращает версию используемого MySQL протокола

Описание

Объектно-ориентированный стиль

int $mysqli->protocol_version;

Процедурный стиль

mysqli_get_proto_info(mysqli $mysql): int

Возвращает целое число, представляющее собой версию протокола MySQL, используемого для соединения, переданного в mysql.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Возвращает целое число, представляющее версию протокола.

Примеры

Пример #1 Пример использования $mysqli->protocol_version

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* Вывести версию протокола */
printf("Версия протокола: %d\n", $mysqli->protocol_version);
?>

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password");

/* Вывести версию протокола */
printf("Версия протокола: %d\n", mysqli_get_proto_info($link));
?>

Результат выполнения данных примеров:

Версия протокола: 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, PHP 8)

mysqli::$server_info -- mysqli::get_server_info -- mysqli_get_server_info — Возвращает версию MySQL сервера

Описание

Объектно-ориентированный стиль

string $mysqli->server_info;
public mysqli_stmt::get_server_info(): string

Процедурный стиль

mysqli_get_server_info(mysqli $mysql): string

Возвращает строку, содержащую версию сервера MySQL, к которому также подключён модуль MySQLi.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Строка символов, содержащая версию сервера.

Примеры

Пример #1 Пример использования $mysqli->server_info

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* выводим версию сервера */
printf("Версия сервера: %s\n", $mysqli->server_info);
?>

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password");

/* выводим версию сервера */
printf("Версия сервера: %s\n", mysqli_get_server_info($link));
?>

Результат выполнения данных примеров:

Версия сервера: 8.0.21

Смотрите также

  • 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, PHP 8)

mysqli::$server_version -- mysqli_get_server_version — Возвращает версию сервера MySQL, представленную в виде integer

Описание

Объектно-ориентированный стиль

int $mysqli->server_version;

Процедурный стиль

mysqli_get_server_version(mysqli $mysql): int

Функция mysqli_get_server_version() возвращает версию сервера, к которому создано соединение (переданное в параметре mysql) в виде целого числа.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Целочисленное представление версии сервера.

Это число собирается следующим образом main_version * 10000 + minor_version * 100 + sub_version (т.е. версия 4.1.0 будет представлена как 40100).

Примеры

Пример #1 Пример использования $mysqli->server_version

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* выводим версию сервера */
printf("Версия сервера: %d\n", $mysqli->server_version);
?>

Процедурный стиль

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password");

/* выводим версию сервера */
printf("Версия сервера: %d\n", mysqli_get_server_version($link));
?>

Результат выполнения данных примеров:

Версия сервера: 80021

Смотрите также

  • 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, PHP 8)

mysqli::get_warnings -- mysqli_get_warnings — Получает результат SHOW WARNINGS

Описание

Объектно-ориентированный стиль

public mysqli::get_warnings(): mysqli_warning|false

Процедурный стиль

mysqli_get_warnings(mysqli $mysql): mysqli_warning|false
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.


Извлекает информацию о последнем выполненном запросе

  • « mysqli::get_warnings
  • mysqli::init »
  • PHP Manual
  • mysqli
  • Извлекает информацию о последнем выполненном запросе

mysqli::$info

mysqli_info

(PHP 5, PHP 7, PHP 8)

mysqli::$info -- mysqli_info — Извлекает информацию о последнем выполненном запросе

Описание

Объектно-ориентированный стиль

?string $mysqli->info;

Процедурный стиль

mysqli_info(mysqli $mysql): ?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() вернёт пустую строку.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Строка символов представляющая дополнительную информацию о последнем запущенном запросе.

Примеры

Пример #1 Пример использования $mysqli->info

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$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);
?>

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

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));
?>

Результат выполнения данных примеров:

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, PHP 8)

mysqli::init -- mysqli_init — Инициализирует MySQLi и возвращает объект для использования в функции mysqli_real_connect()

Описание

Объектно-ориентированный стиль

public mysqli::init(): ?bool

Процедурный стиль

mysqli_init(): mysqli|false

Выделяет память или инициализирует объект MYSQL, пригодный для использования в функциях mysqli_options().

Замечание:

Любые последующие вызовы mysqli-функций с этим ресурсом (кроме mysqli_options()) потерпят неудачу, пока не будет вызвана функция mysqli_real_connect().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод mysqli::init() возвращает null в случае успешного выполнения или false в случае возникновения ошибки. Функция mysqli_init() возвращает объект в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Объектно-ориентированный стиль вызова метода mysqli::init() устарел. Замените вызов метода parent::init() с помощью parent::__construct().

Примеры

Смотрите mysqli_real_connect().

Смотрите также

  • mysqli_options() - Установка настроек
  • mysqli_close() - Закрывает ранее открытое соединение с базой данных
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql
  • mysqli_connect() - Псевдоним mysqli::__construct


Возвращает значение, созданное для столбца AUTO_INCREMENT последним запросом

  • « mysqli::init
  • mysqli::kill »
  • PHP Manual
  • mysqli
  • Возвращает значение, созданное для столбца AUTO_INCREMENT последним запросом

mysqli::$insert_id

mysqli_insert_id

(PHP 5, PHP 7, PHP 8)

mysqli::$insert_id -- mysqli_insert_id — Возвращает значение, созданное для столбца AUTO_INCREMENT последним запросом

Описание

Объектно-ориентированный стиль

int|string $mysqli->insert_id;

Процедурный стиль

mysqli_insert_id(mysqli $mysql): int|string

Возвращает идентификатор, сгенерированный запросом INSERT или UPDATE для таблицы со столбцом, имеющим атрибут AUTO_INCREMENT. В случае многострочного оператора INSERT он возвращает первое автоматически сгенерированное значение, которое было успешно добавлено.

Выполнение запроса INSERT или UPDATE с использованием MySQL-функции LAST_INSERT_ID() также изменит значение, возвращаемое mysqli_insert_id(). Если LAST_INSERT_ID(expr) использовался для генерации значения AUTO_INCREMENT, он возвращает значение последнего expr вместо сгенерированного значения AUTO_INCREMENT.

Возвращает 0, если предыдущий оператор не изменил значение AUTO_INCREMENT. mysqli_insert_id() должен вызываться сразу после запроса, сгенерировавшего значение.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Значение поля AUTO_INCREMENT, которое было затронуто предыдущим запросом. Возвращает ноль, если предыдущий запрос не затронул таблицы, содержащие поле AUTO_INCREMENT.

Только запросы, выданные с использованием текущего соединения, влияют на возвращаемое значение. На значение не влияют запросы, выданные с использованием других подключений или клиентов.

Замечание:

Если число больше максимального значения целого числа, функция вернёт строку.

Примеры

Пример #1 Пример функции $mysqli->insert_id

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$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");

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

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");

Результат выполнения данных примеров:

ID новой записи: 1.


Запрос для сервера завершить выполнение процесса MySQL

  • « mysqli::$insert_id
  • mysqli::more_results »
  • PHP Manual
  • mysqli
  • Запрос для сервера завершить выполнение процесса MySQL

mysqli::kill

mysqli_kill

(PHP 5, PHP 7, PHP 8)

mysqli::kill -- mysqli_kill — Запрос для сервера завершить выполнение процесса MySQL

Описание

Объектно-ориентированный стиль

public mysqli::kill(int $process_id): bool

Процедурный стиль

mysqli_kill(mysqli $mysql, int $process_id): bool

Эта функция используется, чтобы отправить на сервер команду завершить MySQL процесс заданный параметром process_id. Значение этого параметра должно быть получено с помощью функции mysqli_thread_id().

Для завершения работы текущего запроса используйте SQL команду KILL QUERY processid.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #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, PHP 8)

mysqli::more_results -- mysqli_more_results — Проверка, есть ли ещё результаты в мультизапросе

Описание

Объектно-ориентированный стиль

public mysqli::more_results(): bool

Процедурный стиль

mysqli_more_results(mysqli $mysql): bool

Указывает, есть ли ещё доступные результирующие наборы от предыдущего вызова функции mysqli_multi_query().

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Возвращается 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, PHP 8)

mysqli::multi_query -- mysqli_multi_query — Выполняет один или несколько запросов к базе данных

Описание

Объектно-ориентированный стиль

public mysqli::multi_query(string $query): bool

Процедурный стиль

mysqli_multi_query(mysqli $mysql, string $query): bool

Запускает на выполнение один или несколько запросов, перечисленных через точку с запятой.

Внимание

Предупреждение безопасности: SQL-инъекция

Вместо составления строки запроса с включением переменных значений необходимо подготавливать запросы. Либо строки запроса должны быть экранированы функцией mysqli_real_escape_string() и правильно отформатированы.

Запросы отправляются асинхронно за один вызов базы данных, но база данных обрабатывает их последовательно. mysqli_multi_query() ожидает завершения первого запроса, прежде чем вернуть управление PHP. Затем сервер MySQL обработает следующий запрос в последовательности. Как только следующий результат будет готов, MySQL будет ждать следующего выполнения mysqli_next_result() из PHP.

Для обработки нескольких запросов рекомендуется использовать do-while. Соединение будет занято до тех пор, пока все запросы не будут завершены и их результаты не будут загружены в PHP. Никакой другой оператор не может быть выдан в том же соединении, пока не будут обработаны все запросы. Чтобы перейти к следующему запросу в последовательности, используйте mysqli_next_result(). Если следующий результат ещё не готов, mysqli будет ждать ответа от сервера MySQL. Чтобы проверить, есть ли ещё результаты, используйте mysqli_more_results().

Для запросов, которые производят набор результатов, таких как SELECT, SHOW, DESCRIBE или EXPLAIN, mysqli_use_result() или mysqli_store_result() может использоваться для получения набора результатов. Для запросов, которые не производят набор результатов, те же функции могут использоваться для получения информации, такой как количество затронутых строк.

Подсказка

Выполнение запросов CALL для хранимых процедур может дать несколько наборов результатов. Если хранимая процедура содержит запросы SELECT, наборы результатов возвращаются в том порядке, в котором они создаются при выполнении процедуры. В общем, вызывающая функция не может знать, сколько наборов результатов вернёт процедура, и должна быть готова получить несколько результатов. Конечный результат процедуры - это результат статуса, который не включает набор результатов. Статус показывает, была ли процедура успешной или произошла ошибка.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

query

Строка, содержащая запросы, которые нужно выполнить. Несколько запросов следует разделять точкой с запятой.

Возвращаемые значения

Возвращает false, если первое выражение вызвало ошибку. Чтобы получить доступ к ошибкам остальных подзапросов, нужно сначала вызвать функцию mysqli_next_result().

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #1 Пример использования mysqli::multi_query()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* выполнение нескольких запросов */
$mysqli->multi_query($query);
do {
/* сохранить набор результатов в PHP */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
}
/* вывести разделитель */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* выполнение нескольких запросов */
mysqli_multi_query($link, $query);
do {
/* сохранить набор результатов в PHP */
if ($result = mysqli_store_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
}
/* вывести разделитель */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (mysqli_next_result($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, PHP 8)

mysqli::next_result -- mysqli_next_result — Подготовка следующего доступного результирующего набора из multi_query

Описание

Объектно-ориентированный стиль

public mysqli::next_result(): bool

Процедурный стиль

mysqli_next_result(mysqli $mysql): bool

Подготавливает следующий доступный результирующий набор предыдущего вызова
функции mysqli_multi_query(), который затем можно получить
функциями mysqli_store_result() или
mysqli_use_result().

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Также возвращает false, если следующий оператор привёл к ошибке, в отличие от mysqli_more_results().

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Смотрите 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, PHP 8)

mysqli::options -- mysqli_options — Установка настроек

Описание

Объектно-ориентированный стиль

public mysqli::options(int $option, string|int $value): bool

Процедурный стиль

mysqli_options(mysqli $mysql, int $option, string|int $value): bool

Используется для установки дополнительных настроек соединения и поведения подключения к базе данных.

Эту функцию можно вызывать неоднократно, чтобы задать несколько настроек.

mysqli_options() нужно вызывать после
mysqli_init() и перед
mysqli_real_connect().

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

option

Настройка, которую требуется установить. Это может быть одно из следующих значений:

Допустимые настройки
Имя | Описание
MYSQLI_OPT_CONNECT_TIMEOUT | Время ожидания соединения в секундах
MYSQLI_OPT_READ_TIMEOUT | Время ожидания результата выполнения команды в секундах. Доступно с PHP 7.2.0.
MYSQLI_OPT_LOCAL_INFILE | Включение/выключение LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND | Команда, которую требуется выполнить сразу после подключения к серверу MySQL
MYSQLI_SET_CHARSET_NAME | Кодировка, которая будет установлена по умолчанию.
MYSQLI_READ_DEFAULT_FILE | Читать настройки из именованного файла вместо my.cnf Не поддерживается mysqlnd.
MYSQLI_READ_DEFAULT_GROUP | Читать настройки из именованной группы в файле my.cnf или другом файле, заданным настройкой MYSQL_READ_DEFAULT_FILE. Не поддерживается mysqlnd.
MYSQLI_SERVER_PUBLIC_KEY | Файл публичного ключа RSA для авторизации на базе SHA-256.
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 в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Смотрите mysqli_real_connect().

Примечания

Замечание:

MySQLnd всегда подразумевает кодировку, которую использует по умолчанию сервер. Эта кодировка передаётся во время установки соединения/авторизации, которые использует mysqlnd.

Libmysqlclient по умолчанию использует кодировку, установленную в файле my.cnf или явным вызовом функции mysqli_options() до вызова функции mysqli_real_connect(), но после вызова функции mysqli_connect().

Смотрите также

  • 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, PHP 8)

mysqli::ping -- mysqli_ping — Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано

Описание

Объектно-ориентированный стиль

public mysqli::ping(): bool

Процедурный стиль

mysqli_ping(mysqli $mysql): bool

Проверяет работоспособность соединения с сервером. Если соединение разорвано, а глобальная настройка mysqli.reconnect включена, PHP попытается автоматически переподключиться.

Замечание: Настройка php.ini mysqli.reconnect игнорируется драйвером "mysqlnd", так что автоматического переподключения не произойдёт.

Эта функция может использоваться клиентами, которые простаивают без дела долгое время, чтобы проверить, что сервер их не отключил, и переподключиться в случае необходимости.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #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, PHP 8)

mysqli::poll -- mysqli_poll — Опрос подключений

Описание

Объектно-ориентированный стиль

public static mysqli::poll(
?array &$read,
?array &$error,
array &$reject,
int $seconds,
int $microseconds = 0
): int|false

Процедурный стиль

mysqli_poll(
?array &$read,
?array &$error,
array &$reject,
int $seconds,
int $microseconds = 0
): int|false

Опрос подключений. Метод может использоваться как статический.

Замечание:

Доступно только с модулем mysqlnd.

Список параметров

read

Список соединений для проверки наличия оставшихся результатов, которые можно прочитать.

error

Список соединений, на которых произошли ошибки, например, не удался запрос или соединение было потеряно.

reject

Список соединений, которые были отклонены, потому что на них не был запущен асинхронный запрос, с которым функция может получить результат опроса.

seconds

Максимальное количество секунд ожидания, должно быть неотрицательным.

microseconds

Максимальное количество миллисекунд ожидания, должно быть неотрицательным.

Возвращаемые значения

Возвращает количество готовых к работе соединений в случае успешного выполнения, 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, PHP 8)

mysqli::prepare -- mysqli_prepare — Подготавливает SQL выражение к выполнению

Описание

Объектно-ориентированный стиль

public mysqli::prepare(string $query): mysqli_stmt|false

Процедурный стиль

mysqli_prepare(mysqli $mysql, string $query): mysqli_stmt|false

Подготавливает SQL-запрос и возвращает указатель на это выражение, который может использоваться для дальнейших операций с этим выражением. Запрос должен состоять из одного SQL-выражения.

Шаблон оператора может содержать ноль или несколько вопросительных знаков (?), меток параметров?, также называемых заполнителями. Метки параметров должны быть привязаны к переменным приложения с помощью mysqli_stmt_bind_param() перед выполнением выражения.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

query

Текст запроса в виде строки. Должен состоять из одного SQL-выражения.

Выражение SQL может содержать ноль или более меток параметров, представленных знаками вопроса (?) в соответствующих позициях.

Замечание:

Эти метки можно встраивать только в определённые места в выражении. Например, они разрешены в списке VALUES() выражения INSERT (чтобы задать значения столбцов для строки), или в операциях сравнения предложения WHERE для задания сравниваемого значения. Однако они не разрешены в качестве идентификаторов (таких как имена таблиц или столбцов).

Возвращаемые значения

mysqli_prepare() возвращает объект запроса или false в случае ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #1 Пример использования mysqli::prepare()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";

/* создание подготавливаемого запроса */
$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);

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";

/* создание подготавливаемого запроса */
$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);
?>

Результат выполнения данных примеров:

Amersfoort находится в округе Utrecht

Смотрите также

  • mysqli_stmt_execute() - Выполняет подготовленное утверждение
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата
  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса в виде объекта mysqli_result
  • mysqli_stmt_close() - Закрывает подготовленный запрос


Выполняет запрос к базе данных

  • « mysqli::prepare
  • mysqli::real_connect »
  • PHP Manual
  • mysqli
  • Выполняет запрос к базе данных

mysqli::query

mysqli_query

(PHP 5, PHP 7, PHP 8)

mysqli::query -- mysqli_query — Выполняет запрос к базе данных

Описание

Объектно-ориентированный стиль

public mysqli::query(string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool

Процедурный стиль

mysqli_query(mysqli $mysql, string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool

Выполняет запрос query к базе данных.

Внимание

Предупреждение безопасности: SQL-инъекция

Вместо составления строки запроса с включением переменных значений необходимо подготавливать запросы. Либо строки запроса должны быть экранированы функцией mysqli_real_escape_string() и правильно отформатированы.

Для не 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. Это сообщение об ошибке означает отказ сервера.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

query

Текст запроса.

result_mode

Режим результата может быть одной из 3 констант, указывающих, как результат будет возвращён сервером MySQL.

MYSQLI_STORE_RESULT (по умолчанию) — возвращает объект mysqli_result с буферизованным набором результатов.

MYSQLI_USE_RESULT — возвращает объект mysqli_result с небуферизованным набором результатов. Пока есть отложенные записи, ожидающие выборки, линия соединения будет занята и все последующие вызовы будут возвращать ошибку Commands out of sync. Чтобы избежать ошибки, все записи должны быть получены с сервера или набор результатов должен быть отброшен путём вызова mysqli_free_result().

MYSQLI_ASYNC (доступно с mysqlnd) — запрос выполняется асинхронно, набор результатов сразу не возвращается. Затем вызывают функцию mysqli_poll() для получения результатов по этим запросам. Можно использовать в сочетании с константой MYSQLI_STORE_RESULT или MYSQLI_USE_RESULT.

Возвращаемые значения

Возвращает false в случае возникновения ошибки. В случае успешного выполнения запросов, которые создают набор результатов, таких как SELECT, SHOW, DESCRIBE или EXPLAIN, функция mysqli_query() вернёт объект mysqli_result. Для остальных успешных запросов mysqli_query() вернёт true.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #1 Пример использования mysqli::query()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Создание таблицы, не возвращает набор результатов */
$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");
printf("Таблица myCity создана.\n");

/* Запросы SELECT, возвращают набор результатов */
$result = $mysqli->query("SELECT Name FROM City LIMIT 10");
printf("Запрос SELECT вернул %d строк.\n", $result->num_rows);

/* Если нужно извлечь большой объем данных, используем MYSQLI_USE_RESULT */
$result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT);

/* Важно заметить, что мы не можем вызывать функции, которые взаимодействуют
с сервером, пока не закроем набор результатов. Все подобные вызовы
будут вызывать ошибку 'out of sync' */
$mysqli->query("SET @a:='this will not work'");

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Создание таблицы, не возвращает набор результатов */
mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");
printf("Таблица myCity создана.\n");

/* Запросы SELECT, возвращают набор результатов */
$result = mysqli_query($link, "SELECT Name FROM City LIMIT 10");
printf("Запрос SELECT вернул %d строк.\n", mysqli_num_rows($result));

/* Если нужно извлечь большой объем данных, используем MYSQLI_USE_RESULT */
$result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT);

/* Важно заметить, что мы не можем вызывать функции, которые взаимодействуют
с сервером, пока не закроем набор результатов. Все подобные вызовы
будут вызывать ошибку 'out of sync' */
mysqli_query($link, "SET @a:='this will not work'");

Результат выполнения данных примеров:

Таблица myCity создана.
Запрос SELECT вернул 10 строк.

Fatal error: Uncaught mysqli_sql_exception: Commands out of sync; you can't run this command now in...

Смотрите также

  • mysqli_execute_query() - Подготавливает, связывает параметры и выполняет SQL-запрос
  • mysqli_real_query() - Выполнение SQL запроса
  • mysqli_multi_query() - Выполняет один или несколько запросов к базе данных
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_free_result() - Освобождает память, занятую результатами запроса


Устанавливает соединение с сервером mysql

  • « mysqli::query
  • mysqli::real_escape_string »
  • PHP Manual
  • mysqli
  • Устанавливает соединение с сервером mysql

mysqli::real_connect

mysqli_real_connect

(PHP 5, PHP 7, PHP 8)

mysqli::real_connect -- mysqli_real_connect — Устанавливает соединение с сервером mysql

Описание

Объектно-ориентированный стиль

public mysqli::real_connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null,
int $flags = 0
): bool

Процедурный стиль

mysqli_real_connect(
mysqli $mysql,
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null,
int $flags = 0
): bool

Устанавливает соединение с СУБД MySQL.

Эта функция отличается от mysqli_connect():

  • Для работы mysqli_real_connect() необходим действительный объект, созданный функцией mysqli_init().

  • С помощью функции mysqli_options() можно задать различные настройки подключения.

  • Параметр flags.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

hostname

Может быть либо именем хоста, либо IP-адресом. При передаче null, значение извлекается из mysqli.default_host. По возможности вместо протокола TCP/IP будут использоваться каналы. Протокол TCP/IP используется, если указаны и имя хоста и номер порта, например, localhost:3308.

username

Имя пользователя MySQL или null для принятия имени пользователя на основе ini-опции mysqli.default_user.

password

Пароль MySQL или null для принятия пароля на основе ini-опции mysqli.default_pw.

database

База данных по умолчанию, которая будет использоваться при выполнении запросов или null.

port

Номер порта для попытки подключения к серверу MySQL или null для принятия порта на основе ini-опции mysqli.default_port.

socket

Задаёт номер порта для подключения к серверу MySQL.

Замечание:

Передача параметра socket не будет явно задавать тип соединения при подключении к серверу MySQL. То, как будет устанавливаться соединение с MySQL-сервером, определяется параметром hostname.

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().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Список изменений

Версия | Описание
7.4.0 | Все параметры теперь допускают значение null

Примеры

Пример #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::__construct();

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_connect().

Смотрите также

  • 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, PHP 8)

mysqli::real_escape_string -- mysqli::escape_string -- mysqli_real_escape_string — Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения

Описание

Объектно-ориентированный стиль

public mysqli::real_escape_string(string $string): string

Процедурный стиль

mysqli_real_escape_string(mysqli $mysql, string $string): string

Эта функция используется для создания допустимых в SQL строк, которые можно использовать в SQL выражениях. Заданная строка кодируется для создания экранированной строки SQL с учётом текущего набора символов подключения.

Предостережение

Безопасность: набор символов по умолчанию

Набор символов должен быть задан либо на стороне сервера, либо с помощью API-функции mysqli_set_charset(). В противном случае mysqli_real_escape_string() работать не будет. За дополнительной информацией обращайтесь к документации наборы символов.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

string

Строка, которую требуется экранировать.

Экранируемые символы NUL (ASCII 0), \n, \r, \, ', " и CTRL+Z.

Возвращаемые значения

Возвращает экранированную строку.

Примеры

Пример #1 Пример использования mysqli::real_escape_string()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "'s-Hertogenbosch";

/* этот запрос с экранированным $city будет работать */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
$mysqli->real_escape_string($city));
$result = $mysqli->query($query);
printf("Возвращённые строки: %d.\n", $result->num_rows);

/* этот запрос завершится ошибкой, потому что мы не экранировали $city */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = $mysqli->query($query);

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "'s-Hertogenbosch";

/* этот запрос с экранированным $city будет работать */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
mysqli_real_escape_string($mysqli, $city));
$result = mysqli_query($mysqli, $query);
printf("Возвращённые строки: %d.\n", mysqli_num_rows($result));

/* этот запрос завершится ошибкой, потому что мы не экранировали $city */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = mysqli_query($mysqli, $query);

Результатом выполнения данных примеров будет что-то подобное:

Возвращённые строки: 1.

Fatal error: Uncaught mysqli_sql_exception: 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 's-Hertogenbosch'' at line 1 in...

Смотрите также

  • mysqli_set_charset() - Задаёт набор символов


Выполнение SQL запроса

  • « mysqli::real_escape_string
  • mysqli::reap_async_query »
  • PHP Manual
  • mysqli
  • Выполнение SQL запроса

mysqli::real_query

mysqli_real_query

(PHP 5, PHP 7, PHP 8)

mysqli::real_query -- mysqli_real_query — Выполнение SQL запроса

Описание

Объектно-ориентированный стиль

public mysqli::real_query(string $query): bool

Процедурный стиль

mysqli_real_query(mysqli $mysql, string $query): bool

Выполняет одиночный запрос к базе данных, результаты которого можно получить или использовать функциями mysqli_store_result() или mysqli_use_result().

Внимание

Предупреждение безопасности: SQL-инъекция

Вместо составления строки запроса с включением переменных значений необходимо подготавливать запросы. Либо строки запроса должны быть экранированы функцией mysqli_real_escape_string() и правильно отформатированы.

Чтобы определить, должен ли запрос возвращать результирующий набор, смотрите mysqli_field_count().

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

query

Текст запроса в виде строки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Смотрите также

  • 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, PHP 8)

mysqli::reap_async_query -- mysqli_reap_async_query — Получение результата асинхронного запроса

Описание

Объектно-ориентированный стиль

public mysqli::reap_async_query(): mysqli_result|bool

Процедурный стиль

mysqli_reap_async_query(mysqli $mysql): mysqli_result|bool

Получает результат асинхронного запроса.

Замечание:

Доступно только с модулем mysqlnd.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Возвращает false в случае возникновения ошибки. Для успешных запросов, которые производят набор результатов, таких как SELECT, SHOW, DESCRIBE или EXPLAIN, mysqli_reap_async_query() вернёт объект mysqli_result. Для других успешных запросов mysqli_reap_async_query() вернёт true.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Смотрите также

  • mysqli_poll() - Опрос подключений


Обновление

  • « mysqli::reap_async_query
  • mysqli::release_savepoint »
  • PHP Manual
  • mysqli
  • Обновление

mysqli::refresh

mysqli_refresh

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli::refresh -- mysqli_refresh — Обновление

Описание

Объектно-ориентированный стиль

public mysqli::refresh(int $flags): bool

Процедурный стиль

mysqli_refresh(mysqli $mysql, int $flags): bool

Очищает таблицы или кеш, либо сбрасывает копию серверной информации.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

flags

Настройки обновления задаются константами 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, PHP 8)

mysqli::release_savepoint -- mysqli_release_savepoint — Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции

Описание

Объектно-ориентированный стиль

public mysqli::release_savepoint(string $name): bool

Процедурный стиль:

mysqli_release_savepoint(mysqli $mysql, string $name): bool

Функция идентична выполнению запроса $mysqli->query("RELEASE SAVEPOINT `$name`");. Она не запускает фиксацию или откат.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

name

Идентификатор точки сохранения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • mysqli_savepoint() - Установите именованную точку сохранения транзакции


Откат текущей транзакции

  • « mysqli::release_savepoint
  • mysqli::savepoint »
  • PHP Manual
  • mysqli
  • Откат текущей транзакции

mysqli::rollback

mysqli_rollback

(PHP 5, PHP 7, PHP 8)

mysqli::rollback -- mysqli_rollback — Откат текущей транзакции

Описание

Объектно-ориентированный стиль

public mysqli::rollback(int $flags = 0, ?string $name = null): bool

Процедурный стиль

mysqli_rollback(mysqli $mysql, int $flags = 0, ?string $name = null): bool

Откатывает текущую транзакцию.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

flags

Битовая маска констант MYSQLI_TRANS_COR_*.

name

Если передана, то выполняется ROLLBACK/*name*/.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Список изменений

Версия | Описание
8.0.0 | name теперь допускает значение null.

Примеры

Смотрите пример использования в разделе mysqli::begin_transaction().

Примечания

Замечание:

Функция не работает с нетранзакционными типами таблиц (такими как MyISAM или ISAM).

Смотрите также

  • mysqli_begin_transaction() - Стартует транзакцию
  • mysqli_commit() - Фиксирует текущую транзакцию
  • mysqli_autocommit() - Включает или отключает автоматическую фиксацию изменений базы данных
  • mysqli_release_savepoint() - Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции


Установите именованную точку сохранения транзакции

  • « mysqli::rollback
  • mysqli::select_db »
  • PHP Manual
  • mysqli
  • Установите именованную точку сохранения транзакции

mysqli::savepoint

mysqli_savepoint

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

mysqli::savepoint -- mysqli_savepoint — Установите именованную точку сохранения транзакции

Описание

Объектно-ориентированный стиль

public mysqli::savepoint(string $name): bool

Процедурный стиль:

mysqli_savepoint(mysqli $mysql, string $name): bool

Функция идентична выполнению запроса $mysqli->query("SAVEPOINT `$name`");

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

name

Идентификатор точки сохранения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • mysqli_release_savepoint() - Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции


Устанавливает базу данных для выполняемых запросов

  • « mysqli::savepoint
  • mysqli::set_charset »
  • PHP Manual
  • mysqli
  • Устанавливает базу данных для выполняемых запросов

mysqli::select_db

mysqli_select_db

(PHP 5, PHP 7, PHP 8)

mysqli::select_db -- mysqli_select_db — Устанавливает базу данных для выполняемых запросов

Описание

Объектно-ориентированный стиль

public mysqli::select_db(string $database): bool

Процедурный стиль

mysqli_select_db(mysqli $mysql, string $database): bool

Устанавливает базу данных, которая будет использоваться при выполнении запросов к базе данных

Замечание:

Эта функция используется только для смены базы данных во время подключения. Вы можете выбрать базу данных, передав её четвёртым параметром в функции mysqli_connect().

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

database

Имя базы данных.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #1 Пример использования mysqli::select_db()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* получаем имя текущей базы данных по умолчанию */
$result = $mysqli->query("SELECT DATABASE()");
$row = $result->fetch_row();
printf("База данных по умолчанию: %s.\n", $row[0]);

/* изменяем базу данных по умолчанию на "world" */
$mysqli->select_db("world");

/* получаем имя текущей базы данных по умолчанию */
$result = $mysqli->query("SELECT DATABASE()");
$row = $result->fetch_row();
printf("База данных по умолчанию: %s.\n", $row[0]);

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* получаем имя текущей базы данных по умолчанию */
$result = mysqli_query($link, "SELECT DATABASE()");
$row = mysqli_fetch_row($result);
printf("База данных по умолчанию: %s.\n", $row[0]);

/* изменяем базу данных по умолчанию на "world" */
mysqli_select_db($link, "world");

/* получаем имя текущей базы данных по умолчанию */
$result = mysqli_query($link, "SELECT DATABASE()");
$row = mysqli_fetch_row($result);
printf("База данных по умолчанию: %s.\n", $row[0]);

Результат выполнения данных примеров:

База данных по умолчанию: test.
База данных по умолчанию: world.

Смотрите также

  • mysqli_connect() - Псевдоним mysqli::__construct
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql


Задаёт набор символов

  • « mysqli::select_db
  • mysqli::$sqlstate »
  • PHP Manual
  • mysqli
  • Задаёт набор символов

mysqli::set_charset

mysqli_set_charset

(PHP 5 >= 5.0.5, PHP 7, PHP 8)

mysqli::set_charset -- mysqli_set_charset — Задаёт набор символов

Описание

Объектно-ориентированный стиль

public mysqli::set_charset(string $charset): bool

Процедурный стиль

mysqli_set_charset(mysqli $mysql, string $charset): bool

Задаёт набор символов, который будет использоваться при обмене данными с сервером баз данных.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

charset

Набор символов, который необходимо установить.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #1 Пример использования mysqli::set_charset()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

printf("Начальный набор символов: %s\n", $mysqli->character_set_name());

/* изменение набора символов на utf8mb4 */
$mysqli->set_charset("utf8mb4");

printf("Текущий набор символов: %s\n", $mysqli->character_set_name());

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');

printf("Начальный набор символов: %s\n", mysqli_character_set_name($link));

/* изменение набора символов на utf8mb4 */
mysqli_set_charset($link, "utf8mb4");

printf("Текущий набор символов: %s\n", mysqli_character_set_name($link));

Результат выполнения данных примеров:

Начальный набор символов: latin1
Текущий набор символов: utf8mb4

Примечания

Замечание:

Чтобы использовать эту функцию на Windows платформах, вам потребуется клиентская библиотека MySQL версии 4.1.11 или выше (для MySQL 5.0 соответственно 5.0.6 или выше).

Замечание:

Это предпочтительный способ задания набора символов. Использование для этих целей функции mysqli_query() (например SET NAMES utf8) не рекомендуется. Дополнительно смотрите Наборы символов в MySQL.

Смотрите также

  • mysqli_character_set_name() - Возвращает текущую кодировку, установленную для соединения с БД
  • mysqli_real_escape_string() - Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения
  • Концепции кодировок MySQL
  • » Список поддерживаемых MySQL наборов символов


Возвращает код состояния SQLSTATE последней MySQL операции

  • « mysqli::set_charset
  • mysqli::ssl_set »
  • PHP Manual
  • mysqli
  • Возвращает код состояния SQLSTATE последней MySQL операции

mysqli::$sqlstate

mysqli_sqlstate

(PHP 5, PHP 7, PHP 8)

mysqli::$sqlstate -- mysqli_sqlstate — Возвращает код состояния SQLSTATE последней MySQL операции

Описание

Объектно-ориентированный стиль

string $mysqli->sqlstate;

Процедурный стиль

mysqli_sqlstate(mysqli $mysql): string

Возвращает строку с SQLSTATE кодом последней ошибки. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок. Эти коды определены в стандарте ANSI, а также в ODBC. Посмотреть список возможных значений можно на странице » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Замечание:

Следует заметить, что ещё не все MySQL ошибки имеют отражение в SQLSTATE кодах. Для подобных ошибок используется код HY000 (общая ошибка).

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Возвращает строку с SQLSTATE кодом последней ошибки. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок.

Примеры

Пример #1 Пример использования $mysqli->sqlstate

Объектно-ориентированный стиль

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Таблица City уже существует, поэтому мы должны получить ошибку */
try {
$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Ошибка - SQLSTATE %s.\n", $mysqli->sqlstate);
}
?>

Процедурный стиль

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Таблица City уже существует, поэтому мы должны получить ошибку */
try {
mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Ошибка - SQLSTATE %s.\n", mysqli_sqlstate($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, PHP 8)

mysqli::ssl_set -- mysqli_ssl_set — Используется для установления безопасных соединений, используя SSL

Описание

Объектно-ориентированный стиль

public mysqli::ssl_set(
?string $key,
?string $certificate,
?string $ca_certificate,
?string $ca_path,
?string $cipher_algos
): true

Процедурный стиль

mysqli_ssl_set(
mysqli $mysql,
?string $key,
?string $certificate,
?string $ca_certificate,
?string $ca_path,
?string $cipher_algos
): true

Используется для установления безопасных соединений, используя SSL. Функцию необходимо вызывать до вызова mysqli_real_connect(). Для работы функции требуется включить поддержку OpenSSL, в противном случае функция делать ничего не будет.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

key

Путь и имя ключевого файла.

certificate

Путь и имя файла сертификата.

ca_certificate

Путь и имя файла с разрешениями сертификата.

ca_path

Путь к директории, в которой хранятся доверенные CA-сертификаты SSL в формате PEM.

cipher_algos

Список допустимых шифров для использования в 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, PHP 8)

mysqli::stat -- mysqli_stat — Получение информации о текущем состоянии системы

Описание

Объектно-ориентированный стиль

public mysqli::stat(): string|false

Процедурный стиль

mysqli_stat(mysqli $mysql): string|false

mysqli_stat() возвращает строку с информацией, схожей с той, что предоставляет команда 'mysqladmin status'. Сюда включается время работы с момента загрузки в секундах, количество запущенных процессов, запросов, перезагрузок и открытых таблиц.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Строка с информацией о состоянии системы. false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::stat()

Объектно-ориентированный стиль

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

printf("System status: %s\n", $mysqli->stat());
?>

Процедурный стиль

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

printf("System status: %s\n", mysqli_stat($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, PHP 8)

mysqli::stmt_init -- mysqli_stmt_init — Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare

Описание

Объектно-ориентированный стиль

public mysqli::stmt_init(): mysqli_stmt|false

Процедурный стиль

mysqli_stmt_init(mysqli $mysql): mysqli_stmt|false

Выделяет память и инициализирует объект запроса, который можно использовать в функции mysqli_stmt_prepare().

Замечание:

Все последующие вызовы mysqli_stmt функций вызовут ошибку, пока не будет вызвана функция mysqli_stmt_prepare().

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Возвращает объект.

Смотрите также

  • mysqli_stmt_prepare() - Подготавливает утверждение SQL к выполнению


Передаёт на клиента результирующий набор последнего запроса

  • « mysqli::stmt_init
  • mysqli::$thread_id »
  • PHP Manual
  • mysqli
  • Передаёт на клиента результирующий набор последнего запроса

mysqli::store_result

mysqli_store_result

(PHP 5, PHP 7, PHP 8)

mysqli::store_result -- mysqli_store_result — Передаёт на клиента результирующий набор последнего запроса

Описание

Объектно-ориентированный стиль

public mysqli::store_result(int $mode = 0): mysqli_result|false

Процедурный стиль

mysqli_store_result(mysqli $mysql, int $mode = 0): mysqli_result|false

Передаёт результирующий набор последнего запроса на соединении mysql. Дальнейшая работа с этим набором осуществляется функцией mysqli_data_seek().

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

mode

Устанавливаемая опция. Начиная с PHP 8.1, параметр ни на что не влияет. Может иметь одно из следующих значений:

Допустимые варианты
Имя | Описание
MYSQLI_STORE_RESULT_COPY_DATA | Копирует результаты из внутреннего буфера mysqlnd в получаемые переменные PHP. По умолчанию mysqlnd использует ссылки, предотвращая копирование и дублирование результатов в памяти. В некоторых случаях, например, если результаты содержат много небольших рядов, копирование может уменьшить общее потребление памяти, так как переменные PHP, содержащие результат, можно освобождать раньше (доступно только при использовании mysqlnd)

Возвращаемые значения

Возвращает буферизованный объект результата запроса или false в случае ошибки.

Замечание:

mysqli_store_result() возвращает false, если запрос не возвращает результирующей таблицы (например, в случае выражения INSERT). Также функция вернёт false, если данные из результирующего набора не удалось прочитать. Наличие ошибки можно проверить функцией mysqli_error(), которая в этом случае вернёт непустую строку; mysqli_errno() вернёт ненулевое значение; и mysqli_field_count() также вернёт ненулевое значение. Также возможной причиной возврата false после успешного вызова mysqli_query() может быть слишком большой результирующий набор (не хватает памяти для его размещения). Если функция mysqli_field_count() возвращает ненулевое значение, значит запрос вернул непустой результирующий набор.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Смотрите mysqli_multi_query().

Примечания

Замечание:

Даже несмотря на хорошую практику очищать память, занятую результатами запросов, посредством функции mysqli_free_result(), если mysqli_store_result() передаёт большой результирующий набор, это может стать проблемой.

Смотрите также

  • 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, PHP 8)

mysqli::$thread_id -- mysqli_thread_id — Возвращает ID процесса текущего подключения

Описание

Объектно-ориентированный стиль

int $mysqli->thread_id;

Процедурный стиль

mysqli_thread_id(mysqli $mysql): int

mysqli_thread_id() возвращает ID процесса текущего подключения, который можно завершить функцией mysqli_kill(). Если соединение было разорвано и восстановлено функцией mysqli_ping(), ID процесса будет уже другим. Поэтому нужно получать этот идентификатор, когда это действительно необходимо.

Замечание:

ID процесса назначается по принципу подключение-за-подключением. Соответственно, если соединение разорвано и заново установлено, ему будет присвоен новый идентификатор.

Для завершения работы запущенного запроса можно использовать SQL-команду KILL QUERY processid.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Возвращает 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, PHP 8)

mysqli::thread_safe -- mysqli_thread_safe — Показывает, безопасна ли работа с процессами

Описание

Объектно-ориентированный стиль

public mysqli::thread_safe(): bool

Процедурный стиль

mysqli_thread_safe(): bool

Показывает, клиентская библиотека скомпилирована как потокобезопасная или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если клиентская библиотека потокобезопасна, в противном случае false.


Готовит результирующий набор на сервере к использованию

  • « mysqli::thread_safe
  • mysqli::$warning_count »
  • PHP Manual
  • mysqli
  • Готовит результирующий набор на сервере к использованию

mysqli::use_result

mysqli_use_result

(PHP 5, PHP 7, PHP 8)

mysqli::use_result -- mysqli_use_result — Готовит результирующий набор на сервере к использованию

Описание

Объектно-ориентированный стиль

public mysqli::use_result(): mysqli_result|false

Процедурный стиль

mysqli_use_result(mysqli $mysql): mysqli_result|false

Используется для подготовки к использованию результирующего набора последнего запроса, запущенного функцией mysqli_real_query().

Чтобы результаты запроса стали доступны, после самого запроса необходимо вызывать либо эту функцию, либо mysqli_store_result(). Также вызов какой-либо из них предотвратит отказ следующих запросов на этом же соединении.

Замечание:

mysqli_use_result() не передаёт весь результирующий набор на клиента, а следовательно невозможно воспользоваться функцией mysqli_data_seek(), чтобы перемещаться по нему. Для этого нужно воспользоваться функцией mysqli_store_result(). mysqli_use_result() не следует использовать, если на стороне клиента данные результирующего набора долго обрабатываются, так как это задерживает работу сервера и не даёт другим процессам обновлять таблицы, данные из которых есть в результирующем наборе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает небуферизованный объект результата запроса или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #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, PHP 8)

mysqli::$warning_count -- mysqli_warning_count — Возвращает количество предупреждений из последнего запроса заданного подключения

Описание

Объектно-ориентированный стиль

int $mysqli->warning_count;

Процедурный стиль

mysqli_warning_count(mysqli $mysql): int

Возвращает количество предупреждений из последнего запроса.

Замечание:

Для получения самих предупреждений можно использовать SQL-команду SHOW WARNINGS [limit row_count].

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

Возвращаемые значения

Количество предупреждений или ноль, если таковых нет.

Примеры

Пример #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, PHP 8)

Введение

Представляет подготовленное выражение.

Обзор классов

class mysqli_stmt {
/* Свойства */
public readonly int|string $affected_rows;
public readonly int|string $insert_id;
public readonly int|string $num_rows;
public readonly int $param_count;
public readonly int $field_count;
public readonly int $errno;
public readonly string $error;
public readonly array $error_list;
public readonly string $sqlstate;
public int $id;
/* Методы */
public __construct(mysqli $mysql, ?string $query = null)
public attr_get(int $attribute): int
public attr_set(int $attribute, int $value): bool
public bind_param(string $types, mixed &$var, mixed &...$vars): bool
public bind_result(mixed &$var, mixed &...$vars): bool
public close(): true
public data_seek(int $offset): void
public execute(?array $params = null): bool
public fetch(): ?bool
public free_result(): void
public get_result(): mysqli_result|false
public get_warnings(): mysqli_warning|false
public more_results(): bool
public next_result(): bool
public num_rows(): int|string
public prepare(string $query): bool
public reset(): bool
public result_metadata(): mysqli_result|false
public send_long_data(int $param_num, string $data): bool
public store_result(): bool
}

Свойства

id

Сохраняет идентификатор оператора.

Содержание

  • 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_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, PHP 8)

mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Возвращает общее количество строк, изменённых, удалённых, вставленных или сопоставленных последним выполненным выражением

Описание

Объектно-ориентированный стиль

int|string $mysqli_stmt->affected_rows;

Процедурный стиль

mysqli_stmt_affected_rows(mysqli_stmt $statement): int|string

Возвращает количество строк, изменённых запросом INSERT, UPDATE или DELETE. Работает аналогично mysqli_stmt_num_rows() для выражений SELECT.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Целое число больше нуля указывает количество затронутых или извлечённых строк. Ноль означает, что записи для оператора UPDATE не обновлялись, ни одна строка не соответствовала выражению WHERE в запросе или что ни один запрос ещё не был выполнен. -1 означает, что во время выполнения запроса произошла ошибка или что для запроса SELECT, mysqli_stmt_affected_rows() была вызваны до вызова mysqli_stmt_store_result().

Замечание:

Если количество изменённых строк больше, чем максимальное значение для целого числа в PHP, то это количество будет возвращено в виде строкового значения.

Примеры

Пример #1 Пример использования mysqli_stmt_affected_rows()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* создание временной таблицы */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* подготовка выражения */
$stmt = $mysqli->prepare($query);

/* связывание переменных */
$code = 'A%';
$stmt->bind_param("s", $code);

/* выполнение выражения */
$stmt->execute();

printf("Добавлено строк: %d\n", $stmt->affected_rows);
?>

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* создание временной таблицы */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* подготовка выражения */
$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));
?>

Результат выполнения данных примеров:

Добавлено строк: 17

Смотрите также

  • mysqli_stmt_num_rows() - Возвращает количество строк, полученных с сервера
  • mysqli_stmt_store_result() - Сохраняет набор результатов во внутреннем буфере


Получает текущее значение атрибута запроса

  • « mysqli_stmt::$affected_rows
  • mysqli_stmt::attr_set »
  • PHP Manual
  • mysqli_stmt
  • Получает текущее значение атрибута запроса

mysqli_stmt::attr_get

mysqli_stmt_attr_get

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::attr_get -- mysqli_stmt_attr_get — Получает текущее значение атрибута запроса

Описание

Объектно-ориентированный стиль

public mysqli_stmt::attr_get(int $attribute): int

Процедурный стиль

mysqli_stmt_attr_get(mysqli_stmt $statement, int $attribute): int

Используется для получения текущего значения атрибута запроса.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

attribute

Атрибут, который необходимо получить.

Возвращаемые значения

Возвращает текущее значение атрибута.


Изменяет поведение подготовленного запроса

  • « mysqli_stmt::attr_get
  • mysqli_stmt::bind_param »
  • PHP Manual
  • mysqli_stmt
  • Изменяет поведение подготовленного запроса

mysqli_stmt::attr_set

mysqli_stmt_attr_set

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::attr_set -- mysqli_stmt_attr_set — Изменяет поведение подготовленного запроса

Описание

Объектно-ориентированный стиль

public mysqli_stmt::attr_set(int $attribute, int $value): bool

Процедурный стиль

mysqli_stmt_attr_set(mysqli_stmt $statement, int $attribute, int $value): bool

Используется для изменения поведения подготовленного запроса. Эта функция может быть вызвана несколько раз для установки нескольких атрибутов.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

attribute

Устанавливаемый атрибут. Он может принимать следующие значения:

Значения атрибута
Символ | Описание
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | Если равен true, то mysqli_stmt_store_result() обновляет метаданные значением MYSQL_FIELD->max_length.
MYSQLI_STMT_ATTR_CURSOR_TYPE | Тип указателя, который надо открыть для запроса при вызове mysqli_stmt_execute(). value может быть MYSQLI_CURSOR_TYPE_NO_CURSOR (по умолчанию) или MYSQLI_CURSOR_TYPE_READ_ONLY.
MYSQLI_STMT_ATTR_PREFETCH_ROWS | Число строк, которые необходимо выбрать с сервера при использовании указателя. value может быть в диапазоне от 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() нет необходимости.

value

Значение присваиваемое атрибуту.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Смотрите также

  • » 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, PHP 8)

mysqli_stmt::bind_param -- mysqli_stmt_bind_param — Привязка переменных к параметрам подготавливаемого запроса

Описание

Объектно-ориентированный стиль

public mysqli_stmt::bind_param(string $types, mixed &$var, mixed &...$vars): bool

Процедурный стиль

mysqli_stmt_bind_param(
mysqli_stmt $statement,
string $types,
mixed &$var,
mixed &...$vars
): bool

Привязывает переменные к меткам параметров в SQL-выражении, которое было подготовлено функцией mysqli_prepare() или mysqli_stmt_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, который вернула функция mysqli_stmt_init().

types

Строка, содержащая один или более символов, каждый из которых задаёт тип значения привязываемой переменной:

Символы задающие тип
Символ | Описание
i | у соответствующей переменной тип int
d | у соответствующей переменной тип float
s | у соответствующей переменной тип string
b | соответствующая переменная является большим двоичным объектом (blob) и будет пересылаться пакетами

var
vars

Количество переменных и длина строки types должны в точности соответствовать количеству параметров в запросе.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #1 Пример использования mysqli_stmt::bind_param()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$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);

/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("строк удалено: %d.\n", $mysqli->affected_rows);

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

$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));

/* Clean up table CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("строк удалено: %d.\n", mysqli_affected_rows($link));

Результат выполнения данных примеров:

строк добавлено: 1.
1 row deleted.

Пример #2 Пример использования ... для предоставления аргументов

Оператор ... может использоваться для предоставления списка аргументов переменной длины, например в конструкции WHERE IN.

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$stmt = $mysqli->prepare("SELECT Language FROM CountryLanguage WHERE CountryCode IN (?, ?)");
/* использование ... для предоставления аргументов */
$stmt->bind_param('ss', ...['DEU', 'POL']);
$stmt->execute();
$stmt->store_result();

printf("найдено строк: %d.\n", $stmt->num_rows());

Результат выполнения данных примеров:

найдено строк: 10.

Смотрите также

  • 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, PHP 8)

mysqli_stmt::bind_result -- mysqli_stmt_bind_result — Привязка переменных к подготовленному запросу для размещения результата

Описание

Объектно-ориентированный стиль

public mysqli_stmt::bind_result(mixed &$var, mixed &...$vars): bool

Процедурный стиль

mysqli_stmt_bind_result(mysqli_stmt $statement, mixed &$var, mixed &...$vars): bool

Привязывает столбцы результирующего набора к переменным.

При вызове mysqli_stmt_fetch() для выборки данных, протокол клиент-серверного взаимодействия MySQL помещает выбранные данные в переменные var/vars, привязанные к столбцам результата выборки.

Столбцы можно привязывать и перепривязывать многократно, даже когда результирующий набор уже частично выбран. Новая привязка даст эффект при следующем вызове mysqli_stmt_fetch().

Замечание:

Все столбцы должны быть привязаны к переменным после вызова mysqli_stmt_execute() и до вызова mysqli_stmt_fetch(). В зависимости от типов данных столбцов привязанные переменные могут неявно изменять свой PHP тип.

Замечание:

В зависимости от типов столбцов связанные переменные могут незаметно изменяться на соответствующий тип PHP.

Подсказка

Функция полезна для простых результатов. Чтобы получить повторяемый набор результатов или каждую строку как массив или объект, используйте mysqli_stmt_get_result().

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

var

Привязываемая переменная.

vars

Остальные привязываемые переменные.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* подготовка запроса */
$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);
}

Пример #2 Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* подготовка запроса */
$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);
}

Результат выполнения данных примеров:

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

Смотрите также

  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса в виде объекта mysqli_result
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_execute() - Выполняет подготовленное утверждение
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_prepare() - Подготавливает утверждение SQL к выполнению


Закрывает подготовленный запрос

  • « mysqli_stmt::bind_result
  • mysqli_stmt::__construct »
  • PHP Manual
  • mysqli_stmt
  • Закрывает подготовленный запрос

mysqli_stmt::close

mysqli_stmt_close

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::close -- mysqli_stmt_close — Закрывает подготовленный запрос

Описание

Объектно-ориентированный стиль

public mysqli_stmt::close(): true

Процедурный стиль

mysqli_stmt_close(mysqli_stmt $statement): true

Закрывает подготовленный запрос. mysqli_stmt_close() также освобождает дескриптор запроса. Если по текущему запросу получен результат, то эта функция очищает его для того, чтобы мог быть выполнен следующий запрос.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Функция теперь возвращает значение 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, PHP 8)

mysqli_stmt::__construct — Конструктор для объекта mysqli_stmt

Описание

public mysqli_stmt::__construct(mysqli $mysql, ?string $query = null)

Этот метод создаёт новый объект класса mysqli_stmt.

Список параметров

link

Корректный объект mysqli.

query

Строка, содержащая SQL-запрос. Если данный параметр null, то результат будет аналогичен вызову mysqli_stmt_init(), в противном случае результат будет аналогичен вызову mysqli_prepare().

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Список изменений

Версия | Описание
8.0.0 | query теперь допускает значение null.

Смотрите также

  • 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, PHP 8)

mysqli_stmt::data_seek -- mysqli_stmt_data_seek — Корректирует указатель результата на произвольную строку в буферизованном результате

Описание

Объектно-ориентированный стиль

public mysqli_stmt::data_seek(int $offset): void

Процедурный стиль

mysqli_stmt_data_seek(mysqli_stmt $statement, int $offset): void

Функция перемещает указатель буферизованного набора результатов в произвольную строку, заданную параметром offset.

Функция работает только с буферизованным внутренним набором результатов. Функция mysqli_stmt_store_result() должна быть вызвана до mysqli_stmt_data_seek().

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

offset

Значение должно быть в диапазоне от 0 до числа строк минус один (0.. mysqli_stmt_num_rows() - 1).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$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);
?>

Пример #2 Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$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);
?>

Результат выполнения данных примеров:

Город: Benin City  Код страны: NGA

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_store_result() - Сохраняет набор результатов во внутреннем буфере
  • mysqli_stmt_num_rows() - Возвращает количество строк, полученных с сервера
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку


Возвращает код ошибки выполнения последнего запроса

  • « mysqli_stmt::data_seek
  • mysqli_stmt::$error_list »
  • PHP Manual
  • mysqli_stmt
  • Возвращает код ошибки выполнения последнего запроса

mysqli_stmt::$errno

mysqli_stmt_errno

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$errno -- mysqli_stmt_errno — Возвращает код ошибки выполнения последнего запроса

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->errno;

Процедурный стиль

mysqli_stmt_errno(mysqli_stmt $statement): int

Возвращает код ошибки для последнего вызова функции, которая могла завершиться удачно или неудачно.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_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, PHP 8)

mysqli_stmt::$error_list -- mysqli_stmt_error_list — Возвращает список ошибок выполнения последнего запроса

Описание

Объектно-ориентированный стиль

array $mysqli_stmt->error_list;

Процедурный стиль

mysqli_stmt_error_list(mysqli_stmt $statement): array

Возвращает список ошибок, возникших при выполнении последней операции над запросом, которая может завершаться успешно или неуспешно.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_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, PHP 8)

mysqli_stmt::$error -- mysqli_stmt_error — Возвращает строку с пояснением последней ошибки при выполнении запроса

Описание

Объектно-ориентированный стиль

string $mysqli_stmt->error;

Процедурный стиль

mysqli_stmt_error(mysqli_stmt $statement): string

Возвращает строку с сообщением об ошибке для последнего вызова функции, которая могла её вызвать.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_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, PHP 8)

mysqli_stmt::execute -- mysqli_stmt_execute — Выполняет подготовленное утверждение

Описание

Объектно-ориентированный стиль

public mysqli_stmt::execute(?array $params = null): bool

Процедурный стиль

mysqli_stmt_execute(mysqli_stmt $statement, ?array $params = null): bool

Выполняет заранее подготовленное утверждение. Утверждение должно быть успешно подготовлено перед выполнением с использованием функции mysqli_prepare() или mysqli_stmt_prepare(), либо путём передачи второго аргумента в mysqli_stmt::__construct().

Если выполняются запросы UPDATE, DELETE, или INSERT, то количество изменённых строк можно определить функцией mysqli_stmt_affected_rows(). Если запрос возвращает набор результатов, его можно получить с помощью функции mysqli_stmt_get_result() или путём получения построчно непосредственно из оператора с помощью функции mysqli_stmt_fetch().

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

params

Необязательный массив элементов (array) с количеством элементов равным количеству связанных параметров в выполняемом SQL-запросе. Каждое значение рассматривается как строка (string).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Список изменений

Версия | Описание
8.1.0 | Добавлен необязательный параметр params.

Примеры

Пример #1 Выполнение подготовленного оператора с привязкой переменных

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

/* Подготавливаем утверждение на вставку строк */
$stmt = $mysqli->prepare("INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)");

/* Связываем переменные с метками */
$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Выполняем утверждение */
$stmt->execute();

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Выполняем утверждение */
$stmt->execute();

/* Получаем все строки из myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
$result = $mysqli->query($query);
while ($row = $result->fetch_row()) {
printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
}

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

/* Подготавливаем утверждение на вставку строк */
$stmt = mysqli_prepare($link, "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)");

/* Связываем переменные с метками */
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);

/* Получаем все строки из myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_row($result)) {
printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
}

Результат выполнения данных примеров:

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Пример #2 Выполнение подготовленного оператора с массивом значений

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$mysqli->query('CREATE TEMPORARY TABLE myCity LIKE City');

/* Подготавливаем утверждение на вставку строк */
$stmt = $mysqli->prepare('INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)');

/* Выполняем утверждение */
$stmt->execute(['Stuttgart', 'DEU', 'Baden-Wuerttemberg']);

/* Получаем все строки из myCity */
$query = 'SELECT Name, CountryCode, District FROM myCity';
$result = $mysqli->query($query);
while ($row = $result->fetch_row()) {
printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
}

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

mysqli_query($link, 'CREATE TEMPORARY TABLE myCity LIKE City');

/* Подготавливаем утверждение на вставку строк */
$stmt = mysqli_prepare($link, 'INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)');

/* Выполняем утверждение */
mysqli_stmt_execute($stmt, ['Stuttgart', 'DEU', 'Baden-Wuerttemberg']);

/* Получаем все строки из myCity */
$query = 'SELECT Name, CountryCode, District FROM myCity';
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_row($result)) {
printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
}

Результат выполнения данных примеров:

Stuttgart (DEU,Baden-Wuerttemberg)

Смотрите также

  • mysqli_execute_query() - Подготавливает, связывает параметры и выполняет SQL-запрос
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса в виде объекта mysqli_result


Связывает результаты подготовленного выражения с переменными

  • « mysqli_stmt::execute
  • mysqli_stmt::$field_count »
  • PHP Manual
  • mysqli_stmt
  • Связывает результаты подготовленного выражения с переменными

mysqli_stmt::fetch

mysqli_stmt_fetch

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::fetch -- mysqli_stmt_fetch — Связывает результаты подготовленного выражения с переменными

Описание

Объектно-ориентированный стиль

public mysqli_stmt::fetch(): ?bool

Процедурный стиль

mysqli_stmt_fetch(mysqli_stmt $statement): ?bool

Связывает результаты подготовленного выражения с переменными, определёнными с помощью mysqli_stmt_bind_result().

Замечание:

Необходимо отметить, что все столбцы должны быть связаны перед вызовом mysqli_stmt_fetch().

Замечание:

Данные не буферизуются при передаче, когда вызывается mysqli_stmt_store_result(), что снижает производительность (но также снижает затраты памяти).

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Возвращаемые значения
Значение | Описание
true | Успех. Данные были выбраны
false | Произошла ошибка
null | Больше нет строк/данных или произошло усечение данных

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #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, PHP 8)

mysqli_stmt::$field_count -- mysqli_stmt_field_count — Возвращает число столбцов в заданном выражении

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->field_count;

Процедурный стиль

mysqli_stmt_field_count(mysqli_stmt $statement): int

Возвращает число столбцов в подготовленном выражении.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Возвращает целое число, представляющее количество столбцов.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$code = 'FR';

$stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Code=?");
$stmt->bind_param('s', $code);
$stmt->execute();
$row = $stmt->get_result()->fetch_row();
for ($i = 0; $i < $stmt->field_count; $i++) {
printf("Значение номера столбца %d - %s", $i, $row[$i]);
}

Пример #2 Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$code = 'FR';

$stmt = mysqli_prepare($mysqli, "SELECT Name FROM Country WHERE Code=?");
mysqli_stmt_bind_param($stmt, 's', $code);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$row = mysqli_fetch_row($result);
for ($i = 0; $i < mysqli_stmt_field_count($stmt); $i++) {
printf("Значение номера столбца %d - %s", $i, $row[$i]);
}

Результатом выполнения данных примеров будет что-то подобное:

Значение номера столбца 0 - France

Смотрите также

  • mysqli_stmt_num_rows() - Возвращает количество строк, полученных с сервера


Освобождает память от результата запроса, указанного дескриптором

  • « mysqli_stmt::$field_count
  • mysqli_stmt::get_result »
  • PHP Manual
  • mysqli_stmt
  • Освобождает память от результата запроса, указанного дескриптором

mysqli_stmt::free_result

mysqli_stmt_free_result

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::free_result -- mysqli_stmt_free_result — Освобождает память от результата запроса, указанного дескриптором

Описание

Объектно-ориентированный стиль

public mysqli_stmt::free_result(): void

Процедурный стиль

mysqli_stmt_free_result(mysqli_stmt $statement): void

Освобождает от результата запроса память, которая была зарезервирована с помощью mysqli_stmt_store_result().

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • mysqli_stmt_store_result() - Сохраняет набор результатов во внутреннем буфере


Получает результат из подготовленного запроса в виде объекта mysqli_result

  • « mysqli_stmt::free_result
  • mysqli_stmt::get_warnings »
  • PHP Manual
  • mysqli_stmt
  • Получает результат из подготовленного запроса в виде объекта mysqli_result

mysqli_stmt::get_result

mysqli_stmt_get_result

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli_stmt::get_result -- mysqli_stmt_get_result — Получает результат из подготовленного запроса в виде объекта mysqli_result

Описание

Объектно-ориентированный стиль

public mysqli_stmt::get_result(): mysqli_result|false

Процедурный стиль

mysqli_stmt_get_result(mysqli_stmt $statement): mysqli_result|false

Извлекает набор результатов из подготовленного запроса в виде объекта mysqli_result. Данные будут загружены с сервера MySQL в PHP. Метод следует вызывать только для запросов, которые производят набор результатов.

Замечание:

Доступно только с модулем mysqlnd.

Замечание:

Эту функцию нельзя использовать совместно с mysqli_stmt_store_result(). Обе эти функции получают полный набор результатов с сервера MySQL.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Возвращает false в случае возникновения ошибки. Для успешных запросов, которые производят набор результатов, таких как SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_stmt_get_result() вернёт объект mysqli_result. Для других успешных запросов mysqli_stmt_get_result() вернёт false. Функцию mysqli_stmt_errno() можно использовать, чтобы различать две причины появления false; из-за ошибки до PHP 7.4.13 для этой цели приходилось использовать mysqli_errno().

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = $mysqli->prepare($query);
$stmt->bind_param("s", $continent);

$continentList = array('Europe', 'Africa', 'Asia', 'North America');

foreach ($continentList as $continent) {
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_NUM)) {
foreach ($row as $r) {
print "$r ";
}
print "\n";
}
}

Пример #2 Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = mysqli_prepare($link, $query);
mysqli_stmt_bind_param($stmt, "s", $continent);

$continentList= array('Europe', 'Africa', 'Asia', 'North America');

foreach ($continentList 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";
}
}

Результатом выполнения данных примеров будет что-то подобное:

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() - Сохраняет набор результатов во внутреннем буфере


Получает результат от 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, PHP 8)

mysqli_stmt::get_warnings -- mysqli_stmt_get_warnings — Получает результат от SHOW WARNINGS

Описание

Объектно-ориентированный стиль

public mysqli_stmt::get_warnings(): mysqli_warning|false

Процедурный стиль

mysqli_stmt_get_warnings(mysqli_stmt $statement): mysqli_warning|false
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.


Получает 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, PHP 8)

mysqli_stmt::$insert_id -- mysqli_stmt_insert_id — Получает ID, сгенерированный предыдущей операцией INSERT

Описание

Объектно-ориентированный стиль

int|string $mysqli_stmt->insert_id;

Процедурный стиль

mysqli_stmt_insert_id(mysqli_stmt $statement): int|string
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.


Проверяет, есть ли ещё наборы строк в результате мультизапроса

  • « 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, PHP 8)

mysqli_stmt::more_results -- mysqli_stmt_more_results — Проверяет, есть ли ещё наборы строк в результате мультизапроса

Описание

Объектно-ориентированный стиль:

public mysqli_stmt::more_results(): bool

Процедурный стиль:

mysqli_stmt_more_results(mysqli_stmt $statement): bool

Проверяет, есть ли ещё наборы строк в результате мультизапроса.

Замечание:

Доступно только с модулем mysqlnd.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Возвращает true, если ещё есть доступные результирующие наборы, false в противном случае.

Смотрите также

  • 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, PHP 8)

mysqli_stmt::next_result -- mysqli_stmt_next_result — Читает следующий набор строк из мультизапроса

Описание

Объектно-ориентированный стиль

public mysqli_stmt::next_result(): bool

Процедурный стиль:

mysqli_stmt_next_result(mysqli_stmt $statement): bool

Читает следующий набор строк из мультизапроса.

Замечание:

До PHP 8.1.0, функция доступна только с mysqlnd.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Список изменений

Версия | Описание
8.1.0 | Теперь также доступно при сборке с libmysqlclient.

Смотрите также

  • 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, PHP 8)

mysqli_stmt::$num_rows -- mysqli_stmt::num_rows -- mysqli_stmt_num_rows — Возвращает количество строк, полученных с сервера

Описание

Объектно-ориентированный стиль

int|string $mysqli_stmt->num_rows;
public mysqli_stmt::num_rows(): int|string

Процедурный стиль

mysqli_stmt_num_rows(mysqli_stmt $statement): int|string

Возвращает количество строк, помещённых в буфер в выражении. Функция будет работать только после вызова mysqli_stmt_store_result() для буферизации всего набора результатов в дескрипторе оператора.

Функция возвращает 0, если с сервера не были получены все строки.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Целое число (int), представляющее количество буферизованных строк. Возвращает 0 в небуферизованном режиме, если с сервера не были получены все строки.

Замечание:

Если количество строк больше, чем PHP_INT_MAX, число будет возвращено как строка (string).

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = $mysqli->prepare($query);
$stmt->execute();

/* сохранение результата во внутреннем буфере */
$stmt->store_result();

printf("Число строк: %d.\n", $stmt->num_rows);

Пример #2 Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = mysqli_prepare($link, $query);
mysqli_stmt_execute($stmt);

/* сохранение результата во внутреннем буфере */
mysqli_stmt_store_result($stmt);

printf("Число строк: %d.\n", mysqli_stmt_num_rows($stmt));

Результат выполнения данных примеров:

Число строк: 20.

Смотрите также

  • mysqli_stmt_store_result() - Сохраняет набор результатов во внутреннем буфере
  • mysqli_stmt_affected_rows() - Возвращает общее количество строк, изменённых, удалённых, вставленных или сопоставленных последним выполненным выражением
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Возвращает количество параметров в запросе

  • « mysqli_stmt::$num_rows
  • mysqli_stmt::prepare »
  • PHP Manual
  • mysqli_stmt
  • Возвращает количество параметров в запросе

mysqli_stmt::$param_count

mysqli_stmt_param_count

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$param_count -- mysqli_stmt_param_count — Возвращает количество параметров в запросе

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->param_count;

Процедурный стиль

mysqli_stmt_param_count(mysqli_stmt $statement): int

Возвращает количество меток параметров в подготовленном запросе.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_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, PHP 8)

mysqli_stmt::prepare -- mysqli_stmt_prepare — Подготавливает утверждение SQL к выполнению

Описание

Объектно-ориентированный стиль

public mysqli_stmt::prepare(string $query): bool

Процедурный стиль

mysqli_stmt_prepare(mysqli_stmt $statement, string $query): bool

Подготавливает утверждение к выполнению. Запрос должен состоять из одного оператора SQL.

Шаблон утверждения может содержать ноль или несколько вопросительных знаков (?), меток параметров, также называемых заполнителями. Метки параметров должны быть привязаны к переменным приложения с помощью mysqli_stmt_bind_param() перед выполнением утверждения. строк.

Замечание:

В случае, если длина выражения, которое передаётся в mysqli_stmt_prepare(), больше, чем max_allowed_packet сервера, возвращаемые коды ошибки могут различаться в зависимости от используемого драйвера. А это может быть либо родной MySQL-драйвер (mysqlnd), либо клиентская библиотека MySQL (libmysqlclient). Поведение функции будет следующим:

  • mysqlnd на платформе Linux возвращает код ошибки 1153. Сообщение об ошибке означает размер пакета превышает max_allowed_packet байт.

  • mysqlnd на платформе Windows возвращает код ошибки 2006. Это сообщение об ошибке означает сервер недоступен.

  • libmysqlclient на всех платформах возвращает код ошибки 2006. Это сообщение об ошибке означает сервер недоступен.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

query

Текст запроса в виде строки. Запрос должен состоять из одного SQL-выражения.

Утверждение SQL может содержать ноль или более меток параметров, представленных знаками вопроса (?) в соответствующих позициях.

Замечание:

Метки параметров запроса можно встраивать только в определённые места в выражении. Например, они допустимы в списке VALUES() выражения INSERT (чтобы задать значения столбцов для строки), или в операциях сравнения предложения WHERE для задания сравниваемого значения. Однако, эти метки недопустимы в качестве идентификаторов (таких как имена столбцов или таблиц).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #1 Пример использования mysqli_stmt::prepare()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";

/* Создаём подготовленное утверждение */
$stmt = $mysqli->stmt_init();
$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);

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";

/* Создаём подготовленное утверждение */
$stmt = mysqli_stmt_init($link);
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);

Результат выполнения данных примеров:

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_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, PHP 8)

mysqli_stmt::reset -- mysqli_stmt_reset — Сбрасывает результаты выполнения подготовленного запроса

Описание

Объектно-ориентированный стиль

public mysqli_stmt::reset(): bool

Процедурный стиль

mysqli_stmt_reset(mysqli_stmt $statement): bool

Сбрасывает результаты выполнения подготовленного запроса на клиенте и на сервере и переводит запрос в состояние, как после подготовки.

Сбрасывает запрос на сервере, а также данные, переданные на сервер функцией mysqli_stmt_send_long_data(), очищает буфер результатов запроса и текущие ошибки. Функция не удаляет привязки параметров запроса, а также переданные на клиента результирующие наборы. Содержащиеся на клиенте результирующие наборы будут очищены при следующем выполнении запроса (или его закрытии).

Для подготовки запроса с другим SQL-текстом, используйте функцию mysqli_stmt_prepare().

Список параметров

stmt

Только для процедурного стиля: объект mysqli_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, PHP 8)

mysqli_stmt::result_metadata -- mysqli_stmt_result_metadata — Возвращает метаданные результирующей таблицы подготавливаемого запроса

Описание

Объектно-ориентированный стиль

public mysqli_stmt::result_metadata(): mysqli_result|false

Процедурный стиль

mysqli_stmt_result_metadata(mysqli_stmt $statement): mysqli_result|false

Если запрос, переданный в 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, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Возвращает объект или false случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #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, PHP 8)

mysqli_stmt::send_long_data -- mysqli_stmt_send_long_data — Отправка данных блоками

Описание

Объектно-ориентированный стиль

public mysqli_stmt::send_long_data(int $param_num, string $data): bool

Процедурный стиль

mysqli_stmt_send_long_data(mysqli_stmt $statement, int $param_num, string $data): bool

Позволяет пересылать данные параметра на сервер частями (или чанками), например, когда размер большого объекта (blob) превышает max_allowed_packet. Эту функцию можно запускать многократно, чтобы переслать части символьных или двоичных данных столбца. Данные в столбце должны иметь тип TEXT или BLOB.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

param_num

Указывает, с каким параметром связаны данные. Параметры нумеруются с нуля.

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, PHP 8)

mysqli_stmt::$sqlstate -- mysqli_stmt_sqlstate — Возвращает код ошибки SQLSTATE, вызванной в ходе выполнения последней операции над запросом

Описание

Объектно-ориентированный стиль

string $mysqli_stmt->sqlstate;

Процедурный стиль

mysqli_stmt_sqlstate(mysqli_stmt $statement): string

Возвращает строку содержащую код SQLSTATE ошибки, вызванной в результате выполнения последней операции над запросом, которая может завершаться успешно или неуспешно. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок. Значения этого кода определены в стандарте ANSI SQL, а также в ODBC. Полный список возможных кодов можно посмотреть на странице » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Возвращает строку, содержащую код ошибки SQLSTATE последней совершенной операции. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок.

Примеры

Пример #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.

Примечания

Замечание:

Следует отметить, что ещё не все ошибки MySQL имеют отражение в кодах SQLSTATE. Для таких ошибок используется общий код HY000 (общая ошибка).

Смотрите также

  • 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, PHP 8)

mysqli_stmt::store_result -- mysqli_stmt_store_result — Сохраняет набор результатов во внутреннем буфере

Описание

Объектно-ориентированный стиль

public mysqli_stmt::store_result(): bool

Процедурный стиль

mysqli_stmt_store_result(mysqli_stmt $statement): bool

Функцию следует вызывать для запросов, которые успешно создают набор результатов (например, SELECT, SHOW, DESCRIBE, EXPLAIN), только если необходимо буферизовать в PHP полный набор результатов. Каждый последующий вызов mysqli_stmt_fetch() будет возвращать буферизованные данные.

Замечание:

В остальных случаях вызывать mysqli_stmt_store_result() нет необходимости. Но если такой вызов совершён, ничего страшного не случится, это не повлияет на производительность и целостность данных. Чтобы убедиться, что запрос вернул результирующий набор, можно воспользоваться функцией mysqli_stmt_result_metadata(), которая в этом случае вернёт false.

Список параметров

stmt

Только для процедурного стиля: объект mysqli_stmt, который вернула функция mysqli_stmt_init().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = $mysqli->prepare($query);
$stmt->execute();

/* сохранение результата во внутреннем буфере */
$stmt->store_result();

printf("Число строк: %d.\n", $stmt->num_rows);

Пример #2 Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = mysqli_prepare($link, $query);
mysqli_stmt_execute($stmt);

/* сохранение результата во внутреннем буфере */
mysqli_stmt_store_result($stmt);

printf("Число строк: %d.\n", mysqli_stmt_num_rows($stmt));
?>

Результат выполнения данных примеров:

Количество строк: 20.

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_result_metadata() - Возвращает метаданные результирующей таблицы подготавливаемого запроса
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными


Класс mysqli_result

(PHP 5, PHP 7, PHP 8)

Введение

Представляет результирующий набор, полученный из запроса в базу данных.

Обзор классов

class mysqli_result implements IteratorAggregate {
/* Свойства */
public readonly int $current_field;
public readonly int $field_count;
public readonly ?array $lengths;
public readonly int|string $num_rows;
public int $type;
/* Методы */
public __construct(mysqli $mysql, int $result_mode = MYSQLI_STORE_RESULT)
public data_seek(int $offset): bool
public fetch_all(int $mode = MYSQLI_NUM): array
public fetch_array(int $mode = MYSQLI_BOTH): array|null|false
public fetch_assoc(): array|null|false
public fetch_column(int $column = 0): null|int|float|string|false
public fetch_field_direct(int $index): object|false
public fetch_field(): object|false
public fetch_fields(): array
public fetch_object(string $class = "stdClass", array $constructor_args = []): object|null|false
public fetch_row(): array|null|false
public field_seek(int $index): bool
public free(): void
public close(): void
public free_result(): void
public getIterator(): Iterator
}

Свойства

type

Сохраняет буферизованный или небуферизованный результат в виде целого числа (int) (MYSQLI_STORE_RESULT или MYSQLI_USE_RESULT соответственно).

Список изменений

Версия | Описание
8.0.0 | Класс mysqli_result теперь реализует интерфейс IteratorAggregate. Ранее вместо него был реализован интерфейс Traversable.

Содержание

  • mysqli_result::__construct — Конструктор объекта mysqli_result
  • mysqli_result::$current_field — Получает смещение указателя по отношению к текущему полю
  • mysqli_result::data_seek — Перемещает указатель результата на выбранную строку
  • mysqli_result::fetch_all — Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба
  • mysqli_result::fetch_array — Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив, обычный массив или в оба
  • mysqli_result::fetch_assoc — Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив
  • mysqli_result::fetch_column — Получает один столбец из следующей строки набора результатов
  • 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::getIterator — Извлекает внешний итератор
  • mysqli_result::$lengths — Возвращает длины полей текущей строки результирующего набора
  • mysqli_result::$num_rows — Получает количество строк в наборе результатов


Конструктор объекта mysqli_result

  • « mysqli_result
  • mysqli_result::$current_field »
  • PHP Manual
  • mysqli_result
  • Конструктор объекта mysqli_result

mysqli_result::__construct

(PHP 5, PHP 7, PHP 8)

mysqli_result::__construct — Конструктор объекта mysqli_result

Описание

public mysqli_result::__construct(mysqli $mysql, int $result_mode = MYSQLI_STORE_RESULT)

Метод создаёт новый объект mysqli_result.

Метод можно использовать для создания объекта mysqli_result после вызова функции mysqli_real_query() или mysqli_multi_query(). Создание объекта вручную эквивалентно вызову функции mysqli_store_result() или mysqli_use_result().

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect().

result_mode

Режим результата может быть одной из двух констант, указывающих, как результат будет возвращён сервером MySQL:

MYSQLI_STORE_RESULT (по умолчанию) - создаёт объект mysqli_result с буферизованным набором результатов.

MYSQLI_USE_RESULT - создаёт объект mysqli_result с небуферизованным набором результатов. Пока есть ожидающие выборки записи, линия соединения будет занята и все последующие вызовы будут возвращать ошибку Commands out of sync (Команды не синхронизированы). Чтобы избежать ошибки, все записи должны быть получены с сервера или набор результатов должен быть отброшен путём вызова функции mysqli_free_result(). Для извлечения строк соединение должно оставаться открытым.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #1 Пример создания объекта mysqli_result

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* SELECT-запросы возвращают набор результатов */
$mysqli->real_query("SELECT Name FROM City LIMIT 10");

$result = new mysqli_result($mysqli);
printf("Запрос вернул %d записей.\n", $result->num_rows);

Результатом выполнения данных примеров будет что-то подобное:

Запрос вернул 10 записей.

Смотрите также

  • mysqli_multi_query() - Выполняет один или несколько запросов к базе данных
  • mysqli_real_query() - Выполнение SQL запроса
  • mysqli_store_result() - Передаёт на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию


Получает смещение указателя по отношению к текущему полю

  • « mysqli_result::__construct
  • mysqli_result::data_seek »
  • PHP Manual
  • mysqli_result
  • Получает смещение указателя по отношению к текущему полю

mysqli_result::$current_field

mysqli_field_tell

(PHP 5, PHP 7, PHP 8)

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_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_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, PHP 8)

mysqli_result::data_seek -- mysqli_data_seek — Перемещает указатель результата на выбранную строку

Описание

Объектно-ориентированный стиль

public mysqli_result::data_seek(int $offset): bool

Процедурный стиль

mysqli_data_seek(mysqli_result $result, int $offset): bool

Функция mysqli_data_seek() перемещает указатель в результате на строку, указанную в параметре offset.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

offset

Смещение строк. Должно быть между нулём и числом строк в результате минус один (0..mysqli_num_rows() - 1).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::data_seek()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$result = $mysqli->query($query);

/* Переход к строке 401 */
$result->data_seek(400);

/* Получение строки */
$row = $result->fetch_row();

printf("Город: %s Код страны: %s\n", $row[0], $row[1]);

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

$result = mysqli_query($link, $query);

/* Переход к строке 401 */
mysqli_data_seek($result, 400);

/* Получение строки */
$row = mysqli_fetch_row($result);

printf ("Город: %s Код страны: %s\n", $row[0], $row[1]);

Результат выполнения данных примеров:

Город: Benin City  Код страны: NGA

Пример #2 Регулировка указателя результата при перемещении

Функция может быть полезна при перемещении по набору результатов для наложения настраиваемого порядка или перемотки набора результатов при многократном повторении.

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 15,4";
$result = $mysqli->query($query);

/* Перемещение по набору результатов в обратном порядке */
for ($row_no = $result->num_rows - 1; $row_no >= 0; $row_no--) {
$result->data_seek($row_no);

/* Получение строки */
$row = $result->fetch_row();

printf("Город: %s Код страны: %s\n", $row[0], $row[1]);
}

/* Сброс указателя на начало набора результатов */
$result->data_seek(0);

print "\n";

/* Снова перемещение по тому же набору результатов */
while ($row = $result->fetch_row()) {
printf("Город: %s Код страны: %s\n", $row[0], $row[1]);
}

Результат выполнения данных примеров:

Город: Acmbaro  Код страны: MEX
Город: Abuja  Код страны: NGA
Город: Abu Dhabi  Код страны: ARE
Город: Abottabad  Код страны: PAK

Город: Abottabad  Код страны: PAK
Город: Abu Dhabi  Код страны: ARE
Город: Abuja  Код страны: NGA
Город: Acmbaro  Код страны: MEX

Примечания

Замечание:

Функция может быть использована только с буферизованными результатами, которые можно получить использованием функций mysqli_store_result() или mysqli_query().

Смотрите также

  • 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, PHP 8)

mysqli_result::fetch_all -- mysqli_fetch_all — Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба

Описание

Объектно-ориентированный стиль

public mysqli_result::fetch_all(int $mode = MYSQLI_NUM): array

Процедурный стиль

mysqli_fetch_all(mysqli_result $result, int $mode = MYSQLI_NUM): array

Возвращает двумерный массив всех строк результатов в виде ассоциативного массива, числового массива или обоих.

Замечание:

До PHP 8.1.0, функция доступна только с mysqlnd.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

mode

Этот необязательный параметр принимает значение константы, которая указывает на тип массива, в который требуется поместить данные. Возможные значения параметра: MYSQLI_ASSOC, MYSQLI_NUM или MYSQLI_BOTH.

Возвращаемые значения

Возвращает массив содержащий ассоциативные или обычные массивы с данными результирующей таблицы.

Список изменений

Версия | Описание
8.1.0 | Теперь также доступно при сборке с libmysqlclient.

Примеры

Пример #1 Пример использования mysqli_result::fetch_all()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$result = $mysqli->query("SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");

$rows = $result->fetch_all(MYSQLI_ASSOC);
foreach ($rows as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$result = mysqli_query($mysqli, "SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");

$rows = mysqli_fetch_all($result, MYSQLI_ASSOC);
foreach ($rows as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Результат выполнения данных примеров:

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Смотрите также

  • mysqli_fetch_array() - Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_column() - Получает один столбец из следующей строки набора результатов
  • 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, PHP 8)

mysqli_result::fetch_array -- mysqli_fetch_array — Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив, обычный массив или в оба

Описание

Объектно-ориентированный стиль

public mysqli_result::fetch_array(int $mode = MYSQLI_BOTH): array|null|false

Процедурный стиль

mysqli_fetch_array(mysqli_result $result, int $mode = MYSQLI_BOTH): array|null|false

Выбирает одну строку данных из набора результатов и возвращает её в виде массива. Каждый последующий вызов этой функции будет возвращать следующую строку в наборе результатов или null, если строк больше нет.

Помимо хранения данных в числовых индексах массива результатов, функция также может сохранять данные в ассоциативных индексах, используя имена полей набора результатов в качестве ключей.

Если два и более столбца результата имеют одинаковое имя, последний столбец будет иметь приоритет и перезапишет любые предыдущие данные. В таких ситуациях для доступа к данным всех столбцов с одинаковыми именами лучше пользоваться обычными массивами, индексированными номерами столбцов.

Замечание: Имена полей, возвращаемые этой функцией являются зависимыми от регистра.

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

mode

Этот необязательный параметр принимает значение константы, которая указывает на тип массива, в который требуется поместить данные. Возможные значения параметра: MYSQLI_ASSOC, MYSQLI_NUM или MYSQLI_BOTH.

При использовании константы MYSQLI_ASSOC функция будет вести себя идентично mysqli_fetch_assoc(), а при MYSQLI_NUM идентично функции mysqli_fetch_row(). При задании MYSQLI_BOTH функция создаст один массив, включающий атрибуты обоих вариантов.

Возвращаемые значения

Возвращает массив, представляющий выбранную строку, null, если в наборе результатов больше нет строк или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli_result::fetch_array()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$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"]);

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($mysqli, $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"]);

Результат выполнения данных примеров:

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Смотрите также

  • mysqli_fetch_assoc() - Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив
  • mysqli_fetch_column() - Получает один столбец из следующей строки набора результатов
  • mysqli_fetch_row() - Выбирает следующую строку из набора результатов и помещает её в обычный массив
  • mysqli_fetch_object() - Выбирает следующую строку из набора результатов в виде объекта
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку


Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив

  • « mysqli_result::fetch_array
  • mysqli_result::fetch_column »
  • PHP Manual
  • mysqli_result
  • Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив

mysqli_result::fetch_assoc

mysqli_fetch_assoc

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив

Описание

Объектно-ориентированный стиль

public mysqli_result::fetch_assoc(): array|null|false

Процедурный стиль

mysqli_fetch_assoc(mysqli_result $result): array|null|false

Выбирает одну строку данных из набора результатов и возвращает её в виде ассоциативного массива. Каждый последующий вызов этой функции будет возвращать следующую строку в наборе результатов или null, если строк больше нет.

Если у двух и более столбцов в наборе результатов одинаковое имя, последний столбец будет иметь приоритет и перезапишет любые предыдущие данные. Для доступа к нескольким столбцам с одинаковым именем можно использовать функцию mysqli_fetch_row() для выборки массива с числовым индексом или в списке выбора SQL-запроса можно использовать псевдонимы, чтобы задать столбцам разные имена.

Замечание: Имена полей, возвращаемые этой функцией являются зависимыми от регистра.

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

Возвращаемые значения

Возвращает ассоциативный массив, представляющий выбранную строку, где каждое свойство представляет имя столбца набора результатов, null, если в наборе результатов больше нет строк или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli_result::fetch_assoc()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

/* извлечение ассоциативного массива */
while ($row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($mysqli, $query);

/* извлечение ассоциативного массива */
while ($row = mysqli_fetch_assoc($result)) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Результатом выполнения данных примеров будет что-то подобное:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Пример #2 Сравнение использования mysqli_result iterator и mysqli_result::fetch_assoc()

mysqli_result можно повторить с помощью foreach. Результирующий набор всегда будет повторяться с первой строки, независимо от текущей позиции.

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = 'SELECT Name, CountryCode FROM City ORDER BY ID DESC';

// Используем итераторы
$result = $mysqli->query($query);
foreach ($result as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

echo "\n==================\n";

// Не используем итераторы
$result = $mysqli->query($query);
while ($row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Результатом выполнения данного примера будет что-то подобное:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

==================
Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Смотрите также

  • mysqli_fetch_array() - Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_column() - Получает один столбец из следующей строки набора результатов
  • mysqli_fetch_row() - Выбирает следующую строку из набора результатов и помещает её в обычный массив
  • mysqli_fetch_object() - Выбирает следующую строку из набора результатов в виде объекта
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку


Получает один столбец из следующей строки набора результатов

  • « mysqli_result::fetch_assoc
  • mysqli_result::fetch_field_direct »
  • PHP Manual
  • mysqli_result
  • Получает один столбец из следующей строки набора результатов

mysqli_result::fetch_column

mysqli_fetch_column

(PHP 8 >= 8.1.0)

mysqli_result::fetch_column -- mysqli_fetch_column — Получает один столбец из следующей строки набора результатов

Описание

Объектно-ориентированный стиль

public mysqli_result::fetch_column(int $column = 0): null|int|float|string|false

Процедурный стиль

mysqli_fetch_column(mysqli_result $result, int $column = 0): null|int|float|string|false

Выбирает одну строку данных из набора результатов и возвращает столбец с указанным индексом, начиная с 0. Каждый последующий вызов этой функции будет возвращать значение из следующей строки в наборе результатов или false, если строк больше нет.

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

column

Номер столбца, начиная с 0, который необходимо извлечь из строки. Если значение не указано, будет возвращён первый столбец.

Возвращаемые значения

Возвращает один столбец из следующей строки набора результатов или false, если строк больше нет.

Внимание

Невозможно вернуть другой столбец из той же строки, если вы используете эту функцию для извлечения данных.

Примеры

Пример #1 Пример использования mysqli_result::fetch_column()

Объектно-ориентированный стиль

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = "SELECT CountryCode, Name FROM City ORDER BY ID DESC LIMIT 5";
$result = $mysqli->query($query);
/* получение значения из второго столбца */
while ($Name = $result->fetch_column(1)) {
printf("%s\n", $Name);
}

Процедурный стиль

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");
$query = "SELECT CountryCode, Name FROM City ORDER BY ID DESC LIMIT 5";
$result = mysqli_query($mysqli, $query);
/* получение значения из второго столбца */
while ($Name = mysqli_fetch_column($result, 1)) {
printf("%s\n", $Name);
}

Результатом выполнения данных примеров будет что-то подобное:

Rafah
Nablus
Jabaliya
Hebron
Khan Yunis

Смотрите также

  • mysqli_fetch_all() - Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_array() - Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_assoc() - Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив
  • mysqli_fetch_object() - Выбирает следующую строку из набора результатов в виде объекта
  • mysqli_fetch_row() - Выбирает следующую строку из набора результатов и помещает её в обычный массив
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку


Получение метаданных конкретного поля

  • « mysqli_result::fetch_column
  • mysqli_result::fetch_field »
  • PHP Manual
  • mysqli_result
  • Получение метаданных конкретного поля

mysqli_result::fetch_field_direct

mysqli_fetch_field_direct

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_field_direct -- mysqli_fetch_field_direct — Получение метаданных конкретного поля

Описание

Объектно-ориентированный стиль

public mysqli_result::fetch_field_direct(int $index): object|false

Процедурный стиль

mysqli_fetch_field_direct(mysqli_result $result, int $index): object|false

Возвращает информацию о столбце результирующего набора в виде объекта.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

index

Номер поля. Число должно лежать в диапазоне от 0 до количество полей - 1.

Возвращаемые значения

Возвращает объект содержащий определение поля или false, если поле с номером fieldnr недоступно.

Свойства объекта
Свойство | Описание
name | Имя столбца
orgname | Исходное имя столбца, если у него есть псевдоним
table | Имя таблицы, которой принадлежит столбец (если не вычислено)
orgtable | Исходное имя таблицы, если есть псевдоним
def | Зарезервировано для значения по умолчанию, на данный момент всегда ""
max_length | Максимальная ширина поля результирующего набора. Начиная с PHP 8.1, это значение всегда 0.
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, PHP 8)

mysqli_result::fetch_field -- mysqli_fetch_field — Возвращает следующее поле результирующего набора

Описание

Объектно-ориентированный стиль

public mysqli_result::fetch_field(): object|false

Процедурный стиль

mysqli_fetch_field(mysqli_result $result): object|false

Возвращает информацию об одном столбце результирующего набора в виде объекта. Чтобы получить определения всех столбцов, просто запустите эту функцию многократно.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

Возвращаемые значения

Возвращает объект, содержащий определение поля или false, если столбцы в результирующей таблице закончились.

Свойства объекта
Свойство | Описание
name | Имя столбца
orgname | Исходное имя столбца, если у него есть псевдоним
table | Имя таблицы, которой принадлежит столбец (если не вычислено)
orgtable | Исходное имя таблицы, если есть псевдоним
def | Зарезервировано для значения по умолчанию, на данный момент всегда ""
db | Имя базы данных
catalog | Имя каталога, всегда "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 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, PHP 8)

mysqli_result::fetch_fields -- mysqli_fetch_fields — Возвращает массив объектов, представляющих поля результирующего набора

Описание

Объектно-ориентированный стиль

public mysqli_result::fetch_fields(): array

Процедурный стиль

mysqli_fetch_fields(mysqli_result $result): array

Эта функция служит для тех же целей, что и mysqli_fetch_field(), с той лишь разницей, что возвращает не один объект для столбца, а массив таких объектов.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

Возвращаемые значения

Возвращает массив объектов, содержащих метаданные полей.

Свойства объекта
Свойство | Описание
name | Имя столбца
orgname | Исходное имя столбца, если у него есть псевдоним
table | Имя таблицы, которой принадлежит столбец (если не вычислено)
orgtable | Исходное имя таблицы, если есть псевдоним
max_length | Максимальная ширина поля результирующего набора. Начиная с PHP 8.1, это значение всегда 0.
length | Длина поля в байтах, как она задана при определении таблицы. Обратите внимание, что данная величина (в байтах) может отличаться от величины в символах, указанной в определении поля таблицы, так как в разных кодировках один символ может записываться несколькими байтами. Например, набор символов utf8 имеет 3 байта на символ, таким образом поле 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, PHP 8)

mysqli_result::fetch_object -- mysqli_fetch_object — Выбирает следующую строку из набора результатов в виде объекта

Описание

Объектно-ориентированный стиль

public mysqli_result::fetch_object(string $class = "stdClass", array $constructor_args = []): object|null|false

Процедурный стиль

mysqli_fetch_object(mysqli_result $result, string $class = "stdClass", array $constructor_args = []): object|null|false

Выбирает одну строку данных из набора результатов и возвращает её как объект, где каждое свойство представляет имя столбца набора результатов. Каждый последующий вызов этой функции будет возвращать следующую строку в наборе результатов или null, если строк больше нет.

Если у двух и более столбцов в наборе результатов одинаковое имя, последний столбец будет иметь приоритет и перезапишет любые предыдущие данные. Для доступа к нескольким столбцам с одинаковым именем можно использовать функцию mysqli_fetch_row() для выборки массива с числовым индексом или в списке выбора SQL-запроса можно использовать псевдонимы, чтобы задать столбцам разные имена.

Замечание: Функция устанавливает значения свойств объекта до вызова его конструктора.

Замечание: Имена полей, возвращаемые этой функцией являются зависимыми от регистра.

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

class

Имя класса, объект которого требуется инстанцировать, задать значения его свойств и вернуть. Если параметр не задан, будет возвращён объект stdClass.

constructor_args

Необязательный массив (array) параметров, которые будут переданы конструктору класса class.

Возвращаемые значения

Возвращает объект, представляющий выбранную строку, где каждое свойство представляет имя столбца набора результатов, null, если в наборе результатов больше нет строк или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | constructor_args теперь принимает [] для конструкторов без параметров; ранее выбрасывалось исключение.

Примеры

Пример #1 Пример использования mysqli_result::fetch_object()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

/* получение массива объектов */
while ($obj = $result->fetch_object()) {
printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
}

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($link, $query);

/* получение ассоциативного массива */
while ($obj = mysqli_fetch_object($result)) {
printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
}

Результат выполнения данных примеров:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Смотрите также

  • mysqli_fetch_array() - Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_assoc() - Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив
  • mysqli_fetch_column() - Получает один столбец из следующей строки набора результатов
  • 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, PHP 8)

mysqli_result::fetch_row -- mysqli_fetch_row — Выбирает следующую строку из набора результатов и помещает её в обычный массив

Описание

Объектно-ориентированный стиль

public mysqli_result::fetch_row(): array|null|false

Процедурный стиль

mysqli_fetch_row(mysqli_result $result): array|null|false

Выбирает одну строку данных из результирующего набора и возвращает её в виде массива, в котором индексы элементов соответствуют номерам столбцов (начиная с 0). Каждый последующий вызов функции будет возвращать массив с данными следующей строки набора или null, если строки закончились.

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

Возвращаемые значения

Возвращает нумерованный массив, представляющий выбранную строку, null, если в наборе результатов больше нет строк или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli_result::fetch_row()

Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

/* получение массива объектов */
while ($row = $result->fetch_row()) {
printf("%s (%s)\n", $row[0], $row[1]);
}

Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($mysqli, $query);

/* получение ассоциативного массива */
while ($row = mysqli_fetch_row($result)) {
printf("%s (%s)\n", $row[0], $row[1]);
}

Результат выполнения данных примеров:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Смотрите также

  • mysqli_fetch_array() - Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_assoc() - Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив
  • mysqli_fetch_column() - Получает один столбец из следующей строки набора результатов
  • 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, PHP 8)

mysqli_result::$field_count -- mysqli_num_fields — Получает количество полей в наборе результатов

Описание

Объектно-ориентированный стиль

int $mysqli_result->field_count;

Процедурный стиль

mysqli_num_fields(mysqli_result $result): int

Возвращает количество полей в наборе результатов.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

Возвращаемые значения

Целое число (int), представляющее количество полей.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$result = $mysqli->query("SELECT Name, CountryCode, District, Population FROM City ORDER BY ID LIMIT 1");

/* Получение количества полей в наборе результатов */
$field_cnt = $result->field_count;

printf("Получено %d полей.\n", $field_cnt);

Пример #2 Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$result = mysqli_query($link, "SELECT Name, CountryCode, District, Population FROM City ORDER BY ID LIMIT 1");

/* Получение количества полей в наборе результатов */
$field_cnt = mysqli_num_fields($result);

printf("Получено %d полей.\n", $field_cnt);

Результат выполнения данных примеров:

Получено 4 полей.

Смотрите также

  • 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, PHP 8)

mysqli_result::field_seek -- mysqli_field_seek — Установить указатель поля на определённое смещение

Описание

Объектно-ориентированный стиль

public mysqli_result::field_seek(int $index): bool

Процедурный стиль

mysqli_field_seek(mysqli_result $result, int $index): bool

Устанавливает указатель поля на заданное смещение. Следующий вызов mysqli_fetch_field() позволит получить информацию о столбце с позицией смещения.

Замечание:

Для поиска с начала строки необходимо установить нулевое значение смещения.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

index

Номер поля. Это значение должно быть в следующем диапазоне: от 0 до число полей - 1.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Функция теперь всегда возвращает значение 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::getIterator »
  • PHP Manual
  • mysqli_result
  • Освобождает память, занятую результатами запроса

mysqli_result::free

mysqli_result::close

mysqli_result::free_result

mysqli_free_result

(PHP 5, PHP 7, PHP 8)

mysqli_result::free -- mysqli_result::close -- mysqli_result::free_result -- mysqli_free_result — Освобождает память, занятую результатами запроса

Описание

Объектно-ориентированный стиль

public mysqli_result::free(): void
public mysqli_result::close(): void
public mysqli_result::free_result(): void

Процедурный стиль

mysqli_free_result(mysqli_result $result): void

Освобождает память, занятую результатами запроса.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса в виде объекта mysqli_result
  • mysqli_store_result() - Передаёт на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию


Извлекает внешний итератор

  • « mysqli_result::free
  • mysqli_result::$lengths »
  • PHP Manual
  • mysqli_result
  • Извлекает внешний итератор

mysqli_result::getIterator

(PHP 8)

mysqli_result::getIterator — Извлекает внешний итератор

Описание

public mysqli_result::getIterator(): Iterator

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает длины полей текущей строки результирующего набора

  • « mysqli_result::getIterator
  • mysqli_result::$num_rows »
  • PHP Manual
  • mysqli_result
  • Возвращает длины полей текущей строки результирующего набора

mysqli_result::$lengths

mysqli_fetch_lengths

(PHP 5, PHP 7, PHP 8)

mysqli_result::$lengths -- mysqli_fetch_lengths — Возвращает длины полей текущей строки результирующего набора

Описание

Объектно-ориентированный стиль

?array $mysqli_result->lengths;

Процедурный стиль

mysqli_fetch_lengths(mysqli_result $result): array|false

mysqli_fetch_lengths() возвращает массив, элементы которого представляют длины каждого поля текущей строки результирующего набора.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_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, PHP 8)

mysqli_result::$num_rows -- mysqli_num_rows — Получает количество строк в наборе результатов

Описание

Объектно-ориентированный стиль

int|string $mysqli_result->num_rows;

Процедурный стиль

mysqli_num_rows(mysqli_result $result): int|string

Возвращает число рядов в результирующей выборке.

Поведение функции mysqli_num_rows() зависит от того, используется ли буферизованная или не буферизованная результирующая выборка. Функция возвращает 0 для небуферизованных наборов результатов, если с сервера не были получены все строки.

Список параметров

result

Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

Возвращаемые значения

Возвращает целое число (int), представляющее количество выбранных строк. Возвращает 0 в небуферизованном режиме, если с сервера не были получены все строки.

Замечание:

Если количество строк больше, чем PHP_INT_MAX, число будет возвращено как строка (string).

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name");

/* Получение количества строк в наборе результатов */
$row_cnt = $result->num_rows;

printf("Получено %d строк.\n", $row_cnt);
?>

Пример #2 Процедурный стиль

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name");

/* Получение количества строк в наборе результатов */
$row_cnt = mysqli_num_rows($result);

printf("Получено %d строк.\n", $row_cnt);

Результат выполнения данных примеров:

Получено 239 строк.

Примечания

Замечание:

В отличие от функции mysqli_stmt_num_rows(), у этой функции нет варианта в объектно-ориентированном стиле. В объектно-ориентированном стиле используйте метод чтения.

Смотрите также

  • mysqli_affected_rows() - Получает число строк, затронутых предыдущей операцией MySQL
  • mysqli_store_result() - Передаёт на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_stmt_num_rows() - Возвращает количество строк, полученных с сервера


Класс mysqli_driver

(PHP 5, PHP 7, PHP 8)

Введение

Класс mysqli_driver является экземпляром шаблона monostate, то есть есть только один драйвер, к которому можно получить доступ через произвольное количество экземпляров mysqli_driver.

Обзор классов

final class mysqli_driver {
/* Свойства */
public readonly string $client_info;
public readonly int $client_version;
public readonly int $driver_version;
public int $report_mode;
}

Свойства

client_info

Версия заголовка Client API

client_version

Версия Client

driver_version

Версия MySQLi Driver

Внимание

Свойство объявлено устаревшим в PHP 8.1.0. Полагаться на свойство крайне не рекомендуется.

embedded

Статус поддержки MySQLi Embedded

Внимание

Свойство удалено в PHP 8.0.0.

reconnect

Разрешить или запретить переподключение (смотрите INI-директиву mysqli.reconnect)

Внимание

Свойство было удалено вместе с INI-директивой mysqli.reconnect в PHP 8.2.0.

report_mode

Установить MYSQLI_REPORT_OFF, MYSQLI_REPORT_ALL или любую комбинацию из MYSQLI_REPORT_STRICT (вызов исключений для ошибок), MYSQLI_REPORT_ERROR (сообщение об ошибках) и MYSQLI_REPORT_INDEX (ошибки, связанные с индексами). Смотрите также mysqli_report().

Список изменений

Версия | Описание
8.2.0 | Свойство mysqli_driver::$reconnect было удалено.
8.1.0 | Свойство mysqli_driver::$driver_version объявлено устаревшим.
8.0.0 | Свойство mysqli_driver::$embedded было удалено.
7.4.0 | Метод mysqli_driver::embedded_server_start() и mysqli_driver:embedded_server_end() были удалены.

Содержание

  • mysqli_driver::embedded_server_end — Останавливает встроенный сервер
  • mysqli_driver::embedded_server_start — Инициализирует и запускает встроенный сервер
  • mysqli_driver::$report_mode — Устанавливает режим отчёта об ошибках mysqli


Останавливает встроенный сервер

  • « mysqli_driver
  • mysqli_driver::embedded_server_start »
  • PHP Manual
  • mysqli_driver
  • Останавливает встроенный сервер

mysqli_driver::embedded_server_end

mysqli_embedded_server_end

(PHP 5 >= 5.1.0, PHP 7 < 7.4.0)

mysqli_driver::embedded_server_end -- mysqli_embedded_server_end — Останавливает встроенный сервер

Внимание

Эта функция была УДАЛЕНА в PHP 7.4.0.

Описание

Объектно-ориентированный стиль

public mysqli_driver::embedded_server_end(): void

Процедурный стиль

mysqli_embedded_server_end(): 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 >= 5.1.0, PHP 7 < 7.4.0)

mysqli_driver::embedded_server_start -- mysqli_embedded_server_start — Инициализирует и запускает встроенный сервер

Внимание

Эта функция была УДАЛЕНА в PHP 7.4.0.

Описание

Объектно-ориентированный стиль

public mysqli_driver::embedded_server_start(int $start, array $arguments, array $groups): bool

Процедурный стиль

mysqli_embedded_server_start(int $start, array $arguments, array $groups): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.


Устанавливает режим отчёта об ошибках mysqli

  • « mysqli_driver::embedded_server_start
  • mysqli_warning »
  • PHP Manual
  • mysqli_driver
  • Устанавливает режим отчёта об ошибках mysqli

mysqli_driver::$report_mode

mysqli_report

(PHP 5, PHP 7, PHP 8)

mysqli_driver::$report_mode -- mysqli_report — Устанавливает режим отчёта об ошибках mysqli

Описание

Объектно-ориентированный стиль

int $mysqli_driver->report_mode;

Процедурный стиль

mysqli_report(int $flags): bool

В зависимости от флагов, функция устанавливает режим отчёта об ошибках mysqli на исключение, предупреждение или отсутствие. Если установлено значение MYSQLI_REPORT_ALL или MYSQLI_REPORT_INDEX, функция также будет информировать о запросах, которые не используют индекс (или используют неверный индекс).

Начиная с PHP 8.1.0, по умолчанию установлено значение MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. Ранее оно было MYSQLI_REPORT_OFF.

Список параметров

flags

Поддерживаемые флаги
Имя | Описание
MYSQLI_REPORT_OFF | Отключить протоколирование
MYSQLI_REPORT_ERROR | Заносить в протокол ошибки вызовов функций mysqli
MYSQLI_REPORT_STRICT | Вместо сообщений об ошибках выбрасывать исключение mysqli_sql_exception
MYSQLI_REPORT_INDEX | Заносить в протокол факты использования в запросах неверного индекса (или когда индекс не используется вообще)
MYSQLI_REPORT_ALL | Включить все настройки (заносить в протокол все события)

Возвращаемые значения

Возвращает true.

Список изменений

Версия | Описание
8.1.0 | Теперь по умолчанию установлено значение MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. Ранее оно было MYSQLI_REPORT_OFF.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* включение протоколирования */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;

try {
/* если получится подключится, будет выброшено исключение mysqli_sql_exception */
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");

/* этот запрос должен сообщить об ошибке */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* этот запрос должен сообщить о неверном индексе, если у столбца population нет индекса */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}

Пример #2 Процедурный стиль

<?php

/* включение протоколирования */
mysqli_report(MYSQLI_REPORT_ALL);

try {
/* Если соединение завершилось с ошибкой, будет выброшено исключение mysqli_sql_exception */
$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");

/* этот запрос должен сообщить об ошибке */
$result = mysqli_query($link, "SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* этот запрос должен сообщить о неверном индексе, если у столбца population нет индекса */
$result = mysqli_query($link, "SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}

Пример #3 Отчёт об ошибках, кроме ошибок неверного индекса

<?php

/* включение протоколирования */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

try {
/* если получится подключится, будет выброшено исключение mysqli_sql_exception */
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");

/* этот запрос должен сообщить об ошибке */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* это НЕ БУДЕТ сообщать об ошибках, даже если индекс недоступен */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}

Смотрите также

  • mysqli_sql_exception
  • set_exception_handler() - Задаёт пользовательский обработчик исключений
  • error_reporting() - Задаёт, какие ошибки PHP попадут в отчёт


Класс mysqli_warning

(PHP 5, PHP 7, PHP 8)

Введение

Представляет предупреждение MySQL.

Обзор классов

final class mysqli_warning {
/* Свойства */
public string $message;
public string $sqlstate;
public int $errno;
/* Методы */
private __construct()
public next(): 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, PHP 8)

mysqli_warning::__construct — Закрытый конструктор для запрета прямого создания экземпляра

Описание

private mysqli_warning::__construct()

Список параметров

У этой функции нет параметров.


Получает следующее предупреждение

  • « mysqli_warning::__construct
  • mysqli_sql_exception »
  • PHP Manual
  • mysqli_warning
  • Получает следующее предупреждение

mysqli_warning::next

(PHP 5, PHP 7, PHP 8)

mysqli_warning::next — Получает следующее предупреждение

Описание

public mysqli_warning::next(): bool

Изменяет информацию о предупреждении на следующее предупреждение, если это возможно.

После того как предупреждение было установлено на следующее предупреждение, будут доступны новые значения свойств message, sqlstate и errno из mysqli_warning.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если следующее предупреждение было получено успешно. Если больше нет предупреждений, вернёт false


Класс mysqli_sql_exception

(PHP 5, PHP 7, PHP 8)

Введение

Класс для обработки исключений mysqli.

Обзор классов

final class mysqli_sql_exception extends RuntimeException {
/* Свойства */
protected string $sqlstate = "00000";
/* Методы */
public getSqlState(): string
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Свойства

sqlstate

Код sqlstate.

Содержание

  • mysqli_sql_exception::getSqlState — Возвращает код ошибки SQLSTATE


Возвращает код ошибки SQLSTATE

  • « mysqli_sql_exception
  • Синонимы и устаревшие функции Mysqli »
  • PHP Manual
  • mysqli_sql_exception
  • Возвращает код ошибки SQLSTATE

mysqli_sql_exception::getSqlState

(PHP 8 >= 8.1.2)

mysqli_sql_exception::getSqlState — Возвращает код ошибки SQLSTATE

Описание

public mysqli_sql_exception::getSqlState(): string

Возвращает строку, содержащую код последней ошибки SQLSTATE. Код ошибки состоит из пяти символов. Значения задаются ANSI SQL и ODBC. Список возможных значений можно посмотреть на странице » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Замечание:

Обратите внимание, что не все ошибки MySQL ещё сопоставлены с SQLSTATE. Если ошибка не сопоставлена, используется значение HY000 (общая ошибка).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую код последней ошибки SQLSTATE. Код ошибки состоит из пяти символов.


Синонимы и устаревшие функции Mysqli

Содержание

  • mysqli_connect — Псевдоним mysqli::__construct
  • mysqli::escape_string — Псевдоним функции mysqli_real_escape_string
  • mysqli_execute — Псевдоним mysqli_stmt_execute
  • mysqli_get_client_stats — Получить клиентскую попроцессную статистику
  • mysqli_get_links_stats — Возвращает информацию об открытых и закешированных соединениях MySQL
  • mysqli_report — Псевдоним mysqli_driver->report_mode
  • mysqli::set_opt — Псевдоним mysqli_options


Псевдоним mysqli::__construct

  • « Синонимы и устаревшие функции Mysqli
  • mysqli::escape_string »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Псевдоним mysqli::__construct

mysqli_connect

(PHP 5, PHP 7, PHP 8)

mysqli_connect — Псевдоним mysqli::__construct()

Описание

Функция является псевдонимом: mysqli::__construct()

Замечание:

Если режим исключения mysqli отключён и произошла ошибка соединения, тогда mysqli_connect() возвращает false вместо объекта. Для получения ошибки соединения можно использовать функцию mysqli_connect_error().


Псевдоним функции mysqli_real_escape_string

  • « mysqli_connect
  • mysqli_execute »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Псевдоним функции mysqli_real_escape_string

mysqli::escape_string

mysqli_escape_string

(PHP 5, PHP 7, PHP 8)

mysqli::escape_string -- mysqli_escape_string — Псевдоним функции mysqli_real_escape_string()

Описание

Функция является псевдонимом: mysqli_real_escape_string().


Псевдоним mysqli_stmt_execute

  • « mysqli::escape_string
  • mysqli_get_client_stats »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Псевдоним mysqli_stmt_execute

mysqli_execute

(PHP 5, PHP 7, PHP 8)

mysqli_execute — Псевдоним mysqli_stmt_execute()

Описание

Функция является псевдонимом: mysqli_stmt_execute().

Примечания

Замечание:

Функция mysqli_execute() устарела и будет удалена.

Смотрите также

  • mysqli_stmt_execute() - Выполняет подготовленное утверждение


Получить клиентскую попроцессную статистику

  • « mysqli_execute
  • mysqli_get_links_stats »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Получить клиентскую попроцессную статистику

mysqli_get_client_stats

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli_get_client_stats — Получить клиентскую попроцессную статистику

Описание

mysqli_get_client_stats(): array

Возвращает клиентскую попроцессную статистику.

Замечание:

Доступно только с модулем mysqlnd.

Список параметров

Возвращаемые значения

Возвращает массив со статистикой.

Примеры

Пример #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_report »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Возвращает информацию об открытых и закешированных соединениях MySQL

mysqli_get_links_stats

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

mysqli_get_links_stats — Возвращает информацию об открытых и закешированных соединениях MySQL

Описание

mysqli_get_links_stats(): array

mysqli_get_links_stats() возвращает информацию об открытых и закешированных соединениях MySQL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

mysqli_get_links_stats() возвращает ассоциативный массив из трёх целочисленных значений со следующими ключами:

total

Целое число (int), означающее общее количество соединений с любыми статусами.

active_plinks

Целое число (int), означающее количество активных постоянных (persistent) соединениях.

cached_plinks

Целое число (int), означающее количество неактивных постоянных (persistent) соединениях.


Псевдоним mysqli_driver->report_mode

  • « mysqli_get_links_stats
  • mysqli::set_opt »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Псевдоним mysqli_driver->report_mode

mysqli_report

(PHP 5, PHP 7, PHP 8)

mysqli_report — Псевдоним mysqli_driver->report_mode

Описание

Функция является псевдонимом: mysqli_driver->report_mode


Псевдоним mysqli_options

  • « mysqli_report
  • Список изменений »
  • PHP Manual
  • Синонимы и устаревшие функции Mysqli
  • Псевдоним mysqli_options

mysqli::set_opt

mysqli_set_opt

(PHP 5, PHP 7, PHP 8)

mysqli::set_opt -- mysqli_set_opt — Псевдоним mysqli_options()

Описание

Функция является псевдонимом: mysqli_options().


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного модуля.

Version Function Description


Mysql_xdevapi

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Сборка / Компиляция из исходного кода
  • Предопределённые константы
  • Список изменений
  • Примеры
  • Функции Mysql_xdevapi
    • expression — Связывает подготовленные переменные утверждения в качестве параметров
    • getSession — Подключается к серверу MySQL
  • mysql_xdevapi\BaseResult — Интерфейс BaseResult
    • BaseResult::getWarnings — Получает предупреждения последней операции
    • BaseResult::getWarningsCount — Получает количество предупреждений последней операции
  • mysql_xdevapi\Client — Класс Client
    • mysql_xdevapi\Client::close — Закрытие клиента
    • Client::__construct — Конструктор класса Client
    • Client::getClient — Получает сеанс клиента
  • mysql_xdevapi\Collection — Класс Collection
    • Collection::add — Добавляет документ в коллекцию
    • Collection::addOrReplaceOne — Добавляет или заменяет документ коллекции
    • Collection::__construct — Конструктор класса Collection
    • Collection::count — Получает количество документов
    • Collection::createIndex — Создаёт индекс для коллекции
    • Collection::dropIndex — Удаляет индекс коллекции
    • Collection::existsInDatabase — Проверяет, существует ли коллекция в базе данных
    • Collection::find — Ищет документ
    • Collection::getName — Получает название коллекции
    • Collection::getOne — Получает один документ
    • Collection::getSchema — Возвращает объект Schema
    • Collection::getSession — Возвращает объект Session
    • Collection::modify — Изменяет документы коллекции
    • 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 — Устанавливает лимит результата
  • mysql_xdevapi\CrudOperationSkippable — Интерфейс CrudOperationSkippable
    • CrudOperationSkippable::skip — Количество операций для пропуска
  • mysql_xdevapi\CrudOperationSortable — Интерфейс CrudOperationSortable
    • CrudOperationSortable::sort — Сортирует результаты
  • 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 — Получает количество затронутых строк
    • 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 — Получает имя схемы по умолчанию
    • Session::getSchema — Получает новый объект схемы
    • Session::getSchemas — Получает схемы
    • Session::getServerVersion — Получает версию сервера
    • Session::listClients — Получает список клиентов
    • Session::quoteName — Добавляет кавычки
    • 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 liblz4-tool zstd

// 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 int

xmysqlnd.collect_statistics int

xmysqlnd.debug string

xmysqlnd.mempool_default_size int

xmysqlnd.net_read_timeout int

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 с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

MYSQLX_CLIENT_SSL (int)
MYSQLX_TYPE_DECIMAL (int)
MYSQLX_TYPE_TINY (int)
MYSQLX_TYPE_SHORT (int)
MYSQLX_TYPE_SMALLINT (int)
MYSQLX_TYPE_MEDIUMINT (int)
MYSQLX_TYPE_INT (int)
MYSQLX_TYPE_BIGINT (int)
MYSQLX_TYPE_LONG (int)
MYSQLX_TYPE_FLOAT (int)
MYSQLX_TYPE_DOUBLE (int)
MYSQLX_TYPE_NULL (int)
MYSQLX_TYPE_TIMESTAMP (int)
MYSQLX_TYPE_LONGLONG (int)
MYSQLX_TYPE_INT24 (int)
MYSQLX_TYPE_DATE (int)
MYSQLX_TYPE_TIME (int)
MYSQLX_TYPE_DATETIME (int)
MYSQLX_TYPE_YEAR (int)
MYSQLX_TYPE_NEWDATE (int)
MYSQLX_TYPE_ENUM (int)
MYSQLX_TYPE_SET (int)
MYSQLX_TYPE_TINY_BLOB (int)
MYSQLX_TYPE_MEDIUM_BLOB (int)
MYSQLX_TYPE_LONG_BLOB (int)
MYSQLX_TYPE_BLOB (int)
MYSQLX_TYPE_VAR_STRING (int)
MYSQLX_TYPE_STRING (int)
MYSQLX_TYPE_CHAR (int)
MYSQLX_TYPE_BYTES (int)
MYSQLX_TYPE_INTERVAL (int)
MYSQLX_TYPE_GEOMETRY (int)
MYSQLX_TYPE_JSON (int)
MYSQLX_TYPE_NEWDECIMAL (int)
MYSQLX_TYPE_BIT (int)
MYSQLX_LOCK_DEFAULT (int)
MYSQLX_LOCK_NOWAIT (int)
MYSQLX_LOCK_SKIP_LOCKED (int)


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного модуля.

Общий журнал изменений модуля ext/mysql_xdevapi

Журнал изменений ссылается на модуль ext/mysql_xdevapi.

Глобальные изменения ext/mysql_xdevapi

Версия | Описание
8.0.28 | Удалена поддержка TLSv1 и TLSv1.1. Значения "TLSv1", "TLSv1.0" и "TLSv1.1" теперь считаются недопустимыми для атрибута соединения "tls-versions".
8.0.26 | Поддержка TLSv1 и TLSv1.1 объявлена устаревшей.


Примеры

Центральной точкой входа в 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 имеет приоритет над переменными среды.

    • Необязательный атрибут compression принимает следующие значения: preferred (клиент договаривается с сервером, чтобы найти поддерживаемый алгоритм; соединение не сжато, если взаимно поддерживаемый алгоритм не найден), required (как "preferred", но соединение разрывается, если взаимно поддерживаемый алгоритм не найден), или disabled (соединение не сжато). По умолчанию используется preferred.

      Опция была добавлена в версии 8.0.20.

    • Необязательный атрибут compression-algorithms определяет желаемые алгоритмы сжатия (и их предпочтительный порядок использования): zstd_stream(псевдоним: zstd), lz4_message (псевдоним: lz4) или deflate_stream (псевдонимы: deflate или zlib). По умолчанию используется порядок (в зависимости от доступности системы): lz4_message, zstd_stream, затем deflate_stream. Например, при передаче compression-algorithms=[lz4, zstd_stream] используется lz4, если он доступен, в противном случае используется zstd_stream. Если оба недоступны, поведение зависит от значения сжатия, например, если compression=required, то произойдёт сбой с ошибкой.

      Опция была добавлена в версии 8.0.22.

Пример #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&compression=required
mysqlx://foo:bar@localhost:33160/?connect-timeout=10&compression=required&compression-algorithms=[lz4,zstd_stream]

Для получения дополнительной информации смотрите 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)

Введение

Обзор классов

class mysql_xdevapi\BaseResult {
/* Методы */
abstract public getWarnings(): array
abstract public getWarningsCount(): int
}

Содержание

  • 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(): 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(): int

Возвращает количество предупреждений, выданных последней операцией. В частности, эти предупреждения вызываются сервером 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

(Информация о версии неизвестна, возможно, только в Git)

Введение

Предоставляет доступ к пулу соединений.

Обзор классов

class mysql_xdevapi\Client {
/* Методы */
public close(): bool
public getSession(): mysql_xdevapi\Session
}

Содержание

  • mysql_xdevapi\Client::close — Закрытие клиента
  • Client::__construct — Конструктор класса Client
  • Client::getClient — Получает сеанс клиента


Закрытие клиента

  • « mysql_xdevapi\Client
  • Client::__construct »
  • PHP Manual
  • mysql_xdevapi\Client
  • Закрытие клиента

mysql_xdevapi\Client::close

(Информация о версии неизвестна, возможно, только в Git)

mysql_xdevapi\Client::close — Закрытие клиента

Описание

public mysql_xdevapi\Client::close(): bool

Закрывает все клиентские соединения с сервером.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если соединения закрыты.


Конструктор класса Client

  • « mysql_xdevapi\Client::close
  • Client::getClient »
  • PHP Manual
  • mysql_xdevapi\Client
  • Конструктор класса Client

Client::__construct

(Информация о версии неизвестна, возможно, только в Git)

Client::__construct — Конструктор класса Client

Описание

private mysql_xdevapi\Client::__construct()

Конструктор класса Client.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\Client::__construct()

<?php
$pooling_options = '{
"enabled": true,
"maxSize": 10,
"maxIdleTime": 3600,
"queueTimeOut": 1000
}';
$client = mysql_xdevapi\getClient($connection_uri, $pooling_options);
$session = $client->getSession();


Получает сеанс клиента

  • « Client::__construct
  • mysql_xdevapi\Collection »
  • PHP Manual
  • mysql_xdevapi\Client
  • Получает сеанс клиента

Client::getClient

(Информация о версии неизвестна, возможно, только в Git)

Client::getClient — Получает сеанс клиента

Описание

public mysql_xdevapi\Client::getSession(): mysql_xdevapi\Session

Получает сеанс, связанный с клиентом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Session.


Класс Collection

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

class 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(): int
public createIndex(string $index_name, string $index_desc_json): void
public dropIndex(string $index_name): bool
public existsInDatabase(): bool
public find(string $search_condition = ?): mysql_xdevapi\CollectionFind
public getName(): string
public getOne(string $id): Document
public getSchema(): Schema Object
public getSession(): 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 — Удаляет индекс коллекции
  • Collection::existsInDatabase — Проверяет, существует ли коллекция в базе данных
  • Collection::find — Ищет документ
  • Collection::getName — Получает название коллекции
  • Collection::getOne — Получает один документ
  • Collection::getSchema — Возвращает объект Schema
  • Collection::getSession — Возвращает объект Session
  • Collection::modify — Изменяет документы коллекции
  • 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()

Создаёт объект 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(): int

Функционал аналогичен операции 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
}'
);


Удаляет индекс коллекции

  • « Collection::createIndex
  • Collection::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Удаляет индекс коллекции

Collection::dropIndex

(Информация о версии неизвестна, возможно, только в Git)

Collection::dropIndex — Удаляет индекс коллекции

Описание

public mysql_xdevapi\Collection::dropIndex(string $index_name): bool

Удаляет индекс коллекции.

Данная операция не приведёт к возникновению ошибки, если индекс не существует, но в этом случае вернётся false.

Список параметров

index_name

Имя индекса коллекции для удаления.

Возвращаемые значения

true, если операция DROP INDEX выполнена успешно, false в противном случае.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::dropIndex()

<?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 "Индекс с названием 'myindex' был найден и удалён.";
}
?>

Результат выполнения данного примера:

Индекс с названием 'myindex' был найден и удалён.


Проверяет, существует ли коллекция в базе данных

  • « Collection::dropIndex
  • Collection::find »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Проверяет, существует ли коллекция в базе данных

Collection::existsInDatabase

(Информация о версии неизвестна, возможно, только в Git)

Collection::existsInDatabase — Проверяет, существует ли коллекция в базе данных

Описание

public mysql_xdevapi\Collection::existsInDatabase(): bool

Проверяет, ссылается ли объект Collection на коллекцию в базе данных (схему).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true если коллекция существует в базе данных, иначе false если это не так.

Таблица, определённая двумя столбцами (doc и _id), считается коллекцией, и третьим столбцом _json_schema с MySQL 8.0.21. Добавление дополнительного столбца означает, что existsInDatabase() больше не будет видеть его как коллекцию.

Примеры

Пример #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 не существует в базе данных. Что случилось?";
}
?>


Ищет документ

  • « Collection::existsInDatabase
  • Collection::getName »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Ищет документ

Collection::find

(Информация о версии неизвестна, возможно, только в Git)

Collection::find — Ищет документ

Описание

public mysql_xdevapi\Collection::find(string $search_condition = ?): mysql_xdevapi\CollectionFind

Ищет документ или набор документов в коллекции базы данных. Найденные документы возвращаются в виде объекта CollectionFind, из которого в дальнейшем можно извлекать результаты или изменять их.

Список параметров

search_condition

Хотя это необязательно, обычно определяется условие, сужающее результаты до подмножества документов.

Условие могут составлять несколько элементов, синтаксис поддерживает привязку параметров. Выражение, используемое в качестве условия поиска, должно быть допустимым выражением SQL. Если условие поиска не указано (поле пустое), подразумевается find('true').

Возвращаемые значения

Объект CollectionFind для проверки операции или получения найденных документов.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::find()

<?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": "Альфред", "age": 18, "job": "Дворецкий"}')->execute();
$collection->add('{"name": "Боб", "age": 19, "job": "Пловец"}')->execute();
$collection->add('{"name": "Фред", "age": 20, "job": "Строитель"}')->execute();
$collection->add('{"name": "Уилма", "age": 21, "job": "Учитель"}')->execute();
$collection->add('{"name": "Джон", "age": 22, "job": "Учитель"}')->execute();

$find = $collection->find('job LIKE :job AND age > :age');
$result = $find
->bind(['job' => 'Учитель', 'age' => 20])
->sort('age DESC')
->limit(2)
->execute();

print_r($result->fetchAll());
?>

Результат выполнения данного примера:

Array
(
    [0] => Array
        (
            [_id] => 00005b6b536100000000000000a8
            [age] => 22
            [job] => Учитель
            [name] => Джон
        )
    [1] => Array
        (
            [_id] => 00005b6b536100000000000000a7
            [age] => 21
            [job] => Учитель
            [name] => Уилма
        )
)


Получает название коллекции

  • « Collection::find
  • Collection::getOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Получает название коллекции

Collection::getName

(Информация о версии неизвестна, возможно, только в Git)

Collection::getName — Получает название коллекции

Описание

public mysql_xdevapi\Collection::getName(): 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
)


Возвращает объект Schema

  • « Collection::getOne
  • Collection::getSession »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Возвращает объект Schema

Collection::getSchema

(Информация о версии неизвестна, возможно, только в Git)

Collection::getSchema — Возвращает объект Schema

Описание

public mysql_xdevapi\Collection::getSchema(): Schema Object

Возвращает объект Schema, содержащий коллекцию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Schema в случае успешного выполнения или null, если объект не может быть возвращён для данной коллекции.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::getSchema()

<?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"
}


Возвращает объект Session

  • « Collection::getSchema
  • Collection::modify »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Возвращает объект Session

Collection::getSession

(Информация о версии неизвестна, возможно, только в Git)

Collection::getSession — Возвращает объект Session

Описание

public mysql_xdevapi\Collection::getSession(): Session

Возвращает новый объект Session из объекта Collection.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Session.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::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");
$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) {
}


Изменяет документы коллекции

  • « Collection::getSession
  • Collection::remove »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Изменяет документы коллекции

Collection::modify

(Информация о версии неизвестна, возможно, только в Git)

Collection::modify — Изменяет документы коллекции

Описание

public mysql_xdevapi\Collection::modify(string $search_condition): mysql_xdevapi\CollectionModify

Изменяет коллекции, соответствующие определённым условиям поиска. Разрешены несколько операций, поддерживается привязка параметров.

Список параметров

search_condition

Параметр должен быть допустимым выражением SQL, используемым для соответствия документам, которые нужно изменить. Это выражение может быть простым значением true, что соответствует всем документам, или может использовать функции и операторы, такие как 'CAST(_id AS SIGNED) >= 10', 'age MOD 2 = 0 OR age MOD 3 = 0' или '_id IN ["2","5","7","10"]'.

Возвращаемые значения

Если операция не выполнена, функция вернёт объект Modify, который можно использовать для добавления дополнительных операций MODIFY.

Если операция MODIFY выполнена, то возвращаемый объект будет содержать результат операции.

Примеры

Пример #1 Пример использования mysql_xdevapi\Collection::modify()

<?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": "Альфред", "age": 18, "job": "Дворецкий"}')->execute();
$collection->add('{"name": "Боб", "age": 19, "job": "Художник"}')->execute();

// Добавление двух работ для всех художников: артист и мастер
$collection
->modify("job in ('Дворецкий', 'Художник')")
->arrayAppend('job', 'Артист')
->arrayAppend('job', 'Мастер')
->execute();

// Удаление поля 'beer' из всех документов с возрастом 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)

Введение

Обзор классов

class mysql_xdevapi\CollectionAdd implements mysql_xdevapi\Executable {
/* Методы */
public execute(): 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()

Используется для добавления документа в коллекцию; вызывается из объекта 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(): 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)

Введение

Обзор классов

class 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(): 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(int $rows): mysql_xdevapi\CollectionFind
public lockExclusive(int $lock_waiting_option = ?): mysql_xdevapi\CollectionFind
public lockShared(int $lock_waiting_option = ?): mysql_xdevapi\CollectionFind
public offset(int $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()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #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(): 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(int $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(int $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(int $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(int $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)

Введение

Обзор классов

class 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(): mysql_xdevapi\Result
public limit(int $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(int $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()

Изменяет (обновляет) коллекцию и создаётся методом 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(): 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(int $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(int $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)

Введение

Обзор классов

class 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(): mysql_xdevapi\Result
public limit(int $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()

Удаляет документы коллекции и создаётся экземпляром метода 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(): 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(int $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)

Введение

Обзор классов

class mysql_xdevapi\ColumnResult {
/* Методы */
public getCharacterSetName(): string
public getCollationName(): string
public getColumnLabel(): string
public getColumnName(): string
public getFractionalDigits(): int
public getLength(): int
public getSchemaName(): string
public getTableLabel(): string
public getTableName(): string
public getType(): int
public isNumberSigned(): int
public isPadded(): int
}

Содержание

  • 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()

Получает метаданные столбца, такие как набор символов; создаётся методом 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(): 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(): 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(): 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(): 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(): int

Получает количество дробных цифр для столбца.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #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(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #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(): 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(): 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(): 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(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #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(): int

Получает информацию о столбцах таблицы и создаётся методом 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(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если заданный столбец дополняется.

Примеры

Пример #1 Пример использования mysql_xdevapi\ColumnResult::isPadded()

<?php

/* ... */

?>


Интерфейс CrudOperationBindable

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

class 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)

Введение

Обзор классов

class mysql_xdevapi\CrudOperationLimitable {
/* Методы */
abstract public limit(int $rows): mysql_xdevapi\CrudOperationLimitable
}

Содержание

  • CrudOperationLimitable::limit — Устанавливает лимит результата


Устанавливает лимит результата

  • « mysql_xdevapi\CrudOperationLimitable
  • mysql_xdevapi\CrudOperationSkippable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationLimitable
  • Устанавливает лимит результата

CrudOperationLimitable::limit

(Информация о версии неизвестна, возможно, только в Git)

CrudOperationLimitable::limit — Устанавливает лимит результата

Описание

abstract public mysql_xdevapi\CrudOperationLimitable::limit(int $rows): mysql_xdevapi\CrudOperationLimitable

Устанавливает максимальное количество записей или документов для возврата.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

rows

Максимальное количество записей или документов.

Возвращаемые значения

Объект CrudOperationLimitable.

Примеры

Пример #1 Пример использования mysql_xdevapi\CrudOperationLimitable::limit()

<?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)

Введение

Обзор классов

class mysql_xdevapi\CrudOperationSkippable {
/* Методы */
abstract public skip(int $skip): mysql_xdevapi\CrudOperationSkippable
}

Содержание

  • CrudOperationSkippable::skip — Количество операций для пропуска


Количество операций для пропуска

  • « mysql_xdevapi\CrudOperationSkippable
  • mysql_xdevapi\CrudOperationSortable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationSkippable
  • Количество операций для пропуска

CrudOperationSkippable::skip

(Информация о версии неизвестна, возможно, только в Git)

CrudOperationSkippable::skip — Количество операций для пропуска

Описание

abstract public mysql_xdevapi\CrudOperationSkippable::skip(int $skip): mysql_xdevapi\CrudOperationSkippable

Пропускает это количество записей в возвращаемой операции.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

skip

Количество пропускаемых элементов.

Возвращаемые значения

Объект CrudOperationSkippable.

Примеры

Пример #1 Пример использования mysql_xdevapi\CrudOperationSkippable::skip()

<?php

$res = $coll->find('job like \'Programmatore\'')->limit(1)->skip(3)->sort('age asc')->execute();

?>


Интерфейс CrudOperationSortable

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

class mysql_xdevapi\CrudOperationSortable {
/* Методы */
abstract public sort(string $sort_expr): mysql_xdevapi\CrudOperationSortable
}

Содержание

  • CrudOperationSortable::sort — Сортирует результаты


Сортирует результаты

  • « mysql_xdevapi\CrudOperationSortable
  • mysql_xdevapi\DatabaseObject »
  • PHP Manual
  • mysql_xdevapi\CrudOperationSortable
  • Сортирует результаты

CrudOperationSortable::sort

(Информация о версии неизвестна, возможно, только в Git)

CrudOperationSortable::sort — Сортирует результаты

Описание

abstract public mysql_xdevapi\CrudOperationSortable::sort(string $sort_expr): mysql_xdevapi\CrudOperationSortable

Сортирует результирующий набор по полю, выбранному в аргументе sort_expr. Допустимый порядок сортировки: ASC (по возрастанию) или DESC (по убыванию). Эта операция эквивалентна операции SQL 'ORDER BY' и следует тому же набору правил.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

sort_expr

Может быть предоставлено одно или несколько выражений сортировки. Вычисление выполняется слева направо, и каждое выражение разделяется запятой.

Возвращаемые значения

Объект CrudOperationSortable.

Примеры

Пример #1 Пример использования mysql_xdevapi\CrudOperationSortable::sort()

<?php

$res = $coll->find('job like \'Cavia\'')->sort('age desc', '_id desc')->execute();

?>


Интерфейс DatabaseObject

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

class mysql_xdevapi\DatabaseObject {
/* Методы */
abstract public existsInDatabase(): bool
abstract public getName(): string
abstract public getSession(): 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(): 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(): 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(): mysql_xdevapi\Session

Получает сессию, связанную с объектом базы данных.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Session.

Примеры

Пример #1 Пример использования mysql_xdevapi\DatabaseObject::getSession()

<?php

$session = $dbObj->getSession();

?>


Класс DocResult

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

class mysql_xdevapi\DocResult implements mysql_xdevapi\BaseResult, Traversable {
/* Методы */
public fetchAll(): array
public fetchOne(): array
public getWarnings(): Array
public getWarningsCount(): int
}

Содержание

  • 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()

Получить результаты и предупреждения документа, создаётся 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(): 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(): 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(): 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(): int

Возвращает количество предупреждений, вызванных последней операцией. В частности, эти предупреждения вызываются сервером 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)

Введение

Обзор классов

class mysql_xdevapi\Exception extends RuntimeException implements Throwable {
}


Интерфейс Executable

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

class mysql_xdevapi\Executable {
/* Методы */
abstract public execute(): 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(): 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)

Введение

Обзор классов

class mysql_xdevapi\ExecutionStatus {
/* Свойства */
public $affectedItems;
public $matchedItems;
public $foundItems;
public $lastInsertId;
public $lastDocumentId;
/* Constructor */
private __construct()
}

Свойства

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()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования mysql_xdevapi\ExecutionStatus::__construct()

<?php

/* ... */

?>


Класс Expression

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

class 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)

Введение

Обзор классов

class mysql_xdevapi\Result implements mysql_xdevapi\BaseResult, Traversable {
/* Методы */
public getAffectedItemsCount(): int
public getAutoIncrementValue(): int
public getGeneratedIds(): array
public getWarnings(): array
public getWarningsCount(): int
}

Содержание

  • Result::__construct — Конструктор класса Result
  • Result::getAffectedItemsCount — Получает количество затронутых строк
  • 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()

Объект, который извлекает сгенерированные идентификаторы, значения 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)


Получает количество затронутых строк

  • « Result::__construct
  • Result::getAutoIncrementValue »
  • PHP Manual
  • mysql_xdevapi\Result
  • Получает количество затронутых строк

Result::getAffectedItemsCount

(Информация о версии неизвестна, возможно, только в Git)

Result::getAffectedItemsCount — Получает количество затронутых строк

Описание

public mysql_xdevapi\Result::getAffectedItemsCount(): int

Получает количество строк, затронутых предыдущей операцией.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество (как целое число) затронутых строк.

Примеры

Пример #1 Пример использования mysql_xdevapi\Result::getAffectedItemsCount()

<?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(): 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(): 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(): 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(): int

Получает количество предупреждений последней операции 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)

Введение

Обзор классов

class mysql_xdevapi\RowResult implements mysql_xdevapi\BaseResult, Traversable {
/* Методы */
public fetchAll(): array
public fetchOne(): array
public getColumnsCount(): int
public getColumnNames(): array
public getColumns(): array
public getWarnings(): array
public getWarningsCount(): int
}

Содержание

  • 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()

Представляет набор результатов, полученный при обращении к базе данных.

Список параметров

У этой функции нет параметров.

Примеры

Пример #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(): 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(): 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(): int

Получает количество столбцов, присутствующих в наборе результатов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество столбцов; 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(): 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(): 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(): 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(): int

Получает количество предупреждений последней операции 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)

Введение

Обзор классов

class mysql_xdevapi\Schema implements mysql_xdevapi\DatabaseObject {
/* Свойства */
public $name;
/* Методы */
public createCollection(string $name, string $validate = ?): mysql_xdevapi\Collection
public dropCollection(string $collection_name): bool
public existsInDatabase(): bool
public getCollection(string $name): mysql_xdevapi\Collection
public getCollectionAsTable(string $name): mysql_xdevapi\Table
public getCollections(): array
public getName(): string
public getSession(): mysql_xdevapi\Session
public getTable(string $name): mysql_xdevapi\Table
public getTables(): 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()

Объект 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, string $validate = ?): mysql_xdevapi\Collection

Создать коллекцию внутри схемы.

Список параметров

name

Имя коллекции.

validate

Определение проверки в виде объекта JSON.

Возвращаемые значения

Объект коллекции.

Список изменений

Версия | Описание
8.0.20 | Добавлен необязательный параметр validate.

Примеры

Пример #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
        )
)

Пример #2 Пример использования Schema::createCollection с параметром validate

<?php
$collection = $schema->createCollection("mycollection", '{
"validation": {
"level": "strict",
"schema": {
"id": "http://json-schema.org/geo",
"description": "A geographical coordinate",
"type": "object",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
},
"required": ["latitude", "longitude"]
}
}
}');
// Успешное выполнение
$collection->add('{"latitude": 10, "longitude": 20}')->execute();
// Ошибка, недопустимые типы (не числа)
$collection->add('{"latitude": "lat", "longitude": "long"}')->execute();


Удалить коллекции из схемы

  • « 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(): 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(): 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(): 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(): 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(): 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)

Введение

Обзор классов

class mysql_xdevapi\SchemaObject implements mysql_xdevapi\DatabaseObject {
/* Методы */
abstract getSchema(): 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(): 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)

Введение

Обзор классов

class mysql_xdevapi\Session {
/* Методы */
public close(): bool
public commit(): Object
public createSchema(string $schema_name): mysql_xdevapi\Schema
public dropSchema(string $schema_name): bool
public generateUUID(): string
public getDefaultSchema(): string
public getSchema(string $schema_name): mysql_xdevapi\Schema
public getSchemas(): array
public getServerVersion(): int
public listClients(): array
public quoteName(string $name): string
public releaseSavepoint(string $name): void
public rollback(): void
public rollbackTo(string $name): void
public setSavepoint(string $name = ?): string
public sql(string $query): mysql_xdevapi\SqlStatement
public startTransaction(): void
}

Содержание

  • Session::close — Закрывает сессию
  • Session::commit — Фиксирует транзакцию
  • Session::__construct — Описание конструктора
  • Session::createSchema — Создаёт новую схему
  • Session::dropSchema — Удаляет схему
  • Session::generateUUID — Получает новый UUID
  • Session::getDefaultSchema — Получает имя схемы по умолчанию
  • Session::getSchema — Получает новый объект схемы
  • Session::getSchemas — Получает схемы
  • Session::getServerVersion — Получает версию сервера
  • Session::listClients — Получает список клиентов
  • Session::quoteName — Добавляет кавычки
  • 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(): 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, PHP 8)

Session::commit — Фиксирует транзакцию

Описание

public mysql_xdevapi\Session::commit(): 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()

Объект 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(): 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"


Получает имя схемы по умолчанию

  • « Session::generateUUID
  • Session::getSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Получает имя схемы по умолчанию

Session::getDefaultSchema

(Информация о версии неизвестна, возможно, только в Git)

Session::getDefaultSchema — Получает имя схемы по умолчанию

Описание

public mysql_xdevapi\Session::getDefaultSchema(): string

Извлекает имя схемы по умолчанию, которая обычно устанавливается в URI соединения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя схемы по умолчанию, определённой соединением или null, если схема не установлена.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::getSchema()

<?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(): 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(): int

Получает версию сервера 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(): 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)
  }
}


Добавляет кавычки

  • « Session::listClients
  • Session::releaseSavepoint »
  • PHP Manual
  • mysql_xdevapi\Session
  • Добавляет кавычки

Session::quoteName

(Информация о версии неизвестна, возможно, только в Git)

Session::quoteName — Добавляет кавычки

Описание

public mysql_xdevapi\Session::quoteName(string $name): string

Функция для экранирования имён и идентификаторов SQL. Экранирует идентификатор, указанный в соответствии с настройками текущего соединения. Эту функцию не следует использовать для экранирования значений.

Список параметров

name

Строка для экранирования.

Возвращаемые значения

Экранированная строка.

Примеры

Пример #1 Пример использования mysql_xdevapi\Session::quoteName()

<?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

Откатывает транзакцию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект 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

Начинает новую транзакцию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект 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)

Введение

Обзор классов

class mysql_xdevapi\SqlStatement {
/* Константы */
const int EXECUTE_ASYNC = 1;
const int BUFFERED = 2;
/* Свойства */
public $statement;
/* Методы */
public bind(string $param): mysql_xdevapi\SqlStatement
public execute(): mysql_xdevapi\Result
public getNextResult(): mysql_xdevapi\Result
public getResult(): mysql_xdevapi\Result
public hasMoreResults(): 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()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #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(): 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(): 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(): 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(): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если в наборе результатов есть больше объектов для выборки.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatement::hasMoreResults()

<?php

/* ... */

?>


Класс SqlStatementResult

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

class mysql_xdevapi\SqlStatementResult implements mysql_xdevapi\BaseResult, Traversable {
/* Методы */
public fetchAll(): array
public fetchOne(): array
public getAffectedItemsCount(): int
public getColumnsCount(): int
public getColumnNames(): array
public getColumns(): Array
public getGeneratedIds(): array
public getLastInsertId(): String
public getWarnings(): array
public getWarningCounts(): int
public hasData(): bool
public nextResult(): 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()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #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(): 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(): 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(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #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(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество столбцов; 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(): 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(): 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(): 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(): 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(): 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(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество предупреждений, выданных во время последней операции 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(): 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(): mysql_xdevapi\Result

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Следующий объект Result из набора результатов.

Примеры

Пример #1 Пример использования mysql_xdevapi\SqlStatementResult::nextResult()

<?php

/* ... */

?>


Класс Statement

(PECL mysql-xdevapi >= 8.0.11)

Введение

Обзор классов

class mysql_xdevapi\Statement {
/* Константы */
const int EXECUTE_ASYNC = 1;
const int BUFFERED = 2;
/* Методы */
public getNextResult(): mysql_xdevapi\Result
public getResult(): mysql_xdevapi\Result
public hasMoreResults(): 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()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #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(): 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(): 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(): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования mysql_xdevapi\Statement::hasMoreResults()

<?php

/* ... */

?>


Класс Table

(PECL mysql-xdevapi >= 8.0.11)

Введение

Предоставляет доступ к таблице через операторы INSERT/SELECT/UPDATE/DELETE.

Обзор классов

class mysql_xdevapi\Table implements mysql_xdevapi\SchemaObject {
/* Свойства */
public $name;
/* Методы */
public count(): int
public delete(): mysql_xdevapi\TableDelete
public existsInDatabase(): bool
public getName(): string
public getSchema(): mysql_xdevapi\Schema
public getSession(): mysql_xdevapi\Session
public insert(mixed $columns, mixed ...$more_columns): mysql_xdevapi\TableInsert
public isView(): bool
public select(mixed $columns, mixed ...$more_columns): mysql_xdevapi\TableSelect
public update(): 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()

Создать объекты таблицы.

Список параметров

У этой функции нет параметров.

Примеры

Пример #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(): int

Получить количество строк в таблице.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Общее количество строк в таблице.

Примеры

Пример #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(): 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(): 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(): 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(): 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(): 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 ...$more_columns): mysql_xdevapi\TableInsert

Вставляет строки в таблицу.

Список параметров

columns

Столбцы для вставки данных. Может быть массивом с одним или несколькими значениями, либо строкой.

more_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(): 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 ...$more_columns): mysql_xdevapi\TableSelect

Извлекает данные из таблицы.

Список параметров

columns

Столбцы для выбора данных. Может быть массивом с одним или несколькими значениями или строкой.

more_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(): 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)

Введение

Оператор для операций удаления в таблице.

Обзор классов

class mysql_xdevapi\TableDelete implements mysql_xdevapi\Executable {
/* Методы */
public bind(array $placeholder_values): mysql_xdevapi\TableDelete
public execute(): mysql_xdevapi\Result
public limit(int $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()

Инициируется с помощью метода 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(): 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(int $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)

Введение

Оператор для операций вставки в таблице.

Обзор классов

class mysql_xdevapi\TableInsert implements mysql_xdevapi\Executable {
/* Методы */
public execute(): 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()

Инициируется с помощью метода 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(): 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)

Введение

Оператор для операций поиска записи в таблице.

Обзор классов

class mysql_xdevapi\TableSelect implements mysql_xdevapi\Executable {
/* Методы */
public bind(array $placeholder_values): mysql_xdevapi\TableSelect
public execute(): mysql_xdevapi\RowResult
public groupBy(mixed $sort_expr): mysql_xdevapi\TableSelect
public having(string $sort_expr): mysql_xdevapi\TableSelect
public limit(int $rows): mysql_xdevapi\TableSelect
public lockExclusive(int $lock_waiting_option = ?): mysql_xdevapi\TableSelect
public lockShared(int $lock_waiting_option = ?): mysql_xdevapi\TableSelect
public offset(int $position): mysql_xdevapi\TableSelect
public orderby(mixed $sort_expr, mixed ...$sort_exprs): 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()

Объект, возвращаемый методом 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(): 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(int $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(int $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(int $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(int $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 ...$sort_exprs): mysql_xdevapi\TableSelect

Устанавливает порядок по критериям.

Список параметров

sort_expr

Выражения, которые определяют порядок по критериям. Может быть массивом с одним или несколькими выражениями или строкой.

sort_exprs

Дополнительные параметры 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)

Введение

Оператор для операций обновления записи в таблице.

Обзор классов

class mysql_xdevapi\TableUpdate implements mysql_xdevapi\Executable {
/* Методы */
public bind(array $placeholder_values): mysql_xdevapi\TableUpdate
public execute(): mysql_xdevapi\TableUpdate
public limit(int $rows): mysql_xdevapi\TableUpdate
public orderby(mixed $orderby_expr, mixed ...$orderby_exprs): 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()

Инициируется с помощью метода 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(): 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(int $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 ...$orderby_exprs): mysql_xdevapi\TableUpdate

Устанавливает критерии сортировки.

Список параметров

orderby_expr

Выражения, которые определяют порядок по критериям. Может быть массивом с одним или несколькими выражениями или строкой.

orderby_exprs

Дополнительные параметры 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)

Введение

Обзор классов

class mysql_xdevapi\Warning {
/* Свойства */
public $message;
public $level;
public $code;
/* Конструктор */
private __construct()
}

Свойства

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()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #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. Альтернативы для данной функции:


Установка

Внимание

Данный модуль устарел, начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API. Альтернативы для данной функции:

Для компиляции просто используйте опцию конфигурации --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 int

Разрешает доступ к локальным файлам, с точки зрения PHP, с помощью инструкций LOAD DATA

mysql.allow_persistent bool

Позволять ли постоянные соединения с MySQL.

mysql.max_persistent int

Максимальное количество постоянных соединений c MySQL на один процесс.

mysql.max_links int

Максимальное количество соединений с MySQL на один процесс, включая постоянные соединения.

mysql.trace_mode bool

Режим трассировки. Если включена опция 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 int

Время ожидания ответа до разрыва соединения в секундах. Linux также использует это значение при ожидании первого ответа от сервера.


Типы ресурсов

Есть два типа ресурсов, используемых в модуле MySQL. Первый является идентификатором соединения для подключения к базе данных, а второй ресурс содержит результат выполнения запроса.


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного модуля.

Общий список изменений для модуля ext/mysql

Этот список изменений ссылается на модуль ext/mysql.

Глобальные изменения в ext/mysql

Следующий список представляет собой подборку изменений модуля ext/mysql.

Версия | Описание
7.0.0 | Этот модуль удалён из PHP. Подробности тут Выбор API.

Изменения в существующих функциях

Нижеследующий список является компиляцией всех изменений в функциях ext/mysql.

Version Function Description


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • 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|false

Открывает новое соединение с сервером 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 в случае возникновения ошибки.

Примеры

Пример #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.ini mysql.default_host в php.ini, после чего можно оставлять параметр 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. Альтернативы для этой функции:

  • 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • Запрос: 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() для определения природы ошибок.

Примеры

Пример #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. Альтернативы для этой функции:

  • mysqli_select_db() then the query
  • PDO::__construct()

Описание

mysql_db_query(string $database, string $query, resource $link_identifier = NULL): resource|bool

mysql_db_query() выбирает базу данных и выполняет запрос к ней.

Список параметров

database

Имя базы данных, на которую произойдёт переключение.

query

Запрос MySQL.

Данные в запросе должны быть корректно проэкранированы.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает ресурс результата запроса к MySQL или false в случае возникновения ошибки. Функция также возвращает true/false для INSERT/UPDATE/DELETE запросов для индикации успеха/провала.

Примеры

Пример #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. Альтернативы для этой функции:

  • Выполнить запрос 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • 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. Альтернативы для этой функции:

  • 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

Экранируемая строка.

Возвращаемые значения

Возвращает экранируемую строку.

Примеры

Пример #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


Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба

  • « 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • mysqli_fetch_assoc()
  • PDOStatement::fetch() с параметром mode заданным как 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • mysqli_fetch_lengths()
  • PDOStatement::getColumnMeta()

Описание

mysql_fetch_lengths(resource $result): array|false

Возвращает массив длин для каждого поля, содержащегося в последнем ряду результата, полученном из 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. Альтернативы для данной функции:

  • mysqli_fetch_object()
  • PDOStatement::fetch() с параметром mode заданным как 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. Альтернативы для данной функции:

  • mysqli_fetch_row()
  • PDOStatement::fetch() с параметром mode заданным как 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. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [flags]
  • PDOStatement::getColumnMeta() [flags]

Описание

mysql_field_flags(resource $result, int $field_offset): string|false

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. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [length]
  • PDOStatement::getColumnMeta() [len]

Описание

mysql_field_len(resource $result, int $field_offset): int|false

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. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [name] или [orgname]
  • PDOStatement::getColumnMeta() [name]

Описание

mysql_field_name(resource $result, int $field_offset): string|false

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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • mysqli_get_client_info()
  • PDO::getAttribute() с параметром attribute заданным как PDO::ATTR_CLIENT_VERSION

Описание

mysql_get_client_info(): 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. Альтернативы для данной функции:

  • mysqli_get_host_info()
  • PDO::getAttribute() с параметром attribute заданным как PDO::ATTR_CONNECTION_STATUS

Описание

mysql_get_host_info(resource $link_identifier = NULL): string|false

Описывает тип используемого соединения, указанного переданным дескриптором соединения, включая имя хоста.

Список параметров

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. Альтернативы для данной функции:

  • mysqli_get_proto_info()

Описание

mysql_get_proto_info(resource $link_identifier = NULL): int|false

Возвращает информацию о протоколе 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. Альтернативы для данной функции:

  • mysqli_get_server_info()
  • PDO::getAttribute() с параметром attribute заданным как PDO::ATTR_SERVER_VERSION

Описание

mysql_get_server_info(resource $link_identifier = NULL): string|false

Возвращает версию сервера 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • 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. Альтернативы для этой функции:

  • 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. Альтернативы для этой функции:

  • 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. Альтернативы для данной функции:

  • mysqli_thread_id()

Описание

mysql_list_processes(resource $link_identifier = NULL): resource|false

Возвращает список текущих процессов на сервере 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. Альтернативы для этой функции:

  • SQL запрос: SHOW TABLES FROM dbname

Описание

mysql_list_tables(string $database, resource $link_identifier = NULL): resource|false

Возвращает список имён таблиц базы данных 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. Альтернативы для данной функции:

  • mysqli_num_fields()
  • PDOStatement::columnCount()

Описание

mysql_num_fields(resource $result): int|false

Возвращает количество полей в результате запроса.

Список параметров

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. Альтернативы для данной функции:

  • mysqli_num_rows()
  • mysqli_stmt_num_rows()
  • PDOStatement::rowCount()

Описание

mysql_num_rows(resource $result): int|false

Возвращает количество рядов результата запроса. Эта команда работает только с запросами 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. Альтернативы для данной функции:

  • 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 в случае возникновения ошибки.

Примечания

Замечание:

Учтите, что соединения такого типа работают только, если 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • 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 не указан, используется последнее открытое соединение.

Замечание:

Если не пользоваться этой функцией, то запрос становится уязвимым для взлома с помощью SQL-инъекций.

Замечание: mysql_real_escape_string() не экранирует символы % и _. Эти знаки являются масками групп символов в операторах MySQL LIKE, GRANT и REVOKE.

Смотрите также

  • mysql_set_charset() - Устанавливает кодировку клиента
  • mysql_client_encoding() - Возвращает кодировку соединения


Возвращает данные результата запроса

  • « 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • 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. Альтернативы для данной функции:

  • mysqli_stat()
  • PDO::getAttribute() с параметром attribute заданным как 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. Альтернативы для данной функции:

  • SQL запрос: SHOW TABLES

Описание

mysql_tablename(resource $result, int $i): string|false

Возвращает имя таблицы из result.

Данная функция устарела. Вместо неё рекомендуется использование mysql_query() с SQL-запросом SHOW TABLES [FROM db_name] [LIKE 'pattern'].

Список параметров

result

Дескриптор результата типа resource, полученный из вызова mysql_list_tables().

i

Целочисленный индекс (номер ряда/таблицы)

Возвращаемые значения

Имя таблицы в случае успешного выполнения или false в случае возникновения ошибки.

Используйте функцию mysql_tablename() для работы с результатом запроса, либо любую другую функцию, способную это делать, например, mysql_fetch_array().

Примеры

Пример #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. Альтернативы для данной функции:

  • mysqli_thread_id()

Описание

mysql_thread_id(resource $link_identifier = NULL): int|false

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. Альтернативы для данной функции:

  • 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

  • Введение
  • Обзор
  • Установка
  • Настройка во время выполнения
  • Несовместимости
  • Постоянное соединение
  • Статистика
  • Замечания
  • Управление памятью
  • 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_client_stats(), mysqli_get_connection_stats()

Статистика производительности может быть очень полезна для нахождения узких мест в производительности.

Встроенный драйвер MySQL также поддерживает постоянные соединения при использовании модуля mysqli.

Поддержка SSL

Встроенный драйвер MySQL поддерживает SSL.

Поддержка протокола с использованием сжатия

Встроенный драйвер MySQL поддерживает клиент-серверный протокол с использованием сжатия. Модули, например, ext/mysql или ext/mysqli, настроенные на использование встроенного драйвера MySQL, могут также воспользоваться этой возможностью. Обратите внимание, что PDO_MYSQL НЕ поддерживает сжатие при использовании совместно с mysqlnd.

Поддержка именованных каналов

Именованные каналы можно использовать для подключения в средах Windows.


Установка

Установка в Unix

Для работы встроенного драйвера 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-дистрибутивах встроенный драйвер 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 |
mysqlnd.collect_memory_statistics | "0" | PHP_INI_SYSTEM |
mysqlnd.debug | "" | PHP_INI_SYSTEM |
mysqlnd.log_mask | 0 | PHP_INI_ALL |
mysqlnd.mempool_default_size | 16000 | PHP_INI_ALL |
mysqlnd.net_read_timeout | ""86400"" | PHP_INI_ALL | До PHP 7.2.0 значением по умолчанию "31536000", а местом изменения было PHP_INI_SYSTEM
mysqlnd.net_cmd_buffer_size | 5.3.0 - "2048", 5.3.1 - "4096" | PHP_INI_SYSTEM |
mysqlnd.net_read_buffer_size | "32768" | PHP_INI_SYSTEM |
mysqlnd.sha256_server_public_key | "" | PHP_INI_PERDIR |
mysqlnd.trace_alloc | "" | PHP_INI_SYSTEM |
mysqlnd.fetch_data_copy | 0 | PHP_INI_ALL | Удалено, начиная с PHP 8.1.0
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mysqlnd.collect_statistics bool

Включает сбор различной статистики клиента, доступ к которой можно получить с помощью mysqli_get_client_stats(), mysqli_get_connection_stats(), и которая отображается в разделе mysqlnd вывода функции phpinfo().

Этот параметр конфигурации включает всю статистику встроенного драйвера MySQL, кроме относящейся к работе с оперативной памятью.

mysqlnd.collect_memory_statistics bool

Включает сбор различной статистики оперативной памяти, доступ к которой можно получить с помощью mysqli_get_client_stats(), mysqli_get_connection_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 int

Определяет, какие запросы будут журналироваться. Значение по умолчанию - 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 int

Default size of the mysqlnd memory pool, which is used by result sets.

mysqlnd.net_read_timeout int

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 int

mysqlnd резервирует внутренний командно-сетевой буфер размером mysqlnd.net_cmd_buffer_size (в php.ini) байт для каждого соединения. Если команда клиент-серверного протокола MySQL, например, COM_QUERY (обычный запрос), не умещается в буфер, mysqlnd увеличит буфер до размера, необходимого для отправки команды. Каждый раз, когда буфер был увеличен, переменная статистики command_buffer_too_small будет увеличена на один.

Если mysqlnd приходится увеличивать буфер сверх его заданного размера в mysqlnd.net_cmd_buffer_size байт для большинства соединений, вам следует обдумать необходимость увеличения размера по умолчанию, чтобы избежать повторных резерваций буфера.

Размер буфера по умолчанию составляет 4096 байт, что является наименьшим возможным значением.

Это значение также может быть установлено функцией mysqli_options(link, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size).

mysqlnd.net_read_buffer_size int

Максимальный размер части данных при считывании, в байтах, при обработке тела командного пакета 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 int

Принуждает копировать наборы из внутреннего буфера наборов в PHP переменные вместо использования логики с ссылками и "копированием при записи" по умолчанию. Смотрите реализация управления памятью для получения большей информации.

Копирование результирующих наборов вместо PHP переменных ссылающихся на них позволяют выделять память для PHP переменных заранее. В зависимости от пользовательского кода, реальных запросов к базе данных и размеров их результатов, можно снизить потребление памяти mysqlnd.

Не применяйте, если используется PDO_MySQL. В PDO_MySQL ещё не добавлена поддержка этого нового режима.

Замечание: Удалено, начиная с PHP 8.1.0


Несовместимости

Встроенный драйвер 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 при первоначальном использовании постоянного соединения.


Статистика

Использование статистических данных

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();
bytes_received_real_data_ps | Соединение | Количество байт полезной нагрузки, извлечённой клиентом PHP из mysqlnd используя подготовленные запросы. | Это размер только тех данных, которые были извлечены клиентом PHP. Значение метрики не будет увеличиваться если клиент PHP не будет запрашивать эти данные. Обратите внимание, что хоть возможно mysqlnd забрал и полный результирующий набор с сервера MySQL, но в этой метрике учитываются только данные уже полученные клиентом PHP от mysqlnd. Также смотрите bytes_received_real_data_normal.

Результирующий набор

Статистика 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) практически для каждого соединения, вам стоит задуматься об изменении этого значения.

Размер буфера по умолчанию составляет 4096 байт, что является наименьшим возможным значением. Это значение можно поменять в php.ini изменив значение ключа mysqlnd.net_cmd_buffer_size или используя mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size).

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 в качестве итерируемого массива данных и перед уничтожением результат устанавливает сам себя. На загруженном сервере оптимизация использования памяти может помочь улучшить общую производительность системы, хотя для отдельного скрипта подход с копией вместо ссылок может быть медленнее в связи с дополнительным выделением памяти и дополнительными операциями копирования в памяти.

Контроль и отладка

Существует несколько методов отслеживания использования памяти во встроенном драйвере 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 либо через загрузку снапшота исходных кодов.

Разработчики плагинов могут узнать версию 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.

Рекомендованный метод для плагинов - выполнить код очистки данных плагина и сразу же после этого вызывать родительский метод.


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;
}


Oracle OCI8

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Тестирование
    • Настройка во время выполнения
  • Предопределённые константы
  • Примеры
  • Работа с соединениями 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
    • 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_lob — Устанавливает объём данных, предварительно выбираемых для каждого CLOB или BLOB
    • oci_set_prefetch — Устанавливает количество строк, которые будут автоматически выбраны в буфер
    • oci_statement_type — Возвращает тип выражения
    • oci_unregister_taf_callback — Удалить регистрацию пользовательской callback-функции для Oracle Database TAF
  • OCICollection — Класс OCICollection
    • OCICollection::append — Добавляет элемент в коллекцию
    • OCICollection::assign — Присваивает коллекции значение другой, уже существующей коллекции
    • OCICollection::assignElem — Присваивает значение элементу коллекции
    • OCICollection::free — Освобождает ресурсы, занимаемые объектом коллекции
    • OCICollection::getElem — Возвращает значение элемента
    • OCICollection::max — Возвращает максимальное количество элементов в коллекции
    • OCICollection::size — Возвращает количество элементов в коллекции
    • OCICollection::trim — Отсекает элементы с конца коллекции
  • OCILob — Класс OCILob
    • OCILob::append — Добавляет данные из объекта LOB в конец другого объекта
    • OCILob::close — Закрывает дескриптор объекта LOB
    • OCILob::eof — Проверяет, находится ли указатель LOB на конце объекта
    • OCILob::erase — Очищает указанную часть объекта LOB
    • OCILob::export — Сохраняет содержимое объекта LOB в файл
    • OCILob::flush — Очищает и записывает буфер объекта LOB на сервер
    • OCILob::free — Освобождает ресурсы, связанные с дескриптором LOB
    • OCILob::getBuffering — Возвращает текущее состояние буферизации большого объекта (LOB)
    • OCILob::import — Записывает содержимое файла в объект LOB
    • OCILob::load — Возвращает содержимое объекта LOB
    • OCILob::read — Возвращает часть объекта LOB
    • OCILob::rewind — Переводит указатель объекта в начало большого объекта
    • OCILob::save — Сохраняет данные в LOB
    • OCILob::saveFile — Псевдоним OCILob::import
    • OCILob::seek — Устанавливает позицию внутреннего указателя LOB
    • OCILob::setBuffering — Изменяет текущее состояние буферизации большого объекта (LOB)
    • OCILob::size — Возвращает размер объекта LOB
    • OCILob::tell — Возвращает текущую позицию внутреннего указателя объекта LOB
    • OCILob::truncate — Обрезает большой объект
    • OCILob::write — Записывает данные в объект LOB
    • OCILob::writeTemporary — Записывает временный большой объект (LOB)
    • OCILob::writeToFile — Псевдоним OCILob::export
  • Устаревшие наименования и функции OCI8
    • oci_internal_debug — Включает или отключает внутренний вывод отладки
    • ocibindbyname — Псевдоним oci_bind_by_name
    • ocicancel — Псевдоним oci_cancel
    • ocicloselob — Псевдоним OCILob::close
    • ocicollappend — Псевдоним OCICollection::append
    • ocicollassign — Псевдоним OCICollection::assign
    • ocicollassignelem — Псевдоним OCICollection::assignElem
    • ocicollgetelem — Псевдоним OCICollection::getElem
    • ocicollmax — Псевдоним OCICollection::max
    • ocicollsize — Псевдоним OCICollection::size
    • ocicolltrim — Псевдоним OCICollection::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 — Псевдоним OCICollection::free
    • ocifreecursor — Псевдоним oci_free_statement
    • ocifreedesc — Псевдоним OCILob::free
    • ocifreestatement — Псевдоним oci_free_statement
    • ociinternaldebug — Псевдоним oci_internal_debug
    • ociloadlob — Псевдоним OCILob::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 — Псевдоним OCILob::save
    • ocisavelobfile — Псевдоним OCILob::import
    • ociserverversion — Псевдоним oci_server_version
    • ocisetprefetch — Псевдоним oci_set_prefetch
    • ocistatementtype — Псевдоним oci_statement_type
    • ociwritelobtofile — Псевдоним OCILob::export
    • ociwritetemporarylob — Псевдоним OCILob::writeTemporary


Введение

Эти функции позволяют работать с базой данных Oracle Database. Поддерживаются SQL и PL/SQL-выражения. Основной функционал представляет собой поддержку транзакций, привязку переменных PHP к соответствующим плейсхолдерам Oracle, расширенную поддержку больших объектов (LOB) и коллекций. Также поддерживаются кеширование результатов и такие возможности масштабирования Oracle как пул постоянных соединений базы данных (Database Resident Connection Pooling, DRCP).


Установка и настройка

Содержание

  • Требования
  • Установка
  • Тестирование
  • Настройка во время выполнения


Требования

Модуль OCI8 3.0 включён в PHP 8. Также он доступен в » PECL. Для PHP 7, используйте OCI8 2.2 from » PECL. Для работы OCI8 требуются клиентские библиотеки Oracle 10g или выше.

Если база данных Oracle находится на той же машине, что и PHP, то все необходимые библиотеки и заголовочные файлы уже установлены. Если PHP установлен на другую машину, то используйте бесплатные библиотеки с » Oracle Instant Client.

Для использования Oracle Instant Client, установите Basic или Basic Lite zip-архив Oracle Instant Client или RPM или DMG пакет. При сборке PHP из исходного кода, также установите Instant Client SDK.

Необходимо использовать PHP с теми же или более свежими версиями библиотек Oracle, чем те, с которыми был собран модуль OCI8.

Замечание:

Принципы клиент-серверной сетевой совместимости Oracle, позволяют создавать соединения между различающимися версиями Oracle Client и Oracle Database. Подробности смотрите в документе совместимости ID 207303.1. В кратце, Oracle Client 19, 18 и 12.2 могут соединяться с Oracle Database 11.2 и выше. Oracle Client 12.1 может соединяться с Oracle Database 10.2 и выше. Oracle Client 11.2 может соединяться с Oracle Database 9.2 и выше.

Замечание:

Полный набор возможностей OCI8 возможен только при использовании новейших версий клиентских библиотек Oracle и базы данных.


Установка

Сборка PHP совместно с OCI8

Перед сборкой OCI8 изучите предыдущий раздел "Требования".

Перед стартом веб-сервера, OCI8 обычно требуется несколько переменных окружения Oracle (смотрите ниже) для обнаружения библиотек, конфигурационных файлов и установки некоторых базовых свойств, таких как кодировка, используемая библиотеками Oracle. Эти переменные должны быть установлены перед запуском любого PHP-процесса.

Бинарный файл PHP должен использовать ту же, или более свежую основную версию библиотек Oracle, чем ту, с которой он был собран. Например, если вы собрали OCI8 с библиотеками Oracle 19, то PHP также должен работать с библиотеками Oracle 19. Приложения PHP могут подключаться к другим версиям Oracle Database, так как Oracle имеет клиент-серверную совместимость разных версий.

Установка OCI8 из PECL

Модуль OCI8 может быть включён в текущую установку PHP как автоматически, так и вручную с помощью » PECL.

  • Если ваш компьютер находится за файерволом, установите прокси для PEAR, например:

    pear config-set http_proxy http://my-proxy.example.com:80/

  • Запустите

    pecl install oci8

    Для PHP 7, используйте pecl install oci8-2.2.0

    При запросе введите либо значение $ORACLE_HOME, либо instantclient,/path/to/instant/client/lib.

    Обратите внимание: Не вводите имя переменной, такое как $ORACLE_HOME или $HOME т.к. она не будет развёрнута. Вместо этого, введите полный путь. Например /opt/oracle/product/19c/dbhome_1 или instantclient,/Users/myname/Downloads/instantclient_19_8.

  • Ошибка oci8_dtrace_gen.h: No such file or directory означает, что PHP был собран с поддержкой DTrace Dynamic Tracing. В таком случае устанавливайте так:

    $ export PHP_DTRACE=yes
$ pecl install oci8

  • Добавьте в php.ini следующую строку:

    extension=oci8.so

    Убедитесь, что oci8.so установлен в директорию, заданную в директиве extension_dir файла php.ini.

Установка OCI8 из PECL с помощью phpize

Если по каким-то причинам нет возможности воспользоваться командой pecl, можно самостоятельно загрузить пакет с сайта » PECL. Например oci8-3.0.0.tgz.

  • Разархивируйте пакет:

    tar -zxf oci8-3.0.0.tgz
cd oci8-3.0.0

  • Подготовьте его:

    phpize

  • Сконфигурируйте используя $ORACLE_HOME или Instant Client

    ./configure -with-oci8=shared,$ORACLE_HOME

    or

    ./configure -with-oci8=shared,instantclient,/path/to/instant/client/lib

  • Проинсталлируйте:

    make install

  • Ошибка oci8_dtrace_gen.h: No such file or directory означает, что PHP был собран с поддержкой DTrace Dynamic Tracing. В таком случае перезапустите configure и make, предварительно установив переменную окружения:

    $ export PHP_DTRACE=yes

  • Добавьте в php.ini следующую строку:

    extension=oci8.so

    Убедитесь, что oci8.so установлен в директорию, заданную в директиве extension_dir файла php.ini.

Установка OCI8 в виде подгружаемого (shared) модуля во время сборки PHP

Указание опции конфигурации shared позволяет собрать OCI8 в виде динамически подгружаемой библиотеки. Сборка в виде подгружаемого модуля позволяет легко обновлять OCI8 без пересборки всего PHP.

Соберите OCI8 с помощью одной из следующих опций.

  • При использовании бесплатных библиотек » Oracle Instant Client:

    ./configure --with-oci8=shared,instantclient,/путь/к/instant/client/lib

    Если Instant Client 12.2 (или более ранний) установлен из ZIP-архива, не забудьте в первую очередь создать символическую ссылку на библиотеку, например, так: ln -s libclntsh.so.12.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/19.9/client/lib

  • При использовании базы данных 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 в Windows

Модуль OCI8 можно добавить в PHP с помощью библиотек из репозитория » PECL или из директории ext, содержащейся в вашей инсталляции PHP.

Для библиотек Oracle 12c (и выше), раскомментируйте соответствующую строку в php.ini: extension=php_oci8_12c.dll, extension=php_oci8_11g.dll или extension=php_oci8.dll. Единовременно можно использовать только одну из этих библиотек. Более новые библиотеки могут содержать более продвинутый функционал. Состав доступных библиотек может меняться в зависимости от версии PHP. Убедитесь, что extension_dir указывает на директорию, содержащую библиотеки модулей 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 | Установите эту переменную (или её эквивалент на используемой платформе, например, LIBPATH или SHLIB_PATH) в местоположение библиотек Oracle, например, $ORACLE_HOME/lib или /usr/lib/oracle/18.5/client/lib. Обратите внимание, что для ZIP архивов Instant Client в Linux более надёжно использовать ldconfig. Обратитесь к инструкции по установке Instant Client. Для RPM пакетов Instant Client 19 (и старше), ldconfig, будет запущен автоматически. Кто-то использует LD_PRELOAD вместо LD_LIBRARY_PATH.
NLS_LANG | Это основная переменная, используемая для указания кодировки и настроек глобализации в библиотеках Oracle.
ORA_SDTZ | Устанавливает часовой пояс сессии Oracle.
TNS_ADMIN | Содержит папку, в которой хранятся конфигурационные файлы Oracle Net Services, такие как tnsnames.ora и sqlnet.ora. В ней нет необходимости, если строка соединения в функции oci_connect() использует синтаксис Easy Connect, такой как, например, localhost/XE. В ней также нет необходимости, если сетевые конфигурационные файлы содержатся в местах хранения по умолчанию, таких как /usr/lib/oracle/VERSION/client/lib/network/admin, $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.


Тестирование

Набор тестов для 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. Если вы используете PHP на тех же машинах, что и Oracle Database, вы можете запустить:

    $ . /usr/local/bin/oraenv

Для Oracle 11gR2 XE:

    $ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

Некоторые оболочки требуют, чтобы в 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 |
oci8.default_prefetch | "100" | PHP_INI_SYSTEM |
oci8.events | Off | PHP_INI_SYSTEM |
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Объявлена устаревшей, начиная с PHP 8.1.0.
oci8.old_oci_close_semantics | Off | PHP_INI_SYSTEM |
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM |
oci8.ping_interval | "60" | PHP_INI_SYSTEM |
oci8.prefetch_lob_size | "0" | PHP_INI_SYSTEM | Доступна начиная с версии PECL OCI8 3.2.
oci8.privileged_connect | Off | PHP_INI_SYSTEM |
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

oci8.connection_class string

Этот определяемый пользователем текст обязательно должен быть задан при использовании резидентного пула соединений базы данных Oracle (Database Resident Connection Pooling (DRCP)). Это позволяет суб-партиционирование пула соединений DRCP, что позволяет постоянным соединениям OCI8 из приложения заново использовать сессии базы данных от предыдущего PHP-скрипта, улучшая масштабируемость. Если приложение использует процесс из пула базы данных, ранее используемый с другим классом соединений, настройки сессии, такие как формат даты Oracle, будут сброшены. Это предотвращает случайный обмен информацией между различными приложениями.

Значение может быть установлено во время выполнения скрипта с помощью ini_set() до установки соединения.

Для использования DRCP, OCI8 должна быть собрана с библиотеками Oracle 11g или новее и база данных должна быть Oracle 11g или новее. Пул соединений DRCP в базе данных должен быть включён, oci8.connection_class должно быть установлено в одно и то же строковое значение для всех веб-серверов, выполняющих одно и то же приложение, а строка соединения OCI8 должна указывать на сервер из пула. Приложение должно использовать постоянные соединения.

oci8.default_prefetch int

Эта опция устанавливает значение по умолчанию для количества экстра рядов, которые будут возвращены и автоматически закешированы при низкоуровневом запросе данных из базы данных. Установка значения в 0 выключает предварительную выборку (prefetching).

Значение предварительной выборки не меняет количество возвращаемых пользователю рядов такими функциями как oci_fetch_array(); OCI8 внутренне обрабатывает предварительную выборку и кеширование рядов.

Значение может быть установлено отдельно для каждого выражения (per-statement) с помощью oci_set_prefetch() до выполнения самого выражения.

При использовании Oracle Database 12c или новее, предварительное значение, заданное PHP, может быть переопределено клиентским конфигурационным файлом Oracle oraaccess.xml. Обратитесь к документации Oracle.

Замечание: Большая предварительная выборка может улучшить производительность за счёт некоторого увеличенного использования памяти. Для запросов, возвращающих большие массивы данных, выгода в производительности будет значительной.

oci8.events bool

Включение (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 bool

Эта опция контролирует поведение функции 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.

oci8.ping_interval int

Количество секунд, которое должно пройти до совершения пинга в течение выполнения oci_pconnect(). Пинг обеспечивает корректность соединения базы данных. Если установлена в 0, постоянные соединения будут пинговаться при каждом вызове oci_pconnect(). Для полного отключения пингов установите эту опцию в -1.

Замечание: Отключение пингов позволяет oci_pconnect() действовать с максимальной эффективностью, но PHP может быть неспособен определить непригодные соединения, например, при обрыве сети или при отключении базы данных Oracle после того, как PHP установил соединение, пока соединение вновь не будет использовано в скрипте. Проконсультируйтесь с документацией функции oci_pconnect() для более подробной информации.

oci8.prefetch_lob_size int

Параметр настройки, влияющий на внутреннюю буферизацию данных LOB. Увеличение этого значения может улучшить производительность выборки меньших LOB за счёт сокращения круговых обходов между PHP и базой данных. Использование памяти изменится.

Значение влияет на LOB, возвращаемые как экземпляры OCILob, а также на те, которые возвращаются с использованием OCI_RETURN_LOBS.

Значение может быть установлено для каждого оператора с помощью функции oci_set_prefetch_lob() до выполнения оператора.

Замечание: Используйте с Oracle Database 12.2 или новее.

oci8.privileged_connect bool

Эта опция позволяет соединениям использовать привилегированные внешние учётные записи OCI_SYSOPER или OCI_SYSDBA.

Замечание: Установка этой директивы в On позволит скриптам, запущенных с соответствующими пользовательскими привилегиями операционной системы, соединяться с базой данных в качестве привилегированных пользователей базы данных без требования пароля. Это может быть брешью системы безопасности.

oci8.statement_cache_size int

Эта опция включает кеширование выражений, а также указывает сколько выражений необходимо кешировать. Для отключения кеширования выражений просто установите значение этой опции в 0.

Кэширование выражений убирает необходимость передавать текст выражения к базе данных, а также обратную передачу различных метаданных об этом выражении обратно к PHP. Это может значительно улучшить общую производительность системы в приложениях, повторно использующих выражения в течение жизни одного соединения. Некоторые дополнительные "курсоры" баз данных могут остаться открытыми, подразумевая, что данные выражения будут использованы повторно.

Установите это значение размером рабочего набора выражений, используемых вашим приложением. Установка слишком малого значения может повлечь выброс выражений из кеша до их повторного использования.

Эта опция чаще всего используется с постоянными соединениями.

При использовании Oracle Database 12c или выше, предварительное значение, заданное PHP, может быть переопределено клиентским конфигурационным файлом Oracle oraaccess.xml. Обратитесь к документации Oracle.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

Функции и методы OCI8
Константа | Описание
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() для внешней или системной аутентификации.
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 | Используется функцией OCILob::flush для освобождения используемых буферов.
OCI_NO_AUTO_COMMIT | Режим выполнения выражений для oci_execute(). В этом режиме транзакция не завершается автоматически оператором COMMIT. Для повышения читаемости используйте в новом коде эту константу вместо старой равносильной константы OCI_DEFAULT.
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 | Используется OCILob::seek для задания позиции смещения.
OCI_SEEK_END | Используется OCILob::seek для задания позиции смещения.
OCI_SEEK_SET | Используется OCILob::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 | Используется функцией OCILob::writeTemporary для создания временного BLOB.
OCI_TEMP_CLOB | Используется функцией OCILob::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() для привязки именованных типов данных.
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);
$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 или использовался с FPM или подобным. Постоянные соединения не будут иметь никаких преимуществ перед oci_connect(), когда PHP используется с CGI или через командную строку.

Функция oci_new_connect() всегда создаёт новое соединение с сервером Oracle, невзирая на то, что другие соединения могут уже существовать. Высоконагруженным веб-приложениям следует избегать использования oci_new_connect(), особенно в самых загруженных частях приложения.

Постоянные соединения могут быть закрыты пользователем, что даёт более полный контроль над использованием ресурсов. Также постоянные соединения могут быть закрыты автоматически, если не осталось переменных PHP указывающих на них, например при завершении выполнения пользовательской функции. Закрытие соединения откатит все не подтверждённые транзакции. Эти изменения в постоянных подключениях делают их поведение аналогичным не постоянным соединениям. Чтобы включить старое поведение, задайте опцию oci8.old_oci_close_semantics значением On.

Автоматическое пересоздание постоянных соединений после перезапуска процессов Apache или FPM, означает, что Oracle Database LOGON рекомендуется только для настройки атрибутов сеанса, а не для запросов на подключение пользователей для отдельных приложений.

Создание пула соединений DRCP

PHP поддерживает постоянный пул соединений Oracle 11g (DRCP). DRCP позволяет более эффективно использовать память СУБД и предоставляет высокую масштабируемость. Изменять код приложения для использования DRCP либо нет необходимости, либо требуются минимальные изменения.

DRCP подходит для приложений, которые подключаются используя несколько схем БД и сохраняют соединения к БД открытыми короткий промежуток времени. Другим приложениям следует использовать доступные по умолчанию Dedicated серверные процессы или использовать Shared сервера.

DRCP приносит пользу всем трём функциям подключения, однако предоставляет самую высокую масштабируемость, когда соединения создаются с помощью функции oci_pconnect().

Чтобы функциональность DRCP была доступна в OCI8, клиентские библиотеки Oracle, используемые в PHP, и версия сервера баз данных должны быть 11g и новее.

Документация по DRCP находится в нескольких руководствах Oracle. К примеру, смотрите » Конфигурирование пула постоянных соединений базы данных в документации Oracle для информации по использованию. Документ » техническое описание DRCP содержит дополнительную информацию по DRCP.

Для использования DRCP, установите модуль OCI8 и библиотеки 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-соединение будет выдаваться ошибка ORA-56609: Usage not supported with DRCP. Это документированное ограничение of Oracle Database 11g.


Поддержка 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 = orclpdb1)
          (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\n");
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;
}
}

$fn_name = 'MyClass::TAFCallback';

$conn = oci_connect('hr', 'welcome', 'orcl');
$sysconn = oci_connect('system', 'oracle', 'orcl');

// Используйте привилегированное соединение для создания оператора SQL, который будет инициировать отработку отказа
$sql = <<< 'END'
select unique 'alter system disconnect session '''||sid||','||serial#||''''
from v$session_connect_info
where sid = sys_context('USERENV', 'SID')
END;

$s = oci_parse($conn, $sql);
oci_execute($s);
$r = oci_fetch_array($s);
$disconnectssql = $r[0];

oci_register_taf_callback($conn, $fn_name); // Зарегистрируйте TAFCallback для Oracle TAF

print "Разбор пользовательского запроса\n";
$sql = "select systimestamp from dual";
$stmt = oci_parse($conn, $sql);

// К примеру, если соединение было потеряно на этом шаге, oci_execute()
// определит это и запустит процедуру восстановления. В процессе восстановления
// oci_execute() будет вызовать зарегистрированную функцию обратного вызова
// несколько раз. Если восстановление пройдёт успешно, то будет создано новое соединение
// и выполнение oci_execute() будет продолжено в нормальном режиме.
// Настройки сессии могут быть сброшены в функции обратного вызова.
// Если восстановление завершится неудачно, oci_execute() вернёт ошибку, так как
// будет отсутствовать соединение.

// Отключите пользователя, который инициирует аварийное переключение
print "Отключение пользователя\n";
$discsql = oci_parse($sysconn, $disconnectssql);
oci_execute($discsql);

print "Выполнение пользовательского запроса\n";
$e = oci_execute($stmt);
if (!$e) {
$m = oci_error($stmt);
trigger_error('Не удалось выполнить условие:'. $m['message'], E_USER_ERROR);
}
$row = oci_fetch_array($stmt);
print $row[0] . "\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 из 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-скрипт можно прервать с помощью нажатия CTRL+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
  • 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_lob — Устанавливает объём данных, предварительно выбираемых для каждого CLOB или BLOB
  • 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, PHP 8, PECL OCI8 >= 1.2.0)

oci_bind_array_by_name — Связывает PHP массив с массивом Oracle PL/SQL

Описание

oci_bind_array_by_name(
resource $statement,
string $param,
array &$var,
int $max_array_length,
int $max_item_length = -1,
int $type = SQLT_AFC
): bool

Связывает PHP массив var с указателем Oracle param на массив Oracle PL/SQL. Направление, ввод или вывод, для которого будет использоваться массив будет определяться во время выполнения.

Список параметров

statement

Идентификатор допустимого OCI выражения.

param

Указатель на массив Oracle.

var

Массив.

max_array_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, PHP 8, PECL OCI8 >= 1.1.0)

oci_bind_by_name — Прикрепляет переменную PHP к соответствующей метке в SQL-выражении

Описание

oci_bind_by_name(
resource $statement,
string $param,
mixed &$var,
int $max_length = -1,
int $type = 0
): bool

Прикрепляет переменную var к метке param. Такое прикрепление позволяет повысить производительность и избежать SQL-инъекций.

Прикрепление переменной позволяет базе данных повторно использовать кешированные контекстные выражения от предыдущих запросов, даже если они первоначально были запущены другим пользователем или процессом. Это также снижает риск SQL-инъекций, поскольку данные в таком случае никогда не рассматриваются как инструкции SQL. Данные не требуется экранировать или заключать в кавычки.

Прикреплённые PHP-переменные могут быть изменены и снова выполнены без необходимости повторной обработки запроса или повторного прикрепления.

В Oracle, прикрепление переменных обычно разделяют на IN (прикрепляет значения, передаваемые в базу данных) и OUT (прикрепляет значения, возвращаемые PHP). Переменная может быть одновременно IN и OUT. Независимо от этого, характер прикрепления переменных будет определён во время выполнения.

Необходимо указать max_length при использовании OUT-привязки, что позволяет PHP зарезервировать больше памяти для хранения возвращаемого значения

Для IN-привязки рекомендуется также указать параметр max_length, если выражение выполняется несколько раз с различными значениями 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.

param

Метка с префиксом в виде двоеточия, используемая в выражении. Двоеточие опционально в param. Oracle не использует знак вопроса для меток.

var

Переменная PHP, ассоциированная с param

max_length

Устанавливает максимальный размер данных. Если указать -1, функция будет использовать текущий размер переменной var в качестве максимального. При этом переменная var должна существовать и содержать данные во время вызова 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 (Требуется 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

?>

Примечания

Внимание

Не используйте addslashes() одновременно с oci_bind_by_name(), так как кавычек быть не должно. Все указанные кавычки будут записаны в базу данных, потому что oci_bind_by_name() вставляет данные дословно и не удаляет кавычки или символы экранирования.

Замечание:

Если прикрепляется строка к CHAR-полю в выражении WHERE, помните, что Oracle использует при сравнении значения CHAR, дополненные пробелами. Переменная PHP должна быть дополнена пробелами до того же размера, что и поле, чтобы выражение WHERE выполнялось верно.

Замечание:

Переменная PHP var является ссылкой. Некоторые виды циклов могут работать не так, как ожидается:

<?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, PHP 8, 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, PHP 8, PECL OCI8 >= 1.4.6)

oci_client_version — Возвращает версию клиентской библиотеки

Описание

oci_client_version(): string

Возвращает номер версии в виде строки клиентской C-библиотеки Oracle, с которой связан PHP.

Список параметров

Отсутствуют.

Возвращаемые значения

Возвращает номер версии в виде строки (string).

Примеры

Пример #1 Пример использования oci_client_version()

<?php
echo "Версия клиента: " . oci_client_version(); // Версия клиента: 19.9.0.0.0
?>

Примечания

Замечание:

Библиотеки Oracle версий до 10gR2 не имеют необходимого функционала, чтобы выдать номер версии. В этих случаях функция вернёт строку "Unknown".

Смотрите также

  • oci_server_version() - Возвращает версию сервера Oracle


Закрывает соединение с сервером Oracle

  • « oci_client_version
  • oci_commit »
  • PHP Manual
  • OCI8 Функции
  • Закрывает соединение с сервером Oracle

oci_close

(PHP 5, PHP 7, PHP 8, 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().

Возвращаемые значения

Возвращает null если oci8.old_oci_close_semantics включён или true в противном случае.

Примеры

Пример #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(), должны быть также освобождены до закрытия соединения с базой данных.

Замечание:

Функция oci_close() не закрывает соединения с базой данных, созданные функцией oci_pconnect().

Смотрите также

  • oci_connect() - Устанавливает соединение с базой данных Oracle
  • oci_free_statement() - Освобождает ресурсы, занимаемые курсором или SQL-выражением


Подтверждает транзакцию базы данных

  • « oci_close
  • oci_connect »
  • PHP Manual
  • OCI8 Функции
  • Подтверждает транзакцию базы данных

oci_commit

(PHP 5, PHP 7, PHP 8, 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 при его поступлении
$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, PHP 8, PECL OCI8 >= 1.1.0)

oci_connect — Устанавливает соединение с базой данных Oracle

Описание

oci_connect(
string $username,
string $password,
?string $connection_string = null,
string $encoding = "",
int $session_mode = OCI_DEFAULT
): resource|false

Возвращает идентификатор соединения, который используется большинством функций данного модуля.

Для повышения производительности большинство приложений должны использовать постоянные соединения с помощью oci_pconnect() вместо oci_connect(). Смотрите Управление соединением для более детальной информации по управлению соединениями и создании пулов подключений.

Второй и последующие вызовы функции oci_connect() с теми же параметрами вернут идентификатор уже открытого соединения. Это означает, что транзакции используют одно и то же базовое соединение с базой данных. При необходимости разделения транзакций рекомендуется использовать функцию oci_new_connect().

Список параметров

username

Имя пользователя Oracle.

password

Пароль username.

connection_string

Содержит экземпляр Oracle для подключения. Это может быть » Easy Connect string, или Connect Name из файла tnsnames.ora, или имя локального экземпляра Oracle.

Если не указано отдельно или null, 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 19c были введены дополнительные параметры, включая настройки времени ожидания и проверки активности. Обратитесь к документации Oracle. Названия служб могут быть определены с помощью запуска Oracle утилиты lsnrctl status на сервере базы данных.

Файл tnsnames.ora может находиться в поисковом пути Oracle Net, который включает /your/path/to/instantclient/network/admin, $ORACLE_HOME/network/admin и /etc. В качестве альтернативного варианта можно установить TNS_ADMIN таким образом, чтобы путь $TNS_ADMIN/tnsnames.ora был читаемым. Убедитесь, что веб-сервер имеет доступ к этому файлу.

encoding

Определяет кодировку, используемую клиентскими библиотеками 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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | connection_string теперь допускает значение null.

Примеры

Пример #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, PHP 8, PECL OCI8 >= 1.1.0)

oci_define_by_name — Сопоставляет переменную PHP столбцу результата запроса

Описание

oci_define_by_name(
resource $statement,
string $column,
mixed &$var,
int $type = 0
): bool

Сопоставляет переменную PHP столбцу результата запроса, полученного с помощью oci_fetch().

Вызов oci_define_by_name() должен производиться до запуска oci_execute().

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

column

Имя столбца использованного в запросе.

Используйте верхний регистр для стандартных регистронезависимых имён столбцов Oracle. Используйте точное написание имени столбца для регистрозависимых имён.

var

Переменная 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 "ID местоположения $locid - $city<br>\n";
}

// Выведет:
// ID местоположения 1000 - Roma
// ID местоположения 1100 - 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 - $mydesc<br>\n";
}

// Выведет:
// Идентификатор 1 - 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 станет дескриптором LOB

oci_execute($stid);

while (oci_fetch($stid)) {
echo $id . " - " . $fruit->load(100) . "<br>\n";
}

// Выведет:
// 1 - apple
// 2 - 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 . " - " . $fruit->load(100) . "<br>\n";
}

// Выведет:
// 1 - apple
// 2 - 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_error — Возвращает последнюю ошибку

Описание

oci_error(?resource $connection_or_statement = null): array|false

Возвращает последнюю найденную ошибку.

Функция должна вызваться сразу же после появления ошибки. Ошибки очищаются при произведении правильного запроса.

Список параметров

connection_or_statement

Для большинства ошибок параметром connection_or_statement является соответствующий идентификатор соединения или выражения. Для ошибок во время выполнения функций oci_connect(), oci_new_connect() или oci_pconnect() следует передавать null.

Возвращаемые значения

Если ошибок не найдено, то oci_error() возвращает false. В противном случае, oci_error() возвращает информацию об ошибке в виде ассоциативного массива.

Описание массива вывода oci_error()
Ключ массива | Тип | Описание
code | int | Номер ошибки Oracle.
message | string | Текст ошибки Oracle.
offset | int | Позиция ошибки в запросе SQL. Если нет запроса, то равна 0
sqltext | string | Текст запроса SQL. Если нет запроса, то строка пуста.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | connection_or_statement теперь допускает значение null.

Примеры

Пример #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, PHP 8, 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 | Не сохранять автоматически изменения.

Использование режима 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);
}
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, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_all — Выбирает все строки из результата запроса в двумерный массив

Описание

oci_fetch_all(
resource $statement,
array &$output,
int $offset = 0,
int $limit = -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() для более детальной информации о том, как производится выборка данных и типов.

offset

Число строк, которых необходимо исключить из выборки. По умолчанию равно 0, выборка возвращается со следующего за первым ряда.

limit

Число возвращаемых строк. По умолчанию равно -1, что означает возврат всех строк, начиная с указанных в offset + 1 предыдущая строка.

flags

Параметр flags содержит структуру массива отражает необходимость использования ассоциативных массивов.

Структура массива oci_fetch_all()
Константа | Описание
OCI_FETCHSTATEMENT_BY_ROW | Массив будет содержать по одному под-массиву на каждую строку запроса.
OCI_FETCHSTATEMENT_BY_COLUMN | Массив будет содержать по одному под-массиву на каждый столбец. Используется по умолчанию.

Массивы могут быть проиндексированы или заголовками столбцов или пронумерованы. Будет возвращён только один режим индексации.

Индексация массива oci_fetch_all()
Константа | Описание
OCI_NUM | Для массива каждого столбца используются числовые индексы.
OCI_ASSOC | Для массива каждого столбца используется ассоциативные индексы. По умолчанию.

Используйте оператор сложения "+" для выбора определённой комбинации структуры и индексации массива.

Регистронезависимые (по умолчанию в Oracle) имена полей в результирующем массиве будут иметь ассоциативные индексы в верхнем регистре. Регистрозависимые имена полей будут иметь индексы с теми же регистрами символов, что и само поле. Используйте var_dump() на output, чтобы проверить соответствие регистров символов для каждого запроса.

В запросах в которых имеется несколько столбцов с одинаковыми именами необходимо использовать псевдонимы. Иначе только один из столбцов появится в ассоциативном массиве.

Возвращаемые значения

Возвращает число столбцов в output, который может принимать значение 0 или более.

Примеры

Пример #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 строк получено<br>\n";
var_dump($res);

// Вывод var_dump:
// 2 строк получено
// 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 строк получено<br>\n";
var_dump($res);

// Выведет:
// 2 строк получено
// 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 строк получено<br>\n";
var_dump($res);

// Выведет:
// 2 строк получено
// 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);

?>

Примечания

Замечание:

Использование offset неэффективно. Все пропускаемые ряды включаются в результат запроса возвращаемый базой данных к 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_array — Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива

Описание

oci_fetch_array(resource $statement, int $mode = OCI_BOTH | OCI_RETURN_NULLS): array|false

Возвращает массив, содержащий следующую строку результата запроса. Каждый элемент массива соответствует одному полю из строки. Эта функция обычно вызывается в цикле, пока она не вернёт false, который указывает на отсутствие последующих строк.

Если statement соответствует PL/SQL блоку, возвращаемому Oracle Database 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) : "")."</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 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):"")."</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, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_assoc — Возвращает следующую строку из результата запроса в виде ассоциативного массива

Описание

oci_fetch_assoc(resource $statement): array|false

Возвращает ассоциативный массив, содержащий следующую строку из результата выполнения запроса. Каждый элемент массива соответствует столбцу текущей строки. Эта функция обычно вызывается в цикле, пока не возвращает 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_object — Возвращает следующую строку из результата запроса в виде объекта

Описание

oci_fetch_object(resource $statement, int $mode = OCI_ASSOC | OCI_RETURN_NULLS): stdClass|false

Возвращает объект, содержащий следующую строку из результата запроса. Имена свойств объекта соответствуют именам столбцов в строке. Эта функция обычно вызывается в цикле пока не возвращает 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_row — Возвращает следующую строку из результата запроса в виде нумерованного массива

Описание

oci_fetch_row(resource $statement): array|false

Возвращает нумерованный массив, содержащий следующую строку из результата запроса. Каждый массив соответствует столбцу строки. Эта функция обычно вызывается в цикле пока не возвращает 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, PHP 8, 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. Используйте вместо данной функции функцию 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_is_null — Проверяет, равняется ли поле в текущем полученном ряду равным null

Описание

oci_field_is_null(resource $statement, string|int $column): bool

Проверяет, является ли значение, переданное в поле column из текущего ряда statement равным null.

Список параметров

statement

Идентификатор допустимого OCI запроса.

column

Может быть порядковый номер поля (начиная с 1) или имя поля.

Возвращаемые значения

Возвращает true, если column равен 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);

?>


Возвращает имя поля из результата запроса

  • « oci_field_is_null
  • oci_field_precision »
  • PHP Manual
  • OCI8 Функции
  • Возвращает имя поля из результата запроса

oci_field_name

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_name — Возвращает имя поля из результата запроса

Описание

oci_field_name(resource $statement, string|int $column): string|false

Возвращает имя поля column из результата запроса.

Список параметров

statement

Идентификатор допустимого OCI запроса.

column

Может быть номером поля (нумерация начинается с 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);

?>

Смотрите также

  • 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_precision — Возвращает точность поля

Описание

oci_field_precision(resource $statement, string|int $column): int|false

Возвращает точность поля column.

Для полей типа FLOAT точность больше нуля, а масштаб равен -127. Если точность поля равна нулю, то тип поля - NUMBER. Иначе же, тип поля может быть описан как NUMBER(precision, scale).

Список параметров

statement

Идентификатор допустимого OCI запроса.

column

Может быть номером поля (нумерация начинается с 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);

?>

Смотрите также

  • oci_field_scale() - Возвращает масштаб поля
  • oci_field_type() - Возвращает имя типа поля


Возвращает масштаб поля

  • « oci_field_precision
  • oci_field_size »
  • PHP Manual
  • OCI8 Функции
  • Возвращает масштаб поля

oci_field_scale

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_scale — Возвращает масштаб поля

Описание

oci_field_scale(resource $statement, string|int $column): int|false

Возвращает масштаб поля под номером column.

Для полей типа FLOAT точность, получаемая с помощью oci_field_precision(), больше нуля, а масштаб равен -127. Если точность поля равна нулю, то тип поля - NUMBER. Иначе же, тип поля может быть описан как NUMBER(precision, scale).

Список параметров

statement

Идентификатор допустимого OCI запроса.

column

Может быть номером поля (нумерация начинается с 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);

?>

Смотрите также

  • oci_field_precision() - Возвращает точность поля
  • oci_field_type() - Возвращает имя типа поля


Возвращает размер поля

  • « oci_field_scale
  • oci_field_type_raw »
  • PHP Manual
  • OCI8 Функции
  • Возвращает размер поля

oci_field_size

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_size — Возвращает размер поля

Описание

oci_field_size(resource $statement, string|int $column): int|false

Возвращает размер поля column.

Список параметров

statement

Идентификатор допустимого OCI запроса.

column

Может быть номером поля (нумерация начинается с 1) или именем.

Возвращаемые значения

Возвращает размер поля column в байтах или 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);

?>

Смотрите также

  • 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_type_raw — Возвращает исходный тип поля Oracle

Описание

oci_field_type_raw(resource $statement, string|int $column): int|false

Возвращает тип "SQLT" Oracle поля column.

Если вы хотите получить тип поля, то oci_field_type() подойдёт вам больше.

Список параметров

statement

Идентификатор допустимого OCI запроса.

column

Может быть номером поля (нумерация начинается с 1) или именем.

Возвращаемые значения

Возвращает исходный тип Oracle в виде числа или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_field_type_raw()

<?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, если не получаете данных
$n = oci_num_fields($stid);
for ($i = 1; $i <= $n; ++$i) {
echo oci_field_name($stid, $i) . " - исходный тип: " . oci_field_type_raw($stid, $i) . "<br>\n";
}

// Выведет:
// NUMBER_COL - исходный тип: 2
// VARCHAR2_COL - исходный тип: 1
// CLOB_COL - исходный тип: 112
// DATE_COL - исходный тип: 12

oci_free_statement($stid);
oci_close($conn);

?>


Возвращает имя типа поля

  • « oci_field_type_raw
  • oci_free_descriptor »
  • PHP Manual
  • OCI8 Функции
  • Возвращает имя типа поля

oci_field_type

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_type — Возвращает имя типа поля

Описание

oci_field_type(resource $statement, string|int $column): string|int|false

Возвращает имя типа поля.

Список параметров

statement

Допустимый идентификатор OCI-выражения.

column

Может быть задано индексом (начиная с 1) или по имени.

Возвращаемые значения

Возвращает тип поля как строку (string) или как целое число (int) или 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>Имя</th>";
echo "<th>Тип</th>";
echo "<th>Длина</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";

// Выведет:
// Имя Тип Длина
// NUMBER_COL NUMBER 22
// VARCHAR2_COL VARCHAR2 1
// CLOB_COL CLOB 4000
// DATE_COL DATE 7

oci_free_statement($stid);
oci_close($conn);

?>

Смотрите также

  • 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_free_descriptor — Освобождает дескриптор

Описание

oci_free_descriptor(OCILob $lob): bool

Освобождает дескриптор, созданный с помощью oci_new_descriptor().

Список параметров

descriptor

Дескриптор, созданный с помощью oci_new_descriptor().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примечания

Замечание:

Функция обычно используется как метод OCILOB::free.

Смотрите также

  • OCILOB::free


Освобождает ресурсы, занимаемые курсором или SQL-выражением

  • « oci_free_descriptor
  • oci_get_implicit_resultset »
  • PHP Manual
  • OCI8 Функции
  • Освобождает ресурсы, занимаемые курсором или SQL-выражением

oci_free_statement

(PHP 5, PHP 7, PHP 8, 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

  • « oci_free_statement
  • oci_lob_copy »
  • PHP Manual
  • OCI8 Функции
  • Возвращает следующий ресурс дочернего запроса из ресурса родительского запроса, имеющего неявные результирующие наборы Oracle Database

oci_get_implicit_resultset

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL OCI8 >= 2.0.0)

oci_get_implicit_resultset — Возвращает следующий ресурс дочернего запроса из ресурса родительского запроса, имеющего неявные результирующие наборы Oracle Database

Описание

oci_get_implicit_resultset(resource $statement): resource|false

Используется для выборки последовательных наборов результатов запроса после выполнения хранимого или анонимного блока Oracle PL / SQL, когда этот блок возвращает результаты запроса Oracle Database 12 (или новее) с помощью 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().


Копирует объект LOB

  • « oci_get_implicit_resultset
  • oci_lob_is_equal »
  • PHP Manual
  • OCI8 Функции
  • Копирует объект LOB

oci_lob_copy

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_lob_copy — Копирует объект LOB

Описание

oci_lob_copy(OCILob $to, OCILob $from, ?int $length = null): bool

Копирует содержание или часть содержания объекта LOB в другой объект LOB. Содержимое объекта LOB, в который производится копирование, перезаписывается.

Если необходимо скопировать определённую часть объекта, то для этого можно использовать OCILob::seek(), чтобы передвинуть внутренние указатели объектов на нужные позиции.

Список параметров

to

LOB объект назначения.

from

Копируемый объект LOB.

length

Длина участка содержимого для копирования.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | length теперь допускает значение null.

Примечания

Замечание:

Класс OCILob назывался OCI-Lob до PHP 8 и PECL OCI8 3.0.0.


Сравнивает два объекта LOB/FILE

  • « oci_lob_copy
  • oci_new_collection »
  • PHP Manual
  • OCI8 Функции
  • Сравнивает два объекта LOB/FILE

oci_lob_is_equal

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_lob_is_equal — Сравнивает два объекта LOB/FILE

Описание

oci_lob_is_equal(OCILob $lob1, OCILob $lob2): bool

Сравнивает два объекта LOB/FILE.

Список параметров

lob1

Идентификатор LOB.

lob2

Идентификатор LOB.

Возвращаемые значения

Возвращает true, если объекты идентичны, и false в обратном случае или в случае возникновения ошибки.

Примечания

Замечание:

Класс OCILob назывался OCI-Lob до PHP 8 и PECL OCI8 3.0.0.


Создаёт новый объект коллекции

  • « oci_lob_is_equal
  • oci_new_connect »
  • PHP Manual
  • OCI8 Функции
  • Создаёт новый объект коллекции

oci_new_collection

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_collection — Создаёт новый объект коллекции

Описание

oci_new_collection(resource $connection, string $type_name, ?string $schema = null): OCICollection|false

Создаёт новый объект коллекции.

Список параметров

connection

Идентификатор соединения с сервером Oracle, возвращаемый функцией oci_connect() или oci_pconnect().

type_name

Должен быть корректным именем типа (в верхнем регистре).

schema

Должна быть указана схема данных, где создан именованный тип. Если передано значение null, указывается имя пользователя в качестве имени схемы.

Возвращаемые значения

Возвращает новый объект OCICollection или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | schema теперь допускает значение null.

Примечания

Замечание:

Класс OCICollection назывался OCI-Collection до PHP 8 и OCI8 3.0.0.


Устанавливает новое соединение с сервером Oracle

  • « oci_new_collection
  • oci_new_cursor »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает новое соединение с сервером Oracle

oci_new_connect

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_connect — Устанавливает новое соединение с сервером Oracle

Описание

oci_new_connect(
string $username,
string $password,
?string $connection_string = null,
string $encoding = "",
int $session_mode = OCI_DEFAULT
): resource|false

Создаёт новое соединение с сервером Oracle и выполняет вход.

В отличие от oci_connect() и oci_pconnect(), функция oci_new_connect() не кеширует соединения и при каждом вызове устанавливает новое соединение. Это полезно, если приложению необходима транзакционная изоляция двух наборов запросов.

Список параметров

username

Имя пользователя Oracle.

password

Пароль пользователя username.

connection_string

Содержит экземпляр Oracle для подключения. Это может быть » Easy Connect string, или Connect Name из файла tnsnames.ora, или имя локального экземпляра Oracle.

Если не указано отдельно или null, 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 19c были введены дополнительные параметры, включая настройки времени ожидания и проверки активности. Обратитесь к документации Oracle. Названия служб могут быть определены с помощью запуска Oracle утилиты lsnrctl status на сервере базы данных.

Файл tnsnames.ora может находиться в поисковом пути Oracle Net, который включает /your/path/to/instantclient/network/admin, $ORACLE_HOME/network/admin и /etc. В качестве альтернативного варианта можно установить TNS_ADMIN таким образом, чтобы путь $TNS_ADMIN/tnsnames.ora был читаемым. Убедитесь, что веб-сервер имеет доступ к этому файлу.

encoding

Определяет кодировку, используемую клиентскими библиотеками 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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | connection_string теперь допускает значение null.

Примеры

Приведённый ниже пример иллюстрирует как использовать обособленные соединения.

Пример #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, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_cursor — Возвращает идентификатор созданного курсора

Описание

oci_new_cursor(resource $connection): resource|false

Создаёт новый курсор для указанного соединения и возвращает его идентификатор.

Список параметров

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);

?>


Инициализирует новый дескриптор объекта LOB или FILE

  • « oci_new_cursor
  • oci_num_fields »
  • PHP Manual
  • OCI8 Функции
  • Инициализирует новый дескриптор объекта LOB или FILE

oci_new_descriptor

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_descriptor — Инициализирует новый дескриптор объекта LOB или FILE

Описание

oci_new_descriptor(resource $connection, int $type = OCI_DTYPE_LOB): ?OCILob

Резервирует ресурсы, необходимые для хранения дескриптора объекта или LOB-локатора.

Список параметров

connection

Идентификатор соединения с сервером Oracle, возвращаемый функцией oci_connect() или oci_pconnect().

type

Допустимые значения параметра type: OCI_DTYPE_FILE, OCI_DTYPE_LOB и OCI_DTYPE_ROWID.

Возвращаемые значения

Возвращает новый LOB или дескриптор FILE в случае успешного выполнения или null в случае возникновения ошибки.

Примеры

Пример #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">
Загрузить файл: <input type="file" name="lob_upload" /><br />
<input type="submit" value="Загрузить" /> - <input type="reset" value="Сбросить" />
</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 успешно загружен\n";
}else{
echo "Не удалось загрузить Blob\n";
}
$lob->free();
oci_free_statement($stmt);
oci_close($conn);
}
?>

Пример #2 Пример использования oci_new_descriptor()

<?php
/* Вызов хранимой процедуры PL/SQL, параметрами которой являются объекты CLOB
* Пример PL/SQL процедуры:
*
* PROCEDURE save_data
* Имя аргумента Тип In/Out По умолчанию?
* ------------------------------ ----------------------- ------ ------------
* 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);
?>

Смотрите также

  • oci_bind_by_name() - Прикрепляет переменную PHP к соответствующей метке в SQL-выражении


Возвращает количество полей в результате запроса

  • « oci_new_descriptor
  • oci_num_rows »
  • PHP Manual
  • OCI8 Функции
  • Возвращает количество полей в результате запроса

oci_num_fields

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_num_fields — Возвращает количество полей в результате запроса

Описание

oci_num_fields(resource $statement): int

Получает число столбцов в запросе, заданном в statement.

Список параметров

statement

Идентификатор допустимого OCI запроса.

Возвращаемые значения

Возвращает число затронутых строк в виде целого числа (int).

Примеры

Пример #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);

?>


Возвращает количество строк, изменённых в процессе выполнения запроса

  • « oci_num_fields
  • oci_parse »
  • PHP Manual
  • OCI8 Функции
  • Возвращает количество строк, изменённых в процессе выполнения запроса

oci_num_rows

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_num_rows — Возвращает количество строк, изменённых в процессе выполнения запроса

Описание

oci_num_rows(resource $statement): int|false

Возвращает число строк, затронутых в процессе выполнения запроса.

Список параметров

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*().


Подготавливает запрос к выполнению

  • « oci_num_rows
  • oci_password_change »
  • PHP Manual
  • OCI8 Функции
  • Подготавливает запрос к выполнению

oci_parse

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_parse — Подготавливает запрос к выполнению

Описание

oci_parse(resource $connection, string $sql): resource|false

Подготавливает sql к выполнению, используя соединение connection и возвращает идентификатор выражения, который может быть далее использован функциямиoci_bind_by_name(),oci_execute() и другими.

Идентификаторы выражений могут быть освобождены функцией oci_free_statement() или установкой переменной в null.

Список параметров

connection

Идентификатор соединения Oracle, полученный из функций oci_connect(), oci_pconnect() или oci_new_connect().

sql

Запрос 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) : "") . "</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. Единственный способ проверить правильность SQL или PL/SQL-запроса sql - это выполнить его.

Смотрите также

  • oci_execute() - Выполняет подготовленное выражение
  • oci_free_statement() - Освобождает ресурсы, занимаемые курсором или SQL-выражением


Изменяет пароль пользователя Oracle

  • « oci_parse
  • oci_pconnect »
  • PHP Manual
  • OCI8 Функции
  • Изменяет пароль пользователя Oracle

oci_password_change

(PHP 5, PHP 7, PHP 8, 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 $database_name,
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

Новый пароль.

database_name

Имя базы данных.

Возвращаемые значения

Если указан параметр database_name, oci_password_change() возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Если указан параметр connection, oci_password_change() возвращает ресурс соединения в случае успешного выполнения или 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.


Устанавливает постоянное соединение с сервером Oracle

  • « oci_password_change
  • oci_register_taf_callback »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает постоянное соединение с сервером Oracle

oci_pconnect

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_pconnect — Устанавливает постоянное соединение с сервером Oracle

Описание

oci_pconnect(
string $username,
string $password,
?string $connection_string = null,
string $encoding = "",
int $session_mode = OCI_DEFAULT
): resource|false

Создаёт постоянное соединение с сервером Oracle и выполняет аутентификацию.

Постоянные соединения кешируются и повторно используются при следующих запросах, в результате снижаются накладные расходы при каждой загрузке страницы; типичное приложение PHP имеет одно постоянное подключение к серверу PHP, реализованное дочерним процессом Apache (или процессом PHP FPM). Дополнительную информацию смотрите в разделе Работа с соединениями OCI8 и Connection Pooling.

Список параметров

username

Имя пользователя Oracle.

password

Пароль пользователя username.

connection_string

Содержит экземпляр Oracle для подключения. Это может быть » Easy Connect string, или Connect Name из файла tnsnames.ora, или имя локального экземпляра Oracle.

Если не указано отдельно или null, 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 19c были введены дополнительные параметры, включая настройки времени ожидания и проверки активности. Обратитесь к документации Oracle. Названия служб могут быть определены с помощью запуска Oracle утилиты lsnrctl status на сервере базы данных.

Файл tnsnames.ora может находиться в поисковом пути Oracle Net, который включает /your/path/to/instantclient/network/admin, $ORACLE_HOME/network/admin и /etc. В качестве альтернативного варианта можно установить TNS_ADMIN таким образом, чтобы путь $TNS_ADMIN/tnsnames.ora был читаемым. Убедитесь, что веб-сервер имеет доступ к этому файлу.

encoding

Определяет кодировку, используемую клиентскими библиотеками 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().

Примечания

Замечание: Продолжительность и максимальное количество постоянных соединений к серверу 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 8, PHP 7 >= 7.1.7, PHP 8, PECL OCI8 >= 2.1.7)

oci_register_taf_callback — Регистрирует пользовательскую функцию обратного вызова для Oracle Database TAF

Описание

oci_register_taf_callback(resource $connection, ?callable $callback): bool

Регистрирует пользовательскую функцию обратного вызова для соединения connection. Если соединение connection оборвалось из-за проблем с БД или сетью, будет произведено несколько запусков зарегистрированной функции в процессе восстановления. Более подробно читайте OCI8 Transparent Application Failover (TAF) Support .

Каждый новый вызов oci_register_taf_callback() будет затирать предыдущие регистрации.

Для явного удаления регистрации используйте функцию oci_unregister_taf_callback().

Регистрация функции обратного вызова НЕ сохраняется для постоянных соединений, следовательно при каждом новом постоянном соединении её необходимо перерегистрировать.

Список параметров

connection

Идентификатор соединения Oracle.

callback

Пользовательская функция для регистрации для 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_result — Возвращает значение поля из результата запроса

Описание

oci_result(resource $statement, string|int $column): mixed

Возвращает данные поля column текущей строки, возвращаемой функцией oci_fetch().

За подробностями по операции отображения типов данных, осуществляемой модулем OCI8, обратитесь к типам данных, поддерживаемых драйвером

Список параметров

statement

column

Может быть задано номером поля (начиная с 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);

?>

Смотрите также

  • 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, PHP 8, 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 при его поступлении
$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, PHP 8, PECL OCI8 >= 1.1.0)

oci_server_version — Возвращает версию сервера Oracle

Описание

oci_server_version(resource $connection): string|false

Возвращает строку с информацией о версии сервера 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);

?>

Смотрите также

  • oci_client_version() - Возвращает версию клиентской библиотеки


Задаёт имя для действия

  • « oci_server_version
  • oci_set_call_timeout »
  • PHP Manual
  • OCI8 Функции
  • Задаёт имя для действия

oci_set_action

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_action — Задаёт имя для действия

Описание

oci_set_action(resource $connection, string $action): 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

Задаваемая пользователем строка до 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.2 >= 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)

oci_set_call_timeout — Устанавливает время ожидания в миллисекундах для вызовов базы данных

Описание

oci_set_call_timeout(resource $connection, int $timeout): 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().

timeout

Максимальное время в миллисекундах, которое может занять один циклический путь (round-trip) между 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, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_client_identifier — Задаёт идентификатор клиента

Описание

oci_set_client_identifier(resource $connection, string $client_id): 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_id

Задаваемая пользователем строка до 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, PHP 8, 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 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)

oci_set_db_operation — Задаёт операцию базы данных

Описание

oci_set_db_operation(resource $connection, string $action): 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().

action

Пользовательская строка.

Возвращаемые значения

Возвращает 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, PHP 8, 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".

Возвращаемые значения

Возвращает 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";

?>

Примечания

Замечание: Требование к версии Oracle

Эта функция доступна, начиная с Oracle 11gR2.

Предостережение

Постоянные соединения

Во избежание несовместимости и случайных ошибок не используйте команду "ALTER SESSION SET EDITION" для изменения "серии" на постоянных соединениях.

Предостережение

DRCP объединение соединений в пул

Во избежание несовместимости и случайных ошибок при использовании серий и DRCP в Oracle 11.2.0.1 придерживайтесь однозначного соответствия между oci8.connection_class и именем "выпуска", которым пользуются приложения. Каждый сервер, входящий в состав пула с заданным классом соединений, должен использоваться только с одним "выпуском". Это ограничение устранено в версии Oracle 11.2.0.2.


Задаёт имя модулю

  • « oci_set_edition
  • oci_set_prefetch_lob »
  • PHP Manual
  • OCI8 Функции
  • Задаёт имя модулю

oci_set_module_name

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_module_name — Задаёт имя модулю

Описание

oci_set_module_name(resource $connection, string $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().

name

Задаваемая пользователем строка string длиной до 48 байт.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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;

Примечания

Замечание: Требование к версии Oracle

Эта функция доступна, если PHP слинкован с библиотеками Oracle Database начиная с версии 10g и выше.

Подсказка

Производительность

В старых версиях OCI8 или базы данных Oracle было возможно установить информацию о клиенте с помощью пакета DBMS_APPLICATION_INFO. Для этой цели более эффективно использование функции oci_set_client_info().

Предостережение

Совет по полному сканированию таблицы (roundtrip)

Некоторые, но не все OCI8-функции вызывают полное сканирование таблицы (roundtrip). Полное сканирование таблиц не происходит для тех запросов, в которых включено кеширование результатов в базе данных.

Смотрите также

  • oci_set_action() - Задаёт имя для действия
  • oci_set_client_info() - Задаёт информацию о клиенте
  • oci_set_client_identifier() - Задаёт идентификатор клиента
  • oci_set_db_operation() - Задаёт операцию базы данных


Устанавливает объём данных, предварительно выбираемых для каждого CLOB или BLOB

  • « oci_set_module_name
  • oci_set_prefetch »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает объём данных, предварительно выбираемых для каждого CLOB или BLOB

oci_set_prefetch_lob

(PHP 8.2, PECL OCI8 >= 3.2)

oci_set_prefetch_lob — Устанавливает объём данных, предварительно выбираемых для каждого CLOB или BLOB

Описание

oci_set_prefetch_lob(resource $statement, int $prefetch_lob_size): bool

Устанавливает размер внутреннего буфера, используемого для выборки каждого значения CLOB или BLOB, когда реализация получает внутренний локатор LOB Oracle из базы данных после успешного вызова запроса к функции oci_execute() и для каждого последующего внутреннего запроса выборки в базу данных. Увеличение этого значения может улучшить производительность выборки меньших LOB за счёт сокращения круговых обходов между PHP и базой данных. Использование памяти изменится.

Значение влияет на большие объекты, возвращаемые как экземпляры OCILob, а также на те, которые возвращаются с использованием OCI_RETURN_LOBS.

Функция oci_set_prefetch_lob() вызывается до вызова oci_execute(). Если функция не была вызвана, используется значение oci8.prefetch_lob_size.

Значение предварительной выборки LOB следует устанавливать только в Oracle Database 12.2 или новее.

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

prefetch_lob_size

Число байтов каждого LOB, которое нужно предварительно выбрать, >= 0.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Изменение значения предварительной выборки LOB для запроса

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT myclob FROM mytable');
oci_set_prefetch_lob($stid, 100000); // Установка значения перед вызовом oci_execute()
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS+OCI_RETURN_LOBS)) {
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($stid);
oci_close($conn);

?>

Смотрите также

  • INI-опция oci8.prefetch_lob_size


Устанавливает количество строк, которые будут автоматически выбраны в буфер

  • « oci_set_prefetch_lob
  • oci_statement_type »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает количество строк, которые будут автоматически выбраны в буфер

oci_set_prefetch

(PHP 5, PHP 7, PHP 8, 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 в случае возникновения ошибки.

Примеры

Пример #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().
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, PHP 8, PECL OCI8 >= 1.1.0)

oci_statement_type — Возвращает тип выражения

Описание

oci_statement_type(resource $statement): string|false

Возвращает выражение, соответствующее одному из типов параметра statement OCI8.

Список параметров

statement

Допустимый идентификатор оператора OCI8, возвращаемый oci_parse().

Возвращаемые значения

Возвращает тип параметра statement, который может быть одним из нижеследующих значений:

Тип оператора
Возвращаемое значение | Примечание
ALTER |
BEGIN |
CALL |
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
  • OCICollection »
  • PHP Manual
  • OCI8 Функции
  • Удалить регистрацию пользовательской callback-функции для Oracle Database TAF

oci_unregister_taf_callback

(PHP 7.0 >= 7.0.23, PHP 8, PHP 7 >= 7.1.9, PHP 8, 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


Класс OCICollection

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

Введение

Функционал коллекций OCI8.

Замечание:

Класс OCI-Collection был переименован в OCICollection в PHP 8 OCI8 3.0.0 в соответствии со стандартами именования PHP.

Обзор классов

class OCICollection {
/* Методы */
public append(string $value): bool
public assign(OCICollection $from): bool
public assignElem(int $index, string $value): bool
public free(): bool
public getElem(int $index): string|float|null|false
public max(): int|false
public size(): int|false
public trim(int $num): bool
}

Содержание

  • OCICollection::append — Добавляет элемент в коллекцию
  • OCICollection::assign — Присваивает коллекции значение другой, уже существующей коллекции
  • OCICollection::assignElem — Присваивает значение элементу коллекции
  • OCICollection::free — Освобождает ресурсы, занимаемые объектом коллекции
  • OCICollection::getElem — Возвращает значение элемента
  • OCICollection::max — Возвращает максимальное количество элементов в коллекции
  • OCICollection::size — Возвращает количество элементов в коллекции
  • OCICollection::trim — Отсекает элементы с конца коллекции


Добавляет элемент в коллекцию

  • « OCICollection
  • OCICollection::assign »
  • PHP Manual
  • OCICollection
  • Добавляет элемент в коллекцию

OCICollection::append

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::append — Добавляет элемент в коллекцию

Описание

public OCICollection::append(string $value): bool

Добавляет элемент в конец коллекции.

Список параметров

value

Значение, добавляемое в конец коллекции.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Collection переименован в OCICollection в соответствии со стандартами именования PHP.

Смотрите также

  • OCICollection::assign


Присваивает коллекции значение другой, уже существующей коллекции

  • « OCICollection::append
  • OCICollection::assignElem »
  • PHP Manual
  • OCICollection
  • Присваивает коллекции значение другой, уже существующей коллекции

OCICollection::assign

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::assign — Присваивает коллекции значение другой, уже существующей коллекции

Описание

public OCICollection::assign(OCICollection $from): bool

Присваивает коллекции значение другой, ранее созданной коллекции. Обе коллекции должны быть созданы ранее с помощью oci_new_collection().

Список параметров

from

Экземпляр OCI-Collection.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Collection переименован в OCICollection в соответствии со стандартами именования PHP.

Смотрите также

  • OCICollection::append


Присваивает значение элементу коллекции

  • « OCICollection::assign
  • OCICollection::free »
  • PHP Manual
  • OCICollection
  • Присваивает значение элементу коллекции

OCICollection::assignElem

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::assignElem — Присваивает значение элементу коллекции

Описание

public OCICollection::assignElem(int $index, string $value): bool

Присваивает значение элементу коллекции с индексом index.

Список параметров

index

Индекс элемента. Первый индекс - ноль.

value

Может быть строкой или числом.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Collection переименован в OCICollection в соответствии со стандартами именования PHP.

Смотрите также

  • OCICollection::getElem


Освобождает ресурсы, занимаемые объектом коллекции

  • « OCICollection::assignElem
  • OCICollection::getElem »
  • PHP Manual
  • OCICollection
  • Освобождает ресурсы, занимаемые объектом коллекции

OCICollection::free

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::free — Освобождает ресурсы, занимаемые объектом коллекции

Описание

public OCICollection::free(): bool

Освобождает ресурсы, занимаемые объектом коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Collection переименован в OCICollection в соответствии со стандартами именования PHP.

Смотрите также

  • oci_new_collection


Возвращает значение элемента

  • « OCICollection::free
  • OCICollection::max »
  • PHP Manual
  • OCICollection
  • Возвращает значение элемента

OCICollection::getElem

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::getElem — Возвращает значение элемента

Описание

public OCICollection::getElem(int $index): string|float|null|false

Возвращает значение элемента с индексом index (начиная с нуля).

Список параметров

index

Индекс элемента. Первый индекс - ноль.

Возвращаемые значения

Djpdhfoftn false, если такого элемента нет; null, если элемент равен null; строку, если элемент относится к строковому столбцу, и число, если элемент является числовым полем.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Collection переименован в OCICollection в соответствии со стандартами именования PHP.

Смотрите также

  • OCICollection::assignElem


Возвращает максимальное количество элементов в коллекции

  • « OCICollection::getElem
  • OCICollection::size »
  • PHP Manual
  • OCICollection
  • Возвращает максимальное количество элементов в коллекции

OCICollection::max

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::max — Возвращает максимальное количество элементов в коллекции

Описание

public OCICollection::max(): int|false

Возвращает максимальное количество элементов в коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает максимальное количество как целое число или false в случае возникновения ошибки.

Если будет возвращён 0, то количество элементов не ограничено.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Collection переименован в OCICollection в соответствии со стандартами именования PHP.

Смотрите также

  • OCICollection::size


Возвращает количество элементов в коллекции

  • « OCICollection::max
  • OCICollection::trim »
  • PHP Manual
  • OCICollection
  • Возвращает количество элементов в коллекции

OCICollection::size

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::size — Возвращает количество элементов в коллекции

Описание

public OCICollection::size(): int|false

Возвращает количество элементов в коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество элементов в коллекции или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Collection переименован в OCICollection в соответствии со стандартами именования PHP.

Смотрите также

  • OCICollection::max


Отсекает элементы с конца коллекции

  • « OCICollection::size
  • OCILob »
  • PHP Manual
  • OCICollection
  • Отсекает элементы с конца коллекции

OCICollection::trim

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::trim — Отсекает элементы с конца коллекции

Описание

public OCICollection::trim(int $num): bool

Отсекает num элементов с конца коллекции.

Список параметров

num

Количество элементов для отсечения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Collection переименован в OCICollection в соответствии со стандартами именования PHP.

Смотрите также

  • OCICollection::size


Класс OCILob

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

Введение

Функциональность OCI8 LOB для больших бинарных (BLOB) и символьных (CLOB) объектов.

Замечание:

Класс OCI-Lob был переименован в OCILob в PHP 8 OCI8 3.0.0 в соответствии со стандартами именования PHP.

Обзор классов

class OCILob {
/* Методы */
public append(OCILob $from): bool
public close(): bool
public eof(): bool
public erase(?int $offset = null, ?int $length = null): int|false
public export(string $filename, ?int $offset = null, ?int $length = null): bool
public flush(int $flag = 0): bool
public free(): bool
public getBuffering(): bool
public import(string $filename): bool
public load(): string|false
public read(int $length): string|false
public rewind(): bool
public save(string $data, int $offset = 0): bool
public seek(int $offset, int $whence = OCI_SEEK_SET): bool
public setBuffering(bool $mode): bool
public size(): int|false
public tell(): int|false
public truncate(int $length = 0): bool
public write(string $data, ?int $length = null): int|false
public writeTemporary(string $data, int $type = OCI_TEMP_CLOB): bool
}

Содержание

  • OCILob::append — Добавляет данные из объекта LOB в конец другого объекта
  • OCILob::close — Закрывает дескриптор объекта LOB
  • OCILob::eof — Проверяет, находится ли указатель LOB на конце объекта
  • OCILob::erase — Очищает указанную часть объекта LOB
  • OCILob::export — Сохраняет содержимое объекта LOB в файл
  • OCILob::flush — Очищает и записывает буфер объекта LOB на сервер
  • OCILob::free — Освобождает ресурсы, связанные с дескриптором LOB
  • OCILob::getBuffering — Возвращает текущее состояние буферизации большого объекта (LOB)
  • OCILob::import — Записывает содержимое файла в объект LOB
  • OCILob::load — Возвращает содержимое объекта LOB
  • OCILob::read — Возвращает часть объекта LOB
  • OCILob::rewind — Переводит указатель объекта в начало большого объекта
  • OCILob::save — Сохраняет данные в LOB
  • OCILob::saveFile — Псевдоним OCILob::import
  • OCILob::seek — Устанавливает позицию внутреннего указателя LOB
  • OCILob::setBuffering — Изменяет текущее состояние буферизации большого объекта (LOB)
  • OCILob::size — Возвращает размер объекта LOB
  • OCILob::tell — Возвращает текущую позицию внутреннего указателя объекта LOB
  • OCILob::truncate — Обрезает большой объект
  • OCILob::write — Записывает данные в объект LOB
  • OCILob::writeTemporary — Записывает временный большой объект (LOB)
  • OCILob::writeToFile — Псевдоним OCILob::export


Добавляет данные из объекта LOB в конец другого объекта

  • « OCILob
  • OCILob::close »
  • PHP Manual
  • OCILob
  • Добавляет данные из объекта LOB в конец другого объекта

OCILob::append

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::append — Добавляет данные из объекта LOB в конец другого объекта

Описание

public OCILob::append(OCILob $from): bool

Добавляет в конец объекта LOB данные из другого объекта LOB.

Запись в LOB с помощью этого метода вызовет ошибку, если у объекта ранее был включён режим буферизации. Поэтому вы должны выключить буферизацию перед её применением. Перед выключением буферизации вам может понадобиться метод OCILob::flush для очистки буфера.

Список параметров

from

Копируемый LOB.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::flush
  • OCILob::setBuffering
  • OCILob::getBuffering


Закрывает дескриптор объекта LOB

  • « OCILob::append
  • OCILob::eof »
  • PHP Manual
  • OCILob
  • Закрывает дескриптор объекта LOB

OCILob::close

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::close — Закрывает дескриптор объекта LOB

Описание

public OCILob::close(): bool

Закрывает дескриптор объекта LOB или FILE. Функцию следует использовать только вместе с OCILob::writeTemporary.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::writeTemporary


Проверяет, находится ли указатель LOB на конце объекта

  • « OCILob::close
  • OCILob::erase »
  • PHP Manual
  • OCILob
  • Проверяет, находится ли указатель LOB на конце объекта

OCILob::eof

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::eof — Проверяет, находится ли указатель LOB на конце объекта

Описание

public OCILob::eof(): bool

Сообщает о достижении внутренним указателем конца объекта LOB.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если внутренний указатель объекта находится на конце LOB. Иначе возвращает false.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Примечания

Замечание:

Функция возвращает Oracle ошибку в случае, если OCILob::setBuffering включена для LOB.

Смотрите также

  • OCILob::size


Очищает указанную часть объекта LOB

  • « OCILob::eof
  • OCILob::export »
  • PHP Manual
  • OCILob
  • Очищает указанную часть объекта LOB

OCILob::erase

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::erase — Очищает указанную часть объекта LOB

Описание

public OCILob::erase(?int $offset = null, ?int $length = null): int|false

Очищает конкретную часть объекта LOB, начиная с позиции, определённой в параметре offset. По умолчанию LOB очищается полностью.

Для объектов типа BLOB очищение означает заполнение нулевыми байтами. Объекты типа CLOB заполняются пробелами.

Список параметров

offset

length

Возвращаемые значения

Возвращает число очищенных символов/байт или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | offset и length теперь допускают значение null.
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::truncate


Сохраняет содержимое объекта LOB в файл

  • « OCILob::erase
  • OCILob::flush »
  • PHP Manual
  • OCILob
  • Сохраняет содержимое объекта LOB в файл

OCILob::export

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::export — Сохраняет содержимое объекта LOB в файл

Описание

public OCILob::export(string $filename, ?int $offset = null, ?int $length = null): bool

Сохраняет содержимое объекта LOB в файл.

Список параметров

filename

Путь к файлу.

offset

Начальная позиция экспорта.

length

Длина экспортируемой части LOB.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | offset и length теперь допускают значение null.
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::import


Очищает и записывает буфер объекта LOB на сервер

  • « OCILob::export
  • OCILob::free »
  • PHP Manual
  • OCILob
  • Очищает и записывает буфер объекта LOB на сервер

OCILob::flush

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::flush — Очищает и записывает буфер объекта LOB на сервер

Описание

public OCILob::flush(int $flag = 0): bool

OCILob::flush() непосредственно записывает данные на сервер.

Список параметров

flag

По умолчанию ресурсы не освобождаются, но используя флаг OCI_LOB_BUFFER_FREE вы можете сделать это принудительно. Однако, вы должны быть точно уверены в том, что вы делаете, так как следующее чтение из объекта будет более ресурсоемко, чем предыдущие из-за необходимости обращения к серверу. Поэтому использовать флаг OCI_LOB_BUFFER_FREE рекомендуется только после того, как работа с объектом уже закончена.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Возвращает false в случае возникновения ошибки или если буферизация объекта не была включена.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::getBuffering
  • OCILob::setBuffering


Освобождает ресурсы, связанные с дескриптором LOB

  • « OCILob::flush
  • OCILob::getBuffering »
  • PHP Manual
  • OCILob
  • Освобождает ресурсы, связанные с дескриптором LOB

OCILob::free

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::free — Освобождает ресурсы, связанные с дескриптором LOB

Описание

public OCILob::free(): bool

Освобождает ресурсы, связанные с дескриптором LOB, изначально выделенные функцией oci_new_descriptor().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.


Возвращает текущее состояние буферизации большого объекта (LOB)

  • « OCILob::free
  • OCILob::import »
  • PHP Manual
  • OCILob
  • Возвращает текущее состояние буферизации большого объекта (LOB)

OCILob::getBuffering

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::getBuffering — Возвращает текущее состояние буферизации большого объекта (LOB)

Описание

public OCILob::getBuffering(): bool

Сообщает, включена ли буферизация для большого объекта (LOB).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает false, если буферизация отключена, и true, если включена.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::setBuffering


Записывает содержимое файла в объект LOB

  • « OCILob::getBuffering
  • OCILob::load »
  • PHP Manual
  • OCILob
  • Записывает содержимое файла в объект LOB

OCILob::import

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::import — Записывает содержимое файла в объект LOB

Описание

public OCILob::import(string $filename): bool

Записывает содержимое файла filename в текущую позицию объекта LOB.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::export
  • OCILob::write


Возвращает содержимое объекта LOB

  • « OCILob::import
  • OCILob::read »
  • PHP Manual
  • OCILob
  • Возвращает содержимое объекта LOB

OCILob::load

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::load — Возвращает содержимое объекта LOB

Описание

public OCILob::load(): string|false

Возвращает содержимое объекта LOB. Так как выполнение скрипта прекратится при превышении memory_limit, необходимо убедиться, что LOB не превышает этого ограничения. Поэтому, в большинстве случаев этот метод рекомендуется заменять на OCILob::read.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое объекта или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::read


Возвращает часть объекта LOB

  • « OCILob::load
  • OCILob::rewind »
  • PHP Manual
  • OCILob
  • Возвращает часть объекта LOB

OCILob::read

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::read — Возвращает часть объекта LOB

Описание

public OCILob::read(int $length): string|false

Читает length байтов (BLOB) или символов (CLOB) с текущей позиции объекта LOB.

Чтение останавливается, когда прочитано length байтов для BLOB, length символов для CLOB или когда достигнут конец объекта. Внутренний указатель объекта будет сдвинут на количество прочитанных байт/символов.

Список параметров

length

Длина считываемых данных, в байтах (BLOB) или символах (CLOB). Большие значения округляются вниз до 1 MB.

Возвращаемые значения

Возвращает содержимое в виде строки или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::load
  • OCILob::write


Переводит указатель объекта в начало большого объекта

  • « OCILob::read
  • OCILob::save »
  • PHP Manual
  • OCILob
  • Переводит указатель объекта в начало большого объекта

OCILob::rewind

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::rewind — Переводит указатель объекта в начало большого объекта

Описание

public OCILob::rewind(): bool

Устанавливает внутренний указатель в начало объекта LOB.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::seek
  • OCILob::tell


Сохраняет данные в LOB

  • « OCILob::rewind
  • OCILob::saveFile »
  • PHP Manual
  • OCILob
  • Сохраняет данные в LOB

OCILob::save

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::save — Сохраняет данные в LOB

Описание

public OCILob::save(string $data, int $offset = 0): bool

Сохраняет данные из параметра data в объект LOB.

Список параметров

data

Данные для сохранения.

offset

Может использоваться для указания смещения от начала LOB.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::write
  • OCILob::import


Псевдоним OCILob::import

  • « OCILob::save
  • OCILob::seek »
  • PHP Manual
  • OCILob
  • Псевдоним OCILob::import

OCILob::saveFile

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::saveFile — Псевдоним OCILob::import()

Описание

Функция является псевдонимом: OCILob::import().

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.


Устанавливает позицию внутреннего указателя LOB

  • « OCILob::saveFile
  • OCILob::setBuffering »
  • PHP Manual
  • OCILob
  • Устанавливает позицию внутреннего указателя LOB

OCILob::seek

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::seek — Устанавливает позицию внутреннего указателя LOB

Описание

public OCILob::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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::rewind
  • OCILob::tell
  • OCILob::eof


Изменяет текущее состояние буферизации большого объекта (LOB)

  • « OCILob::seek
  • OCILob::size »
  • PHP Manual
  • OCILob
  • Изменяет текущее состояние буферизации большого объекта (LOB)

OCILob::setBuffering

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::setBuffering — Изменяет текущее состояние буферизации большого объекта (LOB)

Описание

public OCILob::setBuffering(bool $mode): bool

Устанавливает буферизацию для большого объекта исходя из значения параметра mode.

Использование этой функции может привести к улучшению производительности путём буферизации мелких операций чтения и записи в LOB за счёт уменьшения количества сетевых обращений и версий LOB. Необходимо обязательно использовать OCILob::flush() после завершения всех работ с LOB.

Список параметров

mode

true для включения и false для отключения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Повторные вызовы этого метода с тем же флагом будет возвращать true.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::getBuffering


Возвращает размер объекта LOB

  • « OCILob::setBuffering
  • OCILob::tell »
  • PHP Manual
  • OCILob
  • Возвращает размер объекта LOB

OCILob::size

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::size — Возвращает размер объекта LOB

Описание

public OCILob::size(): int|false

Возвращает размер объекта LOB

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает длину объекта LOB или false в случае возникновения ошибки. Для пустых объектов длина равняется нулю.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.


Возвращает текущую позицию внутреннего указателя объекта LOB

  • « OCILob::size
  • OCILob::truncate »
  • PHP Manual
  • OCILob
  • Возвращает текущую позицию внутреннего указателя объекта LOB

OCILob::tell

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::tell — Возвращает текущую позицию внутреннего указателя объекта LOB

Описание

public OCILob::tell(): int|false

Возвращает текущую позицию внутреннего указателя объекта LOB.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущую позицию внутреннего указателя объекта LOB или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::rewind
  • OCILob::size
  • OCILob::eof


Обрезает большой объект

  • « OCILob::tell
  • OCILob::write »
  • PHP Manual
  • OCILob
  • Обрезает большой объект

OCILob::truncate

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::truncate — Обрезает большой объект

Описание

public OCILob::truncate(int $length = 0): bool

Обрезает объект LOB.

Список параметров

length

Если указан, то LOB обрезается до указанной в length длины в байтах. Иначе LOB очищается полностью.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::erase


Записывает данные в объект LOB

  • « OCILob::truncate
  • OCILob::writeTemporary »
  • PHP Manual
  • OCILob
  • Записывает данные в объект LOB

OCILob::write

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::write — Записывает данные в объект LOB

Описание

public OCILob::write(string $data, ?int $length = null): int|false

Записывает данные из параметра data в текущую позицию внутреннего указателя объекта.

Список параметров

data

Записываемые в LOB данные.

length

Если параметр является числом, то запись остановится после того, как length байт будет записано или закончатся данные из параметра data.

Возвращаемые значения

Возвращает количество записанных байт или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | length теперь допускает значение null.
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::read


Записывает временный большой объект (LOB)

  • « OCILob::write
  • OCILob::writeToFile »
  • PHP Manual
  • OCILob
  • Записывает временный большой объект (LOB)

OCILob::writeTemporary

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::writeTemporary — Записывает временный большой объект (LOB)

Описание

public OCILob::writeTemporary(string $data, int $type = OCI_TEMP_CLOB): bool

Создаёт временный большой объект и записывает в него данные data.

После завершения работы с этим объектом его желательно закрыть функцией OCILob::close.

Список параметров

data

Данные для записи.

type

Один из следующих вариантов:

  • OCI_TEMP_BLOB для создания временных BLOB
  • OCI_TEMP_CLOB для создания временных CLOB

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.

Смотрите также

  • OCILob::close


Псевдоним OCILob::export

  • « OCILob::writeTemporary
  • Устаревшие наименования и функции OCI8 »
  • PHP Manual
  • OCILob
  • Псевдоним OCILob::export

OCILob::writeToFile

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::writeToFile — Псевдоним OCILob::export()

Описание

Функция является псевдонимом: OCILob::export().

Список изменений

Версия | Описание
8.0.0, PECL OCI8 3.0.0 | offset и length теперь допускают значение null.
8.0.0, PECL OCI8 3.0.0 | Класс OCI-Lob переименован в OCILob в соответствии со стандартами именования PHP.


Устаревшие наименования и функции OCI8

Содержание

  • oci_internal_debug — Включает или отключает внутренний вывод отладки
  • ocibindbyname — Псевдоним oci_bind_by_name
  • ocicancel — Псевдоним oci_cancel
  • ocicloselob — Псевдоним OCILob::close
  • ocicollappend — Псевдоним OCICollection::append
  • ocicollassign — Псевдоним OCICollection::assign
  • ocicollassignelem — Псевдоним OCICollection::assignElem
  • ocicollgetelem — Псевдоним OCICollection::getElem
  • ocicollmax — Псевдоним OCICollection::max
  • ocicollsize — Псевдоним OCICollection::size
  • ocicolltrim — Псевдоним OCICollection::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 — Псевдоним OCICollection::free
  • ocifreecursor — Псевдоним oci_free_statement
  • ocifreedesc — Псевдоним OCILob::free
  • ocifreestatement — Псевдоним oci_free_statement
  • ociinternaldebug — Псевдоним oci_internal_debug
  • ociloadlob — Псевдоним OCILob::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 — Псевдоним OCILob::save
  • ocisavelobfile — Псевдоним OCILob::import
  • ociserverversion — Псевдоним oci_server_version
  • ocisetprefetch — Псевдоним oci_set_prefetch
  • ocistatementtype — Псевдоним oci_statement_type
  • ociwritelobtofile — Псевдоним OCILob::export
  • ociwritetemporarylob — Псевдоним OCILob::writeTemporary


Включает или отключает внутренний вывод отладки

  • « Устаревшие наименования и функции OCI8
  • ocibindbyname »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Включает или отключает внутренний вывод отладки

oci_internal_debug

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0, PECL OCI8 <= 2.2.0)

oci_internal_debug — Включает или отключает внутренний вывод отладки

Описание

oci_internal_debug(bool $onoff): void

Включает или отключает внутренний вывод отладки.

Список параметров

onoff

Установите значение false для отключения вывода отладки или true, чтобы включить.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примечания

Замечание:

Функция была удалена в PHP 8 и PECL OCI8 3.0.


Псевдоним oci_bind_by_name

  • « oci_internal_debug
  • ocicancel »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_bind_by_name

ocibindbyname

(PHP 4, PHP 5, PHP 7, PHP 8, 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, PHP 8, PECL OCI8 >= 1.0.0)

ocicancel — Псевдоним oci_cancel()

Описание

Псевдоним oci_cancel()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCILob::close

  • « ocicancel
  • ocicollappend »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCILob::close

ocicloselob

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 1.0)

ocicloselob — Псевдоним OCILob::close()

Описание

Псевдоним OCILob::close()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCICollection::append

  • « ocicloselob
  • ocicollassign »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCICollection::append

ocicollappend

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollappend — Псевдоним OCICollection::append()

Описание

Псевдоним OCICollection::append()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCICollection::assign

  • « ocicollappend
  • ocicollassignelem »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCICollection::assign

ocicollassign

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollassign — Псевдоним OCICollection::assign()

Описание

Псевдоним OCICollection::assign()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCICollection::assignElem

  • « ocicollassign
  • ocicollgetelem »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCICollection::assignElem

ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollassignelem — Псевдоним OCICollection::assignElem()

Описание

Псевдоним OCICollection::assignElem()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCICollection::getElem

  • « ocicollassignelem
  • ocicollmax »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCICollection::getElem

ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollgetelem — Псевдоним OCICollection::getElem()

Описание

Псевдоним OCICollection::getElem()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCICollection::max

  • « ocicollgetelem
  • ocicollsize »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCICollection::max

ocicollmax

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollmax — Псевдоним OCICollection::max()

Описание

Псевдоним OCICollection::max()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCICollection::size

  • « ocicollmax
  • ocicolltrim »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCICollection::size

ocicollsize

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollsize — Псевдоним OCICollection::size()

Описание

Псевдоним OCICollection::size()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCICollection::trim

  • « ocicollsize
  • ocicolumnisnull »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCICollection::trim

ocicolltrim

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolltrim — Псевдоним OCICollection::trim()

Описание

Псевдоним OCICollection::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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, PECL OCI8 >= 1.0.0)

ocifetchstatement — Псевдоним oci_fetch_all()

Описание

Псевдоним oci_fetch_all()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCICollection::free

  • « ocifetchstatement
  • ocifreecursor »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCICollection::free

ocifreecollection

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreecollection — Псевдоним OCICollection::free()

Описание

Псевдоним OCICollection::free()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_free_statement

  • « ocifreecollection
  • ocifreedesc »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_free_statement

ocifreecursor

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreecursor — Псевдоним oci_free_statement()

Описание

Псевдоним oci_free_statement()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCILob::free

  • « ocifreecursor
  • ocifreestatement »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCILob::free

ocifreedesc

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreedesc — Псевдоним OCILob::free()

Описание

Псевдоним OCILob::free()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_free_statement

  • « ocifreedesc
  • ociinternaldebug »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_free_statement

ocifreestatement

(PHP 4, PHP 5, PHP 7, PHP 8, 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, PECL OCI8 <= 2.2.0)

ociinternaldebug — Псевдоним oci_internal_debug()

Описание

Псевдоним oci_internal_debug()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCILob::load

  • « ociinternaldebug
  • ocilogoff »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCILob::load

ociloadlob

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociloadlob — Псевдоним OCILob::load()

Описание

Псевдоним OCILob::load()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_close

  • « ociloadlob
  • ocilogon »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_close

ocilogoff

(PHP 4, PHP 5, PHP 7, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, 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, PHP 8, PECL OCI8 >= 1.0.0)

ocirowcount — Псевдоним oci_num_rows()

Описание

Псевдоним oci_num_rows()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCILob::save

  • « ocirowcount
  • ocisavelobfile »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCILob::save

ocisavelob

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocisavelob — Псевдоним OCILob::save()

Описание

Псевдоним OCILob::save()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCILob::import

  • « ocisavelob
  • ociserverversion »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCILob::import

ocisavelobfile

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocisavelobfile — Псевдоним OCILob::import()

Описание

Псевдоним OCILob::import()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_server_version

  • « ocisavelobfile
  • ocisetprefetch »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_server_version

ociserverversion

(PHP 4, PHP 5, PHP 7, PHP 8, 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, PHP 8, 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, PHP 8, PECL OCI8 >= 1.0.0)

ocistatementtype — Псевдоним oci_statement_type()

Описание

Псевдоним oci_statement_type()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCILob::export

  • « ocistatementtype
  • ociwritetemporarylob »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCILob::export

ociwritelobtofile

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociwritelobtofile — Псевдоним OCILob::export()

Описание

Псевдоним OCILob::export()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCILob::writeTemporary

  • « ociwritelobtofile
  • PostgreSQL »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCILob::writeTemporary

ociwritetemporarylob

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 1.0)

ociwritetemporarylob — Псевдоним OCILob::writeTemporary()

Описание

Псевдоним OCILob::writeTemporary()

Внимание

Этот псевдоним функции УСТАРЕЛ, начиная с PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


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_context_visibility — Determines the visibility of the context's error messages returned by pg_last_error and pg_result_error
    • 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 — Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)
  • PgSql\Connection — Класс PgSql\Connection
  • PgSql\Result — Класс PgSql\Result
  • PgSql\Lob — Класс PgSql\Lob


Введение

База данных 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 |
pgsql.ignore_notice | "0" | PHP_INI_ALL |
pgsql.log_notice | "0" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

pgsql.allow_persistent bool

Следует ли разрешить постоянное соединение с Postgres.

pgsql.max_persistent int

Максимальное количество постоянных соединений на один процесс.

pgsql.max_links int

Максимальное количество соединений Postgres на один процесс, включая постоянные соединения.

pgsql.auto_reset_persistent int

Определять разорванные постоянные ссылки с pg_pconnect(). Требуются небольшие дополнительные ресурсы.

pgsql.ignore_notice int

Игнорировать или нет уведомления от PostgreSQL.

pgsql.log_notice int

Записывать ли в лог уведомления от PostgreSQL. Для записи в лог уведомлений также необходимо отключить PHP-директиву pgsql.ignore_notice.


Типы ресурсов

До PHP 8.1.0 существовало два типа ресурсов используемых в модуле PostgreSQL. Первый из них представляет собой идентификатор соединения с базой данных, а второй - ресурс необходимый для хранения результата запроса.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

PGSQL_LIBPQ_VERSION (string)
Короткое обозначение версии libpq, содержащее только цифры и точки.
PGSQL_LIBPQ_VERSION_STR (string)
До PHP 8.0.0 - длинное обозначение версии libpq, которое включает информацию о компиляторе. Начиная с PHP 8.0.0, значение идентично PGSQL_LIBPQ_VERSION, а использование PGSQL_LIBPQ_VERSION_STR устарело.
PGSQL_ASSOC (int)
Передаётся в функцию pg_fetch_array(). Возвращает ассоциативный массив 'имя поля' => 'значение поля'.
PGSQL_NUM (int)
Передаётся в функцию pg_fetch_array(). Возвращает нумерованный массив 'номер поля' => 'значение поля'.
PGSQL_BOTH (int)
Передаётся в функцию pg_fetch_array(). Возвращает массив значений поля, нумерованный (по номеру поля) и ассоциативный (по имени поля).
PGSQL_CONNECT_FORCE_NEW (int)
Передаётся в функцию pg_connect() для принудительного создания нового подключения вместо использования идентичного существующего.
PGSQL_CONNECT_ASYNC (int)
Передаётся в pg_connect() для создания асинхронного соединения.
PGSQL_CONNECTION_AUTH_OK (int)
PGSQL_CONNECTION_AWAITING_RESPONSE (int)
PGSQL_CONNECTION_BAD (int)
Возвращается функцией pg_connection_status(), указывает на неработоспособность соединения с базой данных.
PGSQL_CONNECTION_MADE (int)
PGSQL_CONNECTION_OK (int)
Возвращается функцией pg_connection_status(), указывает на нормальное (рабочее) состояние соединения с базой данных.
PGSQL_CONNECTION_SETENV (int)
PGSQL_CONNECTION_SSL_STARTUP (int)
PGSQL_CONNECTION_STARTED (int)
PGSQL_SEEK_SET (int)
Передаётся в функцию pg_lo_seek(). Операция поиска начнёт работу с начала объекта.
PGSQL_SEEK_CUR (int)
Передаётся в функцию pg_lo_seek(). Операция поиска начнёт работу с текущей позиции.
PGSQL_SEEK_END (int)
Передаётся в функцию pg_lo_seek(). Операция поиска начнёт работу с конца объекта.
PGSQL_EMPTY_QUERY (int)
Возвращается функцией pg_result_status(). Означает, что отправленная на сервер строка была пустой.
PGSQL_COMMAND_OK (int)
Возвращается функцией pg_result_status(). Означает успешное завершение команды, не возвращающей данных.
PGSQL_TUPLES_OK (int)
Возвращается функцией pg_result_status(). Означает успешное завершение команды, возвращающей какие-либо данные (например, SELECT или SHOW).
PGSQL_COPY_OUT (int)
Возвращается функцией pg_result_status(). Сообщает, что было начато копирование данных с сервера.
PGSQL_COPY_IN (int)
Возвращается функцией pg_result_status(). Сообщает, чтобы начато копирование данных на сервер.
PGSQL_BAD_RESPONSE (int)
Возвращается функцией pg_result_status(). Сообщает, что ответ от сервера не был распознан.
PGSQL_NONFATAL_ERROR (int)
Возвращается функцией pg_result_status(). Сообщает, что произошла некритическая (уведомление или предупреждение) ошибка.
PGSQL_FATAL_ERROR (int)
Возвращается функцией pg_result_status(). Сообщает, что произошла критическая ошибка.
PGSQL_TRANSACTION_IDLE (int)
Возвращается функцией pg_transaction_status(). Означает, что соединение на данный момент бездействует и не находится в рамках транзакции.
PGSQL_TRANSACTION_ACTIVE (int)
Возвращается функцией pg_transaction_status(). Означает состояние, когда команда находится в процессе выполнения. Запрос через соединение отправлен, но выполнение ещё не завершено.
PGSQL_TRANSACTION_INTRANS (int)
Возвращается функцией pg_transaction_status(). Означает, что соединение простаивает и находится в рамках транзакции.
PGSQL_TRANSACTION_INERROR (int)
Возвращается функцией pg_transaction_status(). Означает, что соединение простаивает и находится в рамках транзакции потерпевшей неудачу при выполнении.
PGSQL_TRANSACTION_UNKNOWN (int)
Возвращается функцией pg_transaction_status(). Означает, что соединение разорвано.
PGSQL_DIAG_SEVERITY (int)
Передаётся в функцию pg_result_error_field(). Сообщает о затруднении. Возможны лишь перечисленные значения: ERROR, FATAL, или PANIC (в сообщении об ошибке), либо WARNING, NOTICE, DEBUG, INFO, или LOG (в уведомлении), либо перевод перечисленных значений в соответствии с используемой локализацией. Поле всегда определено.
PGSQL_DIAG_SQLSTATE (int)
Передаётся в pg_result_error_field(). Код ошибки SQLSTATE. Код SQLSTATE определяет тип произошедшей ошибки; он может быть использован прикладной программой при выполнении специфических операций (таких как обработка ошибки) в ответ на ошибку базы данных. Это поле всегда определено и его значение не зависит от локализации.
PGSQL_DIAG_MESSAGE_PRIMARY (int)
Передаётся в pg_result_error_field(). Основное удобочитаемое сообщение об ошибке (обычно одна строка). Поле всегда определено.
PGSQL_DIAG_MESSAGE_DETAIL (int)
Передаётся в pg_result_error_field(). Детализация: дополнительное сообщение об ошибке, содержащее более подробную информацию о проблеме. Может содержать несколько строк.
PGSQL_DIAG_MESSAGE_HINT (int)
Передаётся в pg_result_error_field(). Подсказка: указание на возможные пути устранения ошибки. Отличается от детализации ошибки тем, что это просто предложения (возможно ошибочные), а не точная информация. Может содержать несколько строк.
PGSQL_DIAG_STATEMENT_POSITION (int)
Передаётся в pg_result_error_field(). Строка, содержащая десятичное целое число, указывающее на позицию курсора в исходном выражении, где произошла ошибка. Первый символ имеет индекс 1, позиции исчисляются в символах, а не в байтах.
PGSQL_DIAG_INTERNAL_POSITION (int)
Передаётся в pg_result_error_field(). Определение тоже, что и для поля PG_DIAG_STATEMENT_POSITION, но используется в случаях, когда курсор указывает на команду, сгенерированную сервером БД. В таких случаях всегда появляется поле PG_DIAG_INTERNAL_QUERY.
PGSQL_DIAG_INTERNAL_QUERY (int)
Передаётся в pg_result_error_field(). Текст ошибки, сгенерированной внутренней командой СУБД, в которой произошла ошибка. Это может быть, например, SQL-запрос, сформированный функцией PL/pgSQL.
PGSQL_DIAG_CONTEXT (int)
Передаётся в pg_result_error_field(). Указание на контекст, где произошла ошибка. В основном содержит трассировку запрограммированных функций и автоматически сгенерированных запросов. Трассировка выводится построчно, начиная с последней строки.
PGSQL_DIAG_SOURCE_FILE (int)
Передаётся в pg_result_error_field(). Имя файла исходного кода PostgreSQL, в котором отмечена ошибка.
PGSQL_DIAG_SOURCE_LINE (int)
Передаётся в pg_result_error_field(). Номер строки файла исходного кода PostgreSQL, где отмечена ошибка.
PGSQL_DIAG_SOURCE_FUNCTION (int)
Передаётся в pg_result_error_field(). Имя функции в исходном коде PostgreSQL, сообщающей об ошибке.
PGSQL_DIAG_SCHEMA_NAME (string)
Добавлено в PHP 7.3.0.
PGSQL_DIAG_TABLE_NAME (string)
Добавлено в PHP 7.3.0.
PGSQL_DIAG_COLUMN_NAME (string)
Добавлено в PHP 7.3.0.
PGSQL_DIAG_DATATYPE_NAME (string)
Добавлено в PHP 7.3.0.
PGSQL_DIAG_CONSTRAINT_NAME (string)
Добавлено в PHP 7.3.0.
PGSQL_ERRORS_TERSE (int)
Передаётся в pg_set_error_verbosity(). Даёт предписание, что выдаваемые сообщения будут содержать только важность ошибки, основной текст и указатель на место, где она произошла; эта информация обычно умещается в одну строку.
PGSQL_ERRORS_DEFAULT (int)
Передаётся в pg_set_error_verbosity(). В режиме по умолчанию сообщения об ошибках содержат описанную выше информацию, а также детализацию, подсказку или поля с контекстом ошибки (могут занимать несколько строк).
PGSQL_ERRORS_VERBOSE (int)
Передаётся в pg_set_error_verbosity(). Задаёт режим, в котором в сообщения будут включены все возможные поля.
PGSQL_NOTICE_LAST (int)
Используется pg_last_notice(). Доступно с PHP 7.1.0.
PGSQL_NOTICE_ALL (int)
Используется pg_last_notice(). Доступно с PHP 7.1.0.
PGSQL_NOTICE_CLEAR (int)
Используется pg_last_notice(). Доступно с PHP 7.1.0.
PGSQL_STATUS_LONG (int)
Передаётся в pg_result_status(). Указывает на то, что в качестве возвращаемого значения ожидается числовой код.
PGSQL_STATUS_STRING (int)
Передаётся в pg_result_status(). Указывает на то, что в качестве возвращаемого значения ожидается текстовое представление статуса.
PGSQL_CONV_IGNORE_DEFAULT (int)
Передаётся в pg_convert(). Игнорировать значения по умолчанию в таблице в процессе преобразования.
PGSQL_CONV_FORCE_NULL (int)
Передаётся в pg_convert(). Заменять пустые строки string на SQL NULL при преобразовании.
PGSQL_CONV_IGNORE_NOT_NULL (int)
Передаётся в pg_convert(). Указывает, что не нужно конвертировать null в столбцы SQL NOT NULL.
PGSQL_DML_NO_CONV (int)
Передаётся в pg_insert(), pg_select(), pg_update() и pg_delete(). Все параметры передаются в исходном виде. Ручное экранирование обязательно, если параметры содержат пользовательские данные. Используйте для этих целей pg_escape_string().
PGSQL_DML_EXEC (int)
Передаётся в pg_insert(), pg_select(), pg_update() и pg_delete(). Выполнить запрос с помощью этих функций.
PGSQL_DML_ASYNC (int)
Передаётся в pg_insert(), pg_select(), pg_update() и pg_delete(). Выполнить асинхронный запрос с помощью этих функций.
PGSQL_DML_STRING (int)
Передаётся в pg_insert(), pg_select(), pg_update() и pg_delete(). Вернуть строку с выполненным запросом.
PGSQL_DML_ESCAPE (int)
Передаётся в pg_insert(), pg_select(), pg_update() и pg_delete(). Применить экранирование ко всем параметрам вместо внутреннего вызова pg_convert(). Эта опция пропускает просмотр метаданных. Запрос может быть таким же быстрым, как и pg_query() и pg_send_query().
PGSQL_POLLING_FAILED (int)
Возвращается функцией pg_connect_poll() и указывает на то, что попытка соединения провалилась.
PGSQL_POLLING_READING (int)
Возвращается функцией pg_connect_poll() и указывает на то, что соединение ожидает, когда сокет PostgreSQL станет доступным для чтения.
PGSQL_POLLING_WRITING (int)
Возвращается функцией pg_connect_poll() и указывает на то, что соединение ожидает, когда сокет PostgreSQL станет доступным для записи.
PGSQL_POLLING_OK (int)
Возвращается функцией pg_connect_poll() и указывает на то, что соединение готово к использованию.
PGSQL_POLLING_ACTIVE (int)
Возвращается функцией pg_connect_poll() и указывает на то, что соединение сейчас активно.
PGSQL_DIAG_SEVERITY_NONLOCALIZED (int)
Важность; Возможны следующие значения: ERROR, FATAL или PANIC (в сообщении ошибке), либо WARNING, NOTICE, DEBUG, INFO или LOG (в сообщении предупреждении). Это идентично полю PG_DIAG_SEVERITY за исключением того, содержимое не локализовано. Доступно только в версии 9.6 или новее / PHP 7.3.0 или новее.


  • « Предопределённые константы
  • Базовое использование »
  • 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_context_visibility — Determines the visibility of the context's error messages returned by pg_last_error and pg_result_error
  • 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, PHP 8)

pg_affected_rows — Возвращает количество затронутых запросом записей (кортежей)

Описание

pg_affected_rows(PgSql\Result $result): int

pg_affected_rows() возвращает количество кортежей (сущностей/записей/рядов) затронутых запросом INSERT, UPDATE, и DELETE queries.

С версии PostgreSQL 9.0 и новее, сервер возвращает число выбранных рядов для запроса SELECT. Более старые версии возвращают 0 для SELECT.

Замечание:

Ранее данная функция называлась pg_cmdtuples().

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

Возвращаемые значения

Количество записей, затронутых запросом. Если ни один кортеж не был затронут, функция вернёт 0.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_cancel_query — Остановка асинхронного запроса.

Описание

pg_cancel_query(PgSql\Connection $connection): bool

pg_cancel_query() отменяет выполнение асинхронного запроса, отправленного функциями pg_send_query(), pg_send_query_params() или pg_send_execute(). Невозможно завершить выполнение запроса, запущенное функцией pg_query().

Список параметров

connection

Экземпляр PgSql\Connection.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_client_encoding — Получение кодировки клиента.

Описание

pg_client_encoding(?PgSql\Connection $connection = null): string

PostgreSQL поддерживает автоматическое преобразование наборов символов между сервером и клиентом для некоторых кодировок. pg_client_encoding() возвращает клиентскую кодировку в виде строки, представляющей собой стандартный идентификатор кодировки PostgreSQL.

Замечание:

Для работы функции требуется PostgreSQL версии 7.0 или выше. В случае, если libpg скомпилирована без поддержки многобайтовых кодировок, pg_client_encoding() всегда возвращает SQL_ASCII. Набор поддерживаемых кодировок зависит от версии сервера БД и описан в документации PostgreSQL.

Функция, используемая для вызова: pg_clientencoding().

Список параметров

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

Возвращаемые значения

Клиентская кодировка.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_close — Закрывает соединение с базой данных PostgreSQL

Описание

pg_close(?PgSql\Connection $connection = null): true

pg_close() закрывает обычное (непостоянное) соединение с базой данных PostgreSQL, соответствующее экземпляру connection.

Замечание:

Использование pg_close(), как правило, необязательно, так как непостоянные соединения закрываются автоматически при завершении работы скрипта.

Если с соединением работают экземпляры PgSql\Lob, то перед закрытием соединения необходимо закрыть все экземпляры PgSql\Lob.

Список параметров

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_connect_poll — Опросить статус попытки асинхронного соединения PostgreSQL.

Описание

pg_connect_poll(PgSql\Connection $connection): int

pg_connect_poll() опрашивает статус соединения PostgreSQL, созданного вызовом функции pg_connect() с параметром PGSQL_CONNECT_ASYNC.

Список параметров

connection

Экземпляр PgSql\Connection.

Возвращаемые значения

Возвращает PGSQL_POLLING_FAILED, PGSQL_POLLING_READING, PGSQL_POLLING_WRITING, PGSQL_POLLING_OK или PGSQL_POLLING_ACTIVE.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).


Открывает соединение с базой данных PostgreSQL

  • « pg_connect_poll
  • pg_connection_busy »
  • PHP Manual
  • Функции PostgreSQL
  • Открывает соединение с базой данных PostgreSQL

pg_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_connect — Открывает соединение с базой данных PostgreSQL

Описание

pg_connect(string $connection_string, int $flags = 0): PgSql\Connection|false

pg_connect() открывает соединение с базой данных PostgreSQL, определённое строкой connection_string.

При повторном вызове функции pg_connect() с теми же значениями параметров в connection_string функция вернёт существующее подключение. Чтобы принудительно создать новое соединение, необходимо передать строку подключения функции PGSQL_CONNECT_FORCE_NEW в качестве параметра flags.

Прежний синтаксис с множеством параметров $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 служит для установки параметров командной строки, которые обработаны сервером.

flags

Если в функцию передана константа PGSQL_CONNECT_FORCE_NEW, будет создаваться новое подключение, даже если connection_string идентична строке существующего подключения.

Если передана константа PGSQL_CONNECT_ASYNC, то соединение устанавливается асинхронным. Состояние соединения можно проверить с помощью функций pg_connect_poll() или pg_connection_status().

Возвращаемые значения

Возвращает экземпляр PgSql\Connection в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр PgSql\Connection; ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_connection_busy — Проверяет, занято ли соединение в данный момент.

Описание

pg_connection_busy(PgSql\Connection $connection): bool

pg_connection_busy() определяет, занято соединение в данный момент или нет. Соединение занято, когда предыдущий запрос ещё выполняется. Функция pg_get_result() также блокирует соединение на время своего выполнения.

Список параметров

connection

Экземпляр PgSql\Connection.

Возвращаемые значения

Возвращает true, если соединение занято, в противном случае false.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_connection_reset — Сброс подключения (переподключение)

Описание

pg_connection_reset(PgSql\Connection $connection): bool

pg_connection_reset() сбрасывает подключение. Может быть использована для устранения ошибок.

Список параметров

connection

Экземпляр PgSql\Connection.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_connection_status — Определяет состояние подключения

Описание

pg_connection_status(PgSql\Connection $connection): int

pg_connection_status() возвращает состояние переданного в качестве аргумента соединения connection.

Список параметров

connection

Экземпляр PgSql\Connection.

Возвращаемые значения

PGSQL_CONNECTION_OK либо PGSQL_CONNECTION_BAD.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_consume_input — Читает вводные данные на соединении

Описание

pg_consume_input(PgSql\Connection $connection): bool

pg_consume_input() принимает любые входные данные, ожидающие чтения с сервера базы данных.

Список параметров

connection

Экземпляр PgSql\Connection.

Возвращаемые значения

true, если ошибки не возникло, или false, если произошла ошибка. Обратите внимание, что true не обязательно указывает, что входные данные ожидали чтения.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).


Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах

  • « pg_consume_input
  • pg_copy_from »
  • PHP Manual
  • Функции PostgreSQL
  • Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах

pg_convert

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_convert — Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах

Описание

pg_convert(
PgSql\Connection $connection,
string $table_name,
array $values,
int $flags = 0
): array|false

pg_convert() проверяет и преобразовывает значения из values в приемлемые для SQL-сервера. Необходимо, чтобы существовала таблица table_name, а количество колонок в ней должно быть не меньше, чем значений в массиве values. Имена колонок в таблице table_name должны совпадать с ключами массива values, типы данных значений массива также должны совпадать с типами данных соответствующих колонок. В случае удачной конвертации функция возвращает массив преобразованных значений, иначе возвращает false.

Замечание:

Булевы значения преобразуются в булев тип PostgreSQL. Строковые представления булевого значения также поддерживаются. null преобразуется в PostgreSQL NULL.

Список параметров

connection

Экземпляр PgSql\Connection.

table_name

Имя таблицы базы данных.

values

Данные для преобразования.

flags

Одна из констант PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL или PGSQL_CONV_IGNORE_NOT_NULL, либо их комбинация.

Возвращаемые значения

Массив (array), содержащий преобразованные данные или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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);
?>

Смотрите также

  • 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, PHP 8)

pg_copy_from — Вставляет записи из массива в таблицу

Описание

pg_copy_from(
PgSql\Connection $connection,
string $table_name,
array $rows,
string $separator = "\t",
string $null_as = "\\\\N"
): bool

pg_copy_from() вставляет записи в таблицу из массива rows. В ходе выполнения вызывает SQL-команду COPY FROM для вставки записей.

Список параметров

connection

Экземпляр PgSql\Connection.

table_name

Имя таблицы, в которую копируются значения из rows.

rows

Массив (array) данных для копирования в table_name. Каждое значение в rows становится строкой в table_name. Каждое значение массива rows должно быть строкой с разделителем, содержащей значения для вставки в каждое поле таблицы. Значения должны заканчиваться символом перевода строки.

separator

Символ, отделяющий значения друг от друга в каждом элементе массива rows. По умолчанию \t.

null_as

Определяет, каким образом значения SQL NULL представлены в массиве rows. По умолчанию \\N ("\\\\N").

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_copy_to — Копирует данные из таблицы в массив

Описание

pg_copy_to(
PgSql\Connection $connection,
string $table_name,
string $separator = "\t",
string $null_as = "\\\\N"
): array|false

pg_copy_to() копирует данные из таблицы в массив. Для получения записей посылает серверу команду SQL COPY TO.

Список параметров

connection

Экземпляр PgSql\Connection.

table_name

Имя таблицы, из которой данные копируются в массив rows.

separator

Символ-разделитель, отделяющий значения полей в элементах массива rows. По умолчанию \t.

null_as

Этот параметр отвечает за то, как значения SQL NULL будут представлены в массиве rows. По умолчанию \\N ("\\\\N").

Возвращаемые значения

Массив (array), в котором каждый элемент - строка, полученная с помощью COPY или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_dbname — Определяет имя базы данных

Описание

pg_dbname(?PgSql\Connection $connection = null): string

pg_dbname() возвращает имя базы данных, соответствующей экземпляру PostgreSQL connection.

Список параметров

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

Возвращаемые значения

Строка, содержащая имя базы данных, соответствующей ресурсу connection.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_delete — Удаляет записи

Описание

pg_delete(
PgSql\Connection $connection,
string $table_name,
array $conditions,
int $flags = PGSQL_DML_EXEC
): string|bool

pg_delete() удаляет из таблицы записи, соответствующие ключам и значениям массива conditions.

Если flags указан, pg_convert() применяется к conditions с указанными флагами.

По умолчанию pg_delete() передаёт необработанные значения. Значения должны быть экранированы или опция PGSQL_DML_ESCAPE должна быть указана. PGSQL_DML_ESCAPE заключает в кавычки и экранирует параметры/идентификаторы. Поэтому имена таблиц/столбцов становятся чувствительными к регистру.

Обратите внимание, что ни экранирование, ни подготовленный запрос не защитят запрос LIKE, JSON, массив, регулярные выражения и т.д. Эти параметры должны обрабатываться в соответствии с их контекстами, т.е. следует экранировать/проверять значения.

Список параметров

connection

Экземпляр PgSql\Connection.

table_name

Имя таблицы, из которой удаляются записи.

conditions

Ассоциативный массив, ключи которого соответствуют именам полей таблицы table_name, а значения соответствуют удаляемым значениям в этих колонках.

flags

Комбинация констант PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC или PGSQL_DML_STRING. Если константа PGSQL_DML_STRING присутствует в аргументе flags, то функция вернёт строку, содержащую запрос. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Возвращает строку, если в аргументе flags передана константа PGSQL_DML_STRING.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования pg_delete()

<?php
$db = pg_connect('dbname=foo');
// Это безопасно в некоторой степени, поскольку все значения экранируются.
// Однако PostgreSQL поддерживает JSON/массив. Для этих значений это не безопасно
// ни с через экранирование, ни с помощью подготовленного запроса.
$res = pg_delete($db, 'post_log', $_POST, PG_DML_ESCAPE);
if ($res) {
echo "Данные из POST удалены: $res\n";
} else {
echo "Пользователь отправил неверные входные данные\n";
}
?>

Смотрите также

  • 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, PHP 8)

pg_end_copy — Синхронизирует с бэкендом PostgreSQL

Описание

pg_end_copy(?PgSql\Connection $connection = null): bool

pg_end_copy() синхронизирует данные между фронтендом PostgreSQL (обычно процессом веб-сервера) и сервером PostgreSQL после завершения копирования данных, совершенных с помощью функции pg_put_line(). Использование pg_end_copy() необходимо, чтобы избежать рассинхронизации сервера PostgreSQL с фронтендом и сообщений об ошибках.

Список параметров

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_escape_bytea — Экранирует спецсимволы в строке для вставки в поле типа bytea

Описание

pg_escape_bytea(PgSql\Connection $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

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

data

Строка, содержащая двоичные данные в виде текста, которые требуется поместить в поле типа bytea.

Возвращаемые значения

Возвращает строку, в которой экранированы все необходимые символы.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_escape_identifier — Экранирует идентификатор для вставки в текстовое поле

Описание

pg_escape_identifier(PgSql\Connection $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

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

data

Строка (string), содержащая текст, который должен быть экранирован.

Возвращаемые значения

Строка (string), содержащая экранированные данные.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_escape_literal — Экранировать литерал при вставке в текстовое поле

Описание

pg_escape_literal(PgSql\Connection $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

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

data

Строка (string), содержащая текст для экранирования.

Возвращаемые значения

Строка (string), содержащая экранированный текст.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_escape_string — Экранирование спецсимволов в строке запроса

Описание

pg_escape_string(PgSql\Connection $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

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

data

Исходная экранируемая строка.

Возвращаемые значения

Возвращает строку, в которой экранированы все необходимые символы.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_execute — Запускает выполнение ранее подготовленного параметризованного запроса и ждёт результат

Описание

pg_execute(PgSql\Connection $connection = ?, string $stmtname, array $params): PgSql\Result|false

Запускает выполнение ранее подготовленного параметризованного запроса и ждёт результат.

pg_execute() аналог функции pg_query_params(), только вместо строки с запросом принимает имя предварительно подготовленного SQL-запроса. Это позволяет многократно выполнять единожды созданные запросы с различными параметрами. Сам запрос должен быть заранее подготовлен в текущей сессии. pg_execute() поддерживается PostgreSQL версии 7.4 и выше. Функция не будет работать на соединениях с сервером ранних версий.

Аргументы функции те же, что и у pg_query_params(), за исключением имени предварительно составленного запроса, который передаётся вместо строки с запросом.

Список параметров

connection

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

stmtname

Имя подготовленного к исполнению запроса. Если передана пустая строка "", будет выполнен безымянный запрос. Имя и содержимое запроса должны быть подготовлены функцией pg_prepare(), pg_send_prepare() либо с помощью SQL-команды PREPARE.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Внимание

Элементы массива будут преобразованы в строки.

Возвращаемые значения

Экземпляр PgSql\Result в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр PgSql\Result; ранее возвращался ресурс (resource).
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_fetch_all_columns — Выбирает все записи из одной колонки результата запроса и помещает их в массив

Описание

pg_fetch_all_columns(PgSql\Result $result, int $field = 0): array

pg_fetch_all_columns() возвращает массив, содержащий все записи одной колонки экземпляра PgSql\Result.

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

field

Номер колонки. Если параметр не задан, будет обработана первая (нулевая) колонка.

Возвращаемые значения

Массив значений колонки результата запроса.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_fetch_all — Выбирает все данные из результата запроса и помещает их в массив

Описание

pg_fetch_all(PgSql\Result $result, int $mode = PGSQL_ASSOC): array

pg_fetch_all() возвращает массив содержащий все записи экземпляра PgSql\Result.

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

mode

Необязательный параметр, управляющий тем, как индексируется возвращаемый массив (array). Параметр mode является константой и может принимать следующие значения: PGSQL_ASSOC, PGSQL_NUM и PGSQL_BOTH. При использовании PGSQL_NUM функция возвращает массив с числовыми индексами, при использовании PGSQL_ASSOC она вернёт только ассоциативные индексы, а PGSQL_BOTH вернёт как числовые, так и ассоциативные индексы.

Возвращаемые значения

Многомерный массив данных результата запроса. Каждая строка результата представляется массивом значений полей, индексированным именами этих полей.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).
8.0.0 | Функция pg_fetch_all() теперь возвращает пустой массив (array) вместо значения false для наборов результатов без строк.
7.1.0 | Добавлен параметр mode.

Примеры

Пример #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
        )

)

Смотрите также

  • 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, PHP 8)

pg_fetch_array — Возвращает строку результата в виде массива

Описание

pg_fetch_array(PgSql\Result $result, ?int $row = null, int $mode = PGSQL_BOTH): array|false

pg_fetch_array() возвращает массив, соответствующий выбранной строке (записи).

pg_fetch_array() расширенная версия функции pg_fetch_row(). Эта функция способна сохранить данные не только с цифровыми индексами, но и с ассоциативными (имя поля). По умолчанию хранит и те и другие.

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

pg_fetch_array() выполняется незначительно медленнее чем pg_fetch_row(), но значительно проще в использовании.

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

row

Номер строки в result для выборки. Строки пронумерованы с 0 по возрастанию. Если параметр опущен или передан null будет выбрана следующая строка.

mode

Необязательный параметр, управляющий тем, как индексируется возвращаемый массив (array). Параметр mode является константой и может принимать следующие значения: PGSQL_ASSOC, PGSQL_NUM и PGSQL_BOTH. При использовании PGSQL_NUM функция возвращает массив с числовыми индексами, при использовании PGSQL_ASSOC она вернёт только ассоциативные индексы, а PGSQL_BOTH вернёт как числовые, так и ассоциативные индексы.

Возвращаемые значения

Массив (array) с числовыми индексами (начиная с 0), либо ассоциативными (по имени поля), либо с обеими типами индексов. Каждое значение в массиве (array) представлено как строка (string). Значение NULL возвращается как null.

Функция возвращает false, если row выходит за рамки количества строк в выборке, или отсутствия строк, или в случае любой другой ошибки. Выборка из результата запроса, отличного от SELECT, также вернёт false.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_fetch_assoc — Выбирает строку результата запроса и помещает данные в ассоциативный массив

Описание

pg_fetch_assoc(PgSql\Result $result, ?int $row = null): array|false

pg_fetch_assoc() возвращает ассоциативный массив, содержащий записи из строки результата запроса.

Результат выполнения pg_fetch_assoc() тот же, что и у pg_fetch_array() с параметром PGSQL_ASSOC. Функция возвращает только ассоциативный массив. Если нужен численно-индексированный массив, используйте функцию pg_fetch_row().

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

pg_fetch_assoc() не намного медленней и значительно проще в использовании, чем pg_fetch_row().

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен или равен null, берётся следующая по очереди строка.

Возвращаемые значения

Ассоциативный массив, индексированный именами полей выборки. Значения массива представляются в виде текстовых строк. Значения NULL базы данных преобразуются в PHP null.

false, если row превышает число строк в результате запроса, когда строк в результате не осталось, и при прочих ошибках.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_fetch_object — Выбирает строку результата запроса и возвращает данные в виде объекта

Описание

pg_fetch_object(
PgSql\Result $result,
?int $row = null,
string $class = "stdClass",
array $constructor_args = []
): object|false

pg_fetch_object() возвращает объект, свойства которого соответствуют именам полей выборки. Также функция может создать экземпляр конкретного класса и передать параметры его конструктору.

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

По скорости функция идентична pg_fetch_array() и немного медленней pg_fetch_row() (разница незначительна).

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен или равен null, берётся следующая по очереди строка.

class

Имя класса создаваемого и возвращаемого объекта. Если не задано, функция создаст экземпляр класса stdClass.

constructor_args

Необязательный аргумент. Массив (array) параметров для передачи в конструктор создаваемого объекта (class).

Возвращаемые значения

Объект (object), имена и значения свойств которого соответствуют именам и значениям полей результата запроса. Значения NULL базы данных преобразуются в PHP null.

false, когда row превышает число строк в результате запроса, когда строк в результате не осталось, и при прочих ошибках.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_fetch_result — Возвращает запись из результата запроса

Описание

pg_fetch_result(PgSql\Result $result, int $row, mixed $field): string|false|null
pg_fetch_result(PgSql\Result $result, mixed $field): string|false|null

pg_fetch_result() возвращает значение ячейки таблицы экземпляра PgSql\Result.

Замечание:

Прежнее наименование функции: pg_result().

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен, берётся следующая по очереди строка.

field

Имя или номер поля выбираемого значения. Поля нумеруются с нуля.

Возвращаемые значения

Логические значения возвращаются как "t" или "f". Остальные типы, включая массивы, возвращаются в виде строк в стандартном формате PostgreSQL, аналогично выводу программы psql. Значения NULL базы данных преобразуются в PHP null.

false, если row превышает число строк в результате запроса, и при прочих ошибках.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_fetch_row — Выбирает строку результата запроса и помещает данные в массив

Описание

pg_fetch_row(PgSql\Result $result, ?int $row = null, int $mode = PGSQL_NUM): array|false

pg_fetch_row() выбирает одну строку из результата запроса result.

Замечание: Эта функция устанавливает NULL-поля в значение null PHP.

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен или равен null, берётся следующая по очереди строка.

mode

Необязательный параметр, управляющий тем, как индексируется возвращаемый массив (array). Параметр mode является константой и может принимать следующие значения: PGSQL_ASSOC, PGSQL_NUM и PGSQL_BOTH. При использовании PGSQL_NUM функция возвращает массив с числовыми индексами, при использовании PGSQL_ASSOC она вернёт только ассоциативные индексы, а PGSQL_BOTH вернёт как числовые, так и ассоциативные индексы.

Возвращаемые значения

Численно индексированный массив значений из строки результата запроса. Индексация начинается с нуля. Значения представляются в виде строк. Значения NULL базы данных преобразуются в PHP null.

false, если row превышает число строк в результате запроса, когда строк в результате не осталось, и при прочих ошибках.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_field_is_null — Проверка поля на значение SQL NULL

Описание

pg_field_is_null(PgSql\Result $result, int $row, mixed $field): int
pg_field_is_null(PgSql\Result $result, mixed $field): int

pg_field_is_null() проверяет, содержит ли ячейка экземпляра PgSql\Result значение SQL NULL.

Замечание:

Прежнее наименование функции: pg_fieldisnull().

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

row

Номер строки результата запроса с нужным полем. Нумерация строк начинается с нуля. Если аргумент не задан, будет выбрана текущая строка.

field

Номер поля (начиная с нуля) как int или имя поля как string.

Возвращаемые значения

Возвращает 1, если выбранное значение SQL NULL, 0 для других значений. Функция вернёт false, если номер строки будет вне допустимого диапазона и при прочих ошибках.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_field_name — Возвращает наименование поля

Описание

pg_field_name(PgSql\Result $result, int $field): string

pg_field_name() возвращает имя поля результата запроса result с порядковым номером field. Нумерация полей начинается с нуля.

Замечание:

Прежнее название функции: pg_fieldname().

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

field

Номер поля, начиная с нуля.

Возвращаемые значения

Наименование поля.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_field_num — Возвращает порядковый номер именованного поля

Описание

pg_field_num(PgSql\Result $result, string $field): int

pg_field_num() вернёт порядковый номер поля с именем field в результате запроса result.

Замечание:

Прежнее название функции: pg_fieldnum().

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

field

Наименование поля. Данное имя обрабатывается как идентификатор в SQL-команде, то есть оно переводится в нижний регистр, если оно не заключено в двойные кавычки.

Возвращаемые значения

Номер поля (начиная с нуля), либо -1 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_field_prtlen — Возвращает количество печатаемых символов

Описание

pg_field_prtlen(PgSql\Result $result, int $row_number, mixed $field_name_or_number): int
pg_field_prtlen(PgSql\Result $result, mixed $field_name_or_number): int

pg_field_prtlen() возвращает длину строки (количество символов) значения поля при выводе результата result. Строки нумеруются с нуля. Функция вернёт false в случае возникновения ошибки.

field_name_or_number Номер или имя выбранного поля. Может передаваться либо как int, либо как string. Если передаётся значение типа int, PHP распознает его как номер, в противном случае как наименование поля.

Ознакомьтесь с примерами на странице с описанием функции pg_field_name().

Замечание:

Прежнее название функции: pg_fieldprtlen().

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

row

Номер строки результата запроса с нужным полем. Нумерация строк начинается с нуля. Если аргумент не задан, будет выбрана текущая строка.

Возвращаемые значения

Длина строки при выводе значения поля.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_field_size — Возвращает размер поля

Описание

pg_field_size(PgSql\Result $result, int $field): int

pg_field_size() возвращает объем памяти (в байтах), занимаемый значением поля результата запроса PostgreSQL result.

Замечание:

Прежнее название функции: pg_fieldsize().

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

field

Порядковый номер поля результата запроса, начиная с нуля.

Возвращаемые значения

Требуемый объем памяти (в байтах) для хранения значения поля. -1 указывает на переменный размер поля.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_field_table — Возвращает наименование или идентификатор таблицы, содержащей заданное поле

Описание

pg_field_table(PgSql\Result $result, int $field, bool $oid_only = false): string|int|false

pg_field_table() возвращает имя таблицы, которой принадлежит заданное поле. Если в качестве аргумента oid_only передаётся true, функция вернёт oid-идентификатор таблицы.

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

field

Порядковый номер поля результата запроса, начиная с нуля.

oid_only

По умолчанию функция возвращает название таблицы, содержащей заданное поле. Если параметр oid_only равен true, то функция вернёт oid таблицы.

Возвращаемые значения

При успешном завершении название таблицы или её oid или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_field_type_oid — Возвращает идентификатор типа заданного поля

Описание

pg_field_type_oid(PgSql\Result $result, int $field): string|int

pg_field_type_oid() возвращает целочисленный идентификатор базового типа (OID) значений колонки результата запроса result с номером field.

Более подробную информацию о типе значений можно получить, отправив запрос с полученным OID к системной таблице PostgreSQL pg_type. Функция PostgreSQL format_type() преобразует OID в стандартное имя типа SQL.

Замечание:

Если в качестве типа значений используется PostgreSQL домен (вместо базового типа), функция вернёт OID типа внутри домена, а не OID самого домена.

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

field

Порядковый номер поля, начиная с нуля.

Возвращаемые значения

OID базового типа значений поля.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_field_type — Возвращает имя типа заданного поля

Описание

pg_field_type(PgSql\Result $result, int $field): string

pg_field_type() возвращает строку, содержащую имя базового типа значений колонки результата запроса result с номером field.

Замечание:

Если в качестве типа значений используется PostgreSQL домен (вместо базового типа), функция вернёт имя типа внутри домена, а не имя самого домена.

Замечание:

Прежнее название функции: pg_fieldtype().

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

field

Порядковый номер поля, начиная с нуля.

Возвращаемые значения

Строка, содержащая имя базового типа значений поля.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_flush — Сбросить данные исходящего запроса на соединении

Описание

pg_flush(PgSql\Connection $connection): int|bool

pg_flush() сбрасывает любые данные исходящего запроса, ожидающие отправки на соединении.

Список параметров

connection

Экземпляр PgSql\Connection.

Возвращаемые значения

Возвращает true, если сброс был успешный или данные не ожидали сброса, либо 0, если часть ожидающих данных была сброшена, однако остались ещё или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).


Очистка результата запроса и освобождение памяти

  • « pg_flush
  • pg_get_notify »
  • PHP Manual
  • Функции PostgreSQL
  • Очистка результата запроса и освобождение памяти

pg_free_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_free_result — Очистка результата запроса и освобождение памяти

Описание

pg_free_result(PgSql\Result $result): bool

pg_free_result() освобождает память, занятую экземпляром PgSql\Result.

Вызывать эту функцию следует только в случае нехватки памяти при выполнении скрипта. В любом случае память будет освобождена автоматически по окончании работы скрипта.

Замечание:

Прежнее название функции: pg_freeresult().

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_get_notify — Получение SQL NOTIFY сообщения

Описание

pg_get_notify(PgSql\Connection $connection, int $mode = PGSQL_ASSOC): array|false

pg_get_notify() получает уведомления, сгенерированные командой SQL NOTIFY. Для получения уведомлений используйте команду SQL LISTEN.

Список параметров

connection

Экземпляр PgSql\Connection.

mode

Необязательный параметр, управляющий тем, как индексируется возвращаемый массив (array). Параметр mode является константой и может принимать следующие значения: PGSQL_ASSOC, PGSQL_NUM и PGSQL_BOTH. При использовании PGSQL_NUM функция возвращает массив с числовыми индексами, при использовании PGSQL_ASSOC она вернёт только ассоциативные индексы, а PGSQL_BOTH вернёт как числовые, так и ассоциативные индексы.

Возвращаемые значения

Массив (array), содержащий сообщение NOTIFY и PID сервера БД. Если поддерживается сервером, массив также содержит версию сервера и полезную нагрузку. Если никаких уведомлений не ожидается, функция вернёт false.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_get_pid — Получает ID процесса сервера БД

Описание

pg_get_pid(PgSql\Connection $connection): int

pg_get_pid() получает PID сервера базы данных. PID полезен, когда требуется определить, какой процесс отправил NOTIFY сообщение, принятое функцией pg_get_notify() (точнее узнать, сервер его отправил или какой-то другой процесс).

Список параметров

connection

Экземпляр PgSql\Connection.

Возвращаемые значения

ID процесса сервера баз данных.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_get_result — Получение результата асинхронного запроса

Описание

pg_get_result(PgSql\Connection $connection): PgSql\Result|false

pg_get_result() получает экземпляр PgSql\Result из асинхронного
запроса, запущенного функциями pg_send_query(),
pg_send_query_params() или pg_send_execute().

pg_send_query() и другие функции, посылающие асинхронные запросы, может посылать сразу несколько запросов на сервер. Функция pg_get_result() получит результаты всех запросов по очереди.

Список параметров

connection

Экземпляр PgSql\Connection.

Возвращаемые значения

Экземпляр PgSql\Result, либо false, когда доступных результатов больше нет.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр PgSql\Result; ранее возвращался ресурс (resource).
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_host — Возвращает имя хоста, соответствующего подключению

Описание

pg_host(?PgSql\Connection $connection = null): string

pg_host() возвращает имя хоста, с которым установлено заданное соединение PostgreSQL connection.

Список параметров

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

Возвращаемые значения

Строка, содержащая имя подключённого через connection хоста, либо пустая строка в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_insert — Заносит данные из массива в таблицу базы данных

Описание

pg_insert(
PgSql\Connection $connection,
string $table_name,
array $values,
int $flags = PGSQL_DML_EXEC
): PgSql\Result|string|bool

pg_insert() вставляет записи из массива values в таблицу table_name.

Если flags указан, pg_convert() применяется к values с указанными флагами.

По умолчанию pg_insert() передаёт необработанные значения. Значения должны быть экранированы или опция PGSQL_DML_ESCAPE должна быть указана. PGSQL_DML_ESCAPE заключает в кавычки и экранирует параметры/идентификаторы. Поэтому имена таблиц/столбцов становятся чувствительными к регистру.

Обратите внимание, что ни экранирование, ни подготовленный запрос не защитят запрос LIKE, JSON, массив, регулярные выражения и т.д.. Эти параметры должны обрабатываться в соответствии с их контекстами, т.е. следует экранировать/проверять значения.

Список параметров

connection

Экземпляр PgSql\Connection.

table_name

Имя таблицы для вставки данных. Количество колонок в таблице table_name должно быть не меньше, чем элементов в массиве values.

values

Ассоциативный массив(array), в котором ключи являются названиями колонок таблицы table_name, а значения - записи, которые необходимо вставить в эти колонки.

flags

Комбинация констант PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC и PGSQL_DML_STRING. Если в числе прочих передаётся PGSQL_DML_STRING в параметре flags, функция вернёт строку запроса. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.. Или возвращает строку(string), если PGSQL_DML_STRING включена в список параметров аргумента flags.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр PgSql\Result; ранее возвращался ресурс (resource).
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования pg_insert()

<?php
$dbconn = pg_connect('dbname=foo');
// Это безопасно в некоторой степени, поскольку все значения экранируются.
// Однако PostgreSQL поддерживает JSON/массив. Для этих значений это не безопасно
// ни с через экранирование, ни с помощью подготовленного запроса.
$res = pg_insert($dbconn, 'post_log', $_POST, PGSQL_DML_ESCAPE);
if ($res) {
echo "Данные из POST успешно внесены в журнал\n";
} else {
echo "Пользователь прислал неверные данные\n";
}
?>

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах


Получает сообщение о последней произошедшей ошибке на соединении с базой данных

  • « pg_insert
  • pg_last_notice »
  • PHP Manual
  • Функции PostgreSQL
  • Получает сообщение о последней произошедшей ошибке на соединении с базой данных

pg_last_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_last_error — Получает сообщение о последней произошедшей ошибке на соединении с базой данных

Описание

pg_last_error(?PgSql\Connection $connection = null): string

pg_last_error() возвращает сообщение о последней ошибке на заданном соединении connection.

Сообщения об ошибках могут перезаписываться при внутренних вызовах функций PostgreSQL (libpq). Если внутри модуля PostgreSQL произойдёт несколько ошибок, сообщение может оказаться неинформативным.

Для обработки ошибок лучше использовать функции pg_result_error(), pg_result_error_field(), pg_result_status() и pg_connection_status().

Замечание:

Прежнее название функции: pg_errormessage().

Список параметров

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

Возвращаемые значения

Строка, содержащая сообщение о последней ошибке, произошедшей на соединении connection.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_last_notice — Возвращает последнее уведомление от сервера PostgreSQL

Описание

pg_last_notice(PgSql\Connection $connection, int $mode = PGSQL_NOTICE_LAST): array|string|bool

pg_last_notice() возвращает последнее уведомление, сгенерированное сервером PostgreSQL на заданном соединении connection. В некоторых случаях сервер посылает уведомления, например при создании в таблице колонки типа SERIAL.

Благодаря pg_last_notice() не требуется делать лишних запросов, чтобы узнать посылала ваша транзакция уведомления или нет.

Можно отключить отслеживание уведомлений установкой в значение 1 параметра pgsql.ignore_notice в файле php.ini.

Можно отключить журналирование уведомлений установкой в значение 0 параметра pgsql.log_notice в файле php.ini. Пока этот параметр установлен в значение 0, уведомления невозможно записать в журнал выполнения.

Список параметров

connection

Экземпляр PgSql\Connection.

mode

Одна из констант PGSQL_NOTICE_LAST (для возврата последнего уведомления), PGSQL_NOTICE_ALL (для возврата всех уведомлений) или PGSQL_NOTICE_CLEAR (для очистки уведомлений).

Возвращаемые значения

Строка, содержащая последнее уведомление на заданном соединении, если задана опция PGSQL_NOTICE_LAST, массив (array), если опция PGSQL_NOTICE_ALL и значение типа bool в случае опции PGSQL_NOTICE_CLEAR.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
7.1.0 | Добавлен параметр mode.

Примеры

Пример #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"

Смотрите также

  • 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, PHP 8)

pg_last_oid — Возвращает OID последней добавленной в базу строки

Описание

pg_last_oid(PgSql\Result $result): string|int|false

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

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

Возвращаемые значения

Целое число (int) или строка (string), содержащая OID последней вставленной строки на соединении connection, либо false, если произошла ошибка или поле OID недоступно.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_lo_close — Закрывает большой объект

Описание

pg_lo_close(PgSql\Lob $lob): bool

pg_lo_close() закрывает большой объект.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loclose().

Список параметров

lob

An PgSql\Lob instance, returned by pg_lo_open().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр lob теперь ожидает экземпляр PgSql\Lob; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_lo_create — Создаёт большой объект

Описание

pg_lo_create(PgSql\Connection $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

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

object_id

Если задан аргумент object_id, функция попытается создать объект с этим идентификатором, в противном случае будет использован свободный идентификатор, назначенный сервером. Этот аргумент основан на функционале, впервые реализованном в PostgreSQL 8.1.

Возвращаемые значения

OID большого объекта или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_lo_export — Вывод большого объекта в файл

Описание

pg_lo_export(PgSql\Connection $connection = ?, int $oid, string $pathname): bool

pg_lo_export() выбирает большой объект из базы данных и сохраняет его данные локально в файловой системе.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loexport().

Список параметров

connection

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

oid

OID большого объекта в базе данных.

pathname

Полный путь и имя файла в клиентской файловой системе для записи данных большого объекта.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_lo_import — Импорт большого объекта из файла

Описание

pg_lo_import(PgSql\Connection $connection = ?, string $pathname, mixed $object_id = ?): int

pg_lo_import() создаёт большой объект в базе данных, используя локальный файл в качестве источника данных.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loimport().

Список параметров

connection

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

pathname

Полный путь и имя файла в клиентской файловой системе для чтения данных большого объекта.

object_id

Если задан аргумент object_id, функция попытается создать объект с этим идентификатором, в противном случае будет использован свободный идентификатор, назначенный сервером. Этот аргумент основан на функционале, впервые реализованном в PostgreSQL 8.1.

Возвращаемые значения

OID созданного большого объекта или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_lo_open — Открывает большой объект базы данных

Описание

pg_lo_open(PgSql\Connection $connection, int $oid, string $mode): PgSql\Lob|false

pg_lo_open() открывает большой объект базы данных и возвращает экземпляр PgSql\Lob.

Внимание

Не следует закрывать соединение с базой данных до того, как завершится работа с экземпляром PgSql\Lob.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loopen().

Список параметров

connection

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

oid

OID большого объекта в базе данных.

mode

Режим доступа к объекту. Возможные значения: "r" - только для чтения, "w" - только для записи, "rw" - для чтения и записи.

Возвращаемые значения

Экземпляр PgSql\Lob или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр PgSql\Lob; ранее возвращался ресурс (resource).
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_lo_read_all — Читает содержимое большого объекта и посылает напрямую в браузер

Описание

pg_lo_read_all(PgSql\Lob $lob): int

pg_lo_read_all() читает большой объект и посылает данные напрямую в браузер после отправки всех необходимых заголовков. Используется в основном для пересылки двоичных данных, таких как изображения или звук.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loreadall().

Список параметров

lob

An PgSql\Lob instance, returned by pg_lo_open().

Возвращаемые значения

Количество прочитанных байт.

Список изменений

Версия | Описание
8.1.0 | Параметр lob теперь ожидает экземпляр PgSql\Lob; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_lo_read — Читает данные большого объекта

Описание

pg_lo_read(PgSql\Lob $lob, int $length = 8192): string|false

pg_lo_read() читает length байт большого объекта и возвращает их в виде строки.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loread().

Список параметров

length

An PgSql\Lob instance, returned by pg_lo_open().

length

Необязательный аргумент. Количество байт, которые необходимо прочитать.

Возвращаемые значения

Строка(string), содержащая length байт большого объекта, либо false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр lob теперь ожидает экземпляр PgSql\Lob; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_lo_seek — Перемещает внутренний указатель большого объекта

Описание

pg_lo_seek(PgSql\Lob $lob, int $offset, int $whence = SEEK_CUR): bool

pg_lo_seek() перемещает внутренний указатель экземпляра PgSql\Lob.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Список параметров

lob

An PgSql\Lob instance, returned by pg_lo_open().

offset

Количество байт, на сколько требуется переместить указатель.

whence

Одна из констант: PGSQL_SEEK_SET (перемещать от начала объекта), PGSQL_SEEK_CUR (перемещать с текущей позиции) или PGSQL_SEEK_END (отступать от конца объекта).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр lob теперь ожидает экземпляр PgSql\Lob; ранее ожидался ресурс (resource).

Примеры

Пример #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;
?>

Смотрите также

  • pg_lo_tell() - Возвращает текущее положение внутреннего указателя большого объекта


Возвращает текущее положение внутреннего указателя большого объекта

  • « pg_lo_seek
  • pg_lo_truncate »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает текущее положение внутреннего указателя большого объекта

pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_tell — Возвращает текущее положение внутреннего указателя большого объекта

Описание

pg_lo_tell(PgSql\Lob $lob): int

pg_lo_tell() возвращает текущую позицию (отступ от начала) внутреннего указателя большого объекта.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Список параметров

lob

An PgSql\Lob instance, returned by pg_lo_open().

Возвращаемые значения

Текущая позиция внутреннего указателя (количество байт от начала) большого объекта. В случае возникновения ошибки функция вернёт отрицательное значение.

Список изменений

Версия | Описание
8.1.0 | Параметр lob теперь ожидает экземпляр PgSql\Lob; ранее ожидался ресурс (resource).

Примеры

Пример #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

Смотрите также

  • pg_lo_seek() - Перемещает внутренний указатель большого объекта


Обрезает большой объект

  • « pg_lo_tell
  • pg_lo_unlink »
  • PHP Manual
  • Функции PostgreSQL
  • Обрезает большой объект

pg_lo_truncate

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

pg_lo_truncate — Обрезает большой объект

Описание

pg_lo_truncate(PgSql\Lob $lob, int $size): bool

pg_lo_truncate() обрезает экземпляр PgSql\Lob.

Для использования интерфейса большого объекта, необходимо заключить его в блок транзакций.

Список параметров

lob

An PgSql\Lob instance, returned by pg_lo_open().

size

Количество байтов для обрезания.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр lob теперь ожидает экземпляр PgSql\Lob; ранее ожидался ресурс (resource).

Примеры

Пример #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;
?>

Смотрите также

  • pg_lo_tell() - Возвращает текущее положение внутреннего указателя большого объекта


Удаление большого объекта

  • « pg_lo_truncate
  • pg_lo_write »
  • PHP Manual
  • Функции PostgreSQL
  • Удаление большого объекта

pg_lo_unlink

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_unlink — Удаление большого объекта

Описание

pg_lo_unlink(PgSql\Connection $connection, int $oid): bool

pg_lo_unlink() удаляет большой объект с идентификатором oid.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_lounlink().

Список параметров

connection

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

oid

OID большого объекта в базе данных.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_lo_write — Записывает данные в большой объект

Описание

pg_lo_write(PgSql\Lob $lob, string $data, ?int $length = null): int|false

pg_lo_write() записывает данные в большой объект, начиная с текущей позиции внутреннего указателя.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_lowrite().

Список параметров

lob

An PgSql\Lob instance, returned by pg_lo_open().

data

Данные для записи в большой объект. Если аргумент length задан и меньше размера data, то записаны будут только length байт.

length

Необязательный аргумент. Максимальное количество записываемых байт. Должен быть больше нуля и не превышать размер data. По умолчанию принимается равным размеру data.

Возвращаемые значения

Количество записанных в большой объект байт, либо false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр lob теперь ожидает экземпляр PgSql\Lob; ранее ожидался ресурс (resource).
8.0.0 | length теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_meta_data — Получение метаданных таблицы

Описание

pg_meta_data(PgSql\Connection $connection, string $table_name, bool $extended = false): array|false

pg_meta_data() возвращает определение таблицы table_name в виде массива.

Список параметров

connection

Экземпляр PgSql\Connection.

table_name

Название таблицы.

extended

Флаг, указывающий, что нужно вернуть расширенные мета-данные. По умолчанию false.

Возвращаемые значения

Массив, содержащий определение таблицы или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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)
}
}

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах


Возвращает количество полей в выборке

  • « pg_meta_data
  • pg_num_rows »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает количество полей в выборке

pg_num_fields

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_num_fields — Возвращает количество полей в выборке

Описание

pg_num_fields(PgSql\Result $result): int

pg_num_fields() возвращает количество полей (столбцов) в экземпляре PgSql\Result.

Замечание:

Ранее функция называлась pg_numfields().

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

Возвращаемые значения

Количество полей (столбцов) в выборке. В случае возникновения ошибки возвращает -1.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_num_rows — Возвращает количество строк в выборке

Описание

pg_num_rows(PgSql\Result $result): int

pg_num_rows() возвращает количество строк в экземпляре PgSql\Result.

Замечание:

Ранее функция называлась pg_numrows().

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

Возвращаемые значения

Количество строк в выборке. В случае возникновения ошибки возвращает -1.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_options — Получение параметров соединения с сервером баз данных

Описание

pg_options(?PgSql\Connection $connection = null): string

pg_options() возвращает строку, содержащую параметры соединения PostgreSQL connection.

Список параметров

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

Возвращаемые значения

Строка, содержащая параметры соединения connection.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_parameter_status — Просмотр текущих значений параметров сервера

Описание

pg_parameter_status(PgSql\Connection $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

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

param_name

Допустимые значения аргумента: server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone и integer_datetimes. Обратите внимание, что это значение чувствительно к регистру.

Возвращаемые значения

Значение запрашиваемого параметра в виде строки, либо false, если передан недопустимый параметр.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_pconnect — Открывает постоянное соединение с сервером PostgreSQL

Описание

pg_pconnect(string $connection_string, int $flags = 0): PgSql\Connection|false

pg_pconnect() устанавливает соединение с базой данных PostgreSQL. Возвращает экземпляр PgSql\Connection, необходимый для работы большинства функций PostgreSQL.

При повторном вызове функции pg_pconnect() с теми же значениями параметров в connection_string функция вернёт существующее подключение. Чтобы принудительно создать новое соединение, необходимо передать строку подключения функции PGSQL_CONNECT_FORCE_NEW в качестве параметра flags.

Возможность создавать постоянные подключения регулируется директивой 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.

flags

Если в функцию передана константа PGSQL_CONNECT_FORCE_NEW, будет создаваться новое подключение, даже если connection_string идентична строке существующего подключения.

Возвращаемые значения

Экземпляр PgSql\Connection в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр PgSql\Connection; ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_ping — Проверка соединения с базой данных

Описание

pg_ping(?PgSql\Connection $connection = null): bool

pg_ping() проверяет соединение с базой данных и переподключается, если оно нарушено.

Список параметров

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_port — Возвращает номер порта, соответствующий заданному соединению

Описание

pg_port(?PgSql\Connection $connection = null): string

pg_port() возвращает номер порта, соответствующего заданному соединению PostgreSQL connection.

Список параметров

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

Возвращаемые значения

Строка (string), соответствующая номеру порта, либо пустая строка в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_prepare — Посылает запрос на создание параметризованного SQL выражения и ждёт его завершения

Описание

pg_prepare(PgSql\Connection $connection = ?, string $stmtname, string $query): PgSql\Result|false

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

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

stmtname

Имя создаваемой заготовки. Должно быть уникальным в пределах сессии. Если задана пустая строка, будет создано безымянное SQL выражение. При этом оно перезапишет уже существующее безымянное выражение, определённое ранее.

query

Параметризованный SQL-запрос. Должен содержать только одно выражение (несколько выражений разделённых точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

Возвращаемые значения

Экземпляр PgSql\Result в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр PgSql\Result; ранее возвращался ресурс (resource).
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_put_line — Передаёт на PostgreSQL сервер строку с завершающим нулём

Описание

pg_put_line(PgSql\Connection $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

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

data

Текстовая строка для прямой пересылки на сервер. Завершающий NULL добавляется автоматически.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_query_params — Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса

Описание

pg_query_params(PgSql\Connection $connection = ?, string $query, array $params): PgSql\Result|false

Посылает параметризованный запрос на сервер и ждёт результат. Параметры передаются отдельно от строки запроса.

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

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

query

Параметризованный SQL запрос. Должен содержать только одно выражение (несколько выражений разделённых точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

Пользовательские данные всегда должны передаваться как параметры, и не передаваться в строку запроса напрямую, где они могут привести к возможным атакам через SQL-инъекции и приводит к ошибкам, если данные содержат кавычки. Если по каким-то причинам вы не можете использовать параметр, убедитесь, что пользовательские данные правильно экранированы.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Значения предназначенные для bytea полей нельзя передавать в параметрах. Используйте функцию pg_escape_bytea() или функции для больших объектов.

Возвращаемые значения

Экземпляр PgSql\Result в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр PgSql\Result; ранее возвращался ресурс (resource).
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_query — Выполняет запрос

Описание

pg_query(PgSql\Connection $connection = ?, string $query): PgSql\Result|false

pg_query() выполняет query к указанной в connection базе данных. pg_query_params() должна быть предпочтительнее в большинстве случаев.

В случае возникновения ошибки функция возвращает false, детали ошибки можно получить с помощью функции pg_last_error(), если соединение с БД не нарушено.

Замечание: Несмотря на то, что параметр connection может быть опущен, делать так не рекомендуется, так как это может привести к трудно находимым ошибкам в скриптах.

Замечание:

Ранее данная функция называлась pg_exec(). pg_exec() всё ещё доступна в целях обеспечения совместимости, но лучше использовать новое имя.

Список параметров

connection

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

query

Выражение или выражения SQL для выполнения. Если передано несколько выражений они автоматически выполняются, как одна транзакция если явно не указаны команды BEGIN/COMMIT внутри выражения. Тем не менее, использовать несколько транзакций в одном вызове функции не рекомендуется.

Внимание

Строковое представление пользовательских данных очень опасно и часто приводит к возможности SQL инъекции. В большинстве случаев лучше передавать пользовательские данные параметром в pg_query_params(), а не подставлять их в строку запроса.

Любые данные передаваемые от пользователя непосредственно в строку запроса должны быть хорошо экранированы.

Возвращаемые значения

Экземпляр PgSql\Result в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр PgSql\Result; ранее возвращался ресурс (resource).
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_result_error_field — Возвращает конкретное поле из отчёта об ошибках

Описание

pg_result_error_field(PgSql\Result $result, int $field_code): string|false|null

pg_result_error_field() возвращает одно из полей отчёта об ошибках, связанного с экземпляром result. Функция поддерживается серверами PostgreSQL версий 7.4 и выше. Нужное поле задаётся аргументом field_code.

Функции pg_query() и pg_query_params() в случае ошибок возвращают false вместо ресурса. Чтобы иметь возможность обрабатывать ошибки, пользуйтесь функциями pg_send_query() и pg_get_result().

Для получения дополнительной информации о ходе выполнения отказавшей
функции pg_query() используйте функции
pg_set_error_verbosity() и
pg_last_error() и обрабатывайте результат
их выполнения.

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

field_code

Возможные значения аргумента field_code: 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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_result_error — Возвращает сообщение об ошибке, связанное с запросом результата

Описание

pg_result_error(PgSql\Result $result): string|false

pg_result_error() возвращает сообщение о любой ошибке, связанное с экземпляром result. Таким образом, возможно получить более верное сообщение об ошибке, чем при использовании pg_last_error().

Функция pg_result_error_field() может дать гораздо более подробную информацию об ошибке, чем pg_result_error().

Так как pg_query() возвращает false в случае возникновения ошибки запроса, необходимо использовать pg_send_query() и pg_get_result() для получения дескриптора результата.

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

Возвращаемые значения

Возвращает строку (string). Возвращает пустую строку, если нет ошибки. Если же есть ошибка, не связанная с параметром result, то возвращается false.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_result_seek — Смещает указатель на строку выборки в экземпляре результата запроса

Описание

pg_result_seek(PgSql\Result $result, int $row): bool

pg_result_seek() устанавливает смещение внутреннего указателя в экземпляре result.

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

row

Количество строк, на которое требуется сместить внутренний указатель ресурса PgSql\Result. Строки нумеруются с нуля.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_result_status — Возвращает состояние результата запроса

Описание

pg_result_status(PgSql\Result $result, int $mode = PGSQL_STATUS_LONG): string|int

pg_result_status() возвращает текущее состояние экземпляра PgSql\Result, либо тег завершения сервером работы с с этим ресурсом.

Список параметров

result

Экземпляр PgSql\Result, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (среди прочего).

mode

Принимает одно из двух значений: 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. В противном случае функция вернёт строковое представление состояния результата запроса.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр PgSql\Result; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_select — Выбирает записи из базы данных

Описание

pg_select(
PgSql\Connection $connection,
string $table_name,
array $conditions,
int $flags = PGSQL_DML_EXEC,
int $mode = PGSQL_ASSOC
): array|string|false

pg_select() выбирает записи из базы данных, удовлетворяющие условиям field=>value, заданным в массиве conditions.

Если задан параметр flags, то к массиву conditions будет применена функция pg_convert() с параметрами, заданными в качестве аргумента.

Если задан параметр mode, возвращаемое значение будет в виде массива при PGSQL_NUM, ассоциативного массива при PGSQL_ASSOC (по умолчанию) или и того, и другого при PGSQL_BOTH.

По умолчанию pg_insert() передаёт необработанные значения. Значения должны быть экранированы или опция PGSQL_DML_ESCAPE должна быть указана. PGSQL_DML_ESCAPE заключает в кавычки и экранирует параметры/идентификаторы. Поэтому имена таблиц/столбцов становятся чувствительными к регистру.

Обратите внимание, что ни экранирование, ни подготовленный запрос не защитят запрос LIKE, JSON, массив, регулярные выражения и т.д.. Эти параметры должны обрабатываться в соответствии с их контекстами, т.е. следует экранировать/проверять значения.

Список параметров

connection

Экземпляр PgSql\Connection.

table_name

Название таблицы, из которой выбираются данные.

conditions

Массив (array), ключи которого соответствуют именам колонок таблицы table_name. Будут выбраны только те строки, значения полей которых совпадут со значениями массива.

flags

Одна из констант PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC, PGSQL_DML_STRING или их комбинация. Если flags содержит PGSQL_DML_STRING, функция вернёт строку. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

mode

Одна из констант PGSQL_ASSOC, PGSQL_NUM или PGSQL_BOTH. Если установлено значение PGSQL_ASSOC, возвращаемое значение будет ассоциативным массивом (array), при PGSQL_NUM возвращаемое значение будет массивом (array), а при PGSQL_BOTH возвращаемое значение будет и ассоциативным и числовым индексированным массивом (array).

Возвращаемые значения

Возвращает строку (string), если flags содержит PGSQL_DML_STRING, в противном случае в случае успешного выполнения функция возвращает массив (array) или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
7.1.0 | Добавлен параметр mode.

Примеры

Пример #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";
}
?>

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах


Запускает предварительно подготовленный SQL-запрос и передаёт ему параметры; не ожидает возвращаемого результата

  • « pg_select
  • pg_send_prepare »
  • PHP Manual
  • Функции PostgreSQL
  • Запускает предварительно подготовленный SQL-запрос и передаёт ему параметры; не ожидает возвращаемого результата

pg_send_execute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_send_execute — Запускает предварительно подготовленный SQL-запрос и передаёт ему параметры; не ожидает возвращаемого результата

Описание

pg_send_execute(PgSql\Connection $connection, string $statement_name, array $params): int|bool

Запускает предварительно подготовленный SQL-запрос и передаёт ему параметры; не ожидает возвращаемого результата.

Работает аналогично функции pg_send_query_params(), только вместо строки с запросом принимает имя предварительно подготовленного SQL-запроса. Аргументы функции обрабатываются так же, как и в функции pg_execute(). Как и pg_execute() эта функция не будет работать на соединениях с серверами PostgreSQL версий ниже 7.4.

Список параметров

connection

Экземпляр PgSql\Connection.

statement_name

Имя подготовленного к исполнению запроса. Если передана пустая строка "", будет выполнен безымянный запрос. Имя и содержимое запроса должны быть подготовлены функцией pg_prepare(), pg_send_prepare() либо с помощью SQL-команды PREPARE.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Возвращаемые значения

Возвращает true в случае успешного выполнения, false или 0 в случае возникновения ошибки. Для получения результата запроса используйте функцию pg_get_result().

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_send_prepare — Посылает запрос на создание параметризованного SQL-выражения, не дожидаясь его завершения

Описание

pg_send_prepare(PgSql\Connection $connection, string $statement_name, string $query): int|bool

Посылает запрос на создание параметризованного SQL выражения и не ждёт его завершения.

Это асинхронная версия функции pg_prepare(): она возвращает true, если удалось отправить запрос, false в противном случае. После успешной отправки, воспользуйтесь функцией pg_get_result(), чтобы узнать, создалось ли требуемое SQL выражение. Аргументы функции обрабатываются так же, как в pg_prepare(). Функция не будет работать с серверами PostgreSQL версий ниже 7.4.

Список параметров

connection

Экземпляр PgSql\Connection.

statement_name

Имя создаваемой заготовки. Должно быть уникальным в пределах сессии. Если задана пустая строка, будет создано безымянное SQL выражение. При этом оно перезапишет уже существующее безымянное выражение, определённое ранее.

query

Параметризованный SQL запрос. Должен содержать только одно выражение (несколько выражений разделённых точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

Возвращаемые значения

Возвращает true в случае успешного выполнения, false или 0 в случае возникновения ошибки. Для получения результата запроса используйте функцию pg_get_result().

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_send_query_params — Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата

Описание

pg_send_query_params(PgSql\Connection $connection, string $query, array $params): int|bool

Отправляет параметризованный запрос на выполнение и не ждёт его завершения. Параметры передаются отдельно от текста SQL запроса.

Функция является аналогом pg_send_query() за одним исключением: параметры запроса можно передавать отдельно от строки запроса. Аргументы функции обрабатываются так же, как и в pg_query_params(). pg_send_query() поддерживается на соединениях с серверами PostgreSQL версий 7.4 и выше. Функция не будет работать с серверами ранних версий. Также она поддерживает только одну SQL-команду в выражении.

Список параметров

connection

Экземпляр PgSql\Connection.

query

Параметризованный SQL запрос. Должен содержать только одно выражение (несколько выражений разделённых точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Возвращаемые значения

Возвращает true в случае успешного выполнения, false или 0 в случае возникновения ошибки. Для получения результата запроса используйте функцию pg_get_result().

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_send_query — Отправляет асинхронный запрос

Описание

pg_send_query(PgSql\Connection $connection, string $query): int|bool

pg_send_query() отправляет на выполнение асинхронный запрос. В отличие от pg_query() запрос может содержать несколько SQL-выражений, разделённых точкой с запятой. Для получения результата запроса используйте функцию pg_get_result().

Выполнение запроса не прерывает работу скрипта. Для определения занятости соединения (когда запрос ещё выполняется) используйте функцию pg_connection_busy(). Выполнение запроса можно прервать функцией pg_cancel_query().

Несмотря на то, что можно отправить несколько запросов за раз, их нельзя посылать, пока соединение занято. В противном случае, посланный запрос дождётся завершения предыдущего, сотрёт его результат и запустится сам. Таким образом вы потеряете данные результата предыдущего запроса.

Список параметров

connection

Экземпляр PgSql\Connection.

query

Одно или несколько SQL-выражений, разделённых точкой с запятой.

Спецсимволы в строке запроса должны быть экранированы.

Возвращаемые значения

Возвращает true в случае успешного выполнения, false или 0 в случае возникновения ошибки. Для получения результата запроса используйте функцию pg_get_result().

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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_context_visibility »
  • PHP Manual
  • Функции PostgreSQL
  • Устанавливает клиентскую кодировку

pg_set_client_encoding

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pg_set_client_encoding — Устанавливает клиентскую кодировку

Описание

pg_set_client_encoding(PgSql\Connection $connection = ?, string $encoding): int

pg_set_client_encoding() устанавливает клиентскую кодировку и возвращает 0 в случае успешного выполнения, -1 в случае возникновения ошибки.

PostgreSQL автоматически конвертирует данные из кодировки базы данных в кодировку клиентского приложения.

Замечание:

Прежнее название функции: pg_setclientencoding().

Список параметров

connection

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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() - Получение кодировки клиента.


Determines the visibility of the context's error messages returned by pg_last_error and pg_result_error

  • « pg_set_client_encoding
  • pg_set_error_verbosity »
  • PHP Manual
  • Функции PostgreSQL
  • Determines the visibility of the context's error messages returned by pg_last_error and pg_result_error

pg_set_error_context_visibility

(PHP 8 >= 8.3.0)

pg_set_error_context_visibility — Determines the visibility of the context's error messages returned by pg_last_error() and pg_result_error()

Описание

pg_set_error_context_visibility(PgSql\Connection $connection, int $visibility): int

Determines the visibility of the context's error messages returned by pg_last_error() and pg_result_error()

Список параметров

connection

Экземпляр PgSql\Connection.

visibility

The required visibility: PGSQL_SHOW_CONTEXT_NEVER, PGSQL_SHOW_CONTEXT_ERRORS or PGSQL_SHOW_CONTEXT_ALWAYS.

Возвращаемые значения

The previous visibility level: PGSQL_SHOW_CONTEXT_NEVER, PGSQL_SHOW_CONTEXT_ERRORS or PGSQL_SHOW_CONTEXT_ALWAYS.

Примеры

Пример #1 pg_set_error_context_visibility() example

<?php
$dbconn = pg_connect("dbname=publisher") or die("Could not connect");

if (!pg_connection_busy($dbconn)) {
pg_send_query($dbconn, "select * from doesnotexist;");
}

pg_set_error_context_visibility($dbconn, PGSQL_SHOW_CONTEXT_ALWAYS);
$res1 = pg_get_result($dbconn);
echo pg_result_error($res1);
?>

Смотрите также

  • pg_last_error() - Получает сообщение о последней произошедшей ошибке на соединении с базой данных
  • pg_result_error() - Возвращает сообщение об ошибке, связанное с запросом результата


Определяет объем текста сообщений, возвращаемых функциями pg_last_error и pg_result_error

  • « pg_set_error_context_visibility
  • pg_socket »
  • PHP Manual
  • Функции PostgreSQL
  • Определяет объем текста сообщений, возвращаемых функциями pg_last_error и pg_result_error

pg_set_error_verbosity

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_set_error_verbosity — Определяет объем текста сообщений, возвращаемых функциями pg_last_error() и pg_result_error()

Описание

pg_set_error_verbosity(PgSql\Connection $connection = ?, int $verbosity): int

Определяет объем текста сообщений, возвращаемых функциями pg_last_error() и pg_result_error().

pg_set_error_verbosity() устанавливает режим, отвечающий за полноту сообщений об ошибках. В режиме PGSQL_ERRORS_TERSE сообщения будут содержать только важность ошибки, основной текст и место возникновения; эта информация обычно умещается в одну строку. В режиме по умолчанию PGSQL_ERRORS_DEFAULT в сообщения будут добавлены детали ошибки, подсказка или поля контекста (это может занять несколько строк). В режиме PGSQL_ERRORS_VERBOSE сообщения будут содержать все возможные поля. Изменение режима не затронет сообщения уже существующих ресурсов. Новый режим будет применяться только к вновь создаваемым.

Список параметров

connection

Экземпляр PgSql\Connection. Если connection не указано, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

verbosity

Требуемый режим: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT или PGSQL_ERRORS_VERBOSE.

Возвращаемые значения

Предыдущий режим действовавший до запуска функции: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT или PGSQL_ERRORS_VERBOSE.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_socket — Получить дескриптор только для чтения на сокет, лежащего в основе соединения PostgreSQL

Описание

pg_socket(PgSql\Connection $connection): resource|false

pg_socket() возвращает ресурс (resource) только для чтения, соответствующий сокету, лежащему в основе данного соединения PostgreSQL.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Экземпляр PgSql\Connection.

Возвращаемые значения

Ресурс сокета в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).


Включает трассировку подключения PostgreSQL

  • « pg_socket
  • pg_transaction_status »
  • PHP Manual
  • Функции PostgreSQL
  • Включает трассировку подключения PostgreSQL

pg_trace

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

pg_trace — Включает трассировку подключения PostgreSQL

Описание

pg_trace(
string $filename,
string $mode = "w",
?PgSql\Connection $connection = null,
int $trace_mode = 0
): bool

pg_trace() включает трассировку соединения с PostgreSQL сервером во внешний файл. Чтобы понимать содержимое таких файлов, необходимо хорошо разбираться во внутреннем устройстве клиент-серверного взаимодействия.

Для тех, кто не обладает подобными навыками, трассировка всё же может оказаться полезной для поиска ошибок при отправке запросов на сервер. Например, можно выполнить команду grep '^To backend' trace.log и посмотреть, какие запросы реально отправлены на сервер. Дополнительную информацию можно почерпнуть из » документации PostgreSQL.

Список параметров

filename

Полный путь и имя файла для записи журнала трассировки. Аналогично fopen().

mode

Необязательный аргумент. Режим доступа к файлу. Аналогично fopen().

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

trace_mode

Необязательный режим трассировки со следующими константами: PGSQL_TRACE_SUPPRESS_TIMESTAMPS и PGSQL_TRACE_REGRESS_MODE.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.3.0 | Добавлен параметр trace_mode.
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_transaction_status — Возвращает текущее состояние транзакции на сервере

Описание

pg_transaction_status(PgSql\Connection $connection): int

Возвращает текущее состояние транзакции на сервере.

Предостережение

pg_transaction_status() выдаёт некорректный результат при работе с сервером PostgreSQL 7.3, на котором выключена опция autocommit. Автоматическое завершение транзакций на стороне сервера устарело и не используется в более поздних версиях.

Список параметров

connection

Экземпляр PgSql\Connection.

Возвращаемые значения

Список возможных состояний: PGSQL_TRANSACTION_IDLE (сервер бездействует), PGSQL_TRANSACTION_ACTIVE (выполняется запрос), PGSQL_TRANSACTION_INTRANS (сервер бездействует, работа в режиме транзакции), или PGSQL_TRANSACTION_INERROR (сервер бездействует, транзакция потерпела неудачу). PGSQL_TRANSACTION_UNKNOWN - ошибка подключения. PGSQL_TRANSACTION_ACTIVE возвращается только когда запрос уже отправлен на сервер, но ещё не обработан.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

pg_tty — Возвращает имя терминала TTY, связанное с соединением

Описание

pg_tty(?PgSql\Connection $connection = null): string

pg_tty() возвращает имя терминала, связанного с экземпляром connection, на который выводится отладочная информация.

Замечание:

pg_tty() устарела, но оставлена для обратной совместимости.

Список параметров

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

Возвращаемые значения

Имя TTY для подключения connection в виде строки (string).

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_unescape_bytea — Убирает экранирование двоичных данных типа bytea

Описание

pg_unescape_bytea(string $string): 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, чтобы её избежать.

Список параметров

string

Строка (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);
?>

Смотрите также

  • 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, PHP 8)

pg_untrace — Отключает трассировку соединения с PostgreSQL

Описание

pg_untrace(?PgSql\Connection $connection = null): true

Останавливает трассировку, запущенную функцией pg_trace().

Список параметров

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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, PHP 8)

pg_update — Обновление данных в таблице

Описание

pg_update(
PgSql\Connection $connection,
string $table_name,
array $values,
array $conditions,
int $flags = PGSQL_DML_EXEC
): string|bool

pg_update() заменяет записи в таблице, удовлетворяющие условиям conditions данными values.

Если flags указан, pg_convert() применяется к values с указанными флагами.

По умолчанию pg_update() передаёт необработанные значения. Значения должны быть экранированы или опция PGSQL_DML_ESCAPE должна быть указана. PGSQL_DML_ESCAPE заключает в кавычки и экранирует параметры/идентификаторы. Поэтому имена таблиц/столбцов становятся чувствительными к регистру.

Обратите внимание, что ни экранирование, ни подготовленный запрос не защитят запрос LIKE, JSON, массив, регулярные выражения и т.д.. Эти параметры должны обрабатываться в соответствии с их контекстами, т.е. следует экранировать/проверять значения.

Список параметров

connection

Экземпляр PgSql\Connection.

table_name

Имя таблицы, в которой обновляются записи.

values

Массив (array), ключи которого соответствуют именам колонок таблицы table_name, а значения заменят данные в этих колонках.

condition

Массив (array), ключи которого соответствуют именам колонок таблицы table_name. Будут обновлены только те строки, значения полей которых совпадут со значениями массива.

flags

Одна из констант PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC или PGSQL_DML_STRING, либо их комбинация. Если flags содержит PGSQL_DML_STRING, функция вернёт строку. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Функция вернёт строку (string), если константа PGSQL_DML_STRING содержится в flags.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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";
}
?>

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL-запросах


Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)

  • « pg_update
  • PgSql\Connection »
  • PHP Manual
  • Функции PostgreSQL
  • Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)

pg_version

(PHP 5, PHP 7, PHP 8)

pg_version — Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)

Описание

pg_version(?PgSql\Connection $connection = null): array

pg_version() возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера. Версии протокола и сервера доступны, только если модуль PHP скомпилирован для PostgreSQL версии 7.4 или выше.

Для получения детальной информации о сервере используйте функцию pg_parameter_status().

Список параметров

connection

Экземпляр PgSql\Connection. Если параметр connection указан null, используется соединение по умолчанию. Соединение по умолчанию — это последнее соединение, выполненное с помощью функций pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0, использование соединения по умолчанию устарело.

Возвращаемые значения

Возвращает массив с ключами client, protocol и server и соответствующими значениями версий.

Список изменений

Версия | Описание
8.1.0 | Параметр connection теперь ожидает экземпляр PgSql\Connection; ранее ожидался ресурс (resource).
8.0.0 | connection теперь допускает значение null.

Примеры

Пример #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() - Просмотр текущих значений параметров сервера


Класс PgSql\Connection

(PHP 8 >= 8.1.0)

Введение

Полностью непрозрачный класс, заменяющий ресурс pgsql link в PHP 8.1.0.

Обзор классов

final class PgSql\Connection {
}


Класс PgSql\Result

(PHP 8 >= 8.1.0)

Введение

Полностью непрозрачный класс, заменяющий ресурс pgsql result в PHP 8.1.0.

Обзор классов

final class PgSql\Result {
}


Класс PgSql\Lob

(PHP 8 >= 8.1.0)

Введение

Полностью непрозрачный класс, заменяющий ресурс pgsql large object в PHP 8.1.0.

Обзор классов

final class PgSql\Lob {
}


SQLite3

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • SQLite3 — Класс SQLite3
    • SQLite3::backup — Резервное копирование одной базы данных в другую
    • 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::setAuthorizer — Устанавливает callback-функцию, которая будет использоваться в качестве авторизатора для ограничения действий выражения
    • SQLite3::version — Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую
  • SQLite3Stmt — Класс SQLite3Stmt
    • SQLite3Stmt::bindParam — Связывает параметр с переменной подготовленного запроса
    • SQLite3Stmt::bindValue — Связывает значение параметра с переменной подготовленного запроса
    • SQLite3Stmt::clear — Удаляет все текущие привязанные параметры
    • SQLite3Stmt::close — Закрывает подготовленный запрос
    • SQLite3Stmt::__construct — Конструктор класса SQLite3Stmt
    • SQLite3Stmt::execute — Выполняет подготовленный запрос и возвращает объект с результирующим набором
    • SQLite3Stmt::getSQL — Получить SQL-запрос в виде строки из запроса
    • SQLite3Stmt::paramCount — Возвращает количество параметров в подготовленном запросе
    • SQLite3Stmt::readOnly — Проверяет, является ли подготовленный запрос только для чтения
    • SQLite3Stmt::reset — Сбрасывает подготовленный запрос
  • SQLite3Result — Класс SQLite3Result
    • SQLite3Result::columnName — >Возвращает имя n-ого столбца
    • SQLite3Result::columnType — Возвращает тип n-ного столбца
    • SQLite3Result::__construct — Конструктор класса SQLite3Result
    • SQLite3Result::fetchArray — Выбирает одну строку из результирующего набора и помещает её в ассоциативный или нумерованный массив, или в оба сразу
    • SQLite3Result::finalize — Закрывает результирующий набор
    • SQLite3Result::numColumns — Возвращает количество столбцов в результирующем наборе
    • SQLite3Result::reset — Сбрасывает указатель результирующего набора на первую строку


  • « SQLite3
  • Установка и настройка »
  • PHP Manual
  • SQLite3
  • Введение

Введение

Обеспечение поддержки баз данных SQLite версии 3.


Требования

Начиная с PHP 7.4.0 требуется библиотека » libsqlite версии 3.7.4 или новее. Ранее встроенный из коробки libsqlite мог использовался вместо этого.


Установка

Модуль SQLite3 доступен по умолчанию. Модуль можно отключить помощью --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.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки SQLite3
Имя | По умолчанию | Место изменения | Список изменений
sqlite3.extension_dir | "" | PHP_INI_SYSTEM |
sqlite3.defensive | 1 | PHP_INI_USER | Доступно, начиная с PHP 7.2.17 и 7.3.4 для libsqlite ? 3.26.0. До PHP 8.2.0 этот параметр можно было изменить только как PHP_INI_SYSTEM.

Краткое разъяснение конфигурационных директив.

sqlite3.extension_dir string

Путь к каталогу, в котором находятся файлы модуля SQLite.

sqlite3.defensive bool

Если установлен флаг defensive, языковые конструкции, которые позволяют обычному SQL-запросу преднамеренно повреждать файл базы данных, отключены. Запрещается запись непосредственно в схему, в теневые таблицы (т.е. таблицы данных FTS) или виртуальную таблицу sqlite_dbpage. Эта настройка php.ini работает только с libsqlite ? 3.26.0.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

SQLITE3_ASSOC (int)
Указывает на то, что Sqlite3Result::fetchArray() метод должен вернуть массив, индексированный по имени столбца в соответствующий набор результатов.
SQLITE3_NUM (int)
Указывает на то, что Sqlite3Result::fetchArray() метод должен вернуть массив, индексированный по номеру столбца в соответствующий набор результатов, начиная со столбца 0.
SQLITE3_BOTH (int)
Указывает на то, что Sqlite3Result::fetchArray() метод должен вернуть массив, индексированный по имени столбца и его номеру в соответствующий набор результатов, начиная со столбца 0.
SQLITE3_INTEGER (int)
Представляет класс хранения типа SQLite3 INTEGER.
SQLITE3_FLOAT (int)
Представляет класс хранения типа SQLite3 REAL (FLOAT).
SQLITE3_TEXT (int)
Представляет класс хранения типа SQLite3 TEXT.
SQLITE3_BLOB (int)
Представляет класс хранения типа SQLite3 BLOB.
SQLITE3_NULL (int)
Представляет класс хранения типа SQLite3 NULL.
SQLITE3_OPEN_READONLY (int)
Указывает на то, что база данных SQLite3 доступна только для чтения.
SQLITE3_OPEN_READWRITE (int)
Указывает на то, что база данных SQLite3 доступна как для чтения, так и для записи.
SQLITE3_OPEN_CREATE (int)
Указывает на то, что файл базы данных SQLite3 будет создан в том случае, если он ещё не существует.
SQLITE3_DETERMINISTIC (int)
Указывает, что функция созданная SQLite3::sqliteCreateFunction() детерминирована. Т.е. она всегда возвращает одинаковый результат для для одинаковых входных данных в одном выражении SQL. (Доступно с PHP 7.1.4.)


Класс SQLite3

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Класс, предоставляющий доступ к API SQLite 3 базе данных.

Обзор классов

class SQLite3 {
/* Константы */
public const int OK;
public const int DENY;
public const int IGNORE;
public const int CREATE_INDEX;
public const int CREATE_TABLE;
public const int CREATE_TEMP_INDEX;
public const int CREATE_TEMP_TABLE;
public const int CREATE_TEMP_TRIGGER;
public const int CREATE_TEMP_VIEW;
public const int CREATE_TRIGGER;
public const int CREATE_VIEW;
public const int DELETE;
public const int DROP_INDEX;
public const int DROP_TABLE;
public const int DROP_TEMP_INDEX;
public const int DROP_TEMP_TABLE;
public const int DROP_TEMP_TRIGGER;
public const int DROP_TEMP_VIEW;
public const int DROP_TRIGGER;
public const int DROP_VIEW;
public const int INSERT;
public const int PRAGMA;
public const int READ;
public const int SELECT;
public const int TRANSACTION;
public const int UPDATE;
public const int ATTACH;
public const int DETACH;
public const int ALTER_TABLE;
public const int REINDEX;
public const int ANALYZE;
public const int CREATE_VTABLE;
public const int DROP_VTABLE;
public const int FUNCTION;
public const int SAVEPOINT;
public const int COPY;
public const int RECURSIVE;
/* Методы */
public __construct(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = "")
public backup(SQLite3 $destination, string $sourceDatabase = "main", string $destinationDatabase = "main"): bool
public busyTimeout(int $milliseconds): bool
public changes(): int
public close(): bool
public createAggregate(
string $name,
callable $stepCallback,
callable $finalCallback,
int $argCount = -1
): bool
public createCollation(string $name, callable $callback): bool
public createFunction(
string $name,
callable $callback,
int $argCount = -1,
int $flags = 0
): bool
public enableExceptions(bool $enable = false): bool
public static escapeString(string $string): string
public exec(string $query): bool
public lastErrorCode(): int
public lastErrorMsg(): string
public lastInsertRowID(): int
public loadExtension(string $name): bool
public open(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = ""): void
public openBlob(
string $table,
string $column,
int $rowid,
string $database = "main",
int $flags = SQLITE3_OPEN_READONLY
): resource|false
public prepare(string $query): SQLite3Stmt|false
public query(string $query): SQLite3Result|false
public querySingle(string $query, bool $entireRow = false): mixed
public setAuthorizer(?callable $callback): bool
public static version(): array
}

Предопределённые константы

SQLite3::OK

SQLite3::DENY

SQLite3::IGNORE

SQLite3::CREATE_INDEX

SQLite3::CREATE_TABLE

SQLite3::CREATE_TEMP_INDEX

SQLite3::CREATE_TEMP_TABLE

SQLite3::CREATE_TEMP_TRIGGER

SQLite3::CREATE_TEMP_VIEW

SQLite3::CREATE_TRIGGER

SQLite3::CREATE_VIEW

SQLite3::DELETE

SQLite3::DROP_INDEX

SQLite3::DROP_TABLE

SQLite3::DROP_TEMP_INDEX

SQLite3::DROP_TEMP_TABLE

SQLite3::DROP_TEMP_TRIGGER

SQLite3::DROP_TEMP_VIEW

SQLite3::DROP_TRIGGER

SQLite3::DROP_VIEW

SQLite3::INSERT

SQLite3::PRAGMA

SQLite3::READ

SQLite3::SELECT

SQLite3::TRANSACTION

SQLite3::UPDATE

SQLite3::ATTACH

SQLite3::DETACH

SQLite3::ALTER_TABLE

SQLite3::REINDEX

SQLite3::ANALYZE

SQLite3::CREATE_VTABLE

SQLite3::DROP_VTABLE

SQLite3::FUNCTION

SQLite3::SAVEPOINT

SQLite3::COPY

SQLite3::RECURSIVE

Содержание

  • SQLite3::backup — Резервное копирование одной базы данных в другую
  • 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::setAuthorizer — Устанавливает callback-функцию, которая будет использоваться в качестве авторизатора для ограничения действий выражения
  • SQLite3::version — Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую


Резервное копирование одной базы данных в другую

  • « SQLite3
  • SQLite3::busyTimeout »
  • PHP Manual
  • SQLite3
  • Резервное копирование одной базы данных в другую

SQLite3::backup

(PHP 7 >= 7.4.0, PHP 8)

SQLite3::backup — Резервное копирование одной базы данных в другую

Описание

public SQLite3::backup(SQLite3 $destination, string $sourceDatabase = "main", string $destinationDatabase = "main"): bool

SQLite3::backup() копирует содержимое одной базы в другую, перезаписывая содержимое целевой базы. Это полезно как для создания резервных копий, так и для копирования in-memory баз в файл или из файла.

Подсказка

Начиная с SQLite 3.27.0 (07.02.2019), также можно использовать конструкцию VACUUM INTO 'file.db'; для резервного копирования базы данных в новый файл.

Список параметров

destination

Соединение с базой, открытое с помощью SQLite3::open().

sourceDatabase

Имя базы данных. Для главной базы "main", для временной "temp", или имя, заданное после ключевого слова AS в выражении ATTACH для присоединённых баз.

destinationDatabase

Аналогично sourceDatabase но для destinationDatabase.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Создание резервной копии существующей базы

<?php
// $conn is a connection to an already opened sqlite3 database

$backup = new SQLite3('backup.sqlite');
$conn->backup($backup);
?>


Установить обработчик "занято" на соединение

  • « SQLite3::backup
  • SQLite3::changes »
  • PHP Manual
  • SQLite3
  • Установить обработчик "занято" на соединение

SQLite3::busyTimeout

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

SQLite3::busyTimeout — Установить обработчик "занято" на соединение

Описание

public SQLite3::busyTimeout(int $milliseconds): bool

Устанавливает обработчик, который будет спать до тех пор, пока БД не заблокируется либо пока не истечёт время ожидания.

Список параметров

milliseconds

Миллисекунды. Установка равным 0 или отрицательному значению приведёт к отключению уже установленного обработчика.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Получить количество строк, которые были изменены/удалены/вставлены последним запросом

  • « SQLite3::busyTimeout
  • SQLite3::close »
  • PHP Manual
  • SQLite3
  • Получить количество строк, которые были изменены/удалены/вставлены последним запросом

SQLite3::changes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::changes — Получить количество строк, которые были изменены/удалены/вставлены последним запросом

Описание

public SQLite3::changes(): int

Возвращает количество строк, которые были изменены/удалены/вставлены последним SQL-запросом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество строк (int), которые были изменены/удалены/вставлены последним 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, PHP 8)

SQLite3::close — Закрыть соединение с базой данных

Описание

public SQLite3::close(): 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, PHP 8)

SQLite3::__construct — Создаёт экземпляр объекта SQLite3 и открывает соединение с базой

Описание

public SQLite3::__construct(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = "")

Создаёт экземпляр объекта SQLite3 и открывает соединение с базой. Если включено шифрование, то появляется возможность использования ключа.

Список параметров

filename

Путь к SQLite базе или :memory:, для использования базы в оперативной памяти. Если filename задать как пустую строку, то будет создана приватная, временная база данных на диске. Эта база данных будет удалена сразу после закрытия соединения с ней.

flags

Необязательные флаги, для определения типа открытия базы данных. По умолчанию, используется SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY: Открыть только для чтения.

  • SQLITE3_OPEN_READWRITE: Открыть для чтения и записи.

  • SQLITE3_OPEN_CREATE: Создать новый файл базы данных, если он отсутствует

encryptionKey

Необязательный ключ для шифрования/расшифровки базы данных. Если модуль шифрования не установлен, то данный параметр будет проигнорирован.

Ошибки

Выбрасывает исключение Exception в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.10 | Параметр filename можно задавать пустой строкой для создания на диске приватной, временной базы данных.

Примеры

Пример #1 Пример использования SQLite3::__construct()

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (bar TEXT)');
$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, PHP 8)

SQLite3::createAggregate — Зарегистрировать функцию PHP в качестве агрегирующей функции SQL

Описание

public SQLite3::createAggregate(
string $name,
callable $stepCallback,
callable $finalCallback,
int $argCount = -1
): bool

Регистрирует функцию PHP или пользовательскую функцию в качестве агрегирующей функции SQL для использования в запросах.

Список параметров

name

Имя агрегирующей функции SQL, которая должна быть создана или переопределена.

stepCallback

Функция обратного вызова, которая будет вызвана для каждой строки результирующего набора. Ваша PHP-функция должна аккумулировать результат и хранить его в контексте агрегации.

Эта функция должна быть определена следующим образом:

step(
mixed $context,
int $rownumber,
mixed $value,
mixed ...$values
): mixed
context

Для первой строки должно равняться null; Для всех последующих строк его значение должно быть равно значению, возвращённому на предыдущем шаге; вы должны использовать его для сохранения состояния агрегации.

rownumber

Номер текущей строки.

value

Первый аргумент переданный агрегатору.

values

Последующие аргументы.

Возвращаемое значение функции будет использовано как параметр context при следующем запуске функции, либо как значение передаваемое финализирующей функции.

finalCallback

Функция обратного вызова для вычисление итогового агрегированного значения. Она будет вызвана как только все строки результирующего набора будут обработаны, ей будет передан агрегирующий контекст и она вернёт финальное значение. Данная функция должна вернуть значение типа понятного SQLite (т.е. скалярный тип).

Эта функция должна быть определена следующим образом:

fini(mixed $context, int $rownumber): mixed
context

Содержит результат самого последнего вызова агрегирующей функции.

rownumber

Всегда 0.

Возвращаемое значение этой функции будет использовано как возвращаемое значение всего агрегатора.

argCount

Количество аргументов, которое принимает функция агрегирования 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, PHP 8)

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, PHP 8)

SQLite3::createFunction — Регистрирует функцию PHP для использования в качестве скалярной функции SQL

Описание

public SQLite3::createFunction(
string $name,
callable $callback,
int $argCount = -1,
int $flags = 0
): bool

Регистрирует функцию PHP или пользовательскую функцию для использования в качестве скалярной функции SQL для использования в SQL-выражениях.

Список параметров

name

Имя создаваемой или переопределяемой функции SQL.

callback

Имя функции PHP или пользовательской функции, применяемой в качестве callback, определяющей поведение функции SQL.

Функция должна быть определена как:

callback(mixed $value, mixed ...$values): mixed
value

Первый аргумент, передаваемый функции SQL.

values

Дополнительные аргументы, передаваемые функции SQL.

argCount

Число аргументов, принимаемых функцией 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, PHP 8)

SQLite3::enableExceptions — Включить выброс исключений

Описание

public SQLite3::enableExceptions(bool $enable = 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, PHP 8)

SQLite3::escapeString — Возвращает правильно экранированную строку

Описание

public static SQLite3::escapeString(string $string): string

Возвращает правильно экранированную сроку для безопасного включения в SQL-инструкцию.

Внимание

Эта функция (пока) небезопасна для обработки данных в двоичной форме!

Для обработки полей типа BLOB, которые могут содержать символ NUL, вместо этой функции используйте SQLite3Stmt::bindParam().

Список параметров

string

Строка для обработки

Возвращаемые значения

Возвращает правильно экранированную сроку, которая может быть безопасно использована в SQL-инструкции.

Примечания

Внимание

addslashes() НЕ должен использоваться для экранирования ваших строк в запросах SQLite; это будет приводить к неожиданным результатам при извлечении ваших данных.


Выполняет запрос без результата к текущей базе данных

  • « SQLite3::escapeString
  • SQLite3::lastErrorCode »
  • PHP Manual
  • SQLite3
  • Выполняет запрос без результата к текущей базе данных

SQLite3::exec

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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 TEXT)');
?>


Возвращает числовой код результата последнего неудачного запроса SQLite

  • « SQLite3::exec
  • SQLite3::lastErrorMsg »
  • PHP Manual
  • SQLite3
  • Возвращает числовой код результата последнего неудачного запроса SQLite

SQLite3::lastErrorCode

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::lastErrorCode — Возвращает числовой код результата последнего неудачного запроса SQLite

Описание

public SQLite3::lastErrorCode(): int

Возвращает числовой код результата последнего неудачного запроса SQLite.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение, представляющее числовой код результата последнего неудачного запроса SQLite.


Возвращает текст на английском, описывающий последний неудачный запрос SQLite

  • « SQLite3::lastErrorCode
  • SQLite3::lastInsertRowID »
  • PHP Manual
  • SQLite3
  • Возвращает текст на английском, описывающий последний неудачный запрос SQLite

SQLite3::lastErrorMsg

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::lastErrorMsg — Возвращает текст на английском, описывающий последний неудачный запрос SQLite

Описание

public SQLite3::lastErrorMsg(): string

Возвращает текст на английском, описывающий последний неудачный запрос SQLite.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку на английском, описывающую самый последний неудачный запрос SQLite.


Возвращает идентификатор строки последней вставки (INSERT) в базу данных

  • « SQLite3::lastErrorMsg
  • SQLite3::loadExtension »
  • PHP Manual
  • SQLite3
  • Возвращает идентификатор строки последней вставки (INSERT) в базу данных

SQLite3::lastInsertRowID

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::lastInsertRowID — Возвращает идентификатор строки последней вставки (INSERT) в базу данных

Описание

public SQLite3::lastInsertRowID(): int

Возвращает идентификатор строки последней вставки (INSERT) в базу данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор строки последней вставки (INSERT) в базу данных. Если при этом соединении с базой данных никогда не происходило успешных операций INSERT в таблицы rowid, то SQLite3::lastInsertRowID() возвращает 0.


Попытаться загрузить библиотеку модуля SQLite

  • « SQLite3::lastInsertRowID
  • SQLite3::open »
  • PHP Manual
  • SQLite3
  • Попытаться загрузить библиотеку модуля SQLite

SQLite3::loadExtension

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::loadExtension — Попытаться загрузить библиотеку модуля SQLite

Описание

public SQLite3::loadExtension(string $name): bool

Попытаться загрузить библиотеку модуля SQLite.

Список параметров

name

Имя загружаемой библиотеки. Библиотека должна находиться в каталоге, указанном в конфигурационной опции 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, PHP 8)

SQLite3::open — Открыть базу данных SQLite

Описание

public SQLite3::open(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = ""): void

Открывает базу данных SQLite 3. Если сборка включает шифрование, то она будет пробовать использовать ключ.

Список параметров

filename

Путь к БД SQLite или :memory: для использования БД в памяти.

flags

Опциональные флаги используемые для определения, как открывать БД. По умолчанию SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY: Открыть БД только для чтения.

  • SQLITE3_OPEN_READWRITE: Открыть БД для чтения и записи.

  • SQLITE3_OPEN_CREATE: Создать БД, если её нет.

encryptionKey

Опциональный ключ, для использования шифрования при работе с БД. Если модуль шифрования не установлен, то данная опция не будет использована.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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, PHP 8)

SQLite3::openBlob — Открывает ресурс потока для чтения BLOB

Описание

public SQLite3::openBlob(
string $table,
string $column,
int $rowid,
string $database = "main",
int $flags = SQLITE3_OPEN_READONLY
): resource|false

Открывает ресурс потока для чтения или записи BLOB, который будет выбран:

SELECT column FROM database.table WHERE rowid = rowid

Замечание: Невозможно изменить размер BLOB путём записи в поток. Вместо этого необходимо выполнить запрос UPDATE, возможно, используя SQLite-функцию zeroblob(), чтобы задать желаемый размер BLOB.

Список параметров

table

Название таблицы.

column

Название столбца.

rowid

Идентификатор строки.

database

Символическое название базы данных

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, PHP 8)

SQLite3::prepare — Подготавливает SQL-запрос для выполнения

Описание

public SQLite3::prepare(string $query): SQLite3Stmt|false

Подготавливает 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, PHP 8)

SQLite3::query — Выполняет SQL-запрос

Описание

public SQLite3::query(string $query): SQLite3Result|false

Выполняет 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::setAuthorizer »
  • PHP Manual
  • SQLite3
  • Выполняет запрос и возвращает одиночный результат

SQLite3::querySingle

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::querySingle — Выполняет запрос и возвращает одиночный результат

Описание

public SQLite3::querySingle(string $query, bool $entireRow = false): mixed

Выполняет запрос и возвращает одиночный результат.

Список параметров

query

SQL запрос для выполнения.

entireRow

По умолчанию, функция querySingle() возвращает значение первого столбца, возвращаемого запросом. Если параметр entireRow является true, то запрос возвращает массив всего первого ряда.

Возвращаемые значения

Возвращает значение первого столбца результатов или массив всей первой строки (если параметр entireRow является true).

Если запрос корректный, но результат пуст, то вернётся null, если параметр entireRow является 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
)


Устанавливает callback-функцию, которая будет использоваться в качестве авторизатора для ограничения действий выражения

  • « SQLite3::querySingle
  • SQLite3::version »
  • PHP Manual
  • SQLite3
  • Устанавливает callback-функцию, которая будет использоваться в качестве авторизатора для ограничения действий выражения

SQLite3::setAuthorizer

(PHP 8)

SQLite3::setAuthorizer — Устанавливает callback-функцию, которая будет использоваться в качестве авторизатора для ограничения действий выражения

Описание

public SQLite3::setAuthorizer(?callable $callback): bool

Устанавливает callback-функцию, которая будет вызываться SQLite каждый раз при выполнении действия (чтение, удаление, модификация и т.д.). Это используется при подготовке SQL-выражения из ненадёжного источника, чтобы гарантировать, что SQL-выражения не будут пытаться получить доступ к данным, которые им не разрешено видеть, или чтобы они не пытались выполнить вредоносные выражения, которые повреждают базу данных. Например, приложение может позволить пользователю вводить произвольные SQL-запросы для выполнения в базе данных. Но приложение не хочет, чтобы пользователь мог вносить произвольные изменения в базу данных. Тогда можно установить авторизатор, который запрещает использование любых выражений, кроме SELECT, пока готовится введённый пользователем SQL-запрос.

Callback-авторизатор может бывать вызван несколько раз для каждого выражения, подготовленного SQLite. Запросы SELECT или UPDATE будут вызывать авторизатор для каждой считываемой или модифицируемой колонки.

При вызове авторизатора может использоваться до пяти параметров. Первый параметр передаётся всегда, его тип - целое число (int) (код действия), совпадающий с константой SQLite3. Другие параметры передаются только для некоторых действий. Данная таблица описывает второй и третий параметры в соответствии с действием:

Список кодов действия и параметров
Действие | Второй параметр | Третий параметр
SQLite3::CREATE_INDEX | Имя индекса | Имя таблицы
SQLite3::CREATE_TABLE | Имя таблицы | null
SQLite3::CREATE_TEMP_INDEX | Имя индекса | Имя таблицы
SQLite3::CREATE_TEMP_TABLE | Имя таблицы | null
SQLite3::CREATE_TEMP_TRIGGER | Имя триггера | Имя таблицы
SQLite3::CREATE_TEMP_VIEW | Имя представления | null
SQLite3::CREATE_TRIGGER | Имя триггера | Имя таблицы
SQLite3::CREATE_VIEW | Имя представления | null
SQLite3::DELETE | Имя таблицы | null
SQLite3::DROP_INDEX | Имя индекса | Имя таблицы
SQLite3::DROP_TABLE | Имя таблицы | null
SQLite3::DROP_TEMP_INDEX | Имя индекса | Имя таблицы
SQLite3::DROP_TEMP_TABLE | Имя таблицы | null
SQLite3::DROP_TEMP_TRIGGER | Имя триггера | Имя таблицы
SQLite3::DROP_TEMP_VIEW | Имя представления | null
SQLite3::DROP_TRIGGER | Имя триггера | Имя таблицы
SQLite3::DROP_VIEW | Имя представления | null
SQLite3::INSERT | Имя таблицы | null
SQLite3::PRAGMA | Имя pragma | Первый аргумент, переданный pragma, или null
SQLite3::READ | Имя таблицы | Имя колонки
SQLite3::SELECT | null | null
SQLite3::TRANSACTION | Операция | null
SQLite3::UPDATE | Имя таблицы | Имя колонки
SQLite3::ATTACH | Имя файла | null
SQLite3::DETACH | Имя базы данных | null
SQLite3::ALTER_TABLE | Имя базы данных | Имя таблицы
SQLite3::REINDEX | Имя индекса | null
SQLite3::ANALYZE | Имя таблицы | null
SQLite3::CREATE_VTABLE | Имя таблицы | Имя модуля
SQLite3::DROP_VTABLE | Имя таблицы | Имя модуля
SQLite3::FUNCTION | null | Имя функции
SQLite3::SAVEPOINT | Операция | Имя точки сохранения
SQLite3::RECURSIVE | null | null

Четвёртым параметром будет имя базы данных ("main", "temp" и т.д.), если необходимо.

Пятый параметр callback-авторизатора - имя самого внутреннего триггера или представления, ответственного за попытку получения доступа, или null, если эта попытка получения доступа произведена напрямую из кода SQL верхнего уровня.

Когда callback-функция возвращает SQLite3::OK, это значит, что запрошенная операция принята. Когда callback-функция возвращает SQLite3::DENY, вызов, запустивший авторизатор, потерпит неудачу с сообщением об ошибке, объясняющим, что доступ запрещён.

Если код действия - SQLite3::READ, и callback-функция возвращает SQLite3::IGNORE, то подготовленное выражение составляется для замены на null значения колонки таблицы, которое бы считывалось, если бы вернулся код SQLite3::OK. Возврат SQLite3::IGNORE может использоваться, чтобы запретить недоверенному пользователю доступ к отдельным колонкам таблицы.

Когда на таблицу ссылаются через SELECT, но из неё не извлекается ни одного значения колонок, (например, в запросе "SELECT count(*) FROM table"), то callback-авторизатор SQLite3::READ вызывается один раз для этой таблицы с именем колонки, которое равно пустой строке.

Если код действия - SQLite3::DELETE, и callback-функция возвращает SQLite3::IGNORE, тогда операция DELETE продолжает свою работу, но с выключенной оптимизацией удаления, и все строки удаляются по отдельности.

В соединении с базой данных одновременно может использоваться только один авторизатор. Каждый вызов SQLite3::setAuthorizer() перезаписывает предыдущий. Отключить авторизатор можно, передав null вместо callback-функции. По умолчанию авторизатор выключен.

Callback-авторизатор не должен делать ничего, что изменяет подключение к базе данных, которое вызвало callback-авторизатор.

Заметьте, что авторизатор вызывается только тогда, когда выражение подготавливается, а не тогда, когда оно исполняется.

Более подробную информацию можно найти в » Документации SQLite3.

Список параметров

callback

Функция callable для вызова.

Если передан null, то текущий callback-авторизатор будет отключён.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Этот метод не вызывает никаких ошибок, но если авторизатор включён и возвращает некорректное значение, то при подготовке выражения будет вызвана ошибка (или выброшено исключение, в зависимости от использования метода SQLite3::enableExceptions()).

Примеры

Пример #1 Пример использования SQLite3::setAuthorizer()

В данном примере разрешён доступ только для чтения, и только некоторые из колонок таблицы users будут возвращены. Остальные колонки будут заменены на null.

<?php
$db = new SQLite3('data.sqlite');
$db->exec('CREATE TABLE users (id, name, password);');
$db->exec('INSERT INTO users VALUES (1, \'Pauline\', \'Snails4eva\');');

$allowed_columns = ['id', 'name'];

$db->setAuthorizer(function (int $action, ...$args) use ($allowed_columns) {
if ($action === SQLite3::READ) {
list($table, $column) = $args;

if ($table === 'users' && in_array($column, $allowed_columns) {
return SQLite3::OK;
}

return SQLite3::IGNORE;
}

return SQLite3::DENY;
});

print_r($db->querySingle('SELECT * FROM users WHERE id = 1;'));

Результат выполнения данного примера:

Array
(
    [id] => 1
    [name] => Pauline
    [password] =>
)


Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую

  • « SQLite3::setAuthorizer
  • SQLite3Stmt »
  • PHP Manual
  • SQLite3
  • Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую

SQLite3::version

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::version — Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую

Описание

public static SQLite3::version(): 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, PHP 8)

Введение

Класс, предоставляющий доступ к подготовленным запросам в модуле SQLite 3.

Обзор классов

class SQLite3Stmt {
/* Методы */
private __construct(SQLite3 $sqlite3, string $query)
public bindParam(string|int $param, mixed &$var, int $type = SQLITE3_TEXT): bool
public bindValue(string|int $param, mixed $value, int $type = SQLITE3_TEXT): bool
public clear(): bool
public close(): bool
public execute(): SQLite3Result|false
public getSQL(bool $expand = false): string|false
public paramCount(): int
public readOnly(): bool
public reset(): bool
}

Содержание

  • SQLite3Stmt::bindParam — Связывает параметр с переменной подготовленного запроса
  • SQLite3Stmt::bindValue — Связывает значение параметра с переменной подготовленного запроса
  • SQLite3Stmt::clear — Удаляет все текущие привязанные параметры
  • SQLite3Stmt::close — Закрывает подготовленный запрос
  • SQLite3Stmt::__construct — Конструктор класса SQLite3Stmt
  • 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, PHP 8)

SQLite3Stmt::bindParam — Связывает параметр с переменной подготовленного запроса

Описание

public SQLite3Stmt::bindParam(string|int $param, mixed &$var, int $type = SQLITE3_TEXT): bool

Связывает параметр с переменной подготовленного запроса.

Предостережение

До PHP 7.2.14 и 7.3.0, SQLite3Stmt::reset() должен вызываться до первого вызова SQLite3Stmt::execute(), если надо, чтобы связанное значение корректно обновлялось при последующих вызовах SQLite3Stmt::execute(). Если метод SQLite3Stmt::reset() не вызывался, то связанное значение не будет изменяться, даже если значение, присвоенное переменной, переданной SQLite3Stmt::bindParam(), изменилось или снова был вызван метод SQLite3Stmt::bindParam().

Список параметров

param

Либо строка (string) (для именованных параметров), либо целое число (int) (для положительных параметров), идентифицирующая переменную подготовленного запроса, к которому должно быть привязано значение. Если именованный параметр не начинается с двоеточия ((:)) или знака @, автоматически добавляется двоеточие (:). Положительные параметры начинаются с 1.

var

Параметр для привязки к переменной подготовленного запроса.

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 опущен, то он автоматически определяется из типа var: bool и int рассматриваются как SQLITE3_INTEGER, float как SQLITE3_FLOAT, null как SQLITE3_NULL и все остальные как SQLITE3_TEXT. Раньше, если тип опущен, то по умолчанию использовался SQLITE3_TEXT.

Замечание:

Если var равен null, он всегда обрабатывается как SQLITE3_NULL, независимо от заданного type.

Возвращаемые значения

Возвращает true, если параметр привязан к переменной подготовленного запроса, false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.4.0 | Параметр 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, PHP 8)

SQLite3Stmt::bindValue — Связывает значение параметра с переменной подготовленного запроса

Описание

public SQLite3Stmt::bindValue(string|int $param, mixed $value, int $type = SQLITE3_TEXT): bool

Связывает значение параметра с переменной подготовленного запроса.

Предостережение

До PHP 7.2.14 и 7.3.0, если выполнен запрос, необходимо вызвать метод SQLite3Stmt::reset() для того, чтобы можно было поменять значения связанных параметров.

Список параметров

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: bool и int рассматриваются как SQLITE3_INTEGER, float как SQLITE3_FLOAT, null как SQLITE3_NULL и всех остальных как SQLITE3_TEXT. Раньше, если тип опущен, он по умолчанию использовался SQLITE3_TEXT.

Замечание:

Если param равен null, он всегда обрабатывается как SQLITE3_NULL, независимо от заданного type.

Возвращаемые значения

Возвращает true, если параметр привязан к переменной подготовленного запроса или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.4.0 | Параметр 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, PHP 8)

SQLite3Stmt::clear — Удаляет все текущие привязанные параметры

Описание

public SQLite3Stmt::clear(): bool

Удаляет все текущие привязанные параметры (устанавливает их на значение null).

Предостережение

Метод необходимо использовать с SQLite3Stmt::reset(). Если используется один, любой вызов SQLite3Stmt::bindValue() или SQLite3Stmt::bindParam() не будет иметь никакого эффекта, и все привязанные параметры будут иметь значение null.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешной очистки привязанных параметров и false в случае возникновения ошибки.


Закрывает подготовленный запрос

  • « SQLite3Stmt::clear
  • SQLite3Stmt::__construct »
  • PHP Manual
  • SQLite3Stmt
  • Закрывает подготовленный запрос

SQLite3Stmt::close

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::close — Закрывает подготовленный запрос

Описание

public SQLite3Stmt::close(): bool

Закрывает подготовленный запрос.

Замечание: Обратите внимание, что все объекты SQLite3Result, полученные при выполнении этого подготовленного запроса будут признаны недействительными при закрытии этого запроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true


Конструктор класса SQLite3Stmt

  • « SQLite3Stmt::close
  • SQLite3Stmt::execute »
  • PHP Manual
  • SQLite3Stmt
  • Конструктор класса SQLite3Stmt

SQLite3Stmt::__construct

(Информация о версии неизвестна, возможно, только в Git)

SQLite3Stmt::__construct — Конструктор класса SQLite3Stmt

Описание

private SQLite3Stmt::__construct(SQLite3 $sqlite3, string $query)

Экземпляры SQLite3Stmt создаются с помощью SQLite3::prepare().

Список параметров

sqlite3

query


Выполняет подготовленный запрос и возвращает объект с результирующим набором

  • « SQLite3Stmt::__construct
  • SQLite3Stmt::getSQL »
  • PHP Manual
  • SQLite3Stmt
  • Выполняет подготовленный запрос и возвращает объект с результирующим набором

SQLite3Stmt::execute

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::execute — Выполняет подготовленный запрос и возвращает объект с результирующим набором

Описание

public SQLite3Stmt::execute(): SQLite3Result|false

Выполняет подготовленный запрос и возвращает объект с результирующим набором.

Предостережение

Объекты результирующего набора, полученные при вызове этого метода для одного и того же объекта подготовленного запроса, не являются независимыми, а используют одну и ту же базовую структуру. Поэтому рекомендуется вызвать 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, PHP 8)

SQLite3Stmt::getSQL — Получить SQL-запрос в виде строки из запроса

Описание

public SQLite3Stmt::getSQL(bool $expand = false): string|false

Возвращает строковое представление SQL-запроса для подготовленного запроса. Если параметр expand задан как false, будет возвращён не модифицированный SQL. Если же expand задан как true, все подставляемые параметры запроса будут заменены на конкретные значения, либо на NULL, если значения ещё не были привязаны.

Список параметров

expand

Заменять ли в возвращаемом SQL-запросе параметры на конкретные значения. true поддерживается только с libsqlite 3.14.

Возвращаемые значения

Возвращает SQL-запрос из подготовленного запроса или false в случае возникновения ошибки.

Ошибки

Если expand задан как 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, PHP 8)

SQLite3Stmt::paramCount — Возвращает количество параметров в подготовленном запросе

Описание

public SQLite3Stmt::paramCount(): int

Возвращает количество параметров в подготовленном запросе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество параметров в подготовленном запросе.

Смотрите также

  • SQLite3::prepare() - Подготавливает SQL-запрос для выполнения


Проверяет, является ли подготовленный запрос только для чтения

  • « SQLite3Stmt::paramCount
  • SQLite3Stmt::reset »
  • PHP Manual
  • SQLite3Stmt
  • Проверяет, является ли подготовленный запрос только для чтения

SQLite3Stmt::readOnly

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

SQLite3Stmt::readOnly — Проверяет, является ли подготовленный запрос только для чтения

Описание

public SQLite3Stmt::readOnly(): bool

Возвращает, является ли подготовленный запрос определённо только для чтения. Запрос считается только для чтения, если он не вносит непосредственных изменений в содержимое файла базы данных. Обратите внимание, что пользовательские SQL-функции могут косвенно изменять базу данных в качестве побочного эффекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если запрос только для чтения, false в противном случае.


Сбрасывает подготовленный запрос

  • « SQLite3Stmt::readOnly
  • SQLite3Result »
  • PHP Manual
  • SQLite3Stmt
  • Сбрасывает подготовленный запрос

SQLite3Stmt::reset

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::reset — Сбрасывает подготовленный запрос

Описание

public SQLite3Stmt::reset(): bool

Сбрасывает подготовленный запрос в состояние до его выполнения. После сброса все привязки остаются неизменными.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае, если подготовленный запрос был успешно сброшен или false в случае возникновения ошибки.


Класс SQLite3Result

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Класс, предоставляющий доступ к результирующему набору модуля SQLite 3.

Обзор классов

class SQLite3Result {
/* Методы */
private __construct()
public columnName(int $column): string|false
public columnType(int $column): int|false
public fetchArray(int $mode = SQLITE3_BOTH): array|false
public finalize(): bool
public numColumns(): int
public reset(): bool
}

Содержание

  • SQLite3Result::columnName — >Возвращает имя n-ого столбца
  • SQLite3Result::columnType — Возвращает тип n-ного столбца
  • SQLite3Result::__construct — Конструктор класса SQLite3Result
  • 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, PHP 8)

SQLite3Result::columnName — >Возвращает имя n-ого столбца

Описание

public SQLite3Result::columnName(int $column): string|false

Возвращает имя столбца, указанного в column_number. Обратите внимание, что имя столбца результата — это значение предложения AS для этого столбца, если есть предложение AS. Если предложение AS отсутствует, тогда имя столбца не указано и может измениться с одного выпуска libsqlite3 на другой.

Список параметров

column

Номер столбца, начиная с нуля.

Возвращаемые значения

Возвращает имя (string) столбца, указанного в column.


Возвращает тип n-ного столбца

  • « SQLite3Result::columnName
  • SQLite3Result::__construct »
  • PHP Manual
  • SQLite3Result
  • Возвращает тип n-ного столбца

SQLite3Result::columnType

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::columnType — Возвращает тип n-ного столбца

Описание

public SQLite3Result::columnType(int $column): int|false

Возвращает тип столбца, указанного в column.

Список параметров

column

Номер столбца, начиная с нуля.

Возвращаемые значения

Возвращает тип столбца, указанного в column. Возвращает значение SQLITE3_INTEGER, SQLITE3_FLOAT, SQLITE3_TEXT, SQLITE3_BLOB, SQLITE3_NULL) или false, если столбец не существует.


Конструктор класса SQLite3Result

  • « SQLite3Result::columnType
  • SQLite3Result::fetchArray »
  • PHP Manual
  • SQLite3Result
  • Конструктор класса SQLite3Result

SQLite3Result::__construct

(Информация о версии неизвестна, возможно, только в Git)

SQLite3Result::__construct — Конструктор класса SQLite3Result

Описание

private SQLite3Result::__construct()

Экземпляры SQLite3Result создаются с помощью SQLite3::query() и SQLite3Stmt::execute().

Список параметров

У этой функции нет параметров.


Выбирает одну строку из результирующего набора и помещает её в ассоциативный или нумерованный массив, или в оба сразу

  • « SQLite3Result::__construct
  • SQLite3Result::finalize »
  • PHP Manual
  • SQLite3Result
  • Выбирает одну строку из результирующего набора и помещает её в ассоциативный или нумерованный массив, или в оба сразу

SQLite3Result::fetchArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::fetchArray — Выбирает одну строку из результирующего набора и помещает её в ассоциативный или нумерованный массив, или в оба сразу

Описание

public SQLite3Result::fetchArray(int $mode = SQLITE3_BOTH): array|false

Выбирает одну строку из результирующего набора и помещает её в ассоциативный или нумерованный массив, или в оба сразу. По умолчанию создаёт массивы обоих видов.

Список параметров

mode

Этот необязательный параметр принимает значение константы, которая указывает на тип массива, в который требуется поместить данные. Возможные значения параметра: SQLITE3_ASSOC, SQLITE3_NUM или SQLITE3_BOTH.

  • SQLITE3_ASSOC: возвращает ассоциативный массив, в котором индекс соответствует имени столбца в результирующем наборе.

  • SQLITE3_NUM: возвращает индексированный массив, в котором индекс соответствует номеру столбца в результирующем наборе, начиная с 0.

  • SQLITE3_BOTH: возвращает индексированный массив, в котором индекс соответствует имени и номеру столбца в результирующем наборе, начиная с 0.

Возвращаемые значения

Возвращает стоку из результирующего набора в виде ассоциированного или нумерованного массива, или обоих. Если строк больше нет, возвращает false.

Типы значений возвращаемого массива преобразуются из типов SQLite3 по следующим правилам: целые числа преобразуются в int если помещаются в диапазон 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, PHP 8)

SQLite3Result::finalize — Закрывает результирующий набор

Описание

public SQLite3Result::finalize(): bool

Закрывает результирующий набор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true.


Возвращает количество столбцов в результирующем наборе

  • « SQLite3Result::finalize
  • SQLite3Result::reset »
  • PHP Manual
  • SQLite3Result
  • Возвращает количество столбцов в результирующем наборе

SQLite3Result::numColumns

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::numColumns — Возвращает количество столбцов в результирующем наборе

Описание

public SQLite3Result::numColumns(): int

Возвращает количество столбцов в результирующем наборе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество столбцов в результирующем наборе.


Сбрасывает указатель результирующего набора на первую строку

  • « SQLite3Result::numColumns
  • SQLSRV »
  • PHP Manual
  • SQLite3Result
  • Сбрасывает указатель результирующего набора на первую строку

SQLite3Result::reset

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::reset — Сбрасывает указатель результирующего набора на первую строку

Описание

public SQLite3Result::reset(): bool

Сбрасывает указатель результирующего набора на первую строку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если результирующий набор успешно сброшен на первую строку, или false в случае возникновения ошибки.


Драйвер СУБД Microsoft SQL Server для PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции SQLSRV
    • sqlsrv_begin_transaction — Начинает транзакцию базы данных
    • sqlsrv_cancel — Отменяет оператор
    • sqlsrv_client_info — Возвращает информацию о клиенте и указанном подключении
    • sqlsrv_close — Закрывает открытое соединение и освобождает ресурсы, связанные с этим соединением
    • sqlsrv_commit — Фиксирует транзакцию, начатую с помощью sqlsrv_begin_transaction
    • sqlsrv_configure — Изменяет конфигурацию обработки ошибок драйвера и ведения журнала
    • sqlsrv_connect — Открывает соединение с базой данных Microsoft SQL Server
    • sqlsrv_errors — Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV
    • sqlsrv_execute — Выполняет запрос, подготовленный с помощью sqlsrv_prepare
    • sqlsrv_fetch_array — Возвращает строку как массив
    • sqlsrv_fetch_object — Получает следующую строку данных в наборе результатов как объект
    • sqlsrv_fetch — Делает следующую строку в наборе результатов доступной для чтения
    • sqlsrv_field_metadata — Получает метаданные для полей оператора, подготовленного с помощью sqlsrv_prepare или sqlsrv_query
    • sqlsrv_free_stmt — Освобождает все ресурсы для указанного оператора
    • sqlsrv_get_config — Возвращает значение указанного параметра конфигурации
    • sqlsrv_get_field — Получает данные поля из текущей выбранной строки
    • sqlsrv_has_rows — Указывает, есть ли у указанного оператора строки
    • sqlsrv_next_result — Делает активным следующий результат указанного оператора
    • sqlsrv_num_fields — Извлекает количество полей (столбцов) оператора
    • sqlsrv_num_rows — Получает количество строк в наборе результатов
    • sqlsrv_prepare — Подготавливает запрос к исполнению
    • sqlsrv_query — Подготавливает и выполняет запрос
    • sqlsrv_rollback — Откатывает транзакцию, начатую sqlsrv_begin_transaction
    • sqlsrv_rows_affected — Возвращает количество строк, изменённых последним выполненным запросом INSERT, UPDATE или DELETE
    • sqlsrv_send_stream_data — Отправляет данные из потоков параметров на сервер
    • sqlsrv_server_info — Возвращает информацию о сервере


Введение

Модуль SQLSRV позволяет подключиться к базам данных Microsoft SQL Server или SQL Azure. Релиз драйвера версии 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.

Наиболее часто используемая версия драйвера доступна здесь: » Загрузка SQLSRV.

За подробностями о системных требованиях обратитесь к разделу » Системные требования SQLSRV.


Установка

Модуль SQLSRV включается добавлением соответствующего файла DLL в директорию модулей вашей установленной копии PHP и соответствующей записи в файл php.ini. Загружаемая копия модуля PDO_SQLSRV включает в себя восемь файлов драйверов, четыре из них для поддержки PDO.

Наиболее часто используемая версия драйвера доступны здесь: » Загрузка SQLSRV.

За подробностями о системных требованиях обратитесь к разделу » Системные требования SQLSRV.

Начиная с версии 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 (int)
Переданный в качестве параметра, заставляет функцию sqlsrv_fetch_array() возвращать ассоциативный массив.
SQLSRV_FETCH_NUMERIC (int)
Переданный в качестве параметра, заставляет функцию sqlsrv_fetch_array() возвращать массив с числовыми ключами.
SQLSRV_FETCH_BOTH (int)
Переданный в качестве параметра, заставляет функцию sqlsrv_fetch_array() возвращать массив с ключами и числовыми и ассоциативными (поведение по умолчанию).
SQLSRV_ERR_ALL (int)
Переданный в качестве параметра, заставляет функцию sqlsrv_errors() возвращать и ошибки и предупреждения (поведение по умолчанию).
SQLSRV_ERR_ERRORS (int)
Переданный в качестве параметра, заставляет функцию sqlsrv_errors() возвращать только ошибки (без предупреждений).
SQLSRV_ERR_WARNINGS (int)
Переданный в качестве параметра, заставляет функцию sqlsrv_errors() возвращать только предупреждения (без ошибок).
SQLSRV_LOG_SYSTEM_ALL (int)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование всех подсистем.
SQLSRV_LOG_SYSTEM_CONN (int)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование активности соединения.
SQLSRV_LOG_SYSTEM_INIT (int)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование активности инициализации.
SQLSRV_LOG_SYSTEM_OFF (int)
Переданный в качестве параметра функции sqlsrv_configure(), отключает журналирование всех подсистем.
SQLSRV_LOG_SYSTEM_STMT (int)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование активности выполнения выражений (statement activity).
SQLSRV_LOG_SYSTEM_UTIL (int)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование активности функций ошибок.
SQLSRV_LOG_SEVERITY_ALL (int)
Переданный в качестве параметра функции sqlsrv_configure(), определяет, что ошибки, предупреждения и замечания будут журналироваться.
SQLSRV_LOG_SEVERITY_ERROR (int)
Переданный в качестве параметра функции sqlsrv_configure(), определяет, что ошибки будут журналироваться.
SQLSRV_LOG_SEVERITY_NOTICE (int)
Переданный в качестве параметра функции sqlsrv_configure(), определяет, что замечания будут журналироваться.
SQLSRV_LOG_SEVERITY_WARNING (int)
Переданный в качестве параметра функции sqlsrv_configure(), определяет, что предупреждения будут журналироваться.
SQLSRV_NULLABLE_YES (int)
Показывает, что значение столбца может быть NULL.
SQLSRV_NULLABLE_NO (int)
Показывает, что значение столбца не может быть NULL.
SQLSRV_NULLABLE_UNKNOWN (int)
Показывает, что неизвестно, может ли значение столбца быть NULL.
SQLSRV_PARAM_IN (int)
При передаче в качестве параметра в функции sqlsrv_query() или sqlsrv_prepare() показывает, что параметр является входным.
SQLSRV_PARAM_INOUT (int)
При передаче в качестве параметра в функции sqlsrv_query() или sqlsrv_prepare() показывает, что параметр является и входным и выходным.
SQLSRV_PARAM_OUT (int)
При передаче в качестве параметра в функции sqlsrv_query() или sqlsrv_prepare() показывает, что параметр является выходным.
SQLSRV_PHPTYPE_INT (int)
Определяет целочисленный тип данных PHP (integer). За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_PHPTYPE_DATETIME (int)
Определяет временной тип данных PHP (datetime). За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_PHPTYPE_FLOAT (int)
Определяет тип данных PHP с плавающей точкой (float). За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_PHPTYPE_STREAM (int)
Определяет поток данных PHP (stream). Данная константа работает как функция и принимает константы кодировок. Смотрите константы вида SQLSRV_ENC_*. За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_PHPTYPE_STRING (int)
Определяет строковый тип данных PHP (string). Данная константа работает как функция и принимает константы кодировок. Смотрите константы вида SQLSRV_ENC_*. За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_ENC_BINARY (int)
Определяет, что данные от сервера возвращаются в виде потока байтов без выполнения кодирования или преобразования. За информацией об использовании обратитесь к разделу » Определение типов PHP.
SQLSRV_ENC_CHAR (int)
Данные возвращаются в формате восьмибитных символов как определено кодовой странице локали Windows, установленной в системе. Любые мультибайтовые символы или символы, не преобразуемые в данную кодовую страницу, заменяются однобайтовым символом вопроса (?). Данная кодировка является кодировкой по умолчанию. За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
UTF-8 (int)
Определяет, что данные возвращаются в кодировке UTF-8. За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_SQLTYPE_BIGINT (int)
Описывает SQL-тип BIGINT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_BINARY (int)
Описывает SQL-тип BINARY. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_BIT (int)
Описывает SQL-тип BIT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_CHAR (int)
Описывает SQL-тип CHAR. Эта константа работает как функция и принимает один параметр, задающий количество символов. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DATE (int)
Описывает SQL-тип DATE. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DATETIME (int)
Описывает SQL-тип DATETIME. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DATETIME2 (int)
Описывает SQL-тип DATETIME2. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DATETIMEOFFSET (int)
Описывает SQL-тип DATETIMEOFFSET. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DECIMAL (int)
Описывает SQL-тип DECIMAL. Эта константа работает как функция и принимает два параметра, задающий точность и разрядность. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_FLOAT (int)
Описывает SQL-тип FLOAT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_IMAGE (int)
Описывает SQL-тип IMAGE. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_INT (int)
Описывает SQL-тип INT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_MONEY (int)
Описывает SQL-тип MONEY. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_NCHAR (int)
Описывает SQL-тип NCHAR. Эта константа работает как функция и принимает один параметр, задающий количество символов. За информацией об использовании обратитесь к разделу документации » Определение типов SQL.
SQLSRV_SQLTYPE_NUMERIC (int)
Описывает SQL-тип NUMERIC. Эта константа работает как функция и принимает два параметра, задающий точность и разрядность. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_NVARCHAR (int)
Описывает SQL-тип NVARCHAR. Эта константа работает как функция и принимает один параметр, задающий количество символов. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_NVARCHAR('max') (int)
Описывает SQL-тип NVARCHAR(MAX). За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_NTEXT (int)
Описывает SQL-тип NTEXT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_REAL (int)
Описывает SQL-тип REAL. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_SMALLDATETIME (int)
Описывает SQL-тип SMALLDATETIME. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_SMALLINT (int)
Описывает SQL-тип SMALLINT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_SMALLMONEY (int)
Описывает SQL-тип SMALLMONEY. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_TEXT (int)
Описывает SQL-тип TEXT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_TIME (int)
Описывает SQL-тип TIME. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_TIMESTAMP (int)
Описывает SQL-тип TIMESTAMP. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_TINYINT (int)
Описывает SQL-тип TINYINT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_UNIQUEIDENTIFIER (int)
Описывает SQL-тип UNIQUEIDENTIFIER. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_UDT (int)
Описывает SQL-тип UDT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_VARBINARY (int)
Описывает SQL-тип VARBINARY. Эта константа работает как функция и принимает один параметр, задающий количество байт. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_VARBINARY('max') (int)
Описывает SQL-тип VARBINARY(MAX). За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_VARCHAR (int)
Описывает SQL-тип VARCHAR. Эта константа работает как функция и принимает один параметр, задающий количество символов. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_VARCHAR('max') (int)
Описывает SQL-тип VARCHAR(MAX). За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_XML (int)
Описывает SQL-тип XML. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_TXN_READ_UNCOMMITTED (int)
Задаёт уровень изоляции транзакции равным READ UNCOMMITTED. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_TXN_READ_COMMITTED (int)
Задаёт уровень изоляции транзакции равным READ COMMITTED. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_TXN_REPEATABLE_READ (int)
Задаёт уровень изоляции транзакции равным REPEATABLE READ. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_TXN_SNAPSHOT (int)
Задаёт уровень изоляции транзакции равным SNAPSHOT. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_TXN_READ_SERIALIZABLE (int)
Задаёт уровень изоляции транзакции равным SERIALIZABLE. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_CURSOR_FORWARD (int)
Задаёт тип курсора как forward-only. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_CURSOR_STATIC (int)
Задаёт тип курсора как static. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_DYNAMIC (int)
Задаёт тип курсора как dynamic. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_CURSOR_KEYSET (int)
Задаёт тип курсора как keyset. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_CURSOR_BUFFERED (int)
Создаёт запрос с курсором на стороне клиента. Позволяет получать строки в любом порядке. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_SCROLL_NEXT (int)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_PRIOR (int)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_FIRST (int)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_LAST (int)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_ABSOLUTE (int)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_RELATIVE (int)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.


Функции SQLSRV

Содержание

  • sqlsrv_begin_transaction — Начинает транзакцию базы данных
  • sqlsrv_cancel — Отменяет оператор
  • sqlsrv_client_info — Возвращает информацию о клиенте и указанном подключении
  • sqlsrv_close — Закрывает открытое соединение и освобождает ресурсы, связанные с этим соединением
  • sqlsrv_commit — Фиксирует транзакцию, начатую с помощью sqlsrv_begin_transaction
  • sqlsrv_configure — Изменяет конфигурацию обработки ошибок драйвера и ведения журнала
  • sqlsrv_connect — Открывает соединение с базой данных Microsoft SQL Server
  • sqlsrv_errors — Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV
  • sqlsrv_execute — Выполняет запрос, подготовленный с помощью sqlsrv_prepare
  • sqlsrv_fetch_array — Возвращает строку как массив
  • sqlsrv_fetch_object — Получает следующую строку данных в наборе результатов как объект
  • sqlsrv_fetch — Делает следующую строку в наборе результатов доступной для чтения
  • sqlsrv_field_metadata — Получает метаданные для полей оператора, подготовленного с помощью sqlsrv_prepare или sqlsrv_query
  • sqlsrv_free_stmt — Освобождает все ресурсы для указанного оператора
  • sqlsrv_get_config — Возвращает значение указанного параметра конфигурации
  • sqlsrv_get_field — Получает данные поля из текущей выбранной строки
  • sqlsrv_has_rows — Указывает, есть ли у указанного оператора строки
  • sqlsrv_next_result — Делает активным следующий результат указанного оператора
  • sqlsrv_num_fields — Извлекает количество полей (столбцов) оператора
  • sqlsrv_num_rows — Получает количество строк в наборе результатов
  • sqlsrv_prepare — Подготавливает запрос к исполнению
  • sqlsrv_query — Подготавливает и выполняет запрос
  • sqlsrv_rollback — Откатывает транзакцию, начатую sqlsrv_begin_transaction
  • sqlsrv_rows_affected — Возвращает количество строк, изменённых последним выполненным запросом INSERT, UPDATE или DELETE
  • sqlsrv_send_stream_data — Отправляет данные из потоков параметров на сервер
  • sqlsrv_server_info — Возвращает информацию о сервере


Начинает транзакцию базы данных

  • « Функции SQLSRV
  • sqlsrv_cancel »
  • PHP Manual
  • Функции SQLSRV
  • Начинает транзакцию базы данных

sqlsrv_begin_transaction

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_begin_transaction — Начинает транзакцию базы данных

Описание

sqlsrv_begin_transaction(resource $conn): bool

Транзакция, начатая с помощью sqlsrv_begin_transaction(), включает все операторы, которые были выполнены после вызова sqlsrv_begin_transaction() и до вызовов sqlsrv_rollback() или sqlsrv_commit(). Явные транзакции должны запускаться и фиксироваться или откатываться с использованием этих функций вместо выполнения операторов SQL, которые запускают и фиксируют/откатывают транзакции. Для получения дополнительной информации смотрите » Транзакции SQLSRV.

Список параметров

conn

Ресурс подключения, возвращаемый вызовом sqlsrv_connect().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sqlsrv_begin_transaction()

В следующем примере показано, как использоватьsqlsrv_begin_transaction() вместе с sqlsrv_commit() и 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 ));
}

/* Начало транзакции. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
die( print_r( sqlsrv_errors(), true ));
}

/* Инициализация значений параметров. */
$orderId = 1; $qty = 10; $productId = 100;

/* Настройка и выполнение первого запроса. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Настройка и выполнение второго запроса. */
$sql2 = "UPDATE InventoryTable
SET Quantity = (Quantity - ?)
WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* Если оба запроса были успешными, зафиксируйте транзакцию. */
/* В противном случае откатите транзакцию. */
if( $stmt1 && $stmt2 ) {
sqlsrv_commit( $conn );
echo "Транзакция зафиксирована.<br />";
} else {
sqlsrv_rollback( $conn );
echo "Транзация откачена.<br />";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • sqlsrv_commit() - Фиксирует транзакцию, начатую с помощью sqlsrv_begin_transaction
  • sqlsrv_rollback() - Откатывает транзакцию, начатую sqlsrv_begin_transaction


Отменяет оператор

  • « sqlsrv_begin_transaction
  • sqlsrv_client_info »
  • PHP Manual
  • Функции SQLSRV
  • Отменяет оператор

sqlsrv_cancel

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_cancel — Отменяет оператор

Описание

sqlsrv_cancel(resource $stmt): bool

Отменяет оператор. Все неиспользованные результаты, связанные с оператором, удаляются. После вызова sqlsrv_cancel() указанный оператор может быть выполнен повторно, если он был создан с помощью sqlsrv_prepare(). Вызов sqlsrv_cancel() не требуется, если все результаты, связанные с оператором, были использованы.

Список параметров

stmt

Ресурс оператора, который нужно отменить.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sqlsrv_cancel()

<?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 продаж составили первый $$salesTotal выручки.<br />";

// Отменить ожидающие результаты. Оператор можно использовать повторно.
sqlsrv_cancel( $stmt);
?>

Примечания

Основное различие между sqlsrv_free_stmt() и sqlsrv_cancel() заключается в том, что ресурс оператора, отменённый с помощью sqlsrv_cancel(), может быть повторно выполнен, если он был создан с помощью sqlsrv_prepare(). Ресурс оператора, отменённый с помощью sqlsrv_free_statement(), не может быть повторно выполнен.

Смотрите также

  • sqlsrv_free_stmt() - Освобождает все ресурсы для указанного оператора
  • sqlsrv_prepare() - Подготавливает запрос к исполнению


Возвращает информацию о клиенте и указанном подключении

  • « sqlsrv_cancel
  • sqlsrv_close »
  • PHP Manual
  • Функции SQLSRV
  • Возвращает информацию о клиенте и указанном подключении

sqlsrv_client_info

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_client_info — Возвращает информацию о клиенте и указанном подключении

Описание

sqlsrv_client_info(resource $conn): array

Возвращает информацию о клиенте и указанном подключении.

Список параметров

conn

Соединение, о котором возвращается информация.

Возвращаемые значения

Возвращает ассоциативный массив с ключами, описанными в таблице ниже. В противном случае возвращает false.

Массив, возвращаемый sqlsrv_client_info
Ключ | Описание
DriverDllName | SQLNCLI10.DLL
DriverODBCVer | Версия ODBC (xx.yy)
DriverVer | Версия SQL Server Native Client DLL (10.5.xxx)
ExtensionVer | Версия php_sqlsrv.dll (2.0.xxx.x)

Примеры

Пример #1 Пример использования sqlsrv_client_info()

<?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 "Ошибка при получении информации о клиенте.<br />";
}
?>

Смотрите также

  • sqlsrv_server_info() - Возвращает информацию о сервере


Закрывает открытое соединение и освобождает ресурсы, связанные с этим соединением

  • « sqlsrv_client_info
  • sqlsrv_commit »
  • PHP Manual
  • Функции SQLSRV
  • Закрывает открытое соединение и освобождает ресурсы, связанные с этим соединением

sqlsrv_close

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_close — Закрывает открытое соединение и освобождает ресурсы, связанные с этим соединением

Описание

sqlsrv_close(resource $conn): bool

Закрывает открытое соединение и освобождает ресурсы, связанные с этим соединением.

Список параметров

conn

Соединение, которое необходимо закрыть.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sqlsrv_close()

<?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));
}

//-------------------------------------
// Выполнение операций с базой данных.
//-------------------------------------

// Закрытие соединения.
sqlsrv_close( $conn );
?>

Смотрите также

  • sqlsrv_connect() - Открывает соединение с базой данных Microsoft SQL Server


Фиксирует транзакцию, начатую с помощью sqlsrv_begin_transaction

  • « sqlsrv_close
  • sqlsrv_configure »
  • PHP Manual
  • Функции SQLSRV
  • Фиксирует транзакцию, начатую с помощью sqlsrv_begin_transaction

sqlsrv_commit

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_commit — Фиксирует транзакцию, начатую с помощью sqlsrv_begin_transaction()

Описание

sqlsrv_commit(resource $conn): bool

Фиксирует транзакцию, начатую с помощью sqlsrv_begin_transaction(). Соединение возвращается в режим автоматической фиксации после вызова sqlsrv_commit(). Подтверждённая транзакция включает все операторы, которые были выполнены после вызова sqlsrv_begin_transaction(). Явные транзакции должны запускаться и фиксироваться или откатываться с использованием этих функций вместо выполнения SQL-операторов, которые запускают и фиксируют/откатывают транзакции. Для получения дополнительной информации смотрите » Транзакции SQLSRV.

Список параметров

conn

Соединение, на котором должна быть совершена транзакция.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sqlsrv_commit()

В следующем примере показано, как использовать sqlsrv_commit() вместе с sqlsrv_begin_transaction() и 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 ));
}

/* Начало транзакции. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
die( print_r( sqlsrv_errors(), true ));
}

/* Инициализация значения параметров. */
$orderId = 1; $qty = 10; $productId = 100;

/* Настройка и выполнение первого запроса. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Настройка и выполнение второго запроса. */
$sql2 = "UPDATE InventoryTable
SET Quantity = (Quantity - ?)
WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* Если оба запроса были успешными, зафиксируйте транзакцию. */
/* В противном случае откатите транзакцию */
if( $stmt1 && $stmt2 ) {
sqlsrv_commit( $conn );
echo "Транзакция зафиксирована.<br />";
} else {
sqlsrv_rollback( $conn );
echo "Транзакция откачена.<br />";
}
?>

Смотрите также

  • sqlsrv_begin_transaction() - Начинает транзакцию базы данных
  • sqlsrv_rollback() - Откатывает транзакцию, начатую sqlsrv_begin_transaction


Изменяет конфигурацию обработки ошибок драйвера и ведения журнала

  • « sqlsrv_commit
  • sqlsrv_connect »
  • PHP Manual
  • Функции SQLSRV
  • Изменяет конфигурацию обработки ошибок драйвера и ведения журнала

sqlsrv_configure

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_configure — Изменяет конфигурацию обработки ошибок драйвера и ведения журнала

Описание

sqlsrv_configure(string $setting, mixed $value): bool

Изменяет конфигурацию обработки ошибок драйвера и ведения журнала.

Список параметров

setting

Имя настройки. Возможные значения: "WarningsReturnAsErrors", "LogSubsystems" и "LogSeverity".

value

Значение указанного параметра. В следующей таблице показаны возможные значения:

Параметры настройки ошибок и ведения журнала
Настройка | Опции
WarningsReturnAsErrors | 1 (true) или 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.
  • » Ведение журнала активности SQLSRV.


Открывает соединение с базой данных Microsoft SQL Server

  • « sqlsrv_configure
  • sqlsrv_errors »
  • PHP Manual
  • Функции SQLSRV
  • Открывает соединение с базой данных Microsoft SQL Server

sqlsrv_connect

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_connect — Открывает соединение с базой данных Microsoft SQL Server

Описание

sqlsrv_connect(string $serverName, array $connectionInfo = ?): resource

Открывает соединение с базой данных Microsoft SQL Server. По умолчанию попытка подключения выполняется с использованием проверки подлинности Windows. Чтобы подключиться с использованием проверки подлинности SQL Server, включите "UID" и "PWD" в массив параметров подключения.

Список параметров

serverName

Имя сервера, к которому устанавливается соединение. Чтобы подключиться к определённому экземпляру, после имени сервера укажите обратную косую черту и имя экземпляра (например, serverName\sqlexpress).

connectionInfo

Ассоциативный массив, определяющий параметры подключения к серверу. Если значения для ключей UID и PWD не указаны, будет предпринята попытка подключения с использованием проверки подлинности Windows. Полный список поддерживаемых ключей смотрите в разделе » Параметры подключения SQLSRV.

Возвращаемые значения

Ресурс подключения. Если соединение не может быть открыто, возвращается false.

Примеры

Пример #1 Подключение с использованием проверки подлинности Windows.

<?php
$serverName = "serverName\\sqlexpress"; //serverName\instanceName

// Поскольку UID и PWD не указаны в массиве $connectionInfo,
// будет предпринята попытка подключения с использованием проверки подлинности Windows.
$connectionInfo = array( "Database"=>"dbName");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
echo "Соединение установлено.<br />";
}else{
echo "Соединение не установлено.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>

Пример #2 Подключение с использованием имени пользователя и пароля.

<?php
$serverName = "serverName\\sqlexpress"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
echo "Соединение установлено.<br />";
}else{
echo "Соединение не установлено.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>

Пример #3 Подключение с использованием порта.

<?php
$serverName = "serverName\\sqlexpress, 1542"; //serverName\instanceName, portNumber (по умолчанию 1433)
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
echo "Соединение установлено.<br />";
}else{
echo "Соединение не установлено.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>

Примечания

По умолчанию sqlsrv_connect() использует пул соединений для повышения производительности соединения. Чтобы отключить пул соединений (т.е. принудительно устанавливать новое соединение при каждом вызове), установите для параметра "ConnectionPooling" в массиве $connectionOptions значение 0 (или false). Для получения дополнительной информации смотрите раздел » Пул соединений SQLSRV.

У модуля SQLSRV нет специальной функции для изменения базы данных после подключения. Целевая база данных указывается в массиве $connectionOptions, который передаётся в sqlsrv_connect. Чтобы изменить базу данных при открытом соединении, выполните следующий запрос "USE dbName" (например, sqlsrv_query($conn, "USE dbName")).

Смотрите также

  • sqlsrv_close() - Закрывает открытое соединение и освобождает ресурсы, связанные с этим соединением
  • sqlsrv_errors() - Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV
  • sqlsrv_query() - Подготавливает и выполняет запрос


Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV

  • « sqlsrv_connect
  • sqlsrv_execute »
  • PHP Manual
  • Функции SQLSRV
  • Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV

sqlsrv_errors

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_errors — Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV

Описание

sqlsrv_errors(int $errorsOrWarnings = ?): mixed

Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV.

Список параметров

errorsOrWarnings

Определяет, возвращаются ли сведения об ошибках, предупреждения или и то и другое. Если параметр не указан, возвращаются как информация об ошибке, так и информация о предупреждениях. Поддерживаются следующие значения параметра: SQLSRV_ERR_ALL, SQLSRV_ERR_ERRORS, SQLSRV_ERR_WARNINGS.

Возвращаемые значения

Если при последней операции sqlsrv возникли ошибки и/или предупреждения, возвращается массив массивов, содержащих информацию об ошибках. Если при последней операции sqlsrv не было ошибок и/или предупреждений, возвращается null. В следующей таблице описана структура возвращаемых массивов:

Массив, возвращаемый sqlsrv_errors
Ключ | Описание
SQLSTATE | Для ошибок, которые возникают из-за драйвера ODBC, возвращается SQLSTATE, возвращаемый ODBC. Для ошибок, которые возникают из-за драйверов Microsoft для PHP для SQL Server, возвращается SQLSTATE IMSSP. Для предупреждений, которые возникают из-за драйверов Microsoft для PHP для SQL Server, SQLSTATE возвращает значение 01SSP.
code | Для ошибок, которые возникают из-за SQL Server, возвращает собственный код ошибки SQL Server. Для ошибок, возникающих из-за драйвера ODBC, возвращается код ошибки, возвращаемый ODBC. Для ошибок, которые возникают из-за драйверов Microsoft для PHP для SQL Server, возвращается код ошибки Microsoft Drivers для PHP для SQL Server.
message | Описание ошибки.

Примеры

Пример #1 Пример использования functionname()

<?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 BadColumnName FROM Table_1";

/* Выполнение запроса завершится ошибкой из-за неправильного имени столбца. */
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false ) {
if( ($errors = sqlsrv_errors() ) != null) {
foreach( $errors as $error ) {
echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
echo "Код: ".$error[ 'code']."<br />";
echo "Сообщение: ".$error[ 'message']."<br />";
}
}
}
?>

Примечания

По умолчанию предупреждения, генерируемые при вызове любой функции SQLSRV, обрабатываются как ошибки. Это означает, что если при вызове функции SQLSRV возникает предупреждение, функция возвращает false. Однако предупреждения, соответствующие значениям SQLSTATE 01000, 01001, 01003 и 01S02, никогда не рассматриваются как ошибки. Для получения информации об изменении этого поведения смотрите описание функции sqlsrv_configure() и параметр WarningsReturnAsErrors.

Смотрите также

  • sqlsrv_configure() - Изменяет конфигурацию обработки ошибок драйвера и ведения журнала


Выполняет запрос, подготовленный с помощью sqlsrv_prepare

  • « sqlsrv_errors
  • sqlsrv_fetch_array »
  • PHP Manual
  • Функции SQLSRV
  • Выполняет запрос, подготовленный с помощью sqlsrv_prepare

sqlsrv_execute

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_execute — Выполняет запрос, подготовленный с помощью sqlsrv_prepare()

Описание

sqlsrv_execute(resource $stmt): bool

Выполняет запрос, подготовленный с помощью sqlsrv_prepare(). Функция идеально подходит для многократного выполнения подготовленного запроса с разными значениями параметров.

Список параметров

stmt

Ресурс оператора, возвращаемый sqlsrv_prepare().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sqlsrv_execute()

В этом примере показано, как подготовить оператор с помощью sqlsrv_prepare() и повторно выполнить его несколько раз (с разными значениями параметров) с помощью 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 = ?";

// Инициализация параметров и подготовка запроса.
// Переменные $qty и $id связаны с оператором $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
die( print_r( sqlsrv_errors(), true));
}

// Настройка информации SalesOrderDetailID и OrderQty.
// Этот массив сопоставляет идентификатор заказа с количеством заказа в парах ключ => значение.
$orders = array( 1=>10, 2=>20, 3=>30);

// Выполнение запроса для каждого заказа.
foreach( $orders as $id => $qty) {
// Поскольку $id и $qty привязаны к $stmt1,
// их обновлённые значения используются при каждом выполнении запроса.
if( sqlsrv_execute( $stmt ) === false ) {
die( print_r( sqlsrv_errors(), true));
}
}
?>

Примечания

Когда вы подготавливаете запрос, который использует переменные в качестве параметров, переменные привязываются к оператору. Это означает, что если вы обновите значения переменных, в следующий раз, когда вы выполните запрос, он будет работать с обновлёнными значениями параметров. Для операторов, которые вы планируете выполнить только один раз, используйте sqlsrv_query().

Смотрите также

  • sqlsrv_prepare() - Подготавливает запрос к исполнению
  • sqlsrv_query() - Подготавливает и выполняет запрос


Возвращает строку как массив

  • « sqlsrv_execute
  • sqlsrv_fetch_object »
  • PHP Manual
  • Функции SQLSRV
  • Возвращает строку как массив

sqlsrv_fetch_array

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_fetch_array — Возвращает строку как массив

Описание

sqlsrv_fetch_array(
resource $stmt,
int $fetchType = ?,
int $row = ?,
int $offset = ?
): array

Возвращает следующую доступную строку данных в виде ассоциативного массива, числового массива или и того и другого (по умолчанию).

Список параметров

stmt

Ресурс оператора, возвращаемый sqlsrv_query или sqlsrv_prepare.

fetchType

Предопределённая константа, указывающая тип возвращаемого массива. Возможные значения: SQLSRV_FETCH_ASSOC, SQLSRV_FETCH_NUMERIC или SQLSRV_FETCH_BOTH (по умолчанию).

Тип выборки SQLSRV_FETCH_ASSOC не следует использовать при использовании набора результатов с несколькими столбцами с одинаковым именем.

row

Задаёт строку для доступа в результирующем наборе, в котором используется прокручиваемый курсор. Возможные значения: SQLSRV_SCROLL_NEXT, SQLSRV_SCROLL_PRIOR, SQLSRV_SCROLL_FIRST, SQLSRV_SCROLL_LAST, SQLSRV_SCROLL_ABSOLUTE и SQLSRV_SCROLL_RELATIVE (по умолчанию). Если этот параметр указан, fetchType должен быть явно определён.

offset

Указывает строку, к которой будет осуществляться доступ, если для параметра строки установлено значение SQLSRV_SCROLL_ABSOLUTE или SQLSRV_SCROLL_RELATIVE. Обратите внимание, что первая строка в наборе результатов имеет индекс 0.

Возвращаемые значения

В случае успешного выполнения возвращает массив, null, если в наборе результатов больше нет строк и false в случае возникновения ошибки.

Примеры

Пример #1 Получение ассоциативного массива.

<?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 Получение числового массива.

<?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);
?>

Примечания

Не указанный fetchType или явное использование константы SQLSRV_FETCH_TYPE в приведённых выше примерах вернёт массив, у которого ключи будут как ассоциативные, так и числовые.

Если более одного столбца возвращается с одним и тем же именем, последний столбец будет иметь приоритет. Чтобы избежать конфликтов имён полей, используйте псевдонимы.

Если возвращается столбец без имени, ассоциативный ключ для элемента массива будет пустой строкой ("").

Смотрите также

  • sqlsrv_connect() - Открывает соединение с базой данных Microsoft SQL Server
  • sqlsrv_query() - Подготавливает и выполняет запрос
  • sqlsrv_errors() - Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV
  • sqlsrv_fetch() - Делает следующую строку в наборе результатов доступной для чтения


Получает следующую строку данных в наборе результатов как объект

  • « sqlsrv_fetch_array
  • sqlsrv_fetch »
  • PHP Manual
  • Функции SQLSRV
  • Получает следующую строку данных в наборе результатов как объект

sqlsrv_fetch_object

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_fetch_object — Получает следующую строку данных в наборе результатов как объект

Описание

sqlsrv_fetch_object(
resource $stmt,
string $className = ?,
array $ctorParams = ?,
int $row = ?,
int $offset = ?
): mixed

Извлекает следующую строку данных в наборе результатов как экземпляр указанного класса со свойствами, соответствующими именам полей строки и значениям, которые соответствуют значениям полей строки.

Список параметров

stmt

Ресурс оператора, возвращаемый sqlsrv_query() или sqlsrv_execute().

className

Имя класса для создания экземпляра. Если имя класса не указано, создаётся экземпляр stdClass.

ctorParams

Значения передаваемые конструктору указанного класса. Если конструктор указанного класса принимает параметры, необходимо предоставить массив ctorParams.

row

Строка, к которой нужно получить доступ. Параметр можно использовать только в том случае, если указанный оператор был подготовлен с помощью курсора с возможностью прокрутки. В этом случае этот параметр может принимать одно из следующих значений:

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Указывает строку, к которой будет осуществляться доступ, если для параметра строки установлено значение SQLSRV_SCROLL_ABSOLUTE или SQLSRV_SCROLL_RELATIVE. Обратите внимание, что первая строка в наборе результатов имеет индекс 0.

Возвращаемые значения

В случае успешного выполнения возвращает объект, null, если в наборе результатов больше нет строк и false в случае возникновения ошибки или если указанный класс не существует.

Примеры

Пример #1 Пример использования sqlsrv_fetch_object()

В следующем примере показано, как получить строку как объект stdClass.

<?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));
}

// Получение каждой строки как объект.
// Поскольку класс не указан, каждая строка будет получена как объект stdClass.
// Имена свойств соответствуют именам полей.
while( $obj = sqlsrv_fetch_object( $stmt)) {
echo $obj->fName.", ".$obj->lName."<br />";
}
?>

Примечания

Если имя класса указано с необязательным параметром $className и у класса есть свойства, имена которых совпадают с именами полей набора результатов, к свойствам применяются соответствующие значения набора результатов. Если имя поля набора результатов не соответствует свойству класса, свойство с именем поля набора результатов добавляется к объекту, а значение набора результатов применяется к свойству. При использовании параметра $className применяются следующие правила:

  • При сопоставлении имён свойств поля учитывается регистр.
  • Сопоставление свойств поля происходит независимо от модификаторов доступа.
  • Типы данных свойств класса игнорируются при применении значения поля к свойству.
  • Если класс не существует, функция возвращает false и добавляет ошибку в коллекцию ошибок.
Независимо от того, указан ли параметр $className, если возвращается поле без имени, значение поля будет проигнорировано, а в коллекцию ошибок будет добавлено предупреждение.

При использовании набора результатов, содержащего несколько столбцов с одинаковым именем, может быть лучше использовать sqlsrv_fetch_array() или комбинацию sqlsrv_fetch() и sqlsrv_get_field().

Смотрите также

  • sqlsrv_fetch() - Делает следующую строку в наборе результатов доступной для чтения
  • sqlsrv_fetch_array() - Возвращает строку как массив


Делает следующую строку в наборе результатов доступной для чтения

  • « sqlsrv_fetch_object
  • sqlsrv_field_metadata »
  • PHP Manual
  • Функции SQLSRV
  • Делает следующую строку в наборе результатов доступной для чтения

sqlsrv_fetch

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_fetch — Делает следующую строку в наборе результатов доступной для чтения

Описание

sqlsrv_fetch(resource $stmt, int $row = ?, int $offset = ?): mixed

Делает следующую строку в наборе результатов доступной для чтения. Используйте sqlsrv_get_field() для чтения полей строки.

Список параметров

stmt

Ресурс оператора, возвращаемый sqlsrv_query() или sqlsrv_execute().

row

Строка, к которой нужно получить доступ. Параметр можно использовать только в том случае, если указанный оператор был подготовлен с помощью курсора с возможностью прокрутки. В этом случае параметр может принимать одно из следующих значений:

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Указывает строку, к которой будет осуществляться доступ, если для параметра строки установлено значение SQLSRV_SCROLL_ABSOLUTE или SQLSRV_SCROLL_RELATIVE. Обратите внимание, что первая строка в наборе результатов имеет индекс 0.

Возвращаемые значения

Возвращает true, если следующая строка набора результатов была успешно получена, false в случае возникновения ошибки и null, если в наборе результатов больше нет строк.

Примеры

Пример #1 Пример использования sqlsrv_fetch()

В следующем примере показано, как получить строку с помощью sqlsrv_fetch() и получить поля строки с помощью 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));
}

// Сделайте первую (и в данном случае единственную) строку набора результатов доступной для чтения.
if( sqlsrv_fetch( $stmt ) === false) {
die( print_r( sqlsrv_errors(), true));
}

// Получите поля строки. Индексы полей начинаются с 0 и должны извлекаться по порядку.
// Получение полей строки по имени не поддерживается sqlsrv_get_field.
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

$comment = sqlsrv_get_field( $stmt, 1);
echo $comment;
?>

Смотрите также

  • sqlsrv_get_field() - Получает данные поля из текущей выбранной строки
  • sqlsrv_fetch_array() - Возвращает строку как массив
  • sqlsrv_fetch_object() - Получает следующую строку данных в наборе результатов как объект


Получает метаданные для полей оператора, подготовленного с помощью sqlsrv_prepare или sqlsrv_query

  • « sqlsrv_fetch
  • sqlsrv_free_stmt »
  • PHP Manual
  • Функции SQLSRV
  • Получает метаданные для полей оператора, подготовленного с помощью sqlsrv_prepare или sqlsrv_query

sqlsrv_field_metadata

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_field_metadata — Получает метаданные для полей оператора, подготовленного с помощью sqlsrv_prepare() или sqlsrv_query()

Описание

sqlsrv_field_metadata(resource $stmt): mixed

Получает метаданные для полей оператора, подготовленного с помощью sqlsrv_prepare() или sqlsrv_query(). sqlsrv_field_metadata() может вызываться для оператора до или после выполнения оператора.

Список параметров

stmt

Ресурс оператора, для которого возвращаются метаданные.

Возвращаемые значения

В случае успешного выполнения возвращает массив массивов. В противном случае возвращает false. Каждый возвращаемый массив описывается следующей таблицей:

Массив, возвращаемый sqlsrv_field_metadata
Ключ | Описание
Name | Имя поля.
Type | Числовое значение для типа SQL.
Size | Количество символов для полей символьного типа, количество байтов для полей двоичного типа или null для других типов.
Precision | Точность для типов переменной точности, null для других типов.
Scale | Масштаб для типов масштабируемых типов данных, null для других типов.
Nullable | Перечисление, указывающее, допускает ли столбец значение NULL, недопустимое значение NULL или неизвестно.
Для получения дополнительной информации смотрите » sqlsrv_field_metadata в документации Microsoft SQLSRV.

Примеры

Пример #1 Пример использования sqlsrv_field_metadata()

<?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() - Возвращает информацию о клиенте и указанном подключении


Освобождает все ресурсы для указанного оператора

  • « sqlsrv_field_metadata
  • sqlsrv_get_config »
  • PHP Manual
  • Функции SQLSRV
  • Освобождает все ресурсы для указанного оператора

sqlsrv_free_stmt

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_free_stmt — Освобождает все ресурсы для указанного оператора

Описание

sqlsrv_free_stmt(resource $stmt): bool

Освобождает все ресурсы для указанного оператора. Оператор нельзя использовать после того, как для него была вызвана функция sqlsrv_free_stmt(). Если sqlsrv_free_stmt() вызывается в выполняющемся операторе, который изменяет состояние сервера, выполнение оператора прекращается и оператор откатывается.

Список параметров

stmt

Оператор, ресурсы которого необходимо освободить. Обратите внимание, что null - допустимое значение параметра. Это позволяет вызывать функцию в скрипте несколько раз.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sqlsrv_free_stmt()

<?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));
}

/*-------------------------------
Здесь можно обработать результаты запроса.
-------------------------------*/

/* Освободите ресурсы для оператора */
sqlsrv_free_stmt( $stmt);

?>

Примечания

Основное различие между sqlsrv_free_stmt() и sqlsrv_cancel() заключается в том, что ресурс оператора, отменённый с помощью sqlsrv_cancel(), может быть повторно выполнен, если он был создан с помощью sqlsrv_prepare(). Ресурс оператора, отменённый с помощью sqlsrv_free_statement(), не может быть повторно выполнен.

Смотрите также

  • sqlsrv_cancel() - Отменяет оператор


Возвращает значение указанного параметра конфигурации

  • « sqlsrv_free_stmt
  • sqlsrv_get_field »
  • PHP Manual
  • Функции SQLSRV
  • Возвращает значение указанного параметра конфигурации

sqlsrv_get_config

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_get_config — Возвращает значение указанного параметра конфигурации

Описание

sqlsrv_get_config(string $setting): mixed

Возвращает значение указанного параметра конфигурации.

Список параметров

setting

Имя параметра, для которого возвращается значение. Список настраиваемых параметров смотрите в разделе sqlsrv_configure().

Возвращаемые значения

Возвращает значение указанного параметра. Если указан неверный параметр, возвращается false.

Смотрите также

  • sqlsrv_configure() - Изменяет конфигурацию обработки ошибок драйвера и ведения журнала


Получает данные поля из текущей выбранной строки

  • « sqlsrv_get_config
  • sqlsrv_has_rows »
  • PHP Manual
  • Функции SQLSRV
  • Получает данные поля из текущей выбранной строки

sqlsrv_get_field

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_get_field — Получает данные поля из текущей выбранной строки

Описание

sqlsrv_get_field(resource $stmt, int $fieldIndex, int $getAsType = ?): mixed

Получает данные поля из текущей выбранной строки. Доступ к полям должен осуществляться по порядку. Индексы полей начинаются с 0.

Список параметров

stmt

Ресурс оператора, возвращаемый sqlsrv_query() или sqlsrv_execute().

fieldIndex

Индекс поля, которое нужно получить. Индексы полей начинаются с 0. К полям нужно обращаться по порядку. т.е. если вы обращаетесь к полю с индексом 1, то индекс поля 0 будет недоступен.

getAsType

Тип данных PHP для возвращаемых данных поля. Если этот параметр не установлен, данные поля будут возвращены как тип данных PHP по умолчанию. Для получения информации о типах данных PHP по умолчанию смотрите » Типы данных PHP по умолчанию в документации Microsoft SQLSRV.

Возвращаемые значения

В случае успешного выполнения возвращает данные из указанного поля. Возвращает false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sqlsrv_get_field()

В следующем примере показано, как получить строку с помощью sqlsrv_fetch() и получить поля строки с помощью 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));
}

// Сделайте первую (и в данном случае единственную) строку набора результатов доступной для чтения.
if( sqlsrv_fetch( $stmt ) === false) {
die( print_r( sqlsrv_errors(), true));
}

// Получите поля строки. Индексы полей начинаются с 0 и должны извлекаться по порядку.
// Получение полей строки по имени не поддерживается sqlsrv_get_field.
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

$comment = sqlsrv_get_field( $stmt, 1);
echo $comment;
?>

Смотрите также

  • sqlsrv_fetch() - Делает следующую строку в наборе результатов доступной для чтения
  • sqlsrv_fetch_array() - Возвращает строку как массив
  • sqlsrv_fetch_object() - Получает следующую строку данных в наборе результатов как объект


Указывает, есть ли у указанного оператора строки

  • « sqlsrv_get_field
  • sqlsrv_next_result »
  • PHP Manual
  • Функции SQLSRV
  • Указывает, есть ли у указанного оператора строки

sqlsrv_has_rows

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_has_rows — Указывает, есть ли у указанного оператора строки

Описание

sqlsrv_has_rows(resource $stmt): bool

Указывает, есть ли у указанного оператора строки.

Список параметров

stmt

Ресурс оператора, возвращаемый sqlsrv_query() или sqlsrv_execute().

Возвращаемые значения

Возвращает true, если в указанном операторе есть строки и false, если в операторе нет строк или произошла ошибка.

Примеры

Пример #1 Пример использования sqlsrv_has_rows()

<?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 "Есть строки. <br />";
else
echo "Нет строк. <br />";
}
?>

Смотрите также

  • sqlsrv_num_rows() - Получает количество строк в наборе результатов
  • sqlsrv_query() - Подготавливает и выполняет запрос


Делает активным следующий результат указанного оператора

  • « sqlsrv_has_rows
  • sqlsrv_num_fields »
  • PHP Manual
  • Функции SQLSRV
  • Делает активным следующий результат указанного оператора

sqlsrv_next_result

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_next_result — Делает активным следующий результат указанного оператора

Описание

sqlsrv_next_result(resource $stmt): mixed

Делает активным следующий результат указанного оператора. Результаты включают наборы результатов, количество строк и выходные параметры.

Список параметров

stmt

Оператор, по которому вызывается следующий результат.

Возвращаемые значения

Возвращает true, если следующий результат был успешно получен, false, если произошла ошибка и null, если результатов для получения больше нет.

Примеры

Пример #1 Пример использования sqlsrv_next_result()

В следующем примере выполняется пакетный запрос, который добавляет записи в таблицу, а затем выбирает данные из таблицы. Это даёт два результата оператора: один для строк, на которые влияет INSERT, и один для строк, возвращаемых SELECT. Чтобы перейти к строкам, возвращаемым SELECT, необходимо вызвать sqlsrv_next_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);

// Использовать первый результат (строки, затронутые INSERT) без вызова sqlsrv_next_result.
echo "Затронуто строк: ".sqlsrv_rows_affected($stmt)."<br />";

// Переход к следующему результату и отображение результатов.
$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 "Больше строк нет.<br />";
} else {
die(print_r(sqlsrv_errors(), true));
}
?>

Смотрите также

  • sqlsrv_query() - Подготавливает и выполняет запрос
  • sqlsrv_fetch_array() - Возвращает строку как массив
  • sqlsrv_rows_affected() - Возвращает количество строк, изменённых последним выполненным запросом INSERT, UPDATE или DELETE


Извлекает количество полей (столбцов) оператора

  • « sqlsrv_next_result
  • sqlsrv_num_rows »
  • PHP Manual
  • Функции SQLSRV
  • Извлекает количество полей (столбцов) оператора

sqlsrv_num_fields

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_num_fields — Извлекает количество полей (столбцов) оператора

Описание

sqlsrv_num_fields(resource $stmt): mixed

Извлекает количество полей (столбцов) оператора.

Список параметров

stmt

Оператор, для которого возвращается количество полей. sqlsrv_num_fields() может вызываться для оператора до или после выполнения оператора.

Возвращаемые значения

В случае успешного выполнения возвращает количество полей. В противном случае возвращает false.

Примеры

Пример #1 Пример использования sqlsrv_num_fields()

<?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 )) {
// Пройдитесь по полям каждой строки.
for($i = 0; $i < $numFields; $i++) {
echo sqlsrv_get_field($stmt, $i)." ";
}
echo "<br />";
}
?>

Смотрите также

  • sqlsrv_field_metadata() - Получает метаданные для полей оператора, подготовленного с помощью sqlsrv_prepare или sqlsrv_query
  • sqlsrv_fetch() - Делает следующую строку в наборе результатов доступной для чтения
  • sqlsrv_get_field() - Получает данные поля из текущей выбранной строки


Получает количество строк в наборе результатов

  • « sqlsrv_num_fields
  • sqlsrv_prepare »
  • PHP Manual
  • Функции SQLSRV
  • Получает количество строк в наборе результатов

sqlsrv_num_rows

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_num_rows — Получает количество строк в наборе результатов

Описание

sqlsrv_num_rows(resource $stmt): mixed

Извлекает количество строк в наборе результатов. Функция требует, чтобы ресурс оператора был создан с помощью статического курсора или курсора набора ключей. Для получения дополнительной информации смотрите описание функций sqlsrv_query(), sqlsrv_prepare() или » Указание типа курсора и выбор строк в документации Microsoft SQLSRV.

Список параметров

stmt

Оператор, для которого возвращается количество строк. Ресурс оператора должен быть создан с помощью статического курсора или курсора набора ключей. Для получения дополнительной информации смотрите описание функций sqlsrv_query(), sqlsrv_prepare() или » Указание типа курсора и выбор строк в документации Microsoft SQLSRV.

Возвращаемые значения

Возвращает количество строк, полученных в случае успешного выполнения или false в случае возникновения ошибки. Если используется прямой курсор (по умолчанию) или динамический курсор, возвращается false.

Примеры

Пример #1 Пример использования sqlsrv_num_rows()

<?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 "Ошибка при получении количества строк.";
else
echo $row_count;
?>

Смотрите также

  • sqlsrv_has_rows() - Указывает, есть ли у указанного оператора строки
  • sqlsrv_rows_affected() - Возвращает количество строк, изменённых последним выполненным запросом INSERT, UPDATE или DELETE


Подготавливает запрос к исполнению

  • « sqlsrv_num_rows
  • sqlsrv_query »
  • PHP Manual
  • Функции SQLSRV
  • Подготавливает запрос к исполнению

sqlsrv_prepare

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_prepare — Подготавливает запрос к исполнению

Описание

sqlsrv_prepare(
resource $conn,
string $sql,
array $params = ?,
array $options = ?
): mixed

Подготавливает запрос к исполнению. Функция идеально подходит для подготовки запроса, который будет выполняться несколько раз с разными значениями параметров.

Список параметров

conn

Ресурс подключения, возвращаемый sqlsrv_connect().

sql

Строка, определяющая запрос, который нужно подготовить и выполнить.

params

Массив, определяющий информацию о параметрах при выполнении запроса. Элементы массива могут быть любыми из следующих:

  • Строковое значение
  • Переменная PHP
  • Массив с такой структурой: array($value [, $direction [, $phpType [, $sqlType]]])
В следующей таблице описаны элементы в структуре массива выше:

Структура массива
Элемент | Описание
$value | Строковое значение, переменная PHP или переменная PHP, переданная по ссылке.
$direction (необязательный) | Одна из следующих констант SQLSRV, используемых для указания направления параметра: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. Значение по умолчанию - SQLSRV_PARAM_IN.
$phpType (необязательный) | Константа SQLSRV_PHPTYPE_*, указывающая тип данных PHP возвращаемого значения.
$sqlType (необязательный) | Константа SQLSRV_SQLTYPE_*, указывающая тип данных SQL Server входного значения.
options

Массив, определяющий параметры свойств запроса. Поддерживаемые ключи описаны в следующей таблице:

Опции запроса
Ключ | Значения | Описание
QueryTimeout | Положительное целочисленное значение. | Устанавливает время ожидания запроса в секундах. По умолчанию драйвер будет ожидать результатов бесконечно.
SendStreamParamsAtExec | true или false (по умолчанию true) | Настраивает драйвер для отправки всех данных потока при выполнении (true) или для отправки данных потока частями (false). По умолчанию установлено значение true. Для получения дополнительной информации смотрите sqlsrv_send_stream_data().
Scrollable | SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_STATIC, SQLSRV_CURSOR_DYNAMIC, или SQLSRV_CURSOR_KEYSET | Смотрите » Указание типа курсора и выбор строк в документации Microsoft SQLSRV.

Возвращаемые значения

Возвращает ресурс оператора в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sqlsrv_prepare()

В этом примере показано, как подготовить оператор с помощью sqlsrv_prepare() и повторно выполнить его несколько раз (с разными значениями параметров) с помощью 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 = ?";

// Инициализация параметров и подготовка запроса.
// Переменные $qty и $id связаны с оператором $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
die( print_r( sqlsrv_errors(), true));
}

// Настройка информации SalesOrderDetailID и OrderQty.
// Этот массив сопоставляет идентификатор заказа с количеством заказа в парах ключ => значение.
$orders = array( 1=>10, 2=>20, 3=>30);

// Выполнение запроса для каждого заказа.
foreach( $orders as $id => $qty) {
// Поскольку $id и $qty привязаны к $stmt1,
// их обновлённые значения используются при каждом выполнении запроса.
if( sqlsrv_execute( $stmt ) === false ) {
die( print_r( sqlsrv_errors(), true));
}
}
?>

Примечания

Когда вы подготавливаете запрос, который использует переменные в качестве параметров, переменные привязываются к оператору. Это означает, что если вы обновите значения переменных, в следующий раз, когда вы выполните запрос, он будет работать с обновлёнными значениями параметров. Для операторов, которые вы планируете выполнить только один раз, используйте sqlsrv_query().

Смотрите также

  • sqlsrv_execute() - Выполняет запрос, подготовленный с помощью sqlsrv_prepare
  • sqlsrv_query() - Подготавливает и выполняет запрос


Подготавливает и выполняет запрос

  • « sqlsrv_prepare
  • sqlsrv_rollback »
  • PHP Manual
  • Функции SQLSRV
  • Подготавливает и выполняет запрос

sqlsrv_query

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_query — Подготавливает и выполняет запрос

Описание

sqlsrv_query(
resource $conn,
string $sql,
array $params = ?,
array $options = ?
): mixed

Подготавливает и выполняет запрос.

Список параметров

conn

Ресурс подключения, возвращаемый sqlsrv_connect().

sql

Строка, определяющая запрос, который нужно подготовить и выполнить.

params

Массив, определяющий информацию о параметрах при выполнении параметризованного запроса. Элементы массива могут быть любыми из следующих:

  • Строкового значения
  • Переменной PHP
  • Массива со следующей структурой: array($value [, $direction [, $phpType [, $sqlType]]])
В следующей таблице описаны элементы в структуре массива выше:

Структура массива
Элемент | Описание
$value | Строковое значение, переменная PHP или переменная PHP, переданная по ссылке.
$direction (optional) | Одна из следующих констант SQLSRV, используемых для указания направления параметра: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. Значение по умолчанию - SQLSRV_PARAM_IN.
$phpType (optional) | Константа SQLSRV_PHPTYPE_*, указывающая тип данных PHP возвращаемого значения.
$sqlType (optional) | Константа SQLSRV_SQLTYPE_*, указывающая тип данных SQL Server входного значения.
options

Массив, определяющий параметры свойств запроса. Поддерживаемые ключи описаны в следующей таблице:

Свойства запроса
Ключ | Значения | Описание
QueryTimeout | Положительное целочисленное значение. | Устанавливает время ожидания запроса в секундах. По умолчанию драйвер будет ждать результатов бесконечно.
SendStreamParamsAtExec | true или false (по умолчанию true) | Настраивает драйвер для отправки всех данных потока при выполнении (true) или для отправки данных потока частями (false). По умолчанию установлено значение true. Для получения дополнительной информации смотрите sqlsrv_send_stream_data().
Scrollable | SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_STATIC, SQLSRV_CURSOR_DYNAMIC, или SQLSRV_CURSOR_KEYSET | Смотрите » Указание типа курсора и выбор строк в документации Microsoft SQLSRV.

Возвращаемые значения

Возвращает ресурс выражения в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sqlsrv_query()

<?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));
}
?>

Примечания

Для операторов, которые вы планируете выполнить только один раз, используйте sqlsrv_query(). Если вы намереваетесь повторно выполнить выражение с другими значениями параметров, используйте комбинацию sqlsrv_prepare() и sqlsrv_execute().

Смотрите также

  • sqlsrv_prepare() - Подготавливает запрос к исполнению
  • sqlsrv_execute() - Выполняет запрос, подготовленный с помощью sqlsrv_prepare


Откатывает транзакцию, начатую sqlsrv_begin_transaction

  • « sqlsrv_query
  • sqlsrv_rows_affected »
  • PHP Manual
  • Функции SQLSRV
  • Откатывает транзакцию, начатую sqlsrv_begin_transaction

sqlsrv_rollback

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_rollback — Откатывает транзакцию, начатую sqlsrv_begin_transaction()

Описание

sqlsrv_rollback(resource $conn): bool

Откатывает транзакцию, начатую sqlsrv_begin_transaction() и возвращает соединение с режимом автоматической фиксации.

Список параметров

conn

Ресурс подключения, возвращаемый вызовом sqlsrv_connect().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования sqlsrv_rollback()

В следующем примере показано, как использовать sqlsrv_begin_transaction() вместе с sqlsrv_commit() или 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 ));
}

/* Начало транзакции. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
die( print_r( sqlsrv_errors(), true ));
}

/* Инициализация значений параметров. */
$orderId = 1; $qty = 10; $productId = 100;

/* Настройка и выполнение первого запроса */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Настройка и выполнение второго запроса */
$sql2 = "UPDATE InventoryTable
SET Quantity = (Quantity - ?)
WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* Если оба запроса выполнены успешно, зафиксируйте транзакцию. */
/* В противном случае, откатите транзакцию. */
if( $stmt1 && $stmt2 ) {
sqlsrv_commit( $conn );
echo "Транзакция зафиксирована.<br />";
} else {
sqlsrv_rollback( $conn );
echo "Транзакция откачена.<br />";
}
?>

Смотрите также

  • sqlsrv_begin_transaction() - Начинает транзакцию базы данных
  • sqlsrv_commit() - Фиксирует транзакцию, начатую с помощью sqlsrv_begin_transaction


Возвращает количество строк, изменённых последним выполненным запросом INSERT, UPDATE или DELETE

  • « sqlsrv_rollback
  • sqlsrv_send_stream_data »
  • PHP Manual
  • Функции SQLSRV
  • Возвращает количество строк, изменённых последним выполненным запросом INSERT, UPDATE или DELETE

sqlsrv_rows_affected

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_rows_affected — Возвращает количество строк, изменённых последним выполненным запросом INSERT, UPDATE или DELETE

Описание

sqlsrv_rows_affected(resource $stmt): int|false

Возвращает количество строк, изменённых последним выполненным запросом INSERT, UPDATE или DELETE. Для получения информации о количестве строк, возвращаемых запросом SELECT, смотрите sqlsrv_num_rows().

Список параметров

stmt

Ресурс выполненного выражения, для которого возвращается количество затронутых строк.

Возвращаемые значения

Возвращает количество строк, затронутых последним запросом INSERT, UPDATE или DELETE. Если никакие строки не были затронуты, возвращается 0. Если количество затронутых строк не может быть определено, возвращается -1. В случае возникновения ошибки возвращается false.

Примеры

Пример #1 Пример использования sqlsrv_rows_affected()

<?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 "Нет доступной информации.<br />";
} else {
echo $rows_affected." строк было обновлено.<br />";
}
?>

Смотрите также

  • sqlsrv_num_rows() - Получает количество строк в наборе результатов


Отправляет данные из потоков параметров на сервер

  • « sqlsrv_rows_affected
  • sqlsrv_server_info »
  • PHP Manual
  • Функции SQLSRV
  • Отправляет данные из потоков параметров на сервер

sqlsrv_send_stream_data

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_send_stream_data — Отправляет данные из потоков параметров на сервер

Описание

sqlsrv_send_stream_data(resource $stmt): bool

Отправлять данные из потоков параметров на сервер. При каждом вызове отправляется до 8 КБ данных.

Список параметров

stmt

Ресурс выражения, возвращаемый sqlsrv_query() или sqlsrv_execute().

Возвращаемые значения

Возвращает true, если есть ещё данные для отправки и false, если нет.

Примеры

Пример #1 Пример использования sqlsrv_send_stream_data()

<?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";

// Откройте данные параметров как поток и поместите их в массив $params.
$data = fopen( "data://text/plain,[ Lengthy content here. ]", "r");
$params = array( &$data);

// Подготовьте выражение. Используйте массив $options, чтобы
// отключить поведение по умолчанию, которое заключается в отправке всех данных
// потока во время выполнения запроса.
$options = array("SendStreamParamsAtExec"=>0);
$stmt = sqlsrv_prepare( $conn, $sql, $params, $options);

sqlsrv_execute( $stmt);

// Отправляйте до 8 КБ данных параметров на сервер
// при каждом вызове sqlsrv_send_stream_data.
$i = 1;
while( sqlsrv_send_stream_data( $stmt)) {
$i++;
}
echo "$i вызовов было сделано.";
?>

Смотрите также

  • sqlsrv_prepare() - Подготавливает запрос к исполнению
  • sqlsrv_query() - Подготавливает и выполняет запрос


Возвращает информацию о сервере

  • « sqlsrv_send_stream_data
  • Модули для работы с датой и временем »
  • PHP Manual
  • Функции SQLSRV
  • Возвращает информацию о сервере

sqlsrv_server_info

(Информация о версии неизвестна, возможно, только в Git)

sqlsrv_server_info — Возвращает информацию о сервере

Описание

sqlsrv_server_info(resource $conn): array

Возвращает информацию о сервере.

Список параметров

conn

Ресурс подключения, который соединяет клиент и сервер.

Возвращаемые значения

Возвращает массив, описанный в таблице:

Возвращаемый массив
CurrentDatabase | Подключённая база данных.
SQLServerVersion | Версия SQL Server.
SQLServerName | Имя сервера.

Примеры

Пример #1 Пример использования sqlsrv_server_info()

<?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() - Возвращает информацию о клиенте и указанном подключении


Модули для работы с датой и временем

  • Календарь
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Календарь
  • Дата/время — Дата и время
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • DateTime — Класс DateTime
    • DateTimeImmutable — Класс DateTimeImmutable
    • DateTimeInterface — Интерфейс DateTimeInterface
    • DateTimeZone — Класс DateTimeZone
    • DateInterval — Класс DateInterval
    • DatePeriod — Класс DatePeriod
    • Функции даты и времени
    • Date/Time Errors and Exceptions
    • Допустимые форматы даты/времени
    • Список поддерживаемых часовых поясов
    • DateError — The DateError class
    • DateObjectError — The DateObjectError class
    • DateRangeError — The DateRangeError class
    • DateException — The DateException class
    • DateInvalidOperationException — The DateInvalidOperationException class
    • DateInvalidTimeZoneException — The DateInvalidTimeZoneException class
    • DateMalformedIntervalStringException — The DateMalformedIntervalStringException class
    • DateMalformedPeriodStringException — The DateMalformedPeriodStringException class
    • DateMalformedStringException — The DateMalformedStringException class
  • 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 (int)
Для easter_days(): вычислять Пасху для лет до 1753 года по юлианскому календарю, а в последующие годы по григорианскому календарю.
CAL_EASTER_ROMAN (int)
Для easter_days(): вычислять Пасху для лет до 1583 года по юлианскому календарю, а в последующие годы по григорианскому календарю.
CAL_EASTER_ALWAYS_GREGORIAN (int)
Для easter_days(): вычислять Пасху в соответствии с пролептическим григорианским календарём.
CAL_EASTER_ALWAYS_JULIAN (int)
Для easter_days(): вычислять Пасху в соответствии с юлианским календарём.
CAL_GREGORIAN (int)
Для cal_days_in_month(),
cal_from_jd(), cal_info() и
cal_to_jd(): использовать пролептический григорианский календарь.
CAL_JULIAN (int)
Для cal_days_in_month(),
cal_from_jd(), cal_info() и
cal_to_jd(): использовать юлианский календарь.
CAL_JEWISH (int)
Для cal_days_in_month(),
cal_from_jd(), cal_info() и
cal_to_jd(): использовать еврейский календарь.
CAL_FRENCH (int)
Для cal_days_in_month(),
cal_from_jd(), cal_info() и
cal_to_jd(): использовать французский республиканский календарь.
CAL_NUM_CALS (int)
Количество доступных календарей.
CAL_JEWISH_ADD_ALAFIM_GERESH (int)
Для jdtojewish(): добавляет знак гореш (geresh), напоминающий одинарную кавычку в качестве разделителя тысяч для количества лет.
CAL_JEWISH_ADD_ALAFIM (int)
Для jdtojewish(): добавляет слово alafim в качестве разделителя тысяч для количества лет.
CAL_JEWISH_ADD_GERESHAYIM (int)
For jdtojewish(): добавить символ гершаим (gershayim), напоминающий двойную кавычку перед последней буквой дня и числом лет
CAL_DOW_DAYNO (int)
Для jddayofweek(): день недели в виде целого числа (int), где 0 означает воскресенье, а 6 означает субботу.
CAL_DOW_SHORT (int)
Для jddayofweek(): сокращённое английское название дня недели.
CAL_DOW_LONG (int)
Для jddayofweek(): английское название дня недели.
CAL_MONTH_GREGORIAN_SHORT (int)
Для jdmonthname(): сокращённое григорианское название месяца.
CAL_MONTH_GREGORIAN_LONG (int)
Для jdmonthname(): григорианское название месяца.
CAL_MONTH_JULIAN_SHORT (int)
Для jdmonthname(): сокращённое юлианское название месяца.
CAL_MONTH_JULIAN_LONG (int)
Для jdmonthname(): юлианское название месяца.
CAL_MONTH_JEWISH (int)
Для jdmonthname(): еврейское название месяца.
CAL_MONTH_FRENCH (int)
Для 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, PHP 8)

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, PHP 8)

cal_from_jd — Преобразует дату, заданную в юлианском календаре, в дату указанного календаря

Описание

cal_from_jd(int $julian_day, int $calendar): array

cal_from_jd() преобразует дату юлианского календаря, заданную в julian_day, в дату указанного календаря calendar. Поддерживаемые значения calendar: CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH и CAL_FRENCH.

Список параметров

julian_day

День юлианского календаря как целое число

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, PHP 8)

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, PHP 8)

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, PHP 8)

easter_date — Получить метку времени Unix, соответствующую полуночи на Пасху в заданном году

Описание

easter_date(?int $year = null, int $mode = CAL_EASTER_DEFAULT): int

Возвращает метку времени Unix, соответствующую полуночи на Пасху в заданном году.

Дата Пасхи была установлена на Первом Никейском соборе в 325 году до н. э. в честь воскресенья, следовавшего за полнолунием, наступившим в день или после весеннего равноденствия. Считалось, что День весеннего равноденствия всегда наступает 21 марта, поэтому расчёт дня Пасхи сводился к определению даты полнолуния и следующего за ней воскресенья. Используемый здесь алгоритм введён Дионисием Малым около 532 года. В юлианском летоисчислении (до 1753 года) для отслеживания фаз луны использовался простой 19-летний цикл. В григорианском календаре (годы после 1753 - разработан Христофором Клавиусом и Алоизием Лилиусом и введён Папой Григорием XIII в октябре 1582, а в Великобритании и её колониях в сентябре 1752 г.) было добавлено 2 поправочных коэффициента, увеличивающих точность расчёта дат.

Список параметров

year

Год должен быть числом от 1970 до 2037 для 32-битных или 2 000 000 000 для 64-битных систем. Если не указан или null, будет использован текущий год по местному времени.

mode

Позволяет рассчитывать даты Пасхи на основе Юлианского календаря, если установлено значение CAL_EASTER_ALWAYS_JULIAN. Смотрите также константы календаря.

Возвращаемые значения

Возвращает дату Пасхи в виде метки времени Unix.

Ошибки

Будет выброшено исключение ValueError, если значение года окажется меньше 1970 или больше 2037 для 32-битных или 2 000 000 000 для 64-битных систем.

Список изменений

Версия | Описание
8.3.0 | На 64-битных системах параметр year теперь принимает значения в диапазоне от 1970 до 2 000 000 000.
8.0.0 | Параметр year теперь может иметь значение null.
8.0.0 | Будет выброшено исключение ValueError, если значение параметра year выходит за пределы допустимого диапазона. Ранее вызывалась ошибка уровня E_WARNING и функция возвращала false.

Примеры

Пример #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

?>

Пример #2 Пример использования easter_date() с объектом класса DateTime

<?php

$timestamp = easter_date(2023);

$datetime = new \DateTime();
$datetime->setTimestamp($timestamp);

echo $datetime->format('M-d-Y'); // Apr-09-2023

?>

Примечания

Замечание:

Функция easter_date() полагается на работающие со временем системные функции библиотеки языка Си, а не на работающие с датой и временем внутренние функции PHP. Вследствие этого для определения часового пояса, в котором она должна работать, функция easter_date() использует переменную окружения TZ, а не заданный в PHP часовой пояс по умолчанию, что может привести к неожиданному поведению в сочетании с другими функциями 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, PHP 8)

easter_days — Получить количество дней между 21 марта и Пасхой в заданном году

Описание

easter_days(?int $year = null, int $mode = CAL_EASTER_DEFAULT): int

Возвращает количество дней между 21 марта и Пасхой в заданном году. Если год не указан, расчёт будет произведён для текущего года.

Эту функцию можно использовать вместо easter_date() для расчёта даты Пасхи для дат, выходящих за рамки диапазона временных меток Unix (с 1970 по 2037 годы).

Дата Пасхального дня была введена Консулом Никеи в 325 году до н.э. Это первое воскресенье, следующее за первым полнолунием после весеннего равноденствия. Днём весеннего равноденствия принято считать 21 марта, так что расчёт дня Пасхи сводится к определению даты полнолуния и следующего за ней воскресенья. Используемый здесь алгоритм введён Дионисием Малым в 532 году. В юлианском летоисчислении (до 1753 года) для отслеживания фаз луны использовался простой 19-летний цикл. В григорианском календаре (годы после 1753 - разработан Христофором Клавиусом и Алоизием Лилиусом и введён Папой Григорием XIII в октябре 1582г., а в Великобритании и её колониях в сентябре 1752г.) было добавлено 2 поправочных коэффициента увеличивающих точность расчёта дат.

Список параметров

year

Год, положительное число. Если не задан или null, используется текущий год в соответствии с локальным временем сервера.

mode

Позволяет рассчитать Пасхальные даты, основываясь на григорианском календаре для 1582 - 1752 годов, если установить CAL_EASTER_ROMAN. Смотрите список констант календаря, чтобы узнать о всех допустимых константах.

Возвращаемые значения

Количество дней между 21 марта и Пасхальным воскресеньем в заданном году year.

Список изменений

Версия | Описание
8.0.0 | year теперь допускает значение null.

Примеры

Пример #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, PHP 8)

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, PHP 8)

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, PHP 8)

jddayofweek — Возвращает день недели

Описание

jddayofweek(int $julian_day, int $mode = CAL_DOW_DAYNO): int|string

Возвращает день недели. Может возвращать строку или число в зависимости от режима работы.

Список параметров

julian_day

День в виде числа в юлианском летоисчислении

mode
Режимы отображения дней недели
Режим | Значение
0 (По умолчанию) | День недели возвращается в виде числа (0=Воскресенье, 1=Понедельник и т.д.)
1 | Возвращается строка, содержащая день недели (Английский-Григорианский)
2 | Возвращается строка, содержащая аббревиатуру дня недели (Английскую-Григорианскую)

Возвращаемые значения

День недели по григорианскому календарю в виде строки или числа.


Возвращает название месяца

  • « jddayofweek
  • jdtofrench »
  • PHP Manual
  • Календарь
  • Возвращает название месяца

jdmonthname

(PHP 4, PHP 5, PHP 7, PHP 8)

jdmonthname — Возвращает название месяца

Описание

jdmonthname(int $julian_day, 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, Adar, Adar I, Adar II, 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, PHP 8)

jdtofrench — Переводит число дней в юлианском летоисчислении в дату по французскому республиканскому календарю

Описание

jdtofrench(int $julian_day): string

Переводит число дней в юлианском летоисчислении в дату по французскому республиканскому календарю

Список параметров

julian_day

Номер дня в юлианском летоисчислении

Возвращаемые значения

Дата со дня французской революции в виде строки формата "месяц/день/год"

Смотрите также

  • frenchtojd() - Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении
  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря


Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю

  • « jdtofrench
  • jdtojewish »
  • PHP Manual
  • Календарь
  • Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю

jdtogregorian

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtogregorian — Переводит число дней в юлианском летоисчислении в дату по Григорианскому календарю

Описание

jdtogregorian(int $julian_day): string

Переводит число дней в юлианском летоисчислении в строку, содержащую григорианскую дату в формате "месяц/день/год".

Список параметров

julian_day

Номер дня в юлианском летоисчислении в виде целого числа

Возвращаемые значения

Дата по григорианскому календарю в виде строки формата "месяц/день/год"

Смотрите также

  • gregoriantojd() - Преобразует дату по григорианскому календарю в количество дней в юлианском летоисчислении
  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря


Переводит количество дней из юлианского календаря в дату по еврейскому календарю

  • « jdtogregorian
  • jdtojulian »
  • PHP Manual
  • Календарь
  • Переводит количество дней из юлианского календаря в дату по еврейскому календарю

jdtojewish

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtojewish — Переводит количество дней из юлианского календаря в дату по еврейскому календарю

Описание

jdtojewish(int $julian_day, bool $hebrew = false, int $flags = 0): string

Переводит количество дней из юлианского календаря в дату по еврейскому календарю.

Список параметров

julian_day

Номер дня в юлианском летоисчислении в виде целого числа

hebrew

Если аргумент hebrew установлен в true, дата будет возвращена в виде закодированной строки ISO-8859-8 в еврейском формате, заданном аргументом flags.

flags

Битовая маска может состоять из: 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, PHP 8)

jdtojulian — Переводит число дней в юлианском летоисчислении в дату по юлианскому календарю

Описание

jdtojulian(int $julian_day): string

Переводит число дней в юлианском летоисчислении в строку, содержащую дату по юлианскому календарю в формате "месяц/день/год".

Список параметров

julian_day

Номер дня в юлианском летоисчислении

Возвращаемые значения

Дата по юлианскому календарю в виде строки формата "месяц/день/год"

Смотрите также

  • juliantojd() - Переводит дату по юлианскому календарю в число дней в юлианском летоисчислении
  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря


Переводит число дней в юлианском летоисчислении в метку времени Unix

  • « jdtojulian
  • jewishtojd »
  • PHP Manual
  • Календарь
  • Переводит число дней в юлианском летоисчислении в метку времени Unix

jdtounix

(PHP 4, PHP 5, PHP 7, PHP 8)

jdtounix — Переводит число дней в юлианском летоисчислении в метку времени Unix

Описание

jdtounix(int $julian_day): int

Эта функция вернёт метку времени Unix, соответствующую номеру дня в юлианском летоисчислении, заданному в julian_day. Будет возвращено UTC.

Список параметров

julian_day

Номер дня в юлианском летоисчислении между 2440588 и 106751993607888 в 64-битных системах или между 2440588 и 2465443 в 32-битных системах.

Возвращаемые значения

Метка времени Unix на момент начала (полночь) юлианского дня.

Ошибки

Если julian_day находится за пределами допустимого диапазона, выбрасывается ValueError.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает false в случае возникновения ошибки, вместо этого выбрасывает ValueError.
7.3.24, 7.4.12 | Увеличен верхний предел julian_day. Раньше он был 2465342 независимо от архитектуры.

Смотрите также

  • unixtojd() - Переводит метку времени Unix в юлианский день


Переводит дату по еврейскому календарю в число дней в юлианском летоисчислении

  • « jdtounix
  • juliantojd »
  • PHP Manual
  • Календарь
  • Переводит дату по еврейскому календарю в число дней в юлианском летоисчислении

jewishtojd

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

unixtojd — Переводит метку времени Unix в юлианский день

Описание

unixtojd(?int $timestamp = null): int|false

Возвращает юлианский день для заданной метки времени Unix timestamp (количество секунд с 1.1.1970) либо для текущего времени, если аргумент timestamp не задан. В любом случае, время рассматривается как местное время (не UTC).

Список параметров

timestamp

Метка времени Unix для преобразования.

Возвращаемые значения

Число дней в юлианском летоисчислении или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | timestamp теперь допускает значение null.

Смотрите также

  • jdtounix() - Переводит число дней в юлианском летоисчислении в метку времени Unix


Дата и время

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
    • Арифметика даты/времени
  • DateTime — Класс DateTime
    • DateTime::add — Изменяет объект DateTime, добавляя количество дней, месяцев, лет, часов, минут и секунд
    • DateTime::__construct — Конструктор класса DateTime
    • DateTime::createFromFormat — Разбирает строку с датой согласно указанному формату
    • DateTime::createFromImmutable — Возвращает экземпляр DateTime инкапсулирующий заданный объект DateTimeImmutable
    • DateTime::createFromInterface — Возвращает новый объект DateTime, созданный из переданного объекта, реализующего интерфейс DateTimeInterface
    • DateTime::getLastErrors — Псевдоним DateTimeImmutable::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::createFromInterface — Возвращает новый объект DateTimeImmutable, созданный из переданного объекта, реализующего интерфейс DateTimeInterface
    • 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
    • DateTimeInterface::diff — Возвращает разницу между двумя объектами DateTime
    • DateTimeInterface::format — Возвращает дату, отформатированную согласно переданному формату
    • DateTimeInterface::getOffset — Возвращает смещение часового пояса
    • DateTimeInterface::getTimestamp — Возвращает временную метку Unix
    • DateTimeInterface::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::createFromISO8601String — Creates a new DatePeriod object from an ISO8601 string
    • 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
    • date_create — Создаёт новый объект DateTime
    • 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 — Псевдоним DateTimeImmutable::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 — Форматирует временную метку Unix
    • 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 — Возвращает название часового пояса, угадывая по аббревиатуре и смещению UTC
    • timezone_name_get — Псевдоним DateTimeZone::getName
    • timezone_offset_get — Псевдоним DateTimeZone::getOffset
    • timezone_open — Псевдоним DateTimeZone::__construct
    • timezone_transitions_get — Псевдоним DateTimeZone::getTransitions
    • timezone_version_get — Получение номера версии базы данных часовых поясов
  • Date/Time Errors and Exceptions
  • Допустимые форматы даты/времени
  • Список поддерживаемых часовых поясов
    • Африка
    • Америка
    • Антарктика
    • Арктика
    • Азия
    • Атлантика
    • Австралия
    • Европа
    • Индийский
    • Тихоокеанский
    • Другие
  • DateError — The DateError class
  • DateObjectError — The DateObjectError class
  • DateRangeError — The DateRangeError class
  • DateException — The DateException class
  • DateInvalidOperationException — The DateInvalidOperationException class
  • DateInvalidTimeZoneException — The DateInvalidTimeZoneException class
  • DateMalformedIntervalStringException — The DateMalformedIntervalStringException class
  • DateMalformedPeriodStringException — The DateMalformedPeriodStringException class
  • DateMalformedStringException — The DateMalformedStringException class


Введение

Класс DateTimeImmutable и связанные с ним классы позволяют получить информацию о дате и времени. Объекты могут быть созданы путём передачи строкового представления информации о дате и времени или из текущего времени системы.

Модуль предоставляет богатый набор методов для изменения и форматирования информации, включая обработку часовых поясов и переходов на летнее время.

Возможности даты/времени в PHP реализуют календарь ISO 8601, который является » пролептическим григорианским календарём, реализующим текущие правила високосных дней, принятые до введения григорианского календаря, а также включает год 0 как номер года между -1 до нашей эры и 1 нашей эры. Високосные секунды не поддерживаются.

Информация о дате и времени хранится в памяти в виде 64-разрядных чисел. Таким образом, поддерживаются все пригодные представления даты (включая отрицательные года). Диапазон составляет примерно 292 миллиарда лет в прошлое и будущее.

Замечание: Часовые пояса, описанные в данном разделе, можно найти по ссылке Список поддерживаемых часовых поясов.


Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Замечание: Получение последней базы часовых поясов

Последнюю версию часовых поясов можно установить с помощью PECL » timezonedb.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки конфигурации даты/времени
Имя | По умолчанию | Место изменения | Список изменений
date.default_latitude | "31.7667" | PHP_INI_ALL |
date.default_longitude | "35.2333" | PHP_INI_ALL |
date.sunrise_zenith | "90.833333" | PHP_INI_ALL | До PHP 8.0.0 значение по умолчанию было "90.583333".
date.sunset_zenith | "90.833333" | PHP_INI_ALL | До PHP 8.0.0 значение по умолчанию было "90.583333".
date.timezone | "UTC" | PHP_INI_ALL | Начиная с PHP 8.2, при установке недопустимого значения или пустой строки выдаётся предупреждение.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

date.default_latitude float

Широта по умолчанию. в диапазоне от 0 на экваторе до +90 к северу и -90 к югу.

date.default_longitude float

Долгота по умолчанию. в диапазоне от 0 на нулевом меридиане до +180 на восток и -180 на запад.

date.sunrise_zenith float

Угол, под которым солнце светит во время восхода.

Значение по умолчанию составляет 90°50'. Дополнительные 50' обусловлены двумя компонентами: радиусом Солнца, который составляет 16' и атмосферной рефракцией, которая составляет 34'.

date.sunset_zenith float

Угол, под которым солнце светит во время заката.

date.timezone string

Часовой пояс, используемый по умолчанию всеми функциями даты/времени. Порядок приоритета используемых часовых поясов описан на странице date_default_timezone_get(). Смотрите также Список поддерживаемых часовых поясов.

Замечание: Первые четыре опции настройки в настоящее время используются только в функциях date_sunrise() и date_sunset().


Предопределённые константы

Константы DATE_ предлагают стандартные представления даты, которые могут быть использованы вместе с функциями форматирования даты (например date()).

Следующие константы определяют формат возвращаемый функциями date_sunrise() и date_sunset().

SUNFUNCS_RET_TIMESTAMP (int)
Время в секундах с начала эпохи Unix
SUNFUNCS_RET_STRING (int)
Часы:минуты (например: 08:02)
SUNFUNCS_RET_DOUBLE (int)
Часы как число с плавающей точкой (например: 8.75)


  • « Предопределённые константы
  • Арифметика даты/времени »
  • PHP Manual
  • Дата/время
  • Примеры

Примеры

Содержание

  • Арифметика даты/времени


Арифметика даты/времени

В следующих примерах показываются некоторые подводные камни вычислений даты/времени, относительно переходов на летнее и зимнее время (DST), и месяцев, имеющих разное количество дней.

Пример #1 DateTimeImmutable::add/sub добавляет интервалы, охватывающие прошедшее время

Добавление PT24H через переход DST приведёт к добавлению 23/25 часов (для большинства часовых поясов).

<?php
$dt = new DateTimeImmutable("2015-11-01 00:00:00", new DateTimeZone("America/New_York"));
echo "Начало: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $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 DateTimeImmutable::modify и strtotime увеличит или уменьшит значения индивидуальных компонентов

Добавление +24 часов через переход DST добавит точно 24 часов (вместо учёта перехода на зимнее или летнее время).

<?php
$dt = new DateTimeImmutable("2015-11-01 00:00:00", new DateTimeZone("America/New_York"));
echo "Начало: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $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 DateTimeImmutable("2015-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Начало: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("+1 month");
echo "Конец: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;

echo "Високосный год:\n"; // В феврале 29 дней
$dt = new DateTimeImmutable("2016-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Начало: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $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

Для получения последнего дня следующего месяца (то есть чтобы предотвратить переполнение) существует директива last day of.

<?php
echo "Обычный год:\n"; // Февраль содержит 28 дней
$dt = new DateTimeImmutable("2015-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Начало: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("last day of next month");
echo "Конец: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;

echo "Високосный год:\n"; // Февраль содержит 29 дней
$dt = new DateTimeImmutable("2016-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Начало: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $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, PHP 8)

Введение

Представление даты и времени.

Класс ведёт себя так же, как и DateTimeImmutable, за исключением того, что объекты модифицируются сами при вызове таких методов модификации, как DateTime::modify().

Внимание

Вызов методов для объектов класса DateTime изменит информацию, заключённую в этих объектах, если вы хотите предотвратить это, вам придётся использовать оператор clone для создания нового объекта. Используйте класс DateTimeImmutable вместо DateTime, чтобы получить рекомендуемое поведение по умолчанию.

Обзор классов

class DateTime implements DateTimeInterface {
/* Наследуемые константы */
public const string DateTimeInterface::ATOM = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T";
public const string DateTimeInterface::ISO8601 = "Y-m-d\\TH:i:sO";
public const string DateTimeInterface::ISO8601_EXPANDED = "X-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC822 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T";
public const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC7231 = "D, d M Y H:i:s \\G\\M\\T";
public const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC3339 = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\\TH:i:s.vP";
public const string DateTimeInterface::RSS = "D, d M Y H:i:s O";
public const string DateTimeInterface::W3C = "Y-m-d\\TH:i:sP";
/* Методы */
public __construct(string $datetime = "now", ?DateTimeZone $timezone = null)
public add(DateInterval $interval): DateTime
public static createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false
public static createFromImmutable(DateTimeImmutable $object): static
public static createFromInterface(DateTimeInterface $object): DateTime
public modify(string $modifier): DateTime|false
public static __set_state(array $array): DateTime
public setDate(int $year, int $month, int $day): DateTime
public setISODate(int $year, int $week, int $dayOfWeek = 1): DateTime
public setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTime
public setTimestamp(int $timestamp): DateTime
public setTimezone(DateTimeZone $timezone): DateTime
public sub(DateInterval $interval): DateTime
public diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public format(string $format): string
public getOffset(): int
public getTimestamp(): int
public getTimezone(): DateTimeZone|false
public __wakeup(): void
}

Список изменений

Версия | Описание
7.2.0 | Константы класса теперь DateTime определены в DateTimeInterface.
7.1.0 | Конструктор класса DateTime теперь включает текущие микросекунды. До этого он всегда инициализировал микросекунды со значением 0.

Содержание

  • DateTime::add — Изменяет объект DateTime, добавляя количество дней, месяцев, лет, часов, минут и секунд
  • DateTime::__construct — Конструктор класса DateTime
  • DateTime::createFromFormat — Разбирает строку с датой согласно указанному формату
  • DateTime::createFromImmutable — Возвращает экземпляр DateTime инкапсулирующий заданный объект DateTimeImmutable
  • DateTime::createFromInterface — Возвращает новый объект DateTime, созданный из переданного объекта, реализующего интерфейс DateTimeInterface
  • DateTime::getLastErrors — Псевдоним DateTimeImmutable::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, PHP 8)

DateTime::add -- date_add — Изменяет объект DateTime, добавляя количество дней, месяцев, лет, часов, минут и секунд

Описание

Объектно-ориентированный стиль

public DateTime::add(DateInterval $interval): DateTime

Процедурный стиль

date_add(DateTime $object, DateInterval $interval): DateTime

Прибавляет заданный объект DateInterval к объекту DateTime.

Подобен методу DateTimeImmutable::add(), за исключением работы с объектом DateTime.

Процедурная версия принимает в качестве первого аргумента объект DateTime.

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

interval

Объект класса DateInterval.

Возвращаемые значения

Возвращает модифицированный объект DateTime для применения в цепи методов.

Смотрите также

  • DateTimeImmutable::add() - Возвращает новый объект с добавленным количеством дней, месяцев, лет, часов, минут и секунд


Конструктор класса DateTime

  • « DateTime::add
  • DateTime::createFromFormat »
  • PHP Manual
  • DateTime
  • Конструктор класса DateTime

DateTime::__construct

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::__construct — Конструктор класса DateTime

Описание

public DateTime::__construct(string $datetime = "now", ?DateTimeZone $timezone = null)

Этот конструктор похож на конструктор DateTimeImmutable::__construct(), но работает с объектом DateTime. Учтите, что вместо этого класса лучше работать с классом DateTimeImmutable и его функциями.

Возвращает новый объект DateTime.

Список параметров

datetime

Строка даты/времени. Объяснение корректных форматов дано в разделе Форматы даты и времени.

Если используется аргумент $timezone, то для получения текущего времени в новом объекте достаточно передать "now" в качестве этого аргумента.

timezone

Объект класса DateTimeZone, представляющий часовой пояс параметра $datetime.

Если аргумент $timezone не задан или null, будет использован текущий часовой пояс.

Замечание:

Значение аргумента $timezone, равно как и текущий часовой пояс не будут учитываться, если в качестве аргумента $datetime передаётся метка времени UNIX (например, @946684800) или время, в котором часовой пояс уже содержится (например, 2010-01-28T15:00:00+02:00).

Возвращаемые значения

Возвращает созданный объект класса DateTime.

Ошибки

Если будет передана недопустимая строка даты/времени, будет выброшено исключение DateMalformedStringException. До PHP 8.3 выбрасывалось исключение Exception.

Список изменений

Версия | Описание
8.3.0 | Теперь вместо исключения Exception выбрасывается исключение DateMalformedStringException, если передана недопустимая строка.

Смотрите также

  • DateTimeImmutable::__construct() - Возвращает новый объект DateTimeImmutable


Разбирает строку с датой согласно указанному формату

  • « DateTime::__construct
  • DateTime::createFromImmutable »
  • PHP Manual
  • DateTime
  • Разбирает строку с датой согласно указанному формату

DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::createFromFormat -- date_create_from_format — Разбирает строку с датой согласно указанному формату

Описание

Объектно-ориентированный стиль

public static DateTime::createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false

Процедурный стиль

date_create_from_format(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false

Возвращает новый объект DateTime, представляющий дату и время, заданные строкой datetime, которая была отформатирована в указанном format.

Подобен методу DateTimeImmutable::createFromFormat() и функции date_create_immutable_from_format(), но создаёт объект DateTime.

Этот метод, включая параметры, примеры и мнения, документирован на странице DateTimeImmutable::createFromFormat.

Список параметров

Смотрите параметры и их описание на странице метода DateTimeImmutable::createFromFormat.

Возвращаемые значения

Возвращает созданный экземпляр класса DateTime или false в случае возникновения ошибки.

Ошибки

Функция выбрасывает ValueError, если параметр datetime содержит нулевые байты.

Список изменений

Версия | Описание
8.0.21, 8.1.8, 8.2.0 | Теперь при передаче нулевых байтов в параметр datetime выбрасывается ValueError, который ранее молча игнорировался.

Примеры

Обширный набор примеров смотрите на странице DateTimeImmutable::createFromFormat.

Смотрите также

  • DateTimeImmutable::createFromFormat() - Разбирает строку с датой согласно указанному формату


Возвращает экземпляр DateTime инкапсулирующий заданный объект DateTimeImmutable

  • « DateTime::createFromFormat
  • DateTime::createFromInterface »
  • PHP Manual
  • DateTime
  • Возвращает экземпляр DateTime инкапсулирующий заданный объект DateTimeImmutable

DateTime::createFromImmutable

(PHP 7 >= 7.3.0, PHP 8)

DateTime::createFromImmutable — Возвращает экземпляр DateTime инкапсулирующий заданный объект DateTimeImmutable

Описание

public static DateTime::createFromImmutable(DateTimeImmutable $object): static

Список параметров

object

Неизменяемый объект DateTimeImmutable, который нуждается в преобразовании в изменяемую форму. Сам объект не изменяется, а вместо этого создаётся новый экземпляр DateTime, содержащий те же данные: дату, время и часовой пояс.

Возвращаемые значения

Возвращает новый объект класса DateTime.

Список изменений

Версия | Описание
8.0.0 | Метод теперь возвращает экземпляр текущего вызываемого класса; ранее он создавал новый экземпляр класса DateTime.

Примеры

Пример #1 Создание изменяемого объекта

<?php
$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");

$mutable = DateTime::createFromImmutable( $date );
?>


Возвращает новый объект DateTime, созданный из переданного объекта, реализующего интерфейс DateTimeInterface

  • « DateTime::createFromImmutable
  • DateTime::getLastErrors »
  • PHP Manual
  • DateTime
  • Возвращает новый объект DateTime, созданный из переданного объекта, реализующего интерфейс DateTimeInterface

DateTime::createFromInterface

(PHP 8)

DateTime::createFromInterface — Возвращает новый объект DateTime, созданный из переданного объекта, реализующего интерфейс DateTimeInterface

Описание

public static DateTime::createFromInterface(DateTimeInterface $object): DateTime

Список параметров

object

Объект, реализующий интерфейс DateTimeInterface, из которого надо получить изменяемую версию. Сам объект не модифицируется. На его основе создаётся новый объект DateTime, содержащий ту же информацию о дате, времени и часовом поясе.

Возвращаемые значения

Возвращает новый объект DateTime.

Примеры

Пример #1 Пример использования

<?php
$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");

$mutable = DateTime::createFromInterface($date);

$date = new DateTime("2014-06-20 11:45 Europe/London");
$also_mutable = DateTime::createFromInterface($date);
?>


Псевдоним DateTimeImmutable::getLastErrors

  • « DateTime::createFromInterface
  • DateTime::modify »
  • PHP Manual
  • DateTime
  • Псевдоним DateTimeImmutable::getLastErrors

DateTime::getLastErrors

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::getLastErrors — Псевдоним DateTimeImmutable::getLastErrors()

Описание

Функция является псевдонимом: DateTimeImmutable::getLastErrors()


Изменение временной метки

  • « DateTime::getLastErrors
  • DateTime::__set_state »
  • PHP Manual
  • DateTime
  • Изменение временной метки

DateTime::modify

date_modify

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::modify -- date_modify — Изменение временной метки

Описание

Объектно-ориентированный стиль

public DateTime::modify(string $modifier): DateTime|false

Процедурный стиль

date_modify(DateTime $object, string $modifier): DateTime|false

Изменяет метку времени объекта DateTime путём добавления или вычитания времени в формате, принятом для функции DateTimeImmutable::__construct().

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

modifier

Строка даты/времени. Объяснение корректных форматов дано в разделе Форматы даты и времени.

Возвращаемые значения

Возвращает модифицированный объект DateTime для применения в цепи методов или false в случае возникновения ошибки.

Ошибки

Только для объектно-ориентированного API: Если передана строка с недопустимой датой/временем, будет выброшено исключение DateMalformedStringException.

Список изменений

Версия | Описание
8.3.0 | Теперь вместо предупреждения в методе DateTime::modify() выбрасывается исключение DateMalformedStringException, если передана недопустимая строка. Функция date_modify() не была изменена.

Примеры

Пример #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

Пример #3 Поддерживаются все форматы даты и времени

<?php
$date = new DateTime('2020-12-31');

$date->modify('July 1st, 2023');
echo $date->format('Y-m-d H:i') . "\n";

$date->modify('Monday next week');
echo $date->format('Y-m-d H:i') . "\n";

$date->modify('17:30');
echo $date->format('Y-m-d H:i') . "\n";
?>

Результат выполнения данного примера:

2023-07-01 00:00
2023-07-03 00:00
2023-07-03 17:30

Смотрите также

  • strtotime() - Преобразует текстовое представление даты на английском языке в метку времени Unix
  • DateTimeImmutable::modify() - Создаёт новый объект с изменённой временной меткой
  • 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, PHP 8)

DateTime::__set_state — Обработчик __set_state

Описание

public static DateTime::__set_state(array $array): DateTime

Обработчик __set_state().

Подобен методу DateTimeImmutable::__set_state(), за исключением работы с объектом DateTime.

Список параметров

array

Массив для инициализации.

Возвращаемые значения

Возвращает новый экземпляр класса DateTime.


Устанавливает дату

  • « DateTime::__set_state
  • DateTime::setISODate »
  • PHP Manual
  • DateTime
  • Устанавливает дату

DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

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 в новое значение.

Подобен методу DateTimeImmutable::setDate(), за исключением работы с объектом DateTime и изменением существующего объекта.

Процедурная версия принимает объект DateTime в качестве первого аргумента.

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

year

Год новой даты.

month

Месяц новой даты.

day

День новой даты.

Возвращаемые значения

Возвращает модифицированный объект DateTime для применения в цепи методов.

Смотрите также

  • DateTimeImmutable::setDate() - Устанавливает дату


Устанавливает дату в формате ISO

  • « DateTime::setDate
  • DateTime::setTime »
  • PHP Manual
  • DateTime
  • Устанавливает дату в формате ISO

DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::setISODate -- date_isodate_set — Устанавливает дату в формате ISO

Описание

Объектно-ориентированный стиль

public DateTime::setISODate(int $year, int $week, int $dayOfWeek = 1): DateTime

Процедурный стиль

date_isodate_set(
DateTime $object,
int $year,
int $week,
int $dayOfWeek = 1
): DateTime

Установка даты в соответствии со стандартом ISO 8601, в котором использование недель и смещения в днях предпочтительней указания даты.

Подобен методу DateTimeImmutable::setISODate(), за исключением работы с объектом DateTime.

Процедурная версия принимает объект DateTime в качестве первого аргумента.

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

year

Год новой даты.

week

Неделя новой даты.

dayOfWeek

Смещение относительно начала недели.

Возвращаемые значения

Возвращает модифицированный объект DateTime для применения в цепи методов.

Смотрите также

  • DateTimeImmutable::setISODate() - Устанавливает дату в формате ISO


Устанавливает время

  • « DateTime::setISODate
  • DateTime::setTimestamp »
  • PHP Manual
  • DateTime
  • Устанавливает время

DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::setTime -- date_time_set — Устанавливает время

Описание

Объектно-ориентированный стиль

public DateTime::setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTime

Процедурный стиль

date_time_set(
DateTime $object,
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTime

Переустанавливает текущее значение времени объекта DateTime в новое значение.

Подобен методу DateTimeImmutable::setTime(), за исключением работы с объектом DateTime.

Процедурная версия принимает объект DateTime в качестве первого аргумента.

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

hour

Час нового времени.

minute

Минуты нового времени.

second

Секунды нового времени.

microsecond

Микросекунды.

Возвращаемые значения

Возвращает модифицированный объект DateTime для применения в цепи методов.

Список изменений

Версия | Описание
8.1.0 | Поведение с двойными существующими часами (во время перехода на летнее время) изменилось. Ранее PHP выбирал второе вхождение (после перехода на летнее время), а не первое (до перехода на летнее время).
7.1.0 | Добавлен параметр microsecond.

Смотрите также

  • DateTimeImmutable::setTime() - Устанавливает время


Устанавливает дату и время на основе метки времени Unix

  • « DateTime::setTime
  • DateTime::setTimezone »
  • PHP Manual
  • DateTime
  • Устанавливает дату и время на основе метки времени Unix

DateTime::setTimestamp

date_timestamp_set

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::setTimestamp -- date_timestamp_set — Устанавливает дату и время на основе метки времени Unix

Описание

Объектно-ориентированный стиль

public DateTime::setTimestamp(int $timestamp): DateTime

Процедурный стиль

date_timestamp_set(DateTime $object, int $timestamp): DateTime

Устанавливает дату и время, основываясь на метке времени Unix.

Подобен методу DateTimeImmutable::setTimestamp(), за исключением работы с объектом DateTime.

Процедурная версия принимает объект DateTime в качестве первого аргумента.

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

timestamp

Метка времени Unix, представляющая дату. Установка меток времени за пределами диапазона целых чисел (int) возможно при использовании DateTimeImmutable::modify() с форматом @.

Возвращаемые значения

Возвращает модифицированный объект DateTime для применения в цепи методов.

Смотрите также

  • DateTimeImmutable::setTimestamp() - Устанавливает дату и время на основе метки времени Unix


Устанавливает часовой пояс для объекта класса DateTime

  • « DateTime::setTimestamp
  • DateTime::sub »
  • PHP Manual
  • DateTime
  • Устанавливает часовой пояс для объекта класса DateTime

DateTime::setTimezone

date_timezone_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::setTimezone -- date_timezone_set — Устанавливает часовой пояс для объекта класса DateTime

Описание

Объектно-ориентированный стиль

public DateTime::setTimezone(DateTimeZone $timezone): DateTime

Процедурный стиль

date_timezone_set(DateTime $object, DateTimeZone $timezone): DateTime

Устанавливает новый часовой пояс для объекта (object) DateTime.

Подобен методу DateTimeImmutable::setTimezone(), за исключением работы с объектом DateTime.

Процедурная версия принимает объект DateTime в качестве первого аргумента.

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

timezone

Объект класса DateTimeZone, представляющий требуемый часовой пояс.

Возвращаемые значения

Возвращает объект 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

Смотрите также

  • DateTimeImmutable::setTimezone() - Устанавливает часовой пояс
  • 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, PHP 8)

DateTime::sub -- date_sub — Вычитает дни, месяцы, годы, часы, минуты и секунды из объекта DateTime

Описание

Объектно-ориентированный стиль

public DateTime::sub(DateInterval $interval): DateTime

Процедурный стиль

date_sub(DateTime $object, DateInterval $interval): DateTime

Вычитает из времени объекта DateTime заданный интервал DateInterval.

Подобен методу DateTimeImmutable::sub(), за исключением работы с объектом DateTime.

Процедурная версия принимает объект DateTime в качестве первого аргумента.

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

interval

Объект класса DateInterval

Возвращаемые значения

Возвращает модифицированный объект DateTime для применения в цепи методов.

Ошибки

Только объекто-ориентированный API: При попытке выполнить неподдерживаемую операцию, например, если в объекте DateInterval содержатся относительные характеристики времени (например, next weekday), будет выброшено исключение DateInvalidOperationException.

Список изменений

Версия | Описание
8.3.0 | Теперь вместо предупреждения в методе DateTime::sub() выбрасывается исключение DateInvalidOperationException, если была попытка выполнить неподдерживаемую операцию. Функция date_sub() не была изменена.

Смотрите также

  • DateTimeImmutable::sub() - Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд


Класс DateTimeImmutable

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Введение

Представление даты и времени.

Этот класс ведёт себя так же, как и класс DateTime, за исключением того, что при вызове методов изменения, таких как DateTime::modify(), возвращаются новые объекты.

Обзор классов

class DateTimeImmutable implements DateTimeInterface {
/* Наследуемые константы */
public const string DateTimeInterface::ATOM = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T";
public const string DateTimeInterface::ISO8601 = "Y-m-d\\TH:i:sO";
public const string DateTimeInterface::ISO8601_EXPANDED = "X-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC822 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T";
public const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC7231 = "D, d M Y H:i:s \\G\\M\\T";
public const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC3339 = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\\TH:i:s.vP";
public const string DateTimeInterface::RSS = "D, d M Y H:i:s O";
public const string DateTimeInterface::W3C = "Y-m-d\\TH:i:sP";
/* Методы */
public __construct(string $datetime = "now", ?DateTimeZone $timezone = null)
public add(DateInterval $interval): DateTimeImmutable
public static createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false
public static createFromInterface(DateTimeInterface $object): DateTimeImmutable
public static createFromMutable(DateTime $object): static
public static getLastErrors(): array|false
public modify(string $modifier): DateTimeImmutable|false
public static __set_state(array $array): DateTimeImmutable
public setDate(int $year, int $month, int $day): DateTimeImmutable
public setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable
public setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTimeImmutable
public setTimestamp(int $timestamp): DateTimeImmutable
public setTimezone(DateTimeZone $timezone): DateTimeImmutable
public sub(DateInterval $interval): DateTimeImmutable
public diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public format(string $format): string
public getOffset(): int
public getTimestamp(): int
public getTimezone(): DateTimeZone|false
public __wakeup(): void
}

Список изменений

Версия | Описание
7.1.0 | Конструктор класса DateTimeImmutable теперь включает текущие микросекунды. До этого он всегда инициализировал микросекунды со значением 0.

Содержание

  • DateTimeImmutable::add — Возвращает новый объект с добавленным количеством дней, месяцев, лет, часов, минут и секунд
  • DateTimeImmutable::__construct — Возвращает новый объект DateTimeImmutable
  • DateTimeImmutable::createFromFormat — Разбирает строку с датой согласно указанному формату
  • DateTimeImmutable::createFromInterface — Возвращает новый объект DateTimeImmutable, созданный из переданного объекта, реализующего интерфейс DateTimeInterface
  • 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, PHP 8)

DateTimeImmutable::add — Возвращает новый объект с добавленным количеством дней, месяцев, лет, часов, минут и секунд

Описание

public DateTimeImmutable::add(DateInterval $interval): DateTimeImmutable

Создаёт новый объект DateTimeImmutable и добавляет к нему указанный объект DateInterval для представления нового значения.

Список параметров

interval

Объект DateInterval.

Возвращаемые значения

Возвращает новый объект DateTimeImmutable с модифицированными данными.

Примеры

Пример #1 Пример использования DateTimeImmutable::add()

Объектно-ориентированный стиль

<?php
$date = new DateTimeImmutable('2000-01-01');
$newDate = $date->add(new DateInterval('P10D'));
echo $newDate->format('Y-m-d') . "\n";
?>

Пример #2 Дополнительный пример использования DateTimeImmutable::add()

<?php
$date = new DateTimeImmutable('2000-01-01');
$newDate = $date->add(new DateInterval('PT10H30S'));
echo $newDate->format('Y-m-d H:i:s') . "\n";

$date = new DateTimeImmutable('2000-01-01');
$newDate = $date->add(new DateInterval('P7Y5M4DT4H3M2S'));
echo $newDate->format('Y-m-d H:i:s') . "\n";
?>

Результат выполнения данного примера:

2000-01-01 10:00:30
2007-06-05 04:03:02

Пример #3 Будьте осторожны при добавлении месяцев

<?php
$date = new DateTimeImmutable('2000-12-31');
$interval = new DateInterval('P1M');

$newDate1 = $date->add($interval);
echo $newDate1->format('Y-m-d') . "\n";

$newDate2 = $newDate1->add($interval);
echo $newDate2->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2001-01-31
2001-03-03

Смотрите также

  • DateTimeImmutable::sub() - Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд
  • DateTimeImmutable::diff() - Возвращает разницу между двумя объектами DateTime
  • DateTimeImmutable::modify() - Создаёт новый объект с изменённой временной меткой


Возвращает новый объект DateTimeImmutable

  • « DateTimeImmutable::add
  • DateTimeImmutable::createFromFormat »
  • PHP Manual
  • DateTimeImmutable
  • Возвращает новый объект DateTimeImmutable

DateTimeImmutable::__construct

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::__construct -- date_create_immutable — Возвращает новый объект DateTimeImmutable

Описание

Объектно-ориентированный стиль

public DateTimeImmutable::__construct(string $datetime = "now", ?DateTimeZone $timezone = null)

Процедурный стиль

date_create_immutable(string $datetime = "now", ?DateTimeZone $timezone = null): DateTimeImmutable|false

Возвращает новый объект DateTimeImmutable.

Список параметров

datetime

Строка даты/времени. Объяснение корректных форматов дано в разделе Форматы даты и времени.

Для получения текущего времени в параметр timezone можно передать строку "now".

timezone

Объект DateTimeZone, представляющий часовой пояс параметра datetime.

Если параметр timezone опущен или равен null, будет использован текущий часовой пояс.

Замечание:

Параметр timezone и текущий часовой пояс будут проигнорированы, если параметр datetime либо является временной меткой UNIX (например, @946684800), либо указан часовой пояс (например, 2010-01-28T15:00:00+02:00 или 2010-07-05T06:00:00Z).

Возвращаемые значения

Возвращает новый экземпляр DateTimeImmutable.

Ошибки

Если будет передана строка с неправильной датой/временем, будет выброшено исключение DateMalformedStringException. До PHP 8.3 выбрасывалось исключение Exception.

Список изменений

Версия | Описание
8.3.0 | Теперь вместо исключения Exception выбрасывается исключение DateMalformedStringException, если передана неверная строка.
7.1.0 | Отныне микросекунды заполняются фактическим значением. Не '00000'.

Примеры

Пример #1 Пример использования DateTimeImmutable::__construct()

Объектно-ориентированный стиль

<?php
try {
$date = new DateTimeImmutable('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 Тонкости DateTimeImmutable::__construct()

<?php
// Указанная дата/время в часовом поясе вашего компьютера.
$date = new DateTimeImmutable('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Указанная дата/время в указанном часовом поясе.
$date = new DateTimeImmutable('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Текущая дата/время в часовом поясе вашего компьютера.
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:sP') . "\n";

// Текущая дата/время в указанном часовом поясе.
$date = new DateTimeImmutable('now', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Использование временной метки UNIX. Обратите внимание, что результат в часовом поясе UTC.
$date = new DateTimeImmutable('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Несуществующие значения переворачиваются.
$date = new DateTimeImmutable('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

Пример #3 Изменение связанного часового пояса

<?php
$timeZone = new \DateTimeZone('Asia/Tokyo');

$time = new \DateTimeImmutable();
$time = $time->setTimezone($timeZone);

echo $time->format('Y/m/d H:i:s'), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

2022/08/12 23:49:23

Пример #4 Использование относительной строки даты/времени

<?php
$time = new \DateTimeImmutable("-1 year");

echo $time->format('Y/m/d H:i:s'), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

2021/08/12 15:43:51


Разбирает строку с датой согласно указанному формату

  • « DateTimeImmutable::__construct
  • DateTimeImmutable::createFromInterface »
  • PHP Manual
  • DateTimeImmutable
  • Разбирает строку с датой согласно указанному формату

DateTimeImmutable::createFromFormat

date_create_immutable_from_format

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::createFromFormat -- date_create_immutable_from_format — Разбирает строку с датой согласно указанному формату

Описание

Объектно-ориентированный стиль

public static DateTimeImmutable::createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false

Процедурный стиль

date_create_immutable_from_format(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false

Возвращает новый объект DateTimeImmutable, представляющий дату и время, указанные строкой в параметре datetime, которые были отформатированы в заданном формате format.

Список параметров

format

Формат даты и времени в виде строки (string), которому соответствует значение второго аргумента функции. Список вариантов форматирования представлен ниже. В большинстве случаев, при форматировании используются те же символы, что и в функции date().

Все поля инициализируются с текущей датой/временем. В большинстве случаев будет необходимо их "обнулить" (эпоха Unix, 1970-01-01 00:00:00 UTC). Для этого нужно добавить символ ! в качестве первого символа параметра format или | в качестве последнего. Для получения дополнительной информации смотрите документацию по каждому символу ниже.

Формат разбирается слева направо, это означает, что в некоторых ситуациях порядок присутствия символов формата влияет на результат. В случае z (день года) требуется, чтобы год уже был разобран, например, с помощью символов Y или y.

Символы для разбора чисел допускают широкий диапазон значений, выходящий за пределы логического диапазона. Например, d (день месяца) принимает значения в диапазоне от 00 до 99. Единственным ограничением является количество цифр. Когда задаются выходящие за пределы диапазона значения, срабатывает механизм переполнения анализатора даты/времени. Ниже показано несколько примеров такого поведения.

Это означает, что разобранные данные для буквы формата являются жадными и будут считываться до количества цифр, допускаемого форматом. Также это означает, что в строке datetime уже не хватает символов для следующих символов формата. Пример на этой странице также иллюстрирует эту проблему.

Список возможных символов для составления строки format
Символ в строке format | Описание | Возможные значения
День --- ---
d и j | День месяца, 2 цифры с нулём в начале или без него | От 01 до 31 либо от 1 до 31. (допускается использование двузначных чисел, превышающих количество дней в месяце, в этом случае разница переносится на следующий месяц. Например, использование числа 33 с январём означает 2 февраля)
D и l | Текстовое представление дня недели | От Mon до Sun либо от Sunday до Saturday. Если заданное имя дня отличается от имени дня, принадлежащего разобранной дате (или дате по умолчанию), то происходит переполнение до следующей даты с заданным именем дня. Смотрите примеры ниже для объяснения.
S | Суффикс для числа в английской нумерации, 2 буквы. Эти буквы будут пропущены при разборе строки. | st, nd, rd или th.
z | Номер дня с начала года (начиная с 0); должно предшествовать Y или y. | C 0 по 365. (Допускаются трёхзначные числа, превышающие числа в году, в этом случае разница переносится на следующий год. Например, использование числа 366 с 2022 годом означает 2 января 2023 года)
Месяц --- ---
F и M | Текстовое представление месяца, например January или Sept | С January по December либо с Jan по Dec
m и n | Числовое представление месяца с первым нулём или без него | С 01 по 12 либо с 1 по 12. (Допускаются двузначные числа больше 12, в этом случае разница переносится на следующий год. Например, использование числа 13 означает январь в следующем году)
Год --- ---
X и x | Полное числовое представление года, до 19 цифр, с префиксом + или -. | Примеры: 0055, 787, 1999, -2003, +10191
Y | Полное числовое представление года, до 4 цифр. | Примеры: 0055, 787, 1999, 2003.
y | 2 цифры в представлении года (в диапазоне 1970-2069 включительно) | Примеры: 99 или 03 (будет расшифровано как 1999 и 2003 соответственно)
Время --- ---
a и A | До полудня и После полудня | am или pm
g и h | 12-ти часовой формат времени с первым нулём или без него | С 1 по 12 либо с 01 по 12. (допускается использование двузначных чисел больше 12, в этом случае разница переносится на следующий день. Например, использование числа 14 означает 02 в следующем периоде AM/PM)
G и H | 24-х часовой формат времени с нулём в начале или без него | С 0 по 23 или с 00 по 23 (допускаются двузначные числа больше 24, в этом случае разница переносится на следующий день. Например, использование 26 означает 02:00 следующего дня)
i | Минуты с нулём в начале | С 00 по 59. (допускается использование двузначных чисел больше 59, в этом случае разница переносится на следующий час. Например, использование числа 66 означает :06 следующего часа)
s | Секунды с нулём в начале | От 00 до 59. (допускаются двузначные числа больше 59, в этом случае разница переносится на следующую минуту. Например, использование числа 90 означает :30 следующей минуты)
v | Дробь в миллисекундах (до 3 цифр) | Примеры: 12 (0.12 секунд), 345 (0.345 секунд)
u | Дробь в микросекундах (до 6 цифр) | Примеры: 45 (0.45 секунд), 654321 (0.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
Пробел и Разделители --- ---
(пробел) | Ноль или несколько символов пробела, табуляции, неразрывного пробела NBSP (U+A0) или узкого неразрывного пробела NNBSP (U+202F) | Пример: "\t", " "
# Один из следующих символов: ;, :, /, ., ,, -, ( или ) Пример: /
;, :, /, ., ,, -, ( или ) | Символ разделитель. | Пример: -
? Один случайный (любой) символ Пример: ^ (Будьте внимательны: в UTF-8 кодировке вам может потребоваться более одного ?, так как там один символ может занимать более одного байта. В таких случаях может помочь использование *.
* Любое количество любых символов до следующего разделителя Пример: * в Y-*-d для строки 2009-aWord-08 будет соответствовать aWord
! Сбрасывает все поля (год, месяц, день, час, минута, секунда и часовой пояс) до нулевых значений (0 для часа, минуты, секунды, 1 для месяца и дня, 1970 для года и UTC для информации о часовом поясе). Без ! все поля будут соответствовать текущему времени.
| Сбрасывает значения незаданных полей (год, месяц, день, час, минута, секунда, часовой пояс) до нулевых значений. Y-m-d| установит год, месяц и день в соответствии с данными в строке, а часы, минуты и секунды установит в 0.
+ Если задан этот спецификатор, данные, завершающие строку (нуль байт например) не будут вызывать ошибку, только предупреждение Используйте DateTime::getLastErrors() для определения, были ли в строке завершающие символы.

Наличие в строке формата нераспознаваемых символов, отсутствующих в списке выше, приведёт к ошибке разбора строки. В этом случае сообщение об ошибке будет добавлено в возвращаемую структуру. Получить это сообщение можно с помощью функции DateTime::getLastErrors().

Для вставки в format буквенного символа, вы должны экранировать его с помощью обратного слеша(\).

Если format не содержит символ !, то значения полей, не заданных в строке формата, будут установлены в соответствии с текущим временем.

Если format содержит символ !, то значения полей, не заданных в строке формата (равно как и значения полей слева от !) будут установлены в соответствии со значениями полей начала Эпохи Unix.

Если любой символ времени разобран, то все остальные поля, связанные с временем, устанавливаются в "0", если они также не разобраны.

Начало эпохи Unix 1970-01-01 00:00:00 UTC.

datetime

Строка, представляющая время.

timezone

Объект класса DateTimeZone, представляющий ожидаемый часовой пояс.

Если timezone не указан или null и datetime не содержит часовой пояс, то будет использован текущий часовой пояс.

Замечание:

Параметр timezone и текущий часовой пояс будут проигнорированы, если параметр datetime также содержит метку времени UNIX (то есть timestamp вида 946684800) или же указанный часовой пояс (то есть 2010-01-28T15:00:00+02:00).

Возвращаемые значения

Возвращает новый экземпляр DateTimeImmutable или false в случае возникновения ошибки.

Ошибки

Функция выбрасывает ValueError, если параметр datetime содержит нулевые байты.

Список изменений

Версия | Описание
8.2.9 | Спецификатор (пробел) теперь также поддерживает символы неразрывного пробела NBSP (U+A0) и узкого неразрывного пробела NNBSP (U+202F).
8.2.0 | Добавлены спецификаторы X и x параметру format.
8.0.21, 8.1.8, 8.2.0 | Теперь, когда в параметр datetime передаются нулевые байты, выбрасывается исключение ValueError, ранее такая ситуация игнорировалась.
7.3.0 | Добавлен спецификатор v параметру format.

Примеры

Пример #1 Пример использования DateTimeImmutable::createFromFormat()

Объектно-ориентированный стиль

<?php
$date = DateTimeImmutable::createFromFormat('j-M-Y', '15-Feb-2009');
echo $date->format('Y-m-d');
?>

Пример #2 Использование предопределённых констант формата с помощью DateTimeImmutable::createFromFormat()

Объектно-ориентированный стиль

<?php
$date = DateTimeImmutable::createFromFormat(DateTimeInterface::ISO8601, '2004-02-12T15:19:21+00:00');
$date = DateTimeImmutable::createFromFormat(DateTimeInterface::RFC3339_EXTENDED, '2013-10-14T09:00:00.000+02:00');
?>

Константы форматирования, используемые в данном примере, состоят из строки символов для форматирования объекта DateTimeImmutable. В большинстве случаев эти буквы совпадают с теми же элементами информации о дате/времени, которые определены в параметрах выше, но они, как правило, более мягкие.

Пример #3 Тонкости DateTimeImmutable::createFromFormat()

<?php
echo 'Текущее время: ' . date('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d';
$date = DateTimeImmutable::createFromFormat($format, '2009-02-15');
echo "Формат: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d H:i:s';
$date = DateTimeImmutable::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 = DateTimeImmutable::createFromFormat($format, '2009-02-15 15:16:17');
echo "Формат: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = '!d';
$date = DateTimeImmutable::createFromFormat($format, '15');
echo "Формат: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'i';
$date = DateTimeImmutable::createFromFormat($format, '15');
echo "Формат: $format; " . $date->format('Y-m-d H:i:s') . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Текущее время: 2022-06-02 15:50:46
Формат: Y-m-d; 2009-02-15 15:50:46
Формат: 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
Формат: i; 2022-06-02 00:15:00

Пример #4 Форматирование строки с помощью литеральных символов

<?php
echo DateTimeImmutable::createFromFormat('H\h i\m s\s','23h 15m 03s')->format('H:i:s');
?>

Результатом выполнения данного примера будет что-то подобное:

23:15:03

Пример #5 Поведение при переполнении

<?php
echo DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2021-17-35 16:60:97')->format(DateTimeImmutable::RFC2822);
?>

Результатом выполнения данного примера будет что-то подобное:

Sat, 04 Jun 2022 17:01:37 +0000

Хотя результат выглядит странно, он правильный, так как случаются следующие переполнения:

  1. 97 секунд переваливают за 1 минуту, оставляя 37 секунд.
  2. 61 минут переваливает за 1 час, оставляя 1 минуту.
  3. 35 дней переваливают за 1 месяц, оставляя 4 дня. Количество оставшихся дней зависит от месяца, так как не в каждом месяце одинаковое количество дней.
  4. 18 месяцев переваливают за 1 год, оставляя 6 месяцев.

Пример #6 Поведение имени переполненного дня

<?php
$d = DateTime::createFromFormat(DateTimeInterface::RFC1123, 'Mon, 3 Aug 2020 25:00:00 +0000');
echo $d->format(DateTime::RFC1123), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Mon, 10 Aug 2020 01:00:00 +0000

Хотя результат выглядит странно, он правильный, так как случаются следующие переполнения:

  1. 3 Aug 2020 25:00:00 переваливает за (Tue) 4 Aug 2020 01:00.
  2. Применяется Mon, что переводит дату на Mon, 10 Aug 2020 01:00:00. Объяснение относительных ключевых слов, таких как Mon, описано в разделе относительные форматы.

Для обнаружения переполнений в датах можно использовать метод DateTimeImmutable::getLastErrors(), который будет включать предупреждение, если произошло переполнение.

Пример #7 Обнаружение переполнения дат

<?php
$d = DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2021-17-35 16:60:97');
echo $d->format(DateTimeImmutable::RFC2822), "\n\n";

var_dump(DateTimeImmutable::GetLastErrors());
?>

Результатом выполнения данного примера будет что-то подобное:

Sat, 04 Jun 2022 17:01:37 +0000

array(4) {
  'warning_count' =>
  int(2)
  'warnings' =>
  array(1) {
    [19] =>
    string(27) "The parsed date was invalid"
  }
  'error_count' =>
  int(0)
  'errors' =>
  array(0) {
  }
}

Пример #8 Жадное поведение при разборе

<?php
print_r(date_parse_from_format('Gis', '60101'));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [year] =>
    [month] =>
    [day] =>
    [hour] => 60
    [minute] => 10
    [second] => 0
    [fraction] => 0
    [warning_count] => 1
    [warnings] => Array
        (
            [5] => The parsed time was invalid
        )

    [error_count] => 1
    [errors] => Array
        (
            [4] => A two digit second could not be found
        )

    [is_localtime] =>
)

Формат G предназначен для разбора 24-часовых часов с ведущим нулём или без него. Для этого необходимо разобрать 1 или 2 цифры. Так как есть две следующие цифры, он жадно считывает это как 60.

Следующие символы формата i и s требуют двух цифр. Это означает, что 10 передаётся как минута (i) и что затем остаётся недостаточно цифр для разбора секунд (s).

На эту проблему указывает массив errors.

Кроме того, час 60 находится вне диапазона 0-24, что добавляет предупреждение в массив warnings о том, что время является недействительным.

Смотрите также

  • DateTimeImmutable::__construct() - Возвращает новый объект DateTimeImmutable
  • DateTimeImmutable::getLastErrors() - Возвращает предупреждения и ошибки
  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • strptime() - Разбирает строку даты/времени, сгенерированную функцией strftime


Возвращает новый объект DateTimeImmutable, созданный из переданного объекта, реализующего интерфейс DateTimeInterface

  • « DateTimeImmutable::createFromFormat
  • DateTimeImmutable::createFromMutable »
  • PHP Manual
  • DateTimeImmutable
  • Возвращает новый объект DateTimeImmutable, созданный из переданного объекта, реализующего интерфейс DateTimeInterface

DateTimeImmutable::createFromInterface

(PHP 8)

DateTimeImmutable::createFromInterface — Возвращает новый объект DateTimeImmutable, созданный из переданного объекта, реализующего интерфейс DateTimeInterface

Описание

public static DateTimeImmutable::createFromInterface(DateTimeInterface $object): DateTimeImmutable

Список параметров

object

Объект, реализующий интерфейс DateTimeInterface, который необходимо сконвертировать в иммутабельную версию. Сам объект не изменяется. Вместо этого возвращается новый объект DateTimeImmutable с теми же значениями даты, времени и часового пояса.

Возвращаемые значения

Возвращает новый объект DateTimeImmutable.

Примеры

Пример #1 Создание иммутабельного объекта даты и времени

<?php
$date = new DateTime("2014-06-20 11:45 Europe/London");

$immutable = DateTimeImmutable::createFromInterface($date);

$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");
$also_immutable = DateTimeImmutable::createFromInterface($date);
?>


Возвращает новый экземпляр DateTimeImmutable, содержащий заданный объект DateTime

  • « DateTimeImmutable::createFromInterface
  • DateTimeImmutable::getLastErrors »
  • PHP Manual
  • DateTimeImmutable
  • Возвращает новый экземпляр DateTimeImmutable, содержащий заданный объект DateTime

DateTimeImmutable::createFromMutable

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

DateTimeImmutable::createFromMutable — Возвращает новый экземпляр DateTimeImmutable, содержащий заданный объект DateTime

Описание

public static DateTimeImmutable::createFromMutable(DateTime $object): static

Список параметров

object

Изменяемый объект DateTime, который вы хотите преобразовать в неизменяемую версию. Этот объект не изменяется, но вместо этого создаётся новый экземпляр DateTimeImmutable, содержащий ту же самую информацию.

Возвращаемые значения

Возвращает новый экземпляр DateTimeImmutable.

Список изменений

Версия | Описание
8.0.0 | Метод теперь возвращает экземпляр текущего вызываемого класса; ранее он создавал новый экземпляр класса DateTimeImmutable.

Примеры

Пример #1 Создание неизменяемого объекта даты/времени

<?php
$date = new DateTime("2014-06-20 11:45 Europe/London");

$immutable = DateTimeImmutable::createFromMutable( $date );
?>


Возвращает предупреждения и ошибки

  • « DateTimeImmutable::createFromMutable
  • DateTimeImmutable::modify »
  • PHP Manual
  • DateTimeImmutable
  • Возвращает предупреждения и ошибки

DateTimeImmutable::getLastErrors

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::getLastErrors — Возвращает предупреждения и ошибки

Описание

public static DateTimeImmutable::getLastErrors(): array|false

Возвращает массив содержащий сообщения об ошибках и предупреждения, обнаруженные при разборе строки даты/времени.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий информацию о предупреждениях и ошибках или false, если нет ни предупреждений, ни ошибок.

Список изменений

Версия | Описание
8.2.0 | До версии PHP 8.2.0 функция не возвращала false, если не было предупреждений или ошибок. Вместо этого она всегда возвращала задокументированную структуру массива.

Примеры

Пример #1 Пример использования DateTimeImmutable::getLastErrors()

<?php
try {
$date = new DateTimeImmutable('asdfasdf');
} catch (Exception $e) {
// Только в целях демонстрации...
print_r(DateTimeImmutable::getLastErrors());

// в объектно-ориентированном стиле лучше делать так:
// echo $e->getMessage();
}
?>

Результат выполнения данных примеров:

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 указывают на символьные позиции в строке, где произошла ошибка.


Создаёт новый объект с изменённой временной меткой

  • « DateTimeImmutable::getLastErrors
  • DateTimeImmutable::__set_state »
  • PHP Manual
  • DateTimeImmutable
  • Создаёт новый объект с изменённой временной меткой

DateTimeImmutable::modify

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::modify — Создаёт новый объект с изменённой временной меткой

Описание

public DateTimeImmutable::modify(string $modifier): DateTimeImmutable|false

Создаёт новый объект DateTimeImmutable с изменённой временной меткой. Первоначальный объект не изменяется.

Список параметров

modifier

Строка даты/времени. Объяснение корректных форматов дано в разделе Форматы даты и времени.

Возвращаемые значения

Возвращает новый модифицированный объект DateTimeImmutable или false в случае возникновения ошибки.

Ошибки

Если передана строка с недопустимой датой/временем, выбрасывается исключение DateMalformedStringException. До PHP 8.3 появлялось предупреждение.

Список изменений

Версия | Описание
8.3.0 | Теперь вместо предупреждения выбрасывается исключение DateMalformedStringException, если передана недопустимая строка.

Примеры

Пример #1 Пример использования DateTimeImmutable::modify()

Объектно-ориентированный стиль

<?php
$date = new DateTimeImmutable('2006-12-12');
$newDate = $date->modify('+1 day');
echo $newDate->format('Y-m-d');
?>

Результат выполнения данных примеров:

2006-12-13

Пример #2 Будьте осторожны при сложении или вычитании месяцев

<?php
$date = new DateTimeImmutable('2000-12-31');

$newDate1 = $date->modify('+1 month');
echo $newDate1->format('Y-m-d') . "\n";

$newDate2 = $newDate1->modify('+1 month');
echo $newDate2->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2001-01-31
2001-03-03

Смотрите также

  • DateTimeImmutable::add() - Возвращает новый объект с добавленным количеством дней, месяцев, лет, часов, минут и секунд
  • DateTimeImmutable::sub() - Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд
  • DateTimeImmutable::setDate() - Устанавливает дату
  • DateTimeImmutable::setISODate() - Устанавливает дату в формате ISO
  • DateTimeImmutable::setTime() - Устанавливает время
  • DateTimeImmutable::setTimestamp() - Устанавливает дату и время на основе метки времени Unix


Обработчик __set_state

  • « DateTimeImmutable::modify
  • DateTimeImmutable::setDate »
  • PHP Manual
  • DateTimeImmutable
  • Обработчик __set_state

DateTimeImmutable::__set_state

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::__set_state — Обработчик __set_state

Описание

public static DateTimeImmutable::__set_state(array $array): DateTimeImmutable

Обработчик __set_state().

Список параметров

array

Инициализирующий массив.

Возвращаемые значения

Возвращает новый экземпляр объекта DateTimeImmutable.


Устанавливает дату

  • « DateTimeImmutable::__set_state
  • DateTimeImmutable::setISODate »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает дату

DateTimeImmutable::setDate

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setDate — Устанавливает дату

Описание

public DateTimeImmutable::setDate(int $year, int $month, int $day): DateTimeImmutable

Возвращает новый объект DateTimeImmutable с текущей датой объекта DateTimeImmutable, установленной на заданную дату.

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

year

Год даты.

month

Месяц даты.

day

День даты.

Возвращаемые значения

Возвращает новый объект DateTimeImmutable с модифицированными данными.

Примеры

Пример #1 Пример использования DateTimeImmutable::setDate()

Объектно-ориентированный стиль

<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2001, 2, 3);
echo $newDate->format('Y-m-d');
?>

Результат выполнения данных примеров:

2001-02-03

Пример #2 Значения, выходящие за пределы диапазона, добавляются к своим родительским значениям

<?php
$date = new DateTimeImmutable();

$newDate = $date->setDate(2001, 2, 28);
echo $newDate->format('Y-m-d') . "\n";

$newDate = $date->setDate(2001, 2, 29);
echo $newDate->format('Y-m-d') . "\n";

$newDate = $date->setDate(2001, 14, 3);
echo $newDate->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2001-02-28
2001-03-01
2002-02-03

Смотрите также

  • DateTimeImmutable::setISODate() - Устанавливает дату в формате ISO
  • DateTimeImmutable::setTime() - Устанавливает время


Устанавливает дату в формате ISO

  • « DateTimeImmutable::setDate
  • DateTimeImmutable::setTime »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает дату в формате ISO

DateTimeImmutable::setISODate

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setISODate — Устанавливает дату в формате ISO

Описание

public DateTimeImmutable::setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable

Возвращает новый объект DateTimeImmutable с датой, установленной в соответствии со стандартом ISO 8601 - с использованием смещения недель и дней, а не конкретных дат.

Список параметров

year

Год даты.

week

Неделя даты.

dayOfWeek

Смещение от первого дня недели.

Возвращаемые значения

Возвращает новый объект DateTimeImmutable с модифицированными данными.

Примеры

Пример #1 Пример использования DateTimeImmutable::setISODate()

Объектно-ориентированный стиль

<?php
$date = new DateTimeImmutable();

$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 DateTimeImmutable();

$newDate = $date->setISODate(2008, 2, 7);
echo $newDate->format('Y-m-d') . "\n";

$newDate = $date->setISODate(2008, 2, 8);
echo $newDate->format('Y-m-d') . "\n";

$newDate = $date->setISODate(2008, 53, 7);
echo $newDate->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2008-01-13
2008-01-14
2009-01-04

Пример #3 Поиск месяца, в котором находится неделя

<?php
$date = new DateTimeImmutable();
$newDate = $date->setISODate(2008, 14);
echo $newDate->format('n');
?>

Результат выполнения данных примеров:

3

Смотрите также

  • DateTimeImmutable::setDate() - Устанавливает дату
  • DateTimeImmutable::setTime() - Устанавливает время


Устанавливает время

  • « DateTimeImmutable::setISODate
  • DateTimeImmutable::setTimestamp »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает время

DateTimeImmutable::setTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTime — Устанавливает время

Описание

public DateTimeImmutable::setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTimeImmutable

Возвращает новый объект DateTimeImmutable со временем, установленным на заданное время.

Список параметров

hour

Час времени.

minute

Минута времени.

second

Секунда времени.

microsecond

Микросекунда времени.

Возвращаемые значения

Возвращает новый объект DateTimeImmutable с модифицированными данными.

Список изменений

Версия | Описание
8.1.0 | Поведение с удвоением существующих часов (во время резервного перехода на летнее время) изменилось. Раньше PHP выбирал второе вхождение (после перехода на летнее время) вместо первого вхождения (до перехода на летнее время).
7.1.0 | Добавлен параметр microsecond.

Примеры

Пример #1 Пример использования DateTimeImmutable::setTime()

Объектно-ориентированный стиль

<?php
$date = new DateTimeImmutable('2001-01-01');

$newDate = $date->setTime(14, 55);
echo $newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(14, 55, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";
?>

Результатом выполнения данных примеров будет что-то подобное:

2001-01-01 14:55:00
2001-01-01 14:55:24

Пример #2 Значения, выходящие за пределы диапазона, добавляются к своим родительским значениям

<?php
$date = new DateTimeImmutable('2001-01-01');

$newDate = $date->setTime(14, 55, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(14, 55, 65);
echo $newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(14, 65, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(25, 55, 24);
echo $newDate->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

Смотрите также

  • DateTimeImmutable::setDate() - Устанавливает дату
  • DateTimeImmutable::setISODate() - Устанавливает дату в формате ISO


Устанавливает дату и время на основе метки времени Unix

  • « DateTimeImmutable::setTime
  • DateTimeImmutable::setTimezone »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает дату и время на основе метки времени Unix

DateTimeImmutable::setTimestamp

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTimestamp — Устанавливает дату и время на основе метки времени Unix

Описание

public DateTimeImmutable::setTimestamp(int $timestamp): DateTimeImmutable

Возвращает новый объект DateTimeImmutable, построенный из старого, с датой и временем, установленными на основе метки времени Unix.

Список параметров

timestamp

Метка времени Unix, представляющая дату. Установка меток времени вне диапазона целого числа (int) возможна при использовании метода DateTimeImmutable::modify() с форматом @.

Возвращаемые значения

Возвращает новый объект DateTimeImmutable с модифицированными данными.

Примеры

Пример #1 Пример использования DateTimeImmutable::setTimestamp()

Объектно-ориентированный стиль

<?php
$date = new DateTimeImmutable();
echo $date->format('U = Y-m-d H:i:s') . "\n";

$newDate = $date->setTimestamp(1171502725);
echo $newDate->format('U = Y-m-d H:i:s') . "\n";
?>

Результатом выполнения данных примеров будет что-то подобное:

1272508903 = 2010-04-28 22:41:43
1171502725 = 2007-02-14 20:25:25

Смотрите также

  • DateTimeImmutable::getTimestamp() - Возвращает временную метку Unix


Устанавливает часовой пояс

  • « DateTimeImmutable::setTimestamp
  • DateTimeImmutable::sub »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает часовой пояс

DateTimeImmutable::setTimezone

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTimezone — Устанавливает часовой пояс

Описание

public DateTimeImmutable::setTimezone(DateTimeZone $timezone): DateTimeImmutable

Возвращает новый объект DateTimeImmutable с установленным новым часовым поясом.

Список параметров

timezone

Объект DateTimeZone, представляющий желаемый часовой пояс.

Возвращаемые значения

Возвращает новый модифицированный объект DateTimeImmutable для цепочки методов. Лежащий в основе момент времени не изменяется при вызове метода.

Примеры

Пример #1 Пример использования DateTimeImmutable::setTimeZone()

Объектно-ориентированный стиль

<?php
$date = new DateTimeImmutable('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$newDate = $date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $newDate->format('Y-m-d H:i:sP') . "\n";
?>

Результат выполнения данных примеров:

2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45

Смотрите также

  • DateTimeImmutable::getTimezone() - Возвращает часовой пояс относительно текущего значения DateTime
  • DateTimeZone::__construct() - Создаёт новый объект DateTimeZone


Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд

  • « DateTimeImmutable::setTimezone
  • DateTimeInterface »
  • PHP Manual
  • DateTimeImmutable
  • Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд

DateTimeImmutable::sub

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::sub — Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд

Описание

public DateTimeImmutable::sub(DateInterval $interval): DateTimeImmutable

Возвращает новый объект DateTimeImmutable, в котором указанный объект DateInterval вычитается из указанного объекта DateTimeImmutable.

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

interval

Объект DateInterval.

Возвращаемые значения

Возвращает новый объект DateTimeImmutable с модифицированными данными.

Ошибки

При попытке выполнить неподдерживаемую операцию, например, если в объекте DateInterval содержатся относительные характеристики времени (например, next weekday), будет выброшено исключение.

Список изменений

Версия | Описание
8.3.0 | Теперь при попытке выполнить неподдерживаемую операцию вместо предупреждения выбрасывается исключение DateInvalidOperationException.

Примеры

Пример #1 Пример использования DateTimeImmutable::sub()

Объектно-ориентированный стиль

<?php
$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('P10D'));
echo $newDate->format('Y-m-d') . "\n";
?>

Результат выполнения данных примеров:

2000-01-10

Пример #2 Дополнительный пример DateTimeImmutable::sub()

<?php
$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('PT10H30S'));
echo $newDate->format('Y-m-d H:i:s') . "\n";

$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('P7Y5M4DT4H3M2S'));
echo $newDate->format('Y-m-d H:i:s') . "\n";
?>

Результат выполнения данного примера:

2000-01-19 13:59:30
1992-08-15 19:56:58

Пример #3 Будьте осторожны при вычитании месяцев

<?php
$date = new DateTimeImmutable('2001-04-30');
$interval = new DateInterval('P1M');

$newDate1 = $date->sub($interval);
echo $newDate1->format('Y-m-d') . "\n";

$newDate2 = $newDate1->sub($interval);
echo $newDate2->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2001-03-30
2001-03-02

Смотрите также

  • DateTimeImmutable::add() - Возвращает новый объект с добавленным количеством дней, месяцев, лет, часов, минут и секунд
  • DateTimeImmutable::diff() - Возвращает разницу между двумя объектами DateTime
  • DateTimeImmutable::modify() - Создаёт новый объект с изменённой временной меткой


Интерфейс DateTimeInterface

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Введение

Интерфейс DateTimeInterface обобщает работу DateTimeImmutable или DateTime. Невозможно реализовать этот интерфейс с пользовательским классом.

Общие константы, позволяющие форматировать объекты DateTimeImmutable или DateTime с помощью DateTimeImmutable::format() и DateTime::format() также определены в этом интерфейсе.

Обзор интерфейсов

interface DateTimeInterface {
/* Константы */
public const string ATOM = "Y-m-d\\TH:i:sP";
public const string COOKIE = "l, d-M-Y H:i:s T";
public const string ISO8601 = "Y-m-d\\TH:i:sO";
public const string ISO8601_EXPANDED = "X-m-d\\TH:i:sP";
public const string RFC822 = "D, d M y H:i:s O";
public const string RFC850 = "l, d-M-y H:i:s T";
public const string RFC1036 = "D, d M y H:i:s O";
public const string RFC1123 = "D, d M Y H:i:s O";
public const string RFC7231 = "D, d M Y H:i:s \\G\\M\\T";
public const string RFC2822 = "D, d M Y H:i:s O";
public const string RFC3339 = "Y-m-d\\TH:i:sP";
public const string RFC3339_EXTENDED = "Y-m-d\\TH:i:s.vP";
public const string RSS = "D, d M Y H:i:s O";
public const string W3C = "Y-m-d\\TH:i:sP";
/* Методы */
public diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public format(string $format): string
public getOffset(): int
public getTimestamp(): int
public getTimezone(): DateTimeZone|false
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, но остаётся для обратной совместимости. Вместо него используйте DateTimeInterface::ISO8601_EXPANDED или DateTimeInterface::ATOM для совместимости с ISO-8601. (ссылка на ISO8601:2004 раздел 4.3.3 пункт d)

DateTimeInterface::ISO8601_EXPANDED
DATE_ISO8601_EXPANDED
ISO-8601 Expanded (пример: +10191-07-26T08:59:52+01:00)

Замечание: Формат позволяет использовать диапазоны годов, выходящие за пределы обычного диапазона ISO-8601 (0000-9999), всегда включая символ знака. Он также учитывает, что часть часового пояса (+01:00) совместима с 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)
DateTimeInterface::RFC7231
DATE_RFC7231
RFC 7231 (с версии PHP 7.0.19 и 7.1.5) (пример: Sat, 30 Apr 2016 17:52:13 GMT)
DateTime::RFC2822
DATE_RFC2822
RFC 2822 (пример: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC3339
DATE_RFC3339
Тоже, что и DATE_ATOM
DateTime::RFC3339_EXTENDED
DATE_RFC3339_EXTENDED
Формат RFC 3339 EXTENDED (пример: 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)

Список изменений

Версия | Описание
8.2.0 | Добавлена константа DateTimeInterface::ISO8601_EXPANDED.
7.2.0 | Константы класса теперь DateTime определены в DateTimeInterface.

Содержание

  • DateTimeInterface::diff — Возвращает разницу между двумя объектами DateTime
  • DateTimeInterface::format — Возвращает дату, отформатированную согласно переданному формату
  • DateTimeInterface::getOffset — Возвращает смещение часового пояса
  • DateTimeInterface::getTimestamp — Возвращает временную метку Unix
  • DateTimeInterface::getTimezone — Возвращает часовой пояс относительно текущего значения DateTime
  • DateTime::__wakeup — Обработчик __wakeup


Возвращает разницу между двумя объектами DateTime

  • « DateTimeInterface
  • DateTimeInterface::format »
  • PHP Manual
  • DateTimeInterface
  • Возвращает разницу между двумя объектами DateTime

DateTimeInterface::diff

DateTimeImmutable::diff

DateTime::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTimeInterface::diff -- DateTimeImmutable::diff -- DateTime::diff -- date_diff — Возвращает разницу между двумя объектами DateTime

Описание

Объектно-ориентированный стиль

public DateTimeInterface::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public DateTimeImmutable::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public DateTime::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval

Процедурный стиль

date_diff(DateTimeInterface $baseObject, DateTimeInterface $targetObject, bool $absolute = false): DateInterval

Возвращает разницу между двумя объектами DateTimeInterface.

Список параметров

datetime

Дата и время для сравнения.

absolute

Определяет, будет ли интервал принудительно переведен в абсолютную величину.

Возвращаемые значения

Возвращает объект DateInterval, который представляет разницу между двумя датами.

Возвращаемое значение более конкретно представляет временной интервал, который при применении к исходному объекту ($this или $originObject) приводит к объекту $targetObject. Этот процесс не всегда обратим.

Метод учитывает смену часовых поясов и поэтому может возвращать интервал 24 hours and 30 minutes, как в одном из примеров. Если нужно рассчитывать по абсолютному времени, необходимо сначала преобразовать объекты $this/$baseObject и $targetObject в UTC.

Примеры

Пример #1 Пример использования метода DateTimeInterface::diff() с диапазоном дат

Значение, которое возвращает метод, — это точное количество времени, которое необходимо для перехода от времени объекта $this ко времени объекта $targetObject. Поэтому сравнение 1 января с 31 декабря возвращает 364 дня, а не 365 дней (для невисокосных годов).

<?php
$originalTime = new DateTimeImmutable("2023-01-01 UTC");
$targedTime = new DateTimeImmutable("2023-12-31 UTC");
$interval = $originalTime->diff($targedTime);
echo "Полных дней: ", $interval->format("%a"), "\n";
?>

Результат выполнения данного примера:

Полных дней: 364

Пример #2 Пример использования DateTimeImmutable::diff()

Объектно-ориентированный стиль

<?php
$origin = new DateTimeImmutable('2009-10-11');
$target = new DateTimeImmutable('2009-10-13');
$interval = $origin->diff($target);
echo $interval->format('%R%a дней');
?>

Процедурный стиль

<?php
$origin = date_create('2009-10-11');
$target = date_create('2009-10-13');
$interval = date_diff($origin, $target);
echo $interval->format('%R%a дней');
?>

Результат выполнения данных примеров:

+2 days

Пример #3 Пример использования DateTimeInterface::diff() во время перехода на летнее время

<?php
$originalTime = new DateTimeImmutable("2021-10-30 09:00:00 Europe/London");
$targedTime = new DateTimeImmutable("2021-10-31 08:30:00 Europe/London");
$interval = $originalTime->diff($targedTime);
echo $interval->format("%H:%I:%S (Полных дней: %a)"), "\n";
?>

Результат выполнения данного примера:

24:30:00 (Полных дней: 0)

Пример #4 Сравнение объектов DateTime

Замечание:

Объекты DateTimeImmutable и 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


Возвращает дату, отформатированную согласно переданному формату

  • « DateTimeInterface::diff
  • DateTimeInterface::getOffset »
  • PHP Manual
  • DateTimeInterface
  • Возвращает дату, отформатированную согласно переданному формату

DateTimeInterface::format

DateTimeImmutable::format

DateTime::format

date_format

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeInterface::format -- DateTimeImmutable::format -- DateTime::format -- date_format — Возвращает дату, отформатированную согласно переданному формату

Описание

Объектно-ориентированный стиль

public DateTimeInterface::format(string $format): string
public DateTimeImmutable::format(string $format): string
public DateTime::format(string $format): string

Процедурный стиль

date_format(DateTimeInterface $object, string $format): string

Возвращает строку даты, преобразованной согласно переданному формату.

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create().

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 | от 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) принадлежит предыдущему или следующему году; тогда будет использован год этой недели. | Примеры: 1999 или 2003
X | Расширенное полное числовое представление года, не менее 4 цифр, с - для годов до нашей эры и + для годов нашей эры. | Примеры: -0055, +0787, +1999, +10191
x | Расширенное полное числовое представление, если требуется или стандартное полное числовое представление, если возможно (например, Y). Не менее четырёх цифр. Для годов до нашей эры указан префикс -. У годов после (и включая) 10000 префикс +. | Примеры: -0055, 0787, 1999, +10191
Y | Полное числовое представление года, не менее 4 цифр, с - для годов до нашей эры. | Примеры: -0055, 0787, 1999, 2003, 10191.
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 | Микросекунды. Учтите, что date() всегда будет возвращать 000000, т.к. она принимает целочисленный (int) параметр, тогда как DateTime::format() поддерживает микросекунды, если DateTime создан с ними. | Например: 654321
v | Миллисекунды. Замечание такое же как и для u. | Пример: 654
Часовой пояс --- ---
e | Идентификатор часового пояса | Примеры: UTC, GMT, Atlantic/Azores
I (заглавная i) | Признак летнего времени | 1, если дата соответствует летнему времени, 0 в противном случае.
O | Разница с временем по Гринвичу без двоеточия между часами и минутами | Например: +0200
P | Разница с временем по Гринвичу с двоеточием между часами и минутами | Например: +02:00
p | То же, что и P, но возвращает Z вместо +00:00 (доступен, начиная с PHP 8.0.0) | Например: Z или +02:00
T | Аббревиатура часового пояса, если известна; в противном случае смещение по Гринвичу. | Примеры: EST, MDT, +05
Z | Смещение часового пояса в секундах. Для часовых поясов, расположенных западнее UTC, возвращаются отрицательные числа, а для расположенных восточнее UTC - положительные. | от -43200 до 50400
Полная дата/время --- ---
c | Дата в формате стандарта ISO 8601 | 2004-02-12T15:19:21+00:00
r | Дата в формате » RFC 222/» RFC 5322 | Например: Thu, 21 Dec 2000 16:01:07 +0200
U | Количество секунд, прошедших с начала Эпохи Unix (1 января 1970 00:00:00 GMT) | Смотрите также time()

Любые другие символы, встреченные в строке-шаблоне, будут выведены в результирующую строку без изменений. Z всегда возвращает 0 при использовании gmdate().

Замечание:

Поскольку рассматриваемая функция принимает в качестве параметра временные метки типа int, форматирующий символ u будет полезен только при использовании функции date_format() и пользовательских меток времени, созданных с помощью функции date_create().

Возвращаемые значения

Возвращает строку с отформатированной датой в случае успешного выполнения.

Список изменений

Версия | Описание
8.2.0 | Добавлены символы форматирования X и x.
8.0.0 | Добавлен символ форматирования p.

Примеры

Пример #1 Пример использования DateTimeInterface::format()

Объектно-ориентированный стиль

<?php
$date = new DateTimeImmutable('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

Пример #2 Больше примеров

<?php
// установка часового пояса по умолчанию.
date_default_timezone_set('UTC');

// сейчас
$date = new DateTimeImmutable();

// Выведет что-то подобное: Wednesday
echo $date->format('l'), "\n";

// Выведет что-то подобное: Wednesday 19th of October 2022 08:40:48 AM
echo $date->format('l jS \o\f F Y h:i:s A'), "\n";

/* Использование констант в параметре format */
// Выведет что-то подобное: Wed, 19 Oct 2022 08:40:48 +0000
echo $date->format(DateTimeInterface::RFC2822), "\n";
?>

Вы можете предотвратить расширение распознанного символа в строке формата, экранировав его предшествующим обратным слешем. Если слеш уже является специальной последовательностью, его также может потребоваться экранировать.

Пример #3 Экранирование символов во время форматирования

<?php
$date = new DateTimeImmutable();

// Выведет что-то подобное: Wednesday the 19th
echo $date->format('l \t\h\e jS');
?>

Для форматирования дат на других языках, вместо метода DateTimeInterface::format() можно использовать метод IntlDateFormatter::format().

Примечания

Данный метод не использует настройки локали. Вывод производится на английском языке.

Смотрите также

  • date() - Форматирует временную метку Unix


Возвращает смещение часового пояса

  • « DateTimeInterface::format
  • DateTimeInterface::getTimestamp »
  • PHP Manual
  • DateTimeInterface
  • Возвращает смещение часового пояса

DateTimeInterface::getOffset

DateTimeImmutable::getOffset

DateTime::getOffset

date_offset_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeInterface::getOffset -- DateTimeImmutable::getOffset -- DateTime::getOffset -- date_offset_get — Возвращает смещение часового пояса

Описание

Объектно-ориентированный стиль

public DateTimeInterface::getOffset(): int
public DateTimeImmutable::getOffset(): int
public DateTime::getOffset(): int

Процедурный стиль

date_offset_get(DateTimeInterface $object): int

Возвращает смещение часового пояса.

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create().

Возвращаемые значения

В случае успешного выполнения возвращает смещение часового пояса относительно UTC в секундах.

Примеры

Пример #1 Пример использования DateTime::getOffset()

Объектно-ориентированный стиль

<?php
$winter = new DateTimeImmutable('2010-12-21', new DateTimeZone('America/New_York'));
$summer = new DateTimeImmutable('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

  • « DateTimeInterface::getOffset
  • DateTimeInterface::getTimezone »
  • PHP Manual
  • DateTimeInterface
  • Возвращает временную метку Unix

DateTimeInterface::getTimestamp

DateTimeImmutable::getTimestamp

DateTime::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTimeInterface::getTimestamp -- DateTimeImmutable::getTimestamp -- DateTime::getTimestamp -- date_timestamp_get — Возвращает временную метку Unix

Описание

Объектно-ориентированный стиль

public DateTimeInterface::getTimestamp(): int
public DateTimeImmutable::getTimestamp(): int
public DateTime::getTimestamp(): int

Процедурный стиль

date_timestamp_get(DateTimeInterface $object): int

Возвращает временную метку Unix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает временную метку Unix для указанной даты.

Ошибки

Если не получится представить временную метку целым числом (int), будет выброшено исключение DateRangeError. До PHP 8.3.0 выбрасывалось исключение ValueError. А до PHP 8.0.0 возвращалось логическое значение false. При этом метку времени можно получить в виде строки (string), вызвав метод DateTimeInterface::format() с параметром форматирования U.

Список изменений

Версия | Описание
8.3.0 | Теперь при выходе за пределы диапазона будет выброшено исключение DateRangeError.
8.0.0 | Функции больше не возвращают значение false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::getTimestamp()

Объектно-ориентированный стиль

<?php
$date = new DateTimeImmutable();
echo $date->getTimestamp();
?>

Процедурный стиль

<?php
$date = date_create();
echo date_timestamp_get($date);
?>

Результатом выполнения данных примеров будет что-то подобное:

1272509157

Если необходимо получить метку времени с миллисекундами или микросекундами, можно использовать функцию DateTimeInterface::format().

Пример #2 Получение метки времени с милли- и микросекундами

Объектно-ориентированный стиль

<?php
$date = new DateTimeImmutable();
$milli = (int)$date->format('Uv'); // Метка времени с миллисекундами
$micro = (int)$date->format('Uu'); // Метка времени с микросекундами

echo $milli, "\n", $micro, "\n";
?>

Результатом выполнения данных примеров будет что-то подобное:

1674057635586
1674057635586918

Смотрите также

  • DateTime::setTimestamp() - Устанавливает дату и время на основе метки времени Unix
  • DateTimeImmutable::setTimestamp() - Устанавливает дату и время на основе метки времени Unix
  • DateTimeInterface::format() - Возвращает дату, отформатированную согласно переданному формату


Возвращает часовой пояс относительно текущего значения DateTime

  • « DateTimeInterface::getTimestamp
  • DateTime::__wakeup »
  • PHP Manual
  • DateTimeInterface
  • Возвращает часовой пояс относительно текущего значения DateTime

DateTimeInterface::getTimezone

DateTimeImmutable::getTimezone

DateTime::getTimezone

date_timezone_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeInterface::getTimezone -- DateTimeImmutable::getTimezone -- DateTime::getTimezone -- date_timezone_get — Возвращает часовой пояс относительно текущего значения DateTime

Описание

Объектно-ориентированный стиль

public DateTimeInterface::getTimezone(): DateTimeZone|false
public DateTimeImmutable::getTimezone(): DateTimeZone|false
public DateTime::getTimezone(): DateTimeZone|false

Процедурный стиль

date_timezone_get(DateTimeInterface $object): DateTimeZone|false

Возвращает часовой пояс относительно текущего значения DateTime.

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create().

Возвращаемые значения

Возвращает объект DateTimeZone в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::getTimezone()

Объектно-ориентированный стиль

<?php
$date = new DateTimeImmutable(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

  • « DateTimeInterface::getTimezone
  • DateTimeZone »
  • PHP Manual
  • DateTimeInterface
  • Обработчик __wakeup

DateTime::__wakeup

DateTimeImmutable::__wakeup

DateTimeInterface::__wakeup

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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, PHP 8)

Введение

Представление часового пояса.

Обзор классов

class DateTimeZone {
/* Константы */
public const int AFRICA;
public const int AMERICA;
public const int ANTARCTICA;
public const int ARCTIC;
public const int ASIA;
public const int ATLANTIC;
public const int AUSTRALIA;
public const int EUROPE;
public const int INDIAN;
public const int PACIFIC;
public const int UTC;
public const int ALL;
public const int ALL_WITH_BC;
public const int PER_COUNTRY;
/* Методы */
public __construct(string $timezone)
public getLocation(): array|false
public getName(): string
public getOffset(DateTimeInterface $datetime): int
public getTransitions(int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false
public static listAbbreviations(): array
public static listIdentifiers(int $timezoneGroup = DateTimeZone::ALL, ?string $countryCode = 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, PHP 8)

DateTimeZone::__construct -- timezone_open — Создаёт новый объект DateTimeZone

Описание

Объектно-ориентированный стиль

public DateTimeZone::__construct(string $timezone)

Процедурный стиль

timezone_open(string $timezone): DateTimeZone|false

Создаёт новый объект DateTimeZone.

Объект DateTimeZone предоставляет доступ к трём различным типам правил временных зон: Смещение UTC (тип 1), сокращение часового пояса (тип 2) и идентификаторы часовых поясов, опубликованные в базе данных часовых поясов IANA (тип 3).

Объект DateTimeZone может быть присоединён к объектам DateTime и DateTimeImmutable, чтобы иметь возможность отображать часовой пояс, заключённый в этих объектах в локальном часовом поясе.

Список параметров

timezone

Одно из поддерживаемых имён часовых поясов или значение смещения (+0200) или аббревиатура часового пояса (BST).

Возвращаемые значения

В случае успешного выполнения возвращает DateTimeZone. Процедурный стиль возвращает false в случае возникновения ошибки.

Ошибки

Если часовой пояс не распознается как действительный, выбрасывается исключение DateInvalidTimeZoneException. До PHP 8.3 вместо этого выбрасывалось исключение Exception.

Список изменений

Версия | Описание
8.3.0 | Теперь из-за недопустимых значений вместо общего исключения Exception выбрасывается исключение DateInvalidTimeZoneException.

Примеры

Пример #1 Создание и присоединение DateTimeZone к DateTimeImmutable

<?php
$d = new DateTimeImmutable("2022-06-02 15:44:48 UTC");

$timezones = [ 'Europe/London', 'GMT+04:45', '-06:00', 'CEST' ];

foreach ($timezones as $tz) {
$tzo = new DateTimeZone($tz);

$local = $d->setTimezone($tzo);
echo $local->format(DateTimeInterface::RFC2822 . ' — e'), "\n";
}
?>

Результат выполнения данного примера:

Thu, 02 Jun 2022 16:44:48 +0100 — Europe/London
Thu, 02 Jun 2022 20:29:48 +0445 — +04:45
Thu, 02 Jun 2022 09:44:48 -0600 — -06:00
Thu, 02 Jun 2022 17:44:48 +0200 — CEST

Пример #2 Перехват ошибок при создании экземпляра 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, PHP 8)

DateTimeZone::getLocation -- timezone_location_get — Возвращает информацию о местоположении для часового пояса

Описание

Объектно-ориентированный стиль

public DateTimeZone::getLocation(): array|false

Процедурный стиль

timezone_location_get(DateTimeZone $object): array|false

Возвращает информацию о местоположении часового пояса, включая код страны, широту/долготу и комментарии.

Список параметров

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::listIdentifiers() - Возвращает численно индексированный массив со всеми идентификаторами часовых поясов для получения полного или частичного списка всех поддерживаемых идентификаторов часовых поясов.


Возвращает имя часового пояса

  • « DateTimeZone::getLocation
  • DateTimeZone::getOffset »
  • PHP Manual
  • DateTimeZone
  • Возвращает имя часового пояса

DateTimeZone::getName

timezone_name_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::getName -- timezone_name_get — Возвращает имя часового пояса

Описание

Объектно-ориентированный стиль

public DateTimeZone::getName(): string

Процедурный стиль

timezone_name_get(DateTimeZone $object): string

Возвращает имя часового пояса.

Список параметров

object

Объект класса DateTimeZone, для которого нужно получить имя.

Возвращаемые значения

В зависимости от типа зоны, смещения UTC (тип 1), аббревиатуры часового пояса (тип 2) и идентификаторов часовых поясов, опубликованных в базе данных часовых поясов IANA (тип 3), строка дескриптора для создания нового объекта DateTimeZone с тем же смещением и/или правилами. Например, 02:00, CEST или одно из имён часовых поясов в списке часовых поясов.


Возвращает смещение часового пояса от UTC (GMT)

  • « DateTimeZone::getName
  • DateTimeZone::getTransitions »
  • PHP Manual
  • DateTimeZone
  • Возвращает смещение часового пояса от UTC (GMT)

DateTimeZone::getOffset

timezone_offset_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::getOffset -- timezone_offset_get — Возвращает смещение часового пояса от UTC (GMT)

Описание

Объектно-ориентированный стиль

public DateTimeZone::getOffset(DateTimeInterface $datetime): int

Процедурный стиль

timezone_offset_get(DateTimeZone $object, DateTimeInterface $datetime): int

Эта функция возвращает смещение от GMT для даты/времени, указанных в параметре datetime. GMT-смещение рассчитывается с помощью информации о часовом поясе, содержащейся в используемом объекте DateTimeZone.

Список параметров

object

Только для процедурного стиля: объект DateTimeZone, возвращаемый timezone_open().

datetime

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, PHP 8)

DateTimeZone::getTransitions -- timezone_transitions_get — Возвращает все переходы для часового пояса

Описание

Объектно-ориентированный стиль

public DateTimeZone::getTransitions(int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false

Процедурный стиль

timezone_transitions_get(DateTimeZone $object, int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false

Список параметров

object

Только для процедурного стиля: объект DateTimeZone, возвращаемый timezone_open().

timestampBegin

Начальная метка времени.

timestampEnd

Конечная метка времени.

Возвращаемые значения

В случае успешного выполнения возвращает численно индексированный массив массивов со всеми переходами или false в случае возникновения ошибки. Объекты DateTimeZone, оборачивающие тип 1 (смещения UTC) и тип 2 (сокращения), не содержат переходов и вызов этого метода в таком случае вернёт false.

Если задан параметр timestampBegin, то первая запись в возвращаемом массиве будет содержать элемент перехода на момент параметра timestampBegin.

Структура переходов массива
Ключ | Тип | Описание
ts | int | Метка времени Unix
time | string | DateTimeInterface::ISO8601_EXPANDED (PHP 8.2 и более поздние версии) или DateTimeInterface::ISO8601 (PHP 8.1 и более ранние версии) строка времени
offset | int | Смещение от UTC в секундах
isdst | bool | Активно ли летнее время
abbr | string | Аббревиатура часового пояса

Примеры

Пример #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
        )

)

Пример #2 Пример использования timezone_transitions_get() с заданным параметром timestampBegin

<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions(time());
print_r(array_slice($transitions, 0, 3));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [ts] => 1654184161
            [time] => 2022-06-02T15:36:01+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

    [1] => Array
        (
            [ts] => 1667091600
            [time] => 2022-10-30T01:00:00+0000
            [offset] => 0
            [isdst] =>
            [abbr] => GMT
        )

    [2] => Array
        (
            [ts] => 1679792400
            [time] => 2023-03-26T01:00:00+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

)


Возвращает ассоциативный массив, содержащий флаг перехода на летнее время, смещение и имя часового пояса

  • « DateTimeZone::getTransitions
  • DateTimeZone::listIdentifiers »
  • PHP Manual
  • DateTimeZone
  • Возвращает ассоциативный массив, содержащий флаг перехода на летнее время, смещение и имя часового пояса

DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::listAbbreviations -- timezone_abbreviations_list — Возвращает ассоциативный массив, содержащий флаг перехода на летнее время, смещение и имя часового пояса

Описание

Объектно-ориентированный стиль

public static DateTimeZone::listAbbreviations(): array

Процедурный стиль

timezone_abbreviations_list(): array

Возвращаемый список аббревиатур включает все исторические случаи использования аббревиатур, что может привести к правильным, но запутанным записям. Существуют также противоречия, поскольку PST используется как в США, так и на Филиппинах.

Поэтому список, который возвращает эта функция, не подходит для создания массива с опциями для представления выбора часового пояса пользователям.

Замечание:

Данные для функции предварительно компилируются из соображений производительности и не обновляются при использовании более новой версии » timezonedb.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив сокращений часовых поясов.

Примеры

Пример #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, PHP 8)

DateTimeZone::listIdentifiers -- timezone_identifiers_list — Возвращает численно индексированный массив со всеми идентификаторами часовых поясов

Описание

Объектно-ориентированный стиль

public static DateTimeZone::listIdentifiers(int $timezoneGroup = DateTimeZone::ALL, ?string $countryCode = null): array

Процедурный стиль

timezone_identifiers_list(int $timezoneGroup = DateTimeZone::ALL, ?string $countryCode = null): array

Список параметров

timezoneGroup

Одна из констант класса DateTimeZone (или комбинация из них).

countryCode

Двухбуквенный код страны в верхнем регистре, совместимый с ISO 3166-1.

Замечание: Эта опция используется только тогда, когда параметр timezoneGroup установлен в DateTimeZone::PER_COUNTRY.

Возвращаемые значения

Возвращает массив идентификаторов часовых поясов. Возвращаются только не устаревшие элементы. Чтобы получить все, включая устаревшие идентификаторы часовых поясов, используйте DateTimeZone::ALL_WITH_BC в качестве значения для параметра timezoneGroup.

Список изменений

Версия | Описание
8.0.0 | До этой версии, в случае возникновения ошибки возвращалось false.
7.1.0 | countryCode теперь допускает значение null.

Примеры

Пример #1 Пример использования DateTimeZone::listIdentifiers()

<?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

Пример #2 Перечисление идентификаторов для конкретного региона

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::ASIA );
for ($i=0; $i < 5; $i++) {
echo "$timezone_identifiers[$i]\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Asia/Aden
Asia/Almaty
Asia/Amman
Asia/Anadyr
Asia/Aqtau

Пример #3 Перечисление идентификаторов для нескольких регионов

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::ASIA | DateTimeZone::PACIFIC );
echo join( ', ', $timezone_identifiers );
?>

Результатом выполнения данного примера будет что-то подобное:

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, Pacific/Apia, Pacific/Auckland,
Pacific/Bougainville, Pacific/Chatham, Pacific/Chuuk, Pacific/Easter,
Pacific/Efate, Pacific/Fakaofo, Pacific/Fiji, Pacific/Funafuti,
Pacific/Galapagos, Pacific/Gambier, Pacific/Guadalcanal, Pacific/Guam,
Pacific/Honolulu, Pacific/Kanton, 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

Пример #4 Перечисление идентификаторов для одной страны

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::PER_COUNTRY, "UA" );
foreach( $timezone_identifiers as $identifier ) {
echo "$identifier\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Europe/Kyiv
Europe/Simferopol
Europe/Uzhgorod
Europe/Zaporozhye

Смотрите также

  • timezone_abbreviations_list() - Псевдоним DateTimeZone::listAbbreviations


Класс DateInterval

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Представляет интервалы дат.

Интервал дат хранит либо определённое фиксированное время (в годах, месяцах, днях, часах и т.д.) или относительную строку времени в формате, поддерживаемом конструктором DateTimeImmutable и DateTime.

Более конкретно, информация в объекте класса DateInterval является инструкцией для перехода от одной даты/времени к другой дате/времени. Этот процесс не всегда обратим.

Распространённым способом создания объекта DateInterval является вычисление разницы между двумя объектами даты/времени с помощью DateTimeInterface::diff().

Поскольку не существует чётко определённого способа сравнения интервалов дат, экземпляры DateInterval являются несравнимыми.

Обзор классов

class DateInterval {
/* Свойства */
public int $y;
public int $m;
public int $d;
public int $h;
public int $i;
public int $s;
public float $f;
public int $invert;
public mixed $days;
public bool $from_string;
public string $date_string;
/* Методы */
public __construct(string $duration)
public static createFromDateString(string $datetime): DateInterval|false
public format(string $format): string
}

Свойства

Внимание

Доступные свойства, перечисленные ниже, зависят от версии PHP и должны рассматриваться как доступные только для чтения.

y

Количество лет.

m

Количество месяцев.

d

Количество дней.

h

Количество часов.

i

Количество минут.

s

Количество секунд.

f

Количество микросекунд в виде долей секунды.

invert

Принимает 1, если интервал представляет отрицательный период времени и 0 в противном случае. Смотрите DateInterval::format().

days

Если объект DateInterval создан методом DateTimeImmutable::diff() или DateTime::diff(), то это общее количество полных дней между начальной и конечной датами В противном случае days примет значение false.

from_string

Если объект DateInterval был создан методом DateInterval::createFromDateString(), то значение свойства будет true и свойство date_string будет заполнено. В противном случае значение свойства будет false и свойства от y до f, invert и days будут заполнены.

date_string

Строка, используемая в качестве аргумента метода DateInterval::createFromDateString().

Список изменений

Версия | Описание
8.2.0 | Добавлены свойства from_string и date_string для экземпляров DateInterval, которые были созданы с помощью метода DateInterval::createFromDateString().
8.2.0 | Будут видны только значения от y до f, invert и days.
7.4.0 | Экземпляры DateInterval теперь несравнимы; ранее все экземпляры DateInterval считались равными.
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, PHP 8)

DateInterval::__construct — Создаёт новый объект DateInterval

Описание

public DateInterval::__construct(string $duration)

Создаёт новый объект DateInterval.

Список параметров

duration

Описание интервала.

Формат описания интервала начинается с буквы P. Каждый период интервала представлен целым числом, за которым следует указатель его типа. Возможные типы приведены в таблице. Если интервал содержит периоды, обозначающие время, то их описанию должна предшествовать буква T.

Указатели периодов duration
Указатель периода | Описание
Y | года
M | месяцы
D | дни
W | недели. Преобразуется в дни. До PHP 8.0.0 не мог использоваться совместно с D.
H | часы
M | минуты
S | секунды

Вот несколько простых примеров. Два дня - P2D. Две секунды - PT2S. Шесть лет и пять минут - P6YT5M.

Замечание:

Указатели должны записываться от большей величины (слева) к меньшей величине (направо). То есть года должны быть до месяцев, месяцы до дней, дни до минут и так далее. Таким образом, один год и четыре дня должны быть представлены как P1Y4D, но не P4D1Y.

Задать период также можно в виде даты и времени. Пример одного года и четырёх дней может описываться как P0001-00-04T00:00:00. Но значения в этом формате не должны выходить за рамки допустимых значений даты и времени (например, 25 часов недопустимо)

Эти форматы основаны на » спецификации ISO 8601.

Ошибки

Когда параметр duration не может быть разобран анализатором как интервал, выбрасывается исключение DateMalformedIntervalStringException. До PHP 8.3 выбрасывалось исключение Exception.

Список изменений

Версия | Описание
8.3.0 | Теперь вместо исключения Exception выбрасывается исключение DateMalformedIntervalStringException.
8.2.0 | Будут видны только y в f, invert и days, включая новое логическое свойство from_string.
8.0.0 | W теперь может использоваться совместно с D.

Примеры

Пример #1 Пример создания и использования объектов DateInterval

<?php
// Создание определённой даты
$someDate = \DateTime::createFromFormat("Y-m-d H:i", "2022-08-25 14:18");

// Создание интервала
$interval = new \DateInterval("P7D");

// Добавление интервала
$someDate->add($interval);

// Преобразование интервала в строку
echo $interval->format("%d");

Результат выполнения данного примера:

7

Пример #2 Пример использования DateInterval

<?php

$interval = new DateInterval('P1W2D');
var_dump($interval);

?>

Результат выполнения данного примера в PHP 8.2:

object(DateInterval)#1 (10) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(9)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["from_string"]=>
  bool(false)
}

Результат выполнения данного примера в PHP 8:

object(DateInterval)#1 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(9)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(0)
  ["special_amount"]=>
  int(0)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(0)
}

Результат выполнения данного примера в PHP 7:

object(DateInterval)#1 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(2)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(0)
  ["special_amount"]=>
  int(0)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(0)
}

Смотрите также

  • 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, PHP 8)

DateInterval::createFromDateString — Создаёт объект класса DateInterval из даты в относительном формате

Описание

Объектно-ориентированный стиль

public static DateInterval::createFromDateString(string $datetime): DateInterval|false

Процедурный стиль

date_interval_create_from_date_string(string $datetime): DateInterval|false

Использует парсер даты/времени, используемый в конструкторе DateTimeImmutable для создания объекта DateInterval из относительных частей разобранной строки.

Список параметров

datetime

Дата, состоящая из относительных временных фрагментов. В частности, для создания объекта DateInterval из частей, записанных в относительном формате, который поддерживается парсером в функциях DateTimeImmutable, DateTime и strtotime().

Чтобы использовать строку в формате ISO-8601, например P7D, необходимо использовать конструктор.

Возвращаемые значения

Возвращает новый объект класса DateInterval в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.2.0 | Только свойства from_string и date_string будут видны при создании объекта DateInterval с помощью этого метода.

Примеры

Пример #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');
?>

Пример #2 Разбор комбинаций и отрицательных интервалов

<?php
$i = DateInterval::createFromDateString('62 weeks + 1 day + 2 weeks + 2 hours + 70 minutes');
echo $i->format('%d %h %i'), "\n";

$i = DateInterval::createFromDateString('1 year - 10 days');
echo $i->format('%y %d'), "\n";
?>

Результат выполнения данного примера:

449 2 70
1 -10

Пример #3 Разбор специальных относительных временных интервалов

<?php
$i = DateInterval::createFromDateString('last day of next month');
var_dump($i);

$i = DateInterval::createFromDateString('last weekday');
var_dump($i);

Результат выполнения данного примера в PHP 8.2:

object(DateInterval)#1 (2) {
  ["from_string"]=>
  bool(true)
  ["date_string"]=>
  string(22) "last day of next month"
}
object(DateInterval)#2 (2) {
  ["from_string"]=>
  bool(true)
  ["date_string"]=>
  string(12) "last weekday"
}

Результат выполнения данного примера в PHP 8 аналогичен:

object(DateInterval)#1 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(1)
  ["d"]=>
  int(0)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(2)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(0)
  ["special_amount"]=>
  int(0)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(0)
}
object(DateInterval)#2 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(0)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(1)
  ["special_amount"]=>
  int(-1)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(1)
}


Форматирует интервал

  • « DateInterval::createFromDateString
  • DatePeriod »
  • PHP Manual
  • DateInterval
  • Форматирует интервал

DateInterval::format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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 Знак "-" при отрицательном числе, пусто при положительном -,

Возвращаемые значения

Возвращает отформатированный интервал.

Список изменений

Версия | Описание
7.2.12 | Формат F и f теперь всегда будет положительным.
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

Примечания

Замечание:

Метод DateInterval::format() не делает пересчёта и переноса единиц времени при переполнении значений дат. Это ожидаемое поведение, поскольку невозможно реализовать перенос при значениях, например, "32 дня", которые могут интерпретироваться по-разному, начиная "1 месяц и 4 дня" и заканчивая "1 месяц и 1 день".

Смотрите также

  • DateTime::diff() - Возвращает разницу между двумя объектами DateTime


Класс DatePeriod

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Представляет временной период.

Позволяет перемещаться в заданном временном интервале на равные промежутки времени.

Обзор классов

class DatePeriod implements IteratorAggregate {
/* Константы */
public const int EXCLUDE_START_DATE;
public const int INCLUDE_END_DATE;
/* Свойства */
public readonly ?DateTimeInterface $start;
public readonly ?DateTimeInterface $current;
public readonly ?DateTimeInterface $end;
public readonly ?DateInterval $interval;
public readonly int $recurrences;
public readonly bool $include_start_date;
public readonly bool $include_end_date;
/* Методы */
public __construct(
DateTimeInterface $start,
DateInterval $interval,
int $recurrences,
int $options = 0
)
public __construct(
DateTimeInterface $start,
DateInterval $interval,
DateTimeInterface $end,
int $options = 0
)
public __construct(string $isostr, int $options = 0)
public static createFromISO8601String(string $specification, int $options = 0): static
public getDateInterval(): DateInterval
public getEndDate(): ?DateTimeInterface
public getRecurrences(): ?int
public getStartDate(): DateTimeInterface
}

Предопределённые константы

DatePeriod::EXCLUDE_START_DATE

Исключает начальную дату, используется в DatePeriod::__construct().

DatePeriod::INCLUDE_END_DATE

Включает дату окончания, используется в DatePeriod::__construct().

Свойства

recurrences

Минимальное количество экземпляров, возвращаемое итератором.

Если количество повторений было явно передано с помощью параметра recurrences в конструктор экземпляра DatePeriod, то это свойство содержит это значение, плюс один, если дата начала не была отключена с помощью константы DatePeriod::EXCLUDE_START_DATE, плюс один, если дата окончания была включена с помощью константы DatePeriod::INCLUDE_END_DATE.

Если количество повторений не было передано явно, то это свойство содержит минимальное количество возвращённых экземпляров. Это будет 0, плюс один, если дата начала не отключена с помощью константы DatePeriod::EXCLUDE_START_DATE, плюс один, если дата окончания была включена с помощью константы DatePeriod::INCLUDE_END_DATE.

<?php
$start = new DateTime('2018-12-31 00:00:00');
$end = new DateTime('2021-12-31 00:00:00');
$interval = new DateInterval('P1M');
$recurrences = 5;

// повторения явно задаются в конструкторе
$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::EXCLUDE_START_DATE);
echo $period->recurrences, "\n";

$period = new DatePeriod($start, $interval, $recurrences);
echo $period->recurrences, "\n";

$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::INCLUDE_END_DATE);
echo $period->recurrences, "\n";

// повторения не заданы в конструкторе
$period = new DatePeriod($start, $interval, $end);
echo $period->recurrences, "\n";

$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
echo $period->recurrences, "\n";
?>

Результат выполнения данного примера:

5
6
7
1
0

Смотрите также описание метода DatePeriod::getRecurrences().

include_end_date

Включать ли дату окончания в набор повторяющихся дат или нет.

include_start_date

Включать ли начальную дату в набор дат или нет.

start

Дата начала периода.

current

В процессе итерации будет содержать текущую дату периода.

end

Конечная дата периода.

interval

Спецификация повторяющегося интервала согласно ISO 8601.

Список изменений

Версия | Описание
8.2.0 | Были добавлены константа DatePeriod::INCLUDE_END_DATE и свойство include_end_date.
8.0.0 | Класс DatePeriod теперь реализует интерфейс IteratorAggregate. Ранее вместо этого был реализован интерфейс Traversable.

Содержание

  • DatePeriod::__construct — Создаёт новый объект DatePeriod
  • DatePeriod::createFromISO8601String — Creates a new DatePeriod object from an ISO8601 string
  • DatePeriod::getDateInterval — Возвращает интервал
  • DatePeriod::getEndDate — Возвращает конечную дату периода
  • DatePeriod::getRecurrences — Получает количество повторов
  • DatePeriod::getStartDate — Возвращает начальную дату периода


Создаёт новый объект DatePeriod

  • « DatePeriod
  • DatePeriod::createFromISO8601String »
  • PHP Manual
  • DatePeriod
  • Создаёт новый объект DatePeriod

DatePeriod::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DatePeriod::__construct — Создаёт новый объект DatePeriod

Описание

public DatePeriod::__construct(
DateTimeInterface $start,
DateInterval $interval,
int $recurrences,
int $options = 0
)
public DatePeriod::__construct(
DateTimeInterface $start,
DateInterval $interval,
DateTimeInterface $end,
int $options = 0
)
Внимание
public DatePeriod::__construct(string $isostr, int $options = 0)

Этот вариант конструктора устарел, используйте вместо него метод DatePeriod::createFromISO8601String().

Создаёт новый объект DatePeriod.

Объекты DatePeriod можно использовать в качестве итератора для генерации ряда объектов DateTimeImmutable или DateTime из даты start, interval и end или числа recurrences.

Класс возвращаемых объектов эквивалентен классу-родителю DateTimeImmutable или DateTime объекта start.

Список параметров

start

Начальная дата. По умолчанию включается в набор результатов.

interval

Интервал.

recurrences

Количество повторений. Число возвращаемых результатов на единицу больше этого, так как дата начала включается в набор результатов по умолчанию. Должно быть больше, чем 0.

end

Конечная дата. По умолчанию исключается из набора результатов.

isostr

Подмножество, содержащее интервал согласно » спецификации ISO 8601.

Примерами некоторых особенностей спецификации интервалов ISO 8601, которые PHP не поддерживает, являются:

  1. нулевые вхождения (R0/)
  2. смещение времени, отличное от UTC (Z), например, +02:00.
options

Битовое поле, которое можно использовать для управления определённым поведением с начальной и конечной датами.

Исключить начальную дату внутри периода из набора повторяющихся дат можно с помощью константы DatePeriod::EXCLUDE_START_DATE.

Включить конечную дату внутри периода в набор повторяющихся дат можно с помощью константы DatePeriod::INCLUDE_END_DATE.

Ошибки

Когда значение параметра isostr не может быть разобрано анализатором как допустимый стандартом ISO 8601 формат, выбрасывается исключение DateMalformedPeriodStringException. До PHP 8.3 выбрасывалось исключение Exception.

Список изменений

Версия | Описание
8.3.0 | Теперь вместо исключения Exception выбрасывается исключение DateMalformedPeriodStringException.
8.2.0 | Добавлена константа DatePeriod::INCLUDE_END_DATE.
7.2.19, 7.3.6, 7.4.0 | recurrences должен быть больше 0.

Примеры

Пример #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

Пример #3 Пример использования DatePeriod, показывающий все последние четверги в году

<?php
$begin = new DateTime('2021-12-31');
$end = new DateTime('2022-12-31 23:59:59');

$interval = DateInterval::createFromDateString('last thursday of next month');
$period = new DatePeriod($begin, $interval, $end, DatePeriod::EXCLUDE_START_DATE);

foreach ($period as $dt) {
echo $dt->format('l Y-m-d'), "\n";
}
?>

Результат выполнения данного примера:

Thursday 2022-01-27
Thursday 2022-02-24
Thursday 2022-03-31
Thursday 2022-04-28
Thursday 2022-05-26
Thursday 2022-06-30
Thursday 2022-07-28
Thursday 2022-08-25
Thursday 2022-09-29
Thursday 2022-10-27
Thursday 2022-11-24
Thursday 2022-12-29

Примечания

Несвязное количество повторений, определённые в секции 4.5 ISO 8601 "Recurring time interval", не поддерживается, то есть ни передача "R/..." в isostr, ни null в end, не будут работать.


Creates a new DatePeriod object from an ISO8601 string

  • « DatePeriod::__construct
  • DatePeriod::getDateInterval »
  • PHP Manual
  • DatePeriod
  • Creates a new DatePeriod object from an ISO8601 string

DatePeriod::createFromISO8601String

(PHP 8 >= 8.3.0)

DatePeriod::createFromISO8601String — Creates a new DatePeriod object from an ISO8601 string

Описание

public static DatePeriod::createFromISO8601String(string $specification, int $options = 0): static

Creates a new DatePeriod object from an ISO8601 string, as specified with specification.

Список параметров

specification

A subset of the » ISO 8601 repeating interval specification.

An example of an accepted ISO 8601 interval specifications is R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M, which specifies:

  • 5 iterations (R5/)
  • Starting at 2008-03-01T13:00:00Z.
  • Each iteration is an 1 year, 2 months, 10 days, 2 hours, and 30 minute interval (/P1Y2M10DT2H30M).

Examples of some ISO 8601 interval specification features that PHP does not support are:

  1. zero occurrences (R0/)
  2. time offsets other than UTC (Z), such as +02:00.
options

A bit field which can be used to control certain behaviour with start- and end- dates.

With DatePeriod::EXCLUDE_START_DATE you exclude the start date from the set of recurring dates within the period.

With DatePeriod::INCLUDE_END_DATE you include the end date in the set of recurring dates within the period.

Возвращаемые значения

Creates a new DatePeriod object.

DatePeriod objects created with this method can be used as an iterator to generate a number of DateTimeImmutable objects.

Ошибки

Throws an DateMalformedPeriodStringException when the specification cannot be parsed as a valid ISO 8601 period.

Примеры

Пример #1 DatePeriod::createFromISO8601String example

<?php
$iso = 'R4/2023-07-01T00:00:00Z/P7D';

$period = DatePeriod::createFromISO8601String($iso);

// By iterating over the DatePeriod object, all of the
// recurring dates within that period are printed.
foreach ($period as $date) {
echo $date->format('Y-m-d'), "\n";
}
?>

Результат выполнения данного примера:

2023-07-01
2023-07-08
2023-07-15
2023-07-22
2023-07-29


Возвращает интервал

  • « DatePeriod::createFromISO8601String
  • DatePeriod::getEndDate »
  • PHP Manual
  • DatePeriod
  • Возвращает интервал

DatePeriod::getDateInterval

(PHP 5 >= 5.6.5, PHP 7, PHP 8)

DatePeriod::getDateInterval — Возвращает интервал

Описание

Объектно-ориентированный стиль

public DatePeriod::getDateInterval(): 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, PHP 8)

DatePeriod::getEndDate — Возвращает конечную дату периода

Описание

Объектно-ориентированный стиль

public DatePeriod::getEndDate(): ?DateTimeInterface

Возвращает конечную дату периода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает null, если DatePeriod не содержит конечной даты. Например, при инициализации с параметром recurrences или isostr без указания конечной даты.

Возвращает объект DateTimeImmutable, когда DatePeriod инициализирован с объектом DateTimeImmutable в качестве параметра end.

В противном случае возвращает клонированный объект (object) 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, PHP 8)

DatePeriod::getRecurrences — Получает количество повторов

Описание

Объектно-ориентированный стиль

public DatePeriod::getRecurrences(): ?int

Получает количество повторов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество повторений, заданное путём явной передачи параметра $recurrences в конструктор класса DatePeriod или null в противном случае.

Примеры

Пример #1 Различные значения для DatePeriod::getRecurrences()

<?php

$start = new DateTime('2018-12-31 00:00:00');
$end = new DateTime('2021-12-31 00:00:00');
$interval = new DateInterval('P1M');
$recurrences = 5;

// повторения, явно заданные в конструкторе
$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::EXCLUDE_START_DATE);
echo $period->getRecurrences(), "\n";

$period = new DatePeriod($start, $interval, $recurrences);
echo $period->getRecurrences(), "\n";

$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::INCLUDE_END_DATE);
echo $period->getRecurrences(), "\n\n";

// повторения, не заданные в конструкторе
$period = new DatePeriod($start, $interval, $end);
var_dump($period->getRecurrences());

$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
var_dump($period->getRecurrences());
?>

Результат выполнения данного примера:

5
5
5

NULL
NULL

Смотрите также

  • DatePeriod::$recurrences


Возвращает начальную дату периода

  • « DatePeriod::getRecurrences
  • Функции даты и времени »
  • PHP Manual
  • DatePeriod
  • Возвращает начальную дату периода

DatePeriod::getStartDate

(PHP 5 >= 5.6.5, PHP 7, PHP 8)

DatePeriod::getStartDate — Возвращает начальную дату периода

Описание

Объектно-ориентированный стиль

public DatePeriod::getStartDate(): 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
  • date_create — Создаёт новый объект DateTime
  • 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 — Псевдоним DateTimeImmutable::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 — Форматирует временную метку Unix
  • 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 — Возвращает название часового пояса, угадывая по аббревиатуре и смещению UTC
  • 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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

date_create_immutable_from_format — Псевдоним DateTimeImmutable::createFromFormat()

Описание

Функция является псевдонимом: DateTimeImmutable::createFromFormat()


Создаёт новый объект DateTimeImmutable

  • « date_create_immutable_from_format
  • date_create »
  • PHP Manual
  • Функции даты и времени
  • Создаёт новый объект DateTimeImmutable

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

date_create_immutable — Создаёт новый объект DateTimeImmutable

Описание

date_create_immutable(string $datetime = "now", ?DateTimeZone $timezone = null): DateTimeImmutable|false

Аналог метода DateTimeImmutable::__construct() в процедурном стиле.

В отличие от конструктора DateTimeImmutable, функция вернёт false, а не выбросит исключение, если переданная в конструктор строка datetime указана некорректно.

Список параметров

Смотрите DateTimeImmutable::__construct.

Возвращаемые значения

Возвращает новый экземпляр DateTimeImmutable. или false в случае возникновения ошибки

Смотрите также

  • DateTimeImmutable::createFromFormat() - Разбирает строку с датой согласно указанному формату


Создаёт новый объект DateTime

  • « date_create_immutable
  • date_date_set »
  • PHP Manual
  • Функции даты и времени
  • Создаёт новый объект DateTime

date_create

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_create — Создаёт новый объект DateTime

Описание

date_create(string $datetime = "now", ?DateTimeZone $timezone = null): DateTime|false

Это процедурная версия метода DateTime::__construct().

В отличие от конструктора DateTime, функция возвращает false вместо исключения, если переданная в параметр datetime строка недопустима.

Список параметров

Смотрите DateTimeImmutable::__construct.

Возвращаемые значения

Возвращает новый экземпляр DateTime. или false в случае возникновения ошибки

Смотрите также

  • DateTimeImmutable::__construct() - Возвращает новый объект DateTimeImmutable
  • DateTimeImmutable::createFromFormat() - Разбирает строку с датой согласно указанному формату
  • DateTime::__construct() - Конструктор класса DateTime


Псевдоним DateTime::setDate

  • « date_create
  • date_default_timezone_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

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, PHP 8)

date_default_timezone_get — Возвращает часовой пояс, используемый по умолчанию всеми функциями даты/времени в скрипте

Описание

date_default_timezone_get(): string

Функция пытается получить часовой пояс по умолчанию по порядку следующими способами:

  • Чтение настройки часового пояса с помощью функции date_default_timezone_set() (если применимо)

  • Чтение значения ini-настройки date.timezone (если задана)

Если ни один из способов не принёс результата, date_default_timezone_get() вернёт часовой пояс UTC.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string).

Примеры

Пример #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, PHP 8)

date_default_timezone_set — Устанавливает часовой пояс по умолчанию для всех функций даты/времени в скрипте

Описание

date_default_timezone_set(string $timezoneId): bool

date_default_timezone_set() устанавливает часовой пояс по умолчанию для всех функций даты/времени в скрипте.

Вместо использования этой функции, вы можете воспользоваться INI-настройкой date.timezone для установки часового пояса по умолчанию.

Список параметров

timezoneId

Идентификатор часового пояса, например, UTC, Africa/Lagos, Asia/Hong_Kong или Europe/Lisbon. Список допустимых идентификаторов часовых поясов можно найти в разделе Список поддерживаемых часовых поясов.

Возвращаемые значения

Функция возвращает false, если timezoneId имеет неверное значение, в остальных случаях 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-файла совпадают.';
}
?>

Смотрите также

  • 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, PHP 8)

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, PHP 8)

date_format — Псевдоним DateTime::format()

Описание

Функция является псевдонимом: DateTime::format()


Псевдоним DateTimeImmutable::getLastErrors

  • « date_format
  • date_interval_create_from_date_string »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeImmutable::getLastErrors

date_get_last_errors

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_get_last_errors — Псевдоним DateTimeImmutable::getLastErrors()

Описание

Функция является псевдонимом: DateTimeImmutable::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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

date_parse_from_format — Получение информации о заданной в определённом формате дате

Описание

date_parse_from_format(string $format, string $datetime): array

Возвращает ассоциативный массив с подробной информацией о заданной дате/времени.

Список параметров

format

Документацию по параметру format, смотрите в документации к методу DateTimeImmutable::createFromFormat(). Применяются те же правила.

datetime

Строка, представляющая дату/время.

Возвращаемые значения

Возвращает ассоциативный массив с подробной информацией о заданной дате/времени.

Возвращаемый массив содержит ключи year, month, day, hour, minute, second, fraction и is_localtime.

Если присутствует is_localtime, то zone_type указывает тип часового пояса. Для типа 1 (смещение UTC) указывается zone, добавляется поле is_dst; для типа 2 (аббревиатура) добавляются поля tz_abbr и is_dst; для типа 3 (идентификатор часового пояса) добавляются поля tz_abbr и tz_id.

Если в параметре datetime присутствуют элементы относительного времени, например, +3 days, то возвращаемый массив включает вложенный массив с ключом relative. Этот массив затем содержит ключи year, month, day, hour, minute, second, и, если необходимо, weekday и weekdays, в зависимости от переданной строки.

Массив включает поля warning_count и warnings. Первое из них указывает, сколько было предупреждений. Ключи элементов массива warnings указывают на позицию в данном параметре datetime, где произошло предупреждение, а строковое значение описывает само предупреждение.

Массив также содержит поля error_count и errors. Первое из них указывает, сколько ошибок было найдено. Ключи элементов массива errors указывают на позицию в данном параметре datetime, где произошла ошибка, а строковое значение описывает саму ошибку.

Внимание

Количество элементов массивов warnings и errors может быть меньше, чем warning_count или error_count, если они возникли в одной и той же позиции.

Ошибки

Функция выбрасывает ValueError, если параметр datetime содержит нулевые байты.

Список изменений

Версия | Описание
8.0.21, 8.1.8, 8.2.0 | Теперь при передаче нулевых байтов в параметр datetime выбрасывается ValueError, который ранее молча игнорировался.
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] =>
)

Пример #2 Пример использования date_parse_from_format() с предупреждениями

<?php
$date = "26 August 2022 22:30 pm";
$parsed = date_parse_from_format("j F Y G:i a", $date);

echo "Количество предупреждений: ", $parsed['warning_count'], "\n";
foreach ($parsed['warnings'] as $position => $message) {
echo "\tПозиция {$position}: {$message}\n";
}
?>

Результат выполнения данного примера:

Количество предупреждений: 1
    Позиция 23: The parsed time was invalid

Пример #3 Пример использования date_parse_from_format() с ошибками

<?php
$date = "26 August 2022 CEST";
$parsed = date_parse_from_format("j F Y H:i", $date);

echo "Количество ошибок: ", $parsed['error_count'], "\n";
foreach ($parsed['errors'] as $position => $message) {
echo "\tПозиция {$position}: {$message}\n";
}
?>

Результат выполнения данного примера:

Количество ошибок: 3
    Позиция 15: A two digit hour could not be found
    Позиция 19: Data missing

Смотрите также

  • DateTimeImmutable::createFromFormat() - Разбирает строку с датой согласно указанному формату
  • checkdate() - Проверяет корректность даты по григорианскому календарю


Возвращает ассоциативный массив с подробной информацией о заданной дате/времени

  • « date_parse_from_format
  • date_sub »
  • PHP Manual
  • Функции даты и времени
  • Возвращает ассоциативный массив с подробной информацией о заданной дате/времени

date_parse

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_parse — Возвращает ассоциативный массив с подробной информацией о заданной дате/времени

Описание

date_parse(string $datetime): array

Функция date_parse() разбирает указанную в параметре datetime строку по тем же правилам, что и функции strtotime() и DateTimeImmutable::__construct(). Вместо того чтобы возвращать временную метку Unix (при использовании функции strtotime()) или объект DateTimeImmutable (при использовании функции DateTimeImmutable::__construct()), она возвращает ассоциативный массив с информацией, которую функция смогла обнаружить в данной строке параметра datetime.

Если информация об определённой группе элементов не найдена, эти элементы массива будут установлены в значение false или будут отсутствовать. Если это необходимо для построения временной метки или объекта DateTimeImmutable из одной и той же строки параметра datetime, большее количество полей может быть установлено в значение не false. Смотрите примеры, в которых это происходит.

Список параметров

datetime

Дата/время в формате, распознаваемом функцией DateTimeImmutable::__construct().

Возвращаемые значения

Возвращает массив (array), содержащий информацию о дате/времени.

Возвращаемый массив содержит ключи year, month, day, hour, minute, second, fraction и is_localtime.

Если присутствует is_localtime, то zone_type указывает тип часового пояса. Для типа 1 (смещение UTC) указывается zone, добавляется поле is_dst; для типа 2 (аббревиатура) добавляются поля tz_abbr и is_dst; для типа 3 (идентификатор часового пояса) добавляются поля tz_abbr и tz_id.

Если в параметре datetime присутствуют элементы относительного времени, например, +3 days, то возвращаемый массив включает вложенный массив с ключом relative. Этот массив затем содержит ключи year, month, day, hour, minute, second, и, если необходимо, weekday и weekdays, в зависимости от переданной строки.

Массив включает поля warning_count и warnings. Первое из них указывает, сколько было предупреждений. Ключи элементов массива warnings указывают на позицию в данном параметре datetime, где произошло предупреждение, а строковое значение описывает само предупреждение.

Массив также содержит поля error_count и errors. Первое из них указывает, сколько ошибок было найдено. Ключи элементов массива errors указывают на позицию в данном параметре datetime, где произошла ошибка, а строковое значение описывает саму ошибку.

Внимание

Количество элементов массивов warnings и errors может быть меньше, чем warning_count или error_count, если они возникли в одной и той же позиции.

Ошибки

В случае возникновения ошибок форматирования даты/времени, элемент массива 'errors' будет содержать сообщения об этих ошибках.

Список изменений

Версия | Описание
7.2.0 | Элемент возвращаемого массива с ключом zone теперь содержит секунды, а не минуты. Кроме того, знак инвертирован. Т.е. раньше был -120, а теперь 7200.

Примеры

Пример #1 Пример использования функции date_parse() с полной строкой datetime

<?php
var_dump(date_parse("2006-12-12 10:00:00.5"));
?>

Результат выполнения данного примера:

array(12) {
  ["year"]=>
  int(2006)
  ["month"]=>
  int(12)
  ["day"]=>
  int(12)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(0)
  ["second"]=>
  int(0)
  ["fraction"]=>
  float(0.5)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
}

Элементы часовых поясов появляются только в том случае, если они включены в заданную строку параметра datetime. В этом случае всегда будет присутствовать элемент zone_type и ещё несколько в зависимости от его значения.

Пример #2 Пример использования date_parse() с информацией об аббревиатуре часового пояса

<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 BST"));
?>

Результат выполнения данного примера:

array(16) {
  ["year"]=>
  int(2022)
  ["month"]=>
  int(6)
  ["day"]=>
  int(2)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(28)
  ["second"]=>
  int(17)
  ["fraction"]=>
  float(0)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(true)
  ["zone_type"]=>
  int(2)
  ["zone"]=>
  int(0)
  ["is_dst"]=>
  bool(true)
  ["tz_abbr"]=>
  string(3) "BST"
}

Пример #3 Пример использования date_parse() с информацией об идентификаторе часового пояса

<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 Europe/London"));
?>

Результат выполнения данного примера:

array(14) {
  ["year"]=>
  int(2022)
  ["month"]=>
  int(6)
  ["day"]=>
  int(2)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(28)
  ["second"]=>
  int(17)
  ["fraction"]=>
  float(0)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(true)
  ["zone_type"]=>
  int(3)
  ["tz_id"]=>
  string(13) "Europe/London"
}

Если разбирается более минимальная строка параметра datetime, то информации будет меньше. В этом примере все части времени возвращаются как false.

Пример #4 Пример использования date_parse() с минимальной строкой

<?php
var_dump(date_parse("June 2nd, 2022"));
?>

Результат выполнения данного примера:

array(12) {
  ["year"]=>
  int(2022)
  ["month"]=>
  int(6)
  ["day"]=>
  int(2)
  ["hour"]=>
  bool(false)
  ["minute"]=>
  bool(false)
  ["second"]=>
  bool(false)
  ["fraction"]=>
  bool(false)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
}

Относительные форматы не влияют на значения, разбираемые из абсолютных форматов, но разбираются в элемент "relative".

Пример #5 Пример использования date_parse() с относительными форматами

<?php
var_dump(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour"));
?>

Результат выполнения данного примера:

array(13) {
  ["year"]=>
  int(2006)
  ["month"]=>
  int(12)
  ["day"]=>
  int(12)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(0)
  ["second"]=>
  int(0)
  ["fraction"]=>
  float(0.5)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
  ["relative"]=>
  array(6) {
    ["year"]=>
    int(0)
    ["month"]=>
    int(0)
    ["day"]=>
    int(7)
    ["hour"]=>
    int(1)
    ["minute"]=>
    int(0)
    ["second"]=>
    int(0)
  }
}

Некоторые строки, такие как Thursday, установят временную часть строки в значение 0. Если Thursday передать в функцию DateTimeImmutable::__construct(), то это также приведёт к тому, что час, минута, секунда и дробь будут установлены в значение 0. В приведённом ниже примере элемент year, однако, оставлен как false.

Пример #6 Пример использования date_parse() с побочными эффектами

<?php
var_dump(date_parse("Thursday, June 2nd"));
?>

Результат выполнения данного примера:

array(13) {
  ["year"]=>
  bool(false)
  ["month"]=>
  int(6)
  ["day"]=>
  int(2)
  ["hour"]=>
  int(0)
  ["minute"]=>
  int(0)
  ["second"]=>
  int(0)
  ["fraction"]=>
  float(0)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
  ["relative"]=>
  array(7) {
    ["year"]=>
    int(0)
    ["month"]=>
    int(0)
    ["day"]=>
    int(0)
    ["hour"]=>
    int(0)
    ["minute"]=>
    int(0)
    ["second"]=>
    int(0)
    ["weekday"]=>
    int(4)
  }
}

Смотрите также

  • date_parse_from_format() - Получение информации о заданной в определённом формате дате для разбора параметра datetime с определённым заданным форматом
  • checkdate() - Проверяет корректность даты по григорианскому календарю для проверки григорианской даты
  • getdate() - Возвращает информацию о дате/времени


Псевдоним DateTime::sub

  • « date_parse
  • date_sun_info »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::sub

date_sub

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_sub — Псевдоним DateTime::sub()

Описание

Функция является псевдонимом: DateTime::sub()

Смотрите также

  • DateTimeImmutable::sub() - Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд
  • DateTime::sub() - Вычитает дни, месяцы, годы, часы, минуты и секунды из объекта DateTime


Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек

  • « date_sub
  • date_sunrise »
  • PHP Manual
  • Функции даты и времени
  • Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек

date_sun_info

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

date_sun_info — Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек

Описание

date_sun_info(int $timestamp, float $latitude, float $longitude): array

Список параметров

timestamp

Временная метка Unix.

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, если солнце находится выше соответствующего зенита в течение всего дня.

Список изменений

Версия | Описание
7.2.0 | Расчёт был исправлен с учётом местной полуночи вместо местного полудня, что несколько изменяет результаты.

Примеры

Пример #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
$tz = new \DateTimeZone('America/Anchorage');
$si = date_sun_info(strtotime("2022-12-21"), 70.21, -148.51);
foreach ($si as $key => $value) {
echo
match ($value) {
true => 'always',
false => 'never',
default => date_create("@{$value}")->setTimeZone($tz)->format( 'H:i:s T' ),
},
": {$key}",
"\n";
}?>

Результат выполнения данного примера:

never: sunrise
never: sunset
12:52:18 AKST: transit
10:53:19 AKST: civil_twilight_begin
14:51:17 AKST: civil_twilight_end
09:01:47 AKST: nautical_twilight_begin
16:42:48 AKST: nautical_twilight_end
07:40:47 AKST: astronomical_twilight_begin
18:03:49 AKST: astronomical_twilight_end

Пример #3 Полуночное солнце (Тромсё, Норвегия)

<?php
$si = date_sun_info(strtotime("2022-06-26"), 69.68, 18.94);
print_r($si);
?>

Результат выполнения данного примера:

Array
(
    [sunrise] => 1
    [sunset] => 1
    [transit] => 1656240426
    [civil_twilight_begin] => 1
    [civil_twilight_end] => 1
    [nautical_twilight_begin] => 1
    [nautical_twilight_end] => 1
    [astronomical_twilight_begin] => 1
    [astronomical_twilight_end] => 1
)

Пример #4 Вычисление продолжительности дня (Киев)

<?php
$si = date_sun_info(strtotime('2022-08-26'), 50.45, 30.52);
$diff = $si['sunset'] - $si['sunrise'];
echo "Продолжительность дня: ",
floor($diff / 3600), " ч. ",
floor(($diff % 3600) / 60), " сек.\n";
?>

Результат выполнения данного примера:

Продолжительность дня: 13 ч. 56 сек.

Смотрите также

  • date_sunrise() - Возвращает время рассвета для заданных дня и местоположения
  • date_sunset() - Возвращает время захода солнца для заданных дня и местоположения


Возвращает время рассвета для заданных дня и местоположения

  • « date_sun_info
  • date_sunset »
  • PHP Manual
  • Функции даты и времени
  • Возвращает время рассвета для заданных дня и местоположения

date_sunrise

(PHP 5, PHP 7, PHP 8)

date_sunrise — Возвращает время рассвета для заданных дня и местоположения

Внимание

Функция УСТАРЕЛА, начиная с PHP 8.1.0. Полагаться на эту функцию крайне не рекомендуется. Используйте вместо неё функцию date_sun_info().

Описание

date_sunrise(
int $timestamp,
int $returnFormat = SUNFUNCS_RET_STRING,
?float $latitude = null,
?float $longitude = null,
?float $zenith = null,
?float $utcOffset = null
): string|int|float|false

date_sunrise() возвращает время рассвета для определённых дня (заданного аргументом timestamp) и местоположения.

Список параметров

timestamp

Временная метка (timestamp) дня, для которого определяется время рассвета.

returnFormat

Константы returnFormat
константа | описание | пример
SUNFUNCS_RET_STRING | тип возвращаемого результата string | 16:46
SUNFUNCS_RET_DOUBLE | тип возвращаемого результата float | 16.78243132
SUNFUNCS_RET_TIMESTAMP | тип возвращаемого результата int (временная метка) | 1095034606

latitude

По умолчанию в Северном полушарии, для Южного передаётся отрицательная величина. Смотрите также date.default_latitude.

longitude

По умолчанию восточная, для указания западной долготы передаётся отрицательная величина. Смотрите также date.default_longitude.

zenith

zenith - это угол между центром Солнца и линией, перпендикулярной поверхности Земли. По умолчанию date.sunrise_zenith

Распространённые углы zenith angles
Угол | Описание
90°50' | Восход солнца: точка, где Солнце становится видимым.
96° | Гражданские сумерки: обычно используются для обозначения начала рассвета.
102° | Навигационные сумерки: точка, в которой горизонт становится видимым с моря.
108° | Астрономические сумерки: точка, в которой Солнце начинает быть источником любого освещения.

utcOffset

Задаётся в часах. utcOffset игнорируется, если returnFormat - SUNFUNCS_RET_TIMESTAMP

Возвращаемые значения

Возвращает время восхода солнца в заданном формате returnFormat или false в случае возникновения ошибки. Одна из возможных причин неудачного выполнения - солнце не поднимается над горизонтом вообще, что происходит внутри полярных кругов в течение части года.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках часового пояса сгенерирует ошибку уровня E_WARNING, если часовой пояс некорректный. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
8.1.0 | Функция объявлена устаревшей, используйте вместе неё date_sun_info().
8.0.0 | latitude, longitude, zenith и utcOffset теперь допускают значение null.

Примеры

Пример #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_sun_info() - Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек


Возвращает время захода солнца для заданных дня и местоположения

  • « date_sunrise
  • date_time_set »
  • PHP Manual
  • Функции даты и времени
  • Возвращает время захода солнца для заданных дня и местоположения

date_sunset

(PHP 5, PHP 7, PHP 8)

date_sunset — Возвращает время захода солнца для заданных дня и местоположения

Внимание

Функция УСТАРЕЛА, начиная с PHP 8.1.0. Полагаться на эту функцию крайне не рекомендуется. Используйте вместо неё функцию date_sun_info().

Описание

date_sunset(
int $timestamp,
int $returnFormat = SUNFUNCS_RET_STRING,
?float $latitude = null,
?float $longitude = null,
?float $zenith = null,
?float $utcOffset = null
): string|int|float|false

date_sunset() возвращает время захода солнца для определённых дня (заданного аргументом timestamp) и местоположения.

Список параметров

timestamp

Временная метка (timestamp) дня, для которого определяется время захода солнца.

returnFormat

Константы returnFormat
константа | описание | пример
SUNFUNCS_RET_STRING | тип возвращаемого результата string | 16:46
SUNFUNCS_RET_DOUBLE | тип возвращаемого результата float | 16.78243132
SUNFUNCS_RET_TIMESTAMP | тип возвращаемого результата int (временная метка) | 1095034606

latitude

По умолчанию в Северном полушарии, для Южного передаётся отрицательная величина. Смотрите также date.default_latitude.

longitude

По умолчанию восточная, для указания западной долготы передаётся отрицательная величина. Смотрите также date.default_longitude.

zenith

zenith - это угол между центром Солнца и линией, перпендикулярной поверхности Земли. По умолчанию date.sunset_zenith

Распространённые углы zenith
Угол | Описание
90°50' | Восход солнца: точка, где Солнце становится невидимым.
96° | Гражданские сумерки: обычно используются для обозначения конца заката.
102° | Навигационные сумерки: точка, в которой горизонт становится невидимым с моря.
108° | Астрономические сумерки: точка, в которой Солнце заканчивает быть источником любого освещения.

utcOffset

Задаётся в часах. utcOffset игнорируется, если returnFormat - SUNFUNCS_RET_TIMESTAMP.

Возвращаемые значения

Возвращает время захода солнца в заданном формате returnFormat или false в случае возникновения ошибки. Одна из возможных причин неудачного выполнения - солнце не поднимается над горизонтом вообще, что происходит внутри полярных кругов в течение части года.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках часового пояса сгенерирует ошибку уровня E_WARNING, если часовой пояс некорректный. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
8.1.0 | Функция объявлена устаревшей, используйте вместе неё date_sun_info().
8.0.0 | latitude, longitude, zenith и utcOffset теперь допускают значение null.

Примеры

Пример #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_sun_info() - Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек


Псевдоним DateTime::setTime

  • « date_sunset
  • date_timestamp_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

date_timezone_set — Псевдоним DateTime::setTimezone()

Описание

Функция является псевдонимом: DateTime::setTimezone()


Форматирует временную метку Unix

  • « date_timezone_set
  • getdate »
  • PHP Manual
  • Функции даты и времени
  • Форматирует временную метку Unix

date

(PHP 4, PHP 5, PHP 7, PHP 8)

date — Форматирует временную метку Unix

Описание

date(string $format, ?int $timestamp = null): string

Возвращает строку, отформатированную в соответствии с указанным в параметре format шаблоном. Используется метка времени, заданная параметром timestamp (метка времени Unix), или текущее системное время, если параметр timestamp не задан. Таким образом, параметр timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time().

Внимание

Метки времени Unix не обрабатывают часовые пояса. Используйте класс DateTimeImmutable и его метод форматирования DateTimeInterface::format() для форматирования информации о дате/времени с привязкой к часовому поясу.

Список параметров

format

Принятый формат DateTimeInterface::format().

Замечание: Функция date() всегда будет генерировать 000000 в качестве микросекунд, поскольку она принимает параметр int, тогда как DateTime::format() поддерживает микросекунды, если DateTime был создан с микросекундами.

timestamp

Необязательный параметр timestamp представляет собой метку времени типа int, по умолчанию равную текущему локальному времени, если timestamp не указан или null. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает отформатированную строку с датой.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках часового пояса сгенерирует ошибку уровня E_WARNING, если часовой пояс некорректный. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
8.0.0 | timestamp теперь допускает значение null.

Примеры

Пример #1 Примеры использования функции date()

<?php
// установка часового пояса по умолчанию.
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() можно использовать метод IntlDateFormatter::format().

Примечания

Замечание:

Для получения метки времени из строкового представления даты можно воспользоваться функцией strtotime(). Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (например, функция MySQL » UNIX_TIMESTAMP).

Подсказка

Временную метку начала запроса можно получить из поля $_SERVER['REQUEST_TIME'].

Смотрите также

  • DateTimeImmutable::__construct() - Возвращает новый объект DateTimeImmutable
  • DateTimeInterface::format() - Возвращает дату, отформатированную согласно переданному формату
  • gmdate() - Форматирует дату/время по Гринвичу
  • idate() - Преобразует локальное время/дату в целое число
  • getdate() - Возвращает информацию о дате/времени
  • getlastmod() - Получает время последней модификации страницы
  • mktime() - Возвращает метку времени Unix для заданной даты
  • IntlDateFormatter::format() - Форматирует значение даты/времени в виде строки
  • time() - Возвращает текущую метку системного времени Unix
  • Предопределённые константы даты и времени


Возвращает информацию о дате/времени

  • « date
  • gettimeofday »
  • PHP Manual
  • Функции даты и времени
  • Возвращает информацию о дате/времени

getdate

(PHP 4, PHP 5, PHP 7, PHP 8)

getdate — Возвращает информацию о дате/времени

Описание

getdate(?int $timestamp = null): array

Возвращает ассоциативный массив (array), содержащий информацию о дате, представленной меткой времени timestamp или текущим системным временем, если timestamp не был передан или null.

Список параметров

timestamp

Необязательный параметр timestamp представляет собой метку времени типа int, по умолчанию равную текущему локальному времени, если timestamp не указан или null. Другими словами, значение по умолчанию равно результату функции 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.

Список изменений

Версия | Описание
8.0.0 | timestamp теперь допускает значение null.

Примеры

Пример #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() - Форматирует временную метку Unix
  • idate() - Преобразует локальное время/дату в целое число
  • localtime() - Возвращает локальное время
  • time() - Возвращает текущую метку системного времени Unix
  • setlocale() - Устанавливает настройки локали


Возвращает текущее время

  • « getdate
  • gmdate »
  • PHP Manual
  • Функции даты и времени
  • Возвращает текущее время

gettimeofday

(PHP 4, PHP 5, PHP 7, PHP 8)

gettimeofday — Возвращает текущее время

Описание

gettimeofday(bool $as_float = false): array|float

Функция является интерфейсом к системному вызову gettimeofday(2). Она возвращает ассоциативный массив, содержащий информацию, полученную от системного вызова.

Список параметров

as_float

Если установлено в true, вместо массива возвращается число с плавающей точкой.

Возвращаемые значения

По умолчанию возвращается массив (array). Если установлен параметр as_float, то возвращается число с плавающей точкой (float).

Ключи массива:

  • "sec" - количество секунд, прошедших с эпохи Unix
  • "usec" - микросекунды
  • "minuteswest" - смещение к западу от Гринвича, в минутах
  • "dsttime" - тип коррекции летнего времени

Примеры

Пример #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, PHP 8)

gmdate — Форматирует дату/время по Гринвичу

Описание

gmdate(string $format, ?int $timestamp = null): string

Эта функция идентична функции date() за исключением того, что возвращает время по Гринвичу (GMT).

Список параметров

format

Формат выводимой даты типа строка (string). Смотрите параметры форматирования для функции date().

timestamp

Необязательный параметр timestamp представляет собой метку времени типа int, по умолчанию равную текущему локальному времени, если timestamp не указан или null. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает строку с форматированной датой.

Список изменений

Версия | Описание
8.0.0 | timestamp теперь допускает значение null.

Примеры

Пример #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));
?>

Смотрите также

  • DateTimeImmutable::__construct() - Возвращает новый объект DateTimeImmutable
  • DateTimeInterface::format() - Возвращает дату, отформатированную согласно переданному формату
  • date() - Форматирует временную метку Unix
  • mktime() - Возвращает метку времени Unix для заданной даты
  • gmmktime() - Возвращает локальную метку времени Unix для времени по Гринвичу
  • IntlDateFormatter::format() - Форматирует значение даты/времени в виде строки


Возвращает локальную метку времени Unix для времени по Гринвичу

  • « gmdate
  • gmstrftime »
  • PHP Manual
  • Функции даты и времени
  • Возвращает локальную метку времени Unix для времени по Гринвичу

gmmktime

(PHP 4, PHP 5, PHP 7, PHP 8)

gmmktime — Возвращает локальную метку времени Unix для времени по Гринвичу

Описание

gmmktime(
int $hour,
?int $minute = null,
?int $second = null,
?int $month = null,
?int $day = null,
?int $year = null
): int|false

Эта функция идентична функции mktime(), за исключением того, что аргументы являются временем по Гринвичу (GMT). gmmktime() внутри использует mktime(), поэтому могут быть использованы только те даты местного времени, которые корректно представляются в этом часовом поясе.

Подобно функции mktime(), необязательные аргументы могут быть опущены в порядке справа налево, при этом все опущенные аргументы предполагаются равными соответствующим компонентам текущего времени по Гринвичу.

Вызов функции gmmktime() без аргументов не поддерживается и приведёт к ошибке ArgumentCountError.

Список параметров

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

Год

Возвращаемые значения

Возвращает временную метку Unix (int) в случае успешного выполнения или false, если временная метка не может быть представлена в виде целого числа PHP.

Список изменений

Версия | Описание
8.0.0 | hour больше не является необязательным. Если вам нужна временная метка Unix, используйте функцию time().
8.0.0 | minute, second, month, day и year теперь допускают значение null.

Примеры

Пример #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));
?>

Смотрите также

  • The DateTimeImmutable class
  • mktime() - Возвращает метку времени Unix для заданной даты
  • date() - Форматирует временную метку Unix
  • time() - Возвращает текущую метку системного времени Unix


Форматирует дату/время по Гринвичу с учётом текущей локали

  • « gmmktime
  • idate »
  • PHP Manual
  • Функции даты и времени
  • Форматирует дату/время по Гринвичу с учётом текущей локали

gmstrftime

(PHP 4, PHP 5, PHP 7, PHP 8)

gmstrftime — Форматирует дату/время по Гринвичу с учётом текущей локали

Внимание

Функция объявлена УСТАРЕВШЕЙ в PHP 8.1.0. Полагаться на эту функцию крайне не рекомендуется.

Есть следующие альтернативы:

  • gmdate()
  • IntlDateFormatter::format()

Описание

gmstrftime(string $format, ?int $timestamp = null): string|false

Эта функция идентична функции strftime() за исключением того, что возвращает время по Гринвичу (GMT). Например, при запуске на системе, где установлено Eastern Standard Time (GMT-0500), первая строка из примера ниже выведет "Dec 31 1998 20:00:00", тогда как вторая - "Jan 01 1999 01:00:00".

Внимание

Функция зависит от информации о локали операционной системы, которая может быть несовместима друг с другом или вообще отсутствовать. Вместо этой функции используйте метод IntlDateFormatter::format().

Список параметров

format

Смотрите описание функции strftime().

timestamp

Необязательный параметр timestamp представляет собой метку времени типа int, по умолчанию равную текущему локальному времени, если timestamp не указан или null. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает строку, отформатированную согласно указанному формату и с использованием временной метки из параметра timestamp или текущего локального времени, если временная метка не была указана. Названия месяцев, дней недели и других языкозависимых строк будут показаны с учётом настроек текущей локали, установленных с помощью функции setlocale(). В случае возникновения ошибки возвращает false.

Список изменений

Версия | Описание
8.0.0 | timestamp теперь допускает значение null.

Примеры

Пример #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";
?>

Смотрите также

  • IntlDateFormatter::format() - Форматирует значение даты/времени в виде строки
  • DateTimeInterface::format() - Возвращает дату, отформатированную согласно переданному формату
  • strftime() - Форматирует текущую дату/время с учётом текущих настроек локали


Преобразует локальное время/дату в целое число

  • « gmstrftime
  • localtime »
  • PHP Manual
  • Функции даты и времени
  • Преобразует локальное время/дату в целое число

idate

(PHP 5, PHP 7, PHP 8)

idate — Преобразует локальное время/дату в целое число

Описание

idate(string $format, ?int $timestamp = null): int|false

Преобразует текущую дату и время в целое число в соответствии со строкой форматирования 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 | Номер месяца
N | День недели в ISO-8601 (с 1 для понедельника по 7 для воскресенья)
o | Год в ISO-8601 (4 цифры)
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 представляет собой метку времени типа int, по умолчанию равную текущему локальному времени, если timestamp не указан или null. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает целое число (int) в случае успешного выполнения или false в случае возникновения ошибки.

idate() всегда возвращает тип int и не может начинаться с нуля, поэтому idate() может вернуть меньше цифр, чем вы ожидаете. Смотрите примеры ниже.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках часового пояса сгенерирует ошибку уровня E_WARNING, если часовой пояс некорректный. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
8.2.0 | Добавлены символы для параметра format: N (День недели в ISO-8601) и o (Год в ISO-8601).
8.0.0 | timestamp теперь допускает значение null.

Примеры

Пример #1 Пример использования idate()

<?php
$timestamp = strtotime('1st January 2004'); //1072915200

// это выведет год в 2-х знаковом представлении
// поскольку первая цифра "0", будет выведено
// только "4"
echo idate('y', $timestamp);
?>

Смотрите также

  • DateTimeInterface::format() - Возвращает дату, отформатированную согласно переданному формату
  • date() - Форматирует временную метку Unix
  • getdate() - Возвращает информацию о дате/времени
  • time() - Возвращает текущую метку системного времени Unix


Возвращает локальное время

  • « idate
  • microtime »
  • PHP Manual
  • Функции даты и времени
  • Возвращает локальное время

localtime

(PHP 4, PHP 5, PHP 7, PHP 8)

localtime — Возвращает локальное время

Описание

localtime(?int $timestamp = null, bool $associative = false): array

Функция localtime() возвращает массив, аналогичный по структуре, возвращаемой соответствующей функцией C.

Список параметров

timestamp

Необязательный параметр timestamp представляет собой метку времени типа int, по умолчанию равную текущему локальному времени, если timestamp не указан или null. Другими словами, значение по умолчанию равно результату функции time().

associative

Определяет, должна ли функция возвращать обычный массив с числовыми индексами или ассоциативный.

Возвращаемые значения

Если associative установлен в false или не передан, то возвращается обычный массив с числовыми индексами. Если для параметра associative установлено значение 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_WARNING, если часовой пояс некорректный. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
8.0.0 | timestamp теперь допускает значение null.

Примеры

Пример #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, PHP 8)

microtime — Возвращает текущую метку времени Unix с микросекундами

Описание

microtime(bool $as_float = false): string|float

Функция microtime() возвращает текущую метку времени Unix с микросекундами. Эта функция доступна только на операционных системах, в которых есть системный вызов gettimeofday().

Для измерения производительности рекомендуется использовать hrtime().

Список параметров

as_float

Если указано и установлено в true, microtime() возвратит число с плавающей точкой (float) вместо строки (string), как описано в разделе возвращаемых значений ниже.

Возвращаемые значения

По умолчанию microtime() возвращает строку (string) в формате "msec sec", где sec представляет собой количество секунд в виде десятичной дроби с начала эпохи Unix (1 января 1970 0:00:00 GMT), а msec - это количество микросекунд, прошедших после sec.

Если параметр as_float установлен в true, то microtime() возвратит результат в вещественном виде (float), представляющий собой текущее время в секундах, прошедших с начала эпохи Unix с точностью до микросекунд.

Примеры

Пример #1 Замер времени выполнения скрипта

<?php
$time_start = microtime(true);

// Спим некоторое время
usleep(100);

$time_end = microtime(true);
$time = $time_end - $time_start;

echo "Ничего не делал $time секунд\n";
?>

Пример #2 Пример использования microtime() и REQUEST_TIME_FLOAT

<?php
// Выбираем время сна случайным образом
usleep(mt_rand(100, 10000));

// В суперглобальном массиве $_SERVER доступно значение REQUEST_TIME_FLOAT.
// Оно содержит временную метку начала запроса с точностью до микросекунд.
$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];

echo "Ничего не делал $time секунд\n";
?>

Смотрите также

  • time() - Возвращает текущую метку системного времени Unix
  • hrtime() - Получить системное время высокого разрешения


Возвращает метку времени Unix для заданной даты

  • « microtime
  • strftime »
  • PHP Manual
  • Функции даты и времени
  • Возвращает метку времени Unix для заданной даты

mktime

(PHP 4, PHP 5, PHP 7, PHP 8)

mktime — Возвращает метку времени Unix для заданной даты

Описание

mktime(
int $hour,
?int $minute = null,
?int $second = null,
?int $month = null,
?int $day = null,
?int $year = null
): int|false

Функция возвращает метку времени Unix, соответствующую дате и времени, переданных в качестве аргументов. Метка времени - это целое число, равное разнице в секундах между заданной датой/временем и началом эпохи Unix (1 января 1970 00:00:00 GMT).

Любые необязательные аргументы, опущенные или равные null, будут установлены в текущее значение в соответствии с локальной датой и временем.

Внимание

Обратите внимание, что порядок аргументов нечётный: month, day, year, а не в более разумной последовательности year, month, day.

Вызов функции mktime() без аргументов не поддерживается и приведёт к ошибке ArgumentCountError.

Список параметров

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.

Возвращаемые значения

Функция mktime() возвращает временную метку Unix в соответствии с переданными аргументами или false, если временная метка не может быть представлена в виде целого числа PHP.

Список изменений

Версия | Описание
8.0.0 | hour больше не является необязательным. Если вам нужна временная метка Unix, используйте функцию time().
8.0.0 | minute, second, month, day и year теперь допускают значение null.

Примеры

Пример #1 Пример использования функции mktime()

<?php
// Устанавливаем используемый по умолчанию часовой пояс.
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);
?>

Смотрите также

  • Класс DateTimeImmutable
  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • gmmktime() - Возвращает локальную метку времени Unix для времени по Гринвичу
  • date() - Форматирует временную метку Unix
  • time() - Возвращает текущую метку системного времени Unix


Форматирует текущую дату/время с учётом текущих настроек локали

  • « mktime
  • strptime »
  • PHP Manual
  • Функции даты и времени
  • Форматирует текущую дату/время с учётом текущих настроек локали

strftime

(PHP 4, PHP 5, PHP 7, PHP 8)

strftime — Форматирует текущую дату/время с учётом текущих настроек локали

Внимание

Функция объявлена УСТАРЕВШЕЙ в PHP 8.1.0. Полагаться на эту функцию крайне не рекомендуется.

Есть следующие альтернативы:

  • date()
  • IntlDateFormatter::format()

Описание

strftime(string $format, ?int $timestamp = null): string|false

Форматирует дату/время с учётом текущих настроек локали. Названия месяцев, дней недели и других языкозависимых строк будут взяты в соответствии с текущими настройками локали, установленной с помощью функции setlocale().

Внимание

Ваша C-библиотека может не поддерживать все форматирующие параметры, в этом случае они будут недоступны функции strftime(). Кроме того, не все платформы поддерживают отрицательные метки времени, так что поддерживаемый диапазон дат на этих платформах будет ограничен эпохой Unix. Это значит, что %e, %T, %R и %D (а возможно и другие параметры), как и даты до Jan 1, 1970, не поддерживаются Windows, некоторыми версиями Linux и некоторыми другими операционными системами. Список форматирующих символов, поддерживаемых Windows, можно найти на » сайте MSDN. Используйте вместо этого метод IntlDateFormatter::format().

Список параметров

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. Точный результат зависит от операционной системы, также могут возвращаться варианты в нижнем регистре или варианты с точками (например, a.m.).
%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") ---
%% Символ процента ("%") ---

Внимание

В отличие от ISO-9899:1999, в Sun Solaris воскресенью присваивается номер 1. Как результат, %u может работать не так, как описано в этом руководстве.

Внимание

Только для Windows:

Модификатор %e не поддерживается в реализации этой функции в Windows. Для использования этого значения необходимо вместо него использовать модификатор %#d. Пример ниже иллюстрирует кроссплатформенно совместимую функцию.

Модификаторы %z и %Z возвращают название часового пояса вместо смещения или аббревиатуры.

Внимание

Только для macOS и Musl: модификатор %P не поддерживается в реализации этой функции в macOS.

timestamp

Необязательный параметр timestamp представляет собой метку времени типа int, по умолчанию равную текущему локальному времени, если timestamp не указан или null. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает строку, отформатированную в соответствии с параметром format, используя указанную временную метку timestamp или текущее время, если метка не была указана. Названия месяцев, дней недели и других языкозависимых строк будут взяты в соответствии с текущими настройками локали, установленной с помощью функции setlocale(). Функция возвращает false если параметр format пустой, содержит неподдерживаемые спецификаторы преобразования или если длина возвращаемой строки будет больше 4095.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках часового пояса сгенерирует ошибку уровня E_WARNING, если часовой пояс некорректный. Смотрите также date_default_timezone_set()

Из-за того, что результат данной функции зависит от используемой в операционной системе C-библиотеки, некоторые модификаторы могут не поддерживаться. Передача неизвестного модификатора в функцию в Windows выдаст 5 предупреждений E_WARNING и вернёт false. На других операционных системах вы можете не получить никаких предупреждений E_WARNING, а вывод может содержать модификаторы без преобразований.

Список изменений

Версия | Описание
8.0.0 | timestamp теперь допускает значение null.

Примеры

Этот пример будет работать, если на вашей системе установлены соответствующие локали.

Пример #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 на данной странице.

Смотрите также

  • IntlDateFormatter::format() - Форматирует значение даты/времени в виде строки
  • DateTimeInterface::format() - Возвращает дату, отформатированную согласно переданному формату
  • » Онлайн-утилита составления времени в формате strftime()
  • setlocale() - Устанавливает настройки локали
  • mktime() - Возвращает метку времени Unix для заданной даты
  • strptime() - Разбирает строку даты/времени, сгенерированную функцией strftime
  • gmstrftime() - Форматирует дату/время по Гринвичу с учётом текущей локали
  • » Спецификация Open Group функции strftime()


Разбирает строку даты/времени, сгенерированную функцией strftime

  • « strftime
  • strtotime »
  • PHP Manual
  • Функции даты и времени
  • Разбирает строку даты/времени, сгенерированную функцией strftime

strptime

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

strptime — Разбирает строку даты/времени, сгенерированную функцией strftime()

Внимание

Функция объявлена УСТАРЕВШЕЙ, начиная с PHP 8.1.0. Использовать эту функцию крайне не рекомендуется.

Описание

strptime(string $timestamp, string $format): array|false

strptime() возвращает массив с данными разбора строки timestamp, либо false в случае возникновения ошибки.

Названия месяцев и недель, а также другие названия, зависящие от языка, соответствуют текущим настройкам местоположения, установленным посредством setlocale() (LC_TIME).

Список параметров

timestamp (string)

Строка для разбора (например, строковый результат выполнения функции strftime()).

format (string)

Формат строки timestamp (например, формат, используемый в функции 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" | Часть timestamp, которую не удалось распознать в соответствии с format

Список изменений

Версия | Описание
8.1.0 | Функция объявлена устаревшей. Вместо неё используйте date_parse_from_format() (для синтаксического анализа, не зависящего от языкового стандарта) или IntlDateFormatter::parse() (для синтаксического анализа, зависящего от языкового стандарта).

Примеры

Пример #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() лишена этого недостатка и рекомендована к использованию.

Замечание:

"tm_sec" включает несколько секунд високосного года (на данный момент до 2-х в год). Для получения дополнительной информации о високосных секундах читайте » статью на википедии.

Смотрите также

  • IntlDateFormatter::parse() - Преобразует строку в значение отметки времени
  • DateTime::createFromFormat() - Разбирает строку с датой согласно указанному формату
  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • strftime() - Форматирует текущую дату/время с учётом текущих настроек локали
  • date_parse_from_format() - Получение информации о заданной в определённом формате дате


Преобразует текстовое представление даты на английском языке в метку времени Unix

  • « strptime
  • time »
  • PHP Manual
  • Функции даты и времени
  • Преобразует текстовое представление даты на английском языке в метку времени Unix

strtotime

(PHP 4, PHP 5, PHP 7, PHP 8)

strtotime — Преобразует текстовое представление даты на английском языке в метку времени Unix

Описание

strtotime(string $datetime, ?int $baseTimestamp = null): int|false

Первым параметром функции должна быть строка с датой на английском языке, которая будет преобразована в метку времени Unix (количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC) относительно метки времени, переданной в baseTimestamp, или текущего времени, если аргумент baseTimestamp опущен. Разбор строки даты определён в разделе Форматы даты и времени и содержит несколько аспектов. Настоятельно рекомендуется с ними ознакомиться.

Внимание

Временная метка Unix, которую возвращает эта функция, не содержит информацию о часовых поясах. Для выполнения расчётов с информацией о дате/времени вы должны использовать более подходящий DateTimeImmutable.

Каждый параметр функции использует временную метку по умолчанию, пока она не указана в этом параметре напрямую. Будьте внимательны и не используйте различные временные метки в параметрах, если на то нет прямой необходимости. Обратите внимание на date_default_timezone_get() для задания часового пояса различными способами.

Список параметров

datetime

Строка даты/времени. Объяснение корректных форматов дано в разделе Форматы даты и времени.

baseTimestamp

Временная метка, используемая в качестве базы для вычисления относительных дат.

Возвращаемые значения

Возвращает временную метку в случае успешного выполнения, иначе возвращается false.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках часового пояса сгенерирует ошибку уровня E_WARNING, если часовой пояс некорректный. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
8.0.0 | baseTimestamp теперь допускает значение null.

Примеры

Пример #1 Пример использования функции strtotime()

<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

Пример #2 Проверка ошибок

<?php
$str = 'Not Good';

if (($timestamp = strtotime($str)) === false) {
echo "Строка ($str) недопустима";
} else {
echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
}
?>

Примечания

Замечание:

"Относительная" дата в данном случае также означает, что если конкретный компонент метки даты/времени не указан, он будет взят дословно из параметр baseTimestamp. То есть, strtotime('February'), если его запустить 31 мая 2022 года, будет интерпретирован как 31 февраля 2022, что перенесётся в метку времени 3 марта (в високосный год будет 2 марта). Использование strtotime('1 February') или strtotime('first day of February') позволит избежать этой проблемы.

Замечание:

Если количество лет указано двумя цифрами, то значения 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-битового знакового целого).

В 64-битных версиях PHP корректный диапазон временных меток фактически бесконечен, так как 64 битов хватит для представления приблизительно 293 миллиарда лет в обоих направлениях.

Замечание:

Не рекомендуется использовать эту функцию для математических операций. Целесообразно использовать DateTime::add() и DateTime::sub().

Смотрите также

  • DateTimeImmutable
  • DateTimeImmutable::createFromFormat() - Разбирает строку с датой согласно указанному формату
  • Форматы даты и времени
  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • strptime() - Разбирает строку даты/времени, сгенерированную функцией strftime


Возвращает текущую метку системного времени Unix

  • « strtotime
  • timezone_abbreviations_list »
  • PHP Manual
  • Функции даты и времени
  • Возвращает текущую метку системного времени Unix

time

(PHP 4, PHP 5, PHP 7, PHP 8)

time — Возвращает текущую метку системного времени Unix

Описание

time(): int

Возвращает количество секунд, прошедших с начала эпохи Unix (1 января 1970 00:00:00 GMT) до текущего времени.

Замечание:

Метки времени Unix не содержат никакой информации относительно локального часового пояса. Рекомендуется использовать класс DateTimeImmutable для работы с информацией о дате и времени, чтобы избежать подводных камней, связанных с метками времени Unix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущую метку системного времени.

Примеры

Пример #1 Пример использования time()

<?php

echo 'Сейчас: '. time();
?>

Результатом выполнения данного примера будет что-то подобное:

Сейчас: 1660338149

Примечания

Подсказка

Время начала запроса доступно в глобальной переменной $_SERVER['REQUEST_TIME'].

Смотрите также

  • DateTimeImmutable
  • date() - Форматирует временную метку Unix
  • microtime() - Возвращает текущую метку времени Unix с микросекундами


Псевдоним DateTimeZone::listAbbreviations

  • « time
  • timezone_identifiers_list »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

timezone_location_get — Псевдоним DateTimeZone::getLocation()

Описание

Функция является псевдонимом: DateTimeZone::getLocation()


Возвращает название часового пояса, угадывая по аббревиатуре и смещению UTC

  • « timezone_location_get
  • timezone_name_get »
  • PHP Manual
  • Функции даты и времени
  • Возвращает название часового пояса, угадывая по аббревиатуре и смещению UTC

timezone_name_from_abbr

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

timezone_name_from_abbr — Возвращает название часового пояса, угадывая по аббревиатуре и смещению UTC

Описание

timezone_name_from_abbr(string $abbr, int $utcOffset = -1, int $isDST = -1): string|false

Список параметров

abbr

Аббревиатура часового пояса.

utcOffset

Смещение относительно GMT в секундах. По умолчанию -1, что означает возврат первого найденного часового пояса, отвечающего аббревиатуре abbr. В противном случае будет произведён поиск часового пояса с заданным смещением. Если поиск завершится неудачей, будет возвращён ближайший к смещению часовой пояс.

isDST

Поправка на летнее время. По умолчанию -1, в этом случае поправка на летнее время не учитывается. Если передана 1, смещение utcOffset учитывает действующее летнее время. Если задан 0, utcOffset рассчитывается с учётом зимнего времени. Если abbr не существует, определение часового пояса опирается только на utcOffset и 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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

timezone_transitions_get — Псевдоним DateTimeZone::getTransitions()

Описание

Функция является псевдонимом: DateTimeZone::getTransitions()


Получение номера версии базы данных часовых поясов

  • « timezone_transitions_get
  • Date/Time Errors and Exceptions »
  • PHP Manual
  • Функции даты и времени
  • Получение номера версии базы данных часовых поясов

timezone_version_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

timezone_version_get — Получение номера версии базы данных часовых поясов

Описание

timezone_version_get(): string

Возвращает номер версии базы данных часовых поясов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string) в формате YYYY.increment, например, 2022.2.

Если у вас старая версия базы данных часовых поясов (например, она показывает не текущий год), то вы можете обновить информацию о часовых поясах, либо обновив версию PHP, либо установив пакет PECL » timezonedb.

Некоторые дистрибутивы Linux исправляют поддержку даты/времени в PHP, чтобы использовать альтернативный источник информации о часовых поясах. В такой ситуации функция будет возвращать 0.system. В этом случае рекомендуется установить пакет PECL » timezonedb.

Примеры

Пример #1 Определение версии базы данных часовых поясов

<?php
echo timezone_version_get();
?>

Результатом выполнения данного примера будет что-то подобное:

2022.2

Смотрите также

  • Список поддерживаемых часовых поясов


Date/Time Errors and Exceptions

  • DateError (наследует Error)
    • DateObjectError DateRangeError
  • DateException (наследует Exception)
      • DateInvalidOperationException
      • DateInvalidTimezoneException
      • DateMalformedIntervalStringException
      • DateMalformedPeriodStringException
      • DateMalformedStringException


Допустимые форматы даты/времени

В этом разделе описываются все различные форматы в BNF-подобном синтаксисе, которые принимает парсер: DateTimeImmutable, DateTime, date_create_immutable(), date_create(), date_parse() и strtotime(). Форматы сгруппированы по разделам. В большинстве случаев форматы из разных разделов, разделённые пробелом, запятой или точкой, могут использоваться в одной и той же строке даты/времени. Для каждого из поддерживаемых форматов приведены один или несколько примеров, а также описание формата. Символы в одинарных кавычках нечувствительны к регистру ('t' эквивалентно как t, так и T), символы в двойных кавычках чувствительны к регистру ("T" означает только T).

Чтобы отформатировать объекты DateTimeImmutable и DateTime, обратитесь к документации метода DateTimeInterface::format().

Следует принять во внимание общий свод правил.

  1. Парсер допускает для каждой единицы измерения (год, месяц, день, час, минута, секунда) полный диапазон значений. Для года это всего 4 цифры, для месяца - 0-12, дня - 0-31, для часа - 0-24, а для минуты - 0-59.
  2. Для секунд допускается значение 60, так как иногда строки даты с этой прыгающей секундой действительно появляются. Но PHP реализует время Unix, где "60" не является допустимым числом секунд и поэтому происходит переполнение.
  3. Функция strtotime() возвращает false, если какое-либо число находится вне диапазонов, а конструктор DateTimeImmutable::__construct() выбрасывает исключение.
  4. Если строка содержит дату, все элементы времени обнуляются до 0.
  5. Все менее значимые элементы времени сбрасываются до 0, если в данной строке присутствует какая-либо часть времени.
  6. Парсер не делает никаких проверок, чтобы сделать его быстрее (и более универсальным).
  7. Помимо правил для отдельных элементов времени, синтаксический анализатор понимает и более специфические комбинированные форматы, например, разбор меток времени Unix (@1690388256) и дат недели в формате ISO (2008-W28-3).

  8. Существует дополнительная проверка, если указана недействительная дата:

    <?php
    $res     = date_parse("2015-09-31");
    var_dump($res["warnings"]);
    ?>

    Результат выполнения данного примера:

    array(1) {
  [11] =>
  string(27) "The parsed date was invalid"
}

  9. Крайние случаи уже можно обработать, для этого необходимо использовать метод DateTimeImmutable::createFromFormat(), предоставляя правильный формат.

    <?php
    $res     = DateTimeImmutable::createFromFormat("Y-m-d", "2015-09-34");
    var_dump($res);

    Результат выполнения данного примера:

    object(DateTimeImmutable)#1 (3) {
  ["date"]=>
  string(26) "2015-10-04 17:24:43.000000"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(13) "Europe/London"
}

Форматы времени

На этой странице описаны форматы даты/времени в BNF-подобном синтаксисе, которые понимает парсер функций:
DateTimeImmutable, DateTime,
date_create(),
date_create_immutable() и
strtotime().

Чтобы отформатировать объекты DateTimeImmutable и DateTime, обратитесь к документации метода DateTimeInterface::format().

Используемые символы
Описание | Формат | Примеры
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) | 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"

Форматы даты

На этой странице описаны форматы даты в BNF-подобном синтаксисе, которые понимает парсер функций:
DateTimeImmutable, DateTime,
date_create(),
date_create_immutable() и
strtotime().

Чтобы отформатировать объекты DateTimeImmutable и DateTime, обратитесь к документации метода DateTimeInterface::format().

Используемые символы
Описание | Формат | Примеры
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"
YYY | [0-9]{5,19} | "81412", "20192"
Региональные нотации
Описание | Формат | Примеры
Месяц и день в американской нотации | 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"
День и название месяца | dd ([ .\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"
Год (расширенный, 5-19 цифр со знаком) | [+-] YYY | "-81120", "+20192"
Только название месяца | 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"
Пятизначный год с обязательным знаком, месяцем и днём | [+-] YYY "-" MM "-" DD | "-81120-02-26", "+20192-04-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 дней).

Обратите внимание, что диапазон дней ограничен 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" (минус первый год в календаре ISO 8601 и 2 год до н.э. по григорианскому календарю).

Составные форматов

На этой странице описаны различные составные форматы даты/времени в BNF-подобном синтаксисе, которые понимает парсер
функций: DateTimeImmutable, DateTime,
date_create(),
date_create_immutable() и
strtotime().

Чтобы отформатировать объекты DateTimeImmutable и DateTime, обратитесь к документации метода DateTimeInterface::format().

Используемые символы
Описание | Форматы | Примеры
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])|60 | "04", "8", "59", "60" (дополнительная секунда)
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"
Форматы стандартов
Описание | Примеры
ATOM | "2022-06-02T16:58:35+00:00"
COOKIE | "Thursday, 02-Jun-2022 16:58:35 UTC"
ISO8601 | "2022-06-02T16:58:35+0000"
» RFC 822 | "Thu, 02 Jun 22 16:58:35 +0000"
» RFC 850 | "Thursday, 02-Jun-22 16:58:35 UTC"
» RFC 1036 | "Thu, 02 Jun 22 16:58:35 +0000"
» RFC 1123 | "Thu, 02 Jun 2022 16:58:35 +0000"
» RFC 2822 | "Thu, 02 Jun 2022 16:58:35 +0000"
» RFC 3339 | "2022-06-02T16:58:35+00:00"
» RFC 3339 Extended | "2022-06-02T16:58:35.698+00:00"
» RFC 7231 | "Thu, 02 Jun 2022 16:58:35 GMT"
RSS | "Thu, 02 Jun 2022 16:58:35 +0000"
W3C | "2022-06-02T16:58:35+00:00"
Региональные нотации
Описание | Формат | Примеры
Общий формат 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"
Метка времени Unix с микросекундами | "@" "-"? [0-9]+ "." [0-9]{0,6} | "@1607974647.503686"
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, XMLRPC и WDDX также чувствителен к регистру, допускается использование символа "T" только в верхнем регистре.

Формат "Unix Timestamp" устанавливает часовой пояс в UTC.

Относительные форматы

На этой странице описаны относительные форматы даты/времени в BNF-подобном синтаксисе, которые понимает парсер
функций: DateTimeImmutable, DateTime,
date_create(),
date_create_immutable() и
strtotime().

Чтобы отформатировать объекты DateTimeImmutable и DateTime, обратитесь к документации метода DateTimeInterface::format().

Используемые символы
Описание | Формат
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 (интервалы) | 'ms' | 'µs' | (( 'msec' | 'millisecond' | 'µsec' | 'microsecond' | 'usec' | '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 | reltext) space unit | Вычисляет относительное время при использовании строковых значений периода. last и previous то же, что и -1, this ни на что не влияет, а next - +1. | "fifth day", "second month", "last day", "previous year"
'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". Причина такого поведения в том, что эти пять выражений влияют непосредственно на время.

Такие ключевые слова, как "first day of", зависят от контекста, в котором используется строка относительного формата. Если она используется в статическом методе или функции, то референтом является текущая системная метка времени. Однако при использовании в методе DateTime::modify() или DateTimeImmutable::modify(), референтом является объект, на котором вызывается метод modify().

Замечание:

Следует обратить внимание на приведённые ниже замечания относительно текущего дня недели и дня недели, указанного в строке даты/времени. Текущий день недели может быть вычислен из независимой части строки даты/времени.

  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'.

Список изменений

Версия | Описание
8.2.0 | Символы number больше не принимают несколько знаков, например, +-2.
7.0.8 | Недели всегда начинаются с понедельника. Ранее можно было определять начало недели с воскресенья.


Список поддерживаемых часовых поясов

Содержание

  • Африка
  • Америка
  • Антарктика
  • Арктика
  • Азия
  • Атлантика
  • Австралия
  • Европа
  • Индийский
  • Тихоокеанский
  • Другие

Здесь вы найдёте полный список часовых поясов, поддерживаемых PHP, которые могут быть использованы, например, в date_default_timezone_set().

Предостережение

Поведение часовых поясов, отсутствующих в списке, не определено.

Замечание: Последняя версия базы данных часовых поясов может быть установлена с помощью PECL-пакета » timezonedb.

Замечание: Этот список основан на версии базы данных часовых поясов 2023.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/Ciudad_Juarez | 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/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/Nome | America/Noronha | America/North_Dakota/Beulah
America/North_Dakota/Center | America/North_Dakota/New_Salem | America/Nuuk | America/Ojinaga
America/Panama | America/Paramaribo | America/Phoenix | America/Port-au-Prince
America/Port_of_Spain | America/Porto_Velho | America/Puerto_Rico | America/Punta_Arenas
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/Tijuana | America/Toronto | America/Tortola | America/Vancouver
America/Whitehorse | America/Winnipeg | America/Yakutat |


Антарктика

Антарктика
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/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/Kirov | Europe/Kyiv | 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/Vaduz | Europe/Vatican
Europe/Vienna | Europe/Vilnius | Europe/Volgograd | Europe/Warsaw
Europe/Zagreb | 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/Fakaofo
Pacific/Fiji | Pacific/Funafuti | Pacific/Galapagos | Pacific/Gambier
Pacific/Guadalcanal | Pacific/Guam | Pacific/Honolulu | Pacific/Kanton
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 в любое время.

Внимание

Если вы игнорируете вышестоящее предупреждение, то учтите, что база данных часовых поясов 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/Godthab | America/Indianapolis
America/Jujuy | America/Knox_IN | America/Louisville | America/Mendoza
America/Montreal | America/Nipigon | America/Pangnirtung | America/Porto_Acre
America/Rainy_River | America/Rosario | America/Santa_Isabel | America/Shiprock
America/Thunder_Bay | America/Virgin | America/Yellowknife | 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/Currie | 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/Kiev | Europe/Nicosia | Europe/Tiraspol | Europe/Uzhgorod
Europe/Zaporozhye | 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/Enderbury
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/Samoa | UTC
W-SU | WET | Zulu |


The DateError class

(PHP 8 >= 8.3.0)

Введение

Thrown when the timezone database is not found, or contains invalid data.

This error should never occur, and is not dependent on code. There are two child-exceptions (DateObjectError and DateRangeError) which are thrown depending on programmer error or range related issues.

Обзор классов

class DateError extends Error {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Смотрите также

  • DateObjectError
  • DateRangeError


The DateObjectError class

(PHP 8 >= 8.3.0)

Введение

Thrown when one of the Date/Time classes has not been correctly initialised.

Because Date/Time classes are not final, these classes can be inherit. When the parent constructor is not called, this error is thrown. This is always a programming error.

Обзор классов

class DateObjectError extends DateError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Смотрите также

  • DateError
  • DateRangeError


The DateRangeError class

(PHP 8 >= 8.3.0)

Введение

Thrown by DateTime::getTimestamp(), DateTimeImmutable::getTimestamp(), and date_timestamp_get(), on 32-bit platforms if the date object represents a date outside of the 32-bit signed range.

Обзор классов

class DateRangeError extends DateError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Смотрите также

  • DateError
  • DateObjectError


The DateException class

(PHP 8 >= 8.3.0)

Введение

Parent class of Date/Time exceptions, for issues that come to light due to user input, or free form text arguments that need to be parsed.

The following child exceptions are thrown by the extension:

  • DateInvalidOperationException
  • DateInvalidTimezoneException
  • DateMalformedIntervalStringException
  • DateMalformedPeriodStringException
  • DateMalformedStringException

Обзор классов

class DateException extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The DateInvalidOperationException class

(PHP 8 >= 8.3.0)

Введение

Thrown by DateTimeImmutable::sub() and DateTime::sub() when an unsupported operation is attempted.

An example of such an unsupported operation is using a DateInterval object representing relative time specifications such as next weekday, as no logical reversed statement can be constructed.

Обзор классов

class DateInvalidOperationException extends DateException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The DateInvalidTimeZoneException class

(PHP 8 >= 8.3.0)

Введение

Thrown when an incorrect value is passed to DateTimeZone::__construct().

Обзор классов

class DateInvalidTimeZoneException extends DateException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The DateMalformedIntervalStringException class

(PHP 8 >= 8.3.0)

Введение

Thrown when an invalid duration argument is passed to DateInterval::__construct().

Обзор классов

class DateMalformedIntervalStringException extends DateException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The DateMalformedPeriodStringException class

(PHP 8 >= 8.3.0)

Введение

Thrown when an invalid isostr argument is passed to DatePeriod::__construct().

Обзор классов

class DateMalformedPeriodStringException extends DateException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The DateMalformedStringException class

(PHP 8 >= 8.3.0)

Введение

Thrown when an invalid Date/Time string is detected.

This can be as value to
DateTimeImmutable::__construct(),
DateTimeImmutable::modify(),
DateTime::__construct(), or
DateTime::modify().

Обзор классов

class DateMalformedStringException extends DateException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Время высокого разрешения

  • Введение
  • Установка и настройка
    • Установка
  • Примеры
    • Основы использования
  • 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)

Введение

Обзор классов

class HRTime\PerformanceCounter {
/* Методы */
public static getFrequency(): int
public static getTicks(): 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(): int

Возвращает частоту таймера в тиках в секунду. Это будет постоянным значением после старта системы для большинства операционных систем.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число (int), равное частоте таймера.


Текущее значение тиков системы

  • « 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(): int

Возвращает количество тиков.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число (int), равное количеству тиков.


Количество тиков, прошедших с заданного значения

  • « 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

Начальное значение.

Возвращаемые значения

Возвращает целое число (int), равное количеству тиков.


Класс HRTime\StopWatch

(PECL hrtime >= 0.4.3)

Введение

Обзор классов

class HRTime\StopWatch extends HRTime\PerformanceCounter {
/* Методы */
public getElapsedTicks(): int
public getElapsedTime(int $unit = ?): float
public getLastElapsedTicks(): int
public getLastElapsedTime(int $unit = ?): float
public isRunning(): bool
public start(): void
public stop(): void
/* Наследуемые методы */
public static HRTime\PerformanceCounter::getFrequency(): int
public static HRTime\PerformanceCounter::getTicks(): 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(): int

Возвращает количество прошедших тиков всех ранее закрытых интервалов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число (int), указывающее прошедшие тики.


Получить суммарное прошедшее время всех интервалов

  • « 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(): 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(): 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

Запускает измерение времени. Если оно уже было запущено ранее, то ничего не произойдёт. Измерение будет продолжено, если оно ранее было остановлено.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ничего не возвращает.


Остановить измерение

  • « 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

Останавливает измерение для ранее запущенного интервала.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ничего не возвращает.


Класс HRTime\Unit

(PECL hrtime >= 0.4.3)

Введение

Обзор классов

class HRTime\Unit {
/* Константы */
const int SECOND = 0;
const int MILLISECOND = 1;
const int MICROSECOND = 2;
const int NANOSECOND = 3;
/* Методы */
}

Предопределённые константы

HRTime\Unit::SECOND

HRTime\Unit::MILLISECOND

HRTime\Unit::MICROSECOND

HRTime\Unit::NANOSECOND


Модули для работы с файловой системой

  • Прямой ввод/вывод (Direct IO)
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции прямого ввода/вывода
  • Каталоги
    • Установка и настройка
    • Предопределённые константы
    • Directory — Класс Directory
    • Функции для работы с каталогами
  • FileInfo — Информация о файле
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции модуля Fileinfo
    • finfo — Класс finfo
  • Файловая система
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции файловой системы
  • Inotify
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции Inotify
  • 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.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/dio.

DLL для этого модуля PECL в данный момент недоступна. Смотрите также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Предопределённые константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Для данного модуля зарегистрирован один тип ресурса: дескриптор файла, возвращённый dio_open().


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

F_DUPFD (int)

F_GETFD (int)

F_GETFL (int)

F_GETLK (int)

F_GETOWN (int)

F_RDLCK (int)

F_SETFL (int)

F_SETLK (int)

F_SETLKW (int)

F_SETOWN (int)

F_UNLCK (int)

F_WRLCK (int)

O_APPEND (int)

O_ASYNC (int)

O_CREAT (int)

O_EXCL (int)

O_NDELAY (int)

O_NOCTTY (int)

O_NONBLOCK (int)

O_RDONLY (int)

O_RDWR (int)

O_SYNC (int)

O_TRUNC (int)

O_WRONLY (int)

S_IRGRP (int)

S_IROTH (int)

S_IRUSR (int)

S_IRWXG (int)

S_IRWXO (int)

S_IRWXU (int)

S_IWGRP (int)

S_IWOTH (int)

S_IWUSR (int)

S_IXGRP (int)

S_IXOTH (int)

S_IXUSR (int)


Функции прямого ввода/вывода

Содержание

  • 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 (int)
SCANDIR_SORT_DESCENDING (int)
SCANDIR_SORT_NONE (int)


Класс Directory

(PHP 4, PHP 5, PHP 7, PHP 8)

Введение

Экземпляры класса Directory создаются при помощи вызова функции dir(), а не при помощи оператора new.

Обзор классов

class Directory {
/* Свойства */
public readonly string $path;
public readonly resource $handle;
/* Методы */
public close(): void
public read(): string|false
public rewind(): void
}

Свойства

path

Каталог, который был открыт.

handle

Может быть использовано с другими функциями каталогов, такими, как readdir(), rewinddir() и closedir().

Список изменений

Версия | Описание
8.1.0 | Свойства path и handle теперь доступны только для чтения.

Содержание

  • Directory::close — Закрывает дескриптор каталога
  • Directory::read — Получает элемент из дескриптора каталога
  • Directory::rewind — Перемещает дескриптор каталога в начало каталога


Закрывает дескриптор каталога

  • « Directory
  • Directory::read »
  • PHP Manual
  • Directory
  • Закрывает дескриптор каталога

Directory::close

(PHP 4, PHP 5, PHP 7, PHP 8)

Directory::close — Закрывает дескриптор каталога

Описание

public Directory::close(): void

Список изменений

Версия | Описание
8.0.0 | Параметры не принимаются. Раньше в качестве аргумента можно было передать дескриптор каталога.


Получает элемент из дескриптора каталога

  • « Directory::close
  • Directory::rewind »
  • PHP Manual
  • Directory
  • Получает элемент из дескриптора каталога

Directory::read

(PHP 4, PHP 5, PHP 7, PHP 8)

Directory::read — Получает элемент из дескриптора каталога

Описание

public Directory::read(): string|false

Список изменений

Версия | Описание
8.0.0 | Параметры не принимаются. Раньше в качестве аргумента можно было передать дескриптор каталога.


Перемещает дескриптор каталога в начало каталога

  • « Directory::read
  • Функции для работы с каталогами »
  • PHP Manual
  • Directory
  • Перемещает дескриптор каталога в начало каталога

Directory::rewind

(PHP 4, PHP 5, PHP 7, PHP 8)

Directory::rewind — Перемещает дескриптор каталога в начало каталога

Описание

public Directory::rewind(): void

Список изменений

Версия | Описание
8.0.0 | Параметры не принимаются. Раньше в качестве аргумента можно было передать дескриптор каталога.


Функции для работы с каталогами

Смотрите также

За описанием сопутствующих функций, таких как 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, PHP 8)

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

Примечания

Предостережение

Если PHP-интерпретатор собран с поддержкой ZTS (Zend Thread Safety), любые изменения в текущем каталоге, сделанные с помощью chdir(), не будут обнаружены операционной системой. Все встроенные функции PHP будут по-прежнему учитывать изменения в текущем каталоге; это не относится к вызываемым функциям внешних библиотек, подключённых через FFI. Используйте php -i или встроенную константу PHP_ZTS, чтобы узнать, собран ли PHP с ZTS.

Смотрите также

  • getcwd() - Получает имя текущего рабочего каталога


Изменяет корневой каталог

  • « chdir
  • closedir »
  • PHP Manual
  • Функции для работы с каталогами
  • Изменяет корневой каталог

chroot

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

chroot — Изменяет корневой каталог

Описание

chroot(string $directory): bool

Изменяет корневой каталог текущего процесса на переданный в качестве параметра directory и меняет текущий каталог на "/".

Данная функция доступна только на системах GNU и BSD, а также только при использовании CLI, CGI или Embed SAPI. Кроме того, данная функция требует прав суперпользователя.

Вызов этой функции не изменяет значения магических констант __DIR__ и __FILE__.

Список параметров

directory

Путь для смены корневой директории.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования chroot()

<?php
chroot("/path/to/your/chroot/");
echo getcwd();
?>

Результат выполнения данного примера:

/

Примечания

Замечание: Для Windows-платформ эта функция не реализована.

Замечание: Эта функция недоступна в интерпретаторах PHP, собранных с поддержкой ZTS (Zend Thread Safety). Используйте php -i или встроенную константу PHP_ZTS, чтобы узнать, собран ли PHP с ZTS.


Закрывает дескриптор каталога

  • « chroot
  • dir »
  • PHP Manual
  • Функции для работы с каталогами
  • Закрывает дескриптор каталога

closedir

(PHP 4, PHP 5, PHP 7, PHP 8)

closedir — Закрывает дескриптор каталога

Описание

closedir(?resource $dir_handle = null): 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, PHP 8)

dir — Возвращает экземпляр класса Directory

Описание

dir(string $directory, ?resource $context = null): Directory|false

Псевдо-объектно-ориентированный механизм для чтения каталога. Открывается переданный в параметре directory каталог.

Список параметров

directory

Каталог для открытия

context

Ресурс (resource) с контекстом потока.

Возвращаемые значения

Возвращает экземпляр класса Directory или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | context теперь допускает значение null.

Примеры

Пример #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, PHP 8)

getcwd — Получает имя текущего рабочего каталога

Описание

getcwd(): string|false

Возвращает имя текущего рабочего каталога.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий рабочий каталог в случае успешного выполнения или false в случае ошибки.

На некоторых вариантах Unix getcwd() вернёт false, если на каком-либо из родительских каталогов не установлен режим чтения или поиска, даже если он установлен на текущем каталоге. Больше информации о режимах доступа смотрите в документации функции chmod().

Примеры

Пример #1 Пример использования getcwd()

<?php

// текущий каталог
echo getcwd() . "\n";

chdir('cvs');

// текущий каталог
echo getcwd() . "\n";

?>

Результатом выполнения данного примера будет что-то подобное:

/home/didou
/home/didou/cvs

Предостережение

Если PHP-интерпретатор собран с поддержкой ZTS (Zend Thread Safety), текущий рабочий каталог, возвращаемый getcwd(), может отличаться от того, что возвращают интерфейсы операционной системы. Буду задействованы внешние библиотеки (подключённые через FFI), использующие текущий рабочий каталог.

Смотрите также

  • chdir() - Изменяет каталог
  • chmod() - Изменяет режим доступа к файлу


Открывает дескриптор каталога

  • « getcwd
  • readdir »
  • PHP Manual
  • Функции для работы с каталогами
  • Открывает дескриптор каталога

opendir

(PHP 4, PHP 5, PHP 7, PHP 8)

opendir — Открывает дескриптор каталога

Описание

opendir(string $directory, ?resource $context = null): resource|false

Открывает дескриптор каталога для последующего использования с функциями closedir(), readdir() и rewinddir().

Список параметров

directory

Путь к открываемому каталогу

context

Для описания параметра context обратитесь к разделу Потоки.

Возвращаемые значения

Возвращает дескриптор каталога (resource) в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Может произойти, если directory не является директорией, директория не может быть открыта из-за недостаточных разрешений или из-за ошибок файловой системы.

Список изменений

Версия | Описание
8.0.0 | context теперь допускает значение null.

Примеры

Пример #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, PHP 8)

readdir — Получает элемент каталога по его дескриптору

Описание

readdir(?resource $dir_handle = null): string|false

Возвращает имя следующего по порядку элемента каталога. Элементы возвращаются в том порядке, в котором они хранятся в файловой системе.

Список параметров

dir_handle

Дескриптор каталога (resource), ранее открытый функцией opendir(). Если дескриптор каталога не указан, используется последний дескриптор, открытый функцией opendir().

Возвращаемые значения

Возвращает имя элемента каталога в случае успешного выполнения или false в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.0.0 | dir_handle теперь допускает значение null.

Примеры

Пример #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, PHP 8)

rewinddir — Сбросить дескриптор каталога

Описание

rewinddir(?resource $dir_handle = null): void

Сбрасывает поток каталога, переданный в параметре dir_handle таким образом, чтобы тот указывал на начало каталога.

Список параметров

dir_handle

Ресурс (resource) дескриптора каталога, ранее открытый с помощью функции opendir(). Если дескриптор каталога не указан, подразумевается последний дескриптор, который был открыт с помощью opendir().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | dir_handle теперь допускает значение null.


Получает список файлов и каталогов, расположенных по указанному пути

  • « rewinddir
  • FileInfo »
  • PHP Manual
  • Функции для работы с каталогами
  • Получает список файлов и каталогов, расположенных по указанному пути

scandir

(PHP 5, PHP 7, PHP 8)

scandir — Получает список файлов и каталогов, расположенных по указанному пути

Описание

scandir(string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, ?resource $context = null): array|false

Возвращает массив (array), содержащий имена файлов и каталогов, расположенных по пути, переданном в параметре directory.

Список параметров

directory

Сканируемый каталог.

sorting_order

По умолчанию сортировка производится в алфавитном порядке по возрастанию. Если необязательный параметр sorting_order установлен в значение SCANDIR_SORT_DESCENDING, сортировка производится в алфавитном порядке по убыванию. Если же он установлен в значение SCANDIR_SORT_NONE, то сортировка не производится.

context

За описанием параметра context обратитесь к разделу Потоки данного руководства.

Возвращаемые значения

Возвращает массив (array) имён файлов в случае успешного выполнения или false в случае возникновения ошибки. Если directory не является каталогом, возвращается false и генерируется сообщение об ошибке уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | context теперь допускает значение null.

Примеры

Пример #1 Простой пример использования функции scandir()

<?php
$dir = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, SCANDIR_SORT_DESCENDING);

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 — Закрывает экземпляр finfo
    • finfo_file — Возвращает информацию о файле
    • finfo_open — Создаёт экземпляр finfo
    • 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()


Введение

Функции в этом модуле пытаются определить тип содержимого и кодировку файла, основываясь на некоторых магических последовательностях байт на определённых позициях в файле. Пока данный подход не является абсолютно надёжным, однако эвристика неплохо справляется со своей работой.


Установка

Этот модуль включён по умолчанию.

Windows-пользователи должны подключить идущий в комплекте поставки php_fileinfo.dll DLL файл в php.ini для включения данного модуля.

Библиотека libmagic поставляется в комплекте с PHP, но может содержать специфичные для PHP изменения, которые можно добавлять с помощью патча libmagic.patch. Этот патч поддерживается в актуальном состоянии, его можно найти там же, где находятся файлы модуля fileinfo.


Типы ресурсов

До PHP 8.1.0, модуль Fileinfo использует один ресурс: "магический" указатель базы данных, возвращаемый функцией finfo_open().


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

FILEINFO_NONE (int)
Нет специальной обработки.
FILEINFO_SYMLINK (int)
Следовать по символическим ссылкам.
FILEINFO_MIME_TYPE (int)
Возвращать mime-тип.
FILEINFO_MIME_ENCODING (int)
Возвращать mime-кодировку файла.
FILEINFO_MIME (int)
Возвращать mime-тип и mime-кодировку по стандарту RFC 2045.
FILEINFO_COMPRESS (int)
Распаковывать запакованные файлы. Отключено по соображениям безопасности.
FILEINFO_DEVICES (int)
Смотреть содержимое блочных и символьных устройств.
FILEINFO_CONTINUE (int)
Возвращать все совпадения, а не только первое.
FILEINFO_PRESERVE_ATIME (int)
По возможности сохранять исходное время доступа.
FILEINFO_RAW (int)
Не переводить непечатные символы в \ooo восьмеричное представление.
FILEINFO_EXTENSION (int)
Возвращает расширение файла, соответствующее для MIME-типа этого файла. Для типов, которые имеют несколько расширений файлов, таких как JPEG-изображений, возвращаемое значение будет состоять из нескольких расширений, разделённых слешем, например "jpeg/jpg/jpe/jfif". Для неизвестных типов, недоступных в базе данных magic.mime, возвращаемое значение будет "???". Доступно с PHP 7.2.0.


Функции модуля Fileinfo

Содержание

  • finfo_buffer — Возвращает информацию о строке буфера
  • finfo_close — Закрывает экземпляр finfo
  • finfo_file — Возвращает информацию о файле
  • finfo_open — Создаёт экземпляр finfo
  • 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, PHP 8, PECL fileinfo >= 0.1.0)

finfo_buffer -- finfo::buffer — Возвращает информацию о строке буфера

Описание

Процедурный стиль

finfo_buffer(
finfo $finfo,
string $string,
int $flags = FILEINFO_NONE,
?resource $context = null
): string|false

Объектно-ориентированный стиль

public finfo::buffer(string $string, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

Эта функция используется для получения информации о бинарных данных в строке.

Список параметров

finfo

Экземпляр finfo, возвращаемый функцией finfo_open().

string

Содержимое проверяемого файла.

flags

Одна или несколько объединённых через бинарное ИЛИ констант Fileinfo.

context

Возвращаемые значения

Возвращает текстовое описание для аргумента string или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр finfo теперь ожидает экземпляр finfo; ранее ожидался ресурс (resource).
8.0.0 | context теперь допускает значение null.

Примеры

Пример #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()


Закрывает экземпляр finfo

  • « finfo_buffer
  • finfo_file »
  • PHP Manual
  • Функции модуля Fileinfo
  • Закрывает экземпляр finfo

finfo_close

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_close — Закрывает экземпляр finfo

Описание

finfo_close(finfo $finfo): bool

Функция закрывает экземпляр, который был открыт функцией finfo_open().

Список параметров

finfo

Экземпляр finfo, возвращаемый функцией finfo_open().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр finfo теперь ожидает экземпляр finfo; ранее ожидался ресурс (resource).


Возвращает информацию о файле

  • « finfo_close
  • finfo_open »
  • PHP Manual
  • Функции модуля Fileinfo
  • Возвращает информацию о файле

finfo_file

finfo::file

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_file -- finfo::file — Возвращает информацию о файле

Описание

Процедурный стиль

finfo_file(
finfo $finfo,
string $filename,
int $flags = FILEINFO_NONE,
?resource $context = null
): string|false

Объектно-ориентированный стиль

public finfo::file(string $filename, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

Функция используется для получения информации о файле.

Список параметров

finfo

Экземпляр finfo, возвращаемый функцией finfo_open().

filename

Название проверяемого файла.

flags

Одна или несколько объединённых через бинарное ИЛИ констант Fileinfo.

context

Для описания contexts, смотрите Функции для работы с потоками.

Возвращаемые значения

Возвращает текстовое описание содержимого файла filename или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр finfo теперь ожидает экземпляр finfo; ранее ожидался ресурс (resource).
8.0.0 | context теперь допускает значение null.

Примеры

Пример #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()


Создаёт экземпляр finfo

  • « finfo_file
  • finfo_set_flags »
  • PHP Manual
  • Функции модуля Fileinfo
  • Создаёт экземпляр finfo

finfo_open

finfo::__construct

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_open -- finfo::__construct — Создаёт экземпляр finfo

Описание

Процедурный стиль

finfo_open(int $flags = FILEINFO_NONE, ?string $magic_database = null): finfo|false

Объектно-ориентированный стиль (конструктор):

public finfo::__construct(int $flags = FILEINFO_NONE, ?string $magic_database = null)

Данная функция открывает магическую базу данных и возвращает экземпляр.

Список параметров

flags

Одна или несколько объединённых через бинарное ИЛИ констант Fileinfo.

magic_database

Имя файла магической базы данных, обычно что-то наподобие этого: /path/to/magic.mime. Если не указан полный путь, будет использована переменная окружения MAGIC. Если переменная окружения не указана, то будет использоваться встроенная в PHP магическая база данных.

Передача null или пустой строки эквивалентно значению по умолчанию.

Возвращаемые значения

(Только процедурный стиль) Возвращает экземпляр finfo в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр finfo; ранее возвращался ресурс (resource).
8.0.3 | magic_database теперь допускает значение null.

Примеры

Пример #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

Примечания

Замечание:

Обычно использование встроенной магической базы данных (при неустановленных magic_database и MAGIC) лучший выбор, если вам не нужна определённая версия магической базы данных.

Смотрите также

  • finfo_close() - Закрывает экземпляр finfo


Устанавливает параметры конфигурации libmagic

  • « finfo_open
  • mime_content_type »
  • PHP Manual
  • Функции модуля Fileinfo
  • Устанавливает параметры конфигурации libmagic

finfo_set_flags

finfo::set_flags

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_set_flags -- finfo::set_flags — Устанавливает параметры конфигурации libmagic

Описание

Процедурный стиль

finfo_set_flags(finfo $finfo, int $flags): bool

Объектно-ориентированный стиль

public finfo::set_flags(int $flags): bool

Функция устанавливает различные параметры Fileinfo. Опции также могут быть установлены напрямую в finfo_open() или других функциях Fileinfo.

Список параметров

finfo

Экземпляр finfo, возвращаемый функцией finfo_open().

flags

Одна или несколько объединённых через бинарное ИЛИ констант Fileinfo.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр finfo теперь ожидает экземпляр finfo; ранее ожидался ресурс (resource).


Определяет MIME-тип содержимого файла

  • « finfo_set_flags
  • finfo »
  • PHP Manual
  • Функции модуля Fileinfo
  • Определяет MIME-тип содержимого файла

mime_content_type

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mime_content_type — Определяет MIME-тип содержимого файла

Описание

mime_content_type(resource|string $filename): string|false

Возвращает 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, PHP 8, PECL fileinfo >= 0.1.0)

Введение

Этот класс предоставляет объектно-ориентированный интерфейс к функциям fileinfo.

Обзор классов

class finfo {
/* Методы */
public __construct(int $flags = FILEINFO_NONE, ?string $magic_database = null)
public buffer(string $string, int $flags = FILEINFO_NONE, ?resource $context = null): string|false
public file(string $filename, int $flags = FILEINFO_NONE, ?resource $context = null): string|false
public set_flags(int $flags): 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, PHP 8, PECL fileinfo >= 0.1.0)

finfo::buffer — Псевдоним finfo_buffer()

Описание

public finfo::buffer(string $string, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

Функция является псевдонимом: finfo_buffer()


Псевдоним finfo_open

  • « finfo::buffer
  • finfo::file »
  • PHP Manual
  • finfo
  • Псевдоним finfo_open

finfo::__construct

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::__construct — Псевдоним finfo_open()

Описание

public finfo::__construct(int $flags = FILEINFO_NONE, ?string $magic_database = null)

Функция является псевдонимом: finfo_open()

Список изменений

Версия | Описание
8.0.3 | magic_database теперь допускает значение null.


Псевдоним finfo_file()

  • « finfo::__construct
  • finfo::set_flags »
  • PHP Manual
  • finfo
  • Псевдоним finfo_file()

finfo::file

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::file — Псевдоним finfo_file()

Описание

public finfo::file(string $filename, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

Функция является псевдонимом: finfo_file()


Псевдоним finfo_set_flags()

  • « finfo::file
  • Файловая система »
  • PHP Manual
  • finfo
  • Псевдоним finfo_set_flags()

finfo::set_flags

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::set_flags — Псевдоним finfo_set_flags()

Описание

public finfo::set_flags(int $flags): 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 — Закрывает открытый дескриптор файла
    • fdatasync — Синхронизирует данные (но не метаданные) с файлом
    • 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 — Получает информацию о файле, используя открытый файловый указатель
    • fsync — Синхронизирует изменения в файле (включая метаданные)
    • 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 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 | Объявлена устаревшей с версии PHP 8.1.0.
sys_temp_dir | "" | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

allow_url_fopen bool

Данная директива включает поддержку обёрток URL (URL wrappers), которые позволяют работать с объектами URL как с обычными файлами. Обёртки, доступные по умолчанию, служат для работы с удалёнными файлами с использованием ftp или http протокола. Некоторые модули, например, zlib, могут регистрировать собственные обёртки.

allow_url_include bool

Эта опция позволяет использование обёрток fopen, которые поддерживают работу с URL, в функциях include, include_once, require, require_once.

Замечание:

Эта опция требует включения опции allow_url_fopen.

user_agent string

Устанавливает отсылаемую PHP строку "User-Agent".

default_socket_timeout int

Значение времени ожидания по умолчанию (в секундах) для потоков, использующих сокеты. Отрицательное значения означает бесконечное время ожидания.

from string

Адрес email, используемый в соединениях FTP без авторизации, а также в качестве значения заголовка From в HTTP соединениях при использовании ftp и http обёрток, соответственно.

auto_detect_line_endings bool

Когда данная директива включена, PHP проверяет данные, получаемые функциями fgets() и file() с тем, чтобы определить способ завершения строк (Unix, MS-Dos или Macintosh).

Данная директива позволяет PHP взаимодействовать с системами Macintosh, однако, по умолчанию эта директива выключена, поскольку при её использовании возникает (несущественная) потребность в дополнительных ресурсах для определения символа окончания первой строки, а также потому, что программисты, использующие в системах Unix символы возврата каретки в качестве разделителей, столкнутся с обратно-несовместимым поведением PHP.

sys_temp_dir string


Типы ресурсов

Файловая система использует потоки (streams) в качестве собственного типа ресурсов. Документация по потокам доступна в своей собственной главе: "Потоки".


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

SEEK_SET (int)
SEEK_CUR (int)
SEEK_END (int)
LOCK_SH (int)
LOCK_EX (int)
LOCK_UN (int)
LOCK_NB (int)
GLOB_BRACE (int)
GLOB_ONLYDIR (int)
GLOB_MARK (int)
GLOB_NOSORT (int)
GLOB_NOCHECK (int)
GLOB_NOESCAPE (int)
GLOB_AVAILABLE_FLAGS (int)
PATHINFO_DIRNAME (int)
PATHINFO_BASENAME (int)
PATHINFO_EXTENSION (int)
PATHINFO_FILENAME (int)
FILE_USE_INCLUDE_PATH (int)
Ищет filename в include_path.
FILE_NO_DEFAULT_CONTEXT (int)
FILE_APPEND (int)
Добавляет данные к существующему файлу.
FILE_IGNORE_NEW_LINES (int)
Вырезаются концы строк (EOL).
FILE_SKIP_EMPTY_LINES (int)
Пропускаются пустые строки.
FILE_BINARY (int)

Бинарный режим.

Замечание:

Данная константа ни на что не влияет и доступна только для последующей совместимости (forward compatibility).

FILE_TEXT (int)

Текстовый режим.

Замечание:

Данная константа ни на что не влияет и доступна только для последующей совместимости (forward compatibility).

INI_SCANNER_NORMAL (int)
Обычный режим сканирования INI.
INI_SCANNER_RAW (int)
Режим необработанного(raw) сканирования INI.
INI_SCANNER_TYPED (int)
Режим типизированного сканирования INI.
FNM_NOESCAPE (int)
Отключает экранирование обратных слешей.
FNM_PATHNAME (int)
Слеши в строках совпадают только со слешами в указанном шаблоне.
FNM_PERIOD (int)
Ведущая точка в строке должна точно совпадать с точкой в указанном шаблоне.
FNM_CASEFOLD (int)
Совпадение без учёта регистра. Часть расширения GNU.


Функции файловой системы

Смотрите также

Описание родственных функций вы сможете найти в разделах Каталоги и Выполнение программ.

За списком обёрток URL для работы с удалёнными файлами и пояснениями обращайтесь к главе Поддерживаемые протоколы и обёртки.

Содержание

  • basename — Возвращает последний компонент имени из указанного пути
  • chgrp — Изменяет группу файла
  • chmod — Изменяет режим доступа к файлу
  • chown — Изменяет владельца файла
  • clearstatcache — Очищает кеш состояния файлов
  • copy — Копирует файл
  • delete — Смотрите описание функции unlink или unset
  • dirname — Возвращает имя родительского каталога из указанного пути
  • disk_free_space — Возвращает размер доступного пространства в каталоге или файловой системе
  • disk_total_space — Возвращает общий размер файловой системы или раздела диска
  • diskfreespace — Псевдоним disk_free_space
  • fclose — Закрывает открытый дескриптор файла
  • fdatasync — Синхронизирует данные (но не метаданные) с файлом
  • 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 — Получает информацию о файле, используя открытый файловый указатель
  • fsync — Синхронизирует изменения в файле (включая метаданные)
  • 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, PHP 8)

basename — Возвращает последний компонент имени из указанного пути

Описание

basename(string $path, string $suffix = ""): string

При передаче строки с путём к файлу или каталогу, данная функция вернёт последний компонент имени из данного пути.

Замечание:

basename() наивно оперирует исключительно исходной строкой и не учитывает реальную файловую систему или компоненты пути типа "..".

Предостережение

basename() учитывает настройки локали, поэтому для корректной обработки пути с многобайтными символами должна быть установлена соответствующая локаль с помощью функции setlocale(). Если path содержит символы, недопустимые для текущей локали, поведение basename() не определено.

Список параметров

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, PHP 8)

chgrp — Изменяет группу файла

Описание

chgrp(string $filename, string|int $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));
?>

Примечания

Замечание: Эта функция неприменима для работы с удалёнными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: В Windows функция молча завершается ошибкой при применении к обычному файлу.

Смотрите также

  • chown() - Изменяет владельца файла
  • chmod() - Изменяет режим доступа к файлу


Изменяет режим доступа к файлу

  • « chgrp
  • chown »
  • PHP Manual
  • Функции файловой системы
  • Изменяет режим доступа к файлу

chmod

(PHP 4, PHP 5, PHP 7, PHP 8)

chmod — Изменяет режим доступа к файлу

Описание

chmod(string $filename, int $permissions): bool

Осуществляет попытку изменения режима доступа указанного файла на режим, переданный в параметре permissions.

Список параметров

filename

Путь к файлу.

permissions

Обратите внимание, что значение параметра permissions не переводится автоматически в восьмеричную систему счисления, поэтому, чтобы удостовериться в том, что режим был установлен верно, предваряйте нулём (0) значение передаваемое в параметре permissions. Строки, такие как "g+w", не будут работать должным образом.

<?php
chmod("/somedir/somefile", 755); // десятичное, скорее всего, указано неверно
chmod("/somedir/somefile", "u+rwx,go+rx"); // строка, неверный способ
chmod("/somedir/somefile", 0755); // восьмеричное, верный способ
?>

Значение параметра permissions состоит из трёх восьмеричных чисел, определяющих уровень доступа для владельца файла, для группы, в которую входит владелец, и для других пользователей, соответственно. Число, определяющее уровень пользователя, может быть вычислено путём суммирования значений, определяющих права: 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 в случае возникновения ошибки.

Ошибки

В случае возникновения ошибки выдаётся ошибка уровня E_WARNING.

Примечания

Замечание:

Текущим пользователем является пользователь, от имени которого выполняется PHP. Возможно, что это будет не тот пользователь, под именем которого вы получаете доступ к командной оболочке или учётной записи FTP. На большинстве систем режим доступа к файлу может быть изменён только его владельцем.

Замечание: Эта функция неприменима для работы с удалёнными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Смотрите также

  • chown() - Изменяет владельца файла
  • chgrp() - Изменяет группу файла
  • fileperms() - Возвращает информацию о правах на файл
  • stat() - Возвращает информацию о файле


Изменяет владельца файла

  • « chmod
  • clearstatcache »
  • PHP Manual
  • Функции файловой системы
  • Изменяет владельца файла

chown

(PHP 4, PHP 5, PHP 7, PHP 8)

chown — Изменяет владельца файла

Описание

chown(string $filename, string|int $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
)

Примечания

Замечание: Эта функция неприменима для работы с удалёнными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: В Windows функция молча завершается ошибкой при применении к обычному файлу.

Смотрите также

  • chmod() - Изменяет режим доступа к файлу
  • chgrp() - Изменяет группу файла


Очищает кеш состояния файлов

  • « chown
  • copy »
  • PHP Manual
  • Функции файловой системы
  • Очищает кеш состояния файлов

clearstatcache

(PHP 4, PHP 5, PHP 7, PHP 8)

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 только для определённого имени файла; используется только в том случае, если у параметра clear_realpath_cache установлено значение true.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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, PHP 8)

copy — Копирует файл

Описание

copy(string $from, string $to, ?resource $context = null): bool

Копирует файл from в файл с именем to.

Если вы хотите переименовать файл, используйте функцию rename().

Список параметров

from

Путь к исходному файлу.

to

Путь к целевому файлу. Если to является URL, то операция копирования может завершиться ошибкой, если обёртка URL не поддерживает перезаписывание существующих файлов.

Внимание

Если целевой файл уже существует, то он будет перезаписан.

context

Корректный ресурс контекста, созданный функцией stream_context_create().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

dirname — Возвращает имя родительского каталога из указанного пути

Описание

dirname(string $path, int $levels = 1): string

Получив строку, содержащую путь к файлу или каталогу, данная функция возвратит родительский каталог данного пути на levels уровней вверх.

Замечание:

Функция dirname() наивно оперирует исключительно исходной строкой и не учитывает реальную файловую систему или компоненты пути типа "..".

Предостережение

В Windows dirname() предполагает текущую установленную кодовую страницу, поэтому для того, чтобы видеть правильное имя каталога с путями многобайтовых символов, необходимо установить соответствующую кодовую страницу. Если path содержит символы, недопустимые для текущей кодовой страницы, поведение dirname() не определено.

В других системах dirname() предполагает, что path закодирован в кодировке, совместимой с ASCII. В противном случае поведение функции не определено.

Список параметров

path

Путь.

На платформах Windows в качестве разделителей имён директорий используются оба слеша (прямой / и обратный \). В других операционных системах разделителем служит прямой слеш (/).

levels

На сколько уровней вложенности вверх необходимо пройти.

Должно быть целым числом больше 0.

Возвращаемые значения

Возвращает путь к родительской директории. Если в параметре path не содержится слешей, будет возвращена точка ('.'), обозначающая текущую директорию. В другом случае будет возвращён path без последнего компонента /component.

Предостережение

Будьте осторожны при использовании этой функции в цикле, который может достичь каталога верхнего уровня, так как это может привести к бесконечному циклу.

<?php
dirname('.'); // Вернёт '.'.
dirname('/'); // Вернёт `\` в Windows и '/' в *nix системах.
dirname('\\'); // Вернёт `\` в Windows и '.' в *nix системах.
dirname('C:\\'); // Вернёт 'C:\' в Windows и '.' в *nix системах.
?>

Список изменений

Версия | Описание
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, PHP 8)

disk_free_space — Возвращает размер доступного пространства в каталоге или файловой системе

Описание

disk_free_space(string $directory): float|false

Функция возвращает размер свободного пространства в байтах, доступного для использования в указанном каталоге или файловой системе.

Список параметров

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, PHP 8)

disk_total_space — Возвращает общий размер файловой системы или раздела диска

Описание

disk_total_space(string $directory): float|false

Функция возвращает общий размер в байтах указанного раздела диска или каталога.

Список параметров

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, PHP 8)

diskfreespace — Псевдоним disk_free_space()

Описание

Функция является псевдонимом: disk_free_space().


Закрывает открытый дескриптор файла

  • « diskfreespace
  • fdatasync »
  • PHP Manual
  • Функции файловой системы
  • Закрывает открытый дескриптор файла

fclose

(PHP 4, PHP 5, PHP 7, PHP 8)

fclose — Закрывает открытый дескриптор файла

Описание

fclose(resource $stream): bool

Функция закрывает файл, на который указывает дескриптор stream.

Список параметров

stream

Дескриптор должен быть корректным и указывать на файл, открытый ранее с помощью функции fopen() или fsockopen().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Простой пример использования функции fclose()

<?php

$handle = fopen('somefile.txt', 'r');

fclose($handle);

?>

Смотрите также

  • fopen() - Открывает файл или URL
  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix


Синхронизирует данные (но не метаданные) с файлом

  • « fclose
  • feof »
  • PHP Manual
  • Функции файловой системы
  • Синхронизирует данные (но не метаданные) с файлом

fdatasync

(PHP 8 >= 8.1.0)

fdatasync — Синхронизирует данные (но не метаданные) с файлом

Описание

fdatasync(resource $stream): bool

Функция синхронизирует содержимое stream с накопителем, как и fsync(), но не синхронизирует метаданные файла. Стоит обратить внимание, что данная функция фактически отличается только в системах POSIX. В Windows она является псевдонимом fsync().

Список параметров

stream

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и всё ещё не закрытый функцией fclose()).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования fdatasync()

<?php

$file = 'test.txt';

$stream = fopen($file, 'w');
fwrite($stream, 'тестовые данные');
fwrite($stream, "\r\n");
fwrite($stream, 'дополнительные данные');

fdatasync($stream);
fclose($stream);
?>

Смотрите также

  • fflush() - Сбрасывает буфер вывода в файл
  • fsync() - Синхронизирует изменения в файле (включая метаданные)


Проверяет, достигнут ли конец файла

  • « fdatasync
  • fflush »
  • PHP Manual
  • Функции файловой системы
  • Проверяет, достигнут ли конец файла

feof

(PHP 4, PHP 5, PHP 7, PHP 8)

feof — Проверяет, достигнут ли конец файла

Описание

feof(resource $stream): bool

Проверяет, достигнут ли конец файла.

Список параметров

stream

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями 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, PHP 8)

fflush — Сбрасывает буфер вывода в файл

Описание

fflush(resource $stream): bool

Данная функция осуществляет сброс буферизованных данных в файл, на который указывает stream.

Список параметров

stream

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями 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, PHP 8)

fgetc — Считывает символ из файла

Описание

fgetc(resource $stream): string|false

Считывает символ из переданного указателя на файл.

Список параметров

stream

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и всё ещё не закрытый функцией fclose()).

Возвращаемые значения

Возвращает строку с одним символом, прочтённым из файла, на который указывает stream. Возвращает 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, PHP 8)

fgetcsv — Читает строку из файла и производит разбор данных CSV

Описание

fgetcsv(
resource $stream,
?int $length = null,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\"
): array|false

Данная функция похожа на функцию fgets(), с той разницей, что она производит анализ строки на наличие записей в формате CSV и возвращает найденные поля в качестве массива.

Замечание:

Эта функция принимает во внимание настройки локали. К примеру, если LANG установлена в en_US.UTF-8, то файлы в однобайтовой кодировке будут неправильно прочитаны этой функцией.

Список параметров

stream

Корректный файловый указатель на файл, успешно открытый при помощи fopen(), popen() или fsockopen().

length

Должен быть больше самой длинной строки (в символах), найденной в CSV-файле (включая завершающий символ конца строки). В противном случае, строка будет разбита на куски длиной в length символов, если только место разрыва не будет внутри ограничителей полей (enclosure).

Отсутствие этого параметра (или установка его в 0 или null, начиная с PHP 8.0.0) приведёт к тому, что длина строки будет не ограничена. Это может сказаться на скорости выполнения.

separator

Необязательный параметр separator устанавливает разделитель поля (только один однобайтовый символ).

enclosure

Необязательный параметр enclosure устанавливает символ ограничителя поля (только один однобайтовый символ).

escape

Необязательный параметр escape устанавливает экранирующий символ (не более одного однобайтового символа). Пустая строка ("") отключает проприетарный механизм экранирования.

Замечание: Обычно символ enclosure экранируется внутри поля путём его удваивания; однако, символ escape в качестве альтернативы. Поэтому значения по умолчанию этих параметров "" и \" имеют одинаковое значение. Помимо разрешения экранировать символ enclosure символ escape не имеет особого смысла; он даже не предназначен для самого экранирования.

Возвращаемые значения

Возвращает индексированный массив с прочтёнными полями в случае успешного выполнения или false в случае возникновения ошибки.

Замечание:

Пустая строка CSV-файла будет возвращена в качестве массива, содержащего единственный элемент null, ошибки в данном случае не возникнет.

Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.

Список изменений

Версия | Описание
8.0.0 | Параметр length теперь допускает значение null.
7.4.0 | Теперь параметр escape может принимать пустую строку для отключения проприетарного механизма экранирования.

Примеры

Пример #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, PHP 8)

fgets — Читает строку из файла

Описание

fgets(resource $stream, ?int $length = null): string|false

Читает строку из файлового указателя.

Список параметров

stream

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и всё ещё не закрытый функцией fclose()).

length

Чтение заканчивается при достижении length - 1 байт, либо если встретилась новая строка (которая включается в возвращаемый результат) или конец файла (в зависимости от того, что наступит раньше). Если длина не указана, чтение из потока будет продолжаться до тех пор, пока не достигнет конца строки.

Возвращаемые значения

Возвращает строку размером в length - 1 байт, прочитанную из дескриптора файла, на который указывает параметр stream. Если данных для чтения больше нет, то возвращает false.

В случае возникновения ошибки возвращает false.

Примеры

Пример #1 Построчное чтение файла

<?php
$fp = @fopen("/tmp/inputfile.txt", "r");
if ($fp) {
while (($buffer = fgets($fp, 4096)) !== false) {
echo $buffer;
}
if (!feof($fp)) {
echo "Ошибка: fgets() неожиданно потерпел неудачу\n";
}
fclose($fp);
}
?>

Примечания

Замечание: Если у вас возникают проблемы с распознаванием 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 и была УДАЛЕНА в версии PHP 8.0.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, PHP 8)

file_exists — Проверяет существование указанного файла или каталога

Описание

file_exists(string $filename): bool

Проверяет наличие указанного файла или каталога.

Список параметров

filename

Путь к файлу или каталогу.

На платформах Windows, для проверки наличия файлов на сетевых ресурсах, используйте имена, подобные //computername/share/filename или \\computername\share\filename.

Возвращаемые значения

Возвращает true, если файл или каталог, указанный параметром filename, существует, иначе возвращает false.

Замечание:

Данная функция возвращает false для символических ссылок, указывающих на несуществующие файлы.

Замечание:

Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.

Замечание: Так как тип integer в PHP является целым числом со знаком, и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Проверка существования файла

<?php
$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
echo "Файл $filename существует";
} else {
echo "Файл $filename не существует";
}
?>

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обёртки.

Смотрите также

  • is_readable() - Определяет существование файла и доступен ли он для чтения
  • is_writable() - Определяет, доступен ли файл для записи
  • is_file() - Определяет, является ли файл обычным файлом
  • file() - Читает содержимое файла и помещает его в массив
  • SplFileInfo


Читает содержимое файла в строку

  • « file_exists
  • file_put_contents »
  • PHP Manual
  • Функции файловой системы
  • Читает содержимое файла в строку

file_get_contents

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

file_get_contents — Читает содержимое файла в строку

Описание

file_get_contents(
string $filename,
bool $use_include_path = false,
?resource $context = null,
int $offset = 0,
?int $length = null
): string|false

Данная функция похожа на функцию file() с той лишь разницей, что file_get_contents() возвращает содержимое файла в строке, начиная с указанного смещения offset и до length байт. В случае неудачи, 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) не поддерживается при работе с удалёнными файлами. Попытка поиска смещения на нелокальных файлах может работать при небольших смещениях, но результат будет непредсказуемым, так как функция работает на буферизованном потоке.

length

Максимальный размер читаемых данных. По умолчанию чтение осуществляется пока не будет достигнут конец файла. Учтите, что этот параметр применяется и к потоку с фильтрами.

Возвращаемые значения

Функция возвращает прочтённые данные или false в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Ошибки

Будет сгенерирована ошибка уровня E_WARNING в случаях, если не удастся найти filename, задан length меньше нуля, или поиск по смещению offset в потоке завершится неудачно.

Когда file_get_contents() вызывается в каталоге, в Windows ошибка генерируется E_WARNING, а с PHP 7.4 также в других операционных системах.

Список изменений

Версия | Описание
8.0.0 | Параметр length теперь допускает значение null.
7.1.0 | Добавлена поддержка отрицательных значений 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);
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Подсказка

Для этой функции вы можете использовать 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, PHP 8)

file_put_contents — Пишет данные в файл

Описание

file_put_contents(
string $filename,
mixed $data,
int $flags = 0,
?resource $context = null
): int|false

Функция идентична последовательным успешным вызовам функций 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);
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Подсказка

Для этой функции вы можете использовать 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, PHP 8)

file — Читает содержимое файла и помещает его в массив

Описание

file(string $filename, int $flags = 0, ?resource $context = null): array|false

Читает содержимое файла и помещает его в массив.

Замечание:

Можно также использовать функцию 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
Пропускать пустые строки
FILE_NO_DEFAULT_CONTEXT
Не использовать контекст по умолчанию

context

Ресурс (resource) с контекстом потока.

Возвращаемые значения

Возвращает файл в виде массива. Каждый элемент массива соответствует строке файла, с символами новой строки включительно. В случае ошибки 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";
}

// Используем необязательный параметр flags
$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:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Смотрите также

  • file_get_contents() - Читает содержимое файла в строку
  • readfile() - Выводит файл
  • fopen() - Открывает файл или URL
  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix
  • popen() - Открывает файловый указатель процесса
  • include - include
  • stream_context_create() - Создаёт контекст потока


Возвращает время последнего доступа к файлу

  • « file
  • filectime »
  • PHP Manual
  • Функции файловой системы
  • Возвращает время последнего доступа к файлу

fileatime

(PHP 4, PHP 5, PHP 7, PHP 8)

fileatime — Возвращает время последнего доступа к файлу

Описание

fileatime(string $filename): int|false

Возвращает время последнего доступа к файлу.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает время, когда в последний раз был осуществлён доступ к указанному файлу или false в случае возникновения ошибки. Время возвращается в виде временной метки Unix.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #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));
}

?>

Примечания

Замечание:

Предполагается, что время последнего доступа файла изменяется во время чтения блоков файла. Это может потребовать значительного количества системных ресурсов, особенно когда приложение обращается к большому числу файлов или каталогов.

С целью увеличения производительности некоторые файловые системы на платформах Unix могут быть примонтированы с отключённой возможностью обновления времени последнего доступа к файлам, примером этого могут служить каталоги для хранения сообщений USENET. В подобных случаях использование данной функции бессмысленно.

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обёртки.

Смотрите также

  • filemtime() - Возвращает время последнего изменения файла
  • fileinode() - Возвращает индексный дескриптор файла
  • date() - Форматирует временную метку Unix


Возвращает время изменения индексного дескриптора файла

  • « fileatime
  • filegroup »
  • PHP Manual
  • Функции файловой системы
  • Возвращает время изменения индексного дескриптора файла

filectime

(PHP 4, PHP 5, PHP 7, PHP 8)

filectime — Возвращает время изменения индексного дескриптора файла

Описание

filectime(string $filename): int|false

Возвращает время изменения индексного дескриптора (inode) файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает время последнего изменения файла или false в случае возникновения ошибки. Время возвращается в формате временной метки Unix.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #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));
}

?>

Примечания

Замечание:

Примечание. На большинстве платформ 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, PHP 8)

filegroup — Получает идентификатор группы файла

Описание

filegroup(string $filename): int|false

Возвращает идентификатор группы файла в виде числа. Для получения имени группы в виде строки используйте функцию posix_getgrgid().

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает идентификатор группы файла или false в случае ошибки. Идентификатор группы возвращается в виде числа, для получения имени группы в виде строки используйте функцию posix_getgrgid(). В случае возникновения ошибки возвращается false.

Ошибки

В случае возникновения ошибки будет сгенерирована ошибка уровня E_WARNING.

Примеры

Пример #1 Поиск группы файла

<?php
$filename = 'index.php';
print_r(posix_getgrgid(filegroup($filename)));
?>

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обёртки.

Смотрите также

  • fileowner() - Возвращает идентификатор владельца файла
  • posix_getgrgid() - Возвращает информацию о группе по её ID


Возвращает индексный дескриптор файла

  • « filegroup
  • filemtime »
  • PHP Manual
  • Функции файловой системы
  • Возвращает индексный дескриптор файла

fileinode

(PHP 4, PHP 5, PHP 7, PHP 8)

fileinode — Возвращает индексный дескриптор файла

Описание

fileinode(string $filename): int|false

Возвращает индексный дескриптор файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает номер индексного дескриптора файла или false в случае возникновения ошибки.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Сравнение индексного дескриптора файла с текущим файлом

<?php
$filename = 'index.php';
if (getmyinode() == fileinode($filename)) {
echo 'Вы проверяете текущий файл.';
}
?>

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обёртки.

Смотрите также

  • getmyinode() - Получает значение inode текущего скрипта
  • stat() - Возвращает информацию о файле


Возвращает время последнего изменения файла

  • « fileinode
  • fileowner »
  • PHP Manual
  • Функции файловой системы
  • Возвращает время последнего изменения файла

filemtime

(PHP 4, PHP 5, PHP 7, PHP 8)

filemtime — Возвращает время последнего изменения файла

Описание

filemtime(string $filename): int|false

Данная функция возвращает время последней записи блоков файла, иначе говоря, изменения содержания файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает время последнего изменения указанного файла или false в случае возникновения ошибки. Время возвращается в формате временной метки Unix, который подходит для передачи в качестве аргумента функции date().

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #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));
}
?>

Примечания

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обёртки.

Смотрите также

  • filectime() - Возвращает время изменения индексного дескриптора файла
  • stat() - Возвращает информацию о файле
  • touch() - Устанавливает время доступа и модификации файла
  • getlastmod() - Получает время последней модификации страницы


Возвращает идентификатор владельца файла

  • « filemtime
  • fileperms »
  • PHP Manual
  • Функции файловой системы
  • Возвращает идентификатор владельца файла

fileowner

(PHP 4, PHP 5, PHP 7, PHP 8)

fileowner — Возвращает идентификатор владельца файла

Описание

fileowner(string $filename): int|false

Возвращает идентификатор владельца файла

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает числовой идентификатор владельца указанного файла или false в случае возникновения ошибки. Чтобы получить имя владельца в виде строки, используйте функцию posix_getpwuid().

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Находим владельца файла

<?php
$filename = 'index.php';
print_r(posix_getpwuid(fileowner($filename)));
?>

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обёртки.

Смотрите также

  • filegroup() - Получает идентификатор группы файла
  • stat() - Возвращает информацию о файле
  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID


Возвращает информацию о правах на файл

  • « fileowner
  • filesize »
  • PHP Manual
  • Функции файловой системы
  • Возвращает информацию о правах на файл

fileperms

(PHP 4, PHP 5, PHP 7, PHP 8)

fileperms — Возвращает информацию о правах на файл

Описание

fileperms(string $filename): int|false

Возвращает информацию о правах доступа на файл.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает права доступа на указанный файл в числовом виде. Младшие биты этого значения такие же, как и биты прав доступа для использования в функции chmod(), однако, на большинстве платформ, возвращаемое значение будет также включать информацию о типе файла, который передан в качестве параметра filename. Примеры ниже демонстрируют как проверить возвращаемое значение на наличие определённых прав и типа файла на POSIX-системах, включая Linux и macOS.

Для локальных файлов, возвращаемое значение является частью структуры st_mode, которая возвращается функцией С-библиотеки stat(). Какие в точности биты установлены может варьироваться от платформы к платформе. Рекомендуется поискать документацию к вашей платформе, если требуется обработка битов возвращаемого значения, не относящихся к правам доступа.

Возвращает false в случае возникновения ошибки.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #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--

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обёртки.

Смотрите также

  • chmod() - Изменяет режим доступа к файлу
  • is_readable() - Определяет существование файла и доступен ли он для чтения
  • stat() - Возвращает информацию о файле


Возвращает размер файла

  • « fileperms
  • filetype »
  • PHP Manual
  • Функции файловой системы
  • Возвращает размер файла

filesize

(PHP 4, PHP 5, PHP 7, PHP 8)

filesize — Возвращает размер файла

Описание

filesize(string $filename): int|false

Возвращает размер указанного файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает размер указанного файла в байтах или false (и генерирует ошибку уровня E_WARNING) в случае возникновения ошибки.

Замечание: Так как тип integer в PHP является целым числом со знаком, и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования функции filesize()

<?php

// Пример вывода: Размер файла somefile.txt: 1024 байтов

$filename = 'somefile.txt';
echo 'Размер файла ' . $filename . ': ' . filesize($filename) . ' байтов';

?>

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обёртки.

Смотрите также

  • file_exists() - Проверяет существование указанного файла или каталога


Возвращает тип файла

  • « filesize
  • flock »
  • PHP Manual
  • Функции файловой системы
  • Возвращает тип файла

filetype

(PHP 4, PHP 5, PHP 7, PHP 8)

filetype — Возвращает тип файла

Описание

filetype(string $filename): string|false

Возвращает тип указанного файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает тип файла. Возможными значениями являются fifo, char, dir, block, link, file, socket и unknown.

Возвращает false в случае возникновения ошибки. filetype() также вызовет ошибку уровня E_NOTICE, если системный вызов stat завершится ошибкой или тип файла неизвестен.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования функции filetype()

<?php

echo filetype('/etc/passwd');
echo "\n";
echo filetype('/etc/');
?>

Результат выполнения данного примера:

file
dir

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе 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, PHP 8)

flock — Портируемая консультативная блокировка файлов

Описание

flock(resource $stream, int $operation, int &$would_block = null): bool

flock() позволяет осуществить простую модель чтения/записи, которая может быть использована практически на любой платформе (включая большинство вариантов Unix и даже Windows).

Блокировка также снимается с помощью fclose() или когда stream собирается сборщиком мусора.

PHP поддерживает портируемый способ консультативной блокировки (advisory locking) полностью всего файла (что означает, что все программы, осуществляющие доступ к файлу, должны использовать один и тот же способ блокировки, иначе блокировка не будет работать). По умолчанию данная функция будет ждать получения блокировки; это поведение можно изменить с помощью описанного ниже параметра LOCK_NB.

Список параметров

stream

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

operation

operation может принимать следующие значения:

  • LOCK_SH для получения разделяемой блокировки (чтение).
  • LOCK_EX для получения эксклюзивной блокировки (запись).
  • LOCK_UN для снятия блокировки (разделяемой или эксклюзивной).

Также возможно добавить константу LOCK_NB в качестве битовой маски к любой из вышеуказанных операций, если flock() не должна блокироваться во время попытки блокировки.

would_block

Необязательный третий параметр будет установлен в 1, если блокировка будет блокирующей (код ошибки EWOULDBLOCK).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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().

Внимание

Присвоение другого значения аргументу stream в последующем коде отменит существующую блокировку.

Внимание

В некоторых операционных системах flock() реализован на уровне процессов. При использовании многопоточных серверных API, таких как ISAPI, вы не можете полагаться на flock() для защиты ваших файлов от других PHP-скриптов, которые работают в параллельном потоке на том же сервере!

flock() не поддерживается на старых файловых системах вроде FAT и её производных, так что всегда будет возвращать false в этих окружениях.

Замечание:

В Windows, если процесс блокировки открывает файл во второй раз, он не может получить доступ к файлу через второй дескриптор, пока он не разблокирует файл.


Проверяет совпадение имени файла с шаблоном

  • « flock
  • fopen »
  • PHP Manual
  • Функции файловой системы
  • Проверяет совпадение имени файла с шаблоном

fnmatch

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

fnmatch — Проверяет совпадение имени файла с шаблоном

Описание

fnmatch(string $pattern, string $filename, int $flags = 0): bool

fnmatch() проверяет, совпадает ли переданный параметр filename с указанным шаблоном подстановок оболочки pattern.

Список параметров

pattern

Шаблон подстановки оболочки операционной системы.

filename

Проверяемая строка. Данная функция особенно полезна для имён файлов, но также может быть использована с обычными строками.

Среднестатистический пользователь знаком с подстановками оболочки, как минимум с самыми простыми из них - '?' и '*', так что использование fnmatch() вместо preg_match() для поиска в пользовательской части сайта может быть намного удобнее для пользователей, не являющихся программистами.

flags

Значением параметра flags может быть любая комбинация следующих флагов, объединённых с помощью бинарного оператора ИЛИ (|).

Перечень возможных флагов для функции fnmatch()
Флаг | Описание
FNM_NOESCAPE | Отключить экранирование обратных слешей.
FNM_PATHNAME | Слеш в строке совпадает только со слешем в указанном шаблоне.
FNM_PERIOD | Ведущая точка в строке должна точно совпадать с точкой в указанном шаблоне.
FNM_CASEFOLD | Совпадение без учёта регистра. Является частью расширения GNU.

Возвращаемые значения

При совпадении возвращает true, иначе возвращает false.

Примеры

Пример #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, PHP 8)

fopen — Открывает файл или URL

Описание

fopen(
string $filename,
string $mode,
bool $use_include_path = false,
?resource $context = null
): resource|false

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+'.
'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 (Mac OS Classic) используют \r в качестве символа конца строки.

Если вы используете неверный символ конца строки при редактировании файлов, вы можете обнаружить, что при открытии эти файлы "странно выглядят".

Windows предлагает флаг режима текстовой трансляции ('t'), который автоматически переведёт \n в \r\n во время работы с файлом. И наоборот - вы также можете использовать 'b', чтобы принудительно включить бинарный режим, в котором ваши данные не будут преобразовываться. Чтобы использовать эти режимы, укажите 'b' или 't' последней буквой параметра mode.

Флагом трансляции по умолчанию является 'b'. Вы можете использовать режим 't', если работаете с текстовыми файлами и используете \n для обозначения конца строки в вашем скрипте, но при этом предполагаете, что ваши файлы будут использоваться в таких приложениях, как "Блокнот" (в устаревших версиях). Во всех остальных случаях используйте флаг 'b'.

Если вы укажете флаг 't' во время работы с бинарными файлами, вы можете столкнуться со странными проблемами с вашими данными, включая повреждённые файлы изображений и проблемы с символами \r\n.

Замечание:

Опять же из соображений портируемости крайне рекомендуется переписать старый код, который полагается на режим 't', чтобы вместо этого он использовал правильные концы строк и режим 'b'.

Замечание: Параметр mode игнорируется при работе с обёртками потока php://output, php://input, php://stdin, php://stdout, php://stderr и php://fd.

use_include_path

Необязательный третий параметр use_include_path может быть установлен в '1' или true, если вы также хотите провести поиск файла в include_path.

context

Ресурс (resource) с контекстом потока.

Возвращаемые значения

Возвращает указатель на файл в случае успешного выполнения или false в случае возникновения ошибки

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Список изменений

Версия | Описание
7.0.16, 7.1.2 | Добавлена опция 'e'.

Примеры

Пример #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:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Замечание:

Если вы сталкиваетесь с проблемами во время чтения или записи файлов, и вы используете 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, PHP 8)

fpassthru — Выводит все оставшиеся данные из файлового указателя

Описание

fpassthru(resource $stream): int

Читает указанный файловый указатель с текущей позиции до EOF (конца файла) и записывает результат в буфер вывода.

Вам может понадобиться вызвать rewind(), чтобы сбросить файловый указатель на начало файла, если вы уже записывали данные в файл.

Если вы хотите просто сбросить содержимое файла в буфер вывода, предварительно не модифицируя его и не начиная с определённого смещения, вы можете воспользоваться readfile(), которая избавит вас от лишнего вызова fopen().

Список параметров

stream

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и всё ещё не закрытый функцией fclose()).

Возвращаемые значения

Возвращает количество символов, прочтённых из stream и переданных на вывод.

Примеры

Пример #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, PHP 8)

fputcsv — Форматирует строку в виде CSV и записывает её в файловый указатель

Описание

fputcsv(
resource $stream,
array $fields,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\",
string $eol = "\n"
): int|false

fputcsv() форматирует строку (переданную в виде массива fields) в виде CSV и записывает её (заканчивая переводом строки) в указанный файл stream.

Список параметров

stream

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и всё ещё не закрытый функцией fclose()).

fields

Массив строк (string).

separator

Дополнительный параметр separator устанавливает разделитель полей (только один однобайтовый символ).

enclosure

Дополнительный параметр enclosure устанавливает ограничитель полей (только один однобайтовый символ).

escape

Необязательный параметр escape задаёт экранирующий символ (не более одного однобайтового символа). Пустая строка ("") отключает проприетарный механизм экранирования.

eol

Необязательный параметр eol задаёт настраиваемую последовательность конца строки.

Замечание:

Если символ enclosure содержится в поле, он будет экранирован путём его удвоения, если ему не предшествует escape.

Возвращаемые значения

Возвращает длину записанной строки или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Добавлен необязательный параметр eol.
7.4.0 | Теперь параметр escape может принимать пустую строку для отключения проприетарного механизма экранирования.

Примеры

Пример #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, PHP 8)

fputs — Псевдоним fwrite()

Описание

Функция является псевдонимом: fwrite().


Бинарно-безопасное чтение файла

  • « fputs
  • fscanf »
  • PHP Manual
  • Функции файловой системы
  • Бинарно-безопасное чтение файла

fread

(PHP 4, PHP 5, PHP 7, PHP 8)

fread — Бинарно-безопасное чтение файла

Описание

fread(resource $stream, int $length): string|false

fread() читает до length байт из файлового указателя stream и смещает указатель. Чтение останавливается как только было достигнуто одно из следующих условий:

  • было прочитано length байт
  • достигнут EOF (конец файла)
  • стал доступен пакет или истекло время ожидания сокета (для сетевых потоков)
  • если читаемый поток является буферизованным и не представляет собой обычный файл, то за один раз максимум читается количество байт, равное размеру одной порции данных (обычно это 8192), однако, в зависимости от ранее буферизованных данных размер возвращаемых данных может быть больше размера одной порции данных.

Список параметров

stream

Указатель (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
$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() - Выводит все оставшиеся данные из файлового указателя
  • fseek() - Устанавливает смещение в файловом указателе
  • ftell() - Возвращает текущую позицию указателя чтения/записи файла
  • rewind() - Сбрасывает курсор файлового указателя
  • unpack() - Распаковать данные из бинарной строки


Обрабатывает данные из файла в соответствии с форматом

  • « fread
  • fseek »
  • PHP Manual
  • Функции файловой системы
  • Обрабатывает данные из файла в соответствии с форматом

fscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

fscanf — Обрабатывает данные из файла в соответствии с форматом

Описание

fscanf(resource $stream, string $format, mixed &...$vars): array|int|false|null

Функция fscanf() похожа на sscanf(), но берёт данные для обработки из файла, связанного с stream, и интерпретирует их согласно формату format.

Любой пробельный символ в строке формата эквивалентен любому пробельному символу во входящем потоке. Это означает, что даже табуляция (\t) в строке формата может быть сопоставлена одному символу пробела во входящем потоке данных.

Каждый вызов fscanf() читает одну строку из файла.

Список параметров

stream

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

format

Интерпретируемый формат для параметра string, который описан в документации функции sprintf() со следующими отличиями:

  • Функция не ориентирована на локализацию.
  • Не поддерживаются значения F, g, G и b.
  • D обозначает десятичное число.
  • i обозначает целое число с определением системы счисления.
  • n обозначает количество символов, обработанных на данный момент.
  • s останавливает чтение на любом символе пробела.
  • * вместо argnum$ подавляет присвоение данной спецификации преобразования.

vars

Необязательные присваиваемые значения.

Возвращаемые значения

Если в функцию переданы только два аргумента, обработанные значения будут возвращены в виде массива. В ином случае, если были переданы необязательные аргументы, функция вернёт количество присвоенных значений. Необязательные аргументы должны быть переданы по ссылке.

Если в format ожидается больше подстрок, чем доступно в string, будет возвращён null. В случае возникновения других ошибок будет возвращено false.

Примеры

Пример #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, PHP 8)

fseek — Устанавливает смещение в файловом указателе

Описание

fseek(resource $stream, int $offset, int $whence = SEEK_SET): int

Устанавливает смещение в файле, на который ссылается stream. Новое смещение, измеряемое в байтах от начала файла, получается путём прибавления параметра offset к позиции, указанной в параметре whence.

В общей сложности разрешается указывать смещение за пределами конца файла, если данные потом будут записаны в этой позиции, чтение любой незаписанной области между концом файла и указанной позицией возвратит нулевые байты. Однако, определённые потоки могут не поддерживать это поведение, особенно если у них есть основное хранилище фиксированного размера.

Список параметров

stream

Указатель (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
  • fsync »
  • PHP Manual
  • Функции файловой системы
  • Получает информацию о файле, используя открытый файловый указатель

fstat

(PHP 4, PHP 5, PHP 7, PHP 8)

fstat — Получает информацию о файле, используя открытый файловый указатель

Описание

fstat(resource $stream): array|false

Собирает статистическую информацию об открытом файле по файловому указателю stream. Эта функция похожа на stat(), за исключением того, что она работает с открытым файловым указателем, а не именем файла.

Список параметров

stream

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

Возвращаемые значения

Возвращает массив со статистической информацией файла; формат массива подробно описан на странице описания функции stat(). Возвращает false в случае возникновения ошибки.

Примеры

Пример #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
  • ftell »
  • PHP Manual
  • Функции файловой системы
  • Синхронизирует изменения в файле (включая метаданные)

fsync

(PHP 8 >= 8.1.0)

fsync — Синхронизирует изменения в файле (включая метаданные)

Описание

fsync(resource $stream): bool

Функция синхронизирует изменения в файле, включая его метаданные. Она похожа на fflush(), но помимо этого даёт инструкции операционной системе о записи на накопитель.

Список параметров

stream

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и всё ещё не закрытый функцией fclose()).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования fsync()

<?php

$file = 'test.txt';

$stream = fopen($file, 'w');
fwrite($stream, 'тестовые данные');
fwrite($stream, "\r\n");
fwrite($stream, 'дополнительные данные');

fsync($stream);
fclose($stream);
?>

Смотрите также

  • fdatasync() - Синхронизирует данные (но не метаданные) с файлом
  • fflush() - Сбрасывает буфер вывода в файл


Возвращает текущую позицию указателя чтения/записи файла

  • « fsync
  • ftruncate »
  • PHP Manual
  • Функции файловой системы
  • Возвращает текущую позицию указателя чтения/записи файла

ftell

(PHP 4, PHP 5, PHP 7, PHP 8)

ftell — Возвращает текущую позицию указателя чтения/записи файла

Описание

ftell(resource $stream): int|false

Возвращает позицию файлового указателя stream.

Список параметров

stream

Файловый указатель должен быть действующим указателем на поток, открытый функциями fopen() или popen(). ftell() возвращает неопределённые результаты для потоков, разрешающих только запись в конец (открытых с флагом "a").

Возвращаемые значения

Возвращает позицию файлового указателя stream в виде целого числа, то есть его смещение в файловом потоке.

При возникновении ошибки возвращает 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, PHP 8)

ftruncate — Урезает файл до указанной длины

Описание

ftruncate(resource $stream, int $size): bool

Принимает файловый указатель stream и урезает соответствующий файл до размера size.

Список параметров

stream

Файловый указатель.

Замечание:

stream должен быть открыт для записи.

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, PHP 8)

fwrite — Бинарно-безопасная запись в файл

Описание

fwrite(resource $stream, string $data, ?int $length = null): int|false

fwrite() записывает содержимое data в файловый поток stream.

Список параметров

stream

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

data

Записываемая строка.

length

Если параметр length является целым числом (int), запись остановится после того, как length байтов будут записаны или будет достигнут конец строки data, смотря что произойдёт раньше.

Возвращаемые значения

fwrite() возвращает количество записанных байт или false в случае возникновения ошибки.

Ошибки

Функция fwrite() выдаёт ошибку уровня E_WARNING в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр length теперь допускает значение null.

Примеры

Пример #1 Простой пример использования fwrite()

<?php
$filename = 'test.txt';
$somecontent = "Добавить это к файлу\n";

// Вначале давайте убедимся, что файл существует и доступен для записи.
if (is_writable($filename)) {

// В нашем примере мы открываем $filename в режиме "записи в конец".
// Таким образом, смещение установлено в конец файла и
// наш $somecontent допишется в конец при использовании fwrite().
if (!$fp = fopen($filename, 'a')) {
echo "Не могу открыть файл ($filename)";
exit;
}

// Записываем $somecontent в наш открытый файл.
if (fwrite($fp, $somecontent) === FALSE) {
echo "Не могу произвести запись в файл ($filename)";
exit;
}

echo "Ура! Записали ($somecontent) в файл ($filename)";

fclose($fp);

} else {
echo "Файл $filename недоступен для записи";
}
?>

Примечания

Замечание:

Запись в сетевой поток может прекратиться до того, как будут записаны все данные. Это можно контролировать с помощью проверки возвращаемого значения функции 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().

Замечание:

Если дескриптор stream был открыт функцией fopen() в режиме "добавление в конец", то вызовы fwrite() будут атомарными (за исключением случая, если размер data превысит размер блока файловой системы, на некоторых платформах, и пока файл хранится на локальной файловой системе). То есть нет необходимости блокировать ресурс с помощью flock() перед вызовом fwrite(), и все данные будут записаны без прерываний.

Замечание:

При повторной записи в файловый указатель, данные будут добавлены в конец содержимого файла:

<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);

// содержимое 'data.txt' теперь 123, а не 23!
?>

Смотрите также

  • 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, PHP 8)

glob — Находит файловые пути, совпадающие с шаблоном

Описание

glob(string $pattern, int $flags = 0): array|false

Функция glob() ищет все пути, совпадающие с шаблоном pattern согласно правилам, используемым в функции glob() библиотеки libc, которые похожи на правила, используемые большинством распространённых оболочек.

Список параметров

pattern

Шаблон. Не происходит раскрытие тильды и подстановка параметров.

Специальные символы:

  • * - Соответствует нулю или большему количеству символов.
  • ? - Соответствует ровно одному символу (любому символу).
  • [...] - Соответствует одному символу из группы. Если первый символ !, то соответствует любому символу, не входящему в группу
  • \ - Экранирует следующий символ, кроме случаев, когда используется флаг GLOB_NOESCAPE.

flags

Допустимые флаги:

  • GLOB_MARK - Добавляет слеш (обратный слеш в Windows) к каждой возвращаемой директории.
  • GLOB_NOSORT - Возвращает файлы в том виде, в котором они содержатся в директории (без сортировки). Если этот флаг не указан, то имена сортируются по алфавиту.
  • GLOB_NOCHECK - Возвращает шаблон поиска, если с его помощью не был найден ни один файл.
  • GLOB_NOESCAPE - Обратные слеши не экранируют метасимволы.
  • GLOB_BRACE - Раскрывает {a,b,c} для совпадения с 'a', 'b' или 'c'.
  • GLOB_ONLYDIR - Возвращает только директории, совпадающие с шаблоном.
  • GLOB_ERR - Останавливается при ошибках чтения (например, директории без права чтения), по умолчанию ошибки игнорируются.

Замечание: Флаг GLOB_BRACE недоступен на некоторых не GNU-системах, например, Solaris или Alpine Linux.

Возвращаемые значения

Возвращает массив, который содержит совпадающие файлы/директории, пустой массив в случае отсутствия совпадения или false в случае ошибки.

Замечание:

На некоторых системах невозможно отличить отсутствие совпадения и ошибку.

Примеры

Пример #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).

Смотрите также

  • opendir() - Открывает дескриптор каталога
  • readdir() - Получает элемент каталога по его дескриптору
  • closedir() - Закрывает дескриптор каталога
  • fnmatch() - Проверяет совпадение имени файла с шаблоном


Определяет, является ли имя файла директорией

  • « glob
  • is_executable »
  • PHP Manual
  • Функции файловой системы
  • Определяет, является ли имя файла директорией

is_dir

(PHP 4, PHP 5, PHP 7, PHP 8)

is_dir — Определяет, является ли имя файла директорией

Описание

is_dir(string $filename): bool

Определяет, является ли имя файла директорией.

Список параметров

filename

Путь к файлу. Если filename является относительным именем, он будет проверяться относительно текущей рабочей директории. Если filename является символической или жёсткой ссылкой, то ссылка будет раскрыта и проверена. При включённом open_basedir могут применяться дальнейшие ограничения.

Возвращаемые значения

Возвращает true, если файл существует и является директорией, иначе возвращается false.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #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)

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе 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, PHP 8)

is_executable — Определяет, является ли файл исполняемым

Описание

is_executable(string $filename): bool

Определяет, является ли файл исполняемым.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает true, если файл существует и является исполняемым, или false в случае возникновения ошибки. В POSIX-системах файл является исполняемым, если установлен исполняемый бит прав доступа к файлу. Для Windows смотрите примечание ниже.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования функции is_executable()

<?php

$file = '/home/vincent/somefile.sh';

if (is_executable($file)) {
echo $file.' является исполняемым';
} else {
echo $file.' не является исполняемым';
}

?>

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обёртки.

Замечание: В Windows файл считается исполняемым, если это по-настоящему исполняемый файл, как сообщает Win API GetBinaryType(); Для обратной совместимости файлы с расширением .bat или .cmd также считаются исполняемыми. До PHP 7.4.0 любой непустой файл с расширением .exe или .com считался исполняемым. Обратите внимание, что PATHEXT не имеет отношения к is_executable().

Смотрите также

  • is_file() - Определяет, является ли файл обычным файлом
  • is_link() - Определяет, является ли файл символической ссылкой


Определяет, является ли файл обычным файлом

  • « is_executable
  • is_link »
  • PHP Manual
  • Функции файловой системы
  • Определяет, является ли файл обычным файлом

is_file

(PHP 4, PHP 5, PHP 7, PHP 8)

is_file — Определяет, является ли файл обычным файлом

Описание

is_file(string $filename): bool

Определяет, является ли файл обычным файлом.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает true, если файл существует и является обычным файлом, иначе возвращает false.

Замечание: Так как тип integer в PHP является целым числом со знаком, и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования is_file()

<?php
var_dump(is_file('a_file.txt')) . "\n";
var_dump(is_file('/usr/bin/')) . "\n";
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обёртки.

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • is_link() - Определяет, является ли файл символической ссылкой
  • SplFileInfo


Определяет, является ли файл символической ссылкой

  • « is_file
  • is_readable »
  • PHP Manual
  • Функции файловой системы
  • Определяет, является ли файл символической ссылкой

is_link

(PHP 4, PHP 5, PHP 7, PHP 8)

is_link — Определяет, является ли файл символической ссылкой

Описание

is_link(string $filename): bool

Определяет, является ли файл символической ссылкой.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает true, если файл существует и является символической ссылкой, иначе возвращает false.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Создаём файл и подтверждаем, что он является символической ссылкой

<?php
$link = 'uploads';

if (is_link($link)) {
echo readlink($link);
} else {
symlink('uploads.php', $link);
}
?>

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе 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, PHP 8)

is_readable — Определяет существование файла и доступен ли он для чтения

Описание

is_readable(string $filename): bool

Возвращает true, если файл существует и доступен для чтения.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает true, если файл или директория, указанная в filename существует и доступна для чтения, иначе возвращает false.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 is_readable() example

<?php
$filename = 'test.txt';
if (is_readable($filename)) {
echo 'Файл доступен для чтения';
} else {
echo 'Файл недоступен для чтения';
}
?>

Примечания

Не забывайте, что PHP может обращаться к файлам от имени пользователя, от которого запущен веб-сервер (часто 'nobody').

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе 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, PHP 8)

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, PHP 8)

is_writable — Определяет, доступен ли файл для записи

Описание

is_writable(string $filename): bool

Возвращает true, если файл filename существует и доступен для записи. Аргумент filename может быть именем директории, что позволяет вам проверять директории на доступность для записи.

Не забывайте, что PHP может обращаться к файлу от имени того пользователя, от которого запущен веб-сервер (обычно 'nobody').

Список параметров

filename

Проверяемый файл.

Возвращаемые значения

Возвращает true, если filename существует и доступен для записи.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования is_writable()

<?php
$filename = 'test.txt';
if (is_writable($filename)) {
echo 'Файл доступен для записи';
} else {
echo 'Файл недоступен для записи';
}
?>

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе 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, PHP 8)

is_writeable — Псевдоним is_writable()

Описание

Функция является псевдонимом: is_writable().


Изменяет группу, которой принадлежит символическая ссылка

  • « is_writeable
  • lchown »
  • PHP Manual
  • Функции файловой системы
  • Изменяет группу, которой принадлежит символическая ссылка

lchgrp

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

lchgrp — Изменяет группу, которой принадлежит символическая ссылка

Описание

lchgrp(string $filename, string|int $group): bool

Пытается изменить группу, которой принадлежит символическая ссылка filename на указанную в group.

Только суперпользователь может изменять группу символической ссылки произвольно, другие пользователи могут изменять группу символической ссылки на какую-либо, в которой пользователь является членом.

Список параметров

filename

Путь к ссылке.

group

Группа, указанная по имени или номеру.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример изменения группы символической ссылки

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchgrp($link, 8);
?>

Примечания

Замечание: Эта функция неприменима для работы с удалёнными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Для Windows-платформ эта функция не реализована.

Смотрите также

  • chgrp() - Изменяет группу файла
  • lchown() - Изменяет владельца символической ссылки
  • chown() - Изменяет владельца файла
  • chmod() - Изменяет режим доступа к файлу


Изменяет владельца символической ссылки

  • « lchgrp
  • link »
  • PHP Manual
  • Функции файловой системы
  • Изменяет владельца символической ссылки

lchown

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

lchown — Изменяет владельца символической ссылки

Описание

lchown(string $filename, string|int $user): bool

Пытается изменить владельца символической ссылки filename на указанного в user пользователя.

Только суперпользователь может изменять владельца символической ссылки.

Список параметров

filename

Путь к файлу.

user

Имя пользователя или номер.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Изменение владельца символической ссылки

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchown($link, 8);
?>

Примечания

Замечание: Эта функция неприменима для работы с удалёнными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Для Windows-платформ эта функция не реализована.

Смотрите также

  • chown() - Изменяет владельца файла
  • lchgrp() - Изменяет группу, которой принадлежит символическая ссылка
  • chgrp() - Изменяет группу файла
  • chmod() - Изменяет режим доступа к файлу


Создаёт жёсткую ссылку

  • « lchown
  • linkinfo »
  • PHP Manual
  • Функции файловой системы
  • Создаёт жёсткую ссылку

link

(PHP 4, PHP 5, PHP 7, PHP 8)

link — Создаёт жёсткую ссылку

Описание

link(string $target, string $link): bool

link() создаёт жёсткую ссылку.

Список параметров

target

Цель ссылки.

link

Имя ссылки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Функция завершается с ошибкой и выдаёт E_WARNING, если link уже существует или если target не существует.

Примеры

Пример #1 Создание простой жёсткой ссылки

<?php
$target = 'source.ext'; // Это уже существующий файл
$link = 'newfile.ext'; // Это файл, который вы хотите привязать к первому

link($target, $link);
?>

Примечания

Замечание: Эта функция неприменима для работы с удалёнными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Только для Windows: Для данной функции необходимо, чтобы PHP был запущен в привилегированном режиме или с отключённым UAC.

Смотрите также

  • symlink() - Создаёт символическую ссылку
  • readlink() - Возвращает файл, на который указывает символическая ссылка
  • linkinfo() - Возвращает информацию о ссылке
  • unlink() - Удаляет файл


Возвращает информацию о ссылке

  • « link
  • lstat »
  • PHP Manual
  • Функции файловой системы
  • Возвращает информацию о ссылке

linkinfo

(PHP 4, PHP 5, PHP 7, PHP 8)

linkinfo — Возвращает информацию о ссылке

Описание

linkinfo(string $path): int|false

Возвращает информацию о ссылке.

Эта функция используется для определения, существует ли ссылка (на которую указывает path) на самом деле (используя тот же метод, что и макрос S_ISLNK, определённый в stat.h).

Список параметров

path

Путь к ссылке.

Возвращаемые значения

linkinfo() возвращает поле st_dev структуры stat из Unix C, которую возвращает системный вызов lstat. Возвращает неотрицательное целое число в случае успешного выполнения, -1 в случае, если ссылка не была найдена, или false в случае возникновения ошибки open.base_dir.

Примеры

Пример #1 Пример использования функции linkinfo()

<?php

echo linkinfo('/vmlinuz'); // 835

?>

Смотрите также

  • symlink() - Создаёт символическую ссылку
  • link() - Создаёт жёсткую ссылку
  • readlink() - Возвращает файл, на который указывает символическая ссылка


Возвращает информацию о файле или символической ссылке

  • « linkinfo
  • mkdir »
  • PHP Manual
  • Функции файловой системы
  • Возвращает информацию о файле или символической ссылке

lstat

(PHP 4, PHP 5, PHP 7, PHP 8)

lstat — Возвращает информацию о файле или символической ссылке

Описание

lstat(string $filename): array|false

Собирает статистику на файл или символическую ссылку с именем filename.

Список параметров

filename

Путь к файлу или символической ссылке.

Возвращаемые значения

Обратитесь к странице руководства функции stat() для получения информации о структуре массива, который возвращает lstat(). Эта функция идентична функции stat(), за исключением того, что если filename является символической ссылкой, возвращается статус символической ссылки, а не того файла, на который она указывает.

Возвращает false в случае возникновения ошибки.

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примеры

Пример #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
)

Примечания

Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Поддерживаемые протоколы и обёртки.

Смотрите также

  • stat() - Возвращает информацию о файле


Создаёт директорию

  • « lstat
  • move_uploaded_file »
  • PHP Manual
  • Функции файловой системы
  • Создаёт директорию

mkdir

(PHP 4, PHP 5, PHP 7, PHP 8)

mkdir — Создаёт директорию

Описание

mkdir(
string $directory,
int $permissions = 0777,
bool $recursive = false,
?resource $context = null
): bool

Пытается создать директорию, заданную в directory.

Список параметров

directory

Путь к директории.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

permissions

По умолчанию принимает значение 0777, что означает самые широкие права. Больше информации о правах доступа можно узнать на странице руководства функции chmod().

Замечание:

Аргумент permissions игнорируется в Windows.

Обратите внимание, что аргумент permissions необходимо задавать в виде восьмеричного числа (первой цифрой должен быть ноль). На аргумент permissions также влияет текущее значение umask, которое можно изменить при помощи umask().

recursive

Если указано значение true, то все родительские каталоги для указанного параметра directory также будут созданы, с теми же разрешениями.

context

Ресурс (resource) с контекстом потока.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Замечание:

Если создаваемый каталог уже существует, это считается ошибкой и будет возвращено значение false. Используйте функцию is_dir() или file_exists(), чтобы проверить, существует ли уже каталог, прежде чем пытаться его создать.

Ошибки

Выдаёт ошибку уровня E_WARNING, если директория уже существует.

Выдаёт ошибку уровня E_WARNING, если соответствующие права доступа блокируют создание директории.

Примеры

Пример #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('Не удалось создать директории...');
}

// ...
?>

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • rmdir() - Удаляет директорию
  • umask() - Изменяет текущую umask


Перемещает загруженный файл в новое место

  • « mkdir
  • parse_ini_file »
  • PHP Manual
  • Функции файловой системы
  • Перемещает загруженный файл в новое место

move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

move_uploaded_file — Перемещает загруженный файл в новое место

Описание

move_uploaded_file(string $from, string $to): bool

Эта функция проверяет, является ли файл from загруженным на сервер (переданным по протоколу HTTP POST). Если файл действительно загружен на сервер, он будет перемещён в место, указанное в аргументе to.

Такая проверка особенно важна в том случае, если существует шанс того, что какие-либо действия, производимые над загруженным файлом, могут открыть его содержимое пользователю или даже другим пользователям системы.

Список параметров

from

Путь к загруженному файлу.

to

Путь, по которому необходимо переместить файл.

Возвращаемые значения

В случае успешного выполнения возвращает true.

Если from не является загруженным файлом, никаких действий не предпринимается и move_uploaded_file() возвращает false.

Если from является загруженным файлом, но не может быть перемещён по каким-либо причинам, никаких действий не предпринимается и 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. Тем не менее, ограничения накладываются лишь на параметр to, чтобы разрешить перемещение загруженных файлов, так как параметр from может конфликтовать с этими ограничениями. 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, PHP 8)

parse_ini_file — Обрабатывает конфигурационный файл

Описание

parse_ini_file(string $filename, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false

parse_ini_file() загружает ini-файл, указанный в аргументе filename, и возвращает его настройки в виде ассоциативного массива.

Структура ini-файла похожа на структуру php.ini.

Список параметров

filename

Имя обрабатываемого ini-файла. Если используется относительный путь, он оценивается относительно текущего рабочего каталога, а затем include_path.

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.

Примеры

Пример #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()

Константы (но не "магические константы" вроде __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()
$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 = Да

Пример #4 Интерполяция значений

Помимо оценки констант, некоторые символы имеют особое значение в значении ini-файлах. Кроме того, переменные среды и ранее определённые параметры конфигурации (смотрите get_cfg_var()) могут быть прочитаны с использованием синтаксиса ${}.

; | используется для побитового ИЛИ
three = 2|3

; & используется для побитового AND
four = 6&5

; ^ используется для побитового XOR
five = 3^6

; ~ используется для побитового отрицания
negative_two = ~1

; () используется для группировки
seven = (8|7)&(6|5)

; Интерполируйте переменную окружения PATH
path = ${PATH}

; Интерполируйте параметр конфигурации 'memory_limit'
configured_memory_limit = ${memory_limit}

Пример #5 Экранирование символов

Некоторые символы имеют особое значение в строках с двойными кавычками и должны быть экранированы префиксом обратной косой черты. Прежде всего, это двойная кавычка " в качестве маркера границы и сама обратная косая черта \ (если за ней следует один из специальных символов):

quoted = "Она сказала \"Именно моя точка зрения\"." ; Результатом является строка с кавычками.
hint = "Используйте \\\", чтобы избежать двойных кавычек" ; Результат: Используйте \", чтобы избежать двойных кавычек

Для путей, подобных Windows, сделано исключение: можно не экранировать обратную косую черту в конце, если за строкой в кавычках следует разрыв строки:

save_path = "C:\Temp\"

Если нужно экранировать двойные кавычки, за которыми следует перенос строки в многострочном значении, можно использовать конкатенацию значений следующим образом (за одной строкой в двойных кавычках непосредственно следует другая):

long_text = "Lorem \"ipsum\"""
 dolor" ; Результат: Lorem "ipsum"\n dolor

Другой символ со специальным значением - это $ (знак доллара). Он должен быть экранирован, если за ним следует открытая фигурная скобка:

code = "\${test}"

Экранирующие символы не поддерживаются в режиме INI_SCANNER_RAW (в этом режиме все символы обрабатываются "как есть").

Обратите внимание, что синтаксический анализатор ini не поддерживает стандартные последовательности экранирования (\n, \t и т.д.). При необходимости выполните постобработку результата parse_ini_file() с помощью функции stripcslashes().

Примечания

Замечание:

Эта функция не имеет никакого отношения к файлу php.ini. К моменту выполнения вашего скрипта, он уже обработан. Эта функция может быть использована для загрузки настроек вашего собственного приложения.

Замечание:

Если значение в ini-файле содержит прочие символы, кроме букв и цифр, оно должно заключаться в двойные кавычки (").

Замечание: Существует зарезервированные слова, которые нельзя использовать в качестве ключей в ini-файлах. Такими словами являются: null, yes, no, true, false, on, off, none. Значения null, off, no и false преобразуются в "", а значения on, yes и true в "1" , но только если не используется режим INI_SCANNER_TYPED. Символы ?{}|&~!()^" не должны использоваться в ключах и иметь какой-либо особый смысл в значениях.

Замечание:

Записи без знака равенства игнорируются. Например, "foo" игнорируется, тогда как "bar =" обрабатывается и добавляется с пустым значением. Например, в MySQL есть опция "no-auto-rehash", устанавливаемая в my.cnf, которая не имеет значения и игнорируется.

Замечание:

ini-файлы обычно обрабатываются веб-серверами как простой текст и, таким образом, по запросу передаются браузерам. Это означает, что в целях безопасности вы должны либо хранить свои ini-файлы вне корневого каталога документов, либо перенастроить веб-сервер, чтобы они не обслуживались. Невыполнение любого из этих требований может создать угрозу безопасности.

Смотрите также

  • parse_ini_string() - Разбирает строку конфигурации


Разбирает строку конфигурации

  • « parse_ini_file
  • pathinfo »
  • PHP Manual
  • Функции файловой системы
  • Разбирает строку конфигурации

parse_ini_string

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

parse_ini_string — Разбирает строку конфигурации

Описание

parse_ini_string(string $ini_string, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false

parse_ini_string() возвращает настройки из строки ini_string в виде ассоциативного массива.

Структура INI-строки такая же, как и в php.ini.

Список параметров

ini_string

Содержимое разбираемого 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, PHP 8)

pathinfo — Возвращает информацию о пути к файлу

Описание

pathinfo(string $path, int $flags = PATHINFO_ALL): array|string

pathinfo() возвращает информацию о path в виде ассоциативного массива или строки, в зависимости от flags.

Замечание:

Подробнее о получении информации о текущем пути, можно почитать в разделе Предопределённые зарезервированные переменные.

Замечание:

pathinfo() оперирует входной строкой и не знает фактическую файловую систему или компоненты пути, такие как "..".

Замечание:

Только в системах Windows символ \ будет интерпретироваться как разделитель каталогов. В других системах он будет рассматриваться как любой другой символ.

Предостережение

pathinfo() учитывает настройки локали, поэтому для корректной обработки пути с многобайтными символами должна быть установлена соответствующая локаль с помощью функции setlocale().

Список параметров

path

Анализируемый путь.

flags

Если указан, то задаёт, какой из элементов пути будет возвращён: PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION и PATHINFO_FILENAME.

Если flags не указан, то возвращаются все доступные элементы.

Возвращаемые значения

Если параметр flags не передан, то возвращаемый ассоциативный массив (array) будет содержать следующие элементы: dirname, basename, extension (если есть) и filename.

Замечание:

Если path содержит больше одного расширения, то PATHINFO_EXTENSION возвращает только последний и PATHINFO_FILENAME удаляет только последнее расширение. (смотрите пример ниже).

Замечание:

Если path не содержит расширения, то не будет возвращён элемент extension (смотрите ниже второй пример).

Замечание:

Если basename параметра path начинается с точки, то все последующие символы интерпретируются как расширение файла (extension) и имя файла filename будет пустым (смотрите третий пример).

Если указан параметр flags, будет возвращена строка (string), содержащая указанный элемент.

Примеры

Пример #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";
?>

Результат выполнения данного примера:

/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] =>
)

Пример #4 Пример использования pathinfo() с разыменованием массива

Параметр flags не является битовой маской. Может быть предоставлено только одно значение. Чтобы выбрать только ограниченный набор разобранных значений, используйте деструктуризацию массива следующим образом:

<?php
['basename' => $basename, 'dirname' => $dirname] = pathinfo('/www/htdocs/inc/lib.inc.php');

var_dump($basename, $dirname);
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "lib.inc.php"
string(15) "/www/htdocs/inc"

Смотрите также

  • dirname() - Возвращает имя родительского каталога из указанного пути
  • basename() - Возвращает последний компонент имени из указанного пути
  • parse_url() - Разбирает URL и возвращает его компоненты
  • realpath() - Возвращает канонизированный абсолютный путь к файлу


Закрывает файловый указатель процесса

  • « pathinfo
  • popen »
  • PHP Manual
  • Функции файловой системы
  • Закрывает файловый указатель процесса

pclose

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

popen — Открывает файловый указатель процесса

Описание

popen(string $command, string $mode): resource|false

Открывает поток к процессу, выполняемый при помощи форка команды, заданной в параметре command.

Список параметров

command

Команда

mode

Режим. Либо 'r' для чтения, либо 'w' для записи.

В Windows для popen() по умолчанию используется текстовый режим, т.е. любые символы \n, записанные в канал или прочитанные из него, будут преобразованы в \r\n. Если это нежелательно, можно принудительно использовать двоичный режим, установив для mode значение 'rb' и 'wb' соответственно.

Возвращаемые значения

Возвращает файловый указатель, идентичный возвращаемому функцией 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().

Смотрите также

  • pclose() - Закрывает файловый указатель процесса
  • fopen() - Открывает файл или URL
  • proc_open() - Выполнить команду и открыть указатель на файл для ввода/вывода


Выводит файл

  • « popen
  • readlink »
  • PHP Manual
  • Функции файловой системы
  • Выводит файл

readfile

(PHP 4, PHP 5, PHP 7, PHP 8)

readfile — Выводит файл

Описание

readfile(string $filename, bool $use_include_path = false, ?resource $context = null): int|false

Читает файл и записывает его в буфер вывода.

Список параметров

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, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Смотрите также

  • 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, PHP 8)

readlink — Возвращает файл, на который указывает символическая ссылка

Описание

readlink(string $path): string|false

readlink() делает то же самое, что и функция C readlink.

Список параметров

path

Путь к символической ссылке.

Возвращаемые значения

Возвращает путь, на который указывает символическая ссылка, либо false в случае возникновения ошибки.

Замечание: Функция завершается ошибкой, если path не является символической ссылкой, кроме Windows, где будет возвращён нормализованный путь.

Примеры

Пример #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, PHP 8)

realpath_cache_get — Получает записи из кеша realpath

Описание

realpath_cache_get(): 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, PHP 8)

realpath_cache_size — Получает размер кеша realpath

Описание

realpath_cache_size(): 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, PHP 8)

realpath — Возвращает канонизированный абсолютный путь к файлу

Описание

realpath(string $path): string|false

realpath() раскрывает все символические ссылки, переходы типа /./, /../ и лишние символы / в пути path, возвращая канонизированный абсолютный путь к файлу.

Список параметров

path

Проверяемый путь.

Замечание:

Несмотря на то, что путь должен быть указан, переданное значение может быть пустой строкой. В этих случаях значение интерпретируется как текущая рабочая директория.

Возвращаемые значения

В случае успешного выполнения возвращает канонизированный абсолютный путь. Результирующий путь не содержит символических ссылок и компонентов наподобие /./ или '/../. Разделители \ и / в конце пути также удаляются.

realpath() возвращает false при неудаче, например, если файл не существует.

Замечание:

Запускаемый скрипт должен иметь права запуска на всех директориях в проверяемой иерархии, иначе realpath() вернёт false.

Замечание:

Для регистронезависимых файловых систем, realpath() может нормализовать или не нормализовать регистр символов.

Замечание:

Функция realpath() не будет работать с файлом внутри архива Phar, так как путь может быть не реальным, а виртуальным.

Замечание:

В Windows переходы и символические ссылки на каталоги расширяются только на один уровень.

Замечание: Так как тип integer в PHP является целым числом со знаком, и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.

Примеры

Пример #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, PHP 8)

rename — Переименовывает файл или директорию

Описание

rename(string $from, string $to, ?resource $context = null): bool

Пытается переименовать from в to, перенося файл между директориями, если необходимо. Если to существует, то он будет перезаписан. При переименовании директории с существующим to будет выведено предупреждение.

Список параметров

from

Старое имя.

Замечание:

Обёртка, используемая в from должна совпадать с обёрткой, используемой в to.

to

Новое имя.

Замечание: В Windows, если to уже существует, он должен быть доступен для записи. В противном случае rename() завершится ошибкой и выдаст E_WARNING.

context

Ресурс (resource) с контекстом потока.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

rewind — Сбрасывает курсор файлового указателя

Описание

rewind(resource $stream): bool

Устанавливает курсор файлового указателя stream в начало файлового потока.

Замечание:

Если вы открыли файл в режиме "записи в конец" ("a" или "a+"), любые данные, которые вы записываете, будут дописаны в конец файла, независимо от положения курсора.

Список параметров

stream

Файловый указатель должен быть доступным и ссылаться на файл, успешно открытый при помощи 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, PHP 8)

rmdir — Удаляет директорию

Описание

rmdir(string $directory, ?resource $context = null): bool

Пытается удалить директорию с именем directory. Директория должна быть пустой и должны иметься необходимые для этого права. При неудачном выполнении будет сгенерирована ошибка уровня E_WARNING.

Список параметров

directory

Путь к директории.

context

Ресурс (resource) с контекстом потока.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования rmdir()

<?php
if (!is_dir('examples')) {
mkdir('examples');
}

rmdir('examples');
?>

Смотрите также

  • 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, PHP 8)

set_file_buffer — Псевдоним stream_set_write_buffer()

Описание

Функция является псевдонимом: stream_set_write_buffer().


Возвращает информацию о файле

  • « set_file_buffer
  • symlink »
  • PHP Manual
  • Функции файловой системы
  • Возвращает информацию о файле

stat

(PHP 4, PHP 5, PHP 7, PHP 8)

stat — Возвращает информацию о файле

Описание

stat(string $filename): array|false

Собирает статистическую информацию о файле filename. Если filename является символической ссылкой, информация собирается о самом файле, а не ссылке. До PHP 7.4.0 в Windows NTS в данном случае строил статистику size, atime, mtime и ctime из символьной ссылки.

Функция 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.

*** В Windows, начиная с PHP 7.4.0, это серийный номер тома, содержащего файл, который представляет собой 64-разрядное целое число без знака, поэтому может переполниться в 32-разрядных системах. Ранее это было числовое представление буквы диска (например, 2 для C:) для stat() и 0 для lstat().

**** В Windows, начиная с PHP 7.4.0, идентификатор, связанный с файлом, который представляет собой 64-разрядное целое число без знака, может переполниться в 32-разрядных системах. Ранее он всегда был 0.

***** В Windows бит разрешения на запись устанавливается в соответствии с атрибутом файла только для чтения, одно и то же значение сообщается для всех пользователей, группы и владельца. ACL не учитывается, в отличие от is_writable().

Значение mode содержит информацию, читаемую несколькими функциями. При записи в восьмеричном виде, начиная справа, первые три цифры возвращаются функцией chmod(). Следующая цифра игнорируется PHP. Следующие две цифры указывают тип файла:

mode типов файлов
mode в восьмеричном виде | Значение
0140000 | сокет
0120000 | символическая ссылка
0100000 | обычный файл
0060000 | блочное устройство
0040000 | директория
0020000 | символьное устройство
0010000 | fifo
Так, например, обычный файл может быть 0100644, а директория может быть 0040755.

В случае возникновения ошибки stat() возвращает false.

Замечание: Так как тип integer в PHP является целым числом со знаком, и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2 Гб.

Ошибки

В случае возникновения ошибки будет сгенерирована ошибка уровня E_WARNING.

Список изменений

Версия | Описание
7.4.0 | В Windows номер устройства теперь является серийным номером тома, содержащего файл и номер inode - это идентификатор, связанный с файлом.
7.4.0 | Статистика символьных ссылок size, atime, mtime и ctime всегда соответствует статистике целевого объекта. Это было ранее не характерно для NTS-сборки на Windows.

Примеры

Пример #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() - Получает идентификатор группы файла
  • SplFileInfo


Создаёт символическую ссылку

  • « stat
  • tempnam »
  • PHP Manual
  • Функции файловой системы
  • Создаёт символическую ссылку

symlink

(PHP 4, PHP 5, PHP 7, PHP 8)

symlink — Создаёт символическую ссылку

Описание

symlink(string $target, string $link): bool

symlink() создаёт символическую ссылку на существующий файл target с именем link.

Список параметров

target

Цель ссылки.

link

Имя ссылки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Функция завершается с ошибкой и выдаёт E_WARNING, если link уже существует. В Windows функция также не работает и выдаёт E_WARNING, если target не существует.

Примеры

Пример #1 Создание символической ссылки

<?php
$target = 'uploads.php';
$link = 'uploads';
symlink($target, $link);

echo readlink($link);
?>

Смотрите также

  • link() - Создаёт жёсткую ссылку
  • readlink() - Возвращает файл, на который указывает символическая ссылка
  • linkinfo() - Возвращает информацию о ссылке
  • unlink() - Удаляет файл


Создаёт файл с уникальным именем

  • « symlink
  • tmpfile »
  • PHP Manual
  • Функции файловой системы
  • Создаёт файл с уникальным именем

tempnam

(PHP 4, PHP 5, PHP 7, PHP 8)

tempnam — Создаёт файл с уникальным именем

Описание

tempnam(string $directory, string $prefix): string|false

Создаёт файл с уникальным именем в определённой директории с правами 0600. Если эта директория не существует или недоступна для записи, tempnam() может создать файл во временной директории системы и вернуть полный путь к этому файлу, включая его имя.

Список параметров

directory

Директория, где будет создан временный файл.

prefix

Префикс имени генерируемого файла.

Замечание: Используются только первые 63 символа префикса, остальные игнорируются. В Windows используются только первые три символа префикса.

Возвращаемые значения

Возвращает имя нового временного файла (вместе с путём) или false в случае неудачи.

Список изменений

Версия | Описание
7.1.0 | tempnam() теперь выдаёт уведомление при возврате во временный каталог системы.

Примеры

Пример #1 Пример использования функции tempnam()

<?php
$tmpfname = tempnam("/tmp", "FOO");

$handle = fopen($tmpfname, "w");
fwrite($handle, "записываем в во временный файл");
fclose($handle);

// здесь мы чего-нибудь делаем

unlink($tmpfname);
?>

Примечания

Замечание: Если PHP не может создать файл в указанной директории directory, он возвращается к директории по умолчанию вашей системы. На NTFS это также происходит в случае, если указанная директория directory содержит более 65534 файлов.

Смотрите также

  • tmpfile() - Создаёт временный файл
  • sys_get_temp_dir() - Возвращает путь к директории временных файлов
  • unlink() - Удаляет файл


Создаёт временный файл

  • « tempnam
  • touch »
  • PHP Manual
  • Функции файловой системы
  • Создаёт временный файл

tmpfile

(PHP 4, PHP 5, PHP 7, PHP 8)

tmpfile — Создаёт временный файл

Описание

tmpfile(): resource|false

Создаёт временный файл с уникальным именем, открывая его в режиме бинарного чтения и записи (w+b) и возвращает файловый указатель.

Этот файл автоматически удаляется после закрытия (например, путём вызова функции 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, PHP 8)

touch — Устанавливает время доступа и модификации файла

Описание

touch(string $filename, ?int $mtime = null, ?int $atime = null): bool

Пытается установить время доступа и модификации файла с именем filename в значение mtime. Обратите внимание, что время доступа изменяется всегда, независимо от количества аргументов.

Если файл не существует, он будет создан.

Список параметров

filename

Имя изменяемого файла.

mtime

Время изменения. Если аргумент mtime равен null, используется текущее системное время (time()).

atime

Если значение параметра не null, время доступа указанного файла будет установлено в значение atime. В обратном случае оно будет установлено в значение параметра mtime. Если же оба этих параметра равны null, то будет использовано текущее системное время.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр mtime и atime теперь допускают значение null.

Примеры

Пример #1 Пример использования функции touch()

<?php
if (touch($filename)) {
echo "Время модификации файла $filename было изменено на текущее";
} else {
echo "Простите, не удалось изменить время модификации файла ' . $filename;
}
?>

Пример #2 Использование touch() с параметром mtime

<?php
// Это время касания, установим его на час назад.
$time = time() - 3600;

// Изменяем файл
if (!touch('some_file.txt', $time)) {
echo 'Упс, что-то пошло не так...';
} else {
echo 'Изменение модификации файла прошло успешно';
}
?>

Примечания

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.


Изменяет текущую umask

  • « touch
  • unlink »
  • PHP Manual
  • Функции файловой системы
  • Изменяет текущую umask

umask

(PHP 4, PHP 5, PHP 7, PHP 8)

umask — Изменяет текущую umask

Описание

umask(?int $mask = null): int

umask() устанавливает PHP umask в значение mask & 0777 и возвращает старую umask. Если PHP используется в качестве серверного модуля, umask будет восстанавливаться после окончания каждого запроса.

Список параметров

mask

Новая umask.

Возвращаемые значения

Если параметр mask равен null, функция umask() просто возвращает текущую umask, в противном случае возвращается старая umask.

Список изменений

Версия | Описание
8.0.0 | Параметр mask теперь допускает значение null.

Примеры

Пример #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, PHP 8)

unlink — Удаляет файл

Описание

unlink(string $filename, ?resource $context = null): bool

Удаляет файл filename. Функция похожа на функцию unlink() Unix в C. При неудачном выполнении будет вызвана ошибка уровня E_WARNING.

Список параметров

filename

Путь к файлу.

Если файл является символической ссылкой, символическая ссылка будет удалена. В Windows для удаления символической ссылки на каталог вместо этого должна использоваться функция rmdir().

context

Ресурс (resource) с контекстом потока.

Возвращаемые значения

Возвращает 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 (int)
К файлу произведён доступ (чтение) (*).
IN_MODIFY (int)
Файл был изменён (*).
IN_ATTRIB (int)
Изменены метаданные (такие как permissions, mtime, и т.д.) (*).
IN_CLOSE_WRITE (int)
Файл, открытый для записи, был закрыт (*).
IN_CLOSE_NOWRITE (int)
Файл, недоступный для записи, был закрыт (*).
IN_OPEN (int)
Файл был открыт (*).
IN_MOVED_TO (int)
Файл перемещён в указанную директорию (*).
IN_MOVED_FROM (int)
Файл перемещён из указанной директории (*).
IN_CREATE (int)
Файл или директория созданы в указанной директории (*).
IN_DELETE (int)
Файл или директория удалена из указанной директории (*).
IN_DELETE_SELF (int)
Указанный файл или директория удалены.
IN_MOVE_SELF (int)
Указанный файл или директория перемещены.
IN_CLOSE (int)
Эквивалентно IN_CLOSE_WRITE | IN_CLOSE_NOWRITE.
IN_MOVE (int)
Эквивалентно IN_MOVED_FROM | IN_MOVED_TO.
IN_ALL_EVENTS (int)
Битовая маска указанных выше констант.
IN_UNMOUNT (int)
Файловая система, содержащая файл была размонтирована.
IN_Q_OVERFLOW (int)
Очередь событий переполнена (wd (дескриптор наблюдения) равен -1 для этого события).
IN_IGNORED (int)
Наблюдение было отключено вручную (поясняется inotify_rm_watch()) либо из-за отсутствия файла либо из-за размонтирования файловой системы.
IN_ISDIR (int)
Объектом события является директория.
IN_ONLYDIR (int)
Использовать только указанную директорию в качестве конечного пути (начиная с Linux 2.6.15).
IN_DONT_FOLLOW (int)
Не разыменовывать путь, если это символическая ссылка (начиная с Linux 2.6.15).
IN_MASK_ADD (int)
Добавить события в маску событий для этого пути, если она уже существует (вместо замещения маски).
IN_ONESHOT (int)
Отслеживать путь для одного события, затем удалить его из списка наблюдения.

Замечание: События, помеченные звёздочкой (*), могут происходить с файлами в наблюдаемых директориях.


Функции 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(): 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() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds
  • 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() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds
  • stream_set_blocking() - Установить блокирующий/неблокирующий режим в потоке
  • inotify_queue_len() - Возвращает число ожидающих событий в очереди


Удалить наблюдателя

  • « inotify_read
  • xattr »
  • 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


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 (int)
Установить атрибут в корневом (доверенном) пространстве имён. Требует привилегий суперпользователя.
XATTR_DONTFOLLOW (int)
Не разыменовывать символические ссылки, работать с самими ссылками.
XATTR_CREATE (int)
Функция завершится ошибкой, если расширенный атрибут уже существует.
XATTR_REPLACE (int)
Функция завершится ошибкой, если расширенный атрибут отсутствует.


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 (int)
Этот флаг обозначает, что функции xdiff_string_patch() и xdiff_file_patch() должны создавать результат путём применения патча к оригинальному контенту, таким образом, создавая новую версию файла. Это является поведением по умолчанию.
XDIFF_PATCH_REVERSE (int)
Этот флаг обозначает, что функции 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
    • EnchantBroker — Класс EnchantBroker
    • EnchantDictionary — Класс EnchantDictionary
  • Gender — Определение пола по имени
    • Введение
    • Установка и настройка
    • Примеры
    • Gender\Gender — Класс Gender\Gender
  • Gettext
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции gettext
  • iconv
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции iconv
  • intl — Функции интернационализации
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Collator — Класс Collator
    • NumberFormatter — The NumberFormatter class
    • Locale — Класс Locale
    • Normalizer — Класс Normalizer
    • MessageFormatter — Класс MessageFormatter
    • IntlCalendar — Класс IntlCalendar
    • IntlGregorianCalendar — Класс IntlGregorianCalendar
    • IntlTimeZone — Класс IntlTimeZone
    • IntlDateFormatter — Класс IntlDateFormatter
    • ResourceBundle — Класс ResourceBundle
    • Spoofchecker — Класс Spoofchecker
    • Transliterator — Класс Transliterator
    • IntlBreakIterator — Класс IntlBreakIterator
    • IntlRuleBasedBreakIterator — Класс IntlRuleBasedBreakIterator
    • IntlCodePointBreakIterator — Класс IntlCodePointBreakIterator
    • IntlDatePatternGenerator — Класс IntlDatePatternGenerator
    • IntlPartsIterator — Класс IntlPartsIterator
    • UConverter — Класс UConverter
    • Функции Grapheme
    • Функции IDN
    • IntlChar
    • IntlException — Класс исключений для ошибок intl
    • IntlIterator — Класс IntlIterator
    • Функции intl
  • Многобайтовые строки
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Краткий обзор поддерживаемых кодировок
    • Основы японских многобайтных кодировок
    • Ввод и вывод HTTP
    • Поддерживаемые кодировки символов
    • Механизм перегрузки функций
    • Требования, предъявляемые к кодировкам символов в PHP
    • Функции для работы с многобайтовыми строками
  • Pspell
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции Pspell
    • PSpell\Dictionary — Класс PSpell\Dictionary
    • PSpell\Config — Класс PSpell\Config
  • 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_add — Добавляет слово в личный словарь
    • enchant_dict_check — Проверяет, корректно ли задано слово
    • enchant_dict_describe — Возвращает информацию о словаре
    • enchant_dict_get_error — Возвращает последнюю ошибку текущей сессии проверки
    • enchant_dict_is_added — Определяет, существует ли слово в этой орфографической сессии
    • enchant_dict_is_in_session — Присутствует ли слово 'word' в сессии проверки
    • enchant_dict_quick_check — Проверить, правильно ли написано слово и предложить варианты замены
    • enchant_dict_store_replacement — Добавить исправление для слова
    • enchant_dict_suggest — Вернёт список возможных вариантов для слова с ошибкой
  • EnchantBroker — Класс EnchantBroker
  • EnchantDictionary — Класс EnchantDictionary


Введение

Модуль 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 или новее поддерживается только с PHP 8.0.0.

Также требуется » Glib 2.6 или выше. Скомпилированные библиотеки для Windows доступны по ссылке » http://ftp.gnome.org/pub/gnome/binaries/win32/glib/.


Установка

Если установлены необходимые библиотеки, то модуль можно установить с помощью опции --with-enchant[=dir] при компиляции PHP.

Пользователи Windows должны включить php_enchant.dll, чтобы использовать модуль.

Замечание: Дополнительная настройка в Windows

Для работы этого модуля системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому модулю требуются следующие файлы в переменной PATH: libenchant.dll, glib-2.dll, gmodule-2.dll.

Кроме того, необходимо скопировать хотя бы одного поставщика из lib\enchant в \usr\local\lib\enchant-2 (это абсолютный путь от корня текущего диска). До версии PHP 8.0.0, т.е. при использовании Enchant v1, поставщики должны были быть скопированы в C:\enchant_plugins, где этот путь может быть настроен путём создания значения реестра HKEY_CURRENT_USER\SOFTWARE\Enchant\Config\Module_Dir, указав в нём желаемый путь.


Типы ресурсов

До PHP 8.0.0, в этом модуле используются два типа ресурсов. Первый для брокера (менеджер бэкендов). Второй для словаря.


Предопределённые константы

LIBENCHANT_VERSION (string)
Версия libenchant. Доступно с PHP 8.0.0.
ENCHANT_MYSPELL (int)
Тип словаря MySpell. Используется с enchant_broker_get_dict_path() и enchant_broker_set_dict_path(). Объявлено устаревшим в PHP 8.0.0.
ENCHANT_ISPELL (int)
Тип словаря Ispell. Используется с enchant_broker_get_dict_path() и enchant_broker_set_dict_path(). Объявлено устаревшим в PHP 8.0.0.


Примеры

Пример #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_add — Добавляет слово в личный словарь
  • enchant_dict_check — Проверяет, корректно ли задано слово
  • enchant_dict_describe — Возвращает информацию о словаре
  • enchant_dict_get_error — Возвращает последнюю ошибку текущей сессии проверки
  • enchant_dict_is_added — Определяет, существует ли слово в этой орфографической сессии
  • 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, PHP 8, PECL enchant >= 0.1.0)

enchant_broker_describe — Перечисляет провайдеров Enchant

Описание

enchant_broker_describe(EnchantBroker $broker): array

Перечисляет провайдеров Enchant и возвращает минимальную информацию о них. Та же информация может быть получена через phpinfo().

Список параметров

broker

Провайдер Enchant, возвращаемый enchant_broker_init().

Возвращаемые значения

Возвращает массив (array) доступных провайдеров Enchant с их данными.

Список изменений

Версия | Описание
8.0.0 | broker ожидает экземпляр EnchantBroker; Ранее ожидался ресурс (resource).
8.0.0 | До этой версии функция возвращала 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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_dict_exists — Проверяет, присутствует ли словарь или нет. Используется не пустой тег

Описание

enchant_broker_dict_exists(EnchantBroker $broker, string $tag): bool

Проверяет, присутствует ли словарь или нет используя не пустой тег

Список параметров

broker

Провайдер Enchant, возвращаемый enchant_broker_init().

tag

Не пустой тег в формате LOCALE, т.е.: us_US, ch_DE и т.д.

Возвращаемые значения

Возвращает true или false.

Список изменений

Версия | Описание
8.0.0 | broker ожидает экземпляр EnchantBroker; Ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_free_dict — Освобождает ресурс словаря

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

enchant_broker_free_dict(EnchantDictionary $dictionary): bool

Освобождает словарь. Начиная с PHP 8.0.0, рекомендуется уничтожить объект вместо вызова этой функции.

Список параметров

dictionary

Словарь Enchant, возвращаемый enchant_broker_request_dict() или enchant_broker_request_pwl_dict().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | dictionary ожидает EnchantDictionary; Ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_free — Освобождает ресурс брокера и его словари

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

enchant_broker_free(EnchantBroker $broker): bool

Освобождает брокера со всеми его словарями. Начиная с PHP 8.0.0, рекомендуется уничтожить объект вместо вызова этой функции.

Список параметров

broker

Провайдер Enchant, возвращаемый enchant_broker_init().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | broker ожидает экземпляр EnchantBroker; Ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8, PECL enchant >= 1.0.1)

enchant_broker_get_dict_path — Возвращает путь словаря для заданного бэкенда

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

enchant_broker_get_dict_path(EnchantBroker $broker, int $type): string|false

Возвращает путь словаря для заданного бэкенда.

Список параметров

broker

Провайдер Enchant, возвращаемый enchant_broker_init().

type

Тип словарей, т.е. ENCHANT_MYSPELL или ENCHANT_ISPELL.

Возвращаемые значения

Возвращает путь к директории словаря в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | broker ожидает экземпляр EnchantBroker; Ранее ожидался ресурс (resource).

Примечания

Замечание:

Функция доступна, только если модуль был скомпилирован с Enchant v1.

Смотрите также

  • 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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_get_error — Возвращает последнюю ошибку брокера

Описание

enchant_broker_get_error(EnchantBroker $broker): string|false

Возвращает последнюю ошибку, возникшую на брокере.

Список параметров

broker

Провайдер Enchant, возвращаемый enchant_broker_init().

Возвращаемые значения

Возвращает строку с ошибкой, если таковая была, или false

Список изменений

Версия | Описание
8.0.0 | broker ожидает экземпляр EnchantBroker; Ранее ожидался ресурс (resource).


Создать новый объект брокера

  • « enchant_broker_get_error
  • enchant_broker_list_dicts »
  • PHP Manual
  • Функции Enchant
  • Создать новый объект брокера

enchant_broker_init

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_init — Создать новый объект брокера

Описание

enchant_broker_init(): EnchantBroker|false

Список параметров

Возвращаемые значения

Возвращает ресурс брокера или false, если возникла ошибка.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр EnchantBroker; Ранее возвращался ресурс (resource).

Смотрите также

  • enchant_broker_free() - Освобождает ресурс брокера и его словари


Возвращает список доступных словарей

  • « enchant_broker_init
  • enchant_broker_request_dict »
  • PHP Manual
  • Функции Enchant
  • Возвращает список доступных словарей

enchant_broker_list_dicts

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 1.0.1)

enchant_broker_list_dicts — Возвращает список доступных словарей

Описание

enchant_broker_list_dicts(EnchantBroker $broker): array

Возвращает список доступных словарей.

Список параметров

broker

Провайдер Enchant, возвращаемый enchant_broker_init().

Возвращаемые значения

Возвращает массив (array) доступных словарей с их данными.

Список изменений

Версия | Описание
8.0.0 | broker ожидает экземпляр EnchantBroker; Ранее ожидался ресурс (resource).
8.0.0 | До этой версии функция возвращала 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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_request_dict — Создать новый словарь используя тег

Описание

enchant_broker_request_dict(EnchantBroker $broker, string $tag): EnchantDictionary|false

Создаёт новый словарь используя не пустой языковой тег ("en_US", "ru_RU", ...)

Список параметров

broker

Провайдер Enchant, возвращаемый enchant_broker_init().

tag

Тег описания локали, к примеру en_US, ru_RU

Возвращаемые значения

Возвращает ресурс словаря в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | broker ожидает экземпляр EnchantBroker; Ранее ожидался ресурс (resource).
8.0.0 | В случае успешного выполнения функция возвращает экземпляр EnchantDictionary; Ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_request_pwl_dict — Создать словарь используя файл PWL

Описание

enchant_broker_request_pwl_dict(EnchantBroker $broker, string $filename): EnchantDictionary|false

Создаёт словарь используя файл PWL. Файл PWL - это пользовательский файл со словами, по одному слову на строку.

Список параметров

broker

Провайдер Enchant, возвращаемый enchant_broker_init().

filename

Путь к файлу PWL. Если файл отсутствует, то будет создан новый с таким именем, если возможно.

Возвращаемые значения

Возвращает ресурс словаря в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | broker ожидает экземпляр EnchantBroker; Ранее ожидался ресурс (resource).
8.0.0 | В случае успешного выполнения функция возвращает экземпляр EnchantDictionary; Ранее возвращался ресурс (resource).

Смотрите также

  • 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, PHP 8, PECL enchant >= 1.0.1)

enchant_broker_set_dict_path — Установить путь для заданного бэкенда

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

enchant_broker_set_dict_path(EnchantBroker $broker, int $type, string $path): bool

Установить путь для заданного бэкенда.

Список параметров

broker

Провайдер Enchant, возвращаемый enchant_broker_init().

type

Тип словарей, т.е. ENCHANT_MYSPELL или ENCHANT_ISPELL.

path

Путь к директории со словарями.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | broker ожидает экземпляр EnchantBroker; Ранее ожидался ресурс (resource).

Примечания

Замечание:

Функция доступна, только если модуль был скомпилирован с Enchant v1.

Смотрите также

  • 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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_set_ordering — Задать предпочтения по выбору словарей для языка

Описание

enchant_broker_set_ordering(EnchantBroker $broker, string $tag, string $ordering): bool

Задаёт предпочтения по выбору словарей для языка, описанный с помощью тега 'tag'. Порядок задаётся с помощью списка имён провайдеров, разделённых запятыми. В особых случаях можно использовать тег "*" для определения порядка для всех языков, для которых этот порядок не задаётся явно.

Список параметров

broker

Провайдер Enchant, возвращаемый enchant_broker_init().

tag

Языковой тег. В особых случаях можно использовать тег "*" для определения порядка для всех языков, для которых этот порядок не задаётся явно.

ordering

Список имён провайдеров, разделённых запятыми

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | broker ожидает экземпляр EnchantBroker; Ранее ожидался ресурс (resource).


Добавить слово в список персональных слов

  • « enchant_broker_set_ordering
  • enchant_dict_add_to_session »
  • PHP Manual
  • Функции Enchant
  • Добавить слово в список персональных слов

enchant_dict_add_to_personal

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_add_to_personal — Добавить слово в список персональных слов

Внимание

Псевдоним объявлен УСТАРЕВШИМ в PHP 8.0.0.

Описание

Функция является псевдонимом: enchant_dict_add().


Добавить слово в текущую сессию проверки

  • « enchant_dict_add_to_personal
  • enchant_dict_add »
  • PHP Manual
  • Функции Enchant
  • Добавить слово в текущую сессию проверки

enchant_dict_add_to_session

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_add_to_session — Добавить слово в текущую сессию проверки

Описание

enchant_dict_add_to_session(EnchantDictionary $dictionary, string $word): void

Добавляет слово в заданный словарь. Слово будет присутствовать только в текущей сессии проверки.

Список параметров

dictionary

Словарь Enchant, возвращаемый enchant_broker_request_dict() или enchant_broker_request_pwl_dict().

word

Слово для добавления

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | dictionary ожидает экземпляр EnchantDictionary; Ранее ожидался ресурс (resource).

Смотрите также

  • enchant_broker_request_dict() - Создать новый словарь используя тег


Добавляет слово в личный словарь

  • « enchant_dict_add_to_session
  • enchant_dict_check »
  • PHP Manual
  • Функции Enchant
  • Добавляет слово в личный словарь

enchant_dict_add

(PHP 8)

enchant_dict_add — Добавляет слово в личный словарь

Описание

enchant_dict_add(EnchantDictionary $dictionary, string $word): void

Добавляет слово в личный словарь.

Список параметров

dictionary

Словарь Enchant, возвращаемый enchant_broker_request_dict() или enchant_broker_request_pwl_dict().

word

Слово, которое необходимо добавить

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | dictionary ожидает экземпляр EnchantDictionary; Ранее ожидался ресурс (resource).

Пример #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($dict, $word);

enchant_broker_free($broker);

?>

Смотрите также

  • enchant_broker_request_pwl_dict() - Создать словарь используя файл PWL
  • enchant_broker_request_dict() - Создать новый словарь используя тег


Проверяет, корректно ли задано слово

  • « enchant_dict_add
  • enchant_dict_describe »
  • PHP Manual
  • Функции Enchant
  • Проверяет, корректно ли задано слово

enchant_dict_check

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_check — Проверяет, корректно ли задано слово

Описание

enchant_dict_check(EnchantDictionary $dictionary, string $word): bool

Возвращает true, если слово написано без ошибок или false, если с ошибками.

Список параметров

dictionary

Словарь Enchant, возвращаемый enchant_broker_request_dict() или enchant_broker_request_pwl_dict().

word

Слово для проверки

Возвращаемые значения

Возвращает true, если слово написано без ошибок или false, если с ошибками.

Список изменений

Версия | Описание
8.0.0 | dictionary ожидает экземпляр EnchantDictionary; Ранее ожидался ресурс (resource).


Возвращает информацию о словаре

  • « enchant_dict_check
  • enchant_dict_get_error »
  • PHP Manual
  • Функции Enchant
  • Возвращает информацию о словаре

enchant_dict_describe

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_describe — Возвращает информацию о словаре

Описание

enchant_dict_describe(EnchantDictionary $dictionary): array

Возвращает информацию о словаре.

Список параметров

dictionary

Словарь Enchant, возвращаемый enchant_broker_request_dict() или enchant_broker_request_pwl_dict().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | dictionary ожидает экземпляр EnchantDictionary; Ранее ожидался ресурс (resource).
8.0.0 | До этой версии функция возвращала 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_added »
  • PHP Manual
  • Функции Enchant
  • Возвращает последнюю ошибку текущей сессии проверки

enchant_dict_get_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_get_error — Возвращает последнюю ошибку текущей сессии проверки

Описание

enchant_dict_get_error(EnchantDictionary $dictionary): string|false

Возвращает последнюю ошибку текущей сессии проверки.

Список параметров

dictionary

Словарь Enchant, возвращаемый enchant_broker_request_dict() или enchant_broker_request_pwl_dict().

Возвращаемые значения

Возвращает строку с ошибкой или false, если таковой нет.

Список изменений

Версия | Описание
8.0.0 | dictionary ожидает экземпляр EnchantDictionary; Ранее ожидался ресурс (resource).


Определяет, существует ли слово в этой орфографической сессии

  • « enchant_dict_get_error
  • enchant_dict_is_in_session »
  • PHP Manual
  • Функции Enchant
  • Определяет, существует ли слово в этой орфографической сессии

enchant_dict_is_added

(PHP 8)

enchant_dict_is_added — Определяет, существует ли слово в этой орфографической сессии

Описание

enchant_dict_is_added(EnchantDictionary $dictionary, string $word): bool

Определяет, существует ли уже слово в текущей сессии.

Список параметров

dictionary

Словарь Enchant, возвращаемый enchant_broker_request_dict() или enchant_broker_request_pwl_dict().

word

Слово для поиска

Возвращаемые значения

Возвращает true, если слово уже существует, в противном случае возвращает false

Список изменений

Версия | Описание
8.0.0 | dictionary ожидает экземпляр EnchantDictionary; Ранее ожидался ресурс (resource).

Смотрите также

  • enchant_dict_add_to_session() - Добавить слово в текущую сессию проверки


Присутствует ли слово 'word' в сессии проверки

  • « enchant_dict_is_added
  • enchant_dict_quick_check »
  • PHP Manual
  • Функции Enchant
  • Присутствует ли слово 'word' в сессии проверки

enchant_dict_is_in_session

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_is_in_session — Присутствует ли слово 'word' в сессии проверки

Внимание

Псевдоним объявлен УСТАРЕВШИМ в PHP 8.0.0.

Описание

Функция является псевдонимом: enchant_dict_is_added().


Проверить, правильно ли написано слово и предложить варианты замены

  • « enchant_dict_is_in_session
  • enchant_dict_store_replacement »
  • PHP Manual
  • Функции Enchant
  • Проверить, правильно ли написано слово и предложить варианты замены

enchant_dict_quick_check

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant:0.2.0-1.0.1)

enchant_dict_quick_check — Проверить, правильно ли написано слово и предложить варианты замены

Описание

enchant_dict_quick_check(EnchantDictionary $dictionary, string $word, array &$suggestions = null): bool

Если слово корректно, то вернёт true, в ином случае вернёт false. Если задан параметр suggestions, то он будет заполнен вариантами замены.

Список параметров

dictionary

Словарь Enchant, возвращаемый enchant_broker_request_dict() или enchant_broker_request_pwl_dict().

word

Слово для проверки

suggestions

Если проверка провалилась, то эта переменная будет содержать массив с вариантами замены

Возвращаемые значения

Возвращает true, если слово написано правильно или false, если нет

Список изменений

Версия | Описание
8.0.0 | dictionary ожидает экземпляр EnchantDictionary; Ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_store_replacement — Добавить исправление для слова

Описание

enchant_dict_store_replacement(EnchantDictionary $dictionary, string $misspelled, string $correct): void

Добавить исправление 'cor' для 'mis'. Обратите внимание, что если вы замените @mis на @cor, то в будущем вхождения @mis будут заменяться на @cor. Соответственно это может поднять @cor вверх в списке возможных замен.

Список параметров

dictionary

Словарь Enchant, возвращаемый enchant_broker_request_dict() или enchant_broker_request_pwl_dict().

misspelled

Слово для исправления

correct

Корректное слово

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | dictionary ожидает экземпляр EnchantDictionary; Ранее ожидался ресурс (resource).


Вернёт список возможных вариантов для слова с ошибкой

  • « enchant_dict_store_replacement
  • EnchantBroker »
  • PHP Manual
  • Функции Enchant
  • Вернёт список возможных вариантов для слова с ошибкой

enchant_dict_suggest

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_suggest — Вернёт список возможных вариантов для слова с ошибкой

Описание

enchant_dict_suggest(EnchantDictionary $dictionary, string $word): array

Список параметров

dictionary

Словарь Enchant, возвращаемый enchant_broker_request_dict() или enchant_broker_request_pwl_dict().

word

Слово для проверки.

Возвращаемые значения

Вернёт массив предположений для заданного с ошибкой слова.

Список изменений

Версия | Описание
8.0.0 | dictionary ожидает экземпляр EnchantDictionary; Ранее ожидался ресурс (resource).

Примеры

Пример #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() - Проверить, правильно ли написано слово и предложить варианты замены


Класс EnchantBroker

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы enchant_broker в PHP 8.0.0.

Обзор классов

final class EnchantBroker {
}


Класс EnchantDictionary

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы enchant_dict в PHP 8.0.0.

Обзор классов

final class EnchantDictionary {
}


Определение пола по имени

  • Введение
  • Установка и настройка
    • Установка
  • Примеры
    • Пример использования
  • 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)

Введение

Обзор классов

class Gender\Gender {
/* Константы */
const int IS_FEMALE = 70;
const int IS_MOSTLY_FEMALE = 102;
const int IS_MALE = 77;
const int IS_MOSTLY_MALE = 109;
const int IS_UNISEX_NAME = 63;
const int IS_A_COUPLE = 67;
const int NAME_NOT_FOUND = 32;
const int ERROR_IN_NAME = 69;
const int ANY_COUNTRY = 0;
const int BRITAIN = 1;
const int IRELAND = 2;
const int USA = 3;
const int SPAIN = 4;
const int PORTUGAL = 5;
const int ITALY = 6;
const int MALTA = 7;
const int FRANCE = 8;
const int BELGIUM = 9;
const int LUXEMBOURG = 10;
const int NETHERLANDS = 11;
const int GERMANY = 12;
const int EAST_FRISIA = 13;
const int AUSTRIA = 14;
const int SWISS = 15;
const int ICELAND = 16;
const int DENMARK = 17;
const int NORWAY = 18;
const int SWEDEN = 19;
const int FINLAND = 20;
const int ESTONIA = 21;
const int LATVIA = 22;
const int LITHUANIA = 23;
const int POLAND = 24;
const int CZECH_REP = 25;
const int SLOVAKIA = 26;
const int HUNGARY = 27;
const int ROMANIA = 28;
const int BULGARIA = 29;
const int BOSNIA = 30;
const int CROATIA = 31;
const int KOSOVO = 32;
const int MACEDONIA = 33;
const int MONTENEGRO = 34;
const int SERBIA = 35;
const int SLOVENIA = 36;
const int ALBANIA = 37;
const int GREECE = 38;
const int RUSSIA = 39;
const int BELARUS = 40;
const int MOLDOVA = 41;
const int UKRAINE = 42;
const int ARMENIA = 43;
const int AZERBAIJAN = 44;
const int GEORGIA = 45;
const int KAZAKH_UZBEK = 46;
const int TURKEY = 47;
const int ARABIA = 48;
const int ISRAEL = 49;
const int CHINA = 50;
const int INDIA = 51;
const int JAPAN = 52;
const int KOREA = 53;
/* Методы */
public __construct(string $dsn = ?)
public connect(string $dsn): bool
public country(int $country): array|false
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|false

Возвращает текстовое представление страны из констант класса 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, PHP 8)

bind_textdomain_codeset — Устанавливает или получает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена

Описание

bind_textdomain_codeset(string $domain, ?string $codeset): string|false

Функция bind_textdomain_codeset() устанавливает или получает кодировку, в которой будут возвращаться сообщения из domain, такими функциями как gettext().

Список параметров

domain

Домен.

codeset

Кодировка. Если null, возвращается текущая установленная кодировка.

Возвращаемые значения

Строка в случае успешного выполнения.

Список изменений

Версия | Описание
8.0.3 | codeset теперь допускает значение null. Раньше было невозможно получить текущую установленную кодировку.

Примечания

Замечание:

Информация bind_textdomain_codeset() сохраняется для каждого процесса, а не для потока.


Устанавливает или получает путь для домена

  • « bind_textdomain_codeset
  • dcgettext »
  • PHP Manual
  • Функции gettext
  • Устанавливает или получает путь для домена

bindtextdomain

(PHP 4, PHP 5, PHP 7, PHP 8)

bindtextdomain — Устанавливает или получает путь для домена

Описание

bindtextdomain(string $domain, ?string $directory): string|false

Функция bindtextdomain() устанавливает или получает путь для домена.

Список параметров

domain

Домен.

directory

Путь к директории. Пустая строка означает текущий каталог. Если null, возвращается текущий установленный каталог.

Возвращаемые значения

Полный путь для домена, установленного параметром domain или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.3 | directory теперь допускает значение null. Раньше было невозможно получить текущий установленный каталог.

Примеры

Пример #1 Пример использования bindtextdomain()

<?php

$domain = 'myapp';
echo bindtextdomain($domain, '/usr/share/myapp/locale');

?>

Результат выполнения данного примера:

/usr/share/myapp/locale

Примечания

Замечание:

Информация bindtextdomain() сохраняется для каждого процесса, а не для потока.


Переопределяет одно сообщение в домене

  • « bindtextdomain
  • dcngettext »
  • PHP Manual
  • Функции gettext
  • Переопределяет одно сообщение в домене

dcgettext

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

dcngettext — Версия dcgettext для множественного числа

Описание

dcngettext(
string $domain,
string $singular,
string $plural,
int $count,
int $category
): string

Данная функция позволяет переопределить одно сообщение с использованием множественного числа в текущем домене.

Список параметров

domain

Домен.

singular

plural

count

category

Возвращаемые значения

В случае успешного выполнения возвращает строку (string).

Смотрите также

  • ngettext() - Версия gettext для сообщений во множественном числе


Переопределяет текущий домен для одного сообщения

  • « dcngettext
  • dngettext »
  • PHP Manual
  • Функции gettext
  • Переопределяет текущий домен для одного сообщения

dgettext

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

dngettext — Версия dgettext для множественного числа

Описание

dngettext(
string $domain,
string $singular,
string $plural,
int $count
): string

Функция dngettext() позволяет переопределить текущий домен domain для одного сообщения во множественном числе.

Список параметров

domain

Домен.

singular

plural

count

Возвращаемые значения

В случае успешного выполнения возвращает строку (string).

Смотрите также

  • ngettext() - Версия gettext для сообщений во множественном числе


Ищет сообщение в текущем домене

  • « dngettext
  • ngettext »
  • PHP Manual
  • Функции gettext
  • Ищет сообщение в текущем домене

gettext

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

ngettext — Версия gettext для сообщений во множественном числе

Описание

ngettext(string $singular, string $plural, int $count): string

Версия gettext() для сообщений во множественном числе. Некоторые языки имеют больше одной формы сообщения для разных значений количества.

Список параметров

singular

Идентификатор сообщения в единственном числе.

plural

Идентификатор сообщения во множественном числе.

count

Число (например количество элементов) для определения, какую грамматическую форму использовать.

Возвращаемые значения

Возвращает корректную форму сообщения во множественном числе, идентифицируемых по параметрам singular и plural для количества count.

Примеры

Пример #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, PHP 8)

textdomain — Устанавливает домен по умолчанию

Описание

textdomain(?string $domain): string

Данная функция устанавливает домен, в котором будет производиться поиск при вызове функции gettext(), обычно называется именем приложения.

Список параметров

domain

Новый домен сообщений, или null для получения текущего значения без его изменения.

Возвращаемые значения

В случае успешного выполнения функция возвращает текущий домен сообщений, после возможного его изменения.

Примечания

Замечание:

Информация textdomain() сохраняется для каждого процесса, а не для потока.


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 и новее нужно оставлять эту опцию пустой и использовать вместо неё input_encoding.

iconv.output_encoding string
Внимание

Данная возможность была объявлена УСТАРЕВШЕЙ, начиная с PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

В PHP 5.6 и новее нужно оставлять эту опцию пустой и использовать вместо неё output_encoding.

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 | int | Битовая маска, используемая в iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR | int | Битовая маска, используемая в 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, PHP 8)

iconv_get_encoding — Получает текущее значение настроек преобразования кодировок

Описание

iconv_get_encoding(string $type = "all"): array|string|false

Возвращает внутренние параметры конфигурации модуля 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, PHP 8)

iconv_mime_decode_headers — Декодирует несколько полей заголовка MIME

Описание

iconv_mime_decode_headers(string $headers, int $mode = 0, ?string $encoding = null): array|false

Декодирует несколько полей заголовка MIME за один раз.

Список параметров

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() будет пытаться игнорировать любые ошибки и продолжать обработку текущего заголовка.

encoding

Необязательный параметр encoding указывает кодировку, в которой будет представлен результат. Если опущен, будет использовано значение директивы iconv.internal_encoding.

Возвращаемые значения

В случае успешного выполнения возвращает ассоциативный массив с полями MIME-заголовков, указанных параметром headers, или false в случае возникновения ошибки.

Каждый ключ элемента возвращаемого массива представляет собой отдельное имя поля, а сам элемент - его значение. Если в заголовке существует несколько полей с одинаковым именем, iconv_mime_decode_headers() автоматически помещает их в подмассив с числовыми индексами в порядке их обработки. Обратите внимание, что имена заголовков не нечувствительны к регистру.

Список изменений

Версия | Описание
8.0.0 | encoding теперь допускает значение null.

Примеры

Пример #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, PHP 8)

iconv_mime_decode — Декодирует поле MIME-заголовка

Описание

iconv_mime_decode(string $string, int $mode = 0, ?string $encoding = null): string|false

Декодирует поле MIME-заголовка.

Список параметров

string

Закодированный заголовок в виде строки.

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() будет пытаться пропускать грамматические ошибки и продолжать обработку заголовка.

encoding

Необязательный аргумент encoding задаёт набор символов, в котором будет представлен результат. Если аргумент опущен, будет использоваться iconv.internal_encoding.

Возвращаемые значения

Возвращает декодированный MIME-заголовок в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | encoding теперь допускает значение null.

Примеры

Пример #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, PHP 8)

iconv_mime_encode — Создаёт поле MIME-заголовка

Описание

iconv_mime_encode(string $field_name, string $field_value, array $options = []): string|false

Создаёт и возвращает корректное поле MIME-заголовка в виде строки вида:

Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
В примере выше "Subject" является именем поля, а часть строки, начиная с "=?ISO-8859-1?..." - его значение.

Список параметров

field_name

Имя поля.

field_value

Значение поля.

options

Есть возможность контролировать поведение функции iconv_mime_encode() посредством передачи массива с настройками в качестве третьего аргумента options. Возможные значения этого массива, поддерживаемые функцией 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 | int | Устанавливает максимальную длину строк заголовка. Если результирующий заголовок окажется длиннее этой величины, функция его разрежет на несколько строк в соответствии с » Форматом интернет сообщений - 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, PHP 8)

iconv_set_encoding — Устанавливает текущей настройки для преобразования символов кодировки

Описание

iconv_set_encoding(string $type, string $encoding): bool

Изменяет значение указанной параметром type внутренней переменной конфигурации на encoding.

Список параметров

type

Значение type может быть одним из приведённых ниже:

  • input_encoding
  • output_encoding
  • internal_encoding

encoding

Набор символов.

Возвращаемые значения

Возвращает 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, PHP 8)

iconv_strlen — Возвращает количество символов в строке

Описание

iconv_strlen(string $string, ?string $encoding = null): int|false

В отличие от strlen(), iconv_strlen() учитывает кодировку строки. Длина string не обязательно будет соответствовать количеству байт в ней, так как в различных кодировках различные символы кодируются различным количеством байт, например, юникод может быть и двух-, и четырёхбайтным.

Список параметров

string

Строка.

encoding

Если параметр encoding опущен, предполагается, что кодировка строки string эквивалентна значению iconv.internal_encoding.

Возвращаемые значения

Возвращает количество символов в string как целое число или false в случае возникновения ошибки при кодировании.

Список изменений

Версия | Описание
8.0.0 | encoding теперь допускает значение null.

Смотрите также

  • grapheme_strlen() - Получает длину строки в единицах графемы
  • mb_strlen() - Получает длину строки
  • strlen() - Возвращает длину строки


Возвращает позицию первого вхождения подстроки

  • « iconv_strlen
  • iconv_strrpos »
  • PHP Manual
  • Функции iconv
  • Возвращает позицию первого вхождения подстроки

iconv_strpos

(PHP 5, PHP 7, PHP 8)

iconv_strpos — Возвращает позицию первого вхождения подстроки

Описание

iconv_strpos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

Возвращает позицию первого вхождения подстроки needle в строке haystack.

В отличие от strpos(), iconv_strpos() возвращает смещение перед искомой строкой в символах, а не в байтах. Количество символов трактуется в зависимости от указанной параметром encoding кодировки.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Искомая подстрока.

offset

Необязательный параметр offset позволяет указать, с какого по счёту символа строки начинать поиск. Если указано отрицательное значение, то смещение будет отсчитываться с конца строки.

encoding

Если параметр encoding не указан, то подразумевается, что string имеет кодировку iconv.internal_encoding.

Если haystack или needle не являются строками, они будут преобразованы в строку и применены как код символа.

Возвращаемые значения

Возвращает номер позиции первого вхождения строки needle в haystack.

Если строка needle не найдена, iconv_strpos() возвращает false.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.0.0 | encoding теперь допускает значение null.
7.1.0 | Поддержка отрицательных значений offset.

Смотрите также

  • strpos() - Возвращает позицию первого вхождения подстроки
  • iconv_strrpos() - Возвращает позицию последнего вхождения подстроки
  • mb_strpos() - Поиск позиции первого вхождения одной строки в другую


Возвращает позицию последнего вхождения подстроки

  • « iconv_strpos
  • iconv_substr »
  • PHP Manual
  • Функции iconv
  • Возвращает позицию последнего вхождения подстроки

iconv_strrpos

(PHP 5, PHP 7, PHP 8)

iconv_strrpos — Возвращает позицию последнего вхождения подстроки

Описание

iconv_strrpos(string $haystack, string $needle, ?string $encoding = null): int|false

Находит последнюю позицию подстроки needle в строке haystack.

В отличие от strrpos(), iconv_strrpos() возвращает смещение перед искомой строкой в символах, а не в байтах. Количество символов трактуется в зависимости от указанной параметром encoding кодировки.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Искомая подстрока.

encoding

Если параметр encoding не указан, то подразумевается, что string имеет кодировку iconv.internal_encoding.

Если haystack или needle не являются строками, они будут преобразованы в строку и применены как код символа.

Возвращаемые значения

Возвращает номер позиции последнего вхождения строки needle в haystack.

Если строка needle не найдена, iconv_strrpos() возвращает false.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.0.0 | encoding теперь допускает значение null.

Смотрите также

  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • iconv_strpos() - Возвращает позицию первого вхождения подстроки
  • mb_strrpos() - Поиск позиции последнего вхождения одной строки в другую


Получение части строки

  • « iconv_strrpos
  • iconv »
  • PHP Manual
  • Функции iconv
  • Получение части строки

iconv_substr

(PHP 5, PHP 7, PHP 8)

iconv_substr — Получение части строки

Описание

iconv_substr(
string $string,
int $offset,
?int $length = null,
?string $encoding = null
): string|false

Получает часть строки string, определённую параметрами offset и length.

Список параметров

string

Изначальная строка.

offset

Если offset неотрицателен, iconv_substr() получает часть строки string начиная с символа с порядковым номером offset (нумерация начинается с нуля).

Если offset отрицателен, iconv_substr() получает часть строки начиная с позиции, отстоящую от конца строки string на offset символов.

length

Если length задан и положителен, возвращаемое значение содержит не более length символов, начиная с offset (зависит от длины строки string).

Если указан отрицательный length, iconv_substr() получает часть строки string, начиная с offset символа и до символа, отстоящего от конца строки на length символов. В случае, если offset также отрицателен, стартовая позиция вычисляется заранее в соответствии с вышеописанным правилом.

encoding

Если параметр encoding не указан, предполагается, что строка string имеет кодировку iconv.internal_encoding.

Обратите внимание, что и offset, и length основываются на размере символа, рассчитанного исходя из кодировки текста (encoding), в то время как схожая функция substr() всегда рассматривает их побайтовое смещение.

Возвращаемые значения

Возвращает часть строки string, определённую параметрами offset и length.

Если строка string имеет меньшую длину, чем параметр offset, будет возвращено false. Если string имеет длину равную offset, будет возвращена пустая строка.

Список изменений

Версия | Описание
8.0.0 | length и encoding теперь допускают значение null.
7.0.11 | Если string имеет длину равную 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, PHP 8)

iconv — Преобразует строку из одной кодировки символов в другую

Описание

iconv(string $from_encoding, string $to_encoding, string $string): string|false

Преобразует строку string из кодировки from_encoding в to_encoding.

Список параметров

from_encoding

Текущая кодировка, используемая для интерпретации параметра string.

to_encoding

Требуемая на выходе кодировка.

Если к параметру to_encoding добавлена строка //TRANSLIT, включается режим транслитерации. Это значит, что в случае, если символ не может быть представлен в требуемой кодировке, он может быть заменён одним или несколькими похожими символами. Если добавлена строка //IGNORE, то символы, которые не могут быть представлены в требуемой кодировке, будут удалены. В случае отсутствия вышеуказанных параметров будет сгенерирована ошибка уровня E_NOTICE, а функция вернёт false.

Предостережение

Как будет работать //TRANSLIT и будет ли вообще, зависит от системной реализации iconv() (ICONV_IMPL). Известны некоторые реализации, которые просто игнорируют //TRANSLIT, так что конвертация для символов некорректных для to_encoding скорее всего закончится ошибкой.

string

Строка (string) для преобразования.

Возвращаемые значения

Возвращает преобразованную строку или false в случае возникновения ошибки.

Примеры

Пример #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. Если параметр from_encoding или from_encoding не поддерживается в текущей системе, будет возвращено значение false.

Смотрите также

  • mb_convert_encoding() - Преобразует строку из одной кодировки символов в другую
  • UConverter::transcode() - Преобразует строку из одной кодировки символов в другую


Преобразует символы из текущей кодировки в кодировку выходного буфера

  • « iconv
  • intl »
  • PHP Manual
  • Функции iconv
  • Преобразует символы из текущей кодировки в кодировку выходного буфера

ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

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 — Сортирует массив с сохранением ассоциации индекса
    • Collator::compare — Сравнивает две строки Unicode
    • Collator::__construct — Создаёт новый экземпляр Collator
    • Collator::create — Создаёт новый экземпляр Collator
    • Collator::getAttribute — Получает значение атрибута сопоставления
    • Collator::getErrorCode — Получает последний код ошибки Collator
    • Collator::getErrorMessage — Получает текст для кода последней ошибки Collator
    • Collator::getLocale — Получает название локали для Collator
    • Collator::getSortKey — Получает ключ сортировки строки
    • Collator::getStrength — Получает текущую силу сопоставления
    • Collator::setAttribute — Устанавливает атрибут сопоставления
    • Collator::setStrength — Устанавливает силу сопоставления
    • Collator::sortWithSortKeys — Сортирует массив с использованием указанного Collator и ключей сортировки
    • Collator::sort — Сортирует массив с использованием указанного средства сортировки
  • NumberFormatter — The NumberFormatter class
    • NumberFormatter::create — Создаёт средство форматирования чисел
    • NumberFormatter::formatCurrency — Форматирует значение валюты
    • NumberFormatter::format — Форматирует число
    • NumberFormatter::getAttribute — Получает атрибут
    • NumberFormatter::getErrorCode — Получает последний код ошибки средства форматирования
    • NumberFormatter::getErrorMessage — Получает последнее сообщение об ошибке средства форматирования
    • NumberFormatter::getLocale — Получает локаль средства форматирования
    • NumberFormatter::getPattern — Получает шаблон средства форматирования
    • NumberFormatter::getSymbol — Получает значение символа
    • NumberFormatter::getTextAttribute — Получает текстовый атрибут
    • NumberFormatter::parseCurrency — Разбирает номер валюты
    • NumberFormatter::parse — Разбирает число
    • NumberFormatter::setAttribute — Устанавливает атрибут
    • NumberFormatter::setPattern — Устанавливает шаблон средства форматирования
    • NumberFormatter::setSymbol — Устанавливает значение символа
    • NumberFormatter::setTextAttribute — Устанавливает текстовый атрибут
  • 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 — Класс MessageFormatter
    • MessageFormatter::create — Создаёт средство форматирования сообщений
    • MessageFormatter::formatMessage — Быстро форматирует сообщение
    • MessageFormatter::format — Форматирует сообщение
    • MessageFormatter::getErrorCode — Возвращает код ошибки последней операции
    • MessageFormatter::getErrorMessage — Возвращает текст ошибки последней операции
    • MessageFormatter::getLocale — Возвращает локаль, для которой было создано средство форматирования
    • MessageFormatter::getPattern — Возвращает шаблон, используемый средством форматирования
    • MessageFormatter::parseMessage — Быстро разбирает входную строку
    • MessageFormatter::parse — Разбирает строку согласно шаблону
    • MessageFormatter::setPattern — Устанавливает шаблон, используемый средством форматирования
  • IntlCalendar — Класс IntlCalendar
    • IntlCalendar::add — Добавляет количество (со знаком) времени в поле
    • IntlCalendar::after — Определяет, время этого объекта позже времени переданного объекта
    • IntlCalendar::before — Определяет, время этого объекта раньше времени переданного объекта
    • IntlCalendar::clear — Очищает поле или все поля
    • IntlCalendar::__construct — Закрытый конструктор для запрета создания экземпляров
    • IntlCalendar::createInstance — Создаёт новый объект IntlCalendar
    • IntlCalendar::equals — Сравнивает время двух объектов IntlCalendar на предмет равенства
    • IntlCalendar::fieldDifference — Вычисляет разницу между заданным временем и временем объекта
    • IntlCalendar::fromDateTime — Создаёт IntlCalendar из объекта или строки DateTime
    • IntlCalendar::get — Получает значение поля
    • IntlCalendar::getActualMaximum — Максимальное значение для поля с учётом текущего времени объекта
    • IntlCalendar::getActualMinimum — Минимальное значение для поля с учётом текущего времени объекта
    • IntlCalendar::getAvailableLocales — Получает массив языковых стандартов, для которых есть данные
    • IntlCalendar::getDayOfWeekType — Сообщает, является ли день будним, выходным или днём с переходом между ними
    • IntlCalendar::getErrorCode — Получает последний код ошибки объекта
    • IntlCalendar::getErrorMessage — Получает последнее сообщение об ошибке для объекта
    • IntlCalendar::getFirstDayOfWeek — Получает первый день недели для языкового стандарта календаря
    • IntlCalendar::getGreatestMinimum — Получает наибольшее локальное минимальное значение поля
    • IntlCalendar::getKeywordValuesForLocale — Получает набор значений ключевых слов языкового стандарта
    • IntlCalendar::getLeastMaximum — Получает наименьший локальный максимум для поля
    • IntlCalendar::getLocale — Получает языковой стандарт, связанный с объектом
    • IntlCalendar::getMaximum — Получает глобальное максимальное значение поля
    • IntlCalendar::getMinimalDaysInFirstWeek — Получает минимальное количество дней, которое может быть в первой неделе в году или месяце
    • IntlCalendar::getMinimum — Получает глобальное минимальное значение поля
    • IntlCalendar::getNow — Получает число, представляющее текущее время
    • IntlCalendar::getRepeatedWallTimeOption — Получает поведение для обработки повторяющегося времени процессора
    • IntlCalendar::getSkippedWallTimeOption — Получает поведение для обработки пропущенного времени процессора
    • IntlCalendar::getTime — Получает время, представленное в данный момент объектом
    • IntlCalendar::getTimeZone — Получает часовой пояс объекта
    • IntlCalendar::getType — Получает тип календаря
    • IntlCalendar::getWeekendTransition — Получает время дня, когда выходные начинаются или заканчиваются
    • IntlCalendar::inDaylightTime — Определяет, переходит ли время объекта на летнее время
    • IntlCalendar::isEquivalentTo — Определяет, равен ли другой календарь, но для другого времени
    • IntlCalendar::isLenient — Определяет, является ли интерпретация даты/времени мягкой
    • IntlCalendar::isSet — Определяет, установлено ли поле
    • IntlCalendar::isWeekend — Определяет, приходятся ли определённые дата/время на выходные
    • IntlCalendar::roll — Добавляет значение в поле без переноса в более важные поля
    • IntlCalendar::set — Устанавливает поле времени или сразу несколько общих полей
    • IntlCalendar::setDate — Set a date fields
    • IntlCalendar::setDateTime — Set a date and time fields
    • IntlCalendar::setFirstDayOfWeek — Устанавливает день, который является началом недели
    • IntlCalendar::setLenient — Устанавливает, должна ли интерпретация даты/времени быть мягкой
    • IntlCalendar::setMinimalDaysInFirstWeek — Устанавливает минимальное количество дней, которое может быть в первой неделе в году или месяце
    • IntlCalendar::setRepeatedWallTimeOption — Устанавливает поведение для обработки повторяющегося времени процессора при отрицательных переходах смещения часового пояса
    • IntlCalendar::setSkippedWallTimeOption — Устанавливает поведение для обработки пропущенного времени процессора при положительных переходах смещения часового пояса
    • IntlCalendar::setTime — Устанавливает календарное время в миллисекундах с начала эпохи Unix
    • IntlCalendar::setTimeZone — Устанавливает часовой пояс, используемый календарём
    • IntlCalendar::toDateTime — Преобразует IntlCalendar в объект DateTime
  • IntlGregorianCalendar — Класс IntlGregorianCalendar
    • IntlGregorianCalendar::__construct — Конструктор класса григорианского календаря
    • IntlGregorianCalendar::createFromDate — Create a new IntlGregorianCalendar instance from date
    • IntlGregorianCalendar::createFromDateTime — Create a new IntlGregorianCalendar instance from date and time
    • IntlGregorianCalendar::getGregorianChange — Получает дату изменения григорианского календаря
    • IntlGregorianCalendar::isLeapYear — Определяет, является ли данный год високосным
    • IntlGregorianCalendar::setGregorianChange — Устанавливает дату изменения в григорианском календаре
  • IntlTimeZone — Класс IntlTimeZone
    • IntlTimeZone::__construct — Конструктор класса, запрещающий прямое создание экземпляра
    • IntlTimeZone::countEquivalentIDs — Получить количество идентификаторов в группе похожих часовых поясов, включая данный идентификатор
    • IntlTimeZone::createDefault — Создать новую копию часового пояса по умолчанию для текущего хоста
    • IntlTimeZone::createEnumeration — Получить перечисление из идентификаторов часовых поясов по указанной стране или смещению
    • IntlTimeZone::createTimeZone — Создать объект часового пояса по заданному идентификатору
    • IntlTimeZone::createTimeZoneIDEnumeration — Получить перечисление из идентификаторов системных часовых поясов по заданным условиям фильтрации
    • IntlTimeZone::fromDateTimeZone — Создать объект часового пояса из DateTimeZone
    • IntlTimeZone::getCanonicalID — Получить канонический системный идентификатор часового пояса или нормализованный пользовательский идентификатор часового пояса по заданному идентификатору часового пояса
    • IntlTimeZone::getDisplayName — Получить имя часового пояса для отображения пользователю
    • IntlTimeZone::getDSTSavings — Получить количество миллисекунд, которое нужно добавить к местному поясному времени, чтобы получить летнее время
    • IntlTimeZone::getEquivalentID — Получить идентификатор в группе похожих часовых поясов, включая заданный идентификатор
    • IntlTimeZone::getErrorCode — Получить последний код об ошибке в объекте
    • IntlTimeZone::getErrorMessage — Получить последнее сообщение об ошибке в объекте
    • IntlTimeZone::getGMT — Создать часовой пояс по GMT (UTC)
    • IntlTimeZone::getID — Получить идентификатор часового пояса
    • IntlTimeZone::getIDForWindowsID — Преобразовать часовой пояс для Windows в системный часовой пояс
    • IntlTimeZone::getOffset — Получить необработанное значение часового пояса и смещение по Гринвичу (GMT) по заданному моменту времени
    • IntlTimeZone::getRawOffset — Получить необработанное значение смещения по Гринвичу (GMT) без учёта летнего времени
    • IntlTimeZone::getRegion — Получить код региона, соответствующего заданному идентификатору системного часового пояса
    • IntlTimeZone::getTZDataVersion — Получить версию данных о часовом поясе, который в данный момент используется в ICU
    • IntlTimeZone::getUnknown — Получить неизвестный часовой пояс («unknown»)
    • IntlTimeZone::getWindowsID — Преобразовать системный часовой пояс в часовой пояс для Windows
    • IntlTimeZone::hasSameRules — Проверить, что в другом часовом поясе используются те же самые правила и смещения, что и в первом заданном
    • IntlTimeZone::toDateTimeZone — Преобразовать в объект DateTimeZone
    • IntlTimeZone::useDaylightTime — Проверить, что в данном часовом поясе используется летнее время
  • IntlDateFormatter — Класс IntlDateFormatter
    • IntlDateFormatter::create — Создаёт средство форматирования даты
    • IntlDateFormatter::format — Форматирует значение даты/времени в виде строки
    • IntlDateFormatter::formatObject — Форматирует объект
    • IntlDateFormatter::getCalendar — Получает тип календаря, используемый IntlDateFormatter
    • IntlDateFormatter::getDateType — Получает тип даты, используемый IntlDateFormatter
    • IntlDateFormatter::getErrorCode — Получает код ошибки последней операции
    • IntlDateFormatter::getErrorMessage — Получает текст ошибки последней операции
    • IntlDateFormatter::getLocale — Получает языковой стандарт, используемый средством форматирования
    • IntlDateFormatter::getPattern — Получает шаблон, используемый IntlDateFormatter
    • IntlDateFormatter::getTimeType — Получает тип времени, используемый IntlDateFormatter
    • IntlDateFormatter::getTimeZoneId — Получает идентификатор часового пояса, используемый IntlDateFormatter
    • IntlDateFormatter::getCalendarObject — Получает копию объекта календаря средства форматирования
    • IntlDateFormatter::getTimeZone — Получает часовой пояс средства форматирования
    • IntlDateFormatter::isLenient — Получает снисходительность, используемую для IntlDateFormatter
    • IntlDateFormatter::localtime — Преобразует строку в значение времени на основе поля
    • IntlDateFormatter::parse — Преобразует строку в значение отметки времени
    • IntlDateFormatter::setCalendar — Устанавливает тип календаря, используемый средством форматирования
    • IntlDateFormatter::setLenient — Устанавливает мягкий режим анализатора
    • IntlDateFormatter::setPattern — Устанавливает шаблон, используемый IntlDateFormatter
    • IntlDateFormatter::setTimeZone — Устанавливает часовой пояс средства форматирования
  • 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 — Установить набор проверок
    • Spoofchecker::setRestrictionLevel — Set the restriction level
  • Transliterator — Класс Transliterator
    • Transliterator::__construct — Приватный конструктор
    • Transliterator::create — Создать транслитератор
    • Transliterator::createFromRules — Создать транслитератор на основе правил
    • Transliterator::createInverse — Создать инвертированный транслитератор
    • Transliterator::getErrorCode — Получить код последней ошибки
    • Transliterator::getErrorMessage — Получить последнее сообщение об ошибке
    • Transliterator::listIDs — Получить идентификаторы транслитератора
    • Transliterator::transliterate — Транслитерировать строку
  • IntlBreakIterator — Класс IntlBreakIterator
    • IntlBreakIterator::__construct — Закрытый конструктор, запрещающий создание экземпляров объекта
    • IntlBreakIterator::createCharacterInstance — Создаёт итератор прерывания для границ комбинирования последовательностей символов
    • IntlBreakIterator::createCodePointInstance — Создаёт итератор прерывания для границ кодовых точек
    • IntlBreakIterator::createLineInstance — Создаёт итератор прерывания для логически возможных разрывов строк
    • IntlBreakIterator::createSentenceInstance — Создаёт итератор прерывания для разрывов предложений
    • IntlBreakIterator::createTitleInstance — Создаёт итератор прерывания для разрывов заголовков
    • IntlBreakIterator::createWordInstance — Создаёт итератор прерывания для разрывов слов
    • IntlBreakIterator::current — Возвращает индекс текущей позиции
    • IntlBreakIterator::first — Устанавливает позицию к первому символу в тексте
    • IntlBreakIterator::following — Перемещает итератор к первой границе после указанного смещения
    • IntlBreakIterator::getErrorCode — Возвращает последний код ошибки объекта
    • IntlBreakIterator::getErrorMessage — Возвращает последнее сообщение об ошибке объекта
    • IntlBreakIterator::getLocale — Возвращает локаль, связанную с объектом
    • IntlBreakIterator::getPartsIterator — Создаёт итератор для перемещения фрагментов между границами
    • IntlBreakIterator::getText — Возвращает сканируемый текст
    • IntlBreakIterator::isBoundary — Сообщает, является ли смещение смещением границы
    • IntlBreakIterator::last — Устанавливает позицию итератора к индексу за последним символом
    • IntlBreakIterator::next — Перемещает итератор к следующей границе
    • IntlBreakIterator::preceding — Устанавливает позицию итератора к первой границе перед смещением
    • IntlBreakIterator::previous — Устанавливает позицию итератора на границе непосредственно перед текущей
    • IntlBreakIterator::setText — Устанавливает сканируемый текст
  • IntlRuleBasedBreakIterator — Класс IntlRuleBasedBreakIterator
    • IntlRuleBasedBreakIterator::__construct — Создаёт итератор на основе набора правил
    • IntlRuleBasedBreakIterator::getBinaryRules — Получить бинарные данные из скомпилированных правил
    • IntlRuleBasedBreakIterator::getRules — Получить набор правил, использовавшихся при создании этого объекта
    • IntlRuleBasedBreakIterator::getRuleStatus — Получить наибольшее значение статуса правил останова, определившее текущую позицию остановки
    • IntlRuleBasedBreakIterator::getRuleStatusVec — получить значения статусов из правил останова, определивших текущую позицию остановки
  • IntlCodePointBreakIterator — Класс IntlCodePointBreakIterator
    • IntlCodePointBreakIterator::getLastCodePoint — Получить последний код символа, выданный при перемещении итератора вперёд или назад
  • IntlDatePatternGenerator — Класс IntlDatePatternGenerator
    • IntlDatePatternGenerator::create — Создаёт новый экземпляр IntlDatePatternGenerator
    • IntlDatePatternGenerator::getBestPattern — Определяет наиболее подходящий формат даты/времени
  • 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 — Функция для извлечения последовательности кластеров графем по умолчанию из текстового буфера, которая должна быть закодирована в UTF-8
    • grapheme_stripos — Находит позицию (в единицах графемы) первого появления строки без учёта регистра
    • grapheme_stristr — Возвращает часть строки haystack от первого появления needle без учёта регистра до конца haystack
    • grapheme_strlen — Получает длину строки в единицах графемы
    • grapheme_strpos — Находит позицию (в единицах графемы) первого вхождения строки
    • grapheme_strripos — Находит позицию (в единицах графемы) последнего вхождения строки без учёта регистра
    • grapheme_strrpos — Находит позицию (в единицах графемы) последнего вхождения строки
    • grapheme_strstr — Возвращает часть строки haystack от первого появления needle до конца haystack
    • grapheme_substr — Возвращает часть строки
  • Функции 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 или новее.


Установка

Используйте --enable-intl, чтобы включить модуль при компиляции PHP.

Если ICU установлен в нестандартную директорию, то её необходимо указать в переменной окружения LD_LIBRARY_PATH, чтобы динамический линковщик смог его найти:

$ export LD_LIBRARY_PATH=/opt/icu/lib

В противном случае, если ICU установлен в стандартную директорию, то никаких дополнительных параметров для configure не требуется.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Intl
Имя | По умолчанию | Место изменения | Список изменений
intl.default_locale |  | PHP_INI_ALL |
intl.error_level | 0 | PHP_INI_ALL |
intl.use_exceptions | 0 | PHP_INI_ALL | Доступно с PECL 3.0.0a1

Краткое разъяснение конфигурационных директив.

intl.default_locale string

Локаль по умолчанию для использования в функциях в случаях если соответствующие параметры будут опущены, либо заданы как NULL. Это локаль ICU, а не системная. Встроенные локали ICU и их данные можно посмотреть по ссылке » http://demo.icu-project.org/icu-bin/locexp.

По умолчанию значение пусто, что ведёт к принудительному использованию локали ICU по умолчанию. Единожды задав это значение его уже нельзя будет сбросить на начальное. Не рекомендуется использовать локаль ICU по умолчанию, поскольку она зависит от локали окружения сервера.

intl.error_level int

Тип сообщений об ошибках, генерируемых при их возникновении в функциях ICU. Задаётся как уровень ошибок PHP, таких как E_WARNING. Можно установить равным 0, если вообще не хотите видеть сообщения об ошибках. Данная настройка не влияет на возвращаемые значения функций в случае ошибок и результат выполнения intl_get_error_code() и специфичных для классов методов, возвращающих информацию об ошибках.

По умолчанию равно 0.

intl.use_exceptions int

Если установлено как true, то вместо ошибок будут выбрасываться исключения класса IntlException. Можно использовать в дополнение к intl.error_level.

по умолчанию равно false.


Предопределённые константы

INTL_ICU_VERSION (string)
Текущая версия библиотеки ICU в виде чисел с точечными разделителями.
INTL_MAX_LOCALE_LEN (int)
Задаёт длину имени локали. Для PHP установлено равным 80. Имена локалей больше этого значения не принимаются.
IDNA_DEFAULT (int)
Запретить передачу неопределённых кодов символов в функции IDN и не проверять ввод на соответствие правилам доменных имён ASCII.
IDNA_ALLOW_UNASSIGNED (int)
Разрешить передачу неопределённых кодов символов в функции IDN
IDNA_USE_STD3_RULES (int)
Проверять ввод для функций IDN на соответствие правилам доменных имён ASCII.
IDNA_CHECK_BIDI (int)
Проверять, соответствует ли ввод правилам BiDi. Игнорируется в реализации IDNA2003, которая всегда производит эту проверку.
IDNA_CHECK_CONTEXTJ (int)
Проверять, соответствует ли ввод правилам CONTEXTJ. Игнорируется в реализации IDNA2003, так как эта проверка введена в IDNA2008.
IDNA_NONTRANSITIONAL_TO_ASCII (int)
Опция для несквозной обработки в idn_to_ascii(). Сквозная обработка активирована по умолчанию. Игнорируется в реализации IDNA2003.
IDNA_NONTRANSITIONAL_TO_UNICODE (int)
Опция для несквозной обработки в idn_to_utf8(). Сквозная обработка активирована по умолчанию. Игнорируется в реализации IDNA2003.
INTL_IDNA_VARIANT_2003 (int)
Использовать алгоритм IDNA 2003 в idn_to_utf8() и idn_to_ascii(). Задано по умолчанию. Эта константа и то, что она используется по умолчанию, объявлено устаревшим в PHP 7.2.0.
INTL_IDNA_VARIANT_UTS46 (int)
Использовать алгоритм UTS #46 в idn_to_utf8() и idn_to_ascii(). Доступно с ICU 4.6.
IDNA_ERROR_EMPTY_LABEL (int)
IDNA_ERROR_LABEL_TOO_LONG (int)
IDNA_ERROR_DOMAIN_NAME_TOO_LONG (int)
IDNA_ERROR_LEADING_HYPHEN (int)
IDNA_ERROR_TRAILING_HYPHEN (int)
IDNA_ERROR_HYPHEN_3_4 (int)
IDNA_ERROR_LEADING_COMBINING_MARK (int)
IDNA_ERROR_DISALLOWED (int)
IDNA_ERROR_PUNYCODE (int)
IDNA_ERROR_LABEL_HAS_DOT (int)
IDNA_ERROR_INVALID_ACE_LABEL (int)
IDNA_ERROR_BIDI (int)
IDNA_ERROR_CONTEXTJ (int)
При использовании алгоритма 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, PHP 8, PECL intl >= 1.0.0)

Введение

Производит сравнение строк с поддержкой порядка сортировки специфичного для локали.

Обзор классов

class Collator {
/* Константы */
const int DEFAULT_VALUE;
const int PRIMARY;
const int SECONDARY;
const int TERTIARY;
const int DEFAULT_STRENGTH;
const int QUATERNARY;
const int IDENTICAL;
const int OFF;
const int ON;
const int SHIFTED;
const int NON_IGNORABLE;
const int LOWER_FIRST;
const int UPPER_FIRST;
const int FRENCH_COLLATION;
const int ALTERNATE_HANDLING;
const int CASE_FIRST;
const int CASE_LEVEL;
const int NORMALIZATION_MODE;
const int STRENGTH;
const int HIRAGANA_QUATERNARY_MODE;
const int NUMERIC_COLLATION;
const int SORT_REGULAR;
const int SORT_STRING;
const int SORT_NUMERIC;
/* Методы */
public __construct(string $locale)
public asort(array &$array, int $flags = Collator::SORT_REGULAR): bool
public compare(string $string1, string $string2): int|false
public static create(string $locale): ?Collator
public getAttribute(int $attribute): int|false
public getErrorCode(): int|false
public getErrorMessage(): string|false
public getLocale(int $type): string|false
public getSortKey(string $string): string|false
public getStrength(): int
public setAttribute(int $attribute, int $value): bool
public setStrength(int $strength): bool
public sortWithSortKeys(array &$array): bool
public sort(array &$array, int $flags = Collator::SORT_REGULAR): bool
}

Предопределённые константы

Collator::FRENCH_COLLATION

Сортировка строк с акцентами с конца строки. Этот атрибут автоматически проставляется в 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

Аттрибут "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

Аттрибут "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

Аттрибут "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

Настройка "Normalization" определяет, будет ли текст тщательно нормализован в сравнении или нет. Даже если данная настройка отключена (по умолчанию для многих локалей), текст в общем случае будет сравниваться корректно (подробности в UTN #5). Проблемы могут быть только с отметками акцентов расположенными в неканоничном порядке. Если установлено как On, то будет гарантирован наилучший результат для всех возможных вариантов текста. Однако, если установлено как On - это скажется на скорости сравнения, в зависимости от количества последовательностей, который необходимо нормализовать. Какого-либо заметного влияния на длину ключа сортировки оказано не будет. Если заранее известно, что текст уже нормализован как NFD или NFKD, необходимости в использовании этой настройки нет.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::STRENGTH

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

Совместимость с JIS x 4061 требует введения дополнительного уровня для выделения символов Hiragana и Katakana. Если требуется совместимость со стандартом, то данный аттрибут необходимо задать как On, а "Strength" как "Quaternary". Это скажется на длине ключа сортировки и скорости сравнения.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::NUMERIC_COLLATION

Если включён, этот аттрибут генерирует ключ сравнения для числового значения подстроки состоящей из цифр. Это позволяет при сортировке помещать '100' после '2'.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::DEFAULT_VALUE
Collator::PRIMARY
Collator::SECONDARY
Collator::TERTIARY
Collator::DEFAULT_STRENGTH
Collator::QUATERNARY
Collator::IDENTICAL
Collator::OFF
Collator::ON
Collator::SHIFTED
Collator::NON_IGNORABLE
Collator::LOWER_FIRST
Collator::UPPER_FIRST
Collator::SORT_REGULAR

Collator::SORT_STRING

Collator::SORT_NUMERIC

Содержание

  • Collator::asort — Сортирует массив с сохранением ассоциации индекса
  • Collator::compare — Сравнивает две строки Unicode
  • Collator::__construct — Создаёт новый экземпляр Collator
  • Collator::create — Создаёт новый экземпляр Collator
  • Collator::getAttribute — Получает значение атрибута сопоставления
  • Collator::getErrorCode — Получает последний код ошибки Collator
  • Collator::getErrorMessage — Получает текст для кода последней ошибки Collator
  • Collator::getLocale — Получает название локали для Collator
  • Collator::getSortKey — Получает ключ сортировки строки
  • Collator::getStrength — Получает текущую силу сопоставления
  • Collator::setAttribute — Устанавливает атрибут сопоставления
  • Collator::setStrength — Устанавливает силу сопоставления
  • Collator::sortWithSortKeys — Сортирует массив с использованием указанного Collator и ключей сортировки
  • Collator::sort — Сортирует массив с использованием указанного средства сортировки


Сортирует массив с сохранением ассоциации индекса

  • « Collator
  • Collator::compare »
  • PHP Manual
  • Collator
  • Сортирует массив с сохранением ассоциации индекса

Collator::asort

collator_asort

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::asort -- collator_asort — Сортирует массив с сохранением ассоциации индекса

Описание

Объектно-ориентированный стиль

public Collator::asort(array &$array, int $flags = Collator::SORT_REGULAR): bool

Процедурный стиль

collator_asort(Collator $object, array &$array, int $flags = Collator::SORT_REGULAR): bool

Функция сортирует массив таким образом, чтобы индексы массива сохраняли свою корреляцию с элементами массива, с которыми они связаны. Это используется в основном при сортировке ассоциативных массивов, где важен фактический порядок элементов. Элементы массива будут иметь порядок сортировки в соответствии с текущими правилами локали.

Эквивалентно стандартной функции PHP asort().

Список параметров

object

Объект Collator.

array

Массив строк для сортировки.

flags

Необязательный тип сортировки, один из следующих:

  • Collator::SORT_REGULAR - сравнивает элементы как обычно (не изменяя тип)

  • Collator::SORT_NUMERIC - сравнивает элементы, как числа

  • Collator::SORT_STRING - сравнивает элементы, как строки

Значение flags по умолчанию - Collator::SORT_REGULAR. Также используется, если указано недопустимое значение flags.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования collator_asort()

<?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
  • collator_sort() - Сортирует массив с использованием указанного средства сортировки
  • collator_sort_with_sort_keys() - Сортирует массив с использованием указанного Collator и ключей сортировки


Сравнивает две строки Unicode

  • « Collator::asort
  • Collator::__construct »
  • PHP Manual
  • Collator
  • Сравнивает две строки Unicode

Collator::compare

collator_compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::compare -- collator_compare — Сравнивает две строки Unicode

Описание

Объектно-ориентированный стиль

public Collator::compare(string $string1, string $string2): int|false

Процедурный стиль

collator_compare(Collator $object, string $string1, string $string2): int|false

Сравнивает две строки Unicode в соответствии с правилами сопоставления.

Список параметров

object

Объект Collator.

string1

Первая строка для сравнения.

string2

Вторая строка для сравнения.

Возвращаемые значения

Возвращает результат сравнения:

  • 1, если string1 больше string2;

  • 0, если string1 равна string2;

  • -1, если string1 меньше string2.

В случае возникновения ошибки возвращает false.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Пример использования collator_compare()

<?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 больше s2\n";
} else if( $res < 0 ) {
echo "s1 меньше s2\n";
} else {
echo "s1 и s2 равны\n";
}
?>

Результат выполнения данного примера:

s1 больше s2

Пример #2 Сравнение строк без диакритических знаков и без учёта регистра

<?php
$c = new Collator( 'en' );
$c->setStrength( Collator::PRIMARY );

if ( $c->compare( 'Sean', 'Sean' ) == 0 )
{
echo "Значения равны\n";
}

Результат выполнения данного примера:

Значения равны

В этом примере Collator сравнивает, принимая во внимание только базовые символы. Документация для Collator->setStrength() объясняет различные сильные стороны.

Смотрите также

  • collator_sort() - Сортирует массив с использованием указанного средства сортировки


Создаёт новый экземпляр Collator

  • « Collator::compare
  • Collator::create »
  • PHP Manual
  • Collator
  • Создаёт новый экземпляр Collator

Collator::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::__construct — Создаёт новый экземпляр Collator

Описание

public Collator::__construct(string $locale)

Создаёт новый экземпляр Collator.

Список параметров

locale

Локаль, правила сопоставления которой следует использовать. Могут быть переданы специальные значения для языковых стандартов - если для языкового стандарта передана пустая строка (string), будут использоваться правила сопоставления языкового стандарта по умолчанию. Если передано значение "root", будут использоваться правила » UCA.

Атрибут locale обычно является наиболее важным атрибутом для правильной сортировки и сопоставления в соответствии с ожиданиями пользователей в разных странах и регионах. По умолчанию порядок сортировки » UCA будет правильно отсортировать только несколько языков, таких как голландский и португальский ("правильно" означает в соответствии с обычными ожиданиями пользователей этих языков). В противном случае вам необходимо указать локаль в UCA, чтобы правильно сопоставить текст для данного языка. Таким образом, необходимо указать языковой стандарт, чтобы выбрать Collator, который правильно адаптирован для этого языкового стандарта. Выбор языкового стандарта автоматически устанавливает значения для всех атрибутов на то, что подходит для этого языкового стандарта. Таким образом, в большинстве случаев другие атрибуты не нужно явно указывать. В некоторых случаях выбор локали будет иметь значение для производительности сравнения строк и/или длины ключа сортировки.

Ошибки

Возвращает "пустой" объект в случае возникновения ошибки. Используйте intl_get_error_code() и/или intl_get_error_message(), чтобы узнать что произошло.

Примеры

Пример #1 Пример использования Collator::__construct()

<?php
$coll = new Collator('en_CA');
?>

Смотрите также

  • Collator::create() - Создаёт новый экземпляр Collator
  • collator_create() - Создаёт новый экземпляр Collator


Создаёт новый экземпляр Collator

  • « Collator::__construct
  • Collator::getAttribute »
  • PHP Manual
  • Collator
  • Создаёт новый экземпляр Collator

Collator::create

collator_create

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::create -- collator_create — Создаёт новый экземпляр Collator

Описание

Объектно-ориентированный стиль

public static Collator::create(string $locale): ?Collator

Процедурный стиль

collator_create(string $locale): ?Collator

Строки будут сравниваться с использованием уже указанных параметров.

Список параметров

locale

Локаль, содержащая необходимые правила сопоставления. Могут быть переданы специальные значения для языковых стандартов, если для языкового стандарта передана пустая строка (string), будут использоваться правила сопоставления языковых стандартов по умолчанию. Если передаётся значение "root", будут использоваться правила » UCA.

Возвращаемые значения

Возвращает новый экземпляр Collator или null в случае возникновения ошибки.

Примеры

Пример #1 Пример использования collator_create()

<?php
$coll = collator_create( 'en_US' );

if( !isset( $coll ) ) {
printf( "Не удалось создать Collator: %s\n", intl_get_error_message() );
exit( 1 );
}
?>

Смотрите также

  • Collator::__construct() - Создаёт новый экземпляр Collator


Получает значение атрибута сопоставления

  • « Collator::create
  • Collator::getErrorCode »
  • PHP Manual
  • Collator
  • Получает значение атрибута сопоставления

Collator::getAttribute

collator_get_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::getAttribute -- collator_get_attribute — Получает значение атрибута сопоставления

Описание

Объектно-ориентированный стиль

public Collator::getAttribute(int $attribute): int|false

Процедурный стиль

collator_get_attribute(Collator $object, int $attribute): int|false

Получает значение целочисленного атрибута сопоставителя.

Список параметров

object

Объект Collator.

attribute

Атрибут, для которого требуется получить значение.

Возвращаемые значения

Значение атрибута или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования collator_get_attribute()

<?php
$coll = collator_create( 'en_CA' );
$val = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if( $val === false )
{
// Обработка ошибки
}
?>

Смотрите также

  • Константы Collator
  • collator_set_attribute() - Устанавливает атрибут сопоставления
  • collator_get_strength() - Получает текущую силу сопоставления


Получает последний код ошибки Collator

  • « Collator::getAttribute
  • Collator::getErrorMessage »
  • PHP Manual
  • Collator
  • Получает последний код ошибки Collator

Collator::getErrorCode

collator_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::getErrorCode -- collator_get_error_code — Получает последний код ошибки Collator

Описание

Объектно-ориентированный стиль

public Collator::getErrorCode(): int|false

Процедурный стиль

collator_get_error_code(Collator $object): int|false

Список параметров

object

Объект Collator.

Возвращаемые значения

Код ошибки, возвращённый последним вызовом функции API Collator или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования collator_get_error_code()

<?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() - Получает текст для кода последней ошибки Collator


Получает текст для кода последней ошибки Collator

  • « Collator::getErrorCode
  • Collator::getLocale »
  • PHP Manual
  • Collator
  • Получает текст для кода последней ошибки Collator

Collator::getErrorMessage

collator_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::getErrorMessage -- collator_get_error_message — Получает текст для кода последней ошибки Collator

Описание

Объектно-ориентированный стиль

public Collator::getErrorMessage(): string|false

Процедурный стиль

collator_get_error_message(Collator $object): string|false

Получает сообщение о последней ошибке.

Список параметров

object

Объект Collator.

Возвращаемые значения

Описание ошибки, возвращённой последним вызовом функции API Collator или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования collator_get_error_message()

<?php
$coll = collator_create( 'lt' );
if( collator_compare( $coll, 'y', 'k' ) === false ) {
echo collator_get_error_message( $coll );
}
?>

Смотрите также

  • collator_get_error_code() - Получает последний код ошибки Collator


Получает название локали для Collator

  • « Collator::getErrorMessage
  • Collator::getSortKey »
  • PHP Manual
  • Collator
  • Получает название локали для Collator

Collator::getLocale

collator_get_locale

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::getLocale -- collator_get_locale — Получает название локали для Collator

Описание

Объектно-ориентированный стиль

public Collator::getLocale(int $type): string|false

Процедурный стиль

collator_get_locale(Collator $object, int $type): string|false

Получает название локали для Collator.

Список параметров

object

Объект Collator.

type

Вы можете выбирать между корректным и фактическим языковым стандартом ( Locale::VALID_LOCALE и Locale::ACTUAL_LOCALE, соответственно).

Возвращаемые значения

Настоящее имя локали, из которого берутся данные сопоставления. Если Collator был создан из правил или произошла ошибка, возвращает 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( "Название корректной локали: %s\nНазвание фактической локали: %s\n",
$res_val, $res_act );
?>

Результат выполнения данного примера:

Запрошенное название локали: en_US_California
Название корректной локали: en_US
Название фактической локали: en

Смотрите также

  • collator_create() - Создаёт новый экземпляр Collator


Получает ключ сортировки строки

  • « Collator::getLocale
  • Collator::getStrength »
  • PHP Manual
  • Collator
  • Получает ключ сортировки строки

Collator::getSortKey

collator_get_sort_key

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 1.0.3)

Collator::getSortKey -- collator_get_sort_key — Получает ключ сортировки строки

Описание

Объектно-ориентированный стиль

public Collator::getSortKey(string $string): string|false

Процедурный стиль

collator_get_sort_key(Collator $object, string $string): string|false

Возвращает ключ сопоставления для строки. Ключи сопоставления можно сравнивать напрямую, а не строки, хотя они зависят от реализации и могут меняться в зависимости от версии библиотеки ICU. Ключи сортировки обычно полезны только в базах данных или в других случаях, когда вызовы функций чрезвычайно дороги.

Список параметров

object

Объект Collator.

string

Строка, из которой создаётся ключ.

Возвращаемые значения

Возвращает ключ сопоставления для строки или false в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Пример использования collator_get_sort_key()

<?php
$s1 = 'Hello';

$coll = collator_create('en_US');
$res = collator_get_sort_key($coll, $s1);

echo bin2hex($res);
?>

Результатом выполнения данного примера будет что-то подобное:

3832404046010901dc08

Смотрите также

  • collator_sort() - Сортирует массив с использованием указанного средства сортировки
  • collator_sort_with_sort_keys() - Сортирует массив с использованием указанного Collator и ключей сортировки


Получает текущую силу сопоставления

  • « Collator::getSortKey
  • Collator::setAttribute »
  • PHP Manual
  • Collator
  • Получает текущую силу сопоставления

Collator::getStrength

collator_get_strength

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::getStrength -- collator_get_strength — Получает текущую силу сопоставления

Описание

Объектно-ориентированный стиль

public Collator::getStrength(): int

Процедурный стиль

collator_get_strength(Collator $object): int

Список параметров

object

Объект Collator.

Возвращаемые значения

Возвращает текущую силу сопоставления или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования collator_get_strength()

<?php
$coll = collator_create( 'en_US' );
$strength = collator_get_strength( $coll );
?>

Смотрите также

  • Константы Collator
  • collator_set_strength() - Устанавливает силу сопоставления
  • collator_get_attribute() - Получает значение атрибута сопоставления


Устанавливает атрибут сопоставления

  • « Collator::getStrength
  • Collator::setStrength »
  • PHP Manual
  • Collator
  • Устанавливает атрибут сопоставления

Collator::setAttribute

collator_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::setAttribute -- collator_set_attribute — Устанавливает атрибут сопоставления

Описание

Объектно-ориентированный стиль

public Collator::setAttribute(int $attribute, int $value): bool

Процедурный стиль

collator_set_attribute(Collator $object, int $attribute, int $value): bool

Список параметров

object

Объект Collator.

attribute

Атрибут.

value

Значение атрибута.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования collator_set_attribute()

<?php
$coll = collator_create( 'en_CA' );
$val = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if ($val === false) {
// Обработка ошибки.
} elseif ($val === Collator::ON) {
// Делаем что-то полезное.
}
?>

Смотрите также

  • Константы Collator
  • collator_get_attribute() - Получает значение атрибута сопоставления
  • collator_set_strength() - Устанавливает силу сопоставления


Устанавливает силу сопоставления

  • « Collator::setAttribute
  • Collator::sortWithSortKeys »
  • PHP Manual
  • Collator
  • Устанавливает силу сопоставления

Collator::setStrength

collator_set_strength

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::setStrength -- collator_set_strength — Устанавливает силу сопоставления

Описание

Объектно-ориентированный стиль

public Collator::setStrength(int $strength): bool

Процедурный стиль

collator_set_strength(Collator $object, int $strength): bool

Служба сопоставления » ICU поддерживает множество уровней сравнения (называемых "Уровни", но также известных как "Сила сравнения"). Наличие этих категорий позволяет ICU сортировать строки точно в соответствии с местными соглашениями. Однако, позволяя выборочно использовать уровни, поиск строки в тексте может выполняться с различными условиями сопоставления.

  1. Первичный уровень: Обычно используется для обозначения различий между основными символами (например, "a" < "b"). Это самая большая разница. Например, словари разбиты на разные разделы по основному символу. Также называется силой level 1.

  2. Вторичный уровень: Акценты в символах считаются вторичными отличиями (например, "as" < "as" < "at"). Другие различия между буквами также можно считать вторичными, в зависимости от языка. Вторичное отличие игнорируется, если есть первичное различие где-либо в строках. Также называется силой level 2.

    Замечание:

    Примечание: В некоторых языках (например, датском) определённые буквы с диакритическими знаками считаются отдельными базовыми символами. Однако, в большинстве языков, буква с ударением имеет лишь второстепенное отличие от версии этой буквы без ударения.

  3. Третичный уровень: Различия в верхнем и нижнем регистре символов различаются на третичном уровне (например, "ao" < "Ao" < "ao"). Кроме того, вариант буквы отличается от базовой формы на третичном уровне (например, "A" и " "). Другой пример - разница между большой и маленькой Кана. Третичное различие игнорируется, если где-либо в строках есть первичное или вторичное различие. Также называется силой level 3.

  4. Четвертичный уровень: Когда пунктуация игнорируется (смотрите Игнорирование знаков препинания) на уровнях 1-3, можно использовать дополнительный уровень для различения слов с пунктуацией и без неё (например, "ab" < "a-b" < "aB"). Эта разница игнорируется, если есть первичная, вторичная или третичная разница. Также называется силой level 4. Четвертичный уровень следует использовать только в том случае, если требуется игнорирование знаков препинания или при обработке японского текста (смотрите Обработка хираганы).

  5. Идентичный уровень: Когда все остальные уровни равны, идентичный уровень используется в качестве тай-брейка. Значения кодовых точек Unicode формы NFD каждой строки сравниваются на этом уровне, на всякий случай, если нет разницы на уровнях 1-4. Например, кантиляционные знаки иврита различаются только на этом уровне. Этот уровень следует использовать с осторожностью, поскольку разница только в значениях кодовых точек между двумя строками является крайне редким явлением. Использование этого уровня существенно снижает производительность как для инкрементного сравнения, так и для генерации ключа сортировки (а также увеличивает длину ключа сортировки). Также называется силой level 5.

Например, люди могут игнорировать акценты или игнорировать акценты и регистр при поиске текста. Почти все символы различаются по первым трём уровням, поэтому в большинстве языков значение по умолчанию - третичный. Однако, если для параметра "Альтернативный" задано значение "Shifted", то четвертичную силу можно использовать для разрыва связей между пробелами, пунктуацией и символами, которые в противном случае были бы проигнорированы. Если требуются очень тонкие различия между символами, тогда можно использовать Идентичный уровень (например, Идентичный уровень различает Mathematical Bold Small A и the Mathematical Italic Small A.). Однако использование уровней выше, чем третичный, идентичная сила приводит к значительно более длинным ключам сортировки и снижению производительности сравнения строк для равных строк.

Список параметров

object

Объект Collator.

strength

Strength to set.

Допустимые значения:

  • Collator::PRIMARY

  • Collator::SECONDARY

  • Collator::TERTIARY

  • Collator::QUATERNARY

  • Collator::IDENTICAL

  • Collator::DEFAULT_STRENGTH

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования collator_set_strength()

<?php
$arr = array( 'ao', 'Ao', 'ao' );
$coll = collator_create( 'en_US' );

// Сортировка массива с использованием силы по умолчанию.
collator_sort( $coll, $arr );
var_export( $arr );

// Сортировка массива с использованием первичной силы.
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
  • collator_get_strength() - Получает текущую силу сопоставления


Сортирует массив с использованием указанного Collator и ключей сортировки

  • « Collator::setStrength
  • Collator::sort »
  • PHP Manual
  • Collator
  • Сортирует массив с использованием указанного Collator и ключей сортировки

Collator::sortWithSortKeys

collator_sort_with_sort_keys

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::sortWithSortKeys -- collator_sort_with_sort_keys — Сортирует массив с использованием указанного Collator и ключей сортировки

Описание

Объектно-ориентированный стиль

public Collator::sortWithSortKeys(array &$array): bool

Процедурный стиль

collator_sort_with_sort_keys(Collator $object, array &$array): bool

То же, что и collator_sort(), но использует ключи сортировки ICU, созданные ucol_getSortKey() для увеличения скорости работы с большими массивами.

Список параметров

object

Объект Collator.

array

Массив строк для сортировки

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования collator_sort_with_sort_keys()

<?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
  • collator_sort() - Сортирует массив с использованием указанного средства сортировки
  • collator_asort() - Сортирует массив с сохранением ассоциации индекса


Сортирует массив с использованием указанного средства сортировки

  • « Collator::sortWithSortKeys
  • NumberFormatter »
  • PHP Manual
  • Collator
  • Сортирует массив с использованием указанного средства сортировки

Collator::sort

collator_sort

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::sort -- collator_sort — Сортирует массив с использованием указанного средства сортировки

Описание

Объектно-ориентированный стиль

public Collator::sort(array &$array, int $flags = Collator::SORT_REGULAR): bool

Процедурный стиль

collator_sort(Collator $object, array &$array, int $flags = Collator::SORT_REGULAR): bool

Функция сортирует массив в соответствии с текущими правилами локали.

Эквивалентна стандартной функции PHP sort() .

Список параметров

object

Объект Collator.

array

Array of strings to sort.

flags

Необязательный тип сортировки, один из следующих:

  • Collator::SORT_REGULAR - сравнивает элементы как обычно (не изменяя тип)

  • Collator::SORT_NUMERIC - сравнивает элементы, как числа

  • Collator::SORT_STRING - сравнивает элементы, как строки

Тип сортировки по умолчанию - Collator::SORT_REGULAR. Он также используется, если указано недопустимое значение flags.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования collator_sort()

<?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
  • collator_asort() - Сортирует массив с сохранением ассоциации индекса
  • collator_sort_with_sort_keys() - Сортирует массив с использованием указанного Collator и ключей сортировки


The NumberFormatter class

(PHP 5 >= 5.3.0, PHP 7, PHP 8, 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%.

Для более сложного форматирования, например для разбора числа, используется форматирование основанное на наборе правил.

Обзор классов

class NumberFormatter {
/* Константы */
public const int PATTERN_DECIMAL;
public const int DECIMAL;
public const int CURRENCY;
public const int PERCENT;
public const int SCIENTIFIC;
public const int SPELLOUT;
public const int ORDINAL;
public const int DURATION;
public const int PATTERN_RULEBASED;
public const int IGNORE;
public const int CURRENCY_ACCOUNTING;
public const int DEFAULT_STYLE;
public const int ROUND_CEILING;
public const int ROUND_FLOOR;
public const int ROUND_DOWN;
public const int ROUND_UP;
public const int ROUND_HALFEVEN;
public const int ROUND_HALFDOWN;
public const int ROUND_HALFUP;
public const int PAD_BEFORE_PREFIX;
public const int PAD_AFTER_PREFIX;
public const int PAD_BEFORE_SUFFIX;
public const int PAD_AFTER_SUFFIX;
public const int PARSE_INT_ONLY;
public const int GROUPING_USED;
public const int DECIMAL_ALWAYS_SHOWN;
public const int MAX_INTEGER_DIGITS;
public const int MIN_INTEGER_DIGITS;
public const int INTEGER_DIGITS;
public const int MAX_FRACTION_DIGITS;
public const int MIN_FRACTION_DIGITS;
public const int FRACTION_DIGITS;
public const int MULTIPLIER;
public const int GROUPING_SIZE;
public const int ROUNDING_MODE;
public const int ROUNDING_INCREMENT;
public const int FORMAT_WIDTH;
public const int PADDING_POSITION;
public const int SECONDARY_GROUPING_SIZE;
public const int SIGNIFICANT_DIGITS_USED;
public const int MIN_SIGNIFICANT_DIGITS;
public const int MAX_SIGNIFICANT_DIGITS;
public const int LENIENT_PARSE;
public const int POSITIVE_PREFIX;
public const int POSITIVE_SUFFIX;
public const int NEGATIVE_PREFIX;
public const int NEGATIVE_SUFFIX;
public const int PADDING_CHARACTER;
public const int CURRENCY_CODE;
public const int DEFAULT_RULESET;
public const int PUBLIC_RULESETS;
public const int DECIMAL_SEPARATOR_SYMBOL;
public const int GROUPING_SEPARATOR_SYMBOL;
public const int PATTERN_SEPARATOR_SYMBOL;
public const int PERCENT_SYMBOL;
public const int ZERO_DIGIT_SYMBOL;
public const int DIGIT_SYMBOL;
public const int MINUS_SIGN_SYMBOL;
public const int PLUS_SIGN_SYMBOL;
public const int CURRENCY_SYMBOL;
public const int INTL_CURRENCY_SYMBOL;
public const int MONETARY_SEPARATOR_SYMBOL;
public const int EXPONENTIAL_SYMBOL;
public const int PERMILL_SYMBOL;
public const int PAD_ESCAPE_SYMBOL;
public const int INFINITY_SYMBOL;
public const int NAN_SYMBOL;
public const int SIGNIFICANT_DIGIT_SYMBOL;
public const int MONETARY_GROUPING_SEPARATOR_SYMBOL;
public const int TYPE_DEFAULT;
public const int TYPE_INT32;
public const int TYPE_INT64;
public const int TYPE_DOUBLE;
public const int TYPE_CURRENCY;
/* Методы */
public __construct(string $locale, int $style, ?string $pattern = null)
public static create(string $locale, int $style, ?string $pattern = null): ?NumberFormatter
public formatCurrency(float $amount, string $currency): string|false
public format(int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false
public getAttribute(int $attribute): int|float|false
public getErrorCode(): int
public getErrorMessage(): string
public getLocale(int $type = ULOC_ACTUAL_LOCALE): string|false
public getPattern(): string|false
public getSymbol(int $symbol): string|false
public getTextAttribute(int $attribute): string|false
public parseCurrency(string $string, string &$currency, int &$offset = null): float|false
public parse(string $string, int $type = NumberFormatter::TYPE_DOUBLE, int &$offset = null): int|float|false
public setAttribute(int $attribute, int|float $value): bool
public setPattern(string $pattern): bool
public setSymbol(int $symbol, string $value): bool
public setTextAttribute(int $attribute, string $value): bool
}

Предопределённые константы

Данные стили используются функцией numfmt_create() для определения типа форматирования.

NumberFormatter::PATTERN_DECIMAL
Формат с десятичной точкой заданный шаблоном
NumberFormatter::DECIMAL
Формат с десятичной точкой
NumberFormatter::CURRENCY
денежный формат
NumberFormatter::PERCENT
Процентный формат
NumberFormatter::SCIENTIFIC
Научный формат
NumberFormatter::SPELLOUT
Разобранный формат на основе правил
NumberFormatter::ORDINAL
Числительный формат на основе правил
NumberFormatter::DURATION
Формат длительности на основе правил
NumberFormatter::PATTERN_RULEBASED
Формат на основе правил по шаблону
NumberFormatter::CURRENCY_ACCOUNTING
Формат валюты для учёта, например, ($3.00) для отрицательной суммы в валюте вместо -$3.00. Доступно с PHP 7.4.1 и ICU 53.
NumberFormatter::DEFAULT_STYLE
Формат по умолчанию для локали
NumberFormatter::IGNORE
Псевдоним для PATTERN_DECIMAL

Данные константы определяют как будут разобраны или отформатированы числа. Их необходимо передавать функциям numfmt_format() и numfmt_parse().

NumberFormatter::TYPE_DEFAULT
Тип определяется типом переменной
NumberFormatter::TYPE_INT32
Форматирование/разбор как 32-битного целого
NumberFormatter::TYPE_INT64
Форматирование/разбор как 64-битного целого
NumberFormatter::TYPE_DOUBLE
Форматирование/разбор как рационального (float)
NumberFormatter::TYPE_CURRENCY
Форматирование/разбор как денежной единицы. Устарело, начиная с PHP 8.3.0

Атрибут формата чисел для numfmt_get_attribute() и numfmt_set_attribute().

NumberFormatter::PARSE_INT_ONLY
Разбирать только целые.
NumberFormatter::GROUPING_USED
Использовать группирующий разделитель.
NumberFormatter::DECIMAL_ALWAYS_SHOWN
Всегда показывать десятичную точку.
NumberFormatter::MAX_INTEGER_DIGITS
Максимальное число целых цифр.
NumberFormatter::MIN_INTEGER_DIGITS
Минимальное число целых цифр.
NumberFormatter::INTEGER_DIGITS
Целых цифр.
NumberFormatter::MAX_FRACTION_DIGITS
Максимальное число цифр после запятой.
NumberFormatter::MIN_FRACTION_DIGITS
Минимальное число цифр после запятой.
NumberFormatter::FRACTION_DIGITS
Число цифр после запятой.
NumberFormatter::MULTIPLIER
Множитель.
NumberFormatter::GROUPING_SIZE
Размер группировки.
NumberFormatter::ROUNDING_MODE
Режим округления.
NumberFormatter::ROUNDING_INCREMENT
Приращение округления.
NumberFormatter::FORMAT_WIDTH
Ширина на которую будет дополнен вывод format().
NumberFormatter::PADDING_POSITION
Позиция с которой дополнение будет иметь место. Смотрите описание констант дополнения.
NumberFormatter::SECONDARY_GROUPING_SIZE
Вторичный размер группировки.
NumberFormatter::SIGNIFICANT_DIGITS_USED
Использовать значащие цифры.
NumberFormatter::MIN_SIGNIFICANT_DIGITS
Минимальное количество значащих цифр.
NumberFormatter::MAX_SIGNIFICANT_DIGITS
Максимальное количество значащих цифр.
NumberFormatter::LENIENT_PARSE
Режим снисходительны синтаксического анализа для основанных на правилах форматов.

Атрибуты текста форматирования чисел, используются в numfmt_get_text_attribute() и numfmt_set_text_attribute().

NumberFormatter::POSITIVE_PREFIX
Положительный префикс.
NumberFormatter::POSITIVE_SUFFIX
Положительный суффикс.
NumberFormatter::NEGATIVE_PREFIX
Отрицательный префикс.
NumberFormatter::NEGATIVE_SUFFIX
Отрицательный суффикс.
NumberFormatter::PADDING_CHARACTER
Символ для дополнения строки.
NumberFormatter::CURRENCY_CODE
Код денежной единицы ISO.
NumberFormatter::DEFAULT_RULESET
Набор правил по умолчанию. Доступно только для форматирования на основе правил.
NumberFormatter::PUBLIC_RULESETS
Публичный набор правил. Доступно только для форматирования на основе правил. Этот атрибут доступен только на чтение. Публичный набор правил возвращается в виде строки, в которой каждый набор правил отделен точкой с запятой (;).

Символы форматирования чисел для numfmt_get_symbol() и numfmt_set_symbol().

NumberFormatter::DECIMAL_SEPARATOR_SYMBOL
Десятичный разделитель.
NumberFormatter::GROUPING_SEPARATOR_SYMBOL
Разделитель групп.
NumberFormatter::PATTERN_SEPARATOR_SYMBOL
Символ разделителя в шаблона.
NumberFormatter::PERCENT_SYMBOL
Символ процента.
NumberFormatter::ZERO_DIGIT_SYMBOL
Ноль.
NumberFormatter::DIGIT_SYMBOL
Символ представляющий цифру в шаблоне.
NumberFormatter::MINUS_SIGN_SYMBOL
Знак минус.
NumberFormatter::PLUS_SIGN_SYMBOL
Знак плюс.
NumberFormatter::CURRENCY_SYMBOL
Символ обозначения денежной единицы.
NumberFormatter::INTL_CURRENCY_SYMBOL
The international currency symbol.
NumberFormatter::MONETARY_SEPARATOR_SYMBOL
Денежный разделитель.
NumberFormatter::EXPONENTIAL_SYMBOL
Символ степени десяти.
NumberFormatter::PERMILL_SYMBOL
Символ промилле.
NumberFormatter::PAD_ESCAPE_SYMBOL
Экранирование символа заполнителя.
NumberFormatter::INFINITY_SYMBOL
Символ бесконечности.
NumberFormatter::NAN_SYMBOL
Символ NAN (Not-a-number, не-число).
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL
Символ значащей цифры.
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL
Разделитель групп для денежного формата.

Режимы округления для numfmt_get_attribute()
и numfmt_set_attribute() с атрибутом
NumberFormatter::ROUNDING_MODE.

NumberFormatter::ROUND_CEILING
Округление в сторону положительной бесконечности.
NumberFormatter::ROUND_DOWN
Округление вниз.
NumberFormatter::ROUND_FLOOR
Округление в сторону отрицательной бесконечности.
NumberFormatter::ROUND_HALFDOWN
Округление в сторону "ближайшего соседа" кроме случаев, когда они на одинаковом расстоянии. В этом случае округление вниз.
NumberFormatter::ROUND_HALFEVEN
Округление в сторону "ближайшего соседа" кроме случаев, когда они на одинаковом расстоянии. В этом случае округление к чётному значению.
NumberFormatter::ROUND_HALFUP
Округление в сторону "ближайшего соседа" кроме случаев, когда они на одинаковом расстоянии. В этом случае округление вверх.
NumberFormatter::ROUND_UP
Округление вверх.

Значения позиции дополнения для numfmt_get_attribute()
и numfmt_set_attribute() с атрибутом
NumberFormatter::PADDING_POSITION.

NumberFormatter::PAD_AFTER_PREFIX
Символы дополнения вставляются после префикса.
NumberFormatter::PAD_AFTER_SUFFIX
Символы дополнения вставляются после суффикса.
NumberFormatter::PAD_BEFORE_PREFIX
Символы дополнения вставляются до префикса.
NumberFormatter::PAD_BEFORE_SUFFIX
Символы дополнения вставляются до суффикса.

Смотрите также

  • » ICU formatting documentation
  • » ICU. Форматирование чисел
  • » ICU. Форматирование десятичных дробей
  • » ICU. Форматирование на основе правил

Содержание

  • NumberFormatter::create — Создаёт средство форматирования чисел
  • NumberFormatter::formatCurrency — Форматирует значение валюты
  • NumberFormatter::format — Форматирует число
  • NumberFormatter::getAttribute — Получает атрибут
  • NumberFormatter::getErrorCode — Получает последний код ошибки средства форматирования
  • NumberFormatter::getErrorMessage — Получает последнее сообщение об ошибке средства форматирования
  • NumberFormatter::getLocale — Получает локаль средства форматирования
  • NumberFormatter::getPattern — Получает шаблон средства форматирования
  • NumberFormatter::getSymbol — Получает значение символа
  • NumberFormatter::getTextAttribute — Получает текстовый атрибут
  • NumberFormatter::parseCurrency — Разбирает номер валюты
  • NumberFormatter::parse — Разбирает число
  • NumberFormatter::setAttribute — Устанавливает атрибут
  • NumberFormatter::setPattern — Устанавливает шаблон средства форматирования
  • NumberFormatter::setSymbol — Устанавливает значение символа
  • NumberFormatter::setTextAttribute — Устанавливает текстовый атрибут


Создаёт средство форматирования чисел

  • « NumberFormatter
  • NumberFormatter::formatCurrency »
  • PHP Manual
  • NumberFormatter
  • Создаёт средство форматирования чисел

NumberFormatter::create

numfmt_create

NumberFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::create -- numfmt_create -- NumberFormatter::__construct — Создаёт средство форматирования чисел

Описание

Объектно-ориентированный стиль (метод)

public static NumberFormatter::create(string $locale, int $style, ?string $pattern = null): ?NumberFormatter

Процедурный стиль

numfmt_create(string $locale, int $style, ?string $pattern = null): ?NumberFormatter

Объектно-ориентированный стиль (конструктор):

public NumberFormatter::__construct(string $locale, int $style, ?string $pattern = null)

Создаёт средство форматирования чисел.

Список параметров

locale

Локаль, в которой будет отформатировано число (название локали, например en_CA).

style

Стиль форматирования, одна из констант стиля форматирования. Если передана NumberFormatter::PATTERN_DECIMAL или NumberFormatter::PATTERN_RULEBASED, то формат числа открывается с использованием данного шаблона, который должен соответствовать синтаксису, описанному в » документации ICU DecimalFormat или » документации ICU RuleBasedNumberFormat, соответственно.

pattern

Строка шаблона, если для выбранного стиля требуется шаблон.

Возвращаемые значения

Возвращает объект NumberFormatter или null в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | pattern теперь допускает значение null.

Примеры

Пример #1 Пример использования numfmt_create()

<?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()

<?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() - Форматирует число
  • numfmt_parse() - Разбирает число


Форматирует значение валюты

  • « NumberFormatter::create
  • NumberFormatter::format »
  • PHP Manual
  • NumberFormatter
  • Форматирует значение валюты

NumberFormatter::formatCurrency

numfmt_format_currency

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::formatCurrency -- numfmt_format_currency — Форматирует значение валюты

Описание

Объектно-ориентированный стиль

public NumberFormatter::formatCurrency(float $amount, string $currency): string|false

Процедурный стиль

numfmt_format_currency(NumberFormatter $formatter, float $amount, string $currency): string|false

Форматирует значение валюты в соответствии с правилами форматирования.

Список параметров

formatter

Объект NumberFormatter.

amount

Числовое значение валюты.

currency

Трёхбуквенный код валюты ISO 4217, обозначающий используемую валюту.

Возвращаемые значения

Строка, представляющая форматированное значение валюты или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_format_currency()

<?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 Пример использования в объектно-ориентированном стиле

<?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р.

Примечания

Замечание:

Форматы, достижимые этим способом форматирования, не могут полностью использовать возможности базовой библиотеки ICU, например, форматировать валюту с узким символом валюты.

Для полной поддержки, используйте функцию msgfmt_format_message().

Смотрите также

  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования
  • numfmt_format() - Форматирует число
  • numfmt_parse_currency() - Разбирает номер валюты
  • msgfmt_format_message() - Быстро форматирует сообщение


Форматирует число

  • « NumberFormatter::formatCurrency
  • NumberFormatter::getAttribute »
  • PHP Manual
  • NumberFormatter
  • Форматирует число

NumberFormatter::format

numfmt_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::format -- numfmt_format — Форматирует число

Описание

Объектно-ориентированный стиль

public NumberFormatter::format(int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false

Процедурный стиль

numfmt_format(NumberFormatter $formatter, int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false

Форматирует числовое значение в соответствии с правилами средства форматирования.

Список параметров

formatter

Объект NumberFormatter.

num

Значение для форматирования. Может быть целым числом (int) или числом с плавающей точкой (float), другие типы будут преобразованы в числовое значение.

type

Используемый тип форматирования. Обратите внимание, что константа NumberFormatter::TYPE_CURRENCY не поддерживается; используйте вместо неё метод NumberFormatter::formatCurrency().

Возвращаемые значения

Возвращает строку, содержащую форматированное значение или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_format()

<?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 Пример использования в объектно-ориентированном стиле

<?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

Примечания

Замечание:

Форматы, достижимые этим способом форматирования, не могут полностью использовать возможности базовой библиотеки ICU, например, форматировать валюту с узким символом валюты.

Для полной поддержки, используйте функцию msgfmt_format_message().

Смотрите также

  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования
  • numfmt_format_currency() - Форматирует значение валюты
  • numfmt_parse() - Разбирает число
  • msgfmt_format_message() - Быстро форматирует сообщение


Получает атрибут

  • « NumberFormatter::format
  • NumberFormatter::getErrorCode »
  • PHP Manual
  • NumberFormatter
  • Получает атрибут

NumberFormatter::getAttribute

numfmt_get_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getAttribute -- numfmt_get_attribute — Получает атрибут

Описание

Объектно-ориентированный стиль

public NumberFormatter::getAttribute(int $attribute): int|float|false

Процедурный стиль

numfmt_get_attribute(NumberFormatter $formatter, int $attribute): int|float|false

Получает числовой атрибут, связанный со средством форматирования. Примером числового атрибута является количество целых цифр, которое будет выдавать средство форматирования.

Список параметров

formatter

Объект NumberFormatter.

attribute

Спецификатор атрибута - одна из констант числового атрибута.

Возвращаемые значения

Возвращает значение атрибута в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_get_attribute()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Цифр: ".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 "Цифр: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?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";
?>

Результат выполнения данного примера:

Цифр: 3
1.234.567,891
Цифр: 2
1.234.567,89

Смотрите также

  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования
  • numfmt_get_text_attribute() - Получает текстовый атрибут
  • numfmt_set_attribute() - Устанавливает атрибут


Получает последний код ошибки средства форматирования

  • « NumberFormatter::getAttribute
  • NumberFormatter::getErrorMessage »
  • PHP Manual
  • NumberFormatter
  • Получает последний код ошибки средства форматирования

NumberFormatter::getErrorCode

numfmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getErrorCode -- numfmt_get_error_code — Получает последний код ошибки средства форматирования

Описание

Объектно-ориентированный стиль

public NumberFormatter::getErrorCode(): int

Процедурный стиль

numfmt_get_error_code(NumberFormatter $formatter): int

Получает код ошибки из последней функции, выполненной средством форматирования.

Список параметров

formatter

Объект NumberFormatter.

Возвращаемые значения

Возвращает код ошибки из последнего вызова средства форматирования.

Примеры

Пример #1 Пример использования numfmt_get_error_code()

<?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 Пример использования в объектно-ориентированном стиле

<?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() - Получает последнее сообщение об ошибке средства форматирования
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Получает последнее сообщение об ошибке средства форматирования

  • « NumberFormatter::getErrorCode
  • NumberFormatter::getLocale »
  • PHP Manual
  • NumberFormatter
  • Получает последнее сообщение об ошибке средства форматирования

NumberFormatter::getErrorMessage

numfmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getErrorMessage -- numfmt_get_error_message — Получает последнее сообщение об ошибке средства форматирования

Описание

Объектно-ориентированный стиль

public NumberFormatter::getErrorMessage(): string

Процедурный стиль

numfmt_get_error_message(NumberFormatter $formatter): string

Получает сообщение об ошибке от последней функции, выполненной средством форматирования.

Список параметров

formatter

Объект NumberFormatter.

Возвращаемые значения

Возвращает сообщение об ошибке из последнего вызова средства форматирования.

Примеры

Пример #1 Пример использования numfmt_get_error_message()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
var_dump(numfmt_get_error_message($fmt));
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
var_dump(numfmt_get_error_message($fmt));
?>

Смотрите также

  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Получает локаль средства форматирования

  • « NumberFormatter::getErrorMessage
  • NumberFormatter::getPattern »
  • PHP Manual
  • NumberFormatter
  • Получает локаль средства форматирования

NumberFormatter::getLocale

numfmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getLocale -- numfmt_get_locale — Получает локаль средства форматирования

Описание

Объектно-ориентированный стиль

public NumberFormatter::getLocale(int $type = ULOC_ACTUAL_LOCALE): string|false

Процедурный стиль

numfmt_get_locale(NumberFormatter $formatter, int $type = ULOC_ACTUAL_LOCALE): string|false

Получает название локали средства форматирования.

Список параметров

formatter

Объект NumberFormatter.

type

Вы можете выбрать действительную или фактическую локаль ( Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, соответственно). По умолчанию используется фактическая локаль.

Возвращаемые значения

Имя локали, используемое для создания средства форматирования или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_get_locale()

<?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( "Запрошенная локаль: %s\nДействительная локаль: %s\nФактическая локаль: %s\n",
$req, $res_val, $res_act );
?>

Результат выполнения данного примера:

Запрошенная локаль: fr_FR_PARIS
Действительная локаль: fr_FR
Фактическая локаль: fr

Смотрите также

  • numfmt_create() - Создаёт средство форматирования чисел
  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования


Получает шаблон средства форматирования

  • « NumberFormatter::getLocale
  • NumberFormatter::getSymbol »
  • PHP Manual
  • NumberFormatter
  • Получает шаблон средства форматирования

NumberFormatter::getPattern

numfmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getPattern -- numfmt_get_pattern — Получает шаблон средства форматирования

Описание

Объектно-ориентированный стиль

public NumberFormatter::getPattern(): string|false

Процедурный стиль

numfmt_get_pattern(NumberFormatter $formatter): string|false

Извлекает шаблон, используемый средством форматирования.

Список параметров

formatter

Объект NumberFormatter.

Возвращаемые значения

Строка (string) шаблона, используемого средством форматирования или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_get_pattern()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Шаблон: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Шаблон: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Шаблон: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Шаблон: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Шаблон: #,##0.###
1.234.567,891
Шаблон: #0.# kg
1234567,9 kg

Смотрите также

  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования
  • numfmt_set_pattern() - Устанавливает шаблон средства форматирования
  • numfmt_create() - Создаёт средство форматирования чисел


Получает значение символа

  • « NumberFormatter::getPattern
  • NumberFormatter::getTextAttribute »
  • PHP Manual
  • NumberFormatter
  • Получает значение символа

NumberFormatter::getSymbol

numfmt_get_symbol

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getSymbol -- numfmt_get_symbol — Получает значение символа

Описание

Объектно-ориентированный стиль

public NumberFormatter::getSymbol(int $symbol): string|false

Процедурный стиль

numfmt_get_symbol(NumberFormatter $formatter, int $symbol): string|false

Получает символ, связанный со средством форматирования. Средство форматирования использует символы для представления специальных символов, зависящих от языка, в числах, например, знак процента. Этот API не поддерживается для средств форматирования на основе правил.

Список параметров

formatter

Объект NumberFormatter.

symbol

Спецификатор символа, одна из констант символов форматирования.

Возвращаемые значения

Строка символа или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_get_symbol()

<?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 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Разделитель: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Разделитель: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Разделитель: .
1.234.567,891
Разделитель: *
1*234*567,891

Смотрите также

  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования
  • numfmt_set_symbol() - Устанавливает значение символа


Получает текстовый атрибут

  • « NumberFormatter::getSymbol
  • NumberFormatter::parseCurrency »
  • PHP Manual
  • NumberFormatter
  • Получает текстовый атрибут

NumberFormatter::getTextAttribute

numfmt_get_text_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getTextAttribute -- numfmt_get_text_attribute — Получает текстовый атрибут

Описание

Объектно-ориентированный стиль

public NumberFormatter::getTextAttribute(int $attribute): string|false

Процедурный стиль

numfmt_get_text_attribute(NumberFormatter $formatter, int $attribute): string|false

Получает текстовый атрибут, связанный со средством форматирования. Примером текстового атрибута является суффикс для положительных чисел. Если средство форматирования не понимает атрибут, выдаётся ошибка U_UNSUPPORTED_ERROR. Средства форматирования на основе правил понимают только NumberFormatter::DEFAULT_RULESET и NumberFormatter::PUBLIC_RULESETS.

Список параметров

formatter

Объект NumberFormatter.

attribute

Спецификатор атрибута - одна из констант текстового атрибута.

Возвращаемые значения

Возвращает значение атрибута в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_get_text_attribute()

<?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 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Префикс: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Префикс: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Префикс: -
-1.234.567,891
Префикс: MINUS
MINUS1.234.567,891

Смотрите также

  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования
  • numfmt_get_attribute() - Получает атрибут
  • numfmt_set_text_attribute() - Устанавливает текстовый атрибут


Разбирает номер валюты

  • « NumberFormatter::getTextAttribute
  • NumberFormatter::parse »
  • PHP Manual
  • NumberFormatter
  • Разбирает номер валюты

NumberFormatter::parseCurrency

numfmt_parse_currency

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::parseCurrency -- numfmt_parse_currency — Разбирает номер валюты

Описание

Объектно-ориентированный стиль

public NumberFormatter::parseCurrency(string $string, string &$currency, int &$offset = null): float|false

Процедурный стиль

numfmt_parse_currency(
NumberFormatter $formatter,
string $string,
string &$currency,
int &$offset = null
): float|false

Разбирает строку на число с плавающей точкой и валюту с помощью средства форматирования.

Список параметров

formatter

Объект NumberFormatter.

currency

Параметр для получения названия валюты (трёхбуквенный код валюты ISO 4217).

offset

Смещение в строке, с которой начинается синтаксический анализ. При возврате это значение будет содержать смещение, на котором закончился синтаксический анализ.

Возвращаемые значения

Разобранное числовое значение или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_parse_currency()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89\xc2\xa0$";
echo "У нас ".numfmt_parse_currency($fmt, $num, $curr)." в $curr\n";
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89\xc2\xa0$";
echo "У нас ".$fmt->parseCurrency($num, $curr)." в $curr\n";
?>

Результат выполнения данного примера:

У нас 1234567.89 в USD

Смотрите также

  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования
  • numfmt_parse() - Разбирает число
  • numfmt_format_currency() - Форматирует значение валюты


Разбирает число

  • « NumberFormatter::parseCurrency
  • NumberFormatter::setAttribute »
  • PHP Manual
  • NumberFormatter
  • Разбирает число

NumberFormatter::parse

numfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::parse -- numfmt_parse — Разбирает число

Описание

Объектно-ориентированный стиль

public NumberFormatter::parse(string $string, int $type = NumberFormatter::TYPE_DOUBLE, int &$offset = null): int|float|false

Процедурный стиль

numfmt_parse(
NumberFormatter $formatter,
string $string,
int $type = NumberFormatter::TYPE_DOUBLE,
int &$offset = null
): int|float|false

Преобразует строку в число, используя правила средства форматирования.

Список параметров

formatter

Объект NumberFormatter.

string

Строка для разбора числа.

type

Используемый
тип форматирования.
По умолчанию используется NumberFormatter::TYPE_DOUBLE.
Обратите внимание, что константа NumberFormatter::TYPE_CURRENCY не поддерживается;
воспользуйтесь вместо неё методом NumberFormatter::parseCurrency().

offset

Смещение в строке, с которой начинается синтаксический анализ. При возврате это значение будет содержать смещение, на котором закончился синтаксический анализ.

Возвращаемые значения

Значение анализируемого числа или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_parse()

<?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 Пример использования в объектно-ориентированном стиле

<?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() - Получает последний код ошибки средства форматирования
  • numfmt_format() - Форматирует число
  • numfmt_parse_currency() - Разбирает номер валюты


Устанавливает атрибут

  • « NumberFormatter::parse
  • NumberFormatter::setPattern »
  • PHP Manual
  • NumberFormatter
  • Устанавливает атрибут

NumberFormatter::setAttribute

numfmt_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setAttribute -- numfmt_set_attribute — Устанавливает атрибут

Описание

Объектно-ориентированный стиль

public NumberFormatter::setAttribute(int $attribute, int|float $value): bool

Процедурный стиль

numfmt_set_attribute(NumberFormatter $formatter, int $attribute, int|float $value): bool

Устанавливает числовой атрибут, связанный со средством форматирования. Примером числового атрибута является количество целых цифр, которое будет выдавать средство форматирования.

Список параметров

formatter

Объект NumberFormatter.

attribute

Спецификатор атрибута - одна из констант числового атрибута.

value

Значение атрибута.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_set_attribute()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Цифр: ".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 "Цифр: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Цифр: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Цифр: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Цифр: 3
1.234.567,891
Цифр: 2
1.234.567,89

Смотрите также

  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования
  • numfmt_get_attribute() - Получает атрибут
  • numfmt_set_text_attribute() - Устанавливает текстовый атрибут


Устанавливает шаблон средства форматирования

  • « NumberFormatter::setAttribute
  • NumberFormatter::setSymbol »
  • PHP Manual
  • NumberFormatter
  • Устанавливает шаблон средства форматирования

NumberFormatter::setPattern

numfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setPattern -- numfmt_set_pattern — Устанавливает шаблон средства форматирования

Описание

Объектно-ориентированный стиль

public NumberFormatter::setPattern(string $pattern): bool

Процедурный стиль

numfmt_set_pattern(NumberFormatter $formatter, string $pattern): bool

Устанавливает шаблон, используемый средством форматирования. Не может использоваться в средстве форматирования на основе правил.

Список параметров

formatter

Объект NumberFormatter.

pattern

Шаблон в синтаксисе, описанном в » документации ICU DecimalFormat.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_set_pattern()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Шаблон: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Шаблон: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Шаблон: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Шаблон: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Шаблон: #,##0.###
1.234.567,891
Шаблон: #0.# kg
1234567,9 kg

Смотрите также

  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования
  • numfmt_create() - Создаёт средство форматирования чисел
  • numfmt_get_pattern() - Получает шаблон средства форматирования


Устанавливает значение символа

  • « NumberFormatter::setPattern
  • NumberFormatter::setTextAttribute »
  • PHP Manual
  • NumberFormatter
  • Устанавливает значение символа

NumberFormatter::setSymbol

numfmt_set_symbol

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setSymbol -- numfmt_set_symbol — Устанавливает значение символа

Описание

Объектно-ориентированный стиль

public NumberFormatter::setSymbol(int $symbol, string $value): bool

Процедурный стиль

numfmt_set_symbol(NumberFormatter $formatter, int $symbol, string $value): bool

Устанавливает символ, связанный со средством форматирования. Средство форматирования использует символы для представления специальных символов, зависящих от языка, в числах, например, знак процента. Этот API не поддерживается для средств форматирования на основе правил.

Список параметров

formatter

Объект NumberFormatter.

symbol

Спецификатор символа, одна из констант символа форматирования.

value

Текст для символа.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_set_symbol()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Разделитель: ".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 "Разделитель: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Разделитель: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Разделитель: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Разделитель: .
1.234.567,891
Разделитель: *
1*234*567,891

Смотрите также

  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования
  • numfmt_get_symbol() - Получает значение символа


Устанавливает текстовый атрибут

  • « NumberFormatter::setSymbol
  • Locale »
  • PHP Manual
  • NumberFormatter
  • Устанавливает текстовый атрибут

NumberFormatter::setTextAttribute

numfmt_set_text_attribute

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setTextAttribute -- numfmt_set_text_attribute — Устанавливает текстовый атрибут

Описание

Объектно-ориентированный стиль

public NumberFormatter::setTextAttribute(int $attribute, string $value): bool

Процедурный стиль

numfmt_set_text_attribute(NumberFormatter $formatter, int $attribute, string $value): bool

Устанавливает текстовый атрибут, связанный со средством форматирования. Примером текстового атрибута является суффикс для положительных чисел. Если средство форматирования не понимает атрибут, выдаётся ошибка U_UNSUPPORTED_ERROR. Средства форматирования на основе правил понимают только NumberFormatter::DEFAULT_RULESET и NumberFormatter::PUBLIC_RULESETS.

Список параметров

formatter

Объект NumberFormatter.

attribute

Спецификатор атрибута - одна из констант текстового атрибута.

value

Текст для значения атрибута.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования numfmt_set_text_attribute()

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Префикс: ".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 "Префикс: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Префикс: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Префикс: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Префикс: -
-1.234.567,891
Префикс: MINUS
MINUS1.234.567,891

Смотрите также

  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования
  • numfmt_get_text_attribute() - Получает текстовый атрибут
  • numfmt_set_attribute() - Устанавливает атрибут


Класс Locale

(PHP 5 >= 5.3.0, PHP 7, PHP 8, 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. Языковые метки (и идентификаторы локали) регистронезависимы. В данном классе присутствует метод, преобразующий их к каноничному виду.

Обзор классов

class Locale {
/* Константы */
public const int ACTUAL_LOCALE;
public const int VALID_LOCALE;
public const null DEFAULT_LOCALE = null;
public const string LANG_TAG;
public const string EXTLANG_TAG;
public const string SCRIPT_TAG;
public const string REGION_TAG;
public const string VARIANT_TAG;
public const string GRANDFATHERED_LANG_TAG;
public const string PRIVATE_TAG;
/* Методы */
public static acceptFromHttp(string $header): string|false
public static canonicalize(string $locale): ?string
public static composeLocale(array $subtags): string|false
public static filterMatches(string $languageTag, string $locale, bool $canonicalize = false): ?bool
public static getAllVariants(string $locale): ?array
public static getDefault(): string
public static getDisplayLanguage(string $locale, ?string $displayLocale = null): string|false
public static getDisplayName(string $locale, ?string $displayLocale = null): string|false
public static getDisplayRegion(string $locale, ?string $displayLocale = null): string|false
public static getDisplayScript(string $locale, ?string $displayLocale = null): string|false
public static getDisplayVariant(string $locale, ?string $displayLocale = null): string|false
public static getKeywords(string $locale): array|false|null
public static getPrimaryLanguage(string $locale): ?string
public static getRegion(string $locale): ?string
public static getScript(string $locale): ?string
public static lookup(
array $languageTag,
string $locale,
bool $canonicalize = false,
?string $defaultLocale = null
): ?string
public static parseLocale(string $locale): ?array
public static setDefault(string $locale): bool
}

Предопределённые константы

Locale::DEFAULT_LOCALE
Используется в качестве параметра, задающего локаль в функциях где это необходимо, таких как NumberFormatter. Эта константа вынуждает использовать локаль по умолчанию.

Эти константы описывают выбор локали для метода getLocale различных классов.

Locale::ACTUAL_LOCALE
Описывает текущую локаль.
Locale::VALID_LOCALE
Это самая специфичная локаль, поддерживаемая ICU.

Эти константы описывают как разбираются или из чего состоят локали. Они используются как ключи массива аргументов для locale_compose() и как возвращаемые значения locale_parse() в виде ключей возвращаемого ассоциативного массива.

Locale::LANG_TAG
Метка для языка
Locale::EXTLANG_TAG
Расширенная метка языка
Locale::SCRIPT_TAG
Метка начертания
Locale::REGION_TAG
Метка региона
Locale::VARIANT_TAG
Метка варианта
Locale::GRANDFATHERED_LANG_TAG
Метка языка в старом синтаксисе (grandfathered)
Locale::PRIVATE_TAG
Приватная метка

Смотрите также

  • » 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, PHP 8, PECL intl >= 1.0.0)

Locale::acceptFromHttp -- locale_accept_from_http — Попытаться определить наилучшую локаль основываясь на заголовке HTTP "Accept-Language"

Описание

Объектно-ориентированный стиль

public static Locale::acceptFromHttp(string $header): string|false

Процедурный стиль

locale_accept_from_http(string $header): string|false

Пытается определить локаль, удовлетворяющую списку языков, запрошенному в HTTP-заголовке "Accept-Language".

Список параметров

header

Строка, содержащая заголовок "Accept-Language" в соответствии с форматом RFC 2616.

Возвращаемые значения

Соответствующий идентификатор локали.

Возвращает false, если длина header превышает INTL_MAX_LOCALE_LEN.

Примеры

Пример #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, PHP 8, PECL intl >= 1.0.0)

Locale::canonicalize -- locale_canonicalize — Канонизировать строку локали

Описание

public static Locale::canonicalize(string $locale): ?string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения

Канонизированная строка локали.

Возвращает null, если длина locale превышает INTL_MAX_LOCALE_LEN.


Возвращает корректно отсортированные и разделённые идентификаторы локали

  • « Locale::canonicalize
  • Locale::filterMatches »
  • PHP Manual
  • Locale
  • Возвращает корректно отсортированные и разделённые идентификаторы локали

Locale::composeLocale

locale_compose

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::composeLocale -- locale_compose — Возвращает корректно отсортированные и разделённые идентификаторы локали

Описание

Объектно-ориентированный стиль

public static Locale::composeLocale(array $subtags): string|false

Процедурный стиль

locale_compose(array $subtags): string|false

Возвращает строку, состоящую из корректно отсортированных и разделённых идентификаторов локали, собранную из массива, ключи которого обозначают подтеги идентификатора, а значения соответствующие значения этих подтегов.

Список параметров

subtags

Массив (array), содержащий список пар ключ-значение, где ключи являются именами подтегов идентификатора локали, а значения, соответственно, значениями этих подтегов.

Замечание:

Подтегов 'variant' и 'private' может быть не более 15, подтегов 'extlang' не более 3 и т.д. Варианты допустимы с суффиксами от 0 до 14. Ключи для этого подтега должны называться так: variant0, variant1, ...,variant14. В возвращаемом идентификаторе локали вложенный тег упорядочен по суффиксу, в результате чего следует variant0, за которым следует variant1, за которым следует variant2 и так далее.

В качестве альтернативы, множественные подтеги 'variant', 'private' и 'extlang' можно задать в виде массива под соответствующим ключом (например 'variant'). В этом случае ограничения на количество распознанных вложенных тегов не применяются.

Возвращаемые значения

Соответствующий идентификатор локали или false, если параметр subtags не задан.

Примеры

Пример #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

Пример #3 Пределы подтегов

Если subtags заданы как отдельные ключи с числовым суффиксом, неподдерживаемые ключи игнорируются (в данном случае 'extlang3') и упорядочиваются в результате по числовому суффиксу. Нет никаких ограничений, если вложенные теги заданы как массив (array); упорядочены как указаны.

<?php
$arr = array(
'language' => 'en',
'script' => 'Hans',
'region' => 'CN',
'extlang3' => 'd',
'extlang2' => 'c',
'extlang1' => 'b',
'extlang0' => 'a',
);
echo locale_compose($arr), PHP_EOL;

$arr = array(
'language' => 'en',
'script' => 'Hans',
'region' => 'CN',
'extlang' => ['a', 'b', 'c', 'd'],
);
echo locale_compose($arr), PHP_EOL;
?>

Результат выполнения данного примера:

en_a_b_c_Hans_CN
en_a_b_c_d_Hans_CN

Смотрите также

  • locale_parse() - Получить ассоциативный массив всех подтегов локали


Проверить, соответствует ли тег фильтра языка локали

  • « Locale::composeLocale
  • Locale::getAllVariants »
  • PHP Manual
  • Locale
  • Проверить, соответствует ли тег фильтра языка локали

Locale::filterMatches

locale_filter_matches

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Locale::filterMatches -- locale_filter_matches — Проверить, соответствует ли тег фильтра языка локали

Описание

Объектно-ориентированный стиль

public static Locale::filterMatches(string $languageTag, string $locale, bool $canonicalize = false): ?bool

Процедурный стиль

locale_filter_matches(string $langtag, string $locale, bool $canonicalize = false): ?bool

Проверить, соответствует ли фильтр languageTag локали locale руководствуясь базовыми фильтрующими алгоритмами RFC 4647

Список параметров

languageTag

Языковой тег

locale

Локаль

canonicalize

Если true, аргумент будет преобразован к каноничной форме перед проверкой.

Возвращаемые значения

true если locale подходит для languageTag, или false, если нет.

Возвращает null, если длина locale превышает INTL_MAX_LOCALE_LEN.

Примеры

Пример #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, PHP 8, 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, если таковых нет

Возвращает null, если длина locale превышает INTL_MAX_LOCALE_LEN.

Примеры

Пример #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, PHP 8, PECL intl >= 1.0.0)

Locale::getDefault -- locale_get_default — Получение значения локали INTL по умолчанию из опции 'default_locale'

Описание

Объектно-ориентированный стиль

public static Locale::getDefault(): string

Процедурный стиль

locale_get_default(): 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, PHP 8, PECL intl >= 1.0.0)

Locale::getDisplayLanguage -- locale_get_display_language — Возвращает соответствующим образом локализованное имя языка для заданной локали

Описание

Объектно-ориентированный стиль

public static Locale::getDisplayLanguage(string $locale, ?string $displayLocale = null): string|false

Процедурный стиль

locale_get_display_language(string $locale, ?string $displayLocale = null): string|false

Возвращает соответствующим образом локализованное имя языка для заданной локали. Если null, то будет использована локаль по умолчанию.

Список параметров

locale

Локаль, для которой будет возвращено название языка

displayLocale

Необязательный параметр, задающий локаль, в которой надо будет отобразить название

Возвращаемые значения

Название языка для локали locale в формате, соответствующем локали displayLocale или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | displayLocale теперь допускает значение null.

Примеры

Пример #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, PHP 8, PECL intl >= 1.0.0)

Locale::getDisplayName -- locale_get_display_name — Возвращает соответствующим образом локализованное имя локали

Описание

Объектно-ориентированный стиль

public static Locale::getDisplayName(string $locale, ?string $displayLocale = null): string|false

Процедурный стиль

locale_get_display_name(string $locale, ?string $displayLocale = null): string|false

Возвращает соответствующим образом локализованное имя локали. Если locale равно null, то будет использована локаль по умолчанию.

Список параметров

locale

Локаль.

displayLocale

Необязательная локаль для форматирования

Возвращаемые значения

Имя локали в формате локали displayLocale или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | displayLocale теперь допускает значение null.

Примеры

Пример #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, PHP 8, PECL intl >= 1.0.0)

Locale::getDisplayRegion -- locale_get_display_region — Возвращает соответствующим образом локализованное название региона для заданной локали

Описание

Объектно-ориентированный стиль

public static Locale::getDisplayRegion(string $locale, ?string $displayLocale = null): string|false

Процедурный стиль

locale_get_display_region(string $locale, ?string $displayLocale = null): string|false

Возвращает соответствующим образом локализованное название региона для заданной локали. Если null, то будет использована локаль по умолчанию.

Список параметров

locale

Локаль.

displayLocale

Необязательная локаль для форматирования

Возвращаемые значения

Название региона для locale в формате локали displayLocale или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | displayLocale теперь допускает значение null.

Примеры

Пример #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, PHP 8, PECL intl >= 1.0.0)

Locale::getDisplayScript -- locale_get_display_script — Возвращает соответствующим образом локализованное название алфавита для заданной локали

Описание

Объектно-ориентированный стиль

public static Locale::getDisplayScript(string $locale, ?string $displayLocale = null): string|false

Процедурный стиль

locale_get_display_script(string $locale, ?string $displayLocale = null): string|false

Возвращает соответствующим образом локализованное название алфавита для заданной локали. Если null, то будет использована локаль по умолчанию.

Список параметров

locale

Локаль.

displayLocale

Необязательная локаль для форматирования

Возвращаемые значения

Название алфавита для locale в формате локали displayLocale или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | displayLocale теперь допускает значение null.

Примеры

Пример #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, PHP 8, PECL intl >= 1.0.0)

Locale::getDisplayVariant -- locale_get_display_variant — Возвращает соответствующим образом локализованное название варианта для заданной локали

Описание

Объектно-ориентированный стиль

public static Locale::getDisplayVariant(string $locale, ?string $displayLocale = null): string|false

Процедурный стиль

locale_get_display_variant(string $locale, ?string $displayLocale = null): string|false

Возвращает соответствующим образом локализованное название варианта для заданной локали. Если null, то будет использована локаль по умолчанию.

Список параметров

locale

Локаль.

displayLocale

Необязательная локаль для форматирования

Возвращаемые значения

Название варианта для locale в формате локали displayLocale или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | displayLocale теперь допускает значение null.

Примеры

Пример #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, PHP 8, PECL intl >= 1.0.0)

Locale::getKeywords -- locale_get_keywords — Получить ключевые слова для локали

Описание

Объектно-ориентированный стиль

public static Locale::getKeywords(string $locale): array|false|null

Процедурный стиль

locale_get_keywords(string $locale): array|false|null

Получает ключевые слова для локали.

Список параметров

locale

Локаль для извлечения ключевых слов

Возвращаемые значения

Ассоциативный массив (array) с парами ключ-значение для заданной локали

Возвращает null, если длина locale превышает INTL_MAX_LOCALE_LEN.

Примеры

Пример #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, PHP 8, 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, если длина locale превышает INTL_MAX_LOCALE_LEN.

Примеры

Пример #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, PHP 8, 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, если отсутствует.

Возвращает null, если длина locale превышает INTL_MAX_LOCALE_LEN.

Примеры

Пример #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, PHP 8, 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, PHP 8, PECL intl >= 1.0.0)

Locale::lookup -- locale_lookup — Поиск языковых меток наиболее подходящих заданной локали

Описание

Объектно-ориентированный стиль

public static Locale::lookup(
array $languageTag,
string $locale,
bool $canonicalize = false,
?string $defaultLocale = null
): ?string

Процедурный стиль

locale_lookup(
array $languageTag,
string $locale,
bool $canonicalize = false,
?string $defaultLocale = null
): ?string

Ищет элементы languageTag, наилучшим образом подходящие для диапазона языков, указанного в locale, в соответствии с алгоритмом поиска RFC 4647.

Список параметров

languageTag

Массив (array), содержащий список меток языков для сравнения с locale. Не более 100 элементов.

locale

Локаль.

canonicalize

Если true, то аргументы сперва будут приведены к каноническому виду.

defaultLocale

Локаль по умолчанию, если совпадений не будет найдено.

Возвращаемые значения

Наиболее подходящая данной локали метка языка.

Возвращает null, если длина locale превышает INTL_MAX_LOCALE_LEN.

Список изменений

Версия | Описание
7.4.0 | defaultLocale теперь допускает значение null.

Примеры

Пример #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, PHP 8, 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, PHP 8, 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.

Примеры

Пример #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, PHP 8, PECL intl >= 1.0.0)

Введение

Нормализация - это процесс преобразования символов и их последовательностей в формальное представление более низкого уровня. Данный процесс крайне важен при сравнении строк при сортировке или при поиске, но также используется при сохранении текста, чтобы быть уверенным в том, что он сохранился корректно.

Консорциум Unicode определил несколько форм нормализации, отражающих разные потребности приложений:

  • Normalization Form D (NFD) - Каноническое разложение
  • Normalization Form C (NFC) - Каноническое разложение с последующей канонической сборкой
  • Normalization Form KD (NFKD) - Совместимое разложение
  • Normalization Form KC (NFKC) - Совместимое разложение с последующей канонической сборкой
Различные формы задаются в требованиях наборов преобразований текста. Преобразования вычисляются с алгоритма и набора файлов данных.

Обзор классов

class Normalizer {
/* Константы */
public const int FORM_D;
public const int NFD;
public const int FORM_KD;
public const int NFKD;
public const int FORM_C;
public const int NFC;
public const int FORM_KC;
public const int NFKC;
public const int FORM_KC_CF;
public const int NFKC_CF;
/* Методы */
public static getRawDecomposition(string $string, int $form = Normalizer::FORM_C): ?string
public static isNormalized(string $string, int $form = Normalizer::FORM_C): bool
public static normalize(string $string, int $form = Normalizer::FORM_C): string|false
}

Предопределённые константы

Данные константы задают форму нормализации, используемую нормализатором:

Normalizer::FORM_C
Форма нормализации C (NFC) - Каноническое разложение, после которого каноническая сборка
Normalizer::FORM_D
Форма нормализации D (NFD) - Каноническое разложение
Normalizer::NFD

Normalizer::FORM_KC
Форма нормализации KC (NFKC) - Совместимое разложение, после которого каноническая сборка
Normalizer::NFKC

Normalizer::FORM_KC_CF

Normalizer::FORM_KD
Форма нормализации KD (NFKD) - Совместимое разложение
Normalizer::NFKD

Normalizer::NFC

Normalizer::NFKC_CF

Смотрите также

  • » Нормализация Unicode
  • » Нормализация Unicode. FAQ
  • » ICU Руководство пользователя - нормализация
  • » ICU Описание API - нормализация

Список изменений

Версия | Описание
8.0.0 | Константа Normalizer::NONE была удалена.

Содержание

  • 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, PHP 8)

Normalizer::getRawDecomposition -- normalizer_get_raw_decomposition — Извлекает свойство Decomposition_Mapping для заданного символа UTF-8

Описание

Объектно-ориентированный стиль

public static Normalizer::getRawDecomposition(string $string, int $form = Normalizer::FORM_C): ?string

Процедурный стиль

normalizer_get_raw_decomposition(string $string, int $form = Normalizer::FORM_C): ?string

Извлекает свойство Decomposition_Mapping, как определено в Unicode Character Database (UCD), для заданного символа UTF-8.

Список параметров

string

Строка, которая должна представлять из себя единичный символ в кодировке 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, PHP 8, PECL intl >= 1.0.0)

Normalizer::isNormalized -- normalizer_is_normalized — Проверить, соответствует ли переданная строка заданной форме нормализации

Описание

Объектно-ориентированный стиль

public static Normalizer::isNormalized(string $string, int $form = Normalizer::FORM_C): bool

Процедурный стиль

normalizer_is_normalized(string $string, int $form = Normalizer::FORM_C): bool

Проверить, соответствует ли переданная строка заданной форме нормализации.

Список параметров

string

Проверяемая строка

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, PHP 8, PECL intl >= 1.0.0)

Normalizer::normalize -- normalizer_normalize — Нормализация строки

Описание

Объектно-ориентированный стиль

public static Normalizer::normalize(string $string, int $form = Normalizer::FORM_C): string|false

Процедурный стиль

normalizer_normalize(string $string, int $form = Normalizer::FORM_C): string|false

Нормализует переданную строку

Список параметров

string

Строка для нормализации

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() - Проверить, соответствует ли переданная строка заданной форме нормализации


Класс MessageFormatter

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Введение

MessageFormatter - это класс, позволяющий создавать склеиваемые, независимые от языка сообщения. Методы этого класса используются для создания всех сообщений, показываемых пользователю.

Класс MessageFormatter собирает сообщение из разных фрагментов (таких как текст, числа и даты), поставляемых программой. Данный класс позволяет программе не задумываться о том, в каком порядке эти фрагменты надо склеивать. Класс использует спецификации форматирования для сборки этих фрагментов в сообщение, хранящееся в виде одной строки в хранилище ресурсов. К примеру, MessageFormatter позволит напечатать фразу "Finished printing x out of y files..." таким образом, чтобы обеспечить гибкость перевода.

Ранее сообщение для конечного пользователя создавалось как законченная фраза и обрабатывалась как строка. Такая процедура приводила к проблемам локализации, поскольку структура фразы, порядок слов, формат чисел и прочее сильно отличались в разных языках. Нейтральная к языку процедура создания сообщений держит каждую часть сообщения отдельно и предоставляет ключи к данным. Используя эти ключи, класс MessageFormatter может склеивать части сообщения, преобразовывать их в соответствии с локалью и отображать в виде грамотного сообщения конечному пользователю.

MessageFormatter берет набор объектов, форматирует их и вставляет в шаблон в нужных местах. Совместно с MessageFormatter полезно использовать средства форматирования выбора (choice formatter) для обработки множественного/единственного числа, сравнения чисел и выбора из массива элементов. Обычно формат сообщения берётся из ресурсов, а аргументы передаются во время выполнения.

Обзор классов

class MessageFormatter {
/* Методы */
public __construct(string $locale, string $pattern)
public static create(string $locale, string $pattern): ?MessageFormatter
public static formatMessage(string $locale, string $pattern, array $values): string|false
public format(array $values): string|false
public getErrorCode(): int
public getErrorMessage(): string
public getLocale(): string
public getPattern(): string|false
public static parseMessage(string $locale, string $pattern, string $message): array|false
public parse(string $string): array|false
public setPattern(string $pattern): bool
}

Смотрите также

  • » ICU. Документация по форматированию.
  • » ICU. Описание форматирования сообщений.
  • » ICU. Средства форматирования сообщений
  • » ICU. Средства форматирования выбора

Содержание

  • MessageFormatter::create — Создаёт средство форматирования сообщений
  • MessageFormatter::formatMessage — Быстро форматирует сообщение
  • MessageFormatter::format — Форматирует сообщение
  • MessageFormatter::getErrorCode — Возвращает код ошибки последней операции
  • MessageFormatter::getErrorMessage — Возвращает текст ошибки последней операции
  • MessageFormatter::getLocale — Возвращает локаль, для которой было создано средство форматирования
  • MessageFormatter::getPattern — Возвращает шаблон, используемый средством форматирования
  • MessageFormatter::parseMessage — Быстро разбирает входную строку
  • MessageFormatter::parse — Разбирает строку согласно шаблону
  • MessageFormatter::setPattern — Устанавливает шаблон, используемый средством форматирования


Создаёт средство форматирования сообщений

  • « MessageFormatter
  • MessageFormatter::formatMessage »
  • PHP Manual
  • MessageFormatter
  • Создаёт средство форматирования сообщений

MessageFormatter::create

MessageFormatter::__construct

msgfmt_create

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::create -- MessageFormatter::__construct -- msgfmt_create — Создаёт средство форматирования сообщений

Описание

Объектно-ориентированный стиль (метод)

public static MessageFormatter::create(string $locale, string $pattern): ?MessageFormatter

Объектно-ориентированный стиль (конструктор):

public MessageFormatter::__construct(string $locale, string $pattern)

Процедурный стиль

msgfmt_create(string $locale, string $pattern): ?MessageFormatter

Создаёт средство форматирования сообщений.

Список параметров

locale

Локаль, используемая при форматировании аргументов

pattern

Строка (string) шаблона для вставки аргументов. В шаблоне используется "дружественный к апострофам" синтаксис; подробнее смотрите в разделе » Quoting/Escaping.

Возвращаемые значения

Объект MessageFormatter или null в случае возникновения ошибки.

Ошибки

При вызове в качестве конструктора в случае возникновения ошибки выбрасывается исключение IntlException.

Примеры

Пример #1 Пример использования msgfmt_create()

<?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 Пример использования в объектно-ориентированном стиле

<?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() - Форматирует сообщение
  • msgfmt_parse() - Разбирает строку согласно шаблону
  • msgfmt_get_error_code() - Возвращает код ошибки последней операции
  • msgfmt_get_error_message() - Возвращает текст ошибки последней операции


Быстро форматирует сообщение

  • « MessageFormatter::create
  • MessageFormatter::format »
  • PHP Manual
  • MessageFormatter
  • Быстро форматирует сообщение

MessageFormatter::formatMessage

msgfmt_format_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::formatMessage -- msgfmt_format_message — Быстро форматирует сообщение

Описание

Объектно-ориентированный стиль

public static MessageFormatter::formatMessage(string $locale, string $pattern, array $values): string|false

Процедурный стиль

msgfmt_format_message(string $locale, string $pattern, array $values): string|false

Функция быстрого форматирования, которая форматирует строку без необходимости явно создавать объект форматирования. Используйте эту функцию, когда операция форматирования выполняется только один раз и не требует сохранения параметров или состояния, а также когда необходимо настроить вывод, предоставив дополнительный контекст непосредственно для ICU.

Список параметров

locale

Локаль, используемая для форматирования частей, зависящих от локали

pattern

Строка (string) шаблона для вставки аргументов. В шаблоне используется "дружественный к апострофам" синтаксис; подробнее смотрите в разделе » Quoting/Escaping.

values

Массив значений (array) для вставки в строку формата (string).

Возвращаемые значения

Строка отформатированного шаблона или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования msgfmt_format_message()

<?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));
echo msgfmt_format_message("en", 'You finished {place, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}!', ['place' => 3]), "\n";
echo msgfmt_format_message("en",
"There {apple, plural,
=0 {are no apples}
=1 {is one apple...}
other {are # apples!}
}",
['apple' => 0]
), "\n";
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?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));
echo MessageFormatter::formatMessage("en", 'You finished {place, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}!', ['place' => 3]), "\n";
echo MessageFormatter::formatMessage("en",
"There {apple, plural,
=0 {are no apples}
=1 {is one apple...}
other {are # apples!}
}",
['apple' => 0]
), "\n";
?>

Результат выполнения данного примера:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum
You finished 3rd!
There are no apples

Пример #3 Пример использования ICU для форматирования валюты с общим и с узким символом валюты

Requires ICU ? 67.

<?php
echo msgfmt_format_message("cs_CZ", "{0, number, :: currency/CAD}", array(123.45));
echo msgfmt_format_message("cs_CZ", "{0, number, :: currency/CAD unit-width-narrow}", array(123.45));

Результат выполнения данного примера:

123,45 CA$
123,45 $

Смотрите также

  • msgfmt_create() - Создаёт средство форматирования сообщений
  • msgfmt_parse() - Разбирает строку согласно шаблону
  • msgfmt_get_error_code() - Возвращает код ошибки последней операции
  • msgfmt_get_error_message() - Возвращает текст ошибки последней операции


Форматирует сообщение

  • « MessageFormatter::formatMessage
  • MessageFormatter::getErrorCode »
  • PHP Manual
  • MessageFormatter
  • Форматирует сообщение

MessageFormatter::format

msgfmt_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::format -- msgfmt_format — Форматирует сообщение

Описание

Объектно-ориентированный стиль

public MessageFormatter::format(array $values): string|false

Процедурный стиль

msgfmt_format(MessageFormatter $formatter, array $values): string|false

Форматирует сообщение, подставляя данные в строку формата в соответствии с правилами локали.

Список параметров

formatter

Объект MessageFormatter

values

Аргументы для вставки в строку формата

Возвращаемые значения

Отформатированная строка или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования msgfmt_format()

<?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 Пример использования в объектно-ориентированном стиле

<?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() - Создаёт средство форматирования сообщений
  • msgfmt_parse() - Разбирает строку согласно шаблону
  • msgfmt_format_message() - Быстро форматирует сообщение
  • msgfmt_get_error_code() - Возвращает код ошибки последней операции
  • msgfmt_get_error_message() - Возвращает текст ошибки последней операции


Возвращает код ошибки последней операции

  • « MessageFormatter::format
  • MessageFormatter::getErrorMessage »
  • PHP Manual
  • MessageFormatter
  • Возвращает код ошибки последней операции

MessageFormatter::getErrorCode

msgfmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::getErrorCode -- msgfmt_get_error_code — Возвращает код ошибки последней операции

Описание

Объектно-ориентированный стиль

public MessageFormatter::getErrorCode(): int

Процедурный стиль

msgfmt_get_error_code(MessageFormatter $formatter): int

Возвращает код ошибки последней операции.

Список параметров

formatter

Объект MessageFormatter

Возвращаемые значения

Код ошибки, одно из значений UErrorCode. Начальное значение - U_ZERO_ERROR.

Смотрите также

  • msgfmt_get_error_message() - Возвращает текст ошибки последней операции
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Возвращает текст ошибки последней операции

  • « MessageFormatter::getErrorCode
  • MessageFormatter::getLocale »
  • PHP Manual
  • MessageFormatter
  • Возвращает текст ошибки последней операции

MessageFormatter::getErrorMessage

msgfmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::getErrorMessage -- msgfmt_get_error_message — Возвращает текст ошибки последней операции

Описание

Объектно-ориентированный стиль

public MessageFormatter::getErrorMessage(): string

Процедурный стиль

msgfmt_get_error_message(MessageFormatter $formatter): string

Возвращает текст ошибки последней операции.

Список параметров

formatter

Объект MessageFormatter

Возвращаемые значения

Описание последней ошибки.

Примеры

Пример #1 Пример использования msgfmt_get_error_message()

<?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 Пример использования в объектно-ориентированном стиле

<?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() - Возвращает код ошибки последней операции
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Возвращает локаль, для которой было создано средство форматирования

  • « MessageFormatter::getErrorMessage
  • MessageFormatter::getPattern »
  • PHP Manual
  • MessageFormatter
  • Возвращает локаль, для которой было создано средство форматирования

MessageFormatter::getLocale

msgfmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::getLocale -- msgfmt_get_locale — Возвращает локаль, для которой было создано средство форматирования

Описание

Объектно-ориентированный стиль

public MessageFormatter::getLocale(): string

Процедурный стиль

msgfmt_get_locale(MessageFormatter $formatter): string

Возвращает локаль, для которой было создано средство форматирования.

Список параметров

formatter

Объект MessageFormatter

Возвращаемые значения

Имя локали.

Примеры

Пример #1 Пример использования msgfmt_get_locale()

<?php
$fmt = msgfmt_create('en_US', "Number {0,number}");
echo msgfmt_get_locale($fmt);
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new MessageFormatter('en_US', "Number {0,number}");
echo $fmt->getLocale();
?>

Результат выполнения данного примера:

en_US

Смотрите также

  • msgfmt_create() - Создаёт средство форматирования сообщений


Возвращает шаблон, используемый средством форматирования

  • « MessageFormatter::getLocale
  • MessageFormatter::parseMessage »
  • PHP Manual
  • MessageFormatter
  • Возвращает шаблон, используемый средством форматирования

MessageFormatter::getPattern

msgfmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::getPattern -- msgfmt_get_pattern — Возвращает шаблон, используемый средством форматирования

Описание

Объектно-ориентированный стиль

public MessageFormatter::getPattern(): string|false

Процедурный стиль

msgfmt_get_pattern(MessageFormatter $formatter): string|false

Возвращает шаблон, используемый средством форматирования.

Список параметров

formatter

Объект MessageFormatter

Возвращаемые значения

Строка (string) шаблона для данного средства форматирования сообщения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования msgfmt_get_pattern()

<?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 Пример использования в объектно-ориентированном стиле

<?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() - Создаёт средство форматирования сообщений
  • msgfmt_set_pattern() - Устанавливает шаблон, используемый средством форматирования


Быстро разбирает входную строку

  • « MessageFormatter::getPattern
  • MessageFormatter::parse »
  • PHP Manual
  • MessageFormatter
  • Быстро разбирает входную строку

MessageFormatter::parseMessage

msgfmt_parse_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::parseMessage -- msgfmt_parse_message — Быстро разбирает входную строку

Описание

Объектно-ориентированный стиль

public static MessageFormatter::parseMessage(string $locale, string $pattern, string $message): array|false

Процедурный стиль

msgfmt_parse_message(string $locale, string $pattern, string $message): array|false

Разбирает входную строку без явного создания объекта форматирования. Используйте эту функцию, когда операция форматирования выполняется только один раз и не требует сохранения параметров или состояния.

Список параметров

locale

Локаль, используемая для разбора частей, зависящих от локали

pattern

Шаблон, использующийся для разбора message.

message

Строка (string) для разбора, соответствующая pattern.

Возвращаемые значения

Массив (array), содержащий извлечённые элементы или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования msgfmt_parse_message()

<?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 Пример использования в объектно-ориентированном стиле

<?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() - Создаёт средство форматирования сообщений
  • msgfmt_format_message() - Быстро форматирует сообщение
  • msgfmt_parse() - Разбирает строку согласно шаблону


Разбирает строку согласно шаблону

  • « MessageFormatter::parseMessage
  • MessageFormatter::setPattern »
  • PHP Manual
  • MessageFormatter
  • Разбирает строку согласно шаблону

MessageFormatter::parse

msgfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::parse -- msgfmt_parse — Разбирает строку согласно шаблону

Описание

Объектно-ориентированный стиль

public MessageFormatter::parse(string $string): array|false

Процедурный стиль

msgfmt_parse(MessageFormatter $formatter, string $string): array|false

Разбирает входную строку (string) и возвращает все извлечённые элементы в виде массива (array).

Список параметров

formatter

Объект MessageFormatter.

string

Строка (string) для разбора.

Возвращаемые значения

Массив (array), содержащий извлечённые элементы или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования msgfmt_parse()

<?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 Пример использования в объектно-ориентированном стиле

<?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() - Создаёт средство форматирования сообщений
  • msgfmt_format() - Форматирует сообщение
  • msgfmt_parse_message() - Быстро разбирает входную строку


Устанавливает шаблон, используемый средством форматирования

  • « MessageFormatter::parse
  • IntlCalendar »
  • PHP Manual
  • MessageFormatter
  • Устанавливает шаблон, используемый средством форматирования

MessageFormatter::setPattern

msgfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::setPattern -- msgfmt_set_pattern — Устанавливает шаблон, используемый средством форматирования

Описание

Объектно-ориентированный стиль

public MessageFormatter::setPattern(string $pattern): bool

Процедурный стиль

msgfmt_set_pattern(MessageFormatter $formatter, string $pattern): bool

Устанавливает шаблон, используемый средством форматирования.

Список параметров

formatter

Объект MessageFormatter

pattern

Строка (string) шаблона для использования в этом средстве форматирования сообщения. В шаблоне используется "дружественный к апострофам" синтаксис; подробнее смотрите в разделе » Quoting/Escaping.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования msgfmt_set_pattern()

<?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 Пример использования в объектно-ориентированном стиле

<?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() - Создаёт средство форматирования сообщений
  • msgfmt_get_pattern() - Возвращает шаблон, используемый средством форматирования


Класс IntlCalendar

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

Введение

Обзор классов

class IntlCalendar {
/* Константы */
public const int FIELD_ERA;
public const int FIELD_YEAR;
public const int FIELD_MONTH;
public const int FIELD_WEEK_OF_YEAR;
public const int FIELD_WEEK_OF_MONTH;
public const int FIELD_DATE;
public const int FIELD_DAY_OF_YEAR;
public const int FIELD_DAY_OF_WEEK;
public const int FIELD_DAY_OF_WEEK_IN_MONTH;
public const int FIELD_AM_PM;
public const int FIELD_HOUR;
public const int FIELD_HOUR_OF_DAY;
public const int FIELD_MINUTE;
public const int FIELD_SECOND;
public const int FIELD_MILLISECOND;
public const int FIELD_ZONE_OFFSET;
public const int FIELD_DST_OFFSET;
public const int FIELD_YEAR_WOY;
public const int FIELD_DOW_LOCAL;
public const int FIELD_EXTENDED_YEAR;
public const int FIELD_JULIAN_DAY;
public const int FIELD_MILLISECONDS_IN_DAY;
public const int FIELD_IS_LEAP_MONTH;
public const int FIELD_FIELD_COUNT;
public const int FIELD_DAY_OF_MONTH;
public const int DOW_SUNDAY;
public const int DOW_MONDAY;
public const int DOW_TUESDAY;
public const int DOW_WEDNESDAY;
public const int DOW_THURSDAY;
public const int DOW_FRIDAY;
public const int DOW_SATURDAY;
public const int DOW_TYPE_WEEKDAY;
public const int DOW_TYPE_WEEKEND;
public const int DOW_TYPE_WEEKEND_OFFSET;
public const int DOW_TYPE_WEEKEND_CEASE;
public const int WALLTIME_FIRST;
public const int WALLTIME_LAST;
public const int WALLTIME_NEXT_VALID;
/* Методы */
private __construct()
public add(int $field, int $value): bool
public after(IntlCalendar $other): bool
public before(IntlCalendar $other): bool
public clear(?int $field = null): true
public static createInstance(IntlTimeZone|DateTimeZone|string|null $timezone = null, ?string $locale = null): ?IntlCalendar
public equals(IntlCalendar $other): bool
public fieldDifference(float $timestamp, int $field): int|false
public static fromDateTime(DateTime|string $datetime, ?string $locale = null): ?IntlCalendar
public get(int $field): int|false
public getActualMaximum(int $field): int|false
public getActualMinimum(int $field): int|false
public static getAvailableLocales(): array
public getDayOfWeekType(int $dayOfWeek): int|false
public getErrorCode(): int|false
public getErrorMessage(): string|false
public getFirstDayOfWeek(): int|false
public getGreatestMinimum(int $field): int|false
public static getKeywordValuesForLocale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false
public getLeastMaximum(int $field): int|false
public getLocale(int $type): string|false
public getMaximum(int $field): int|false
public getMinimalDaysInFirstWeek(): int|false
public getMinimum(int $field): int|false
public static getNow(): float
public getRepeatedWallTimeOption(): int
public getSkippedWallTimeOption(): int
public getTime(): float|false
public getTimeZone(): IntlTimeZone|false
public getType(): string
public getWeekendTransition(int $dayOfWeek): int|false
public inDaylightTime(): bool
public isEquivalentTo(IntlCalendar $other): bool
public isLenient(): bool
public isSet(int $field): bool
public isWeekend(?float $timestamp = null): bool
public roll(int $field, int|bool $value): bool
public set(int $field, int $value): true
public set(
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
): true
public setDate(int $year, int $month, int $dayOfMonth): void
public setDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
int $second = null
): void
public setFirstDayOfWeek(int $dayOfWeek): true
public setLenient(bool $lenient): true
public setMinimalDaysInFirstWeek(int $days): true
public setRepeatedWallTimeOption(int $option): true
public setSkippedWallTimeOption(int $option): true
public setTime(float $timestamp): bool
public setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): bool
public toDateTime(): DateTime|false
}

Предопределённые константы

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 — Добавляет количество (со знаком) времени в поле
  • IntlCalendar::after — Определяет, время этого объекта позже времени переданного объекта
  • IntlCalendar::before — Определяет, время этого объекта раньше времени переданного объекта
  • IntlCalendar::clear — Очищает поле или все поля
  • IntlCalendar::__construct — Закрытый конструктор для запрета создания экземпляров
  • IntlCalendar::createInstance — Создаёт новый объект IntlCalendar
  • IntlCalendar::equals — Сравнивает время двух объектов IntlCalendar на предмет равенства
  • IntlCalendar::fieldDifference — Вычисляет разницу между заданным временем и временем объекта
  • IntlCalendar::fromDateTime — Создаёт IntlCalendar из объекта или строки DateTime
  • IntlCalendar::get — Получает значение поля
  • IntlCalendar::getActualMaximum — Максимальное значение для поля с учётом текущего времени объекта
  • IntlCalendar::getActualMinimum — Минимальное значение для поля с учётом текущего времени объекта
  • IntlCalendar::getAvailableLocales — Получает массив языковых стандартов, для которых есть данные
  • IntlCalendar::getDayOfWeekType — Сообщает, является ли день будним, выходным или днём с переходом между ними
  • IntlCalendar::getErrorCode — Получает последний код ошибки объекта
  • IntlCalendar::getErrorMessage — Получает последнее сообщение об ошибке для объекта
  • IntlCalendar::getFirstDayOfWeek — Получает первый день недели для языкового стандарта календаря
  • IntlCalendar::getGreatestMinimum — Получает наибольшее локальное минимальное значение поля
  • IntlCalendar::getKeywordValuesForLocale — Получает набор значений ключевых слов языкового стандарта
  • IntlCalendar::getLeastMaximum — Получает наименьший локальный максимум для поля
  • IntlCalendar::getLocale — Получает языковой стандарт, связанный с объектом
  • IntlCalendar::getMaximum — Получает глобальное максимальное значение поля
  • IntlCalendar::getMinimalDaysInFirstWeek — Получает минимальное количество дней, которое может быть в первой неделе в году или месяце
  • IntlCalendar::getMinimum — Получает глобальное минимальное значение поля
  • IntlCalendar::getNow — Получает число, представляющее текущее время
  • IntlCalendar::getRepeatedWallTimeOption — Получает поведение для обработки повторяющегося времени процессора
  • IntlCalendar::getSkippedWallTimeOption — Получает поведение для обработки пропущенного времени процессора
  • IntlCalendar::getTime — Получает время, представленное в данный момент объектом
  • IntlCalendar::getTimeZone — Получает часовой пояс объекта
  • IntlCalendar::getType — Получает тип календаря
  • IntlCalendar::getWeekendTransition — Получает время дня, когда выходные начинаются или заканчиваются
  • IntlCalendar::inDaylightTime — Определяет, переходит ли время объекта на летнее время
  • IntlCalendar::isEquivalentTo — Определяет, равен ли другой календарь, но для другого времени
  • IntlCalendar::isLenient — Определяет, является ли интерпретация даты/времени мягкой
  • IntlCalendar::isSet — Определяет, установлено ли поле
  • IntlCalendar::isWeekend — Определяет, приходятся ли определённые дата/время на выходные
  • IntlCalendar::roll — Добавляет значение в поле без переноса в более важные поля
  • IntlCalendar::set — Устанавливает поле времени или сразу несколько общих полей
  • IntlCalendar::setDate — Set a date fields
  • IntlCalendar::setDateTime — Set a date and time fields
  • IntlCalendar::setFirstDayOfWeek — Устанавливает день, который является началом недели
  • IntlCalendar::setLenient — Устанавливает, должна ли интерпретация даты/времени быть мягкой
  • IntlCalendar::setMinimalDaysInFirstWeek — Устанавливает минимальное количество дней, которое может быть в первой неделе в году или месяце
  • IntlCalendar::setRepeatedWallTimeOption — Устанавливает поведение для обработки повторяющегося времени процессора при отрицательных переходах смещения часового пояса
  • IntlCalendar::setSkippedWallTimeOption — Устанавливает поведение для обработки пропущенного времени процессора при положительных переходах смещения часового пояса
  • IntlCalendar::setTime — Устанавливает календарное время в миллисекундах с начала эпохи Unix
  • IntlCalendar::setTimeZone — Устанавливает часовой пояс, используемый календарём
  • IntlCalendar::toDateTime — Преобразует IntlCalendar в объект DateTime


Добавляет количество (со знаком) времени в поле

  • « IntlCalendar
  • IntlCalendar::after »
  • PHP Manual
  • IntlCalendar
  • Добавляет количество (со знаком) времени в поле

IntlCalendar::add

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::add — Добавляет количество (со знаком) времени в поле

Описание

Объектно-ориентированный стиль

public IntlCalendar::add(int $field, int $value): bool

Процедурный стиль

intlcal_add(IntlCalendar $calendar, int $field, int $value): bool

Добавляет количество со знаком в поле. Добавление положительной суммы позволяет продвигаться во времени, даже если числовое значение поля уменьшается (например, при работе с годами до нашей эры).

Другие поля могут нуждаться в корректировке, например, добавление месяца к 31 января приведёт к 28 (или 29) февраля. В отличие от IntlCalendar::roll(), когда значение оборачивается, более важные поля могут измениться. Например, добавление 1 дня к 31 января приведёт к 1 февраля, а не к 1 января.

Список параметров

calendar

Экземпляр IntlCalendar.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

value

Количество со знаком, добавляемое к текущему полю. Если сумма положительная, момент времени будет перемещён вперёд; если он отрицательный, момент времени будет перемещён в прошлое. Единица неявно связана с типом поля. Например, часы для IntlCalendar::FIELD_HOUR_OF_DAY.

Возвращаемые значения

Возвращает true в случае успешного выполнения или 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


Определяет, время этого объекта позже времени переданного объекта

  • « IntlCalendar::add
  • IntlCalendar::before »
  • PHP Manual
  • IntlCalendar
  • Определяет, время этого объекта позже времени переданного объекта

IntlCalendar::after

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::after — Определяет, время этого объекта позже времени переданного объекта

Описание

Объектно-ориентированный стиль

public IntlCalendar::after(IntlCalendar $other): bool

Процедурный стиль

intlcal_after(IntlCalendar $calendar, IntlCalendar $other): bool

Возвращает, соответствует ли время этого объекта времени аргумента.

Список параметров

calendar

Экземпляр IntlCalendar.

other

Календарь, время которого будет сравниваться со временем основного объекта.

Возвращаемые значения

Возвращает true, если текущее время этого объекта позже времени аргумента calendar. В противном случае возвращает false.

В случае возникновения ошибки также возвращается false. Для обнаружения условий ошибки используйте intl_get_error_code() или настройте выбрасывание исключений в Intl.

Примеры

Пример #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


Определяет, время этого объекта раньше времени переданного объекта

  • « IntlCalendar::after
  • IntlCalendar::clear »
  • PHP Manual
  • IntlCalendar
  • Определяет, время этого объекта раньше времени переданного объекта

IntlCalendar::before

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::before — Определяет, время этого объекта раньше времени переданного объекта

Описание

Объектно-ориентированный стиль

public IntlCalendar::before(IntlCalendar $other): bool

Процедурный стиль

intlcal_before(IntlCalendar $calendar, IntlCalendar $other): bool

Возвращает, предшествует ли время этого объекта времени аргумента.

Список параметров

calendar

Экземпляр IntlCalendar.

other

Календарь, время которого будет сравниваться со временем основного объекта.

Возвращаемые значения

Возвращает true, если текущее время этого объекта раньше времени аргумента calendar. В противном случае возвращает false.

В случае возникновения ошибки также возвращается false. Для обнаружения условий ошибки используйте intl_get_error_code() или настройте выбрасывание исключений в Intl.


Очищает поле или все поля

  • « IntlCalendar::before
  • IntlCalendar::__construct »
  • PHP Manual
  • IntlCalendar
  • Очищает поле или все поля

IntlCalendar::clear

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::clear — Очищает поле или все поля

Описание

Объектно-ориентированный стиль

public IntlCalendar::clear(?int $field = null): true

Процедурный стиль

intlcal_clear(IntlCalendar $calendar, ?int $field = null): true

Очищает либо все поля, либо определённое поле. Очищенное поле помечается как не заданное, что даёт ему самый низкий приоритет по отношению к переопределяющим полям или даже значениям по умолчанию при вычислении времени. Кроме того, его значение установлено на 0, хотя, учитывая низкий приоритет поля, его значение могло быть внутренне установлено на другое значение к моменту завершения запроса поля.

Список параметров

calendar

Экземпляр IntlCalendar.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #1 Пример использования IntlCalendar::clear()

<?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 /* Март */, 15);
echo "После создания григорианского календаря\n";
print_r(getSetFields($cal));
echo "\n";

echo IntlDateFormatter::formatObject($cal), "\n";
echo "После того, как средство форматирования запросило поле EXTENDED_YEAR\n";
print_r(getSetFields($cal));
echo "\n";

$cal->clear(IntlCalendar::FIELD_YEAR);
echo "После того, как год будет очищен, дата останется прежней\n";
echo IntlDateFormatter::formatObject($cal), "\n";
echo "Потому что FIELD_EXTENDED_YEAR все ещё установлен\n";
print_r(getSetFields($cal));
echo "\n";

var_dump($cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR));
echo "После того, как поле EXTENDED_YEAR было очищено\n";
print_r(getSetFields($cal));
echo IntlDateFormatter::formatObject($cal), "\n";
echo "\n";

echo "После пересчёта полей,\n"
. " снова установлено поле EXTENDED_YEAR (до 1970 г.)\n";
print_r(getSetFields($cal));
echo "\n";

$cal->clear();
echo "После вызова варианта без аргументов\n";
print_r(getSetFields($cal));
echo IntlDateFormatter::formatObject($cal), "\n";

Результат выполнения данного примера:

После создания григорианского календаря
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
)

15/03/2013 00:00:00
После того, как средство форматирования запросило поле EXTENDED_YEAR
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
    [4] => FIELD_EXTENDED_YEAR
)

После того, как год будет очищен, дата останется прежней
15/03/2013 00:00:00
Потому что FIELD_EXTENDED_YEAR все ещё установлен
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

bool(true)
После того, как поле EXTENDED_YEAR было очищено
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
)
15/03/1970 00:00:00

После пересчёта полей,
 снова установлено поле EXTENDED_YEAR (до 1970 г.)
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

После вызова варианта без аргументов
Array
(
)
01/01/1970 00:00:00


Закрытый конструктор для запрета создания экземпляров

  • « IntlCalendar::clear
  • IntlCalendar::createInstance »
  • PHP Manual
  • IntlCalendar
  • Закрытый конструктор для запрета создания экземпляров

IntlCalendar::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::__construct — Закрытый конструктор для запрета создания экземпляров

Описание

private IntlCalendar::__construct()

Закрытый конструктор для запрета создания экземпляров с помощью оператора new.

Вместо этого используйте метод IntlCalendar::createInstance().

Список параметров

У этой функции нет параметров.


Создаёт новый объект IntlCalendar

  • « IntlCalendar::__construct
  • IntlCalendar::equals »
  • PHP Manual
  • IntlCalendar
  • Создаёт новый объект IntlCalendar

IntlCalendar::createInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::createInstance — Создаёт новый объект IntlCalendar

Описание

Объектно-ориентированный стиль

public static IntlCalendar::createInstance(IntlTimeZone|DateTimeZone|string|null $timezone = null, ?string $locale = null): ?IntlCalendar

Процедурный стиль

intlcal_create_instance(IntlTimeZone|DateTimeZone|string|null $timezone = null, ?string $locale = null): ?IntlCalendar

Учитывая часовой пояс и языковой стандарт, метод создаёт объект IntlCalendar. Этот фабричный метод может возвращать дочерний класс IntlCalendar.

Созданный календарь будет представлять момент времени, в который он был создан, на основе системного времени. Все поля можно очистить, вызвав IntCalendar::clear() без аргументов. Смотрите также IntlGregorianCalendar::__construct().

Список параметров

timezone

Часовой пояс для использования.

  • Если null, то будет использован часовой пояс по умолчанию, заданная в ini-настройки date.timezone либо с помощью функции date_default_timezone_set() и возвращённая функцией date_default_timezone_get().

  • Объект класса IntlTimeZone.

  • Объект класса DateTimeZone. Его идентификатор будет извлечён и на его основе будет создан объект часового пояса ICU; часовой пояс будет сохранён в базе данных ICU, а не PHP.

  • Строка, являющаяся корректным идентификатором часового пояса ICU. Смотрите IntlTimeZone::createTimeZoneIDEnumeration(). "Сырые" смещения, типа "GMT+08:30", также поддерживаются.

locale

Используемый языковой стандарт или значение null для использования языкового стандарта по умолчанию.

Возвращаемые значения

Созданный экземпляр IntlCalendar или null в случае возникновения ошибки.

Примеры

Пример #1 Пример использования IntlCalendar::createInstance()

<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'Europe/Madrid');

$cal = IntlCalendar::createInstance();
echo "Без аргументов\n";
var_dump(get_class($cal),
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";

echo "Явное указание часового пояса\n";
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT());
var_dump(get_class($cal),
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";

echo "Явное указание языкового стандарта (с календарём)\n";
$cal = IntlCalendar::createInstance(NULL, 'es_ES@calendar=persian');
var_dump(get_class($cal),
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));

Результат выполнения данного примера:

Без аргументов
string(21) "IntlGregorianCalendar"
string(68) "martes 18 de junio de 2013 14:11:02 Hora de verano de Europa Central"

Явное указание часового пояса
string(21) "IntlGregorianCalendar"
string(45) "martes 18 de junio de 2013 12:11:02 GMT+00:00"

Явное указание языкового стандарта (с календарём)
string(12) "IntlCalendar"
string(70) "martes 28 de Khordad de 1392 14:11:02 Hora de verano de Europa Central"

Смотрите также

  • IntlGregorianCalendar::__construct() - Конструктор класса григорианского календаря


Сравнивает время двух объектов IntlCalendar на предмет равенства

  • « IntlCalendar::createInstance
  • IntlCalendar::fieldDifference »
  • PHP Manual
  • IntlCalendar
  • Сравнивает время двух объектов IntlCalendar на предмет равенства

IntlCalendar::equals

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::equals — Сравнивает время двух объектов IntlCalendar на предмет равенства

Описание

Объектно-ориентированный стиль

public IntlCalendar::equals(IntlCalendar $other): bool

Процедурный стиль

intlcal_equals(IntlCalendar $calendar, IntlCalendar $other): bool

Возвращает true, если у обоих календарей одно и то же время. Настройки, типы календаря и состояния полей не обязательно должны совпадать.

Список параметров

calendar

Экземпляр IntlCalendar.

other

Календарь для сравнения с основным объектом.

Возвращаемые значения

Возвращает true, если текущее время этого и переданного в IntlCalendar объекта одинаковое или false в противном случае.

В случае возникновения ошибки также возвращается false. Для обнаружения условий ошибки используйте intl_get_error_code() или настройте выбрасывание исключений в Intl.

Примеры

Пример #1 Пример использования IntlCalendar::equals()

<?php
ini_set('date.timezone', 'UTC');

$cal1 = IntlCalendar::createInstance(NULL, 'es_ES');
$cal2 = clone $cal1;

var_dump($cal1->equals($cal2)); //TRUE

// Языковой стандарт не включён в сравнение
$cal2 = IntlCalendar::createInstance(NULL, 'pt_PT');
$cal2->setTime($cal1->getTime());
var_dump($cal1->equals($cal2)); //TRUE

// И состояние установленных полей также не включено
$cal2->clear(IntlCalendar::FIELD_YEAR);
var_dump($cal1->isSet(IntlCalendar::FIELD_YEAR) ==
$cal2->isSet(IntlCalendar::FIELD_YEAR)); //FALSE
var_dump($cal1->equals($cal2)); //TRUE

// И тип календаря
$cal2 = IntlCalendar::createInstance(NULL, 'es_ES@calendar=islamic');
$cal2->setTime($cal1->getTime());
var_dump($cal1->equals($cal2)); //TRUE

// Только время
$cal2 = clone $cal1;
$cal2->setTime($cal1->getTime() + 1.);
var_dump($cal1->equals($cal2)); //FALSE


Вычисляет разницу между заданным временем и временем объекта

  • « IntlCalendar::equals
  • IntlCalendar::fromDateTime »
  • PHP Manual
  • IntlCalendar
  • Вычисляет разницу между заданным временем и временем объекта

IntlCalendar::fieldDifference

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::fieldDifference — Вычисляет разницу между заданным временем и временем объекта

Описание

Объектно-ориентированный стиль

public IntlCalendar::fieldDifference(float $timestamp, int $field): int|false

Процедурный стиль

intlcal_field_difference(IntlCalendar $calendar, float $timestamp, int $field): int|false

Возвращает разницу между заданным временем и временем, установленным для объекта, относительно количества, указанного в параметре field.

Метод предназначен для последовательного вызова, сначала от наиболее значимой областью интересов до наименее значимой области. В качестве побочного эффекта, значение календаря для указанного поля увеличивается на возвращённую сумму.

Список параметров

calendar

Экземпляр IntlCalendar.

timestamp

Время, с которым сравнивается количество, представленное field. Чтобы результат был положительным, время, указанное в этом параметре, должно опережать время объекта, для которого вызывается метод.

field

Поле, представляющее сравниваемое количество.

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Возвращает разность времени (со знаком) в единицах измерения, связанных с указанным полем или 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 "Время до: ", IntlDateFormatter::formatObject($cal1), "\n";

printf(
"Разница во времени: %d год(лет), %d месяц(ев), "
. "%d день(дней), %d час(ов) и %d минуту(минут)\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)
);

// теперь оно было продвинуто к целевому времени, за исключением секунд,
// для которых мы не измеряли разницу
echo "Время после: ", IntlDateFormatter::formatObject($cal1), "\n";

Результат выполнения данного примера:

Время до: 29 fevr. 2012 09:00:11
Разница во времени: 1 год(лет), 0 месяц(ев), 1 день(дней), 0 час(ов) and 19 минуту(минут)
Время после: 1 mars 2013 09:19:11


Создаёт IntlCalendar из объекта или строки DateTime

  • « IntlCalendar::fieldDifference
  • IntlCalendar::get »
  • PHP Manual
  • IntlCalendar
  • Создаёт IntlCalendar из объекта или строки DateTime

IntlCalendar::fromDateTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a2)

IntlCalendar::fromDateTime — Создаёт IntlCalendar из объекта или строки DateTime

Описание

Объектно-ориентированный стиль

public static IntlCalendar::fromDateTime(DateTime|string $datetime, ?string $locale = null): ?IntlCalendar

Процедурный стиль

intlcal_from_date_time(DateTime|string $datetime, ?string $locale = null): ?IntlCalendar

Создаёт объект IntlCalendar либо из объекта DateTime, либо из строки, из которой может быть инициализирован объект DateTime.

Новый календарь будет представлять не только тот же момент, что и заданный DateTime (с учётом потери точности для дат в очень далёком в прошлом или будущем), но и тот же часовой пояс (с оговоркой, что если будут использоваться разные базы данных часовых поясов, то результаты могут отличаться).

Список параметров

datetime

Объект DateTime или строка (string, которая может быть передана в DateTime::__construct().

Возвращаемые значения

Созданный объект IntlCalendar или null в случае возникновения ошибки. Если передаётся строка (string), выбрасывается любое исключение, возникающее внутри конструктора DateTime.

Примеры

Пример #1 Пример использования IntlCalendar::fromDateTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

// то же, что и IntlCalendar::fromDateTime(new DateTime(...))
$cal1 = IntlCalendar::fromDateTime('2013-02-28 00:01:02 Europe/Berlin');

// Обратите внимание, что часовой пояс - Europe/Berlin, а не Europe/Lisbon по умолчанию
echo IntlDateFormatter::formatObject($cal1, 'yyyy MMMM d HH:mm:ss VVVV', 'de_DE'), "\n";

Результат выполнения данного примера:

2013 Februar 28 00:01:02 Deutschland Zeit


Получает значение поля

  • « IntlCalendar::fromDateTime
  • IntlCalendar::getActualMaximum »
  • PHP Manual
  • IntlCalendar
  • Получает значение поля

IntlCalendar::get

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::get — Получает значение поля

Описание

Объектно-ориентированный стиль

public IntlCalendar::get(int $field): int|false

Процедурный стиль

intlcal_get(IntlCalendar $calendar, int $field): int|false

Получает значение определённого поля.

Список параметров

calendar

Экземпляр IntlCalendar.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Целое число со значением поля времени.

Примеры

Пример #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


Максимальное значение для поля с учётом текущего времени объекта

  • « IntlCalendar::get
  • IntlCalendar::getActualMinimum »
  • PHP Manual
  • IntlCalendar
  • Максимальное значение для поля с учётом текущего времени объекта

IntlCalendar::getActualMaximum

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getActualMaximum — Максимальное значение для поля с учётом текущего времени объекта

Описание

Объектно-ориентированный стиль

public IntlCalendar::getActualMaximum(int $field): int|false

Процедурный стиль

intlcal_get_actual_maximum(IntlCalendar $calendar, int $field): int|false

Возвращает относительное максимальное значение поля для текущего времени. Точная семантика зависит от поля, но в общем случае это значение, которое было бы получено, если установить значение поля на наименьший относительный максимум и увеличивать его до тех пор, пока не будет достигнут глобальный максимум, чтобы обернуть значение поля, в котором возвращаемое значение будет глобальным максимумом или значением до переноса, соответственно.

Например, в григорианском календаре фактическое максимальное значение для дня месяца будет варьироваться от 28 до 31, в зависимости от месяца и года текущего времени.

Список параметров

calendar

Экземпляр IntlCalendar.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Целое число (int), представляющее максимальное значение в единицах измерения, связанное с данным 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() - Получает глобальное максимальное значение поля
  • IntlCalendar::getLeastMaximum() - Получает наименьший локальный максимум для поля
  • IntlCalendar::getActualMinimum() - Минимальное значение для поля с учётом текущего времени объекта


Минимальное значение для поля с учётом текущего времени объекта

  • « IntlCalendar::getActualMaximum
  • IntlCalendar::getAvailableLocales »
  • PHP Manual
  • IntlCalendar
  • Минимальное значение для поля с учётом текущего времени объекта

IntlCalendar::getActualMinimum

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getActualMinimum — Минимальное значение для поля с учётом текущего времени объекта

Описание

Объектно-ориентированный стиль

public IntlCalendar::getActualMinimum(int $field): int|false

Процедурный стиль

intlcal_get_actual_minimum(IntlCalendar $calendar, int $field): int|false

Возвращает относительное минимальное значение поля с учётом текущего времени. Точная семантика зависит от поля, но в общем случае это значение, которое можно было бы получить, если бы установить значение поля на наибольший относительный минимум для поля и уменьшать его до тех пор, пока не будет достигнут глобальный минимум или значение поля будет обёрнуто вокруг, в котором возвращаемое значение будет глобальным минимумом или значением до переноса, соответственно.

Для григорианского календаря это всегда то же самое, что и IntlCalendar::getMinimum().

Список параметров

calendar

Экземпляр IntlCalendar.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Целое число (int), представляющее значение поля или false в случае возникновения ошибки.

Смотрите также

  • IntlCalendar::getMinimum() - Получает глобальное минимальное значение поля
  • IntlCalendar::getGreatestMinimum() - Получает наибольшее локальное минимальное значение поля
  • IntlCalendar::getActualMaximum() - Максимальное значение для поля с учётом текущего времени объекта


Получает массив языковых стандартов, для которых есть данные

  • « IntlCalendar::getActualMinimum
  • IntlCalendar::getDayOfWeekType »
  • PHP Manual
  • IntlCalendar
  • Получает массив языковых стандартов, для которых есть данные

IntlCalendar::getAvailableLocales

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getAvailableLocales — Получает массив языковых стандартов, для которых есть данные

Описание

Объектно-ориентированный стиль

public static IntlCalendar::getAvailableLocales(): array

Процедурный стиль

intlcal_get_available_locales(): array

Предоставляет список языковых стандартов, для которых установлены календари. Начиная с ICU 51, это список всех установленных языковых стандартов ICU.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) строк (string), каждая из которых соответствует языковому стандарту.

Примеры

Пример #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
)


Сообщает, является ли день будним, выходным или днём с переходом между ними

  • « IntlCalendar::getAvailableLocales
  • IntlCalendar::getErrorCode »
  • PHP Manual
  • IntlCalendar
  • Сообщает, является ли день будним, выходным или днём с переходом между ними

IntlCalendar::getDayOfWeekType

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getDayOfWeekType — Сообщает, является ли день будним, выходным или днём с переходом между ними

Описание

Объектно-ориентированный стиль

public IntlCalendar::getDayOfWeekType(int $dayOfWeek): int|false

Процедурный стиль

intlcal_get_day_of_week_type(IntlCalendar $calendar, int $dayOfWeek): int|false

Возвращает, является ли указанный день рабочим днём (IntlCalendar::DOW_TYPE_WEEKDAY), выходным днём (IntlCalendar::DOW_TYPE_WEEKEND), днём, в течение которого происходит переход в выходные (IntlCalendar::DOW_TYPE_WEEKEND_OFFSET) или день, в течение которого прекращаются выходные (IntlCalendar::DOW_TYPE_WEEKEND_CEASE).

Если возврат либо
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET,
либо IntlCalendar::DOW_TYPE_WEEKEND_CEASE,
затем можно вызвать IntlCalendar::getWeekendTransition()
для получения времени перехода.

Для этой функции требуется ICU 4.4 или новее.

Список параметров

calendar

Экземпляр IntlCalendar.

dayOfWeek

Одна из констант: IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, ...,
IntlCalendar::DOW_SATURDAY.

Возвращаемые значения

Возвращает одну из констант:
IntlCalendar::DOW_TYPE_WEEKDAY,
IntlCalendar::DOW_TYPE_WEEKEND,
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET или
IntlCalendar::DOW_TYPE_WEEKEND_CEASE или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования IntlCalendar::getDayOfWeekType()

<?php
foreach (array('en_US', 'ar_SA') as $locale) {
echo "Языковой стандарт: ", Locale::getDisplayName($locale, "en_US"), "\n";

$cal = IntlCalendar::createInstance('UTC', $locale);

for ($i = IntlCalendar::DOW_SUNDAY; $i <= IntlCalendar::DOW_SATURDAY; $i++) {
$type = $cal->getDayOfWeekType($i);
$transition = ($type !== IntlCalendar::DOW_TYPE_WEEKDAY)
? $cal->getWeekendTransition($i)
: '';
echo $i, " ", $type, " ", $transition, "\n";
}
echo "\n";
}
?>

Результат выполнения данного примера:

Языковой стандарт: English (United States)
1 1 86400000
2 0
3 0
4 0
5 0
6 0
7 1 0

Языковой стандарт: Arabic (Saudi Arabia)
1 0
2 0
3 0
4 0
5 0
6 1 0
7 1 86400000


Получает последний код ошибки объекта

  • « IntlCalendar::getDayOfWeekType
  • IntlCalendar::getErrorMessage »
  • PHP Manual
  • IntlCalendar
  • Получает последний код ошибки объекта

IntlCalendar::getErrorCode

intlcal_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getErrorCode -- intlcal_get_error_code — Получает последний код ошибки объекта

Описание

Объектно-ориентированный стиль (метод):

public IntlCalendar::getErrorCode(): int|false

Процедурный стиль:

intlcal_get_error_code(IntlCalendar $calendar): int|false

Возвращает числовой код ошибки ICU для последнего вызова этого объекта (включая клонирование) или IntlCalendar, указанный для параметра calendar (в версии с процедурным стилем). Это может означать только предупреждение (отрицательный код ошибки) или полное отсутствие ошибки (U_ZERO_ERROR). Фактическое наличие ошибки можно проверить с помощью intl_is_failure().

Недействительные аргументы, обнаруженные на стороне PHP (до вызова функций библиотеки ICU), не записываются для этой функции.

Последнюю ошибку, которая произошла при любом вызове функции модуля intl, включая ошибки ранних аргументов, можно получить с помощью функции intl_get_error_code(). Эта функция сбрасывает глобальный код ошибки, а не код ошибки объекта.

Список параметров

calendar

Объект календаря в интерфейсе процедурного стиля.

Возвращаемые значения

Код ошибки ICU, указывающий на успешное выполнение, сбой или предупреждение. Возвращает false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования IntlCalendar::getErrorCode() и 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() - Получает последнее сообщение об ошибке для объекта
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя
  • intl_error_name() - Получить имя ошибки по её коду
  • intl_get_error_code() - Получить код последней ошибки
  • intl_get_error_message() - Получить описание ошибки


Получает последнее сообщение об ошибке для объекта

  • « IntlCalendar::getErrorCode
  • IntlCalendar::getFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Получает последнее сообщение об ошибке для объекта

IntlCalendar::getErrorMessage

intlcal_get_error_message

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getErrorMessage -- intlcal_get_error_message — Получает последнее сообщение об ошибке для объекта

Описание

Объектно-ориентированный стиль (метод):

public IntlCalendar::getErrorMessage(): string|false

Процедурный стиль:

intlcal_get_error_message(IntlCalendar $calendar): string|false

Возвращает сообщение об ошибке (если есть), связанное с ошибкой, о которой сообщает IntlCalendar::getErrorCode() or intlcal_get_error_code(). Если связанного сообщения об ошибке нет, будет возвращено только строковое представление имени константы ошибки. В противном случае сообщение об ошибке также включает сообщение, установленное на стороне привязки PHP.

Список параметров

calendar

Объект календаря в интерфейсе процедурного стиля.

Возвращаемые значения

Сообщение об ошибке, связанное с последней ошибкой, возникшей при вызове функции для этого объекта или строка, указывающая на отсутствие ошибки. Возвращает false в случае возникновения ошибки.

Примеры

Пример #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"


Получает первый день недели для языкового стандарта календаря

  • « IntlCalendar::getErrorMessage
  • IntlCalendar::getGreatestMinimum »
  • PHP Manual
  • IntlCalendar
  • Получает первый день недели для языкового стандарта календаря

IntlCalendar::getFirstDayOfWeek

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getFirstDayOfWeek — Получает первый день недели для языкового стандарта календаря

Описание

Объектно-ориентированный стиль

public IntlCalendar::getFirstDayOfWeek(): int|false

Процедурный стиль

intlcal_get_first_day_of_week(IntlCalendar $calendar): int|false

День недели, который считается началом недели: либо значение по умолчанию для этого языкового стандарта, либо значение, установленное с помощью IntlCalendar::setFirstDayOfWeek().

Список параметров

calendar

Экземпляр IntlCalendar.

Возвращаемые значения

Одна из констант: 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()); // Понедельник
$cal1->set(2013, 1 /* Февраль */, 3); // Воскресенье
var_dump($cal1->get(IntlCalendar::FIELD_WEEK_OF_YEAR)); // 5

$cal2 = IntlCalendar::createInstance(NULL, 'en_US');
var_dump($cal2->getFirstDayOfWeek()); // Воскресенье
$cal2->set(2013, 1 /* Февраль */, 3); // Воскресенье
var_dump($cal2->get(IntlCalendar::FIELD_WEEK_OF_YEAR)); // 6

Результат выполнения данного примера:

int(2)
int(5)
int(1)
int(6)

Смотрите также

  • IntlCalendar::setFirstDayOfWeek() - Устанавливает день, который является началом недели


Получает наибольшее локальное минимальное значение поля

  • « IntlCalendar::getFirstDayOfWeek
  • IntlCalendar::getKeywordValuesForLocale »
  • PHP Manual
  • IntlCalendar
  • Получает наибольшее локальное минимальное значение поля

IntlCalendar::getGreatestMinimum

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getGreatestMinimum — Получает наибольшее локальное минимальное значение поля

Описание

Объектно-ориентированный стиль

public IntlCalendar::getGreatestMinimum(int $field): int|false

Процедурный стиль

intlcal_get_greatest_minimum(IntlCalendar $calendar, int $field): int|false

Возвращает наибольшее локальное минимальное значение поля. Это должно быть значение, большее или равное значению, возвращаемому IntlCalendar::getActualMinimum(), которое, в свою очередь, больше или равно значению, возвращаемому IntlCalendar::getMinimum(). Все эти три функции возвращают одно и то же значение для григорианского календаря.

Список параметров

calendar

Экземпляр IntlCalendar.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Целое число (int), представляющее значение поля или false в случае возникновения ошибки.


Получает набор значений ключевых слов языкового стандарта

  • « IntlCalendar::getGreatestMinimum
  • IntlCalendar::getLeastMaximum »
  • PHP Manual
  • IntlCalendar
  • Получает набор значений ключевых слов языкового стандарта

IntlCalendar::getKeywordValuesForLocale

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getKeywordValuesForLocale — Получает набор значений ключевых слов языкового стандарта

Описание

Объектно-ориентированный стиль

public static IntlCalendar::getKeywordValuesForLocale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false

Процедурный стиль

intlcal_get_keyword_values_for_locale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false

Для заданного ключа языкового стандарта получает набор значений для этого ключа, которые приведут к другому поведению. На данный момент поддерживается только ключевое слово 'calendar'.

Для работы функции требуется ICU 4.2 или новее.

Список параметров

keyword

Ключевое слово языкового стандарта, для которого нужно запросить релевантные значения. Поддерживается только 'calendar'.

locale

Языковой стандарт, к которому должна быть добавлена пара "ключевое слово/значение".

onlyCommon

Определяет, отображать ли только значения, обычно используемые для указанного языкового стандарта.

Возвращаемые значения

Итератор, который выдаёт строки со значениями ключевых слов языкового стандарта или 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
)


Получает наименьший локальный максимум для поля

  • « IntlCalendar::getKeywordValuesForLocale
  • IntlCalendar::getLocale »
  • PHP Manual
  • IntlCalendar
  • Получает наименьший локальный максимум для поля

IntlCalendar::getLeastMaximum

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getLeastMaximum — Получает наименьший локальный максимум для поля

Описание

Объектно-ориентированный стиль

public IntlCalendar::getLeastMaximum(int $field): int|false

Процедурный стиль

intlcal_get_least_maximum(IntlCalendar $calendar, int $field): int|false

Возвращает наименьший локальный максимум для поля. Это должно быть значение, меньшее или равное значению, возвращаемому IntlCalendar::getActualMaxmimum(), которое, в свою очередь, меньше или равно значению, возвращаемому IntlCalendar::getMaximum().

Список параметров

calendar

Экземпляр IntlCalendar.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Целое число (int), представляющее значение поля или false в случае возникновения ошибки.

Примеры

Пример #1 Пример максимального значения

<?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() - Максимальное значение для поля с учётом текущего времени объекта
  • IntlCalendar::getMaximum() - Получает глобальное максимальное значение поля
  • IntlCalendar::getGreatestMinimum() - Получает наибольшее локальное минимальное значение поля


Получает языковой стандарт, связанный с объектом

  • « IntlCalendar::getLeastMaximum
  • IntlCalendar::getMaximum »
  • PHP Manual
  • IntlCalendar
  • Получает языковой стандарт, связанный с объектом

IntlCalendar::getLocale

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getLocale — Получает языковой стандарт, связанный с объектом

Описание

Объектно-ориентированный стиль

public IntlCalendar::getLocale(int $type): string|false

Процедурный стиль

intlcal_get_locale(IntlCalendar $calendar, int $type): string|false

Возвращает языковой стандарт, связанный с объектом.

Список параметров

calendar

Экземпляр IntlCalendar.

type

Следует ли получать фактический языковой стандарт (языковой стандарт, из которого происходят данные календаря, с помощью Locale::ACTUAL_LOCALE) или действительный языковой стандарт, т.к. наиболее конкретный языковой стандарт, поддерживаемый ICU относительно запрошенного языкового стандарта - смотрите Locale::VALID_LOCALE. От наиболее общих к наиболее частным, языковые стандарты отсортированы следующим образом: фактический языковой стандарт, допустимый языковой стандарт, запрошенный языковой стандарт.

Возвращаемые значения

Языковой стандарт в виде строки или 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"


Получает глобальное максимальное значение поля

  • « IntlCalendar::getLocale
  • IntlCalendar::getMinimalDaysInFirstWeek »
  • PHP Manual
  • IntlCalendar
  • Получает глобальное максимальное значение поля

IntlCalendar::getMaximum

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getMaximum — Получает глобальное максимальное значение поля

Описание

Объектно-ориентированный стиль

public IntlCalendar::getMaximum(int $field): int|false

Процедурный стиль

intlcal_get_maximum(IntlCalendar $calendar, int $field): int|false

Получает глобальное максимальное значение поля в этом конкретном календаре. Это значение больше или равно значению, возвращаемому IntlCalendar::getActualMaximum(), которое, в свою очередь, больше или равно значению, возвращаемому IntlCalendar::getLeastMaximum().

Список параметров

calendar

Экземпляр IntlCalendar.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Целое число (int), представляющее значение для данного поля или false в случае возникновения ошибки.

Смотрите также

  • IntlCalendar::getActualMaximum() - Максимальное значение для поля с учётом текущего времени объекта
  • IntlCalendar::getLeastMaximum() - Получает наименьший локальный максимум для поля
  • IntlCalendar::getMinimum() - Получает глобальное минимальное значение поля


Получает минимальное количество дней, которое может быть в первой неделе в году или месяце

  • « IntlCalendar::getMaximum
  • IntlCalendar::getMinimum »
  • PHP Manual
  • IntlCalendar
  • Получает минимальное количество дней, которое может быть в первой неделе в году или месяце

IntlCalendar::getMinimalDaysInFirstWeek

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getMinimalDaysInFirstWeek — Получает минимальное количество дней, которое может быть в первой неделе в году или месяце

Описание

Объектно-ориентированный стиль

public IntlCalendar::getMinimalDaysInFirstWeek(): int|false

Процедурный стиль

intlcal_get_minimal_days_in_first_week(IntlCalendar $calendar): int|false

Возвращает наименьшее количество дней, которые должны пройти в первую неделю года или месяца в новом году или месяце. Например, в григорианском календаре, если это значение равно 1, то первая неделя года обязательно будет включать 1 января, а если это значение равно 7, то неделя с 1 января будет первой неделей года, только если день недели 1 января совпадает с днём недели, возвращаемым IntlCalendar::getFirstDayOfWeek(); в противном случае это будет последняя неделя прошлого года.

Список параметров

calendar

Экземпляр IntlCalendar.

Возвращаемые значения

Целое число (int, представляющее количество дней или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования IntlCalendar::getMinimalDaysInFirstWeek()

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'en_US');

$cal = new IntlGregorianCalendar(2013, 0 /* Январь */, 2);
var_dump(IntlDateFormatter::formatObject($cal, 'cccc')); // Среда

var_dump($cal->getMinimalDaysInFirstWeek(), // 1
$cal->getFirstDayofWeek()); // 1 (Воскресенье)

// Первая неделя 2013 года
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

$cal->setMinimalDaysInFirstWeek(4);
// Всё ещё первая неделя 2013 года (в 1-й неделе 5 дней в новом году)
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

$cal->setMinimalDaysInFirstWeek(6);
// 53 неделя 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"


Получает глобальное минимальное значение поля

  • « IntlCalendar::getMinimalDaysInFirstWeek
  • IntlCalendar::getNow »
  • PHP Manual
  • IntlCalendar
  • Получает глобальное минимальное значение поля

IntlCalendar::getMinimum

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getMinimum — Получает глобальное минимальное значение поля

Описание

Объектно-ориентированный стиль

public IntlCalendar::getMinimum(int $field): int|false

Процедурный стиль

intlcal_get_minimum(IntlCalendar $calendar, int $field): int|false

Получает глобальное минимальное значение поля в этом конкретном календаре. Это значение меньше или равно значению, возвращаемому IntlCalendar::getActualMinimum(), которое, в свою очередь, меньше или равно значению, возвращаемому IntlCalendar::getGreatestMinimum(). Для григорианского календаря эти три функции всегда возвращают одно и то же значение (для каждого поля).

Список параметров

calendar

Экземпляр IntlCalendar.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Целое число (int), представляющее значение для данного поля или false в случае возникновения ошибки.


Получает число, представляющее текущее время

  • « IntlCalendar::getMinimum
  • IntlCalendar::getRepeatedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Получает число, представляющее текущее время

IntlCalendar::getNow

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getNow — Получает число, представляющее текущее время

Описание

Объектно-ориентированный стиль

public static IntlCalendar::getNow(): float

Процедурный стиль

intlcal_get_now(): float

Количество миллисекунд, прошедших с начала эпохи Unix. Число определяется системным временем.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число с плавающей точкой (float), представляющее количество миллисекунд с начала эпохи Unix, не считая дополнительных секунд.

Примеры

Пример #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


Получает поведение для обработки повторяющегося времени процессора

  • « IntlCalendar::getNow
  • IntlCalendar::getSkippedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Получает поведение для обработки повторяющегося времени процессора

IntlCalendar::getRepeatedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getRepeatedWallTimeOption — Получает поведение для обработки повторяющегося времени процессора

Описание

Объектно-ориентированный стиль

public IntlCalendar::getRepeatedWallTimeOption(): int

Процедурный стиль

intlcal_get_repeated_wall_time_option(IntlCalendar $calendar): int

Получает текущую стратегию работы со временем процессора, которая повторяется всякий раз, когда часы переводятся назад во время переходов на летнее время. Значение по умолчанию - IntlCalendar::WALLTIME_LAST.

Для этой функции требуется ICU 4.9 или новее.

Список параметров

calendar

Экземпляр IntlCalendar.

Возвращаемые значения

Одна из констант: IntlCalendar::WALLTIME_FIRST или 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);

// 27 октября в 02:00 часы переводятся на 1 час назад с GMT+01 на GMT+00.
$cal = new IntlGregorianCalendar(2013, 9 /* Октябрь */, 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() - Получает поведение для обработки пропущенного времени процессора
  • IntlCalendar::setSkippedWallTimeOption() - Устанавливает поведение для обработки пропущенного времени процессора при положительных переходах смещения часового пояса
  • IntlCalendar::setRepeatedWallTimeOption() - Устанавливает поведение для обработки повторяющегося времени процессора при отрицательных переходах смещения часового пояса


Получает поведение для обработки пропущенного времени процессора

  • « IntlCalendar::getRepeatedWallTimeOption
  • IntlCalendar::getTime »
  • PHP Manual
  • IntlCalendar
  • Получает поведение для обработки пропущенного времени процессора

IntlCalendar::getSkippedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getSkippedWallTimeOption — Получает поведение для обработки пропущенного времени процессора

Описание

Объектно-ориентированный стиль

public IntlCalendar::getSkippedWallTimeOption(): int

Процедурный стиль

intlcal_get_skipped_wall_time_option(IntlCalendar $calendar): int

Получает текущую стратегию для работы со временем процессора, которое пропускается всякий раз, когда часы переводятся во время переходов времени на летнее время. Значение по умолчанию - IntlCalendar::WALLTIME_LAST.

Чтобы эта опция имела какой-либо эффект, календарь должен быть в мягком режиме, в противном случае попытка установить несуществующее время вызовет ошибку.

Для этой функции требуется ICU 4.9 или новее.

Список параметров

calendar

Экземпляр IntlCalendar.

Возвращаемые значения

Одна из констант: IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST или
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);

// 31 марта в 01:00 часы переводятся на 1 час вперёд и с GMT+00 на 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() - Получает поведение для обработки повторяющегося времени процессора
  • IntlCalendar::setSkippedWallTimeOption() - Устанавливает поведение для обработки пропущенного времени процессора при положительных переходах смещения часового пояса
  • IntlCalendar::setRepeatedWallTimeOption() - Устанавливает поведение для обработки повторяющегося времени процессора при отрицательных переходах смещения часового пояса


Получает время, представленное в данный момент объектом

  • « IntlCalendar::getSkippedWallTimeOption
  • IntlCalendar::getTimeZone »
  • PHP Manual
  • IntlCalendar
  • Получает время, представленное в данный момент объектом

IntlCalendar::getTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getTime — Получает время, представленное в данный момент объектом

Описание

Объектно-ориентированный стиль

public IntlCalendar::getTime(): float|false

Процедурный стиль

intlcal_get_time(IntlCalendar $calendar): float|false

Возвращает время, связанное с этим объектом, выраженное в миллисекундах с начала эпохи Unix.

Список параметров

calendar

Экземпляр IntlCalendar.

Возвращаемые значения

Число с плавающей точкой (float), представляющее количество миллисекунд, прошедших с начала эпохи Unix (1 января 1970 00:00:00 UTC) или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования IntlCalendar::getTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = new IntlGregorianCalendar(2013, 4 /* Май */, 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() - Получает число, представляющее текущее время


Получает часовой пояс объекта

  • « IntlCalendar::getTime
  • IntlCalendar::getType »
  • PHP Manual
  • IntlCalendar
  • Получает часовой пояс объекта

IntlCalendar::getTimeZone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getTimeZone — Получает часовой пояс объекта

Описание

Объектно-ориентированный стиль

public IntlCalendar::getTimeZone(): IntlTimeZone|false

Процедурный стиль

intlcal_get_time_zone(IntlCalendar $calendar): IntlTimeZone|false

Возвращает объект IntlTimeZone, связанный с календарём.

Список параметров

calendar

Экземпляр IntlCalendar.

Возвращаемые значения

Объект IntlTimeZone, соответствующий тому, который используется внутри объекта. Возвращает false в случае возникновения ошибки.

Примеры

Пример #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() - Устанавливает часовой пояс, используемый календарём
  • IntlCalendar::createInstance() - Создаёт новый объект IntlCalendar
  • IntlGregorianCalendar::__construct() - Конструктор класса григорианского календаря


Получает тип календаря

  • « IntlCalendar::getTimeZone
  • IntlCalendar::getWeekendTransition »
  • PHP Manual
  • IntlCalendar
  • Получает тип календаря

IntlCalendar::getType

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getType — Получает тип календаря

Описание

Объектно-ориентированный стиль

public IntlCalendar::getType(): string

Процедурный стиль

intlcal_get_type(IntlCalendar $calendar): string

Строка, описывающая тип календаря. Одно из допустимых значений для значения ключевого слова календаря 'calendar'.

Список параметров

calendar

Экземпляр IntlCalendar.

Возвращаемые значения

Строка (string), представляющая тип календаря, например, 'gregorian', 'islamic' и т.д.

Примеры

Пример #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"


Получает время дня, когда выходные начинаются или заканчиваются

  • « IntlCalendar::getType
  • IntlCalendar::inDaylightTime »
  • PHP Manual
  • IntlCalendar
  • Получает время дня, когда выходные начинаются или заканчиваются

IntlCalendar::getWeekendTransition

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getWeekendTransition — Получает время дня, когда выходные начинаются или заканчиваются

Описание

Объектно-ориентированный стиль

public IntlCalendar::getWeekendTransition(int $dayOfWeek): int|false

Процедурный стиль

intlcal_get_weekend_transition(IntlCalendar $calendar, int $dayOfWeek): int|false

Возвращает количество миллисекунд после полуночи, когда выходные начинаются или заканчиваются.

Применимо только для дней недели, для которых IntlCalendar::getDayOfWeekType() возвращает либо IntlCalendar::DOW_TYPE_WEEKEND_OFFSET, либо IntlCalendar::DOW_TYPE_WEEKEND_CEASE. Вызов этой функции для других дней недели является ошибкой.

Для этой функции требуется ICU 4.4 или новее.

Список параметров

calendar

Экземпляр IntlCalendar.

dayOfWeek

Одна из констант: IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, ...,
IntlCalendar::DOW_SATURDAY.

Возвращаемые значения

Количество миллисекунд после полуночи, когда выходные начинаются или заканчиваются или false в случае возникновения ошибки.

Примеры

Примеры смотрите в описании функции IntlCalendar::getDayOfWeekType().


Определяет, переходит ли время объекта на летнее время

  • « IntlCalendar::getWeekendTransition
  • IntlCalendar::isEquivalentTo »
  • PHP Manual
  • IntlCalendar
  • Определяет, переходит ли время объекта на летнее время

IntlCalendar::inDaylightTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::inDaylightTime — Определяет, переходит ли время объекта на летнее время

Описание

Объектно-ориентированный стиль

public IntlCalendar::inDaylightTime(): bool

Процедурный стиль

intlcal_in_daylight_time(IntlCalendar $calendar): bool

Определяет, использует ли представленный этим объектом экземпляр и часовой пояс этого объекта летнее время в данный момент.

Список параметров

calendar

Экземпляр IntlCalendar.

Возвращаемые значения

Возвращает true, если дата указана в летнее время, в противном случае возвращает false.

В случае возникновения ошибки также возвращается false. Для обнаружения условий ошибки используйте intl_get_error_code() или настройте выбрасывание исключений в Intl.

Примеры

Пример #1 Пример использования IntlCalendar::inDaylightTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 6 /* Июль */, 1, 4, 56, 31);
var_dump($cal->inDaylightTime()); // true
$cal->set(IntlCalendar::FIELD_MONTH, 11 /* Декабрь */);
var_dump($cal->inDaylightTime()); // false

//DST end transition on 2013-10-27 at 0200 (время процессора назад на 1 час)
$cal = new IntlGregorianCalendar(2013, 9 /* Октябрь */, 27, 1, 30, 0);

var_dump($cal->inDaylightTime()); // false (по умолчанию WALLTIME_LAST)

$cal->setRepeatedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1); // принудительный перерасчёт времени
var_dump($cal->inDaylightTime()); // true


Определяет, равен ли другой календарь, но для другого времени

  • « IntlCalendar::inDaylightTime
  • IntlCalendar::isLenient »
  • PHP Manual
  • IntlCalendar
  • Определяет, равен ли другой календарь, но для другого времени

IntlCalendar::isEquivalentTo

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::isEquivalentTo — Определяет, равен ли другой календарь, но для другого времени

Описание

Объектно-ориентированный стиль

public IntlCalendar::isEquivalentTo(IntlCalendar $other): bool

Процедурный стиль

intlcal_is_equivalent_to(IntlCalendar $calendar, IntlCalendar $other): bool

Возвращает, равны ли этот и данный объект для всех целей, кроме установленного времени. Языковые стандарты могут не совпадать, если из-за такого несоответствия не происходит никаких изменений в поведении. Сюда входит часовой пояс, установлен ли мягкий режим, повторяющиеся и пропущенные настройки времени процессора, дни недели, когда выходные начинаются и заканчиваются и время, когда происходят такие переходы. Также может содержать другие настройки, специфичные для календаря, например, момент перехода между григорианским и юлианским календарём.

Список параметров

calendar

Экземпляр IntlCalendar.

other

Другой календарь, с которым будет производиться сравнение.

Возвращаемые значения

При отсутствии ошибок аргумента возвращает true, если календари равны, за исключением, возможно, установленного времени.

Примеры

Пример #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 (Понедельник)
$cal3->getFirstDayOfWeek()); // 1 (Воскресенье)

Результат выполнения данного примера:

bool(true)
bool(false)
int(2)
int(1)

Смотрите также

  • IntlCalendar::equals() - Сравнивает время двух объектов IntlCalendar на предмет равенства


Определяет, является ли интерпретация даты/времени мягкой

  • « IntlCalendar::isEquivalentTo
  • IntlCalendar::isSet »
  • PHP Manual
  • IntlCalendar
  • Определяет, является ли интерпретация даты/времени мягкой

IntlCalendar::isLenient

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::isLenient — Определяет, является ли интерпретация даты/времени мягкой

Описание

Объектно-ориентированный стиль

public IntlCalendar::isLenient(): bool

Процедурный стиль

intlcal_is_lenient(IntlCalendar $calendar): bool

Возвращает, является ли текущая интерпретация даты и времени мягкой (по умолчанию). В этом случае некоторые значения полей вне допустимого диапазона будут приняты вместо того, чтобы вызывать ошибку.

Список параметров

calendar

Экземпляр IntlCalendar.

Возвращаемые значения

Логическое значение (bool), указывающее, установлен ли в календаре мягкий режим.

Примеры

Пример #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 /* Июль */, 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)); // ошибка

Результат выполнения данного примера:

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


Определяет, установлено ли поле

  • « IntlCalendar::isLenient
  • IntlCalendar::isWeekend »
  • PHP Manual
  • IntlCalendar
  • Определяет, установлено ли поле

IntlCalendar::isSet

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::isSet — Определяет, установлено ли поле

Описание

Объектно-ориентированный стиль

public IntlCalendar::isSet(int $field): bool

Процедурный стиль

intlcal_is_set(IntlCalendar $calendar, int $field): bool

Возвращает, установлено ли поле (в отличие от clear). Установленные поля приоритетнее неустановленных полей и их значений по умолчанию при вычислении даты и времени. Поля, установленные позже приоритетнее полей, установленных ранее.

Список параметров

calendar

Экземпляр IntlCalendar.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

В случае отсутствия ошибок аргумента возвращает true, если поле установлено.

Примеры

Смотрите пример в описании метода IntlCalendar::clear().

Смотрите также

  • IntlCalendar::clear() - Очищает поле или все поля
  • IntlCalendar::set() - Устанавливает поле времени или сразу несколько общих полей


Определяет, приходятся ли определённые дата/время на выходные

  • « IntlCalendar::isSet
  • IntlCalendar::roll »
  • PHP Manual
  • IntlCalendar
  • Определяет, приходятся ли определённые дата/время на выходные

IntlCalendar::isWeekend

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::isWeekend — Определяет, приходятся ли определённые дата/время на выходные

Описание

Объектно-ориентированный стиль

public IntlCalendar::isWeekend(?float $timestamp = null): bool

Процедурный стиль

intlcal_is_weekend(IntlCalendar $calendar, ?float $timestamp = null): bool

Возвращает, является ли текущее время объекта или заданная временная метка выходными в календарной системе этого объекта.

Для этой функции требуется ICU 4.4 или новее.

Список параметров

calendar

Экземпляр IntlCalendar.

timestamp

Необязательная метка времени, представляющая количество миллисекунд с начала эпохи Unix, исключая дополнительные секунды. Если null, вместо этого используется текущее время объекта.

Возвращаемые значения

Логическое значение (bool), указывающее, является ли время объекта выходными.

В случае возникновения ошибки также возвращается false. Для обнаружения условий ошибки используйте intl_get_error_code() или настройте выбрасывание исключений в Intl.

Примеры

Пример #1 Пример использования IntlCalendar::isWeekend()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

$cal = new IntlGregorianCalendar(NULL, 'en_US');
$cal->set(2013, 6 /* Июль */, 7); // Воскресенье

var_dump($cal->isWeekend()); // true
var_dump($cal->isWeekend(strtotime('2013-07-01 00:00:00'))); // false, Понедельник

$cal = new IntlGregorianCalendar(NULL, 'ar_SA');
$cal->set(2013, 6 /* Июль */, 7); // Воскресенье
var_dump($cal->isWeekend()); // false, воскресенье не является выходным днём в этом календаре

Смотрите также

  • IntlCalendar::getDayOfWeekType() - Сообщает, является ли день будним, выходным или днём с переходом между ними
  • IntlCalendar::getWeekendTransition() - Получает время дня, когда выходные начинаются или заканчиваются


Добавляет значение в поле без переноса в более важные поля

  • « IntlCalendar::isWeekend
  • IntlCalendar::set »
  • PHP Manual
  • IntlCalendar
  • Добавляет значение в поле без переноса в более важные поля

IntlCalendar::roll

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::roll — Добавляет значение в поле без переноса в более важные поля

Описание

Объектно-ориентированный стиль

public IntlCalendar::roll(int $field, int|bool $value): bool

Процедурный стиль

intlcal_roll(IntlCalendar $calendar, int $field, int|bool $value): bool

Добавляет количество (со знаком) в поле. Отличие от IntlCalendar::add() состоит в том, что когда значение поля переполняется, оно не переносится в более важные поля.

Список параметров

calendar

Экземпляр IntlCalendar.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

value

Количество (со знаком), добавляемое к полю, true для сворачивания (добавление 1) или false для скатывания вниз (вычитание 1).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования IntlCalendar::roll()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 5 /* Июнь */, 30);

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
var_dump(IntlDateFormatter::formatObject($cal)); // "01/07/2013, 00:00:00"

$cal->set(2013, 5 /* Июнь */, 30);
$cal->roll(IntlCalendar::FIELD_DAY_OF_MONTH, true); // свернуть так же, как скатиться +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() - Добавляет количество (со знаком) времени в поле
  • IntlCalendar::set() - Устанавливает поле времени или сразу несколько общих полей


Устанавливает поле времени или сразу несколько общих полей

  • « IntlCalendar::roll
  • IntlCalendar::setDate »
  • PHP Manual
  • IntlCalendar
  • Устанавливает поле времени или сразу несколько общих полей

IntlCalendar::set

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::set — Устанавливает поле времени или сразу несколько общих полей

Описание

Объектно-ориентированный стиль

public IntlCalendar::set(int $field, int $value): true
public IntlCalendar::set(
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
): true

Процедурный стиль

intlcal_set(IntlCalendar $cal, int $field, int $value): true
intlcal_set(
IntlCalendar $cal,
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
): bool

Устанавливает либо конкретное поле на заданное значение, либо устанавливает сразу несколько общих полей. Диапазон допустимых значений зависит от того, использует ли календарь мягкий режим.

Для полей, которые конфликтуют, поля, которые устанавливаются позже, имеют приоритет.

Этот метод нельзя вызвать ровно с четырьмя аргументами.

Список параметров

cal

Экземпляр IntlCalendar.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

value

Новое значение указанного поля.

year

Новое значение для IntlCalendar::FIELD_YEAR.

month

Новое значение для IntlCalendar::FIELD_MONTH. Последовательность месяцев отсчитывается от нуля, т.е. январь представлен 0, февраль - 1, ..., декабрь - 11, а Тринадцатый месяц (если в календаре) - 12.

dayOfMonth

Новое значение для IntlCalendar::FIELD_DAY_OF_MONTH.

hour

Новое значение для IntlCalendar::FIELD_HOUR_OF_DAY.

minute

Новое значение для IntlCalendar::FIELD_MINUTE.

second

Новое значение для IntlCalendar::FIELD_SECOND.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #1 Пример использования IntlCalendar::set()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

// Вызовы, сделанные позже, приоритетнее
$cal = new IntlGregorianCalendar(2013, 6 /* Июль */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
var_dump(IntlDateFormatter::formatObject($cal));

$cal = new IntlGregorianCalendar(2013, 6 /* Июль */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
// Время еще не пересчитано. Если мы очистим EXTENDED_YEAR,
// будет использован предыдущий год.
$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() - Получает значение поля
  • IntlCalendar::add() - Добавляет количество (со знаком) времени в поле
  • IntlCalendar::roll() - Добавляет значение в поле без переноса в более важные поля


Set a date fields

  • « IntlCalendar::set
  • IntlCalendar::setDateTime »
  • PHP Manual
  • IntlCalendar
  • Set a date fields

IntlCalendar::setDate

(PHP 8 >= 8.3.0)

IntlCalendar::setDate — Set a date fields

Описание

public IntlCalendar::setDate(int $year, int $month, int $dayOfMonth): void

Sets a date fields to the given value.

Список параметров

year

The new value for IntlCalendar::FIELD_YEAR.

month

The new value for IntlCalendar::FIELD_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.

dayOfMonth

The new value for IntlCalendar::FIELD_DAY_OF_MONTH.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 IntlCalendar::setDate() example

<?php
$intlCal = IntlCalendar::createInstance('UTC');

$intlCal->setDate(2012, 1, 29);
?>


Set a date and time fields

  • « IntlCalendar::setDate
  • IntlCalendar::setFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Set a date and time fields

IntlCalendar::setDateTime

(PHP 8 >= 8.3.0)

IntlCalendar::setDateTime — Set a date and time fields

Описание

public IntlCalendar::setDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
int $second = null
): void

Sets a date and time fields to the given value.

Список параметров

year

The new value for IntlCalendar::FIELD_YEAR.

month

The new value for IntlCalendar::FIELD_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.

dayOfMonth

The new value for IntlCalendar::FIELD_DAY_OF_MONTH.

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.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 IntlCalendar::setDateTime() example

<?php
$intlCal = IntlCalendar::createInstance('UTC');

$intlCal->setDateTime(2012, 1, 29, 23, 58);
?>


Устанавливает день, который является началом недели

  • « IntlCalendar::setDateTime
  • IntlCalendar::setLenient »
  • PHP Manual
  • IntlCalendar
  • Устанавливает день, который является началом недели

IntlCalendar::setFirstDayOfWeek

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setFirstDayOfWeek — Устанавливает день, который является началом недели

Описание

Объектно-ориентированный стиль

public IntlCalendar::setFirstDayOfWeek(int $dayOfWeek): true

Процедурный стиль

intlcal_set_first_day_of_week(IntlCalendar $calendar, int $dayOfWeek): true

Определяет день недели, который считается началом недели. Это влияет на поведение полей, которые зависят от концепции начала и конца недели, например: IntlCalendar::FIELD_WEEK_OF_YEAR и IntlCalendar::FIELD_YEAR_WOY.

Список параметров

calendar

Экземпляр IntlCalendar.

dayOfWeek

Одна из констант IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, ...,
IntlCalendar::DOW_SATURDAY.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #1 Пример использования IntlCalendar::setFirstDayOfWeek()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');

$cal = IntlCalendar::createInstance();
$cal->set(2013, 5 /* Июнь */, 30); // Воскресенье

var_dump($cal->getFirstDayOfWeek()); // 2 (Понедельник)

echo IntlDateFormatter::formatObject($cal, <<<EOD
'местный день недели: 'cc'
неделя месяца : 'W'
неделя года : 'ww
EOD
), "\n";

$cal->setFirstDayOfWeek(IntlCalendar::DOW_SUNDAY);

echo IntlDateFormatter::formatObject($cal, <<<EOD
'местный день недели: 'cc'
неделя месяца : 'W'
неделя года : 'ww
EOD
), "\n";

Результат выполнения данного примера:

int(2)
местный день недели: 7
неделя месяца    : 4
неделя года     : 26
местный день недели: 1
неделя месяца    : 5
неделя года     : 27


Устанавливает, должна ли интерпретация даты/времени быть мягкой

  • « IntlCalendar::setFirstDayOfWeek
  • IntlCalendar::setMinimalDaysInFirstWeek »
  • PHP Manual
  • IntlCalendar
  • Устанавливает, должна ли интерпретация даты/времени быть мягкой

IntlCalendar::setLenient

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setLenient — Устанавливает, должна ли интерпретация даты/времени быть мягкой

Описание

Объектно-ориентированный стиль

public IntlCalendar::setLenient(bool $lenient): true

Процедурный стиль

intlcal_set_lenient(IntlCalendar $calendar, bool $lenient): true

Определяет, является ли календарь "мягким" режимом. В таком режиме принимаются некоторые из значений, выходящих за границы для некоторых полей, поведение аналогично поведению IntlCalendar::add() (т.е. значение переносится каждый раз в более важные поля). Если мягкий режим выключен, такие значения будут вызывать ошибку.

Список параметров

calendar

Экземпляр IntlCalendar.

lenient

Используйте true для активации мягкого режима; false для выключения.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Смотрите пример в описании метода IntlCalendar::isLenient().


Устанавливает минимальное количество дней, которое может быть в первой неделе в году или месяце

  • « IntlCalendar::setLenient
  • IntlCalendar::setRepeatedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Устанавливает минимальное количество дней, которое может быть в первой неделе в году или месяце

IntlCalendar::setMinimalDaysInFirstWeek

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

IntlCalendar::setMinimalDaysInFirstWeek — Устанавливает минимальное количество дней, которое может быть в первой неделе в году или месяце

Описание

Объектно-ориентированный стиль

public IntlCalendar::setMinimalDaysInFirstWeek(int $days): true

Процедурный стиль

intlcal_set_minimal_days_in_first_week(IntlCalendar $calendar, int $days): true

Устанавливает наименьшее количество дней, которые должны пройти в первую неделю года или месяца в новом году или месяце. Например, в григорианском календаре, если это значение равно 1, то первая неделя года обязательно будет включать 1 января, а если это значение равно 7, то неделя с 1 января будет первой неделей года, только если день недели 1 января совпадает с днём недели, возвращаемым IntlCalendar::getFirstDayOfWeek(); в противном случае это будет последняя неделя прошлого года.

Список параметров

calendar

Экземпляр IntlCalendar.

days

Количество минимальных дней, которые нужно установить.

Возвращаемые значения

Функция всегда возвращает true.

Ошибки

Метод выбрасывает ошибку ValueError, если параметр days находится вне диапазона (меньше 1 или больше 7).

Список изменений

Версия | Описание
8.0.0 | В случае некорректного ввода данных теперь выдаётся ошибка ValueError; ранее возвращалось значение false.


Устанавливает поведение для обработки повторяющегося времени процессора при отрицательных переходах смещения часового пояса

  • « IntlCalendar::setMinimalDaysInFirstWeek
  • IntlCalendar::setSkippedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Устанавливает поведение для обработки повторяющегося времени процессора при отрицательных переходах смещения часового пояса

IntlCalendar::setRepeatedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setRepeatedWallTimeOption — Устанавливает поведение для обработки повторяющегося времени процессора при отрицательных переходах смещения часового пояса

Описание

Объектно-ориентированный стиль

public IntlCalendar::setRepeatedWallTimeOption(int $option): true

Процедурный стиль

intlcal_set_repeated_wall_time_option(IntlCalendar $calendar, int $option): true

Устанавливает текущую стратегию работы со временем процессора, которая повторяется всякий раз, когда часы переводятся назад во время перехода на летнее время. Значение по умолчанию - IntlCalendar::WALLTIME_LAST (момент после перехода на летнее время). Другое возможное значение - IntlCalendar::WALLTIME_FIRST (момент, который наступает во время перехода на летнее время).

Для этой функции требуется ICU 4.9 или новее.

Список параметров

calendar

Экземпляр IntlCalendar.

option

Одна из констант: IntlCalendar::WALLTIME_FIRST или IntlCalendar::WALLTIME_LAST.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Смотрите примеры в описании функции IntlCalendar::getRepeatedWallTimeOption().

Смотрите также

  • intlCalendar::getRepeatedWallTimeOption() - Получает поведение для обработки повторяющегося времени процессора
  • intlCalendar::setSkippedWallTimeOption() - Устанавливает поведение для обработки пропущенного времени процессора при положительных переходах смещения часового пояса
  • intlCalendar::getSkippedWallTimeOption() - Получает поведение для обработки пропущенного времени процессора


Устанавливает поведение для обработки пропущенного времени процессора при положительных переходах смещения часового пояса

  • « IntlCalendar::setRepeatedWallTimeOption
  • IntlCalendar::setTime »
  • PHP Manual
  • IntlCalendar
  • Устанавливает поведение для обработки пропущенного времени процессора при положительных переходах смещения часового пояса

IntlCalendar::setSkippedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setSkippedWallTimeOption — Устанавливает поведение для обработки пропущенного времени процессора при положительных переходах смещения часового пояса

Описание

Объектно-ориентированный стиль

public IntlCalendar::setSkippedWallTimeOption(int $option): true

Процедурный стиль

intlcal_set_skipped_wall_time_option(IntlCalendar $calendar, int $option): true

Устанавливает текущую стратегию для работы со временем процессора, которое пропускается всякий раз, когда часы переводятся на летнее время. Значение по умолчанию - IntlCalendar::WALLTIME_LAST (момент, когда время процессора на один час больше). Альтернативные значения: IntlCalendar::WALLTIME_FIRST (момент, когда время процессора на один час меньше) и IntlCalendar::WALLTIME_NEXT_VALID (момент, когда начинается летнее время).

Влияет только на момент, представленный календарём (как сообщает IntlCalendar::getTime()), значения поля не будут переписаны соответствующим образом.

Чтобы эта опция имела какой-либо эффект, календарь должен быть в мягком режиме, в противном случае попытка установить несуществующее время вызовет ошибку. error.

Для этой функции требуется ICU 4.9 или новее.

Список параметров

calendar

Экземпляр IntlCalendar.

option

Одна из констант: IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST или
IntlCalendar::WALLTIME_NEXT_VALID.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Смотрите примеры в описании функции IntlCalendar::getSkippedWallTimeOption().

Смотрите также

  • intlCalendar::getSkippedWallTimeOption() - Получает поведение для обработки пропущенного времени процессора
  • intlCalendar::setRepeatedWallTimeOption() - Устанавливает поведение для обработки повторяющегося времени процессора при отрицательных переходах смещения часового пояса
  • intlCalendar::getRepeatedWallTimeOption() - Получает поведение для обработки повторяющегося времени процессора


Устанавливает календарное время в миллисекундах с начала эпохи Unix

  • « IntlCalendar::setSkippedWallTimeOption
  • IntlCalendar::setTimeZone »
  • PHP Manual
  • IntlCalendar
  • Устанавливает календарное время в миллисекундах с начала эпохи Unix

IntlCalendar::setTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setTime — Устанавливает календарное время в миллисекундах с начала эпохи Unix

Описание

Объектно-ориентированный стиль

public IntlCalendar::setTime(float $timestamp): bool

Процедурный стиль

intlcal_set_time(IntlCalendar $calendar, float $timestamp): bool

Устанавливает момент, представленный объектом. Момент представлен числом с плавающей точкой (float), значение которого должно быть целым числом миллисекунд, прошедших с начала эпохи Unix (1 января 1970 00:00:00.000 UTC), без учёта дополнительных секунд. Все значения полей будут соответственно пересчитаны.

Список параметров

calendar

Экземпляр IntlCalendar.

timestamp

Момент, представленный количеством миллисекунд между этим моментом и эпохой Unix, без учёта дополнительных секунд.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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";

/* В Europe/Lisbon 27 октября 2013 года в 02:00 часы переводятся на один час назад,
а часовой пояс - с UTC+01 на 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


Устанавливает часовой пояс, используемый календарём

  • « IntlCalendar::setTime
  • IntlCalendar::toDateTime »
  • PHP Manual
  • IntlCalendar
  • Устанавливает часовой пояс, используемый календарём

IntlCalendar::setTimeZone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setTimeZone — Устанавливает часовой пояс, используемый календарём

Описание

Объектно-ориентированный стиль

public IntlCalendar::setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): bool

Процедурный стиль

intlcal_set_time_zone(IntlCalendar $calendar, IntlTimeZone|DateTimeZone|string|null $timezone): bool

Определяет новый часовой пояс для календаря. Время, представленное объектом, сохраняется в ущерб значениям поля.

Список параметров

calendar

Экземпляр IntlCalendar.

timezone

Новый часовой пояс, который будет использовать календарь. Его можно указать следующими способами:

  • Если null, то будет использован часовой пояс по умолчанию, заданная в ini-настройки date.timezone либо с помощью функции date_default_timezone_set() и возвращённая функцией date_default_timezone_get().

  • Объект класса IntlTimeZone.

  • Объект класса DateTimeZone. Его идентификатор будет извлечён и на его основе будет создан объект часового пояса ICU; часовой пояс будет сохранён в базе данных ICU, а не PHP.

  • Строка, являющаяся корректным идентификатором часового пояса ICU. Смотрите IntlTimeZone::createTimeZoneIDEnumeration(). "Сырые" смещения, типа "GMT+08:30", также поддерживаются.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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)


Преобразует IntlCalendar в объект DateTime

  • « IntlCalendar::setTimeZone
  • IntlGregorianCalendar »
  • PHP Manual
  • IntlCalendar
  • Преобразует IntlCalendar в объект DateTime

IntlCalendar::toDateTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a2)

IntlCalendar::toDateTime — Преобразует IntlCalendar в объект DateTime

Описание

Объектно-ориентированный стиль

public IntlCalendar::toDateTime(): DateTime|false

Процедурный стиль

intlcal_to_date_time(IntlCalendar $calendar): DateTime|false

Создаёт объект DateTime, который представляет тот же момент (с точностью до секунды, с ошибкой округления менее 1 секунды) с аналогичным часовым поясом (разница в том, что часовой пояс DateTime поддерживается часовым поясом PHP, в то время как часовой пояс IntlCalendar поддерживается ICU).

Список параметров

calendar

Экземпляр IntlCalendar.

Возвращаемые значения

Объект DateTime с тем же часовым поясом, что и заданный объект (хотя с использованием базы данных PHP вместо ICU) и с тем же временем, за исключением меньшей точности (вторая точность вместо миллисекунд). Возвращает false в случае возникновения ошибки.

Примеры

Пример #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() - Создаёт IntlCalendar из объекта или строки DateTime
  • IntlCalendar::getTime() - Получает время, представленное в данный момент объектом
  • IntlCalendar::createInstance() - Создаёт новый объект IntlCalendar
  • DateTime::__construct() - Конструктор класса DateTime


Класс IntlGregorianCalendar

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Введение

Обзор классов

class IntlGregorianCalendar extends IntlCalendar {
/* Наследуемые константы */
public const int IntlCalendar::FIELD_ERA;
public const int IntlCalendar::FIELD_YEAR;
public const int IntlCalendar::FIELD_MONTH;
public const int IntlCalendar::FIELD_WEEK_OF_YEAR;
public const int IntlCalendar::FIELD_WEEK_OF_MONTH;
public const int IntlCalendar::FIELD_DATE;
public const int IntlCalendar::FIELD_DAY_OF_YEAR;
public const int IntlCalendar::FIELD_DAY_OF_WEEK;
public const int IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH;
public const int IntlCalendar::FIELD_AM_PM;
public const int IntlCalendar::FIELD_HOUR;
public const int IntlCalendar::FIELD_HOUR_OF_DAY;
public const int IntlCalendar::FIELD_MINUTE;
public const int IntlCalendar::FIELD_SECOND;
public const int IntlCalendar::FIELD_MILLISECOND;
public const int IntlCalendar::FIELD_ZONE_OFFSET;
public const int IntlCalendar::FIELD_DST_OFFSET;
public const int IntlCalendar::FIELD_YEAR_WOY;
public const int IntlCalendar::FIELD_DOW_LOCAL;
public const int IntlCalendar::FIELD_EXTENDED_YEAR;
public const int IntlCalendar::FIELD_JULIAN_DAY;
public const int IntlCalendar::FIELD_MILLISECONDS_IN_DAY;
public const int IntlCalendar::FIELD_IS_LEAP_MONTH;
public const int IntlCalendar::FIELD_FIELD_COUNT;
public const int IntlCalendar::FIELD_DAY_OF_MONTH;
public const int IntlCalendar::DOW_SUNDAY;
public const int IntlCalendar::DOW_MONDAY;
public const int IntlCalendar::DOW_TUESDAY;
public const int IntlCalendar::DOW_WEDNESDAY;
public const int IntlCalendar::DOW_THURSDAY;
public const int IntlCalendar::DOW_FRIDAY;
public const int IntlCalendar::DOW_SATURDAY;
public const int IntlCalendar::DOW_TYPE_WEEKDAY;
public const int IntlCalendar::DOW_TYPE_WEEKEND;
public const int IntlCalendar::DOW_TYPE_WEEKEND_OFFSET;
public const int IntlCalendar::DOW_TYPE_WEEKEND_CEASE;
public const int IntlCalendar::WALLTIME_FIRST;
public const int IntlCalendar::WALLTIME_LAST;
public const int IntlCalendar::WALLTIME_NEXT_VALID;
/* Методы */
public __construct(IntlTimeZone $tz = ?, string $locale = ?)
public __construct(int $timeZoneOrYear, int $localeOrMonth, int $dayOfMonth)
public __construct(
int $timeZoneOrYear,
int $localeOrMonth,
int $dayOfMonth,
int $hour,
int $minute,
int $second = ?
)
public createFromDate(int $year, int $month, int $dayOfMonth): static
public createFromDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
int $second = null
): static
public getGregorianChange(): float
public isLeapYear(int $year): bool
public setGregorianChange(float $timestamp): bool
/* Наследуемые методы */
public IntlCalendar::add(int $field, int $value): bool
public IntlCalendar::after(IntlCalendar $other): bool
public IntlCalendar::before(IntlCalendar $other): bool
public IntlCalendar::clear(?int $field = null): true
public static IntlCalendar::createInstance(IntlTimeZone|DateTimeZone|string|null $timezone = null, ?string $locale = null): ?IntlCalendar
public IntlCalendar::equals(IntlCalendar $other): bool
public IntlCalendar::fieldDifference(float $timestamp, int $field): int|false
public static IntlCalendar::fromDateTime(DateTime|string $datetime, ?string $locale = null): ?IntlCalendar
public IntlCalendar::get(int $field): int|false
public IntlCalendar::getActualMaximum(int $field): int|false
public IntlCalendar::getActualMinimum(int $field): int|false
public static IntlCalendar::getAvailableLocales(): array
public IntlCalendar::getDayOfWeekType(int $dayOfWeek): int|false
public IntlCalendar::getErrorCode(): int|false
public IntlCalendar::getErrorMessage(): string|false
public IntlCalendar::getFirstDayOfWeek(): int|false
public IntlCalendar::getGreatestMinimum(int $field): int|false
public static IntlCalendar::getKeywordValuesForLocale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false
public IntlCalendar::getLeastMaximum(int $field): int|false
public IntlCalendar::getLocale(int $type): string|false
public IntlCalendar::getMaximum(int $field): int|false
public IntlCalendar::getMinimalDaysInFirstWeek(): int|false
public IntlCalendar::getMinimum(int $field): int|false
public static IntlCalendar::getNow(): float
public IntlCalendar::getRepeatedWallTimeOption(): int
public IntlCalendar::getSkippedWallTimeOption(): int
public IntlCalendar::getTime(): float|false
public IntlCalendar::getTimeZone(): IntlTimeZone|false
public IntlCalendar::getType(): string
public IntlCalendar::getWeekendTransition(int $dayOfWeek): int|false
public IntlCalendar::inDaylightTime(): bool
public IntlCalendar::isEquivalentTo(IntlCalendar $other): bool
public IntlCalendar::isLenient(): bool
public IntlCalendar::isSet(int $field): bool
public IntlCalendar::isWeekend(?float $timestamp = null): bool
public IntlCalendar::roll(int $field, int|bool $value): bool
public IntlCalendar::set(int $field, int $value): true
public IntlCalendar::set(
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
): true
public IntlCalendar::setDate(int $year, int $month, int $dayOfMonth): void
public IntlCalendar::setDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
int $second = null
): void
public IntlCalendar::setFirstDayOfWeek(int $dayOfWeek): true
public IntlCalendar::setLenient(bool $lenient): true
public IntlCalendar::setMinimalDaysInFirstWeek(int $days): true
public IntlCalendar::setRepeatedWallTimeOption(int $option): true
public IntlCalendar::setSkippedWallTimeOption(int $option): true
public IntlCalendar::setTime(float $timestamp): bool
public IntlCalendar::setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): bool
public IntlCalendar::toDateTime(): DateTime|false
}

Содержание

  • IntlGregorianCalendar::__construct — Конструктор класса григорианского календаря
  • IntlGregorianCalendar::createFromDate — Create a new IntlGregorianCalendar instance from date
  • IntlGregorianCalendar::createFromDateTime — Create a new IntlGregorianCalendar instance from date and time
  • IntlGregorianCalendar::getGregorianChange — Получает дату изменения григорианского календаря
  • IntlGregorianCalendar::isLeapYear — Определяет, является ли данный год високосным
  • IntlGregorianCalendar::setGregorianChange — Устанавливает дату изменения в григорианском календаре


Конструктор класса григорианского календаря

  • « IntlGregorianCalendar
  • IntlGregorianCalendar::createFromDate »
  • PHP Manual
  • IntlGregorianCalendar
  • Конструктор класса григорианского календаря

IntlGregorianCalendar::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlGregorianCalendar::__construct — Конструктор класса григорианского календаря

Описание

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


Create a new IntlGregorianCalendar instance from date

  • « IntlGregorianCalendar::__construct
  • IntlGregorianCalendar::createFromDateTime »
  • PHP Manual
  • IntlGregorianCalendar
  • Create a new IntlGregorianCalendar instance from date

IntlGregorianCalendar::createFromDate

(PHP 8 >= 8.3.0)

IntlGregorianCalendar::createFromDate — Create a new IntlGregorianCalendar instance from date

Описание

public IntlGregorianCalendar::createFromDate(int $year, int $month, int $dayOfMonth): static

Creates a new IntlGregorianCalendar instance from date.

Список параметров

year

The new value for IntlGregorianCalendar::FIELD_YEAR.

month

The new value for IntlGregorianCalendar::FIELD_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.

dayOfMonth

The new value for IntlGregorianCalendar::FIELD_DAY_OF_MONTH.

Возвращаемые значения

Returns a new IntlGregorianCalendar instance.

Примеры

Пример #1 IntlGregorianCalendar::createFromDate() example

<?php

$intlCalendar = IntlGregorianCalendar::createFromDate(2023, 11, 23);
var_dump($intlCalendar);
?>

Результатом выполнения данного примера будет что-то подобное:

object(IntlGregorianCalendar)#1 (5) {
  ["valid"]=>
  bool(true)
  ["type"]=>
  string(9) "gregorian"
  ["timeZone"]=>
  array(4) {
    ["valid"]=>
    bool(true)
    ["id"]=>
    string(16) "Europe/Amsterdam"
    ["rawOffset"]=>
    int(3600000)
    ["currentOffset"]=>
    int(3600000)
  }
  ["locale"]=>
  string(11) "en_US_POSIX"
  ["fields"]=>
  array(23) {
    ["era"]=>
    int(1)
    ["year"]=>
    int(2023)
    ["month"]=>
    int(11)
    ["week of year"]=>
    int(51)
    ["week of month"]=>
    int(4)
    ["day of year"]=>
    int(357)
    ["day of month"]=>
    int(23)
    ["day of week"]=>
    int(7)
    ["day of week in month"]=>
    int(4)
    ["AM/PM"]=>
    int(0)
    ["hour"]=>
    int(0)
    ["hour of day"]=>
    int(0)
    ["minute"]=>
    int(0)
    ["second"]=>
    int(0)
    ["millisecond"]=>
    int(0)
    ["zone offset"]=>
    int(3600000)
    ["DST offset"]=>
    int(0)
    ["year for week of year"]=>
    int(2023)
    ["localized day of week"]=>
    int(7)
    ["extended year"]=>
    int(2023)
    ["julian day"]=>
    int(2460302)
    ["milliseconds in day"]=>
    int(0)
    ["is leap month"]=>
    int(0)
  }
}

Смотрите также

  • IntlGregorianCalendar::createFromDateTime() - Create a new IntlGregorianCalendar instance from date and time


Create a new IntlGregorianCalendar instance from date and time

  • « IntlGregorianCalendar::createFromDate
  • IntlGregorianCalendar::getGregorianChange »
  • PHP Manual
  • IntlGregorianCalendar
  • Create a new IntlGregorianCalendar instance from date and time

IntlGregorianCalendar::createFromDateTime

(PHP 8 >= 8.3.0)

IntlGregorianCalendar::createFromDateTime — Create a new IntlGregorianCalendar instance from date and time

Описание

public IntlGregorianCalendar::createFromDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
int $second = null
): static

Creates a new IntlGregorianCalendar instance from date and time.

Список параметров

year

The new value for IntlGregorianCalendar::FIELD_YEAR.

month

The new value for IntlGregorianCalendar::FIELD_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.

dayOfMonth

The new value for IntlGregorianCalendar::FIELD_DAY_OF_MONTH.

hour

The new value for IntlGregorianCalendar::FIELD_HOUR_OF_DAY.

minute

The new value for IntlGregorianCalendar::FIELD_MINUTE.

second

The new value for IntlGregorianCalendar::FIELD_SECOND.

Возвращаемые значения

Returns a new IntlGregorianCalendar instance.

Примеры

Пример #1 IntlCalendar::setDateTime() example

<?php

$intlCalendar = IntlGregorianCalendar::createFromDateTime(2023, 11, 23, 12, 00);
var_dump($intlCalendar);
?>

Результатом выполнения данного примера будет что-то подобное:

object(IntlGregorianCalendar)#1 (5) {
  ["valid"]=>
  bool(true)
  ["type"]=>
  string(9) "gregorian"
  ["timeZone"]=>
  array(4) {
    ["valid"]=>
    bool(true)
    ["id"]=>
    string(16) "Europe/Amsterdam"
    ["rawOffset"]=>
    int(3600000)
    ["currentOffset"]=>
    int(3600000)
  }
  ["locale"]=>
  string(11) "en_US_POSIX"
  ["fields"]=>
  array(23) {
    ["era"]=>
    int(1)
    ["year"]=>
    int(2023)
    ["month"]=>
    int(11)
    ["week of year"]=>
    int(51)
    ["week of month"]=>
    int(4)
    ["day of year"]=>
    int(357)
    ["day of month"]=>
    int(23)
    ["day of week"]=>
    int(7)
    ["day of week in month"]=>
    int(4)
    ["AM/PM"]=>
    int(1)
    ["hour"]=>
    int(0)
    ["hour of day"]=>
    int(12)
    ["minute"]=>
    int(0)
    ["second"]=>
    int(0)
    ["millisecond"]=>
    int(0)
    ["zone offset"]=>
    int(3600000)
    ["DST offset"]=>
    int(0)
    ["year for week of year"]=>
    int(2023)
    ["localized day of week"]=>
    int(7)
    ["extended year"]=>
    int(2023)
    ["julian day"]=>
    int(2460302)
    ["milliseconds in day"]=>
    int(43200000)
    ["is leap month"]=>
    int(0)
  }
}

Смотрите также

  • IntlGregorianCalendar::createFromDate() - Create a new IntlGregorianCalendar instance from date


Получает дату изменения григорианского календаря

  • « IntlGregorianCalendar::createFromDateTime
  • IntlGregorianCalendar::isLeapYear »
  • PHP Manual
  • IntlGregorianCalendar
  • Получает дату изменения григорианского календаря

IntlGregorianCalendar::getGregorianChange

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlGregorianCalendar::getGregorianChange — Получает дату изменения григорианского календаря

Описание

public IntlGregorianCalendar::getGregorianChange(): float

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает дату изменения.


Определяет, является ли данный год високосным

  • « IntlGregorianCalendar::getGregorianChange
  • IntlGregorianCalendar::setGregorianChange »
  • PHP Manual
  • IntlGregorianCalendar
  • Определяет, является ли данный год високосным

IntlGregorianCalendar::isLeapYear

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlGregorianCalendar::isLeapYear — Определяет, является ли данный год високосным

Описание

public IntlGregorianCalendar::isLeapYear(int $year): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

year

Возвращаемые значения

Возвращает true в случае, если год является високосным, false, если не является или в случае возникновения ошибки.


Устанавливает дату изменения в григорианском календаре

  • « IntlGregorianCalendar::isLeapYear
  • IntlTimeZone »
  • PHP Manual
  • IntlGregorianCalendar
  • Устанавливает дату изменения в григорианском календаре

IntlGregorianCalendar::setGregorianChange

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlGregorianCalendar::setGregorianChange — Устанавливает дату изменения в григорианском календаре

Описание

public IntlGregorianCalendar::setGregorianChange(float $timestamp): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timestamp

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Класс IntlTimeZone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

Введение

Обзор классов

class IntlTimeZone {
/* Константы */
public const int DISPLAY_SHORT;
public const int DISPLAY_LONG;
public const int DISPLAY_SHORT_GENERIC;
public const int DISPLAY_LONG_GENERIC;
public const int DISPLAY_SHORT_GMT;
public const int DISPLAY_LONG_GMT;
public const int DISPLAY_SHORT_COMMONLY_USED;
public const int DISPLAY_GENERIC_LOCATION;
public const int TYPE_ANY;
public const int TYPE_CANONICAL;
public const int TYPE_CANONICAL_LOCATION;
/* Методы */
private __construct()
public static countEquivalentIDs(string $timezoneId): int|false
public static createDefault(): IntlTimeZone
public static createEnumeration(IntlTimeZone|string|int|float|null $countryOrRawOffset = null): IntlIterator|false
public static createTimeZone(string $timezoneId): ?IntlTimeZone
public static createTimeZoneIDEnumeration(int $type, ?string $region = null, ?int $rawOffset = null): IntlIterator|false
public static fromDateTimeZone(DateTimeZone $timezone): ?IntlTimeZone
public static getCanonicalID(string $timezoneId, bool &$isSystemId = null): string|false
public getDisplayName(bool $dst = false, int $style = IntlTimeZone::DISPLAY_LONG, ?string $locale = null): string|false
public getDSTSavings(): int
public static getEquivalentID(string $timezoneId, int $offset): string|false
public getErrorCode(): int|false
public getErrorMessage(): string|false
public static getGMT(): IntlTimeZone
public getID(): string|false
public static getIDForWindowsID(string $timezoneId, ?string $region = null): string|false
public getOffset(
float $timestamp,
bool $local,
int &$rawOffset,
int &$dstOffset
): bool
public getRawOffset(): int
public static getRegion(string $timezoneId): string|false
public static getTZDataVersion(): string|false
public static getUnknown(): IntlTimeZone
public static getWindowsID(string $timezoneId): string|false
public hasSameRules(IntlTimeZone $other): bool
public toDateTimeZone(): DateTimeZone|false
public useDaylightTime(): bool
}

Предопределённые константы

IntlTimeZone::DISPLAY_SHORT

IntlTimeZone::DISPLAY_LONG

IntlTimeZone::DISPLAY_SHORT_GENERIC

IntlTimeZone::DISPLAY_LONG_GENERIC

IntlTimeZone::DISPLAY_SHORT_GMT

IntlTimeZone::DISPLAY_LONG_GMT

IntlTimeZone::DISPLAY_SHORT_COMMONLY_USED

IntlTimeZone::DISPLAY_GENERIC_LOCATION

IntlTimeZone::TYPE_ANY

IntlTimeZone::TYPE_CANONICAL

IntlTimeZone::TYPE_CANONICAL_LOCATION

Содержание

  • IntlTimeZone::__construct — Конструктор класса, запрещающий прямое создание экземпляра
  • IntlTimeZone::countEquivalentIDs — Получить количество идентификаторов в группе похожих часовых поясов, включая данный идентификатор
  • IntlTimeZone::createDefault — Создать новую копию часового пояса по умолчанию для текущего хоста
  • IntlTimeZone::createEnumeration — Получить перечисление из идентификаторов часовых поясов по указанной стране или смещению
  • IntlTimeZone::createTimeZone — Создать объект часового пояса по заданному идентификатору
  • IntlTimeZone::createTimeZoneIDEnumeration — Получить перечисление из идентификаторов системных часовых поясов по заданным условиям фильтрации
  • IntlTimeZone::fromDateTimeZone — Создать объект часового пояса из DateTimeZone
  • IntlTimeZone::getCanonicalID — Получить канонический системный идентификатор часового пояса или нормализованный пользовательский идентификатор часового пояса по заданному идентификатору часового пояса
  • IntlTimeZone::getDisplayName — Получить имя часового пояса для отображения пользователю
  • IntlTimeZone::getDSTSavings — Получить количество миллисекунд, которое нужно добавить к местному поясному времени, чтобы получить летнее время
  • IntlTimeZone::getEquivalentID — Получить идентификатор в группе похожих часовых поясов, включая заданный идентификатор
  • IntlTimeZone::getErrorCode — Получить последний код об ошибке в объекте
  • IntlTimeZone::getErrorMessage — Получить последнее сообщение об ошибке в объекте
  • IntlTimeZone::getGMT — Создать часовой пояс по GMT (UTC)
  • IntlTimeZone::getID — Получить идентификатор часового пояса
  • IntlTimeZone::getIDForWindowsID — Преобразовать часовой пояс для Windows в системный часовой пояс
  • IntlTimeZone::getOffset — Получить необработанное значение часового пояса и смещение по Гринвичу (GMT) по заданному моменту времени
  • IntlTimeZone::getRawOffset — Получить необработанное значение смещения по Гринвичу (GMT) без учёта летнего времени
  • IntlTimeZone::getRegion — Получить код региона, соответствующего заданному идентификатору системного часового пояса
  • IntlTimeZone::getTZDataVersion — Получить версию данных о часовом поясе, который в данный момент используется в ICU
  • IntlTimeZone::getUnknown — Получить неизвестный часовой пояс («unknown»)
  • IntlTimeZone::getWindowsID — Преобразовать системный часовой пояс в часовой пояс для Windows
  • IntlTimeZone::hasSameRules — Проверить, что в другом часовом поясе используются те же самые правила и смещения, что и в первом заданном
  • IntlTimeZone::toDateTimeZone — Преобразовать в объект DateTimeZone
  • IntlTimeZone::useDaylightTime — Проверить, что в данном часовом поясе используется летнее время


Конструктор класса, запрещающий прямое создание экземпляра

  • « IntlTimeZone
  • IntlTimeZone::countEquivalentIDs »
  • PHP Manual
  • IntlTimeZone
  • Конструктор класса, запрещающий прямое создание экземпляра

IntlTimeZone::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::__construct — Конструктор класса, запрещающий прямое создание экземпляра

Описание

private IntlTimeZone::__construct()

Список параметров

У этой функции нет параметров.


Получить количество идентификаторов в группе похожих часовых поясов, включая данный идентификатор

  • « IntlTimeZone::__construct
  • IntlTimeZone::createDefault »
  • PHP Manual
  • IntlTimeZone
  • Получить количество идентификаторов в группе похожих часовых поясов, включая данный идентификатор

IntlTimeZone::countEquivalentIDs

intltz_count_equivalent_ids

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::countEquivalentIDs -- intltz_count_equivalent_ids — Получить количество идентификаторов в группе похожих часовых поясов, включая данный идентификатор

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::countEquivalentIDs(string $timezoneId): int|false

Процедурный стиль:

intltz_count_equivalent_ids(string $timezoneId): int|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timezoneId

Возвращаемые значения


Создать новую копию часового пояса по умолчанию для текущего хоста

  • « IntlTimeZone::countEquivalentIDs
  • IntlTimeZone::createEnumeration »
  • PHP Manual
  • IntlTimeZone
  • Создать новую копию часового пояса по умолчанию для текущего хоста

IntlTimeZone::createDefault

intltz_create_default

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::createDefault -- intltz_create_default — Создать новую копию часового пояса по умолчанию для текущего хоста

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::createDefault(): IntlTimeZone

Процедурный стиль:

intltz_create_default(): IntlTimeZone

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить перечисление из идентификаторов часовых поясов по указанной стране или смещению

  • « IntlTimeZone::createDefault
  • IntlTimeZone::createTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Получить перечисление из идентификаторов часовых поясов по указанной стране или смещению

IntlTimeZone::createEnumeration

intltz_create_enumeration

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::createEnumeration -- intltz_create_enumeration — Получить перечисление из идентификаторов часовых поясов по указанной стране или смещению

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::createEnumeration(IntlTimeZone|string|int|float|null $countryOrRawOffset = null): IntlIterator|false

Процедурный стиль:

intltz_create_enumeration(IntlTimeZone|string|int|float|null $countryOrRawOffset = null): IntlIterator|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

countryOrRawOffset

Возвращаемые значения


Создать объект часового пояса по заданному идентификатору

  • « IntlTimeZone::createEnumeration
  • IntlTimeZone::createTimeZoneIDEnumeration »
  • PHP Manual
  • IntlTimeZone
  • Создать объект часового пояса по заданному идентификатору

IntlTimeZone::createTimeZone

intltz_create_time_zone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::createTimeZone -- intltz_create_time_zone — Создать объект часового пояса по заданному идентификатору

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::createTimeZone(string $timezoneId): ?IntlTimeZone

Процедурный стиль:

intltz_create_time_zone(string $timezoneId): ?IntlTimeZone

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timezoneId

Возвращаемые значения


Получить перечисление из идентификаторов системных часовых поясов по заданным условиям фильтрации

  • « IntlTimeZone::createTimeZone
  • IntlTimeZone::fromDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Получить перечисление из идентификаторов системных часовых поясов по заданным условиям фильтрации

IntlTimeZone::createTimeZoneIDEnumeration

intltz_create_time_zone_id_enumeration

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlTimeZone::createTimeZoneIDEnumeration -- intltz_create_time_zone_id_enumeration — Получить перечисление из идентификаторов системных часовых поясов по заданным условиям фильтрации

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::createTimeZoneIDEnumeration(int $type, ?string $region = null, ?int $rawOffset = null): IntlIterator|false

Процедурный стиль:

intltz_create_time_zone_id_enumeration(int $type, ?string $region = null, ?int $rawOffset = null): IntlIterator|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

type

region

rawOffset

Возвращаемые значения

Возвращает IntlIterator или false в случае возникновения ошибки.


Создать объект часового пояса из DateTimeZone

  • « IntlTimeZone::createTimeZoneIDEnumeration
  • IntlTimeZone::getCanonicalID »
  • PHP Manual
  • IntlTimeZone
  • Создать объект часового пояса из DateTimeZone

IntlTimeZone::fromDateTimeZone

intltz_from_date_time_zone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::fromDateTimeZone -- intltz_from_date_time_zone — Создать объект часового пояса из DateTimeZone

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::fromDateTimeZone(DateTimeZone $timezone): ?IntlTimeZone

Процедурный стиль:

intltz_from_date_time_zone(DateTimeZone $timezone): ?IntlTimeZone

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timezone

Возвращаемые значения


Получить канонический системный идентификатор часового пояса или нормализованный пользовательский идентификатор часового пояса по заданному идентификатору часового пояса

  • « IntlTimeZone::fromDateTimeZone
  • IntlTimeZone::getDisplayName »
  • PHP Manual
  • IntlTimeZone
  • Получить канонический системный идентификатор часового пояса или нормализованный пользовательский идентификатор часового пояса по заданному идентификатору часового пояса

IntlTimeZone::getCanonicalID

intltz_get_canonical_id

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getCanonicalID -- intltz_get_canonical_id — Получить канонический системный идентификатор часового пояса или нормализованный пользовательский идентификатор часового пояса по заданному идентификатору часового пояса

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::getCanonicalID(string $timezoneId, bool &$isSystemId = null): string|false

Процедурный стиль:

intltz_get_canonical_id(string $timezoneId, bool &$isSystemId = null): string|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timezoneId

isSystemId

Возвращаемые значения


Получить имя часового пояса для отображения пользователю

  • « IntlTimeZone::getCanonicalID
  • IntlTimeZone::getDSTSavings »
  • PHP Manual
  • IntlTimeZone
  • Получить имя часового пояса для отображения пользователю

IntlTimeZone::getDisplayName

intltz_get_display_name

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getDisplayName -- intltz_get_display_name — Получить имя часового пояса для отображения пользователю

Описание

Объектно-ориентированный стиль (метод):

public IntlTimeZone::getDisplayName(bool $dst = false, int $style = IntlTimeZone::DISPLAY_LONG, ?string $locale = null): string|false

Процедурный стиль:

intltz_get_display_name(
IntlTimeZone $timezone,
bool $dst = false,
int $style = IntlTimeZone::DISPLAY_LONG,
?string $locale = null
): string|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

dst

style

locale

Возвращаемые значения


Получить количество миллисекунд, которое нужно добавить к местному поясному времени, чтобы получить летнее время

  • « IntlTimeZone::getDisplayName
  • IntlTimeZone::getEquivalentID »
  • PHP Manual
  • IntlTimeZone
  • Получить количество миллисекунд, которое нужно добавить к местному поясному времени, чтобы получить летнее время

IntlTimeZone::getDSTSavings

intltz_get_dst_savings

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getDSTSavings -- intltz_get_dst_savings — Получить количество миллисекунд, которое нужно добавить к местному поясному времени, чтобы получить летнее время

Описание

Объектно-ориентированный стиль (метод):

public IntlTimeZone::getDSTSavings(): int

Процедурный стиль:

intltz_get_dst_savings(IntlTimeZone $timezone): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить идентификатор в группе похожих часовых поясов, включая заданный идентификатор

  • « IntlTimeZone::getDSTSavings
  • IntlTimeZone::getErrorCode »
  • PHP Manual
  • IntlTimeZone
  • Получить идентификатор в группе похожих часовых поясов, включая заданный идентификатор

IntlTimeZone::getEquivalentID

intltz_get_equivalent_id

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getEquivalentID -- intltz_get_equivalent_id — Получить идентификатор в группе похожих часовых поясов, включая заданный идентификатор

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::getEquivalentID(string $timezoneId, int $offset): string|false

Процедурный стиль:

intltz_get_equivalent_id(string $timezoneId, int $offset): string|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timezoneId

offset

Возвращаемые значения


Получить последний код об ошибке в объекте

  • « IntlTimeZone::getEquivalentID
  • IntlTimeZone::getErrorMessage »
  • PHP Manual
  • IntlTimeZone
  • Получить последний код об ошибке в объекте

IntlTimeZone::getErrorCode

intltz_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getErrorCode -- intltz_get_error_code — Получить последний код об ошибке в объекте

Описание

Объектно-ориентированный стиль (метод):

public IntlTimeZone::getErrorCode(): int|false

Процедурный стиль:

intltz_get_error_code(IntlTimeZone $timezone): int|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить последнее сообщение об ошибке в объекте

  • « IntlTimeZone::getErrorCode
  • IntlTimeZone::getGMT »
  • PHP Manual
  • IntlTimeZone
  • Получить последнее сообщение об ошибке в объекте

IntlTimeZone::getErrorMessage

intltz_get_error_message

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getErrorMessage -- intltz_get_error_message — Получить последнее сообщение об ошибке в объекте

Описание

Объектно-ориентированный стиль (метод):

public IntlTimeZone::getErrorMessage(): string|false

Процедурный стиль:

intltz_get_error_message(IntlTimeZone $timezone): string|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Создать часовой пояс по GMT (UTC)

  • « IntlTimeZone::getErrorMessage
  • IntlTimeZone::getID »
  • PHP Manual
  • IntlTimeZone
  • Создать часовой пояс по GMT (UTC)

IntlTimeZone::getGMT

intltz_get_gmt

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getGMT -- intltz_get_gmt — Создать часовой пояс по GMT (UTC)

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::getGMT(): IntlTimeZone

Процедурный стиль:

intltz_get_gmt(): IntlTimeZone

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить идентификатор часового пояса

  • « IntlTimeZone::getGMT
  • IntlTimeZone::getIDForWindowsID »
  • PHP Manual
  • IntlTimeZone
  • Получить идентификатор часового пояса

IntlTimeZone::getID

intltz_get_id

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getID -- intltz_get_id — Получить идентификатор часового пояса

Описание

Объектно-ориентированный стиль (метод):

public IntlTimeZone::getID(): string|false

Процедурный стиль:

intltz_get_id(IntlTimeZone $timezone): string|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Преобразовать часовой пояс для Windows в системный часовой пояс

  • « IntlTimeZone::getID
  • IntlTimeZone::getOffset »
  • PHP Manual
  • IntlTimeZone
  • Преобразовать часовой пояс для Windows в системный часовой пояс

IntlTimeZone::getIDForWindowsID

intltz_get_id_for_windows_id

(PHP 7 >= 7.1.0, PHP 8)

IntlTimeZone::getIDForWindowsID -- intltz_get_id_for_windows_id — Преобразовать часовой пояс для Windows в системный часовой пояс

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::getIDForWindowsID(string $timezoneId, ?string $region = null): string|false

Процедурный стиль:

intltz_get_id_for_windows_id(string $timezoneId, ?string $region = null): string|false

Переводит часовой пояс для Windows (например, «Pacific Standard Time») в системный часовой пояс (например, «America/Los_Angeles»).

Замечание: Для работы этой функции требуется ICU версии ? 52.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timezoneId

region

Возвращаемые значения

Возвращает системный часовой пояс или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр region теперь допускает значение null.

Смотрите также

  • IntlTimeZone::getWindowsID() - Преобразовать системный часовой пояс в часовой пояс для Windows


Получить необработанное значение часового пояса и смещение по Гринвичу (GMT) по заданному моменту времени

  • « IntlTimeZone::getIDForWindowsID
  • IntlTimeZone::getRawOffset »
  • PHP Manual
  • IntlTimeZone
  • Получить необработанное значение часового пояса и смещение по Гринвичу (GMT) по заданному моменту времени

IntlTimeZone::getOffset

intltz_get_offset

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getOffset -- intltz_get_offset — Получить необработанное значение часового пояса и смещение по Гринвичу (GMT) по заданному моменту времени

Описание

Объектно-ориентированный стиль (метод):

public IntlTimeZone::getOffset(
float $timestamp,
bool $local,
int &$rawOffset,
int &$dstOffset
): bool

Процедурный стиль:

intltz_get_offset(
IntlTimeZone $timezone,
float $timestamp,
bool $local,
int &$rawOffset,
int &$dstOffset
): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timestamp

local

rawOffset

dstOffset

Возвращаемые значения


Получить необработанное значение смещения по Гринвичу (GMT) без учёта летнего времени

  • « IntlTimeZone::getOffset
  • IntlTimeZone::getRegion »
  • PHP Manual
  • IntlTimeZone
  • Получить необработанное значение смещения по Гринвичу (GMT) без учёта летнего времени

IntlTimeZone::getRawOffset

intltz_get_raw_offset

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getRawOffset -- intltz_get_raw_offset — Получить необработанное значение смещения по Гринвичу (GMT) без учёта летнего времени

Описание

Объектно-ориентированный стиль (метод):

public IntlTimeZone::getRawOffset(): int

Процедурный стиль:

intltz_get_raw_offset(IntlTimeZone $timezone): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить код региона, соответствующего заданному идентификатору системного часового пояса

  • « IntlTimeZone::getRawOffset
  • IntlTimeZone::getTZDataVersion »
  • PHP Manual
  • IntlTimeZone
  • Получить код региона, соответствующего заданному идентификатору системного часового пояса

IntlTimeZone::getRegion

intltz_get_region

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlTimeZone::getRegion -- intltz_get_region — Получить код региона, соответствующего заданному идентификатору системного часового пояса

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::getRegion(string $timezoneId): string|false

Процедурный стиль:

intltz_get_region(string $timezoneId): string|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timezoneId

Возвращаемые значения

Возвращает регион или false в случае возникновения ошибки.


Получить версию данных о часовом поясе, который в данный момент используется в ICU

  • « IntlTimeZone::getRegion
  • IntlTimeZone::getUnknown »
  • PHP Manual
  • IntlTimeZone
  • Получить версию данных о часовом поясе, который в данный момент используется в ICU

IntlTimeZone::getTZDataVersion

intltz_get_tz_data_version

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getTZDataVersion -- intltz_get_tz_data_version — Получить версию данных о часовом поясе, который в данный момент используется в ICU

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::getTZDataVersion(): string|false

Процедурный стиль:

intltz_get_tz_data_version(): string|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить неизвестный часовой пояс («unknown»)

  • « IntlTimeZone::getTZDataVersion
  • IntlTimeZone::getWindowsID »
  • PHP Manual
  • IntlTimeZone
  • Получить неизвестный часовой пояс («unknown»)

IntlTimeZone::getUnknown

intltz_get_unknown

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlTimeZone::getUnknown -- intltz_get_unknown — Получить неизвестный часовой пояс («unknown»)

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::getUnknown(): IntlTimeZone

Процедурный стиль:

intltz_get_unknown(): IntlTimeZone

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает IntlTimeZone или null в случае возникновения ошибки.


Преобразовать системный часовой пояс в часовой пояс для Windows

  • « IntlTimeZone::getUnknown
  • IntlTimeZone::hasSameRules »
  • PHP Manual
  • IntlTimeZone
  • Преобразовать системный часовой пояс в часовой пояс для Windows

IntlTimeZone::getWindowsID

intltz_get_windows_id

(PHP 7 >= 7.1.0, PHP 8)

IntlTimeZone::getWindowsID -- intltz_get_windows_id — Преобразовать системный часовой пояс в часовой пояс для Windows

Описание

Объектно-ориентированный стиль (метод):

public static IntlTimeZone::getWindowsID(string $timezoneId): string|false

Процедурный стиль:

intltz_get_windows_id(string $timezoneId): string|false

Переводит системный часовой пояс (например, «America/Los_Angeles») в часовой пояс для Windows (например, «Pacific Standard Time»).

Замечание: Для работы этой функции требуется ICU версии ? 52.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timezoneId

Возвращаемые значения

Возвращает часовой пояс для Windows или false в случае возникновения ошибки.

Смотрите также

  • IntlTimeZone::getIDForWindowsID() - Преобразовать часовой пояс для Windows в системный часовой пояс


Проверить, что в другом часовом поясе используются те же самые правила и смещения, что и в первом заданном

  • « IntlTimeZone::getWindowsID
  • IntlTimeZone::toDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Проверить, что в другом часовом поясе используются те же самые правила и смещения, что и в первом заданном

IntlTimeZone::hasSameRules

intltz_has_same_rules

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::hasSameRules -- intltz_has_same_rules — Проверить, что в другом часовом поясе используются те же самые правила и смещения, что и в первом заданном

Описание

Объектно-ориентированный стиль (метод):

public IntlTimeZone::hasSameRules(IntlTimeZone $other): bool

Процедурный стиль:

intltz_has_same_rules(IntlTimeZone $timezone, IntlTimeZone $other): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

other

Возвращаемые значения


Преобразовать в объект DateTimeZone

  • « IntlTimeZone::hasSameRules
  • IntlTimeZone::useDaylightTime »
  • PHP Manual
  • IntlTimeZone
  • Преобразовать в объект DateTimeZone

IntlTimeZone::toDateTimeZone

intltz_to_date_time_zone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::toDateTimeZone -- intltz_to_date_time_zone — Преобразовать в объект DateTimeZone

Описание

Объектно-ориентированный стиль (метод):

public IntlTimeZone::toDateTimeZone(): DateTimeZone|false

Процедурный стиль:

intltz_to_date_time_zone(IntlTimeZone $timezone): DateTimeZone|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверить, что в данном часовом поясе используется летнее время

  • « IntlTimeZone::toDateTimeZone
  • IntlDateFormatter »
  • PHP Manual
  • IntlTimeZone
  • Проверить, что в данном часовом поясе используется летнее время

IntlTimeZone::useDaylightTime

intltz_use_daylight_time

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::useDaylightTime -- intltz_use_daylight_time — Проверить, что в данном часовом поясе используется летнее время

Описание

Объектно-ориентированный стиль (метод):

public IntlTimeZone::useDaylightTime(): bool

Процедурный стиль:

intltz_use_daylight_time(IntlTimeZone $timezone): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс IntlDateFormatter

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Введение

Это класс позволяющий форматировать/разбирать даты в соответствиями с настройками локали, используя строковые и/или библиотечные шаблоны.

Класс предоставляет функциональность форматирования дат ICU. Он позволяет пользователям отображать даты в формате, принятым в их локали. Или разбирать значения дат используя строковые и/или библиотечные шаблоны.

Синопсис класса

class IntlDateFormatter {
/* Константы */
public const int FULL;
public const int LONG;
public const int MEDIUM;
public const int SHORT;
public const int NONE;
public const int RELATIVE_FULL;
public const int RELATIVE_LONG;
public const int RELATIVE_MEDIUM;
public const int RELATIVE_SHORT;
public const int GREGORIAN;
public const int TRADITIONAL;
/* Методы */
public __construct(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
)
public static create(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
): ?IntlDateFormatter
public format(IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false
public static formatObject(IntlCalendar|DateTimeInterface $datetime, array|int|string|null $format = null, ?string $locale = null): string|false
public getCalendar(): int|false
public getDateType(): int|false
public getErrorCode(): int
public getErrorMessage(): string
public getLocale(int $type = ULOC_ACTUAL_LOCALE): string|false
public getPattern(): string|false
public getTimeType(): int|false
public getTimeZoneId(): string|false
public getCalendarObject(): IntlCalendar|false|null
public getTimeZone(): IntlTimeZone|false
public isLenient(): bool
public localtime(string $string, int &$offset = null): array|false
public parse(string $string, int &$offset = null): int|float|false
public setCalendar(IntlCalendar|int|null $calendar): bool
public setLenient(bool $lenient): void
public setPattern(string $pattern): bool
public setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): ?bool
}

Смотрите также

  • » Форматирование дат ICU
  • » Форматы дат ICU

Предопределённые константы

Эти константы используются для задания формата в конструкторах DateType и TimeType.

IntlDateFormatter::NONE
Не включать этот элемент
IntlDateFormatter::FULL
Полный формат (Tuesday, April 12, 1952 AD or 3:30:42pm PST)
IntlDateFormatter::LONG
Длинный формат (January 12, 1952 or 3:30:32pm)
IntlDateFormatter::MEDIUM
Средний формат (Jan 12, 1952)
IntlDateFormatter::SHORT
Наиболее сокращённый формат, только самые необходимые данные (12/13/52 или 3:30pm)
IntlDateFormatter::RELATIVE_FULL
То же, что и IntlDateFormatter::FULL, но "вчера", "сегодня" и "завтра" выводятся как yesterday, today и tomorrow. Доступно с PHP 8.0.0 только для dateType.
IntlDateFormatter::RELATIVE_LONG
То же, что и IntlDateFormatter::LONG, но "вчера", "сегодня" и "завтра" выводятся как yesterday, today и tomorrow. Доступно с PHP 8.0.0 только для dateType.
IntlDateFormatter::RELATIVE_MEDIUM
То же, что и IntlDateFormatter::MEDIUM, но "вчера", "сегодня" и "завтра" выводятся как yesterday, today и tomorrow. Доступно с PHP 8.0.0 только для dateType.
IntlDateFormatter::RELATIVE_SHORT
То же, что и IntlDateFormatter::SHORT, но "вчера", "сегодня" и "завтра" выводятся как yesterday, today и tomorrow. Доступно с PHP 8.0.0 только для dateType.

Следующие константы используются для задания типа календаря. Эти календари прямо завязаны на Григорианский календарь. Не Григорианский календарь должен быть задан в локали. Например, locale="hi@calendar=BUDDHIST".

IntlDateFormatter::TRADITIONAL
Не Григорианский календарь
IntlDateFormatter::GREGORIAN
Григорианский календарь

Содержание

  • IntlDateFormatter::create — Создаёт средство форматирования даты
  • IntlDateFormatter::format — Форматирует значение даты/времени в виде строки
  • IntlDateFormatter::formatObject — Форматирует объект
  • IntlDateFormatter::getCalendar — Получает тип календаря, используемый IntlDateFormatter
  • IntlDateFormatter::getDateType — Получает тип даты, используемый IntlDateFormatter
  • IntlDateFormatter::getErrorCode — Получает код ошибки последней операции
  • IntlDateFormatter::getErrorMessage — Получает текст ошибки последней операции
  • IntlDateFormatter::getLocale — Получает языковой стандарт, используемый средством форматирования
  • IntlDateFormatter::getPattern — Получает шаблон, используемый IntlDateFormatter
  • IntlDateFormatter::getTimeType — Получает тип времени, используемый IntlDateFormatter
  • IntlDateFormatter::getTimeZoneId — Получает идентификатор часового пояса, используемый IntlDateFormatter
  • IntlDateFormatter::getCalendarObject — Получает копию объекта календаря средства форматирования
  • IntlDateFormatter::getTimeZone — Получает часовой пояс средства форматирования
  • IntlDateFormatter::isLenient — Получает снисходительность, используемую для IntlDateFormatter
  • IntlDateFormatter::localtime — Преобразует строку в значение времени на основе поля
  • IntlDateFormatter::parse — Преобразует строку в значение отметки времени
  • IntlDateFormatter::setCalendar — Устанавливает тип календаря, используемый средством форматирования
  • IntlDateFormatter::setLenient — Устанавливает мягкий режим анализатора
  • IntlDateFormatter::setPattern — Устанавливает шаблон, используемый IntlDateFormatter
  • IntlDateFormatter::setTimeZone — Устанавливает часовой пояс средства форматирования


Создаёт средство форматирования даты

  • « IntlDateFormatter
  • IntlDateFormatter::format »
  • PHP Manual
  • IntlDateFormatter
  • Создаёт средство форматирования даты

IntlDateFormatter::create

datefmt_create

IntlDateFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__construct — Создаёт средство форматирования даты

Описание

Объектно-ориентированный стиль

public static IntlDateFormatter::create(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
): ?IntlDateFormatter

Объектно-ориентированный стиль (конструктор)

public IntlDateFormatter::__construct(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
)

Процедурный стиль

datefmt_create(
?string $locale,
int $dateType,
int $timeType,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
string $pattern = ""
): ?IntlDateFormatter

Создаёт средство форматирования даты.

Список параметров

locale

Языковой стандарт, используемый при форматировании или синтаксическом анализе или null для использования значения, указанного в ini-настройке intl.default_locale.

dateType

Тип даты (none, short, medium, long, full). Одна из констант IntlDateFormatter.

timeType

Тип времени (none, short, medium, long, full). Одна из констант IntlDateFormatter.

timezone

Идентификатор часового пояса. По умолчанию (и тот, который используется, если указан null) - это тот, который возвращается date_default_timezone_get() или, если применимо, объект IntlCalendar, указанный в параметре calendar. Этот идентификатор должен быть корректным идентификатором в базе данных ICU или идентификатором, представляющим явное смещение, например, GMT-05:30.

Также может быть объект IntlTimeZone или DateTimeZone.

calendar

Календарь для форматирования или анализа. Значение по умолчанию - null, что соответствует IntlDateFormatter::GREGORIAN. Может быть одна из констант IntlDateFormatter или объект IntlCalendar. Любой переданный объект IntlCalendar будет клонирован; он не будет изменён IntlDateFormatter. Это определит используемый тип календаря (григорианский, исламский, персидский и т.д.) и, если в параметре timezone указано значение null, также определит используемый часовой пояс.

pattern

Необязательный шаблон для использования при форматировании или анализе. Возможные шаблоны задокументированы по адресу » https://unicode-org.github.io/icu/userguide/format_parse/datetime/.

Возвращаемые значения

Созданный объект IntlDateFormatter или null в случае возникновения ошибки.

Список изменений

Версия Описание
5.5.0/PECL 3.0.0

Объект IntlCalendar допускается в параметре calendar.

Объекты IntlTimeZone и DateTimeZone допускаются в параметре timezone.

Недопустимые идентификаторы часового пояса (включая пустые строки) больше не допускаются в параметре timezone.

Если в параметре timezone указано значение null, идентификатор часового пояса, заданный date_default_timezone_get(), будет использоваться вместо значения ICU по умолчанию.

Примеры

Пример #1 Пример использования datefmt_create()

<?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 "Первый форматированный вывод: ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
echo "Второй форматированный вывод: ".$fmt->format(0);

$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "Первый форматированный вывод с шаблоном: ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN , "MM/dd/yyyy");
echo "Второй форматированный вывод с шаблоном: ".$fmt->format(0);
?>

Результат выполнения данного примера:

Первый форматированный вывод: Wednesday, December 31, 1969 4:00:00 PM PT
Второй форматированный вывод: Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
Первый форматированный вывод с шаблоном: 12/31/1969
Второй форматированный вывод с шаблоном: 12/31/1969

Смотрите также

  • datefmt_format() - Форматирует значение даты/времени в виде строки
  • datefmt_parse() - Преобразует строку в значение отметки времени
  • datefmt_get_error_code() - Получает код ошибки последней операции
  • datefmt_get_error_message() - Получает текст ошибки последней операции


Форматирует значение даты/времени в виде строки

  • « IntlDateFormatter::create
  • IntlDateFormatter::formatObject »
  • PHP Manual
  • IntlDateFormatter
  • Форматирует значение даты/времени в виде строки

IntlDateFormatter::format

datefmt_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::format -- datefmt_format — Форматирует значение даты/времени в виде строки

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::format(IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false

Процедурный стиль

datefmt_format(IntlDateFormatter $formatter, IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false

Форматирует значение даты/времени в виде строки.

Список параметров

formatter

Ресурс средства форматирования даты.

datetime

Значение для форматирования. Это может быть объект DateTimeInterface, объект IntlCalendar, тип numeric, представляющий (возможно, дробное) количество секунд с начала эпохи Unix или массив (array) в формате, выводимом функцией localtime().

Если передаётся объект DateTime или IntlCalendar, его часовой пояс не учитывается. Объект будет отформатирован с использованием часового пояса средства форматирования. Если кто-то хочет использовать часовой пояс объекта, который нужно отформатировать, необходимо вызвать функцию IntlDateFormatter::setTimeZone() с часовым поясом объекта. В качестве альтернативы вместо неё может использоваться статическая функция IntlDateFormatter::formatObject().

Возвращаемые значения

Отформатированная строка или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.5 | Добавлена поддержка предоставления общих объектов DateTimeInterface для параметра datetime. Раньше поддерживались только объекты DateTime.
PECL 3.0.0 | Добавлена поддержка предоставления объектов IntlCalendar для параметра datetime.

Примеры

Пример #1 Пример использования datefmt_format()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Первый форматированный вывод: ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Второй форматированный вывод: ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Первый форматированный вывод с шаблоном: ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo "Второй форматированный вывод с шаблоном: " . datefmt_format($fmt, 0);
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Первый форматированный вывод: ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Второй форматированный вывод: ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Первый форматированный вывод с шаблоном: ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Второй форматированный вывод с шаблоном: ' . $fmt->format(0);
?>

Результат выполнения данного примера:

Первый форматированный вывод: Wednesday, December 31, 1969 4:00:00 PM PT
Второй форматированный вывод: Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
Первый форматированный вывод с шаблоном: 12/31/1969
Второй форматированный вывод с шаблоном: 12/31/1969

Пример #3 Пример использования с объектом IntlCalendar

<?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); //9-й месяц, Рамадан
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 1); //Первый день
$cal->clear(IntlCalendar::FIELD_HOUR_OF_DAY);
$cal->clear(IntlCalendar::FIELD_MINUTE);
$cal->clear(IntlCalendar::FIELD_SECOND);
$cal->clear(IntlCalendar::FIELD_MILLISECOND);

echo "В этом исламском году Рамадан начался/начнётся:\n\t",
$formatter->format($cal), "\n";

//Это часовой пояс используемого средства форматирования:
$formatter->setTimeZone('Asia/Tokyo');
echo "После изменения часового пояса:\n\t",
$formatter->format($cal), "\n";

Результат выполнения данного примера:

В этом исламском году Рамадан начался/начнётся:
    mardi 9 juillet 2013 19:00:00 heure avancee d'Europe centrale
После изменения часового пояса:
    mercredi 10 juillet 2013 02:00:00 heure normale du Japon

Смотрите также

  • datefmt_create() - Создаёт средство форматирования даты
  • datefmt_parse() - Преобразует строку в значение отметки времени
  • datefmt_get_error_code() - Получает код ошибки последней операции
  • datefmt_get_error_message() - Получает текст ошибки последней операции
  • datefmt_format_object() - Форматирует объект


Форматирует объект

  • « IntlDateFormatter::format
  • IntlDateFormatter::getCalendar »
  • PHP Manual
  • IntlDateFormatter
  • Форматирует объект

IntlDateFormatter::formatObject

datefmt_format_object

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::formatObject -- datefmt_format_object — Форматирует объект

Описание

Объектно-ориентированный стиль

public static IntlDateFormatter::formatObject(IntlCalendar|DateTimeInterface $datetime, array|int|string|null $format = null, ?string $locale = null): string|false

Процедурный стиль

datefmt_format_object(IntlCalendar|DateTimeInterface $datetime, array|int|string|null $format = null, ?string $locale = null): string|false

Функция позволяет форматировать объект IntlCalendar или DateTime без предварительного явного создания объекта IntlDateFormatter.

Временный IntlDateFormatter, который будет создан, принимает часовой пояс из переданного объекта. База данных часовых поясов, связанная с PHP, не будет использоваться - вместо неё будет использоваться ICU. Следовательно, идентификатор часового пояса, используемый в объектах DateTime, также должен существовать в базе данных ICU.

Список параметров

datetime

Объект типа IntlCalendar или DateTime. Будет использоваться информация о часовом поясе в объекте.

format

Как отформатировать дату/время. Может быть либо массив (array) с двумя элементами (сначала стиль даты, затем стиль времени, может быть одна из констант: IntlDateFormatter::NONE, IntlDateFormatter::SHORT, IntlDateFormatter::MEDIUM, IntlDateFormatter::LONG, IntlDateFormatter::FULL), целое число (int) со значением одной из этих констант (в этом случае оно будет использоваться как для времени, так и для даты) или строка (string) в формате, описанном в » документации ICU. Если указано значение null, будет использоваться стиль по умолчанию.

locale

Используемый языковой стандарт или null для использования значения по умолчанию.

Возвращаемые значения

Строка с результатом или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования IntlDateFormatter::formatObject()

<?php
/* часовой пояс по умолчанию не имеет значения; часовой пояс взят из объекта */
ini_set('date.timezone', 'UTC');
/* языковой стандарт по умолчанию берётся из этой настройки ini */
ini_set('intl.default_locale', 'fr_FR');

$cal = IntlCalendar::fromDateTime("2013-06-06 17:05:06 Europe/Dublin");
echo "По умолчанию:\n\t",
IntlDateFormatter::formatObject($cal),
"\n";

echo "Полная запись: \$format (full):\n\t",
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL),
"\n";

echo "Массив: \$format (none, full):\n\t",
IntlDateFormatter::formatObject($cal, array(
IntlDateFormatter::NONE,
IntlDateFormatter::FULL)),
"\n";

echo "Строка: \$format (d 'of' MMMM y):\n\t",
IntlDateFormatter::formatObject($cal, "d 'of' MMMM y", 'en_US'),
"\n";

echo "Объект DateTime:\n\t",
IntlDateFormatter::formatObject(
new DateTime("2013-09-09 09:09:09 Europe/Madrid"),
IntlDateFormatter::FULL,
'es_ES'),
"\n";

Результат выполнения данного примера:

По умолчанию:
    6 juin 2013 17:05:06
Полная запись: $format (full):
    jeudi 6 juin 2013 17:05:06 heure d'ete irlandaise
Массив: $format (none, full):
    17:05:06 heure d'ete irlandaise
Строка: $format (d 'of' MMMM y):
    6 of June 2013
Объект DateTime:
    lunes, 9 de septiembre de 2013 09:09:09 Hora de verano de Europa central


Получает тип календаря, используемый IntlDateFormatter

  • « IntlDateFormatter::formatObject
  • IntlDateFormatter::getDateType »
  • PHP Manual
  • IntlDateFormatter
  • Получает тип календаря, используемый IntlDateFormatter

IntlDateFormatter::getCalendar

datefmt_get_calendar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getCalendar -- datefmt_get_calendar — Получает тип календаря, используемый IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getCalendar(): int|false

Процедурный стиль

datefmt_get_calendar(IntlDateFormatter $formatter): int|false

Список параметров

formatter

Ресурс средства форматирования.

Возвращаемые значения

Тип календаря, используемый сервисом форматирования. Либо IntlDateFormatter::TRADITIONAL, либо IntlDateFormatter::GREGORIAN. Возвращает false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования datefmt_get_calendar()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Тип календаря средства форматирования : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Теперь тип календаря средства форматирования : ' . datefmt_get_calendar($fmt);
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Тип календаря средства форматирования : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Теперь тип календаря средства форматирования : ' . $fmt->getCalendar();

?>

Результат выполнения данного примера:

Тип календаря средства форматирования : 1
Теперь тип календаря средства форматирования : 0

Смотрите также

  • datefmt_get_calendar_object() - Получает копию объекта календаря средства форматирования
  • datefmt_set_calendar() - Устанавливает тип календаря, используемый средством форматирования
  • datefmt_create() - Создаёт средство форматирования даты


Получает тип даты, используемый IntlDateFormatter

  • « IntlDateFormatter::getCalendar
  • IntlDateFormatter::getErrorCode »
  • PHP Manual
  • IntlDateFormatter
  • Получает тип даты, используемый IntlDateFormatter

IntlDateFormatter::getDateType

datefmt_get_datetype

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getDateType -- datefmt_get_datetype — Получает тип даты, используемый IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getDateType(): int|false

Процедурный стиль

datefmt_get_datetype(IntlDateFormatter $formatter): int|false

Получает тип даты, используемый средством форматирования.

Список параметров

formatter

Ресурс средства форматирования.

Возвращаемые значения

Значение текущего типа даты средства форматирования или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования datefmt_get_datetype()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Тип даты средства форматирования : ' . datefmt_get_datetype($fmt);
echo 'Первый отформатированный вывод с типом даты ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'en_US',
IntlDateFormatter::SHORT,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Теперь тип даты средства форматирования : ' . datefmt_get_datetype($fmt);
echo 'Второй отформатированный вывод с типом даты ' . datefmt_format($fmt, 0);

?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Тип даты средства форматирования : ' . $fmt->getDateType();
echo 'Первый отформатированный вывод с типом даты ' . $fmt->format(0);
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::SHORT,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Теперь тип даты средства форматирования : ' . $fmt->getDateType();
echo 'Второй отформатированный вывод с типом даты ' . $fmt->format(0);

?>

Результат выполнения данного примера:

Тип даты средства форматирования : 0
Первый отформатированный вывод с типом даты Wednesday, December 31, 1969 4:00:00 PM PT
Теперь тип даты средства форматирования : 2
Второй отформатированный вывод с типом даты 12/31/69 4:00:00 PM PT

Смотрите также

  • datefmt_get_timetype() - Получает тип времени, используемый IntlDateFormatter
  • datefmt_create() - Создаёт средство форматирования даты


Получает код ошибки последней операции

  • « IntlDateFormatter::getDateType
  • IntlDateFormatter::getErrorMessage »
  • PHP Manual
  • IntlDateFormatter
  • Получает код ошибки последней операции

IntlDateFormatter::getErrorCode

datefmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorCode -- datefmt_get_error_code — Получает код ошибки последней операции

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getErrorCode(): int

Процедурный стиль

datefmt_get_error_code(IntlDateFormatter $formatter): int

Получает код ошибки последней операции. Возвращает код ошибки последней операции форматирования числа.

Список параметров

formatter

Ресурс средства форматирования.

Возвращаемые значения

Код ошибки, одно из значений UErrorCode. Начальное значение - U_ZERO_ERROR.

Примеры

Пример #1 Пример использования datefmt_get_error_code()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
$str = datefmt_format($fmt);
if (!$str) {
printf(
"ОШИБКА: %s (%d)\n",
datefmt_get_error_message($fmt),
datefmt_get_error_code($fmt)
);
}
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
$str = $fmt->format();
if (!$str) {
printf(
"ОШИБКА: %s (%d)\n",
$fmt->getErrorMessage(),
$fmt->getErrorCode()
);
}
?>

Результат выполнения данного примера:

ОШИБКА: U_ZERO_ERROR (0)

Смотрите также

  • datefmt_get_error_message() - Получает текст ошибки последней операции
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Получает текст ошибки последней операции

  • « IntlDateFormatter::getErrorCode
  • IntlDateFormatter::getLocale »
  • PHP Manual
  • IntlDateFormatter
  • Получает текст ошибки последней операции

IntlDateFormatter::getErrorMessage

datefmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorMessage -- datefmt_get_error_message — Получает текст ошибки последней операции

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getErrorMessage(): string

Процедурный стиль

datefmt_get_error_message(IntlDateFormatter $formatter): string

Получает текст ошибки последней операции.

Список параметров

formatter

Ресурс средства форматирования.

Возвращаемые значения

Описание последней ошибки.

Примеры

Пример #1 Пример использования datefmt_get_error_message()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
$str = datefmt_format($fmt);
if (!$str) {
printf(
"ОШИБКА: %s (%d)\n",
datefmt_get_error_message($fmt),
datefmt_get_error_code($fmt)
);
}
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
$str = $fmt->format();
if(!$str) {
printf(
"ОШИБКА: %s (%d)\n",
$fmt->getErrorMessage(),
$fmt->getErrorCode()
);
}

?>

Результат выполнения данного примера:

ОШИБКА: U_ZERO_ERROR (0)

Смотрите также

  • datefmt_get_error_code() - Получает код ошибки последней операции
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Получает языковой стандарт, используемый средством форматирования

  • « IntlDateFormatter::getErrorMessage
  • IntlDateFormatter::getPattern »
  • PHP Manual
  • IntlDateFormatter
  • Получает языковой стандарт, используемый средством форматирования

IntlDateFormatter::getLocale

datefmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getLocale -- datefmt_get_locale — Получает языковой стандарт, используемый средством форматирования

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getLocale(int $type = ULOC_ACTUAL_LOCALE): string|false

Процедурный стиль

datefmt_get_locale(IntlDateFormatter $formatter, int $type = ULOC_ACTUAL_LOCALE): string|false

Получает языковой стандарт, используемый средством форматирования.

Список параметров

formatter

Ресурс средства форматирования.

type

Вы можете выбирать между корректным и текущим языковым стандартом (Locale::VALID_LOCALE и Locale::ACTUAL_LOCALE, соответственно). По умолчанию используется текущий языковой стандарт.

Возвращаемые значения

Языковой стандарт средства форматирования или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования datefmt_get_locale()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Языковой стандарт средства форматирования : ' . datefmt_get_locale($fmt);
echo 'Первый отформатированный вывод ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Языковой стандарт средства форматирования : ' . datefmt_get_locale($fmt);
echo 'Второй отформатированный вывод ' . datefmt_format($fmt, 0);

?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Языковой стандарт средства форматирования : ' . $fmt->getLocale();
echo 'Первый отформатированный вывод ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Языковой стандарт средства форматирования : ' . $fmt->getLocale();
echo 'Второй отформатированный вывод ' . $fmt->format(0);

?>

Результат выполнения данного примера:

Языковой стандарт средства форматирования : en
Первый отформатированный вывод Wednesday, December 31, 1969 4:00:00 PM PT
Языковой стандарт средства форматирования : de
Второй отформатированный вывод Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00

Смотрите также

  • datefmt_create() - Создаёт средство форматирования даты


Получает шаблон, используемый IntlDateFormatter

  • « IntlDateFormatter::getLocale
  • IntlDateFormatter::getTimeType »
  • PHP Manual
  • IntlDateFormatter
  • Получает шаблон, используемый IntlDateFormatter

IntlDateFormatter::getPattern

datefmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getPattern -- datefmt_get_pattern — Получает шаблон, используемый IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getPattern(): string|false

Процедурный стиль

datefmt_get_pattern(IntlDateFormatter $formatter): string|false

Получает шаблон, используемый средством форматирования.

Список параметров

formatter

Ресурс средства форматирования.

Возвращаемые значения

Строка шаблона, используемая для форматирования/разбора или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования datefmt_get_pattern()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Шаблон средства форматирования : ' . datefmt_get_pattern($fmt);
echo 'Первый отформатированный вывод с шаблоном ' . datefmt_format($fmt, 0);
datefmt_set_pattern($fmt,'yyyymmdd hh:mm:ss z');
echo 'Теперь шаблон средства форматирования : ' . datefmt_get_pattern($fmt);
echo 'Второй отформатированный вывод с шаблоном ' . datefmt_format($fmt, 0);

?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Шаблон средства форматирования : ' . $fmt->getPattern();
echo 'Первый отформатированный вывод с шаблоном ' . $fmt->format(0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo 'Теперь шаблон средства форматирования : ' . $fmt->getPattern();
echo 'Второй отформатированный вывод с шаблоном ' . $fmt->format(0);
?>

Результат выполнения данного примера:

Шаблон средства форматирования : MM/dd/yyyy
Первый отформатированный вывод с шаблоном 12/31/1969
Теперь шаблон средства форматирования : yyyymmdd hh:mm:ss z
Второй отформатированный вывод с шаблоном 19690031 04:00:00 PST

Смотрите также

  • datefmt_set_pattern() - Устанавливает шаблон, используемый IntlDateFormatter
  • datefmt_create() - Создаёт средство форматирования даты


Получает тип времени, используемый IntlDateFormatter

  • « IntlDateFormatter::getPattern
  • IntlDateFormatter::getTimeZoneId »
  • PHP Manual
  • IntlDateFormatter
  • Получает тип времени, используемый IntlDateFormatter

IntlDateFormatter::getTimeType

datefmt_get_timetype

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeType -- datefmt_get_timetype — Получает тип времени, используемый IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getTimeType(): int|false

Процедурный стиль

datefmt_get_timetype(IntlDateFormatter $formatter): int|false

Возвращает тип времени, используемый средством форматирования.

Список параметров

formatter

Ресурс средства форматирования.

Возвращаемые значения

Значение текущего типа даты средства форматирования или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования datefmt_get_timetype()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Тип времени средства форматирования : ' . datefmt_get_timetype($fmt);
echo 'Первый отформатированный вывод ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::SHORT,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Теперь тип времени средства форматирования : ' . datefmt_get_timetype($fmt);
echo 'Второй отформатированный вывод ' . datefmt_format($fmt, 0);

?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Тип времени средства форматирования : ' . $fmt->getTimeType();
echo 'Первый отформатированный вывод ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::SHORT,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Теперь тип времени средства форматирования : ' . $fmt->getTimeType();
echo 'Второй отформатированный вывод ' . $fmt->format(0);

?>

Результат выполнения данного примера:

Тип времени средства форматирования : 0
Первый отформатированный вывод Wednesday, December 31, 1969 4:00:00 PM PT
Теперь тип времени средства форматирования : 3
Второй отформатированный вывод Wednesday, December 31, 1969 4:00 PM

Смотрите также

  • datefmt_get_datetype() - Получает тип даты, используемый IntlDateFormatter
  • datefmt_create() - Создаёт средство форматирования даты


Получает идентификатор часового пояса, используемый IntlDateFormatter

  • « IntlDateFormatter::getTimeType
  • IntlDateFormatter::getCalendarObject »
  • PHP Manual
  • IntlDateFormatter
  • Получает идентификатор часового пояса, используемый IntlDateFormatter

IntlDateFormatter::getTimeZoneId

datefmt_get_timezone_id

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeZoneId -- datefmt_get_timezone_id — Получает идентификатор часового пояса, используемый IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getTimeZoneId(): string|false

Процедурный стиль

datefmt_get_timezone_id(IntlDateFormatter $formatter): string|false

Получает идентификатор часового пояса, используемый IntlDateFormatter.

Список параметров

formatter

Ресурс средства форматирования.

Возвращаемые значения

Строка идентификатора часового пояса, используемого этим средством форматирования или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования datefmt_get_timezone_id()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'timezone_id средства форматирования: ' . datefmt_get_timezone_id($fmt) . "\n";
datefmt_set_timezone($fmt, 'Europe/Madrid');
echo 'Теперь timezone_id средства форматирования: ' . datefmt_get_timezone_id($fmt);

?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'timezone_id средства форматирования: ' . $fmt->getTimezoneId() . "\n";
$fmt->setTimezone('Europe/Madrid');
echo 'Теперь timezone_id средства форматирования: ' . $fmt->getTimezoneId();

?>

Результат выполнения данного примера:

timezone_id средства форматирования: America/Los_Angeles
Теперь timezone_id средства форматирования: Europe/Madrid

Смотрите также

  • datefmt_set_timezone() - Устанавливает часовой пояс средства форматирования
  • datefmt_create() - Создаёт средство форматирования даты


Получает копию объекта календаря средства форматирования

  • « IntlDateFormatter::getTimeZoneId
  • IntlDateFormatter::getTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Получает копию объекта календаря средства форматирования

IntlDateFormatter::getCalendarObject

datefmt_get_calendar_object

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::getCalendarObject -- datefmt_get_calendar_object — Получает копию объекта календаря средства форматирования

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getCalendarObject(): IntlCalendar|false|null

Процедурный стиль

datefmt_get_calendar_object(IntlDateFormatter $formatter): IntlCalendar|false|null

Получает копию объекта календаря, используемого для внутренних целей средством форматирования. Календарь будет иметь тип (например, грегорианский, японский, буддийский, рок, персидский, исламский и т.д.) и часовой пояс, которые соответствуют типу и часовому поясу, используемыми средством форматирования. Дата и время объекта не указаны.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Копия внутреннего объекта календаря, используемого средством форматирования или null, если ничего не было установлено или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования IntlDateFormatter::getCalendarObject()

<?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() - Получает тип календаря, используемый IntlDateFormatter
  • IntlDateFormatter::setCalendar() - Устанавливает тип календаря, используемый средством форматирования
  • IntlCalendar


Получает часовой пояс средства форматирования

  • « IntlDateFormatter::getCalendarObject
  • IntlDateFormatter::isLenient »
  • PHP Manual
  • IntlDateFormatter
  • Получает часовой пояс средства форматирования

IntlDateFormatter::getTimeZone

datefmt_get_timezone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::getTimeZone -- datefmt_get_timezone — Получает часовой пояс средства форматирования

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::getTimeZone(): IntlTimeZone|false

Процедурный стиль

datefmt_get_timezone(IntlDateFormatter $formatter): IntlTimeZone|false

Возвращает объект IntlTimeZone, представляющий часовой пояс, который будет использоваться этим объектом для форматирования даты и времени. При форматировании объектов IntlCalendar и DateTime с помощью этого IntlDateFormatter, используемый часовой пояс будет тот, который возвращается этим методом, а не тот, который связан с форматируемыми объектами.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Связанный объект IntlTimeZone или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования IntlDateFormatter::getTimeZone()

<?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";
//Идентификатор также можно получить с помощью ->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() - Получает идентификатор часового пояса, используемый IntlDateFormatter
  • IntlDateFormatter::setTimeZone() - Устанавливает часовой пояс средства форматирования
  • IntlTimeZone


Получает снисходительность, используемую для IntlDateFormatter

  • « IntlDateFormatter::getTimeZone
  • IntlDateFormatter::localtime »
  • PHP Manual
  • IntlDateFormatter
  • Получает снисходительность, используемую для IntlDateFormatter

IntlDateFormatter::isLenient

datefmt_is_lenient

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::isLenient -- datefmt_is_lenient — Получает снисходительность, используемую для IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::isLenient(): bool

Процедурный стиль

datefmt_is_lenient(IntlDateFormatter $formatter): bool

Проверяет, является ли синтаксический анализатор строгим или снисходительным при интерпретации входных данных, которые не точно соответствуют шаблону.

Список параметров

formatter

Ресурс средства форматирования.

Возвращаемые значения

Возвращает true, если парсер снисходителен или false, если парсер строгий. По умолчанию парсер снисходителен.

Примеры

Пример #1 Пример использования datefmt_is_lenient()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'dd/mm/yyyy'
);
echo 'Снисходительность средства форматирования: ';
if ($fmt->isLenient()) {
echo 'Да';
} else {
echo 'Нет';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Попытка выполнить синтаксический анализ '35/13/1971'.\nРезультат: " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nОшибка: " . intl_get_error_message();
echo "\nКод ошибки: " . intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo 'Теперь снисходительность средства форматирования: ';
if ($fmt->isLenient()) {
echo 'Да';
} else {
echo 'Нет';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Попытка выполнить синтаксический анализ '35/13/1971'.\nРезультат: " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nОшибка: " . intl_get_error_message();
echo "\nКод ошибки: " . intl_get_error_code();
}

?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
"dd/mm/yyyy"
);
echo "Снисходительность средства форматирования: ";
if ($fmt->isLenient()) {
echo 'Да';
} else {
echo 'Нет';
}
$fmt->parse('35/13/1971');
echo "\n Попытка выполнить синтаксический анализ '35/13/1971'.\nРезультат: " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0){
echo "\nОшибка: " . intl_get_error_message();
echo "\nКод ошибки: " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo 'Теперь снисходительность средства форматирования: ';
if ($fmt->isLenient()) {
echo 'Да';
} else {
echo 'Нет';
}
$fmt->parse('35/13/1971');
echo "\n Попытка выполнить синтаксический анализ '35/13/1971'.\nРезультат: " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nОшибка: " . intl_get_error_message();
echo "\nКод ошибки: " . intl_get_error_code();
}

?>

Результат выполнения данного примера:

Снисходительность средства форматирования: Да
Попытка выполнить синтаксический анализ '35/13/1971'.
Результат: -2147483
Теперь снисходительность средства форматирования: Нет
Попытка выполнить синтаксический анализ '35/13/1971'.
Результат:
Ошибка: Date parsing failed: U_PARSE_ERROR
Код ошибки: 9

Смотрите также

  • datefmt_set_lenient() - Устанавливает мягкий режим анализатора
  • datefmt_create() - Создаёт средство форматирования даты


Преобразует строку в значение времени на основе поля

  • « IntlDateFormatter::isLenient
  • IntlDateFormatter::parse »
  • PHP Manual
  • IntlDateFormatter
  • Преобразует строку в значение времени на основе поля

IntlDateFormatter::localtime

datefmt_localtime

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::localtime -- datefmt_localtime — Преобразует строку в значение времени на основе поля

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::localtime(string $string, int &$offset = null): array|false

Процедурный стиль

datefmt_localtime(IntlDateFormatter $formatter, string $string, int &$offset = null): array|false

Преобразует строку $value в значение времени на основе полей (массив различных полей), начиная с $parse_pos и используя как можно большую часть входного значения.

Список параметров

formatter

Ресурс средства форматирования.

string

Строка для преобразования во время.

offset

Позиция, с которой следует начать синтаксический анализ в $value (начиная с нуля). Если до использования $value ошибки не возникает, $parse_pos будет содержать -1, в противном случае он будет содержать позицию, в которой закончился синтаксический анализ. Если $parse_pos > strlen($value), разбор немедленно завершается ошибкой.

Возвращаемые значения

Массив целых чисел, совместимый с местным временем: содержит 24-часовое значение в поле tm_hour или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования datefmt_localtime()

<?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 'Преобразованный вывод: ';
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 'Преобразованный вывод: ';
if ($arr) {
foreach ($arr as $key => $value) {
echo "$key : $value , ";
}
}

?>

Результат выполнения данного примера:

Преобразованный вывод: 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() - Создаёт средство форматирования даты
  • datefmt_format() - Форматирует значение даты/времени в виде строки
  • datefmt_parse() - Преобразует строку в значение отметки времени
  • datefmt_get_error_code() - Получает код ошибки последней операции
  • datefmt_get_error_message() - Получает текст ошибки последней операции


Преобразует строку в значение отметки времени

  • « IntlDateFormatter::localtime
  • IntlDateFormatter::setCalendar »
  • PHP Manual
  • IntlDateFormatter
  • Преобразует строку в значение отметки времени

IntlDateFormatter::parse

datefmt_parse

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::parse -- datefmt_parse — Преобразует строку в значение отметки времени

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::parse(string $string, int &$offset = null): int|float|false

Процедурный стиль

datefmt_parse(IntlDateFormatter $formatter, string $string, int &$offset = null): int|float|false

Преобразует string в инкрементное значение времени, начиная с offset и используя как можно большую часть входного значения.

Список параметров

formatter

Ресурс средства форматирования.

string

Строка для преобразования во время.

offset

Позиция, с которой следует начать синтаксический анализ в string (начиная с нуля). Если до использования string ошибки не возникает, offset будет содержать -1, в противном случае он будет содержать позицию, в которой закончился синтаксический анализ (и произошла ошибка). Эта переменная будет содержать конечную позицию, если при синтаксическом анализе возникла ошибка. Если offset > strlen($string), разбор немедленно завершается ошибкой.

Возвращаемые значения

Отметка времени преобразованного значения или false, если значение не может быть преобразовано.

Примеры

Пример #1 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Первый преобразованный вывод: ' . $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()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Первый преобразованный вывод: ' . 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 'Второй преобразованный вывод: ' . datefmt_parse($fmt, 'Mittwoch, 20. Dezember 1989 16:00 Uhr GMT-08:00');
?

Результат выполнения данного примера:

Первый преобразованный вывод: 630201600
Второй преобразованный вывод: 630201600

Смотрите также

  • datefmt_create() - Создаёт средство форматирования даты
  • datefmt_format() - Форматирует значение даты/времени в виде строки
  • datefmt_localtime() - Преобразует строку в значение времени на основе поля
  • datefmt_get_error_code() - Получает код ошибки последней операции
  • datefmt_get_error_message() - Получает текст ошибки последней операции


Устанавливает тип календаря, используемый средством форматирования

  • « IntlDateFormatter::parse
  • IntlDateFormatter::setLenient »
  • PHP Manual
  • IntlDateFormatter
  • Устанавливает тип календаря, используемый средством форматирования

IntlDateFormatter::setCalendar

datefmt_set_calendar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::setCalendar -- datefmt_set_calendar — Устанавливает тип календаря, используемый средством форматирования

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::setCalendar(IntlCalendar|int|null $calendar): bool

Процедурный стиль

datefmt_set_calendar(IntlDateFormatter $formatter, IntlCalendar|int|null $calendar): bool

Устанавливает тип календаря, используемый средством форматирования.

Список параметров

formatter

Ресурс средства форматирования.

calendar

Может быть: тип календаря для использования (по умолчанию IntlDateFormatter::GREGORIAN, который также используется, если указано значение null) или объект IntlCalendar.

Любой переданный объект IntlCalendar будет клонирован; в объект аргумента не будет внесено никаких изменений.

Часовой пояс средства форматирования будет сохранён только в том случае, если объект IntlCalendar не передан, в противном случае новый часовой пояс будет таким же, как у переданного объекта.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0/PECL 3.0.0 | Добавлена возможность передать объект IntlCalendar.

Примеры

Пример #1 Пример использования datefmt_set_calendar()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Тип календаря средства форматирования : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Теперь тип календаря : ' . datefmt_get_calendar($fmt);
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo 'Тип календаря средства форматирования : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Теперь тип календаря : ' . $fmt->getCalendar();
?>

Результат выполнения данного примера:

Тип календаря средства форматирования : 1
Теперь тип календаря : 0

Пример #3 Пример использования IntlCalendar с параметром

<?php
$time = strtotime("2013-03-03 00:00:00 UTC");
$formatter = IntlDateFormatter::create("en_US", NULL, NULL, "Europe/Amsterdam");

echo "До: ", $formatter->format($time), "\n";

/* обратите внимание, что языковой стандарт календаря не используется! */
$formatter->setCalendar(IntlCalendar::createInstance(
"America/New_York", "pt_PT@calendar=islamic"));

echo "После: ", $formatter->format($time), "\n";

Результат выполнения данного примера:

До: Sunday, March 3, 2013 at 1:00:00 AM Central European Standard Time
После:  Saturday, Rabi? II 20, 1434 at 7:00:00 PM Eastern Standard Time

Смотрите также

  • datefmt_get_calendar() - Получает тип календаря, используемый IntlDateFormatter
  • datefmt_get_calendar_object() - Получает копию объекта календаря средства форматирования
  • datefmt_create() - Создаёт средство форматирования даты


Устанавливает мягкий режим анализатора

  • « IntlDateFormatter::setCalendar
  • IntlDateFormatter::setPattern »
  • PHP Manual
  • IntlDateFormatter
  • Устанавливает мягкий режим анализатора

IntlDateFormatter::setLenient

datefmt_set_lenient

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::setLenient -- datefmt_set_lenient — Устанавливает мягкий режим анализатора

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::setLenient(bool $lenient): void

Процедурный стиль

datefmt_set_lenient(IntlDateFormatter $formatter, bool $lenient): void

Определяет, является ли режим анализатора строгим или мягким при интерпретации входных данных, которые в точности не соответствуют шаблону. Включение мягкого синтаксического анализа позволяет синтаксическому анализатору принимать ошибочные шаблоны даты или времени, анализируя как можно больше для получения значения. Лишний пробел, нераспознанные токены или недопустимые значения ("February 30th") не принимаются.

Список параметров

formatter

Ресурс средства форматирования.

lenient

Устанавливает, является ли анализатор vzurbv или нет, по умолчанию true (мягкий).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования datefmt_set_lenient()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'dd/MM/yyyy'
);
echo 'Мягкий режим средства форматирования : ';
if ($fmt->isLenient()) {
echo 'ДА';
} else {
echo 'НЕТ';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nПопытка разобрать '35/13/1971'.\nРезультат : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nСообщение об ошибке : " . intl_get_error_message();
echo "\nКод ошибки : " . intl_get_error_code();
}
datefmt_set_lenient($fmt, false);
echo "\nТеперь мягкий режим средства форматирования : ";
if ($fmt->isLenient()) {
echo 'ДА';
} else {
echo 'НЕТ';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nПопытка разобрать '35/13/1971'.\nРезультат : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nСообщение об ошибке : ".intl_get_error_message();
echo "\nКод ошибки : ".intl_get_error_code();
}

?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'dd/MM/yyyy'
);
echo 'Мягкий режим средства форматирования : ';
if ($fmt->isLenient()) {
echo 'ДА';
} else {
echo 'НЕТ';
}
$fmt->parse('35/13/1971');
echo "\nПопытка разобрать '35/13/1971'.\nРезультат : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nСообщение об ошибке : " . intl_get_error_message();
echo "\nКод ошибки : " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo "\nТеперь мягкий режим средства форматирования : ";
if ($fmt->isLenient()) {
echo 'ДА';
} else {
echo 'НЕТ';
}
$fmt->parse('35/13/1971');
echo "\nПопытка разобрать '35/13/1971'.\nРезультат : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nСообщение об ошибке : " . intl_get_error_message();
echo "\nКод ошибки : " . intl_get_error_code();
}

?>

Результат выполнения данного примера:

Мягкий режим средства форматирования : ДА
Попытка разобрать '35/13/1971'.
Результат : 66038400
Теперь мягкий режим средства форматирования : НЕТ
Попытка разобрать '35/13/1971'.
Результат :
Сообщение об ошибке : Date parsing failed: U_PARSE_ERROR
Код ошибки : 9

Смотрите также

  • datefmt_is_lenient() - Получает снисходительность, используемую для IntlDateFormatter
  • datefmt_create() - Создаёт средство форматирования даты


Устанавливает шаблон, используемый IntlDateFormatter

  • « IntlDateFormatter::setLenient
  • IntlDateFormatter::setTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Устанавливает шаблон, используемый IntlDateFormatter

IntlDateFormatter::setPattern

datefmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::setPattern -- datefmt_set_pattern — Устанавливает шаблон, используемый IntlDateFormatter

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::setPattern(string $pattern): bool

Процедурный стиль

datefmt_set_pattern(IntlDateFormatter $formatter, string $pattern): bool

Устанавливает шаблон, используемый IntlDateFormatter.

Список параметров

formatter

Ресурс средства форматирования.

pattern

Новая строка шаблона для использования. Возможные шаблоны можно посмотреть на » https://unicode-org.github.io/icu/userguide/format_parse/datetime/.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Обычно причиной ошибки являются плохо отформатированные строки.

Примеры

Пример #1 Пример использования datefmt_set_pattern()

<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Шаблон средства форматирования : ', datefmt_get_pattern($fmt), PHP_EOL;
echo 'Первый отформатированный вывод : ', datefmt_format($fmt, 0), PHP_EOL;
datefmt_set_pattern($fmt, 'yyyyMMdd hh:mm:ss z');
echo 'Теперь шаблон средства форматирования : ', datefmt_get_pattern($fmt), PHP_EOL;
echo 'Второй отформатированный вывод : ', datefmt_format($fmt, 0), PHP_EOL;
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Шаблон средства форматирования : ', $fmt->getPattern(), PHP_EOL;
echo 'Первый отформатированный вывод : ', $fmt->format(0), PHP_EOL;
$fmt->setPattern('yyyyMMdd hh:mm:ss z');
echo 'Теперь шаблон средства форматирования : ', $fmt->getPattern(), PHP_EOL;
echo 'Второй отформатированный вывод : ', $fmt->format(0), PHP_EOL;
?>

Результат выполнения данного примера:

Шаблон средства форматирования : MM/dd/yyyy
Первый отформатированный вывод : 12/31/1969
Теперь шаблон средства форматирования : yyyyMMdd hh:mm:ss z
Второй отформатированный вывод : 19691231 04:00:00 PST

Смотрите также

  • datefmt_get_pattern() - Получает шаблон, используемый IntlDateFormatter
  • datefmt_create() - Создаёт средство форматирования даты


Устанавливает часовой пояс средства форматирования

  • « IntlDateFormatter::setPattern
  • ResourceBundle »
  • PHP Manual
  • IntlDateFormatter
  • Устанавливает часовой пояс средства форматирования

IntlDateFormatter::setTimeZone

datefmt_set_timezone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::setTimeZone -- datefmt_set_timezone — Устанавливает часовой пояс средства форматирования

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): ?bool

Процедурный стиль

datefmt_set_timezone(IntlDateFormatter $formatter, IntlTimeZone|DateTimeZone|string|null $timezone): ?bool

Устанавливает часовой пояс, используемый объектом IntlDateFormatter.

Список параметров

formatter

Ресурс средства форматирования.

timezone

Часовой пояс для средства форматирования. Можно указать в следующих форматах:

  • Если null, то будет использован часовой пояс по умолчанию, заданная в ini-настройки date.timezone либо с помощью функции date_default_timezone_set() и возвращённая функцией date_default_timezone_get().

  • Объект класса IntlTimeZone.

  • Объект класса DateTimeZone. Его идентификатор будет извлечён и на его основе будет создан объект часового пояса ICU; часовой пояс будет сохранён в базе данных ICU, а не PHP.

  • Строка, являющаяся корректным идентификатором часового пояса ICU. Смотрите IntlTimeZone::createTimeZoneIDEnumeration(). "Сырые" смещения, типа "GMT+08:30", также поддерживаются.

Возвращаемые значения

Возвращает null в случае успешного выполнения и false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования IntlDateFormatter::setTimeZone()

<?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() - Получает часовой пояс средства форматирования


Класс ResourceBundle

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)

Введение

Локализованные программные продукты часто нуждаются в наборах данных подготовленных в зависимости от текущей локали, например: сообщения, метки, шаблоны форматирования. Механизм ресурсов ICU позволяет задать наборы ресурсов, которые приложение может загрузить в зависимости от текущей локали и использовать унифицированным, не зависящим от локали, образом.

Этот класс реализует доступ к файлам ресурсов ICU. Эти файлы являются бинарными массивами данных, которые ICU использует для хранения локализованных данных.

Пакет ресурсов ICU может содержать простые и сложные ресурсы. Сложные ресурсы - это контейнеры, которые могут быть индексированы как числами так и строками (аналогично массивам PHP). Простые ресурсы могут быть следующих типов: строки, целые, бинарные поля данных и целочисленные массивы.

ResourceBundleподдерживает прямой доступ к данным через синтаксис доступа к массивам и итерироваться через foreach, так же как и доступ через методы. В результате будет получено значение PHP для простых ресурсов и объекты ResourceBundle для сложных. Все ресурсы доступны только для чтения.

Обзор классов

class ResourceBundle implements IteratorAggregate, Countable {
/* Методы */
public __construct(?string $locale, ?string $bundle, bool $fallback = true)
public count(): int
public static create(?string $locale, ?string $bundle, bool $fallback = true): ?ResourceBundle
public getErrorCode(): int
public getErrorMessage(): string
public get(string|int $index, bool $fallback = true): mixed
public static getLocales(string $bundle): array|false
}

Список изменений

Версия | Описание
8.0.0 | Класс ResourceBundle теперь реализует интерфейс IteratorAggregate. Ранее был реализован интерфейс Traversable.
7.4.0 | Класс ResourceBundle теперь реализует интерфейс Countable.

Смотрите также

  • » Менеджер ресурсов 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, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::count -- resourcebundle_count — Получить количество элементов в пакете

Описание

Объектно-ориентированный стиль

public ResourceBundle::count(): int

Процедурный стиль

resourcebundle_count(ResourceBundle $bundle): int

Получает количество элементов в пакете.

Список параметров

bundle

Объект 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, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::create -- resourcebundle_create -- ResourceBundle::__construct — Создать пакет ресурсов

Описание

Объектно-ориентированный стиль (метод)

public static ResourceBundle::create(?string $locale, ?string $bundle, bool $fallback = true): ?ResourceBundle

Процедурный стиль

resourcebundle_create(?string $locale, ?string $bundle, bool $fallback = true): ?ResourceBundle

Объектно-ориентированный стиль (конструктор):

public ResourceBundle::__construct(?string $locale, ?string $bundle, bool $fallback = true)

Создаёт пакет ресурсов.

Список параметров

locale

Локаль для которой необходимо загружать ресурсы (имя локали, например, ru_RU).

bundle

Директория, в которой лежат данные, либо имя .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, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::getErrorCode -- resourcebundle_get_error_code — Получить последний код ошибки пакета

Описание

Объектно-ориентированный стиль

public ResourceBundle::getErrorCode(): int

Процедурный стиль

resourcebundle_get_error_code(ResourceBundle $bundle): int

Возвращает код последней ошибки возникшей при вызове функций пакета.

Список параметров

bundle

Объект 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, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::getErrorMessage -- resourcebundle_get_error_message — Получить последнее сообщение об ошибке пакета

Описание

Объектно-ориентированный стиль

public ResourceBundle::getErrorMessage(): string

Процедурный стиль

resourcebundle_get_error_message(ResourceBundle $bundle): string

Возвращает последнее сообщение об ошибке при вызове функций пакета.

Список параметров

bundle

Объект 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, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::get -- resourcebundle_get — Получить данные из пакета

Описание

Объектно-ориентированный стиль

public ResourceBundle::get(string|int $index, bool $fallback = true): mixed

Процедурный стиль

resourcebundle_get(ResourceBundle $bundle, string|int $index, bool $fallback = true): mixed

Возвращает данные из пакета по индексу или строковому ключу.

Список параметров

bundle

Объект 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, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::getLocales -- resourcebundle_locales — Получить поддерживаемые локали

Описание

Объектно-ориентированный стиль

public static ResourceBundle::getLocales(string $bundle): array|false

Процедурный стиль

resourcebundle_locales(string $bundle): array|false

Возвращает доступные в ResourceBundle локали.

Список параметров

bundle

Путь к ResourceBundle или пустая строка, для получения списка по умолчанию или false в случае возникновения ошибки.

Возвращаемые значения

Возвращает доступные в 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, PHP 8, PECL intl >= 2.0.0)

Введение

Этот класс существует потому, что Unicode содержит большое количество символов и включает в себя различные системы письма со всего мира и их некорректное использование может сделать программы и системы уязвимыми к хакерским атакам, использующим сходство символов.

Предоставляемые методы позволяют проверить строку на предмет попыток обмануть пользователя (spoof detection), например, вставить в слово "pаypаl" кириллический символ 'а'.

Обзор классов

class Spoofchecker {
/* Константы */
public const int SINGLE_SCRIPT_CONFUSABLE;
public const int MIXED_SCRIPT_CONFUSABLE;
public const int WHOLE_SCRIPT_CONFUSABLE;
public const int ANY_CASE;
public const int SINGLE_SCRIPT;
public const int INVISIBLE;
public const int CHAR_LIMIT;
public const int ASCII;
public const int HIGHLY_RESTRICTIVE;
public const int MODERATELY_RESTRICTIVE;
public const int MINIMALLY_RESTRICTIVE;
public const int UNRESTRICTIVE;
public const int SINGLE_SCRIPT_RESTRICTIVE;
/* Методы */
public __construct()
public areConfusable(string $string1, string $string2, int &$errorCode = null): bool
public isSuspicious(string $string, int &$errorCode = null): bool
public setAllowedLocales(string $locales): void
public setChecks(int $checks): void
public setRestrictionLevel(int $level): void
}

Предопределённые константы

Spoofchecker::SINGLE_SCRIPT_CONFUSABLE

Spoofchecker::MIXED_SCRIPT_CONFUSABLE

Spoofchecker::WHOLE_SCRIPT_CONFUSABLE

Spoofchecker::ANY_CASE

Spoofchecker::SINGLE_SCRIPT

Spoofchecker::INVISIBLE

Spoofchecker::CHAR_LIMIT

Spoofchecker::ASCII

Spoofchecker::HIGHLY_RESTRICTIVE

Spoofchecker::MODERATELY_RESTRICTIVE

Spoofchecker::MINIMALLY_RESTRICTIVE

Spoofchecker::UNRESTRICTIVE

Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE

Список изменений

Версия | Описание
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::setRestrictionLevel — Set the restriction level


Проверить, являются ли строки подозрительными

  • « Spoofchecker
  • Spoofchecker::__construct »
  • PHP Manual
  • Spoofchecker
  • Проверить, являются ли строки подозрительными

Spoofchecker::areConfusable

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Spoofchecker::areConfusable — Проверить, являются ли строки подозрительными

Описание

public Spoofchecker::areConfusable(string $string1, string $string2, int &$errorCode = null): bool

Проверяет, на сколько легко перепутать две строки.

Список параметров

string1

Первая строка.

string2

Вторая строка.

errorCode

Этот параметр передаётся по ссылке и заполняется целым числом (int), содержащим ошибку, если таковая есть.

Возвращаемые значения

Возвращает 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

(Информация о версии неизвестна, возможно, только в Git)

Spoofchecker::__construct — Конструктор класса

Описание

public Spoofchecker::__construct()

Создаёт экземпляр класса Spoofchecker.

Список параметров

У этой функции нет параметров.


Проверяет, содержит ли текст подозрительные символы

  • « Spoofchecker::__construct
  • Spoofchecker::setAllowedLocales »
  • PHP Manual
  • Spoofchecker
  • Проверяет, содержит ли текст подозрительные символы

Spoofchecker::isSuspicious

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Spoofchecker::isSuspicious — Проверяет, содержит ли текст подозрительные символы

Описание

public Spoofchecker::isSuspicious(string $string, int &$errorCode = null): bool

Проверяет, содержит ли текст подозрительные символы, которые визуально идентичны, но являются при этом символами Unicode из другого языкового набора.

Список параметров

string

Строка для проверки.

errorCode

Этот параметр передаётся по ссылке и заполняется целым числом (int), содержащим ошибку, если таковая есть.

Возвращаемые значения

Возвращает 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, PHP 8, PECL intl >= 2.0.0)

Spoofchecker::setAllowedLocales — Локаль для использования в проверках

Описание

public Spoofchecker::setAllowedLocales(string $locales): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locales

Возвращаемые значения


Установить набор проверок

  • « Spoofchecker::setAllowedLocales
  • Spoofchecker::setRestrictionLevel »
  • PHP Manual
  • Spoofchecker
  • Установить набор проверок

Spoofchecker::setChecks

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Spoofchecker::setChecks — Установить набор проверок

Описание

public Spoofchecker::setChecks(int $checks): void

Устанавливает проверки, которые будут выполняться методом SpoofChecker::isSuspicious().

Список параметров

checks

Проверки, которые будут выполняться методом SpoofChecker::isSuspicious().
Битовая маска, состоящая из констант
Spoofchecker::SINGLE_SCRIPT_CONFUSABLE,
Spoofchecker::MIXED_SCRIPT_CONFUSABLE,
Spoofchecker::WHOLE_SCRIPT_CONFUSABLE,
Spoofchecker::ANY_CASE,
Spoofchecker::SINGLE_SCRIPT,
Spoofchecker::INVISIBLE или
Spoofchecker::CHAR_LIMIT.
По умолчанию все проверки, начиная с ICU 58;
до этой версии константа Spoofchecker::SINGLE_SCRIPT была исключена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Set the restriction level

  • « Spoofchecker::setChecks
  • Transliterator »
  • PHP Manual
  • Spoofchecker
  • Set the restriction level

Spoofchecker::setRestrictionLevel

(PHP 7 >= 7.3.0, PHP 8)

Spoofchecker::setRestrictionLevel — Set the restriction level

Описание

public Spoofchecker::setRestrictionLevel(int $level): void

Sets the restriction level of SpoofChecker::isSuspicious().

Список параметров

level

The restriction level of SpoofChecker::isSuspicious().
One of
Spoofchecker::ASCII,
Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE,
Spoofchecker::HIGHLY_RESTRICTIVE,
Spoofchecker::MODERATELY_RESTRICTIVE,
Spoofchecker::MINIMALLY_RESTRICTIVE, or
Spoofchecker::UNRESTRICTIVE.
Defaults to Spoofchecker::HIGHLY_RESTRICTIVE.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Класс Transliterator

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Введение

Данный класс предоставляет функциональность транслитерации строк.

Обзор классов

class Transliterator {
/* Константы */
public const int FORWARD;
public const int REVERSE;
/* Свойства */
public readonly string $id;
/* Методы */
final private __construct()
public static create(string $id, int $direction = Transliterator::FORWARD): ?Transliterator
public static createFromRules(string $rules, int $direction = Transliterator::FORWARD): ?Transliterator
public createInverse(): ?Transliterator
public getErrorCode(): int|false
public getErrorMessage(): string|false
public static listIDs(): array|false
public transliterate(string $string, int $start = 0, int $end = -1): string|false
}

Свойства

id

Предопределённые константы

Transliterator::FORWARD

Transliterator::REVERSE

Список изменений

Версия | Описание
8.2.0 | Свойство id теперь доступно только для чтения.

Содержание

  • 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, PHP 8, PECL intl >= 2.0.0)

Transliterator::__construct — Приватный конструктор

Описание

final private Transliterator::__construct()

Этот метод не может быть вызван. Он существует только для закрытия возможности создания объекта с помощью оператора new.

Вместо него используйте фабричные методы Transliterator::create() или Transliterator::createFromRules().

Список параметров

У этой функции нет параметров.

Смотрите также

  • Transliterator::create() - Создать транслитератор
  • Transliterator::createFromRules() - Создать транслитератор на основе правил


Создать транслитератор

  • « Transliterator::__construct
  • Transliterator::createFromRules »
  • PHP Manual
  • Transliterator
  • Создать транслитератор

Transliterator::create

transliterator_create

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::create -- transliterator_create — Создать транслитератор

Описание

Объектно-ориентированный стиль

public static Transliterator::create(string $id, int $direction = Transliterator::FORWARD): ?Transliterator

Процедурный стиль

transliterator_create(string $id, int $direction = Transliterator::FORWARD): ?Transliterator

Открывает объект Transliterator по идентификатору.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

id

Идентификатор. Список всех зарегистрированных идентификаторов транслитератора можно получить с помощью Transliterator::listIDs().

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, PHP 8, PECL intl >= 2.0.0)

Transliterator::createFromRules -- transliterator_create_from_rules — Создать транслитератор на основе правил

Описание

Объектно-ориентированный стиль

public static Transliterator::createFromRules(string $rules, int $direction = Transliterator::FORWARD): ?Transliterator

Процедурный стиль

transliterator_create_from_rules(string $rules, int $direction = Transliterator::FORWARD): ?Transliterator

Создать транслитератор на основе правил.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

rules

Правила, которые описаны в разделе Transform Rules Syntax отчёта UTS #35: Unicode LDML.

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, PHP 8, PECL intl >= 2.0.0)

Transliterator::createInverse -- transliterator_create_inverse — Создать инвертированный транслитератор

Описание

Объектно-ориентированный стиль

public Transliterator::createInverse(): ?Transliterator

Процедурный стиль

transliterator_create_inverse(Transliterator $transliterator): ?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, PHP 8, PECL intl >= 2.0.0)

Transliterator::getErrorCode -- transliterator_get_error_code — Получить код последней ошибки

Описание

Объектно-ориентированный стиль

public Transliterator::getErrorCode(): int|false

Процедурный стиль

transliterator_get_error_code(Transliterator $transliterator): int|false

Возвращает код последней ошибки.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

transliterator

Возвращаемые значения

Код ошибки или 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, PHP 8, PECL intl >= 2.0.0)

Transliterator::getErrorMessage -- transliterator_get_error_message — Получить последнее сообщение об ошибке

Описание

Объектно-ориентированный стиль

public Transliterator::getErrorMessage(): string|false

Процедурный стиль

transliterator_get_error_message(Transliterator $transliterator): string|false

Возвращает последнее сообщение об ошибке.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

transliterator

Возвращаемые значения

Сообщение об ошибке или false, если ошибок не было или если получить его не удалось.

Смотрите также

  • Transliterator::getErrorCode() - Получить код последней ошибки
  • Transliterator::listIDs() - Получить идентификаторы транслитератора


Получить идентификаторы транслитератора

  • « Transliterator::getErrorMessage
  • Transliterator::transliterate »
  • PHP Manual
  • Transliterator
  • Получить идентификаторы транслитератора

Transliterator::listIDs

transliterator_list_ids

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::listIDs -- transliterator_list_ids — Получить идентификаторы транслитератора

Описание

Объектно-ориентированный стиль

public static Transliterator::listIDs(): array|false

Процедурный стиль

transliterator_list_ids(): array|false

Возвращает массив зарегистрированных идентификаторов транслитератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) зарегистрированных идентификаторов транслитератора или false в случае возникновения ошибки.

Примеры

Пример #1 Получение зарегистрированных идентификаторов транслитератора

<?php
print_r(Transliterator::listIDs());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => ASCII-Latin
    [1] => Accents-Any
    [2] => Amharic-Latin/BGN
    [3] => Any-Accents
    [4] => Any-Publishing
...
    [650] => Any-ps_Latn/BGN
    [651] => Any-tk/BGN
    [652] => Any-ch_FONIPA
    [653] => Any-cs_FONIPA
    [654] => Any-cy_FONIPA
)

Смотрите также

  • Transliterator::getErrorMessage() - Получить последнее сообщение об ошибке
  • Transliterator::transliterate() - Транслитерировать строку


Транслитерировать строку

  • « Transliterator::listIDs
  • IntlBreakIterator »
  • PHP Manual
  • Transliterator
  • Транслитерировать строку

Transliterator::transliterate

transliterator_transliterate

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::transliterate -- transliterator_transliterate — Транслитерировать строку

Описание

Объектно-ориентированный стиль

public Transliterator::transliterate(string $string, int $start = 0, int $end = -1): string|false

Процедурный стиль

transliterator_transliterate(
Transliterator|string $transliterator,
string $string,
int $start = 0,
int $end = -1
): string|false

Преобразует строку или её часть, используя транслитератор ICU.

Список параметров

transliterator

В процедурном варианте, Transliterator или строка, из которой может быть собран объект Transliterator.

string

Строка для транслитерации.

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, PHP 8)

Введение

Итератор прерывания (Break iterator) - это объект ICU предоставляющий методы для определения границ в тексте (например границы слова или предложения). В PHP класс IntlBreakIterator служит базовым классом для всех типов итераторов прерывания ICU. Есть и дополнительная функциональность, модуль intl может расширять этот класс подходящими подклассами, такими как IntlRuleBasedBreakIterator или IntlCodePointBreakIterator.

Этот класс реализует интерфейс IteratorAggregate. Traversing an Итерация IntlBreakIterator порождает неотрицательные целые значения, представляющие из себя успешное нахождение границ в тексте, и равные позиции найденного символа UTF-8 отсчитанной от начала текста (позиция первого символа равна 0). Ключи возвращённых значений представляют из себя последовательность натуральных чисел {0, 1, 2, ...}.

Обзор классов

class IntlBreakIterator implements IteratorAggregate {
/* Константы */
public const int DONE;
public const int WORD_NONE;
public const int WORD_NONE_LIMIT;
public const int WORD_NUMBER;
public const int WORD_NUMBER_LIMIT;
public const int WORD_LETTER;
public const int WORD_LETTER_LIMIT;
public const int WORD_KANA;
public const int WORD_KANA_LIMIT;
public const int WORD_IDEO;
public const int WORD_IDEO_LIMIT;
public const int LINE_SOFT;
public const int LINE_SOFT_LIMIT;
public const int LINE_HARD;
public const int LINE_HARD_LIMIT;
public const int SENTENCE_TERM;
public const int SENTENCE_TERM_LIMIT;
public const int SENTENCE_SEP;
public const int SENTENCE_SEP_LIMIT;
/* Методы */
private __construct()
public static createCharacterInstance(?string $locale = null): ?IntlBreakIterator
public static createCodePointInstance(): IntlCodePointBreakIterator
public static createLineInstance(?string $locale = null): ?IntlBreakIterator
public static createSentenceInstance(?string $locale = null): ?IntlBreakIterator
public static createTitleInstance(?string $locale = null): ?IntlBreakIterator
public static createWordInstance(?string $locale = null): ?IntlBreakIterator
public current(): int
public first(): int
public following(int $offset): int
public getErrorCode(): int
public getErrorMessage(): string
public getLocale(int $type): string|false
public getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator
public getText(): ?string
public isBoundary(int $offset): bool
public last(): int
public next(?int $offset = null): int
public preceding(int $offset): int
public previous(): 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

Список изменений

Версия | Описание
8.0.0 | Класс IntlBreakIterator теперь реализует интерфейс IteratorAggregate. Ранее вместо этого был реализован интерфейс Traversable.

Содержание

  • IntlBreakIterator::__construct — Закрытый конструктор, запрещающий создание экземпляров объекта
  • IntlBreakIterator::createCharacterInstance — Создаёт итератор прерывания для границ комбинирования последовательностей символов
  • IntlBreakIterator::createCodePointInstance — Создаёт итератор прерывания для границ кодовых точек
  • IntlBreakIterator::createLineInstance — Создаёт итератор прерывания для логически возможных разрывов строк
  • IntlBreakIterator::createSentenceInstance — Создаёт итератор прерывания для разрывов предложений
  • IntlBreakIterator::createTitleInstance — Создаёт итератор прерывания для разрывов заголовков
  • IntlBreakIterator::createWordInstance — Создаёт итератор прерывания для разрывов слов
  • IntlBreakIterator::current — Возвращает индекс текущей позиции
  • IntlBreakIterator::first — Устанавливает позицию к первому символу в тексте
  • IntlBreakIterator::following — Перемещает итератор к первой границе после указанного смещения
  • IntlBreakIterator::getErrorCode — Возвращает последний код ошибки объекта
  • IntlBreakIterator::getErrorMessage — Возвращает последнее сообщение об ошибке объекта
  • IntlBreakIterator::getLocale — Возвращает локаль, связанную с объектом
  • IntlBreakIterator::getPartsIterator — Создаёт итератор для перемещения фрагментов между границами
  • IntlBreakIterator::getText — Возвращает сканируемый текст
  • IntlBreakIterator::isBoundary — Сообщает, является ли смещение смещением границы
  • IntlBreakIterator::last — Устанавливает позицию итератора к индексу за последним символом
  • IntlBreakIterator::next — Перемещает итератор к следующей границе
  • IntlBreakIterator::preceding — Устанавливает позицию итератора к первой границе перед смещением
  • IntlBreakIterator::previous — Устанавливает позицию итератора на границе непосредственно перед текущей
  • IntlBreakIterator::setText — Устанавливает сканируемый текст


Закрытый конструктор, запрещающий создание экземпляров объекта

  • « IntlBreakIterator
  • IntlBreakIterator::createCharacterInstance »
  • PHP Manual
  • IntlBreakIterator
  • Закрытый конструктор, запрещающий создание экземпляров объекта

IntlBreakIterator::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::__construct — Закрытый конструктор, запрещающий создание экземпляров объекта

Описание

private IntlBreakIterator::__construct()

Экземпляры IntlBreakIterator должны быть созданы с помощью одного из статических фабричных методов.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • IntlBreakIterator::createCharacterInstance() - Создаёт итератор прерывания для границ комбинирования последовательностей символов
  • IntlBreakIterator::createCodePointInstance() - Создаёт итератор прерывания для границ кодовых точек
  • IntlBreakIterator::createLineInstance() - Создаёт итератор прерывания для логически возможных разрывов строк
  • IntlBreakIterator::createSentenceInstance() - Создаёт итератор прерывания для разрывов предложений
  • IntlBreakIterator::createTitleInstance() - Создаёт итератор прерывания для разрывов заголовков
  • IntlBreakIterator::createWordInstance() - Создаёт итератор прерывания для разрывов слов


Создаёт итератор прерывания для границ комбинирования последовательностей символов

  • « IntlBreakIterator::__construct
  • IntlBreakIterator::createCodePointInstance »
  • PHP Manual
  • IntlBreakIterator
  • Создаёт итератор прерывания для границ комбинирования последовательностей символов

IntlBreakIterator::createCharacterInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createCharacterInstance — Создаёт итератор прерывания для границ комбинирования последовательностей символов

Описание

public static IntlBreakIterator::createCharacterInstance(?string $locale = null): ?IntlBreakIterator

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения


Создаёт итератор прерывания для границ кодовых точек

  • « IntlBreakIterator::createCharacterInstance
  • IntlBreakIterator::createLineInstance »
  • PHP Manual
  • IntlBreakIterator
  • Создаёт итератор прерывания для границ кодовых точек

IntlBreakIterator::createCodePointInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createCodePointInstance — Создаёт итератор прерывания для границ кодовых точек

Описание

public static IntlBreakIterator::createCodePointInstance(): IntlCodePointBreakIterator

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Создаёт итератор прерывания для логически возможных разрывов строк

  • « IntlBreakIterator::createCodePointInstance
  • IntlBreakIterator::createSentenceInstance »
  • PHP Manual
  • IntlBreakIterator
  • Создаёт итератор прерывания для логически возможных разрывов строк

IntlBreakIterator::createLineInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createLineInstance — Создаёт итератор прерывания для логически возможных разрывов строк

Описание

public static IntlBreakIterator::createLineInstance(?string $locale = null): ?IntlBreakIterator

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения


Создаёт итератор прерывания для разрывов предложений

  • « IntlBreakIterator::createLineInstance
  • IntlBreakIterator::createTitleInstance »
  • PHP Manual
  • IntlBreakIterator
  • Создаёт итератор прерывания для разрывов предложений

IntlBreakIterator::createSentenceInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createSentenceInstance — Создаёт итератор прерывания для разрывов предложений

Описание

public static IntlBreakIterator::createSentenceInstance(?string $locale = null): ?IntlBreakIterator

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения


Создаёт итератор прерывания для разрывов заголовков

  • « IntlBreakIterator::createSentenceInstance
  • IntlBreakIterator::createWordInstance »
  • PHP Manual
  • IntlBreakIterator
  • Создаёт итератор прерывания для разрывов заголовков

IntlBreakIterator::createTitleInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createTitleInstance — Создаёт итератор прерывания для разрывов заголовков

Описание

public static IntlBreakIterator::createTitleInstance(?string $locale = null): ?IntlBreakIterator

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения


Создаёт итератор прерывания для разрывов слов

  • « IntlBreakIterator::createTitleInstance
  • IntlBreakIterator::current »
  • PHP Manual
  • IntlBreakIterator
  • Создаёт итератор прерывания для разрывов слов

IntlBreakIterator::createWordInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createWordInstance — Создаёт итератор прерывания для разрывов слов

Описание

public static IntlBreakIterator::createWordInstance(?string $locale = null): ?IntlBreakIterator

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения


Возвращает индекс текущей позиции

  • « IntlBreakIterator::createWordInstance
  • IntlBreakIterator::first »
  • PHP Manual
  • IntlBreakIterator
  • Возвращает индекс текущей позиции

IntlBreakIterator::current

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::current — Возвращает индекс текущей позиции

Описание

public IntlBreakIterator::current(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Устанавливает позицию к первому символу в тексте

  • « IntlBreakIterator::current
  • IntlBreakIterator::following »
  • PHP Manual
  • IntlBreakIterator
  • Устанавливает позицию к первому символу в тексте

IntlBreakIterator::first

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::first — Устанавливает позицию к первому символу в тексте

Описание

public IntlBreakIterator::first(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Перемещает итератор к первой границе после указанного смещения

  • « IntlBreakIterator::first
  • IntlBreakIterator::getErrorCode »
  • PHP Manual
  • IntlBreakIterator
  • Перемещает итератор к первой границе после указанного смещения

IntlBreakIterator::following

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::following — Перемещает итератор к первой границе после указанного смещения

Описание

public IntlBreakIterator::following(int $offset): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Возвращаемые значения


Возвращает последний код ошибки объекта

  • « IntlBreakIterator::following
  • IntlBreakIterator::getErrorMessage »
  • PHP Manual
  • IntlBreakIterator
  • Возвращает последний код ошибки объекта

IntlBreakIterator::getErrorCode

intl_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getErrorCode -- intl_get_error_code — Возвращает последний код ошибки объекта

Описание

Объектно-ориентированный стиль (метод):

public IntlBreakIterator::getErrorCode(): int

Процедурный стиль:

intl_get_error_code(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает последнее сообщение об ошибке объекта

  • « IntlBreakIterator::getErrorCode
  • IntlBreakIterator::getLocale »
  • PHP Manual
  • IntlBreakIterator
  • Возвращает последнее сообщение об ошибке объекта

IntlBreakIterator::getErrorMessage

intl_get_error_message

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getErrorMessage -- intl_get_error_message — Возвращает последнее сообщение об ошибке объекта

Описание

Объектно-ориентированный стиль (метод):

public IntlBreakIterator::getErrorMessage(): string

Процедурный стиль:

intl_get_error_message(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает локаль, связанную с объектом

  • « IntlBreakIterator::getErrorMessage
  • IntlBreakIterator::getPartsIterator »
  • PHP Manual
  • IntlBreakIterator
  • Возвращает локаль, связанную с объектом

IntlBreakIterator::getLocale

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getLocale — Возвращает локаль, связанную с объектом

Описание

public IntlBreakIterator::getLocale(int $type): string|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

type

Возвращаемые значения


Создаёт итератор для перемещения фрагментов между границами

  • « IntlBreakIterator::getLocale
  • IntlBreakIterator::getText »
  • PHP Manual
  • IntlBreakIterator
  • Создаёт итератор для перемещения фрагментов между границами

IntlBreakIterator::getPartsIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getPartsIterator — Создаёт итератор для перемещения фрагментов между границами

Описание

public IntlBreakIterator::getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

type

Необязательный тип ключа. Возможные значения:

  • IntlPartsIterator::KEY_SEQUENTIAL - Значение по умолчанию. Последовательно увеличивает целые числа, используемые в качестве ключа.
  • IntlPartsIterator::KEY_LEFT - Байтовое смещение слева от текущей части, используемой в качестве ключа.
  • IntlPartsIterator::KEY_RIGHT - Байтовое смещение справа от текущей части, используемой в качестве ключа.

Возвращаемые значения


Возвращает сканируемый текст

  • « IntlBreakIterator::getPartsIterator
  • IntlBreakIterator::isBoundary »
  • PHP Manual
  • IntlBreakIterator
  • Возвращает сканируемый текст

IntlBreakIterator::getText

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getText — Возвращает сканируемый текст

Описание

public IntlBreakIterator::getText(): ?string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Сообщает, является ли смещение смещением границы

  • « IntlBreakIterator::getText
  • IntlBreakIterator::last »
  • PHP Manual
  • IntlBreakIterator
  • Сообщает, является ли смещение смещением границы

IntlBreakIterator::isBoundary

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::isBoundary — Сообщает, является ли смещение смещением границы

Описание

public IntlBreakIterator::isBoundary(int $offset): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Возвращаемые значения


Устанавливает позицию итератора к индексу за последним символом

  • « IntlBreakIterator::isBoundary
  • IntlBreakIterator::next »
  • PHP Manual
  • IntlBreakIterator
  • Устанавливает позицию итератора к индексу за последним символом

IntlBreakIterator::last

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::last — Устанавливает позицию итератора к индексу за последним символом

Описание

public IntlBreakIterator::last(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Перемещает итератор к следующей границе

  • « IntlBreakIterator::last
  • IntlBreakIterator::preceding »
  • PHP Manual
  • IntlBreakIterator
  • Перемещает итератор к следующей границе

IntlBreakIterator::next

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::next — Перемещает итератор к следующей границе

Описание

public IntlBreakIterator::next(?int $offset = null): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Возвращаемые значения


Устанавливает позицию итератора к первой границе перед смещением

  • « IntlBreakIterator::next
  • IntlBreakIterator::previous »
  • PHP Manual
  • IntlBreakIterator
  • Устанавливает позицию итератора к первой границе перед смещением

IntlBreakIterator::preceding

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::preceding — Устанавливает позицию итератора к первой границе перед смещением

Описание

public IntlBreakIterator::preceding(int $offset): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Возвращаемые значения


Устанавливает позицию итератора на границе непосредственно перед текущей

  • « IntlBreakIterator::preceding
  • IntlBreakIterator::setText »
  • PHP Manual
  • IntlBreakIterator
  • Устанавливает позицию итератора на границе непосредственно перед текущей

IntlBreakIterator::previous

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::previous — Устанавливает позицию итератора на границе непосредственно перед текущей

Описание

public IntlBreakIterator::previous(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Устанавливает сканируемый текст

  • « IntlBreakIterator::previous
  • IntlRuleBasedBreakIterator »
  • PHP Manual
  • IntlBreakIterator
  • Устанавливает сканируемый текст

IntlBreakIterator::setText

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::setText — Устанавливает сканируемый текст

Описание

public IntlBreakIterator::setText(string $text): ?bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text

Возвращаемые значения


Класс IntlRuleBasedBreakIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Введение

Подкласс IntlBreakIterator, который реализует итератор прерываний ICU, чьё поведение задано набором правил. Это наиболее часто используемый тип итератора прерываний.

Правила описаны в разделе » Руководство пользователя по анализу границ ICU.

Обзор классов

class IntlRuleBasedBreakIterator extends IntlBreakIterator {
/* Наследуемые константы */
public const int IntlBreakIterator::DONE;
public const int IntlBreakIterator::WORD_NONE;
public const int IntlBreakIterator::WORD_NONE_LIMIT;
public const int IntlBreakIterator::WORD_NUMBER;
public const int IntlBreakIterator::WORD_NUMBER_LIMIT;
public const int IntlBreakIterator::WORD_LETTER;
public const int IntlBreakIterator::WORD_LETTER_LIMIT;
public const int IntlBreakIterator::WORD_KANA;
public const int IntlBreakIterator::WORD_KANA_LIMIT;
public const int IntlBreakIterator::WORD_IDEO;
public const int IntlBreakIterator::WORD_IDEO_LIMIT;
public const int IntlBreakIterator::LINE_SOFT;
public const int IntlBreakIterator::LINE_SOFT_LIMIT;
public const int IntlBreakIterator::LINE_HARD;
public const int IntlBreakIterator::LINE_HARD_LIMIT;
public const int IntlBreakIterator::SENTENCE_TERM;
public const int IntlBreakIterator::SENTENCE_TERM_LIMIT;
public const int IntlBreakIterator::SENTENCE_SEP;
public const int IntlBreakIterator::SENTENCE_SEP_LIMIT;
/* Методы */
public __construct(string $rules, bool $compiled = false)
public getBinaryRules(): string|false
public getRules(): string|false
public getRuleStatus(): int
public getRuleStatusVec(): array|false
/* Наследуемые методы */
public static IntlBreakIterator::createCharacterInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createCodePointInstance(): IntlCodePointBreakIterator
public static IntlBreakIterator::createLineInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createSentenceInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createTitleInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createWordInstance(?string $locale = null): ?IntlBreakIterator
public IntlBreakIterator::current(): int
public IntlBreakIterator::first(): int
public IntlBreakIterator::following(int $offset): int
public IntlBreakIterator::getErrorCode(): int
public IntlBreakIterator::getErrorMessage(): string
public IntlBreakIterator::getLocale(int $type): string|false
public IntlBreakIterator::getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator
public IntlBreakIterator::getText(): ?string
public IntlBreakIterator::isBoundary(int $offset): bool
public IntlBreakIterator::last(): int
public IntlBreakIterator::next(?int $offset = null): int
public IntlBreakIterator::preceding(int $offset): int
public IntlBreakIterator::previous(): 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, PHP 8)

IntlRuleBasedBreakIterator::__construct — Создаёт итератор на основе набора правил

Описание

public IntlRuleBasedBreakIterator::__construct(string $rules, bool $compiled = false)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

rules

compiled

Возвращаемые значения


Получить бинарные данные из скомпилированных правил

  • « IntlRuleBasedBreakIterator::__construct
  • IntlRuleBasedBreakIterator::getRules »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Получить бинарные данные из скомпилированных правил

IntlRuleBasedBreakIterator::getBinaryRules

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlRuleBasedBreakIterator::getBinaryRules — Получить бинарные данные из скомпилированных правил

Описание

public IntlRuleBasedBreakIterator::getBinaryRules(): string|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить набор правил, использовавшихся при создании этого объекта

  • « IntlRuleBasedBreakIterator::getBinaryRules
  • IntlRuleBasedBreakIterator::getRuleStatus »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Получить набор правил, использовавшихся при создании этого объекта

IntlRuleBasedBreakIterator::getRules

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlRuleBasedBreakIterator::getRules — Получить набор правил, использовавшихся при создании этого объекта

Описание

public IntlRuleBasedBreakIterator::getRules(): string|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить наибольшее значение статуса правил останова, определившее текущую позицию остановки

  • « IntlRuleBasedBreakIterator::getRules
  • IntlRuleBasedBreakIterator::getRuleStatusVec »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Получить наибольшее значение статуса правил останова, определившее текущую позицию остановки

IntlRuleBasedBreakIterator::getRuleStatus

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlRuleBasedBreakIterator::getRuleStatus — Получить наибольшее значение статуса правил останова, определившее текущую позицию остановки

Описание

public IntlRuleBasedBreakIterator::getRuleStatus(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


получить значения статусов из правил останова, определивших текущую позицию остановки

  • « IntlRuleBasedBreakIterator::getRuleStatus
  • IntlCodePointBreakIterator »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • получить значения статусов из правил останова, определивших текущую позицию остановки

IntlRuleBasedBreakIterator::getRuleStatusVec

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlRuleBasedBreakIterator::getRuleStatusVec — получить значения статусов из правил останова, определивших текущую позицию остановки

Описание

public IntlRuleBasedBreakIterator::getRuleStatusVec(): array|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс IntlCodePointBreakIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Введение

Этот итератор прерываний указывает на границы между кодами символов UTF-8.

Обзор классов

class IntlCodePointBreakIterator extends IntlBreakIterator {
/* Наследуемые константы */
public const int IntlBreakIterator::DONE;
public const int IntlBreakIterator::WORD_NONE;
public const int IntlBreakIterator::WORD_NONE_LIMIT;
public const int IntlBreakIterator::WORD_NUMBER;
public const int IntlBreakIterator::WORD_NUMBER_LIMIT;
public const int IntlBreakIterator::WORD_LETTER;
public const int IntlBreakIterator::WORD_LETTER_LIMIT;
public const int IntlBreakIterator::WORD_KANA;
public const int IntlBreakIterator::WORD_KANA_LIMIT;
public const int IntlBreakIterator::WORD_IDEO;
public const int IntlBreakIterator::WORD_IDEO_LIMIT;
public const int IntlBreakIterator::LINE_SOFT;
public const int IntlBreakIterator::LINE_SOFT_LIMIT;
public const int IntlBreakIterator::LINE_HARD;
public const int IntlBreakIterator::LINE_HARD_LIMIT;
public const int IntlBreakIterator::SENTENCE_TERM;
public const int IntlBreakIterator::SENTENCE_TERM_LIMIT;
public const int IntlBreakIterator::SENTENCE_SEP;
public const int IntlBreakIterator::SENTENCE_SEP_LIMIT;
/* Методы */
public getLastCodePoint(): int
/* Наследуемые методы */
public static IntlBreakIterator::createCharacterInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createCodePointInstance(): IntlCodePointBreakIterator
public static IntlBreakIterator::createLineInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createSentenceInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createTitleInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createWordInstance(?string $locale = null): ?IntlBreakIterator
public IntlBreakIterator::current(): int
public IntlBreakIterator::first(): int
public IntlBreakIterator::following(int $offset): int
public IntlBreakIterator::getErrorCode(): int
public IntlBreakIterator::getErrorMessage(): string
public IntlBreakIterator::getLocale(int $type): string|false
public IntlBreakIterator::getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator
public IntlBreakIterator::getText(): ?string
public IntlBreakIterator::isBoundary(int $offset): bool
public IntlBreakIterator::last(): int
public IntlBreakIterator::next(?int $offset = null): int
public IntlBreakIterator::preceding(int $offset): int
public IntlBreakIterator::previous(): int
public IntlBreakIterator::setText(string $text): ?bool
}

Содержание

  • IntlCodePointBreakIterator::getLastCodePoint — Получить последний код символа, выданный при перемещении итератора вперёд или назад


Получить последний код символа, выданный при перемещении итератора вперёд или назад

  • « IntlCodePointBreakIterator
  • IntlDatePatternGenerator »
  • PHP Manual
  • IntlCodePointBreakIterator
  • Получить последний код символа, выданный при перемещении итератора вперёд или назад

IntlCodePointBreakIterator::getLastCodePoint

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlCodePointBreakIterator::getLastCodePoint — Получить последний код символа, выданный при перемещении итератора вперёд или назад

Описание

public IntlCodePointBreakIterator::getLastCodePoint(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс IntlDatePatternGenerator

(PHP 8 >= 8.1.0)

Введение

Создаёт локализованные строки шаблонов формата даты и/или времени, подходящие для использования в IntlDateFormatter.

Обзор классов

class IntlDatePatternGenerator {
/* Методы */
public __construct(?string $locale = null)
public static create(?string $locale = null): ?IntlDatePatternGenerator
public getBestPattern(string $skeleton): string|false
}

Содержание

  • IntlDatePatternGenerator::create — Создаёт новый экземпляр IntlDatePatternGenerator
  • IntlDatePatternGenerator::getBestPattern — Определяет наиболее подходящий формат даты/времени


Создаёт новый экземпляр IntlDatePatternGenerator

  • « IntlDatePatternGenerator
  • IntlDatePatternGenerator::getBestPattern »
  • PHP Manual
  • IntlDatePatternGenerator
  • Создаёт новый экземпляр IntlDatePatternGenerator

IntlDatePatternGenerator::create

IntlDatePatternGenerator::__construct

(PHP 8 >= 8.1.0)

IntlDatePatternGenerator::create -- IntlDatePatternGenerator::__construct — Создаёт новый экземпляр IntlDatePatternGenerator

Описание

public static IntlDatePatternGenerator::create(?string $locale = null): ?IntlDatePatternGenerator
public IntlDatePatternGenerator::__construct(?string $locale = null)

Создаёт новый экземпляр IntlDatePatternGenerator.

Список параметров

locale

Локаль. Если передано значение null, используется ini-параметр intl.default_locale.

Возвращаемые значения

Возвращает экземпляр IntlDatePatternGenerator в случае успешного выполнения или null в случае возникновения ошибки.


Определяет наиболее подходящий формат даты/времени

  • « IntlDatePatternGenerator::create
  • IntlPartsIterator »
  • PHP Manual
  • IntlDatePatternGenerator
  • Определяет наиболее подходящий формат даты/времени

IntlDatePatternGenerator::getBestPattern

(PHP 8 >= 8.1.0)

IntlDatePatternGenerator::getBestPattern — Определяет наиболее подходящий формат даты/времени

Описание

public IntlDatePatternGenerator::getBestPattern(string $skeleton): string|false

Определяет, какой формат даты/времени наиболее подходит для конкретной локали.

Список параметров

skeleton

Каркас.

Возвращаемые значения

Возвращает формат, принимаемый DateTimeInterface::format() в случае успешного выполнения, или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования IntlDatePatternGenerator::getBestPattern()

<?php

$skeleton = 'YYYYMMdd';
$today = \DateTimeImmutable::createFromFormat('Y-m-d', '2021-04-24');

$patternGenerator = new \IntlDatePatternGenerator('de_DE');
$pattern = $patternGenerator->getBestPattern($skeleton);
echo 'Немецкий: ', \IntlDateFormatter::formatObject($today, $pattern, 'de_DE'), "\n";

$patternGenerator = new \IntlDatePatternGenerator('en_US');
$pattern = $patternGenerator->getBestPattern($skeleton);
echo 'Английский: ', \IntlDateFormatter::formatObject($today, $pattern, 'en_US');
?>

Результат выполнения данного примера:

Немецкий: 24.04.2021
Английский: 04/24/2021


Класс IntlPartsIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Введение

Объекты данного класса можно получить из объектов IntlBreakIterator. Пока итератор прерывания предоставляет последовательность ограничителей, можно получить IntlPartsIterator для удобства получения текстовых фрагментов между двумя ограничителями.

Ключи могут представлять собой смещения от левого или правого ограничителя или могут быть просто последовательностью натуральных чисел. Смотрите IntlBreakIterator::getPartsIterator().

Обзор классов

class IntlPartsIterator extends IntlIterator {
/* Константы */
public const int KEY_SEQUENTIAL;
public const int KEY_LEFT;
public const int KEY_RIGHT;
/* Методы */
public getBreakIterator(): IntlBreakIterator
/* Наследуемые методы */
public IntlIterator::current(): mixed
public IntlIterator::key(): mixed
public IntlIterator::next(): void
public IntlIterator::rewind(): void
public IntlIterator::valid(): 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, PHP 8)

IntlPartsIterator::getBreakIterator — Получить IntlBreakIterator сохраняя итератор этой части

Описание

public IntlPartsIterator::getBreakIterator(): IntlBreakIterator

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс UConverter

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

Введение

Обзор классов

class UConverter {
/* Константы */
public const int REASON_UNASSIGNED;
public const int REASON_ILLEGAL;
public const int REASON_IRREGULAR;
public const int REASON_RESET;
public const int REASON_CLOSE;
public const int REASON_CLONE;
public const int UNSUPPORTED_CONVERTER;
public const int SBCS;
public const int DBCS;
public const int MBCS;
public const int LATIN_1;
public const int UTF8;
public const int UTF16_BigEndian;
public const int UTF16_LittleEndian;
public const int UTF32_BigEndian;
public const int UTF32_LittleEndian;
public const int EBCDIC_STATEFUL;
public const int ISO_2022;
public const int LMBCS_1;
public const int LMBCS_2;
public const int LMBCS_3;
public const int LMBCS_4;
public const int LMBCS_5;
public const int LMBCS_6;
public const int LMBCS_8;
public const int LMBCS_11;
public const int LMBCS_16;
public const int LMBCS_17;
public const int LMBCS_18;
public const int LMBCS_19;
public const int LMBCS_LAST;
public const int HZ;
public const int SCSU;
public const int ISCII;
public const int US_ASCII;
public const int UTF7;
public const int BOCU1;
public const int UTF16;
public const int UTF32;
public const int CESU8;
public const int IMAP_MAILBOX;
/* Методы */
public __construct(?string $destination_encoding = null, ?string $source_encoding = null)
public convert(string $str, bool $reverse = false): string|false
public fromUCallback(
int $reason,
array $source,
int $codePoint,
int &$error
): string|int|array|null
public static getAliases(string $name): array|false|null
public static getAvailable(): array
public getDestinationEncoding(): string|false|null
public getDestinationType(): int|false|null
public getErrorCode(): int
public getErrorMessage(): ?string
public getSourceEncoding(): string|false|null
public getSourceType(): int|false|null
public static getStandards(): ?array
public getSubstChars(): string|false|null
public static reasonText(int $reason): string
public setDestinationEncoding(string $encoding): bool
public setSourceEncoding(string $encoding): bool
public setSubstChars(string $chars): bool
public toUCallback(
int $reason,
string $source,
string $codeUnits,
int &$error
): string|int|array|null
public static transcode(
string $str,
string $toEncoding,
string $fromEncoding,
?array $options = null
): string|false
}

Предопределённые константы

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, PHP 8, PECL >= 3.0.0a1)

UConverter::__construct — Создать объект UConverter

Описание

public UConverter::__construct(?string $destination_encoding = null, ?string $source_encoding = null)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

destination_encoding

source_encoding

Возвращаемые значения


Конвертировать строку из одной кодировки в другую

  • « UConverter::__construct
  • UConverter::fromUCallback »
  • PHP Manual
  • UConverter
  • Конвертировать строку из одной кодировки в другую

UConverter::convert

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::convert — Конвертировать строку из одной кодировки в другую

Описание

public UConverter::convert(string $str, bool $reverse = false): string|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

str

reverse

Возвращаемые значения


Callback-функция по умолчанию для "from"

  • « UConverter::convert
  • UConverter::getAliases »
  • PHP Manual
  • UConverter
  • Callback-функция по умолчанию для "from"

UConverter::fromUCallback

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::fromUCallback — Callback-функция по умолчанию для "from"

Описание

public UConverter::fromUCallback(
int $reason,
array $source,
int $codePoint,
int &$error
): string|int|array|null

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

reason

source

codePoint

error

Возвращаемые значения


Получить псевдонимы для заданного имени

  • « UConverter::fromUCallback
  • UConverter::getAvailable »
  • PHP Manual
  • UConverter
  • Получить псевдонимы для заданного имени

UConverter::getAliases

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getAliases — Получить псевдонимы для заданного имени

Описание

public static UConverter::getAliases(string $name): array|false|null

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Получить доступные имена канонических конверторов

  • « UConverter::getAliases
  • UConverter::getDestinationEncoding »
  • PHP Manual
  • UConverter
  • Получить доступные имена канонических конверторов

UConverter::getAvailable

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getAvailable — Получить доступные имена канонических конверторов

Описание

public static UConverter::getAvailable(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить кодировку назначения

  • « UConverter::getAvailable
  • UConverter::getDestinationType »
  • PHP Manual
  • UConverter
  • Получить кодировку назначения

UConverter::getDestinationEncoding

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getDestinationEncoding — Получить кодировку назначения

Описание

public UConverter::getDestinationEncoding(): string|false|null

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить тип конвертера назначения

  • « UConverter::getDestinationEncoding
  • UConverter::getErrorCode »
  • PHP Manual
  • UConverter
  • Получить тип конвертера назначения

UConverter::getDestinationType

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getDestinationType — Получить тип конвертера назначения

Описание

public UConverter::getDestinationType(): int|false|null

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить код последней ошибки объекта

  • « UConverter::getDestinationType
  • UConverter::getErrorMessage »
  • PHP Manual
  • UConverter
  • Получить код последней ошибки объекта

UConverter::getErrorCode

intl_get_error_code

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getErrorCode -- intl_get_error_code — Получить код последней ошибки объекта

Описание

public UConverter::getErrorCode(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить последнее сообщение об ошибке в объекте

  • « UConverter::getErrorCode
  • UConverter::getSourceEncoding »
  • PHP Manual
  • UConverter
  • Получить последнее сообщение об ошибке в объекте

UConverter::getErrorMessage

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getErrorMessage — Получить последнее сообщение об ошибке в объекте

Описание

public UConverter::getErrorMessage(): ?string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить исходную кодировку

  • « UConverter::getErrorMessage
  • UConverter::getSourceType »
  • PHP Manual
  • UConverter
  • Получить исходную кодировку

UConverter::getSourceEncoding

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getSourceEncoding — Получить исходную кодировку

Описание

public UConverter::getSourceEncoding(): string|false|null

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить тип конвертера источника

  • « UConverter::getSourceEncoding
  • UConverter::getStandards »
  • PHP Manual
  • UConverter
  • Получить тип конвертера источника

UConverter::getSourceType

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getSourceType — Получить тип конвертера источника

Описание

public UConverter::getSourceType(): int|false|null

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить стандарты, связанные с именами конвертеров

  • « UConverter::getSourceType
  • UConverter::getSubstChars »
  • PHP Manual
  • UConverter
  • Получить стандарты, связанные с именами конвертеров

UConverter::getStandards

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getStandards — Получить стандарты, связанные с именами конвертеров

Описание

public static UConverter::getStandards(): ?array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить замену символов

  • « UConverter::getStandards
  • UConverter::reasonText »
  • PHP Manual
  • UConverter
  • Получить замену символов

UConverter::getSubstChars

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getSubstChars — Получить замену символов

Описание

public UConverter::getSubstChars(): string|false|null

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить строковое представление причины обратного вызова

  • « UConverter::getSubstChars
  • UConverter::setDestinationEncoding »
  • PHP Manual
  • UConverter
  • Получить строковое представление причины обратного вызова

UConverter::reasonText

(PHP 5 >= 5.5.0, PHP 7, PHP 8, 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, PHP 8, PECL >= 3.0.0a1)

UConverter::setDestinationEncoding — Установить кодировку назначения

Описание

public UConverter::setDestinationEncoding(string $encoding): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

encoding

Возвращаемые значения


Установить исходную кодировку

  • « UConverter::setDestinationEncoding
  • UConverter::setSubstChars »
  • PHP Manual
  • UConverter
  • Установить исходную кодировку

UConverter::setSourceEncoding

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::setSourceEncoding — Установить исходную кодировку

Описание

public UConverter::setSourceEncoding(string $encoding): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

encoding

Возвращаемые значения


Установка символов подстановки

  • « UConverter::setSourceEncoding
  • UConverter::toUCallback »
  • PHP Manual
  • UConverter
  • Установка символов подстановки

UConverter::setSubstChars

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::setSubstChars — Установка символов подстановки

Описание

public UConverter::setSubstChars(string $chars): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

chars

Возвращаемые значения


Callback-функция по умолчанию для "to"

  • « UConverter::setSubstChars
  • UConverter::transcode »
  • PHP Manual
  • UConverter
  • Callback-функция по умолчанию для "to"

UConverter::toUCallback

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::toUCallback — Callback-функция по умолчанию для "to"

Описание

public UConverter::toUCallback(
int $reason,
string $source,
string $codeUnits,
int &$error
): string|int|array|null

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

reason

source

codeUnits

error

Возвращаемые значения


Преобразует строку из одной кодировки символов в другую

  • « UConverter::toUCallback
  • Функции Grapheme »
  • PHP Manual
  • UConverter
  • Преобразует строку из одной кодировки символов в другую

UConverter::transcode

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::transcode — Преобразует строку из одной кодировки символов в другую

Описание

public static UConverter::transcode(
string $str,
string $toEncoding,
string $fromEncoding,
?array $options = null
): string|false

Преобразует строку str из кодировки fromEncoding в toEncoding.

Список параметров

str

Строка (string) для преобразования.

toEncoding

Требуемая кодировка результата.

fromEncoding

Текущая кодировка строки str.

options

Необязательный массив (array), который может содержать следующие ключи:

  • 'to_subst' - подстановочный символ, используемый вместо любого символа строки str, который не может быть закодирован в toEncoding. Если ключ указан, он должен представлять один символ в целевой кодировке.

Возвращаемые значения

Возвращает преобразованную строку или false в случае возникновения ошибки.

Примеры

Пример #1 Преобразование из UTF-8 в UTF-16 и обратно

<?php
$utf8_string = "\x5A\x6F\xC3\xAB"; // 'Zoe' в UTF-8
$utf16_string = UConverter::transcode($utf8_string, 'UTF-16BE', 'UTF-8');
echo bin2hex($utf16_string), "\n";

$new_utf8_string = UConverter::transcode($utf16_string, 'UTF-8', 'UTF-16BE');
echo bin2hex($new_utf8_string), "\n";
?>

Результат выполнения данного примера:

005a006f00eb
5a6fc3ab

Пример #2 Недопустимые символы во входной строке

Если входная строка содержит последовательность байтов, которая не является допустимой в кодировке, указанной в fromEncoding, то перед преобразованием в toEncoding она заменяется кодовой точкой Unicode U+FFFD (Заменяющий символ).

<?php
$invalid_utf8_string = "\xC3"; // неполная многобайтовая последовательность UTF-8
$utf16_string = UConverter::transcode($invalid_utf8_string, 'UTF-16BE', 'UTF-8');
echo bin2hex($utf16_string), "\n";
?>

Результат выполнения данного примера:

fffd

Пример #3 Символы, которые не могут быть закодированы

Если входная строка содержит символы, которые не могут быть представлены в кодировке toEncoding, они заменяются одним символом. Используемый по умолчанию символ зависит от кодировки и может управляться с помощью параметра 'to_subst'.

<?php
$utf8_string = "\xE2\x82\xAC"; // € (Знак евро) не существует в ISO 8859-1

// Замена по умолчанию в ISO 8859-1 - "\x1A" (Заменитель)
$iso8859_1_string = UConverter::transcode($utf8_string, 'ISO-8859-1', 'UTF-8');
echo bin2hex($iso8859_1_string), "\n";

// Использование в качестве заменителя символа '?' ("\x3F").
$iso8859_1_string = UConverter::transcode(
$utf8_string, 'ISO-8859-1', 'UTF-8', ['to_subst' => '?']
);
echo bin2hex($iso8859_1_string), "\n";

// Поскольку ISO 8859-1 не может отобразить U+FFFD, недействительная входная строка также заменяется на to_subst
$invalid_utf8_string = "\xC3"; // неполная многобайтовая последовательность UTF-8
$iso8859_1_string = UConverter::transcode(
$invalid_utf8_string, 'ISO-8859-1', 'UTF-8', ['to_subst' => '?']
);
echo bin2hex($iso8859_1_string), "\n";
?>

Результат выполнения данного примера:

1a
3f
3f

Смотрите также

  • mb_convert_encoding() - Преобразует строку из одной кодировки символов в другую
  • iconv() - Преобразует строку из одной кодировки символов в другую


Функции Grapheme

Содержание

  • grapheme_extract — Функция для извлечения последовательности кластеров графем по умолчанию из текстового буфера, которая должна быть закодирована в UTF-8
  • grapheme_stripos — Находит позицию (в единицах графемы) первого появления строки без учёта регистра
  • grapheme_stristr — Возвращает часть строки haystack от первого появления needle без учёта регистра до конца haystack
  • grapheme_strlen — Получает длину строки в единицах графемы
  • grapheme_strpos — Находит позицию (в единицах графемы) первого вхождения строки
  • grapheme_strripos — Находит позицию (в единицах графемы) последнего вхождения строки без учёта регистра
  • grapheme_strrpos — Находит позицию (в единицах графемы) последнего вхождения строки
  • grapheme_strstr — Возвращает часть строки haystack от первого появления needle до конца haystack
  • grapheme_substr — Возвращает часть строки


Функция для извлечения последовательности кластеров графем по умолчанию из текстового буфера, которая должна быть закодирована в UTF-8

  • « Функции Grapheme
  • grapheme_stripos »
  • PHP Manual
  • Функции Grapheme
  • Функция для извлечения последовательности кластеров графем по умолчанию из текстового буфера, которая должна быть закодирована в UTF-8

grapheme_extract

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_extract — Функция для извлечения последовательности кластеров графем по умолчанию из текстового буфера, которая должна быть закодирована в UTF-8

Описание

Процедурный стиль

grapheme_extract(
string $haystack,
int $size,
int $type = GRAPHEME_EXTR_COUNT,
int $offset = 0,
int &$next = null
): string|false

Функция для извлечения последовательности кластеров графем по умолчанию из текстового буфера, которая должна быть закодирована в UTF-8.

Список параметров

haystack

Строка для поиска.

size

Максимальное количество возвращаемых элементов на основе type.

type

Определяет тип единиц, на которые указывает параметр size:

  • GRAPHEME_EXTR_COUNT (по умолчанию) - size - это количество кластеров графемы для извлечения по умолчанию.
  • GRAPHEME_EXTR_MAXBYTES - size - максимальное количество возвращаемых байтов.
  • GRAPHEME_EXTR_MAXCHARS - size - это максимальное количество возвращаемых символов UTF-8.

offset

Начальная позиция haystack в байтах - если задано, оно должно быть нулём или положительным значением, которое меньше или равно длине haystack в байтах, либо отрицательным значением, отсчитываемым от конца haystack. Если offset не указывает на первый байт символа UTF-8, начальная позиция перемещается на границу следующего символа.

next

Ссылка на значение, которое будет установлено для следующей начальной позиции. Когда вызов возвращается, это может указывать на позицию первого байта за концом строки.

Возвращаемые значения

Строка, начинающаяся со смещения offset и заканчивающаяся границей кластера графемы по умолчанию, которая соответствует указанным size и type или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.

Примеры

Пример #1 Пример использования grapheme_extract()

<?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() - Возвращает часть строки
  • » Сегментация текста в Unicode: границы кластера графемы


Находит позицию (в единицах графемы) первого появления строки без учёта регистра

  • « grapheme_extract
  • grapheme_stristr »
  • PHP Manual
  • Функции Grapheme
  • Находит позицию (в единицах графемы) первого появления строки без учёта регистра

grapheme_stripos

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_stripos — Находит позицию (в единицах графемы) первого появления строки без учёта регистра

Описание

Процедурный стиль

grapheme_stripos(string $haystack, string $needle, int $offset = 0): int|false

Находит позицию (в единицах графемы) первого появления строки без учёта регистра.

Список параметров

haystack

Строка для поиска. Должна быть корректным UTF-8.

needle

Строка, которую нужно найти. Должна быть корректным UTF-8.

offset

Необязательный параметр offset позволяет указать, где в haystack начинать поиск в виде смещения в единицах графемы (не в байтах или символах). Если смещение отрицательное, оно обрабатывается относительно конца строки. Возвращённая позиция по-прежнему относительно начала haystack, независимо от значения offset.

Возвращаемые значения

Возвращает позицию как целое число. Если вхождение needle не найдено, функция grapheme_stripos() вернёт false.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.

Примеры

Пример #1 Пример использования grapheme_stripos()

<?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() - Возвращает часть строки haystack от первого появления needle без учёта регистра до конца haystack
  • grapheme_strpos() - Находит позицию (в единицах графемы) первого вхождения строки
  • grapheme_strripos() - Находит позицию (в единицах графемы) последнего вхождения строки без учёта регистра
  • grapheme_strrpos() - Находит позицию (в единицах графемы) последнего вхождения строки
  • grapheme_strstr() - Возвращает часть строки haystack от первого появления needle до конца haystack
  • » Сегментация текста в Unicode: границы кластера графемы


Возвращает часть строки haystack от первого появления needle без учёта регистра до конца haystack

  • « grapheme_stripos
  • grapheme_strlen »
  • PHP Manual
  • Функции Grapheme
  • Возвращает часть строки haystack от первого появления needle без учёта регистра до конца haystack

grapheme_stristr

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_stristr — Возвращает часть строки haystack от первого появления needle без учёта регистра до конца haystack

Описание

Процедурный стиль

grapheme_stristr(string $haystack, string $needle, bool $beforeNeedle = false): string|false

Возвращает часть строки haystack от первого появления needle без учёта регистра до конца haystack.

Список параметров

haystack

Входная строка. Должна быть корректным UTF-8.

needle

Строка, которую нужно найти. Должна быть корректным UTF-8.

beforeNeedle

Если true, функция grapheme_strstr() возвращает часть haystack до первого появления needle (исключая needle).

Возвращаемые значения

Возвращает часть строки или false, если вхождение needle не найдено.

Примеры

Пример #1 Пример использования grapheme_stristr()

<?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() - Находит позицию (в единицах графемы) первого появления строки без учёта регистра
  • grapheme_strpos() - Находит позицию (в единицах графемы) первого вхождения строки
  • grapheme_strripos() - Находит позицию (в единицах графемы) последнего вхождения строки без учёта регистра
  • grapheme_strrpos() - Находит позицию (в единицах графемы) последнего вхождения строки
  • grapheme_strstr() - Возвращает часть строки haystack от первого появления needle до конца haystack
  • » Сегментация текста в Unicode: границы кластера графемы


Получает длину строки в единицах графемы

  • « grapheme_stristr
  • grapheme_strpos »
  • PHP Manual
  • Функции Grapheme
  • Получает длину строки в единицах графемы

grapheme_strlen

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_strlen — Получает длину строки в единицах графемы

Описание

Процедурный стиль

grapheme_strlen(string $string): int|false|null

Получает длину строки в единицах графемы (не байты или символы)

Список параметров

string

Строка, которую необходимо измерить. Должна быть корректная строка в кодировке UTF-8.

Возвращаемые значения

Длина строки в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования grapheme_strlen()

<?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: границы кластера графемы
  • iconv_strlen() - Возвращает количество символов в строке
  • mb_strlen() - Получает длину строки
  • strlen() - Возвращает длину строки


Находит позицию (в единицах графемы) первого вхождения строки

  • « grapheme_strlen
  • grapheme_strripos »
  • PHP Manual
  • Функции Grapheme
  • Находит позицию (в единицах графемы) первого вхождения строки

grapheme_strpos

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_strpos — Находит позицию (в единицах графемы) первого вхождения строки

Описание

Процедурный стиль

grapheme_strpos(string $haystack, string $needle, int $offset = 0): int|false

Находит позицию (в единицах графемы) первого вхождения строки.

Список параметров

haystack

Строка для поиска. Должна быть корректным UTF-8.

needle

Строка, которую нужно найти. Должна быть корректным UTF-8.

offset

Необязательный параметр offset позволяет указать, где в haystack начинать поиск в виде смещения в единицах графемы (не в байтах или символах). Если смещение отрицательное, оно обрабатывается относительно конца строки. Возвращённая позиция по-прежнему относительно начала haystack, независимо от значения offset.

Возвращаемые значения

Возвращает позицию как целое число. Если вхождение needle не найдено, функция grapheme_strpos() вернёт false.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.

Примеры

Пример #1 Пример использования grapheme_strpos()

<?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() - Находит позицию (в единицах графемы) первого появления строки без учёта регистра
  • grapheme_stristr() - Возвращает часть строки haystack от первого появления needle без учёта регистра до конца haystack
  • grapheme_strripos() - Находит позицию (в единицах графемы) последнего вхождения строки без учёта регистра
  • grapheme_strrpos() - Находит позицию (в единицах графемы) последнего вхождения строки
  • grapheme_strstr() - Возвращает часть строки haystack от первого появления needle до конца haystack
  • » Сегментация текста в Unicode: границы кластера графемы


Находит позицию (в единицах графемы) последнего вхождения строки без учёта регистра

  • « grapheme_strpos
  • grapheme_strrpos »
  • PHP Manual
  • Функции Grapheme
  • Находит позицию (в единицах графемы) последнего вхождения строки без учёта регистра

grapheme_strripos

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_strripos — Находит позицию (в единицах графемы) последнего вхождения строки без учёта регистра

Описание

Процедурный стиль

grapheme_strripos(string $haystack, string $needle, int $offset = 0): int|false

Находит позицию (в единицах графемы) последнего вхождения строки без учёта регистра.

Список параметров

haystack

Строка для поиска. Должна быть корректным UTF-8.

needle

Строка, которую нужно найти. Должна быть корректным UTF-8.

offset

Необязательный параметр offset позволяет указать, где в haystack начинать поиск в виде смещения в единицах графемы (не в байтах или символах). Если смещение отрицательное, оно обрабатывается относительно конца строки. Возвращённая позиция по-прежнему относительно начала haystack, независимо от значения offset.

Возвращаемые значения

Возвращает позицию как целое число. Если вхождение needle не найдено, функция grapheme_strripos() вернёт false.

Примеры

Пример #1 Пример использования grapheme_strripos()

<?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() - Находит позицию (в единицах графемы) первого появления строки без учёта регистра
  • grapheme_stristr() - Возвращает часть строки haystack от первого появления needle без учёта регистра до конца haystack
  • grapheme_strpos() - Находит позицию (в единицах графемы) первого вхождения строки
  • grapheme_strrpos() - Находит позицию (в единицах графемы) последнего вхождения строки
  • grapheme_strstr() - Возвращает часть строки haystack от первого появления needle до конца haystack
  • » Сегментация текста в Unicode: границы кластера графемы


Находит позицию (в единицах графемы) последнего вхождения строки

  • « grapheme_strripos
  • grapheme_strstr »
  • PHP Manual
  • Функции Grapheme
  • Находит позицию (в единицах графемы) последнего вхождения строки

grapheme_strrpos

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_strrpos — Находит позицию (в единицах графемы) последнего вхождения строки

Описание

Процедурный стиль

grapheme_strrpos(string $haystack, string $needle, int $offset = 0): int|false

Находит позицию (в единицах графемы) последнего вхождения строки.

Список параметров

haystack

Строка для поиска. Должна быть корректным UTF-8.

needle

Строка, которую нужно найти. Должна быть корректным UTF-8.

offset

Необязательный параметр offset позволяет указать, где в haystack начинать поиск в виде смещения в единицах графемы (не в байтах или символах). Если смещение отрицательное, оно обрабатывается относительно конца строки. Возвращённая позиция по-прежнему относительно начала haystack, независимо от значения offset.

Возвращаемые значения

Возвращает позицию как целое число. Если вхождение needle не найдено, функция grapheme_strrpos() вернёт false.

Примеры

Пример #1 Пример использования grapheme_strrpos()

<?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() - Находит позицию (в единицах графемы) первого появления строки без учёта регистра
  • grapheme_stristr() - Возвращает часть строки haystack от первого появления needle без учёта регистра до конца haystack
  • grapheme_strpos() - Находит позицию (в единицах графемы) первого вхождения строки
  • grapheme_strripos() - Находит позицию (в единицах графемы) последнего вхождения строки без учёта регистра
  • grapheme_strstr() - Возвращает часть строки haystack от первого появления needle до конца haystack
  • » Сегментация текста в Unicode: границы кластера графемы


Возвращает часть строки haystack от первого появления needle до конца haystack

  • « grapheme_strrpos
  • grapheme_substr »
  • PHP Manual
  • Функции Grapheme
  • Возвращает часть строки haystack от первого появления needle до конца haystack

grapheme_strstr

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_strstr — Возвращает часть строки haystack от первого появления needle до конца haystack

Описание

Процедурный стиль

grapheme_strstr(string $haystack, string $needle, bool $beforeNeedle = false): string|false

Возвращает часть строки haystack от первого появления needle до конца haystack (включая needle).

Список параметров

haystack

Входная строка. Должна быть корректным UTF-8.

needle

Строка, которую нужно найти. Должна быть корректным UTF-8.

beforeNeedle

Если true, функция grapheme_strstr() возвращает часть haystack перед первым появлением needle (исключая needle).

Возвращаемые значения

Возвращает часть строки haystack или false, если вхождение needle не найдено.

Примеры

Пример #1 Пример использования grapheme_strstr()

<?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() - Возвращает часть строки haystack от первого появления needle без учёта регистра до конца haystack
  • grapheme_stripos() - Находит позицию (в единицах графемы) первого появления строки без учёта регистра
  • grapheme_strpos() - Находит позицию (в единицах графемы) первого вхождения строки
  • grapheme_strripos() - Находит позицию (в единицах графемы) последнего вхождения строки без учёта регистра
  • grapheme_strrpos() - Находит позицию (в единицах графемы) последнего вхождения строки
  • » Сегментация текста в Unicode: границы кластера графемы


Возвращает часть строки

  • « grapheme_strstr
  • Функции IDN »
  • PHP Manual
  • Функции Grapheme
  • Возвращает часть строки

grapheme_substr

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_substr — Возвращает часть строки

Описание

Процедурный стиль

grapheme_substr(string $string, int $offset, ?int $length = null): string|false

Возвращает часть строки.

Список параметров

string

Входная строка. Должна быть корректным UTF-8.

offset

Начальная позиция в единицах графемы по умолчанию. Если offset больше, либо равна нулю, возвращаемая строка будет начинаться с позиции offset в $string, начиная с нуля. Если значение offset отрицательное, возвращаемая строка будет начинаться с единицы графемы offset от конца строки.

length

Длина в графемных единицах. Если задано положительное значение length, возвращаемая строка будет содержать не более length единиц графемы, начиная со значения offset (в зависимости от длины строки). Если задано отрицательное значение length, то такое количество единиц графемы будет опущено в конце строки (после того, как начальная позиция была вычислена, если параметр offset отрицательный). Если offset обозначает позицию за пределами этого усечения, будет возвращена пустая строка.

Возвращаемые значения

Возвращает извлечённую часть string или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция теперь последовательно прижимает выходящие за границы смещения к границе строки. Ранее в некоторых случаях вместо пустой строки возвращалось значение false.

Примеры

Пример #1 Пример использования grapheme_substr()

<?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() - Функция для извлечения последовательности кластеров графем по умолчанию из текстового буфера, которая должна быть закодирована в UTF-8
  • » Сегментация текста в Unicode: границы кластера графемы


Функции 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, PHP 8, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_ascii — Преобразовать доменное имя в формат IDNA ASCII

Описание

Процедурный стиль

idn_to_ascii(
string $domain,
int $flags = IDNA_DEFAULT,
int $variant = INTL_IDNA_VARIANT_UTS46,
array &$idna_info = null
): string|false

Эта функция преобразует доменное имя из Unicode в IDNA ASCII.

Список параметров

domain

Имя для преобразования, должно быть в кодировке UTF-8.

flags

Опции преобразования - комбинация констант 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.

Примеры

Пример #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, PHP 8, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_utf8 — Преобразование доменного имени из IDNA ASCII в Unicode

Описание

Процедурный стиль

idn_to_utf8(
string $domain,
int $flags = IDNA_DEFAULT,
int $variant = INTL_IDNA_VARIANT_UTS46,
array &$idna_info = null
): string|false

Эта функция преобразует доменные имена из формата IDNA ASCII в Unicode, в кодировке UTF-8.

Список параметров

domain

Доменное имя в формате IDNA ASCII.

flags

Опции преобразования - комбинация констант 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.

Примеры

Пример #1 Пример использования idn_to_utf8()

<?php

echo idn_to_utf8('xn--tst-qla.de');

?>

Результат выполнения данного примера:

tast.de

Смотрите также

  • idn_to_ascii() - Преобразовать доменное имя в формат IDNA ASCII


IntlChar

(PHP 7, PHP 8)

Введение

IntlChar предоставляет доступ к некоторому числу утилитарных методов, которые можно использовать для доступа к информации о символах Unicode.

Имена методов и констант, представленные здесь, близки к именам и методам нижележащей библиотеки ICU.

Обзор классов

class IntlChar {
/* Константы */
public const string UNICODE_VERSION;
public const int CODEPOINT_MIN;
public const int CODEPOINT_MAX;
public const float NO_NUMERIC_VALUE;
public const int PROPERTY_ALPHABETIC;
public const int PROPERTY_BINARY_START;
public const int PROPERTY_ASCII_HEX_DIGIT;
public const int PROPERTY_BIDI_CONTROL;
public const int PROPERTY_BIDI_MIRRORED;
public const int PROPERTY_DASH;
public const int PROPERTY_DEFAULT_IGNORABLE_CODE_POINT;
public const int PROPERTY_DEPRECATED;
public const int PROPERTY_DIACRITIC;
public const int PROPERTY_EXTENDER;
public const int PROPERTY_FULL_COMPOSITION_EXCLUSION;
public const int PROPERTY_GRAPHEME_BASE;
public const int PROPERTY_GRAPHEME_EXTEND;
public const int PROPERTY_GRAPHEME_LINK;
public const int PROPERTY_HEX_DIGIT;
public const int PROPERTY_HYPHEN;
public const int PROPERTY_ID_CONTINUE;
public const int PROPERTY_ID_START;
public const int PROPERTY_IDEOGRAPHIC;
public const int PROPERTY_IDS_BINARY_OPERATOR;
public const int PROPERTY_IDS_TRINARY_OPERATOR;
public const int PROPERTY_JOIN_CONTROL;
public const int PROPERTY_LOGICAL_ORDER_EXCEPTION;
public const int PROPERTY_LOWERCASE;
public const int PROPERTY_MATH;
public const int PROPERTY_NONCHARACTER_CODE_POINT;
public const int PROPERTY_QUOTATION_MARK;
public const int PROPERTY_RADICAL;
public const int PROPERTY_SOFT_DOTTED;
public const int PROPERTY_TERMINAL_PUNCTUATION;
public const int PROPERTY_UNIFIED_IDEOGRAPH;
public const int PROPERTY_UPPERCASE;
public const int PROPERTY_WHITE_SPACE;
public const int PROPERTY_XID_CONTINUE;
public const int PROPERTY_XID_START;
public const int PROPERTY_CASE_SENSITIVE;
public const int PROPERTY_S_TERM;
public const int PROPERTY_VARIATION_SELECTOR;
public const int PROPERTY_NFD_INERT;
public const int PROPERTY_NFKD_INERT;
public const int PROPERTY_NFC_INERT;
public const int PROPERTY_NFKC_INERT;
public const int PROPERTY_SEGMENT_STARTER;
public const int PROPERTY_PATTERN_SYNTAX;
public const int PROPERTY_PATTERN_WHITE_SPACE;
public const int PROPERTY_POSIX_ALNUM;
public const int PROPERTY_POSIX_BLANK;
public const int PROPERTY_POSIX_GRAPH;
public const int PROPERTY_POSIX_PRINT;
public const int PROPERTY_POSIX_XDIGIT;
public const int PROPERTY_CASED;
public const int PROPERTY_CASE_IGNORABLE;
public const int PROPERTY_CHANGES_WHEN_LOWERCASED;
public const int PROPERTY_CHANGES_WHEN_UPPERCASED;
public const int PROPERTY_CHANGES_WHEN_TITLECASED;
public const int PROPERTY_CHANGES_WHEN_CASEFOLDED;
public const int PROPERTY_CHANGES_WHEN_CASEMAPPED;
public const int PROPERTY_CHANGES_WHEN_NFKC_CASEFOLDED;
public const int PROPERTY_BINARY_LIMIT;
public const int PROPERTY_BIDI_CLASS;
public const int PROPERTY_INT_START;
public const int PROPERTY_BLOCK;
public const int PROPERTY_CANONICAL_COMBINING_CLASS;
public const int PROPERTY_DECOMPOSITION_TYPE;
public const int PROPERTY_EAST_ASIAN_WIDTH;
public const int PROPERTY_GENERAL_CATEGORY;
public const int PROPERTY_JOINING_GROUP;
public const int PROPERTY_JOINING_TYPE;
public const int PROPERTY_LINE_BREAK;
public const int PROPERTY_NUMERIC_TYPE;
public const int PROPERTY_SCRIPT;
public const int PROPERTY_HANGUL_SYLLABLE_TYPE;
public const int PROPERTY_NFD_QUICK_CHECK;
public const int PROPERTY_NFKD_QUICK_CHECK;
public const int PROPERTY_NFC_QUICK_CHECK;
public const int PROPERTY_NFKC_QUICK_CHECK;
public const int PROPERTY_LEAD_CANONICAL_COMBINING_CLASS;
public const int PROPERTY_TRAIL_CANONICAL_COMBINING_CLASS;
public const int PROPERTY_GRAPHEME_CLUSTER_BREAK;
public const int PROPERTY_SENTENCE_BREAK;
public const int PROPERTY_WORD_BREAK;
public const int PROPERTY_BIDI_PAIRED_BRACKET_TYPE;
public const int PROPERTY_INT_LIMIT;
public const int PROPERTY_GENERAL_CATEGORY_MASK;
public const int PROPERTY_MASK_START;
public const int PROPERTY_MASK_LIMIT;
public const int PROPERTY_NUMERIC_VALUE;
public const int PROPERTY_DOUBLE_START;
public const int PROPERTY_DOUBLE_LIMIT;
public const int PROPERTY_AGE;
public const int PROPERTY_STRING_START;
public const int PROPERTY_BIDI_MIRRORING_GLYPH;
public const int PROPERTY_CASE_FOLDING;
public const int PROPERTY_ISO_COMMENT;
public const int PROPERTY_LOWERCASE_MAPPING;
public const int PROPERTY_NAME;
public const int PROPERTY_SIMPLE_CASE_FOLDING;
public const int PROPERTY_SIMPLE_LOWERCASE_MAPPING;
public const int PROPERTY_SIMPLE_TITLECASE_MAPPING;
public const int PROPERTY_SIMPLE_UPPERCASE_MAPPING;
public const int PROPERTY_TITLECASE_MAPPING;
public const int PROPERTY_UNICODE_1_NAME;
public const int PROPERTY_UPPERCASE_MAPPING;
public const int PROPERTY_BIDI_PAIRED_BRACKET;
public const int PROPERTY_STRING_LIMIT;
public const int PROPERTY_SCRIPT_EXTENSIONS;
public const int PROPERTY_OTHER_PROPERTY_START;
public const int PROPERTY_OTHER_PROPERTY_LIMIT;
public const int PROPERTY_INVALID_CODE;
public const int CHAR_CATEGORY_UNASSIGNED;
public const int CHAR_CATEGORY_GENERAL_OTHER_TYPES;
public const int CHAR_CATEGORY_UPPERCASE_LETTER;
public const int CHAR_CATEGORY_LOWERCASE_LETTER;
public const int CHAR_CATEGORY_TITLECASE_LETTER;
public const int CHAR_CATEGORY_MODIFIER_LETTER;
public const int CHAR_CATEGORY_OTHER_LETTER;
public const int CHAR_CATEGORY_NON_SPACING_MARK;
public const int CHAR_CATEGORY_ENCLOSING_MARK;
public const int CHAR_CATEGORY_COMBINING_SPACING_MARK;
public const int CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER;
public const int CHAR_CATEGORY_LETTER_NUMBER;
public const int CHAR_CATEGORY_OTHER_NUMBER;
public const int CHAR_CATEGORY_SPACE_SEPARATOR;
public const int CHAR_CATEGORY_LINE_SEPARATOR;
public const int CHAR_CATEGORY_PARAGRAPH_SEPARATOR;
public const int CHAR_CATEGORY_CONTROL_CHAR;
public const int CHAR_CATEGORY_FORMAT_CHAR;
public const int CHAR_CATEGORY_PRIVATE_USE_CHAR;
public const int CHAR_CATEGORY_SURROGATE;
public const int CHAR_CATEGORY_DASH_PUNCTUATION;
public const int CHAR_CATEGORY_START_PUNCTUATION;
public const int CHAR_CATEGORY_END_PUNCTUATION;
public const int CHAR_CATEGORY_CONNECTOR_PUNCTUATION;
public const int CHAR_CATEGORY_OTHER_PUNCTUATION;
public const int CHAR_CATEGORY_MATH_SYMBOL;
public const int CHAR_CATEGORY_CURRENCY_SYMBOL;
public const int CHAR_CATEGORY_MODIFIER_SYMBOL;
public const int CHAR_CATEGORY_OTHER_SYMBOL;
public const int CHAR_CATEGORY_INITIAL_PUNCTUATION;
public const int CHAR_CATEGORY_FINAL_PUNCTUATION;
public const int CHAR_CATEGORY_CHAR_CATEGORY_COUNT;
public const int CHAR_DIRECTION_LEFT_TO_RIGHT;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT;
public const int CHAR_DIRECTION_EUROPEAN_NUMBER;
public const int CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR;
public const int CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR;
public const int CHAR_DIRECTION_ARABIC_NUMBER;
public const int CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR;
public const int CHAR_DIRECTION_BLOCK_SEPARATOR;
public const int CHAR_DIRECTION_SEGMENT_SEPARATOR;
public const int CHAR_DIRECTION_WHITE_SPACE_NEUTRAL;
public const int CHAR_DIRECTION_OTHER_NEUTRAL;
public const int CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING;
public const int CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE;
public const int CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT;
public const int CHAR_DIRECTION_DIR_NON_SPACING_MARK;
public const int CHAR_DIRECTION_BOUNDARY_NEUTRAL;
public const int CHAR_DIRECTION_FIRST_STRONG_ISOLATE;
public const int CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE;
public const int CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE;
public const int CHAR_DIRECTION_CHAR_DIRECTION_COUNT;
public const int BLOCK_CODE_NO_BLOCK;
public const int BLOCK_CODE_BASIC_LATIN;
public const int BLOCK_CODE_LATIN_1_SUPPLEMENT;
public const int BLOCK_CODE_LATIN_EXTENDED_A;
public const int BLOCK_CODE_LATIN_EXTENDED_B;
public const int BLOCK_CODE_IPA_EXTENSIONS;
public const int BLOCK_CODE_SPACING_MODIFIER_LETTERS;
public const int BLOCK_CODE_COMBINING_DIACRITICAL_MARKS;
public const int BLOCK_CODE_GREEK;
public const int BLOCK_CODE_CYRILLIC;
public const int BLOCK_CODE_ARMENIAN;
public const int BLOCK_CODE_HEBREW;
public const int BLOCK_CODE_ARABIC;
public const int BLOCK_CODE_SYRIAC;
public const int BLOCK_CODE_THAANA;
public const int BLOCK_CODE_DEVANAGARI;
public const int BLOCK_CODE_BENGALI;
public const int BLOCK_CODE_GURMUKHI;
public const int BLOCK_CODE_GUJARATI;
public const int BLOCK_CODE_ORIYA;
public const int BLOCK_CODE_TAMIL;
public const int BLOCK_CODE_TELUGU;
public const int BLOCK_CODE_KANNADA;
public const int BLOCK_CODE_MALAYALAM;
public const int BLOCK_CODE_SINHALA;
public const int BLOCK_CODE_THAI;
public const int BLOCK_CODE_LAO;
public const int BLOCK_CODE_TIBETAN;
public const int BLOCK_CODE_MYANMAR;
public const int BLOCK_CODE_GEORGIAN;
public const int BLOCK_CODE_HANGUL_JAMO;
public const int BLOCK_CODE_ETHIOPIC;
public const int BLOCK_CODE_CHEROKEE;
public const int BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS;
public const int BLOCK_CODE_OGHAM;
public const int BLOCK_CODE_RUNIC;
public const int BLOCK_CODE_KHMER;
public const int BLOCK_CODE_MONGOLIAN;
public const int BLOCK_CODE_LATIN_EXTENDED_ADDITIONAL;
public const int BLOCK_CODE_GREEK_EXTENDED;
public const int BLOCK_CODE_GENERAL_PUNCTUATION;
public const int BLOCK_CODE_SUPERSCRIPTS_AND_SUBSCRIPTS;
public const int BLOCK_CODE_CURRENCY_SYMBOLS;
public const int BLOCK_CODE_COMBINING_MARKS_FOR_SYMBOLS;
public const int BLOCK_CODE_LETTERLIKE_SYMBOLS;
public const int BLOCK_CODE_NUMBER_FORMS;
public const int BLOCK_CODE_ARROWS;
public const int BLOCK_CODE_MATHEMATICAL_OPERATORS;
public const int BLOCK_CODE_MISCELLANEOUS_TECHNICAL;
public const int BLOCK_CODE_CONTROL_PICTURES;
public const int BLOCK_CODE_OPTICAL_CHARACTER_RECOGNITION;
public const int BLOCK_CODE_ENCLOSED_ALPHANUMERICS;
public const int BLOCK_CODE_BOX_DRAWING;
public const int BLOCK_CODE_BLOCK_ELEMENTS;
public const int BLOCK_CODE_GEOMETRIC_SHAPES;
public const int BLOCK_CODE_MISCELLANEOUS_SYMBOLS;
public const int BLOCK_CODE_DINGBATS;
public const int BLOCK_CODE_BRAILLE_PATTERNS;
public const int BLOCK_CODE_CJK_RADICALS_SUPPLEMENT;
public const int BLOCK_CODE_KANGXI_RADICALS;
public const int BLOCK_CODE_IDEOGRAPHIC_DESCRIPTION_CHARACTERS;
public const int BLOCK_CODE_CJK_SYMBOLS_AND_PUNCTUATION;
public const int BLOCK_CODE_HIRAGANA;
public const int BLOCK_CODE_KATAKANA;
public const int BLOCK_CODE_BOPOMOFO;
public const int BLOCK_CODE_HANGUL_COMPATIBILITY_JAMO;
public const int BLOCK_CODE_KANBUN;
public const int BLOCK_CODE_BOPOMOFO_EXTENDED;
public const int BLOCK_CODE_ENCLOSED_CJK_LETTERS_AND_MONTHS;
public const int BLOCK_CODE_CJK_COMPATIBILITY;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS;
public const int BLOCK_CODE_YI_SYLLABLES;
public const int BLOCK_CODE_YI_RADICALS;
public const int BLOCK_CODE_HANGUL_SYLLABLES;
public const int BLOCK_CODE_HIGH_SURROGATES;
public const int BLOCK_CODE_HIGH_PRIVATE_USE_SURROGATES;
public const int BLOCK_CODE_LOW_SURROGATES;
public const int BLOCK_CODE_PRIVATE_USE_AREA;
public const int BLOCK_CODE_PRIVATE_USE;
public const int BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS;
public const int BLOCK_CODE_ALPHABETIC_PRESENTATION_FORMS;
public const int BLOCK_CODE_ARABIC_PRESENTATION_FORMS_A;
public const int BLOCK_CODE_COMBINING_HALF_MARKS;
public const int BLOCK_CODE_CJK_COMPATIBILITY_FORMS;
public const int BLOCK_CODE_SMALL_FORM_VARIANTS;
public const int BLOCK_CODE_ARABIC_PRESENTATION_FORMS_B;
public const int BLOCK_CODE_SPECIALS;
public const int BLOCK_CODE_HALFWIDTH_AND_FULLWIDTH_FORMS;
public const int BLOCK_CODE_OLD_ITALIC;
public const int BLOCK_CODE_GOTHIC;
public const int BLOCK_CODE_DESERET;
public const int BLOCK_CODE_BYZANTINE_MUSICAL_SYMBOLS;
public const int BLOCK_CODE_MUSICAL_SYMBOLS;
public const int BLOCK_CODE_MATHEMATICAL_ALPHANUMERIC_SYMBOLS;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B;
public const int BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT;
public const int BLOCK_CODE_TAGS;
public const int BLOCK_CODE_CYRILLIC_SUPPLEMENT;
public const int BLOCK_CODE_CYRILLIC_SUPPLEMENTARY;
public const int BLOCK_CODE_TAGALOG;
public const int BLOCK_CODE_HANUNOO;
public const int BLOCK_CODE_BUHID;
public const int BLOCK_CODE_TAGBANWA;
public const int BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A;
public const int BLOCK_CODE_SUPPLEMENTAL_ARROWS_A;
public const int BLOCK_CODE_SUPPLEMENTAL_ARROWS_B;
public const int BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B;
public const int BLOCK_CODE_SUPPLEMENTAL_MATHEMATICAL_OPERATORS;
public const int BLOCK_CODE_KATAKANA_PHONETIC_EXTENSIONS;
public const int BLOCK_CODE_VARIATION_SELECTORS;
public const int BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_A;
public const int BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_B;
public const int BLOCK_CODE_LIMBU;
public const int BLOCK_CODE_TAI_LE;
public const int BLOCK_CODE_KHMER_SYMBOLS;
public const int BLOCK_CODE_PHONETIC_EXTENSIONS;
public const int BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_ARROWS;
public const int BLOCK_CODE_YIJING_HEXAGRAM_SYMBOLS;
public const int BLOCK_CODE_LINEAR_B_SYLLABARY;
public const int BLOCK_CODE_LINEAR_B_IDEOGRAMS;
public const int BLOCK_CODE_AEGEAN_NUMBERS;
public const int BLOCK_CODE_UGARITIC;
public const int BLOCK_CODE_SHAVIAN;
public const int BLOCK_CODE_OSMANYA;
public const int BLOCK_CODE_CYPRIOT_SYLLABARY;
public const int BLOCK_CODE_TAI_XUAN_JING_SYMBOLS;
public const int BLOCK_CODE_VARIATION_SELECTORS_SUPPLEMENT;
public const int BLOCK_CODE_ANCIENT_GREEK_MUSICAL_NOTATION;
public const int BLOCK_CODE_ANCIENT_GREEK_NUMBERS;
public const int BLOCK_CODE_ARABIC_SUPPLEMENT;
public const int BLOCK_CODE_BUGINESE;
public const int BLOCK_CODE_CJK_STROKES;
public const int BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT;
public const int BLOCK_CODE_COPTIC;
public const int BLOCK_CODE_ETHIOPIC_EXTENDED;
public const int BLOCK_CODE_ETHIOPIC_SUPPLEMENT;
public const int BLOCK_CODE_GEORGIAN_SUPPLEMENT;
public const int BLOCK_CODE_GLAGOLITIC;
public const int BLOCK_CODE_KHAROSHTHI;
public const int BLOCK_CODE_MODIFIER_TONE_LETTERS;
public const int BLOCK_CODE_NEW_TAI_LUE;
public const int BLOCK_CODE_OLD_PERSIAN;
public const int BLOCK_CODE_PHONETIC_EXTENSIONS_SUPPLEMENT;
public const int BLOCK_CODE_SUPPLEMENTAL_PUNCTUATION;
public const int BLOCK_CODE_SYLOTI_NAGRI;
public const int BLOCK_CODE_TIFINAGH;
public const int BLOCK_CODE_VERTICAL_FORMS;
public const int BLOCK_CODE_NKO;
public const int BLOCK_CODE_BALINESE;
public const int BLOCK_CODE_LATIN_EXTENDED_C;
public const int BLOCK_CODE_LATIN_EXTENDED_D;
public const int BLOCK_CODE_PHAGS_PA;
public const int BLOCK_CODE_PHOENICIAN;
public const int BLOCK_CODE_CUNEIFORM;
public const int BLOCK_CODE_CUNEIFORM_NUMBERS_AND_PUNCTUATION;
public const int BLOCK_CODE_COUNTING_ROD_NUMERALS;
public const int BLOCK_CODE_SUNDANESE;
public const int BLOCK_CODE_LEPCHA;
public const int BLOCK_CODE_OL_CHIKI;
public const int BLOCK_CODE_CYRILLIC_EXTENDED_A;
public const int BLOCK_CODE_VAI;
public const int BLOCK_CODE_CYRILLIC_EXTENDED_B;
public const int BLOCK_CODE_SAURASHTRA;
public const int BLOCK_CODE_KAYAH_LI;
public const int BLOCK_CODE_REJANG;
public const int BLOCK_CODE_CHAM;
public const int BLOCK_CODE_ANCIENT_SYMBOLS;
public const int BLOCK_CODE_PHAISTOS_DISC;
public const int BLOCK_CODE_LYCIAN;
public const int BLOCK_CODE_CARIAN;
public const int BLOCK_CODE_LYDIAN;
public const int BLOCK_CODE_MAHJONG_TILES;
public const int BLOCK_CODE_DOMINO_TILES;
public const int BLOCK_CODE_SAMARITAN;
public const int BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED;
public const int BLOCK_CODE_TAI_THAM;
public const int BLOCK_CODE_VEDIC_EXTENSIONS;
public const int BLOCK_CODE_LISU;
public const int BLOCK_CODE_BAMUM;
public const int BLOCK_CODE_COMMON_INDIC_NUMBER_FORMS;
public const int BLOCK_CODE_DEVANAGARI_EXTENDED;
public const int BLOCK_CODE_HANGUL_JAMO_EXTENDED_A;
public const int BLOCK_CODE_JAVANESE;
public const int BLOCK_CODE_MYANMAR_EXTENDED_A;
public const int BLOCK_CODE_TAI_VIET;
public const int BLOCK_CODE_MEETEI_MAYEK;
public const int BLOCK_CODE_HANGUL_JAMO_EXTENDED_B;
public const int BLOCK_CODE_IMPERIAL_ARAMAIC;
public const int BLOCK_CODE_OLD_SOUTH_ARABIAN;
public const int BLOCK_CODE_AVESTAN;
public const int BLOCK_CODE_INSCRIPTIONAL_PARTHIAN;
public const int BLOCK_CODE_INSCRIPTIONAL_PAHLAVI;
public const int BLOCK_CODE_OLD_TURKIC;
public const int BLOCK_CODE_RUMI_NUMERAL_SYMBOLS;
public const int BLOCK_CODE_KAITHI;
public const int BLOCK_CODE_EGYPTIAN_HIEROGLYPHS;
public const int BLOCK_CODE_ENCLOSED_ALPHANUMERIC_SUPPLEMENT;
public const int BLOCK_CODE_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C;
public const int BLOCK_CODE_MANDAIC;
public const int BLOCK_CODE_BATAK;
public const int BLOCK_CODE_ETHIOPIC_EXTENDED_A;
public const int BLOCK_CODE_BRAHMI;
public const int BLOCK_CODE_BAMUM_SUPPLEMENT;
public const int BLOCK_CODE_KANA_SUPPLEMENT;
public const int BLOCK_CODE_PLAYING_CARDS;
public const int BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS;
public const int BLOCK_CODE_EMOTICONS;
public const int BLOCK_CODE_TRANSPORT_AND_MAP_SYMBOLS;
public const int BLOCK_CODE_ALCHEMICAL_SYMBOLS;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D;
public const int BLOCK_CODE_ARABIC_EXTENDED_A;
public const int BLOCK_CODE_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS;
public const int BLOCK_CODE_CHAKMA;
public const int BLOCK_CODE_MEETEI_MAYEK_EXTENSIONS;
public const int BLOCK_CODE_MEROITIC_CURSIVE;
public const int BLOCK_CODE_MEROITIC_HIEROGLYPHS;
public const int BLOCK_CODE_MIAO;
public const int BLOCK_CODE_SHARADA;
public const int BLOCK_CODE_SORA_SOMPENG;
public const int BLOCK_CODE_SUNDANESE_SUPPLEMENT;
public const int BLOCK_CODE_TAKRI;
public const int BLOCK_CODE_BASSA_VAH;
public const int BLOCK_CODE_CAUCASIAN_ALBANIAN;
public const int BLOCK_CODE_COPTIC_EPACT_NUMBERS;
public const int BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_EXTENDED;
public const int BLOCK_CODE_DUPLOYAN;
public const int BLOCK_CODE_ELBASAN;
public const int BLOCK_CODE_GEOMETRIC_SHAPES_EXTENDED;
public const int BLOCK_CODE_GRANTHA;
public const int BLOCK_CODE_KHOJKI;
public const int BLOCK_CODE_KHUDAWADI;
public const int BLOCK_CODE_LATIN_EXTENDED_E;
public const int BLOCK_CODE_LINEAR_A;
public const int BLOCK_CODE_MAHAJANI;
public const int BLOCK_CODE_MANICHAEAN;
public const int BLOCK_CODE_MENDE_KIKAKUI;
public const int BLOCK_CODE_MODI;
public const int BLOCK_CODE_MRO;
public const int BLOCK_CODE_MYANMAR_EXTENDED_B;
public const int BLOCK_CODE_NABATAEAN;
public const int BLOCK_CODE_OLD_NORTH_ARABIAN;
public const int BLOCK_CODE_OLD_PERMIC;
public const int BLOCK_CODE_ORNAMENTAL_DINGBATS;
public const int BLOCK_CODE_PAHAWH_HMONG;
public const int BLOCK_CODE_PALMYRENE;
public const int BLOCK_CODE_PAU_CIN_HAU;
public const int BLOCK_CODE_PSALTER_PAHLAVI;
public const int BLOCK_CODE_SHORTHAND_FORMAT_CONTROLS;
public const int BLOCK_CODE_SIDDHAM;
public const int BLOCK_CODE_SINHALA_ARCHAIC_NUMBERS;
public const int BLOCK_CODE_SUPPLEMENTAL_ARROWS_C;
public const int BLOCK_CODE_TIRHUTA;
public const int BLOCK_CODE_WARANG_CITI;
public const int BLOCK_CODE_COUNT;
public const int BLOCK_CODE_INVALID_CODE;
public const int BPT_NONE;
public const int BPT_OPEN;
public const int BPT_CLOSE;
public const int BPT_COUNT;
public const int EA_NEUTRAL;
public const int EA_AMBIGUOUS;
public const int EA_HALFWIDTH;
public const int EA_FULLWIDTH;
public const int EA_NARROW;
public const int EA_WIDE;
public const int EA_COUNT;
public const int UNICODE_CHAR_NAME;
public const int UNICODE_10_CHAR_NAME;
public const int EXTENDED_CHAR_NAME;
public const int CHAR_NAME_ALIAS;
public const int CHAR_NAME_CHOICE_COUNT;
public const int SHORT_PROPERTY_NAME;
public const int LONG_PROPERTY_NAME;
public const int PROPERTY_NAME_CHOICE_COUNT;
public const int DT_NONE;
public const int DT_CANONICAL;
public const int DT_COMPAT;
public const int DT_CIRCLE;
public const int DT_FINAL;
public const int DT_FONT;
public const int DT_FRACTION;
public const int DT_INITIAL;
public const int DT_ISOLATED;
public const int DT_MEDIAL;
public const int DT_NARROW;
public const int DT_NOBREAK;
public const int DT_SMALL;
public const int DT_SQUARE;
public const int DT_SUB;
public const int DT_SUPER;
public const int DT_VERTICAL;
public const int DT_WIDE;
public const int DT_COUNT;
public const int JT_NON_JOINING;
public const int JT_JOIN_CAUSING;
public const int JT_DUAL_JOINING;
public const int JT_LEFT_JOINING;
public const int JT_RIGHT_JOINING;
public const int JT_TRANSPARENT;
public const int JT_COUNT;
public const int JG_NO_JOINING_GROUP;
public const int JG_AIN;
public const int JG_ALAPH;
public const int JG_ALEF;
public const int JG_BEH;
public const int JG_BETH;
public const int JG_DAL;
public const int JG_DALATH_RISH;
public const int JG_E;
public const int JG_FEH;
public const int JG_FINAL_SEMKATH;
public const int JG_GAF;
public const int JG_GAMAL;
public const int JG_HAH;
public const int JG_TEH_MARBUTA_GOAL;
public const int JG_HAMZA_ON_HEH_GOAL;
public const int JG_HE;
public const int JG_HEH;
public const int JG_HEH_GOAL;
public const int JG_HETH;
public const int JG_KAF;
public const int JG_KAPH;
public const int JG_KNOTTED_HEH;
public const int JG_LAM;
public const int JG_LAMADH;
public const int JG_MEEM;
public const int JG_MIM;
public const int JG_NOON;
public const int JG_NUN;
public const int JG_PE;
public const int JG_QAF;
public const int JG_QAPH;
public const int JG_REH;
public const int JG_REVERSED_PE;
public const int JG_SAD;
public const int JG_SADHE;
public const int JG_SEEN;
public const int JG_SEMKATH;
public const int JG_SHIN;
public const int JG_SWASH_KAF;
public const int JG_SYRIAC_WAW;
public const int JG_TAH;
public const int JG_TAW;
public const int JG_TEH_MARBUTA;
public const int JG_TETH;
public const int JG_WAW;
public const int JG_YEH;
public const int JG_YEH_BARREE;
public const int JG_YEH_WITH_TAIL;
public const int JG_YUDH;
public const int JG_YUDH_HE;
public const int JG_ZAIN;
public const int JG_FE;
public const int JG_KHAPH;
public const int JG_ZHAIN;
public const int JG_BURUSHASKI_YEH_BARREE;
public const int JG_FARSI_YEH;
public const int JG_NYA;
public const int JG_ROHINGYA_YEH;
public const int JG_MANICHAEAN_ALEPH;
public const int JG_MANICHAEAN_AYIN;
public const int JG_MANICHAEAN_BETH;
public const int JG_MANICHAEAN_DALETH;
public const int JG_MANICHAEAN_DHAMEDH;
public const int JG_MANICHAEAN_FIVE;
public const int JG_MANICHAEAN_GIMEL;
public const int JG_MANICHAEAN_HETH;
public const int JG_MANICHAEAN_HUNDRED;
public const int JG_MANICHAEAN_KAPH;
public const int JG_MANICHAEAN_LAMEDH;
public const int JG_MANICHAEAN_MEM;
public const int JG_MANICHAEAN_NUN;
public const int JG_MANICHAEAN_ONE;
public const int JG_MANICHAEAN_PE;
public const int JG_MANICHAEAN_QOPH;
public const int JG_MANICHAEAN_RESH;
public const int JG_MANICHAEAN_SADHE;
public const int JG_MANICHAEAN_SAMEKH;
public const int JG_MANICHAEAN_TAW;
public const int JG_MANICHAEAN_TEN;
public const int JG_MANICHAEAN_TETH;
public const int JG_MANICHAEAN_THAMEDH;
public const int JG_MANICHAEAN_TWENTY;
public const int JG_MANICHAEAN_WAW;
public const int JG_MANICHAEAN_YODH;
public const int JG_MANICHAEAN_ZAYIN;
public const int JG_STRAIGHT_WAW;
public const int JG_COUNT;
public const int GCB_OTHER;
public const int GCB_CONTROL;
public const int GCB_CR;
public const int GCB_EXTEND;
public const int GCB_L;
public const int GCB_LF;
public const int GCB_LV;
public const int GCB_LVT;
public const int GCB_T;
public const int GCB_V;
public const int GCB_SPACING_MARK;
public const int GCB_PREPEND;
public const int GCB_REGIONAL_INDICATOR;
public const int GCB_COUNT;
public const int WB_OTHER;
public const int WB_ALETTER;
public const int WB_FORMAT;
public const int WB_KATAKANA;
public const int WB_MIDLETTER;
public const int WB_MIDNUM;
public const int WB_NUMERIC;
public const int WB_EXTENDNUMLET;
public const int WB_CR;
public const int WB_EXTEND;
public const int WB_LF;
public const int WB_MIDNUMLET;
public const int WB_NEWLINE;
public const int WB_REGIONAL_INDICATOR;
public const int WB_HEBREW_LETTER;
public const int WB_SINGLE_QUOTE;
public const int WB_DOUBLE_QUOTE;
public const int WB_COUNT;
public const int SB_OTHER;
public const int SB_ATERM;
public const int SB_CLOSE;
public const int SB_FORMAT;
public const int SB_LOWER;
public const int SB_NUMERIC;
public const int SB_OLETTER;
public const int SB_SEP;
public const int SB_SP;
public const int SB_STERM;
public const int SB_UPPER;
public const int SB_CR;
public const int SB_EXTEND;
public const int SB_LF;
public const int SB_SCONTINUE;
public const int SB_COUNT;
public const int LB_UNKNOWN;
public const int LB_AMBIGUOUS;
public const int LB_ALPHABETIC;
public const int LB_BREAK_BOTH;
public const int LB_BREAK_AFTER;
public const int LB_BREAK_BEFORE;
public const int LB_MANDATORY_BREAK;
public const int LB_CONTINGENT_BREAK;
public const int LB_CLOSE_PUNCTUATION;
public const int LB_COMBINING_MARK;
public const int LB_CARRIAGE_RETURN;
public const int LB_EXCLAMATION;
public const int LB_GLUE;
public const int LB_HYPHEN;
public const int LB_IDEOGRAPHIC;
public const int LB_INSEPARABLE;
public const int LB_INSEPERABLE;
public const int LB_INFIX_NUMERIC;
public const int LB_LINE_FEED;
public const int LB_NONSTARTER;
public const int LB_NUMERIC;
public const int LB_OPEN_PUNCTUATION;
public const int LB_POSTFIX_NUMERIC;
public const int LB_PREFIX_NUMERIC;
public const int LB_QUOTATION;
public const int LB_COMPLEX_CONTEXT;
public const int LB_SURROGATE;
public const int LB_SPACE;
public const int LB_BREAK_SYMBOLS;
public const int LB_ZWSPACE;
public const int LB_NEXT_LINE;
public const int LB_WORD_JOINER;
public const int LB_H2;
public const int LB_H3;
public const int LB_JL;
public const int LB_JT;
public const int LB_JV;
public const int LB_CLOSE_PARENTHESIS;
public const int LB_CONDITIONAL_JAPANESE_STARTER;
public const int LB_HEBREW_LETTER;
public const int LB_REGIONAL_INDICATOR;
public const int LB_COUNT;
public const int NT_NONE;
public const int NT_DECIMAL;
public const int NT_DIGIT;
public const int NT_NUMERIC;
public const int NT_COUNT;
public const int HST_NOT_APPLICABLE;
public const int HST_LEADING_JAMO;
public const int HST_VOWEL_JAMO;
public const int HST_TRAILING_JAMO;
public const int HST_LV_SYLLABLE;
public const int HST_LVT_SYLLABLE;
public const int HST_COUNT;
public const int FOLD_CASE_DEFAULT;
public const int FOLD_CASE_EXCLUDE_SPECIAL_I;
/* Методы */
public static charAge(int|string $codepoint): ?array
public static charDigitValue(int|string $codepoint): ?int
public static charDirection(int|string $codepoint): ?int
public static charFromName(string $name, int $type = IntlChar::UNICODE_CHAR_NAME): ?int
public static charMirror(int|string $codepoint): int|string|null
public static charName(int|string $codepoint, int $type = IntlChar::UNICODE_CHAR_NAME): ?string
public static charType(int|string $codepoint): ?int
public static chr(int|string $codepoint): ?string
public static digit(int|string $codepoint, int $base = 10): int|false|null
public static enumCharNames(
int|string $start,
int|string $end,
callable $callback,
int $type = IntlChar::UNICODE_CHAR_NAME
): ?bool
public static enumCharTypes(callable $callback): void
public static foldCase(int|string $codepoint, int $options = IntlChar::FOLD_CASE_DEFAULT): int|string|null
public static forDigit(int $digit, int $base = 10): int
public static getBidiPairedBracket(int|string $codepoint): int|string|null
public static getBlockCode(int|string $codepoint): ?int
public static getCombiningClass(int|string $codepoint): ?int
public static getFC_NFKC_Closure(int|string $codepoint): string|false|null
public static getIntPropertyMaxValue(int $property): int
public static getIntPropertyMinValue(int $property): int
public static getIntPropertyValue(int|string $codepoint, int $property): ?int
public static getNumericValue(int|string $codepoint): ?float
public static getPropertyEnum(string $alias): int
public static getPropertyName(int $property, int $type = IntlChar::LONG_PROPERTY_NAME): string|false
public static getPropertyValueEnum(int $property, string $name): int
public static getPropertyValueName(int $property, int $value, int $type = IntlChar::LONG_PROPERTY_NAME): string|false
public static getUnicodeVersion(): array
public static hasBinaryProperty(int|string $codepoint, int $property): ?bool
public static isalnum(int|string $codepoint): ?bool
public static isalpha(int|string $codepoint): ?bool
public static isbase(int|string $codepoint): ?bool
public static isblank(int|string $codepoint): ?bool
public static iscntrl(int|string $codepoint): ?bool
public static isdefined(int|string $codepoint): ?bool
public static isdigit(int|string $codepoint): ?bool
public static isgraph(int|string $codepoint): ?bool
public static isIDIgnorable(int|string $codepoint): ?bool
public static isIDPart(int|string $codepoint): ?bool
public static isIDStart(int|string $codepoint): ?bool
public static isISOControl(int|string $codepoint): ?bool
public static isJavaIDPart(int|string $codepoint): ?bool
public static isJavaIDStart(int|string $codepoint): ?bool
public static isJavaSpaceChar(int|string $codepoint): ?bool
public static islower(int|string $codepoint): ?bool
public static isMirrored(int|string $codepoint): ?bool
public static isprint(int|string $codepoint): ?bool
public static ispunct(int|string $codepoint): ?bool
public static isspace(int|string $codepoint): ?bool
public static istitle(int|string $codepoint): ?bool
public static isUAlphabetic(int|string $codepoint): ?bool
public static isULowercase(int|string $codepoint): ?bool
public static isupper(int|string $codepoint): ?bool
public static isUUppercase(int|string $codepoint): ?bool
public static isUWhiteSpace(int|string $codepoint): ?bool
public static isWhitespace(int|string $codepoint): ?bool
public static isxdigit(int|string $codepoint): ?bool
public static ord(int|string $character): ?int
public static tolower(int|string $codepoint): int|string|null
public static totitle(int|string $codepoint): int|string|null
public static toupper(int|string $codepoint): int|string|null
}

Предопределённые константы

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_BASSA_VAH

IntlChar::BLOCK_CODE_CAUCASIAN_ALBANIAN

IntlChar::BLOCK_CODE_COPTIC_EPACT_NUMBERS

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_EXTENDED

IntlChar::BLOCK_CODE_DUPLOYAN

IntlChar::BLOCK_CODE_ELBASAN

IntlChar::BLOCK_CODE_GEOMETRIC_SHAPES_EXTENDED

IntlChar::BLOCK_CODE_GRANTHA

IntlChar::BLOCK_CODE_KHOJKI

IntlChar::BLOCK_CODE_KHUDAWADI

IntlChar::BLOCK_CODE_LATIN_EXTENDED_E

IntlChar::BLOCK_CODE_LINEAR_A

IntlChar::BLOCK_CODE_MAHAJANI

IntlChar::BLOCK_CODE_MANICHAEAN

IntlChar::BLOCK_CODE_MENDE_KIKAKUI

IntlChar::BLOCK_CODE_MODI

IntlChar::BLOCK_CODE_MRO

IntlChar::BLOCK_CODE_MYANMAR_EXTENDED_B

IntlChar::BLOCK_CODE_NABATAEAN

IntlChar::BLOCK_CODE_OLD_NORTH_ARABIAN

IntlChar::BLOCK_CODE_OLD_PERMIC

IntlChar::BLOCK_CODE_ORNAMENTAL_DINGBATS

IntlChar::BLOCK_CODE_PAHAWH_HMONG

IntlChar::BLOCK_CODE_PALMYRENE

IntlChar::BLOCK_CODE_PAU_CIN_HAU

IntlChar::BLOCK_CODE_PSALTER_PAHLAVI

IntlChar::BLOCK_CODE_SHORTHAND_FORMAT_CONTROLS

IntlChar::BLOCK_CODE_SIDDHAM

IntlChar::BLOCK_CODE_SINHALA_ARCHAIC_NUMBERS

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_C

IntlChar::BLOCK_CODE_TIRHUTA

IntlChar::BLOCK_CODE_WARANG_CITI

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_MANICHAEAN_ALEPH

IntlChar::JG_MANICHAEAN_AYIN

IntlChar::JG_MANICHAEAN_BETH

IntlChar::JG_MANICHAEAN_DALETH

IntlChar::JG_MANICHAEAN_DHAMEDH

IntlChar::JG_MANICHAEAN_FIVE

IntlChar::JG_MANICHAEAN_GIMEL

IntlChar::JG_MANICHAEAN_HETH

IntlChar::JG_MANICHAEAN_HUNDRED

IntlChar::JG_MANICHAEAN_KAPH

IntlChar::JG_MANICHAEAN_LAMEDH

IntlChar::JG_MANICHAEAN_MEM

IntlChar::JG_MANICHAEAN_NUN

IntlChar::JG_MANICHAEAN_ONE

IntlChar::JG_MANICHAEAN_PE

IntlChar::JG_MANICHAEAN_QOPH

IntlChar::JG_MANICHAEAN_RESH

IntlChar::JG_MANICHAEAN_SADHE

IntlChar::JG_MANICHAEAN_SAMEKH

IntlChar::JG_MANICHAEAN_TAW

IntlChar::JG_MANICHAEAN_TEN

IntlChar::JG_MANICHAEAN_TETH

IntlChar::JG_MANICHAEAN_THAMEDH

IntlChar::JG_MANICHAEAN_TWENTY

IntlChar::JG_MANICHAEAN_WAW

IntlChar::JG_MANICHAEAN_YODH

IntlChar::JG_MANICHAEAN_ZAYIN

IntlChar::JG_STRAIGHT_WAW

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, PHP 8)

IntlChar::charAge — Получить "возраст" символьного кода

Описание

public static IntlChar::charAge(int|string $codepoint): ?array

Возвращает "возраст" символьного кода.

"Возраст" - это версия Unicode в которой этот символьный код впервые был обозначен (как не-символ или для приватного использования) или принят как символ. Это может быть полезно в случаях, когда необходимо передать строку системе не поддерживающей новые символы.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Номер версии Unicode в виде массива. К примеру, версия 1.3.31.2 вернётся как [1, 3, 31, 2]. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::charDigitValue — Получить десятичную цифру из символа десятичной цифры

Описание

public static IntlChar::charDigitValue(int|string $codepoint): ?int

Получает Получить десятичную цифру из символа десятичной цифры.

Такие символы в ходят в глобальную категорию "Nd" (десятичные цифры) и Numeric_Type в Decimal.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Цифра, соответствующая символу codepoint, или -1 если символ не является десятичной цифрой. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::charDirection — Получить категорию направления письма для символа

Описание

public static IntlChar::charDirection(int|string $codepoint): ?int

Возвращает категорию направления письма для символа, которая используется в » Двунаправленном алгоритме Unicode (UAX #9).

Замечание:

Некоторые неназначенные символьные коды имеют категории R или AL потому, что они находятся в блоках зарезервированных под написание слева направо.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 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
В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::charFromName — Найти символ Unicode по его имени и вернуть его код

Описание

public static IntlChar::charFromName(string $name, int $type = IntlChar::UNICODE_CHAR_NAME): ?int

Находит символ Unicode по его имени и возвращает его код.

Имя сравнивается точно и полностью. Если имя не соответствует какому-либо символу, то вернёт false.

Имя Unicode 1.0 считается совпавшим только если оно отличается от современного имени. Все имена Unicode должны выть в верхнем регистре. Расширенные имена в нижнем регистре и содержат шестнадцатеричное значение в фигурных скобках.

Список параметров

name

Полное имя символа Unicode.

type

Какие типы символов искать. Одна из констант:

  • IntlChar::UNICODE_CHAR_NAME (по умолчанию)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Возвращаемые значения

Значение кода символа Unicode по заданному имени (в виде целого числа (int)), или 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)
NULL

Смотрите также

  • IntlChar::charName() - Получить имя символа Unicode
  • IntlChar::enumCharNames() - Перечисляет все присвоенные символы Unicode в заданном диапазоне


Получить "зеркальный" символ по коду

  • « IntlChar::charFromName
  • IntlChar::charName »
  • PHP Manual
  • IntlChar
  • Получить "зеркальный" символ по коду

IntlChar::charMirror

(PHP 7, PHP 8)

IntlChar::charMirror — Получить "зеркальный" символ по коду

Описание

public static IntlChar::charMirror(int|string $codepoint): int|string|null

Связывает указанный символ с его зеркальным отражением.

Для символов со свойством Bidi_Mirrored, иногда необходимо получить связь с другим символом Unicode который можно использовать как зеркальное отражение глифа заданного символа. Этакий способ преобразования текста в и из кодировок с визуального порядка "для бедных". Также полезно для дисплеев без возможности выбора глифа.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает другой код символа Unicode, который можно использовать как зеркальное отражение заданного, или codepoint, если подходящего символа не нашлось или если codepoint не имеет свойства Bidi_Mirrored.

Возвращаемый тип должен быть int, если только символ не был передан как строка UTF-8 (string), в этом случае вернётся строка (string). В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::charName — Получить имя символа Unicode

Описание

public static IntlChar::charName(int|string $codepoint, int $type = IntlChar::UNICODE_CHAR_NAME): ?string

Возвращает имя символа Unicode.

В зависимости от type, возвращённое имя может быть как "современным", так и именем определённым в Unicode версии 1.0. Имя содержит только "неизменяемые" символы, такие как A-Z, 0-9, пробел и '-'. Имя Unicode 1.0 возвращается только если оно отличается от "современного" для данного символа и если в ICU есть запись о нем.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

type

Какие типы символов искать. Одна из констант:

  • 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, PHP 8)

IntlChar::charType — Получить главную категорию, в которую входит символ

Описание

public static IntlChar::charType(int|string $codepoint): ?int

Возвращает главную категорию, в которую входит символ.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 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);
var_dump(IntlChar::charType("multiple chars") === null);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)
bool(true)
bool(true)


Получить символ Unicode по его коду

  • « IntlChar::charType
  • IntlChar::digit »
  • PHP Manual
  • IntlChar
  • Получить символ Unicode по его коду

IntlChar::chr

(PHP 7, PHP 8)

IntlChar::chr — Получить символ Unicode по его коду

Описание

public static IntlChar::chr(int|string $codepoint): ?string

Возвращает строку, содержащую символ Unicode с заданным кодом.

Эта функция противоположна по действию функции IntlChar::ord().

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает строку, содержащую символ Unicode с заданным кодом или null в случае возникновения ошибки.

Примеры

Пример #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
  • mb_chr() - Возвращает символ по значению кодовой точки Unicode
  • chr() - Генерирует односимвольную строку по заданному числу


Получить десятичное число из символа Unicode с заданным основанием

  • « IntlChar::chr
  • IntlChar::enumCharNames »
  • PHP Manual
  • IntlChar
  • Получить десятичное число из символа Unicode с заданным основанием

IntlChar::digit

(PHP 7, PHP 8)

IntlChar::digit — Получить десятичное число из символа Unicode с заданным основанием

Описание

public static IntlChar::digit(int|string $codepoint, int $base = 10): int|false|null

Возвращает десятичное число из символа 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

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

base

Основание (по умолчанию 10).

Возвращаемые значения

Возвращает десятичное число из символа Unicode с заданным основанием или false, если символ некорректен или выходит за рамки основания. В случае возникновения ошибки возвращает null.

Внимание

Эта функция может возвращать как логическое значение 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, PHP 8)

IntlChar::enumCharNames — Перечисляет все присвоенные символы Unicode в заданном диапазоне

Описание

public static IntlChar::enumCharNames(
int|string $start,
int|string $end,
callable $callback,
int $type = IntlChar::UNICODE_CHAR_NAME
): ?bool

Перечисляет все присвоенные символы Unicode в заданном диапазоне (включая начало диапазона и исключая конец) и для каждого из них функцию, передавая в неё код символа и его имя.

Для имён Unicode 1.0 перечисляются только те символы, имена которых отличны от их "современных" имён.

Список параметров

start

Код символа с которого начинается диапазон.

end

Код символа с которого начинается диапазон. Сам этот символ в диапазон не попадёт.

callback

Функция, которая будет вызвана для каждого возвращённого символа. В неё будут переданы следующие три аргумента:

  • int $codepoint - код символа
  • int $nameChoice - значение из type, смотрите описание ниже
  • string $name - Имя символа

type

Категория символов для перечисления. Одна из констант:

  • IntlChar::UNICODE_CHAR_NAME (по умолчанию)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Возвращаемые значения

Возвращает null в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

IntlChar::enumCharTypes — Перечисление последовательностей символов Unicode сгруппированных по им категориям

Описание

public static IntlChar::enumCharTypes(callable $callback): void

Перечисление последовательностей символов Unicode сгруппированных по им категориям. Полезно при построении структур данных, для перебора всех назначенных кодов символов и т.д.

Для каждого непрерывного диапазона символов с одной категорией будет вызвана функция callback. Соседние диапазоны имеют разные категории. Стандарты Unicode гарантируют числовые значения от 0 до 31.

Список параметров

callback

Функция, которая будет вызвана для каждой непрерывной последовательности с одинаковой категорией. В неё будут переданы следующие параметры:

  • int $start - Начальный символ диапазона
  • int $end - Конечный символ диапазона
  • int $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, PHP 8)

IntlChar::foldCase — Производит преобразование регистра заданного символа

Описание

public static IntlChar::foldCase(int|string $codepoint, int $options = IntlChar::FOLD_CASE_DEFAULT): int|string|null

Возвращает код символа в регистре отличном от регистра переданного символа. Если символ не имеет представления в другом регистре, то будет возвращён переданный символ.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

options

IntlChar::FOLD_CASE_DEFAULT (по умолчанию) или IntlChar::FOLD_CASE_EXCLUDE_SPECIAL_I.

Возвращаемые значения

Возвращает Simple_Case_Folding для символа, если он есть. В ином случае - сам символ в случае успешного выполнения или null в случае возникновения ошибки.


Получить символ представляющий заданное число в заданном основании

  • « IntlChar::foldCase
  • IntlChar::getBidiPairedBracket »
  • PHP Manual
  • IntlChar
  • Получить символ представляющий заданное число в заданном основании

IntlChar::forDigit

(PHP 7, PHP 8)

IntlChar::forDigit — Получить символ представляющий заданное число в заданном основании

Описание

public static IntlChar::forDigit(int $digit, int $base = 10): int

Определяет представление символов для конкретной цифры в указанной системе счисления.

Если значение основания некорректно, или значение числа не является корректным числом в заданной системе счисления, будет возвращён U+0000.

Корректные значения radix лежат в диапазоне от 2 до 36. Корректные значения digit лежат в диапазоне 0 <= digit < radix.

Если digit меньше 10, то будет возвращено '0' + digit. В противном случае вернётся 'a' + digit - 10.

Список параметров

digit

Число для преобразования в символ.

base

Основание системы счисления (по умолчанию 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, PHP 8)

IntlChar::getBidiPairedBracket — Получить парную скобку для символа

Описание

public static IntlChar::getBidiPairedBracket(int|string $codepoint): int|string|null

Получает парную скобку для символа.

Для Bidi_Paired_Bracket_Type!=None, это аналогично IntlChar::charMirror(). Если такового нет, возвращается исходный codepoint.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает парную скобку для символа, или codepoint если таковой нет. В случае возникновения ошибки возвращает null.

Возвращаемый тип должен быть int, если только символ не был передан как строка UTF-8 (string), в этом случае вернётся строка (string). В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::getBlockCode — Получить блок размещения символа Unicode

Описание

public static IntlChar::getBlockCode(int|string $codepoint): ?int

Возвращает блок размещения символа Unicode.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает блок размещения codepoint. Одна из констант IntlChar::BLOCK_CODE_*. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::getCombiningClass — Получить комбинирующий класс для символа

Описание

public static IntlChar::getCombiningClass(int|string $codepoint): ?int

Возвращает комбинирующий класс для символа.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает комбинирующий класс для символа. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::getFC_NFKC_Closure — Получить свойство FC_NFKC_Closure для символа

Описание

public static IntlChar::getFC_NFKC_Closure(int|string $codepoint): string|false|null

Получает свойство FC_NFKC_Closure для символа.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает свойство FC_NFKC_Closure для codepoint в виде строки, или пустую строку, если его нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

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, PHP 8)

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, PHP 8)

IntlChar::getIntPropertyValue — Получить значение свойства Unicode для символа

Описание

public static IntlChar::getIntPropertyValue(int|string $codepoint, int $property): ?int

Получает значение нумерованного или целочисленного свойства Unicode для символа. Также возвращаются бинарное и шаблонное значения свойства.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Возвращаемые значения

Возвращает численное значение для указанного свойства, или, для перечисляемых свойств, соответствующую численному значению константу соответственно значению перечисляемого типа свойства. В случае возникновения ошибки возвращает null.

Возвращает 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, PHP 8)

IntlChar::getNumericValue — Получить числовое представление для символа Unicode

Описание

public static IntlChar::getNumericValue(int|string $codepoint): ?float

Получает числовое представление для символа Unicode, как определено в базе символов Unicode.

Если для символа отсутствует численное представление - будет возвращено IntlChar::NO_NUMERIC_VALUE.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Численное значение codepoint, или IntlChar::NO_NUMERIC_VALUE если отсутствует или не задано. Эта константа появилась в PHP 7.0.6, до этой версии в таком случае возвращалось (float)-123456789. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

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, PHP 8)

IntlChar::getPropertyName — Получить Unicode имя свойства

Описание

public static IntlChar::getPropertyName(int $property, int $type = IntlChar::LONG_PROPERTY_NAME): string|false

Возвращает имя 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.

type

Селектор для выбора имени. Если не входит в допустимый диапазон - возвращается false.

Все значения имеют длинные имена. Большинство имеют короткие имена, но не все. Unicode позволяет дополнительные имена; Если существуют, они будут возвращены с добавлением 1, 2, и т.д к IntlChar::LONG_PROPERTY_NAME.

Возвращаемые значения

Возвращает имена или false если property или type выходят за допустимый диапазон.

Если type возвращает false, то все более большие величины type также вернут 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, PHP 8)

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, PHP 8)

IntlChar::getPropertyValueName — Получить имя Unicode для значения свойства

Описание

public static IntlChar::getPropertyValueName(int $property, int $value, int $type = IntlChar::LONG_PROPERTY_NAME): string|false

Возвращает имя свойства 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.

type

Селектор для извлекаемого имени. Если не попадает в диапазон - будет возвращено false.

Все значения имеют длинные имена. Большинство имеют короткие имена, но не все. Unicode позволяет дополнительные имена; Если существуют, они будут возвращены с добавлением 1, 2, и т.д к IntlChar::LONG_PROPERTY_NAME.

Возвращаемые значения

Возвращает имена или false если property или nameChoice выходят за допустимый диапазон. В случае возникновения ошибки возвращает null.

Если type возвращает false, то все более большие величины type также вернут 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, PHP 8)

IntlChar::getUnicodeVersion — Получить версию Unicode

Описание

public static IntlChar::getUnicodeVersion(): 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, PHP 8)

IntlChar::hasBinaryProperty — Проверить бинарное свойство Unicode для символа

Описание

public static IntlChar::hasBinaryProperty(int|string $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

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Возвращаемые значения

Возвращает true или false в зависимости от значения бинарного свойства Unicode символа codepoint. Также возвращает false если property находится вне границ или если используемая версия Unicode не содержит данных для этого свойства вообще, либо конкретно для этого символа. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isalnum — Проверить, является ли символ буквой либо цифрой

Описание

public static IntlChar::isalnum(int|string $codepoint): ?bool

Проверяет, является ли символ буквой либо цифрой. true категорий "L" (буквы) и "Nd" (десятичные цифры).

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является буквой или цифрой, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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() - Проверить, является ли символ цифрой
  • ctype_alnum() - Проверяет наличие буквенно-цифровых символов


Проверить, является ли символ буквой

  • « IntlChar::isalnum
  • IntlChar::isbase »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ буквой

IntlChar::isalpha

(PHP 7, PHP 8)

IntlChar::isalpha — Проверить, является ли символ буквой

Описание

public static IntlChar::isalpha(int|string $codepoint): ?bool

Проверяет, является ли символ буквой. true для категории "L" (буквы).

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является буквой, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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() - Проверить, является ли символ цифрой
  • ctype_alpha() - Проверяет наличие буквенных символов


Проверить, является ли символ базовым

  • « IntlChar::isalpha
  • IntlChar::isblank »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ базовым

IntlChar::isbase

(PHP 7, PHP 8)

IntlChar::isbase — Проверить, является ли символ базовым

Описание

public static IntlChar::isbase(int|string $codepoint): ?bool

Проверяет, является ли символ базовым. true для категорий "L" (буквы), "N" (числа), "Mc" (меткой позиционирования при комбинации символов) и "Me" (enclosing marks).

Замечание:

Отличается от определения, заданного в главе 3.5, статье D13 Unicode, определяющего базовые символы как все символа (не Cn) графически не сочетающиеся с предыдущими символами (M) и не являющиеся управляющими (Cc) или форматирующими (Cf).

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является базовым, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isblank — Проверить, является ли символ "пустым" либо "горизонтальным пробелом"

Описание

public static IntlChar::isblank(int|string $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

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является "пустым" либо "горизонтальным пробелом", false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::iscntrl — Проверить, является ли символ управляющим

Описание

public static IntlChar::iscntrl(int|string $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

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является управляющим, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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
  • ctype_cntrl() - Проверяет наличие управляющих символов


Проверить, определён ли символ

  • « IntlChar::iscntrl
  • IntlChar::isdigit »
  • PHP Manual
  • IntlChar
  • Проверить, определён ли символ

IntlChar::isdefined

(PHP 7, PHP 8)

IntlChar::isdefined — Проверить, определён ли символ

Описание

public static IntlChar::isdefined(int|string $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

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является определённым, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isdigit — Проверить, является ли символ цифрой

Описание

public static IntlChar::isdigit(int|string $codepoint): ?bool

Проверяет, является ли символ цифрой.

true для символов из категории "Nd" (десятичные цифры). Начиная с Unicode 4, функция является аналогом тестирования на Numeric_Type для Decimal.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является цифрой, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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() - Проверить, является ли символ шестнадцатеричной цифрой
  • ctype_digit() - Проверяет наличие цифровых символов в строке


Проверить, является ли символ графическим символом

  • « IntlChar::isdigit
  • IntlChar::isIDIgnorable »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ графическим символом

IntlChar::isgraph

(PHP 7, PHP 8)

IntlChar::isgraph — Проверить, является ли символ графическим символом

Описание

public static IntlChar::isgraph(int|string $codepoint): ?bool

Проверяет, является ли символ "графическим" символом (печатные символы за исключением пробельных).

true для всех символов за исключением входящих в категории "Cc" (управляющие символы), "Cf" (управление форматом), "Cs" (суррогаты), "Cn" (не заданные) и "Z" (разделители).

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является "графическим" символом, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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)

Смотрите также

  • ctype_graph() - Проверяет наличие любых печатных символов, кроме пробела


Проверить, является ли символ игнорируемым

  • « IntlChar::isgraph
  • IntlChar::isIDPart »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ игнорируемым

IntlChar::isIDIgnorable

(PHP 7, PHP 8)

IntlChar::isIDIgnorable — Проверить, является ли символ игнорируемым

Описание

public static IntlChar::isIDIgnorable(int|string $codepoint): ?bool

Проверяет, является ли символ игнорируемым в идентификаторах.

true для символов из категории "Cf" (управление форматом) и не пробельных управляющих символов ISO (U+0000..U+0008, U+000E..U+001B, U+007F..U+009F).

Замечание:

Обратите внимание, что Unicode просто рекомендует игнорировать Cf (управление форматом).

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint игнорируется в идентификаторах, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isIDPart — Проверить, допустимо ли использовать символ в идентификаторе

Описание

public static IntlChar::isIDPart(int|string $codepoint): ?bool

Проверяет, допустимо ли использовать символ в идентификаторе.

true для символов категории "L" (буквы), "Nl" (символы цифр), "Nd" (десятичные цифры), "Mc" и "Mn" (метки совмещения), "Pc" (соединяющая пунктуация), и u_isIDIgnorable(c).

Замечание:

Почти то же самое, что и ID_Continue в Unicode (IntlChar::PROPERTY_ID_CONTINUE) за исключением того, что Unicode рекомендует игнорировать Cf, которые меньше IntlChar::isIDIgnorable().

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true если codepoint можно использовать в идентификаторах, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isIDStart — Проверить, допустимо ли использовать символ в начале идентификатора

Описание

public static IntlChar::isIDStart(int|string $codepoint): ?bool

Проверяет, допустимо ли использовать символ в начале идентификатора в соответствии со стандартом Unicode (The Unicode Standard, версия 3.0, глава 5.16 - Идентификаторы).

true для категорий "L" (буквы) и "Nl" (символы цифр).

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true если codepoint можно использовать в начале идентификатора, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isISOControl — Проверить, является ли символ управляющим согласно ISO

Описание

public static IntlChar::isISOControl(int|string $codepoint): ?bool

Проверяет, является ли символ управляющим согласно ISO.

true для U+0000..U+001f и U+007f..U+009f (категория "Cc").

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является управляющим символом ISO, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isJavaIDPart — Проверить, является ли символ допустимым в идентификаторе Java

Описание

public static IntlChar::isJavaIDPart(int|string $codepoint): ?bool

Проверяет, является ли символ допустимым в идентификаторе Java.

В дополнение к IntlChar::isIDPart(), true возвращается для категории "Sc" (символ денежной единицы).

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint может встречаться в идентификаторе Java, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isJavaIDStart — Проверить, может ли символ быть первым в идентификаторе Java

Описание

public static IntlChar::isJavaIDStart(int|string $codepoint): ?bool

Проверяет, может ли символ быть первым в идентификаторе Java.

В дополнение к IntlChar::isIDStart(), true возвращается для символов из категорий "Sc" (символ денежной единицы) и "Pc" (соединяющая пунктуация).

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint может быть первым в идентификаторе Java, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isJavaSpaceChar — Проверить, является ли символ пробельным с точки зрения языка Java

Описание

public static IntlChar::isJavaSpaceChar(int|string $codepoint): ?bool

Проверяет, является ли символ пробельным с точки зрения языка Java.

true для категории "Z" (разделители), не включая контролирующие символы (такие как TAB или Перевод Строки).

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является пробельным в Java, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::islower — Проверить, в нижнем ли регистре символ

Описание

public static IntlChar::islower(int|string $codepoint): ?bool

Определяет, входит ли символ в категорию "Ll" (буквы в нижнем регистре).

Замечание:

Могут быть пропущены некоторые символы, так как они могут иметь другую главную категорию. Что бы не потерять их - используйте функцию IntlChar::isULowercase().

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint входит в категорию Ll или false, если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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
  • ctype_lower() - Проверяет наличие символов в нижнем регистре


Проверить, если у символа свойство Bidi_Mirrored

  • « IntlChar::islower
  • IntlChar::isprint »
  • PHP Manual
  • IntlChar
  • Проверить, если у символа свойство Bidi_Mirrored

IntlChar::isMirrored

(PHP 7, PHP 8)

IntlChar::isMirrored — Проверить, если у символа свойство Bidi_Mirrored

Описание

public static IntlChar::isMirrored(int|string $codepoint): ?bool

Проверить, если у символа свойство Bidi_Mirrored.

Это свойство обычно есть у символов использующихся в контексте написания справа налево, которые необходимо отобразить "зеркальными" глифами.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint имеет свойство Bidi_Mirrored, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isprint — Проверяет, является ли символ отображаемым

Описание

public static IntlChar::isprint(int|string $codepoint): ?bool

Проверяет, является ли символ отображаемым.

true для категорий отличных от "C" (управляющие символы).

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является отображаемым символом, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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
  • ctype_print() - Проверяет наличие печатных символов


Проверяет, является ли символ символом пунктуации

  • « IntlChar::isprint
  • IntlChar::isspace »
  • PHP Manual
  • IntlChar
  • Проверяет, является ли символ символом пунктуации

IntlChar::ispunct

(PHP 7, PHP 8)

IntlChar::ispunct — Проверяет, является ли символ символом пунктуации

Описание

public static IntlChar::ispunct(int|string $codepoint): ?bool

Проверяет, является ли символ символом пунктуации.

true для символов с категорией "P" (пунктуация).

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является символом пунктуации, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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)

Смотрите также

  • ctype_punct() - Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы


Проверяет, является ли символ пробельным

  • « IntlChar::ispunct
  • IntlChar::istitle »
  • PHP Manual
  • IntlChar
  • Проверяет, является ли символ пробельным

IntlChar::isspace

(PHP 7, PHP 8)

IntlChar::isspace — Проверяет, является ли символ пробельным

Описание

public static IntlChar::isspace(int|string $codepoint): ?bool

Проверяет, является ли символ пробельным.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является пробельным символом, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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 (пробельный символ)
  • ctype_space() - Проверяет наличие пробельных символов


Проверить, является ли символ титульным (Titlecase)

  • « IntlChar::isspace
  • IntlChar::isUAlphabetic »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ титульным (Titlecase)

IntlChar::istitle

(PHP 7, PHP 8)

IntlChar::istitle — Проверить, является ли символ титульным (Titlecase)

Описание

public static IntlChar::istitle(int|string $codepoint): ?bool

Проверить, входит ли символ в категорию Titlecase. Данные символы являются составными из нескольких букв, первая из которых заглавная. Например \u{01cb} (?) или \u{1faf} (?).

true для категории "Lt" (titlecase).

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является титульными символом, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isUAlphabetic — Проверить, установлено ли у символа свойство Alphabetic

Описание

public static IntlChar::isUAlphabetic(int|string $codepoint): ?bool

Проверяет, установлено ли у символа свойство Alphabetic.

Тоже самое, что и IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_ALPHABETIC)

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint имеет свойство Alphabetic, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isULowercase — Проверить, является ли символ символом в нижнем регистре

Описание

public static IntlChar::isULowercase(int|string $codepoint): ?bool

Проверяет, является ли символ символом в нижнем регистре.

То же самое, что и IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_LOWERCASE)

Замечание:

Отличается от IntlChar::islower() и возвращает true для большего числа символов.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint имеет свойство "Lowercase", false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isupper — Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)

Описание

public static IntlChar::isupper(int|string $codepoint): ?bool

Определяет, входит ли символ в категорию "Lu" (буквы в верхнем регистре).

Замечание:

Могут быть пропущены некоторые символы, так как они могут иметь другую главную категорию. Что бы не потерять их - используйте функцию IntlChar::isUUppercase().

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint входит в категорию Lu или false, если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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
  • ctype_upper() - Проверяет наличие символов в верхнем регистре


Проверить, является ли символ символом в верхнем регистре

  • « IntlChar::isupper
  • IntlChar::isUWhiteSpace »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ символом в верхнем регистре

IntlChar::isUUppercase

(PHP 7, PHP 8)

IntlChar::isUUppercase — Проверить, является ли символ символом в верхнем регистре

Описание

public static IntlChar::isUUppercase(int|string $codepoint): ?bool

Проверить, является ли символ символом в верхнем регистре.

То же самое, что и IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_UPPERCASE)

Замечание:

Отличается от IntlChar::isupper() и возвращает true для большего числа символов.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint имеет свойство "Uppercase", false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isUWhiteSpace — Проверить, имеет ли символ свойство White_Space (пробельный символ)

Описание

public static IntlChar::isUWhiteSpace(int|string $codepoint): ?bool

Проверяет, имеет ли символ свойство White_Space (пробельный символ).

То же самое, что и IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_WHITE_SPACE)

Замечание:

Отличается от IntlChar::isspace() и IntlChar::isWhitespace().

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint имеет свойство "White_Space", false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isWhitespace — Проверить, является ли символ пробельным с точки зрения ICU

Описание

public static IntlChar::isWhitespace(int|string $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

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является пробельным в ICU, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::isxdigit — Проверить, является ли символ шестнадцатеричной цифрой

Описание

public static IntlChar::isxdigit(int|string $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

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает true, если codepoint является шестнадцатеричной цифрой, false - если нет. В случае возникновения ошибки возвращает null.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isxdigit("A"));
var_dump(IntlChar::isxdigit("1"));
var_dump(IntlChar::isxdigit("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)

Примечания

Замечание:

Для того чтобы сузить определение шестнадцатеричных цифр только принимаются только символы ASCII:

<?php
$isASCIIHexadecimal = IntlChar::ord($codepoint) <= 0x7F && IntlChar::isxdigit($codepoint);
?>

Смотрите также

  • IntlChar::isdigit() - Проверить, является ли символ цифрой
  • ctype_xdigit() - Проверяет наличие шестнадцатеричных цифр


Получить код символ Unicode

  • « IntlChar::isxdigit
  • IntlChar::tolower »
  • PHP Manual
  • IntlChar
  • Получить код символ Unicode

IntlChar::ord

(PHP 7, PHP 8)

IntlChar::ord — Получить код символ Unicode

Описание

public static IntlChar::ord(int|string $character): ?int

Возвращает код символа Unicode.

Эта функция противоположна по действию функции IntlChar::chr().

Список параметров

character

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает код символа 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::chr() - Получить символ Unicode по его коду
  • mb_ord() - Получает кодовую точку символа Unicode
  • ord() - Конвертирует первый байт строки в число от 0 до 255


Преобразование символа Unicode в нижний регистр

  • « IntlChar::ord
  • IntlChar::totitle »
  • PHP Manual
  • IntlChar
  • Преобразование символа Unicode в нижний регистр

IntlChar::tolower

(PHP 7, PHP 8)

IntlChar::tolower — Преобразование символа Unicode в нижний регистр

Описание

public static IntlChar::tolower(int|string $codepoint): int|string|null

Преобразует символ в его эквивалент в нижнем регистре. Если такового нет, то возвращается исходный символ.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает Simple_Lowercase_Mapping для символа, если существует. Если нет, то возвращает исходный символ. В случае возникновения ошибки возвращает null.

Возвращаемый тип должен быть int, если только символ не был передан как строка UTF-8 (string), в этом случае вернётся строка (string). В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::totitle — Преобразует символ Unicode в titlecase

Описание

public static IntlChar::totitle(int|string $codepoint): int|string|null

Возвращает эквивалент символа в титульном(titlecase) регистре. Если такового нет, то возвращается исходный символ.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает Simple_Titlecase_Mapping для символа, если существует. Если нет, то возвращает исходный символ. В случае возникновения ошибки возвращает null.

Возвращаемый тип должен быть int, если только символ не был передан как строка UTF-8 (string), в этом случае вернётся строка (string). В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8)

IntlChar::toupper — Преобразование символа Unicode в верхний регистр

Описание

public static IntlChar::toupper(int|string $codepoint): int|string|null

Преобразует символ в его эквивалент в верхнем регистре. Если такового нет, то возвращается исходный символ.

Список параметров

codepoint

Целочисленное (int) задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает Simple_Uppercase_Mapping символа, если он есть. В противном случае возвращается исходный символ.

Возвращаемый тип должен быть int, если только символ не был передан как строка UTF-8 (string), в этом случае вернётся строка (string). В случае возникновения ошибки возвращает null.

Примеры

Пример #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, PHP 8, PECL intl > 3.0.0a1)

Введение

Этот класс служит для вызова исключений в случае возникновения ошибки в функциях intl. Данные исключения могут быть выброшены только если включена опция intl.use_exceptions.

Обзор классов

class IntlException extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс IntlIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Введение

Этот класс представляет итератор объектов модуля intl в тех случаях, когда нельзя назначить какой-либо другой итератор для объекта данного модуля. Единственный объект итератора для использования в конструкции foreach может быть получен только (в соответствующей части здесь) из объектов, так что объекты данного класса служат для получения таких внутренних объектов. Для удобства данный класс также реализует интерфейс Iterator, позволяя взаимодействовать с коллекциями значений используя методы определённые в этом интерфейсе. Оба этих метода и внутренние объекты итератора сохраняют своё состояние при передачи в foreach. (т.е. внутренний указатель и текущее значение остаются неизменны).

Классы потомки могут предоставлять более широкую функциональность.

Обзор классов

class IntlIterator implements Iterator {
/* Методы */
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): 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, PHP 8)

IntlIterator::current — Получить текущий элемент

Описание

public IntlIterator::current(): mixed

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить ключ текущего элемента

  • « IntlIterator::current
  • IntlIterator::next »
  • PHP Manual
  • IntlIterator
  • Получить ключ текущего элемента

IntlIterator::key

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::key — Получить ключ текущего элемента

Описание

public IntlIterator::key(): mixed

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Перейти к следующему элементу

  • « IntlIterator::key
  • IntlIterator::rewind »
  • PHP Manual
  • IntlIterator
  • Перейти к следующему элементу

IntlIterator::next

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::next — Перейти к следующему элементу

Описание

public IntlIterator::next(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Перейти к первому элементу

  • « IntlIterator::next
  • IntlIterator::valid »
  • PHP Manual
  • IntlIterator
  • Перейти к первому элементу

IntlIterator::rewind

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::rewind — Перейти к первому элементу

Описание

public IntlIterator::rewind(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверить, корректна ли текущая позиция

  • « IntlIterator::rewind
  • Функции intl »
  • PHP Manual
  • IntlIterator
  • Проверить, корректна ли текущая позиция

IntlIterator::valid

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::valid — Проверить, корректна ли текущая позиция

Описание

public IntlIterator::valid(): 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, PHP 8, PECL intl >= 1.0.0)

intl_error_name — Получить имя ошибки по её коду

Описание

intl_error_name(int $errorCode): string

Возвращает имя ошибки ICU.

Список параметров

errorCode

Код ошибки 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, PHP 8, PECL intl >= 1.0.0)

intl_get_error_code — Получить код последней ошибки

Описание

intl_get_error_code(): 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() - Получает последний код ошибки Collator
  • numfmt_get_error_code() - Получает последний код ошибки средства форматирования


Получить описание ошибки

  • « intl_get_error_code
  • intl_is_failure »
  • PHP Manual
  • Функции intl
  • Получить описание ошибки

intl_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

intl_get_error_message — Получить описание ошибки

Описание

intl_get_error_message(): 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() - Получает текст для кода последней ошибки Collator
  • numfmt_get_error_message() - Получает последнее сообщение об ошибке средства форматирования


Проверить, является ли код ошибки признаком сбоя

  • « intl_get_error_message
  • Многобайтовые строки »
  • PHP Manual
  • Функции intl
  • Проверить, является ли код ошибки признаком сбоя

intl_is_failure

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

intl_is_failure — Проверить, является ли код ошибки признаком сбоя

Описание

intl_is_failure(int $errorCode): bool

Список параметров

errorCode

Значение, возвращённое функциями: 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() - Получает последний код ошибки Collator
  • Collator-getErrorCode() - Получает последний код ошибки Collator


Многобайтовые строки

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Краткий обзор поддерживаемых кодировок
  • Основы японских многобайтных кодировок
  • Ввод и вывод HTTP
  • Поддерживаемые кодировки символов
  • Механизм перегрузки функций
  • Требования, предъявляемые к кодировкам символов в PHP
  • Функции для работы с многобайтовыми строками
    • mb_check_encoding — Проверяет, что кодировка строк выбрана верно
    • mb_chr — Возвращает символ по значению кодовой точки Unicode
    • 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 — Получает кодовую точку символа Unicode
    • 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_str_pad — Дополняет мультибайтовую строку другой мультибайтовой строкой до заданной длины
    • mb_str_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 необходима для функций, работающих с регулярными выражениями с поддержкой многобайтовых кодировок. Начиная с PHP 7.4.0, для обнаружения библиотеки libonig используется pkg-config. До PHP 7.4.0 Oniguruma поставлялась вместе с mbstring, но можно было выполнить сборку с уже установленным libonig, передав --with-onig[=DIR].

    Возможно запретить многобайтовые регулярные выражения с возвратом с помощью опции --disable-mbregex-backtrack.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации mbstring
Имя | По умолчанию | Место изменения | Список изменений
mbstring.language | "neutral" | PHP_INI_ALL |
mbstring.detect_order | NULL | PHP_INI_ALL |
mbstring.http_input | "pass" | PHP_INI_ALL | Устарела
mbstring.http_output | "pass" | PHP_INI_ALL | Устарела
mbstring.internal_encoding | NULL | PHP_INI_ALL | Устарела
mbstring.substitute_character | NULL | PHP_INI_ALL |
mbstring.func_overload | "0" | PHP_INI_SYSTEM | Объявлено устаревшим в PHP 7.2.0; удалено с PHP 8.0.0.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | PHP_INI_ALL |
mbstring.strict_detection | "0" | PHP_INI_ALL |
mbstring.regex_retry_limit | "1000000" | PHP_INI_ALL | Доступно, начиная с PHP 7.4.0.
mbstring.regex_stack_limit | "100000" | PHP_INI_ALL | Доступно, начиная с PHP 7.3.5.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mbstring.language string

По умолчанию в mbstring используются настройки национального языка. Обратите внимание, что эта опция автоматически определяет mbstring.internal_encoding, и mbstring.internal_encoding должен быть помещён после mbstring.language в php.ini

mbstring.encoding_translation bool

Включает прозрачный фильтр кодировки для входящих запросов HTTP, который выполняет обнаружение и преобразование входной кодировки во внутреннюю кодировку.

mbstring.internal_encoding string
Внимание

Эта возможность устарела и будет обязательно удалена в будущем.

Определяет внутреннюю кодировку символов по умолчанию.

Пользователи должны оставить эту опцию пустой и задать вместо неё default_charset.

mbstring.http_input string
Внимание

Эта возможность устарела и будет обязательно удалена в будущем.

Определяет кодировку символов по умолчанию для HTTP-ввода.

Пользователи должны оставить эту опцию пустой и задать вместо неё default_charset.

mbstring.http_output string
Внимание

Эта возможность устарела и будет обязательно удалена в будущем.

Определяет кодировку символов по умолчанию для HTTP-вывода (конвертация из внутренней кодировки в кодировку HTTP вывода произойдёт перед выводом).

Пользователи должны оставить эту опцию пустой и задать вместо неё default_charset.

mbstring.detect_order string

Определяет порядок определения кодировки символов по умолчанию. Смотрите также mb_detect_order().

mbstring.substitute_character string

Определяет символ для замены недопустимых символов кодировки. Список поддерживаемых значений смотрите в описании функции mb_substitute_character().

mbstring.func_overload string
Внимание

Данная функциональность объявлена УСТАРЕВШЕЙ, начиная с PHP 7.2.0 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Перегружает множество однобайтовых функций аналогами из mbstring. Смотрите раздел Перегрузка функций для получения дополнительной информации.

Эта опция может быть изменена только в файле php.ini.

mbstring.http_output_conv_mimetypes string

mbstring.strict_detection bool

Включает строгое определение кодировки. Смотрите описание и примеры в mb_detect_encoding().

mbstring.regex_retry_limit int

Ограничивает количество обратных ходов, которые могут быть выполнены во время одного совпадения mbregex.

Эта настройка действует только при связывании с oniguruma >= 6.8.0.

mbstring.regex_stack_limit int

Ограничивает глубину стека регулярных выражений mbstring.

Согласно » спецификации 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 (int)
Удалено с PHP 8.0.0.
MB_OVERLOAD_STRING (int)
Удалено с PHP 8.0.0.
MB_OVERLOAD_REGEX (int)
Удалено с PHP 8.0.0.
MB_CASE_UPPER (int)
Выполняет полное преобразование в верхний регистр. Может изменить длину строки. Это режим, используемый mb_strtoupper().
MB_CASE_LOWER (int)
Выполняет полное преобразование в нижний регистр. Может изменить длину строки. Это режим, используемый mb_strtolower().
MB_CASE_TITLE (int)
Выполняет полное преобразование прецедента заголовка на основе свойств производного Unicode Cased и CaseIgnorable. В частности, улучшает обработку кавычек и апострофов. Может изменить длину строки.
MB_CASE_FOLD (int)
Выполняет полное преобразование, которое удаляет различия регистра, присутствующие в строке. Используется для сопоставления без учёта регистра. Может изменить длину строки. Доступно с PHP 7.3.
MB_CASE_LOWER_SIMPLE (int)
Выполняет простое преобразование в нижний регистр. Не меняет длину строки. Доступно с PHP 7.3.
MB_CASE_UPPER_SIMPLE (int)
Выполняет простое преобразование в верхний регистр. Не меняет длину строки. Доступно с PHP 7.3.
MB_CASE_TITLE_SIMPLE (int)
Выполняет простое преобразование в заглавные буквы. Не меняет длину строки. Доступно с PHP 7.3.
MB_CASE_FOLD_SIMPLE (int)
Выполняет простое преобразование, которое удаляет различия регистра, присутствующие в строке. Используется для сопоставления без учёта регистра. Не меняет длину строки. Используется без учёта регистра внутренних операций модулем MBString. Доступно с 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.
  • Эмодзи, используемые в сервисах мобильных телефонов, таких как » 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.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 8.0.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()

Замечание:

Не рекомендуется использовать перегрузку функций в контексте каждой директории, так как добиться стабильной работы в этом случае пока не удалось, и это может привести к неожидаемому поведению приложения.


Требования, предъявляемые к кодировкам символов в 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/

  • Информация о символах японской/корейской/китайской кодировок

    » https://resources.oreilly.com/examples/9781565922242/blob/master/doc/cjk.inf

Содержание

  • mb_check_encoding — Проверяет, что кодировка строк выбрана верно
  • mb_chr — Возвращает символ по значению кодовой точки Unicode
  • 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 — Получает кодовую точку символа Unicode
  • 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_str_pad — Дополняет мультибайтовую строку другой мультибайтовой строкой до заданной длины
  • mb_str_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, PHP 8)

mb_check_encoding — Проверяет, что кодировка строк выбрана верно

Описание

mb_check_encoding(array|string|null $value = null, ?string $encoding = null): bool

Проверяет, что для потока данных подходит выбранная кодировка. Если value является массивом (array), все ключи и значения проверяются рекурсивно. Функция может быть полезной для предотвращения так называемой "Атаки неправильной кодировкой".

Список параметров

value

Поток данных или массив (array) для проверки. Если не задан, функция проверит все входные данные с начала запроса.

Внимание

Начиная с PHP 8.1.0, опускание этого параметра или передача null устарело.

encoding

Ожидаемая кодировка.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Вызов функции с null в качестве параметра value или без аргумента устарело.
8.0.0 | Параметры value и encoding могут принимать значение null.
7.2.0 | Функция теперь также принимает массив (array) в value. Ранее поддерживались только строки (string).


Возвращает символ по значению кодовой точки Unicode

  • « mb_check_encoding
  • mb_convert_case »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Возвращает символ по значению кодовой точки Unicode

mb_chr

(PHP 7 >= 7.2.0, PHP 8)

mb_chr — Возвращает символ по значению кодовой точки Unicode

Описание

mb_chr(int $codepoint, ?string $encoding = null): string|false

Возвращает строку, содержащую символ, указанный значением кодовой точки Unicode, закодированный в указанной кодировке.

Функция дополняет mb_ord().

Список параметров

codepoint

Значение кодовой точки Unicode, например 128024 для U+1F418 ELEPHANT

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Строка, содержащая запрошенный символ, если она может быть представлена в указанной кодировке, или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.

Примеры

Пример #1 Тестирование различных способов задания

<?php
$values = [65, 63, 0x20AC, 128024];
foreach ($values as $value) {
var_dump(mb_chr($value, 'UTF-8'));
var_dump(mb_chr($value, 'ISO-8859-1'));
}
?>

Результат выполнения данного примера:

string(1) "A"
string(1) "A"
string(1) "?"
string(1) "?"
string(3) "€"
bool(false)
string(4) "??"
bool(false)

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • mb_ord() - Получает кодовую точку символа Unicode
  • IntlChar::ord() - Получить код символ Unicode
  • chr() - Генерирует односимвольную строку по заданному числу


Производит смену регистра символов в строке

  • « mb_chr
  • mb_convert_encoding »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Производит смену регистра символов в строке

mb_convert_case

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_convert_case — Производит смену регистра символов в строке

Описание

mb_convert_case(string $string, int $mode, ?string $encoding = null): string

Производит смену регистра символов в строке (string) в соответствии с режимом mode.

Список параметров

string

Строка (string) для преобразования.

mode

Режим смены регистра. Это может быть одна из констант MB_CASE_UPPER, MB_CASE_LOWER, MB_CASE_TITLE, MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE или MB_CASE_FOLD_SIMPLE.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Строка string, преобразованная в соответствии с режимом mode.

Список изменений

Версия | Описание
7.3.0 | Добавлена поддержка MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE и MB_CASE_FOLD_SIMPLE в параметре mode.

Примеры

Пример #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; // Выведет ??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????
?>

Примечания

В отличие от стандартных функций смены регистра, вроде strtolower() и strtoupper(), смена регистра осуществляется на основе свойств символа Юникода. Таким образом, на поведение функции не влияют региональные настройки системы, и она может конвертировать любые символы, имеющие 'алфавитное' свойство, как например а-умляут (a).

Дополнительную информацию о свойствах Юникода смотрите по ссылке» http://www.unicode.org/reports/tr21/.

Смотрите также

  • 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, PHP 8)

mb_convert_encoding — Преобразует строку из одной кодировки символов в другую

Описание

mb_convert_encoding(array|string $string, string $to_encoding, array|string|null $from_encoding = null): array|string|false

Преобразует параметр string из кодировки from_encoding или текущей внутренней кодировки в to_encoding. Также можно указать необязательный параметр from_encoding. Если string является массивом (array), все его строковые (string) значения будут преобразованы рекурсивно.

Список параметров

string

Строка (string) или массив (array), для преобразования.

to_encoding

Требуемая кодировка результата.

from_encoding

Текущая кодировка, используемая для интерпретации строки string. Несколько кодировок могут быть указаны в виде массива (array) или в виде строки через запятую, в этом случае правильная кодировка будет определена по тому же алгоритму, что и в функции mb_detect_encoding().

Если параметр from_encoding опущен или равен null, то будет использоваться mbstring.internal_encoding setting, если она установлена, иначе кодировка по умолчанию.

Допустимые значения to_encoding и from_encoding указаны на странице поддерживаемые кодировки.

Возвращаемые значения

Преобразованная строка (string) или массив (array) или false в случае возникновения ошибки.

Ошибки

Начиная с PHP 8.0.0, если значение to_encoding или from_encoding является недопустимой кодировкой, выбрасывается ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | mb_convert_encoding() теперь выбрасывает ValueError, если передана недопустимая кодировка в to_encoding.
8.0.0 | mb_convert_encoding() теперь выбрасывает ValueError, если передана недопустимая кодировка в from_encoding.
8.0.0 | Теперь from_encoding может быть null.
7.2.0 | Функция теперь также принимает массив (array) в string. Ранее поддерживались только строки (string).

Примеры

Пример #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");

/* Если mbstring.language равен "Japanese", "auto" используется для обозначения "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

Смотрите также

  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки
  • UConverter::transcode() - Преобразует строку из одной кодировки символов в другую
  • iconv() - Преобразует строку из одной кодировки символов в другую


Преобразует одну кодировку "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, PHP 8)

mb_convert_kana — Преобразует одну кодировку "kana" в другую ("zen-kaku", "han-kaku" и другие)

Описание

mb_convert_kana(string $string, string $mode = "KV", ?string $encoding = null): string

Производит преобразование "han-kaku" - "zen-kaku" для строкового аргумента string. Эта функция может быть полезной только для японского языка.

Список параметров

string

Исходная строка (string).

mode

Настройка конвертации.

Задаётся комбинацией следующих настроек.

Возможные настройки преобразования
Настройка | Описание
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 представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Преобразованная строка (string).

Ошибки

Будет выброшено исключение ValueError, если комбинация заданных в параметре mode режимов недопустима. Например, "sS".

Список изменений

Версия | Описание
8.2.0 | Теперь выбрасывается исключение ValueError, если комбинация установленных в параметре mode режимов недопустима.
8.0.0 | Теперь параметр encoding может принимать значение null.

Примеры

Пример #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" буквенно-цифровых символов в "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, PHP 8)

mb_convert_variables — Преобразует символы в переменной(-ых) из одной кодировки в другую

Описание

mb_convert_variables(
string $to_encoding,
array|string $from_encoding,
mixed &$var,
mixed &...$vars
): string|false

Конвертирует символы в переменных var и vars из кодировки from_encoding в кодировку to_encoding.

mb_convert_variables() объединяет строки из массива или объекта для определения их кодировки, так как в случае коротких строк определить кодировку зачастую не удаётся. Вследствие этого, недопустимо помещать в один массив или объект строки в разных кодировках.

Список параметров

to_encoding

Кодировка, в которую необходимо перекодировать строку (string).

from_encoding

from_encoding задаётся в виде массива (array) или строки (string) с разделёнными запятой кодировками. Функция попытается определить кодировку исходной строки на основе списка возможных кодировок в аргументе from-coding. Если from_encoding опущен, используется detect_order.

var

var - ссылка на переменную, содержимое которой необходимо преобразовать. Это может быть строка, массив или объект. mb_convert_variables() принимает, что все эти аргументы имеют одинаковую кодировку.

vars

Дополнительные var.

Возвращаемые значения

Исходная кодировка в случае успешного выполнения или 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, PHP 8)

mb_decode_mimeheader — Декодирует строку в MIME-заголовке

Описание

mb_decode_mimeheader(string $string): string

Декодирует закодированную строку (string) string в MIME-заголовке.

Список параметров

string

Строка (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, PHP 8)

mb_decode_numericentity — Декодирует ссылку на числовую строку HTML в символ

Описание

mb_decode_numericentity(string $string, array $map, ?string $encoding = null): string

Преобразует строку чисел string (string) в заданном блоке в символ.

Список параметров

string

Строка (string) для декодирования.

map

map - массив (array), который задаёт диапазон кодов символов.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

is_hex

Параметр не используется.

Возвращаемые значения

Преобразованная строка (string).

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.

Примеры

Пример #1 Пример использования map

<?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 с помощью map

<?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, PHP 8)

mb_detect_encoding — Определение кодировки символов

Описание

mb_detect_encoding(string $string, array|string|null $encodings = null, bool $strict = false): string|false

Определяет наиболее вероятную кодировку символов для строки (string) string из упорядоченного списка кандидатов.

Автоматическое определение предполагаемой кодировки символов не может быть полностью надёжным; без дополнительной информации это похоже на расшифровку зашифрованной строки без ключа. Всегда предпочтительно использовать индикацию кодировки символов, хранящуюся или передаваемую с данными, такую как HTTP-заголовок "Content-Type".

Функция наиболее полезна с многобайтовыми кодировками, когда не все последовательности байтов образуют допустимую строку. Если входная строка содержит такую последовательность, эта кодировка будет отклонена, и будет проверена следующая кодировка.

Список параметров

string

Проверяемая строка (string).

encodings

Упорядоченный список кодировок символов. Список может быть указан как массив строк или как строка кодировок, разделённых запятыми.

Если encodings не задан или является null, будет использоваться текущий detect_order (установленный с помощью параметра конфигурации mbstring.detect_order или функции mb_detect_order()).

strict

Управляет поведением, когда string недопустима ни в одной из перечисленных encodings. Если для strict установлено значение false, будет возвращена наиболее подходящая кодировка; если для strict установлено значение true, будет возвращено false.

Значение по умолчанию для strict можно установить с помощью параметра конфигурации mbstring.strict_detection.

Возвращаемые значения

Название кодировки символов или false, если строка недопустима ни в одной из перечисленных кодировок.

Примеры

Пример #1 Пример использования mb_detect_encoding()

<?php
// Определение кодировки с текущим detect_order
echo mb_detect_encoding($str);

// "auto" раскрывается в соответствии с mbstring.language
echo mb_detect_encoding($str, "auto");

// Зададим список кодировок "encodings" в виде строки
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

// Использование массива для задания возможных кодировок "encodings"
$encodings = [
"ASCII",
"JIS",
"EUC-JP"
];
echo mb_detect_encoding($str, $encodings);
?>

Пример #2 Действие параметра strict

<?php
// 'aeou' закодирована в ISO-8859-1
$str = "\xE1\xE9\xF3\xFA";

// Строка недействительна в ASCII или UTF-8, но UTF-8 считается более близким соответствием
var_dump(mb_detect_encoding($str, ['ASCII', 'UTF-8'], false));
var_dump(mb_detect_encoding($str, ['ASCII', 'UTF-8'], true));

// Если допустимая кодировка найдена, параметр strict не меняет результат
var_dump(mb_detect_encoding($str, ['ASCII', 'UTF-8', 'ISO-8859-1'], false));
var_dump(mb_detect_encoding($str, ['ASCII', 'UTF-8', 'ISO-8859-1'], true));
?>

Результат выполнения данного примера:

string(5) "UTF-8"
bool(false)
string(10) "ISO-8859-1"
string(10) "ISO-8859-1"

В некоторых случаях одна и та же последовательность байтов может образовывать допустимую строку в нескольких кодировках символов, и невозможно узнать, какая интерпретация предназначалась. Например, среди многих других байтовая последовательность "\xC4\xA2" может быть:

  • "A?" (U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS с последующим U+00A2 CENT SIGN) закодирована в ISO-8859-1, ISO-8859-15 или Windows-1252
  • "ФЂ" (U+0424 CYRILLIC CAPITAL LETTER EF с последующим U+0402 CYRILLIC CAPITAL LETTER DJE) закодирована в ISO-8859-5
  • "G" (U+0122 LATIN CAPITAL LETTER G WITH CEDILLA) закодирована в UTF-8

Пример #3 Использование порядка при совпадении нескольких кодировок

<?php
$str = "\xC4\xA2";

// Строка действительна во всех трех кодировках, поэтому будет возвращена первая из перечисленных кодировок.
var_dump(mb_detect_encoding($str, ['UTF-8', 'ISO-8859-1', 'ISO-8859-5']));
var_dump(mb_detect_encoding($str, ['ISO-8859-1', 'ISO-8859-5', 'UTF-8']));
var_dump(mb_detect_encoding($str, ['ISO-8859-5', 'UTF-8', 'ISO-8859-1']));
?>

Результат выполнения данного примера:

string(5) "UTF-8"
string(10) "ISO-8859-1"
string(10) "ISO-8859-5"

Смотрите также

  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки


Установка/получение списка кодировок для механизмов определения кодировки

  • « mb_detect_encoding
  • mb_encode_mimeheader »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Установка/получение списка кодировок для механизмов определения кодировки

mb_detect_order

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_detect_order — Установка/получение списка кодировок для механизмов определения кодировки

Описание

mb_detect_order(array|string|null $encoding = null): array|bool

В encoding задаётся порядок, в котором механизмы автоматического определения кодировок будут их проверять.

Список параметров

encoding

encoding - массив (array) или строка, в которой перечислены кодировки через запятую. Смотрите Поддерживаемые кодировки.

Если encoding опущен, функция вернёт текущий список кодировок в виде массива.

Эта настройка влияет на работу функций 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.

При получении порядка определения кодировки, возвращается отсортированный массив кодировок.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.

Примеры

Пример #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, PHP 8)

mb_encode_mimeheader — Кодирует строку для MIME-заголовка

Описание

mb_encode_mimeheader(
string $string,
?string $charset = null,
?string $transfer_encoding = null,
string $newline = "\r\n",
int $indent = 0
): string

Кодирует строку (string) (string) по схеме кодирования MIME-заголовка.

Список параметров

string

Кодируемая строка типа string. Её кодировка должна соответствовать mb_internal_encoding().

charset

charset задаёт имя кодировки, в котором представлена строка string. По умолчанию значение определяется настройкой NLS (mbstring.language).

transfer_encoding

transfer_encoding задаёт схему MIME-кодирования. Это может быть либо "B" (Base64), либо "Q" (Quoted-Printable). По умолчанию "B".

newline

newline задаёт метку EOL (конец строки, end-of-line), с помощью которой mb_encode_mimeheader() осуществляет завершение строк ("line-folding" - термин » RFC, означающий разделение строк, длина которых превышает заданное значение. Значение длины на данный момент жёстко задано как 74 символа). По умолчанию "\r\n" (CRLF).

indent

Отступ первой строки (число символов в заголовке перед string).

Возвращаемые значения

Конвертированная строка (string), преобразованная в ASCII.

Список изменений

Версия | Описание
8.0.0 | charset и transfer_encoding теперь допускают значение null.

Примеры

Пример #1 Пример использования mb_encode_mimeheader()

<?php
$name = "??"; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = '"' . addcslashes(mb_encode_mimeheader($name, "UTF-7", "Q"), '"') . '" <' . $mbox . "@" . $doma . ">";
echo $addr;
?>

Результат выполнения данного примера:

"=?UTF-7?Q?+WSqQzg-?=" <kru@gtinn.mon>

Примечания

Замечание:

Эта функция не рассчитана на выполнение высокоуровневых разрывов строк (перенос слов целиком и т.п.). Такое поведение может привести к появлению неожидаемых пробелов в исходной строке.

Смотрите также

  • 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, PHP 8)

mb_encode_numericentity — Кодирует символ в числовую HTML-ссылку

Описание

mb_encode_numericentity(
string $string,
array $map,
?string $encoding = null,
bool $hex = false
): string

Преобразует заданные коды символов в строке (string) string из кодов в числовые HTML-ссылки.

Список параметров

string

Кодируемая строка (string).

map

map - массив, задающий диапазон кодов.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

hex

Должна ли возвращаемая сущность быть представлена в шестнадцатеричной нотации (иначе в десятичной)

Возвращаемые значения

Сконвертированная строка (string).

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.

Примеры

Пример #1 Пример использования map

<?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, PHP 8)

mb_encoding_aliases — Получает псевдонимы известного типа кодировки

Описание

mb_encoding_aliases(string $encoding): array

Возвращает массив псевдонимов для известного типа кодировки encoding.

Список параметров

encoding

Кодировка, для которой ищутся псевдонимы.

Возвращаемые значения

Функция возвращает индексный массив с псевдонимами кодировки.

Ошибки

Выбрасывает исключение ValueError, если кодировка encoding неизвестна.

Список изменений

Версия | Описание
8.0.0 | Если параметр encoding неизвестен, теперь выбрасывается исключение ValueError; ранее выдавалась ошибка уровня E_WARNING и функция возвращала false.

Примеры

Пример #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, PHP 8)

mb_ereg_match — Совпадение с регулярным выражением для многобайтовой строки

Описание

mb_ereg_match(string $pattern, string $string, ?string $options = null): bool

Совпадение с регулярным выражением для многобайтовой строки.

Замечание: pattern сопоставляется только в начале string.

Список параметров

pattern

Шаблон регулярного выражения.

string

Оцениваемая строка (string).

options

Опция поиска. Подробнее смотрите mb_regex_set_options().

Возвращаемые значения

Возвращает true, если string совпадает с регулярным выражением pattern, false - в противном случае.

Список изменений

Версия | Описание
8.0.0 | options теперь допускает значение null.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией 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, PHP 8)

mb_ereg_replace_callback — Выполняет поиск и замену по регулярному выражению с поддержкой многобайтовых кодировок используя callback-функцию

Описание

mb_ereg_replace_callback(
string $pattern,
callable $callback,
string $string,
?string $options = null
): string|false|null

Проверяет строку string на совпадение с шаблоном pattern, затем заменяет найденный текст результатом функции callback.

Поведение этой функции почти идентично с функцией mb_ereg_replace(), за исключением того, что вместо строки замены replacement необходимо определять функцию callback.

Список параметров

pattern

Шаблон регулярного выражения.

Мультибайтовые символы могут использоваться в pattern.

callback

Функция, которая будет вызвана для получения и передачи массива совпадений в строку subject. Callback-функция должна возвращать строку для замены.

Часто может потребоваться объявлять функцию callback для mb_ereg_replace_callback() только в одном месте. В таком случае используйте анонимные функции для определения callback-функции внутри вызова mb_ereg_replace_callback(). При таком подходе у вас будет вся информация про вызов в одном месте и вы не загрязните пространство имён функции именем своей callback-функции, которое больше нигде не используется.

string

Строка (string) для проверки.

options

Опция поиска. Подробнее смотрите mb_regex_set_options().

Возвращаемые значения

Результирующая строка в случае успешного выполнения или false в случае возникновения ошибки. Если string некорректна для текущей кодировки, возвращается null.

Список изменений

Версия | Описание
8.0.0 | options теперь допускает значение null.
7.1.0 | Функция проверяет, корректна ли string для текущей кодировки.

Примеры

Пример #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
// этот текст использовался в 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_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg_replace() - Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок
  • Анонимные функции


Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок

  • « mb_ereg_replace_callback
  • mb_ereg_search_getpos »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок

mb_ereg_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_replace — Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок

Описание

mb_ereg_replace(
string $pattern,
string $replacement,
string $string,
?string $options = null
): string|false|null

Сканирует строку string для поиска совпадений с pattern, затем заменяет совпавший текст на replacement

Список параметров

pattern

Шаблон регулярного выражения.

В pattern могут использоваться многобайтовые символы.

replacement

Текст замены.

string

Проверяемая строка (string).

options
Опция поиска. Подробнее смотрите mb_regex_set_options().

Возвращаемые значения

Результирующая строка в случае успешного выполнения или false в случае возникновения ошибки. Если string некорректна для текущей кодировки, возвращается null.

Список изменений

Версия | Описание
8.0.0 | options теперь допускает значение null.
7.1.0 | Функция проверяет, корректна ли string для текущей кодировки.
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, PHP 8)

mb_ereg_search_getpos — Возвращает начальную позицию следующего совпадения с регулярным выражением

Описание

mb_ereg_search_getpos(): 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, PHP 8)

mb_ereg_search_getregs — Выводит результат последнего сравнения с регулярным выражением

Описание

mb_ereg_search_getregs(): array|false

Получение результата выполнения функций сравнения многобайтных строк с регулярным выражением

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (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, PHP 8)

mb_ereg_search_init — Инициализация поиска соответствий регулярному выражению многобайтовой строкой и текстом регулярного выражения

Описание

mb_ereg_search_init(string $string, ?string $pattern = null, ?string $options = null): bool

mb_ereg_search_init() задаёт значения параметров
string и pattern
для функций регулярных выражений. Эти значения будут использоваться
в функциях mb_ereg_search(),
mb_ereg_search_pos() и
mb_ereg_search_regs().

Список параметров

string

Строка, в которой будет осуществляться поиск соответствий.

pattern

Шаблон, регулярное выражение.

options

Опция поиска. Подробнее смотрите mb_regex_set_options().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | pattern и options теперь допускают значение null.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией 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, PHP 8)

mb_ereg_search_pos — Возвращает позицию и длину совпавшего с регулярным выражением участка многобайтовой строки

Описание

mb_ereg_search_pos(?string $pattern = null, ?string $options = null): array|false

Возвращает позицию и длину совпавшего с регулярным выражением участка заранее определённой многобайтной строки.

Строка для поиска задаётся функцией mb_ereg_search_init(). Если она не задавалась, будет использована строка, заданная ранее.

Список параметров

pattern

Шаблон, текст регулярного выражения.

options

Опция поиска. Подробнее смотрите mb_regex_set_options().

Возвращаемые значения

Массив (array) содержащий два элемента. Первый элемент - смещение в байтах, с которого начинается совпадение относительно начала искомой строки, и второй элемент - длина совпадения в байтах.

В случае возникновения ошибки возвращается false.

Список изменений

Версия | Описание
8.0.0 | pattern и options теперь допускают значение null.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией 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, PHP 8)

mb_ereg_search_regs — Возвращает совпавшую с регулярным выражением часть строки

Описание

mb_ereg_search_regs(?string $pattern = null, ?string $options = null): array|false

Возвращает совпавшую с регулярным выражением часть строки.

Список параметров

pattern

Шаблон, текст регулярного выражения.

options

Опция поиска. Подробнее смотрите mb_regex_set_options().

Возвращаемые значения

mb_ereg_search_regs() запускает поиск в многобайтовой строке соответствий регулярному выражению, и если такие соответствия обнаружены, возвращает массив (array). В первый элемент массива помещается совпавшая подстрока, во второй помещается первый значение первого элемента заключённое в квадратные скобки, в третий элемент помещается второй также в скобках и так далее. Функция возвращает false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | pattern и options теперь допускают значение null.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией 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, PHP 8)

mb_ereg_search_setpos — Задаёт начальную позицию в строке, с которой начнётся поиск соответствий регулярному выражению

Описание

mb_ereg_search_setpos(int $offset): bool

mb_ereg_search_setpos() задаёт начальную позицию, с которой начнётся поиск соответствий регулярному выражению функцией mb_ereg_search().

Список параметров

offset

Устанавливаемая позиция. Если значение отрицательно, отсчёт идёт с конца строки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией 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, PHP 8)

mb_ereg_search — Поиск соответствий регулярному выражению для строк в многобайтовых кодировках

Описание

mb_ereg_search(?string $pattern = null, ?string $options = null): bool

Выполняет поиск соответствий регулярному выражению в многобайтовой строке.

Список параметров

pattern

Шаблон для поиска, текст регулярного выражения.

options

Опция поиска. Подробнее смотрите mb_regex_set_options().

Возвращаемые значения

mb_ereg_search() возвращает true, если многобайтная строка соответствует регулярному выражению, либо false в противном случае. Строка (string) для поиска соответствий задаётся функцией mb_ereg_search_init(). Если аргумент pattern не задан, будет использовано предыдущее выражение.

Список изменений

Версия | Описание
8.0.0 | pattern и options теперь допускают значение null.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией 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, PHP 8)

mb_ereg — Совпадение с регулярным выражением с поддержкой многобайтовых кодировок

Описание

mb_ereg(string $pattern, string $string, array &$matches = null): bool

Выполняет поиск совпадения с регулярным выражением с поддержкой многобайтовых кодировок.

Список параметров

pattern

Шаблон поиска.

string

Строка (string), в которой производится поиск.

matches

Если найдены совпадения для подстроки в скобках шаблона pattern и функция вызвана с третьим аргументом matches, совпадения будут сохранены в массиве matches. Если подобных совпадений найдено не будет, то matches установится как пустой массив.

$matches[1] будет содержать первую слева подстроку в скобках; $matches[2] - вторую, и так далее. $matches[0] будет содержать копию всей строки.

Возвращаемые значения

Возвращает true или false, в зависимости от того, найдено ли совпадение текста по шаблону pattern в строке string.

Список изменений

Версия | Описание
8.0.0 | Теперь, в случае успешного завершения, эта функция возвращает true. Раньше она возвращала длину найденного вхождения pattern в строке string в случае, если был передан параметр matches. Если опциональный параметр matches не был задан, или длина проверяемой строки равнялась 0, эта функция возвращала число 1.
7.1.0 | Теперь mb_ereg() устанавливает matches равным пустому массиву (array), если ничего не найдено. Ранее в этом случае matches оставался неизменным.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией 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, PHP 8)

mb_eregi_replace — Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учёта регистра

Описание

mb_eregi_replace(
string $pattern,
string $replacement,
string $string,
?string $options = null
): string|false|null

Сканирует строку string для поиска совпадений с pattern, затем заменяет совпавший текст на replacement.

Список параметров

pattern

Шаблон регулярного выражения. Могут использоваться многобайтовые символы. Регистр будет игнорироваться.

replacement

Текст замены.

string

Строка (string) для поиска.

options
Опция поиска. Подробнее смотрите mb_regex_set_options().

Возвращаемые значения

Результирующая строка (string) в случае успешного выполнения или false в случае возникновения ошибки. Если string не является корректной строкой для текущей кодировки, будет возвращено null.

Список изменений

Версия | Описание
8.0.0 | Параметр options теперь может принимать значение null.
7.1.0 | Функция проверяет, является ли string корректной строкой для текущей кодировки.
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, PHP 8)

mb_eregi — Поиск соответствий регулярному выражению с поддержкой многобайтовых символов без учёта регистра

Описание

mb_eregi(string $pattern, string $string, array &$matches = null): bool

Выполняет поиск соответствий регулярному выражению с поддержкой многобайтных символы, нечувствительный к регистру.

Список параметров

pattern

Шаблон, текст регулярного выражения.

string

Строка (string), в которой производится поиск.

matches

Если найдены совпадения для подстроки pattern, заключённой в скобки, и функция вызвана с заданным третьим аргументом matches, эти совпадения будут сохранены в массиве matches. Если подобных совпадений не найдено, matches установится как пустой массив.

$matches[1] будет содержать первую (слева) подстроку заключённую в скобки; $regs[2] - вторую, и так далее. $matches[0] будет содержать копию всей найденной строки.

Возвращаемые значения

Возвращает true если совпадение шаблона pattern найдено в string, или false, если совпадения не найдены.

Список изменений

Версия | Описание
8.0.0 | Теперь эта функция возвращает true в случае успешного выполнения. Раньше, если был задан параметр matches и было найдено вхождение pattern в строке string, возвращалась длинна найденной подстроки в байтах. Если параметр matches не задавался или длина найденной подстроки равнялась 0, функция возвращала 1.
7.1.0 | Функцию mb_eregi() устанавливает значение matches равным пустому массиву, если ничего не найдено. Ранее, в подобном случае, matches оставался неизменным.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией 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, PHP 8)

mb_get_info — Получает внутренние настройки mbstring

Описание

mb_get_info(string $type = "all"): array|string|int|false

mb_get_info() возвращает внутренние параметры настроек mbstring.

Список параметров

type

Если type не указан, или указан как "all", будет возвращён массив (array), содержащий элементы "internal_encoding", "http_input", "http_output", "http_output_conv_mimetypes", "mail_charset", "mail_header_encoding", "mail_body_encoding", "illegal_chars", "encoding_translation", "language", "detect_order", "substitute_character" и "strict_detection".

Если type указан как "internal_encoding", "http_input", "http_output", "http_output_conv_mimetypes", "mail_charset", "mail_header_encoding", "mail_body_encoding", "illegal_chars", "encoding_translation", "language", "detect_order", "substitute_character" или "strict_detection", будет возвращена настройка указанного параметра.

Возвращаемые значения

Массив (array) информации о параметрах, если type не указан, в противном случае значение заданного параметра type или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | type больше не поддерживает "func_overload" и "func_overload_list".

Смотрите также

  • 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, PHP 8)

mb_http_input — Определение кодировки символов входных данных HTTP-запроса

Описание

mb_http_input(?string $type = null): array|string|false

Определяет кодировку входных данных HTTP-запроса.

Список параметров

type

Строка запроса задаёт тип входных данных. "G" для GET запроса, "P" для POST запроса, "C" для COOKIE, "S" для строк, "L" для списка и "I" для всего вместе (будет возвращён массив (array)). Если аргумент опущен, функция вернёт последний использовавшийся тип.

Возвращаемые значения

Наименование кодировки символов для заданного типа type или массив имён символьных кодировок, если type задан как "I". Если mb_http_input() не может обработать HTTP-запрос, она вернёт false.

Список изменений

Версия | Описание
8.0.0 | type теперь может задаваться как null.

Смотрите также

  • 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, PHP 8)

mb_http_output — Установка/получение кодировки символов вывода HTTP

Описание

mb_http_output(?string $encoding = null): string|bool

Установка/получение кодировки символов HTTP-вывода. Выходные данные после работы этой функции будут преобразованы из внутренней кодировки к encoding.

Список параметров

encoding

Если задан аргумент encoding, mb_http_output() устанавливает кодировку выходных символов HTTP в encoding.

Если аргумент encoding опущен, mb_http_output() возвращает текущую кодировку символов вывода HTTP.

Возвращаемые значения

Если аргумент encoding опущен, mb_http_output() возвращает текущую кодировку символов вывода HTTP. В противном случае, Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.

Смотрите также

  • 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, PHP 8)

mb_internal_encoding — Установка/получение внутренней кодировки скрипта

Описание

mb_internal_encoding(?string $encoding = null): string|bool

Установка/получение внутренней кодировки скрипта.

Список параметров

encoding

encoding - это имя кодировки, в которую будут преобразовываться входные данные HTTP-запроса, из которой будет конвертироваться HTTP-вывод, а также это кодировка по умолчанию для всех функций, работающих со строками, определёнными в модуле mbstring. Обратите внимание, что внутренняя кодировка полностью отличается от кодировки для многобайтовых регулярных выражений.

Возвращаемые значения

Если аргумент encoding задан, то Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. В этом случае не меняется кодировка символов для многобайтных регулярных выражений. Если аргумент encoding опущен, будет возвращено имя текущей внутренней кодировки.

Ошибки

Начиная с PHP 8.0.0, выбрасывается исключение ValueError, если значение параметра encoding является недопустимой кодировкой. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.
8.0.0 | Теперь выбрасывается исключение ValueError, если значение параметра encoding является недопустимой кодировкой. Ранее вместо этого выдавалась ошибка уровня E_WARNING.

Примеры

Пример #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, PHP 8)

mb_language — Устанавливает/получает текущий язык

Описание

mb_language(?string $language = null): string|bool

Устанавливает/получает текущий язык.

Список параметров

language

Используется для кодирования сообщений электронной почты. Допустимые языки перечислены в следующей таблице. mb_send_mail() использует параметр для кодирования электронной почты.

Язык | Кодировка | Кодирование | Псевдоним
Немецкий язык/de (German) | ISO-8859-15 | Quoted-Printable | Немецкий язык (Deutsch)
Английский язык/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
Украинский язык/ua | KOI8-U | Quoted-Printable
uni | UTF-8 | BASE64 | Универсальный
Упрощённый китайский язык/zh-cn | HZ | BASE64
Традиционный китайский язык/zh-tw | BIG-5 | BASE64

Возвращаемые значения

Если аргумент language задан и language имеет допустимое значение, функция возвращает true. В противном случае она вернёт false. Если language опущен или равен null, функция вернёт текущее значение языка в виде строки (string).

Список изменений

Версия | Описание
8.0.0 | Теперь параметр language может принимать значение null.

Смотрите также

  • mb_send_mail() - Отправка закодированного сообщения


Возвращает массив всех поддерживаемых кодировок

  • « mb_language
  • mb_ord »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Возвращает массив всех поддерживаемых кодировок

mb_list_encodings

(PHP 5, PHP 7, PHP 8)

mb_list_encodings — Возвращает массив всех поддерживаемых кодировок

Описание

mb_list_encodings(): 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_encoding_aliases() - Получает псевдонимы известного типа кодировки


Получает кодовую точку символа Unicode

  • « mb_list_encodings
  • mb_output_handler »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Получает кодовую точку символа Unicode

mb_ord

(PHP 7 >= 7.2.0, PHP 8)

mb_ord — Получает кодовую точку символа Unicode

Описание

mb_ord(string $string, ?string $encoding = null): int|false

Возвращает значение кодовой точки Unicode для данного символа.

Функция дополняет mb_chr().

Список параметров

string

Строка

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Кодовая точка Unicode для первого символа string или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.

Примеры

<?php
var_dump(mb_ord("A", "UTF-8"));
var_dump(mb_ord("??", "UTF-8"));
var_dump(mb_ord("\x80", "ISO-8859-1"));
var_dump(mb_ord("\x80", "Windows-1252"));
?>

Результат выполнения данного примера:

int(65)
int(128024)
int(128)
int(8364)

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • mb_chr() - Возвращает символ по значению кодовой точки Unicode
  • IntlChar::ord() - Получить код символ Unicode
  • ord() - Конвертирует первый байт строки в число от 0 до 255


Callback-функция, преобразующая кодировку символов в выходном буфере

  • « mb_ord
  • mb_parse_str »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Callback-функция, преобразующая кодировку символов в выходном буфере

mb_output_handler

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_output_handler — Callback-функция, преобразующая кодировку символов в выходном буфере

Описание

mb_output_handler(string $string, int $status): string

mb_output_handler() является
callback-функцией функции ob_start().
mb_output_handler() преобразует символы в выходном буфере
из внутренней кодировки в кодировку HTTP-вывода.

Список параметров

string

Содержимое выходного буфера.

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, PHP 8)

mb_parse_str — Разбор данных запросов GET/POST/COOKIE и установка значений глобальных переменных

Описание

mb_parse_str(string $string, array &$result): bool

Разбирает запросы GET/POST/COOKIE и устанавливает значения глобальных переменных. Так как PHP не работает с исходными данными POST/COOKIE, на данный момент его можно использовать только для работы с данными запроса GET. Функция разбирает строку URL, определяет кодировку, преобразует символы во внутреннюю кодировку скрипта и заносит значения переменных в массив result или в глобальные переменные.

Список параметров

string

Кодированные данные в URL.

result

Массив (array), содержащий декодированные данные и символы во внутренней кодировке скрипта.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Второй параметр стал обязательным.
7.2.0 | Вызов функции mb_parse_str() без второго параметра объявлено устаревшим.

Смотрите также

  • 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, PHP 8)

mb_preferred_mime_name — Получение набора символов MIME

Описание

mb_preferred_mime_name(string $encoding): string|false

Получает строку (string) набора символов MIME для заданной кодировки.

Список параметров

encoding

Кодировка, для которой выбирается набор символов.

Возвращаемые значения

MIME-набор символов charset в виде строки (string) для кодировки encoding или false, если для заданной кодировки 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, PHP 8)

mb_regex_encoding — Устанавливает/получает текущую кодировку для многобайтового регулярного выражения

Описание

mb_regex_encoding(?string $encoding = null): string|bool

Устанавливает/получает текущую кодировку для многобайтового регулярного выражения.

Список параметров

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Если задан параметр encoding, то Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. В этом случае не меняется внутренняя многобайтовая кодировка. Если параметр encoding не указан, то возвращается текущее имя кодировки символов для многобайтовых регулярных выражений.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.

Смотрите также

  • 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, PHP 8)

mb_regex_set_options — Установка/получение значений по умолчанию для настроек функций mbregex

Описание

mb_regex_set_options(?string $options = null): string

Устанавливает параметры по умолчанию, описанные в options, для функций регулярных выражений, работающих со строками в многобайтных кодировках.

Список параметров

options

Настройки, которые требуется задать. Это строка, в которой каждый символ отвечает за какую-то настройку. Для установки режима, его символ должен идти последним. Таким образом, можно задать только один режим, но несколько опций.

Настройки регулярных выражений
Настройка | Описание | Список изменений
i | Включение неоднозначных совпадений
x | Включает форму расширенного шаблона
m | '.' совпадения с переводами строк
s | '^' -> '\A', '$' -> '\Z'
p | То же, что и объединение m и s
l | Поиск совпадений, имеющих наибольшую длину
n | Игнорировать пустые совпадения
e | Вычисление кода результата функцией eval() | Объявлено устаревшим в PHP 7.1.0 и удалено в PHP 8.0.0

Замечание:

Настройка "e" не имеет эффекта при установке с помощью функции mb_regex_set_options(). Используйте её с помощью функции mb_ereg_replace() или mb_eregi_replace().

Синтаксические режимы регулярных выражений (может быть задан только один)
Режим | Описание
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 опущен или равен null, он возвращает строку (string), которая описывает текущие параметры.

Список изменений

Версия | Описание
8.0.0 | Если параметр options задан и не равен null, возвращаются предыдущие параметры. Ранее возвращались текущие параметры.
8.0.0 | Параметр options может принимать значение null.
8.0.0 | Опция "e" теперь выбрасывает ошибку ValueError.
7.1.0 | Опция "e" теперь выдаёт ошибку уровня ValueError.

Смотрите также

  • mb_split() - Разделение строк в многобайтных кодировках, используя регулярное выражение
  • mb_ereg() - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок
  • mb_eregi() - Поиск соответствий регулярному выражению с поддержкой многобайтовых символов без учёта регистра


Заменяет неправильно сформированные последовательности байтов символом-заменителем

  • « mb_regex_set_options
  • mb_send_mail »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Заменяет неправильно сформированные последовательности байтов символом-заменителем

mb_scrub

(PHP 7 >= 7.2.0, PHP 8)

mb_scrub — Заменяет неправильно сформированные последовательности байтов символом-заменителем

Описание

mb_scrub(string $string, ?string $encoding = null): string

Выполняет преобразование набора символов из указанной кодировки или кодировки по умолчанию, если кодировка не была указана, в ту же кодировку. В результате все недопустимые последовательности байтов заменяются символом-заменителем.

Список параметров

string

Входные данные в виде строки.

encoding

Кодировка, используемая для интерпретации параметра string. Если значение опущено или null, то будет использоваться значение mbstring.internal_encoding, если она установлена, иначе будет использоваться значение default_charset.

Возвращаемые значения

Функция возвращает результат в виде строки (string) с заменой недопустимых последовательностей байтов.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.


Отправка закодированного сообщения

  • « mb_scrub
  • mb_split »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Отправка закодированного сообщения

mb_send_mail

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_send_mail — Отправка закодированного сообщения

Описание

mb_send_mail(
string $to,
string $subject,
string $message,
array|string $additional_headers = [],
?string $additional_params = 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_params

Значением additional_params является параметр командной строки MTA. Он полезен для задания корректного заголовка Return-Path при использовании функции sendmail.

Этот параметр экранируется функцией escapeshellcmd() автоматически, чтобы предотвратить запуск других команд. escapeshellcmd() предотвращает запуск команд, но допускает добавление дополнительных аргументов, поэтому для обеспечения безопасности нужно проверять эту опцию.

Так как escapeshellcmd() применяется автоматически, то нельзя использовать некоторые символы, допустимые в email-адресах. Нельзя использовать функцию mail() для программ, которые требуют использование таких символов.

Пользователь, под которым запущен веб-сервер, должен быть добавленным в доверенные пользователи в конфигурации sendmail, чтобы предотвратить добавление заголовка X-Warning в сообщение, если отправитель письма задан с помощью этого параметра (-f). Для пользователей sendmail, это файл /etc/mail/trusted-users.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

8.0.0 | Теперь параметр additional_params может принимать значение null.
Версия | Описание
7.2.0 | Теперь в параметр additional_headers можно передавать массив.

Смотрите также

  • mail() - Отправляет электронную почту
  • mb_encode_mimeheader() - Кодирует строку для MIME-заголовка
  • mb_language() - Устанавливает/получает текущий язык


Разделение строк в многобайтных кодировках, используя регулярное выражение

  • « mb_send_mail
  • mb_str_pad »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Разделение строк в многобайтных кодировках, используя регулярное выражение

mb_split

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_split — Разделение строк в многобайтных кодировках, используя регулярное выражение

Описание

mb_split(string $pattern, string $string, int $limit = -1): array|false

Разделяет многобайтную строку string, используя регулярное выражение pattern, и возвращает массив (array).

Список параметров

pattern

Шаблон регулярного выражения.

string

Разбиваемая строка (string).

limit
Если необязательный аргумент limit задан, функция разобьёт строку не более, чем на limit частей.

Возвращаемые значения

Результат разбиения в виде массива (array) или false в случае возникновения ошибки.

Примечания

Замечание:

Кодировка символов, указанная функцией mb_regex_encoding(), будет по умолчанию использована для данной функции.

Смотрите также

  • mb_regex_encoding() - Устанавливает/получает текущую кодировку для многобайтового регулярного выражения
  • mb_ereg() - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок


Дополняет мультибайтовую строку другой мультибайтовой строкой до заданной длины

  • « mb_split
  • mb_str_split »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Дополняет мультибайтовую строку другой мультибайтовой строкой до заданной длины

mb_str_pad

(PHP 8 >= PHP 8.3.0)

mb_str_pad — Дополняет мультибайтовую строку другой мультибайтовой строкой до заданной длины

Описание

mb_str_pad(
string $string,
int $length,
string $pad_string = " ",
int $pad_type = STR_PAD_RIGHT,
?string $encoding = null
): string

Эта функция возвращает строку string, дополненную слева, справа или с обеих сторон до заданной длины, где длина измеряется в кодовых точках Юникода. Если необязательный аргумент pad_string не передан, то строка string будет дополнена пробелами, иначе она будет дополнена символами параметра pad_string до нужной длины.

Список параметров

string

Входная строка.

length

Если значение параметра length отрицательно, меньше или равно длине входной строки, то дополнения не происходит и возвращается исходная строка string.

pad_string

Замечание:

Строка pad_string может быть урезана, если необходимое количество дополняемых символов не делится нацело на длину строки pad_string.

pad_type

Необязательный аргумент pad_type, возможные значения: STR_PAD_RIGHT, STR_PAD_LEFT, или STR_PAD_BOTH. По умолчанию будет использована константа STR_PAD_RIGHT.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Возвращает дополненную строку.

Примеры

Пример #1 Пример использования mb_str_pad()

<?php
var_dump(mb_str_pad('??', 6, '???', STR_PAD_RIGHT)); // string(18) "??????"
var_dump(mb_str_pad('??', 6, '???', STR_PAD_LEFT)); // string(18) "??????"
var_dump(mb_str_pad('??', 6, '???', STR_PAD_BOTH)); // string(18) "??????"

var_dump(mb_str_pad("??", 3, "?", STR_PAD_LEFT)); // string(10) "????"
?>


Если задана многобайтовая строка возвращает массив символов

  • « mb_str_pad
  • mb_strcut »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Если задана многобайтовая строка возвращает массив символов

mb_str_split

(PHP 7 >= 7.4.0, PHP 8)

mb_str_split — Если задана многобайтовая строка возвращает массив символов

Описание

mb_str_split(string $string, int $length = 1, ?string $encoding = null): array

Функция вернёт массив строк, это версия str_split() с поддержкой кодировок переменного размера символов, а также кодировок фиксированного размера из 1, 2 или 4-байтовых символов. Если указан параметр length, строка разбивается на куски указанной длины в символах (не байтах). Может быть указан необязательный параметр encoding, это хорошая практика.

Список параметров

string

Строка (string) для разделения на символы или куски.

length

Если указано, каждый элемент возвращаемого массива будет состоять из нескольких символов вместо одного символа.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Строка, указывающая одну из поддерживаемых кодировок.

Возвращаемые значения

mb_str_split() возвращает массив строк.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.
8.0.0 | Функция больше не возвращает false в случае неудачи.

Смотрите также

  • str_split() - Преобразует строку в массив


Получение части строки

  • « mb_str_split
  • mb_strimwidth »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Получение части строки

mb_strcut

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strcut — Получение части строки

Описание

mb_strcut(
string $string,
int $start,
?int $length = null,
?string $encoding = null
): string

mb_strcut() вырезает подстроку из строки также, как mb_substr(), но оперирует байтами вместо символов. Если начало вырезаемой части попадает между байтами одного символа, функция вырежет подстроку, начиная с первого байта этого символа. Это существенное отличие от substr(), которая просто вырежет подстроку, начиная с середины символа, и нарушит тем самым последовательность байт в строке.

Список параметров

string

Исходная строка.

start

Если start не отрицательное, возвращённая строка начнётся с позиции start в байтах от начала string, начальный байт имеет индекс 0. К примеру, в строке 'abcdef', байт в позиции 0 - это 'a', байт в позиции 2 - 'c' и т.д.

Если start отрицательное, возвращаемая строка будет начинаться с байта start с обратным отсчётом от конца string. Однако, если величина отрицательного start превышает длину строки, возвращаемая часть начнётся с начала string.

length

Длина подстроки в байтах bytes. Если не указана, то передаётся NULL и вырезаются все байты до конца строки.

Если length отрицательное, возвращаемая строка будет заканчиваться байтом length с обратным отсчётом от конца string. Однако если величина отрицательного значения length превышает число символов после позиции start, будет возвращена пустая строка.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

mb_strcut() возвращает часть строки string, заданную аргументами start и length.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.

Смотрите также

  • mb_substr() - Возвращает часть строки
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта


Получает строку, обрезанную до заданной ширины

  • « mb_strcut
  • mb_stripos »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Получает строку, обрезанную до заданной ширины

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strimwidth — Получает строку, обрезанную до заданной ширины

Описание

mb_strimwidth(
string $string,
int $start,
int $width,
string $trim_marker = "",
?string $encoding = null
): string

Обрезает строку (string), переданную в параметр string, до заданой в параметре width ширины символов, где символы половинной ширины рассчитываются как 1, а символы полной ширины — как 2. Подробнее о ширине восточноазиатских символов рассказано в приложении » http://www.unicode.org/reports/tr11/.

Список параметров

string

Исходная строка.

start

Смещение от начала строки. Количество символов от начала строки (первый символ стоит в позиции 0). Если указано отрицательное число, то отсчёт будет идти с конца строки.

width

Ширина, до которой необходимо обрезать строку. Если задано отрицательное значение ширины, отсчёт будет идти с конца строки.

Замечание:

Передача отрицательного значения ширины устарела с PHP 8.3.0.

trim_marker

Строка, которая заместит конец обрезанной строки.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Обрезанная строка. Если задан четвёртый аргумент trim_marker, то его значением замещаются последние символы строки, так чтобы суммарный размер был не более width.

Список изменений

Версия | Описание
8.3.0 | Передача отрицательного значения в параметр width функции mb_strimwidth() устарела.
8.0.0 | Теперь параметр encoding может принимать значение null.
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, PHP 8)

mb_stripos — Регистронезависимый поиск позиции первого вхождения одной строки в другую

Описание

mb_stripos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

mb_stripos() возвращает позицию первого вхождения строки needle в строке haystack. В отличие от mb_strpos(), mb_stripos() не чувствительна к регистру символов. Если строка needle не найдена, функция вернёт false.

Список параметров

haystack

Строка, в которой производится поиск вхождений строки needle

needle

Строка, поиск которой осуществляется в строке haystack

offset

Позиция в строке haystack, с которой начинается поиск вхождений. Если значение отрицательно, отсчёт идёт с конца строки.

encoding

Кодировка символов строк. Если не задана, будет использована внутренняя кодировка скрипта.

Возвращаемые значения

Возвращает позицию первого вхождения строки needle в строке haystack либо false, если needle не найдена.

Список изменений

Версия | Описание
8.0.0 | needle теперь принимает пустую строку.
8.0.0 | Теперь параметр encoding может принимать значение null.
7.1.0 | Добавлена поддержка отрицательных значений offset.

Смотрите также

  • stripos() - Возвращает позицию первого вхождения подстроки без учёта регистра
  • strpos() - Возвращает позицию первого вхождения подстроки
  • mb_strpos() - Поиск позиции первого вхождения одной строки в другую


Находит первое вхождение подстроки в строке без учёта регистра

  • « mb_stripos
  • mb_strlen »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Находит первое вхождение подстроки в строке без учёта регистра

mb_stristr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_stristr — Находит первое вхождение подстроки в строке без учёта регистра

Описание

mb_stristr(
string $haystack,
string $needle,
bool $before_needle = false,
?string $encoding = null
): string|false

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 не найдена.

Список изменений

Версия | Описание
8.0.0 | needle теперь принимает пустую строку.
8.0.0 | Теперь параметр encoding может принимать значение null.

Смотрите также

  • stristr() - Регистронезависимый вариант функции strstr
  • strstr() - Находит первое вхождение подстроки
  • mb_strstr() - Находит первое вхождение подстроки в строке


Получает длину строки

  • « mb_stristr
  • mb_strpos »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Получает длину строки

mb_strlen

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strlen — Получает длину строки

Описание

mb_strlen(string $string, ?string $encoding = null): int

Получает длину строки (string).

Список параметров

string

Строка (string), для которой измеряется длина.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Возвращает количество символов в строке (string) string, имеющих кодировку символов encoding. Многобайтовый символ вычисляется как 1.

Ошибки

Если кодировка неизвестна, генерируется ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • grapheme_strlen() - Получает длину строки в единицах графемы
  • iconv_strlen() - Возвращает количество символов в строке
  • strlen() - Возвращает длину строки


Поиск позиции первого вхождения одной строки в другую

  • « mb_strlen
  • mb_strrchr »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Поиск позиции первого вхождения одной строки в другую

mb_strpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strpos — Поиск позиции первого вхождения одной строки в другую

Описание

mb_strpos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

Ищет позицию первого вхождения одной строки string в другую строку string.

Выполняет безопасную с точки зрения многобайтных кодировок операцию strpos(), которая опирается на число символов в строке. Первый символ стоит на позиции 0, позиция второго 1 и так далее.

Список параметров

haystack

Строка string в которой производится поиск.

needle

Строка, поиск которой производится в строке haystack. В отличие от strpos(), числовые значения не применяются в качестве порядковых номеров символов.

offset

Смещение начала поиска. Если не задан, используется 0. Если значение отрицательно, отсчёт идёт с конца строки.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Возвращает число - позицию первого вхождения строки needle в строку haystack string. Если строка needle не найдена, функция вернёт false.

Список изменений

Версия | Описание
8.0.0 | needle теперь принимает пустую строку.
8.0.0 | Теперь параметр encoding может принимать значение null.
7.1.0 | Добавлена поддержка отрицательных значений offset.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • strpos() - Возвращает позицию первого вхождения подстроки


Поиск последнего вхождения одной строки в другую

  • « mb_strpos
  • mb_strrichr »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Поиск последнего вхождения одной строки в другую

mb_strrchr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strrchr — Поиск последнего вхождения одной строки в другую

Описание

mb_strrchr(
string $haystack,
string $needle,
bool $before_needle = false,
?string $encoding = null
): string|false

mb_strrchr() ищет последнее вхождение строки needle в строке haystack и возвращает часть строки haystack. Если needle не найдена, функция возвращает false.

Список параметров

haystack

Строка, в которой производится поиск вхождения needle

needle

Строка, поиск которой производится в строке haystack

before_needle

Определяет, какую часть строки haystack вернуть в качестве результата. Если передаётся true, функция вернёт часть строки haystack с начала до позиции последнего вхождения needle. Если передаётся false, будет возвращена часть haystack от позиции последнего вхождения needle до конца строки.

encoding

Кодировка строк. Если не задана, будет использована внутренняя кодировка скрипта.

Возвращаемые значения

Возвращает часть строки haystack либо false, если needle не найдена.

Список изменений

Версия | Описание
8.0.0 | needle теперь принимает пустую строку.
8.0.0 | Теперь параметр encoding может принимать значение null.

Смотрите также

  • strrchr() - Находит последнее вхождение символа в строке
  • mb_strstr() - Находит первое вхождение подстроки в строке
  • mb_strrichr() - Поиск последнего вхождения одной строки в другую, нечувствительный к регистру


Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

  • « mb_strrchr
  • mb_strripos »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

mb_strrichr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strrichr — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

Описание

mb_strrichr(
string $haystack,
string $needle,
bool $before_needle = false,
?string $encoding = null
): string|false

mb_strrichr() ищет последнее вхождение строки needle в строке haystack и возвращает часть строки haystack. В отличие от mb_strrchr(), mb_strrichr() не чувствительна к регистру символов. Если needle не найдена, функция возвращает false.

Список параметров

haystack

Строка, в которой производится поиск вхождения needle

needle

Строка, поиск которой производится в строке haystack

before_needle

Определяет, какую часть строки haystack вернуть в качестве результата. Если передаётся true, функция вернёт часть строки haystack с начала до позиции последнего вхождения needle. Если передаётся false, будет возвращена часть haystack от позиции последнего вхождения needle до конца строки.

encoding

Кодировка строк. Если не задана, будет использована внутренняя кодировка скрипта.

Возвращаемые значения

Возвращает часть строки haystack либо false, если needle не найдена.

Список изменений

Версия | Описание
8.0.0 | needle теперь принимает пустую строку.
8.0.0 | Теперь параметр encoding может принимать значение null.

Смотрите также

  • mb_stristr() - Находит первое вхождение подстроки в строке без учёта регистра
  • mb_strrchr() - Поиск последнего вхождения одной строки в другую


Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

  • « mb_strrichr
  • mb_strrpos »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

mb_strripos

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strripos — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

Описание

mb_strripos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

mb_strripos() выполняет безопасную с точки зрения многобайтных кодировок операцию strripos(), основываясь на количестве символов. Позиция строки needle рассчитывается с начала строки haystack. Позиция первого символа 0. Второго символа 1. В отличие от mb_strrpos(), mb_strripos() не чувствительна к регистру.

Список параметров

haystack

Строка, в которой производится поиск вхождения needle

needle

Строка, поиск которой производится в строке haystack

offset

Позиция в строке haystack, с которой начинается поиск вхождений

encoding

Кодировка символов строк. Если на задана, будет использована внутренняя кодировка скрипта.

Возвращаемые значения

Возвращает позицию последнего вхождения строки needle в строке haystack либо false, если needle не найдена.

Список изменений

Версия | Описание
8.0.0 | needle теперь принимает пустую строку.
8.0.0 | Теперь параметр encoding может принимать значение null.

Смотрите также

  • strripos() - Возвращает позицию последнего вхождения подстроки без учёта регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • mb_strrpos() - Поиск позиции последнего вхождения одной строки в другую


Поиск позиции последнего вхождения одной строки в другую

  • « mb_strripos
  • mb_strstr »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Поиск позиции последнего вхождения одной строки в другую

mb_strrpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strrpos — Поиск позиции последнего вхождения одной строки в другую

Описание

mb_strrpos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

Выполняет безопасную с точки зрения многобайтных кодировок операцию strrpos() , основываясь на количестве символов. Позиция строки needle рассчитывается с начала строки haystack. Позиция первого символа 0. Второго символа 1.

Список параметров

haystack

Строка (string), в которой производится поиск вхождения needle.

needle

Строка (string), поиск которой производится в строке haystack.

offset
Если аргумент задан, поиск вхождения будет начинаться с позиции offset в строке (string). Если передано отрицательное значение, операция поиска остановится на позиции строки (string) offset, отсчитываемой с конца строки.
encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Возвращает позицию последнего вхождения строки needle в строке (string) haystack либо false, если needle не найдена.

Список изменений

Версия | Описание
8.0.0 | needle теперь принимает пустую строку.
8.0.0 | Передача encoding в качестве третьего аргумента вместо offset была удалена.
8.0.0 | Теперь параметр encoding может принимать значение null.

Смотрите также

  • mb_strpos() - Поиск позиции первого вхождения одной строки в другую
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке


Находит первое вхождение подстроки в строке

  • « mb_strrpos
  • mb_strtolower »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Находит первое вхождение подстроки в строке

mb_strstr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strstr — Находит первое вхождение подстроки в строке

Описание

mb_strstr(
string $haystack,
string $needle,
bool $before_needle = false,
?string $encoding = null
): string|false

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 не найдена.

Список изменений

Версия | Описание
8.0.0 | needle теперь принимает пустую строку.
8.0.0 | Теперь параметр encoding может принимать значение null.

Смотрите также

  • stristr() - Регистронезависимый вариант функции strstr
  • strstr() - Находит первое вхождение подстроки
  • mb_stristr() - Находит первое вхождение подстроки в строке без учёта регистра


Приведение строки к нижнему регистру

  • « mb_strstr
  • mb_strtoupper »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Приведение строки к нижнему регистру

mb_strtolower

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_strtolower — Приведение строки к нижнему регистру

Описание

mb_strtolower(string $string, ?string $encoding = null): string

Возвращает строку string, буквенные символы в которой приведены к нижнему регистру.

Список параметров

string

Исходная строка (string).

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

string, буквы в которой приведены к нижнему регистру.

Примеры

Пример #1 Пример использования mb_strtolower()

<?php
$str = "У Мэри Был Маленький Ягнёнок и Она Его Очень ЛЮБИЛА";
$str = mb_strtolower($str);
echo $str; // Выведет у мэри был маленький ягнёнок и она его очень любила
?>

Пример #2 Пример использования mb_strtolower() с нелатинскими буквами

<?php
$str = "??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????";
$str = mb_strtolower($str, 'UTF-8');
echo $str; // Выведет ??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????
?>

Примечания

В отличие от strtolower(), то, что символ является буквой, определяется на основании свойств символа Юникода. Таким образом, на поведение функции не влияют региональные настройки системы, а также функция может преобразовывать символы, имеющие буквенные особенности, такие как а-умляут (a).

За дополнительной информацией о свойствах Юникода обращайтесь в » http://www.unicode.org/reports/tr21/.

Смотрите также

  • mb_strtoupper() - Приведение строки к верхнему регистру
  • mb_convert_case() - Производит смену регистра символов в строке
  • strtolower() - Преобразует строку в нижний регистр


Приведение строки к верхнему регистру

  • « mb_strtolower
  • mb_strwidth »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Приведение строки к верхнему регистру

mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_strtoupper — Приведение строки к верхнему регистру

Описание

mb_strtoupper(string $string, ?string $encoding = null): string

Возвращает строку string, буквенные символы в которой приведены к верхнему регистру.

Список параметров

string

Исходная строка (string).

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

string, буквы в которой приведены к верхнему регистру.

Примеры

Пример #1 Пример использования mb_strtoupper()

<?php
$str = "У Мэри Был Маленький Ягнёнок и Она Его Очень ЛЮБИЛА";
$str = mb_strtoupper($str);
echo $str; // Выведет У МЭРИ БЫЛ МАЛЕНЬКИЙ ЯГНЕНОК И ОНА ЕГО ОЧЕНЬ ЛЮБИЛА
?>

Пример #2 Пример использования mb_strtoupper() с нелатинскими буквами

<?php
$str = "??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????";
$str = mb_strtoupper($str, 'UTF-8');
echo $str; // Выведет ??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????
?>

Примечания

В отличие от strtoupper(), то, что символ является буквой, определяется на основании свойств символа Юникода. Таким образом, на поведение функции не влияют региональные настройки системы, а также функция может преобразовывать символы, имеющие буквенные особенности, такие как а-умляут (a).

За дополнительной информацией о свойствах Юникода обращайтесь в » http://www.unicode.org/reports/tr21/.

Смотрите также

  • mb_strtolower() - Приведение строки к нижнему регистру
  • mb_convert_case() - Производит смену регистра символов в строке
  • strtoupper() - Преобразует строку в верхний регистр


Возвращает ширину строки

  • « mb_strtoupper
  • mb_substitute_character »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Возвращает ширину строки

mb_strwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strwidth — Возвращает ширину строки

Описание

mb_strwidth(string $string, ?string $encoding = null): int

Возвращает ширину строки (string) string, где символы половинной ширины считаются 1, а символы полной ширины считаются 2. Смотрите » http://www.unicode.org/reports/tr11/ для получения подробной информации о ширине символов Восточной Азии.

Символы полной ширины: 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. Все остальные символы относятся к символам полуширины.

Список параметров

string

Исходная строка (string).

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Ширина строки (string) string.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.

Примеры

Пример #1 Пример использования mb_strwidth()

<?php
var_dump(
mb_strwidth('a'), // латинская строчная буква а
mb_strwidth("\u{ff41}") // латинская строчная буква а полной ширины
);
?>

Результат выполнения данного примера:

int(1)
int(2)

Смотрите также

  • mb_strimwidth() - Получает строку, обрезанную до заданной ширины
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта


Установить/получить символ замены

  • « mb_strwidth
  • mb_substr_count »
  • PHP Manual
  • Функции для работы с многобайтовыми строками
  • Установить/получить символ замены

mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_substitute_character — Установить/получить символ замены

Описание

mb_substitute_character(string|int|null $substitute_character = null): string|int|bool

Задаёт замещающий символ на случай, когда кодировка входных данных задана неверно или код символа не существует в кодировке выходных данных. Недопустимые символы могут быть заменены на "none" (нет вывода), строку (string) или числовое значение (int) (код символа Юникода).

Эта настройка влияет на поведение следующих функций:
mb_convert_encoding(),
mb_convert_variables(),
mb_output_handler(),
и mb_send_mail().

Список параметров

substitute_character

Задаёт значение Юникода в виде числа (int) или одной из следующих строк string:

  • "none" : нет вывода
  • "long" : код конечного (в выходной кодировке) символа (Пример: U+3000, JIS+7E7E)
  • "entity" : сущность конечного (в выходной кодировке) символа (Пример: &#x200;)

Возвращаемые значения

Если аргумент substitute_character задан, функция вернёт true в случае успешного выполнения, false в противном случае. Если substitute_character не задан, будет возвращена текущая настройка.

Список изменений

Версия | Описание
8.0.0 | Передача пустой строки в substitute_character больше не поддерживается; вместо этого используйте "none".
8.0.0 | Теперь параметр encoding может принимать значение null.

Примеры

Пример #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, PHP 8)

mb_substr_count — Возвращает количество вхождений подстроки

Описание

mb_substr_count(string $haystack, string $needle, ?string $encoding = null): int

Подсчитывает, сколько раз подстрока needle встречается в строке haystack.

Список параметров

haystack

Строка (string) для проверки

needle

Строка (string) для поиска

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Количество вхождений подстроки needle в строку haystack.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.

Примеры

Пример #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, PHP 8)

mb_substr — Возвращает часть строки

Описание

mb_substr(
string $string,
int $start,
?int $length = null,
?string $encoding = null
): string

Корректно выполняет substr() для многобайтовых кодировок, учитывая количество символов. Позиция отсчитывается от начала string. Позиция первого символа - 0, второго - 1 и т.д.

Список параметров

string

Исходная строка для получения подстроки.

start

Если start неотрицательный, возвращённая строка начнётся с позиции start от начала строки string, начальный символ имеет индекс 0. К примеру, в строке 'abcdef', символ в позиции 0 - это 'a', символ в позиции 2 - 'c' и т.д.

Если start отрицательный, возвращаемая строка начнётся отсчитывая start символов с конца string.

length

Максимальное количество символов возвращаемой из string подстроки. Если не указан или равен NULL - извлекаются все символы до конца строки.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

mb_substr() возвращает часть строки string, заданную параметрами start и length.

Список изменений

Версия | Описание
8.0.0 | Теперь параметр encoding может принимать значение null.

Смотрите также

  • 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 — Предлагает варианты исправления слова
  • PSpell\Dictionary — Класс PSpell\Dictionary
  • PSpell\Config — Класс PSpell\Config


Введение

Функции позволяют проверять правописание слова и предлагают варианты исправления.


Требования

Для того, чтобы скомпилировать 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 8.1.0 в модуле использовалось два типа ресурсов. Первый - идентификатор ссылки словаря, второй - ресурс, содержащий конфигурацию pspell.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

PSPELL_FAST (int)
PSPELL_NORMAL (int)
PSPELL_BAD_SPELLERS (int)
PSPELL_RUN_TOGETHER (int)


Функции 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, PHP 8)

pspell_add_to_personal — Добавляет слово в персональный список слов

Описание

pspell_add_to_personal(PSpell\Dictionary $dictionary, string $word): bool

pspell_add_to_personal() добавляет слово в персональный список слов. Если вы использовали pspell_new_config() вместе с pspell_config_personal() для открытия словаря, вы можете сохранить список слов позднее с помощью pspell_save_wordlist().

Список параметров

dictionary

Экземпляр PSpell\Dictionary.

word

Добавляемое слово.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр dictionary теперь ожидает экземпляр PSpell\Dictionary; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell, "Vlad");
pspell_save_wordlist($pspell);
?>

Примечания

Замечание:

Функция не будет работать, если у вас нет 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, PHP 8)

pspell_add_to_session — Добавляет слово в список слов в текущей сессии

Описание

pspell_add_to_session(PSpell\Dictionary $dictionary, string $word): bool

pspell_add_to_session() добавляет слово в список слов, ассоциированный с текущей сессией. Эта функция очень похожа на функцию pspell_add_to_personal()

Список параметров

dictionary

Экземпляр PSpell\Dictionary.

word

Добавляемое слово.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр dictionary теперь ожидает экземпляр PSpell\Dictionary; ранее ожидался ресурс (resource).


Проверяет слово

  • « pspell_add_to_session
  • pspell_clear_session »
  • PHP Manual
  • Функции Pspell
  • Проверяет слово

pspell_check

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_check — Проверяет слово

Описание

pspell_check(PSpell\Dictionary $dictionary, string $word): bool

pspell_check() проверяет орфографию слова.

Список параметров

dictionary

Экземпляр PSpell\Dictionary.

word

Проверяемое слово.

Возвращаемые значения

Возвращает true, если орфография верна, в противном случае возвращает false.

Список изменений

Версия | Описание
8.1.0 | Параметр dictionary теперь ожидает экземпляр PSpell\Dictionary; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования pspell_check()

<?php
$pspell = pspell_new("en");

if (pspell_check($pspell, "testt")) {
echo "Это верное написание";
} else {
echo "К сожалению, неправильное написание";
}
?>


Очищает текущую сессию

  • « pspell_check
  • pspell_config_create »
  • PHP Manual
  • Функции Pspell
  • Очищает текущую сессию

pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_clear_session — Очищает текущую сессию

Описание

pspell_clear_session(PSpell\Dictionary $dictionary): bool

pspell_clear_session() очищает текущую сессию. Текущий список слов очищается, и, например, если попытаться сохранить его с помощью pspell_save_wordlist(), ничего не произойдёт.

Список параметров

dictionary

Экземпляр PSpell\Dictionary.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр dictionary теперь ожидает экземпляр PSpell\Dictionary; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell, "Vlad");
pspell_clear_session($pspell);
pspell_save_wordlist($pspell); //Слово "Vlad" не будет сохранено
?>


Создаёт конфигурацию, используемую для открытия словаря

  • « pspell_clear_session
  • pspell_config_data_dir »
  • PHP Manual
  • Функции Pspell
  • Создаёт конфигурацию, используемую для открытия словаря

pspell_config_create

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_create — Создаёт конфигурацию, используемую для открытия словаря

Описание

pspell_config_create(
string $language,
string $spelling = "",
string $jargon = "",
string $encoding = ""
): PSpell\Config

Создаёт конфигурацию, используемую для открытия словаря.

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\Config.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр PSpell\Config; ранее возвращался ресурс (resource).

Примеры

Пример #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 = pspell_new_personal($pspell_config, "en");
?>


Расположение файлов с языковыми данными

  • « pspell_config_create
  • pspell_config_dict_dir »
  • PHP Manual
  • Функции Pspell
  • Расположение файлов с языковыми данными

pspell_config_data_dir

(PHP 5, PHP 7, PHP 8)

pspell_config_data_dir — Расположение файлов с языковыми данными

Описание

pspell_config_data_dir(PSpell\Config $config, string $directory): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр config теперь ожидает экземпляр PSpell\Config; ранее ожидался ресурс (resource).


Расположение основного списка слов

  • « pspell_config_data_dir
  • pspell_config_ignore »
  • PHP Manual
  • Функции Pspell
  • Расположение основного списка слов

pspell_config_dict_dir

(PHP 5, PHP 7, PHP 8)

pspell_config_dict_dir — Расположение основного списка слов

Описание

pspell_config_dict_dir(PSpell\Config $config, string $directory): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр config теперь ожидает экземпляр PSpell\Config; ранее ожидался ресурс (resource).


Игнорирует слова длиной менее N символов

  • « pspell_config_dict_dir
  • pspell_config_mode »
  • PHP Manual
  • Функции Pspell
  • Игнорирует слова длиной менее N символов

pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_ignore — Игнорирует слова длиной менее N символов

Описание

pspell_config_ignore(PSpell\Config $config, int $min_length): bool

pspell_config_ignore() должна быть использована для конфигурации до вызова pspell_new_config(). Эта функция позволяет пропускать короткие слова при проверке орфографии.

Список параметров

config

Экземпляр PSpell\Config.

min_length

Слова длиной менее min_length символов будут пропущены.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр config теперь ожидает экземпляр PSpell\Config; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования pspell_config_ignore()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_ignore($pspell_config, 5);
$pspell = pspell_new_config($pspell_config);
pspell_check($pspell, "abcd"); //Сообщение об ошибке не будет сгенерировано
?>


Изменяет режим количества возвращаемых вариантов исправления

  • « pspell_config_ignore
  • pspell_config_personal »
  • PHP Manual
  • Функции Pspell
  • Изменяет режим количества возвращаемых вариантов исправления

pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_mode — Изменяет режим количества возвращаемых вариантов исправления

Описание

pspell_config_mode(PSpell\Config $config, int $mode): bool

pspell_config_mode() должна быть использована для конфигурации до вызова pspell_new_config(). Эта функция определяет, сколько вариантов исправления будет возвращать функция pspell_suggest().

Список параметров

config

Экземпляр PSpell\Config.

mode

Параметр mode - это режим, в котором будет работать проверка орфографии. Доступно несколько режимов:

  • PSPELL_FAST - Быстрый режим (наименьшее число вариантов исправления)
  • PSPELL_NORMAL - Нормальный режим (больше вариантов исправления)
  • PSPELL_BAD_SPELLERS - Медленный режим (много вариантов исправления)

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр config теперь ожидает экземпляр PSpell\Config; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования pspell_config_mode()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell = pspell_new_config($pspell_config);
pspell_check($pspell, "thecat");
?>


Устанавливает файл, содержащий персональный список слов

  • « pspell_config_mode
  • pspell_config_repl »
  • PHP Manual
  • Функции Pspell
  • Устанавливает файл, содержащий персональный список слов

pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_personal — Устанавливает файл, содержащий персональный список слов

Описание

pspell_config_personal(PSpell\Config $config, string $filename): bool

Устанавливает файл, содержащий персональный список слов. Персональный список слов будет загружен и использован в дополнение к стандартному после того, как вы вызовете pspell_new_config(). Это тот же самый файл, в который функция pspell_save_wordlist() сохранит персональный список слов.

pspell_config_personal() должна быть использована для конфигурации до вызова pspell_new_config().

Список параметров

config

Экземпляр PSpell\Config.

filename

Персональный список слов. Если файл не существует, он будет создан. Файл должен быть доступен для записи любому, кто запускает PHP (например, nobody).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр config теперь ожидает экземпляр PSpell\Config; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования pspell_config_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell = pspell_new_config($pspell_config);
pspell_check($pspell, "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, PHP 8)

pspell_config_repl — Устанавливает файл, содержащий замещающие пары

Описание

pspell_config_repl(PSpell\Config $config, string $filename): bool

Устанавливает файл, содержащий замещающие пары.

Замещающие пары повышают качество проверки орфографии. Когда слово написано с ошибками, а правильный вариант не найден в списке, pspell_store_replacement() может быть использована для того, чтобы сохранить замещающую пару, а pspell_save_wordlist() - чтобы сохранить список слов вместе с замещающими парами.

pspell_config_repl() должна быть использована для конфигурации до вызова pspell_new_config().

Список параметров

config

Экземпляр PSpell\Config.

filename

Файл должен быть доступен для записи любому, кто запускает PHP (например, nobody).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр config теперь ожидает экземпляр PSpell\Config; ранее ожидался ресурс (resource).

Примеры

Пример #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 = pspell_new_config($pspell_config);
pspell_check($pspell, "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, PHP 8)

pspell_config_runtogether — Рассматривает объединённые слова как правильные сложные слова

Описание

pspell_config_runtogether(PSpell\Config $config, bool $allow): bool

Функция определяет, будут ли объединённые слова рассматриваться как правильные сложные слова. Так, "thecat" будет считаться правильным сложным словом, хотя между артиклем и словом должен быть пробел. Изменение этой установки влияет только на результаты, возвращаемые функцией pspell_check(); pspell_suggest() будет продолжать выдавать варианты исправления.

pspell_config_runtogether() должна быть использована для конфигурации до вызова pspell_new_config().

Список параметров

config

Экземпляр PSpell\Config.

allow

true, если объединённые слова должны рассматриваться как правильные сложные слова, false в противном случае.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр config теперь ожидает экземпляр PSpell\Config; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования pspell_config_runtogether()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_runtogether($pspell_config, true);
$pspell = pspell_new_config($pspell_config);
pspell_check($pspell, "thecat");
?>


Определяет, сохранять ли список замещающих пар вместе со списком слов

  • « pspell_config_runtogether
  • pspell_new_config »
  • PHP Manual
  • Функции Pspell
  • Определяет, сохранять ли список замещающих пар вместе со списком слов

pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_config_save_repl — Определяет, сохранять ли список замещающих пар вместе со списком слов

Описание

pspell_config_save_repl(PSpell\Config $config, bool $save): bool

pspell_config_save_repl() определяет, будет ли pspell_save_wordlist() сохранять замещающие пары вместе со списком слов. Обычно нет необходимости использовать эту функцию, поскольку, если используется pspell_config_repl(), замещающие пары будут сохранены pspell_save_wordlist() в любом случае, и, если она не используется, замещающие пары не будут сохраняться.

pspell_config_save_repl() должна быть использована для конфигурации до вызова pspell_new_config().

Список параметров

config

Экземпляр PSpell\Config.

save

true, если замещающие пары должны сохраняться, false в противном случае.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр config теперь ожидает экземпляр PSpell\Config; ранее ожидался ресурс (resource).

Примечания

Замечание:

Функция не будет работать, если у вас нет 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, PHP 8)

pspell_new_config — Загружает новый словарь с установками на основе заданной конфигурации

Описание

pspell_new_config(PSpell\Config $config): PSpell\Dictionary|false

pspell_new_config() открывает новый словарь с параметрами, заданными в config, созданной с помощью pspell_config_create() и модифицированной с помощью функций pspell_config_*(). Этот метод даёт наибольшую гибкость и имеет все функциональные возможности, предоставляемые pspell_new() и pspell_new_personal().

Список параметров

config

Параметр config - это параметр возвращённый функцией pspell_config_create() после того, как конфигурация была создана.

Возвращаемые значения

Возвращает экземпляр PSpell\Dictionary в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр config теперь ожидает экземпляр PSpell\Config; ранее ожидался ресурс (resource).
8.1.0 | Возвращает экземпляр PSpell\Dictionary; ранее возвращался ресурс (resource).

Примеры

Пример #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 = 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, PHP 8)

pspell_new_personal — Загружает новый словарь с персональным списком слов

Описание

pspell_new_personal(
string $filename,
string $language,
string $spelling = "",
string $jargon = "",
string $encoding = "",
int $mode = 0
): PSpell\Dictionary|false

pspell_new_personal() открывает новый словарь с персональным списком слов. Список слов может быть модифицирован и сохранён функцией pspell_save_wordlist(), если потребуется. Однако замещающие пары не сохраняются. Для сохранения замещающих пар вы должны создать конфигурацию, используя pspell_config_create(), установить файл персонального списка слов функцией pspell_config_personal(), установить файл для замещающих пар функцией pspell_config_repl(), и открыть новый словарь с помощью pspell_new_config().

Более подробную информацию и примеры можно найти в руководстве по pspell на сайте:» http://aspell.net/.

Список параметров

filename

Файл, в который будут сохранены слова, добавленные в персональный список. Это должен быть абсолютный путь к файлу, начинающийся с '/', так как иначе он будет относительным к $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\Dictionary в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр PSpell\Dictionary; ранее возвращался ресурс (resource).

Примеры

Пример #1 Пример использования pspell_new_personal()

<?php
$pspell = 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, PHP 8)

pspell_new — Загружает новый словарь

Описание

pspell_new(
string $language,
string $spelling = "",
string $jargon = "",
string $encoding = "",
int $mode = 0
): PSpell\Dictionary|false

pspell_new() открывает новый словарь и возвращает экземпляр PSpell\Dictionary для использования в других функциях 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 являются взаимоисключающими, так что вы должны выбрать только одну из них.

Возвращаемые значения

Возвращает экземпляр PSpell\Dictionary в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр PSpell\Dictionary; ранее возвращался ресурс (resource).

Примеры

Пример #1 Пример использования pspell_new()

<?php
$pspell = 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, PHP 8)

pspell_save_wordlist — Сохраняет персональный список слов в файле

Описание

pspell_save_wordlist(PSpell\Dictionary $dictionary): bool

pspell_save_wordlist() сохраняет персональный список слов текущей сессии. Расположение файлов для сохранения указывается с помощью pspell_config_personal() и (необязательно) pspell_config_repl().

Список параметров

dictionary

Экземпляр PSpell\Dictionary.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр dictionary теперь ожидает экземпляр PSpell\Dictionary; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/tmp/dicts/newdict");
$pspell = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell, "Vlad");
pspell_save_wordlist($pspell);
?>

Примечания

Замечание:

Функция не будет работать, если у вас нет 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, PHP 8)

pspell_store_replacement — Сохраняет замещающую пару для слова

Описание

pspell_store_replacement(PSpell\Dictionary $dictionary, string $misspelled, string $correct): bool

pspell_store_replacement() сохраняет замещающую пару для слова, так что замена позднее может быть возвращена функцией pspell_suggest(). Чтобы использовать преимущества этой функции, следует открыть словарь с помощью pspell_new_personal(). Чтобы навсегда сохранить замещающую пару, необходимо использовать pspell_config_personal() и pspell_config_repl() для того, чтобы указать путь, куда сохранить пользовательские списки слов, а затем воспользоваться pspell_save_wordlist() для записи изменений на диск.

Список параметров

dictionary

Экземпляр PSpell\Dictionary.

misspelled

Слово с ошибкой.

correct

Исправленное написание для слова с ошибкой (misspelled).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр dictionary теперь ожидает экземпляр PSpell\Dictionary; ранее ожидался ресурс (resource).

Примеры

Пример #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 = pspell_new_config($pspell_config);

pspell_store_replacement($pspell, $misspelled, $correct);
pspell_save_wordlist($pspell);
?>

Примечания

Замечание:

Функция не будет работать, если у вас нет pspell .11.2 и aspell .32.5 или выше.


Предлагает варианты исправления слова

  • « pspell_store_replacement
  • PSpell\Dictionary »
  • PHP Manual
  • Функции Pspell
  • Предлагает варианты исправления слова

pspell_suggest

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_suggest — Предлагает варианты исправления слова

Описание

pspell_suggest(PSpell\Dictionary $dictionary, string $word): array|false

pspell_suggest() возвращает массив возможных вариантов исправления заданного слова.

Список параметров

dictionary

Экземпляр PSpell\Dictionary.

word

Проверяемое слово.

Возвращаемые значения

Возвращает массив возможных вариантов исправления.

Список изменений

Версия | Описание
8.1.0 | Параметр dictionary теперь ожидает экземпляр PSpell\Dictionary; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования pspell_suggest()

<?php
$pspell = pspell_new("en");

if (!pspell_check($pspell, "testt")) {
$suggestions = pspell_suggest($pspell, "testt");

foreach ($suggestions as $suggestion) {
echo "Возможный вариант исправления: $suggestion<br />";
}
}
?>


Класс PSpell\Dictionary

(PHP 8 >= 8.1.0)

Введение

Полностью непрозрачный класс, заменяющий ресурс pspell в PHP 8.1.0.

Обзор классов

final class PSpell\Dictionary {
}


Класс PSpell\Config

(PHP 8 >= 8.1.0)

Введение

Полностью непрозрачный класс, заменяющий ресурс pspell config в PHP 8.1.0.

Обзор классов

final class PSpell\Config {
}


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 7.4

Этот модуль был перемещен в репозиторий » PECL и больше не поставляется с PHP 7.4.0

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/recode.

PHP < 7.4

Для использования модуля необходимо скомпилировать PHP с опцией --with-recode[=DIR].

Внимание

При загрузке модуля может произойти аварийное завершение PHP во время запуска, если recode загружается после mysql или imap. Загрузка модуля перед ними решает проблему. Это происходит из-за того, что и recode и imap используют C-библиотеки со своими собственными функциями hash_lookup(), а в случае mysql и recode, функцию hash_insert.

Внимание

Модуль IMAP не может использоваться вместе с модулями перекодировки и YAZ. Это связано с тем фактом, что они оба используют одни и те же внутренние символы. Замечание: Версии 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.
  • mb_convert_encoding() - Преобразует строку из одной кодировки символов в другую
  • UConverter::transcode() - Преобразует строку из одной кодировки символов в другую
  • iconv() - Преобразует строку из одной кодировки символов в другую


Псевдоним recode_string

  • « recode_string
  • Обработка и генерация изображений »
  • PHP Manual
  • Функции Recode
  • Псевдоним recode_string

recode

(PHP 4, PHP 5, PHP 7 < 7.4.0)

recode — Псевдоним recode_string()

Описание

Функция является псевдонимом: recode_string().


Обработка и генерация изображений

  • Exif — Изменяемая информация об изображении
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Exif Функции
  • GD — Обработка изображений и GD
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции GD и функции для работы с изображениями
    • GdImage — Класс GdImage
    • GdFont — Класс GdFont
  • Gmagick
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Gmagick — Класс Gmagick
    • GmagickDraw — Класс GmagickDraw
    • GmagickPixel — Класс GmagickPixel
  • ImageMagick — Обработка изображений (ImageMagick)
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Imagick — Класс Imagick
    • ImagickDraw — Класс ImagickDraw
    • ImagickPixel — Класс ImagickPixel
    • ImagickPixelIterator — Класс ImagickPixelIterator
    • ImagickKernel — Класс ImagickKernel


Изменяемая информация об изображении

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Exif Функции
    • exif_imagetype — Determine the type of an image
    • 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 (int)
Эта константа равна 1 если разрешено mbstring, или 0, если нет.

Функция exif_imagetype() отображает связанные встроенные константы.


Exif Функции

Содержание

  • exif_imagetype — Determine the type of an image
  • exif_read_data — Читает заголовки EXIF из файлов изображений
  • exif_tagname — Получение имени заголовка по его индексу
  • exif_thumbnail — Получает встроенное превью изображения
  • read_exif_data — Псевдоним exif_read_data


Determine the type of an image

  • « Exif Функции
  • exif_read_data »
  • PHP Manual
  • Exif Функции
  • Determine the type of an image

exif_imagetype

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

exif_imagetype — Determine the type of an image

Описание

exif_imagetype(string $filename): int|false

exif_imagetype() считывает начальные байты изображения и проверяет их сигнатуру.

exif_imagetype() может использоваться, чтобы избежать вызовов других exif-функций с неподдерживаемыми аргументами. Также при взаимодействии с $_SERVER['HTTP_ACCEPT'] можно проверять, будет ли изображение отображаться в браузере.

Список параметров

filename
Изображение, тип которого требуется определить.

Возвращаемые значения

Если корректная сигнатура обнаружена, функция вернёт соответствующую типу изображения константу. В противном случае функция вернёт false. Возвращаемое значение то же, что и во втором аргументе при возврате из функции getimagesize(), однако exif_imagetype() значительно быстрее.

Следующие определённые константы представляют возможные возвращаемые значения функции 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
19 | IMAGETYPE_AVIF

Замечание:

В случаях, когда невозможно считать количество байтов из файла достаточное для определения типа изображения, функция exif_imagetype() вызовет предупреждение уровня E_NOTICE и вернёт false.

Список изменений

Версия | Описание
8.1.0 | Добавлена поддержка AVIF.
7.1.0 | Добавлена поддержка 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, PHP 8)

exif_read_data — Читает заголовки EXIF из файлов изображений

Описание

exif_read_data(
resource|string $file,
?string $required_sections = null,
bool $as_arrays = false,
bool $read_thumbnail = false
): array|false

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).

Список параметров

file

Местоположение файла с изображением. Может быть как путём к файлу, так и потоковым ресурсом (можно использовать обёртки).

required_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. Он содержит более детальную информацию об изображении. Большинство его записей зависят от фотоаппарата.

as_arrays

Определяет, формировать ли разделы в виде массивов. Разделы required_sections, COMPUTED, THUMBNAIL и COMMENT всегда делаются массивами, так как они могут содержать значения, имена которых будут конфликтовать с именами в других разделах.

read_thumbnail

Если true, будет прочитан сам эскиз. В противном случае будет прочитана только информация в тегах.

Возвращаемые значения

Возвращает ассоциативный массив (array), в котором ключами будут имена заголовков, а значениями - значения соответствующие этим заголовкам. Если никаких данных вернуть нельзя, exif_read_data() вернёт false.

Ошибки

Ошибки уровня E_WARNING и/или E_NOTICE могут возникать для неподдерживаемых тегов или других потенциальных условий ошибки, но функция всё равно пытается прочитать всю понятную информацию.

Список изменений

Версия | Описание
8.0.0 | required_sections теперь допускает значение null.
7.2.0 | Параметр file переименован в 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().

Замечание:

Если параметр file использован для передачи в функцию потока, то этот поток должен быть перематываемым. Обратите внимание, что файловый позиционный указатель не будет изменён после завершения работы этой функции.

Смотрите также

  • exif_thumbnail() - Получает встроенное превью изображения
  • getimagesize() - Получение размера изображения
  • Поддерживаемые протоколы и обёртки


Получение имени заголовка по его индексу

  • « exif_read_data
  • exif_thumbnail »
  • PHP Manual
  • Exif Функции
  • Получение имени заголовка по его индексу

exif_tagname

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

exif_tagname — Получение имени заголовка по его индексу

Описание

exif_tagname(int $index): string|false

Список параметров

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() - Determine the type of an image
  • » EXIF спецификация
  • » EXIF теги


Получает встроенное превью изображения

  • « exif_tagname
  • read_exif_data »
  • PHP Manual
  • Exif Функции
  • Получает встроенное превью изображения

exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

exif_thumbnail — Получает встроенное превью изображения

Описание

exif_thumbnail(
resource|string $file,
int &$width = null,
int &$height = null,
int &$image_type = null
): string|false

exif_thumbnail() считывает встроенное превью изображения.

Если вы хотите получить эскиз посредством этой функции, вам необходимо отправить mimetype-информацию, использовав header() функцию.

Иногда exif_thumbnail() не может создать изображение, но может определить его размер. В таких случаях она возвращает false, но задаёт аргументам width и height правильные значения.

Список параметров

file

Местоположение файла с изображением. Может быть как путём к файлу, так и потоковым ресурсом.

width

Возвращаемая ширина эскиза.

height

Возвращаемая высота эскиза.

image_type

Возвращаемый тип эскиза. Это либо TIFF, либо JPEG.

Возвращаемые значения

Возвращает встроенный эскиз или false, если изображение не содержит эскиза.

Список изменений

Версия | Описание
7.2.0 | Параметр file переименован в stream и может принимать как локальный путь к файлу, так и потоковый ресурс.

Примеры

Пример #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 'Нет доступного эскиза';
}
?>

Примечания

Замечание:

Если параметр file использован для передачи потока в функцию, то этот поток должен быть перематываемым. Обратите внимание, что файловый позиционный указатель не будет изменён после завершения работы этой функции.

Смотрите также

  • 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()

Внимание

Псевдоним объявлен УСТАРЕВШИМ в PHP 7.2.0 и УДАЛЁН в PHP 8.0.0.

Описание

Функция является псевдонимом: 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 — Получает матрицу аффинного преобразования
    • imagealphablending — Задание режима сопряжения цветов для изображения
    • imageantialias — Требуется ли применять функции сглаживания или нет
    • imagearc — Рисование дуги
    • imageavif — Выводит изображение в браузер или пишет в файл
    • 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 — Создание нового палитрового изображения
    • imagecreatefromavif — Создаёт новое изображение из файла или URL
    • imagecreatefrombmp — Создаёт новое изображение из файла или URL
    • imagecreatefromgd2 — Создание нового изображения на основе GD2 или URL
    • imagecreatefromgd2part — Создание нового изображения на основе части GD2 файла или URL
    • imagecreatefromgd — Создание нового изображения на основе GD файла или URL
    • imagecreatefromgif — Создаёт новое изображение из файла или URL
    • imagecreatefromjpeg — Создаёт новое изображение из файла или URL
    • imagecreatefrompng — Создаёт новое изображение из файла или URL
    • imagecreatefromstring — Создание нового изображения из потока представленного строкой
    • imagecreatefromtga — Создаёт новое изображение из файла или URL
    • imagecreatefromwbmp — Создаёт новое изображение из файла или URL
    • imagecreatefromwebp — Создаёт новое изображение из файла или URL
    • imagecreatefromxbm — Создаёт новое изображение из файла или URL
    • imagecreatefromxpm — Создаёт новое изображение из файла или URL
    • imagecreatetruecolor — Создание нового полноцветного изображения
    • imagecrop — Обрезать изображение до заданного прямоугольника
    • imagecropauto — Обрезает изображение автоматически, используя один из доступных режимов
    • imagedashedline — Рисование пунктирной линии
    • imagedestroy — Уничтожение изображения
    • imageellipse — Рисование эллипса
    • imagefill — Заливка
    • imagefilledarc — Рисование и заливка дуги
    • imagefilledellipse — Рисование закрашенного эллипса
    • imagefilledpolygon — Рисование закрашенного многоугольника
    • imagefilledrectangle — Рисование закрашенного прямоугольника
    • imagefilltoborder — Заливка цветом
    • imagefilter — Применяет фильтр к изображению
    • imageflip — Переворачивает изображение, используя выбранный режим
    • imagefontheight — Получение высоты шрифта
    • imagefontwidth — Получение ширины шрифта
    • imageftbbox — Определение границ текста выводимого шрифтом freetype2
    • imagefttext — Нанесение текста на изображение, используя шрифты FreeType 2
    • imagegammacorrect — Применение гамма коррекции к GD изображению
    • imagegd2 — Вывод GD2 изображения в браузер или файл
    • imagegd — Вывод GD-изображения в браузер или в файл
    • imagegetclip — Получить отсекающий прямоугольник
    • imagegetinterpolation — Получает метод интерполяции
    • imagegif — Выводит изображение в браузер или пишет в файл
    • imagegrabscreen — Захватывает изображение с экрана
    • imagegrabwindow — Захватывает изображение окна
    • imageinterlace — Включение или выключение интерлейсинга
    • imageistruecolor — Определяет, является ли изображение полноцветным
    • imagejpeg — Выводит изображение в браузер или пишет в файл
    • imagelayereffect — Установка флага альфа сопряжения для использования эффектов наложения изображений
    • imageline — Рисование линии
    • imageloadfont — Загрузка шрифта
    • imageopenpolygon — Рисует открытый полигон
    • imagepalettecopy — Копирование палитры из одного изображения в другое
    • imagepalettetotruecolor — Преобразует изображение на основе палитры в настоящий цвет
    • imagepng — Вывод PNG изображения в браузер или файл
    • imagepolygon — Рисование многоугольника
    • imagerectangle — Рисование прямоугольника
    • imageresolution — Получить или установить разрешение изображения
    • imagerotate — Поворот изображения с заданным углом
    • imagesavealpha — Сохранять ли полную информацию альфа-канала при сохранении изображений
    • imagescale — Масштабировать изображение по заданной ширине и высоте
    • imagesetbrush — Установка изображения (кисти), посредством которого будут рисоваться линии
    • imagesetclip — Установите прямоугольник ограничения
    • imagesetinterpolation — Устанавливает метод интерполяции
    • 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
  • GdImage — Класс GdImage
  • GdFont — Класс GdFont


Введение

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 |
XBM | true | true |
XPM | true | false |
WBMP | true | true |
WebP | true | true |
BMP | true | true | Доступно, начиная с PHP 7.2.0

Несмотря на то, что большинство форматов в приведённой таблице доступны для чтения и записи, это не значит, что PHP был собран с их поддержкой. Чтобы узнать какие форматы были включены для GD при сборке, используйте функцию gd_info(). Для дополнительной информации смотрите раздел об установке.


Требования

При наличии GD-библиотеки (доступна по адресу » http://www.libgd.org/), вы можете создавать и изменять изображения.

Форматы изображений, с которыми можно работать, зависят от версии установленной GD, а так же от наличия других библиотек, к которым GD может обращаться для получения доступа к тем или иным форматам.

Замечание: Требуется libgd-2.1.0 или выше. Либо же используйте библиотеку GD, входящую в дистрибутив PHP.

Замечание: Для работы библиотеки GD требуется zlib >= 1.2.0.4.

Возможно, вы пожелаете расширить GD, чтобы обрабатывать больше форматов изображений.

Поддерживаемые форматы изображений
Формат изображения | Необходимая библиотека | Замечания
gif |  |
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 | » http://www.ibiblio.org/pub/Linux/libs/X/!INDEX.html | Если в системе установлено окружение X-Environment, то библиотека уже доступна.

Можно расширить функциональность GD для работы с различными шрифтами. Поддерживается библиотека » FreeType 2.


Установка

Чтобы включить поддержку GD сконфигурируйте PHP с опцией --with-gd[=DIR], где DIR — это директория установки GD. Чтобы использовать рекомендованную разработчиками встроенную версию библиотеки GD, используйте опцию конфигурации --with-gd. Библиотека GD требует наличие библиотек libpng и libjpeg для компиляции. Начиная с PHP 7.4.0, --with-gd становится --enable-gd (нужно ли вообще включать модуль) и --with-external-gd (чтобы выбрать использование внешнего libgd, а не встроенного).

В Windows-системах, вы должны включить модуль GD DLL php_gd.dll в php.ini. До PHP 8.0.0, DLL-файл назывался php_gd2.dll.

Повысить возможности библиотеки GD для работы с большим количеством форматов изображений можно, используя опцию --with-XXXX во время конфигурации PHP.

Поддерживаемые форматы изображений
Формат изображения | Опция при конфигурировании
jpeg | Чтобы включить поддержку jpeg добавьте --with-jpeg-dir=DIR. Jpeg 6b, 7 или 8 поддерживаются. Начиная с PHP 7.4.0, используйте вместо этого --with-jpeg.
png | Чтобы включить поддержку png добавьте --with-png-dir=DIR. Внимание, libpng требует наличие библиотеки zlib, поэтому добавьте --with-zlib-dir[=DIR] при конфигурации. Начиная с PHP 7.4.0, были удалены --with-png-dir и --with-zlib-dir. Теперь libpng и zlib обязательны.
xpm | Чтобы включить поддержку xpm добавьте --with-xpm-dir=DIR. Если во время конфигурации не удаётся найти необходимую библиотеку, можно указать путь к библиотеке X11. Начиная с PHP 7.4.0, используйте вместо этого --with-xpm.
webp | Чтобы включить поддержку webp, добавьте --with-webp-dir=DIR.

Замечание: При компиляции PHP с libpng, вы должны использовать ту же версию libpng, с которой была собрана библиотека GD.

Повысить возможности библиотеки GD для работы с различными шрифтами можно, используя опцию --with-XXXX во время конфигурации PHP.

Поддерживаемые библиотеки шрифтов
Библиотека шрифтов | Опция при конфигурировании
FreeType 2 | Чтобы включить поддержку FreeType 2 добавьте --with-freetype-dir=DIR. Начиная с PHP 7.4.0, используйте вместо этого опцию --with-freetype , которая зависит от pkg-config.
Native TrueType string function | Чтобы включить поддержку Native TrueType string function добавьте --enable-gd-native-ttf. (Параметр не имеет никакого эффекта и был удалён в PHP 7.2.0.)


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Image Опции настройки
Имя | По умолчанию | Место изменения | Список изменений
gd.jpeg_ignore_warning | "1" | PHP_INI_ALL |
Для подробного описания констант 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() | До PHP 8.0.0
gd font | Ресурс шрифта, создаваемый функцией imageloadfont() | До PHP 8.1.0


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

GD_VERSION (string)
Версия GD, с которой был скомпилирован PHP.
GD_MAJOR_VERSION (int)
Полнофункциональная версия GD, с которой был скомпилирован PHP.
GD_MINOR_VERSION (int)
Сокращённая версия GD, с которой был скомпилирован PHP.
GD_RELEASE_VERSION (int)
Рабочая версия GD, с которой был скомпилирован PHP.
GD_EXTRA_VERSION (string)
Дополнительная (beta/rc..) версия GD, с которой был скомпилирован PHP.
GD_BUNDLED (int)
Если используется распространяемая с PHP версия GD, константа принимает значение 1, в противном случае 0.
IMG_AVIF (int)
Используется в качестве возвращаемого значения функции imagetypes(). (Доступно, начиная с PHP 8.1.0)
IMG_BMP (int)
Используется в качестве возвращаемого значения функции imagetypes().
IMG_GIF (int)
Используется в качестве возвращаемого значения функции imagetypes().
IMG_JPG (int)
Используется в качестве возвращаемого значения функции imagetypes().
IMG_JPEG (int)
Используется в качестве возвращаемого значения функции imagetypes().

Замечание:

Эта константа имеет то же значение, что и IMG_JPG

IMG_PNG (int)
Используется в качестве возвращаемого значения функции imagetypes().
IMG_WBMP (int)
Используется в качестве возвращаемого значения функции imagetypes().
IMG_XPM (int)
Используется в качестве возвращаемого значения функции imagetypes().
IMG_WEBP (int)
Используется в качестве возвращаемого значения функции imagetypes(). (Доступно с PHP 7.0.10)
IMG_WEBP_LOSSLESS (int)
(Доступно, начиная с PHP 8.1.0)
IMG_COLOR_TILED (int)
Специальный вариант цвета, который может быть использован вместо определённого с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_COLOR_STYLED (int)
Специальный вариант цвета, который может быть использован вместо определённого с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_COLOR_BRUSHED (int)
Специальный вариант цвета, который может быть использован вместо определённого с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_COLOR_STYLEDBRUSHED (int)
Специальный вариант цвета, который может быть использован вместо определённого с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_COLOR_TRANSPARENT (int)
Специальный вариант цвета, который может быть использован вместо определённого с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_AFFINE_TRANSLATE (int)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_AFFINE_SCALE (int)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_AFFINE_ROTATE (int)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_AFFINE_SHEAR_HORIZONTAL (int)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_AFFINE_SHEAR_VERTICAL (int)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_ARC_ROUNDED (int)
Константа стиля, используется с функцией imagefilledarc().

Замечание:

Эта константа имеет то же значение, что и IMG_ARC_PIE

IMG_ARC_PIE (int)
Константа стиля, используется с функцией imagefilledarc().
IMG_ARC_CHORD (int)
Константа стиля, используется с функцией imagefilledarc().
IMG_ARC_NOFILL (int)
Константа стиля, используется с функцией imagefilledarc().
IMG_ARC_EDGED (int)
Константа стиля, используется с функцией imagefilledarc().
IMG_GD2_RAW (int)
Константа типа, используется с функцией imagegd2().
IMG_GD2_COMPRESSED (int)
Константа типа, используется с функцией imagegd2().
IMG_EFFECT_REPLACE (int)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_EFFECT_ALPHABLEND (int)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_EFFECT_NORMAL (int)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_EFFECT_OVERLAY (int)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_EFFECT_MULTIPLY (int)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_FILTER_NEGATE (int)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_GRAYSCALE (int)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_BRIGHTNESS (int)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_CONTRAST (int)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_COLORIZE (int)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_EDGEDETECT (int)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_GAUSSIAN_BLUR (int)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_SELECTIVE_BLUR (int)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_EMBOSS (int)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_MEAN_REMOVAL (int)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_SMOOTH (int)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_PIXELATE (int)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_SCATTER (int)
Специальный фильтр GD, используется с функцией imagefilter(). (Доступна с PHP 7.4.0)
IMAGETYPE_GIF (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JPEG (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JPEG2000 (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_PNG (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_SWF (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_PSD (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_BMP (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_WBMP (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_XBM (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_TIFF_II (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_TIFF_MM (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_IFF (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JB2 (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JPC (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JP2 (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JPX (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_SWC (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_ICO (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_WEBP (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension(). (Доступно, начиная с PHP 7.1.0)
IMAGETYPE_AVIF (int)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension(). (Доступно, начиная с PHP 8.1.0)
PNG_NO_FILTER (int)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_NONE (int)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_SUB (int)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_UP (int)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_AVG (int)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_PAETH (int)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_ALL_FILTERS (int)
Специальный фильтр 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 — Получает матрицу аффинного преобразования
  • imagealphablending — Задание режима сопряжения цветов для изображения
  • imageantialias — Требуется ли применять функции сглаживания или нет
  • imagearc — Рисование дуги
  • imageavif — Выводит изображение в браузер или пишет в файл
  • 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 — Создание нового палитрового изображения
  • imagecreatefromavif — Создаёт новое изображение из файла или URL
  • imagecreatefrombmp — Создаёт новое изображение из файла или URL
  • imagecreatefromgd2 — Создание нового изображения на основе GD2 или URL
  • imagecreatefromgd2part — Создание нового изображения на основе части GD2 файла или URL
  • imagecreatefromgd — Создание нового изображения на основе GD файла или URL
  • imagecreatefromgif — Создаёт новое изображение из файла или URL
  • imagecreatefromjpeg — Создаёт новое изображение из файла или URL
  • imagecreatefrompng — Создаёт новое изображение из файла или URL
  • imagecreatefromstring — Создание нового изображения из потока представленного строкой
  • imagecreatefromtga — Создаёт новое изображение из файла или URL
  • imagecreatefromwbmp — Создаёт новое изображение из файла или URL
  • imagecreatefromwebp — Создаёт новое изображение из файла или URL
  • imagecreatefromxbm — Создаёт новое изображение из файла или URL
  • imagecreatefromxpm — Создаёт новое изображение из файла или URL
  • imagecreatetruecolor — Создание нового полноцветного изображения
  • imagecrop — Обрезать изображение до заданного прямоугольника
  • imagecropauto — Обрезает изображение автоматически, используя один из доступных режимов
  • imagedashedline — Рисование пунктирной линии
  • imagedestroy — Уничтожение изображения
  • imageellipse — Рисование эллипса
  • imagefill — Заливка
  • imagefilledarc — Рисование и заливка дуги
  • imagefilledellipse — Рисование закрашенного эллипса
  • imagefilledpolygon — Рисование закрашенного многоугольника
  • imagefilledrectangle — Рисование закрашенного прямоугольника
  • imagefilltoborder — Заливка цветом
  • imagefilter — Применяет фильтр к изображению
  • imageflip — Переворачивает изображение, используя выбранный режим
  • imagefontheight — Получение высоты шрифта
  • imagefontwidth — Получение ширины шрифта
  • imageftbbox — Определение границ текста выводимого шрифтом freetype2
  • imagefttext — Нанесение текста на изображение, используя шрифты FreeType 2
  • imagegammacorrect — Применение гамма коррекции к GD изображению
  • imagegd2 — Вывод GD2 изображения в браузер или файл
  • imagegd — Вывод GD-изображения в браузер или в файл
  • imagegetclip — Получить отсекающий прямоугольник
  • imagegetinterpolation — Получает метод интерполяции
  • imagegif — Выводит изображение в браузер или пишет в файл
  • imagegrabscreen — Захватывает изображение с экрана
  • imagegrabwindow — Захватывает изображение окна
  • imageinterlace — Включение или выключение интерлейсинга
  • imageistruecolor — Определяет, является ли изображение полноцветным
  • imagejpeg — Выводит изображение в браузер или пишет в файл
  • imagelayereffect — Установка флага альфа сопряжения для использования эффектов наложения изображений
  • imageline — Рисование линии
  • imageloadfont — Загрузка шрифта
  • imageopenpolygon — Рисует открытый полигон
  • imagepalettecopy — Копирование палитры из одного изображения в другое
  • imagepalettetotruecolor — Преобразует изображение на основе палитры в настоящий цвет
  • imagepng — Вывод PNG изображения в браузер или файл
  • imagepolygon — Рисование многоугольника
  • imagerectangle — Рисование прямоугольника
  • imageresolution — Получить или установить разрешение изображения
  • imagerotate — Поворот изображения с заданным углом
  • imagesavealpha — Сохранять ли полную информацию альфа-канала при сохранении изображений
  • imagescale — Масштабировать изображение по заданной ширине и высоте
  • imagesetbrush — Установка изображения (кисти), посредством которого будут рисоваться линии
  • imagesetclip — Установите прямоугольник ограничения
  • imagesetinterpolation — Устанавливает метод интерполяции
  • 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, PHP 8)

gd_info — Вывод информации о текущей установленной GD библиотеке

Описание

gd_info(): array

Получает информацию о версии и возможностях установленной GD библиотеки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив.

Элементы массива, возвращаемого из gd_info()
Атрибут | Смысловое значение
GD Version | Строка (string), содержащая версию libgd.
FreeType Support | bool значение. true, если компонент FreeType Support установлен.
FreeType Linkage | Строка (string), содержащая описание, каким образом подключён компонент FreeType. Ожидаемые значения: 'with freetype', 'with TTF library', и 'with unknown library'. Этот элемент будет определён, только если FreeType Support имеет значение true.
GIF Read Support | bool значение. true, если включена поддержка чтения (reading) GIF изображений.
GIF Create Support | bool значение. true, если включена поддержка записи (creating) GIF изображений.
JPEG Support | bool значение. true, если включена поддержка JPEG.
PNG Support | bool значение. true, если включена поддержка PNG.
WBMP Support | bool значение. true, если включена поддержка WBMP.
XBM Support | bool значение. true, если включена поддержка XBM.
WebP Support | bool значение. true, если включена поддержка WebP.
AVIF Support | bool значение. true, если включена поддержка AVIF. Доступно, начиная с PHP 8.1.0.

Примеры

Пример #1 Пример использования gd_info()

<?php
var_dump(gd_info());
?>

Результатом выполнения данного примера будет что-то подобное:

array(10) {
  ["GD Version"]=>
  string(24) "bundled (2.1.0 compatible)"
  ["FreeType 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)
  ["AVIF Support"]=>
  bool(false)
}

Смотрите также

  • imagepng() - Вывод PNG изображения в браузер или файл
  • imagejpeg() - Выводит изображение в браузер или пишет в файл
  • imagegif() - Выводит изображение в браузер или пишет в файл
  • imagewbmp() - Выводит изображение в браузер или пишет в файл
  • imagewebp() - Вывод изображения WebP в браузер или файл
  • imageavif() - Выводит изображение в браузер или пишет в файл
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой


Получение размера изображения

  • « gd_info
  • getimagesizefromstring »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение размера изображения

getimagesize

(PHP 4, PHP 5, PHP 7, PHP 8)

getimagesize — Получение размера изображения

Описание

getimagesize(string $filename, array &$image_info = null): array|false

Функция getimagesize() определит размер любого заданного, поддерживаемого изображения и вернёт этот размер вместе с типом файла и текстовой строкой height/width, которую можно будет использовать внутри тега HTML IMG, а также вернёт соответствующий тип содержимого HTTP.

Также getimagesize() может вернуть дополнительные сведения об изображении через аргумент image_info.

Предостережение

Функция ожидает, что filename является корректным файлом изображения. Если будет передан файл не содержащий изображения, он может быть некорректно интерпретирован как изображение и функция завершится успешно, но массив при этом будет содержать бессмысленные значения.

Не используйте getimagesize() для проверки того, что файл является изображением. Для этих целей используйте модуль Fileinfo.

Замечание: Обратите внимание на тот факт, что отдельные части JPC и JP2 изображений могут иметь различную глубину цвета. В этом случае в параметре "bits" будет стоять максимальное значение из всех обнаруженных. Также JP2 файлы могут содержать несколько кодовых потоков JPEG 2000. В таком случае getimagesize() вернёт значения для первого такого потока, который будет обнаружен функцией в корне файла.

Замечание: Сведения об иконках извлекаются из иконки с наибольшим битрейтом.

Замечание: Изображения GIF состоят из одного или нескольких кадров, где каждый кадр может занимать только часть изображения. Размер изображения, возвращаемый getimagesize(), будет являться общим размером (прочитанным из дескриптора логического экрана).

Список параметров

filename

Этот аргумент задаёт файл, сведения о котором будут извлекаться. Это может быть локальный или удалённый (зависит от конфигурации) файл. Передача данных удалённого файла должна осуществляться одним из поддерживаемых потоков.

image_info

Этот необязательный аргумент позволяет извлечь некоторые расширенные сведения из файла изображения. На данный момент можно получать различные JPG APP маркеры в виде ассоциативного массива. Некоторые программы используют эти маркеры для встраивания текста в картинку. Наиболее часто встраивают » IPTC сведения в APP13 маркер. Для преобразования двоичных данных APP13 маркера во что-то удобочитаемое можно воспользоваться функцией iptcparse().

Замечание:

image_info поддерживает только файлы 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.

Список изменений

Версия | Описание
8.2.0 | Теперь возвращает фактические размеры, биты и каналы изображений AVIF; ранее размеры сообщались как 0x0, а биты и каналы не сообщались вообще.
7.1.0 | Добавлена поддержка WebP.

Примеры

Пример #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() - Determine the type of an image
  • exif_read_data() - Читает заголовки EXIF из файлов изображений
  • exif_thumbnail() - Получает встроенное превью изображения
  • imagesx() - Получение ширины изображения
  • imagesy() - Получение высоты изображения


Получение размера изображения из строки данных

  • « getimagesize
  • image_type_to_extension »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение размера изображения из строки данных

getimagesizefromstring

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

getimagesizefromstring — Получение размера изображения из строки данных

Описание

getimagesizefromstring(string $string, array &$image_info = null): array|false

Функция работает идентично функции getimagesize() с той разницей, что getimagesizefromstring() принимает данные изображения в виде строки в качестве первого аргумента вместо имени файла.

Для уточнения, как функция работает, обращайтесь к документации к функции getimagesize().

Список параметров

string

Данные изображения в виде строки.

image_info

Смотрите 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, PHP 8)

image_type_to_extension — Получение расширения файла для типа изображения

Описание

image_type_to_extension(int $image_type, bool $include_dot = true): string|false

Возвращает расширение файла для заданной IMAGETYPE_XXX константы.

Список параметров

image_type

Одна из констант IMAGETYPE_XXX.

include_dot

Добавлять точку к расширению или нет. По умолчанию true.

Возвращаемые значения

Строка с расширением файла, соответствующим типу изображения или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

image_type_to_mime_type — Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

Описание

image_type_to_mime_type(int $image_type): string

Функция image_type_to_mime_type() определяет Mime-тип для константы IMAGETYPE.

Список параметров

image_type

Одна из констант IMAGETYPE_XXX.

Возвращаемые значения

Возвращаемые значения приведены ниже

Возвращаемые значения и Константы
image_type | Возвращаемое значение
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
IMAGETYPE_AVIF | image/avif

Примеры

Пример #1 Пример использования image_type_to_mime_type()

<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

Примечания

Замечание:

Этой функции не требуется библиотека GD.

Смотрите также

  • getimagesize() - Получение размера изображения
  • exif_imagetype() - Determine the type of an image
  • 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 — Выводит изображение в браузер или пишет в файл

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.3.0 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

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, PHP 8)

imageaffine — Вернуть изображение, содержащее аффинно-преобразованное изображение src, используя дополнительную область ограничения

Описание

imageaffine(GdImage $image, array $affine, ?array $clip = null): GdImage|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

affine

Массив с ключами от 0 до 5.

clip

Массив с ключами "x", "y", "width" и "height"; или null.

Возвращаемые значения

Возвращает объект с аффинным изображением в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | clip теперь допускает значение null.
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).


Конкатенирует две аффинные матрицы преобразования

  • « imageaffine
  • imageaffinematrixget »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Конкатенирует две аффинные матрицы преобразования

imageaffinematrixconcat

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageaffinematrixconcat — Конкатенирует две аффинные матрицы преобразования

Описание

imageaffinematrixconcat(array $matrix1, array $matrix2): array|false

Возвращает конкатенацию двух аффинных матриц преобразования, что полезно, если несколько преобразований должны быть применены к одному и тому же изображению за один раз.

Список параметров

matrix1

Аффинная матрица преобразования (массив с ключами от 0 до 5 и значениями с плавающей точкой).

matrix2

Аффинная матрица преобразования (массив с ключами от 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() - Получает матрицу аффинного преобразования


Получает матрицу аффинного преобразования

  • « imageaffinematrixconcat
  • imagealphablending »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получает матрицу аффинного преобразования

imageaffinematrixget

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageaffinematrixget — Получает матрицу аффинного преобразования

Описание

imageaffinematrixget(int $type, array|float $options): array|false

Возвращает матрицу аффинного преобразования.

Список параметров

type

Одна из констант IMG_AFFINE_*.

options

Если type равен IMG_AFFINE_TRANSLATE или IMG_AFFINE_SCALE, options должен быть массивом (array) с ключами x и y, оба имеют значения типа float.

Если type равен IMG_AFFINE_ROTATE, IMG_AFFINE_SHEAR_HORIZONTAL или IMG_AFFINE_SHEAR_VERTICAL, options должен быть числом с плавающей точкой (float), определяющим угол.

Возвращаемые значения

Матрица аффинного преобразования (массив с ключами от 0 до 5 и значениями с плавающей точкой) или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imageaffinematrixget()

<?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, PHP 8)

imagealphablending — Задание режима сопряжения цветов для изображения

Описание

imagealphablending(GdImage $image, bool $enable): bool

imagealphablending() позволяет использовать режим сопряжения цветов для truecolor-изображений при рисовании. В режиме сопряжения альфа компонент цвета, который передаётся всем функциям рисования, вроде imagesetpixel(), определяет то, насколько сильно цвет нижележащего слоя будет просачиваться через накладываемое изображение. В результате, gd автоматически сопрягает существующий цвет в каждой точке с цветом рисуемого поверх изображения и сохраняет результат сопряжения в изображении. Пикселы, подвергшиеся сопряжению, не обладают свойством прозрачности. В режиме без сопряжения цвет рисуемого поверх изображения пиксела буквально копируется вместе со своим альфа компонентом, заменяя пиксел в исходном изображении. Режим сопряжения недоступен при рисовании на палитровых изображениях.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

enable

Включить режим сопряжения или нет. Включён (true) по умолчанию для truecolor-изображений, для всех остальных по умолчанию выключен (false).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imageantialias — Требуется ли применять функции сглаживания или нет

Описание

imageantialias(GdImage $image, bool $enable): bool

Задействует механизмы сглаживания при рисовании линий и замкнутых многоугольников. Не поддерживает альфа компоненты. Использует операции прямого смешивания цветов. Работает только с truecolor-изображениями.

Стили и толщина не поддерживаются.

Использование сглаженных примитивов совместно с прозрачным фоном может дать неожиданный результат. Метод смешивания использует цвет фона наравне с любым другим цветом. Отсутствие поддержки альфа компонента не позволяет применять основанный на нем метод сглаживания.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

enable

Включить сглаживание или нет.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
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
  • imageavif »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование дуги

imagearc

(PHP 4, PHP 5, PHP 7, PHP 8)

imagearc — Рисование дуги

Описание

imagearc(
GdImage $image,
int $center_x,
int $center_y,
int $width,
int $height,
int $start_angle,
int $end_angle,
int $color
): bool

imagearc() рисует дугу окружности с заданными координатами центра.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

center_x

x-координата центра.

center_y

y-координата центра.

width

Ширина дуги.

height

Высота дуги.

start_angle

Угол начала дуги в градусах.

end_angle

Угол окончания дуги в градусах. 0° соответствует положению 3 часа, дуга рисуется по часовой стрелке.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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() - Рисование закрашенного эллипса


Выводит изображение в браузер или пишет в файл

  • « imagearc
  • imagebmp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Выводит изображение в браузер или пишет в файл

imageavif

(PHP 8 >= 8.1.0)

imageavif — Выводит изображение в браузер или пишет в файл

Описание

imageavif(
GdImage $image,
resource|string|null $file = null,
int $quality = -1,
int $speed = -1
): bool

Выводит или сохраняет растровое изображение AVIF из указанного параметра image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

file

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен null, изображение будет выведено в поток вывода в бинарном виде.

quality

Необязательный параметр quality варьируется от 0 (худшее качество, файл меньшего размера) до 100 (лучшее качество, файл большего размера). Если указывается -1, используется значение по умолчанию 30.

speed

Необязательный параметр speed варьируется от 0 (медленнее, файл меньшего размера) до 10 (быстрее, файл большего размера). Если указывается -1, используется значение по умолчанию 6.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернёт true.

Смотрите также

  • imagepng() - Вывод PNG изображения в браузер или файл
  • imagewbmp() - Выводит изображение в браузер или пишет в файл
  • imagejpeg() - Выводит изображение в браузер или пишет в файл
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой


Вывести BMP-изображение в браузер или файл

  • « imageavif
  • imagechar »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Вывести BMP-изображение в браузер или файл

imagebmp

(PHP 7 >= 7.2.0, PHP 8)

imagebmp — Вывести BMP-изображение в браузер или файл

Описание

imagebmp(GdImage $image, resource|string|null $file = null, bool $compressed = true): bool

Выводит или сохраняет BMP-версию заданного изображения (image).

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

file

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен null, изображение будет выведено в поток вывода в бинарном виде.

Замечание:

null недействителен, если аргумент compressed не используется.

compressed

Должен ли BMP быть сжат с кодировкой длин серий (RLE), или нет.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернёт true.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
8.0.0 | Тип параметра compressed теперь логическое значение (bool); ранее был целым числом (int).

Примеры

Пример #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, PHP 8)

imagechar — Рисование символа по горизонтали

Описание

imagechar(
GdImage $image,
GdFont|int $font,
int $x,
int $y,
string $char,
int $color
): bool

imagechar() рисует первый символ аргумента char на изображении с идентификатором image на координатах x,y (координаты отсчитываются с левого верхнего угла) цветом color.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или экземпляр GdFont, возвращаемый функцией imageloadfont()..

x

x-координата начала рисования.

y

y-координата начала рисования.

char

Символ для рисования.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр font теперь принимает как экземпляр GdFont, так и целое число (int); ранее принималось только целое число (int).
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecharup — Рисование символа вертикально

Описание

imagecharup(
GdImage $image,
GdFont|int $font,
int $x,
int $y,
string $char,
int $color
): bool

Рисует символ char вертикально на заданных координатах изображения image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или экземпляр GdFont, возвращаемый функцией imageloadfont()..

x

x-координата начала рисования.

y

y-координата начала рисования.

char

Символ для рисования.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр font теперь принимает как экземпляр GdFont, так и целое число (int); ранее принималось только целое число (int).
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolorallocate — Создание цвета для изображения

Описание

imagecolorallocate(
GdImage $image,
int $red,
int $green,
int $blue
): int|false

Возвращает идентификатор цвета в соответствии с заданными RGB компонентами.

imagecolorallocate() должна вызываться для создания каждого цвета, который будет использоваться в изображении image.

Замечание:

Первый вызов imagecolorallocate() задаёт цвет фона в палитровых изображениях - изображениях, созданных функцией imagecreate().

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зелёного компонента цвета.

blue

Значение синего компонента цвета.

Эти аргументы могут принимать либо целочисленные значение в диапазоне от 0 до 255, либо шестнадцатеричные в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Идентификатор цвета, либо false в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolorallocatealpha — Создание цвета для изображения

Описание

imagecolorallocatealpha(
GdImage $image,
int $red,
int $green,
int $blue,
int $alpha
): int|false

imagecolorallocatealpha() работает аналогично функции imagecolorallocate(), но ещё добавляет к цвету параметр alpha, отвечающий за прозрачность.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зелёного компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение в диапазоне от 0 до 127. 0 означает непрозрачный цвет, 127 означает полную прозрачность.

Параметры red, green и blue могут быть либо целочисленными в диапазоне от 0 до 255 либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Идентификатор цвета или false в случае возникновении ошибки при создании цвета.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolorat — Получение индекса цвета пиксела

Описание

imagecolorat(GdImage $image, int $x, int $y): int|false

Возвращает индекс цвета пиксела на заданных координатах на изображении image.

Если передаётся truecolor-изображение, функция возвращает целочисленное RGB значение для пиксела. Для выделения отдельных компонентов красного, зелёного или синего каналов используйте битовый сдвиг и маскирование:

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x

x-координата пиксела.

y

y-координата пиксела.

Возвращаемые значения

Возвращает индекс цвета или false в случае возникновения ошибки.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolorclosest — Получение индекса цвета ближайшего к заданному

Описание

imagecolorclosest(
GdImage $image,
int $red,
int $green,
int $blue
): int

Возвращает индекс цвета в палитре изображения, "ближайшего" к заданному RGB значению.

"Расстояние" между цветами в палитре рассчитывается геометрически, как если бы RGB значения были представлены в виде точек в трёхмерном пространстве.

Если изображение было создано из файла, то будут распознаны только цвета, используемые в изображении. Цвета, которые используются только в палитре, распознаны не будут.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зелёного компонента цвета.

blue

Значение синего компонента цвета.

Параметры цвета могут быть либо целочисленными в диапазоне от 0 до 255, либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Возвращает индекс цвета в палитре изображения, ближайшего к заданному.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolorclosestalpha — Получение индекса цвета ближайшего к заданному с учётом прозрачности

Описание

imagecolorclosestalpha(
GdImage $image,
int $red,
int $green,
int $blue,
int $alpha
): int

Возвращает индекс цвета в палитре изображения, "ближайшего" к заданному RGB значению, а также alpha уровню.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как 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, PHP 8)

imagecolorclosesthwb — Получение индекса цвета, имеющего заданный тон, белизну и затемнение

Описание

imagecolorclosesthwb(
GdImage $image,
int $red,
int $green,
int $blue
): int

Получение индекса цвета, имеющего значения тона, белизны и затемнения наиболее близкие к заданному цвету.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зелёного компонента цвета.

blue

Значение синего компонента цвета.

Возвращаемые значения

Возвращает целочисленный индекс цвета, имеющего значения тона, белизны и затемнения наиболее близкие к заданному цвету.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolordeallocate — Разрыв ассоциации переменной с цветом для заданного изображения

Описание

imagecolordeallocate(GdImage $image, int $color): bool

Разрывает ассоциацию переменной с цветом, которая ранее была создана функциями imagecolorallocate() или imagecolorallocatealpha().

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

color

Идентификатор цвета.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolorexact — Получение индекса заданного цвета

Описание

imagecolorexact(
GdImage $image,
int $red,
int $green,
int $blue
): int

Возвращает индекс для заданного цвета в палитре изображения.

Если изображение было создано из файла, то будут распознаны только цвета, используемые в изображении. Цвета, которые используются только в палитре, распознаны не будут.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зелёного компонента цвета.

blue

Значение синего компонента цвета.

Возвращаемые значения

Возвращает индекс для заданного цвета в палитре изображения либо -1, если такого цвета в палитре нет.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolorexactalpha — Получение индекса заданного цвета и альфа компонента

Описание

imagecolorexactalpha(
GdImage $image,
int $red,
int $green,
int $blue,
int $alpha
): int

Возвращает индекс для заданного цвета и альфа компонента в палитре изображения.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зелёного компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение в диапазоне от 0 до 127. 0 означает непрозрачность, 127 означает абсолютную прозрачность.

Параметры цвета могут быть либо целочисленными в диапазоне от 0 до 255, либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Возвращает индекс для заданного цвета и альфа компонента в палитре изображения либо -1, если такого цвета в палитре нет.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolormatch — Делает цвета палитровой версии изображения более соответствующими truecolor версии

Описание

imagecolormatch(GdImage $image1, GdImage $image2): bool

Делает цвета палитровой версии изображения более соответствующими truecolor версии.

Список параметров

image1

Объект truecolor-изображения.

image2

Объект палитрового изображения, имеющего тот же размер, что и image1.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image1 и image2 теперь ожидают экземпляр GdImage; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolorresolve — Получает идентификатор конкретного цвета или его ближайший аналог

Описание

imagecolorresolve(
GdImage $image,
int $red,
int $green,
int $blue
): int

Эта функция обязательно вернёт идентификатор цвета для выбранного цвета, либо ближайшую возможную его альтернативу.

Если изображение было создано из файла, то будут распознаны только цвета, используемые в изображении. Цвета, которые используются только в палитре, распознаны не будут.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зелёного компонента цвета.

blue

Значение синего компонента цвета.

Возвращаемые значения

Возвращает цветовой идентификатор.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolorresolvealpha — Получает идентификатор конкретного цвета и альфа компонента или его ближайший аналог

Описание

imagecolorresolvealpha(
GdImage $image,
int $red,
int $green,
int $blue,
int $alpha
): int

Эта функция обязательно вернёт идентификатор цвета для выбранного цвета, либо ближайшую возможную его альтернативу.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зелёного компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение в диапазоне от 0 до 127. 0 означает непрозрачность, 127 означает абсолютную прозрачность.

Параметры цвета могут быть либо целочисленными в диапазоне от 0 до 255, либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Возвращает индекс цвета.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolorset — Установка набора цветов для заданного индекса палитры

Описание

imagecolorset(
GdImage $image,
int $color,
int $red,
int $green,
int $blue,
int $alpha = 0
): ?false

Функция устанавливает соответствие индекса в палитре заданному цвету. Это полезно для создания эффекта подобного заливке цветом без осуществления заливки.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

color

Индекс в палитре.

red

Значение красного компонента цвета.

green

Значение зелёного компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение альфа компонента.

Возвращаемые значения

Функция возвращает null в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolorsforindex — Получение цветов, соответствующих индексу

Описание

imagecolorsforindex(GdImage $image, int $color): array

Получение цветов, соответствующих заданному индексу.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

color

Индекс цвета.

Возвращаемые значения

Возвращает ассоциативный массив с красным, зелёным, синим и альфа ключами, содержащий соответствующие значения для заданного индекса цвета.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
8.0.0 | Функция imagecolorsforindex() теперь выбрасывает исключение ValueError, если параметр color вне допустимого диапазона; ранее вместо этого возвращалось значение false.

Примеры

Пример #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, PHP 8)

imagecolorstotal — Определение количества цветов в палитре изображения

Описание

imagecolorstotal(GdImage $image): int

Возвращает количество цветов в палитре изображения.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает количество цветов в палитре изображения либо 0 для truecolor-изображений.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecolortransparent — Определяет цвет как прозрачный

Описание

imagecolortransparent(GdImage $image, ?int $color = null): int

Получает или устанавливает прозрачность цвета в заданном изображении image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает идентификатор нового (или текущего, если ничего не изменилось) цвета. Если аргумент color задан как null и в изображении нет прозрачных цветов, функция вернёт -1.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
8.0.0 | color теперь допускает значение null.

Примеры

Пример #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, PHP 8)

imageconvolution — Наложение искривляющей матрицы 3х3, используя коэффициент и смещение

Описание

imageconvolution(
GdImage $image,
array $matrix,
float $divisor,
float $offset
): bool

Накладывает искривляющую матрицу на изображение, используя заданный коэффициент и смещение.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

matrix

Матрица 3x3: массив из трёх массивов по 3 значения с плавающей точкой в каждом.

divisor

Делитель результата искривления, используется для нормализации.

offset

Смещение цвета.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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);
?>

Результат выполнения данного примера:

Вывод примера: Размытие по Гауссу

Смотрите также

  • imagefilter() - Применяет фильтр к изображению


Копирование части изображения

  • « imageconvolution
  • imagecopymerge »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Копирование части изображения

imagecopy

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecopy — Копирование части изображения

Описание

imagecopy(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $src_width,
int $src_height
): bool

Копирует часть src_image в dst_image, начиная с координат x, y src_x, src_y с шириной src_width и высотой src_h. Скопированная часть помещается на координаты dst_x и dst_y.

Список параметров

dst_image

Ресурс целевого изображения.

src_image

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

src_width

Ширина исходного изображения.

src_height

Высота исходного изображения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | dst_image и src_image теперь ожидают экземпляр GdImage; ранее ожидался ресурс (resource).

Примеры

Пример #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

Смотрите также

  • imagecrop() - Обрезать изображение до заданного прямоугольника


Копирует часть изображения с наложением

  • « imagecopy
  • imagecopymergegray »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Копирует часть изображения с наложением

imagecopymerge

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagecopymerge — Копирует часть изображения с наложением

Описание

imagecopymerge(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $src_width,
int $src_height,
int $pct
): bool

Копирует часть src_image и помещает скопированное на dst_image, начиная с координат src_x, src_y с шириной src_width и высотой src_height. Скопированная часть помещается на координаты dst_x и dst_y.

Список параметров

dst_image

Ресурс целевого изображения.

src_image

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

src_width

Ширина исходного изображения.

src_height

Высота исходного изображения.

pct

Два изображения будут совмещаться в зависимости от параметра pct, который может варьироваться от 0 до 100. Когда pct = 0, наложения не происходит. В случае значения 100 эта функция ведёт себя аналогично функции imagecopy() для палитровых изображений, несмотря на то что она поддерживает прозрачность для truecolor-изображений.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | dst_image и src_image теперь ожидают экземпляр GdImage; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecopymergegray — Копирует часть изображения с наложением в градациях серого

Описание

imagecopymergegray(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $src_width,
int $src_height,
int $pct
): bool

Копирует часть src_image и помещает скопированное на dst_image, начиная с координат src_x, src_y с шириной src_width и высотой src_height. Скопированная часть помещается на координаты dst_x и dst_y.

Функция работает аналогично imagecopymerge() за исключением того, что при наложении она сохраняет насыщенность цвета исходного изображения путём преобразования цветов пикселей конечного изображения в градации серого перед копированием.

Список параметров

dst_image

Ресурс целевого изображения.

src_image

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

src_width

Ширина исходного изображения.

src_height

Высота исходного изображения.

pct

Результирующее изображение src_image будет преобразовано к изображению в градациях серого в соответствии со значением параметра pct. 0 означает отсутствие цветов кроме серого, 100 - без изменений. Когда pct = 100 поведение функции идентично imagecopy() для палитровых изображений, несмотря на то что в этой функции реализована прозрачность для truecolor-изображений.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | dst_image и src_image теперь ожидают экземпляр GdImage; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecopyresampled — Копирование и изменение размера изображения с ресемплированием

Описание

imagecopyresampled(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $dst_width,
int $dst_height,
int $src_width,
int $src_height
): bool

imagecopyresampled() копирует прямоугольную часть одного изображения на другое изображение, интерполируя значения пикселов таким образом, чтобы уменьшение размера изображения не уменьшало его чёткости.

Другими словами, imagecopyresampled() берет прямоугольный участок из src_image с шириной src_width и высотой src_height на координатах src_x,src_y и помещает его в прямоугольный участок изображения dst_image шириной dst_width и высотой dst_height на координатах 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_width

Результирующая ширина.

dst_height

Результирующая высота.

src_width

Ширина исходного изображения.

src_height

Высота исходного изображения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | dst_image и src_image теперь ожидают экземпляр GdImage; ранее ожидался ресурс (resource).

Примеры

Пример #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() - Масштабировать изображение по заданной ширине и высоте
  • imagecrop() - Обрезать изображение до заданного прямоугольника


Копирование и изменение размера части изображения

  • « imagecopyresampled
  • imagecreate »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Копирование и изменение размера части изображения

imagecopyresized

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecopyresized — Копирование и изменение размера части изображения

Описание

imagecopyresized(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $dst_width,
int $dst_height,
int $src_width,
int $src_height
): bool

imagecopyresized() копирует прямоугольный участок одного изображения на другое изображение. dst_image - результирующее изображение, src_image - идентификатор исходного изображения.

Другими словами, imagecopyresized() берет прямоугольный участок из src_image с шириной src_width и высотой src_height на координатах src_x,src_y и помещает его в прямоугольную область изображения dst_image с шириной dst_width и высотой dst_height на координатах 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_width

Результирующая ширина.

dst_height

Результирующая высота.

src_width

Ширина исходного изображения.

src_height

Высота исходного изображения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | dst_image и src_image теперь ожидают экземпляр GdImage; ранее ожидался ресурс (resource).

Примеры

Пример #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() - Масштабировать изображение по заданной ширине и высоте
  • imagecrop() - Обрезать изображение до заданного прямоугольника


Создание нового палитрового изображения

  • « imagecopyresized
  • imagecreatefromavif »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создание нового палитрового изображения

imagecreate

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecreate — Создание нового палитрового изображения

Описание

imagecreate(int $width, int $height): GdImage|false

imagecreate() возвращает идентификатор изображения, представляющего из себя пустое изображение заданного размера.

Мы рекомендуем использовать функцию imagecreatetruecolor() вместо imagecreate(), так как она обрабатывает изображения с максимально возможным качеством. Если необходимо вывести палитру изображения, то imagetruecolortopalette() необходимо вызвать непосредственно перед сохранением изображения с помощью imagepng() или imagegif().

Список параметров

width

Ширина изображения.

height

Высота изображения.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #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
  • imagecreatefrombmp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создаёт новое изображение из файла или URL

imagecreatefromavif

(PHP 8 >= 8.1.0)

imagecreatefromavif — Создаёт новое изображение из файла или URL

Описание

imagecreatefromavif(string $filename): GdImage|false

imagecreatefromavif() возвращает объект изображения, представляющий изображение, полученное из данного имени файла.

Список параметров

filename

Путь до растрового изображения AVIF.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.


Создаёт новое изображение из файла или URL

  • « imagecreatefromavif
  • imagecreatefromgd2 »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создаёт новое изображение из файла или URL

imagecreatefrombmp

(PHP 7 >= 7.2.0, PHP 8)

imagecreatefrombmp — Создаёт новое изображение из файла или URL

Описание

imagecreatefrombmp(string $filename): GdImage|false

imagecreatefrombmp() возвращает идентификатор изображения, представляющий изображение, полученное из переданного имени файла.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Список параметров

filename

Путь к BMP-изображению.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecreatefromgd2 — Создание нового изображения на основе GD2 или URL

Описание

imagecreatefromgd2(string $filename): GdImage|false

Создание нового изображения на основе GD2 или URL.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Список параметров

filename

Путь к GD2 изображению.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #1 Пример использования imagecreatefromgd2()

<?php
// загрузка gd2 изображения
$im = imagecreatefromgd2('./test.gd2');

// применение эффекта к изображению, этот код
// инвертирует цвета
if(function_exists('imagefilter'))
{
imagefilter($im, IMG_FILTER_NEGATE);
}

// сохранение изображения
imagegd2($im, './test_updated.gd2');
imagedestroy($im);
?>

Примечания

Внимание

Форматы изображений GD и GD2 являются проприетарными форматами изображений libgd. Они должны рассматриваться как устаревшие и должны использоваться только для целей разработки и тестирования.


Создание нового изображения на основе части GD2 файла или URL

  • « imagecreatefromgd2
  • imagecreatefromgd »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создание нового изображения на основе части GD2 файла или URL

imagecreatefromgd2part

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagecreatefromgd2part — Создание нового изображения на основе части GD2 файла или URL

Описание

imagecreatefromgd2part(
string $filename,
int $x,
int $y,
int $width,
int $height
): GdImage|false

Создание нового изображения на основе части GD2 файла или URL.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Список параметров

filename

Путь к GD2 изображению.

x

x-координата точки исходного изображения.

y

y-координата точки исходного изображения.

width

Ширина исходного изображения.

height

Высота исходного изображения.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #1 Пример использования imagecreatefromgd2part()

<?php
// Для этого примера нам сначала потребуется узнать размер изображения
$image = getimagesize('./test.gd2');

// Создание изображения
$im = imagecreatefromgd2part('./test.gd2', 4, 4, ($image[0] / 2) - 6, ($image[1] / 2) - 6);

// Добавим рельеф на изображение
if(function_exists('imagefilter'))
{
imagefilter($im, IMG_FILTER_EMBOSS);
}

// сохранение изображения
imagegd2($im, './test_emboss.gd2');
imagedestroy($im);
?>

Примечания

Внимание

Форматы изображений GD и GD2 являются проприетарными форматами изображений libgd. Они должны рассматриваться как устаревшие и должны использоваться только для целей разработки и тестирования.


Создание нового изображения на основе GD файла или URL

  • « imagecreatefromgd2part
  • imagecreatefromgif »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создание нового изображения на основе GD файла или URL

imagecreatefromgd

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagecreatefromgd — Создание нового изображения на основе GD файла или URL

Описание

imagecreatefromgd(string $filename): GdImage|false

Создание нового изображения на основе GD файла или URL.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Список параметров

filename

Путь к GD файлу.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #1 Пример использования imagecreatefromgd()

<?php
// загрузка изображения
$im = @imagecreatefromgd('./test.gd');

// проверка, загрузилось ли изображение
if(!$im)
{
die('Не удалось загрузить изображение!');
}

// Операции с изображением можно осуществить здесь

// Сохранение изображения
imagegd($im, './test_updated.gd');
imagedestroy($im);
?>

Примечания

Внимание

Форматы изображений GD и GD2 являются проприетарными форматами изображений libgd. Они должны рассматриваться как устаревшие и должны использоваться только для целей разработки и тестирования.


Создаёт новое изображение из файла или URL

  • « imagecreatefromgd
  • imagecreatefromjpeg »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создаёт новое изображение из файла или URL

imagecreatefromgif

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecreatefromgif — Создаёт новое изображение из файла или URL

Описание

imagecreatefromgif(string $filename): GdImage|false

imagecreatefromgif() возвращает объект изображения, представляющего изображение полученное из файла с заданным именем.

Предостережение

При чтении анимированных файлов GIF в память, возвращается указатель на ресурс изображения только для первого фрейма. Размер изображения не обязательно будет соответствует тому, что вернёт функция getimagesize().

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Список параметров

filename

Путь к GIF картинке.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #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


Создаёт новое изображение из файла или URL

  • « imagecreatefromgif
  • imagecreatefrompng »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создаёт новое изображение из файла или URL

imagecreatefromjpeg

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecreatefromjpeg — Создаёт новое изображение из файла или URL

Описание

imagecreatefromjpeg(string $filename): GdImage|false

imagecreatefromjpeg() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Список параметров

filename

Путь к JPEG картинке.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecreatefrompng — Создаёт новое изображение из файла или URL

Описание

imagecreatefrompng(string $filename): GdImage|false

imagecreatefrompng() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Список параметров

filename

Путь к изображению PNG.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #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
  • imagecreatefromtga »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создание нового изображения из потока представленного строкой

imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

imagecreatefromstring — Создание нового изображения из потока представленного строкой

Описание

imagecreatefromstring(string $data): GdImage|false

imagecreatefromstring() возвращает идентификатор изображения, представляющего изображение полученное из потока data. Эти типы будут автоматически определяться, если сборка PHP их поддерживает: JPEG, PNG, GIF, BMP, WBMP, GD2 и WEBP.

Список параметров

data

Строка содержащая данные изображения.

Возвращаемые значения

В случае успешного выполнения будет возвращён объект ресурс, false, если тип изображения не поддерживается, данные не распознаются или данные нарушены и не могут быть загружены.

Ошибки

imagecreatefromstring() вызывает ошибку уровня E_WARNING, если данные в неподдерживаемом формате.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).
7.3.0 | Добавлена поддержка WEBP (если поддерживается используемой libgd).

Примеры

Пример #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
  • imagecreatefromwbmp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создаёт новое изображение из файла или URL

imagecreatefromtga

(PHP 7 >= 7.4.0, PHP 8)

imagecreatefromtga — Создаёт новое изображение из файла или URL

Описание

imagecreatefromtga(string $filename): GdImage|false

imagecreatefromtga() возвращает объект изображения, представляющий изображение, полученное из данного имени файла.

Список параметров

filename

Путь к изображению Truevision TGA.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).


Создаёт новое изображение из файла или URL

  • « imagecreatefromtga
  • imagecreatefromwebp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Создаёт новое изображение из файла или URL

imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagecreatefromwbmp — Создаёт новое изображение из файла или URL

Описание

imagecreatefromwbmp(string $filename): GdImage|false

imagecreatefromwbmp() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Замечание: Изображения WBMP представляют собой Wireless Bitmaps, а не Windows Bitmaps. Последние могут быть загружены с помощью imagecreatefrombmp().

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Список параметров

filename

Путь к изображению WBMP.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecreatefromwebp — Создаёт новое изображение из файла или URL

Описание

imagecreatefromwebp(string $filename): GdImage|false

imagecreatefromwebp() возвращает идентификатор изображения, представляющий изображение, полученное из переданного имени файла. Обратите внимание, что анимированные файлы WebP не читаются.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Список параметров

filename

Путь к WebP-изображению.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecreatefromxbm — Создаёт новое изображение из файла или URL

Описание

imagecreatefromxbm(string $filename): GdImage|false

imagecreatefromxbm() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Список параметров

filename

Путь к изображению XBM.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecreatefromxpm — Создаёт новое изображение из файла или URL

Описание

imagecreatefromxpm(string $filename): GdImage|false

imagecreatefromxpm() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

Список параметров

filename

Путь к изображению XPM.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecreatetruecolor — Создание нового полноцветного изображения

Описание

imagecreatetruecolor(int $width, int $height): GdImage|false

imagecreatetruecolor() возвращает объект, представляющий чёрное изображение заданного размера.

Список параметров

width

Ширина изображения.

height

Высота изображения.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagecrop — Обрезать изображение до заданного прямоугольника

Описание

imagecrop(GdImage $image, array $rectangle): GdImage|false

Обрезает изображение до заданной прямоугольной области и возвращает полученное изображение. Заданный параметр image не изменяется.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

rectangle

Обрезанный прямоугольник в виде массива (array) с ключами x, y, width и height.

Возвращаемые значения

Возвращает объект обрезанного изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #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() - Обрезает изображение автоматически, используя один из доступных режимов


Обрезает изображение автоматически, используя один из доступных режимов

  • « imagecrop
  • imagedashedline »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Обрезает изображение автоматически, используя один из доступных режимов

imagecropauto

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagecropauto — Обрезает изображение автоматически, используя один из доступных режимов

Описание

imagecropauto(
GdImage $image,
int $mode = IMG_CROP_DEFAULT,
float $threshold = 0.5,
int $color = -1
): GdImage|false

Автоматически обрезает изображение в соответствии с заданным mode.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

mode

Одна из следующих констант:

IMG_CROP_DEFAULT
То же, что и IMG_CROP_TRANSPARENT. До PHP 7.4.0, связанный libgd использовал IMG_CROP_SIDES, если изображение не имело прозрачного цвета.
IMG_CROP_TRANSPARENT
Обрезает прозрачный фон.
IMG_CROP_BLACK
Обрезает чёрный фон.
IMG_CROP_WHITE
Обрезает белый фон.
IMG_CROP_SIDES
Использует 4 угла изображения, чтобы попытаться обнаружить фон для обрезки.
IMG_CROP_THRESHOLD
Обрезает изображение, используя заданные threshold и color.
threshold

Определяет допуск в процентах, который будет использоваться при сравнении цвета изображения и цвета обрезки. Метод, используемый для расчёта цветовой разницы, основан на цветовом расстоянии в кубе RGB(a).

Используется только в режиме IMG_CROP_THRESHOLD.

Замечание: До PHP 7.4.0 в комплекте libgd использовался несколько иной алгоритм, поэтому один и тот же threshold давал разные результаты для системного и связанного libgd.

color

Либо значение цвета RGB, либо индекс палитры.

Используется только в режиме IMG_CROP_THRESHOLD.

Возвращаемые значения

Возвращает объект обрезанного изображения в случае успешного выполнения или false в случае возникновения ошибки. Если полное изображение было обрезано, imagecrop() возвращает false.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
8.0.0 | В случае успешного выполнения функция теперь возвращает объект GDImage; ранее возвращался ресурс (resource).
7.4.0 | Поведение imagecropauto() в комплекте libgd синхронизировано с системным libgd: IMG_CROP_DEFAULT больше не использует IMG_CROP_SIDES, и для обрезки порога теперь используется тот же алгоритм, что и системным libgd.
7.4.0 | Значение по умолчанию mode было изменено на IMG_CROP_AUTO. Ранее значение по умолчанию было -1, что соответствует IMG_CROP_DEFAULT, но передача -1 теперь устарела.

Примеры

Пример #1 Правильная обработка автообрезки

Как отмечено в разделе возвращаемого значения, imagecropauto() возвращает false, если все изображение было обрезано. В этом примере у нас есть ресурс изображения $im, который должен быть автоматически обрезан, только если есть что обрезать; в противном случае мы хотим перейти к исходному изображению.

<?php
$cropped = imagecropauto($im, IMG_CROP_DEFAULT);
if ($cropped !== false) { // в случае возврата нового объекта изображения
imagedestroy($im); // мы уничтожаем исходное изображение
$im = $cropped; // и назначаем обрезанное изображение в $im
}
?>

Смотрите также

  • imagecrop() - Обрезать изображение до заданного прямоугольника


Рисование пунктирной линии

  • « imagecropauto
  • imagedestroy »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование пунктирной линии

imagedashedline

(PHP 4, PHP 5, PHP 7, PHP 8)

imagedashedline — Рисование пунктирной линии

Описание

imagedashedline(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2,
int $color
): bool

Функция устарела. Используйте сочетание функций imagesetstyle() и imageline().

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

Верхняя левая x-координата.

y1

Верхняя левая y-координата. 0, 0 - верхний левый угол изображения.

x2

Нижняя правая х-координата.

y2

Нижняя правая у-координата.

color

Цвет линии. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagedestroy — Уничтожение изображения

Описание

imagedestroy(GdImage $image): bool

Замечание:

Использование функции больше не имеет смысла. До PHP 8.0.0 она использовалась для закрытия ресурса.

До PHP 8.0.0, imagedestroy() освобождает память, занятую изображением image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция теперь является NOP.
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #1 Пример использования imagedestroy() до PHP 8.0.0

<?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, PHP 8)

imageellipse — Рисование эллипса

Описание

imageellipse(
GdImage $image,
int $center_x,
int $center_y,
int $width,
int $height,
int $color
): bool

Рисует эллипс с центром в заданных координатах.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

center_x

x-координата центра.

center_y

y-координата центра.

width

Ширина эллипса.

height

Высота эллипса.

color

Цвет эллипса. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagefill — Заливка

Описание

imagefill(
GdImage $image,
int $x,
int $y,
int $color
): bool

Производит заливку, начиная с заданных координат (верхний левый угол имеет координаты 0, 0), цветом color в изображении image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x

x-координата начала.

y

y-координата начала.

color

Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagefilledarc — Рисование и заливка дуги

Описание

imagefilledarc(
GdImage $image,
int $center_x,
int $center_y,
int $width,
int $height,
int $start_angle,
int $end_angle,
int $color,
int $style
): bool

Рисует дугу с центром в заданных координатах изображения image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

center_x

x-координата центра.

center_y

y-координата центра.

width

Ширина дуги.

height

Высота дуги.

start_angle

Угол начала дуги в градусах.

end_angle

Угол окончания дуги в градусах. 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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagefilledellipse — Рисование закрашенного эллипса

Описание

imagefilledellipse(
GdImage $image,
int $center_x,
int $center_y,
int $width,
int $height,
int $color
): bool

Рисует эллипс с центром в заданных координатах изображения image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

center_x

x-координата центра.

center_y

y-координата центра.

width

Ширина эллипса.

height

Высота эллипса.

color

Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagefilledpolygon — Рисование закрашенного многоугольника

Описание

Сигнатура, начиная с PHP 8.0.0 (не поддерживается с именованными аргументами)

imagefilledpolygon(GdImage $image, array $points, int $color): bool

Альтернативный синтаксис (объявлен устаревшим с PHP 8.1.0)

imagefilledpolygon(
GdImage $image,
array $points,
int $num_points,
int $color
): bool

imagefilledpolygon() создаёт закрашенный многоугольник в заданном изображении image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

points

Массив, содержащий x и y координаты последовательных вершин многоугольника.

num_points

Общее число точек (вершин), должно быть не меньше 3.

Если этот параметр опущен (смотрите альтернативный синтаксис), то массив points должен содержать чётное количество элементов и num_points будет вычислено как count($points)/2.
color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр num_points объявлен устаревшим.
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagefilledrectangle — Рисование закрашенного прямоугольника

Описание

imagefilledrectangle(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2,
int $color
): bool

Создаёт прямоугольник закрашенный цветом color в заданном изображении image. Начальная точка 1, конечная 2. 0,0 - левый верхний угол изображения.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

x-координата точки 1.

y1

y-координата точки 1.

x2

x-координата точки 2.

y2

y-координата точки 2.

color

Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagefilltoborder — Заливка цветом

Описание

imagefilltoborder(
GdImage $image,
int $x,
int $y,
int $border_color,
int $color
): bool

imagefilltoborder() производит заливку области, ограниченной цветом border_color. Начальная координата x, y (левый верхний угол имеет координаты 0, 0), а область закрашивается цветом color.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x

x-координата начала.

y

y-координата начала.

border_color

Цвет границы заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

color

Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagefilter — Применяет фильтр к изображению

Описание

imagefilter(GdImage $image, int $filter, array|int|float|bool ...$args): bool

imagefilter() применяет заданный фильтр filter к изображению image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

filter

filter может быть одним из следующих:

  • IMG_FILTER_NEGATE: Инвертирует все цвета изображения.
  • IMG_FILTER_GRAYSCALE: Преобразует цвета изображения в градации серого путём преобразования компонент красного, зелёного и синего в их сумму с учётом весов, таких же как при вычислении яркости (Y') по REC.601. Альфа-канал сохраняется. Для изображений, использующих палитру, результат может отличаться в виду ограничений, накладываемых палитрой.
  • IMG_FILTER_BRIGHTNESS: Изменяет яркость изображения. Используйте аргумент args для задания уровня яркости. Диапазон яркостей от -255 до 255.
  • IMG_FILTER_CONTRAST: Изменяет контрастность изображения. Используйте аргумент args для задания уровня контрастности.
  • IMG_FILTER_COLORIZE: То же, что и IMG_FILTER_GRAYSCALE, за исключением того, что можно задать цвет. Используйте аргументы args, 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: Делает границы более плавными, а изображение менее чётким. Используйте аргумент args для задания уровня гладкости.
  • IMG_FILTER_PIXELATE: Применяет эффект пикселирования. Используйте аргумент args для задания размера блока и аргумент arg2 для задания режима эффекта пикселирования.
  • IMG_FILTER_SCATTER: Применяет эффект рассеивания к изображению, используйте args и arg2 для определения силы эффекта и дополнительно arg3 для применения только к выбранным цветам пикселей.

args

  • 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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
7.4.0 | Добавлена поддержка рассеивания (IMG_FILTER_SCATTER).

Примеры

Пример #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, используя коэффициент и смещение


Переворачивает изображение, используя выбранный режим

  • « imagefilter
  • imagefontheight »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Переворачивает изображение, используя выбранный режим

imageflip

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageflip — Переворачивает изображение, используя выбранный режим

Описание

imageflip(GdImage $image, int $mode): bool

Переворачивает изображение image, используя выбранный режим mode.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

mode

Режим переворота - одна из констант IMG_FLIP_*:

Константа | Описание
IMG_FLIP_HORIZONTAL | Переворачивает изображение по горизонтали.
IMG_FLIP_VERTICAL | Переворачивает изображение по вертикали.
IMG_FLIP_BOTH | Переворачивает изображение и по горизонтали и по вертикали.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #1 Переворачивает изображение по вертикали

В этом примере используется константа IMG_FLIP_VERTICAL.

<?php
// Файл
$filename = 'phplogo.png';

// Тип данных
header('Content-type: image/png');

// Загрузка
$im = imagecreatefrompng($filename);

// Переворачиваем по вертикали
imageflip($im, IMG_FLIP_VERTICAL);

// Вывод
imagejpeg($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Результат примера: Перевёрнутое по вертикали изображение

Пример #2 Переворачивает изображение по горизонтали

В этом примере используется константа IMG_FLIP_HORIZONTAL.

<?php
// Файл
$filename = 'phplogo.png';

// Тип данных
header('Content-type: image/png');

// Загрузка
$im = imagecreatefrompng($filename);

// Переворачиваем по горизонтали
imageflip($im, IMG_FLIP_HORIZONTAL);

// Вывод
imagejpeg($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Результат примера: Перевёрнутое по горизонтали изображение


Получение высоты шрифта

  • « imageflip
  • imagefontwidth »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получение высоты шрифта

imagefontheight

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefontheight — Получение высоты шрифта

Описание

imagefontheight(GdFont|int $font): int

Возвращает высоту в пикселах символа заданного шрифта.

Список параметров

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или экземпляр GdFont, возвращаемый функцией imageloadfont()..

Возвращаемые значения

Возвращает высоту в пикселах.

Список изменений

Версия | Описание
8.1.0 | Параметр font теперь принимает как экземпляр GdFont, так и целое число (int); ранее принималось только целое число (int).

Примеры

Пример #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, PHP 8)

imagefontwidth — Получение ширины шрифта

Описание

imagefontwidth(GdFont|int $font): int

Возвращает ширину символа шрифта.

Список параметров

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или экземпляр GdFont, возвращаемый функцией imageloadfont()..

Возвращаемые значения

Возвращает ширину в пикселах

Список изменений

Версия | Описание
8.1.0 | Параметр font теперь принимает как экземпляр GdFont, так и целое число (int); ранее принималось только целое число (int).

Примеры

Пример #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, PHP 8)

imageftbbox — Определение границ текста выводимого шрифтом freetype2

Описание

imageftbbox(
float $size,
float $angle,
string $font_filename,
string $string,
array $options = []
): array|false

Эта функция рассчитывает и возвращает рамку (границы) FreeType текста.

Замечание:

До PHP 8.0.0 imageftbbox() - это расширенный вариант imagettfbbox(), который дополнительно поддерживает extrainfo. Начиная с 8.0.0, imagettfbbox() является псевдонимом imageftbbox().

Список параметров

size

Размер шрифта в типографских пунктах.

angle

Угол в градусах в котором string должен быть измерен.

font_filename

Имя файла TrueType шрифта (может быть URL). В зависимости от версии GD библиотеки функция может попытаться найти файлы, не начинающиеся с '/' путём добавления '.ttf' в конец имени файла и поиска по адресу заданному в библиотеке.

string

Измеряемая строка.

options

Возможные ключи массива options
Ключ | Тип | Значение
linespacing | float | Определяет рисование подчёркиваний

Возвращаемые значения

imageftbbox() возвращает массив из 8 элементов, представляющих четыре точки в углах рамки обрамляющей текст:

0 | нижний левый угол, X координата
1 | нижний левый угол, Y координата
2 | нижний правый угол, X координата
3 | нижний правый угол, Y координата
4 | верхний правый угол, X координата
5 | верхний правый угол, Y координата
6 | верхний левый угол, X координата
7 | верхний левый угол, Y координата

Точки расположены относительно текста text и не зависят от угла angle, таким образом "верхний левый" означает верхняя левая точка текста, если расположить текст горизонтально.

В случае возникновения ошибки возвращает false.

Примеры

Пример #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, PHP 8)

imagefttext — Нанесение текста на изображение, используя шрифты FreeType 2

Описание

imagefttext(
GdImage $image,
float $size,
float $angle,
int $x,
int $y,
int $color,
string $font_filename,
string $text,
array $options = []
): array|false

Замечание:

До PHP 8.0.0 imagefttext() - это расширенный вариант imagettftext(), который дополнительно поддерживает extrainfo. Начиная с PHP 8.0.0, imagettftext() является псевдонимом imagefttext().

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

size

Размер шрифта в пунктах.

angle

Угол в градусах, 0 градусов означает расположение текста слева направо. Положительные значения означают поворот текста против часовой стрелки. Например, текст повёрнутый на 90 градусов нужно будет читать снизу вверх.

x

Координаты x и y определяют отправную точку для первого символа текста (конкретно, левый нижний угол символа). Здесь есть отличие от функции imagestring(), в которой x и y определяют верхний левый угол первого символа. Например, "верхний левый" имеет координаты 0,0.

y

y-координата. Это позиция базовой линии шрифта, в общем случае она не совпадает с низшей точкой в символе.

color

Индекс требуемого цвета текста, смотрите imagecolorexact().

font_filename

Путь к TrueType шрифту, который требуется использовать.

В зависимости от версии GD библиотеки если font_filename не начинается с /, то в конец названия файла будет добавлено расширение .ttf, и библиотека будет пытаться найти этот файл по адресу, определённому в настройках библиотеки.

В большинстве случаев размещение файлов шрифтов в директории скрипта решает подобные проблемы включения файлов.

<?php
// Задание переменной окружения для GD
putenv('GDFONTPATH=' . realpath('.'));

// Имя шрифта для использования (обратите внимание на отсутствие расширения .ttf)
$font = 'SomeFont';
?>

text

Текст для вставки в изображение.

options

Возможные значения массива options
Ключ | Тип | Значение
linespacing | float | Определяет рисование нижнего подчёркивания

Возвращаемые значения

Эта функция возвращает массив, определяющий четыре точки рамки текста. Текст внутри этих границ начинается с левого нижнего угла и поворачивается против часовой стрелки:

0 | нижняя левая x-координата
1 | нижняя левая y-координата
2 | нижняя правая x-координата
3 | нижняя правая y-координата
4 | верхняя правая x-координата
5 | верхняя правая y-координата
6 | верхняя левая x-координата
7 | верхняя левая y-координата

В случае возникновения ошибки возвращает false.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagegammacorrect — Применение гамма коррекции к GD изображению

Описание

imagegammacorrect(GdImage $image, float $input_gamma, float $output_gamma): bool

Применяет гамма коррекцию к изображению image согласно заданным входным и выходным настройкам.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

input_gamma

Входная настройка гаммы.

output_gamma

Выходная настройка гаммы.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagegd2 — Вывод GD2 изображения в браузер или файл

Описание

imagegd2(
GdImage $image,
?string $file = null,
int $chunk_size = 128,
int $mode = IMG_GD2_RAW
): bool

Выводит GD2 изображение в заданный файл file.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

file

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен null, изображение будет выведено в поток вывода в бинарном виде.

chunk_size

Размер части изображения.

mode

Либо IMG_GD2_RAW, либо IMG_GD2_COMPRESSED. По умолчанию IMG_GD2_RAW.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернёт true.

Список изменений

Версия | Описание
8.0.3 | file теперь допускает значение null.
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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-совместимых приложениях.

Внимание

Форматы изображений GD и GD2 являются проприетарными форматами изображений libgd. Они должны рассматриваться как устаревшие и должны использоваться только для целей разработки и тестирования.

Смотрите также

  • imagegd() - Вывод GD-изображения в браузер или в файл


Вывод GD-изображения в браузер или в файл

  • « imagegd2
  • imagegetclip »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Вывод GD-изображения в браузер или в файл

imagegd

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagegd — Вывод GD-изображения в браузер или в файл

Описание

imagegd(GdImage $image, ?string $file = null): bool

Вывод GD-изображения в file.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

file

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен null, изображение будет выведено в поток вывода в бинарном виде.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернёт true.

Список изменений

Версия | Описание
8.0.3 | file теперь допускает значение null.
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
7.2.0 | Теперь imagegd() позволяет сохранять изображения "truecolor". Раньше они неявно преобразовывались к палитре.

Примеры

Пример #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-совместимых приложениях.

Внимание

Форматы изображений GD и GD2 являются проприетарными форматами изображений libgd. Они должны рассматриваться как устаревшие и должны использоваться только для целей разработки и тестирования.

Смотрите также

  • imagegd2() - Вывод GD2 изображения в браузер или файл


Получить отсекающий прямоугольник

  • « imagegd
  • imagegetinterpolation »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получить отсекающий прямоугольник

imagegetclip

(PHP 7 >= 7.2.0, PHP 8)

imagegetclip — Получить отсекающий прямоугольник

Описание

imagegetclip(GdImage $image): array

imagegetclip() возвращает текущий отсекающий прямоугольник, т.е. область, за пределами которой не будут отрисовываться пиксели.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Функция возвращает индексированный массив с координатами отсекающим прямоугольником, который имеет следующие записи:

  • x-координата верхнего левого угла
  • y-координата верхнего левого угла
  • x-координата нижнего правого угла
  • y-координата нижнего правого угла

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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
  • imagegif »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получает метод интерполяции

imagegetinterpolation

(PHP 8)

imagegetinterpolation — Получает метод интерполяции

Описание

imagegetinterpolation(GdImage $image): int

Получает текущий установленный метод интерполяции image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает метод интерполяции.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Смотрите также

  • imagesetinterpolation() - Устанавливает метод интерполяции


Выводит изображение в браузер или пишет в файл

  • « imagegetinterpolation
  • imagegrabscreen »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Выводит изображение в браузер или пишет в файл

imagegif

(PHP 4, PHP 5, PHP 7, PHP 8)

imagegif — Выводит изображение в браузер или пишет в файл

Описание

imagegif(GdImage $image, resource|string|null $file = null): bool

imagegif() создаёт GIF файл file из изображения image. Аргумент image возвращается функциями imagecreate() или imagecreatefrom*.

Файл будет иметь формат GIF87a, если изображение не было сделано прозрачным функцией imagecolortransparent(). В этом случае форматом файла будет GIF89a.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

file

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен null, изображение будет выведено в поток вывода в бинарном виде.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернёт true.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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 успешно завершено!';
?>

Примечания

Замечание:

Следующий пример кода позволит вам писать 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, PHP 8)

imagegrabscreen — Захватывает изображение с экрана

Описание

imagegrabscreen(): GdImage|false

Делает скриншот.

Замечание:

Функция доступна только в Windows.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения, false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagegrabwindow — Захватывает изображение окна

Описание

imagegrabwindow(int $handle, bool $client_area = false): GdImage|false

Делает снимок окна или его клиентской части, используя windows обработчик (свойство HWND COM объекта)

Замечание:

Функция доступна только в Windows.

Список параметров

handle

ID окна HWND.

client_area

Включает клиентскую часть окна приложения.

Возвращаемые значения

Возвращает объект изображения в случае успешного выполнения, false в случае возникновения ошибки.

Ошибки

E_NOTICE выдаётся, если handle является недопустимым обработчиком окна. E_WARNING выдаётся, если Windows API устарел.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).
8.0.0 | client_area теперь ожидает логическое значение (bool); ранее ожидалось целое число (int).

Примеры

Пример #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, PHP 8)

imageinterlace — Включение или выключение интерлейсинга

Описание

imageinterlace(GdImage $image, ?bool $enable = null): bool

imageinterlace() переключает состояние бита интерлейсинга.

Если установить бит интерлейсинга, а изображение загрузить, как JPEG, это приведёт к созданию прогрессивного JPEG.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

interlace

Если значение true, изображение будет разбито на чередующиеся строки, в противном случае бит интерлейсинга будет установлен в false.

Возвращаемые значения

Возвращает true, если бит интерлейсинга установлен, false в противном случае.

Список изменений

Версия | Описание
8.0.5 | imageinterlace() теперь возвращает логическое значение (bool); ранее она возвращала целое число (int). (ненулевое значение для изображений с интерлейсингом, в противном случае - ноль).
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
8.0.0 | enable теперь ожидает логическое значение (bool); ранее ожидалось целое число (int).

Примеры

Пример #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, PHP 8)

imageistruecolor — Определяет, является ли изображение полноцветным

Описание

imageistruecolor(GdImage $image): bool

imageistruecolor() определяет, является ли изображение image полноцветным.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает true, если image полноцветное, false в противном случае.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagejpeg — Выводит изображение в браузер или пишет в файл

Описание

imagejpeg(GdImage $image, resource|string|null $file = null, int $quality = -1): bool

Функция imagejpeg() создаёт файл JPEG из изображенияimage.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

file

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен null, изображение будет выведено в поток вывода в бинарном виде.

quality

Необязательный параметр, и может принимать значения в диапазоне от 0 (низкое качество, маленький размер файла) до 100 (высокое качество, большой размер файла). По умолчанию (-1) используется качество IJG (около 75).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернёт true.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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');

// Пропускаем параметр file, используя 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, PHP 8)

imagelayereffect — Установка флага альфа сопряжения для использования эффектов наложения изображений

Описание

imagelayereffect(GdImage $image, int $effect): bool

Установка флага альфа сопряжения для использования эффектов наложения изображений.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как 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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
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()


Рисование линии

  • « imagelayereffect
  • imageloadfont »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование линии

imageline

(PHP 4, PHP 5, PHP 7, PHP 8)

imageline — Рисование линии

Описание

imageline(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2,
int $color
): bool

Рисует линию соединяющую две точки.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

x-координата первой точки.

y1

y-координата первой точки.

x2

x-координата второй точки.

y2

y-координата второй точки.

color

Цвет линии. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imageloadfont — Загрузка шрифта

Описание

imageloadfont(string $filename): GdFont|false

imageloadfont() загружает определённый пользователем шрифт и возвращает его идентификатор.

Список параметров

filename

Формат файла шрифта двоичный и зависит от архитектуры системы. Это означает необходимость генерировать файл шрифта на том же процессоре, на котором работает PHP.

Формат файла шрифта
позиция байта | тип данных C | описание
байты 0-3 | int | количество символов в шрифте
байты 4-7 | int | значение первого символа в шрифте (часто 32 - пробел)
байты 8-11 | int | ширина пиксела каждого символа
байты 12-15 | int | высота пиксела каждого символа
байты 16- | char | массив с данными символов, один байт на пиксел в каждом символе. Для всех кол-во*высота*ширина байт.

Возвращаемые значения

Возвращает экземпляр GdFont или false в случае возникновения ошибки. Идентификатор шрифта, который всегда больше 5 для предотвращения конфликтов со встроенными шрифтами, либо false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр GdFont; ранее возвращалось целое число (int).

Примеры

Пример #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, PHP 8)

imageopenpolygon — Рисует открытый полигон

Описание

Сигнатура, начиная с PHP 8.0.0 (не поддерживается с именованными аргументами)

imageopenpolygon(GdImage $image, array $points, int $color): bool

Альтернативный синтаксис (начиная с PHP 8.0.0)

imageopenpolygon(
GdImage $image,
array $points,
int $num_points,
int $color
): bool

imageopenpolygon() рисует открытый полигон на заданном изображении (image). В отличие от imagepolygon(), линия между последней и первой точкой не рисуется.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

points

Массив, содержащий вершины многоугольника, например:

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Общее число точек (вершин), должно быть не меньше 3.

Если этот параметр опущен (смотрите альтернативный синтаксис), то массив points должен содержать чётное количество элементов и num_points будет вычислено как count($points)/2.
color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр num_points объявлен устаревшим.
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #1 Пример использования imageopenpolygon()

<?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, PHP 8)

imagepalettecopy — Копирование палитры из одного изображения в другое

Описание

imagepalettecopy(GdImage $dst, GdImage $src): void

imagepalettecopy() копирует палитру цветов из изображения src в изображение dst.

Список параметров

dst

Объект результирующего изображения.

src

Объект исходного изображения.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | dst и src теперь ожидают экземпляр GdImage; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagepalettetotruecolor — Преобразует изображение на основе палитры в настоящий цвет

Описание

imagepalettetotruecolor(GdImage $image): bool

Преобразует на основе палитры изображение, созданное функцией, такой как imagecreate() до настоящего (true) цвета изображения, как imagecreatetruecolor().

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает true, если преобразование завершено, или если исходное изображение уже является изображением настоящего цвета, в противном случае возвращается false.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagepng — Вывод PNG изображения в браузер или файл

Описание

imagepng(
GdImage $image,
resource|string|null $file = null,
int $quality = -1,
int $filters = -1
): bool

Выводит или сохраняет PNG изображение image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

file

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен 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.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

<?php
$im = imagecreatefrompng("test.png");

header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Смотрите также

  • imagegif() - Выводит изображение в браузер или пишет в файл
  • imagewbmp() - Выводит изображение в браузер или пишет в файл
  • imagejpeg() - Выводит изображение в браузер или пишет в файл
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой
  • imagesavealpha() - Сохранять ли полную информацию альфа-канала при сохранении изображений


Рисование многоугольника

  • « imagepng
  • imagerectangle »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование многоугольника

imagepolygon

(PHP 4, PHP 5, PHP 7, PHP 8)

imagepolygon — Рисование многоугольника

Описание

Сигнатура, начиная с PHP 8.0.0 (не поддерживается с именованными аргументами)

imagepolygon(GdImage $image, array $points, int $color): bool

Альтернативный синтаксис (объявлен устаревшим с PHP 8.1.0)

imagepolygon(
GdImage $image,
array $points,
int $num_points,
int $color
): bool

imagepolygon() создаёт многоугольник в изображении image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

points

Массив вершин многоугольника:

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Общее число точек (вершин), должно быть не меньше 3.

Если этот параметр опущен (смотрите альтернативный синтаксис), то массив points должен содержать чётное количество элементов и num_points будет вычислено как count($points)/2.
color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр num_points объявлен устаревшим.
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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() - Создание нового полноцветного изображения


Рисование прямоугольника

  • « imagepolygon
  • imageresolution »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование прямоугольника

imagerectangle

(PHP 4, PHP 5, PHP 7, PHP 8)

imagerectangle — Рисование прямоугольника

Описание

imagerectangle(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2,
int $color
): bool

imagerectangle() рисует прямоугольник с заданными координатами углов.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

Верхняя левая x координата.

y1

Верхняя левая y координата 0, 0 - левый верхний угол изображения.

x2

Нижняя правая x координата.

y2

Нижняя правая y координата.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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()


Получить или установить разрешение изображения

  • « imagerectangle
  • imagerotate »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Получить или установить разрешение изображения

imageresolution

(PHP 7 >= 7.2.0, PHP 8)

imageresolution — Получить или установить разрешение изображения

Описание

imageresolution(GdImage $image, ?int $resolution_x = null, ?int $resolution_y = null): array|bool

imageresolution() позволяет установить и получить разрешение изображения в DPI (точек на дюйм). Если необязательные параметры указаны как null, то будет возращено текущее разрешение в виде индексированного массива. Если только resolution_x не является null, для горизонтального и вертикального разрешения будет установлено это значение. Если все необязательные параметры не являются null, для горизонтального и вертикального разрешения устанавливаются эти значения соответственно.

Разрешение используется только как метаданные во время чтения или записи изображений в форматы, которые поддерживают этот вид данных (на данный момент это PNG и JPEG). Это никак не влияет на любые операции рисования. Разрешение по умолчанию для новых изображений — 96 DPI.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

resolution_x

Горизонтальное разрешение в DPI.

resolution_y

Вертикальное разрешение в DPI.

Возвращаемые значения

Когда используется для получения информации о разрешении изображения, в случае успешного выполнения возвращается индексированный массив с информацией о горизонтальном и вертикальном разрешении или false в случае возникновения ошибки. Когда используется для установки разрешения изображения, в случае успешного выполнения возвращается true или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | resolution_x и resolution_y теперь допускают значение null.

Примеры

Пример #1 Установка и получение разрешения изображения

<?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, PHP 8)

imagerotate — Поворот изображения с заданным углом

Описание

imagerotate(GdImage $image, float $angle, int $background_color): GdImage|false

Поворот изображения image на заданный угол angle в градусах.

Центром поворота является центр изображения. Поворачиваемое изображение может отличаться размером от оригинала.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

angle

Угол поворота в градусах против часовой стрелки.

background_color

Цвет фона свободной зоны после поворота.

Возвращаемые значения

Возвращает объект повёрнутого изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.3.0 | Неиспользуемый параметр ignore_transparent был полностью удалён.
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
8.0.0 | Неиспользуемый v теперь ожидает логическое значение (bool); ранее ожидалось целое число (int).

Примеры

Пример #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() - Устанавливает метод интерполяции


Сохранять ли полную информацию альфа-канала при сохранении изображений

  • « imagerotate
  • imagescale »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Сохранять ли полную информацию альфа-канала при сохранении изображений

imagesavealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

imagesavealpha — Сохранять ли полную информацию альфа-канала при сохранении изображений

Описание

imagesavealpha(GdImage $image, bool $enable): bool

imagesavealpha() устанавливает флаг, определяющий, будет ли сохраняться полная информация альфа-канала (в противовес одноцветной прозрачности) и сохраняет изображение. Поддерживается только для форматов изображений, которые содержат полную информацию об альфа-канале, т.е. PNG, WebP и AVIF.

Замечание: Функция imagesavealpha() имеет смысл только для изображений PNG, поскольку для WebP и AVIF всегда сохраняется полный альфа-канал. Не рекомендуется полагаться на это поведение, так как оно может измениться в будущем. Таким образом, функцию imagesavealpha() следует вызывать намеренно также для изображений WebP и AVIF.

Альфа-смешивание должно быть отключено (imagealphablending($im, false)), чтобы альфа-канал сохранялся в первую очередь.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

enable

Требуется ли сохранять альфа канал или нет. По умолчанию false.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagescale — Масштабировать изображение по заданной ширине и высоте

Описание

imagescale(
GdImage $image,
int $width,
int $height = -1,
int $mode = IMG_BILINEAR_FIXED
): GdImage|false

imagescale() масштабирует изображение, используя заданный алгоритм интерполяции.

Замечание:

В отличие от многих функций по работе с изображениями, imagescale() не изменяет переданный параметр image; вместо него будет возвращено новое изображение.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

width

Ширина для масштабирования.

height

Высота для масштабирования изображения. Если этот параметр опущен или отрицателен, соотношение сторон будет сохранено.

mode

Одна из констант IMG_NEAREST_NEIGHBOUR, IMG_BILINEAR_FIXED, IMG_BICUBIC, IMG_BICUBIC_FIXED или что-либо ещё (будет использовано два прохода).

Замечание: IMG_WEIGHTED4 пока ещё не поддерживается.

Возвращаемые значения

Возвращает объект масштабированного изображения в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource).
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Смотрите также

  • imagecopyresized() - Копирование и изменение размера части изображения
  • imagecopyresampled() - Копирование и изменение размера изображения с ресемплированием


Установка изображения (кисти), посредством которого будут рисоваться линии

  • « imagescale
  • imagesetclip »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Установка изображения (кисти), посредством которого будут рисоваться линии

imagesetbrush

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagesetbrush — Установка изображения (кисти), посредством которого будут рисоваться линии

Описание

imagesetbrush(GdImage $image, GdImage $brush): bool

imagesetbrush() задаёт изображение, которое будет использоваться функциями для рисования линий (такими как imageline() и imagepolygon()) при использовании цветов IMG_COLOR_BRUSHED или IMG_COLOR_STYLEDBRUSHED.

Предостережение

Дополнительных действий после завершения работы с кистью не требуется, однако если изображение кисти уничтожено, нельзя пользоваться цветами IMG_COLOR_BRUSHED или IMG_COLOR_STYLEDBRUSHED, пока не будет установлено новое изображение кисти!

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

brush

Объект изображения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image и brush теперь ожидают экземпляр GdImage; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagesetclip — Установите прямоугольник ограничения

Описание

imagesetclip(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2
): bool

imagesetclip() задаёт текущий прямоугольник ограничения, т.е. область, за пределами которой не будут отрисовываться пиксели.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

Координата по x верхнего левого угла.

y1

Координата по y верхнего левого угла.

x2

Координата по x нижнего левого угла.

y2

Координата по y нижнего правого угла.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Смотрите также

  • imagegetclip() - Получить отсекающий прямоугольник


Устанавливает метод интерполяции

  • « imagesetclip
  • imagesetpixel »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Устанавливает метод интерполяции

imagesetinterpolation

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagesetinterpolation — Устанавливает метод интерполяции

Описание

imagesetinterpolation(GdImage $image, int $method = IMG_BILINEAR_FIXED): bool

Устанавливает метод интерполяции, установка метода интерполяции влияет на отображение различных функций в GD, таких как функция imagerotate().

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

method

Метод интерполяции, который может быть одним из следующих:

  • IMG_BELL: Фильтр Белла.
  • IMG_BESSEL: Фильтр Бесселя.
  • IMG_BICUBIC: Бикубическая интерполяция.
  • IMG_BICUBIC_FIXED: Фиксированная точка реализации бикубической интерполяции.
  • IMG_BILINEAR_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: Треугольная интерполяция.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #1 Пример использования imagesetinterpolation()

<?php
// Загрузка изображения
$im = imagecreate(500, 500);

// По умолчанию интерполяция IMG_BILINEAR_FIXED, переключитесь
// на использование фильтра 'Митчелла':
imagesetinterpolation($im, IMG_MITCHELL);

// Continue to work with $im ...
?>

Примечания

Изменение метода интерполяции влияет на следующие функции при отображении:

  • imageaffine()
  • imagerotate()

Смотрите также

  • imagegetinterpolation() - Получает метод интерполяции


Рисование точки

  • « imagesetinterpolation
  • imagesetstyle »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Рисование точки

imagesetpixel

(PHP 4, PHP 5, PHP 7, PHP 8)

imagesetpixel — Рисование точки

Описание

imagesetpixel(
GdImage $image,
int $x,
int $y,
int $color
): bool

imagesetpixel() рисует точку (пиксел) на заданных координатах.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

x

x-координата.

y

y-координата.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagesetstyle — Установка стиля рисования линий

Описание

imagesetstyle(GdImage $image, array $style): bool

imagesetstyle() задаёт стиль, который будет использоваться функциями рисования линий (такими как imageline() и imagepolygon()) при задании специального цвета IMG_COLOR_STYLED или IMG_COLOR_STYLEDBRUSHED.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как 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, PHP 8)

imagesetthickness — Установка толщины линий

Описание

imagesetthickness(GdImage $image, int $thickness): bool

imagesetthickness() задаёт значение толщины линий для рисования отрезков, прямоугольников, многоугольников, эллипсов и т.п. в thickness пикселов.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

thickness

Толщина в пикселах.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagesettile — Установка изображения, которое будет использовано в качестве элемента мозаичной заливки

Описание

imagesettile(GdImage $image, GdImage $tile): bool

imagesettile() задаёт изображение, которое будет использовано в качестве элемента мозаичной заливки такими функциями, как imagefill() и imagefilledpolygon() при использовании специального цвета IMG_COLOR_TILED.

Это изображение используется для замощения области изображения его копиями. Может использовать любое GD изображение. А если задать прозрачный цвет для этого изображения функцией imagecolortransparent(), некоторые части нижележащего изображения будут просвечивать через созданную мозаику.

Предостережение

Дополнительных действий после завершения работы с мозаичным элементом не требуется, однако если это изображение будет удалено (или позволить PHP удалить его), нельзя использовать цвет IMG_COLOR_TILED до тех пор, пока не будет задано новое изображение!

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

tile

Объект изображения для использования в мозаике.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image и tile теперь ожидают экземпляр GdImage; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

imagestring — Рисование строки текста горизонтально

Описание

imagestring(
GdImage $image,
GdFont|int $font,
int $x,
int $y,
string $string,
int $color
): bool

Рисует текст string на заданных координатах.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или экземпляр GdFont, возвращаемый функцией imageloadfont()..

x

x-координата верхнего левого угла.

y

y-координата верхнего левого угла.

string

Строка текста.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр font теперь принимает как экземпляр GdFont, так и целое число (int); ранее принималось только целое число (int).
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagestringup — Рисование строки текста вертикально

Описание

imagestringup(
GdImage $image,
GdFont|int $font,
int $x,
int $y,
string $string,
int $color
): bool

Рисует текст string вертикально на заданных координатах.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или экземпляр GdFont, возвращаемый функцией imageloadfont()..

x

x-координата нижнего левого угла.

y

y-координата нижнего левого угла.

string

Текст надписи.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр font теперь принимает как экземпляр GdFont, так и целое число (int); ранее принималось только целое число (int).
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagesx — Получение ширины изображения

Описание

imagesx(GdImage $image): int

Возвращает ширину заданного изображения image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает ширину изображения image.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagesy — Получение высоты изображения

Описание

imagesy(GdImage $image): int

Возвращает высоту заданного изображения image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает высоту изображения image.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagetruecolortopalette — Преобразование полноцветного изображения в палитровое

Описание

imagetruecolortopalette(GdImage $image, bool $dither, int $num_colors): bool

imagetruecolortopalette() преобразует полноцветное изображение в палитровое. Код этой функции взят из кода библиотеки Независимой Группы JPEG. Код был модифицирован, чтобы сохранялось максимум информации об альфа компонентах цветов, а также передавались цвета в лучшем виде насколько это возможно. Но в итоге код работает не так хорошо, как хотелось бы. В связи с этим функцию можно использовать для вывода полноцветных изображений, она гарантирует самое высокое качество вывода. Но не более того.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

dither

Если задано true, изображение будет сглаживаться. Сглаживание увеличивает шумность картинки, но в то же время обеспечивает лучшую передачу цветов.

num_colors

Задаёт максимальное количество цветов в палитре.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagettfbbox — Получение параметров рамки обрамляющей текст написанный TrueType шрифтом

Описание

imagettfbbox(
float $size,
float $angle,
string $font_filename,
string $string,
array $options = []
): array|false

Эта функция рассчитывает и возвращает параметры рамки вокруг TrueType текста в пикселах.

Замечание:

До PHP 8.0.0 imageftbbox() - это расширенный вариант imagettfbbox() который дополнительно поддерживает extrainfo. Начиная с PHP 8.0.0, imagettfbbox() является псевдонимом imageftbbox().

Список параметров

size

Размер шрифта в типографских пунктах.

angle

Угол в градусах в котором будет измерен string.

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.

string

Измеряемая строка.

Возвращаемые значения

imagettfbbox() возвращает массив из 8 элементов представляющих координаты четырёх точек - вершин рамки вокруг текста. В случае ошибки функция вернёт false.

ключ | содержимое
0 | нижний левый угол, X координата
1 | нижний левый угол, Y координата
2 | нижний правый угол, X координата
3 | нижний правый угол, Y координата
4 | верхний правый угол, X координата
5 | верхний правый угол, Y координата
6 | верхний левый угол, X координата
7 | верхний левый угол, Y координата

Точки рассчитаны относительно текста text и независимо от угла angle. То есть "верхний левый" означает верхний левый угол, если смотреть на текст горизонтально.

Список изменений

Версия | Описание
8.0.0 | Добавлен параметр options.

Примеры

Пример #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, PHP 8)

imagettftext — Рисование текста на изображении шрифтом TrueType

Описание

imagettftext(
GdImage $image,
float $size,
float $angle,
int $x,
int $y,
int $color,
string $font_filename,
string $text,
array $options = []
): array|false

Наносит текст text поверх изображения, используя TrueType шрифт.

Замечание:

До PHP 8.0.0 imagefttext() - это расширенный вариант imagettftext(), который дополнительно поддерживает extrainfo. Начиная с PHP 8.0.0, imagettftext() является псевдонимом imagefttext().

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как 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.

Список изменений

Версия | Описание
8.0.0 | Добавлен параметр options.

Примеры

Пример #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, PHP 8)

imagetypes — Возвращает список типов изображений, поддерживаемых PHP сборкой

Описание

imagetypes(): int

Возвращает типы поддерживаемых текущей сборкой PHP изображений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает битовое поле соответствующее форматам изображений, которые поддерживаются текущей версией GD прилинкованной к PHP. Возвращаются следующие биты: IMG_AVIF | IMG_BMP | IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM | IMG_WEBP.

Список изменений

Версия | Описание
8.1.0 | Добавлена константа IMG_AVIF.
7.2.0 | Добавлена константа IMG_BMP.
7.0.10 | Добавлена константа IMG_WEBP.

Примеры

Пример #1 Проверка поддержки PNG

<?php
if (imagetypes() & IMG_PNG) {
echo "Поддержка PNG включена";
}
?>

Смотрите также

  • gd_info() - Вывод информации о текущей установленной GD библиотеке


Выводит изображение в браузер или пишет в файл

  • « imagetypes
  • imagewebp »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Выводит изображение в браузер или пишет в файл

imagewbmp

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

imagewbmp — Выводит изображение в браузер или пишет в файл

Описание

imagewbmp(GdImage $image, resource|string|null $file = null, ?int $foreground_color = null): bool

imagewbmp() выводит или сохраняет в формате WBMP заданное изображение image.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

file

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен null, изображение будет выведено в поток вывода в бинарном виде.

foreground_color

Можно задать цвет верхнего слоя. Цвет задаётся идентификатором, созданным функцией imagecolorallocate(). По умолчанию цвет чёрный.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернёт true.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
8.0.0 | foreground_color теперь допускает значение null.

Примеры

Пример #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, PHP 8)

imagewebp — Вывод изображения WebP в браузер или файл

Описание

imagewebp(GdImage $image, resource|string|null $file = null, int $quality = -1): bool

Выведет или сохранит WebP-версию данного изображения (image).

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

file

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен null, изображение будет выведено в поток вывода в бинарном виде.

quality

quality варьируется от 0 (худшее качество, меньший размер файла) до 100 (наилучшее качество, большой файл).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернёт true.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).

Примеры

Пример #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, PHP 8)

imagexbm — Вывод XBM изображения в браузер или файл

Описание

imagexbm(GdImage $image, ?string $filename, ?int $foreground_color = null): bool

Вывод или сохранение в формате XBM изображения image.

Замечание: imagexbm() не использует дополнение, так что ширина изображения должна быть кратна 8. Это ограничение не накладывается с версий PHP 7.0.9.

Список параметров

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

filename

Путь, по которому сохранять файл, заданный как строка (string) Если не установлено, или равно null, будет произведён прямой вывод необработанного потока изображения.

filename (без расширения .xbm) также используется как идентификатор C XBM, при этом символы, не являющиеся в текущей локали цифрами или буквами, заменяются на подчёркивание. Если filename задан как null, image будет использован для создания идентификатора C.

foreground_color

Можно задать цвет верхнего слоя. Цвет задаётся идентификатором созданным функцией imagecolorallocate(). По умолчанию цвет чёрный. Все остальные цвета интерпретируются как цвета подложки (background).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернёт true.

Список изменений

Версия | Описание
8.0.0 | image теперь ожидает экземпляр GdImage; ранее ожидался корректный gd ресурс (resource).
8.0.0 | foreground_color теперь допускает значение null.
8.0.0 | Четвёртый параметр, который не использовался, был удалён.

Примеры

Пример #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, PHP 8)

iptcembed — Встраивание двоичных IPTC данных в JPEG изображение

Описание

iptcembed(string $iptc_data, string $filename, int $spool = 0): string|bool

Включает двоичные IPTC данные в JPEG изображение.

Список параметров

iptc_data

Данные.

filename

Путь к 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, PHP 8)

iptcparse — Разбор двоичных IPTC данных на отдельные теги

Описание

iptcparse(string $iptc_block): array|false

Разбирает » IPTC данные на отдельные теги.

Список параметров

iptc_block

Двоичные данные 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

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.2.0 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

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
  • GdImage »
  • PHP Manual
  • Функции GD и функции для работы с изображениями
  • Преобразование PNG файла в WBMP

png2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

png2wbmp — Преобразование PNG файла в WBMP

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.2.0 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

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


Класс GdImage

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы gd в PHP 8.0.0.

Обзор классов

final class GdImage {
}


Класс GdFont

(PHP 8 >= 8.1.0)

Введение

Полностью непрозрачный класс, заменяющий ресурс gd font в PHP 8.1.0.

Обзор классов

final class GdFont {
}


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 — Накладывает одно изображение на другое
    • Gmagick::__construct — Конструктор объекта Gmagick
    • Gmagick::cropimage — Обрезает изображение
    • Gmagick::cropthumbnailimage — Создание обрезанного уменьшенного изображения
    • Gmagick::current — Вернуть самого себя
    • Gmagick::cyclecolormapimage — Смещает цветовую карту изображения
    • Gmagick::deconstructimages — Возвращает определённые пиксельные различия между изображениями
    • Gmagick::despeckleimage — Назначение despeckleimage
    • Gmagick::destroy — Уничтожить объект Gmagick
    • Gmagick::drawimage — Отображает объект GmagickDraw на текущем изображении
    • Gmagick::edgeimage — Увеличивает края в изображении
    • Gmagick::embossimage — Возвращает изображение в градациях серого с трёхмерным эффектом
    • Gmagick::enhanceimage — Улучшает качество изображения с шумом
    • Gmagick::equalizeimage — Выравнивает гистограмму изображения
    • Gmagick::flipimage — Создаёт вертикальное зеркальное отображение
    • Gmagick::flopimage — Создаёт горизонтальное зеркальное отображение
    • Gmagick::frameimage — Добавляет смоделированную трёхмерную границу
    • Gmagick::gammaimage — Гамма-коррекция изображения
    • Gmagick::getcopyright — Возвращает копирайт GraphicsMagick API в виде строки
    • Gmagick::getfilename — Возвращает имя файла связанного с последовательностью изображений
    • Gmagick::getimagebackgroundcolor — Возвращает цвет фона изображения
    • Gmagick::getimageblueprimary — Возвращает цветность синей первичной точки
    • Gmagick::getimagebordercolor — Возвращает цвет границы изображения
    • Gmagick::getimagechanneldepth — Получает глубину для определённого канала изображения
    • Gmagick::getimagecolors — Возвращает цвет указанного индекса карты цветов
    • Gmagick::getimagecolorspace — Возвращает цветовое пространство изображения
    • Gmagick::getimagecompose — Возвращает составной оператор, связанный с изображением
    • Gmagick::getimagedelay — Получает задержку изображения
    • Gmagick::getimagedepth — Получает глубину изображения
    • Gmagick::getimagedispose — Получает метод удаления изображения
    • Gmagick::getimageextrema — Получает экстремумы для изображения
    • Gmagick::getimagefilename — Возвращает имя файла конкретного изображения в последовательности
    • Gmagick::getimageformat — Возвращает формат конкретного изображения в последовательности
    • Gmagick::getimagegamma — Возвращает гамму изображения
    • Gmagick::getimagegreenprimary — Возвращает первичную зелёную точку
    • Gmagick::getimageheight — Возвращает высоту изображения
    • Gmagick::getimagehistogram — Возвращает гистограмму изображения
    • Gmagick::getimageindex — Возвращает индекс текущего активного изображения
    • Gmagick::getimageinterlacescheme — Получает схему чередования изображений
    • Gmagick::getimageiterations — Получает итерации изображения
    • Gmagick::getimagematte — Проверяет, есть ли на изображении матовый канал
    • Gmagick::getimagemattecolor — Возвращает изображение матового цвета
    • Gmagick::getimageprofile — Возвращает именованный профайл изображения
    • Gmagick::getimageredprimary — Возвращает первичную красную точку
    • Gmagick::getimagerenderingintent — Получает цель рендеринга изображения
    • Gmagick::getimageresolution — Возвращает разрешение изображения
    • Gmagick::getimagescene — Получает сцену изображения
    • Gmagick::getimagesignature — Создаёт подпись сообщения SHA-256
    • 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 — Создаёт копию изображения
    • Gmagick::labelimage — Добавляет метку к изображению
    • Gmagick::levelimage — Регулирует уровни изображения
    • Gmagick::magnifyimage — Пропорционально масштабирует изображение в 2 раза
    • Gmagick::mapimage — Заменяет цвета изображения на ближайший цвет из эталонного изображения
    • Gmagick::medianfilterimage — Применяет цифровой фильтр
    • Gmagick::minifyimage — Масштабирует изображение пропорционально половине его размера
    • Gmagick::modulateimage — Управляет яркостью, насыщенностью и оттенком
    • Gmagick::motionblurimage — Имитирует размытие при движении
    • Gmagick::newimage — Создаёт новое изображение
    • Gmagick::nextimage — Осуществляет переход к следующему изображению
    • Gmagick::normalizeimage — Повышает контрастность цветного изображения
    • Gmagick::oilpaintimage — Имитирует эффект картины маслом
    • Gmagick::previousimage — Осуществляет переход к предыдущему изображению в объекте
    • Gmagick::profileimage — Добавляет или удаляет профиль из изображения
    • Gmagick::quantizeimage — Анализирует цвета эталонного изображения
    • Gmagick::quantizeimages — Анализирует цвета в последовательности изображений
    • Gmagick::queryfontmetrics — Возвращает массив, представляющий метрики шрифта
    • Gmagick::queryfonts — Возвращает настроенные шрифты
    • Gmagick::queryformats — Возвращает форматы, поддерживаемые Gmagick
    • Gmagick::radialblurimage — Применяет радиальное размытие к изображению
    • Gmagick::raiseimage — Создаёт имитацию эффекта трёхмерной кнопки
    • Gmagick::read — Читает изображение из файла
    • Gmagick::readimage — Читает изображение из файла
    • Gmagick::readimageblob — Читает изображение из бинарной строки
    • Gmagick::readimagefile — Читает изображение или последовательность изображений из файлового дескриптора
    • Gmagick::reducenoiseimage — Сглаживает контуры изображения
    • Gmagick::removeimage — Удаляет изображение из списка
    • Gmagick::removeimageprofile — Удаляет именованный профайл изображения и возвращает его
    • Gmagick::resampleimage — Изменяет разрешение изображения до желаемого
    • Gmagick::resizeimage — Масштабирует изображение
    • Gmagick::rollimage — Смещает изображение
    • Gmagick::rotateimage — Поворачивает изображение
    • Gmagick::scaleimage — Масштабирует размер изображения
    • Gmagick::separateimagechannel — Отделяет канал от изображения
    • Gmagick::setCompressionQuality — Устанавливает качество сжатия объекта по умолчанию
    • Gmagick::setfilename — Устанавливает имя файла перед чтением или записью изображения
    • Gmagick::setimagebackgroundcolor — Устанавливает цвет фона изображения
    • Gmagick::setimageblueprimary — Устанавливает цветность изображения голубой основной точкой
    • Gmagick::setimagebordercolor — Устанавливает цвет рамки изображения
    • Gmagick::setimagechanneldepth — Устанавливает глубину определённого канала изображения
    • Gmagick::setimagecolorspace — Устанавливает цветовое пространство изображения
    • Gmagick::setimagecompose — Устанавливает оператор составного изображения
    • Gmagick::setimagedelay — Устанавливает задержку изображения
    • Gmagick::setimagedepth — Устанавливает глубину изображения
    • Gmagick::setimagedispose — Устанавливает метод удаления изображения
    • Gmagick::setimagefilename — Устанавливает имя файла конкретного изображения в последовательности
    • Gmagick::setimageformat — Устанавливает формат определённого изображения
    • Gmagick::setimagegamma — Устанавливает гамму изображения
    • Gmagick::setimagegreenprimary — Устанавливает цветность изображения зелёной первичной точкой
    • Gmagick::setimageindex — Устанавливает итератор в положение в списке изображений, заданном параметром index
    • Gmagick::setimageinterlacescheme — Устанавливает схему чересстрочной развёртки изображения
    • Gmagick::setimageiterations — Устанавливает итерации изображения
    • Gmagick::setimageprofile — Добавляет именованный профиль в объект Gmagick
    • Gmagick::setimageredprimary — Устанавливает цветность изображения красной основной точкой
    • Gmagick::setimagerenderingintent — Устанавливает способ рендеринга изображения
    • Gmagick::setimageresolution — Устанавливает разрешение изображения
    • Gmagick::setimagescene — Устанавливает сцену изображения
    • Gmagick::setimagetype — Устанавливает тип изображения
    • Gmagick::setimageunits — Устанавливает единицы разрешения изображения
    • Gmagick::setimagewhitepoint — Устанавливает цветность изображения белой точкой
    • Gmagick::setsamplingfactors — Устанавливает факторы выборки изображения
    • Gmagick::setsize — Устанавливает размер объекта Gmagick
    • Gmagick::shearimage — Создаёт параллелограмм
    • Gmagick::solarizeimage — Применяет соляризационный эффект к изображению
    • Gmagick::spreadimage — Случайно смещает каждый пиксель в блоке
    • Gmagick::stripimage — Снимает изображение всех профилей и комментариев
    • Gmagick::swirlimage — Закручивает пиксели вокруг центра изображения
    • Gmagick::thumbnailimage — Изменяет размер изображения
    • Gmagick::trimimage — Удаляет края с изображения
    • Gmagick::write — Псевдоним Gmagick::writeimage
    • Gmagick::writeimage — Записывает изображение в указанный файл
  • GmagickDraw — Класс GmagickDraw
    • GmagickDraw::annotate — Рисует текст на изображении
    • GmagickDraw::arc — Рисует дугу
    • GmagickDraw::bezier — Рисует кривую Безье
    • GmagickDraw::ellipse — Рисует эллипс на изображении
    • GmagickDraw::getfillcolor — Возвращает цвет заливки
    • GmagickDraw::getfillopacity — Возвращает значение прозрачности, используемое при рисовании
    • GmagickDraw::getfont — Возвращает шрифт
    • GmagickDraw::getfontsize — Возвращает размер шрифта
    • GmagickDraw::getfontstyle — Возвращает стиль шрифта
    • GmagickDraw::getfontweight — Возвращает толщину шрифта
    • GmagickDraw::getstrokecolor — Возвращает цвет, используемый для обводки контуров объекта
    • GmagickDraw::getstrokeopacity — Возвращает прозрачность обведённых контуров объекта
    • GmagickDraw::getstrokewidth — Возвращает ширину обводки, используемой для отрисовки контуров объекта
    • GmagickDraw::gettextdecoration — Возвращает оформление текста
    • GmagickDraw::gettextencoding — Возвращает кодовый набор, используемый для текстовых аннотаций
    • GmagickDraw::line — Рисует линию
    • GmagickDraw::point — Рисует точку
    • GmagickDraw::polygon — Рисует многоугольник
    • GmagickDraw::polyline — Рисует ломаную линию
    • GmagickDraw::rectangle — Рисует прямоугольник
    • GmagickDraw::rotate — Применяет указанный поворот к текущему координатному пространству
    • GmagickDraw::roundrectangle — Рисует прямоугольник с закруглёнными углами
    • GmagickDraw::scale — Регулирует коэффициент масштабирования
    • GmagickDraw::setfillcolor — Устанавливает цвет заливки, который будет использоваться для рисования объектов с заливкой
    • GmagickDraw::setfillopacity — Устанавливает непрозрачность заливки
    • GmagickDraw::setfont — Устанавливает указанный шрифт для использования при аннотации текста
    • GmagickDraw::setfontsize — Устанавливает размер шрифта для использования при аннотации текста
    • GmagickDraw::setfontstyle — Устанавливает стиль шрифта для использования при аннотации текста
    • GmagickDraw::setfontweight — Устанавливает толщину шрифта
    • GmagickDraw::setstrokecolor — Устанавливает цвет, используемый для обводки контуров объекта
    • GmagickDraw::setstrokeopacity — Определяет прозрачность обводки контуров объекта
    • GmagickDraw::setstrokewidth — Устанавливает ширину обводки, используемой для отрисовки контуров объекта
    • GmagickDraw::settextdecoration — Определяет оформление
    • GmagickDraw::settextencoding — Задаёт кодовый набор текста
  • 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+. 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 (int)
Чёрный
Gmagick::COLOR_BLUE (int)
Синий
Gmagick::COLOR_CYAN (int)
Бирюзовый
Gmagick::COLOR_GREEN (int)
Зелёный
Gmagick::COLOR_RED (int)
Красный
Gmagick::COLOR_YELLOW (int)
Жёлтый
Gmagick::COLOR_MAGENTA (int)
Пурпурный
Gmagick::COLOR_OPACITY (int)
Непрозрачность
Gmagick::COLOR_ALPHA (int)
Альфа-канал
Gmagick::COLOR_FUZZ (int)
Распушка
Константы композитного оператора
Gmagick::COMPOSITE_DEFAULT (int)
Композитный оператор по умолчанию
Gmagick::COMPOSITE_UNDEFINED (int)
Неопределённый композитный оператор
Gmagick::COMPOSITE_NO (int)
Композитный оператор не задан
Gmagick::COMPOSITE_ADD (int)
Результат сложения изображений
Gmagick::COMPOSITE_ATOP (int)
Результат имеет ту же форму, что и исходное изображение, но затемнённый с помощью композитного изображения в местах пересечения.
Gmagick::COMPOSITE_BLEND (int)
Смешение изображения
Gmagick::COMPOSITE_BUMPMAP (int)
То же, что и COMPOSITE_MULTIPLY, за исключением того, что исходное изображение сначала преобразуется к оттенкам серого.
Gmagick::COMPOSITE_CLEAR (int)
Делает целевое изображение прозрачным.
Gmagick::COMPOSITE_COLORBURN (int)
Затемняет целевое изображение, для отражения исходного изображения.
Gmagick::COMPOSITE_COLORDODGE (int)
Осветляет целевое изображение, для отражения исходного изображения.
Gmagick::COMPOSITE_COLORIZE (int)
Раскрашивает целевое изображение, используя композитное изображение.
Gmagick::COMPOSITE_COPYBLACK (int)
Копирует чёрный канал из источника в приёмник
Gmagick::COMPOSITE_COPYBLUE (int)
Копирует синий канал из источника в приёмник
Gmagick::COMPOSITE_COPY (int)
Копирует источник в приёмник
Gmagick::COMPOSITE_COPYCYAN (int)
Копирует бирюзовый канал из источника в приёмник
Gmagick::COMPOSITE_COPYGREEN (int)
Копирует зелёный канал из источника в приёмник
Gmagick::COMPOSITE_COPYMAGENTA (int)
Копирует пурпурный канал из источника в приёмник
Gmagick::COMPOSITE_COPYOPACITY (int)
Копирует канал прозрачности из источника в приёмник
Gmagick::COMPOSITE_COPYRED (int)
Копирует красный канал из источника в приёмник
Gmagick::COMPOSITE_COPYYELLOW (int)
Копирует жёлтый канал из источника в приёмник
Gmagick::COMPOSITE_DARKEN (int)
Затемнение приёмника
Gmagick::COMPOSITE_DSTATOP (int)
Часть приёмника, лежащая внутри источника, накладывается на источник и заменяет приёмник
Gmagick::COMPOSITE_DST (int)
Приёмник остаётся нетронутым
Gmagick::COMPOSITE_DSTIN (int)
Часть внутри источника заменяет приёмник
Gmagick::COMPOSITE_DSTOUT (int)
Часть вне источника заменяет приёмник
Gmagick::COMPOSITE_DSTOVER (int)
Приёмник заменяет источник
Gmagick::COMPOSITE_DIFFERENCE (int)
Вычитает более тёмное значение цвета из более светлого
Gmagick::COMPOSITE_DISPLACE (int)
Сдвигает пиксели приёмника как задано в источнике
Gmagick::COMPOSITE_DISSOLVE (int)
Растворяет источник в приёмнике
Gmagick::COMPOSITE_EXCLUSION (int)
Создаёт эффект аналогичный Gmagick::COMPOSITE_DIFFERENCE, но выглядит как снижение контраста
Gmagick::COMPOSITE_HARDLIGHT (int)
Умножает или осветляет цвета, в зависимости от значения цвета источника
Gmagick::COMPOSITE_HUE (int)
Модифицирует оттенок приёмника в соответствии с источником
Gmagick::COMPOSITE_IN (int)
Подмешивает источник в приёмник
Gmagick::COMPOSITE_LIGHTEN (int)
Осветляет приёмник в соответствии с источником
Gmagick::COMPOSITE_LUMINIZE (int)
Люминизирует приёмник в соответствии с источником
Gmagick::COMPOSITE_MINUS (int)
Вычитает источник из приёмника
Gmagick::COMPOSITE_MODULATE (int)
Модулирует яркость, насыщенность и оттенок приёмника в соответствии с источником
Gmagick::COMPOSITE_MULTIPLY (int)
Умножает приёмник на источник
Gmagick::COMPOSITE_OUT (int)
Накладывает внешние части источника на приёмник
Gmagick::COMPOSITE_OVER (int)
Подмешивает источник поверх приёмника
Gmagick::COMPOSITE_OVERLAY (int)
Перекрывает приёмник источником
Gmagick::COMPOSITE_PLUS (int)
Добавляет источник к приёмнику
Gmagick::COMPOSITE_REPLACE (int)
Заменяет приёмник источником
Gmagick::COMPOSITE_SATURATE (int)
Меняет насыщенность приёмника в соответствии с источником
Gmagick::COMPOSITE_SCREEN (int)
Источник и приёмник дополняются, после этого умножаются и заменяют приёмник
Gmagick::COMPOSITE_SOFTLIGHT (int)
Затемняет или осветляет в зависимости от источника
Gmagick::COMPOSITE_SRCATOP (int)
Часть источника, лежащая вне приёмника, подмешивается в приёмник
Gmagick::COMPOSITE_SRC (int)
Источник копируется в приёмник
Gmagick::COMPOSITE_SRCIN (int)
Часть источника, лежащая внутри приёмника заменяет приёмник
Gmagick::COMPOSITE_SRCOUT (int)
Часть источника, лежащая вне приёмника заменяет приёмник
Gmagick::COMPOSITE_SRCOVER (int)
Источник заменяет приёмник
Gmagick::COMPOSITE_SUBTRACT (int)
Вычитает цвета изображения источника из изображения приёмника
Gmagick::COMPOSITE_THRESHOLD (int)
Источник подмешивается к приёмнику, как определено в пороговом значении источника
Gmagick::COMPOSITE_XOR (int)
Часть источника, лежащая вне приёмника комбинируется с частью приёмника лежащей вне источника
Константы режима монтажа
Gmagick::MONTAGEMODE_FRAME (int)
Gmagick::MONTAGEMODE_UNFRAME (int)
Gmagick::MONTAGEMODE_CONCATENATE (int)
Константы стиля
Gmagick::STYLE_NORMAL (int)
Gmagick::STYLE_ITALIC (int)
Gmagick::STYLE_OBLIQUE (int)
Gmagick::STYLE_ANY (int)
Константы фильтрации
Gmagick::FILTER_UNDEFINED (int)
Gmagick::FILTER_POINT (int)
Gmagick::FILTER_BOX (int)
Gmagick::FILTER_TRIANGLE (int)
Gmagick::FILTER_HERMITE (int)
Gmagick::FILTER_HANNING (int)
Gmagick::FILTER_HAMMING (int)
Gmagick::FILTER_BLACKMAN (int)
Gmagick::FILTER_GAUSSIAN (int)
Gmagick::FILTER_QUADRATIC (int)
Gmagick::FILTER_CUBIC (int)
Gmagick::FILTER_CATROM (int)
Gmagick::FILTER_MITCHELL (int)
Gmagick::FILTER_LANCZOS (int)
Gmagick::FILTER_BESSEL (int)
Gmagick::FILTER_SINC (int)
Константы типа изображения
Gmagick::IMGTYPE_UNDEFINED (int)
Gmagick::IMGTYPE_BILEVEL (int)
Gmagick::IMGTYPE_GRAYSCALE (int)
Gmagick::IMGTYPE_GRAYSCALEMATTE (int)
Gmagick::IMGTYPE_PALETTE (int)
Gmagick::IMGTYPE_PALETTEMATTE (int)
Gmagick::IMGTYPE_TRUECOLOR (int)
Gmagick::IMGTYPE_TRUECOLORMATTE (int)
Gmagick::IMGTYPE_COLORSEPARATION (int)
Gmagick::IMGTYPE_COLORSEPARATIONMATTE (int)
Gmagick::IMGTYPE_OPTIMIZE (int)
Константы разрешения
Gmagick::RESOLUTION_UNDEFINED (int)
Gmagick::RESOLUTION_PIXELSPERINCH (int)
Gmagick::RESOLUTION_PIXELSPERCENTIMETER (int)
Константы сжатия
Gmagick::COMPRESSION_UNDEFINED (int)
Gmagick::COMPRESSION_NO (int)
Gmagick::COMPRESSION_BZIP (int)
Gmagick::COMPRESSION_FAX (int)
Gmagick::COMPRESSION_GROUP4 (int)
Gmagick::COMPRESSION_JPEG (int)
Gmagick::COMPRESSION_JPEG2000 (int)
Gmagick::COMPRESSION_LOSSLESSJPEG (int)
Gmagick::COMPRESSION_LZW (int)
Gmagick::COMPRESSION_RLE (int)
Gmagick::COMPRESSION_ZIP (int)
Константы рисования
Gmagick::PAINT_POINT (int)
Gmagick::PAINT_REPLACE (int)
Gmagick::PAINT_FLOODFILL (int)
Gmagick::PAINT_FILLTOBORDER (int)
Gmagick::PAINT_RESET (int)
Гравитационные константы
Gmagick::GRAVITY_NORTHWEST (int)
Gmagick::GRAVITY_NORTH (int)
Gmagick::GRAVITY_NORTHEAST (int)
Gmagick::GRAVITY_WEST (int)
Gmagick::GRAVITY_CENTER (int)
Gmagick::GRAVITY_EAST (int)
Gmagick::GRAVITY_SOUTHWEST (int)
Gmagick::GRAVITY_SOUTH (int)
Gmagick::GRAVITY_SOUTHEAST (int)
Константы растяжения
Gmagick::STRETCH_NORMAL (int)
Gmagick::STRETCH_ULTRACONDENSED (int)
Gmagick::STRETCH_CONDENSED (int)
Gmagick::STRETCH_SEMICONDENSED (int)
Gmagick::STRETCH_SEMIEXPANDED (int)
Gmagick::STRETCH_EXPANDED (int)
Gmagick::STRETCH_EXTRAEXPANDED (int)
Gmagick::STRETCH_ULTRAEXPANDED (int)
Gmagick::STRETCH_ANY (int)
Align constants
Gmagick::ALIGN_UNDEFINED (int)
Gmagick::ALIGN_LEFT (int)
Gmagick::ALIGN_CENTER (int)
Gmagick::ALIGN_RIGHT (int)
Константы декорирования
Gmagick::DECORATION_NO (int)
Gmagick::DECORATION_UNDERLINE (int)
Gmagick::DECORATION_OVERLINE (int)
Gmagick::DECORATION_LINETROUGH (int)
Константы шума
Gmagick::NOISE_UNIFORM (int)
Gmagick::NOISE_GAUSSIAN (int)
Gmagick::NOISE_MULTIPLICATIVEGAUSSIAN (int)
Gmagick::NOISE_IMPULSE (int)
Gmagick::NOISE_LAPLACIAN (int)
Gmagick::NOISE_POISSON (int)
Константы каналов
Gmagick::CHANNEL_UNDEFINED (int)
Gmagick::CHANNEL_RED (int)
Gmagick::CHANNEL_GRAY (int)
Gmagick::CHANNEL_CYAN (int)
Gmagick::CHANNEL_GREEN (int)
Gmagick::CHANNEL_MAGENTA (int)
Gmagick::CHANNEL_BLUE (int)
Gmagick::CHANNEL_YELLOW (int)
Gmagick::CHANNEL_ALPHA (int)
Gmagick::CHANNEL_OPACITY (int)
Gmagick::CHANNEL_MATTE (int)
Gmagick::CHANNEL_BLACK (int)
Gmagick::CHANNEL_INDEX (int)
Gmagick::CHANNEL_ALL (int)
Метрические константы
Gmagick::METRIC_UNDEFINED (int)
Gmagick::METRIC_MEANABSOLUTEERROR (int)
Gmagick::METRIC_MEANSQUAREERROR (int)
Gmagick::METRIC_PEAKABSOLUTEERROR (int)
Gmagick::METRIC_PEAKSIGNALTONOISERATIO (int)
Gmagick::METRIC_ROOTMEANSQUAREDERROR (int)
Пиксельные константы
Gmagick::PIXEL_CHAR (int)
Gmagick::PIXEL_DOUBLE (int)
Gmagick::PIXEL_FLOAT (int)
Gmagick::PIXEL_INTEGER (int)
Gmagick::PIXEL_LONG (int)
Gmagick::PIXEL_QUANTUM (int)
Gmagick::PIXEL_SHORT (int)
Константы цветового пространства
Gmagick::COLORSPACE_UNDEFINED (int)
Gmagick::COLORSPACE_RGB (int)
Gmagick::COLORSPACE_GRAY (int)
Gmagick::COLORSPACE_TRANSPARENT (int)
Gmagick::COLORSPACE_OHTA (int)
Gmagick::COLORSPACE_LAB (int)
Gmagick::COLORSPACE_XYZ (int)
Gmagick::COLORSPACE_YCBCR (int)
Gmagick::COLORSPACE_YCC (int)
Gmagick::COLORSPACE_YIQ (int)
Gmagick::COLORSPACE_YPBPR (int)
Gmagick::COLORSPACE_YUV (int)
Gmagick::COLORSPACE_CMYK (int)
Gmagick::COLORSPACE_SRGB (int)
Gmagick::COLORSPACE_HSB (int)
Gmagick::COLORSPACE_HSL (int)
Gmagick::COLORSPACE_HWB (int)
Gmagick::COLORSPACE_REC601LUMA (int)
Gmagick::COLORSPACE_REC709LUMA (int)
Gmagick::COLORSPACE_LOG (int)
Константы метода виртуального пикселя
Gmagick::VIRTUALPIXELMETHOD_UNDEFINED (int)
Gmagick::VIRTUALPIXELMETHOD_BACKGROUND (int)
Gmagick::VIRTUALPIXELMETHOD_CONSTANT (int)
Gmagick::VIRTUALPIXELMETHOD_EDGE (int)
Gmagick::VIRTUALPIXELMETHOD_MIRROR (int)
Gmagick::VIRTUALPIXELMETHOD_TILE (int)
Gmagick::VIRTUALPIXELMETHOD_TRANSPARENT (int)
Константы предпросмотра
Gmagick::PREVIEW_UNDEFINED (int)
Gmagick::PREVIEW_ROTATE (int)
Gmagick::PREVIEW_SHEAR (int)
Gmagick::PREVIEW_ROLL (int)
Gmagick::PREVIEW_HUE (int)
Gmagick::PREVIEW_SATURATION (int)
Gmagick::PREVIEW_BRIGHTNESS (int)
Gmagick::PREVIEW_GAMMA (int)
Gmagick::PREVIEW_SPIFF (int)
Gmagick::PREVIEW_DULL (int)
Gmagick::PREVIEW_GRAYSCALE (int)
Gmagick::PREVIEW_QUANTIZE (int)
Gmagick::PREVIEW_DESPECKLE (int)
Gmagick::PREVIEW_REDUCENOISE (int)
Gmagick::PREVIEW_ADDNOISE (int)
Gmagick::PREVIEW_SHARPEN (int)
Gmagick::PREVIEW_BLUR (int)
Gmagick::PREVIEW_THRESHOLD (int)
Gmagick::PREVIEW_EDGEDETECT (int)
Gmagick::PREVIEW_SPREAD (int)
Gmagick::PREVIEW_SOLARIZE (int)
Gmagick::PREVIEW_SHADE (int)
Gmagick::PREVIEW_RAISE (int)
Gmagick::PREVIEW_SEGMENT (int)
Gmagick::PREVIEW_SWIRL (int)
Gmagick::PREVIEW_IMPLODE (int)
Gmagick::PREVIEW_WAVE (int)
Gmagick::PREVIEW_OILPAINT (int)
Gmagick::PREVIEW_CHARCOALDRAWING (int)
Gmagick::PREVIEW_JPEG (int)
Константы интента отрисовки
Gmagick::RENDERINGINTENT_UNDEFINED (int)
Gmagick::RENDERINGINTENT_SATURATION (int)
Gmagick::RENDERINGINTENT_PERCEPTUAL (int)
Gmagick::RENDERINGINTENT_ABSOLUTE (int)
Gmagick::RENDERINGINTENT_RELATIVE (int)
Константы правил заполнения
Gmagick::FILLRULE_UNDEFINED (int)
Gmagick::FILLRULE_EVENODD (int)
Gmagick::FILLRULE_NONZERO (int)
Константы блока пути (pathunit)
Gmagick::PATHUNITS_UNDEFINED (int)
Gmagick::PATHUNITS_USERSPACE (int)
Gmagick::PATHUNITS_USERSPACEONUSE (int)
Gmagick::PATHUNITS_OBJECTBOUNDINGBOX (int)
Константы Linecap
Gmagick::LINECAP_UNDEFINED (int)
Gmagick::LINECAP_BUTT (int)
Gmagick::LINECAP_ROUND (int)
Gmagick::LINECAP_SQUARE (int)
Константы объединения линий
Gmagick::LINEJOIN_UNDEFINED (int)
Gmagick::LINEJOIN_MITER (int)
Gmagick::LINEJOIN_ROUND (int)
Gmagick::LINEJOIN_BEVEL (int)
Константы типа ресурса
Gmagick::RESOURCETYPE_UNDEFINED (int)
Gmagick::RESOURCETYPE_AREA (int)
Gmagick::RESOURCETYPE_DISK (int)
Gmagick::RESOURCETYPE_FILE (int)
Gmagick::RESOURCETYPE_MAP (int)
Gmagick::RESOURCETYPE_MEMORY (int)
Константы ориентации
Gmagick::ORIENTATION_UNDEFINED (int)
Gmagick::ORIENTATION_TOPLEFT (int)
Gmagick::ORIENTATION_TOPRIGHT (int)
Gmagick::ORIENTATION_BOTTOMRIGHT (int)
Gmagick::ORIENTATION_BOTTOMLEFT (int)
Gmagick::ORIENTATION_LEFTTOP (int)
Gmagick::ORIENTATION_RIGHTTOP (int)
Gmagick::ORIENTATION_RIGHTBOTTOM (int)
Gmagick::ORIENTATION_LEFTBOTTOM (int)
Константы чересстрочной развёртки
Gmagick::INTERLACE_UNDEFINED (int)
Gmagick::INTERLACE_NO (int)
Gmagick::INTERLACE_NONE (int)
Gmagick::INTERLACE_LINE (int)
Gmagick::INTERLACE_PLANE (int)
Gmagick::INTERLACE_PARTITION (int)


Примеры

Следующий код демонстрирует часто используемые операции 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)

Введение

Обзор классов

class Gmagick {
/* Методы */
public __construct(string $filename = ?)
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(): Gmagick
public commentimage(string $comment): Gmagick
public compositeimage(
Gmagick $source,
int $COMPOSE,
int $x,
int $y
): Gmagick
public cropimage(
int $width ,
int $height ,
int $x,
int $y
): Gmagick
public cropthumbnailimage(int $width, int $height): Gmagick
public current(): Gmagick
public cyclecolormapimage(int $displace): Gmagick
public deconstructimages(): Gmagick
public despeckleimage(): Gmagick
public destroy(): bool
public drawimage(GmagickDraw $GmagickDraw): Gmagick
public edgeimage(float $radius): Gmagick
public embossimage(float $radius, float $sigma): Gmagick
public enhanceimage(): Gmagick
public equalizeimage(): Gmagick
public flipimage(): Gmagick
public flopimage(): Gmagick
public frameimage(
GmagickPixel $color,
int $width,
int $height,
int $inner_bevel,
int $outer_bevel
): Gmagick
public gammaimage(float $gamma): Gmagick
public getcopyright(): string
public getfilename(): string
public getimagebackgroundcolor(): GmagickPixel
public getimageblueprimary(): array
public getimagebordercolor(): GmagickPixel
public getimagechanneldepth(int $channel_type): int
public getimagecolors(): int
public getimagecolorspace(): int
public getimagecompose(): int
public getimagedelay(): int
public getimagedepth(): int
public getimagedispose(): int
public getimageextrema(): array
public getimagefilename(): string
public getimageformat(): string
public getimagegamma(): float
public getimagegreenprimary(): array
public getimageheight(): int
public getimagehistogram(): array
public getimageindex(): int
public getimageinterlacescheme(): int
public getimageiterations(): int
public getimagematte(): int
public getimagemattecolor(): GmagickPixel
public getimageprofile(string $name): string
public getimageredprimary(): array
public getimagerenderingintent(): int
public getimageresolution(): array
public getimagescene(): int
public getimagesignature(): string
public getimagetype(): int
public getimageunits(): int
public getimagewhitepoint(): array
public getimagewidth(): int
public getpackagename(): string
public getquantumdepth(): array
public getreleasedate(): string
public getsamplingfactors(): array
public getsize(): array
public getversion(): array
public hasnextimage(): mixed
public haspreviousimage(): 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(): mixed
public mapimage(gmagick $gmagick, bool $dither): Gmagick
public medianfilterimage(float $radius): void
public minifyimage(): 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(): bool
public normalizeimage(int $channel = ?): Gmagick
public oilpaintimage( float $radius ): Gmagick
public previousimage(): 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(): 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(): 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 — Накладывает одно изображение на другое
  • Gmagick::__construct — Конструктор объекта Gmagick
  • Gmagick::cropimage — Обрезает изображение
  • Gmagick::cropthumbnailimage — Создание обрезанного уменьшенного изображения
  • Gmagick::current — Вернуть самого себя
  • Gmagick::cyclecolormapimage — Смещает цветовую карту изображения
  • Gmagick::deconstructimages — Возвращает определённые пиксельные различия между изображениями
  • Gmagick::despeckleimage — Назначение despeckleimage
  • Gmagick::destroy — Уничтожить объект Gmagick
  • Gmagick::drawimage — Отображает объект GmagickDraw на текущем изображении
  • Gmagick::edgeimage — Увеличивает края в изображении
  • Gmagick::embossimage — Возвращает изображение в градациях серого с трёхмерным эффектом
  • Gmagick::enhanceimage — Улучшает качество изображения с шумом
  • Gmagick::equalizeimage — Выравнивает гистограмму изображения
  • Gmagick::flipimage — Создаёт вертикальное зеркальное отображение
  • Gmagick::flopimage — Создаёт горизонтальное зеркальное отображение
  • Gmagick::frameimage — Добавляет смоделированную трёхмерную границу
  • Gmagick::gammaimage — Гамма-коррекция изображения
  • Gmagick::getcopyright — Возвращает копирайт GraphicsMagick API в виде строки
  • Gmagick::getfilename — Возвращает имя файла связанного с последовательностью изображений
  • Gmagick::getimagebackgroundcolor — Возвращает цвет фона изображения
  • Gmagick::getimageblueprimary — Возвращает цветность синей первичной точки
  • Gmagick::getimagebordercolor — Возвращает цвет границы изображения
  • Gmagick::getimagechanneldepth — Получает глубину для определённого канала изображения
  • Gmagick::getimagecolors — Возвращает цвет указанного индекса карты цветов
  • Gmagick::getimagecolorspace — Возвращает цветовое пространство изображения
  • Gmagick::getimagecompose — Возвращает составной оператор, связанный с изображением
  • Gmagick::getimagedelay — Получает задержку изображения
  • Gmagick::getimagedepth — Получает глубину изображения
  • Gmagick::getimagedispose — Получает метод удаления изображения
  • Gmagick::getimageextrema — Получает экстремумы для изображения
  • Gmagick::getimagefilename — Возвращает имя файла конкретного изображения в последовательности
  • Gmagick::getimageformat — Возвращает формат конкретного изображения в последовательности
  • Gmagick::getimagegamma — Возвращает гамму изображения
  • Gmagick::getimagegreenprimary — Возвращает первичную зелёную точку
  • Gmagick::getimageheight — Возвращает высоту изображения
  • Gmagick::getimagehistogram — Возвращает гистограмму изображения
  • Gmagick::getimageindex — Возвращает индекс текущего активного изображения
  • Gmagick::getimageinterlacescheme — Получает схему чередования изображений
  • Gmagick::getimageiterations — Получает итерации изображения
  • Gmagick::getimagematte — Проверяет, есть ли на изображении матовый канал
  • Gmagick::getimagemattecolor — Возвращает изображение матового цвета
  • Gmagick::getimageprofile — Возвращает именованный профайл изображения
  • Gmagick::getimageredprimary — Возвращает первичную красную точку
  • Gmagick::getimagerenderingintent — Получает цель рендеринга изображения
  • Gmagick::getimageresolution — Возвращает разрешение изображения
  • Gmagick::getimagescene — Получает сцену изображения
  • Gmagick::getimagesignature — Создаёт подпись сообщения SHA-256
  • 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 — Создаёт копию изображения
  • Gmagick::labelimage — Добавляет метку к изображению
  • Gmagick::levelimage — Регулирует уровни изображения
  • Gmagick::magnifyimage — Пропорционально масштабирует изображение в 2 раза
  • Gmagick::mapimage — Заменяет цвета изображения на ближайший цвет из эталонного изображения
  • Gmagick::medianfilterimage — Применяет цифровой фильтр
  • Gmagick::minifyimage — Масштабирует изображение пропорционально половине его размера
  • Gmagick::modulateimage — Управляет яркостью, насыщенностью и оттенком
  • Gmagick::motionblurimage — Имитирует размытие при движении
  • Gmagick::newimage — Создаёт новое изображение
  • Gmagick::nextimage — Осуществляет переход к следующему изображению
  • Gmagick::normalizeimage — Повышает контрастность цветного изображения
  • Gmagick::oilpaintimage — Имитирует эффект картины маслом
  • Gmagick::previousimage — Осуществляет переход к предыдущему изображению в объекте
  • Gmagick::profileimage — Добавляет или удаляет профиль из изображения
  • Gmagick::quantizeimage — Анализирует цвета эталонного изображения
  • Gmagick::quantizeimages — Анализирует цвета в последовательности изображений
  • Gmagick::queryfontmetrics — Возвращает массив, представляющий метрики шрифта
  • Gmagick::queryfonts — Возвращает настроенные шрифты
  • Gmagick::queryformats — Возвращает форматы, поддерживаемые Gmagick
  • Gmagick::radialblurimage — Применяет радиальное размытие к изображению
  • Gmagick::raiseimage — Создаёт имитацию эффекта трёхмерной кнопки
  • Gmagick::read — Читает изображение из файла
  • Gmagick::readimage — Читает изображение из файла
  • Gmagick::readimageblob — Читает изображение из бинарной строки
  • Gmagick::readimagefile — Читает изображение или последовательность изображений из файлового дескриптора
  • Gmagick::reducenoiseimage — Сглаживает контуры изображения
  • Gmagick::removeimage — Удаляет изображение из списка
  • Gmagick::removeimageprofile — Удаляет именованный профайл изображения и возвращает его
  • Gmagick::resampleimage — Изменяет разрешение изображения до желаемого
  • Gmagick::resizeimage — Масштабирует изображение
  • Gmagick::rollimage — Смещает изображение
  • Gmagick::rotateimage — Поворачивает изображение
  • Gmagick::scaleimage — Масштабирует размер изображения
  • Gmagick::separateimagechannel — Отделяет канал от изображения
  • Gmagick::setCompressionQuality — Устанавливает качество сжатия объекта по умолчанию
  • Gmagick::setfilename — Устанавливает имя файла перед чтением или записью изображения
  • Gmagick::setimagebackgroundcolor — Устанавливает цвет фона изображения
  • Gmagick::setimageblueprimary — Устанавливает цветность изображения голубой основной точкой
  • Gmagick::setimagebordercolor — Устанавливает цвет рамки изображения
  • Gmagick::setimagechanneldepth — Устанавливает глубину определённого канала изображения
  • Gmagick::setimagecolorspace — Устанавливает цветовое пространство изображения
  • Gmagick::setimagecompose — Устанавливает оператор составного изображения
  • Gmagick::setimagedelay — Устанавливает задержку изображения
  • Gmagick::setimagedepth — Устанавливает глубину изображения
  • Gmagick::setimagedispose — Устанавливает метод удаления изображения
  • Gmagick::setimagefilename — Устанавливает имя файла конкретного изображения в последовательности
  • Gmagick::setimageformat — Устанавливает формат определённого изображения
  • Gmagick::setimagegamma — Устанавливает гамму изображения
  • Gmagick::setimagegreenprimary — Устанавливает цветность изображения зелёной первичной точкой
  • Gmagick::setimageindex — Устанавливает итератор в положение в списке изображений, заданном параметром index
  • Gmagick::setimageinterlacescheme — Устанавливает схему чересстрочной развёртки изображения
  • Gmagick::setimageiterations — Устанавливает итерации изображения
  • Gmagick::setimageprofile — Добавляет именованный профиль в объект Gmagick
  • Gmagick::setimageredprimary — Устанавливает цветность изображения красной основной точкой
  • Gmagick::setimagerenderingintent — Устанавливает способ рендеринга изображения
  • Gmagick::setimageresolution — Устанавливает разрешение изображения
  • Gmagick::setimagescene — Устанавливает сцену изображения
  • Gmagick::setimagetype — Устанавливает тип изображения
  • Gmagick::setimageunits — Устанавливает единицы разрешения изображения
  • Gmagick::setimagewhitepoint — Устанавливает цветность изображения белой точкой
  • Gmagick::setsamplingfactors — Устанавливает факторы выборки изображения
  • Gmagick::setsize — Устанавливает размер объекта Gmagick
  • Gmagick::shearimage — Создаёт параллелограмм
  • Gmagick::solarizeimage — Применяет соляризационный эффект к изображению
  • Gmagick::spreadimage — Случайно смещает каждый пиксель в блоке
  • Gmagick::stripimage — Снимает изображение всех профилей и комментариев
  • Gmagick::swirlimage — Закручивает пиксели вокруг центра изображения
  • Gmagick::thumbnailimage — Изменяет размер изображения
  • Gmagick::trimimage — Удаляет края с изображения
  • 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(): 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 в случае возникновения ошибки.


Накладывает одно изображение на другое

  • « Gmagick::commentimage
  • Gmagick::__construct »
  • PHP Manual
  • Gmagick
  • Накладывает одно изображение на другое

Gmagick::compositeimage

(PECL gmagick >= Unknown)

Gmagick::compositeimage — Накладывает одно изображение на другое

Описание

public Gmagick::compositeimage(
Gmagick $source,
int $COMPOSE,
int $x,
int $y
): Gmagick

Накладывает одно изображение на другое с указанным смещением.

Список параметров

source

Объект Gmagick, который содержит составное изображение.

compose

Композитный оператор.

x

Смещение столбца составного изображения.

y

Смещение строки составного изображения.

Возвращаемые значения

Объект Gmagick с композициями.

Ошибки

Вызывает 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

Путь к загружаемому изображению, либо массив путей.

Ошибки

Вызывает 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(): Gmagick

Возвращает ссылку на текущий объект gmagick с установленным указателем изображения в правильной последовательности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает самого себя.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Смещает цветовую карту изображения

  • « Gmagick::current
  • Gmagick::deconstructimages »
  • PHP Manual
  • Gmagick
  • Смещает цветовую карту изображения

Gmagick::cyclecolormapimage

(PECL gmagick >= Unknown)

Gmagick::cyclecolormapimage — Смещает цветовую карту изображения

Описание

public Gmagick::cyclecolormapimage(int $displace): Gmagick

Смещает цветовую карту изображения на заданное количество позиций. Если вы циклически изменяете цветовую карту несколько раз, вы можете произвести психоделический эффект.

Список параметров

displace

Количество смещений карты цветов.

Возвращаемые значения

Возвращает себя в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает определённые пиксельные различия между изображениями

  • « Gmagick::cyclecolormapimage
  • Gmagick::despeckleimage »
  • PHP Manual
  • Gmagick
  • Возвращает определённые пиксельные различия между изображениями

Gmagick::deconstructimages

(PECL gmagick >= Unknown)

Gmagick::deconstructimages — Возвращает определённые пиксельные различия между изображениями

Описание

public Gmagick::deconstructimages(): Gmagick

Сравнивает каждое изображение со следующим в последовательности и возвращает максимальную ограничивающую область любых обнаруженных различий пикселей.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает новый объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Назначение despeckleimage

  • « Gmagick::deconstructimages
  • Gmagick::destroy »
  • PHP Manual
  • Gmagick
  • Назначение despeckleimage

Gmagick::despeckleimage

(PECL gmagick >= Unknown)

Gmagick::despeckleimage — Назначение despeckleimage

Описание

public Gmagick::despeckleimage(): Gmagick

Уменьшает спекл-шум на изображении, сохраняя края исходного изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Gmagick с уменьшенным спекл-шумом в случае успешного выполнения

Ошибки

Вызывает GmagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Gmagick::despeckleimage()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...


Уничтожить объект Gmagick

  • « Gmagick::despeckleimage
  • Gmagick::drawimage »
  • PHP Manual
  • Gmagick
  • Уничтожить объект Gmagick

Gmagick::destroy

(PECL gmagick >= Unknown)

Gmagick::destroy — Уничтожить объект Gmagick

Описание

public Gmagick::destroy(): bool

Уничтожить объект Gmagick и освободить все выделенные ему ресурсы

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Отображает объект GmagickDraw на текущем изображении

  • « Gmagick::destroy
  • Gmagick::edgeimage »
  • PHP Manual
  • Gmagick
  • Отображает объект GmagickDraw на текущем изображении

Gmagick::drawimage

(PECL gmagick >= Unknown)

Gmagick::drawimage — Отображает объект GmagickDraw на текущем изображении

Описание

public Gmagick::drawimage(GmagickDraw $GmagickDraw): Gmagick

Отображает объект GmagickDraw на текущем изображении

Список параметров

GmagickDraw

Операции рисования для отображения на изображении.

Возвращаемые значения

Нарисованный объект Gmagick

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Увеличивает края в изображении

  • « Gmagick::drawimage
  • Gmagick::embossimage »
  • PHP Manual
  • Gmagick
  • Увеличивает края в изображении

Gmagick::edgeimage

(PECL gmagick >= Unknown)

Gmagick::edgeimage — Увеличивает края в изображении

Описание

public Gmagick::edgeimage(float $radius): Gmagick

Увеличивает края в изображении с помощью фильтра свёртки данного радиуса. Используйте радиус 0, и он будет выбран автоматически.

Список параметров

radius

Радиус операции.

Возвращаемые значения

Объект Gmagick с увеличенными краями.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает изображение в градациях серого с трёхмерным эффектом

  • « Gmagick::edgeimage
  • Gmagick::enhanceimage »
  • PHP Manual
  • Gmagick
  • Возвращает изображение в градациях серого с трёхмерным эффектом

Gmagick::embossimage

(PECL gmagick >= Unknown)

Gmagick::embossimage — Возвращает изображение в градациях серого с трёхмерным эффектом

Описание

public Gmagick::embossimage(float $radius, float $sigma): Gmagick

Возвращает изображение в градациях серого с трёхмерным эффектом. Мы сворачиваем изображение с помощью гауссовского оператора, заданного радиуса и стандартного отклонения (сигма). Для получения разумных результатов радиус должен быть больше сигмы. При использовании радиуса 0, подходящий радиус выберется автоматически.

Список параметров

radius

Радиус эффекта.

sigma

Сигма эффекта.

Возвращаемые значения

Рельефный объект Gmagick.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Улучшает качество изображения с шумом

  • « Gmagick::embossimage
  • Gmagick::equalizeimage »
  • PHP Manual
  • Gmagick
  • Улучшает качество изображения с шумом

Gmagick::enhanceimage

(PECL gmagick >= Unknown)

Gmagick::enhanceimage — Улучшает качество изображения с шумом

Описание

public Gmagick::enhanceimage(): Gmagick

Применяет цифровой фильтр, который улучшает качество изображения с шумом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Улучшенный объект Gmagick.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Выравнивает гистограмму изображения

  • « Gmagick::enhanceimage
  • Gmagick::flipimage »
  • PHP Manual
  • Gmagick
  • Выравнивает гистограмму изображения

Gmagick::equalizeimage

(PECL gmagick >= Unknown)

Gmagick::equalizeimage — Выравнивает гистограмму изображения

Описание

public Gmagick::equalizeimage(): Gmagick

Выравнивает гистограмму изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Выравненный объект Gmagick.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Создаёт вертикальное зеркальное отображение

  • « Gmagick::equalizeimage
  • Gmagick::flopimage »
  • PHP Manual
  • Gmagick
  • Создаёт вертикальное зеркальное отображение

Gmagick::flipimage

(PECL gmagick >= Unknown)

Gmagick::flipimage — Создаёт вертикальное зеркальное отображение

Описание

public Gmagick::flipimage(): Gmagick

Создаёт вертикальное зеркальное отображение путём отражения пикселей вокруг центральной оси X.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Перевёрнутый объект Gmagick.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.

Смотрите также

  • Gmagick::flopimage() - Создаёт горизонтальное зеркальное отображение


Создаёт горизонтальное зеркальное отображение

  • « Gmagick::flipimage
  • Gmagick::frameimage »
  • PHP Manual
  • Gmagick
  • Создаёт горизонтальное зеркальное отображение

Gmagick::flopimage

(PECL gmagick >= Unknown)

Gmagick::flopimage — Создаёт горизонтальное зеркальное отображение

Описание

public Gmagick::flopimage(): Gmagick

Создаёт горизонтальное зеркальное изображение, отражая пиксели вокруг центральной оси Y.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Отражённый объект Gmagick.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.

Смотрите также

  • Gmagick::flipimage() - Создаёт вертикальное зеркальное отображение


Добавляет смоделированную трёхмерную границу

  • « Gmagick::flopimage
  • Gmagick::gammaimage »
  • PHP Manual
  • Gmagick
  • Добавляет смоделированную трёхмерную границу

Gmagick::frameimage

(PECL gmagick >= Unknown)

Gmagick::frameimage — Добавляет смоделированную трёхмерную границу

Описание

public Gmagick::frameimage(
GmagickPixel $color,
int $width,
int $height,
int $inner_bevel,
int $outer_bevel
): Gmagick

Добавляет смоделированную трёхмерную рамку вокруг изображения. Ширина и высота определяют ширину границы вертикальной и горизонтальной сторон рамки. Внутренний и внешний скосы указывают ширину внутренней и внешней теней рамки.

Список параметров

color

Объект GmagickPixel или число с плавающей точкой, представляющее матовый цвет.

width

Ширина границы.

height

Высота границы.

inner_bevel

Внутренняя ширина скоса.

outer_bevel

Внешняя ширина скоса.

Возвращаемые значения

Обрамлённый объект Gmagick.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Гамма-коррекция изображения

  • « Gmagick::frameimage
  • Gmagick::getcopyright »
  • PHP Manual
  • Gmagick
  • Гамма-коррекция изображения

Gmagick::gammaimage

(PECL gmagick >= Unknown)

Gmagick::gammaimage — Гамма-коррекция изображения

Описание

public Gmagick::gammaimage(float $gamma): Gmagick

Гамма-коррекция изображения. Одно и то же изображение, просматриваемое на разных устройствах, будет иметь перцепционные различия в способах представления интенсивности изображения на экране. Укажите индивидуальные уровни гаммы для красного, зелёного и синего каналов или отрегулируйте все три с помощью параметра гаммы. Значения обычно колеблются от 0,8 до 2,3.

Список параметров

gamma

Количество гамма-коррекции.

Возвращаемые значения

Гамма-скорректированный объект Gmagick.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает копирайт GraphicsMagick API в виде строки

  • « Gmagick::gammaimage
  • Gmagick::getfilename »
  • PHP Manual
  • Gmagick
  • Возвращает копирайт GraphicsMagick API в виде строки

Gmagick::getcopyright

(PECL gmagick >= Unknown)

Gmagick::getcopyright — Возвращает копирайт GraphicsMagick API в виде строки

Описание

public Gmagick::getcopyright(): 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(): string

Возвращает имя файла связанного с последовательностью изображений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает цвет фона изображения

  • « Gmagick::getfilename
  • Gmagick::getimageblueprimary »
  • PHP Manual
  • Gmagick
  • Возвращает цвет фона изображения

Gmagick::getimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::getimagebackgroundcolor — Возвращает цвет фона изображения

Описание

public Gmagick::getimagebackgroundcolor(): GmagickPixel

Возвращает цвет фона изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает цвет фона изображения в виде объекта GmagickPixel.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает цветность синей первичной точки

  • « Gmagick::getimagebackgroundcolor
  • Gmagick::getimagebordercolor »
  • PHP Manual
  • Gmagick
  • Возвращает цветность синей первичной точки

Gmagick::getimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::getimageblueprimary — Возвращает цветность синей первичной точки

Описание

public Gmagick::getimageblueprimary(): array

Возвращает цветность синей первичной точки для изображения.

Список параметров

x

Цветность синей первичной точки по х-координате.

y

Цветность синей первичной точки по y-координате.

Возвращаемые значения

Массив, состоящий из "x" и "y" координат точки.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает цвет границы изображения

  • « Gmagick::getimageblueprimary
  • Gmagick::getimagechanneldepth »
  • PHP Manual
  • Gmagick
  • Возвращает цвет границы изображения

Gmagick::getimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::getimagebordercolor — Возвращает цвет границы изображения

Описание

public Gmagick::getimagebordercolor(): GmagickPixel

Возвращает цвет границы изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект GmagickPixel, представляющий цвет границы

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Получает глубину для определённого канала изображения

  • « Gmagick::getimagebordercolor
  • Gmagick::getimagecolors »
  • PHP Manual
  • Gmagick
  • Получает глубину для определённого канала изображения

Gmagick::getimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::getimagechanneldepth — Получает глубину для определённого канала изображения

Описание

public Gmagick::getimagechanneldepth(int $channel_type): int

Получает глубину для определённого канала изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Глубина канала изображения

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает цвет указанного индекса карты цветов

  • « Gmagick::getimagechanneldepth
  • Gmagick::getimagecolorspace »
  • PHP Manual
  • Gmagick
  • Возвращает цвет указанного индекса карты цветов

Gmagick::getimagecolors

(PECL gmagick >= Unknown)

Gmagick::getimagecolors — Возвращает цвет указанного индекса карты цветов

Описание

public Gmagick::getimagecolors(): int

Возвращает цвет указанного индекса карты цветов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество цветов в изображении.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает цветовое пространство изображения

  • « Gmagick::getimagecolors
  • Gmagick::getimagecompose »
  • PHP Manual
  • Gmagick
  • Возвращает цветовое пространство изображения

Gmagick::getimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::getimagecolorspace — Возвращает цветовое пространство изображения

Описание

public Gmagick::getimagecolorspace(): int

Возвращает цветовое пространство изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Цветовое пространство.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает составной оператор, связанный с изображением

  • « Gmagick::getimagecolorspace
  • Gmagick::getimagedelay »
  • PHP Manual
  • Gmagick
  • Возвращает составной оператор, связанный с изображением

Gmagick::getimagecompose

(PECL gmagick >= Unknown)

Gmagick::getimagecompose — Возвращает составной оператор, связанный с изображением

Описание

public Gmagick::getimagecompose(): int

Возвращает составной оператор, связанный с изображением.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает составной оператор, связанный с изображением.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Получает задержку изображения

  • « Gmagick::getimagecompose
  • Gmagick::getimagedepth »
  • PHP Manual
  • Gmagick
  • Получает задержку изображения

Gmagick::getimagedelay

(PECL gmagick >= Unknown)

Gmagick::getimagedelay — Получает задержку изображения

Описание

public Gmagick::getimagedelay(): int

Получает задержку изображения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает составной оператор, связанный с изображением.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Получает глубину изображения

  • « Gmagick::getimagedelay
  • Gmagick::getimagedispose »
  • PHP Manual
  • Gmagick
  • Получает глубину изображения

Gmagick::getimagedepth

(PECL gmagick >= Unknown)

Gmagick::getimagedepth — Получает глубину изображения

Описание

public Gmagick::getimagedepth(): int

Получает глубину изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Глубина изображения

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Получает метод удаления изображения

  • « Gmagick::getimagedepth
  • Gmagick::getimageextrema »
  • PHP Manual
  • Gmagick
  • Получает метод удаления изображения

Gmagick::getimagedispose

(PECL gmagick >= Unknown)

Gmagick::getimagedispose — Получает метод удаления изображения

Описание

public Gmagick::getimagedispose(): int

Получает метод удаления изображения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает метод удаления изображения в случае успешного выполнения

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Получает экстремумы для изображения

  • « Gmagick::getimagedispose
  • Gmagick::getimagefilename »
  • PHP Manual
  • Gmagick
  • Получает экстремумы для изображения

Gmagick::getimageextrema

(PECL gmagick >= Unknown)

Gmagick::getimageextrema — Получает экстремумы для изображения

Описание

public Gmagick::getimageextrema(): array

Возвращает ассоциативный массив с ключами "min" и "max". Вызывает GmagickException в случае возникновения ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив с ключами "min" и "max".

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает имя файла конкретного изображения в последовательности

  • « Gmagick::getimageextrema
  • Gmagick::getimageformat »
  • PHP Manual
  • Gmagick
  • Возвращает имя файла конкретного изображения в последовательности

Gmagick::getimagefilename

(PECL gmagick >= Unknown)

Gmagick::getimagefilename — Возвращает имя файла конкретного изображения в последовательности

Описание

public Gmagick::getimagefilename(): string

Возвращает имя файла конкретного изображения в последовательности

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла конкретного изображения

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает формат конкретного изображения в последовательности

  • « Gmagick::getimagefilename
  • Gmagick::getimagegamma »
  • PHP Manual
  • Gmagick
  • Возвращает формат конкретного изображения в последовательности

Gmagick::getimageformat

(PECL gmagick >= Unknown)

Gmagick::getimageformat — Возвращает формат конкретного изображения в последовательности

Описание

public Gmagick::getimageformat(): string

Возвращает формат конкретного изображения в последовательности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает формат изображения в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает гамму изображения

  • « Gmagick::getimageformat
  • Gmagick::getimagegreenprimary »
  • PHP Manual
  • Gmagick
  • Возвращает гамму изображения

Gmagick::getimagegamma

(PECL gmagick >= Unknown)

Gmagick::getimagegamma — Возвращает гамму изображения

Описание

public Gmagick::getimagegamma(): float

Возвращает гамму изображения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает гамму изображения в случае успешного выполнения

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает первичную зелёную точку

  • « Gmagick::getimagegamma
  • Gmagick::getimageheight »
  • PHP Manual
  • Gmagick
  • Возвращает первичную зелёную точку

Gmagick::getimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::getimagegreenprimary — Возвращает первичную зелёную точку

Описание

public Gmagick::getimagegreenprimary(): array

Возвращает первичную зелёную точку в виде массива с ключами "x" и "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с ключами "x" и "y" в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает высоту изображения

  • « Gmagick::getimagegreenprimary
  • Gmagick::getimagehistogram »
  • PHP Manual
  • Gmagick
  • Возвращает высоту изображения

Gmagick::getimageheight

(PECL gmagick >= Unknown)

Gmagick::getimageheight — Возвращает высоту изображения

Описание

public Gmagick::getimageheight(): int

Возвращает высоту изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает высоту изображения в пикселях.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает гистограмму изображения

  • « Gmagick::getimageheight
  • Gmagick::getimageindex »
  • PHP Manual
  • Gmagick
  • Возвращает гистограмму изображения

Gmagick::getimagehistogram

(PECL gmagick >= Unknown)

Gmagick::getimagehistogram — Возвращает гистограмму изображения

Описание

public Gmagick::getimagehistogram(): array

Возвращает гистограмму изображения в виде массива объектов GmagickPixel. В случае возникновения ошибки выбрасывает исключение GmagickException.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает гистограмму изображения в виде массива объектов GmagickPixel.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает индекс текущего активного изображения

  • « Gmagick::getimagehistogram
  • Gmagick::getimageinterlacescheme »
  • PHP Manual
  • Gmagick
  • Возвращает индекс текущего активного изображения

Gmagick::getimageindex

(PECL gmagick >= Unknown)

Gmagick::getimageindex — Возвращает индекс текущего активного изображения

Описание

public Gmagick::getimageindex(): int

Возвращает индекс текущего активного изображения в объекте Gmagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает индекс текущего активного изображения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Получает схему чередования изображений

  • « Gmagick::getimageindex
  • Gmagick::getimageiterations »
  • PHP Manual
  • Gmagick
  • Получает схему чередования изображений

Gmagick::getimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::getimageinterlacescheme — Получает схему чередования изображений

Описание

public Gmagick::getimageinterlacescheme(): int

Получает схему чередования изображений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает схему чередования как целое число в случае успешного выполнения

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Получает итерации изображения

  • « Gmagick::getimageinterlacescheme
  • Gmagick::getimagematte »
  • PHP Manual
  • Gmagick
  • Получает итерации изображения

Gmagick::getimageiterations

(PECL gmagick >= Unknown)

Gmagick::getimageiterations — Получает итерации изображения

Описание

public Gmagick::getimageiterations(): int

Получает итерации изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает итерации изображения в виде целого числа.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Проверяет, есть ли на изображении матовый канал

  • « Gmagick::getimageiterations
  • Gmagick::getimagemattecolor »
  • PHP Manual
  • Gmagick
  • Проверяет, есть ли на изображении матовый канал

Gmagick::getimagematte

(PECL gmagick >= Unknown)

Gmagick::getimagematte — Проверяет, есть ли на изображении матовый канал

Описание

public Gmagick::getimagematte(): int

Возвращает true, если у изображения есть матовый канал, в противном случае возвращает false.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если у изображения есть матовый канал, в противном случае возвращает false.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает изображение матового цвета

  • « Gmagick::getimagematte
  • Gmagick::getimageprofile »
  • PHP Manual
  • Gmagick
  • Возвращает изображение матового цвета

Gmagick::getimagemattecolor

(PECL gmagick >= Unknown)

Gmagick::getimagemattecolor — Возвращает изображение матового цвета

Описание

public Gmagick::getimagemattecolor(): GmagickPixel

Возвращает объект GmagickPixel в случае успешного выполнения. Выбрасывает GmagickException в случае возникновения ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект GmagickPixel в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает именованный профайл изображения

  • « Gmagick::getimagemattecolor
  • Gmagick::getimageredprimary »
  • PHP Manual
  • Gmagick
  • Возвращает именованный профайл изображения

Gmagick::getimageprofile

(PECL gmagick >= Unknown)

Gmagick::getimageprofile — Возвращает именованный профайл изображения

Описание

public Gmagick::getimageprofile(string $name): string

Возвращает именованный профайл изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает именованный профайл изображения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает первичную красную точку

  • « Gmagick::getimageprofile
  • Gmagick::getimagerenderingintent »
  • PHP Manual
  • Gmagick
  • Возвращает первичную красную точку

Gmagick::getimageredprimary

(PECL gmagick >= Unknown)

Gmagick::getimageredprimary — Возвращает первичную красную точку

Описание

public Gmagick::getimageredprimary(): array

Возвращает первичную красную точку в виде массива с ключами "x" и "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает первичную красную точку в виде массива с ключами "x" и "y".

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Получает цель рендеринга изображения

  • « Gmagick::getimageredprimary
  • Gmagick::getimageresolution »
  • PHP Manual
  • Gmagick
  • Получает цель рендеринга изображения

Gmagick::getimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::getimagerenderingintent — Получает цель рендеринга изображения

Описание

public Gmagick::getimagerenderingintent(): int

Получает цель рендеринга изображения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Извлекает область изображения и возвращает её как новую палочку

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает разрешение изображения

  • « Gmagick::getimagerenderingintent
  • Gmagick::getimagescene »
  • PHP Manual
  • Gmagick
  • Возвращает разрешение изображения

Gmagick::getimageresolution

(PECL gmagick >= Unknown)

Gmagick::getimageresolution — Возвращает разрешение изображения

Описание

public Gmagick::getimageresolution(): array

Возвращает разрешение изображения в виде массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает разрешение изображения в виде массива.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Получает сцену изображения

  • « Gmagick::getimageresolution
  • Gmagick::getimagesignature »
  • PHP Manual
  • Gmagick
  • Получает сцену изображения

Gmagick::getimagescene

(PECL gmagick >= Unknown)

Gmagick::getimagescene — Получает сцену изображения

Описание

public Gmagick::getimagescene(): int

Получает сцену изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сцену изображения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Создаёт подпись сообщения SHA-256

  • « Gmagick::getimagescene
  • Gmagick::getimagetype »
  • PHP Manual
  • Gmagick
  • Создаёт подпись сообщения SHA-256

Gmagick::getimagesignature

(PECL gmagick >= Unknown)

Gmagick::getimagesignature — Создаёт подпись сообщения SHA-256

Описание

public Gmagick::getimagesignature(): string

Создаёт подпись сообщения SHA-256 для потока пикселей изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую хеш SHA-256 файла.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает потенциальный тип изображения

  • « Gmagick::getimagesignature
  • Gmagick::getimageunits »
  • PHP Manual
  • Gmagick
  • Возвращает потенциальный тип изображения

Gmagick::getimagetype

(PECL gmagick >= Unknown)

Gmagick::getimagetype — Возвращает потенциальный тип изображения

Описание

public Gmagick::getimagetype(): int

Возвращает потенциальный тип изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает потенциальный тип изображения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает единицы разрешения изображения

  • « Gmagick::getimagetype
  • Gmagick::getimagewhitepoint »
  • PHP Manual
  • Gmagick
  • Возвращает единицы разрешения изображения

Gmagick::getimageunits

(PECL gmagick >= Unknown)

Gmagick::getimageunits — Возвращает единицы разрешения изображения

Описание

public Gmagick::getimageunits(): int

Возвращает единицы разрешения изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает единицы разрешения изображения.


Возвращает хроматическую белую точку

  • « Gmagick::getimageunits
  • Gmagick::getimagewidth »
  • PHP Manual
  • Gmagick
  • Возвращает хроматическую белую точку

Gmagick::getimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::getimagewhitepoint — Возвращает хроматическую белую точку

Описание

public Gmagick::getimagewhitepoint(): array

Возвращает хроматическую белую точку в виде ассоциативного массива с ключами "x" и "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает хроматическую белую точку в виде ассоциативного массива с ключами "x" и "y".

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает ширину изображения

  • « Gmagick::getimagewhitepoint
  • Gmagick::getpackagename »
  • PHP Manual
  • Gmagick
  • Возвращает ширину изображения

Gmagick::getimagewidth

(PECL gmagick >= Unknown)

Gmagick::getimagewidth — Возвращает ширину изображения

Описание

public Gmagick::getimagewidth(): int

Возвращает ширину изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ширину изображения в пикселях.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает имя пакета GraphicsMagick

  • « Gmagick::getimagewidth
  • Gmagick::getquantumdepth »
  • PHP Manual
  • Gmagick
  • Возвращает имя пакета GraphicsMagick

Gmagick::getpackagename

(PECL gmagick >= Unknown)

Gmagick::getpackagename — Возвращает имя пакета GraphicsMagick

Описание

public Gmagick::getpackagename(): string

Возвращает имя пакета GraphicsMagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя пакета GraphicsMagick в виде строки.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки

  • « Gmagick::getpackagename
  • Gmagick::getreleasedate »
  • PHP Manual
  • Gmagick
  • Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки

Gmagick::getquantumdepth

(PECL gmagick >= Unknown)

Gmagick::getquantumdepth — Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки

Описание

public Gmagick::getquantumdepth(): array

Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает глубину цвета (бит на канал) объекта Gmagick в виде строки.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает дату релиза GraphicsMagick в виде строки

  • « Gmagick::getquantumdepth
  • Gmagick::getsamplingfactors »
  • PHP Manual
  • Gmagick
  • Возвращает дату релиза GraphicsMagick в виде строки

Gmagick::getreleasedate

(PECL gmagick >= Unknown)

Gmagick::getreleasedate — Возвращает дату релиза GraphicsMagick в виде строки

Описание

public Gmagick::getreleasedate(): string

Возвращает дату релиза GraphicsMagick в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает дату релиза GraphicsMagick в виде строки.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает вертикальный и горизонтальный фактор дискретизации

  • « Gmagick::getreleasedate
  • Gmagick::getsize »
  • PHP Manual
  • Gmagick
  • Возвращает вертикальный и горизонтальный фактор дискретизации

Gmagick::getsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::getsamplingfactors — Возвращает вертикальный и горизонтальный фактор дискретизации

Описание

public Gmagick::getsamplingfactors(): array

Возвращает вертикальный и горизонтальный фактор дискретизации.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает вертикальный и горизонтальный фактор дискретизации изображения в виде ассоциативного массива.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает размер, связанный с объектом Gmagick

  • « Gmagick::getsamplingfactors
  • Gmagick::getversion »
  • PHP Manual
  • Gmagick
  • Возвращает размер, связанный с объектом Gmagick

Gmagick::getsize

(PECL gmagick >= Unknown)

Gmagick::getsize — Возвращает размер, связанный с объектом Gmagick

Описание

public Gmagick::getsize(): 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(): array

Возвращает версию GraphicsMagick API в виде строки и числа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает версию GraphicsMagick API в виде строки и числа.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Проверяет, есть ли ещё изображения в объекте

  • « Gmagick::getversion
  • Gmagick::haspreviousimage »
  • PHP Manual
  • Gmagick
  • Проверяет, есть ли ещё изображения в объекте

Gmagick::hasnextimage

(PECL gmagick >= Unknown)

Gmagick::hasnextimage — Проверяет, есть ли ещё изображения в объекте

Описание

public Gmagick::hasnextimage(): mixed

Возвращает true, если при итерации вперёд по списку есть изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если при итерации вперёд по списку есть изображения и false, если нет.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Проверяет, есть ли ещё изображения в объекте при итерации назад

  • « Gmagick::hasnextimage
  • Gmagick::implodeimage »
  • PHP Manual
  • Gmagick
  • Проверяет, есть ли ещё изображения в объекте при итерации назад

Gmagick::haspreviousimage

(PECL gmagick >= Unknown)

Gmagick::haspreviousimage — Проверяет, есть ли ещё изображения в объекте при итерации назад

Описание

public Gmagick::haspreviousimage(): mixed

Возвращает true, если при итерации назад по списку есть изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если при итерации назад по списку есть изображения и false, если нет.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Создаёт копию изображения

  • « Gmagick::haspreviousimage
  • Gmagick::labelimage »
  • PHP Manual
  • Gmagick
  • Создаёт копию изображения

Gmagick::implodeimage

(PECL gmagick >= Unknown)

Gmagick::implodeimage — Создаёт копию изображения

Описание

public Gmagick::implodeimage(float $radius): mixed

Создаёт новое изображение, которое является копией существующего с пикселями, "сжатыми" на указанный процент.

Список параметров

radius

Радиус сжатия.

Возвращаемые значения

Возвращает сжатый объект Gmagick.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Добавляет метку к изображению

  • « Gmagick::implodeimage
  • Gmagick::levelimage »
  • PHP Manual
  • Gmagick
  • Добавляет метку к изображению

Gmagick::labelimage

(PECL gmagick >= Unknown)

Gmagick::labelimage — Добавляет метку к изображению

Описание

public Gmagick::labelimage(string $label): mixed

Добавляет метку к изображению.

Список параметров

label

Метка, которую необходимо добавить

Возвращаемые значения

Gmagick с меткой.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Регулирует уровни изображения

  • « Gmagick::labelimage
  • Gmagick::magnifyimage »
  • PHP Manual
  • Gmagick
  • Регулирует уровни изображения

Gmagick::levelimage

(PECL gmagick >= Unknown)

Gmagick::levelimage — Регулирует уровни изображения

Описание

public Gmagick::levelimage(
float $blackPoint,
float $gamma,
float $whitePoint,
int $channel = Gmagick::CHANNEL_DEFAULT
): mixed

Регулирует уровни изображения, масштабируя цвета, попадающие между указанными белыми и чёрными точками, до полного доступного квантового диапазона. Предоставленные параметры представляют собой чёрные, средние и белые точки. Чёрная точка указывает на самый тёмный цвет изображения. Цвета темнее точки чёрного устанавливаются на ноль. Средняя точка определяет гамма-коррекцию, применяемую к изображению. Белая точка определяет самый светлый цвет изображения. Цвета ярче точки белого устанавливаются на максимальное квантовое значение.

Список параметров

blackPoint

Чёрная точка изображения.

gamma

Значение гаммы.

whitePoint

Белая точка изображения.

channel

Укажите любую константу канала, которая действительна для вашего режима канала. Чтобы применить более чем к одному каналу, объедините константы типа канала с помощью побитовых операторов. Обратитесь к списку констант канала.

Возвращаемые значения

Объект Gmagick с выровненным изображением.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Пропорционально масштабирует изображение в 2 раза

  • « Gmagick::levelimage
  • Gmagick::mapimage »
  • PHP Manual
  • Gmagick
  • Пропорционально масштабирует изображение в 2 раза

Gmagick::magnifyimage

(PECL gmagick >= Unknown)

Gmagick::magnifyimage — Пропорционально масштабирует изображение в 2 раза

Описание

public Gmagick::magnifyimage(): mixed

Масштабирует изображение пропорционально двойному исходному размеру.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Увеличенный объект Gmagick.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Заменяет цвета изображения на ближайший цвет из эталонного изображения

  • « Gmagick::magnifyimage
  • Gmagick::medianfilterimage »
  • PHP Manual
  • Gmagick
  • Заменяет цвета изображения на ближайший цвет из эталонного изображения

Gmagick::mapimage

(PECL gmagick >= Unknown)

Gmagick::mapimage — Заменяет цвета изображения на ближайший цвет из эталонного изображения

Описание

public Gmagick::mapimage(gmagick $gmagick, bool $dither): Gmagick

Заменяет цвета изображения на ближайший цвет из эталонного изображения.

Список параметров

gmagick

Эталонное изображение.

dither

Установите для этого целого числа значение, отличное от нуля, чтобы размыть отображаемое изображение.

Возвращаемые значения

Объект Gmagick.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Применяет цифровой фильтр

  • « Gmagick::mapimage
  • Gmagick::minifyimage »
  • PHP Manual
  • Gmagick
  • Применяет цифровой фильтр

Gmagick::medianfilterimage

(PECL gmagick >= Unknown)

Gmagick::medianfilterimage — Применяет цифровой фильтр

Описание

public Gmagick::medianfilterimage(float $radius): void

Применяет цифровой фильтр, улучшающий качество зашумлённого изображения. Каждый пиксель заменяется медианой в наборе соседних пикселей, определяемых радиусом.

Список параметров

radius

Радиус окрестности пикселя.

Возвращаемые значения

Объект Gmagick с применённым медианным фильтром.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Масштабирует изображение пропорционально половине его размера

  • « Gmagick::medianfilterimage
  • Gmagick::modulateimage »
  • PHP Manual
  • Gmagick
  • Масштабирует изображение пропорционально половине его размера

Gmagick::minifyimage

(PECL gmagick >= Unknown)

Gmagick::minifyimage — Масштабирует изображение пропорционально половине его размера

Описание

public Gmagick::minifyimage(): Gmagick

Метод масштабирования изображения пропорционально половине исходного размера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Управляет яркостью, насыщенностью и оттенком

  • « Gmagick::minifyimage
  • Gmagick::motionblurimage »
  • PHP Manual
  • Gmagick
  • Управляет яркостью, насыщенностью и оттенком

Gmagick::modulateimage

(PECL gmagick >= Unknown)

Gmagick::modulateimage — Управляет яркостью, насыщенностью и оттенком

Описание

public Gmagick::modulateimage(float $brightness, float $saturation, float $hue): Gmagick

Позволяет управлять яркостью, насыщенностью и оттенком изображения. Оттенок - это процент абсолютного поворота от текущей позиции. Например, значение 50 приводит к повороту против часовой стрелки на 90 градусов, 150 приводит к повороту по часовой стрелке на 90 градусов, значения 0 и 200 приводят к повороту на 180 градусов.

Список параметров

brightness

Изменение яркости в процентах (от -100 до +100).

saturation

Процентное изменение насыщенности (от -100 до +100)

hue

Процент изменения оттенка (от -100 до +100)

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Имитирует размытие при движении

  • « Gmagick::modulateimage
  • Gmagick::newimage »
  • PHP Manual
  • Gmagick
  • Имитирует размытие при движении

Gmagick::motionblurimage

(PECL gmagick >= Unknown)

Gmagick::motionblurimage — Имитирует размытие при движении

Описание

public Gmagick::motionblurimage(float $radius, float $sigma, float $angle): Gmagick

Имитирует размытие при движении. Сворачивает изображение с помощью гауссовского оператора заданного радиуса и стандартного отклонения (sigma). Для получения приемлемых результатов radius должен быть больше sigma. При использовании значения radius, равного 0, Gmagick::motionblurimage() выберет для вас подходящий радиус. Параметр angle задаёт угол размытия движения.

Список параметров

radius

Радиус в пикселях, не считая центрального пикселя.

sigma

Стандартное отклонение в пикселях.

angle

Угол, под которым применяется эффект.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Создаёт новое изображение

  • « Gmagick::motionblurimage
  • Gmagick::nextimage »
  • PHP Manual
  • Gmagick
  • Создаёт новое изображение

Gmagick::newimage

(PECL gmagick >= Unknown)

Gmagick::newimage — Создаёт новое изображение

Описание

public Gmagick::newimage(
int $width,
int $height,
string $background,
string $format = ?
): Gmagick

Создаёт новое изображение с указанным фоновым цветом.

Список параметров

width

Ширина нового изображения.

height

Высота нового изображения.

background

Цвет фона, используемый для этого изображения в виде числа с плавающей точкой.

format

Формат изображения.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Осуществляет переход к следующему изображению

  • « Gmagick::newimage
  • Gmagick::normalizeimage »
  • PHP Manual
  • Gmagick
  • Осуществляет переход к следующему изображению

Gmagick::nextimage

(PECL gmagick >= Unknown)

Gmagick::nextimage — Осуществляет переход к следующему изображению

Описание

public Gmagick::nextimage(): bool

Связывает следующее изображение в списке изображений с объектом Gmagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Повышает контрастность цветного изображения

  • « Gmagick::nextimage
  • Gmagick::oilpaintimage »
  • PHP Manual
  • Gmagick
  • Повышает контрастность цветного изображения

Gmagick::normalizeimage

(PECL gmagick >= Unknown)

Gmagick::normalizeimage — Повышает контрастность цветного изображения

Описание

public Gmagick::normalizeimage(int $channel = ?): Gmagick

Повышает контрастность цветного изображения, регулируя цвет пикселей для охвата всего диапазона доступных цветов.

Список параметров

channel

Определяет, какой канал нормализовать.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Имитирует эффект картины маслом

  • « Gmagick::normalizeimage
  • Gmagick::previousimage »
  • PHP Manual
  • Gmagick
  • Имитирует эффект картины маслом

Gmagick::oilpaintimage

(PECL gmagick >= Unknown)

Gmagick::oilpaintimage — Имитирует эффект картины маслом

Описание

public Gmagick::oilpaintimage( float $radius ): Gmagick

Применяет фильтр со специальным эффектом, имитирующий картину маслом. Каждый пиксель заменяется наиболее часто встречающимся цветом в круговой области, определяемой радиусом.

Список параметров

radius

Радиус круговой окрестности.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Осуществляет переход к предыдущему изображению в объекте

  • « Gmagick::oilpaintimage
  • Gmagick::profileimage »
  • PHP Manual
  • Gmagick
  • Осуществляет переход к предыдущему изображению в объекте

Gmagick::previousimage

(PECL gmagick >= Unknown)

Gmagick::previousimage — Осуществляет переход к предыдущему изображению в объекте

Описание

public Gmagick::previousimage(): bool

Связывает предыдущее изображение в списке изображений с объектом Gmagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Добавляет или удаляет профиль из изображения

  • « Gmagick::previousimage
  • Gmagick::quantizeimage »
  • PHP Manual
  • Gmagick
  • Добавляет или удаляет профиль из изображения

Gmagick::profileimage

(PECL gmagick >= Unknown)

Gmagick::profileimage — Добавляет или удаляет профиль из изображения

Описание

public Gmagick::profileimage(string $name, string $profile): Gmagick

Добавляет или удаляет ICC, IPTC или общий профиль из изображения. Если значение profile равно null, профиль удаляется из изображения, в противном случае добавляется. Используйте значение * для параметра name и null для параметра profile, чтобы удалить все профили из изображения.

Список параметров

name

Имя профиля, который нужно добавить или удалить: ICC, IPTC или общий профиль.

profile

Профиль.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Анализирует цвета эталонного изображения

  • « Gmagick::profileimage
  • Gmagick::quantizeimages »
  • PHP Manual
  • Gmagick
  • Анализирует цвета эталонного изображения

Gmagick::quantizeimage

(PECL gmagick >= Unknown)

Gmagick::quantizeimage — Анализирует цвета эталонного изображения

Описание

public Gmagick::quantizeimage(
int $numColors,
int $colorspace,
int $treeDepth,
bool $dither,
bool $measureError
): Gmagick

Анализирует цвета в эталонном изображении и выбирает фиксированное количество цветов для представления изображения. Целью алгоритма является минимизация разницы в цвете между входным и выходным изображением при минимизации времени обработки.

Список параметров

numColors

Количество цветов.

colorspace

Цветовое пространство, в котором выполнится уменьшение цвета, обычно RGB.

treeDepth

Обычно это целое значение равно нулю или единице. Ноль или единица указывает Quantize выбрать оптимальную глубину дерева Log4(number_colors). Дерево этой глубины обычно обеспечивает наилучшее представление эталонного изображения с наименьшим объёмом памяти и максимальной скоростью вычислений. В некоторых случаях, например для изображения с низкой цветовой дисперсией (несколько цветов), требуется значение, отличное от Log4(number_colors). Чтобы полностью развернуть дерево цветов, используйте значение 8.

dither

Значение, отличное от нуля, распределяет разницу между исходным изображением и соответствующим алгоритмом уменьшения цвета на соседние пиксели вдоль кривой Гильберта.

measureError

Значение, отличное от нуля, измеряет разницу между исходным и квантованным изображениями. Эта разница составляет полную ошибку квантования. Ошибка вычисляется путём суммирования по всем пикселям изображения квадрата расстояния в пространстве RGB между значением каждого эталонного пикселя и его квантованным значением.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Анализирует цвета в последовательности изображений

  • « Gmagick::quantizeimage
  • Gmagick::queryfontmetrics »
  • PHP Manual
  • Gmagick
  • Анализирует цвета в последовательности изображений

Gmagick::quantizeimages

(PECL gmagick >= Unknown)

Gmagick::quantizeimages — Анализирует цвета в последовательности изображений

Описание

public Gmagick::quantizeimages(
int $numColors,
int $colorspace,
int $treeDepth,
bool $dither,
bool $measureError
): Gmagick

Анализирует цвета в последовательности изображений и выбирает фиксированное количество цветов для представления изображения. Целью алгоритма является минимизация разницы в цвете между входным и выходным изображением при минимизации времени обработки.

Список параметров

numColors

Количество цветов.

colorspace

Цветовое пространство, в котором выполнится уменьшение цвета, обычно RGB.

treeDepth

Обычно это целое значение равно нулю или единице. Ноль или единица указывает Quantize выбрать оптимальную глубину дерева Log4(number_colors). Дерево этой глубины обычно обеспечивает наилучшее представление эталонного изображения с наименьшим объёмом памяти и максимальной скоростью вычислений. В некоторых случаях, например для изображения с низкой цветовой дисперсией (несколько цветов), требуется значение, отличное от Log4(number_colors). Чтобы полностью развернуть дерево цветов, используйте значение 8.

dither

Значение, отличное от нуля, распределяет разницу между исходным изображением и соответствующим алгоритмом уменьшения цвета на соседние пиксели вдоль кривой Гильберта.

measureError

Значение, отличное от нуля, измеряет разницу между исходным и квантованным изображениями. Эта разница составляет полную ошибку квантования. Ошибка вычисляется путём суммирования по всем пикселям изображения квадрата расстояния в пространстве RGB между значением каждого эталонного пикселя и его квантованным значением.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает массив, представляющий метрики шрифта

  • « Gmagick::quantizeimages
  • Gmagick::queryfonts »
  • PHP Manual
  • Gmagick
  • Возвращает массив, представляющий метрики шрифта

Gmagick::queryfontmetrics

(PECL gmagick >= Unknown)

Gmagick::queryfontmetrics — Возвращает массив, представляющий метрики шрифта

Описание

public Gmagick::queryfontmetrics(GmagickDraw $draw, string $text): array

Возвращает массив, представляющий метрики шрифта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает настроенные шрифты

  • « Gmagick::queryfontmetrics
  • Gmagick::queryformats »
  • PHP Manual
  • Gmagick
  • Возвращает настроенные шрифты

Gmagick::queryfonts

(PECL gmagick >= Unknown)

Gmagick::queryfonts — Возвращает настроенные шрифты

Описание

public Gmagick::queryfonts(string $pattern = "*"): array

Возвращает шрифты, поддерживаемые Gmagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Возвращает форматы, поддерживаемые Gmagick

  • « Gmagick::queryfonts
  • Gmagick::radialblurimage »
  • PHP Manual
  • Gmagick
  • Возвращает форматы, поддерживаемые Gmagick

Gmagick::queryformats

(PECL gmagick >= Unknown)

Gmagick::queryformats — Возвращает форматы, поддерживаемые Gmagick

Описание

public Gmagick::queryformats(string $pattern = "*"): array

Возвращает форматы, поддерживаемые Gmagick.

Список параметров

pattern

Задаёт строку (string), содержащую шаблон.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Применяет радиальное размытие к изображению

  • « Gmagick::queryformats
  • Gmagick::raiseimage »
  • PHP Manual
  • Gmagick
  • Применяет радиальное размытие к изображению

Gmagick::radialblurimage

(PECL gmagick >= Unknown)

Gmagick::radialblurimage — Применяет радиальное размытие к изображению

Описание

public Gmagick::radialblurimage(float $angle, int $channel = Gmagick::CHANNEL_DEFAULT): Gmagick

Применяет радиальное размытие к изображению.

Список параметров

angle

Угол размытия в градусах.

channel

Связанный канал.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Создаёт имитацию эффекта трёхмерной кнопки

  • « Gmagick::radialblurimage
  • Gmagick::read »
  • PHP Manual
  • Gmagick
  • Создаёт имитацию эффекта трёхмерной кнопки

Gmagick::raiseimage

(PECL gmagick >= Unknown)

Gmagick::raiseimage — Создаёт имитацию эффекта трёхмерной кнопки

Описание

public Gmagick::raiseimage(
int $width,
int $height,
int $x,
int $y,
bool $raise
): Gmagick

Создаёт имитацию эффекта трёхмерной кнопки, осветляя и затемняя края изображения. Ширина и высота элементов raise_info определяют ширину вертикального и горизонтального края эффекта.

Список параметров

width

Ширина области, которую нужно поднять.

height

Высота поднимаемой площади.

x

Координата X.

y

Координата Y.

raise

Значение, отличное от нуля, создаёт эффект трёхмерного возвышения, в противном случае - эффект понижения.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает 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 в случае возникновения ошибки.


Сглаживает контуры изображения

  • « Gmagick::readimagefile
  • Gmagick::removeimage »
  • PHP Manual
  • Gmagick
  • Сглаживает контуры изображения

Gmagick::reducenoiseimage

(PECL gmagick >= Unknown)

Gmagick::reducenoiseimage — Сглаживает контуры изображения

Описание

public Gmagick::reducenoiseimage(float $radius): Gmagick

Сглаживает контуры изображения, сохраняя при этом информацию о краях. Алгоритм работает, заменяя каждый пиксель ближайшим по значению соседом. Сосед определяется значением radius. Используйте значение radius, равное 0, и Gmagick::reducenoiseimage() выберет для вас подходящий радиус.

Список параметров

radius

Радиус окрестности пикселя.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Удаляет изображение из списка

  • « Gmagick::reducenoiseimage
  • Gmagick::removeimageprofile »
  • PHP Manual
  • Gmagick
  • Удаляет изображение из списка

Gmagick::removeimage

(PECL gmagick >= Unknown)

Gmagick::removeimage — Удаляет изображение из списка

Описание

public Gmagick::removeimage(): 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 в случае возникновения ошибки.


Изменяет разрешение изображения до желаемого

  • « Gmagick::removeimageprofile
  • Gmagick::resizeimage »
  • PHP Manual
  • Gmagick
  • Изменяет разрешение изображения до желаемого

Gmagick::resampleimage

(PECL gmagick >= Unknown)

Gmagick::resampleimage — Изменяет разрешение изображения до желаемого

Описание

public Gmagick::resampleimage(
float $xResolution,
float $yResolution,
int $filter,
float $blur
): Gmagick

Изменяет разрешение изображения до желаемого.

Список параметров

xResolution

Новое разрешение по оси x.

yResolution

Новое разрешение по оси y.

filter

Фильтр изображений для использования.

blur

Коэффициент размытия, где больше значение больше 1 делает изображение более размытым, значение меньше 1 - менее размытым.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Масштабирует изображение

  • « Gmagick::resampleimage
  • Gmagick::rollimage »
  • PHP Manual
  • Gmagick
  • Масштабирует изображение

Gmagick::resizeimage

(PECL gmagick >= Unknown)

Gmagick::resizeimage — Масштабирует изображение

Описание

public Gmagick::resizeimage(
int $width,
int $height,
int $filter,
float $blur,
bool $fit = false
): Gmagick

Масштабирует изображение до желаемых размеров с помощью фильтра.

Список параметров

width

Количество столбцов в масштабированном изображении.

height

Количество строк в масштабированном изображении.

filter

Фильтр изображений для использования.

blur

Коэффициент размытия, где больше значение больше 1 делает изображение более размытым, значение меньше 1 - менее размытым.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Смещает изображение

  • « Gmagick::resizeimage
  • Gmagick::rotateimage »
  • PHP Manual
  • Gmagick
  • Смещает изображение

Gmagick::rollimage

(PECL gmagick >= Unknown)

Gmagick::rollimage — Смещает изображение

Описание

public Gmagick::rollimage(int $x, int $y): Gmagick

Смещает изображение в соответствии с x и y.

Список параметров

x

Смещение по оси x.

y

Смещение по оси y.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Поворачивает изображение

  • « Gmagick::rollimage
  • Gmagick::scaleimage »
  • PHP Manual
  • Gmagick
  • Поворачивает изображение

Gmagick::rotateimage

(PECL gmagick >= Unknown)

Gmagick::rotateimage — Поворачивает изображение

Описание

public Gmagick::rotateimage(mixed $color, float $degrees): Gmagick

Поворачивает изображение на указанное количество градусов. Пустые треугольники, оставшиеся от поворота изображения, заполняются цветом фона.

Список параметров

color

Пиксель фона.

degrees

Число градусов для поворота изображения.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Масштабирует размер изображения

  • « Gmagick::rotateimage
  • Gmagick::separateimagechannel »
  • PHP Manual
  • Gmagick
  • Масштабирует размер изображения

Gmagick::scaleimage

(PECL gmagick >= Unknown)

Gmagick::scaleimage — Масштабирует размер изображения

Описание

public Gmagick::scaleimage(int $width, int $height, bool $fit = false): Gmagick

Масштабирует размер изображения до заданных размеров. Другой параметр будет рассчитан, если в качестве любого из параметров будет передан 0.

Список параметров

width

Количество столбцов в масштабированном изображении.

height

Количество строк в масштабированном изображении.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Отделяет канал от изображения

  • « Gmagick::scaleimage
  • Gmagick::setCompressionQuality »
  • PHP Manual
  • Gmagick
  • Отделяет канал от изображения

Gmagick::separateimagechannel

(PECL gmagick >= Unknown)

Gmagick::separateimagechannel — Отделяет канал от изображения

Описание

public Gmagick::separateimagechannel(int $channel): Gmagick

Отделяет канал от изображения и возвращает изображение в оттенках серого. Канал - это определённый цветовой компонент каждого пикселя изображения.

Список параметров

channel

Одна из констант канала (Gmagick::CHANNEL_*).

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает качество сжатия объекта по умолчанию

  • « Gmagick::separateimagechannel
  • Gmagick::setfilename »
  • PHP Manual
  • Gmagick
  • Устанавливает качество сжатия объекта по умолчанию

Gmagick::setCompressionQuality

(Информация о версии неизвестна, возможно, только в Git)

Gmagick::setCompressionQuality — Устанавливает качество сжатия объекта по умолчанию

Описание

Gmagick::setCompressionQuality( int $quality = 75 ): Gmagick

Устанавливает качество сжатия объекта по умолчанию.

Список параметров

quality

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Gmagick::setCompressionQuality()

<?php
$gm = new Gmagick();
$gm->read("magick:rose");
$gm->setCompressionQuality(2);
?>


Устанавливает имя файла перед чтением или записью изображения

  • « Gmagick::setCompressionQuality
  • Gmagick::setimagebackgroundcolor »
  • PHP Manual
  • Gmagick
  • Устанавливает имя файла перед чтением или записью изображения

Gmagick::setfilename

(PECL gmagick >= Unknown)

Gmagick::setfilename — Устанавливает имя файла перед чтением или записью изображения

Описание

public Gmagick::setfilename(string $filename): Gmagick

Устанавливает имя файла перед чтением или записью изображения.

Список параметров

filename

Имя файла.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает цвет фона изображения

  • « Gmagick::setfilename
  • Gmagick::setimageblueprimary »
  • PHP Manual
  • Gmagick
  • Устанавливает цвет фона изображения

Gmagick::setimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::setimagebackgroundcolor — Устанавливает цвет фона изображения

Описание

public Gmagick::setimagebackgroundcolor(GmagickPixel $color): Gmagick

Устанавливает цвет фона изображения.

Список параметров

color

Фоновая пиксельная палочка.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает цветность изображения голубой основной точкой

  • « Gmagick::setimagebackgroundcolor
  • Gmagick::setimagebordercolor »
  • PHP Manual
  • Gmagick
  • Устанавливает цветность изображения голубой основной точкой

Gmagick::setimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::setimageblueprimary — Устанавливает цветность изображения голубой основной точкой

Описание

public Gmagick::setimageblueprimary(float $x, float $y): Gmagick

Устанавливает цветность изображения голубой основной точкой.

Список параметров

x

X-координата голубой основной точки.

y

Y-координата голубой основной точки.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает цвет рамки изображения

  • « Gmagick::setimageblueprimary
  • Gmagick::setimagechanneldepth »
  • PHP Manual
  • Gmagick
  • Устанавливает цвет рамки изображения

Gmagick::setimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::setimagebordercolor — Устанавливает цвет рамки изображения

Описание

public Gmagick::setimagebordercolor(GmagickPixel $color): Gmagick

Устанавливает цвет рамки изображения.

Список параметров

color

Цвет рамки.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает глубину определённого канала изображения

  • « Gmagick::setimagebordercolor
  • Gmagick::setimagecolorspace »
  • PHP Manual
  • Gmagick
  • Устанавливает глубину определённого канала изображения

Gmagick::setimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::setimagechanneldepth — Устанавливает глубину определённого канала изображения

Описание

public Gmagick::setimagechanneldepth(int $channel, int $depth): Gmagick

Устанавливает глубину определённого канала изображения.

Список параметров

channel

Одна из констант канала (Gmagick::CHANNEL_*).

depth

Глубина изображения в битах.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает цветовое пространство изображения

  • « Gmagick::setimagechanneldepth
  • Gmagick::setimagecompose »
  • PHP Manual
  • Gmagick
  • Устанавливает цветовое пространство изображения

Gmagick::setimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::setimagecolorspace — Устанавливает цветовое пространство изображения

Описание

public Gmagick::setimagecolorspace(int $colorspace): Gmagick

Устанавливает цветовое пространство изображения.

Список параметров

colorspace

Одна из констант Цветового пространства (Gmagick::COLORSPACE_*).

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает оператор составного изображения

  • « Gmagick::setimagecolorspace
  • Gmagick::setimagedelay »
  • PHP Manual
  • Gmagick
  • Устанавливает оператор составного изображения

Gmagick::setimagecompose

(PECL gmagick >= Unknown)

Gmagick::setimagecompose — Устанавливает оператор составного изображения

Описание

public Gmagick::setimagecompose(int $composite): Gmagick

Устанавливает оператор составного изображения.

Список параметров

composite

Оператор составного изображения.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает задержку изображения

  • « Gmagick::setimagecompose
  • Gmagick::setimagedepth »
  • PHP Manual
  • Gmagick
  • Устанавливает задержку изображения

Gmagick::setimagedelay

(PECL gmagick >= Unknown)

Gmagick::setimagedelay — Устанавливает задержку изображения

Описание

public Gmagick::setimagedelay(int $delay): Gmagick

Устанавливает задержку изображения.

Список параметров

delay

Задержка изображения в 1/100 секунды.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает глубину изображения

  • « Gmagick::setimagedelay
  • Gmagick::setimagedispose »
  • PHP Manual
  • Gmagick
  • Устанавливает глубину изображения

Gmagick::setimagedepth

(PECL gmagick >= Unknown)

Gmagick::setimagedepth — Устанавливает глубину изображения

Описание

public Gmagick::setimagedepth(int $depth): Gmagick

Устанавливает глубину изображения.

Список параметров

depth

Глубина изображения в битах: 8, 16 или 32.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает метод удаления изображения

  • « Gmagick::setimagedepth
  • Gmagick::setimagefilename »
  • PHP Manual
  • Gmagick
  • Устанавливает метод удаления изображения

Gmagick::setimagedispose

(PECL gmagick >= Unknown)

Gmagick::setimagedispose — Устанавливает метод удаления изображения

Описание

public Gmagick::setimagedispose(int $disposeType): Gmagick

Устанавливает метод удаления изображения.

Список параметров

disposeType

Тип удаления изображения.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает имя файла конкретного изображения в последовательности

  • « Gmagick::setimagedispose
  • Gmagick::setimageformat »
  • PHP Manual
  • Gmagick
  • Устанавливает имя файла конкретного изображения в последовательности

Gmagick::setimagefilename

(PECL gmagick >= Unknown)

Gmagick::setimagefilename — Устанавливает имя файла конкретного изображения в последовательности

Описание

public Gmagick::setimagefilename(string $filename): Gmagick

Устанавливает имя файла конкретного изображения в последовательности.

Список параметров

filename

Имя файла изображения.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает формат определённого изображения

  • « Gmagick::setimagefilename
  • Gmagick::setimagegamma »
  • PHP Manual
  • Gmagick
  • Устанавливает формат определённого изображения

Gmagick::setimageformat

(PECL gmagick >= Unknown)

Gmagick::setimageformat — Устанавливает формат определённого изображения

Описание

public Gmagick::setimageformat(string $imageFormat): Gmagick

Устанавливает формат определённого изображения в последовательности.

Список параметров

imageFormat

Формат изображения.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает гамму изображения

  • « Gmagick::setimageformat
  • Gmagick::setimagegreenprimary »
  • PHP Manual
  • Gmagick
  • Устанавливает гамму изображения

Gmagick::setimagegamma

(PECL gmagick >= Unknown)

Gmagick::setimagegamma — Устанавливает гамму изображения

Описание

public Gmagick::setimagegamma(float $gamma): Gmagick

Устанавливает гамму изображения.

Список параметров

gamma

Гамма изображения.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает цветность изображения зелёной первичной точкой

  • « Gmagick::setimagegamma
  • Gmagick::setimageindex »
  • PHP Manual
  • Gmagick
  • Устанавливает цветность изображения зелёной первичной точкой

Gmagick::setimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::setimagegreenprimary — Устанавливает цветность изображения зелёной первичной точкой

Описание

public Gmagick::setimagegreenprimary(float $x, float $y): Gmagick

Устанавливает цветность изображения зелёной первичной точкой.

Список параметров

x

X-координата зелёной основной точки.

y

Y-координата зелёной основной точки.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает итератор в положение в списке изображений, заданном параметром index

  • « Gmagick::setimagegreenprimary
  • Gmagick::setimageinterlacescheme »
  • PHP Manual
  • Gmagick
  • Устанавливает итератор в положение в списке изображений, заданном параметром index

Gmagick::setimageindex

(PECL gmagick >= Unknown)

Gmagick::setimageindex — Устанавливает итератор в положение в списке изображений, заданном параметром index

Описание

public Gmagick::setimageindex(int $index): Gmagick

Устанавливает итератор в положение в списке изображений, заданном параметром index.

Список параметров

index

Номер сцены.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает схему чересстрочной развёртки изображения

  • « Gmagick::setimageindex
  • Gmagick::setimageiterations »
  • PHP Manual
  • Gmagick
  • Устанавливает схему чересстрочной развёртки изображения

Gmagick::setimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::setimageinterlacescheme — Устанавливает схему чересстрочной развёртки изображения

Описание

public Gmagick::setimageinterlacescheme(int $interlace): Gmagick

Устанавливает схему чересстрочной развёртки изображения.

Список параметров

interlace

Одна из констант схемы чересстрочного изображения (Gmagick::INTERLACE_*).

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает итерации изображения

  • « Gmagick::setimageinterlacescheme
  • Gmagick::setimageprofile »
  • PHP Manual
  • Gmagick
  • Устанавливает итерации изображения

Gmagick::setimageiterations

(PECL gmagick >= Unknown)

Gmagick::setimageiterations — Устанавливает итерации изображения

Описание

public Gmagick::setimageiterations(int $iterations): Gmagick

Устанавливает итерации изображения.

Список параметров

iterations

Задержка изображения в 1/100 секунды.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Добавляет именованный профиль в объект Gmagick

  • « Gmagick::setimageiterations
  • Gmagick::setimageredprimary »
  • PHP Manual
  • Gmagick
  • Добавляет именованный профиль в объект Gmagick

Gmagick::setimageprofile

(PECL gmagick >= Unknown)

Gmagick::setimageprofile — Добавляет именованный профиль в объект Gmagick

Описание

public Gmagick::setimageprofile(string $name, string $profile): Gmagick

Добавляет именованный профиль в объект Gmagick. Если профиль с таким именем уже существует, он заменяется. Метод отличается от метода Gmagick::profileimage() тем, что он не применяет цветовые профили CMS.

Список параметров

name

Имя профиля для добавления или удаления: ICC, IPTC или общий профиль.

profile

Профиль.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает цветность изображения красной основной точкой

  • « Gmagick::setimageprofile
  • Gmagick::setimagerenderingintent »
  • PHP Manual
  • Gmagick
  • Устанавливает цветность изображения красной основной точкой

Gmagick::setimageredprimary

(PECL gmagick >= Unknown)

Gmagick::setimageredprimary — Устанавливает цветность изображения красной основной точкой

Описание

public Gmagick::setimageredprimary(float $x, float $y): Gmagick

Устанавливает цветность изображения красной основной точкой.

Список параметров

x

X-координата красной основной точки.

y

Y-координата красной основной точки

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает способ рендеринга изображения

  • « Gmagick::setimageredprimary
  • Gmagick::setimageresolution »
  • PHP Manual
  • Gmagick
  • Устанавливает способ рендеринга изображения

Gmagick::setimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::setimagerenderingintent — Устанавливает способ рендеринга изображения

Описание

public Gmagick::setimagerenderingintent(int $rendering_intent): Gmagick

Устанавливает способ рендеринга изображения.

Список параметров

rendering_intent

Одна из констант способа отображения (Gmagick::RENDERINGINTENT_*).

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает разрешение изображения

  • « Gmagick::setimagerenderingintent
  • Gmagick::setimagescene »
  • PHP Manual
  • Gmagick
  • Устанавливает разрешение изображения

Gmagick::setimageresolution

(PECL gmagick >= Unknown)

Gmagick::setimageresolution — Устанавливает разрешение изображения

Описание

public Gmagick::setimageresolution(float $xResolution, float $yResolution): Gmagick

Устанавливает разрешение изображения.

Список параметров

xResolution

Разрешение изображения х.

yResolution

Разрешение изображения y.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает сцену изображения

  • « Gmagick::setimageresolution
  • Gmagick::setimagetype »
  • PHP Manual
  • Gmagick
  • Устанавливает сцену изображения

Gmagick::setimagescene

(PECL gmagick >= Unknown)

Gmagick::setimagescene — Устанавливает сцену изображения

Описание

public Gmagick::setimagescene(int $scene): Gmagick

Устанавливает сцену изображения.

Список параметров

scene

Номер сцены изображения.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает тип изображения

  • « Gmagick::setimagescene
  • Gmagick::setimageunits »
  • PHP Manual
  • Gmagick
  • Устанавливает тип изображения

Gmagick::setimagetype

(PECL gmagick >= Unknown)

Gmagick::setimagetype — Устанавливает тип изображения

Описание

public Gmagick::setimagetype(int $imgType): Gmagick

Устанавливает тип изображения.

Список параметров

imgType

Одна из констант типа изображения (Gmagick::IMGTYPE_*).

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает единицы разрешения изображения

  • « Gmagick::setimagetype
  • Gmagick::setimagewhitepoint »
  • PHP Manual
  • Gmagick
  • Устанавливает единицы разрешения изображения

Gmagick::setimageunits

(PECL gmagick >= Unknown)

Gmagick::setimageunits — Устанавливает единицы разрешения изображения

Описание

public Gmagick::setimageunits(int $resolution): Gmagick

Устанавливает единицы разрешения изображения.

Список параметров

resolution

Одна из констант разрешения (Gmagick::RESOLUTION_*).

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает цветность изображения белой точкой

  • « Gmagick::setimageunits
  • Gmagick::setsamplingfactors »
  • PHP Manual
  • Gmagick
  • Устанавливает цветность изображения белой точкой

Gmagick::setimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::setimagewhitepoint — Устанавливает цветность изображения белой точкой

Описание

public Gmagick::setimagewhitepoint(float $x, float $y): Gmagick

Устанавливает цветность изображения белой точкой.

Список параметров

x

X-координата белой основной точки.

y

Y-координата белой основной точки.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает факторы выборки изображения

  • « Gmagick::setimagewhitepoint
  • Gmagick::setsize »
  • PHP Manual
  • Gmagick
  • Устанавливает факторы выборки изображения

Gmagick::setsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::setsamplingfactors — Устанавливает факторы выборки изображения

Описание

public Gmagick::setsamplingfactors(array $factors): Gmagick

Устанавливает факторы выборки изображения.

Список параметров

factors

Массив значений с типом float, представляющий фактор выборки для каждого компонента цвета (в порядке RGB).

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Устанавливает размер объекта Gmagick

  • « Gmagick::setsamplingfactors
  • Gmagick::shearimage »
  • PHP Manual
  • Gmagick
  • Устанавливает размер объекта Gmagick

Gmagick::setsize

(PECL gmagick >= Unknown)

Gmagick::setsize — Устанавливает размер объекта Gmagick

Описание

public Gmagick::setsize(int $columns, int $rows): Gmagick

Устанавливает размер объекта Gmagick. Установите его, прежде чем читать сырой формат изображения, такой как Gmagick::COLORSPACE_RGB, Gmagick::COLORSPACE_GRAY или Gmagick::COLORSPACE_CMYK.

Список параметров

columns

Ширина в пикселях.

rows

Высота в пикселях.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Создаёт параллелограмм

  • « Gmagick::setsize
  • Gmagick::solarizeimage »
  • PHP Manual
  • Gmagick
  • Создаёт параллелограмм

Gmagick::shearimage

(PECL gmagick >= Unknown)

Gmagick::shearimage — Создаёт параллелограмм

Описание

public Gmagick::shearimage(mixed $color, float $xShear, float $yShear): Gmagick

Сдвигает один край изображения по оси X или Y, образуя параллелограмм. Сдвиг в направлении X сдвигает край по оси X, а сдвиг в направлении Y перемещает край по оси Y. Величина сдвига контролируется углом сдвига. Для сдвига в направлении X xShear измеряется относительно оси Y, и аналогичным образом для сдвига в направлении Y yShear измеряется относительно оси X. Пустые треугольники, оставшиеся от обрезки изображения, заполняются цветом фона.

Список параметров

color

Фоновая пиксельная палочка.

xShear

Число градусов для сдвига изображения по оси X.

yShear

Число градусов для сдвига изображения по оси Y.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Применяет соляризационный эффект к изображению

  • « Gmagick::shearimage
  • Gmagick::spreadimage »
  • PHP Manual
  • Gmagick
  • Применяет соляризационный эффект к изображению

Gmagick::solarizeimage

(PECL gmagick >= Unknown)

Gmagick::solarizeimage — Применяет соляризационный эффект к изображению

Описание

public Gmagick::solarizeimage(int $threshold): Gmagick

Применяет особый эффект к изображению, подобный эффекту, достигаемому в фотолаборатории с помощью выборочного экспонирования областей светочувствительной бумаги на свет. Порог варьируется от 0 до QuantumRange и является мерой степени соляризации.

Список параметров

threshold

Степень соляризации.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Случайно смещает каждый пиксель в блоке

  • « Gmagick::solarizeimage
  • Gmagick::stripimage »
  • PHP Manual
  • Gmagick
  • Случайно смещает каждый пиксель в блоке

Gmagick::spreadimage

(PECL gmagick >= Unknown)

Gmagick::spreadimage — Случайно смещает каждый пиксель в блоке

Описание

public Gmagick::spreadimage(float $radius): Gmagick

Метод специальных эффектов, который случайным образом смещает каждый пиксель в блоке, заданном параметром radius.

Список параметров

radius

Выберите случайный пиксель в окрестности этого пространства.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Снимает изображение всех профилей и комментариев

  • « Gmagick::spreadimage
  • Gmagick::swirlimage »
  • PHP Manual
  • Gmagick
  • Снимает изображение всех профилей и комментариев

Gmagick::stripimage

(PECL gmagick >= Unknown)

Gmagick::stripimage — Снимает изображение всех профилей и комментариев

Описание

public Gmagick::stripimage(): Gmagick

Снимает изображение всех профилей и комментариев.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Закручивает пиксели вокруг центра изображения

  • « Gmagick::stripimage
  • Gmagick::thumbnailimage »
  • PHP Manual
  • Gmagick
  • Закручивает пиксели вокруг центра изображения

Gmagick::swirlimage

(PECL gmagick >= Unknown)

Gmagick::swirlimage — Закручивает пиксели вокруг центра изображения

Описание

public Gmagick::swirlimage(float $degrees): Gmagick

Закручивает пиксели вокруг центра изображения, где градусы указывают размах дуги, по которой перемещается каждый пиксель. Вы получаете более драматический эффект, когда градусы перемещаются от 1 до 360.

Список параметров

degrees

Определяет герметичность закрученного эффекта.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Изменяет размер изображения

  • « Gmagick::swirlimage
  • Gmagick::trimimage »
  • PHP Manual
  • Gmagick
  • Изменяет размер изображения

Gmagick::thumbnailimage

(PECL gmagick >= Unknown)

Gmagick::thumbnailimage — Изменяет размер изображения

Описание

public Gmagick::thumbnailimage(int $width, int $height, bool $fit = false): Gmagick

Изменяет размер изображения до заданных размеров и удаляет все связанные профили. Цель заключается в создании небольших миниатюрных изображений, подходящих для показа в Интернете. Если в качестве третьего параметра задано значение true, то параметры столбцов и строк используются в качестве максимумов для каждой стороны. Обе стороны будут уменьшены до совпадения или меньше, чем параметр, заданный для стороны.

Список параметров

width

Ширина изображения.

height

Высота изображения.

Возвращаемые значения

Объект Gmagick в случае успешного выполнения.

Ошибки

Вызывает GmagickException в случае возникновения ошибки.


Удаляет края с изображения

  • « Gmagick::thumbnailimage
  • Gmagick::write »
  • PHP Manual
  • Gmagick
  • Удаляет края с изображения

Gmagick::trimimage

(PECL gmagick >= Unknown)

Gmagick::trimimage — Удаляет края с изображения

Описание

public Gmagick::trimimage(float $fuzz): Gmagick

Удаляет края, которые являются цветом фона с изображения.

Список параметров

fuzz

По умолчанию цель должна точно соответствовать определённому цвету пикселя. Однако во многих случаях два цвета могут незначительно отличаться. Размытый элемент изображения определяет, насколько допустимо определять, чтобы два цвета считались одинаковыми. Параметр представляет собой изменение квантового диапазона.

Возвращаемые значения

Объект Gmagick.

Ошибки

Вызывает 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)

Введение

Обзор классов

class 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(): GmagickPixel
public getfillopacity(): float
public getfont(): mixed
public getfontsize(): float
public getfontstyle(): int
public getfontweight(): int
public getstrokecolor(): GmagickPixel
public getstrokeopacity(): float
public getstrokewidth(): float
public gettextdecoration(): int
public gettextencoding(): 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 — Рисует текст на изображении
  • GmagickDraw::arc — Рисует дугу
  • GmagickDraw::bezier — Рисует кривую Безье
  • GmagickDraw::ellipse — Рисует эллипс на изображении
  • GmagickDraw::getfillcolor — Возвращает цвет заливки
  • GmagickDraw::getfillopacity — Возвращает значение прозрачности, используемое при рисовании
  • GmagickDraw::getfont — Возвращает шрифт
  • GmagickDraw::getfontsize — Возвращает размер шрифта
  • GmagickDraw::getfontstyle — Возвращает стиль шрифта
  • GmagickDraw::getfontweight — Возвращает толщину шрифта
  • GmagickDraw::getstrokecolor — Возвращает цвет, используемый для обводки контуров объекта
  • GmagickDraw::getstrokeopacity — Возвращает прозрачность обведённых контуров объекта
  • GmagickDraw::getstrokewidth — Возвращает ширину обводки, используемой для отрисовки контуров объекта
  • GmagickDraw::gettextdecoration — Возвращает оформление текста
  • GmagickDraw::gettextencoding — Возвращает кодовый набор, используемый для текстовых аннотаций
  • GmagickDraw::line — Рисует линию
  • GmagickDraw::point — Рисует точку
  • GmagickDraw::polygon — Рисует многоугольник
  • GmagickDraw::polyline — Рисует ломаную линию
  • GmagickDraw::rectangle — Рисует прямоугольник
  • GmagickDraw::rotate — Применяет указанный поворот к текущему координатному пространству
  • GmagickDraw::roundrectangle — Рисует прямоугольник с закруглёнными углами
  • GmagickDraw::scale — Регулирует коэффициент масштабирования
  • GmagickDraw::setfillcolor — Устанавливает цвет заливки, который будет использоваться для рисования объектов с заливкой
  • GmagickDraw::setfillopacity — Устанавливает непрозрачность заливки
  • GmagickDraw::setfont — Устанавливает указанный шрифт для использования при аннотации текста
  • GmagickDraw::setfontsize — Устанавливает размер шрифта для использования при аннотации текста
  • GmagickDraw::setfontstyle — Устанавливает стиль шрифта для использования при аннотации текста
  • GmagickDraw::setfontweight — Устанавливает толщину шрифта
  • GmagickDraw::setstrokecolor — Устанавливает цвет, используемый для обводки контуров объекта
  • GmagickDraw::setstrokeopacity — Определяет прозрачность обводки контуров объекта
  • GmagickDraw::setstrokewidth — Устанавливает ширину обводки, используемой для отрисовки контуров объекта
  • GmagickDraw::settextdecoration — Определяет оформление
  • GmagickDraw::settextencoding — Задаёт кодовый набор текста


Рисует текст на изображении

  • « GmagickDraw
  • GmagickDraw::arc »
  • PHP Manual
  • GmagickDraw
  • Рисует текст на изображении

GmagickDraw::annotate

(PECL gmagick >= Unknown)

GmagickDraw::annotate — Рисует текст на изображении

Описание

public GmagickDraw::annotate(float $x, float $y, string $text): GmagickDraw

Рисует текст на изображении.

Список параметров

x

Координата x слева от текста.

y

Координата y относительно базовой линии текста.

text

Текст для рисования.

Возвращаемые значения

Объект Gmagick.


Рисует дугу

  • « GmagickDraw::annotate
  • GmagickDraw::bezier »
  • PHP Manual
  • GmagickDraw
  • Рисует дугу

GmagickDraw::arc

(PECL gmagick >= Unknown)

GmagickDraw::arc — Рисует дугу

Описание

public GmagickDraw::arc(
float $sx,
float $sy,
float $ex,
float $ey,
float $sd,
float $ed
): GmagickDraw

Рисует дугу, находящуюся в пределах ограничивающего прямоугольника на изображении.

Список параметров

sx

Начальная координата x ограничивающего прямоугольника.

sy

Начальная координата y ограничивающего прямоугольника.

ex

Конечная координата x ограничивающего прямоугольника.

ey

Конечная координата y ограничивающего прямоугольника.

sd

Начальный градус поворота.

ed

Конечный градус поворота.

Возвращаемые значения

Объект Gmagick.


Рисует кривую Безье

  • « GmagickDraw::arc
  • GmagickDraw::ellipse »
  • PHP Manual
  • GmagickDraw
  • Рисует кривую Безье

GmagickDraw::bezier

(PECL gmagick >= Unknown)

GmagickDraw::bezier — Рисует кривую Безье

Описание

public GmagickDraw::bezier(array $coordinate_array): GmagickDraw

Рисует кривую Безье через набор точек на изображении.

Список параметров

coordinate_array

Массив координат.

Возвращаемые значения

Объект Gmagick.


Рисует эллипс на изображении

  • « GmagickDraw::bezier
  • GmagickDraw::getfillcolor »
  • PHP Manual
  • GmagickDraw
  • Рисует эллипс на изображении

GmagickDraw::ellipse

(PECL gmagick >= Unknown)

GmagickDraw::ellipse — Рисует эллипс на изображении

Описание

public GmagickDraw::ellipse(
float $ox,
float $oy,
float $rx,
float $ry,
float $start,
float $end
): GmagickDraw

Рисует эллипс на изображении.

Список параметров

ox

Исходная координата x.

oy

Исходная координата y.

rx

Радиус в x.

ry

Радиус в y.

start

Начальный градус поворота.

end

Конечный градус поворота.

Возвращаемые значения

Объект Gmagick.


Возвращает цвет заливки

  • « GmagickDraw::ellipse
  • GmagickDraw::getfillopacity »
  • PHP Manual
  • GmagickDraw
  • Возвращает цвет заливки

GmagickDraw::getfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::getfillcolor — Возвращает цвет заливки

Описание

public GmagickDraw::getfillcolor(): GmagickPixel

Возвращает цвет заливки, используемый для рисования объектов с заливкой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Цвет заливки GmagickPixel, используемый для рисования объектов с заливкой.


Возвращает значение прозрачности, используемое при рисовании

  • « GmagickDraw::getfillcolor
  • GmagickDraw::getfont »
  • PHP Manual
  • GmagickDraw
  • Возвращает значение прозрачности, используемое при рисовании

GmagickDraw::getfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::getfillopacity — Возвращает значение прозрачности, используемое при рисовании

Описание

public GmagickDraw::getfillopacity(): float

Возвращает значение прозрачности, используемое при рисовании.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает прозрачность, используемую при рисовании с использованием цвета заливки или текстуры заливки. Значение полностью непрозрачного цвета - 1.0.


Возвращает шрифт

  • « GmagickDraw::getfillopacity
  • GmagickDraw::getfontsize »
  • PHP Manual
  • GmagickDraw
  • Возвращает шрифт

GmagickDraw::getfont

(PECL gmagick >= Unknown)

GmagickDraw::getfont — Возвращает шрифт

Описание

public GmagickDraw::getfont(): mixed

Возвращает строку, определяющую шрифт, используемый при аннотировании текстом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string) в случае успешного выполнения или false, если шрифт не установлен.


Возвращает размер шрифта

  • « GmagickDraw::getfont
  • GmagickDraw::getfontstyle »
  • PHP Manual
  • GmagickDraw
  • Возвращает размер шрифта

GmagickDraw::getfontsize

(PECL gmagick >= Unknown)

GmagickDraw::getfontsize — Возвращает размер шрифта

Описание

public GmagickDraw::getfontsize(): float

Возвращает размер шрифта, используемый при аннотировании текстом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер шрифта, связанный с текущим объектом GmagickDraw.


Возвращает стиль шрифта

  • « GmagickDraw::getfontsize
  • GmagickDraw::getfontweight »
  • PHP Manual
  • GmagickDraw
  • Возвращает стиль шрифта

GmagickDraw::getfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::getfontstyle — Возвращает стиль шрифта

Описание

public GmagickDraw::getfontstyle(): int

Возвращает стиль шрифта, используемый при аннотировании текстом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает константу стиля шрифта (STYLE_), связанную с объектом GmagickDraw, или 0, если стиль не установлен.


Возвращает толщину шрифта

  • « GmagickDraw::getfontstyle
  • GmagickDraw::getstrokecolor »
  • PHP Manual
  • GmagickDraw
  • Возвращает толщину шрифта

GmagickDraw::getfontweight

(PECL gmagick >= Unknown)

GmagickDraw::getfontweight — Возвращает толщину шрифта

Описание

public GmagickDraw::getfontweight(): int

Возвращает толщину шрифта, используемую при аннотировании текстом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число (int) в случае успешного выполнения или 0, если толщина не установлена.


Возвращает цвет, используемый для обводки контуров объекта

  • « GmagickDraw::getfontweight
  • GmagickDraw::getstrokeopacity »
  • PHP Manual
  • GmagickDraw
  • Возвращает цвет, используемый для обводки контуров объекта

GmagickDraw::getstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::getstrokecolor — Возвращает цвет, используемый для обводки контуров объекта

Описание

public GmagickDraw::getstrokecolor(): GmagickPixel

Возвращает цвет, используемый для обводки контуров объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект GmagickPixel, который описывает цвет.


Возвращает прозрачность обведённых контуров объекта

  • « GmagickDraw::getstrokecolor
  • GmagickDraw::getstrokewidth »
  • PHP Manual
  • GmagickDraw
  • Возвращает прозрачность обведённых контуров объекта

GmagickDraw::getstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::getstrokeopacity — Возвращает прозрачность обведённых контуров объекта

Описание

public GmagickDraw::getstrokeopacity(): float

Возвращает прозрачность обведённых контуров объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число с плавающей точкой (float), описывающее прозрачность.


Возвращает ширину обводки, используемой для отрисовки контуров объекта

  • « GmagickDraw::getstrokeopacity
  • GmagickDraw::gettextdecoration »
  • PHP Manual
  • GmagickDraw
  • Возвращает ширину обводки, используемой для отрисовки контуров объекта

GmagickDraw::getstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::getstrokewidth — Возвращает ширину обводки, используемой для отрисовки контуров объекта

Описание

public GmagickDraw::getstrokewidth(): float

Возвращает ширину обводки, используемой для отрисовки контуров объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число с плавающей точкой (float), описывающее ширину обводки.


Возвращает оформление текста

  • « GmagickDraw::getstrokewidth
  • GmagickDraw::gettextencoding »
  • PHP Manual
  • GmagickDraw
  • Возвращает оформление текста

GmagickDraw::gettextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::gettextdecoration — Возвращает оформление текста

Описание

public GmagickDraw::gettextdecoration(): int

Возвращает оформление, применённое при аннотации текста.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает одну из констант DECORATION_ или 0, если оформление не установлено.


Возвращает кодовый набор, используемый для текстовых аннотаций

  • « GmagickDraw::gettextdecoration
  • GmagickDraw::line »
  • PHP Manual
  • GmagickDraw
  • Возвращает кодовый набор, используемый для текстовых аннотаций

GmagickDraw::gettextencoding

(PECL gmagick >= Unknown)

GmagickDraw::gettextencoding — Возвращает кодовый набор, используемый для текстовых аннотаций

Описание

public GmagickDraw::gettextencoding(): mixed

Возвращает строку, определяющую кодовый набор, используемый для текстовых аннотаций.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку с указанием кодового набора или false, если кодировка текста не задана.


Рисует линию

  • « GmagickDraw::gettextencoding
  • GmagickDraw::point »
  • PHP Manual
  • GmagickDraw
  • Рисует линию

GmagickDraw::line

(PECL gmagick >= Unknown)

GmagickDraw::line — Рисует линию

Описание

public GmagickDraw::line(
float $sx,
float $sy,
float $ex,
float $ey
): GmagickDraw

Рисует линию на изображении, используя текущий цвет обводки, её прозрачность и ширину.

Список параметров

sx

Начальная координата x.

sy

Начальная координата y.

ex

Конечная координата x.

ey

Конечная координата y.

Возвращаемые значения

Объект Gmagick.


Рисует точку

  • « GmagickDraw::line
  • GmagickDraw::polygon »
  • PHP Manual
  • GmagickDraw
  • Рисует точку

GmagickDraw::point

(PECL gmagick >= Unknown)

GmagickDraw::point — Рисует точку

Описание

public GmagickDraw::point(float $x, float $y): GmagickDraw

Рисует точку, используя текущий цвет и толщину обводки по указанным координатам.

Список параметров

x

Координата x.

y

Координата y.

Возвращаемые значения

Объект Gmagick.


Рисует многоугольник

  • « GmagickDraw::point
  • GmagickDraw::polyline »
  • PHP Manual
  • GmagickDraw
  • Рисует многоугольник

GmagickDraw::polygon

(PECL gmagick >= Unknown)

GmagickDraw::polygon — Рисует многоугольник

Описание

public GmagickDraw::polygon(array $coordinates): GmagickDraw

Рисует многоугольник с использованием текущей обводки, её ширины, цвета заливки или текстуры с использованием указанного массива координат.

Список параметров

coordinates

Массив координат.

Возвращаемые значения

Объект GmagickDraw.


Рисует ломаную линию

  • « GmagickDraw::polygon
  • GmagickDraw::rectangle »
  • PHP Manual
  • GmagickDraw
  • Рисует ломаную линию

GmagickDraw::polyline

(PECL gmagick >= Unknown)

GmagickDraw::polyline — Рисует ломаную линию

Описание

public GmagickDraw::polyline(array $coordinate_array): GmagickDraw

Рисует ломаную линию с использованием текущей обводки, её ширины, цвета заливки или текстуры с использованием указанного массива координат.

Список параметров

coordinate_array

Массив координат.

Возвращаемые значения

Объект Gmagick.


Рисует прямоугольник

  • « GmagickDraw::polyline
  • GmagickDraw::rotate »
  • PHP Manual
  • GmagickDraw
  • Рисует прямоугольник

GmagickDraw::rectangle

(PECL gmagick >= Unknown)

GmagickDraw::rectangle — Рисует прямоугольник

Описание

public GmagickDraw::rectangle(
float $x1,
float $y1,
float $x2,
float $y2
): GmagickDraw

Рисует прямоугольник по двум координатам с использованием текущих параметров обводки, ширины обводки и заливки.

Список параметров

x1

Первая координата x.

y1

Первая координата y.

x2

Вторая координата x.

y2

Вторая координата y.

Возвращаемые значения

Объект Gmagick.


Применяет указанный поворот к текущему координатному пространству

  • « GmagickDraw::rectangle
  • GmagickDraw::roundrectangle »
  • PHP Manual
  • GmagickDraw
  • Применяет указанный поворот к текущему координатному пространству

GmagickDraw::rotate

(PECL gmagick >= Unknown)

GmagickDraw::rotate — Применяет указанный поворот к текущему координатному пространству

Описание

public GmagickDraw::rotate(float $degrees): GmagickDraw

Применяет указанный поворот к текущему координатному пространству.

Список параметров

degrees

Угол поворота

Возвращаемые значения

Объект GmagickDraw.


Рисует прямоугольник с закруглёнными углами

  • « GmagickDraw::rotate
  • GmagickDraw::scale »
  • PHP Manual
  • GmagickDraw
  • Рисует прямоугольник с закруглёнными углами

GmagickDraw::roundrectangle

(PECL gmagick >= Unknown)

GmagickDraw::roundrectangle — Рисует прямоугольник с закруглёнными углами

Описание

public GmagickDraw::roundrectangle(
float $x1,
float $y1,
float $x2,
float $y2,
float $rx,
float $ry
): GmagickDraw

Рисует прямоугольник с закруглёнными углами по двум координатам и радиусам углов x и y, используя текущую обводку, её ширину и настройки заливки.

Список параметров

x1

Первая координата x.

y1

Первая координата y.

x2

Вторая координата x.

y2

Вторая координата y.

rx

Радиус угла в горизонтальном направлении.

ry

Радиус угла в вертикальном направлении.

Возвращаемые значения

Объект Gmagick.


Регулирует коэффициент масштабирования

  • « GmagickDraw::roundrectangle
  • GmagickDraw::setfillcolor »
  • PHP Manual
  • GmagickDraw
  • Регулирует коэффициент масштабирования

GmagickDraw::scale

(PECL gmagick >= Unknown)

GmagickDraw::scale — Регулирует коэффициент масштабирования

Описание

public GmagickDraw::scale(float $x, float $y): GmagickDraw

Регулирует коэффициент масштабирования для применения в горизонтальном и вертикальном направлениях к текущему координатному пространству.

Список параметров

x

горизонтальный коэффициент масштабирования

y

вертикальный коэффициент масштабирования

Возвращаемые значения

Объект GmagickDraw.


Устанавливает цвет заливки, который будет использоваться для рисования объектов с заливкой

  • « GmagickDraw::scale
  • GmagickDraw::setfillopacity »
  • PHP Manual
  • GmagickDraw
  • Устанавливает цвет заливки, который будет использоваться для рисования объектов с заливкой

GmagickDraw::setfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::setfillcolor — Устанавливает цвет заливки, который будет использоваться для рисования объектов с заливкой

Описание

public GmagickDraw::setfillcolor(mixed $color): GmagickDraw

Устанавливает цвет заливки, который будет использоваться для рисования объектов с заливкой.

Список параметров

color

GmagickPixel или строка (string), указывающая цвет, используемый для заливки.

Возвращаемые значения

Объект GmagickDraw в случае успешного выполнения.


Устанавливает непрозрачность заливки

  • « GmagickDraw::setfillcolor
  • GmagickDraw::setfont »
  • PHP Manual
  • GmagickDraw
  • Устанавливает непрозрачность заливки

GmagickDraw::setfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::setfillopacity — Устанавливает непрозрачность заливки

Описание

public GmagickDraw::setfillopacity(float $fill_opacity): GmagickDraw

Устанавливает непрозрачность при рисовании с использованием цвета заливки или текстуры заливки. Установка значения 1.0 сделает заливку полностью непрозрачной.

Список параметров

fill_opacity

Непрозрачность заливки

Возвращаемые значения

Объект Gmagick.


Устанавливает указанный шрифт для использования при аннотации текста

  • « GmagickDraw::setfillopacity
  • GmagickDraw::setfontsize »
  • PHP Manual
  • GmagickDraw
  • Устанавливает указанный шрифт для использования при аннотации текста

GmagickDraw::setfont

(PECL gmagick >= Unknown)

GmagickDraw::setfont — Устанавливает указанный шрифт для использования при аннотации текста

Описание

public GmagickDraw::setfont(string $font): GmagickDraw

Устанавливает полностью указанный шрифт для использования при аннотации текста.

Список параметров

font

Имя шрифта.

Возвращаемые значения

Объект Gmagick.


Устанавливает размер шрифта для использования при аннотации текста

  • « GmagickDraw::setfont
  • GmagickDraw::setfontstyle »
  • PHP Manual
  • GmagickDraw
  • Устанавливает размер шрифта для использования при аннотации текста

GmagickDraw::setfontsize

(PECL gmagick >= Unknown)

GmagickDraw::setfontsize — Устанавливает размер шрифта для использования при аннотации текста

Описание

public GmagickDraw::setfontsize(float $pointsize): GmagickDraw

Устанавливает размер шрифта для использования при аннотации текста.

Список параметров

pointsize

Размер шрифта

Возвращаемые значения

Объект GmagickDraw.


Устанавливает стиль шрифта для использования при аннотации текста

  • « GmagickDraw::setfontsize
  • GmagickDraw::setfontweight »
  • PHP Manual
  • GmagickDraw
  • Устанавливает стиль шрифта для использования при аннотации текста

GmagickDraw::setfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::setfontstyle — Устанавливает стиль шрифта для использования при аннотации текста

Описание

public GmagickDraw::setfontstyle(int $style): GmagickDraw

Устанавливает стиль шрифта, который будет использоваться при аннотации текста. Использование AnyStyle действует как «любой».

Список параметров

style

Стиль шрифта (NormalStyle, ItalicStyle, ObliqueStyle, AnyStyle).

Возвращаемые значения

Объект Gmagick.


Устанавливает толщину шрифта

  • « GmagickDraw::setfontstyle
  • GmagickDraw::setstrokecolor »
  • PHP Manual
  • GmagickDraw
  • Устанавливает толщину шрифта

GmagickDraw::setfontweight

(PECL gmagick >= Unknown)

GmagickDraw::setfontweight — Устанавливает толщину шрифта

Описание

public GmagickDraw::setfontweight(int $weight): GmagickDraw

Устанавливает толщину шрифта для использования при аннотации текста.

Список параметров

weight

Толщина шрифта (допустимый диапазон - 100-900).

Возвращаемые значения

Объект Gmagick.


Устанавливает цвет, используемый для обводки контуров объекта

  • « GmagickDraw::setfontweight
  • GmagickDraw::setstrokeopacity »
  • PHP Manual
  • GmagickDraw
  • Устанавливает цвет, используемый для обводки контуров объекта

GmagickDraw::setstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::setstrokecolor — Устанавливает цвет, используемый для обводки контуров объекта

Описание

public GmagickDraw::setstrokecolor(mixed $color): GmagickDraw

Устанавливает цвет, используемый для обводки контуров объекта.

Список параметров

color

GmagickPixel или строка (string), представляющая цвет обводки.

Возвращаемые значения

Объект GmagickDraw в случае успешного выполнения.


Определяет прозрачность обводки контуров объекта

  • « GmagickDraw::setstrokecolor
  • GmagickDraw::setstrokewidth »
  • PHP Manual
  • GmagickDraw
  • Определяет прозрачность обводки контуров объекта

GmagickDraw::setstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::setstrokeopacity — Определяет прозрачность обводки контуров объекта

Описание

public GmagickDraw::setstrokeopacity(float $stroke_opacity): GmagickDraw

Определяет прозрачность обводки контуров объекта.

Список параметров

stroke_opacity

Прозрачность обводки. При значении 1.0 - непрозрачная.

Возвращаемые значения

Объект GmagickDraw.


Устанавливает ширину обводки, используемой для отрисовки контуров объекта

  • « GmagickDraw::setstrokeopacity
  • GmagickDraw::settextdecoration »
  • PHP Manual
  • GmagickDraw
  • Устанавливает ширину обводки, используемой для отрисовки контуров объекта

GmagickDraw::setstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::setstrokewidth — Устанавливает ширину обводки, используемой для отрисовки контуров объекта

Описание

public GmagickDraw::setstrokewidth(float $width): GmagickDraw

Устанавливает ширину обводки, используемой для отрисовки контуров объекта.

Список параметров

width

Ширина обводки

Возвращаемые значения

Объект GmagickDraw.


Определяет оформление

  • « GmagickDraw::setstrokewidth
  • GmagickDraw::settextencoding »
  • PHP Manual
  • GmagickDraw
  • Определяет оформление

GmagickDraw::settextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::settextdecoration — Определяет оформление

Описание

public GmagickDraw::settextdecoration(int $decoration): GmagickDraw

Задаёт оформление, которое будет применяться при аннотировании текстом.

Список параметров

int

Оформление текста. Одно из следующих значений: NoDecoration, UnderlineDecoration, OverlineDecoration или LineThroughDecoration.

Возвращаемые значения

Объект Gmagick.


Задаёт кодовый набор текста

  • « GmagickDraw::settextdecoration
  • GmagickPixel »
  • PHP Manual
  • GmagickDraw
  • Задаёт кодовый набор текста

GmagickDraw::settextencoding

(PECL gmagick >= Unknown)

GmagickDraw::settextencoding — Задаёт кодовый набор текста

Описание

public GmagickDraw::settextencoding(string $encoding): GmagickDraw

Задаёт кодовый набор, который будет использоваться для текстовых аннотаций. Единственная кодировка символов, которая может быть указана в настоящее время, - это "UTF-8" для представления Unicode как последовательности байтов. Укажите пустую строку, чтобы установить кодировку текста по умолчанию в системе. Для успешного аннотирования текста с использованием Unicode могут потребоваться шрифты, поддерживающие Unicode.

Список параметров

encoding

Строка символов, определяющая кодировку текста.

Возвращаемые значения

Объект Gmagick.


Класс GmagickPixel

(PECL gmagick >= Unknown)

Введение

Обзор классов

class GmagickPixel {
/* Методы */
public __construct(string $color = ?)
public getcolor(bool $as_array = false, bool $normalize_array = false): mixed
public getcolorcount(): 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::__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(): int

Возвращает количество пикселей изображения, имеющих заданный цвет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество пикселей изображения, имеющих заданный цвет, в случае успешного выполнения. В случае возникновения ошибки выбрасывает исключение GmagickPixelException.


Возвращает нормализованное значение для заданного цветового канала

  • « GmagickPixel::getcolorcount
  • GmagickPixel::setcolor »
  • PHP Manual
  • GmagickPixel
  • Возвращает нормализованное значение для заданного цветового канала

GmagickPixel::getcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::getcolorvalue — Возвращает нормализованное значение для заданного цветового канала

Описание

public GmagickPixel::getcolorvalue(int $color): 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 — Настраивает уровни определённого канала изображения
    • Imagick::averageImages — Усредняет набор изображений
    • Imagick::blackThresholdImage — Перевести все пиксели ниже порогового значения в чёрный цвет
    • Imagick::blueShiftImage — Приглушает цвета изображения
    • Imagick::blurImage — Добавляет фильтр размытия к изображению
    • Imagick::borderImage — Окружает изображение рамкой
    • Imagick::brightnessContrastImage — Изменяет яркость и/или контраст изображения
    • Imagick::charcoalImage — Рисование углём
    • Imagick::chopImage — Удаляет область изображения и обрезает его
    • Imagick::clampImage — Ограничивает диапазон цветов от 0 до квантовой глубины
    • Imagick::clear — Очищает все ресурсы, связанные с объектом Imagick
    • Imagick::clipImage — Обрезка вдоль ближайшего контура с профилем 8BIM
    • Imagick::clipImagePath — Клипы вдоль именованных путей из профиля 8BIM, если они есть
    • Imagick::clipPathImage — Отсечь вдоль обозначенного контура с профилем 8BIM
    • Imagick::clone — Создаёт точную копию объекта Imagick
    • Imagick::clutImage — Заменяет цвета в изображении
    • Imagick::coalesceImages — Компонует набор изображений
    • Imagick::colorFloodfillImage — Изменяет значение цвета любого пикселя, соответствующего целевому
    • Imagick::colorizeImage — Смешивание цвета заливки с изображением
    • Imagick::colorMatrixImage — Применяет преобразование цвета к изображению
    • Imagick::combineImages — Объединяет одно или несколько изображений в одно изображение
    • Imagick::commentImage — Добавляет комментарий к вашему изображению
    • Imagick::compareImageChannels — Возвращает разницу в одном или нескольких изображениях
    • Imagick::compareImageLayers — Возвращает максимальную ограничивающую область между изображениями
    • Imagick::compareImages — Сравнивает изображение с восстановленным изображением
    • Imagick::compositeImage — Накладывает одно изображение на другое
    • Imagick::__construct — Конструктор объекта Imagick
    • Imagick::contrastImage — Изменяет контраст изображения
    • Imagick::contrastStretchImage — Повышает контрастность цветного изображения
    • Imagick::convolveImage — Применяет пользовательское ядро свёртки к изображению
    • Imagick::count — Получает количество изображений
    • Imagick::cropImage — Извлекает область изображения
    • Imagick::cropThumbnailImage — Создаёт обрезанную миниатюру
    • Imagick::current — Возвращает ссылку на текущий объект Imagick
    • Imagick::cycleColormapImage — Отображает цветовую карту изображения
    • Imagick::decipherImage — Расшифровывает изображение
    • Imagick::deconstructImages — Возвращает определённые пиксельные различия между изображениями
    • Imagick::deleteImageArtifact — Удаляет артефакт изображения
    • Imagick::deleteImageProperty — Удаляет свойство изображения
    • Imagick::deskewImage — Удаляет перекос с изображения
    • Imagick::despeckleImage — Уменьшает спекл-шум на изображении
    • Imagick::destroy — Удаляет объект Imagick
    • Imagick::displayImage — Выводит изображение
    • Imagick::displayImages — Выводит изображение или последовательность изображений
    • Imagick::distortImage — Искажает изображение, используя различные методы искажения
    • Imagick::drawImage — Выполняет рендеринг объекта ImagickDraw на текущем изображении
    • Imagick::edgeImage — Усиливает края в изображении
    • Imagick::embossImage — Возвращает изображение в градациях серого с трёхмерным эффектом
    • Imagick::encipherImage — Шифрует изображение
    • Imagick::enhanceImage — Улучшает качество шумного изображения
    • Imagick::equalizeImage — Выравнивает гистограмму изображения
    • Imagick::evaluateImage — Применяет выражение к изображению
    • Imagick::exportImagePixels — Экспортирует пиксели изображения
    • Imagick::extentImage — Устанавливает размер изображения
    • Imagick::filter — Применяет пользовательское ядро свёртки к изображению
    • Imagick::flattenImages — Объединяет последовательность изображений
    • Imagick::flipImage — Создаёт вертикальное зеркало изображения
    • Imagick::floodFillPaintImage — Изменяет значение цвета любого пикселя, соответствующего целевому
    • Imagick::flopImage — Создаёт горизонтальное зеркальное отображение
    • Imagick::forwardFourierTransformImage — Реализует дискретное преобразование Фурье
    • Imagick::frameImage — Добавляет имитацию трёхмерной границы
    • Imagick::functionImage — Применяет функцию к изображению
    • Imagick::fxImage — Оценивает выражение для каждого пикселя в изображении
    • Imagick::gammaImage — Гамма-коррекция изображения
    • Imagick::gaussianBlurImage — Размывает изображение
    • 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 — Возвращает артефакт изображения
    • Imagick::getImageAttribute — Возвращает именованный атрибут
    • Imagick::getImageBackgroundColor — Возвращает цвет фона изображения
    • Imagick::getImageBlob — Возвращает последовательность изображений в виде BLOB
    • Imagick::getImageBluePrimary — Возвращает основную точку синего цвета для изображения
    • Imagick::getImageBorderColor — Возвращает цвет рамки изображения
    • Imagick::getImageChannelDepth — Возвращает глубину для определённого канала изображения
    • Imagick::getImageChannelDistortion — Сравнивает каналы изображения с восстановленным изображением
    • Imagick::getImageChannelDistortions — Возвращает искажения канала
    • Imagick::getImageChannelExtrema — Возвращает экстремумы для одного или нескольких каналов изображения
    • Imagick::getImageChannelKurtosis — Возвращает эксцесс и асимметрию определённого канала
    • Imagick::getImageChannelMean — Возвращает среднее и стандартное отклонение
    • Imagick::getImageChannelRange — Возвращает диапазон каналов
    • Imagick::getImageChannelStatistics — Возвращает статистику для каждого канала изображения
    • Imagick::getImageClipMask — Возвращает обтравочную маску изображения
    • Imagick::getImageColormapColor — Возвращает цвет указанного индекса палитры
    • Imagick::getImageColors — Возвращает число уникальных цветов в изображении
    • Imagick::getImageColorspace — Возвращает цветовую палитру изображения
    • Imagick::getImageCompose — Возвращает составной оператор, связанный с изображением
    • Imagick::getImageCompression — Возвращает текущий тип компрессии изображения
    • Imagick::getImageCompressionQuality — Возвращает текущее качество сжатия изображения
    • Imagick::getImageDelay — Возвращает задержку изображения
    • Imagick::getImageDepth — Возвращает глубину изображения
    • Imagick::getImageDispose — Возвращает метод удаления изображения
    • Imagick::getImageDistortion — Сравнивает изображение с восстановленным изображением
    • Imagick::getImageExtrema — Возвращает экстремумы изображения
    • Imagick::getImageFilename — Возвращает имя файла конкретного изображения в последовательности
    • Imagick::getImageFormat — Возвращает формат конкретного изображения в последовательности
    • Imagick::getImageGamma — Возвращает гамму изображения
    • Imagick::getImageGeometry — Возвращает ширину и высоту в виде ассоциативного массива
    • Imagick::getImageGravity — Возвращает значение гравитации (притяжения)
    • Imagick::getImageGreenPrimary — Возвращает первичную точку цветности зелёного
    • Imagick::getImageHeight — Возвращает высоту изображения
    • Imagick::getImageHistogram — Возвращает гистограмму изображения
    • Imagick::getImageIndex — Возвращает индекс текущего активного изображения
    • Imagick::getImageInterlaceScheme — Получает схему чересстрочного изображения
    • Imagick::getImageInterpolateMethod — Возвращает метод интерполяции
    • Imagick::getImageIterations — Возвращает итерации изображения
    • Imagick::getImageLength — Возвращает длину изображения в байтах
    • Imagick::getImageMatte — Возвращает, если изображение содержит матовый канал
    • Imagick::getImageMatteColor — Возвращает матовый цвет изображения
    • Imagick::getImageMimeType — Возвращает MIME-тип изображения
    • Imagick::getImageOrientation — Возвращает ориентацию изображения
    • Imagick::getImagePage — Возвращает геометрию страницы
    • Imagick::getImagePixelColor — Возвращает цвет указанного пикселя
    • Imagick::getImageProfile — Возвращает именованный профиль изображения
    • Imagick::getImageProfiles — Возвращает профили изображений
    • Imagick::getImageProperties — Возвращает свойства изображения
    • Imagick::getImageProperty — Возвращает именованное свойство изображения
    • Imagick::getImageRedPrimary — Возвращает красную первичную точку цветности
    • Imagick::getImageRegion — Извлекает область изображения
    • Imagick::getImageRenderingIntent — Возвращает схему цветопередачи изображения
    • Imagick::getImageResolution — Возвращает разрешение изображения по X и Y
    • Imagick::getImagesBlob — Возвращает все последовательности изображений в виде большого двоичного объекта
    • Imagick::getImageScene — Возвращает сцену изображения
    • Imagick::getImageSignature — Генерирует хеш SHA-256
    • Imagick::getImageSize — Возвращает размер изображения в байтах
    • Imagick::getImageTicksPerSecond — Получает количество кадров в секунду для изображения
    • Imagick::getImageTotalInkDensity — Возвращает общую плотность чернил изображения
    • Imagick::getImageType — Возвращает возможный тип изображения
    • Imagick::getImageUnits — Возвращает единицы измерения разрешения изображения
    • Imagick::getImageVirtualPixelMethod — Возвращает метод виртуального пикселя
    • Imagick::getImageWhitePoint — Возвращает белую точку цветности
    • Imagick::getImageWidth — Возвращает ширину изображения
    • Imagick::getInterlaceScheme — Получает схему сжатия изображения
    • Imagick::getIteratorIndex — Возвращает индекс текущего активного изображения
    • Imagick::getNumberImages — Возвращает количество изображений в объекте
    • Imagick::getOption — Возвращает значение, связанное с указанным ключом
    • Imagick::getPackageName — Возвращает имя пакета ImageMagick
    • Imagick::getPage — Возвращает геометрию страницы
    • Imagick::getPixelIterator — Возвращает MagickPixelIterator
    • Imagick::getPixelRegionIterator — Возвращает объект ImagickPixelIterator для секции изображения
    • Imagick::getPointSize — Возвращает размер точки
    • Imagick::getQuantum — Возвращает квантовый диапазон ImageMagick
    • Imagick::getQuantumDepth — Возвращает величину глубины
    • Imagick::getQuantumRange — Возвращает величину размера спектра Imagick
    • Imagick::getRegistry — Получает запись StringRegistry
    • Imagick::getReleaseDate — Возвращает дату релиза ImageMagick
    • Imagick::getResource — Возвращает размер используемой памяти указанного ресурса
    • Imagick::getResourceLimit — Возвращает заданный лимит ресурсов
    • Imagick::getSamplingFactors — Возвращает горизонтальный и вертикальный фактор выборки
    • Imagick::getSize — Возвращает размер, связанный с объектом Imagick
    • Imagick::getSizeOffset — Возвращает размер смещения
    • Imagick::getVersion — Возвращает версию API ImageMagick
    • Imagick::haldClutImage — Заменяет цвета в изображении
    • Imagick::hasNextImage — Проверяет, содержит ли объект больше изображений
    • Imagick::hasPreviousImage — Проверяет, есть ли у объекта предыдущее изображение
    • Imagick::identifyFormat — Заменяет любые встроенные символы форматирования соответствующим свойством изображения
    • Imagick::identifyImage — Определяет изображение и получает атрибуты
    • Imagick::implodeImage — Создаёт копию изображения
    • Imagick::importImagePixels — Импортирует пиксели изображения
    • Imagick::inverseFourierTransformImage — Реализует дискретное преобразование Фурье
    • Imagick::labelImage — Добавляет метку к изображению
    • Imagick::levelImage — Регулирует уровни изображения
    • Imagick::linearStretchImage — Растягивает с насыщением яркость изображения
    • Imagick::liquidRescaleImage — Анимирует изображение или изображения
    • Imagick::listRegistry — Перечисляет все настройки реестра
    • Imagick::magnifyImage — Пропорционально масштабирует изображение в два раза
    • Imagick::mapImage — Заменяет цвета изображения на ближайший цвет из эталонного изображения
    • Imagick::matteFloodfillImage — Изменяет значение прозрачности цвета
    • Imagick::medianFilterImage — Применяет цифровой фильтр
    • Imagick::mergeImageLayers — Объединяет слои изображения
    • Imagick::minifyImage — Масштабирует изображение пропорционально половине его размера
    • Imagick::modulateImage — Управляйте яркостью, насыщенностью и оттенком
    • Imagick::montageImage — Создаёт составное изображение
    • Imagick::morphImages — Преобразует набор изображений
    • Imagick::morphology — Применяет к изображению ядро, предоставленное пользователем, в соответствии с заданным методом морфологии
    • Imagick::mosaicImages — Формирует мозаику из изображений
    • Imagick::motionBlurImage — Имитирует размытие в движении
    • Imagick::negateImage — Инвертирует цвета в эталонном изображении
    • Imagick::newImage — Создаёт новое изображение
    • Imagick::newPseudoImage — Создаёт новое изображение
    • Imagick::nextImage — Переходит к следующему изображению
    • Imagick::normalizeImage — Повышает контрастность цветного изображения
    • Imagick::oilPaintImage — Имитирует картину маслом
    • Imagick::opaquePaintImage — Изменяет значение цвета любого пикселя, соответствующего целевому
    • Imagick::optimizeImageLayers — Удаляет повторяющиеся части изображений для оптимизации
    • Imagick::orderedPosterizeImage — Выполняет упорядоченный дизеринг
    • Imagick::paintFloodfillImage — Изменяет значение цвета любого пикселя, соответствующего цели
    • Imagick::paintOpaqueImage — Изменяет любой пиксель, соответствующий цвету
    • Imagick::paintTransparentImage — Изменяет любой пиксель, соответствующий цвету, на цвет, определённый заливкой
    • Imagick::pingImage — Получает основные атрибуты изображения
    • Imagick::pingImageBlob — Быстро извлекает атрибуты
    • Imagick::pingImageFile — Получает базовые атрибуты изображения упрощённым способом
    • Imagick::polaroidImage — Имитирует фото Polaroid
    • Imagick::posterizeImage — Уменьшает изображение до ограниченного количества уровней цвета
    • Imagick::previewImages — Быстрое определение подходящих параметров для обработки изображений
    • Imagick::previousImage — Переходит к предыдущему изображению в объекте
    • Imagick::profileImage — Добавляет или удаляет профиль изображения
    • Imagick::quantizeImage — Анализирует цвета эталонного изображения
    • Imagick::quantizeImages — Анализирует цвета в последовательности изображений
    • Imagick::queryFontMetrics — Возвращает массив, представляющий метрики шрифта
    • Imagick::queryFonts — Возвращает настроенные шрифты
    • Imagick::queryFormats — Возвращает форматы, поддерживаемые Imagick
    • Imagick::radialBlurImage — Радиальное размытие изображения
    • Imagick::raiseImage — Создаёт имитацию эффекта 3D-кнопки
    • Imagick::randomThresholdImage — Создаёт высококонтрастное двухцветное изображение
    • Imagick::readImage — Читает изображение из файла
    • Imagick::readImageBlob — Считывает изображение из двоичной строки
    • Imagick::readImageFile — Читает изображение из открытого дескриптора файла
    • Imagick::readimages — Читает изображение из массива имён файлов
    • Imagick::recolorImage — Перекрашивает изображение
    • Imagick::reduceNoiseImage — Сглаживает контуры изображения
    • Imagick::remapImage — Переназначает цвета изображения
    • Imagick::removeImage — Удаляет изображение из списка изображений
    • Imagick::removeImageProfile — Удаляет именованный профиль изображения и возвращает его
    • Imagick::render — Отображает все предыдущие команды рисования
    • Imagick::resampleImage — Преобразует изображение к желаемому разрешению
    • Imagick::resetImagePage — Сбрасывает страницу изображения
    • Imagick::resizeImage — Масштабирует изображение
    • Imagick::rollImage — Смещает изображение
    • Imagick::rotateImage — Поворачивает изображение
    • Imagick::rotationalBlurImage — Применяет вращательное размытие к изображению
    • Imagick::roundCorners — Скругляет углы изображения
    • Imagick::sampleImage — Масштабирует изображение с пиксельной выборкой
    • Imagick::scaleImage — Масштабирует размер изображения
    • Imagick::segmentImage — Сегментирует изображение
    • Imagick::selectiveBlurImage — Выборочное размытие изображения в пределах порогового значения контрастности
    • Imagick::separateImageChannel — Отделяет канал от изображения
    • Imagick::sepiaToneImage — Тонирование изображения сепией
    • Imagick::setBackgroundColor — Устанавливает цвет фона объекта по умолчанию
    • Imagick::setColorspace — Устанавливает цветовое пространство
    • Imagick::setCompression — Устанавливает тип сжатия объекта по умолчанию
    • Imagick::setCompressionQuality — Устанавливает качество сжатия объекта по умолчанию
    • Imagick::setFilename — Устанавливает имя файла перед чтением или записью изображения
    • Imagick::setFirstIterator — Устанавливает итератор Imagick для первого изображения
    • Imagick::setFont — Устанавливает шрифт
    • Imagick::setFormat — Устанавливает формат объекта Imagick
    • Imagick::setGravity — Устанавливает гравитацию
    • Imagick::setImage — Заменяет изображение в объекте
    • Imagick::setImageAlphaChannel — Устанавливает альфа-канал изображения
    • Imagick::setImageArtifact — Устанавливает артефакт изображения
    • Imagick::setImageAttribute — Устанавливает атрибут изображения
    • Imagick::setImageBackgroundColor — Устанавливает цвет фона изображения
    • Imagick::setImageBias — Устанавливает смещение изображения для любого метода, который свёртывает изображение
    • Imagick::setImageBiasQuantum — Устанавливает смещение изображения
    • Imagick::setImageBluePrimary — Устанавливает цветность изображения голубой основной точкой
    • Imagick::setImageBorderColor — Устанавливает цвет рамки изображения
    • Imagick::setImageChannelDepth — Устанавливает глубину определённого канала изображения
    • Imagick::setImageClipMask — Устанавливает маску клипа
    • Imagick::setImageColormapColor — Устанавливает цвет указанного индекса цветовой карты
    • Imagick::setImageColorspace — Устанавливает цветовое пространство изображения
    • Imagick::setImageCompose — Устанавливает оператор составного изображения
    • Imagick::setImageCompression — Устанавливает сжатие изображения
    • Imagick::setImageCompressionQuality — Устанавливает качество сжатия изображения
    • Imagick::setImageDelay — Устанавливает задержку изображения
    • Imagick::setImageDepth — Устанавливает глубину изображения
    • Imagick::setImageDispose — Устанавливает метод удаления изображения
    • Imagick::setImageExtent — Устанавливает размер изображения
    • Imagick::setImageFilename — Устанавливает имя файла конкретного изображения
    • Imagick::setImageFormat — Устанавливает формат определённого изображения
    • Imagick::setImageGamma — Устанавливает гамму изображения
    • Imagick::setImageGravity — Устанавливает гравитацию изображения
    • Imagick::setImageGreenPrimary — Устанавливает цветность изображения зелёной первичной точкой
    • Imagick::setImageIndex — Устанавливает позицию итератора
    • Imagick::setImageInterlaceScheme — Устанавливает сжатие изображения
    • Imagick::setImageInterpolateMethod — Устанавливает метод интерполяции пикселей изображения
    • Imagick::setImageIterations — Устанавливает итерации изображения
    • Imagick::setImageMatte — Устанавливает матовый канал изображения
    • Imagick::setImageMatteColor — Устанавливает матовый цвет изображения
    • Imagick::setImageOpacity — Устанавливает уровень непрозрачности изображения
    • Imagick::setImageOrientation — Устанавливает ориентацию изображения
    • Imagick::setImagePage — Устанавливает геометрию страницы изображения
    • Imagick::setImageProfile — Добавляет именованный профиль к объекту Imagick
    • Imagick::setImageProperty — Устанавливает свойство изображения
    • Imagick::setImageRedPrimary — Устанавливает красную первичную точку цветности изображения
    • Imagick::setImageRenderingIntent — Устанавливает схему цветопередачи изображения
    • Imagick::setImageResolution — Устанавливает разрешение изображения
    • Imagick::setImageScene — Устанавливает сцену изображения
    • Imagick::setImageTicksPerSecond — Устанавливает продолжительность отображения кадра
    • Imagick::setImageType — Устанавливает тип изображения
    • Imagick::setImageUnits — Устанавливает единицы измерения разрешения изображения
    • Imagick::setImageVirtualPixelMethod — Устанавливает метод виртуального пикселя
    • Imagick::setImageWhitePoint — Устанавливает белую точку цветности изображения
    • Imagick::setInterlaceScheme — Устанавливает сжатие изображения
    • Imagick::setIteratorIndex — Устанавливает позицию итератора
    • Imagick::setLastIterator — Устанавливает итератор Imagick к последнему изображению
    • Imagick::setOption — Устанавливает опцию
    • Imagick::setPage — Устанавливает геометрию страницы объекта Imagick
    • Imagick::setPointSize — Устанавливает размер точки
    • Imagick::setProgressMonitor — Устанавливает callback-функцию, которая будет вызываться во время обработки изображения Imagick
    • Imagick::setRegistry — Устанавливает значение для записи реестра ImageMagick с именем key
    • Imagick::setResolution — Устанавливает разрешение изображения
    • Imagick::setResourceLimit — Устанавливает лимит для конкретного ресурса
    • Imagick::setSamplingFactors — Устанавливает коэффициенты выборки изображений
    • Imagick::setSize — Устанавливает размер объекта Imagick
    • Imagick::setSizeOffset — Устанавливает размер и смещение объекта Imagick
    • Imagick::setType — Устанавливает атрибут типа изображения
    • Imagick::shadeImage — Создаёт 3D-эффект
    • Imagick::shadowImage — Имитирует тень изображения
    • Imagick::sharpenImage — Повышает резкость изображения
    • Imagick::shaveImage — Удаляет пиксели по краям изображения
    • Imagick::shearImage — Создаёт параллелограмм
    • Imagick::sigmoidalContrastImage — Регулирует контраст изображения
    • Imagick::sketchImage — Имитирует набросок карандашом
    • Imagick::smushImages — Берёт все изображения из текущего указателя изображения в конец списка изображений и перемещает их
    • Imagick::solarizeImage — Применяет к изображению эффект соляризации
    • Imagick::sparseColorImage — Интерполирует цвета
    • Imagick::spliceImage — Склеивает сплошной цвет в изображение
    • Imagick::spreadImage — Случайно смещает каждый пиксель в блоке
    • Imagick::statisticImage — Модификация изображения с помощью функции статистики
    • Imagick::steganoImage — Скрывает цифровой водяной знак в изображении
    • Imagick::stereoImage — Объединяет два изображения
    • Imagick::stripImage — Снимает изображение всех профилей и комментариев
    • Imagick::subImageMatch — Выполняет поиск фрагмента изображения в текущем изображении и возвращает второстепенное изображение
    • Imagick::swirlImage — Закручивает пиксели вокруг центра изображения
    • Imagick::textureImage — Многократно размещает изображение текстуры
    • Imagick::thresholdImage — Изменяет отдельные пиксели на основе порогового значения
    • Imagick::thumbnailImage — Изменяет размер изображения
    • Imagick::tintImage — Применяет вектор цвета к каждому пикселю изображения
    • Imagick::__toString — Возвращает изображение в виде строки
    • Imagick::transformImage — Удобный метод настройки размера кадрирования и геометрии изображения
    • Imagick::transformImageColorspace — Преобразует изображение в новое цветовое пространство
    • Imagick::transparentPaintImage — Рисует пиксели прозрачными
    • Imagick::transposeImage — Создаёт вертикальное зеркальное отображение
    • Imagick::transverseImage — Создаёт горизонтальное зеркальное отображение
    • Imagick::trimImage — Удаляет края с изображения
    • Imagick::uniqueImageColors — Отбрасывает всё, кроме одного, любого цвета пикселя
    • Imagick::unsharpMaskImage — Резкость изображения
    • Imagick::valid — Проверяет, является ли текущий элемент корректным
    • Imagick::vignetteImage — Добавляет виньетный фильтр к изображению
    • Imagick::waveImage — Применяет волновой фильтр к изображению
    • Imagick::whiteThresholdImage — Закрашивает все пиксели выше порога в белый
    • Imagick::writeImage — Записывает изображение по указанному имени файла
    • Imagick::writeImageFile — Записывает изображение в файл
    • Imagick::writeImages — Записывает изображение или последовательность изображений
    • Imagick::writeImagesFile — Записывает фреймы в файловый дескриптор
  • ImagickDraw — Класс ImagickDraw
    • ImagickDraw::affine — Регулирует текущую матрицу аффинного преобразования
    • ImagickDraw::annotation — Рисует текст на картинке
    • ImagickDraw::arc — Рисует дугу
    • ImagickDraw::bezier — Рисует кривую Безье
    • ImagickDraw::circle — Рисует круг
    • ImagickDraw::clear — Очищает ImagickDraw
    • ImagickDraw::clone — Делает точную копию указанного объекта ImagickDraw
    • ImagickDraw::color — Рисует цвет на изображении
    • ImagickDraw::comment — Добавляет комментарий
    • ImagickDraw::composite — Накладывает изображение на текущее изображение
    • ImagickDraw::__construct — Конструктор класса ImagickDraw
    • ImagickDraw::destroy — Освобождает все связанные ресурсы
    • ImagickDraw::ellipse — Рисует на изображении эллипс
    • ImagickDraw::getClipPath — Возвращает идентификатор текущего обтравочного контура
    • ImagickDraw::getClipRule — Возвращает текущее правило заливки многоугольника
    • ImagickDraw::getClipUnits — Возвращает интерпретацию единиц обтравочного контура
    • ImagickDraw::getFillColor — Возвращает цвет заливки
    • ImagickDraw::getFillOpacity — Возвращает непрозрачность, используемую при рисовании
    • ImagickDraw::getFillRule — Возвращает правило заливки
    • ImagickDraw::getFont — Возвращает шрифт
    • ImagickDraw::getFontFamily — Возвращает семейство шрифтов
    • ImagickDraw::getFontSize — Возвращает размер шрифта
    • ImagickDraw::getFontStretch — Получает растяжение шрифта, используемое при аннотации текста
    • ImagickDraw::getFontStyle — Возвращает стиль шрифта
    • ImagickDraw::getFontWeight — Возвращает толщину шрифта
    • ImagickDraw::getGravity — Возвращает гравитацию размещения текста
    • ImagickDraw::getStrokeAntialias — Возвращает текущую настройку сглаживания обводки
    • ImagickDraw::getStrokeColor — Возвращает цвет, используемый для обводки контуров объекта
    • ImagickDraw::getStrokeDashArray — Возвращает массив, представляющий паттерн из штрихов и пробелов, используемых для обводки контуров
    • ImagickDraw::getStrokeDashOffset — Возвращает смещение в штриховом паттерне для начала штриховки
    • ImagickDraw::getStrokeLineCap — Возвращает форму, которая будет использоваться в конце открытых внутренних контуров при их обводке
    • ImagickDraw::getStrokeLineJoin — Возвращает форму, которая будет использоваться в углах контуров при их обводке
    • ImagickDraw::getStrokeMiterLimit — Возвращает предел среза обводки
    • ImagickDraw::getStrokeOpacity — Возвращает непрозрачность обведённых контуров объекта
    • ImagickDraw::getStrokeWidth — Возвращает ширину обводки, используемой для рисования контуров объекта
    • ImagickDraw::getTextAlignment — Возвращает выравнивание текста
    • ImagickDraw::getTextAntialias — Возвращает текущую настройку сглаживания текста
    • ImagickDraw::getTextDecoration — Возвращает оформление текста
    • ImagickDraw::getTextEncoding — Возвращает кодовый набор, используемый для текстовых аннотаций
    • ImagickDraw::getTextInterlineSpacing — Возвращает межстрочный интервал текста
    • ImagickDraw::getTextInterwordSpacing — Возвращает межсловный интервал текста
    • ImagickDraw::getTextKerning — Возвращает межбуквенный интервал текста
    • ImagickDraw::getTextUnderColor — Возвращает цвет под текстом
    • ImagickDraw::getVectorGraphics — Возвращает строку, содержащую векторную графику
    • ImagickDraw::line — Рисует линию
    • ImagickDraw::matte — Закрашивает канал непрозрачности изображения
    • ImagickDraw::pathClose — Добавляет элемент пути к текущему пути
    • ImagickDraw::pathCurveToAbsolute — Рисует кубическую кривую Безье
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Рисует квадратичную кривую Безье
    • ImagickDraw::pathCurveToQuadraticBezierRelative — Рисует квадратичную кривую Безье
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Рисует квадратичную кривую Безье
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Рисует квадратичную кривую Безье
    • ImagickDraw::pathCurveToRelative — Рисует кубическую кривую Безье
    • ImagickDraw::pathCurveToSmoothAbsolute — Рисует кубическую кривую Безье
    • ImagickDraw::pathCurveToSmoothRelative — Рисует кубическую кривую Безье
    • ImagickDraw::pathEllipticArcAbsolute — Рисует эллиптическую дугу
    • ImagickDraw::pathEllipticArcRelative — Рисует эллиптическую дугу
    • ImagickDraw::pathFinish — Завершает текущий путь
    • ImagickDraw::pathLineToAbsolute — Рисует линию
    • ImagickDraw::pathLineToHorizontalAbsolute — Рисует горизонтальную линию
    • ImagickDraw::pathLineToHorizontalRelative — Рисует горизонтальную линию
    • ImagickDraw::pathLineToRelative — Рисует линию
    • ImagickDraw::pathLineToVerticalAbsolute — Рисует вертикальную линию
    • ImagickDraw::pathLineToVerticalRelative — Рисует вертикальную линию
    • ImagickDraw::pathMoveToAbsolute — Начинает новый внутренний контур
    • ImagickDraw::pathMoveToRelative — Начинает новый внутренний контур
    • ImagickDraw::pathStart — Объявляет начало отрисовки контура
    • ImagickDraw::point — Рисует точку
    • ImagickDraw::polygon — Рисует многоугольник
    • ImagickDraw::polyline — Рисует ломаную линию
    • ImagickDraw::pop — Уничтожает текущий объект ImagickDraw в стеке и возвращается к ранее добавленному объекту ImagickDraw
    • ImagickDraw::popClipPath — Завершает определение пути обтравочного контура
    • ImagickDraw::popDefs — Завершает список определений
    • ImagickDraw::popPattern — Завершает определение шаблона
    • ImagickDraw::push — Клонирует текущий объект ImagickDraw и добавляет его в стек
    • ImagickDraw::pushClipPath — Запускает определение пути обтравочного контура
    • ImagickDraw::pushDefs — Указывает, что следующие команды создают именованные элементы для ранней обработки
    • ImagickDraw::pushPattern — Указывает, что последующие команды вплоть до ImagickDraw::opPattern() составляют определение именованного паттерна
    • ImagickDraw::rectangle — Рисует прямоугольник
    • ImagickDraw::render — Отрисовывает все предыдущие команды рисования на изображении
    • ImagickDraw::resetVectorGraphics — Сбрасывает векторную графику
    • ImagickDraw::rotate — Применяет указанный поворот к текущему координатному пространству
    • ImagickDraw::roundRectangle — Рисует прямоугольник с закруглёнными углами
    • ImagickDraw::scale — Регулирует коэффициент масштабирования
    • ImagickDraw::setClipPath — Связывает именованный контур обтравочного контура с изображением
    • ImagickDraw::setClipRule — Устанавливает правило заливки многоугольника, которое будет использоваться обтравочным контуром
    • ImagickDraw::setClipUnits — Устанавливает интерпретацию единиц траектории обтравочного контура
    • ImagickDraw::setFillAlpha — Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки
    • ImagickDraw::setFillColor — Устанавливает цвет заливки, используемый для рисования объектов с заливкой
    • ImagickDraw::setFillOpacity — Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки
    • ImagickDraw::setFillPatternURL — Устанавливает URL-адрес для использования в качестве образца заливки для заливки объектов
    • ImagickDraw::setFillRule — Устанавливает правило заливки для использования при рисовании полигонов
    • ImagickDraw::setFont — Устанавливает указанный шрифт для использования при аннотировании текстом
    • ImagickDraw::setFontFamily — Устанавливает семейство шрифтов для использования при аннотировании текстом
    • ImagickDraw::setFontSize — Устанавливает размер шрифта для использования при аннотировании текстом
    • ImagickDraw::setFontStretch — Устанавливает растяжение шрифта для использования при аннотировании текстом
    • ImagickDraw::setFontStyle — Устанавливает стиль шрифта для использования при аннотировании текстом
    • ImagickDraw::setFontWeight — Устанавливает толщину шрифта
    • ImagickDraw::setGravity — Устанавливает гравитацию размещения текста
    • ImagickDraw::setResolution — Устанавливает разрешение
    • ImagickDraw::setStrokeAlpha — Определяет непрозрачность обводки контуров объекта
    • ImagickDraw::setStrokeAntialias — Управляет сглаживанием обводок контуров
    • ImagickDraw::setStrokeColor — Устанавливает цвет, используемый для обводки контуров объекта
    • ImagickDraw::setStrokeDashArray — Задаёт паттерн из штрихов и пробелов, используемых для обводки контуров
    • ImagickDraw::setStrokeDashOffset — Задаёт смещение в штриховом паттерне для начала штриховки
    • ImagickDraw::setStrokeLineCap — Задаёт форму, которая будет использоваться в конце открытых внутренних контуров при их обводке
    • ImagickDraw::setStrokeLineJoin — Задаёт форму, которая будет использоваться в углах контуров при их обводке
    • ImagickDraw::setStrokeMiterLimit — Задаёт предел среза обводки
    • ImagickDraw::setStrokeOpacity — Определяет непрозрачность обводки контуров объекта
    • ImagickDraw::setStrokePatternURL — Устанавливает паттерн, используемый для обводки контуров объекта
    • ImagickDraw::setStrokeWidth — Устанавливает ширину обводки, используемой для рисования контуров объекта
    • ImagickDraw::setTextAlignment — Задаёт выравнивание текста
    • ImagickDraw::setTextAntialias — Управляет сглаживанием текста
    • ImagickDraw::setTextDecoration — Определяет оформление
    • ImagickDraw::setTextEncoding — Задаёт кодовый набор текста
    • ImagickDraw::setTextInterlineSpacing — Устанавливает межстрочный интервал текста
    • ImagickDraw::setTextInterwordSpacing — Устанавливает межсловный интервал текста
    • ImagickDraw::setTextKerning — Устанавливает межбуквенный интервал текста
    • ImagickDraw::setTextUnderColor — Задаёт цвет фонового прямоугольника
    • ImagickDraw::setVectorGraphics — Устанавливает векторную графику
    • ImagickDraw::setViewbox — Устанавливает общий размер холста
    • ImagickDraw::skewX — Наклоняет текущую систему координат по горизонтали
    • ImagickDraw::skewY — Наклоняет текущую систему координат по вертикали
    • ImagickDraw::translate — Применяет перенос к текущей системе координат
  • ImagickPixel — Класс ImagickPixel
    • ImagickPixel::clear — Очищает ресурсы, связанные с этим объектом
    • ImagickPixel::__construct — Конструктор ImagickPixel
    • ImagickPixel::destroy — Освобождает ресурсы, связанные с этим объектом
    • ImagickPixel::getColor — Возвращает цвет
    • ImagickPixel::getColorAsString — Возвращает цвет в виде строки
    • ImagickPixel::getColorCount — Возвращает количество цветов связанных с этим цветом
    • ImagickPixel::getColorQuantum — Возвращает цвет пикселя в массиве в виде квантовых значений
    • ImagickPixel::getColorValue — Возвращает нормализованное значение цвета канала
    • ImagickPixel::getColorValueQuantum — Получает квантовое значение цвета в ImagickPixel
    • ImagickPixel::getHSL — Возвращает нормализованный HSL-цвет объекта ImagickPixel
    • ImagickPixel::getIndex — Получает индекс цветовой карты пиксельной палочки
    • ImagickPixel::isPixelSimilar — Проверяет расстояние между этим цветом и другим
    • ImagickPixel::isPixelSimilarQuantum — Возвращает true, если расстояние между двумя цветами меньше указанного расстояния
    • ImagickPixel::isSimilar — Проверить разницу между этим цветом и другим
    • ImagickPixel::setColor — Устанавливает цвет
    • ImagickPixel::setColorCount — Устанавливает количество цветов, связанных с этим цветом
    • ImagickPixel::setColorValue — Устанавливает нормализованное значение одного из каналов
    • ImagickPixel::setColorValueQuantum — Устанавливает квантовое значение цветового элемента ImagickPixel
    • ImagickPixel::setHSL — Установка нормализованного HSL цвета
    • ImagickPixel::setIndex — Устанавливает индекс цветовой карты пиксельной палочки
  • 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 — Присоединяет другое ядро к этому ядру
    • ImagickKernel::addUnityKernel — Добавляет ядро Unity в список ядер
    • ImagickKernel::fromBuiltIn — Создаёт ядро из встроенного ядра
    • ImagickKernel::fromMatrix — Создаёт ядро из двумерной матрицы значений
    • ImagickKernel::getMatrix — Получает 2d матрицу значений, используемых в этом ядре
    • ImagickKernel::scale — Масштабирует список ядер на заданную величину
    • ImagickKernel::separate — Разделяет связанный набор ядер и возвращает массив ImagickKernels


Введение

Imagick является встроенным модулем PHP для создания и изменения изображений используя API ImageMagick.

ImageMagick представляет собой набор программного обеспечения для создания, редактирования и компонования растровых изображений. Он может читать, конвертировать и записывать изображения в различных форматах (более 100), включая DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, и TIFF.

ImageMagick Studio LLC, некоммерческая организация, специализирующаяся в разработке графического программного обеспечения, доступного бесплатно.


Требования

Требования для установки на платформах, отличных от Windows

Требуется ImageMagick >= 6.2.4. Количество поддерживаемых Imagick форматов файлов зависит от количества поддерживаемых форматов установленного ImageMagick. Например, Imagemagick требует ghostscript для проведения операций с PDF документами.


Установка

Этот модуль » PECL не поставляется вместе с PHP.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/imagick.

Замечание: Официальное название этого модуля - imagick.

Пользователи Windows могут загрузить готовый DLL файл со страницы » PECL. Эти пакеты уже содержат DLL-модуль (php_imagick.dll), который необходимо поместить в extension_dir. Они также содержат DLL-библиотеки ImageMagick, которые необходимо поместить где-нибудь в PATH. Начиная с Imagick 3.6.0, они также содержат файлы конфигурации XML в config; чтобы использовать их вместо встроенных значений по умолчанию, их необходимо поместить в %USERPROFILE%/.config/ImageMagick или, вместо этого по пути, заданном в переменной окружения MAGICK_CONFIGURE_PATH. Дополнительные сведения смотрите в » документации по файлам конфигурации ImageMagick.


Настройка во время выполнения

Поведение этих функций зависит от установок в 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 bool

Исправление ошибки рисования с локалью, используя ',' в качестве разделителя.

imagick.progress_monitor bool

Используется для включения мониторинга прогресса.

imagick.skip_version_check bool

Когда Imagic загружен, он проверяет, что версия ImageMagick, с которой он был скомпилирован, совпадает с текущей используемой версией и, если не совпадает, выводит предупреждение.Это предупреждение можно подавить, установив данный параметр.

Использовать Imagic с версией ImageMagick отличной от той, с которой он был скомпилирован, не рекомендуется. Он может работать, а может завершаться аварийно, либо вести себя непредсказуемо.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

Константы COLOR_*

Константы цветовых типов. Эти константы используются в основном с ImagickPixel.

imagick::COLOR_BLACK (int)
Чёрный
imagick::COLOR_BLUE (int)
Синий
imagick::COLOR_CYAN (int)
Сине-зелёный
imagick::COLOR_GREEN (int)
Зелёный
imagick::COLOR_RED (int)
Красный
imagick::COLOR_YELLOW (int)
Жёлтый
imagick::COLOR_MAGENTA (int)
Пурпурный
imagick::COLOR_OPACITY (int)
Прозрачность цвета
imagick::COLOR_ALPHA (int)
Альфа-канал для цвета
imagick::COLOR_FUZZ (int)
'Fuzz factor' для цвета. Смотрите документацию по ImageMagick.
DISPOSE константы

Константы расположения

imagick::DISPOSE_UNRECOGNIZED (int)
Не распознан
imagick::DISPOSE_UNDEFINED (int)
Не задан
imagick::DISPOSE_NONE (int)
Нет расположения
imagick::DISPOSE_BACKGROUND (int)
Фон
imagick::DISPOSE_PREVIOUS (int)
Предыдущее
Константы оператора наложения
imagick::COMPOSITE_DEFAULT (int)
Оператор наложения по умолчанию
imagick::COMPOSITE_UNDEFINED (int)
Неопределённый оператор наложения
imagick::COMPOSITE_NO (int)
Не установленный оператор наложения
imagick::COMPOSITE_ADD (int)
Результатом будет изображение + изображение
imagick::COMPOSITE_ATOP (int)
Результатом будет изображение такой же формы с наложением изображения затемняя его в местах перекрытия
imagick::COMPOSITE_BLEND (int)
Смесь изображения
imagick::COMPOSITE_BUMPMAP (int)
Так же, как COMPOSITE_MULTIPLY, за исключением того, что источник сначала преобразуется в оттенки серого.
imagick::COMPOSITE_CLEAR (int)
Делает целевое изображение прозрачным
imagick::COMPOSITE_COLORBURN (int)
Затемняет конечное изображение с учётом исходного изображения
imagick::COMPOSITE_COLORDODGE (int)
Повышенная яркость конечного изображения с учётом исходного изображения
imagick::COMPOSITE_COLORIZE (int)
Раскраска целевого изображения с помощью составного изображения
imagick::COMPOSITE_COPYBLACK (int)
Копирует чёрный цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYBLUE (int)
Копирует синий цвет из исходного изображения в целевое
imagick::COMPOSITE_COPY (int)
Копирует исходное изображение в целевое
imagick::COMPOSITE_COPYCYAN (int)
Копирует сине-зелёный цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYGREEN (int)
Копирует зелёный цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYMAGENTA (int)
Копирует пурпурный цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYOPACITY (int)
Копирует прозрачность из исходного изображения в целевое
imagick::COMPOSITE_COPYRED (int)
Копирует красный цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYYELLOW (int)
Копирует жёлтый цвет из исходного изображения в целевое
imagick::COMPOSITE_DARKEN (int)
Затемняет целевое изображение
imagick::COMPOSITE_DSTATOP (int)
Область назначения, которая находится внутри исходного изображения накладывается поверх исходного и заменяет назначение
imagick::COMPOSITE_DST (int)
Целевое изображение остаётся нетронутым
imagick::COMPOSITE_DSTIN (int)
Область внутри исходного изображения заменяется заданным изображением
imagick::COMPOSITE_DSTOUT (int)
Область снаружи исходного изображения заменяется заданным изображением
imagick::COMPOSITE_DSTOVER (int)
Исходное изображение заменяется заданным
imagick::COMPOSITE_DIFFERENCE (int)
Вычитание более тёмного цвета из двух составляющих
imagick::COMPOSITE_DISPLACE (int)
Смещение пикселей заданного изображения по аналогии с исходным изображением
imagick::COMPOSITE_DISSOLVE (int)
Растворение исходного изображения в заданном
imagick::COMPOSITE_EXCLUSION (int)
Создание эффекта, похожего на imagick::COMPOSITE_DIFFERENCE, но с более низким контрастом
imagick::COMPOSITE_HARDLIGHT (int)
Умножает или осветляет цвет, в зависимости от исходного значения цвета
imagick::COMPOSITE_HUE (int)
Изменение оттенка заданного изображения по аналогии с исходным изображением
imagick::COMPOSITE_IN (int)
Наложение исходного изображения на заданное
imagick::COMPOSITE_LIGHTEN (int)
Освещает заданное изображение по аналогии с исходным изображением
imagick::COMPOSITE_LUMINIZE (int)
Изменение яркости заданного изображения по аналогии с исходным изображением
imagick::COMPOSITE_MINUS (int)
Вычитает исходное изображение из заданного
imagick::COMPOSITE_MODULATE (int)
Модулирует целевые яркость, насыщенности и тон по аналогии с исходным изображением
imagick::COMPOSITE_MULTIPLY (int)
Перемножает цель и источник
imagick::COMPOSITE_OUT (int)
Наложение внешних частей источника на цель
imagick::COMPOSITE_OVER (int)
Наложение источника на цель
imagick::COMPOSITE_OVERLAY (int)
Преобразование "Overlay"
imagick::COMPOSITE_PLUS (int)
Добавляет источник к цели
imagick::COMPOSITE_REPLACE (int)
Заменяет цель источником
imagick::COMPOSITE_SATURATE (int)
Меняет насыщенность цели в соответствии с источником
imagick::COMPOSITE_SCREEN (int)
Источник и цель сначала дополняются, потом перемножаются, а потом источник заменяет цель.
imagick::COMPOSITE_SOFTLIGHT (int)
Затемняет или осветляет цвета, в зависимости от источника
imagick::COMPOSITE_SRCATOP (int)
Часть источника, лежащая внутри цели, накладывается на цель
imagick::COMPOSITE_SRC (int)
Источник копируется в цель
imagick::COMPOSITE_SRCIN (int)
Часть источника, лежащая внутри цели, заменяет цель
imagick::COMPOSITE_SRCOUT (int)
Часть источника, лежащая вне цели, заменяет цель
imagick::COMPOSITE_SRCOVER (int)
Источник заменяет цель
imagick::COMPOSITE_SUBTRACT (int)
Вычитает цвета источника из цели
imagick::COMPOSITE_THRESHOLD (int)
Источник накладывается на цель как определено порогом источника
imagick::COMPOSITE_XOR (int)
Часть источника, лежащая вне цели комбинируется с частью цели, лежащей вне источника
Константы MONTAGEMODE

imagick::MONTAGEMODE_FRAME (int)
imagick::MONTAGEMODE_UNFRAME (int)
imagick::MONTAGEMODE_CONCATENATE (int)
Константы STYLE

imagick::STYLE_NORMAL (int)
imagick::STYLE_ITALIC (int)
imagick::STYLE_OBLIQUE (int)
imagick::STYLE_ANY (int)
Константы FILTER

imagick::FILTER_UNDEFINED (int)
imagick::FILTER_POINT (int)
imagick::FILTER_BOX (int)
imagick::FILTER_TRIANGLE (int)
imagick::FILTER_HERMITE (int)
imagick::FILTER_HANNING (int)
imagick::FILTER_HAMMING (int)
imagick::FILTER_BLACKMAN (int)
imagick::FILTER_GAUSSIAN (int)
imagick::FILTER_QUADRATIC (int)
imagick::FILTER_CUBIC (int)
imagick::FILTER_CATROM (int)
imagick::FILTER_MITCHELL (int)
imagick::FILTER_LANCZOS (int)
imagick::FILTER_BESSEL (int)
imagick::FILTER_SINC (int)
Константы IMGTYPE

imagick::IMGTYPE_UNDEFINED (int)
imagick::IMGTYPE_BILEVEL (int)
imagick::IMGTYPE_GRAYSCALE (int)
imagick::IMGTYPE_GRAYSCALEMATTE (int)
imagick::IMGTYPE_PALETTE (int)
imagick::IMGTYPE_PALETTEMATTE (int)
imagick::IMGTYPE_TRUECOLOR (int)
imagick::IMGTYPE_TRUECOLORMATTE (int)
imagick::IMGTYPE_COLORSEPARATION (int)
imagick::IMGTYPE_COLORSEPARATIONMATTE (int)
imagick::IMGTYPE_OPTIMIZE (int)
Константы RESOLUTION

imagick::RESOLUTION_UNDEFINED (int)
imagick::RESOLUTION_PIXELSPERINCH (int)
imagick::RESOLUTION_PIXELSPERCENTIMETER (int)
Константы COMPRESSION

imagick::COMPRESSION_UNDEFINED (int)
imagick::COMPRESSION_NO (int)
imagick::COMPRESSION_BZIP (int)
imagick::COMPRESSION_FAX (int)
imagick::COMPRESSION_GROUP4 (int)
imagick::COMPRESSION_JPEG (int)
imagick::COMPRESSION_JPEG2000 (int)
imagick::COMPRESSION_LOSSLESSJPEG (int)
imagick::COMPRESSION_LZW (int)
imagick::COMPRESSION_RLE (int)
imagick::COMPRESSION_ZIP (int)
imagick::COMPRESSION_DXT1 (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или выше.
imagick::COMPRESSION_DXT3 (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или выше.
imagick::COMPRESSION_DXT5 (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или выше.
Константы PAINT

imagick::PAINT_POINT (int)
imagick::PAINT_REPLACE (int)
imagick::PAINT_FLOODFILL (int)
imagick::PAINT_FILLTOBORDER (int)
imagick::PAINT_RESET (int)
Константы GRAVITY

imagick::GRAVITY_NORTHWEST (int)
imagick::GRAVITY_NORTH (int)
imagick::GRAVITY_NORTHEAST (int)
imagick::GRAVITY_WEST (int)
imagick::GRAVITY_CENTER (int)
imagick::GRAVITY_EAST (int)
imagick::GRAVITY_SOUTHWEST (int)
imagick::GRAVITY_SOUTH (int)
imagick::GRAVITY_SOUTHEAST (int)
Константы STRETCH

imagick::STRETCH_NORMAL (int)
imagick::STRETCH_ULTRACONDENSED (int)
imagick::STRETCH_CONDENSED (int)
imagick::STRETCH_SEMICONDENSED (int)
imagick::STRETCH_SEMIEXPANDED (int)
imagick::STRETCH_EXPANDED (int)
imagick::STRETCH_EXTRAEXPANDED (int)
imagick::STRETCH_ULTRAEXPANDED (int)
imagick::STRETCH_ANY (int)
Константы ALIGN

imagick::ALIGN_UNDEFINED (int)
imagick::ALIGN_LEFT (int)
imagick::ALIGN_CENTER (int)
imagick::ALIGN_RIGHT (int)
Константы DECORATION

imagick::DECORATION_NO (int)
imagick::DECORATION_UNDERLINE (int)
imagick::DECORATION_OVERLINE (int)
imagick::DECORATION_LINETROUGH (int)
Константы NOISE

imagick::NOISE_UNIFORM (int)
imagick::NOISE_GAUSSIAN (int)
imagick::NOISE_MULTIPLICATIVEGAUSSIAN (int)
imagick::NOISE_IMPULSE (int)
imagick::NOISE_LAPLACIAN (int)
imagick::NOISE_POISSON (int)
imagick::NOISE_RANDOM (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
Константы CHANNEL

imagick::CHANNEL_UNDEFINED (int)
imagick::CHANNEL_RED (int)
imagick::CHANNEL_GRAY (int)
imagick::CHANNEL_CYAN (int)
imagick::CHANNEL_GREEN (int)
imagick::CHANNEL_MAGENTA (int)
imagick::CHANNEL_BLUE (int)
imagick::CHANNEL_YELLOW (int)
imagick::CHANNEL_ALPHA (int)
imagick::CHANNEL_OPACITY (int)
imagick::CHANNEL_MATTE (int)
imagick::CHANNEL_BLACK (int)
imagick::CHANNEL_INDEX (int)
imagick::CHANNEL_ALL (int)
imagick::CHANNEL_DEFAULT (int)
Константы METRIC

imagick::METRIC_UNDEFINED (int)
imagick::METRIC_MEANABSOLUTEERROR (int)
imagick::METRIC_MEANSQUAREERROR (int)
imagick::METRIC_PEAKABSOLUTEERROR (int)
imagick::METRIC_PEAKSIGNALTONOISERATIO (int)
imagick::METRIC_ROOTMEANSQUAREDERROR (int)
Константы PIXEL

imagick::PIXEL_CHAR (int)
imagick::PIXEL_DOUBLE (int)
imagick::PIXEL_FLOAT (int)
imagick::PIXEL_INTEGER (int)
Доступно только для ImageMagick < 7.
imagick::PIXEL_LONG (int)
imagick::PIXEL_QUANTUM (int)
imagick::PIXEL_SHORT (int)
Константы EVALUATE

imagick::EVALUATE_UNDEFINED (int)
imagick::EVALUATE_ADD (int)
imagick::EVALUATE_AND (int)
imagick::EVALUATE_DIVIDE (int)
imagick::EVALUATE_LEFTSHIFT (int)
imagick::EVALUATE_MAX (int)
imagick::EVALUATE_MIN (int)
imagick::EVALUATE_MULTIPLY (int)
imagick::EVALUATE_OR (int)
imagick::EVALUATE_RIGHTSHIFT (int)
imagick::EVALUATE_SET (int)
imagick::EVALUATE_SUBTRACT (int)
imagick::EVALUATE_XOR (int)
imagick::EVALUATE_POW (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_LOG (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_THRESHOLD (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_THRESHOLDBLACK (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_THRESHOLDWHITE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_GAUSSIANNOISE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_IMPULSENOISE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_LAPLACIANNOISE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_MULTIPLICATIVENOISE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_POISSONNOISE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_UNIFORMNOISE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_COSINE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_SINE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_ADDMODULUS (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
Константы COLORSPACE

imagick::COLORSPACE_UNDEFINED (int)
imagick::COLORSPACE_RGB (int)
imagick::COLORSPACE_GRAY (int)
imagick::COLORSPACE_TRANSPARENT (int)
imagick::COLORSPACE_OHTA (int)
imagick::COLORSPACE_LAB (int)
imagick::COLORSPACE_XYZ (int)
imagick::COLORSPACE_YCBCR (int)
imagick::COLORSPACE_YCC (int)
imagick::COLORSPACE_YIQ (int)
imagick::COLORSPACE_YPBPR (int)
imagick::COLORSPACE_YUV (int)
imagick::COLORSPACE_CMYK (int)
imagick::COLORSPACE_SRGB (int)
imagick::COLORSPACE_HSB (int)
imagick::COLORSPACE_HSL (int)
imagick::COLORSPACE_HWB (int)
imagick::COLORSPACE_REC601LUMA (int)
imagick::COLORSPACE_REC709LUMA (int)
imagick::COLORSPACE_LOG (int)
imagick::COLORSPACE_CMY (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
Константы VIRTUALPIXELMETHOD

imagick::VIRTUALPIXELMETHOD_UNDEFINED (int)
imagick::VIRTUALPIXELMETHOD_BACKGROUND (int)
imagick::VIRTUALPIXELMETHOD_CONSTANT (int)
imagick::VIRTUALPIXELMETHOD_EDGE (int)
imagick::VIRTUALPIXELMETHOD_MIRROR (int)
imagick::VIRTUALPIXELMETHOD_TILE (int)
imagick::VIRTUALPIXELMETHOD_TRANSPARENT (int)
imagick::VIRTUALPIXELMETHOD_MASK (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
imagick::VIRTUALPIXELMETHOD_BLACK (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
imagick::VIRTUALPIXELMETHOD_GRAY (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
imagick::VIRTUALPIXELMETHOD_WHITE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
imagick::VIRTUALPIXELMETHOD_HORIZONTALTILE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.3 или выше.
imagick::VIRTUALPIXELMETHOD_VERTICALTILE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.3 или выше.
Константы PREVIEW

imagick::PREVIEW_UNDEFINED (int)
imagick::PREVIEW_ROTATE (int)
imagick::PREVIEW_SHEAR (int)
imagick::PREVIEW_ROLL (int)
imagick::PREVIEW_HUE (int)
imagick::PREVIEW_SATURATION (int)
imagick::PREVIEW_BRIGHTNESS (int)
imagick::PREVIEW_GAMMA (int)
imagick::PREVIEW_SPIFF (int)
imagick::PREVIEW_DULL (int)
imagick::PREVIEW_GRAYSCALE (int)
imagick::PREVIEW_QUANTIZE (int)
imagick::PREVIEW_DESPECKLE (int)
imagick::PREVIEW_REDUCENOISE (int)
imagick::PREVIEW_ADDNOISE (int)
imagick::PREVIEW_SHARPEN (int)
imagick::PREVIEW_BLUR (int)
imagick::PREVIEW_THRESHOLD (int)
imagick::PREVIEW_EDGEDETECT (int)
imagick::PREVIEW_SPREAD (int)
imagick::PREVIEW_SOLARIZE (int)
imagick::PREVIEW_SHADE (int)
imagick::PREVIEW_RAISE (int)
imagick::PREVIEW_SEGMENT (int)
imagick::PREVIEW_SWIRL (int)
imagick::PREVIEW_IMPLODE (int)
imagick::PREVIEW_WAVE (int)
imagick::PREVIEW_OILPAINT (int)
imagick::PREVIEW_CHARCOALDRAWING (int)
imagick::PREVIEW_JPEG (int)
Константы RENDERINGINTENT

imagick::RENDERINGINTENT_UNDEFINED (int)
imagick::RENDERINGINTENT_SATURATION (int)
imagick::RENDERINGINTENT_PERCEPTUAL (int)
imagick::RENDERINGINTENT_ABSOLUTE (int)
imagick::RENDERINGINTENT_RELATIVE (int)
Константы INTERLACE

imagick::INTERLACE_UNDEFINED (int)
imagick::INTERLACE_NO (int)
imagick::INTERLACE_LINE (int)
imagick::INTERLACE_PLANE (int)
imagick::INTERLACE_PARTITION (int)
imagick::INTERLACE_GIF (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.4 или выше.
imagick::INTERLACE_JPEG (int)
imagick::INTERLACE_PNG (int)
Константы FILLRULE

imagick::FILLRULE_UNDEFINED (int)
imagick::FILLRULE_EVENODD (int)
imagick::FILLRULE_NONZERO (int)
Константы PATHUNITS

imagick::PATHUNITS_UNDEFINED (int)
imagick::PATHUNITS_USERSPACE (int)
imagick::PATHUNITS_USERSPACEONUSE (int)
imagick::PATHUNITS_OBJECTBOUNDINGBOX (int)
Константы LINECAP

imagick::LINECAP_UNDEFINED (int)
imagick::LINECAP_BUTT (int)
imagick::LINECAP_ROUND (int)
imagick::LINECAP_SQUARE (int)
Константы LINEJOIN

imagick::LINEJOIN_UNDEFINED (int)
imagick::LINEJOIN_MITER (int)
imagick::LINEJOIN_ROUND (int)
imagick::LINEJOIN_BEVEL (int)
Константы RESOURCETYPE

imagick::RESOURCETYPE_UNDEFINED (int)
imagick::RESOURCETYPE_AREA (int)
Определяет максимальную ширину * высоту изображения, которое может находиться в пиксеном кеше.
imagick::RESOURCETYPE_DISK (int)
Определяет максимальное количество дискового пространства в байтах, разрешённых для использования в пиксельном кеше.
imagick::RESOURCETYPE_FILE (int)
Определяет максимальное количество открытых файлов пиксельного кеша..
imagick::RESOURCETYPE_MAP (int)
Определяет максимальное количество памяти, в байтах, под пиксельный кеш.
imagick::RESOURCETYPE_MEMORY (int)
Определяет максимальное количество памяти, в байтах, под пиксельный кеш из кучи.
imagick::RESOURCETYPE_THREAD (int)
Определяет максимальное количество параллельных потоков. Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.7.8 или выше.
Константы LAYERMETHOD

imagick::LAYERMETHOD_UNDEFINED (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_COALESCE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_COMPAREANY (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_COMPARECLEAR (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_COMPAREOVERLAY (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_DISPOSE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_OPTIMIZE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_OPTIMIZEPLUS (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_OPTIMIZEIMAGE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_OPTIMIZETRANS (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_REMOVEDUPS (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_REMOVEZERO (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_COMPOSITE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_MERGE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или выше.
imagick::LAYERMETHOD_FLATTEN (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или выше.
imagick::LAYERMETHOD_MOSAIC (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или выше.
Константы ORIENTATION

imagick::ORIENTATION_UNDEFINED (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_TOPLEFT (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_TOPRIGHT (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_BOTTOMRIGHT (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_BOTTOMLEFT (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_LEFTTOP (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_RIGHTTOP (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_RIGHTBOTTOM (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_LEFTBOTTOM (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
Константы DISTORTION

imagick::DISTORTION_UNDEFINED (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_AFFINE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_AFFINEPROJECTION (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_ARC (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_BILINEAR (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_PERSPECTIVE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_PERSPECTIVEPROJECTION (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_SCALEROTATETRANSLATE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_POLYNOMIAL (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_POLAR (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_DEPOLAR (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_BARREL (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_BARRELINVERSE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_SHEPARDS (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_SENTINEL (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
Константы ALPHACHANNEL

imagick::ALPHACHANNEL_ACTIVATE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или выше.
imagick::ALPHACHANNEL_DEACTIVATE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или выше.
imagick::ALPHACHANNEL_RESET (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или выше.
imagick::ALPHACHANNEL_SET (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или выше.
imagick::ALPHACHANNEL_UNDEFINED (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_COPY (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_EXTRACT (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_OPAQUE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_SHAPE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_TRANSPARENT (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_BACKGROUND (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.5.3 или выше.
imagick::ALPHACHANNEL_REMOVE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.7.8 или выше.
imagick::ALPHACHANNEL_ASSOCIATE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.9.0 или выше.
imagick::ALPHACHANNEL_DISSOCIATE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.9.0 или выше.
imagick::ALPHACHANNEL_ON (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 7.0.0 или выше.
imagick::ALPHACHANNEL_OFF (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 7.0.0 или выше.
imagick::ALPHACHANNEL_DISCRETE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 7.0.0 или выше.
Константы SPARSECOLORMETHOD

imagick::SPARSECOLORMETHOD_UNDEFINED (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_BARYCENTRIC (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_BILINEAR (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_POLYNOMIAL (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_SPEPARDS (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_VORONOI (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
Константы FUNCTION

imagick::FUNCTION_UNDEFINED (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или выше.
imagick::FUNCTION_POLYNOMIAL (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или выше.
imagick::FUNCTION_SINUSOID (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или выше.
Константы INTERPOLATE

imagick::INTERPOLATE_UNDEFINED (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_AVERAGE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_BICUBIC (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_BILINEAR (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_FILTER (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_INTEGER (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_MESH (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_NEARESTNEIGHBOR (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_SPLINE (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.4 или выше.
Константы DITHERMETHOD

imagick::DITHERMETHOD_UNDEFINED (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DITHERMETHOD_NO (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DITHERMETHOD_RIEMERSMA (int)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DITHERMETHOD_FLOYDSTEINBERG (int)
Эта константа доступна, если 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 и других объектно-ориентированных функций поддерживаемых в 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, PECL imagick 3)

Обзор классов

class Imagick implements Iterator {
public __construct(mixed $files = ?)
public adaptiveBlurImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public adaptiveResizeImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $legacy = false
): bool
public adaptiveSharpenImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public adaptiveThresholdImage(int $width, int $height, int $offset): bool
public addImage(Imagick $source): bool
public addNoiseImage(int $noise_type, int $channel = Imagick::CHANNEL_DEFAULT): bool
public affineTransformImage(ImagickDraw $matrix): bool
public animateImages(string $x_server): bool
public annotateImage(
ImagickDraw $draw_settings,
float $x,
float $y,
float $angle,
string $text
): bool
public appendImages(bool $stack): Imagick
public autoLevelImage(int $channel = Imagick::CHANNEL_DEFAULT): bool
public averageImages(): Imagick
public blackThresholdImage(mixed $threshold): bool
public blueShiftImage(float $factor = 1.5): bool
public blurImage(float $radius, float $sigma, int $channel = ?): bool
public borderImage(mixed $bordercolor, int $width, int $height): bool
public brightnessContrastImage(float $brightness, float $contrast, int $channel = Imagick::CHANNEL_DEFAULT): bool
public charcoalImage(float $radius, float $sigma): bool
public chopImage(
int $width,
int $height,
int $x,
int $y
): bool
public clampImage(int $channel = Imagick::CHANNEL_DEFAULT): bool
public clear(): bool
public clipImage(): bool
public clipImagePath(string $pathname, string $inside): void
public clipPathImage(string $pathname, bool $inside): bool
public clone(): Imagick
public clutImage(Imagick $lookup_table, int $channel = Imagick::CHANNEL_DEFAULT): bool
public coalesceImages(): Imagick
public colorFloodfillImage(
mixed $fill,
float $fuzz,
mixed $bordercolor,
int $x,
int $y
): bool
public colorizeImage(mixed $colorize, mixed $opacity, bool $legacy = false): bool
public colorMatrixImage(array $color_matrix = Imagick::CHANNEL_DEFAULT): bool
public combineImages(int $channelType): Imagick
public commentImage(string $comment): bool
public compareImageChannels(Imagick $image, int $channelType, int $metricType): array
public compareImageLayers(int $method): Imagick
public compareImages(Imagick $compare, int $metric): array
public compositeImage(
Imagick $composite_object,
int $composite,
int $x,
int $y,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public contrastImage(bool $sharpen): bool
public contrastStretchImage(float $black_point, float $white_point, int $channel = Imagick::CHANNEL_DEFAULT): bool
public convolveImage(array $kernel, int $channel = Imagick::CHANNEL_DEFAULT): bool
public count(int $mode = 0): int
public cropImage(
int $width,
int $height,
int $x,
int $y
): bool
public cropThumbnailImage(int $width, int $height, bool $legacy = false): bool
public current(): Imagick
public cycleColormapImage(int $displace): bool
public decipherImage(string $passphrase): bool
public deconstructImages(): Imagick
public deleteImageArtifact(string $artifact): bool
public deleteImageProperty(string $name): bool
public deskewImage(float $threshold): bool
public despeckleImage(): bool
public destroy(): bool
public displayImage(string $servername): bool
public displayImages(string $servername): bool
public distortImage(int $method, array $arguments, bool $bestfit): bool
public drawImage(ImagickDraw $draw): bool
public edgeImage(float $radius): bool
public embossImage(float $radius, float $sigma): bool
public encipherImage(string $passphrase): bool
public enhanceImage(): bool
public equalizeImage(): bool
public 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
public extentImage(
int $width,
int $height,
int $x,
int $y
): bool
public filter(ImagickKernel $ImagickKernel, int $channel = Imagick::CHANNEL_UNDEFINED): bool
public flattenImages(): Imagick
public flipImage(): bool
public floodFillPaintImage(
mixed $fill,
float $fuzz,
mixed $target,
int $x,
int $y,
bool $invert,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public flopImage(): bool
public forwardFourierTransformimage(bool $magnitude): bool
public 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
public fxImage(string $expression, int $channel = Imagick::CHANNEL_DEFAULT): Imagick
public gammaImage(float $gamma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public gaussianBlurImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public getColorspace(): int
public getCompression(): int
public getCompressionQuality(): int
public static getCopyright(): string
public getFilename(): string
public getFont(): string
public getFormat(): string
public getGravity(): int
public static getHomeURL(): string
public getImage(): Imagick
public getImageAlphaChannel(): bool
public getImageArtifact(string $artifact): string
public getImageAttribute(string $key): string
public getImageBackgroundColor(): ImagickPixel
public getImageBlob(): string
public getImageBluePrimary(): array
public getImageBorderColor(): ImagickPixel
public getImageChannelDepth(int $channel): int
public getImageChannelDistortion(Imagick $reference, int $channel, int $metric): float
public getImageChannelDistortions(Imagick $reference, int $metric, int $channel = Imagick::CHANNEL_DEFAULT): float
public getImageChannelExtrema(int $channel): array
public getImageChannelKurtosis(int $channel = Imagick::CHANNEL_DEFAULT): array
public getImageChannelMean(int $channel): array
public getImageChannelRange(int $channel): array
public getImageChannelStatistics(): array
public getImageClipMask(): Imagick
public getImageColormapColor(int $index): ImagickPixel
public getImageColors(): int
public getImageColorspace(): int
public getImageCompose(): int
public getImageCompression(): int
public getImageCompressionQuality(): int
public getImageDelay(): int
public getImageDepth(): int
public getImageDispose(): int
public getImageDistortion(MagickWand $reference, int $metric): float
public getImageExtrema(): array
public getImageFilename(): string
public getImageFormat(): string
public getImageGamma(): float
public getImageGeometry(): array
public getImageGravity(): int
public getImageGreenPrimary(): array
public getImageHeight(): int
public getImageHistogram(): array
public getImageIndex(): int
public getImageInterlaceScheme(): int
public getImageInterpolateMethod(): int
public getImageIterations(): int
public getImageLength(): int
public getImageMatte(): bool
public getImageMatteColor(): ImagickPixel
public getImageMimeType(): string
public getImageOrientation(): int
public getImagePage(): array
public getImagePixelColor(int $x, int $y): ImagickPixel
public getImageProfile(string $name): string
public getImageProfiles(string $pattern = "*", bool $include_values = true): array
public getImageProperties(string $pattern = "*", bool $include_values = true): array
public getImageProperty(string $name): string
public getImageRedPrimary(): array
public getImageRegion(
int $width,
int $height,
int $x,
int $y
): Imagick
public getImageRenderingIntent(): int
public getImageResolution(): array
public getImagesBlob(): string
public getImageScene(): int
public getImageSignature(): string
public getImageSize(): int
public getImageTicksPerSecond(): int
public getImageTotalInkDensity(): float
public getImageType(): int
public getImageUnits(): int
public getImageVirtualPixelMethod(): int
public getImageWhitePoint(): array
public getImageWidth(): int
public getInterlaceScheme(): int
public getIteratorIndex(): int
public getNumberImages(): int
public getOption(string $key): string
public static getPackageName(): string
public getPage(): array
public getPixelIterator(): ImagickPixelIterator
public getPixelRegionIterator(
int $x,
int $y,
int $columns,
int $rows
): ImagickPixelIterator
public getPointSize(): float
public static getQuantum(): int
public static getQuantumDepth(): array
public static getQuantumRange(): array
public static getRegistry(string $key): string
public static getReleaseDate(): string
public static getResource(int $type): int
public static getResourceLimit(int $type): int
public getSamplingFactors(): array
public getSize(): array
public getSizeOffset(): int
public static getVersion(): array
public haldClutImage(Imagick $clut, int $channel = Imagick::CHANNEL_DEFAULT): bool
public hasNextImage(): bool
public hasPreviousImage(): bool
public identifyFormat(string $embedText): string|false
public identifyImage(bool $appendRawOutput = false): array
public 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
public labelImage(string $label): bool
public levelImage(
float $blackPoint,
float $gamma,
float $whitePoint,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public linearStretchImage(float $blackPoint, float $whitePoint): bool
public liquidRescaleImage(
int $width,
int $height,
float $delta_x,
float $rigidity
): bool
public static listRegistry(): array
public magnifyImage(): bool
public mapImage(Imagick $map, bool $dither): bool
public matteFloodfillImage(
float $alpha,
float $fuzz,
mixed $bordercolor,
int $x,
int $y
): bool
public medianFilterImage(float $radius): bool
public mergeImageLayers(int $layer_method): Imagick
public minifyImage(): bool
public modulateImage(float $brightness, float $saturation, float $hue): bool
public montageImage(
ImagickDraw $draw,
string $tile_geometry,
string $thumbnail_geometry,
int $mode,
string $frame
): Imagick
public morphImages(int $number_frames): Imagick
public morphology(
int $morphologyMethod,
int $iterations,
ImagickKernel $ImagickKernel,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public mosaicImages(): Imagick
public motionBlurImage(
float $radius,
float $sigma,
float $angle,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public negateImage(bool $gray, int $channel = Imagick::CHANNEL_DEFAULT): bool
public newImage(
int $cols,
int $rows,
mixed $background,
string $format = ?
): bool
public newPseudoImage(int $columns, int $rows, string $pseudoString): bool
public nextImage(): bool
public normalizeImage(int $channel = Imagick::CHANNEL_DEFAULT): bool
public oilPaintImage(float $radius): bool
public opaquePaintImage(
mixed $target,
mixed $fill,
float $fuzz,
bool $invert,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public optimizeImageLayers(): bool
public orderedPosterizeImage(string $threshold_map, int $channel = Imagick::CHANNEL_DEFAULT): bool
public paintFloodfillImage(
mixed $fill,
float $fuzz,
mixed $bordercolor,
int $x,
int $y,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public paintOpaqueImage(
mixed $target,
mixed $fill,
float $fuzz,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public paintTransparentImage(mixed $target, float $alpha, float $fuzz): bool
public pingImage(string $filename): bool
public pingImageBlob(string $image): bool
public pingImageFile(resource $filehandle, string $fileName = ?): bool
public polaroidImage(ImagickDraw $properties, float $angle): bool
public posterizeImage(int $levels, bool $dither): bool
public previewImages(int $preview): bool
public previousImage(): bool
public profileImage(string $name, ?string $profile): bool
public quantizeImage(
int $numberColors,
int $colorspace,
int $treedepth,
bool $dither,
bool $measureError
): bool
public quantizeImages(
int $numberColors,
int $colorspace,
int $treedepth,
bool $dither,
bool $measureError
): bool
public queryFontMetrics(ImagickDraw $properties, string $text, bool $multiline = ?): array
public static queryFonts(string $pattern = "*"): array
public static queryFormats(string $pattern = "*"): array
public radialBlurImage(float $angle, int $channel = Imagick::CHANNEL_DEFAULT): bool
public raiseImage(
int $width,
int $height,
int $x,
int $y,
bool $raise
): bool
public randomThresholdImage(float $low, float $high, int $channel = Imagick::CHANNEL_DEFAULT): bool
public readImage(string $filename): bool
public readImageBlob(string $image, string $filename = ?): bool
public readImageFile(resource $filehandle, string $fileName = null): bool
public readImages(array $filenames): bool
public recolorImage(array $matrix): bool
public reduceNoiseImage(float $radius): bool
public remapImage(Imagick $replacement, int $DITHER): bool
public removeImage(): bool
public removeImageProfile(string $name): string
public render(): bool
public resampleImage(
float $x_resolution,
float $y_resolution,
int $filter,
float $blur
): bool
public resetImagePage(string $page): bool
public resizeImage(
int $columns,
int $rows,
int $filter,
float $blur,
bool $bestfit = false,
bool $legacy = false
): bool
public rollImage(int $x, int $y): bool
public rotateImage(mixed $background, float $degrees): bool
public rotationalBlurImage(float $angle, int $channel = Imagick::CHANNEL_DEFAULT): bool
public roundCorners(
float $x_rounding,
float $y_rounding,
float $stroke_width = 10,
float $displace = 5,
float $size_correction = -6
): bool
public sampleImage(int $columns, int $rows): bool
public scaleImage(
int $columns,
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
public separateImageChannel(int $channel): bool
public sepiaToneImage(float $threshold): bool
public setBackgroundColor(mixed $background): bool
public setColorspace(int $COLORSPACE): bool
public setCompression(int $compression): bool
public setCompressionQuality(int $quality): bool
public setFilename(string $filename): bool
public setFirstIterator(): bool
public setFont(string $font): bool
public setFormat(string $format): bool
public setGravity(int $gravity): bool
public setImage(Imagick $replace): bool
public setImageAlphaChannel(int $mode): bool
public setImageArtifact(string $artifact, string $value): bool
public setImageAttribute(string $key, string $value): bool
public setImageBackgroundColor(mixed $background): bool
public setImageBias(float $bias): bool
public setImageBiasQuantum(float $bias): void
public setImageBluePrimary(float $x, float $y): bool
public setImageBorderColor(mixed $border): bool
public setImageChannelDepth(int $channel, int $depth): bool
public setImageClipMask(Imagick $clip_mask): bool
public setImageColormapColor(int $index, ImagickPixel $color): bool
public setImageColorspace(int $colorspace): bool
public setImageCompose(int $compose): bool
public setImageCompression(int $compression): bool
public setImageCompressionQuality(int $quality): bool
public setImageDelay(int $delay): bool
public setImageDepth(int $depth): bool
public setImageDispose(int $dispose): bool
public setImageExtent(int $columns, int $rows): bool
public setImageFilename(string $filename): bool
public setImageFormat(string $format): bool
public setImageGamma(float $gamma): bool
public setImageGravity(int $gravity): bool
public setImageGreenPrimary(float $x, float $y): bool
public setImageIndex(int $index): bool
public setImageInterlaceScheme(int $interlace_scheme): bool
public setImageInterpolateMethod(int $method): bool
public setImageIterations(int $iterations): bool
public setImageMatte(bool $matte): bool
public setImageMatteColor(mixed $matte): bool
public setImageOpacity(float $opacity): bool
public setImageOrientation(int $orientation): bool
public setImagePage(
int $width,
int $height,
int $x,
int $y
): bool
public setImageProfile(string $name, string $profile): bool
public setImageProperty(string $name, string $value): bool
public setImageRedPrimary(float $x, float $y): bool
public setImageRenderingIntent(int $rendering_intent): bool
public setImageResolution(float $x_resolution, float $y_resolution): bool
public setImageScene(int $scene): bool
public setImageTicksPerSecond(int $ticks_per_second): bool
public setImageType(int $image_type): bool
public setImageUnits(int $units): bool
public setImageVirtualPixelMethod(int $method): bool
public setImageWhitePoint(float $x, float $y): bool
public setInterlaceScheme(int $interlace_scheme): bool
public setIteratorIndex(int $index): bool
public setLastIterator(): bool
public setOption(string $key, string $value): bool
public setPage(
int $width,
int $height,
int $x,
int $y
): bool
public setPointSize(float $point_size): bool
public setProgressMonitor(callable $callback): bool
public static setRegistry(string $key, string $value): bool
public setResolution(float $x_resolution, float $y_resolution): bool
public static setResourceLimit(int $type, int $limit): bool
public setSamplingFactors(array $factors): bool
public setSize(int $columns, int $rows): bool
public setSizeOffset(int $columns, int $rows, int $offset): bool
public setType(int $image_type): bool
public shadeImage(bool $gray, float $azimuth, float $elevation): bool
public shadowImage(
float $opacity,
float $sigma,
int $x,
int $y
): bool
public sharpenImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public shaveImage(int $columns, int $rows): bool
public shearImage(mixed $background, float $x_shear, float $y_shear): bool
public sigmoidalContrastImage(
bool $sharpen,
float $alpha,
float $beta,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public sketchImage(float $radius, float $sigma, float $angle): bool
public smushImages(bool $stack, int $offset): Imagick
public solarizeImage(int $threshold): bool
public sparseColorImage(int $SPARSE_METHOD, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): bool
public spliceImage(
int $width,
int $height,
int $x,
int $y
): bool
public spreadImage(float $radius): bool
public statisticImage(
int $type,
int $width,
int $height,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public steganoImage(Imagick $watermark_wand, int $offset): Imagick
public stereoImage(Imagick $offset_wand): bool
public stripImage(): bool
public subImageMatch(Imagick $Imagick, array &$offset = ?, float &$similarity = ?): Imagick
swirlImage(float $degrees): bool
textureImage(Imagick $texture_wand): Imagick
public thresholdImage(float $threshold, int $channel = Imagick::CHANNEL_DEFAULT): bool
public thumbnailImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $fill = false,
bool $legacy = false
): bool
public tintImage(mixed $tint, mixed $opacity, bool $legacy = false): bool
public __toString(): string
public transformImage(string $crop, string $geometry): Imagick
public transformImageColorspace(int $colorspace): bool
public transparentPaintImage(
mixed $target,
float $alpha,
float $fuzz,
bool $invert
): bool
public transposeImage(): bool
public transverseImage(): bool
public trimImage(float $fuzz): bool
public uniqueImageColors(): bool
public unsharpMaskImage(
float $radius,
float $sigma,
float $amount,
float $threshold,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public valid(): bool
public vignetteImage(
float $blackPoint,
float $whitePoint,
int $x,
int $y
): bool
public waveImage(float $amplitude, float $length): bool
public whiteThresholdImage(mixed $threshold): bool
public writeImage(string $filename = NULL): bool
public writeImageFile(resource $filehandle, string $format = ?): bool
public writeImages(string $filename, bool $adjoin): bool
public 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 — Настраивает уровни определённого канала изображения
  • Imagick::averageImages — Усредняет набор изображений
  • Imagick::blackThresholdImage — Перевести все пиксели ниже порогового значения в чёрный цвет
  • Imagick::blueShiftImage — Приглушает цвета изображения
  • Imagick::blurImage — Добавляет фильтр размытия к изображению
  • Imagick::borderImage — Окружает изображение рамкой
  • Imagick::brightnessContrastImage — Изменяет яркость и/или контраст изображения
  • Imagick::charcoalImage — Рисование углём
  • Imagick::chopImage — Удаляет область изображения и обрезает его
  • Imagick::clampImage — Ограничивает диапазон цветов от 0 до квантовой глубины
  • Imagick::clear — Очищает все ресурсы, связанные с объектом Imagick
  • Imagick::clipImage — Обрезка вдоль ближайшего контура с профилем 8BIM
  • Imagick::clipImagePath — Клипы вдоль именованных путей из профиля 8BIM, если они есть
  • Imagick::clipPathImage — Отсечь вдоль обозначенного контура с профилем 8BIM
  • Imagick::clone — Создаёт точную копию объекта Imagick
  • Imagick::clutImage — Заменяет цвета в изображении
  • Imagick::coalesceImages — Компонует набор изображений
  • Imagick::colorFloodfillImage — Изменяет значение цвета любого пикселя, соответствующего целевому
  • Imagick::colorizeImage — Смешивание цвета заливки с изображением
  • Imagick::colorMatrixImage — Применяет преобразование цвета к изображению
  • Imagick::combineImages — Объединяет одно или несколько изображений в одно изображение
  • Imagick::commentImage — Добавляет комментарий к вашему изображению
  • Imagick::compareImageChannels — Возвращает разницу в одном или нескольких изображениях
  • Imagick::compareImageLayers — Возвращает максимальную ограничивающую область между изображениями
  • Imagick::compareImages — Сравнивает изображение с восстановленным изображением
  • Imagick::compositeImage — Накладывает одно изображение на другое
  • Imagick::__construct — Конструктор объекта Imagick
  • Imagick::contrastImage — Изменяет контраст изображения
  • Imagick::contrastStretchImage — Повышает контрастность цветного изображения
  • Imagick::convolveImage — Применяет пользовательское ядро свёртки к изображению
  • Imagick::count — Получает количество изображений
  • Imagick::cropImage — Извлекает область изображения
  • Imagick::cropThumbnailImage — Создаёт обрезанную миниатюру
  • Imagick::current — Возвращает ссылку на текущий объект Imagick
  • Imagick::cycleColormapImage — Отображает цветовую карту изображения
  • Imagick::decipherImage — Расшифровывает изображение
  • Imagick::deconstructImages — Возвращает определённые пиксельные различия между изображениями
  • Imagick::deleteImageArtifact — Удаляет артефакт изображения
  • Imagick::deleteImageProperty — Удаляет свойство изображения
  • Imagick::deskewImage — Удаляет перекос с изображения
  • Imagick::despeckleImage — Уменьшает спекл-шум на изображении
  • Imagick::destroy — Удаляет объект Imagick
  • Imagick::displayImage — Выводит изображение
  • Imagick::displayImages — Выводит изображение или последовательность изображений
  • Imagick::distortImage — Искажает изображение, используя различные методы искажения
  • Imagick::drawImage — Выполняет рендеринг объекта ImagickDraw на текущем изображении
  • Imagick::edgeImage — Усиливает края в изображении
  • Imagick::embossImage — Возвращает изображение в градациях серого с трёхмерным эффектом
  • Imagick::encipherImage — Шифрует изображение
  • Imagick::enhanceImage — Улучшает качество шумного изображения
  • Imagick::equalizeImage — Выравнивает гистограмму изображения
  • Imagick::evaluateImage — Применяет выражение к изображению
  • Imagick::exportImagePixels — Экспортирует пиксели изображения
  • Imagick::extentImage — Устанавливает размер изображения
  • Imagick::filter — Применяет пользовательское ядро свёртки к изображению
  • Imagick::flattenImages — Объединяет последовательность изображений
  • Imagick::flipImage — Создаёт вертикальное зеркало изображения
  • Imagick::floodFillPaintImage — Изменяет значение цвета любого пикселя, соответствующего целевому
  • Imagick::flopImage — Создаёт горизонтальное зеркальное отображение
  • Imagick::forwardFourierTransformImage — Реализует дискретное преобразование Фурье
  • Imagick::frameImage — Добавляет имитацию трёхмерной границы
  • Imagick::functionImage — Применяет функцию к изображению
  • Imagick::fxImage — Оценивает выражение для каждого пикселя в изображении
  • Imagick::gammaImage — Гамма-коррекция изображения
  • Imagick::gaussianBlurImage — Размывает изображение
  • 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 — Возвращает артефакт изображения
  • Imagick::getImageAttribute — Возвращает именованный атрибут
  • Imagick::getImageBackgroundColor — Возвращает цвет фона изображения
  • Imagick::getImageBlob — Возвращает последовательность изображений в виде BLOB
  • Imagick::getImageBluePrimary — Возвращает основную точку синего цвета для изображения
  • Imagick::getImageBorderColor — Возвращает цвет рамки изображения
  • Imagick::getImageChannelDepth — Возвращает глубину для определённого канала изображения
  • Imagick::getImageChannelDistortion — Сравнивает каналы изображения с восстановленным изображением
  • Imagick::getImageChannelDistortions — Возвращает искажения канала
  • Imagick::getImageChannelExtrema — Возвращает экстремумы для одного или нескольких каналов изображения
  • Imagick::getImageChannelKurtosis — Возвращает эксцесс и асимметрию определённого канала
  • Imagick::getImageChannelMean — Возвращает среднее и стандартное отклонение
  • Imagick::getImageChannelRange — Возвращает диапазон каналов
  • Imagick::getImageChannelStatistics — Возвращает статистику для каждого канала изображения
  • Imagick::getImageClipMask — Возвращает обтравочную маску изображения
  • Imagick::getImageColormapColor — Возвращает цвет указанного индекса палитры
  • Imagick::getImageColors — Возвращает число уникальных цветов в изображении
  • Imagick::getImageColorspace — Возвращает цветовую палитру изображения
  • Imagick::getImageCompose — Возвращает составной оператор, связанный с изображением
  • Imagick::getImageCompression — Возвращает текущий тип компрессии изображения
  • Imagick::getImageCompressionQuality — Возвращает текущее качество сжатия изображения
  • Imagick::getImageDelay — Возвращает задержку изображения
  • Imagick::getImageDepth — Возвращает глубину изображения
  • Imagick::getImageDispose — Возвращает метод удаления изображения
  • Imagick::getImageDistortion — Сравнивает изображение с восстановленным изображением
  • Imagick::getImageExtrema — Возвращает экстремумы изображения
  • Imagick::getImageFilename — Возвращает имя файла конкретного изображения в последовательности
  • Imagick::getImageFormat — Возвращает формат конкретного изображения в последовательности
  • Imagick::getImageGamma — Возвращает гамму изображения
  • Imagick::getImageGeometry — Возвращает ширину и высоту в виде ассоциативного массива
  • Imagick::getImageGravity — Возвращает значение гравитации (притяжения)
  • Imagick::getImageGreenPrimary — Возвращает первичную точку цветности зелёного
  • Imagick::getImageHeight — Возвращает высоту изображения
  • Imagick::getImageHistogram — Возвращает гистограмму изображения
  • Imagick::getImageIndex — Возвращает индекс текущего активного изображения
  • Imagick::getImageInterlaceScheme — Получает схему чересстрочного изображения
  • Imagick::getImageInterpolateMethod — Возвращает метод интерполяции
  • Imagick::getImageIterations — Возвращает итерации изображения
  • Imagick::getImageLength — Возвращает длину изображения в байтах
  • Imagick::getImageMatte — Возвращает, если изображение содержит матовый канал
  • Imagick::getImageMatteColor — Возвращает матовый цвет изображения
  • Imagick::getImageMimeType — Возвращает MIME-тип изображения
  • Imagick::getImageOrientation — Возвращает ориентацию изображения
  • Imagick::getImagePage — Возвращает геометрию страницы
  • Imagick::getImagePixelColor — Возвращает цвет указанного пикселя
  • Imagick::getImageProfile — Возвращает именованный профиль изображения
  • Imagick::getImageProfiles — Возвращает профили изображений
  • Imagick::getImageProperties — Возвращает свойства изображения
  • Imagick::getImageProperty — Возвращает именованное свойство изображения
  • Imagick::getImageRedPrimary — Возвращает красную первичную точку цветности
  • Imagick::getImageRegion — Извлекает область изображения
  • Imagick::getImageRenderingIntent — Возвращает схему цветопередачи изображения
  • Imagick::getImageResolution — Возвращает разрешение изображения по X и Y
  • Imagick::getImagesBlob — Возвращает все последовательности изображений в виде большого двоичного объекта
  • Imagick::getImageScene — Возвращает сцену изображения
  • Imagick::getImageSignature — Генерирует хеш SHA-256
  • Imagick::getImageSize — Возвращает размер изображения в байтах
  • Imagick::getImageTicksPerSecond — Получает количество кадров в секунду для изображения
  • Imagick::getImageTotalInkDensity — Возвращает общую плотность чернил изображения
  • Imagick::getImageType — Возвращает возможный тип изображения
  • Imagick::getImageUnits — Возвращает единицы измерения разрешения изображения
  • Imagick::getImageVirtualPixelMethod — Возвращает метод виртуального пикселя
  • Imagick::getImageWhitePoint — Возвращает белую точку цветности
  • Imagick::getImageWidth — Возвращает ширину изображения
  • Imagick::getInterlaceScheme — Получает схему сжатия изображения
  • Imagick::getIteratorIndex — Возвращает индекс текущего активного изображения
  • Imagick::getNumberImages — Возвращает количество изображений в объекте
  • Imagick::getOption — Возвращает значение, связанное с указанным ключом
  • Imagick::getPackageName — Возвращает имя пакета ImageMagick
  • Imagick::getPage — Возвращает геометрию страницы
  • Imagick::getPixelIterator — Возвращает MagickPixelIterator
  • Imagick::getPixelRegionIterator — Возвращает объект ImagickPixelIterator для секции изображения
  • Imagick::getPointSize — Возвращает размер точки
  • Imagick::getQuantum — Возвращает квантовый диапазон ImageMagick
  • Imagick::getQuantumDepth — Возвращает величину глубины
  • Imagick::getQuantumRange — Возвращает величину размера спектра Imagick
  • Imagick::getRegistry — Получает запись StringRegistry
  • Imagick::getReleaseDate — Возвращает дату релиза ImageMagick
  • Imagick::getResource — Возвращает размер используемой памяти указанного ресурса
  • Imagick::getResourceLimit — Возвращает заданный лимит ресурсов
  • Imagick::getSamplingFactors — Возвращает горизонтальный и вертикальный фактор выборки
  • Imagick::getSize — Возвращает размер, связанный с объектом Imagick
  • Imagick::getSizeOffset — Возвращает размер смещения
  • Imagick::getVersion — Возвращает версию API ImageMagick
  • Imagick::haldClutImage — Заменяет цвета в изображении
  • Imagick::hasNextImage — Проверяет, содержит ли объект больше изображений
  • Imagick::hasPreviousImage — Проверяет, есть ли у объекта предыдущее изображение
  • Imagick::identifyFormat — Заменяет любые встроенные символы форматирования соответствующим свойством изображения
  • Imagick::identifyImage — Определяет изображение и получает атрибуты
  • Imagick::implodeImage — Создаёт копию изображения
  • Imagick::importImagePixels — Импортирует пиксели изображения
  • Imagick::inverseFourierTransformImage — Реализует дискретное преобразование Фурье
  • Imagick::labelImage — Добавляет метку к изображению
  • Imagick::levelImage — Регулирует уровни изображения
  • Imagick::linearStretchImage — Растягивает с насыщением яркость изображения
  • Imagick::liquidRescaleImage — Анимирует изображение или изображения
  • Imagick::listRegistry — Перечисляет все настройки реестра
  • Imagick::magnifyImage — Пропорционально масштабирует изображение в два раза
  • Imagick::mapImage — Заменяет цвета изображения на ближайший цвет из эталонного изображения
  • Imagick::matteFloodfillImage — Изменяет значение прозрачности цвета
  • Imagick::medianFilterImage — Применяет цифровой фильтр
  • Imagick::mergeImageLayers — Объединяет слои изображения
  • Imagick::minifyImage — Масштабирует изображение пропорционально половине его размера
  • Imagick::modulateImage — Управляйте яркостью, насыщенностью и оттенком
  • Imagick::montageImage — Создаёт составное изображение
  • Imagick::morphImages — Преобразует набор изображений
  • Imagick::morphology — Применяет к изображению ядро, предоставленное пользователем, в соответствии с заданным методом морфологии
  • Imagick::mosaicImages — Формирует мозаику из изображений
  • Imagick::motionBlurImage — Имитирует размытие в движении
  • Imagick::negateImage — Инвертирует цвета в эталонном изображении
  • Imagick::newImage — Создаёт новое изображение
  • Imagick::newPseudoImage — Создаёт новое изображение
  • Imagick::nextImage — Переходит к следующему изображению
  • Imagick::normalizeImage — Повышает контрастность цветного изображения
  • Imagick::oilPaintImage — Имитирует картину маслом
  • Imagick::opaquePaintImage — Изменяет значение цвета любого пикселя, соответствующего целевому
  • Imagick::optimizeImageLayers — Удаляет повторяющиеся части изображений для оптимизации
  • Imagick::orderedPosterizeImage — Выполняет упорядоченный дизеринг
  • Imagick::paintFloodfillImage — Изменяет значение цвета любого пикселя, соответствующего цели
  • Imagick::paintOpaqueImage — Изменяет любой пиксель, соответствующий цвету
  • Imagick::paintTransparentImage — Изменяет любой пиксель, соответствующий цвету, на цвет, определённый заливкой
  • Imagick::pingImage — Получает основные атрибуты изображения
  • Imagick::pingImageBlob — Быстро извлекает атрибуты
  • Imagick::pingImageFile — Получает базовые атрибуты изображения упрощённым способом
  • Imagick::polaroidImage — Имитирует фото Polaroid
  • Imagick::posterizeImage — Уменьшает изображение до ограниченного количества уровней цвета
  • Imagick::previewImages — Быстрое определение подходящих параметров для обработки изображений
  • Imagick::previousImage — Переходит к предыдущему изображению в объекте
  • Imagick::profileImage — Добавляет или удаляет профиль изображения
  • Imagick::quantizeImage — Анализирует цвета эталонного изображения
  • Imagick::quantizeImages — Анализирует цвета в последовательности изображений
  • Imagick::queryFontMetrics — Возвращает массив, представляющий метрики шрифта
  • Imagick::queryFonts — Возвращает настроенные шрифты
  • Imagick::queryFormats — Возвращает форматы, поддерживаемые Imagick
  • Imagick::radialBlurImage — Радиальное размытие изображения
  • Imagick::raiseImage — Создаёт имитацию эффекта 3D-кнопки
  • Imagick::randomThresholdImage — Создаёт высококонтрастное двухцветное изображение
  • Imagick::readImage — Читает изображение из файла
  • Imagick::readImageBlob — Считывает изображение из двоичной строки
  • Imagick::readImageFile — Читает изображение из открытого дескриптора файла
  • Imagick::readimages — Читает изображение из массива имён файлов
  • Imagick::recolorImage — Перекрашивает изображение
  • Imagick::reduceNoiseImage — Сглаживает контуры изображения
  • Imagick::remapImage — Переназначает цвета изображения
  • Imagick::removeImage — Удаляет изображение из списка изображений
  • Imagick::removeImageProfile — Удаляет именованный профиль изображения и возвращает его
  • Imagick::render — Отображает все предыдущие команды рисования
  • Imagick::resampleImage — Преобразует изображение к желаемому разрешению
  • Imagick::resetImagePage — Сбрасывает страницу изображения
  • Imagick::resizeImage — Масштабирует изображение
  • Imagick::rollImage — Смещает изображение
  • Imagick::rotateImage — Поворачивает изображение
  • Imagick::rotationalBlurImage — Применяет вращательное размытие к изображению
  • Imagick::roundCorners — Скругляет углы изображения
  • Imagick::sampleImage — Масштабирует изображение с пиксельной выборкой
  • Imagick::scaleImage — Масштабирует размер изображения
  • Imagick::segmentImage — Сегментирует изображение
  • Imagick::selectiveBlurImage — Выборочное размытие изображения в пределах порогового значения контрастности
  • Imagick::separateImageChannel — Отделяет канал от изображения
  • Imagick::sepiaToneImage — Тонирование изображения сепией
  • Imagick::setBackgroundColor — Устанавливает цвет фона объекта по умолчанию
  • Imagick::setColorspace — Устанавливает цветовое пространство
  • Imagick::setCompression — Устанавливает тип сжатия объекта по умолчанию
  • Imagick::setCompressionQuality — Устанавливает качество сжатия объекта по умолчанию
  • Imagick::setFilename — Устанавливает имя файла перед чтением или записью изображения
  • Imagick::setFirstIterator — Устанавливает итератор Imagick для первого изображения
  • Imagick::setFont — Устанавливает шрифт
  • Imagick::setFormat — Устанавливает формат объекта Imagick
  • Imagick::setGravity — Устанавливает гравитацию
  • Imagick::setImage — Заменяет изображение в объекте
  • Imagick::setImageAlphaChannel — Устанавливает альфа-канал изображения
  • Imagick::setImageArtifact — Устанавливает артефакт изображения
  • Imagick::setImageAttribute — Устанавливает атрибут изображения
  • Imagick::setImageBackgroundColor — Устанавливает цвет фона изображения
  • Imagick::setImageBias — Устанавливает смещение изображения для любого метода, который свёртывает изображение
  • Imagick::setImageBiasQuantum — Устанавливает смещение изображения
  • Imagick::setImageBluePrimary — Устанавливает цветность изображения голубой основной точкой
  • Imagick::setImageBorderColor — Устанавливает цвет рамки изображения
  • Imagick::setImageChannelDepth — Устанавливает глубину определённого канала изображения
  • Imagick::setImageClipMask — Устанавливает маску клипа
  • Imagick::setImageColormapColor — Устанавливает цвет указанного индекса цветовой карты
  • Imagick::setImageColorspace — Устанавливает цветовое пространство изображения
  • Imagick::setImageCompose — Устанавливает оператор составного изображения
  • Imagick::setImageCompression — Устанавливает сжатие изображения
  • Imagick::setImageCompressionQuality — Устанавливает качество сжатия изображения
  • Imagick::setImageDelay — Устанавливает задержку изображения
  • Imagick::setImageDepth — Устанавливает глубину изображения
  • Imagick::setImageDispose — Устанавливает метод удаления изображения
  • Imagick::setImageExtent — Устанавливает размер изображения
  • Imagick::setImageFilename — Устанавливает имя файла конкретного изображения
  • Imagick::setImageFormat — Устанавливает формат определённого изображения
  • Imagick::setImageGamma — Устанавливает гамму изображения
  • Imagick::setImageGravity — Устанавливает гравитацию изображения
  • Imagick::setImageGreenPrimary — Устанавливает цветность изображения зелёной первичной точкой
  • Imagick::setImageIndex — Устанавливает позицию итератора
  • Imagick::setImageInterlaceScheme — Устанавливает сжатие изображения
  • Imagick::setImageInterpolateMethod — Устанавливает метод интерполяции пикселей изображения
  • Imagick::setImageIterations — Устанавливает итерации изображения
  • Imagick::setImageMatte — Устанавливает матовый канал изображения
  • Imagick::setImageMatteColor — Устанавливает матовый цвет изображения
  • Imagick::setImageOpacity — Устанавливает уровень непрозрачности изображения
  • Imagick::setImageOrientation — Устанавливает ориентацию изображения
  • Imagick::setImagePage — Устанавливает геометрию страницы изображения
  • Imagick::setImageProfile — Добавляет именованный профиль к объекту Imagick
  • Imagick::setImageProperty — Устанавливает свойство изображения
  • Imagick::setImageRedPrimary — Устанавливает красную первичную точку цветности изображения
  • Imagick::setImageRenderingIntent — Устанавливает схему цветопередачи изображения
  • Imagick::setImageResolution — Устанавливает разрешение изображения
  • Imagick::setImageScene — Устанавливает сцену изображения
  • Imagick::setImageTicksPerSecond — Устанавливает продолжительность отображения кадра
  • Imagick::setImageType — Устанавливает тип изображения
  • Imagick::setImageUnits — Устанавливает единицы измерения разрешения изображения
  • Imagick::setImageVirtualPixelMethod — Устанавливает метод виртуального пикселя
  • Imagick::setImageWhitePoint — Устанавливает белую точку цветности изображения
  • Imagick::setInterlaceScheme — Устанавливает сжатие изображения
  • Imagick::setIteratorIndex — Устанавливает позицию итератора
  • Imagick::setLastIterator — Устанавливает итератор Imagick к последнему изображению
  • Imagick::setOption — Устанавливает опцию
  • Imagick::setPage — Устанавливает геометрию страницы объекта Imagick
  • Imagick::setPointSize — Устанавливает размер точки
  • Imagick::setProgressMonitor — Устанавливает callback-функцию, которая будет вызываться во время обработки изображения Imagick
  • Imagick::setRegistry — Устанавливает значение для записи реестра ImageMagick с именем key
  • Imagick::setResolution — Устанавливает разрешение изображения
  • Imagick::setResourceLimit — Устанавливает лимит для конкретного ресурса
  • Imagick::setSamplingFactors — Устанавливает коэффициенты выборки изображений
  • Imagick::setSize — Устанавливает размер объекта Imagick
  • Imagick::setSizeOffset — Устанавливает размер и смещение объекта Imagick
  • Imagick::setType — Устанавливает атрибут типа изображения
  • Imagick::shadeImage — Создаёт 3D-эффект
  • Imagick::shadowImage — Имитирует тень изображения
  • Imagick::sharpenImage — Повышает резкость изображения
  • Imagick::shaveImage — Удаляет пиксели по краям изображения
  • Imagick::shearImage — Создаёт параллелограмм
  • Imagick::sigmoidalContrastImage — Регулирует контраст изображения
  • Imagick::sketchImage — Имитирует набросок карандашом
  • Imagick::smushImages — Берёт все изображения из текущего указателя изображения в конец списка изображений и перемещает их
  • Imagick::solarizeImage — Применяет к изображению эффект соляризации
  • Imagick::sparseColorImage — Интерполирует цвета
  • Imagick::spliceImage — Склеивает сплошной цвет в изображение
  • Imagick::spreadImage — Случайно смещает каждый пиксель в блоке
  • Imagick::statisticImage — Модификация изображения с помощью функции статистики
  • Imagick::steganoImage — Скрывает цифровой водяной знак в изображении
  • Imagick::stereoImage — Объединяет два изображения
  • Imagick::stripImage — Снимает изображение всех профилей и комментариев
  • Imagick::subImageMatch — Выполняет поиск фрагмента изображения в текущем изображении и возвращает второстепенное изображение
  • Imagick::swirlImage — Закручивает пиксели вокруг центра изображения
  • Imagick::textureImage — Многократно размещает изображение текстуры
  • Imagick::thresholdImage — Изменяет отдельные пиксели на основе порогового значения
  • Imagick::thumbnailImage — Изменяет размер изображения
  • Imagick::tintImage — Применяет вектор цвета к каждому пикселю изображения
  • Imagick::__toString — Возвращает изображение в виде строки
  • Imagick::transformImage — Удобный метод настройки размера кадрирования и геометрии изображения
  • Imagick::transformImageColorspace — Преобразует изображение в новое цветовое пространство
  • Imagick::transparentPaintImage — Рисует пиксели прозрачными
  • Imagick::transposeImage — Создаёт вертикальное зеркальное отображение
  • Imagick::transverseImage — Создаёт горизонтальное зеркальное отображение
  • Imagick::trimImage — Удаляет края с изображения
  • Imagick::uniqueImageColors — Отбрасывает всё, кроме одного, любого цвета пикселя
  • Imagick::unsharpMaskImage — Резкость изображения
  • Imagick::valid — Проверяет, является ли текущий элемент корректным
  • Imagick::vignetteImage — Добавляет виньетный фильтр к изображению
  • Imagick::waveImage — Применяет волновой фильтр к изображению
  • Imagick::whiteThresholdImage — Закрашивает все пиксели выше порога в белый
  • Imagick::writeImage — Записывает изображение по указанному имени файла
  • Imagick::writeImageFile — Записывает изображение в файл
  • Imagick::writeImages — Записывает изображение или последовательность изображений
  • Imagick::writeImagesFile — Записывает фреймы в файловый дескриптор


Добавляет адаптивный фильтр размытия к изображению

  • « Imagick
  • Imagick::adaptiveResizeImage »
  • PHP Manual
  • Imagick
  • Добавляет адаптивный фильтр размытия к изображению

Imagick::adaptiveBlurImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveBlurImage — Добавляет адаптивный фильтр размытия к изображению

Описание

public 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() - Имитирует размытие в движении
  • Imagick::radialBlurImage() - Радиальное размытие изображения


Адаптивное изменение размера изображения с данными триангуляции

  • « Imagick::adaptiveBlurImage
  • Imagick::adaptiveSharpenImage »
  • PHP Manual
  • Imagick
  • Адаптивное изменение размера изображения с данными триангуляции

Imagick::adaptiveResizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveResizeImage — Адаптивное изменение размера изображения с данными триангуляции

Описание

public 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 в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Добавлен необязательный параметр подгонки.
PECL imagick 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() - Пропорционально масштабирует изображение в два раза
  • Imagick::minifyImage() - Масштабирует изображение пропорционально половине его размера
  • Imagick::resizeImage() - Масштабирует изображение
  • Imagick::scaleImage() - Масштабирует размер изображения
  • Imagick::shaveImage() - Удаляет пиксели по краям изображения
  • Imagick::thumbnailImage() - Изменяет размер изображения
  • Imagick::trimImage() - Удаляет края с изображения


Адаптивное изменение резкости изображения

  • « Imagick::adaptiveResizeImage
  • Imagick::adaptiveThresholdImage »
  • PHP Manual
  • Imagick
  • Адаптивное изменение резкости изображения

Imagick::adaptiveSharpenImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveSharpenImage — Адаптивное изменение резкости изображения

Описание

public 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() - Повышает резкость изображения


Выбор порога для каждого пикселя в зависимости от диапазона интенсивности

  • « Imagick::adaptiveSharpenImage
  • Imagick::addImage »
  • PHP Manual
  • Imagick
  • Выбор порога для каждого пикселя в зависимости от диапазона интенсивности

Imagick::adaptiveThresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::adaptiveThresholdImage — Выбор порога для каждого пикселя в зависимости от диапазона интенсивности

Описание

public 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, PECL imagick 3)

Imagick::addImage — Добавляет новое изображение к списку изображений объекта Imagick

Описание

public Imagick::addImage(Imagick $source): bool

Добавляет новое изображение к объекту Imagick из текущего положения исходного объекта. После этой операции перемещается позиция итератора в конец списка.

Список параметров

source

Исходный объект Imagick

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Накладывает случайный шум на изображение

  • « Imagick::addImage
  • Imagick::affineTransformImage »
  • PHP Manual
  • Imagick
  • Накладывает случайный шум на изображение

Imagick::addNoiseImage

(PECL imagick 2, PECL imagick 3)

Imagick::addNoiseImage — Накладывает случайный шум на изображение

Описание

public 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, PECL imagick 3)

Imagick::affineTransformImage — Преобразование изображения

Описание

public Imagick::affineTransformImage(ImagickDraw $matrix): bool

Преобразование изображения с помощью аффинной матрицы.

Список параметров

matrix

Аффинная матрица

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::affineTransformImage()

<?php
function affineTransformImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$draw = new \ImagickDraw();

$angle = deg2rad(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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::animateImages — Анимация одного или нескольких изображений

Описание

public 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, PECL imagick 3)

Imagick::annotateImage — Добавляет текстовый комментарий на изображение

Описание

public 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() - Рисует текст на картинке
  • ImagickDraw::setFont() - Устанавливает указанный шрифт для использования при аннотировании текстом


Объединяет набор изображений

  • « Imagick::annotateImage
  • Imagick::autoLevelImage »
  • PHP Manual
  • Imagick
  • Объединяет набор изображений

Imagick::appendImages

(PECL imagick 2, PECL imagick 3)

Imagick::appendImages — Объединяет набор изображений

Описание

public 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()


Настраивает уровни определённого канала изображения

  • « Imagick::appendImages
  • Imagick::averageImages »
  • PHP Manual
  • Imagick
  • Настраивает уровни определённого канала изображения

Imagick::autoLevelImage

(PECL imagick 3 >= 3.3.0)

Imagick::autoLevelImage — Настраивает уровни определённого канала изображения

Описание

public Imagick::autoLevelImage(int $channel = Imagick::CHANNEL_DEFAULT): bool

Настраивает уровни определённого канала изображения, масштабируя минимальное и максимальное значения до полного квантового диапазона.

Список параметров

channel

На каком канале следует выполнить автоматическое выравнивание.

Возвращаемые значения

В случае успешной работы возвращает 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, PECL imagick 3)

Imagick::averageImages — Усредняет набор изображений

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::averageImages(): Imagick

Усредняет набор изображений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает объект Imagick.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Перевести все пиксели ниже порогового значения в чёрный цвет

  • « Imagick::averageImages
  • Imagick::blueShiftImage »
  • PHP Manual
  • Imagick
  • Перевести все пиксели ниже порогового значения в чёрный цвет

Imagick::blackThresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::blackThresholdImage — Перевести все пиксели ниже порогового значения в чёрный цвет

Описание

public Imagick::blackThresholdImage(mixed $threshold): bool

Работает так же, как Imagick::thresholdImage(), но изменяются только пиксели ниже порогового значения, в то время как остальные пиксели остаются неизменными.

Список параметров

threshold

Пороговое значение ниже которого все пиксели станут чёрными

Возвращаемые значения

В случае успешной работы возвращает true.

Список изменений

Версия | Описание
PECL imagick 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();
}

?>


Приглушает цвета изображения

  • « Imagick::blackThresholdImage
  • Imagick::blurImage »
  • PHP Manual
  • Imagick
  • Приглушает цвета изображения

Imagick::blueShiftImage

(PECL imagick 3 >= 3.3.0)

Imagick::blueShiftImage — Приглушает цвета изображения

Описание

public Imagick::blueShiftImage(float $factor = 1.5): bool

Приглушает цвета изображения для имитации сцены в ночное время при лунном свете.

Список параметров

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, PECL imagick 3)

Imagick::blurImage — Добавляет фильтр размытия к изображению

Описание

public 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() - Имитирует размытие в движении
  • Imagick::radialBlurImage() - Радиальное размытие изображения


Окружает изображение рамкой

  • « Imagick::blurImage
  • Imagick::brightnessContrastImage »
  • PHP Manual
  • Imagick
  • Окружает изображение рамкой

Imagick::borderImage

(PECL imagick 2, PECL imagick 3)

Imagick::borderImage — Окружает изображение рамкой

Описание

public Imagick::borderImage(mixed $bordercolor, int $width, int $height): bool

Окружает изображение рамкой с цветом, установленным в объекте ImagickPixel.

Список параметров

bordercolor

Объект ImagickPixel или строка, содержащая цвет рамки

width

Ширина рамки

height

Высота рамки

Возвращаемые значения

В случае успешной работы возвращает true.

Список изменений

Версия | Описание
PECL imagick 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();
}

?>


Изменяет яркость и/или контраст изображения

  • « Imagick::borderImage
  • Imagick::charcoalImage »
  • PHP Manual
  • Imagick
  • Изменяет яркость и/или контраст изображения

Imagick::brightnessContrastImage

(PECL imagick 3 >= 3.3.0)

Imagick::brightnessContrastImage — Изменяет яркость и/или контраст изображения

Описание

public Imagick::brightnessContrastImage(float $brightness, float $contrast, int $channel = Imagick::CHANNEL_DEFAULT): bool

Изменяет яркость и/или контраст изображения. Преобразует параметры яркости и контрастности в наклон и пересечение и вызывает полиномическую функцию для применения к изображению.

Список параметров

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, PECL imagick 3)

Imagick::charcoalImage — Рисование углём

Описание

public 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, PECL imagick 3)

Imagick::chopImage — Удаляет область изображения и обрезает его

Описание

public 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() - Извлекает область изображения


Ограничивает диапазон цветов от 0 до квантовой глубины

  • « Imagick::chopImage
  • Imagick::clear »
  • PHP Manual
  • Imagick
  • Ограничивает диапазон цветов от 0 до квантовой глубины

Imagick::clampImage

(PECL imagick 3 >= 3.3.0)

Imagick::clampImage — Ограничивает диапазон цветов от 0 до квантовой глубины

Описание

public Imagick::clampImage(int $channel = Imagick::CHANNEL_DEFAULT): bool

Ограничивает диапазон цветов от 0 до квантовой глубины.

Список параметров

channel

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Очищает все ресурсы, связанные с объектом Imagick

  • « Imagick::clampImage
  • Imagick::clipImage »
  • PHP Manual
  • Imagick
  • Очищает все ресурсы, связанные с объектом Imagick

Imagick::clear

(PECL imagick 2, PECL imagick 3)

Imagick::clear — Очищает все ресурсы, связанные с объектом Imagick

Описание

public Imagick::clear(): bool

Очищает все ресурсы, связанные с объектом Imagick

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Обрезка вдоль ближайшего контура с профилем 8BIM

  • « Imagick::clear
  • Imagick::clipImagePath »
  • PHP Manual
  • Imagick
  • Обрезка вдоль ближайшего контура с профилем 8BIM

Imagick::clipImage

(PECL imagick 2, PECL imagick 3)

Imagick::clipImage — Обрезка вдоль ближайшего контура с профилем 8BIM

Описание

public Imagick::clipImage(): bool

Обрезка вдоль ближайшего контура с профилем 8BIM, если он предоставлен.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Клипы вдоль именованных путей из профиля 8BIM, если они есть

  • « Imagick::clipImage
  • Imagick::clipPathImage »
  • PHP Manual
  • Imagick
  • Клипы вдоль именованных путей из профиля 8BIM, если они есть

Imagick::clipImagePath

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::clipImagePath — Клипы вдоль именованных путей из профиля 8BIM, если они есть

Описание

public Imagick::clipImagePath(string $pathname, string $inside): void

Клипы вдоль именованных путей из профиля 8BIM, если они есть. Более поздние операции вступают в силу внутри пути. Идентификатор может быть числом, если ему предшествует # для работы с пронумерованным путём, например, укажите "#1", чтобы использовать первый путь.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pathname

inside

Возвращаемые значения


Отсечь вдоль обозначенного контура с профилем 8BIM

  • « Imagick::clipImagePath
  • Imagick::clone »
  • PHP Manual
  • Imagick
  • Отсечь вдоль обозначенного контура с профилем 8BIM

Imagick::clipPathImage

(PECL imagick 2, PECL imagick 3)

Imagick::clipPathImage — Отсечь вдоль обозначенного контура с профилем 8BIM

Описание

public 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, PECL imagick 3)

Imagick::clone — Создаёт точную копию объекта Imagick

Описание

public Imagick::clone(): Imagick

Создаёт точную копию объекта Imagick.

Внимание

Функция устарела (DEPRECATED) с imagick версии 3.1.0, взамен неё используйте ключевое слово clone.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Будет возвращена копия объекта Imagick.

Список изменений

Версия | Описание
PECL 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::clone
  • Imagick::coalesceImages »
  • PHP Manual
  • Imagick
  • Заменяет цвета в изображении

Imagick::clutImage

(PECL imagick 2, PECL imagick 3)

Imagick::clutImage — Заменяет цвета в изображении

Описание

public 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() - Имитирует размытие в движении
  • Imagick::radialBlurImage() - Радиальное размытие изображения


Компонует набор изображений

  • « Imagick::clutImage
  • Imagick::colorFloodfillImage »
  • PHP Manual
  • Imagick
  • Компонует набор изображений

Imagick::coalesceImages

(PECL imagick 2, PECL imagick 3)

Imagick::coalesceImages — Компонует набор изображений

Описание

public Imagick::coalesceImages(): Imagick

Скомпонованный набор изображений с соблюдением любых смещений страниц и методов удаления. Анимационные последовательности GIF, MIFF и MNG обычно начинаются с фона изображения, и каждое последующее изображение изменяется по размеру и смещению. Возвращает новый объект Imagick, где каждое изображение в последовательности имеет тот же размер, что и первое и скомпоновано со следующим изображением в последовательности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает новый объект Imagick в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Изменяет значение цвета любого пикселя, соответствующего целевому

  • « Imagick::coalesceImages
  • Imagick::colorizeImage »
  • PHP Manual
  • Imagick
  • Изменяет значение цвета любого пикселя, соответствующего целевому

Imagick::colorFloodfillImage

(PECL imagick 2, PECL imagick 3)

Imagick::colorFloodfillImage — Изменяет значение цвета любого пикселя, соответствующего целевому

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::colorFloodfillImage(
mixed $fill,
float $fuzz,
mixed $bordercolor,
int $x,
int $y
): bool

Изменяет значение цвета любого пикселя, соответствующего целевому и являющегося ближайшим соседом.

Список параметров

fill

Объект ImagickPixel, содержащий цвет заливки.

fuzz

Мера округления (fuzz). Например, присвойте fuzz значение, равное 10, и красный цвет с интенсивностью 100 и 102 соответственно теперь будет интерпретироваться как один и тот же цвет для целей заливки.

bordercolor

Объект ImagickPixel, содержащий цвет границы.

x

Начальная позиция заливки по X.

y

Начальная позиция заливки по Y.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь позволяет использовать представляющую цвет строку в качестве первого и третьего параметров. Предыдущие версии позволяли использовать только объект ImagickPixel.


Смешивание цвета заливки с изображением

  • « Imagick::colorFloodfillImage
  • Imagick::colorMatrixImage »
  • PHP Manual
  • Imagick
  • Смешивание цвета заливки с изображением

Imagick::colorizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::colorizeImage — Смешивание цвета заливки с изображением

Описание

public Imagick::colorizeImage(mixed $colorize, mixed $opacity, bool $legacy = false): bool

Смешивает цвет заливки с каждым пикселем изображения.

Список параметров

colorize

Объект ImagickPixel или строка, содержащая цвет

opacity

Объект ImagickPixel или дробное число, содержащее значение прозрачности. 1.0 означает без прозрачности, 0.0 означает полную прозрачность.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 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();
}

?>


Применяет преобразование цвета к изображению

  • « Imagick::colorizeImage
  • Imagick::combineImages »
  • PHP Manual
  • Imagick
  • Применяет преобразование цвета к изображению

Imagick::colorMatrixImage

(PECL imagick 3 >= 3.3.0)

Imagick::colorMatrixImage — Применяет преобразование цвета к изображению

Описание

public Imagick::colorMatrixImage(array $color_matrix = Imagick::CHANNEL_DEFAULT): bool

Применяет преобразование цвета к изображению. Этот метод позволяет изменять насыщенность, вращение оттенка, яркость альфа-канала и другие эффекты. Хотя можно использовать матрицы преобразования переменного размера, обычно используется матрица 5x5 для изображения RGBA и матрица 6x6 для CMYKA (или RGBA со смещениями). Матрица аналогична матрицам, которые используются в Adobe Flash, за исключением того, что смещения указаны в столбце 6, а не 5 (для поддержки изображений CMYKA), а смещения нормализованы (смещение Flash делится на 255).

Список параметров

color_matrix

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::colorMatrixImage()

<?php
function colorMatrixImage($imagePath, $colorMatrix) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageOpacity(1);

//Цветовая матрица должна выглядеть так:
// $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();
}

?>


Объединяет одно или несколько изображений в одно изображение

  • « Imagick::colorMatrixImage
  • Imagick::commentImage »
  • PHP Manual
  • Imagick
  • Объединяет одно или несколько изображений в одно изображение

Imagick::combineImages

(PECL imagick 2, PECL imagick 3)

Imagick::combineImages — Объединяет одно или несколько изображений в одно изображение

Описание

public Imagick::combineImages(int $channelType): Imagick

Объединяет одно или несколько изображений в одно изображение. Значение оттенков серого пикселей каждого изображения в последовательности присваивается по порядку указанным каналам объединённого изображения. Типичный порядок: изображение 1 => красный, 2 => зелёный, 3 => синий и т.д.

Список параметров

channelType

Укажите любую константу CHANNEL, которая подходит для вашего режима канала. Для применения более чем к одному каналу объедините константы типа CHANNEL с помощью побитовых операторов. Обратитесь к этому списку констант CHANNEL.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Добавляет комментарий к вашему изображению

  • « Imagick::combineImages
  • Imagick::compareImageChannels »
  • PHP Manual
  • Imagick
  • Добавляет комментарий к вашему изображению

Imagick::commentImage

(PECL imagick 2, PECL imagick 3)

Imagick::commentImage — Добавляет комментарий к вашему изображению

Описание

public Imagick::commentImage(string $comment): bool

Добавляет комментарий к вашему изображению.

Список параметров

comment

Комментарий для добавления

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::commentImage():

Комментирование изображения и получение комментария:

<?php

/* Создать новый объект Imagick */
$im = new imagick();

/* Создать пустое изображение */
$im->newImage(100, 100, new ImagickPixel("red"));

/* Добавить комментарий к изображению */
$im->commentImage("Привет, Мир!");

/* Показать комментарий */
echo $im->getImageProperty("comment");

?>


Возвращает разницу в одном или нескольких изображениях

  • « Imagick::commentImage
  • Imagick::compareImageLayers »
  • PHP Manual
  • Imagick
  • Возвращает разницу в одном или нескольких изображениях

Imagick::compareImageChannels

(PECL imagick 2, PECL imagick 3)

Imagick::compareImageChannels — Возвращает разницу в одном или нескольких изображениях

Описание

public Imagick::compareImageChannels(Imagick $image, int $channelType, int $metricType): array

Сравнивает одно или несколько изображений и возвращает разностное изображение.

Список параметров

image

Объект Imagick, содержащий изображение для сравнения.

channelType

Укажите любую константу CHANNEL, которая подходит для вашего режима канала. Для применения более чем к одному каналу объедините константы типа CHANNEL с помощью побитовых операторов. Обратитесь к этому списку констант CHANNEL.

metricType

Одна из констант типа METRIC.

Возвращаемые значения

Массив, состоящий из new_wand и distortion.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает максимальную ограничивающую область между изображениями

  • « Imagick::compareImageChannels
  • Imagick::compareImages »
  • PHP Manual
  • Imagick
  • Возвращает максимальную ограничивающую область между изображениями

Imagick::compareImageLayers

(PECL imagick 2, PECL imagick 3)

Imagick::compareImageLayers — Возвращает максимальную ограничивающую область между изображениями

Описание

public Imagick::compareImageLayers(int $method): Imagick

Сравнивает каждое изображение со следующим в последовательности и возвращает максимальную ограничивающую область любых обнаруженных различий пикселей. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

method

Одна из констант метода слоя.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::compareImageLayers()

Сравнение слоёв изображения

<?php
/* создание новый объект imagick */
$im = new Imagick("test.gif");

/* оптимизирование слои изображения */
$result = $im->compareImageLayers(imagick::LAYERMETHOD_COALESCE);

/* работа с $result */
?>

Смотрите также

  • Imagick::optimizeImageLayers() - Удаляет повторяющиеся части изображений для оптимизации
  • Imagick::writeImages() - Записывает изображение или последовательность изображений
  • Imagick::writeImage() - Записывает изображение по указанному имени файла


Сравнивает изображение с восстановленным изображением

  • « Imagick::compareImageLayers
  • Imagick::compositeImage »
  • PHP Manual
  • Imagick
  • Сравнивает изображение с восстановленным изображением

Imagick::compareImages

(PECL imagick 2, PECL imagick 3)

Imagick::compareImages — Сравнивает изображение с восстановленным изображением

Описание

public Imagick::compareImages(Imagick $compare, int $metric): array

Возвращает массив, содержащий восстановленное изображение и разницу между изображениями.

Список параметров

compare

Изображение для сравнения.

metric

Укажите допустимую константу типа метрики. Смотрите список констант метрики.

Возвращаемые значения

Возвращает массив, содержащий восстановленное изображение и разницу между изображениями.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::compareImages():

Сравнение изображения и отображение восстановленного изображения

<?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];

?>


Накладывает одно изображение на другое

  • « Imagick::compareImages
  • Imagick::__construct »
  • PHP Manual
  • Imagick
  • Накладывает одно изображение на другое

Imagick::compositeImage

(PECL imagick 2, PECL imagick 3)

Imagick::compositeImage — Накладывает одно изображение на другое

Описание

public Imagick::compositeImage(
Imagick $composite_object,
int $composite,
int $x,
int $y,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Накладывает одно изображение на другое с указанным смещением. Любые дополнительные аргументы, необходимые для алгоритма наложения, следует передавать в setImageArtifact с 'compose:args' в качестве первого параметра и данных в качестве второго параметра.

Список параметров

composite_object

Объект Imagick, содержащий накладываемое изображение.

compose

Оператор наложения. Смотрите Константы оператора наложения.

x

Смещение столбца накладываемого изображения.

y

Смещение строки накладываемого изображения.

channel

Укажите любую константу CHANNEL, которая подходит для вашего режима канала. Для применения более чем к одному каналу объедините константы типа CHANNEL с помощью побитовых операторов. Обратитесь к этому списку констант CHANNEL.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::compositeImage():

Наложение двух изображений с помощью 'математического' метода наложения

<?php

// Эквивалентно запуску команды
// 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() - Устанавливает артефакт изображения


Конструктор объекта Imagick

  • « Imagick::compositeImage
  • Imagick::contrastImage »
  • PHP Manual
  • Imagick
  • Конструктор объекта Imagick

Imagick::__construct

(PECL imagick 2, PECL imagick 3)

Imagick::__construct — Конструктор объекта Imagick

Описание

public Imagick::__construct(mixed $files = ?)

Создаёт экземпляр Imagick для отдельного изображения или группы изображений.

Список параметров

files

Путь к изображению для загрузки или массив таких путей. Пути могут содержать групповые символы для имён файлов или могут являться URL.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Изменяет контраст изображения

  • « Imagick::__construct
  • Imagick::contrastStretchImage »
  • PHP Manual
  • Imagick
  • Изменяет контраст изображения

Imagick::contrastImage

(PECL imagick 2, PECL imagick 3)

Imagick::contrastImage — Изменяет контраст изображения

Описание

public Imagick::contrastImage(bool $sharpen): bool

Увеличивает разницу в интенсивности между светлыми и тёмными элементами изображения. Установите увеличение резкости на значение, отличное от 0, чтобы увеличить контраст изображения, в противном случае контраст уменьшается.

Список параметров

sharpen

Значение резкости

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Повышает контрастность цветного изображения

  • « Imagick::contrastImage
  • Imagick::convolveImage »
  • PHP Manual
  • Imagick
  • Повышает контрастность цветного изображения

Imagick::contrastStretchImage

(PECL imagick 2, PECL imagick 3)

Imagick::contrastStretchImage — Повышает контрастность цветного изображения

Описание

public Imagick::contrastStretchImage(float $black_point, float $white_point, int $channel = Imagick::CHANNEL_DEFAULT): bool

Повышает контрастность цветного изображения, регулируя цвет пикселей для охвата всего диапазона доступных цветов. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

black_point

Чёрная точка.

white_point

Белая точка.

channel

Укажите любую константу CHANNEL, которая подходит для вашего режима канала. Для применения более чем к одному каналу объедините константы типа CHANNEL с помощью побитовых операторов. Imagick::CHANNEL_ALL. Обратитесь к этому списку констант CHANNEL.

Возвращаемые значения

В случае успешной работы возвращает true.


Применяет пользовательское ядро свёртки к изображению

  • « Imagick::contrastStretchImage
  • Imagick::count »
  • PHP Manual
  • Imagick
  • Применяет пользовательское ядро свёртки к изображению

Imagick::convolveImage

(PECL imagick 2, PECL imagick 3)

Imagick::convolveImage — Применяет пользовательское ядро свёртки к изображению

Описание

public Imagick::convolveImage(array $kernel, int $channel = Imagick::CHANNEL_DEFAULT): bool

Применяет пользовательское ядро свёртки к изображению.

Список параметров

kernel

Ядро свёртки.

channel

Укажите любую константу CHANNEL, которая подходит для вашего режима канала. Для применения более чем к одному каналу объедините константы типа CHANNEL с помощью побитовых операторов.Обратитесь к этому списку констант CHANNEL.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Получает количество изображений

  • « Imagick::convolveImage
  • Imagick::cropImage »
  • PHP Manual
  • Imagick
  • Получает количество изображений

Imagick::count

(PECL imagick 3 >= 3.3.0)

Imagick::count — Получает количество изображений

Описание

public Imagick::count(int $mode = 0): int

Возвращает количество изображений.

Список параметров

mode

Неиспользуемый аргумент. В настоящее время в PHP есть не очень чётко определённая функция, где вызов count() для счётного объекта может (или не может) требовать, чтобы метод принял параметр. Параметр должен соответствовать интерфейсу счётного, даже если он не используется.

Возвращаемые значения

Возвращает количество изображений.


Извлекает область изображения

  • « Imagick::count
  • Imagick::cropThumbnailImage »
  • PHP Manual
  • Imagick
  • Извлекает область изображения

Imagick::cropImage

(PECL imagick 2, PECL imagick 3)

Imagick::cropImage — Извлекает область изображения

Описание

public 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();
}

?>


Создаёт обрезанную миниатюру

  • « Imagick::cropImage
  • Imagick::current »
  • PHP Manual
  • Imagick
  • Создаёт обрезанную миниатюру

Imagick::cropThumbnailImage

(PECL imagick 2, PECL imagick 3)

Imagick::cropThumbnailImage — Создаёт обрезанную миниатюру

Описание

public Imagick::cropThumbnailImage(int $width, int $height, bool $legacy = false): bool

Создаёт миниатюру фиксированного размера, сначала масштабируя изображение вверх или вниз и обрезая указанную область от центра.

Список параметров

width

Ширина миниатюры

height

Высота миниатюры

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает ссылку на текущий объект Imagick

  • « Imagick::cropThumbnailImage
  • Imagick::cycleColormapImage »
  • PHP Manual
  • Imagick
  • Возвращает ссылку на текущий объект Imagick

Imagick::current

(PECL imagick 2, PECL imagick 3)

Imagick::current — Возвращает ссылку на текущий объект Imagick

Описание

public Imagick::current(): Imagick

Возвращает ссылку на текущий объект imagick с указателем на изображение в правильной последовательности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает себя в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Отображает цветовую карту изображения

  • « Imagick::current
  • Imagick::decipherImage »
  • PHP Manual
  • Imagick
  • Отображает цветовую карту изображения

Imagick::cycleColormapImage

(PECL imagick 2, PECL imagick 3)

Imagick::cycleColormapImage — Отображает цветовую карту изображения

Описание

public Imagick::cycleColormapImage(int $displace): bool

Смещает цветовую карту изображения на заданное количество позиций. Если вы циклически изменяете цветовую карту несколько раз, вы можете произвести психоделический эффект.

Список параметров

displace

Количество для смещения цветовой карты.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Расшифровывает изображение

  • « Imagick::cycleColormapImage
  • Imagick::deconstructImages »
  • PHP Manual
  • Imagick
  • Расшифровывает изображение

Imagick::decipherImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::decipherImage — Расшифровывает изображение

Описание

public Imagick::decipherImage(string $passphrase): bool

Расшифровывает изображение, которое было зашифровано ранее. Изображение должно быть зашифровано с использованием Imagick::encipherImage(). Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.9 или старше.

Список параметров

passphrase

Пароль

Возвращаемые значения

В случае успешной работы возвращает true.

Смотрите также

  • Imagick::encipherImage() - Шифрует изображение


Возвращает определённые пиксельные различия между изображениями

  • « Imagick::decipherImage
  • Imagick::deleteImageArtifact »
  • PHP Manual
  • Imagick
  • Возвращает определённые пиксельные различия между изображениями

Imagick::deconstructImages

(PECL imagick 2, PECL imagick 3)

Imagick::deconstructImages — Возвращает определённые пиксельные различия между изображениями

Описание

public Imagick::deconstructImages(): Imagick

Сравнивает каждое изображение со следующим в последовательности и возвращает максимальную ограничивающую область любых обнаруженных различий пикселей.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает новый объект Imagick в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Удаляет артефакт изображения

  • « Imagick::deconstructImages
  • Imagick::deleteImageProperty »
  • PHP Manual
  • Imagick
  • Удаляет артефакт изображения

Imagick::deleteImageArtifact

(PECL imagick 3)

Imagick::deleteImageArtifact — Удаляет артефакт изображения

Описание

public Imagick::deleteImageArtifact(string $artifact): bool

Удаляет артефакт, связанный с изображением. Разница между свойствами изображения и артефактами изображения заключается в том, что свойства являются общедоступными, а артефакты - частными. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Список параметров

artifact

Название артефакта для удаления

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Смотрите также

  • Imagick::setImageArtifact() - Устанавливает артефакт изображения
  • Imagick::getImageArtifact() - Возвращает артефакт изображения


Удаляет свойство изображения

  • « Imagick::deleteImageArtifact
  • Imagick::deskewImage »
  • PHP Manual
  • Imagick
  • Удаляет свойство изображения

Imagick::deleteImageProperty

(PECL imagick 3 >= 3.3.0)

Imagick::deleteImageProperty — Удаляет свойство изображения

Описание

public Imagick::deleteImageProperty(string $name): bool

Удаляет свойство изображения.

Список параметров

name

Имя свойства для удаления.

Возвращаемые значения

В случае успешной работы возвращает true.


Удаляет перекос с изображения

  • « Imagick::deleteImageProperty
  • Imagick::despeckleImage »
  • PHP Manual
  • Imagick
  • Удаляет перекос с изображения

Imagick::deskewImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.3.0)

Imagick::deskewImage — Удаляет перекос с изображения

Описание

public Imagick::deskewImage(float $threshold): bool

Метод можно использовать для удаления перекоса, например, отсканированных изображений, если бумага не была правильно размещена на поверхности сканирования. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

threshold

Размер перекоса

Возвращаемые значения

Примеры

Пример #1 Пример использования Imagick::deskewImage()

<?php
function deskewImage($threshold) {
$imagick = new \Imagick(realpath("images/NYTimes-Page1-11-11-1918.jpg"));
$deskewImagick = clone $imagick;

//Это единственное, что требуется для удаления перекоса.
$deskewImagick->deskewImage($threshold);

//Остальная часть этого примера - сделать результат очевидным,
//потому что в противном случае результат не очевиден.
$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();
}

?>


Уменьшает спекл-шум на изображении

  • « Imagick::deskewImage
  • Imagick::destroy »
  • PHP Manual
  • Imagick
  • Уменьшает спекл-шум на изображении

Imagick::despeckleImage

(PECL imagick 2, PECL imagick 3)

Imagick::despeckleImage — Уменьшает спекл-шум на изображении

Описание

public Imagick::despeckleImage(): bool

Уменьшает спекл-шум на изображении, сохраняя края исходного изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает 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, PECL imagick 3)

Imagick::destroy — Удаляет объект Imagick

Описание

public Imagick::destroy(): bool

Удаляет объект Imagick и освобождает все ресурсы связанные с ним. Метод устарел и следует использовать Imagick::clear.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Выводит изображение

  • « Imagick::destroy
  • Imagick::displayImages »
  • PHP Manual
  • Imagick
  • Выводит изображение

Imagick::displayImage

(PECL imagick 2, PECL imagick 3)

Imagick::displayImage — Выводит изображение

Описание

public Imagick::displayImage(string $servername): bool

Данный метод выводит изображение на X сервер.

Список параметров

servername

Имя X сервера

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Выводит изображение или последовательность изображений

  • « Imagick::displayImage
  • Imagick::distortImage »
  • PHP Manual
  • Imagick
  • Выводит изображение или последовательность изображений

Imagick::displayImages

(PECL imagick 2, PECL imagick 3)

Imagick::displayImages — Выводит изображение или последовательность изображений

Описание

public Imagick::displayImages(string $servername): bool

Выводит изображение или последовательность изображений на X сервер.

Список параметров

servername

Имя X сервера

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Искажает изображение, используя различные методы искажения

  • « Imagick::displayImages
  • Imagick::drawImage »
  • PHP Manual
  • Imagick
  • Искажает изображение, используя различные методы искажения

Imagick::distortImage

(PECL imagick 2 >= 2.0.1, PECL imagick 3)

Imagick::distortImage — Искажает изображение, используя различные методы искажения

Описание

public Imagick::distortImage(int $method, array $arguments, bool $bestfit): bool

Искажает изображение, используя различные методы искажения, сопоставляя поисковые запросы цвета исходного изображения с новым целевым изображением, обычно того же размера, что и исходное изображение, если для параметра "bestfit" установлено значение true.

Если параметр "bestfit" включён и это позволяет искажение, целевое изображение настраивается таким образом, чтобы исходное изображение полностью соответствовало конечному целевому изображению, которое будет иметь соответствующий размер и смещение. Также во многих случаях при сопоставлении будет учитываться виртуальное смещение исходного изображения.

Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

method

Метод искажения изображения. Смотрите константы искажения.

arguments

Аргументы для выбранного метода искажения.

bestfit

Попытка изменить размер места назначения, чтобы он соответствовал искажённому источнику.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::distortImage():

Искажение изображения и отображение в браузере.

<?php
/* Создание нового объекта */
$im = new Imagick();

/* Создание нового узора в виде шахматной доски */
$im->newPseudoImage(100, 100, "pattern:checkerboard");

/* Установка формата изображения на png */
$im->setImageFormat('png');

/* Заполнение новых видимых областей прозрачным цветом */
$im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);

/* Активация матовости */
$im->setImageMatte(true);

/* Контрольные точки для искажения */
$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);

/* Выполнение искажения */
$im->distortImage(Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true);

/* Вывод изображения */
header("Content-Type: image/png");
echo $im;
?>

Результатом выполнения данного примера будет что-то подобное:

Пример использования Imagick::distortImage()

Смотрите также

  • Imagick::blurImage() - Добавляет фильтр размытия к изображению
  • Imagick::motionBlurImage() - Имитирует размытие в движении
  • Imagick::radialBlurImage() - Радиальное размытие изображения


Выполняет рендеринг объекта ImagickDraw на текущем изображении

  • « Imagick::distortImage
  • Imagick::edgeImage »
  • PHP Manual
  • Imagick
  • Выполняет рендеринг объекта ImagickDraw на текущем изображении

Imagick::drawImage

(PECL imagick 2, PECL imagick 3)

Imagick::drawImage — Выполняет рендеринг объекта ImagickDraw на текущем изображении

Описание

public Imagick::drawImage(ImagickDraw $draw): bool

Выполняет рендеринг объекта ImagickDraw на текущем изображении.

Список параметров

draw

Операции рисования, выполняемые к изображению.

Возвращаемые значения

В случае успешной работы возвращает true.


Усиливает края в изображении

  • « Imagick::drawImage
  • Imagick::embossImage »
  • PHP Manual
  • Imagick
  • Усиливает края в изображении

Imagick::edgeImage

(PECL imagick 2, PECL imagick 3)

Imagick::edgeImage — Усиливает края в изображении

Описание

public Imagick::edgeImage(float $radius): bool

Увеличивает края в изображении с помощью фильтра свёртки данного радиуса. Используйте радиус 0, и он будет выбран автоматически.

Список параметров

radius

Радиус операции.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Возвращает изображение в градациях серого с трёхмерным эффектом

  • « Imagick::edgeImage
  • Imagick::encipherImage »
  • PHP Manual
  • Imagick
  • Возвращает изображение в градациях серого с трёхмерным эффектом

Imagick::embossImage

(PECL imagick 2, PECL imagick 3)

Imagick::embossImage — Возвращает изображение в градациях серого с трёхмерным эффектом

Описание

public Imagick::embossImage(float $radius, float $sigma): bool

Возвращает изображение в градациях серого с трёхмерным эффектом. Мы сворачиваем изображение с помощью гауссовского оператора заданного радиуса и стандартного отклонения (сигма). Для получения разумных результатов радиус должен быть больше сигмы. Используйте радиус 0, и он будет выбран автоматически.

Список параметров

radius

Радиус эффекта

sigma

Сигма эффекта

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Шифрует изображение

  • « Imagick::embossImage
  • Imagick::enhanceImage »
  • PHP Manual
  • Imagick
  • Шифрует изображение

Imagick::encipherImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::encipherImage — Шифрует изображение

Описание

public Imagick::encipherImage(string $passphrase): bool

Преобразует обычные пиксели в зашифрованные пиксели. Изображение не читается, пока не будет расшифровано с помощью Imagick::decipherImage() Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.9 или старше.

Список параметров

passphrase

Пароль

Возвращаемые значения

В случае успешной работы возвращает true.

Смотрите также

  • Imagick::decipherImage() - Расшифровывает изображение


Улучшает качество шумного изображения

  • « Imagick::encipherImage
  • Imagick::equalizeImage »
  • PHP Manual
  • Imagick
  • Улучшает качество шумного изображения

Imagick::enhanceImage

(PECL imagick 2, PECL imagick 3)

Imagick::enhanceImage — Улучшает качество шумного изображения

Описание

public Imagick::enhanceImage(): bool

Применяет цифровой фильтр, который улучшает качество изображения с шумом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::enhanceImage()

<?php
function enhanceImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->enhanceImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Выравнивает гистограмму изображения

  • « Imagick::enhanceImage
  • Imagick::evaluateImage »
  • PHP Manual
  • Imagick
  • Выравнивает гистограмму изображения

Imagick::equalizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::equalizeImage — Выравнивает гистограмму изображения

Описание

public Imagick::equalizeImage(): bool

Выравнивает гистограмму изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::equalizeImage()

<?php
function equalizeImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->equalizeImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Применяет выражение к изображению

  • « Imagick::equalizeImage
  • Imagick::exportImagePixels »
  • PHP Manual
  • Imagick
  • Применяет выражение к изображению

Imagick::evaluateImage

(PECL imagick 2, PECL imagick 3)

Imagick::evaluateImage — Применяет выражение к изображению

Описание

public Imagick::evaluateImage(int $op, float $constant, int $channel = Imagick::CHANNEL_DEFAULT): bool

Применяет к изображению арифметическое, реляционное или логическое выражение. Используйте эти операторы для осветления или затемнения изображения, для увеличения или уменьшения контрастности изображения или для создания "негатива" изображения.

Список параметров

op

Оператор вычисления.

constant

Значение оператора.

channel

Укажите любую константу CHANNEL, которая подходит для вашего режима канала. Для применения более чем к одному каналу объедините константы типа CHANNEL с помощью побитовых операторов.Обратитесь к этому списку констант CHANNEL.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::evaluateImage()

Использование evaluateImage для уменьшения непрозрачности изображения.

<?php
// Создание нового объекта с изображением
$im = new Imagick('example-alpha.png');

// Уменьшение значнения альфа-канала на 50%
$im->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);

// Вывод изображения
header("Content-Type: image/png");
echo $im;
?>


Экспортирует пиксели изображения

  • « Imagick::evaluateImage
  • Imagick::extentImage »
  • PHP Manual
  • Imagick
  • Экспортирует пиксели изображения

Imagick::exportImagePixels

(PECL imagick 2 >=2.3.0, PECL imagick 3)

Imagick::exportImagePixels — Экспортирует пиксели изображения

Описание

public Imagick::exportImagePixels(
int $x,
int $y,
int $width,
int $height,
string $map,
int $STORAGE
): array

Экспортирует пиксели изображения в массив. Параметр map определяет порядок экспортируемых пикселей. Размер возвращаемого массива - width * height * strlen(map). Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.7 или старше.

Список параметров

x

Координата X экспортируемой области.

y

Координата Y экспортируемой области.

width

Ширина экспортируемой области.

height

Высота экспортируемой области.

map

Порядок экспортируемых пикселей. Например "RGB". Допустимые символы для map: R, G, B, A, O, C, Y, M, K, I и P.

STORAGE

Обратитесь к этому списку констант типа PIXEL.

Возвращаемые значения

Возвращает массив, содержащий значения пикселей.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::exportImagePixels()

Экспорт пикселей изображения в массив

<?php

/* Создание нового объекта */
$im = new Imagick();

/* Создание нового изображения */
$im->newPseudoImage(0, 0, "magick:rose");

/* Экспорт пикселей изображения */
$pixels = $im->exportImagePixels(10, 10, 2, 2, "RGB", Imagick::PIXEL_CHAR);

/* Вывод */
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)
}


Устанавливает размер изображения

  • « Imagick::exportImagePixels
  • Imagick::filter »
  • PHP Manual
  • Imagick
  • Устанавливает размер изображения

Imagick::extentImage

(PECL imagick 2, PECL imagick 3)

Imagick::extentImage — Устанавливает размер изображения

Описание

public Imagick::extentImage(
int $width,
int $height,
int $x,
int $y
): bool

Удобный метод для установки размера изображения. Метод устанавливает размер изображения и позволяет задать координаты x,y там, где начинается новая область. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.1 или старше.

Предостережение

До ImageMagick 6.5.7-8 (1623) значение $x было положительным при сдвиге влево и отрицательным при сдвиге вправо, а значение $y было положительным при сдвиге изображения вверх и отрицательным при сдвиге изображения вниз. Где-то между ImageMagick 6.3.7 (1591) и ImageMagick 6.5.7-8 (1623) оси $x и $y были перевёрнуты так, что значение $x было отрицательным при сдвиге влево и положительным при сдвиге вправо, а значение $y было отрицательным при сдвиге изображения вверх и положительным при сдвиге изображения вниз. Где-то между ImageMagick 6.5.7-8 (1623) и ImageMagick 6.6.9-7 (1641) оси $x и $y были возвращены обратно к функциональности до ImageMagick 6.5.7-8 (1623).

Список параметров

width

Новая ширина.

height

Новая высота.

x

Позиция X для нового размера.

y

Позиция Y для нового размера.

Возвращаемые значения

В случае успешной работы возвращает true.

Смотрите также

  • Imagick::resizeImage() - Масштабирует изображение
  • Imagick::thumbnailImage() - Изменяет размер изображения
  • Imagick::cropImage() - Извлекает область изображения


Применяет пользовательское ядро свёртки к изображению

  • « Imagick::extentImage
  • Imagick::flattenImages »
  • PHP Manual
  • Imagick
  • Применяет пользовательское ядро свёртки к изображению

Imagick::filter

(PECL imagick 3 >= 3.3.0)

Imagick::filter — Применяет пользовательское ядро свёртки к изображению

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::filter(ImagickKernel $ImagickKernel, int $channel = Imagick::CHANNEL_UNDEFINED): bool

Применяет пользовательское ядро свёртки к изображению.

Список параметров

ImagickKernel

Экземпляр ImagickKernel, представляющий либо одно ядро, либо связанную серию ядер.

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();
}

?>


Объединяет последовательность изображений

  • « Imagick::filter
  • Imagick::flipImage »
  • PHP Manual
  • Imagick
  • Объединяет последовательность изображений

Imagick::flattenImages

(PECL imagick 2, PECL imagick 3)

Imagick::flattenImages — Объединяет последовательность изображений

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::flattenImages(): Imagick

Объединяет последовательность изображений. Полезно для объединения слоёв Photoshop в одно изображение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Создаёт вертикальное зеркало изображения

  • « Imagick::flattenImages
  • Imagick::floodFillPaintImage »
  • PHP Manual
  • Imagick
  • Создаёт вертикальное зеркало изображения

Imagick::flipImage

(PECL imagick 2, PECL imagick 3)

Imagick::flipImage — Создаёт вертикальное зеркало изображения

Описание

public Imagick::flipImage(): 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();
}

?>

Смотрите также

  • Imagick::flopimage() - Создаёт горизонтальное зеркальное отображение


Изменяет значение цвета любого пикселя, соответствующего целевому

  • « Imagick::flipImage
  • Imagick::flopImage »
  • PHP Manual
  • Imagick
  • Изменяет значение цвета любого пикселя, соответствующего целевому

Imagick::floodFillPaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::floodFillPaintImage — Изменяет значение цвета любого пикселя, соответствующего целевому

Описание

public Imagick::floodFillPaintImage(
mixed $fill,
float $fuzz,
mixed $target,
int $x,
int $y,
bool $invert,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Изменяет значение цвета любого пикселя, соответствующего целевому и являющегося ближайшим соседом. Данный метод - замена устаревшему Imagick::paintFloodFillImage(). Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или старше.

Список параметров

fill

Объект ImagickPixel или строка, содержащая цвет заливки.

fuzz

Мера округления (fuzz). Для примера, установите значение fuzz в 10 и красный цвет с интенсивностью 100 и 102 будет интерпретироваться как один и тот же цвет.

target

Объект ImagickPixel или строка, содержащая целевой цвет для рисования.

x

Начальная позиция заливки по X.

y

Начальная позиция заливки по Y.

invert

Если значение равно true, закрашивает любой пиксель, не соответствующий целевому цвету.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::floodfillPaintImage()

<?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->writeImage("floodfillpaint_intermediate.png");

/* Целевой пиксель для рисования */
$x = 1;
$y = 1;

/* Получение цвета, которым рисуем */
$target = $combined->getImagePixelColor($x, $y);

/* Закрашивание пикселя в позиции 1,1 черным и всех соседних пикселей,
соответствующих целевому цвету */
$combined->floodfillPaintImage("black", 1, $target, $x, $y, false);

/* Сохранение результата */
$combined->writeImage("floodfillpaint_result.png");
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Imagick::floodfillPaintImage()
Вывод примера: Imagick::floodfillPaintImage()


Создаёт горизонтальное зеркальное отображение

  • « Imagick::floodFillPaintImage
  • Imagick::forwardFourierTransformImage »
  • PHP Manual
  • Imagick
  • Создаёт горизонтальное зеркальное отображение

Imagick::flopImage

(PECL imagick 2, PECL imagick 3)

Imagick::flopImage — Создаёт горизонтальное зеркальное отображение

Описание

public Imagick::flopImage(): 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();
}

?>

Смотрите также

  • Imagick::flipimage() - Создаёт вертикальное зеркало изображения


Реализует дискретное преобразование Фурье

  • « Imagick::flopImage
  • Imagick::frameImage »
  • PHP Manual
  • Imagick
  • Реализует дискретное преобразование Фурье

Imagick::forwardFourierTransformImage

(PECL imagick 3 >= 3.3.0)

Imagick::forwardFourierTransformImage — Реализует дискретное преобразование Фурье

Описание

public Imagick::forwardFourierTransformimage(bool $magnitude): bool

Реализует дискретное преобразование Фурье (ДПФ) изображения в виде пары величина / фаза или пары, состоящей из реального / мнимого изображений.

Список параметров

magnitude

Если значение равно true, будет возвращена пара величина / фаза, иначе - пара, состоящая из реального / мнимого изображений.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::forwardFourierTransformImage()

<?php
//Служебная функция для forwardTransformImage
function createMask() {
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(0);
$draw->setStrokeColor('rgb(255, 255, 255)');
$draw->setFillColor('rgb(255, 255, 255)');

//Рисование круга на оси Y с центром в точках
//x, y, который касается начала координат
$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();
}

?>


Добавляет имитацию трёхмерной границы

  • « Imagick::forwardFourierTransformImage
  • Imagick::functionImage »
  • PHP Manual
  • Imagick
  • Добавляет имитацию трёхмерной границы

Imagick::frameImage

(PECL imagick 2, PECL imagick 3)

Imagick::frameImage — Добавляет имитацию трёхмерной границы

Описание

public Imagick::frameImage(
mixed $matte_color,
int $width,
int $height,
int $inner_bevel,
int $outer_bevel
): bool

Добавляет имитацию трёхмерной границы вокруг изображения. Ширина и высота определяют ширину границы вертикальной и горизонтальной сторон рамки. Внутренний и внешний скосы указывают ширину внутренней и внешней тени рамки.

Список параметров

matte_color

Объект ImagickPixel или строка, представляющая матовый цвет.

width

Ширина границы.

height

Высота границы.

inner_bevel

Ширина внутреннего скоса.

outer_bevel

Ширина внешнего скоса.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь позволяет использовать представляющую цвет строку в качестве первого. Предыдущие версии позволяли использовать только объект ImagickPixel.

Примеры

Пример #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();
}

?>


Применяет функцию к изображению

  • « Imagick::frameImage
  • Imagick::fxImage »
  • PHP Manual
  • Imagick
  • Применяет функцию к изображению

Imagick::functionImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::functionImage — Применяет функцию к изображению

Описание

public Imagick::functionImage(int $function, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): bool

Применяет арифметическое, реляционное или логическое выражение к псевдоизображению.

Смотрите также » ImageMagick v6 Examples - Image Transformations — Function, Multi-Argument Evaluate

Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или старше.

Список параметров

function

Обратитесь к списку констант FUNCTION.

arguments

Массив аргументов для передачи в данную функцию.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Создание синусоидального градиента

<?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();
?>

Результатом выполнения данного примера будет что-то подобное:

Результат создания синусоидального градиента

Пример #2 Создание градиента из полинома (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();
?>

Результатом выполнения данного примера будет что-то подобное:

Результат создания полиномиального градиента

Пример #3 Создание сложного градиента из полинома (4x^2 - 4x^2 + 1), модулированного синусоидальным градиентом

<?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();
?>

Результатом выполнения данного примера будет что-то подобное:

Результат создания сложного градиента


Оценивает выражение для каждого пикселя в изображении

  • « Imagick::functionImage
  • Imagick::gammaImage »
  • PHP Manual
  • Imagick
  • Оценивает выражение для каждого пикселя в изображении

Imagick::fxImage

(PECL imagick 2, PECL imagick 3)

Imagick::fxImage — Оценивает выражение для каждого пикселя в изображении

Описание

public Imagick::fxImage(string $expression, int $channel = Imagick::CHANNEL_DEFAULT): Imagick

Оценивает выражение для каждого пикселя в изображении. Посмотрите подробнее про » Оператор изображения Fx со специальными эффектами для получения дополнительной информации.

Список параметров

expression

Выражение

channel

Укажите любую постоянную канала, которая подходит для вашего режима канала. Чтобы применить к более чем одному каналу, объедините константы типа канала, используя побитовые операторы. Просмотрите этот список констант канала.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Гамма-коррекция изображения

  • « Imagick::fxImage
  • Imagick::gaussianBlurImage »
  • PHP Manual
  • Imagick
  • Гамма-коррекция изображения

Imagick::gammaImage

(PECL imagick 2, PECL imagick 3)

Imagick::gammaImage — Гамма-коррекция изображения

Описание

public Imagick::gammaImage(float $gamma, int $channel = Imagick::CHANNEL_DEFAULT): bool

Гамма-коррекция изображения. Одно и то же изображение, просматриваемое на разных устройствах, будет различаться в восприятии, в способе представления интенсивности изображения на экране. Укажите индивидуальные уровни гаммы для красного, зелёного и синего каналов или отрегулируйте все три с помощью параметра гаммы. Обычно значения варьируются от 0.8 до 2.3.

Список параметров

gamma

Величина гамма-коррекции.

channel

Укажите любую константу канала, которая соответствует вашему режиму канала. Чтобы применить более чем к одному каналу, объедините константы типа канала с помощью побитовых операторов. Обратитесь к этому списку констант канала.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Размывает изображение

  • « Imagick::gammaImage
  • Imagick::getColorspace »
  • PHP Manual
  • Imagick
  • Размывает изображение

Imagick::gaussianBlurImage

(PECL imagick 2, PECL imagick 3)

Imagick::gaussianBlurImage — Размывает изображение

Описание

public Imagick::gaussianBlurImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool

Размывает изображение. Сворачивает изображение с помощью гауссовского оператора заданного радиуса и стандартного отклонения (sigma). Для получения приемлемых результатов radius должен быть больше sigma. При использовании значения radius, равного 0, метод выберет подходящий радиус.

Список параметров

radius

Радиус в пикселях, не считая центрального пикселя.

sigma

Стандартное отклонение в пикселях.

channel

Укажите любую константу CHANNEL, которая подходит для вашего режима канала. Для применения более чем к одному каналу объедините константы типа CHANNEL с помощью побитовых операторов. Обратитесь к этому списку констант CHANNEL.

Возвращаемые значения

В случае успешной работы возвращает 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 3)

Imagick::getColorspace — Возвращает цветовую палитру

Описание

public Imagick::getColorspace(): int

Возвращает значение глобальной цветовой палитры. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число, которое можно сравнить с константами COLORSPACE.


Возвращает тип сжатия объекта

  • « Imagick::getColorspace
  • Imagick::getCompressionQuality »
  • PHP Manual
  • Imagick
  • Возвращает тип сжатия объекта

Imagick::getCompression

(PECL imagick 2, PECL imagick 3)

Imagick::getCompression — Возвращает тип сжатия объекта

Описание

public Imagick::getCompression(): int

Возвращает тип сжатия объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает константу сжатия


Возвращает качество сжатия объекта

  • « Imagick::getCompression
  • Imagick::getCopyright »
  • PHP Manual
  • Imagick
  • Возвращает качество сжатия объекта

Imagick::getCompressionQuality

(PECL imagick 2, PECL imagick 3)

Imagick::getCompressionQuality — Возвращает качество сжатия объекта

Описание

public Imagick::getCompressionQuality(): int

Возвращает качество сжатия объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число, означающее качество сжатия


Возвращает копирайт API ImageMagick в виде строки

  • « Imagick::getCompressionQuality
  • Imagick::getFilename »
  • PHP Manual
  • Imagick
  • Возвращает копирайт API ImageMagick в виде строки

Imagick::getCopyright

(PECL imagick 2, PECL imagick 3)

Imagick::getCopyright — Возвращает копирайт API ImageMagick в виде строки

Описание

public static Imagick::getCopyright(): string

Возвращает копирайт API ImageMagick в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку содержащую копирайт Imagemagick и Magickwand C API.


Имя файла результирующего изображения

  • « Imagick::getCopyright
  • Imagick::getFont »
  • PHP Manual
  • Imagick
  • Имя файла результирующего изображения

Imagick::getFilename

(PECL imagick 2, PECL imagick 3)

Imagick::getFilename — Имя файла результирующего изображения

Описание

public Imagick::getFilename(): string

Возвращает имя файла, связанное с результирующим изображением.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает название шрифта

  • « Imagick::getFilename
  • Imagick::getFormat »
  • PHP Manual
  • Imagick
  • Возвращает название шрифта

Imagick::getFont

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::getFont — Возвращает название шрифта

Описание

public Imagick::getFont(): string

Возвращает значение шрифта объекта. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую название шрифта или false, если шрифт не установлен.

Смотрите также

  • Imagick::setFont() - Устанавливает шрифт
  • ImagickDraw::setFont() - Устанавливает указанный шрифт для использования при аннотировании текстом
  • ImagickDraw::getFont() - Возвращает шрифт


Возвращает формат Imagick объекта

  • « Imagick::getFont
  • Imagick::getGravity »
  • PHP Manual
  • Imagick
  • Возвращает формат Imagick объекта

Imagick::getFormat

(PECL imagick 2, PECL imagick 3)

Imagick::getFormat — Возвращает формат Imagick объекта

Описание

public Imagick::getFormat(): string

Возвращает формат Imagick объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает формат изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает значение гравитации (притяжения)

  • « Imagick::getFormat
  • Imagick::getHomeURL »
  • PHP Manual
  • Imagick
  • Возвращает значение гравитации (притяжения)

Imagick::getGravity

(PECL imagick 2, PECL imagick 3)

Imagick::getGravity — Возвращает значение гравитации (притяжения)

Описание

public Imagick::getGravity(): int

Возвращает глобальное значение гравитации объекта Imagick. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или старше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение гравитации. Смотрите список констант гравитации.


Возвращает домашний URL библиотеки ImageMagick

  • « Imagick::getGravity
  • Imagick::getImage »
  • PHP Manual
  • Imagick
  • Возвращает домашний URL библиотеки ImageMagick

Imagick::getHomeURL

(PECL imagick 2, PECL imagick 3)

Imagick::getHomeURL — Возвращает домашний URL библиотеки ImageMagick

Описание

public static Imagick::getHomeURL(): string

Возвращает домашний URL библиотеки ImageMagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ссылку домашней страницы imagemagick.


Возвращает новый объект Imagick

  • « Imagick::getHomeURL
  • Imagick::getImageAlphaChannel »
  • PHP Manual
  • Imagick
  • Возвращает новый объект Imagick

Imagick::getImage

(PECL imagick 2, PECL imagick 3)

Imagick::getImage — Возвращает новый объект Imagick

Описание

public Imagick::getImage(): Imagick

Возвращает новый объект Imagick с текущей последовательностью изображений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает новый объект Imagick с текущей последовательностью изображений.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Проверяет, есть ли у изображения альфа-канал

  • « Imagick::getImage
  • Imagick::getImageArtifact »
  • PHP Manual
  • Imagick
  • Проверяет, есть ли у изображения альфа-канал

Imagick::getImageAlphaChannel

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageAlphaChannel — Проверяет, есть ли у изображения альфа-канал

Описание

public Imagick::getImageAlphaChannel(): bool

Возвращает, есть ли у изображения альфа-канал.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если у изображения есть альфа-канал и false, если нет, т.е. изображение RGB, а не RGBA или CMYK, а не CMYKA.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
imagick 3.6.0 | Теперь возвращает логическое значение (bool); ранее возвращалось целое число (int).


Возвращает артефакт изображения

  • « Imagick::getImageAlphaChannel
  • Imagick::getImageAttribute »
  • PHP Manual
  • Imagick
  • Возвращает артефакт изображения

Imagick::getImageArtifact

(PECL imagick 3)

Imagick::getImageArtifact — Возвращает артефакт изображения

Описание

public Imagick::getImageArtifact(string $artifact): string

Возвращает артефакт, связанный с изображением. Разница между свойствами изображения и артефактами изображения заключается в том, что свойства являются общедоступными, а артефакты - закрытыми.

Список параметров

artifact

Имя артефакта.

Возвращаемые значения

Возвращает значение артефакта в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Смотрите также

  • Imagick::setImageArtifact() - Устанавливает артефакт изображения
  • Imagick::deleteImageArtifact() - Удаляет артефакт изображения


Возвращает именованный атрибут

  • « Imagick::getImageArtifact
  • Imagick::getImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Возвращает именованный атрибут

Imagick::getImageAttribute

(PECL imagick 2, PECL imagick 3)

Imagick::getImageAttribute — Возвращает именованный атрибут

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::getImageAttribute(string $key): string

Возвращает именованный атрибут.

Список параметров

key

Ключ возвращаемого атрибута.

Возвращаемые значения


Возвращает цвет фона изображения

  • « Imagick::getImageAttribute
  • Imagick::getImageBlob »
  • PHP Manual
  • Imagick
  • Возвращает цвет фона изображения

Imagick::getImageBackgroundColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBackgroundColor — Возвращает цвет фона изображения

Описание

public Imagick::getImageBackgroundColor(): ImagickPixel

Возвращает цвет фона изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ImagickPixel с установленным цветом фона изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает последовательность изображений в виде BLOB

  • « Imagick::getImageBackgroundColor
  • Imagick::getImageBluePrimary »
  • PHP Manual
  • Imagick
  • Возвращает последовательность изображений в виде BLOB

Imagick::getImageBlob

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBlob — Возвращает последовательность изображений в виде BLOB

Описание

public Imagick::getImageBlob(): string

Реализует форматы изображений напрямую в память. Возвращает последовательность изображений в виде строки. Формат изображения определяет формат возвращаемого BLOB-объекта (GIF, JPEG, PNG и т.д.). Чтобы вернуть другой формат изображения, используйте Imagick::setImageFormat().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую изображение.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает основную точку синего цвета для изображения

  • « Imagick::getImageBlob
  • Imagick::getImageBorderColor »
  • PHP Manual
  • Imagick
  • Возвращает основную точку синего цвета для изображения

Imagick::getImageBluePrimary

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBluePrimary — Возвращает основную точку синего цвета для изображения

Описание

public Imagick::getImageBluePrimary(): array

Возвращает основную точку синего цвета для изображения.

Список параметров

x

Цветность основной синей точки по оси x.

y

Цветность основной синей точки по оси y.

Возвращаемые значения

Массив, состоящий из координат точки "x" и "y".

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает цвет рамки изображения

  • « Imagick::getImageBluePrimary
  • Imagick::getImageChannelDepth »
  • PHP Manual
  • Imagick
  • Возвращает цвет рамки изображения

Imagick::getImageBorderColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBorderColor — Возвращает цвет рамки изображения

Описание

public Imagick::getImageBorderColor(): ImagickPixel

Возвращает цвет рамки изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает глубину для определённого канала изображения

  • « Imagick::getImageBorderColor
  • Imagick::getImageChannelDistortion »
  • PHP Manual
  • Imagick
  • Возвращает глубину для определённого канала изображения

Imagick::getImageChannelDepth

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelDepth — Возвращает глубину для определённого канала изображения

Описание

public Imagick::getImageChannelDepth(int $channel): int

Возвращает глубину для определённого канала изображения.

Список параметров

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает true.


Сравнивает каналы изображения с восстановленным изображением

  • « Imagick::getImageChannelDepth
  • Imagick::getImageChannelDistortions »
  • PHP Manual
  • Imagick
  • Сравнивает каналы изображения с восстановленным изображением

Imagick::getImageChannelDistortion

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelDistortion — Сравнивает каналы изображения с восстановленным изображением

Описание

public Imagick::getImageChannelDistortion(Imagick $reference, int $channel, int $metric): float

Сравнивает один или несколько каналов изображения с восстановленным изображением и возвращает указанный показатель искажения.

Список параметров

reference

Объект Imagick для сравнения.

channel

Укажите любую константу CHANNEL, которая подходит для вашего режима канала. Для применения более чем к одному каналу объедините константы типа CHANNEL с помощью побитовых операторов. Обратитесь к этому списку констант CHANNEL.

metric

Одна из констант типа METRIC.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает искажения канала

  • « Imagick::getImageChannelDistortion
  • Imagick::getImageChannelExtrema »
  • PHP Manual
  • Imagick
  • Возвращает искажения канала

Imagick::getImageChannelDistortions

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageChannelDistortions — Возвращает искажения канала

Описание

public Imagick::getImageChannelDistortions(Imagick $reference, int $metric, int $channel = Imagick::CHANNEL_DEFAULT): float

Сравнивает один или несколько каналов изображения с восстановленным изображением и возвращает указанный показатель искажения. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или старше.

Список параметров

reference

Объект Imagick, содержащий изображение, с которым производится сравнение.

metric

Обратитесь к этому списку констант типа METRIC.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

Возвращает число с плавающей точкой (float), описывающее искажение канала.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает экстремумы для одного или нескольких каналов изображения

  • « Imagick::getImageChannelDistortions
  • Imagick::getImageChannelKurtosis »
  • PHP Manual
  • Imagick
  • Возвращает экстремумы для одного или нескольких каналов изображения

Imagick::getImageChannelExtrema

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelExtrema — Возвращает экстремумы для одного или нескольких каналов изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::getImageChannelExtrema(int $channel): array

Получает экстремумы для одного или нескольких каналов изображения. Возвращаемое значение - ассоциативный массив с ключами "minima" и "maxima".

Список параметров

channel

Укажите любую константу CHANNEL, которая подходит для вашего режима канала. Для применения более чем к одному каналу объедините константы типа CHANNEL с помощью побитовых операторов. Обратитесь к этому списку констант CHANNEL.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает эксцесс и асимметрию определённого канала

  • « Imagick::getImageChannelExtrema
  • Imagick::getImageChannelMean »
  • PHP Manual
  • Imagick
  • Возвращает эксцесс и асимметрию определённого канала

Imagick::getImageChannelKurtosis

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageChannelKurtosis — Возвращает эксцесс и асимметрию определённого канала

Описание

public Imagick::getImageChannelKurtosis(int $channel = Imagick::CHANNEL_DEFAULT): array

Возвращает эксцесс и асимметрию определённого канала. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или старше.

Список параметров

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

Возвращает массив с элементами kurtosis и skewness.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает среднее и стандартное отклонение

  • « Imagick::getImageChannelKurtosis
  • Imagick::getImageChannelRange »
  • PHP Manual
  • Imagick
  • Возвращает среднее и стандартное отклонение

Imagick::getImageChannelMean

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelMean — Возвращает среднее и стандартное отклонение

Описание

public Imagick::getImageChannelMean(int $channel): array

Возвращает среднее и стандартное отклонение одного или нескольких каналов изображения.

Список параметров

channel

Укажите любую константу CHANNEL, которая подходит для вашего режима канала. Для применения более чем к одному каналу объедините константы типа CHANNEL с помощью побитовых операторов. Обратитесь к этому списку констант CHANNEL.

Возвращаемые значения

Возвращает массив с элементами "mean" и "standardDeviation".

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает диапазон каналов

  • « Imagick::getImageChannelMean
  • Imagick::getImageChannelStatistics »
  • PHP Manual
  • Imagick
  • Возвращает диапазон каналов

Imagick::getImageChannelRange

(PECL imagick 2 >= 2.2.1, PECL imagick 3)

Imagick::getImageChannelRange — Возвращает диапазон каналов

Описание

public Imagick::getImageChannelRange(int $channel): array

Возвращает диапазон для одного или нескольких каналов изображения. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или старше.

Список параметров

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

Возвращает массив, содержащий минимальные и максимальные значения канала(ов).

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает статистику для каждого канала изображения

  • « Imagick::getImageChannelRange
  • Imagick::getImageClipMask »
  • PHP Manual
  • Imagick
  • Возвращает статистику для каждого канала изображения

Imagick::getImageChannelStatistics

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelStatistics — Возвращает статистику для каждого канала изображения

Описание

public Imagick::getImageChannelStatistics(): array

Возвращает статистику для каждого канала изображения. Статистика включает глубину канала, его минимумы и максимумы, среднее и стандартное отклонение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Возвращает обтравочную маску изображения

  • « Imagick::getImageChannelStatistics
  • Imagick::getImageColormapColor »
  • PHP Manual
  • Imagick
  • Возвращает обтравочную маску изображения

Imagick::getImageClipMask

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageClipMask — Возвращает обтравочную маску изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::getImageClipMask(): Imagick

Возвращает обтравочную маску изображения. Обтравочнуя маска - объект Imagick, содержащий обтравочную маску. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект Imagick, содержащий обтравочную маску.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает цвет указанного индекса палитры

  • « Imagick::getImageClipMask
  • Imagick::getImageColors »
  • PHP Manual
  • Imagick
  • Возвращает цвет указанного индекса палитры

Imagick::getImageColormapColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImageColormapColor — Возвращает цвет указанного индекса палитры

Описание

public Imagick::getImageColormapColor(int $index): ImagickPixel

Возвращает цвет указанного индекса палитры.

Список параметров

index

Смещение в палитре изображения.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает число уникальных цветов в изображении

  • « Imagick::getImageColormapColor
  • Imagick::getImageColorspace »
  • PHP Manual
  • Imagick
  • Возвращает число уникальных цветов в изображении

Imagick::getImageColors

(PECL imagick 2, PECL imagick 3)

Imagick::getImageColors — Возвращает число уникальных цветов в изображении

Описание

public Imagick::getImageColors(): int

Возвращает число уникальных цветов в изображении в виде целого числа (int).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Возвращает цветовую палитру изображения

  • « Imagick::getImageColors
  • Imagick::getImageCompose »
  • PHP Manual
  • Imagick
  • Возвращает цветовую палитру изображения

Imagick::getImageColorspace

(PECL imagick 2, PECL imagick 3)

Imagick::getImageColorspace — Возвращает цветовую палитру изображения

Описание

public Imagick::getImageColorspace(): int

Возвращает целое число, соответствующее значению одной из COLORSPACE констант.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Возвращает составной оператор, связанный с изображением

  • « Imagick::getImageColorspace
  • Imagick::getImageCompression »
  • PHP Manual
  • Imagick
  • Возвращает составной оператор, связанный с изображением

Imagick::getImageCompose

(PECL imagick 2, PECL imagick 3)

Imagick::getImageCompose — Возвращает составной оператор, связанный с изображением

Описание

public Imagick::getImageCompose(): int

Возвращает составной оператор, связанный с изображением.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Возвращает текущий тип компрессии изображения

  • « Imagick::getImageCompose
  • Imagick::getImageCompressionQuality »
  • PHP Manual
  • Imagick
  • Возвращает текущий тип компрессии изображения

Imagick::getImageCompression

(PECL imagick 3 >= 3.3.0)

Imagick::getImageCompression — Возвращает текущий тип компрессии изображения

Описание

public Imagick::getImageCompression(): int

Возвращает текущий тип компрессии изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает константу компрессии


Возвращает текущее качество сжатия изображения

  • « Imagick::getImageCompression
  • Imagick::getImageDelay »
  • PHP Manual
  • Imagick
  • Возвращает текущее качество сжатия изображения

Imagick::getImageCompressionQuality

(PECL imagick 2 >= 2.2.2, PECL imagick 3)

Imagick::getImageCompressionQuality — Возвращает текущее качество сжатия изображения

Описание

public Imagick::getImageCompressionQuality(): int

Получает текущее качество сжатия изображения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число, описывающее сжатие изображения.


Возвращает задержку изображения

  • « Imagick::getImageCompressionQuality
  • Imagick::getImageDepth »
  • PHP Manual
  • Imagick
  • Возвращает задержку изображения

Imagick::getImageDelay

(PECL imagick 2, PECL imagick 3)

Imagick::getImageDelay — Возвращает задержку изображения

Описание

public Imagick::getImageDelay(): int

Возвращает задержку изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает задержку изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает глубину изображения

  • « Imagick::getImageDelay
  • Imagick::getImageDispose »
  • PHP Manual
  • Imagick
  • Возвращает глубину изображения

Imagick::getImageDepth

(PECL imagick 2, PECL imagick 3)

Imagick::getImageDepth — Возвращает глубину изображения

Описание

public Imagick::getImageDepth(): int

Возвращает глубину изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Глубина изображения.


Возвращает метод удаления изображения

  • « Imagick::getImageDepth
  • Imagick::getImageDistortion »
  • PHP Manual
  • Imagick
  • Возвращает метод удаления изображения

Imagick::getImageDispose

(PECL imagick 2, PECL imagick 3)

Imagick::getImageDispose — Возвращает метод удаления изображения

Описание

public Imagick::getImageDispose(): int

Возвращает метод удаления изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает метод удаления изображения в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Сравнивает изображение с восстановленным изображением

  • « Imagick::getImageDispose
  • Imagick::getImageExtrema »
  • PHP Manual
  • Imagick
  • Сравнивает изображение с восстановленным изображением

Imagick::getImageDistortion

(PECL imagick 2, PECL imagick 3)

Imagick::getImageDistortion — Сравнивает изображение с восстановленным изображением

Описание

public Imagick::getImageDistortion(MagickWand $reference, int $metric): float

Сравнивает изображение с восстановленным изображением и возвращает указанный показатель искажения.

Список параметров

reference

Объект Imagick для сравнения.

metric

Одна из констант типа METRIC.

Возвращаемые значения

Возвращает показатель искажения, использованный для изображения (или его наилучшее предположение).

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает экстремумы изображения

  • « Imagick::getImageDistortion
  • Imagick::getImageFilename »
  • PHP Manual
  • Imagick
  • Возвращает экстремумы изображения

Imagick::getImageExtrema

(PECL imagick 2, PECL imagick 3)

Imagick::getImageExtrema — Возвращает экстремумы изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::getImageExtrema(): array

Возвращает экстремумы изображения. Возвращает ассоциативный массив с ключами "min" и "max".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив с ключами "min" и "max".

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает имя файла конкретного изображения в последовательности

  • « Imagick::getImageExtrema
  • Imagick::getImageFormat »
  • PHP Manual
  • Imagick
  • Возвращает имя файла конкретного изображения в последовательности

Imagick::getImageFilename

(PECL imagick 2, PECL imagick 3)

Imagick::getImageFilename — Возвращает имя файла конкретного изображения в последовательности

Описание

public Imagick::getImageFilename(): string

Возвращает имя файла конкретного изображения в последовательности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку с именем файла изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает формат конкретного изображения в последовательности

  • « Imagick::getImageFilename
  • Imagick::getImageGamma »
  • PHP Manual
  • Imagick
  • Возвращает формат конкретного изображения в последовательности

Imagick::getImageFormat

(PECL imagick 2, PECL imagick 3)

Imagick::getImageFormat — Возвращает формат конкретного изображения в последовательности

Описание

public Imagick::getImageFormat(): string

Возвращает формат конкретного изображения в последовательности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую формат изображения в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает гамму изображения

  • « Imagick::getImageFormat
  • Imagick::getImageGeometry »
  • PHP Manual
  • Imagick
  • Возвращает гамму изображения

Imagick::getImageGamma

(PECL imagick 2, PECL imagick 3)

Imagick::getImageGamma — Возвращает гамму изображения

Описание

public Imagick::getImageGamma(): float

Возвращает гамму изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает гамму изображения в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает ширину и высоту в виде ассоциативного массива

  • « Imagick::getImageGamma
  • Imagick::getImageGravity »
  • PHP Manual
  • Imagick
  • Возвращает ширину и высоту в виде ассоциативного массива

Imagick::getImageGeometry

(PECL imagick 2, PECL imagick 3)

Imagick::getImageGeometry — Возвращает ширину и высоту в виде ассоциативного массива

Описание

public Imagick::getImageGeometry(): array

Возвращает ширину и высоту в виде ассоциативного массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с шириной и высотой изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::getImageGeometry()

<?php
$imagick = new Imagick();
$imagick->newImage(100, 200, "black");
print_r($imagick->getImageGeometry());
?>

Результат выполнения данного примера:

Array
(
    [width] => 100
    [height] => 200
)


Возвращает значение гравитации (притяжения)

  • « Imagick::getImageGeometry
  • Imagick::getImageGreenPrimary »
  • PHP Manual
  • Imagick
  • Возвращает значение гравитации (притяжения)

Imagick::getImageGravity

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageGravity — Возвращает значение гравитации (притяжения)

Описание

public Imagick::getImageGravity(): int

Возвращает значение гравитации изображения. В отличие от Imagick::getGravity(), этот метод возвращает гравитацию, установленную для текущего изображения в последовательности. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или старше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение гравитации. Смотрите список констант гравитации.


Возвращает первичную точку цветности зелёного

  • « Imagick::getImageGravity
  • Imagick::getImageHeight »
  • PHP Manual
  • Imagick
  • Возвращает первичную точку цветности зелёного

Imagick::getImageGreenPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::getImageGreenPrimary — Возвращает первичную точку цветности зелёного

Описание

public Imagick::getImageGreenPrimary(): array

Возвращает первичную точку цветности зелёного. Возвращает массив с ключами "x" и "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает массив с ключами "x" и "y", случае возникновения ошибки выбрасывает исключение ImagickException.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает высоту изображения

  • « Imagick::getImageGreenPrimary
  • Imagick::getImageHistogram »
  • PHP Manual
  • Imagick
  • Возвращает высоту изображения

Imagick::getImageHeight

(PECL imagick 2, PECL imagick 3)

Imagick::getImageHeight — Возвращает высоту изображения

Описание

public Imagick::getImageHeight(): int

Возвращает высоту изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает высоту изображения в пикселях.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает гистограмму изображения

  • « Imagick::getImageHeight
  • Imagick::getImageIndex »
  • PHP Manual
  • Imagick
  • Возвращает гистограмму изображения

Imagick::getImageHistogram

(PECL imagick 2, PECL imagick 3)

Imagick::getImageHistogram — Возвращает гистограмму изображения

Описание

public Imagick::getImageHistogram(): array

Возвращает гистограмму изображения в виде массива объектов ImagickPixel.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает гистограмму изображения в виде массива объектов ImagickPixel.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Генерация 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); // делает линии маскимально тонкими

$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

$histogramWidth = 256;
$histogramHeight = 100; // высота для каждого сегмента RGB

$imagick = new \Imagick(realpath($imagePath));
//Измените размер изображения, чтобы он был маленьким, иначе PHP может не хватить памяти
//Это может привести к плохим результатам для изображений, которые являются патологически "пиксельными"
$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;
}

?>


Возвращает индекс текущего активного изображения

  • « Imagick::getImageHistogram
  • Imagick::getImageInterlaceScheme »
  • PHP Manual
  • Imagick
  • Возвращает индекс текущего активного изображения

Imagick::getImageIndex

(PECL imagick 2, PECL imagick 3)

Imagick::getImageIndex — Возвращает индекс текущего активного изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::getImageIndex(): int

Возвращает индекс текущего активного изображения в объекте Imagick. Этот метод объявлен устаревшим. Используйте Imagick::getIteratorIndex().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число, содержащее индекс изображения в стеке.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Получает схему чересстрочного изображения

  • « Imagick::getImageIndex
  • Imagick::getImageInterpolateMethod »
  • PHP Manual
  • Imagick
  • Получает схему чересстрочного изображения

Imagick::getImageInterlaceScheme

(PECL imagick 2, PECL imagick 3)

Imagick::getImageInterlaceScheme — Получает схему чересстрочного изображения

Описание

public Imagick::getImageInterlaceScheme(): int

Получает схему чересстрочного изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает схему чередования как целое число. Вызывает ImagickException в случае возникновения ошибки.


Возвращает метод интерполяции

  • « Imagick::getImageInterlaceScheme
  • Imagick::getImageIterations »
  • PHP Manual
  • Imagick
  • Возвращает метод интерполяции

Imagick::getImageInterpolateMethod

(PECL imagick 2, PECL imagick 3)

Imagick::getImageInterpolateMethod — Возвращает метод интерполяции

Описание

public Imagick::getImageInterpolateMethod(): int

Возвращает метод интерполяции для указанного изображения. Метод является одной из констант Imagick::INTERPOLATE_*.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает метод интерполяции в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает итерации изображения

  • « Imagick::getImageInterpolateMethod
  • Imagick::getImageLength »
  • PHP Manual
  • Imagick
  • Возвращает итерации изображения

Imagick::getImageIterations

(PECL imagick 2, PECL imagick 3)

Imagick::getImageIterations — Возвращает итерации изображения

Описание

public Imagick::getImageIterations(): int

Возвращает итерации изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает итерации изображения в виде целого числа.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает длину изображения в байтах

  • « Imagick::getImageIterations
  • Imagick::getImageMatte »
  • PHP Manual
  • Imagick
  • Возвращает длину изображения в байтах

Imagick::getImageLength

(PECL imagick 2, PECL imagick 3)

Imagick::getImageLength — Возвращает длину изображения в байтах

Описание

public Imagick::getImageLength(): int

Возвращает длину изображения в байтах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число, содержащее текущий размер изображения.

Примеры

Пример #1 Пример использования Imagick::getImageLength():

Получение длины изображения в байтах

<?php
$image = new Imagick('test.jpg');
echo $image->getImageLength() . ' байт';
?>


Возвращает, если изображение содержит матовый канал

  • « Imagick::getImageLength
  • Imagick::getImageMatteColor »
  • PHP Manual
  • Imagick
  • Возвращает, если изображение содержит матовый канал

Imagick::getImageMatte

(PECL imagick 2, PECL imagick 3)

Imagick::getImageMatte — Возвращает, если изображение содержит матовый канал

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::getImageMatte(): bool

Возвращает true, если изображение содержит матовый канал, в противном случае возвращает false. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Возвращает матовый цвет изображения

  • « Imagick::getImageMatte
  • Imagick::getImageMimeType »
  • PHP Manual
  • Imagick
  • Возвращает матовый цвет изображения

Imagick::getImageMatteColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImageMatteColor — Возвращает матовый цвет изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::getImageMatteColor(): ImagickPixel

Возвращает матовый цвет изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект ImagickPixel в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает MIME-тип изображения

  • « Imagick::getImageMatteColor
  • Imagick::getImageOrientation »
  • PHP Manual
  • Imagick
  • Возвращает MIME-тип изображения

Imagick::getImageMimeType

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageMimeType — Возвращает MIME-тип изображения

Описание

public Imagick::getImageMimeType(): string

Возвращает MIME-тип изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает ориентацию изображения

  • « Imagick::getImageMimeType
  • Imagick::getImagePage »
  • PHP Manual
  • Imagick
  • Возвращает ориентацию изображения

Imagick::getImageOrientation

(PECL imagick 2, PECL imagick 3)

Imagick::getImageOrientation — Возвращает ориентацию изображения

Описание

public Imagick::getImageOrientation(): int

Возвращает ориентацию изображения. Возвращаемое значение - одна из констант ORIENTATION.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число (int) в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает геометрию страницы

  • « Imagick::getImageOrientation
  • Imagick::getImagePixelColor »
  • PHP Manual
  • Imagick
  • Возвращает геометрию страницы

Imagick::getImagePage

(PECL imagick 2, PECL imagick 3)

Imagick::getImagePage — Возвращает геометрию страницы

Описание

public Imagick::getImagePage(): array

Возвращает геометрию страницы, связанную с изображением, в массиве с ключами "width", "height", "x" и "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает геометрию страницы, связанную с изображением, в массиве с ключами "width", "height", "x" и "y".

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает цвет указанного пикселя

  • « Imagick::getImagePage
  • Imagick::getImageProfile »
  • PHP Manual
  • Imagick
  • Возвращает цвет указанного пикселя

Imagick::getImagePixelColor

(PECL imagick 2, PECL imagick 3)

Imagick::getImagePixelColor — Возвращает цвет указанного пикселя

Описание

public Imagick::getImagePixelColor(int $x, int $y): ImagickPixel

Возвращает цвет указанного пикселя.

Список параметров

x

Координата x пикселя.

y

Координата y пикселя.

Возвращаемые значения

Возвращает экземпляр ImagickPixel для цвета в заданных координатах.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает именованный профиль изображения

  • « Imagick::getImagePixelColor
  • Imagick::getImageProfiles »
  • PHP Manual
  • Imagick
  • Возвращает именованный профиль изображения

Imagick::getImageProfile

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProfile — Возвращает именованный профиль изображения

Описание

public Imagick::getImageProfile(string $name): string

Возвращает именованный профиль изображения.

Список параметров

name

Имя возвращаемого профиля.

Возвращаемые значения

Возвращает строку, содержащую профиль изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает профили изображений

  • « Imagick::getImageProfile
  • Imagick::getImageProperties »
  • PHP Manual
  • Imagick
  • Возвращает профили изображений

Imagick::getImageProfiles

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProfiles — Возвращает профили изображений

Описание

public Imagick::getImageProfiles(string $pattern = "*", bool $include_values = true): array

Возвращает все связанные профили, соответствующие шаблону. Если в качестве второго параметра передаётся false, возвращаются только имена профилей. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

pattern

Шаблон для имён профилей.

include_values

Определяет, следует ли возвращать только имена профилей. Если передано значение false то будут возвращены только имена профилей.

Возвращаемые значения

Возвращает массив, содержащий профили изображений или имена профилей.


Возвращает свойства изображения

  • « Imagick::getImageProfiles
  • Imagick::getImageProperty »
  • PHP Manual
  • Imagick
  • Возвращает свойства изображения

Imagick::getImageProperties

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProperties — Возвращает свойства изображения

Описание

public 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";
}

?>


Возвращает именованное свойство изображения

  • « Imagick::getImageProperties
  • Imagick::getImageRedPrimary »
  • PHP Manual
  • Imagick
  • Возвращает именованное свойство изображения

Imagick::getImageProperty

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProperty — Возвращает именованное свойство изображения

Описание

public Imagick::getImageProperty(string $name): string

Возвращает именованное свойство изображения. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или старше.

Список параметров

name

Имя свойства (например, Exif:DateTime).

Возвращаемые значения

Возвращает строку, содержащую свойство изображения, или false, если свойство с заданным именем не существует.

Примеры

Пример #1 Пример использования Imagick::getImageProperty():

Задание и получение свойства изображения

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");

$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
?>

Смотрите также

  • Imagick::setImageProperty() - Устанавливает свойство изображения


Возвращает красную первичную точку цветности

  • « Imagick::getImageProperty
  • Imagick::getImageRegion »
  • PHP Manual
  • Imagick
  • Возвращает красную первичную точку цветности

Imagick::getImageRedPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::getImageRedPrimary — Возвращает красную первичную точку цветности

Описание

public Imagick::getImageRedPrimary(): array

Возвращает красную первичную точку цветности в виде массива с ключами "x" and "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает красную первичную точку цветности в виде массива с ключами "x" and "y". Вызывает ImagickException в случае возникновения ошибки.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Извлекает область изображения

  • « Imagick::getImageRedPrimary
  • Imagick::getImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Извлекает область изображения

Imagick::getImageRegion

(PECL imagick 2, PECL imagick 3)

Imagick::getImageRegion — Извлекает область изображения

Описание

public Imagick::getImageRegion(
int $width,
int $height,
int $x,
int $y
): Imagick

Извлекает область изображения и возвращает её в виде нового объекта Imagick.

Список параметров

width

Ширина извлечённой области.

height

Высота извлечённой области.

x

Координата X левого верхнего угла извлечённой области.

y

Координата Y левого верхнего угла извлечённой области.

Возвращаемые значения

Извлекает область изображения и возвращает её в виде новой палочки.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает схему цветопередачи изображения

  • « Imagick::getImageRegion
  • Imagick::getImageResolution »
  • PHP Manual
  • Imagick
  • Возвращает схему цветопередачи изображения

Imagick::getImageRenderingIntent

(PECL imagick 2, PECL imagick 3)

Imagick::getImageRenderingIntent — Возвращает схему цветопередачи изображения

Описание

public Imagick::getImageRenderingIntent(): int

Возвращает схему цветопередачи изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает схему цветопередачи изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает разрешение изображения по X и Y

  • « Imagick::getImageRenderingIntent
  • Imagick::getImagesBlob »
  • PHP Manual
  • Imagick
  • Возвращает разрешение изображения по X и Y

Imagick::getImageResolution

(PECL imagick 2, PECL imagick 3)

Imagick::getImageResolution — Возвращает разрешение изображения по X и Y

Описание

public Imagick::getImageResolution(): array

Возвращает разрешение изображения X и Y.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает разрешение в виде массива.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает все последовательности изображений в виде большого двоичного объекта

  • « Imagick::getImageResolution
  • Imagick::getImageScene »
  • PHP Manual
  • Imagick
  • Возвращает все последовательности изображений в виде большого двоичного объекта

Imagick::getImagesBlob

(PECL imagick 2, PECL imagick 3)

Imagick::getImagesBlob — Возвращает все последовательности изображений в виде большого двоичного объекта

Описание

public Imagick::getImagesBlob(): string

Реализует форматы изображений напрямую в память. Метод возвращает все последовательности изображений в виде строки. Формат изображения определяет формат возвращаемого большого двоичного объекта (GIF, JPEG, PNG и т.д.). Чтобы вернуть другой формат изображения, используйте Imagick::setImageFormat().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую изображения. В случае возникновения ошибки выбрасывает исключение ImagickException.


Возвращает сцену изображения

  • « Imagick::getImagesBlob
  • Imagick::getImageSignature »
  • PHP Manual
  • Imagick
  • Возвращает сцену изображения

Imagick::getImageScene

(PECL imagick 2, PECL imagick 3)

Imagick::getImageScene — Возвращает сцену изображения

Описание

public Imagick::getImageScene(): int

Возвращает сцену изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сцену изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Генерирует хеш SHA-256

  • « Imagick::getImageScene
  • Imagick::getImageSize »
  • PHP Manual
  • Imagick
  • Генерирует хеш SHA-256

Imagick::getImageSignature

(PECL imagick 2, PECL imagick 3)

Imagick::getImageSignature — Генерирует хеш SHA-256

Описание

public Imagick::getImageSignature(): string

Генерирует хеш SHA-256 для потока пикселей изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую SHA-256 хеш файла.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает размер изображения в байтах

  • « Imagick::getImageSignature
  • Imagick::getImageTicksPerSecond »
  • PHP Manual
  • Imagick
  • Возвращает размер изображения в байтах

Imagick::getImageSize

(PECL imagick 2, PECL imagick 3)

Imagick::getImageSize — Возвращает размер изображения в байтах

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::getImageSize(): int

Возвращает размер изображения в байтах. Этот метод устарел и следует использовать Imagick::getImageLength().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число, содержащее текущий размер изображения.


Получает количество кадров в секунду для изображения

  • « Imagick::getImageSize
  • Imagick::getImageTotalInkDensity »
  • PHP Manual
  • Imagick
  • Получает количество кадров в секунду для изображения

Imagick::getImageTicksPerSecond

(PECL imagick 2, PECL imagick 3)

Imagick::getImageTicksPerSecond — Получает количество кадров в секунду для изображения

Описание

public Imagick::getImageTicksPerSecond(): int

Получает количество кадров в секунду для изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество кадров в секунду для изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает общую плотность чернил изображения

  • « Imagick::getImageTicksPerSecond
  • Imagick::getImageType »
  • PHP Manual
  • Imagick
  • Возвращает общую плотность чернил изображения

Imagick::getImageTotalInkDensity

(PECL imagick 2, PECL imagick 3)

Imagick::getImageTotalInkDensity — Возвращает общую плотность чернил изображения

Описание

public Imagick::getImageTotalInkDensity(): float

Возвращает общую плотность чернил изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает общую плотность чернил изображения. Вызывает ImagickException в случае возникновения ошибки.


Возвращает возможный тип изображения

  • « Imagick::getImageTotalInkDensity
  • Imagick::getImageUnits »
  • PHP Manual
  • Imagick
  • Возвращает возможный тип изображения

Imagick::getImageType

(PECL imagick 2, PECL imagick 3)

Imagick::getImageType — Возвращает возможный тип изображения

Описание

public Imagick::getImageType(): 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 в случае возникновения ошибки.


Возвращает единицы измерения разрешения изображения

  • « Imagick::getImageType
  • Imagick::getImageVirtualPixelMethod »
  • PHP Manual
  • Imagick
  • Возвращает единицы измерения разрешения изображения

Imagick::getImageUnits

(PECL imagick 2, PECL imagick 3)

Imagick::getImageUnits — Возвращает единицы измерения разрешения изображения

Описание

public Imagick::getImageUnits(): int

Возвращает единицы измерения разрешения изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает единицы измерения разрешения изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает метод виртуального пикселя

  • « Imagick::getImageUnits
  • Imagick::getImageWhitePoint »
  • PHP Manual
  • Imagick
  • Возвращает метод виртуального пикселя

Imagick::getImageVirtualPixelMethod

(PECL imagick 2, PECL imagick 3)

Imagick::getImageVirtualPixelMethod — Возвращает метод виртуального пикселя

Описание

public Imagick::getImageVirtualPixelMethod(): int

Возвращает метод виртуального пикселя для указанного изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает метод виртуального пикселя в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает белую точку цветности

  • « Imagick::getImageVirtualPixelMethod
  • Imagick::getImageWidth »
  • PHP Manual
  • Imagick
  • Возвращает белую точку цветности

Imagick::getImageWhitePoint

(PECL imagick 2, PECL imagick 3)

Imagick::getImageWhitePoint — Возвращает белую точку цветности

Описание

public Imagick::getImageWhitePoint(): array

Возвращает белую точку цветности в виде ассоциативного массива с ключами "x" и "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает белую точку цветности в виде ассоциативного массива с ключами "x" и "y".

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает ширину изображения

  • « Imagick::getImageWhitePoint
  • Imagick::getInterlaceScheme »
  • PHP Manual
  • Imagick
  • Возвращает ширину изображения

Imagick::getImageWidth

(PECL imagick 2, PECL imagick 3)

Imagick::getImageWidth — Возвращает ширину изображения

Описание

public Imagick::getImageWidth(): int

Возвращает ширину изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ширину изображения в пикселях.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Получает схему сжатия изображения

  • « Imagick::getImageWidth
  • Imagick::getIteratorIndex »
  • PHP Manual
  • Imagick
  • Получает схему сжатия изображения

Imagick::getInterlaceScheme

(PECL imagick 2, PECL imagick 3)

Imagick::getInterlaceScheme — Получает схему сжатия изображения

Описание

public Imagick::getInterlaceScheme(): int

Получает схему сжатия изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Получает схему сжатия изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает индекс текущего активного изображения

  • « Imagick::getInterlaceScheme
  • Imagick::getNumberImages »
  • PHP Manual
  • Imagick
  • Возвращает индекс текущего активного изображения

Imagick::getIteratorIndex

(PECL imagick 2, PECL imagick 3)

Imagick::getIteratorIndex — Возвращает индекс текущего активного изображения

Описание

public Imagick::getIteratorIndex(): int

Возвращает индекс текущего активного изображения в объекте Imagick. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число, содержащее индекс изображения в стеке.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::getIteratorIndex():

Создание изображения, установка и получение индекса итератора

<?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() - Устанавливает позицию итератора
  • Imagick::getImageIndex() - Возвращает индекс текущего активного изображения
  • Imagick::setImageIndex() - Устанавливает позицию итератора


Возвращает количество изображений в объекте

  • « Imagick::getIteratorIndex
  • Imagick::getOption »
  • PHP Manual
  • Imagick
  • Возвращает количество изображений в объекте

Imagick::getNumberImages

(PECL imagick 2, PECL imagick 3)

Imagick::getNumberImages — Возвращает количество изображений в объекте

Описание

public Imagick::getNumberImages(): int

Возвращает количество изображений, связанных с объектом Imagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество изображений, связанных с объектом Imagick.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает значение, связанное с указанным ключом

  • « Imagick::getNumberImages
  • Imagick::getPackageName »
  • PHP Manual
  • Imagick
  • Возвращает значение, связанное с указанным ключом

Imagick::getOption

(PECL imagick 2, PECL imagick 3)

Imagick::getOption — Возвращает значение, связанное с указанным ключом

Описание

public Imagick::getOption(string $key): string

Возвращает значение, связанное с объектом для указанного ключа.

Список параметров

key

Название опции.

Возвращаемые значения

Возвращает значение, связанное с палочкой и указанным ключом.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает имя пакета ImageMagick

  • « Imagick::getOption
  • Imagick::getPage »
  • PHP Manual
  • Imagick
  • Возвращает имя пакета ImageMagick

Imagick::getPackageName

(PECL imagick 2, PECL imagick 3)

Imagick::getPackageName — Возвращает имя пакета ImageMagick

Описание

public static Imagick::getPackageName(): string

Возвращает имя пакета ImageMagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя пакета ImageMagick в виде строки.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает геометрию страницы

  • « Imagick::getPackageName
  • Imagick::getPixelIterator »
  • PHP Manual
  • Imagick
  • Возвращает геометрию страницы

Imagick::getPage

(PECL imagick 2, PECL imagick 3)

Imagick::getPage — Возвращает геометрию страницы

Описание

public Imagick::getPage(): array

Возвращает геометрию страницы, связанную с объектом Imagick, в виде ассоциативного массива с ключами "width", "height", "x" и "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает геометрию страницы, связанную с объектом Imagick, в виде ассоциативного массива с ключами "width", "height", "x" и "y", в случае ошибки выбрасывает исключение ImagickException.


Возвращает MagickPixelIterator

  • « Imagick::getPage
  • Imagick::getPixelRegionIterator »
  • PHP Manual
  • Imagick
  • Возвращает MagickPixelIterator

Imagick::getPixelIterator

(PECL imagick 2, PECL imagick 3)

Imagick::getPixelIterator — Возвращает MagickPixelIterator

Описание

public Imagick::getPixelIterator(): ImagickPixelIterator

Возвращает MagickPixelIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ImagickPixelIterator в случае успешного выполнения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::getPixelIterator()

<?php
function getPixelIterator($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imageIterator = $imagick->getPixelIterator();

foreach ($imageIterator as $row => $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;
}

?>


Возвращает объект ImagickPixelIterator для секции изображения

  • « Imagick::getPixelIterator
  • Imagick::getPointSize »
  • PHP Manual
  • Imagick
  • Возвращает объект ImagickPixelIterator для секции изображения

Imagick::getPixelRegionIterator

(PECL imagick 2, PECL imagick 3)

Imagick::getPixelRegionIterator — Возвращает объект ImagickPixelIterator для секции изображения

Описание

public 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

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::getPointSize — Возвращает размер точки

Описание

public Imagick::getPointSize(): float

Возвращает значение размера точки объекта. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает float, содержащее размер точки.

Смотрите также

  • Imagick::setPointSize() - Устанавливает размер точки


Возвращает квантовый диапазон ImageMagick

  • « Imagick::getPointSize
  • Imagick::getQuantumDepth »
  • PHP Manual
  • Imagick
  • Возвращает квантовый диапазон ImageMagick

Imagick::getQuantum

(PECL imagick 3 >= 3.3.0)

Imagick::getQuantum — Возвращает квантовый диапазон ImageMagick

Описание

public static Imagick::getQuantum(): int

Возвращает квантовый диапазон ImageMagick. Если HDRI был включён, то тип - float, если нет - int.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает величину глубины

  • « Imagick::getQuantum
  • Imagick::getQuantumRange »
  • PHP Manual
  • Imagick
  • Возвращает величину глубины

Imagick::getQuantumDepth

(PECL imagick 2, PECL imagick 3)

Imagick::getQuantumDepth — Возвращает величину глубины

Описание

public static Imagick::getQuantumDepth(): array

Возвращает величину глубины объекта Imagick в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает величину глубины объекта Imagick в виде строки.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает величину размера спектра Imagick

  • « Imagick::getQuantumDepth
  • Imagick::getRegistry »
  • PHP Manual
  • Imagick
  • Возвращает величину размера спектра Imagick

Imagick::getQuantumRange

(PECL imagick 2, PECL imagick 3)

Imagick::getQuantumRange — Возвращает величину размера спектра Imagick

Описание

public static Imagick::getQuantumRange(): array

Возвращает величину размера спектра для объекта Imagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий размер спектра как целое число int ("quantumRangeLong") и как строку string ("quantumRangeString").

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Получает запись StringRegistry

  • « Imagick::getQuantumRange
  • Imagick::getReleaseDate »
  • PHP Manual
  • Imagick
  • Получает запись StringRegistry

Imagick::getRegistry

(PECL imagick 3 >= 3.3.0)

Imagick::getRegistry — Получает запись StringRegistry

Описание

public static Imagick::getRegistry(string $key): string

Получает запись StringRegistry для указанного ключа или false, если не задано.

Список параметров

key

Запись, которую нужно получить.

Возвращаемые значения


Возвращает дату релиза ImageMagick

  • « Imagick::getRegistry
  • Imagick::getResource »
  • PHP Manual
  • Imagick
  • Возвращает дату релиза ImageMagick

Imagick::getReleaseDate

(PECL imagick 2, PECL imagick 3)

Imagick::getReleaseDate — Возвращает дату релиза ImageMagick

Описание

public static Imagick::getReleaseDate(): string

Возвращает дату релиза ImageMagick в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает дату релиза ImageMagick в виде строки.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает размер используемой памяти указанного ресурса

  • « Imagick::getReleaseDate
  • Imagick::getResourceLimit »
  • PHP Manual
  • Imagick
  • Возвращает размер используемой памяти указанного ресурса

Imagick::getResource

(PECL imagick 2, PECL imagick 3)

Imagick::getResource — Возвращает размер используемой памяти указанного ресурса

Описание

public static Imagick::getResource(int $type): int

Возвращает размер используемой памяти указанного ресурса в мегабайтах.

Список параметров

type

Смотрите список констант типов ресурсов.

Возвращаемые значения

Возвращает размер используемой памяти указанного ресурса в мегабайтах.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает заданный лимит ресурсов

  • « Imagick::getResource
  • Imagick::getSamplingFactors »
  • PHP Manual
  • Imagick
  • Возвращает заданный лимит ресурсов

Imagick::getResourceLimit

(PECL imagick 2, PECL imagick 3)

Imagick::getResourceLimit — Возвращает заданный лимит ресурсов

Описание

public static Imagick::getResourceLimit(int $type): int

Возвращает заданный лимит ресурсов.

Список параметров

type

Одна из констант типов ресурсов. Блок (unit) зависит от типа ограниченного ресурса.

Возвращаемые значения

Возвращает заданный лимит ресурсов в мегабайтах.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Смотрите также

  • Imagick::setResourceLimit() - Устанавливает лимит для конкретного ресурса


Возвращает горизонтальный и вертикальный фактор выборки

  • « Imagick::getResourceLimit
  • Imagick::getSize »
  • PHP Manual
  • Imagick
  • Возвращает горизонтальный и вертикальный фактор выборки

Imagick::getSamplingFactors

(PECL imagick 2, PECL imagick 3)

Imagick::getSamplingFactors — Возвращает горизонтальный и вертикальный фактор выборки

Описание

public Imagick::getSamplingFactors(): array

Возвращает горизонтальный и вертикальный фактор выборки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив с горизонтальным и вертикальным фактором выборки изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает размер, связанный с объектом Imagick

  • « Imagick::getSamplingFactors
  • Imagick::getSizeOffset »
  • PHP Manual
  • Imagick
  • Возвращает размер, связанный с объектом Imagick

Imagick::getSize

(PECL imagick 2, PECL imagick 3)

Imagick::getSize — Возвращает размер, связанный с объектом Imagick

Описание

public Imagick::getSize(): 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, PECL imagick 3)

Imagick::getSizeOffset — Возвращает размер смещения

Описание

public Imagick::getSizeOffset(): 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, PECL imagick 3)

Imagick::getVersion — Возвращает версию API ImageMagick

Описание

public static Imagick::getVersion(): array

Возвращает версию API ImageMagick как строку и число.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает версию API ImageMagick как строку и число.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Заменяет цвета в изображении

  • « Imagick::getVersion
  • Imagick::hasNextImage »
  • PHP Manual
  • Imagick
  • Заменяет цвета в изображении

Imagick::haldClutImage

(PECL imagick 3)

Imagick::haldClutImage — Заменяет цвета в изображении

Описание

public Imagick::haldClutImage(Imagick $clut, int $channel = Imagick::CHANNEL_DEFAULT): bool

Заменяет цвета в изображении с помощью таблицы поиска Hald. Hald-изображения могут быть созданы с использованием цветового кодера HALD.

Список параметров

clut

Объект Imagick, содержащий поисковое Hald-изображение.

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();
}

?>


Проверяет, содержит ли объект больше изображений

  • « Imagick::haldClutImage
  • Imagick::hasPreviousImage »
  • PHP Manual
  • Imagick
  • Проверяет, содержит ли объект больше изображений

Imagick::hasNextImage

(PECL imagick 2, PECL imagick 3)

Imagick::hasNextImage — Проверяет, содержит ли объект больше изображений

Описание

public Imagick::hasNextImage(): bool

Возвращает true, если объект содержит больше изображений при перемещении вперёд по списку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если объект содержит больше изображений при перемещении вперёд по списку, возвращает false, если изображений нет.


Проверяет, есть ли у объекта предыдущее изображение

  • « Imagick::hasNextImage
  • Imagick::identifyFormat »
  • PHP Manual
  • Imagick
  • Проверяет, есть ли у объекта предыдущее изображение

Imagick::hasPreviousImage

(PECL imagick 2, PECL imagick 3)

Imagick::hasPreviousImage — Проверяет, есть ли у объекта предыдущее изображение

Описание

public Imagick::hasPreviousImage(): bool

Возвращает true, если объект содержит больше изображений при перемещении по списку в обратном направлении.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если объект содержит больше изображений при перемещении по списку в обратном направлении, возвращает false, если изображений нет.


Заменяет любые встроенные символы форматирования соответствующим свойством изображения

  • « Imagick::hasPreviousImage
  • Imagick::identifyImage »
  • PHP Manual
  • Imagick
  • Заменяет любые встроенные символы форматирования соответствующим свойством изображения

Imagick::identifyFormat

(PECL imagick 3 >= 3.3.0)

Imagick::identifyFormat — Заменяет любые встроенные символы форматирования соответствующим свойством изображения

Описание

public Imagick::identifyFormat(string $embedText): string|false

Заменяет любые встроенные символы форматирования соответствующим свойством изображения и возвращает интерпретированный текст. Посмотрите http://www.imagemagick.org/script/escape.php, чтобы узнать про последовательности экранирования.

Список параметров

embedText

Строка, содержащая последовательности форматирования, например, "Поле обрезки: %@ количество уникальных цветов: %k".

Возвращаемые значения

Возвращает формат или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::identifyFormat()

<?php
$output = "Вывод 'Поле обрезки: %@ количество уникальных цветов: %k': <br/>";
$imagick = new \Imagick(realpath("./images/artifact/mask.png"));
$output .= $imagick->identifyFormat("Поле обрезки: %@ количество уникальных цветов: %k");

?>


Определяет изображение и получает атрибуты

  • « Imagick::identifyFormat
  • Imagick::implodeImage »
  • PHP Manual
  • Imagick
  • Определяет изображение и получает атрибуты

Imagick::identifyImage

(PECL imagick 2, PECL imagick 3)

Imagick::identifyImage — Определяет изображение и получает атрибуты

Описание

public Imagick::identifyImage(bool $appendRawOutput = false): array

Определяет изображение и возвращает его атрибуты в виде массива. Атрибуты изображения включают в себя ширину, высоту, размер и прочие.

Список параметров

appendRawOutput

Если true, то в массив будет включён необработанный вывод.

Возвращаемые значения

Возвращает массив атрибутов. Атрибуты изображения включают в себя ширину, высоту, размер и прочие.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Пример #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
)


Создаёт копию изображения

  • « Imagick::identifyImage
  • Imagick::importImagePixels »
  • PHP Manual
  • Imagick
  • Создаёт копию изображения

Imagick::implodeImage

(PECL imagick 2, PECL imagick 3)

Imagick::implodeImage — Создаёт копию изображения

Описание

public Imagick::implodeImage(float $radius): bool

Создаёт новое изображение, которое является копией существующего с пикселями, "сжатыми" на указанный процент.

Список параметров

radius

Радиус сжатия.

Возвращаемые значения

В случае успешной работы возвращает 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();

}

?>


Импортирует пиксели изображения

  • « Imagick::implodeImage
  • Imagick::inverseFourierTransformImage »
  • PHP Manual
  • Imagick
  • Импортирует пиксели изображения

Imagick::importImagePixels

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::importImagePixels — Импортирует пиксели изображения

Описание

public Imagick::importImagePixels(
int $x,
int $y,
int $width,
int $height,
string $map,
int $storage,
array $pixels
): bool

Импортирует пиксели из массива в изображение. map обычно "RGB". Этот метод накладывает следующие ограничения на параметры: количество пикселей в массиве должно соответствовать width x height количеству пикселей. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

x

Положение изображения по оси X.

y

Положение изображения по оси Y.

width

Ширина изображения.

height

Высота изображения.

map

Карта упорядочения пикселей в виде строки. Это может быть, например, RGB.
Значение может быть любой комбинацией или порядком: R = красный, G = зелёный, B = синий, A = альфа (0 - прозрачный),
O = непрозрачный (0 - непрозрачный), C = голубой, Y = жёлтый, M = пурпурный,
K = чёрный, I = интенсивность (для оттенков серого), P = заполнитель.

storage

Метод хранения пикселей. Смотрите список констант пикселей.

pixels

Массив пикселей.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::importImagePixels()

<?php

/* Создание массива пикселей. 2000 пикселей на цветную полосу */
$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));

/* Ширина и высота. Площадь - это количество пикселей, разделённое на три.
Три происходит от "RGB", три значения на пиксель. */
$width = $height = pow((count($pixels) / 3), 0.5);

/* Создание пустого изображения */
$im = new Imagick();
$im->newImage($width, $height, 'gray');

/* Импорт пикселей в изображение.
width * height * strlen("RGB") должно соответствовать count($pixels) */
$im->importImagePixels(0, 0, $width, $height, "RGB", Imagick::PIXEL_CHAR, $pixels);

/* Вывод изображения */
$im->setImageFormat('jpg');
header("Content-Type: image/jpg");
echo $im;

?>

Результатом выполнения данного примера будет что-то подобное:

Пример использования Imagick::importImagePixels()


Реализует дискретное преобразование Фурье

  • « Imagick::importImagePixels
  • Imagick::labelImage »
  • PHP Manual
  • Imagick
  • Реализует дискретное преобразование Фурье

Imagick::inverseFourierTransformImage

(PECL imagick 3 >= 3.3.0)

Imagick::inverseFourierTransformImage — Реализует дискретное преобразование Фурье

Описание

public Imagick::inverseFourierTransformImage(Imagick $complement, bool $magnitude): bool

Реализует дискретное преобразование Фурье (ДПФ) изображения в виде пары величина / фаза или пары, состоящей из реального / мнимого изображений.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

complement

Второе изображение, которое нужно объединить с данным, чтобы сформировать либо пару величина / фаза, либо пару из реального / мнимого изображений.

magnitude

Если значение равно true, будет возвращена пара величина / фаза, иначе - пара, состоящая из реального / мнимого изображений.

Возвращаемые значения

В случае успешной работы возвращает true.


Добавляет метку к изображению

  • « Imagick::inverseFourierTransformImage
  • Imagick::levelImage »
  • PHP Manual
  • Imagick
  • Добавляет метку к изображению

Imagick::labelImage

(PECL imagick 2, PECL imagick 3)

Imagick::labelImage — Добавляет метку к изображению

Описание

public Imagick::labelImage(string $label): bool

Добавляет метку к изображению.

Список параметров

label

Добавляемая метка.

Возвращаемые значения

В случае успешной работы возвращает true.


Регулирует уровни изображения

  • « Imagick::labelImage
  • Imagick::linearStretchImage »
  • PHP Manual
  • Imagick
  • Регулирует уровни изображения

Imagick::levelImage

(PECL imagick 2, PECL imagick 3)

Imagick::levelImage — Регулирует уровни изображения

Описание

public Imagick::levelImage(
float $blackPoint,
float $gamma,
float $whitePoint,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Регулирует уровни изображения, масштабируя цвета, попадающие между указанными белыми и чёрными точками, до полного доступного квантового диапазона. Предоставленные параметры представляют собой чёрные, средние и белые точки. Чёрная точка определяет самый тёмный цвет изображения. Цвета темнее точки чёрного устанавливаются на ноль. Средняя точка определяет гамма-коррекцию, применяемую к изображению. Белая точка определяет самый светлый цвет изображения. Для цветов ярче точки белого устанавливается максимальное квантовое значение.

Список параметров

blackPoint

Чёрная точка изображения.

gamma

Значение гаммы.

whitePoint

Белая точка изображения.

channel

Укажите любую константу канала, которая соответствует вашему режиму канала. Чтобы применить более чем к одному каналу, объедините константы типа канала с помощью побитовых операторов. Обратитесь к этому списку констант канала.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Растягивает с насыщением яркость изображения

  • « Imagick::levelImage
  • Imagick::liquidRescaleImage »
  • PHP Manual
  • Imagick
  • Растягивает с насыщением яркость изображения

Imagick::linearStretchImage

(PECL imagick 2, PECL imagick 3)

Imagick::linearStretchImage — Растягивает с насыщением яркость изображения

Описание

public Imagick::linearStretchImage(float $blackPoint, float $whitePoint): bool

Растягивает с насыщением яркость изображения.

Список параметров

blackPoint

Чёрная точка изображения

whitePoint

Белая точка изображения

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Анимирует изображение или изображения

  • « Imagick::linearStretchImage
  • Imagick::listRegistry »
  • PHP Manual
  • Imagick
  • Анимирует изображение или изображения

Imagick::liquidRescaleImage

(PECL imagick 2 >= 2.2.0, PECL imagick 3)

Imagick::liquidRescaleImage — Анимирует изображение или изображения

Описание

public Imagick::liquidRescaleImage(
int $width,
int $height,
float $delta_x,
float $rigidity
): bool

Масштабирует изображения с использованием метода liquid rescaling. Он представляет собой реализацию техники seam carving. Чтобы метод работал должным образом, ImageMagick должен быть скомпилирован с поддержкой liblqr. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.9 или старше.

Список параметров

width

Ширина целевого размера.

height

Высота целевого размера.

delta_x

Определяет, сколько шов может проходить по оси x. При передаче значения 0 швы становятся прямыми.

rigidity

Вводит уклон для непрямых швов. Этот параметр обычно равен 0.

Возвращаемые значения

В случае успешной работы возвращает true.

Смотрите также

  • Imagick::resizeImage() - Масштабирует изображение


Перечисляет все настройки реестра

  • « Imagick::liquidRescaleImage
  • Imagick::magnifyImage »
  • PHP Manual
  • Imagick
  • Перечисляет все настройки реестра

Imagick::listRegistry

(PECL imagick 3 >= 3.3.0)

Imagick::listRegistry — Перечисляет все настройки реестра

Описание

public static Imagick::listRegistry(): array

Перечисляет все настройки реестра. Возвращает массив всех пар ключ/значение в реестре.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив, содержащий ключи и значения реестра.


Пропорционально масштабирует изображение в два раза

  • « Imagick::listRegistry
  • Imagick::mapImage »
  • PHP Manual
  • Imagick
  • Пропорционально масштабирует изображение в два раза

Imagick::magnifyImage

(PECL imagick 2, PECL imagick 3)

Imagick::magnifyImage — Пропорционально масштабирует изображение в два раза

Описание

public Imagick::magnifyImage(): bool

Масштабирует изображение в два раза пропорционально оригинальному размеру.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::magnifyImage()

<?php
function magnifyImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->magnifyImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Заменяет цвета изображения на ближайший цвет из эталонного изображения

  • « Imagick::magnifyImage
  • Imagick::matteFloodfillImage »
  • PHP Manual
  • Imagick
  • Заменяет цвета изображения на ближайший цвет из эталонного изображения

Imagick::mapImage

(PECL imagick 2, PECL imagick 3)

Imagick::mapImage — Заменяет цвета изображения на ближайший цвет из эталонного изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::mapImage(Imagick $map, bool $dither): bool

Список параметров

map

dither

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Изменяет значение прозрачности цвета

  • « Imagick::mapImage
  • Imagick::medianFilterImage »
  • PHP Manual
  • Imagick
  • Изменяет значение прозрачности цвета

Imagick::matteFloodfillImage

(PECL imagick 2, PECL imagick 3)

Imagick::matteFloodfillImage — Изменяет значение прозрачности цвета

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::matteFloodfillImage(
float $alpha,
float $fuzz,
mixed $bordercolor,
int $x,
int $y
): bool

Изменяет значение прозрачности любого пикселя, который соответствует цели и является ближайшим соседом. Если указан метод FillToBorderMethod, значение прозрачности изменяется для любого соседнего пикселя, который не соответствует элементу bordercolor изображения.

Список параметров

alpha

Уровень прозрачности: 1.0 - полностью непрозрачный, а 0.0 - полностью прозрачный.

fuzz

Элемент fuzz изображения определяет, насколько допустимо считать два цвета одинаковыми.

bordercolor

Объект ImagickPixel или строка, представляющая цвет рамки.

x

Начальная координата X операции.

y

Начальная координата Y операции.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь позволяет строку, представляющую цвет, в качестве третьего параметра. Предыдущие версии допускали только объект ImagickPixel.


Применяет цифровой фильтр

  • « Imagick::matteFloodfillImage
  • Imagick::mergeImageLayers »
  • PHP Manual
  • Imagick
  • Применяет цифровой фильтр

Imagick::medianFilterImage

(PECL imagick 2, PECL imagick 3)

Imagick::medianFilterImage — Применяет цифровой фильтр

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::medianFilterImage(float $radius): bool

Применяет цифровой фильтр, улучшающий качество изображения с шумом. Каждый пиксель заменяется медианой в наборе соседних пикселей, определяемых радиусом.

Список параметров

radius

Радиус соседних пикселей.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Объединяет слои изображения

  • « Imagick::medianFilterImage
  • Imagick::minifyImage »
  • PHP Manual
  • Imagick
  • Объединяет слои изображения

Imagick::mergeImageLayers

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::mergeImageLayers — Объединяет слои изображения

Описание

public Imagick::mergeImageLayers(int $layer_method): Imagick

Объединяет слои изображения в один. Метод полезен при работе с форматами изображений, в которых используется несколько слоёв, например PSD. Объединение контролируется с помощью layer_method, который определяет способ объединения слоёв. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Список параметров

layer_method

Одна из констант Imagick::LAYERMETHOD_*.

Возвращаемые значения

Возвращает объект Imagick, содержащий объединённое изображение.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #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();
}

?>

Смотрите также

  • Imagick::flattenImages() - Объединяет последовательность изображений


Масштабирует изображение пропорционально половине его размера

  • « Imagick::mergeImageLayers
  • Imagick::modulateImage »
  • PHP Manual
  • Imagick
  • Масштабирует изображение пропорционально половине его размера

Imagick::minifyImage

(PECL imagick 2, PECL imagick 3)

Imagick::minifyImage — Масштабирует изображение пропорционально половине его размера

Описание

public Imagick::minifyImage(): bool

Удобный метод масштабирования изображения пропорционально половине его исходного размера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Управляйте яркостью, насыщенностью и оттенком

  • « Imagick::minifyImage
  • Imagick::montageImage »
  • PHP Manual
  • Imagick
  • Управляйте яркостью, насыщенностью и оттенком

Imagick::modulateImage

(PECL imagick 2, PECL imagick 3)

Imagick::modulateImage — Управляйте яркостью, насыщенностью и оттенком

Описание

public Imagick::modulateImage(float $brightness, float $saturation, float $hue): bool

Позволяет управлять яркостью, насыщенностью и оттенком изображения. Оттенок - это процент абсолютного поворота от текущей позиции. Например, 50 приводит к повороту против часовой стрелки на 90 градусов, а 150 - к повороту по часовой стрелке на 90 градусов, 0 и 200 - оба приводят к повороту на 180 градусов.

Список параметров

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();
}

?>


Создаёт составное изображение

  • « Imagick::modulateImage
  • Imagick::morphImages »
  • PHP Manual
  • Imagick
  • Создаёт составное изображение

Imagick::montageImage

(PECL imagick 2, PECL imagick 3)

Imagick::montageImage — Создаёт составное изображение

Описание

public Imagick::montageImage(
ImagickDraw $draw,
string $tile_geometry,
string $thumbnail_geometry,
int $mode,
string $frame
): Imagick

Создаёт составное изображение путём объединения нескольких отдельных изображений. Изображения размещаются на составном изображении мозаикой, при этом имя изображения может отображаться сразу под отдельной плиткой.

Список параметров

draw

Название, размер и цвет шрифта берутся из этого объекта.

tile_geometry

Количество плиток в строке и на странице (например, 6x4+0+0).

thumbnail_geometry

Предпочтительный размер изображения и размер границы каждой миниатюры (например, 120x120+4+3).

mode

Режим кадрирования миниатюр, смотрите константы режима кадрирования.

frame

Обведите изображение декоративной рамкой (например, 15x15+3+3). Цвет рамки соответствует матовому цвету эскиза.

Возвращаемые значения

Создаёт составное изображение и возвращает его как новый объект Imagick.


Преобразует набор изображений

  • « Imagick::montageImage
  • Imagick::morphology »
  • PHP Manual
  • Imagick
  • Преобразует набор изображений

Imagick::morphImages

(PECL imagick 2, PECL imagick 3)

Imagick::morphImages — Преобразует набор изображений

Описание

public Imagick::morphImages(int $number_frames): Imagick

Преобразует набор изображений. И пиксели изображения, и размер линейно интерполируются, чтобы создать видимость метаморфозы от одного изображения к другому.

Список параметров

number_frames

Количество создаваемых промежуточных изображений.

Возвращаемые значения

Метод возвращает новый объект Imagick в случае успешного выполнения. Вызывает ImagickException в случае возникновения ошибки.


Применяет к изображению ядро, предоставленное пользователем, в соответствии с заданным методом морфологии

  • « Imagick::morphImages
  • Imagick::mosaicImages »
  • PHP Manual
  • Imagick
  • Применяет к изображению ядро, предоставленное пользователем, в соответствии с заданным методом морфологии

Imagick::morphology

(PECL imagick 3 >= 3.3.0)

Imagick::morphology — Применяет к изображению ядро, предоставленное пользователем, в соответствии с заданным методом морфологии

Описание

public Imagick::morphology(
int $morphologyMethod,
int $iterations,
ImagickKernel $ImagickKernel,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Применяет к изображению ядро, предоставленное пользователем, в соответствии с заданным методом морфологии.

Список параметров

morphologyMethod

Какой метод морфологии использовать: одна из констант \Imagick::MORPHOLOGY_*.

iterations

Количество итераций для применения морфологической функции. Значение -1 означает цикл до тех пор, пока не будет найдено никаких изменений. Как это применяется, может зависеть от метода морфологии. Обычно это значение равно 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
// Верхний левый пиксель должен быть чёрным.
// Нижний правый пиксель должен быть белым
// На остальное нам всё равно.

$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 с ядром Chebyshev 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 с ядром Manhattan 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 с ядром ocatagonal 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 с ядром Euclidean 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
// В результате вы увидите, что "Open" сглаживает контур, округляя все острые точки, и удаляет все части, которые меньше используемой формы.
// Он также отключит или откроет любые тонкие мосты.
$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
// В результате вы увидите, что "Open" сглаживает контур, округляя все острые точки, и удаляет все части, которые меньше используемой формы.
// Он также отключит или откроет любые тонкие мосты.

$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
// Основное использование метода "Close" - уменьшить или удалить любые дыры или пробелы в размере Структурного элемента ядра.
// Это "близкие" части фона примерно такого размера.
$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
// Основное использование метода "Close" - уменьшить или удалить любые дыры или пробелы в размере Структурного элемента ядра.
// Это "близкие" части фона примерно такого размера.
$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 Метод "TopHat", или, точнее, "White TopHat", возвращает пиксели, которые были удалены открытием фигуры, то есть пиксели, которые были удалены для округления точек, и соединение, соединённое мостом между фигурами. 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 Метод "TopHat", или, точнее, "Black TopHat", возвращает пиксели, которые были удалены закрытием фигуры, то есть пиксели, которые использовались для заполнения дыр, зазоров и мостов. 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 и Miss Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
// Находит все пиксели с 3 пикселями правого края
$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 для создания выпуклой оболочки Imagick::morphology()

<?php
$canvas = $this->getCharacterOutline();
$diamondKernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "1");
$convexKernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_CONVEX_HULL, "");

// Утолщённая морфология не справляется с небольшими зазорами.
// Закрываем их близкой морфологией.
$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 Пример использования вспомогательной функции для получения силуэта изображения Imagick::morphology()

<?php

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;
}
?>


Формирует мозаику из изображений

  • « Imagick::morphology
  • Imagick::motionBlurImage »
  • PHP Manual
  • Imagick
  • Формирует мозаику из изображений

Imagick::mosaicImages

(PECL imagick 2, PECL imagick 3)

Imagick::mosaicImages — Формирует мозаику из изображений

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::mosaicImages(): Imagick

Выкладывает мозаику из последовательности изображений, чтобы сформировать единое связное изображение. Возвращает палочку с каждым изображением в последовательности, составленным в месте, определённом смещением страницы изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Имитирует размытие в движении

  • « Imagick::mosaicImages
  • Imagick::negateImage »
  • PHP Manual
  • Imagick
  • Имитирует размытие в движении

Imagick::motionBlurImage

(PECL imagick 2, PECL imagick 3)

Imagick::motionBlurImage — Имитирует размытие в движении

Описание

public Imagick::motionBlurImage(
float $radius,
float $sigma,
float $angle,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Имитирует размытие в движении. Сворачивает изображение с помощью гауссовского оператора заданного радиуса и стандартного отклонения (сигма). Для получения разумных результатов радиус должен быть больше сигмы. Используйте радиус 0, и MotionBlurImage() выберет подходящий радиус самостоятельно. Угол задаёт угол размытия движения.

Список параметров

radius

Радиус гауссианы в пикселях, не считая центрального пикселя.

sigma

Стандартное отклонение Гаусса в пикселях.

angle

Применение эффекта под этим углом.

channel

Укажите любую константу канала, которая действительна для вашего режима канала. Чтобы применить более чем к одному каналу, объедините константы типа канала с помощью побитовых операторов. Обратитесь к списку констант канала. Аргумент канала влияет только в том случае, если Imagick скомпилирован с ImageMagick версии 6.4.4 или выше.

Возвращаемые значения

В случае успешной работы возвращает 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();
}
?>


Инвертирует цвета в эталонном изображении

  • « Imagick::motionBlurImage
  • Imagick::newImage »
  • PHP Manual
  • Imagick
  • Инвертирует цвета в эталонном изображении

Imagick::negateImage

(PECL imagick 2, PECL imagick 3)

Imagick::negateImage — Инвертирует цвета в эталонном изображении

Описание

public Imagick::negateImage(bool $gray, int $channel = Imagick::CHANNEL_DEFAULT): bool

Инвертирует цвета в эталонном изображении. Параметр Grayscale означает, что в изображении инвертируются только значения оттенков серого.

Список параметров

gray

Определяет, нужно ли инвертировать только пиксели в оттенках серого в изображении.

channel

Укажите любую константу CHANNEL, которая подходит для заданного режима канала. Для применения более чем к одному каналу необходимо объединить константы типа CHANNEL с помощью побитовых операторов. Обратитесь к этому списку констант CHANNEL.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Создаёт новое изображение

  • « Imagick::negateImage
  • Imagick::newPseudoImage »
  • PHP Manual
  • Imagick
  • Создаёт новое изображение

Imagick::newImage

(PECL imagick 2, PECL imagick 3)

Imagick::newImage — Создаёт новое изображение

Описание

public Imagick::newImage(
int $cols,
int $rows,
mixed $background,
string $format = ?
): bool

Создаёт новое изображение и связывает значение ImagickPixel в качестве цвета фона

Список параметров

cols

Столбцы в новом изображении

rows

Строки в новом изображении

background

Цвет фона, используемый для этого изображения

format

Формат изображения. Этот параметр был добавлен в Imagick версии 2.0.1.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь допускается строка, представляющая цвет, в качестве третьего параметра. Ранее допускался только объект ImagickPixel.

Примеры

Пример #1 Пример использования Imagick::newImage():

Создание нового изображения и его отображение.

<?php

$image = new Imagick();
$image->newImage(100, 100, new ImagickPixel('red'));
$image->setImageFormat('png');

header('Content-type: image/png');
echo $image;

?>


Создаёт новое изображение

  • « Imagick::newImage
  • Imagick::nextImage »
  • PHP Manual
  • Imagick
  • Создаёт новое изображение

Imagick::newPseudoImage

(PECL imagick 2, PECL imagick 3)

Imagick::newPseudoImage — Создаёт новое изображение

Описание

public Imagick::newPseudoImage(int $columns, int $rows, string $pseudoString): bool

Создаёт новое изображение с использованием псевдоформатов ImageMagick.

Список параметров

columns

Столбцы в новом изображении.

rows

Строки в новом изображении.

pseudoString

Строка, содержащая определение псевдоизображения.

Возвращаемые значения

В случае успешной работы возвращает 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");

?>


Переходит к следующему изображению

  • « Imagick::newPseudoImage
  • Imagick::normalizeImage »
  • PHP Manual
  • Imagick
  • Переходит к следующему изображению

Imagick::nextImage

(PECL imagick 2, PECL imagick 3)

Imagick::nextImage — Переходит к следующему изображению

Описание

public Imagick::nextImage(): bool

Связывает следующее изображение в списке изображений с объектом Imagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Повышает контрастность цветного изображения

  • « Imagick::nextImage
  • Imagick::oilPaintImage »
  • PHP Manual
  • Imagick
  • Повышает контрастность цветного изображения

Imagick::normalizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::normalizeImage — Повышает контрастность цветного изображения

Описание

public Imagick::normalizeImage(int $channel = Imagick::CHANNEL_DEFAULT): bool

Повышает контрастность цветного изображения, регулируя цвет пикселей для охвата всего диапазона доступных цветов.

Список параметров

channel

Укажите любую константу CHANNEL, которая подходит для заданного режима канала. Для применения более чем к одному каналу необходимо объединить константы типа CHANNEL с помощью побитовых операторов. Обратитесь к этому списку констант CHANNEL.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Имитирует картину маслом

  • « Imagick::normalizeImage
  • Imagick::opaquePaintImage »
  • PHP Manual
  • Imagick
  • Имитирует картину маслом

Imagick::oilPaintImage

(PECL imagick 2, PECL imagick 3)

Imagick::oilPaintImage — Имитирует картину маслом

Описание

public Imagick::oilPaintImage(float $radius): bool

Применяет фильтр со специальным эффектом, имитирующий картину маслом. Каждый пиксель заменяется наиболее часто встречающимся цветом в круговой области, определяемой радиусом.

Список параметров

radius

Радиус круговой области.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Изменяет значение цвета любого пикселя, соответствующего целевому

  • « Imagick::oilPaintImage
  • Imagick::optimizeImageLayers »
  • PHP Manual
  • Imagick
  • Изменяет значение цвета любого пикселя, соответствующего целевому

Imagick::opaquePaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::opaquePaintImage — Изменяет значение цвета любого пикселя, соответствующего целевому

Описание

public Imagick::opaquePaintImage(
mixed $target,
mixed $fill,
float $fuzz,
bool $invert,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Изменяет любой пиксель, соответствующий цвету, на цвет, определённый заливкой. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или старше.

Список параметров

target

Объект ImagickPixel или строка, содержащая цвет, который нужно изменить

fill

Цвет замены

fuzz

Мера округления (fuzz). Для примера, установите значение fuzz в 10 и красный цвет с интенсивностью 100 и 102 будет интерпретироваться как один и тот же цвет.

invert

Если true закрашивается любой пиксель, не соответствующий целевому цвету.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает true.


Удаляет повторяющиеся части изображений для оптимизации

  • « Imagick::opaquePaintImage
  • Imagick::orderedPosterizeImage »
  • PHP Manual
  • Imagick
  • Удаляет повторяющиеся части изображений для оптимизации

Imagick::optimizeImageLayers

(PECL imagick 2, PECL imagick 3)

Imagick::optimizeImageLayers — Удаляет повторяющиеся части изображений для оптимизации

Описание

public Imagick::optimizeImageLayers(): bool

Сравнивает каждое изображение, расположенное в формате GIF, с предыдущим изображением в последовательности. Исходя из этого, функция пытается выбрать наименьшее обрезанное изображение для замены каждого кадра, сохраняя при этом результаты анимации. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::optimizeImageLayers()

Чтение, оптимизация и запись изображения в формате GIF

<?php
/* создание нового объекта imagick */
$im = new Imagick("test.gif");

/* оптимизация слоёв изображения */
$im->optimizeImageLayers();

/* запись изображения обратно */
$im->writeImages("test_optimized.gif", true);
?>

Смотрите также

  • Imagick::compareImageLayers() - Возвращает максимальную ограничивающую область между изображениями
  • Imagick::writeImages() - Записывает изображение или последовательность изображений
  • Imagick::writeImage() - Записывает изображение по указанному имени файла


Выполняет упорядоченный дизеринг

  • « Imagick::optimizeImageLayers
  • Imagick::paintFloodfillImage »
  • PHP Manual
  • Imagick
  • Выполняет упорядоченный дизеринг

Imagick::orderedPosterizeImage

(PECL imagick 2 >= 2.2.2, PECL imagick 3)

Imagick::orderedPosterizeImage — Выполняет упорядоченный дизеринг

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::orderedPosterizeImage(string $threshold_map, int $channel = Imagick::CHANNEL_DEFAULT): bool

Выполняет упорядоченный дизеринг на основе ряда предопределённых карт пороговых значений дизеринга, но с несколькими уровнями интенсивности, которые могут быть разными для разных каналов в соответствии с входными аргументами. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.1 или старше.

Список параметров

threshold_map

Строка, содержащая имя используемой карты порогового дизеринга.

channel

Укажите любую константу канала, которая действительна для вашего режима канала. Чтобы применить более чем к одному каналу, объедините константы типа канала с помощью побитовых операторов. Обратитесь к списку констант канала.

Возвращаемые значения

В случае успешной работы возвращает 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');
?>


Изменяет значение цвета любого пикселя, соответствующего цели

  • « Imagick::orderedPosterizeImage
  • Imagick::paintOpaqueImage »
  • PHP Manual
  • Imagick
  • Изменяет значение цвета любого пикселя, соответствующего цели

Imagick::paintFloodfillImage

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::paintFloodfillImage — Изменяет значение цвета любого пикселя, соответствующего цели

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::paintFloodfillImage(
mixed $fill,
float $fuzz,
mixed $bordercolor,
int $x,
int $y,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Изменяет значение цвета любого пикселя, который соответствует цели и является ближайшим соседом. Начиная с ImageMagick 6.3.8 этот метод устарел и вместо него следует использовать Imagick::floodfillPaintImage().

Список параметров

fill

Объект ImagickPixel или строка, содержащая цвет заливки.

fuzz

Мера округления (fuzz). Для примера, установите значение fuzz в 10 и красный цвет с интенсивностью 100 и 102 будет интерпретироваться как один и тот же цвет.

bordercolor

Объект ImagickPixel или строка, содержащая целевой цвет для рисования.

x

Начальная позиция заливки по оси X.

y

Начальная позиция заливки по оси Y.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает true.


Изменяет любой пиксель, соответствующий цвету

  • « Imagick::paintFloodfillImage
  • Imagick::paintTransparentImage »
  • PHP Manual
  • Imagick
  • Изменяет любой пиксель, соответствующий цвету

Imagick::paintOpaqueImage

(PECL imagick 2, PECL imagick 3)

Imagick::paintOpaqueImage — Изменяет любой пиксель, соответствующий цвету

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::paintOpaqueImage(
mixed $target,
mixed $fill,
float $fuzz,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Изменяет любой пиксель, соответствующий цвету, на цвет, определённый заливкой.

Список параметров

target

Изменяет целевой цвет на цвет заливки в изображении. Объект ImagickPixel или строка, представляющая целевой цвет.

fill

Объект ImagickPixel или строка, представляющая цвет заливки.

fuzz

Мера округления (fuzz) изображения определяет, насколько приемлемо рассматривать два цвета как один и тот же.

channel

Укажите любую константу канала, которая соответствует вашему режиму канала. Чтобы применить более чем к одному каналу, объедините константы типа канала с помощью побитовых операторов. Обратитесь к этому списку констант канала.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь допускается передавать строку, представляющую цвет, в первый и второй параметр. Предыдущие версии допускали только объект ImagickPixel.


Изменяет любой пиксель, соответствующий цвету, на цвет, определённый заливкой

  • « Imagick::paintOpaqueImage
  • Imagick::pingImage »
  • PHP Manual
  • Imagick
  • Изменяет любой пиксель, соответствующий цвету, на цвет, определённый заливкой

Imagick::paintTransparentImage

(PECL imagick 2, PECL imagick 3)

Imagick::paintTransparentImage — Изменяет любой пиксель, соответствующий цвету, на цвет, определённый заливкой

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::paintTransparentImage(mixed $target, float $alpha, float $fuzz): bool

Изменяет любой пиксель, соответствующий цвету, на цвет, определённый заливкой.

Список параметров

target

Целевой цвет, заменяемый на указанное значение непрозрачности в изображении.

alpha

Уровень прозрачности: 1.0 - полностью непрозрачный, 0.0 - полностью прозрачный.

fuzz

Определяет, насколько допустимо считать два цвета одинаковыми.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь разрешает использовать строку, представляющую цвет, в качестве первого параметра. Предыдущие версии допускали только объект ImagickPixel.


Получает основные атрибуты изображения

  • « Imagick::paintTransparentImage
  • Imagick::pingImageBlob »
  • PHP Manual
  • Imagick
  • Получает основные атрибуты изображения

Imagick::pingImage

(PECL imagick 2, PECL imagick 3)

Imagick::pingImage — Получает основные атрибуты изображения

Описание

public Imagick::pingImage(string $filename): bool

Метод можно использовать для запроса ширины, высоты, размера и формата изображения без считывания всего изображения в память.

Список параметров

filename

Имя файла, из которого следует прочитать информацию.

Возвращаемые значения

В случае успешной работы возвращает true.


Быстро извлекает атрибуты

  • « Imagick::pingImage
  • Imagick::pingImageFile »
  • PHP Manual
  • Imagick
  • Быстро извлекает атрибуты

Imagick::pingImageBlob

(PECL imagick 2, PECL imagick 3)

Imagick::pingImageBlob — Быстро извлекает атрибуты

Описание

public Imagick::pingImageBlob(string $image): bool

Метод можно использовать для запроса ширины, высоты, размера и формата изображения без считывания всего изображения в память. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

image

Строка, содержащая изображение.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::pingImageBlob()

Получение изображения из строки

<?php
/* чтение содержимого изображения */
$image = file_get_contents("test.jpg");

/* создание нового объекта imagick */
$im = new Imagick();

/* передача строки объекту imagick */
$im->pingImageBlob($image);

/* вывод ширины и высоты изображения */
echo $im->getImageWidth() . 'x' . $im->getImageHeight();
?>

Смотрите также

  • Imagick::pingImage() - Получает основные атрибуты изображения
  • Imagick::pingImageFile() - Получает базовые атрибуты изображения упрощённым способом
  • Imagick::readImage() - Читает изображение из файла
  • Imagick::readImageBlob() - Считывает изображение из двоичной строки
  • Imagick::readImageFile() - Читает изображение из открытого дескриптора файла


Получает базовые атрибуты изображения упрощённым способом

  • « Imagick::pingImageBlob
  • Imagick::polaroidImage »
  • PHP Manual
  • Imagick
  • Получает базовые атрибуты изображения упрощённым способом

Imagick::pingImageFile

(PECL imagick 2, PECL imagick 3)

Imagick::pingImageFile — Получает базовые атрибуты изображения упрощённым способом

Описание

public Imagick::pingImageFile(resource $filehandle, string $fileName = ?): bool

Метод можно использовать для запроса ширины, высоты, размера и формата изображения без считывания всего изображения в память. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

filehandle

Открытый дескриптор файла изображения.

fileName

Необязательное имя файла для данного изображения.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::pingImageFile()

Открытие удалённой локации

<?php
/* Открытие удалённой локации с помощью fopen */
$fp = fopen("http://example.com/test.jpg");

/* Создание нового объекта Imagick */
$im = new Imagick();

/* Передача дескриптора объекту Imagick */
$im->pingImageFile($fp);
?>

Смотрите также

  • Imagick::pingImage() - Получает основные атрибуты изображения
  • Imagick::pingImageBlob() - Быстро извлекает атрибуты
  • Imagick::readImage() - Читает изображение из файла
  • Imagick::readImageBlob() - Считывает изображение из двоичной строки
  • Imagick::readImageFile() - Читает изображение из открытого дескриптора файла


Имитирует фото Polaroid

  • « Imagick::pingImageFile
  • Imagick::posterizeImage »
  • PHP Manual
  • Imagick
  • Имитирует фото Polaroid

Imagick::polaroidImage

(PECL imagick 2, PECL imagick 3)

Imagick::polaroidImage — Имитирует фото Polaroid

Описание

public Imagick::polaroidImage(ImagickDraw $properties, float $angle): bool

Имитирует фото Polaroid. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или старше.

Список параметров

properties

Свойства Polaroid.

angle

Угол Polaroid.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::polaroidImage()

Пример использования Imagick::polaroidImage()

<?php
/* Создание объекта */
$image = new Imagick('source.png');

/* Установка непрозрачности */
$image->polaroidImage(new ImagickDraw(), 25);

/* Вывод изображения */
header('Content-type: image/png');
echo $image;

?>


Уменьшает изображение до ограниченного количества уровней цвета

  • « Imagick::polaroidImage
  • Imagick::previewImages »
  • PHP Manual
  • Imagick
  • Уменьшает изображение до ограниченного количества уровней цвета

Imagick::posterizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::posterizeImage — Уменьшает изображение до ограниченного количества уровней цвета

Описание

public Imagick::posterizeImage(int $levels, bool $dither): bool

Уменьшает изображение до ограниченного количества уровней цвета.

Список параметров

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);

?>


Быстрое определение подходящих параметров для обработки изображений

  • « Imagick::posterizeImage
  • Imagick::previousImage »
  • PHP Manual
  • Imagick
  • Быстрое определение подходящих параметров для обработки изображений

Imagick::previewImages

(PECL imagick 2, PECL imagick 3)

Imagick::previewImages — Быстрое определение подходящих параметров для обработки изображений

Описание

public Imagick::previewImages(int $preview): bool

Размещает 9 миниатюр указанного изображения с помощью операции обработки изображения, применяемой с разной интенсивностью. Это помогает быстро определить подходящий параметр для операции обработки изображения.

Список параметров

preview

Тип предварительного просмотра. Смотрите константы типа предварительного просмотра

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Переходит к предыдущему изображению в объекте

  • « Imagick::previewImages
  • Imagick::profileImage »
  • PHP Manual
  • Imagick
  • Переходит к предыдущему изображению в объекте

Imagick::previousImage

(PECL imagick 2, PECL imagick 3)

Imagick::previousImage — Переходит к предыдущему изображению в объекте

Описание

public Imagick::previousImage(): bool

Связывает предыдущее изображение в списке изображений с объектом Imagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Добавляет или удаляет профиль изображения

  • « Imagick::previousImage
  • Imagick::quantizeImage »
  • PHP Manual
  • Imagick
  • Добавляет или удаляет профиль изображения

Imagick::profileImage

(PECL imagick 2, PECL imagick 3)

Imagick::profileImage — Добавляет или удаляет профиль изображения

Описание

public Imagick::profileImage(string $name, ?string $profile): bool

Добавляет или удаляет ICC, IPTC или общий профиль изображения. Если профиль NULL, он удаляется, иначе - добавляется. Используйте имя '*' и профиль NULL, чтобы удалить все профили изображения.

Список параметров

name

profile

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Анализирует цвета эталонного изображения

  • « Imagick::profileImage
  • Imagick::quantizeImages »
  • PHP Manual
  • Imagick
  • Анализирует цвета эталонного изображения

Imagick::quantizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::quantizeImage — Анализирует цвета эталонного изображения

Описание

public 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();
}

?>


Анализирует цвета в последовательности изображений

  • « Imagick::quantizeImage
  • Imagick::queryFontMetrics »
  • PHP Manual
  • Imagick
  • Анализирует цвета в последовательности изображений

Imagick::quantizeImages

(PECL imagick 2, PECL imagick 3)

Imagick::quantizeImages — Анализирует цвета в последовательности изображений

Описание

public Imagick::quantizeImages(
int $numberColors,
int $colorspace,
int $treedepth,
bool $dither,
bool $measureError
): bool

Список параметров

numberColors

colorspace

treedepth

dither

measureError

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Возвращает массив, представляющий метрики шрифта

  • « Imagick::quantizeImages
  • Imagick::queryFonts »
  • PHP Manual
  • Imagick
  • Возвращает массив, представляющий метрики шрифта

Imagick::queryFontMetrics

(PECL imagick 2, PECL imagick 3)

Imagick::queryFontMetrics — Возвращает массив, представляющий метрики шрифта

Описание

public Imagick::queryFontMetrics(ImagickDraw $properties, string $text, bool $multiline = ?): array

Возвращает многомерный массив, представляющий метрики шрифта.

Список параметров

properties

Объект ImagickDraw, содержащий свойства шрифта.

text

Текст.

multiline

Многострочный параметр. Если оставить пустым, он определяется автоматически.

Возвращаемые значения

Возвращает многомерный массив, представляющий метрики шрифта.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::queryFontMetrics():

Запрашивает метрики для текста и выводит результаты на экран.

<?php
/* Создание нового объекта Imagick */
$im = new Imagick();

/* Создание нового объекта Imagick */
$draw = new ImagickDraw();

/* Установка шрифта */
$draw->setFont('/path/to/font.ttf');

/* Вывод метрики шрифта, автоматическое определение многострочного параметра */
var_dump($im->queryFontMetrics($draw, "Hello World!"));
?>


Возвращает настроенные шрифты

  • « Imagick::queryFontMetrics
  • Imagick::queryFormats »
  • PHP Manual
  • Imagick
  • Возвращает настроенные шрифты

Imagick::queryFonts

(PECL imagick 2, PECL imagick 3)

Imagick::queryFonts — Возвращает настроенные шрифты

Описание

public static Imagick::queryFonts(string $pattern = "*"): array

Возвращает настроенные шрифты.

Список параметров

pattern

Шаблон запроса

Возвращаемые значения

Возвращает массив, содержащий настроенные шрифты.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::queryFonts()

<?php
$output = '';
$output .= "Шрифты, соответствующие 'Helvetica*':<br/>";

$fontList = \Imagick::queryFonts("Helvetica*");

foreach ($fontList as $fontName) {
$output .= '<li>'. $fontName."</li>";
}

return $output;

?>


Возвращает форматы, поддерживаемые Imagick

  • « Imagick::queryFonts
  • Imagick::radialBlurImage »
  • PHP Manual
  • Imagick
  • Возвращает форматы, поддерживаемые Imagick

Imagick::queryFormats

(PECL imagick 2, PECL imagick 3)

Imagick::queryFormats — Возвращает форматы, поддерживаемые Imagick

Описание

public static Imagick::queryFormats(string $pattern = "*"): array

Возвращает форматы, поддерживаемые Imagick.

Список параметров

pattern

Возвращаемые значения

Возвращает массив, содержащий форматы, поддерживаемые 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;
}

?>


Радиальное размытие изображения

  • « Imagick::queryFormats
  • Imagick::raiseImage »
  • PHP Manual
  • Imagick
  • Радиальное размытие изображения

Imagick::radialBlurImage

(PECL imagick 2, PECL imagick 3)

Imagick::radialBlurImage — Радиальное размытие изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::radialBlurImage(float $angle, int $channel = Imagick::CHANNEL_DEFAULT): bool

Радиальное размытие изображения.

Список параметров

angle

channel

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::radialBlurImage()

<?php
function radialBlurImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
//Размытие 3 раза с разными радиусами
$imagick->radialBlurImage(3);
$imagick->radialBlurImage(5);
$imagick->radialBlurImage(7);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Создаёт имитацию эффекта 3D-кнопки

  • « Imagick::radialBlurImage
  • Imagick::randomThresholdImage »
  • PHP Manual
  • Imagick
  • Создаёт имитацию эффекта 3D-кнопки

Imagick::raiseImage

(PECL imagick 2, PECL imagick 3)

Imagick::raiseImage — Создаёт имитацию эффекта 3D-кнопки

Описание

public Imagick::raiseImage(
int $width,
int $height,
int $x,
int $y,
bool $raise
): bool

Создаёт имитацию трёхмерного эффекта кнопки, осветляя и затемняя края изображения. Ширина и высота элементов raise_info определяют ширину вертикального и горизонтального края эффекта.

Список параметров

width

height

x

y

raise

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::raiseImage()

<?php
function raiseImage($imagePath, $width, $height, $x, $y, $raise) {
$imagick = new \Imagick(realpath($imagePath));

//x и y ничего не делают?
$imagick->raiseImage($width, $height, $x, $y, $raise);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Создаёт высококонтрастное двухцветное изображение

  • « Imagick::raiseImage
  • Imagick::readImage »
  • PHP Manual
  • Imagick
  • Создаёт высококонтрастное двухцветное изображение

Imagick::randomThresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::randomThresholdImage — Создаёт высококонтрастное двухцветное изображение

Описание

public Imagick::randomThresholdImage(float $low, float $high, int $channel = Imagick::CHANNEL_DEFAULT): bool

Изменяет значение отдельных пикселей в зависимости от интенсивности каждого пикселя по сравнению с пороговым значением. В результате получается высококонтрастное двухцветное изображение. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

low

Нижняя точка.

high

Верхняя точка.

channel

Укажите любую константу CHANNEL, которая подходит для заданного режима канала. Для применения более чем к одному каналу необходимо объединить константы типа CHANNEL с помощью побитовых операторов. Обратитесь к этому списку констант CHANNEL.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Читает изображение из файла

  • « Imagick::randomThresholdImage
  • Imagick::readImageBlob »
  • PHP Manual
  • Imagick
  • Читает изображение из файла

Imagick::readImage

(PECL imagick 2, PECL imagick 3)

Imagick::readImage — Читает изображение из файла

Описание

public Imagick::readImage(string $filename): bool

Читает изображение из файла.

Список параметров

filename

Возвращаемые значения

В случае успешной работы возвращает true.


Считывает изображение из двоичной строки

  • « Imagick::readImage
  • Imagick::readImageFile »
  • PHP Manual
  • Imagick
  • Считывает изображение из двоичной строки

Imagick::readImageBlob

(PECL imagick 2, PECL imagick 3)

Imagick::readImageBlob — Считывает изображение из двоичной строки

Описание

public Imagick::readImageBlob(string $image, string $filename = ?): bool

Считывает изображение из двоичной строки.

Список параметров

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;
}

?>


Читает изображение из открытого дескриптора файла

  • « Imagick::readImageBlob
  • Imagick::readimages »
  • PHP Manual
  • Imagick
  • Читает изображение из открытого дескриптора файла

Imagick::readImageFile

(PECL imagick 2, PECL imagick 3)

Imagick::readImageFile — Читает изображение из открытого дескриптора файла

Описание

public Imagick::readImageFile(resource $filehandle, string $fileName = null): bool

Читает изображение из открытого дескриптора файла.

Список параметров

filehandle

fileName

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Читает изображение из массива имён файлов

  • « Imagick::readImageFile
  • Imagick::recolorImage »
  • PHP Manual
  • Imagick
  • Читает изображение из массива имён файлов

Imagick::readimages

(PECL imagick 2, PECL imagick 3)

Imagick::readimages — Читает изображение из массива имён файлов

Описание

public Imagick::readImages(array $filenames): bool

Читает изображение из массива имён файлов. Все изображения хранятся в одном объекте Imagick.

Список параметров

filenames

Возвращаемые значения

В случае успешной работы возвращает true.


Перекрашивает изображение

  • « Imagick::readimages
  • Imagick::reduceNoiseImage »
  • PHP Manual
  • Imagick
  • Перекрашивает изображение

Imagick::recolorImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::recolorImage — Перекрашивает изображение

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::recolorImage(array $matrix): bool

Преобразование, масштабирование, сдвиг или поворот цветов изображения. Метод поддерживает матрицы переменного размера, но обычно матрица 5x5 используется для RGBA, а 6x6 - для CMYK. Последняя строка должна содержать нормализованные значения. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

matrix

Матрица, содержащая значения цвета.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #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();
}

?>

Смотрите также

  • Imagick::displayImage() - Выводит изображение


Сглаживает контуры изображения

  • « Imagick::recolorImage
  • Imagick::remapImage »
  • PHP Manual
  • Imagick
  • Сглаживает контуры изображения

Imagick::reduceNoiseImage

(PECL imagick 2, PECL imagick 3)

Imagick::reduceNoiseImage — Сглаживает контуры изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::reduceNoiseImage(float $radius): bool

Сглаживает контуры изображения, сохраняя при этом информацию о краях. Алгоритм работает, заменяя каждый пиксель ближайшим по значению соседом. Сосед определяется радиусом. При использовании радиуса 0, Imagick::reduceNoiseImage() выберет подходящий радиус автоматически.

Список параметров

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();
}

?>


Переназначает цвета изображения

  • « Imagick::reduceNoiseImage
  • Imagick::removeImage »
  • PHP Manual
  • Imagick
  • Переназначает цвета изображения

Imagick::remapImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::remapImage — Переназначает цвета изображения

Описание

public Imagick::remapImage(Imagick $replacement, int $DITHER): bool

Заменяет цвета изображения на те, которые определены параметром replacement. Цвета заменяются наиболее близким из возможных. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

replacement

Объект Imagick, содержащий заменяющие цвета.

DITHER

Обратитесь к списку констант DITHERMETHOD.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Удаляет изображение из списка изображений

  • « Imagick::remapImage
  • Imagick::removeImageProfile »
  • PHP Manual
  • Imagick
  • Удаляет изображение из списка изображений

Imagick::removeImage

(PECL imagick 2, PECL imagick 3)

Imagick::removeImage — Удаляет изображение из списка изображений

Описание

public Imagick::removeImage(): bool

Удаляет изображение из списка изображений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Удаляет именованный профиль изображения и возвращает его

  • « Imagick::removeImage
  • Imagick::render »
  • PHP Manual
  • Imagick
  • Удаляет именованный профиль изображения и возвращает его

Imagick::removeImageProfile

(PECL imagick 2, PECL imagick 3)

Imagick::removeImageProfile — Удаляет именованный профиль изображения и возвращает его

Описание

public Imagick::removeImageProfile(string $name): string

Удаляет именованный профиль изображения и возвращает его.

Список параметров

name

Возвращаемые значения

Возвращает строку, содержащую профиль изображения.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Отображает все предыдущие команды рисования

  • « Imagick::removeImageProfile
  • Imagick::resampleImage »
  • PHP Manual
  • Imagick
  • Отображает все предыдущие команды рисования

Imagick::render

(PECL imagick 2, PECL imagick 3)

Imagick::render — Отображает все предыдущие команды рисования

Описание

public Imagick::render(): bool

Отображает все предыдущие команды рисования.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Преобразует изображение к желаемому разрешению

  • « Imagick::render
  • Imagick::resetImagePage »
  • PHP Manual
  • Imagick
  • Преобразует изображение к желаемому разрешению

Imagick::resampleImage

(PECL imagick 2, PECL imagick 3)

Imagick::resampleImage — Преобразует изображение к желаемому разрешению

Описание

public Imagick::resampleImage(
float $x_resolution,
float $y_resolution,
int $filter,
float $blur
): bool

Преобразует изображение к желаемому разрешению.

Список параметров

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();
}

?>


Сбрасывает страницу изображения

  • « Imagick::resampleImage
  • Imagick::resizeImage »
  • PHP Manual
  • Imagick
  • Сбрасывает страницу изображения

Imagick::resetImagePage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::resetImagePage — Сбрасывает страницу изображения

Описание

public Imagick::resetImagePage(string $page): bool

Определение страницы в виде строки. Строка имеет формат WxH+x+y. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

page

Определение страницы. Например, 7168x5147+0+0.

Возвращаемые значения

В случае успешной работы возвращает true.


Масштабирует изображение

  • « Imagick::resetImagePage
  • Imagick::rollImage »
  • PHP Manual
  • Imagick
  • Масштабирует изображение

Imagick::resizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::resizeImage — Масштабирует изображение

Описание

public Imagick::resizeImage(
int $columns,
int $rows,
int $filter,
float $blur,
bool $bestfit = false,
bool $legacy = false
): bool

Масштабирует изображение до желаемых размеров с помощью filter.

Замечание: Поведение параметра bestfit было изменено в Imagick 3.0.0. До этой версии при изменении изображения размером 200x150 до 400x300 никаких операций не происходило. В Imagick 3.0.0 и далее изображение будет масштабировано до размеров 400x300, так как это наилучшим образом соответствует ("best fit") данным размерам. Если используется параметр bestfit, то ширина и высота также должны быть определены.

Список параметров

columns

Ширина изображения.

rows

Высота изображения.

filter

Обратитесь к списку констант FILTER.

blur

Коэффициент размытия, где значение > 1 делает изображение более размытым, а значение < 1 - более резким.

bestfit

Необязательный параметр подгонки.

Возвращаемые значения

В случае успешной работы возвращает true.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Добавлен необязательный параметр подгонки. Теперь метод поддерживает пропорциональное масштабирование. Для пропорционального масштабирования необходимо передать ноль в качестве любого параметра.

Примеры

Пример #1 Пример использования Imagick::resizeImage()

<?php
function resizeImage($imagePath, $width, $height, $filterType, $blur, $bestFit, $cropZoom) {
//Коэффициент размытия, где значение > 1 делает изображение более размытым, а значение < 1 - более резким.
$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();
}

?>


Смещает изображение

  • « Imagick::resizeImage
  • Imagick::rotateImage »
  • PHP Manual
  • Imagick
  • Смещает изображение

Imagick::rollImage

(PECL imagick 2, PECL imagick 3)

Imagick::rollImage — Смещает изображение

Описание

public Imagick::rollImage(int $x, int $y): bool

Смещает изображение в соответствии с определением x и y.

Список параметров

x

Смещение по оси X.

y

Смещение по оси Y.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Поворачивает изображение

  • « Imagick::rollImage
  • Imagick::rotationalBlurImage »
  • PHP Manual
  • Imagick
  • Поворачивает изображение

Imagick::rotateImage

(PECL imagick 2, PECL imagick 3)

Imagick::rotateImage — Поворачивает изображение

Описание

public Imagick::rotateImage(mixed $background, float $degrees): bool

Поворачивает изображение на указанное количество градусов. Пустые треугольники, оставшиеся от поворота изображения, заполняются цветом фона.

Список параметров

background

Цвет фона.

degrees

Угол поворота в градусах. Угол поворота интерпретируется как количество градусов для поворота изображения по часовой стрелке.

Возвращаемые значения

В случае успешной работы возвращает true.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь разрешено использование строки, представляющей цвет, в качестве первого параметра. Предыдущие версии допускали только объект ImagickPixel.

Примеры

Пример #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();
}

?>


Применяет вращательное размытие к изображению

  • « Imagick::rotateImage
  • Imagick::roundCorners »
  • PHP Manual
  • Imagick
  • Применяет вращательное размытие к изображению

Imagick::rotationalBlurImage

(PECL imagick 3 >= 3.3.0)

Imagick::rotationalBlurImage — Применяет вращательное размытие к изображению

Описание

public Imagick::rotationalBlurImage(float $angle, int $channel = Imagick::CHANNEL_DEFAULT): bool

Применяет вращательное размытие к изображению.

Список параметров

angle

Угол размытия.

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();
}

?>


Скругляет углы изображения

  • « Imagick::rotationalBlurImage
  • Imagick::sampleImage »
  • PHP Manual
  • Imagick
  • Скругляет углы изображения

Imagick::roundCorners

(PECL imagick 2, PECL imagick 3)

Imagick::roundCorners — Скругляет углы изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::roundCorners(
float $x_rounding,
float $y_rounding,
float $stroke_width = 10,
float $displace = 5,
float $size_correction = -6
): bool

Скругляет углы изображения. Первые два параметра управляют степенью округления, а три последних параметра могут использоваться для точной настройки процесса округления. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше. Этот метод недоступен, если Imagick был скомпилирован с версией ImageMagick 7.0.70или старше.

Список параметров

x_rounding

Округление по x.

y_rounding

Округление по y.

stroke_width

Ширина обводки.

displace

Смещение изображения.

size_correction

Коррекция размера.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::roundCorners()

Закругление углов изображения

<?php

$image = new Imagick();
$image->newPseudoImage(100, 100, "magick:rose");
$image->setImageFormat("png");

$image->roundCorners(5,3);
$image->writeImage("rounded.png");
?>


Масштабирует изображение с пиксельной выборкой

  • « Imagick::roundCorners
  • Imagick::scaleImage »
  • PHP Manual
  • Imagick
  • Масштабирует изображение с пиксельной выборкой

Imagick::sampleImage

(PECL imagick 2, PECL imagick 3)

Imagick::sampleImage — Масштабирует изображение с пиксельной выборкой

Описание

public Imagick::sampleImage(int $columns, int $rows): bool

Масштабирует изображение до желаемых размеров с помощью выборки пикселей. В отличие от других методов масштабирования, этот метод не вводит дополнительный цвет в масштабируемое изображение.

Список параметров

columns

rows

Возвращаемые значения

В случае успешной работы возвращает true.


Масштабирует размер изображения

  • « Imagick::sampleImage
  • Imagick::segmentImage »
  • PHP Manual
  • Imagick
  • Масштабирует размер изображения

Imagick::scaleImage

(PECL imagick 2, PECL imagick 3)

Imagick::scaleImage — Масштабирует размер изображения

Описание

public Imagick::scaleImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $legacy = false
): bool

Масштабирует изображение до заданных размеров. Второй параметр будет вычислен, если в качестве любого из параметров будет передан 0.

Замечание: Поведение параметра bestfit было изменено в Imagick 3.0.0. До этой версии при изменении изображения размером 200x150 до 400x300 никаких операций не происходило. В Imagick 3.0.0 и далее изображение будет масштабировано до размеров 400x300, так как это наилучшим образом соответствует ("best fit") данным размерам. Если используется параметр bestfit, то ширина и высота также должны быть определены.

Список параметров

columns

rows

bestfit

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Добавлен необязательный параметр fit. Метод теперь поддерживает пропорциональное масштабирование. Передайте ноль в качестве любого параметра для пропорционального масштабирования.

Примеры

Пример #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();
}

?>


Сегментирует изображение

  • « Imagick::scaleImage
  • Imagick::selectiveBlurImage »
  • PHP Manual
  • Imagick
  • Сегментирует изображение

Imagick::segmentImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::segmentImage — Сегментирует изображение

Описание

public Imagick::segmentImage(
int $COLORSPACE,
float $cluster_threshold,
float $smooth_threshold,
bool $verbose = false
): bool

Анализирует изображение и определяет похожие объекты. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

COLORSPACE

Одна из констант COLORSPACE.

cluster_threshold

Процент, описывающий минимальное количество пикселей, содержащихся в гексаэдре, прежде чем он будет считаться корректным.

smooth_threshold

Устраняет шум на гистограмме.

verbose

Определяет, выводить ли подробную информацию о распознанных классах.

Возвращаемые значения

Примеры

Пример #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);

?>


Выборочное размытие изображения в пределах порогового значения контрастности

  • « Imagick::segmentImage
  • Imagick::separateImageChannel »
  • PHP Manual
  • Imagick
  • Выборочное размытие изображения в пределах порогового значения контрастности

Imagick::selectiveBlurImage

(PECL imagick 3 >= 3.3.0)

Imagick::selectiveBlurImage — Выборочное размытие изображения в пределах порогового значения контрастности

Описание

public Imagick::selectiveBlurImage(
float $radius,
float $sigma,
float $threshold,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Выборочное размытие изображения в пределах порогового значения контрастности. Это похоже на маску нерезкости, которая увеличивает резкость всего, если контраст превышает определённый порог.

Список параметров

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();
}

?>


Отделяет канал от изображения

  • « Imagick::selectiveBlurImage
  • Imagick::sepiaToneImage »
  • PHP Manual
  • Imagick
  • Отделяет канал от изображения

Imagick::separateImageChannel

(PECL imagick 2, PECL imagick 3)

Imagick::separateImageChannel — Отделяет канал от изображения

Описание

public Imagick::separateImageChannel(int $channel): bool

Отделяет канал от изображения и возвращает изображение в оттенках серого. Канал - это определённый цветовой компонент каждого пикселя изображения.

Список параметров

channel

Определяет, какой 'канал' вернуть. Для цветовых пространств, отличных от RGB, можно использовать константы CHANNEL_RED, CHANNEL_GREEN, CHANNEL_BLUE для обозначения 1-го, 2-го и 3-го каналов.

Возвращаемые значения

В случае успешной работы возвращает 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);

?>


Тонирование изображения сепией

  • « Imagick::separateImageChannel
  • Imagick::setBackgroundColor »
  • PHP Manual
  • Imagick
  • Тонирование изображения сепией

Imagick::sepiaToneImage

(PECL imagick 2, PECL imagick 3)

Imagick::sepiaToneImage — Тонирование изображения сепией

Описание

public Imagick::sepiaToneImage(float $threshold): bool

Применяет к изображению специальный эффект, аналогичный эффекту, достигаемому в фотолаборатории с помощью тонирования сепией. Порог варьируется от 0 до QuantumRange и является мерой степени тонирования сепии. Порог 80 - хорошая отправная точка для разумного тона.

Список параметров

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();
}

?>


Устанавливает цвет фона объекта по умолчанию

  • « Imagick::sepiaToneImage
  • Imagick::setColorspace »
  • PHP Manual
  • Imagick
  • Устанавливает цвет фона объекта по умолчанию

Imagick::setBackgroundColor

(PECL imagick 2, PECL imagick 3)

Imagick::setBackgroundColor — Устанавливает цвет фона объекта по умолчанию

Описание

public Imagick::setBackgroundColor(mixed $background): bool

Устанавливает цвет фона объекта по умолчанию.

Список параметров

background

Возвращаемые значения

В случае успешной работы возвращает true.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь позволяет использовать представляющую цвет строку в качестве параметра. Предыдущие версии позволяли использовать только объект ImagickPixel.


Устанавливает цветовое пространство

  • « Imagick::setBackgroundColor
  • Imagick::setCompression »
  • PHP Manual
  • Imagick
  • Устанавливает цветовое пространство

Imagick::setColorspace

(PECL imagick 3)

Imagick::setColorspace — Устанавливает цветовое пространство

Описание

public Imagick::setColorspace(int $COLORSPACE): bool

Устанавливает значение глобального цветового пространства для объекта. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Список параметров

COLORSPACE

Одна из констант COLORSPACE.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает тип сжатия объекта по умолчанию

  • « Imagick::setColorspace
  • Imagick::setCompressionQuality »
  • PHP Manual
  • Imagick
  • Устанавливает тип сжатия объекта по умолчанию

Imagick::setCompression

(PECL imagick 2, PECL imagick 3)

Imagick::setCompression — Устанавливает тип сжатия объекта по умолчанию

Описание

public Imagick::setCompression(int $compression): bool

Устанавливает тип сжатия объекта по умолчанию.

Список параметров

compression

Тип сжатия. Смотрите константы Imagick::COMPRESSION_*.

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает качество сжатия объекта по умолчанию

  • « Imagick::setCompression
  • Imagick::setFilename »
  • PHP Manual
  • Imagick
  • Устанавливает качество сжатия объекта по умолчанию

Imagick::setCompressionQuality

(PECL imagick 2, PECL imagick 3)

Imagick::setCompressionQuality — Устанавливает качество сжатия объекта по умолчанию

Описание

public Imagick::setCompressionQuality(int $quality): bool

Устанавливает качество сжатия объекта по умолчанию.

Предостережение

Этот метод работает только для новых изображений, например, созданных с помощью Imagick::newPseudoImage. Для существующих изображений следует использовать Imagick::setImageCompressionQuality().

Список параметров

quality

Целое число (int) от 1 до 100, 1 = высокая степень сжатия, 100 = низкая степень сжатия.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Устанавливает имя файла перед чтением или записью изображения

  • « Imagick::setCompressionQuality
  • Imagick::setFirstIterator »
  • PHP Manual
  • Imagick
  • Устанавливает имя файла перед чтением или записью изображения

Imagick::setFilename

(PECL imagick 2, PECL imagick 3)

Imagick::setFilename — Устанавливает имя файла перед чтением или записью изображения

Описание

public Imagick::setFilename(string $filename): bool

Устанавливает имя файла перед чтением или записью изображения.

Список параметров

filename

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает итератор Imagick для первого изображения

  • « Imagick::setFilename
  • Imagick::setFont »
  • PHP Manual
  • Imagick
  • Устанавливает итератор Imagick для первого изображения

Imagick::setFirstIterator

(PECL imagick 2, PECL imagick 3)

Imagick::setFirstIterator — Устанавливает итератор Imagick для первого изображения

Описание

public Imagick::setFirstIterator(): bool

Устанавливает итератор Imagick для первого изображения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает шрифт

  • « Imagick::setFirstIterator
  • Imagick::setFormat »
  • PHP Manual
  • Imagick
  • Устанавливает шрифт

Imagick::setFont

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::setFont — Устанавливает шрифт

Описание

public Imagick::setFont(string $font): bool

Устанавливает объекту свойство шрифт. Метод можно использовать, например, для установки шрифта для caption: формат псевдоизображений. Шрифт должен быть настроен в конфигурации ImageMagick или должен существовать файл с именем font. Метод не следует путать с методом ImagickDraw::setFont(), который устанавливает шрифт для определённого объекта ImagickDraw. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Список параметров

font

Имя шрифта или файла.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::setFont()

Пример использования Imagick::setFont

<?php
/* Создание нового объекта Imagick */
$im = new Imagick();

/* Установка шрифта для объекта */
$im->setFont("example.ttf");

/* Создание нового заголовка */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Работа с изображением */
?>

Смотрите также

  • Imagick::getFont() - Возвращает название шрифта
  • ImagickDraw::setFont() - Устанавливает указанный шрифт для использования при аннотировании текстом
  • ImagickDraw::getFont() - Возвращает шрифт


Устанавливает формат объекта Imagick

  • « Imagick::setFont
  • Imagick::setGravity »
  • PHP Manual
  • Imagick
  • Устанавливает формат объекта Imagick

Imagick::setFormat

(PECL imagick 2, PECL imagick 3)

Imagick::setFormat — Устанавливает формат объекта Imagick

Описание

public Imagick::setFormat(string $format): bool

Устанавливает формат объекта Imagick.

Список параметров

format

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает гравитацию

  • « Imagick::setFormat
  • Imagick::setImage »
  • PHP Manual
  • Imagick
  • Устанавливает гравитацию

Imagick::setGravity

(PECL imagick 2 >= 2.2.0, PECL imagick 3)

Imagick::setGravity — Устанавливает гравитацию

Описание

public Imagick::setGravity(int $gravity): bool

Устанавливает глобальное свойство гравитации для объекта Imagick. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или старше.

Список параметров

gravity

Свойство гравитации. Обратитесь к списку констант GRAVITY.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Заменяет изображение в объекте

  • « Imagick::setGravity
  • Imagick::setImageAlphaChannel »
  • PHP Manual
  • Imagick
  • Заменяет изображение в объекте

Imagick::setImage

(PECL imagick 2, PECL imagick 3)

Imagick::setImage — Заменяет изображение в объекте

Описание

public Imagick::setImage(Imagick $replace): bool

Заменяет текущую последовательность изображений изображением из заменяющего объекта.

Список параметров

replace

Заменяющий объект Imagick.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::setImage()

Пример использования Imagick::setImage()

<?php
/* Создание объектов */
$image = new Imagick('source.jpg');
$replace = new Imagick('replace.jpg');

/* source.jpg заменяется на replace.jpg */
$image->setImage($replace);

/* Вывод изображения */
header('Content-type: image/jpeg');
echo $image;

?>


Устанавливает альфа-канал изображения

  • « Imagick::setImage
  • Imagick::setImageArtifact »
  • PHP Manual
  • Imagick
  • Устанавливает альфа-канал изображения

Imagick::setImageAlphaChannel

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::setImageAlphaChannel — Устанавливает альфа-канал изображения

Описание

public Imagick::setImageAlphaChannel(int $mode): bool

Активирует или деактивирует альфа-канал изображения. Параметр mode - одна из констант Imagick::ALPHACHANNEL_*. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или старше.

Список параметров

mode

Одна из констант Imagick::ALPHACHANNEL_*.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Смотрите также

  • Imagick::setImageMatte() - Устанавливает матовый канал изображения
  • Константы альфа-канала Imagick


Устанавливает артефакт изображения

  • « Imagick::setImageAlphaChannel
  • Imagick::setImageAttribute »
  • PHP Manual
  • Imagick
  • Устанавливает артефакт изображения

Imagick::setImageArtifact

(PECL imagick 3)

Imagick::setImageArtifact — Устанавливает артефакт изображения

Описание

public Imagick::setImageArtifact(string $artifact, string $value): bool

Связывает артефакт с изображением. Разница между свойствами изображения и артефактами изображения заключается в том, что свойства являются общедоступными, а артефакты - закрытыми. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Список параметров

artifact

Имя артефакта.

value

Значение артефакта.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #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();
}

?>

Смотрите также

  • Imagick::getImageArtifact() - Возвращает артефакт изображения
  • Imagick::deleteImageArtifact() - Удаляет артефакт изображения


Устанавливает атрибут изображения

  • « Imagick::setImageArtifact
  • Imagick::setImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Устанавливает атрибут изображения

Imagick::setImageAttribute

(PECL imagick 2, PECL imagick 3)

Imagick::setImageAttribute — Устанавливает атрибут изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::setImageAttribute(string $key, string $value): bool

Устанавливает атрибут изображения.

Список параметров

key

value

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает цвет фона изображения

  • « Imagick::setImageAttribute
  • Imagick::setImageBias »
  • PHP Manual
  • Imagick
  • Устанавливает цвет фона изображения

Imagick::setImageBackgroundColor

(PECL imagick 2, PECL imagick 3)

Imagick::setImageBackgroundColor — Устанавливает цвет фона изображения

Описание

public Imagick::setImageBackgroundColor(mixed $background): bool

Устанавливает цвет фона изображения.

Список параметров

background

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь позволяет использовать представляющую цвет строку в качестве параметра. Предыдущие версии позволяли использовать только объект ImagickPixel.


Устанавливает смещение изображения для любого метода, который свёртывает изображение

  • « Imagick::setImageBackgroundColor
  • Imagick::setImageBiasQuantum »
  • PHP Manual
  • Imagick
  • Устанавливает смещение изображения для любого метода, который свёртывает изображение

Imagick::setImageBias

(PECL imagick 2, PECL imagick 3)

Imagick::setImageBias — Устанавливает смещение изображения для любого метода, который свёртывает изображение

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::setImageBias(float $bias): bool

Устанавливает смещение изображения для любого метода, который свёртывает изображение (например, Imagick::ConvolveImage()).

Список параметров

bias

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::setImageBias()

<?php
//требуется ImageMagick версии 6.9.0-1, чтобы оказывать влияние на 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();
}

?>


Устанавливает смещение изображения

  • « Imagick::setImageBias
  • Imagick::setImageBluePrimary »
  • PHP Manual
  • Imagick
  • Устанавливает смещение изображения

Imagick::setImageBiasQuantum

(PECL imagick 3 >= 3.3.0)

Imagick::setImageBiasQuantum — Устанавливает смещение изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::setImageBiasQuantum(float $bias): void

Устанавливает смещение изображения. Смещение должно масштабироваться от 0 (без регулировки) до 1 (квантовое значение).

Список параметров

bias

Возвращаемые значения


Устанавливает цветность изображения голубой основной точкой

  • « Imagick::setImageBiasQuantum
  • Imagick::setImageBorderColor »
  • PHP Manual
  • Imagick
  • Устанавливает цветность изображения голубой основной точкой

Imagick::setImageBluePrimary

(PECL imagick 2, PECL imagick 3)

Imagick::setImageBluePrimary — Устанавливает цветность изображения голубой основной точкой

Описание

public Imagick::setImageBluePrimary(float $x, float $y): bool

Устанавливает цветность изображения голубой основной точкой.

Список параметров

x

y

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает цвет рамки изображения

  • « Imagick::setImageBluePrimary
  • Imagick::setImageChannelDepth »
  • PHP Manual
  • Imagick
  • Устанавливает цвет рамки изображения

Imagick::setImageBorderColor

(PECL imagick 2, PECL imagick 3)

Imagick::setImageBorderColor — Устанавливает цвет рамки изображения

Описание

public Imagick::setImageBorderColor(mixed $border): bool

Устанавливает цвет рамки изображения.

Список параметров

border

Цвет рамки

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь разрешается передавать строку, представляющую цвет в качестве параметра. Предыдущие версии допускают только объект ImagickPixel.


Устанавливает глубину определённого канала изображения

  • « Imagick::setImageBorderColor
  • Imagick::setImageClipMask »
  • PHP Manual
  • Imagick
  • Устанавливает глубину определённого канала изображения

Imagick::setImageChannelDepth

(PECL imagick 2, PECL imagick 3)

Imagick::setImageChannelDepth — Устанавливает глубину определённого канала изображения

Описание

public Imagick::setImageChannelDepth(int $channel, int $depth): bool

Устанавливает глубину определённого канала изображения.

Список параметров

channel

depth

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает маску клипа

  • « Imagick::setImageChannelDepth
  • Imagick::setImageColormapColor »
  • PHP Manual
  • Imagick
  • Устанавливает маску клипа

Imagick::setImageClipMask

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::setImageClipMask — Устанавливает маску клипа

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::setImageClipMask(Imagick $clip_mask): bool

Устанавливает маску клипа изображения из другого объекта Imagick. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

clip_mask

Объект Imagick, содержащий маску клипа

Возвращаемые значения

В случае успешной работы возвращает 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();

}

?>


Устанавливает цвет указанного индекса цветовой карты

  • « Imagick::setImageClipMask
  • Imagick::setImageColorspace »
  • PHP Manual
  • Imagick
  • Устанавливает цвет указанного индекса цветовой карты

Imagick::setImageColormapColor

(PECL imagick 2, PECL imagick 3)

Imagick::setImageColormapColor — Устанавливает цвет указанного индекса цветовой карты

Описание

public Imagick::setImageColormapColor(int $index, ImagickPixel $color): bool

Устанавливает цвет указанного индекса цветовой карты.

Список параметров

index

color

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает цветовое пространство изображения

  • « Imagick::setImageColormapColor
  • Imagick::setImageCompose »
  • PHP Manual
  • Imagick
  • Устанавливает цветовое пространство изображения

Imagick::setImageColorspace

(PECL imagick 2, PECL imagick 3)

Imagick::setImageColorspace — Устанавливает цветовое пространство изображения

Описание

public Imagick::setImageColorspace(int $colorspace): bool

Устанавливает цветовое пространство изображения. Метод следует использовать при создании новых изображений. Чтобы изменить цветовое пространство существующего изображения, вы должны использовать Imagick::transformImageColorspace().

Список параметров

colorspace

Одна из COLORSPACE констант

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает оператор составного изображения

  • « Imagick::setImageColorspace
  • Imagick::setImageCompression »
  • PHP Manual
  • Imagick
  • Устанавливает оператор составного изображения

Imagick::setImageCompose

(PECL imagick 2, PECL imagick 3)

Imagick::setImageCompose — Устанавливает оператор составного изображения

Описание

public Imagick::setImageCompose(int $compose): bool

Устанавливает оператор составного изображения, полезный для указания, как составлять эскиз изображения при использовании метода Imagick::montageImage().

Список параметров

compose

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает сжатие изображения

  • « Imagick::setImageCompose
  • Imagick::setImageCompressionQuality »
  • PHP Manual
  • Imagick
  • Устанавливает сжатие изображения

Imagick::setImageCompression

(PECL imagick 2, PECL imagick 3)

Imagick::setImageCompression — Устанавливает сжатие изображения

Описание

public Imagick::setImageCompression(int $compression): bool

Список параметров

compression

Одна из COMPRESSION констант

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает качество сжатия изображения

  • « Imagick::setImageCompression
  • Imagick::setImageDelay »
  • PHP Manual
  • Imagick
  • Устанавливает качество сжатия изображения

Imagick::setImageCompressionQuality

(PECL imagick 2, PECL imagick 3)

Imagick::setImageCompressionQuality — Устанавливает качество сжатия изображения

Описание

public Imagick::setImageCompressionQuality(int $quality): bool

Устанавливает качество сжатия изображения.

Список параметров

quality

Качество сжатия изображения в виде целого числа

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Устанавливает задержку изображения

  • « Imagick::setImageCompressionQuality
  • Imagick::setImageDepth »
  • PHP Manual
  • Imagick
  • Устанавливает задержку изображения

Imagick::setImageDelay

(PECL imagick 2, PECL imagick 3)

Imagick::setImageDelay — Устанавливает задержку изображения

Описание

public Imagick::setImageDelay(int $delay): bool

Устанавливает задержку изображения. Для анимированного изображения это количество времени, в течение которого этот кадр изображения должен отображаться до отображения следующего кадра.

Задержка может быть установлена индивидуально для каждого кадра в изображении.

Список параметров

delay

Количество времени, выраженное в 'тиках', для которого должно отображаться изображение. Для анимированных GIF-файлов есть 100 тиков в секунду, поэтому значение 20 будет равно 20/100 секунды, то есть 1/5 секунды.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Изменить анимированный GIF с помощью Imagick::setImageDelay()

<?php

// Измените анимированный GIF, чтобы его кадры воспроизводились с переменной скоростью,
// варьируясь от показа в течение 50 мс до 0 мс,
// что приведёт к пропуску фрейма в большинстве браузеров.
$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);

?>


Устанавливает глубину изображения

  • « Imagick::setImageDelay
  • Imagick::setImageDispose »
  • PHP Manual
  • Imagick
  • Устанавливает глубину изображения

Imagick::setImageDepth

(PECL imagick 2, PECL imagick 3)

Imagick::setImageDepth — Устанавливает глубину изображения

Описание

public Imagick::setImageDepth(int $depth): bool

Устанавливает глубину изображения.

Список параметров

depth

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает метод удаления изображения

  • « Imagick::setImageDepth
  • Imagick::setImageExtent »
  • PHP Manual
  • Imagick
  • Устанавливает метод удаления изображения

Imagick::setImageDispose

(PECL imagick 2, PECL imagick 3)

Imagick::setImageDispose — Устанавливает метод удаления изображения

Описание

public Imagick::setImageDispose(int $dispose): bool

Устанавливает метод удаления изображения.

Список параметров

dispose

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает размер изображения

  • « Imagick::setImageDispose
  • Imagick::setImageFilename »
  • PHP Manual
  • Imagick
  • Устанавливает размер изображения

Imagick::setImageExtent

(PECL imagick 2, PECL imagick 3)

Imagick::setImageExtent — Устанавливает размер изображения

Описание

public Imagick::setImageExtent(int $columns, int $rows): bool

Устанавливает размер изображения (то есть столбцы & строки).

Список параметров

columns

rows

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает имя файла конкретного изображения

  • « Imagick::setImageExtent
  • Imagick::setImageFormat »
  • PHP Manual
  • Imagick
  • Устанавливает имя файла конкретного изображения

Imagick::setImageFilename

(PECL imagick 2, PECL imagick 3)

Imagick::setImageFilename — Устанавливает имя файла конкретного изображения

Описание

public Imagick::setImageFilename(string $filename): bool

Устанавливает имя файла конкретного изображения в последовательности.

Список параметров

filename

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает формат определённого изображения

  • « Imagick::setImageFilename
  • Imagick::setImageGamma »
  • PHP Manual
  • Imagick
  • Устанавливает формат определённого изображения

Imagick::setImageFormat

(PECL imagick 2, PECL imagick 3)

Imagick::setImageFormat — Устанавливает формат определённого изображения

Описание

public Imagick::setImageFormat(string $format): bool

Устанавливает формат определённого изображения в последовательности.

Список параметров

format

Строковое представление формата изображения. Поддержка формата зависит от установки ImageMagick.

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает гамму изображения

  • « Imagick::setImageFormat
  • Imagick::setImageGravity »
  • PHP Manual
  • Imagick
  • Устанавливает гамму изображения

Imagick::setImageGamma

(PECL imagick 2, PECL imagick 3)

Imagick::setImageGamma — Устанавливает гамму изображения

Описание

public Imagick::setImageGamma(float $gamma): bool

Устанавливает гамму изображения.

Список параметров

gamma

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает гравитацию изображения

  • « Imagick::setImageGamma
  • Imagick::setImageGreenPrimary »
  • PHP Manual
  • Imagick
  • Устанавливает гравитацию изображения

Imagick::setImageGravity

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::setImageGravity — Устанавливает гравитацию изображения

Описание

public Imagick::setImageGravity(int $gravity): bool

Устанавливает свойство гравитации для текущего изображения. Метод можно использовать для установки свойства гравитации для одной последовательности изображений. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или старше.

Список параметров

gravity

Свойство гравитации. Обратитесь к списку gravity констант.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Устанавливает цветность изображения зелёной первичной точкой

  • « Imagick::setImageGravity
  • Imagick::setImageIndex »
  • PHP Manual
  • Imagick
  • Устанавливает цветность изображения зелёной первичной точкой

Imagick::setImageGreenPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::setImageGreenPrimary — Устанавливает цветность изображения зелёной первичной точкой

Описание

public Imagick::setImageGreenPrimary(float $x, float $y): bool

Устанавливает цветность изображения зелёной первичной точкой.

Список параметров

x

y

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает позицию итератора

  • « Imagick::setImageGreenPrimary
  • Imagick::setImageInterlaceScheme »
  • PHP Manual
  • Imagick
  • Устанавливает позицию итератора

Imagick::setImageIndex

(PECL imagick 2, PECL imagick 3)

Imagick::setImageIndex — Устанавливает позицию итератора

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::setImageIndex(int $index): bool

Устанавливает итератор в позицию в списке изображений, указанную параметром index.

Этот метод объявлен устаревшим. Используйте Imagick::setIteratorIndex().

Список параметров

index

Позиция для установки итератора.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает сжатие изображения

  • « Imagick::setImageIndex
  • Imagick::setImageInterpolateMethod »
  • PHP Manual
  • Imagick
  • Устанавливает сжатие изображения

Imagick::setImageInterlaceScheme

(PECL imagick 2, PECL imagick 3)

Imagick::setImageInterlaceScheme — Устанавливает сжатие изображения

Описание

public Imagick::setImageInterlaceScheme(int $interlace_scheme): bool

Устанавливает сжатие изображения.

Список параметров

interlace_scheme

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает метод интерполяции пикселей изображения

  • « Imagick::setImageInterlaceScheme
  • Imagick::setImageIterations »
  • PHP Manual
  • Imagick
  • Устанавливает метод интерполяции пикселей изображения

Imagick::setImageInterpolateMethod

(PECL imagick 2, PECL imagick 3)

Imagick::setImageInterpolateMethod — Устанавливает метод интерполяции пикселей изображения

Описание

public Imagick::setImageInterpolateMethod(int $method): bool

Устанавливает метод интерполяции пикселей изображения.

Список параметров

method

Метод, являющийся одной из констант Imagick::INTERPOLATE_*.

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает итерации изображения

  • « Imagick::setImageInterpolateMethod
  • Imagick::setImageMatte »
  • PHP Manual
  • Imagick
  • Устанавливает итерации изображения

Imagick::setImageIterations

(PECL imagick 2, PECL imagick 3)

Imagick::setImageIterations — Устанавливает итерации изображения

Описание

public Imagick::setImageIterations(int $iterations): bool

Устанавливает количество итераций, когда анимированное изображение повторяется.

Список параметров

iterations

Число итераций, которые изображение должно повторить. Используйте значение '0' для непрерывного повторения.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::setImageIterations()

<?php

$imagick = new Imagick(realpath("Test.gif"));

$imagick = $imagick->coalesceImages();
$imagick->setImageIterations(1);
$imagick = $imagick->deconstructImages();

$imagick->writeImages('/path/to/save/OnceOnly.gif', true);

?>


Устанавливает матовый канал изображения

  • « Imagick::setImageIterations
  • Imagick::setImageMatteColor »
  • PHP Manual
  • Imagick
  • Устанавливает матовый канал изображения

Imagick::setImageMatte

(PECL imagick 2, PECL imagick 3)

Imagick::setImageMatte — Устанавливает матовый канал изображения

Описание

public Imagick::setImageMatte(bool $matte): bool

Устанавливает матовый канал изображения. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

matte

Значение true активирует матовый канал, false - отключает.

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает матовый цвет изображения

  • « Imagick::setImageMatte
  • Imagick::setImageOpacity »
  • PHP Manual
  • Imagick
  • Устанавливает матовый цвет изображения

Imagick::setImageMatteColor

(PECL imagick 2, PECL imagick 3)

Imagick::setImageMatteColor — Устанавливает матовый цвет изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::setImageMatteColor(mixed $matte): bool

Устанавливает матовый цвет изображения.

Список параметров

matte

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь позволяет использовать представляющую цвет строку в качестве параметра. Предыдущие версии позволяли использовать только объект ImagickPixel.


Устанавливает уровень непрозрачности изображения

  • « Imagick::setImageMatteColor
  • Imagick::setImageOrientation »
  • PHP Manual
  • Imagick
  • Устанавливает уровень непрозрачности изображения

Imagick::setImageOpacity

(PECL imagick 2, PECL imagick 3)

Imagick::setImageOpacity — Устанавливает уровень непрозрачности изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::setImageOpacity(float $opacity): bool

Устанавливает изображение на указанный уровень непрозрачности. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.1 или старше. Метод работает со всеми каналами, что означает, например, что значение непрозрачности 0.5 сделает все прозрачные области частично непрозрачными. Чтобы добавить прозрачности в области, которые ещё непрозрачны, используйте Imagick::evaluateImage().

Список параметров

opacity

Уровень прозрачности: 1.0 - полностью непрозрачный, а 0.0 - полностью прозрачный. transparent.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::setImageOpacity()

Пример использования Imagick::setImageOpacity().

<?php
/* Создание объекта */
$image = new Imagick('source.png');

/* Установка непрозрачности */
$image->setImageOpacity(0.7);

/* Вывод изображения */
header('Content-type: image/png');
echo $image;

?>


Устанавливает ориентацию изображения

  • « Imagick::setImageOpacity
  • Imagick::setImagePage »
  • PHP Manual
  • Imagick
  • Устанавливает ориентацию изображения

Imagick::setImageOrientation

(PECL imagick 2, PECL imagick 3)

Imagick::setImageOrientation — Устанавливает ориентацию изображения

Описание

public Imagick::setImageOrientation(int $orientation): bool

Устанавливает ориентацию изображения.

Список параметров

orientation

Одна из констант ORIENTATION

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::setImageOrientation()

<?php
// Кажется, ничего не делает
function setImageOrientation($imagePath, $orientationType) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageOrientation($orientationType);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Устанавливает геометрию страницы изображения

  • « Imagick::setImageOrientation
  • Imagick::setImageProfile »
  • PHP Manual
  • Imagick
  • Устанавливает геометрию страницы изображения

Imagick::setImagePage

(PECL imagick 2, PECL imagick 3)

Imagick::setImagePage — Устанавливает геометрию страницы изображения

Описание

public Imagick::setImagePage(
int $width,
int $height,
int $x,
int $y
): bool

Устанавливает геометрию страницы изображения.

Список параметров

width

height

x

y

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Добавляет именованный профиль к объекту Imagick

  • « Imagick::setImagePage
  • Imagick::setImageProperty »
  • PHP Manual
  • Imagick
  • Добавляет именованный профиль к объекту Imagick

Imagick::setImageProfile

(PECL imagick 2, PECL imagick 3)

Imagick::setImageProfile — Добавляет именованный профиль к объекту Imagick

Описание

public Imagick::setImageProfile(string $name, string $profile): bool

Добавляет именованный профиль к объекту Imagick. Если профиль с таким именем уже существует, он заменяется. Этот метод отличается от метода Imagick::ProfileImage() тем, что он не применяет какие-либо цветовые профили CMS.

Список параметров

name

profile

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает свойство изображения

  • « Imagick::setImageProfile
  • Imagick::setImageRedPrimary »
  • PHP Manual
  • Imagick
  • Устанавливает свойство изображения

Imagick::setImageProperty

(PECL imagick 2, PECL imagick 3)

Imagick::setImageProperty — Устанавливает свойство изображения

Описание

public Imagick::setImageProperty(string $name, string $value): bool

Устанавливает именованное свойство изображения. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или старше.

Список параметров

name

value

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::setImageProperty()

Установка и получение свойств изображения

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");

$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
?>

Смотрите также

  • Imagick::getImageProperty() - Возвращает именованное свойство изображения


Устанавливает красную первичную точку цветности изображения

  • « Imagick::setImageProperty
  • Imagick::setImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Устанавливает красную первичную точку цветности изображения

Imagick::setImageRedPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::setImageRedPrimary — Устанавливает красную первичную точку цветности изображения

Описание

public Imagick::setImageRedPrimary(float $x, float $y): bool

Устанавливает красную первичную точку цветности изображения.

Список параметров

x

y

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает схему цветопередачи изображения

  • « Imagick::setImageRedPrimary
  • Imagick::setImageResolution »
  • PHP Manual
  • Imagick
  • Устанавливает схему цветопередачи изображения

Imagick::setImageRenderingIntent

(PECL imagick 2, PECL imagick 3)

Imagick::setImageRenderingIntent — Устанавливает схему цветопередачи изображения

Описание

public Imagick::setImageRenderingIntent(int $rendering_intent): bool

Устанавливает схему цветопередачи изображения.

Список параметров

rendering_intent

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает разрешение изображения

  • « Imagick::setImageRenderingIntent
  • Imagick::setImageScene »
  • PHP Manual
  • Imagick
  • Устанавливает разрешение изображения

Imagick::setImageResolution

(PECL imagick 2, PECL imagick 3)

Imagick::setImageResolution — Устанавливает разрешение изображения

Описание

public Imagick::setImageResolution(float $x_resolution, float $y_resolution): bool

Устанавливает разрешение изображения.

Список параметров

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();
}

?>


Устанавливает сцену изображения

  • « Imagick::setImageResolution
  • Imagick::setImageTicksPerSecond »
  • PHP Manual
  • Imagick
  • Устанавливает сцену изображения

Imagick::setImageScene

(PECL imagick 2, PECL imagick 3)

Imagick::setImageScene — Устанавливает сцену изображения

Описание

public Imagick::setImageScene(int $scene): bool

Устанавливает сцену изображения.

Список параметров

scene

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает продолжительность отображения кадра

  • « Imagick::setImageScene
  • Imagick::setImageType »
  • PHP Manual
  • Imagick
  • Устанавливает продолжительность отображения кадра

Imagick::setImageTicksPerSecond

(PECL imagick 2, PECL imagick 3)

Imagick::setImageTicksPerSecond — Устанавливает продолжительность отображения кадра

Описание

public Imagick::setImageTicksPerSecond(int $ticks_per_second): bool

Регулирует продолжительность отображения кадра анимированного изображения.

Замечание:

Для анимированных GIF-изображений эта функция не изменяет количество "тактов изображения" в секунду, которое всегда определяется как 100. Вместо этого она регулирует количество времени, в течение которого отображается кадр, чтобы имитировать изменение "тактов в секунду".

Например, для анимированного GIF-изображения, где каждый кадр отображается в течение 20 тактов (1/5 секунды), когда вызывается этот метод для каждого кадра этого изображения с аргументом 50, кадры корректируются и будут отображаться в течение 40 тактов (2/5 секунды) и анимация будет воспроизводиться с половиной исходной скорости.

Список параметров

ticks_per_second

Продолжительность, в течение которой должно отображаться изображение, выражается в тактах в секунду.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Изменение анимированного GIF-изображения с помощью Imagick::setImageTicksPerSecond()

<?php

// Изменение анимированного gif-изображения так, чтобы первая половина gif воспроизводилась с половинной скоростью,
// а вторая половина воспроизводилась с удвоенной скоростью.

$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)) {
// Измените кадр так, чтобы он отображался вдвое дольше, чем сейчас.
$imagick->setImageTicksPerSecond(50);
} else {
// Измените кадр так, чтобы он отображался вдвое меньше, чем сейчас.
$imagick->setImageTicksPerSecond(200);
}

$frameCount++;
}

$imagick = $imagick->deconstructImages();

$imagick->writeImages("/path/to/save/output.gif", true);

?>


Устанавливает тип изображения

  • « Imagick::setImageTicksPerSecond
  • Imagick::setImageUnits »
  • PHP Manual
  • Imagick
  • Устанавливает тип изображения

Imagick::setImageType

(PECL imagick 2, PECL imagick 3)

Imagick::setImageType — Устанавливает тип изображения

Описание

public Imagick::setImageType(int $image_type): bool

Устанавливает тип изображения.

Список параметров

image_type

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает единицы измерения разрешения изображения

  • « Imagick::setImageType
  • Imagick::setImageVirtualPixelMethod »
  • PHP Manual
  • Imagick
  • Устанавливает единицы измерения разрешения изображения

Imagick::setImageUnits

(PECL imagick 2, PECL imagick 3)

Imagick::setImageUnits — Устанавливает единицы измерения разрешения изображения

Описание

public Imagick::setImageUnits(int $units): bool

Устанавливает единицы измерения разрешения изображения.

Список параметров

units

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает метод виртуального пикселя

  • « Imagick::setImageUnits
  • Imagick::setImageWhitePoint »
  • PHP Manual
  • Imagick
  • Устанавливает метод виртуального пикселя

Imagick::setImageVirtualPixelMethod

(PECL imagick 2, PECL imagick 3)

Imagick::setImageVirtualPixelMethod — Устанавливает метод виртуального пикселя

Описание

public Imagick::setImageVirtualPixelMethod(int $method): bool

Устанавливает метод виртуального пикселя.

Список параметров

method

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает белую точку цветности изображения

  • « Imagick::setImageVirtualPixelMethod
  • Imagick::setInterlaceScheme »
  • PHP Manual
  • Imagick
  • Устанавливает белую точку цветности изображения

Imagick::setImageWhitePoint

(PECL imagick 2, PECL imagick 3)

Imagick::setImageWhitePoint — Устанавливает белую точку цветности изображения

Описание

public Imagick::setImageWhitePoint(float $x, float $y): bool

Устанавливает белую точку цветности изображения.

Список параметров

x

y

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Устанавливает сжатие изображения

  • « Imagick::setImageWhitePoint
  • Imagick::setIteratorIndex »
  • PHP Manual
  • Imagick
  • Устанавливает сжатие изображения

Imagick::setInterlaceScheme

(PECL imagick 2, PECL imagick 3)

Imagick::setInterlaceScheme — Устанавливает сжатие изображения

Описание

public Imagick::setInterlaceScheme(int $interlace_scheme): bool

Устанавливает сжатие изображения.

Список параметров

interlace_scheme

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает позицию итератора

  • « Imagick::setInterlaceScheme
  • Imagick::setLastIterator »
  • PHP Manual
  • Imagick
  • Устанавливает позицию итератора

Imagick::setIteratorIndex

(PECL imagick 2, PECL imagick 3)

Imagick::setIteratorIndex — Устанавливает позицию итератора

Описание

public Imagick::setIteratorIndex(int $index): bool

Устанавливает итератор в позицию в списке изображений, указанную с помощью параметра index. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

index

Позиция для установки итератора.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::setIteratorIndex():

Создание изображения, установка и получение индекса итератора

<?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() - Возвращает индекс текущего активного изображения
  • Imagick::getImageIndex() - Возвращает индекс текущего активного изображения
  • Imagick::setImageIndex() - Устанавливает позицию итератора


Устанавливает итератор Imagick к последнему изображению

  • « Imagick::setIteratorIndex
  • Imagick::setOption »
  • PHP Manual
  • Imagick
  • Устанавливает итератор Imagick к последнему изображению

Imagick::setLastIterator

(PECL imagick 2 >= 2.0.1, PECL imagick 3)

Imagick::setLastIterator — Устанавливает итератор Imagick к последнему изображению

Описание

public Imagick::setLastIterator(): bool

Устанавливает итератор Imagick к последнему изображению.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает опцию

  • « Imagick::setLastIterator
  • Imagick::setPage »
  • PHP Manual
  • Imagick
  • Устанавливает опцию

Imagick::setOption

(PECL imagick 2, PECL imagick 3)

Imagick::setOption — Устанавливает опцию

Описание

public Imagick::setOption(string $key, string $value): bool

Связывает одну или несколько опций с палочкой.

Список параметров

key

value

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Попытка достичь размера '$extent' Imagick::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();
}

//Сохранение в виде 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);
}
}

?>


Устанавливает геометрию страницы объекта Imagick

  • « Imagick::setOption
  • Imagick::setPointSize »
  • PHP Manual
  • Imagick
  • Устанавливает геометрию страницы объекта Imagick

Imagick::setPage

(PECL imagick 2, PECL imagick 3)

Imagick::setPage — Устанавливает геометрию страницы объекта Imagick

Описание

public Imagick::setPage(
int $width,
int $height,
int $x,
int $y
): bool

Устанавливает геометрию страницы объекта Imagick.

Список параметров

width

height

x

y

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает размер точки

  • « Imagick::setPage
  • Imagick::setProgressMonitor »
  • PHP Manual
  • Imagick
  • Устанавливает размер точки

Imagick::setPointSize

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::setPointSize — Устанавливает размер точки

Описание

public Imagick::setPointSize(float $point_size): bool

Устанавливает объекту свойство размера точки. Метод можно использовать, например, для установки размера шрифта для caption: формата псевдоизображений. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Список параметров

point_size

Размер точки.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::setPointSize()

Пример использования Imagick::setPointSize

<?php
/* Создание нового объекта Imagick */
$im = new Imagick();

/* Установка шрифта для объекта */
$im->setFont("example.ttf");

/* Установка размера */
$im->setPointSize(12);

/* Создание заголовка */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Работа с изображением */
?>

Смотрите также

  • Imagick::getPointSize() - Возвращает размер точки


Устанавливает callback-функцию, которая будет вызываться во время обработки изображения Imagick

  • « Imagick::setPointSize
  • Imagick::setRegistry »
  • PHP Manual
  • Imagick
  • Устанавливает callback-функцию, которая будет вызываться во время обработки изображения Imagick

Imagick::setProgressMonitor

(PECL imagick 3 >= 3.3.0)

Imagick::setProgressMonitor — Устанавливает callback-функцию, которая будет вызываться во время обработки изображения Imagick

Описание

public Imagick::setProgressMonitor(callable $callback): bool

Устанавливает callback-функцию, которая будет вызываться во время обработки изображения Imagick.

Список параметров

callback

Callback-функция прогресса для вызова. Она должна вернуть true, если обработка изображения должна продолжаться, или false, если её нужно отменить. Параметр offset указывает прогресс, а параметр span - общий объем работы, который необходимо выполнить.

callback ( mixed $offset , mixed $span ): bool
Предостережение

Значения, передаваемые в callback-функцию, не согласованы. В частности, параметр span может увеличиваться во время обработки изображения. Из-за этого вычисление прогресса выполнения операции с изображением в процентах не является тривиальным.

Возвращаемые значения

В случае успешной работы возвращает 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 = "Обработка достигла 20%";
return false;
}

$nowTime = time();

if ($nowTime - $startTime > 5) {
$abortReason = "Обработка изображения заняла более 5 секунд";
return false;
}
if (($offset % 5) == 0) {
echo "Прогресс: $offset / $span <br/>";
}
return true;
};

$imagick->setProgressMonitor($callback);

$imagick->waveImage(2, 15);

echo "Длина данных: ".strlen($imagick->getImageBlob());
}
catch(\ImagickException $e) {
if ($abortReason != null) {
echo "Обработка изображения была прервана: ".$abortReason."<br/>";
}
else {
echo "Поймано исключение ImagickException: ".$e->getMessage()." Тип исключения - ".get_class($e);
}
}

?>


Устанавливает значение для записи реестра ImageMagick с именем key

  • « Imagick::setProgressMonitor
  • Imagick::setResolution »
  • PHP Manual
  • Imagick
  • Устанавливает значение для записи реестра ImageMagick с именем key

Imagick::setRegistry

(PECL imagick 3 >= 3.3.0)

Imagick::setRegistry — Устанавливает значение для записи реестра ImageMagick с именем key

Описание

public static Imagick::setRegistry(string $key, string $value): bool

Устанавливает значение для записи реестра ImageMagick с именем key. Наиболее полезно для установки временного пути, который определяет, где ImageMagick создаёт временные изображения, например, при обработке PDF-файлов.

Список параметров

key

value

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает разрешение изображения

  • « Imagick::setRegistry
  • Imagick::setResourceLimit »
  • PHP Manual
  • Imagick
  • Устанавливает разрешение изображения

Imagick::setResolution

(PECL imagick 2, PECL imagick 3)

Imagick::setResolution — Устанавливает разрешение изображения

Описание

public Imagick::setResolution(float $x_resolution, float $y_resolution): bool

Устанавливает разрешение изображения.

Список параметров

x_resolution

Горизонтальное разрешение.

y_resolution

Вертикальное разрешение.

Возвращаемые значения

В случае успешной работы возвращает true.

Примечания

Imagick::setResolution() необходимо вызывать перед загрузкой или созданием изображения.

Смотрите также

  • Imagick::setImageResolution() - Устанавливает разрешение изображения
  • Imagick::getImageResolution() - Возвращает разрешение изображения по X и Y


Устанавливает лимит для конкретного ресурса

  • « Imagick::setResolution
  • Imagick::setSamplingFactors »
  • PHP Manual
  • Imagick
  • Устанавливает лимит для конкретного ресурса

Imagick::setResourceLimit

(PECL imagick 2, PECL imagick 3)

Imagick::setResourceLimit — Устанавливает лимит для конкретного ресурса

Описание

public static Imagick::setResourceLimit(int $type, int $limit): bool

Данный метод используется для изменения лимита ресурсов исходной библиотеки ImageMagick.

Список параметров

type

Обратитесь к списку констант RESOURCETYPE.

limit

Одна из констант RESOURCETYPE. Единица измерения зависит от типа ограничиваемого ресурса.

Возвращаемые значения

В случае успешной работы возвращает true.

Смотрите также

  • Imagick::getResourceLimit() - Возвращает заданный лимит ресурсов


Устанавливает коэффициенты выборки изображений

  • « Imagick::setResourceLimit
  • Imagick::setSize »
  • PHP Manual
  • Imagick
  • Устанавливает коэффициенты выборки изображений

Imagick::setSamplingFactors

(PECL imagick 2, PECL imagick 3)

Imagick::setSamplingFactors — Устанавливает коэффициенты выборки изображений

Описание

public Imagick::setSamplingFactors(array $factors): bool

Устанавливает коэффициенты выборки изображений.

Список параметров

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();
}

?>


Устанавливает размер объекта Imagick

  • « Imagick::setSamplingFactors
  • Imagick::setSizeOffset »
  • PHP Manual
  • Imagick
  • Устанавливает размер объекта Imagick

Imagick::setSize

(PECL imagick 2, PECL imagick 3)

Imagick::setSize — Устанавливает размер объекта Imagick

Описание

public Imagick::setSize(int $columns, int $rows): bool

Устанавливает размер объекта Imagick. Установите его перед чтением необработанного формата изображения, такого как RGB, GRAY или CMYK.

Список параметров

columns

rows

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает размер и смещение объекта Imagick

  • « Imagick::setSize
  • Imagick::setType »
  • PHP Manual
  • Imagick
  • Устанавливает размер и смещение объекта Imagick

Imagick::setSizeOffset

(PECL imagick 2, PECL imagick 3)

Imagick::setSizeOffset — Устанавливает размер и смещение объекта Imagick

Описание

public Imagick::setSizeOffset(int $columns, int $rows, int $offset): bool

Устанавливает размер и смещение объекта Imagick. Установите его перед чтением необработанного формата изображения, такого как RGB, GRAY или CMYK. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

columns

Ширина в пикселях.

rows

Высота в пикселях.

offset

Смещение изображения.

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает атрибут типа изображения

  • « Imagick::setSizeOffset
  • Imagick::shadeImage »
  • PHP Manual
  • Imagick
  • Устанавливает атрибут типа изображения

Imagick::setType

(PECL imagick 2, PECL imagick 3)

Imagick::setType — Устанавливает атрибут типа изображения

Описание

public Imagick::setType(int $image_type): bool

Устанавливает атрибут типа изображения.

Список параметров

image_type

Возвращаемые значения

В случае успешной работы возвращает true.


Создаёт 3D-эффект

  • « Imagick::setType
  • Imagick::shadowImage »
  • PHP Manual
  • Imagick
  • Создаёт 3D-эффект

Imagick::shadeImage

(PECL imagick 2, PECL imagick 3)

Imagick::shadeImage — Создаёт 3D-эффект

Описание

public Imagick::shadeImage(bool $gray, float $azimuth, float $elevation): bool

Светит дальний свет на изображение для создания трёхмерного эффекта. Вы управляете расположением источника света с помощью азимута и возвышения; азимут измеряется в градусах от оси X, а высота измеряется в пикселях над осью Z. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

gray

Значение, отличное от нуля, оттеняет интенсивность каждого пикселя.

azimuth

Определяет направление источника света.

elevation

Определяет направление источника света.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Выбрасывает исключение ImagickException в случае возникновения ошибки.

Примеры

Пример #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();
}

?>


Имитирует тень изображения

  • « Imagick::shadeImage
  • Imagick::sharpenImage »
  • PHP Manual
  • Imagick
  • Имитирует тень изображения

Imagick::shadowImage

(PECL imagick 2, PECL imagick 3)

Imagick::shadowImage — Имитирует тень изображения

Описание

public Imagick::shadowImage(
float $opacity,
float $sigma,
int $x,
int $y
): bool

Имитирует тень изображения.

Список параметров

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();
}

?>


Повышает резкость изображения

  • « Imagick::shadowImage
  • Imagick::shaveImage »
  • PHP Manual
  • Imagick
  • Повышает резкость изображения

Imagick::sharpenImage

(PECL imagick 2, PECL imagick 3)

Imagick::sharpenImage — Повышает резкость изображения

Описание

public Imagick::sharpenImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool

Повышает резкость изображения. Сворачивание изображения с помощью гауссовского оператора заданного радиуса и стандартного отклонения (сигма). Для разумных результатов радиус должен быть больше сигмы. Используйте радиус 0, и Imagick::sharpenImage() выберет подходящий для вас радиус.

Список параметров

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();
}

?>


Удаляет пиксели по краям изображения

  • « Imagick::sharpenImage
  • Imagick::shearImage »
  • PHP Manual
  • Imagick
  • Удаляет пиксели по краям изображения

Imagick::shaveImage

(PECL imagick 2, PECL imagick 3)

Imagick::shaveImage — Удаляет пиксели по краям изображения

Описание

public Imagick::shaveImage(int $columns, int $rows): bool

Удаляет пиксели по краям изображения. Метод выделяет память, необходимую для новой структуры изображения, и возвращает указатель на новое изображение.

Список параметров

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();
}

?>


Создаёт параллелограмм

  • « Imagick::shaveImage
  • Imagick::sigmoidalContrastImage »
  • PHP Manual
  • Imagick
  • Создаёт параллелограмм

Imagick::shearImage

(PECL imagick 2, PECL imagick 3)

Imagick::shearImage — Создаёт параллелограмм

Описание

public Imagick::shearImage(mixed $background, float $x_shear, float $y_shear): bool

Сдвигает один край изображения по оси X или Y, образуя параллелограмм. Сдвиг в направлении X сдвигает край по оси X, а сдвиг в направлении Y перемещает край по оси Y. Величина сдвига контролируется углом сдвига. Для сдвига в направлении X, x_shear измеряется относительно оси Y и аналогично для сдвига в направлении Y, y_shear измеряется относительно оси X. Пустые треугольники, оставшиеся от обрезки изображения, заполняются цветом фона.

Список параметров

background

Цвет фона.

x_shear

Количество градусов для сдвига по оси X.

y_shear

Количество градусов для сдвига по оси Y.

Возвращаемые значения

В случае успешной работы возвращает true.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь допускается строка, представляющая цвет, в качестве первого параметра. Ранее допускался только объект ImagickPixel.

Примеры

Пример #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();
}

?>


Регулирует контраст изображения

  • « Imagick::shearImage
  • Imagick::sketchImage »
  • PHP Manual
  • Imagick
  • Регулирует контраст изображения

Imagick::sigmoidalContrastImage

(PECL imagick 2, PECL imagick 3)

Imagick::sigmoidalContrastImage — Регулирует контраст изображения

Описание

public Imagick::sigmoidalContrastImage(
bool $sharpen,
float $alpha,
float $beta,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Регулирует контраст изображения с помощью алгоритма нелинейного сигмоидального контраста. Увеличьте контраст изображения с помощью сигмоидальной передаточной функции без насыщения светлых участков или теней. Контрастность указывает, насколько увеличить контраст (0 - нет; 3 - типичный; 20 - усиление); Средняя точка указывает, где попадают средние тона в результирующем изображении (0 - белый; 50 - средний серый; 100 - чёрный). Установите резкость на true для увеличения контрастности изображения, в противном случае контрастность уменьшается.

Смотрите также » Примеры ImageMagick v6 - Преобразования изображений - Контраст сигмоидальной нелинейности.

Список параметров

sharpen

Если true, контраст увеличивается, если false - уменьшается.

alpha

Количество применяемого контраста. 1 - очень мало, 5 - значительное, 20 - максимальная величина.

beta

Где будет середина градиента. Это значение должно быть в диапазоне от 0 до 1 - вне зависимости от квантового значения ImageMagick.

channel

К каким цветовым каналам будет применяться контраст.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Создание градиентного изображения, используя Imagick::sigmoidalContrastImage(), подходящую для плавного смешивания двух изображений вместе, со смешиванием, определяемого контрастом и средней точкой.

<?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;
}

?>


Имитирует набросок карандашом

  • « Imagick::sigmoidalContrastImage
  • Imagick::smushImages »
  • PHP Manual
  • Imagick
  • Имитирует набросок карандашом

Imagick::sketchImage

(PECL imagick 2, PECL imagick 3)

Imagick::sketchImage — Имитирует набросок карандашом

Описание

public Imagick::sketchImage(float $radius, float $sigma, float $angle): bool

Имитирует набросок карандашом. Изображение сворачивается с помощью гауссовского оператора, заданного радиуса и стандартного отклонения (сигма). Для разумных результатов радиус должен быть больше сигмы. Используйте радиус 0, чтобы Imagick::sketchImage() использовала подходящий радиус самостоятельно. Угол задаёт угол размытия движения. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

radius

Радиус гауссианы в пикселях, не считая центрального пикселя.

sigma

Стандартное отклонение гауссианы в пикселях.

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();
}

?>


Берёт все изображения из текущего указателя изображения в конец списка изображений и перемещает их

  • « Imagick::sketchImage
  • Imagick::solarizeImage »
  • PHP Manual
  • Imagick
  • Берёт все изображения из текущего указателя изображения в конец списка изображений и перемещает их

Imagick::smushImages

(PECL imagick 3 >= 3.3.0)

Imagick::smushImages — Берёт все изображения из текущего указателя изображения в конец списка изображений и перемещает их

Описание

public Imagick::smushImages(bool $stack, int $offset): Imagick

Берёт все изображения из текущего указателя изображения в конец списка изображений и перемещает их друг к другу сверху вниз, если параметру stack установлено значение true, в противном случае - слева направо.

Список параметров

stack

offset

Возвращаемые значения

Новое размытое изображение.

Примеры

Пример #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();
}

?>


Применяет к изображению эффект соляризации

  • « Imagick::smushImages
  • Imagick::sparseColorImage »
  • PHP Manual
  • Imagick
  • Применяет к изображению эффект соляризации

Imagick::solarizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::solarizeImage — Применяет к изображению эффект соляризации

Описание

public Imagick::solarizeImage(int $threshold): bool

Применяет к изображению специальный эффект, аналогичный эффекту, достигаемому в фотолаборатории путём выборочного воздействия света на участки фоточувствительной бумаги. Порог варьируется от 0 до QuantumRange и является мерой степени соляризации.

Список параметров

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();
}

?>


Интерполирует цвета

  • « Imagick::solarizeImage
  • Imagick::spliceImage »
  • PHP Manual
  • Imagick
  • Интерполирует цвета

Imagick::sparseColorImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::sparseColorImage — Интерполирует цвета

Описание

public Imagick::sparseColorImage(int $SPARSE_METHOD, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): bool

Учитывая массив аргументов, содержащий числовые значения, метод интерполирует цвета, найденные с этими координатами, по всему изображению, используя sparse_method. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

SPARSE_METHOD

Обратитесь к этому списку sparse method constants

arguments

Массив, содержащий координаты. Массив в формате 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(
"Значение %s не является ни строкой, ни классом ImagickPixel. Не может использовать в качестве цвета.",
$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;
}

?>


Склеивает сплошной цвет в изображение

  • « Imagick::sparseColorImage
  • Imagick::spreadImage »
  • PHP Manual
  • Imagick
  • Склеивает сплошной цвет в изображение

Imagick::spliceImage

(PECL imagick 2, PECL imagick 3)

Imagick::spliceImage — Склеивает сплошной цвет в изображение

Описание

public Imagick::spliceImage(
int $width,
int $height,
int $x,
int $y
): bool

Склеивает сплошной цвет в изображение.

Список параметров

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();
}

?>


Случайно смещает каждый пиксель в блоке

  • « Imagick::spliceImage
  • Imagick::statisticImage »
  • PHP Manual
  • Imagick
  • Случайно смещает каждый пиксель в блоке

Imagick::spreadImage

(PECL imagick 2, PECL imagick 3)

Imagick::spreadImage — Случайно смещает каждый пиксель в блоке

Описание

public Imagick::spreadImage(float $radius): bool

Метод специальных эффектов, который случайным образом смещает каждый пиксель в блоке, заданном параметром radius.

Список параметров

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();
}

?>


Модификация изображения с помощью функции статистики

  • « Imagick::spreadImage
  • Imagick::steganoImage »
  • PHP Manual
  • Imagick
  • Модификация изображения с помощью функции статистики

Imagick::statisticImage

(PECL imagick 3 >= 3.3.0)

Imagick::statisticImage — Модификация изображения с помощью функции статистики

Описание

public Imagick::statisticImage(
int $type,
int $width,
int $height,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Заменяет каждый пиксель соответствующей статистикой из окрестности указанной ширины и высоты.

Список параметров

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);

?>


Скрывает цифровой водяной знак в изображении

  • « Imagick::statisticImage
  • Imagick::stereoImage »
  • PHP Manual
  • Imagick
  • Скрывает цифровой водяной знак в изображении

Imagick::steganoImage

(PECL imagick 2, PECL imagick 3)

Imagick::steganoImage — Скрывает цифровой водяной знак в изображении

Описание

public Imagick::steganoImage(Imagick $watermark_wand, int $offset): Imagick

Скрывает цифровой водяной знак в изображении. Восстановите скрытый водяной знак позже, чтобы доказать подлинность изображения. Смещение определяет начальную позицию на изображении, чтобы скрыть водяной знак.

Список параметров

watermark_wand

offset

Возвращаемые значения

В случае успешной работы возвращает true.


Объединяет два изображения

  • « Imagick::steganoImage
  • Imagick::stripImage »
  • PHP Manual
  • Imagick
  • Объединяет два изображения

Imagick::stereoImage

(PECL imagick 2, PECL imagick 3)

Imagick::stereoImage — Объединяет два изображения

Описание

public Imagick::stereoImage(Imagick $offset_wand): bool

Объединяет два изображения и создаёт одно изображение, которое является составной частью левого и правого изображения стереопары.

Список параметров

offset_wand

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Снимает изображение всех профилей и комментариев

  • « Imagick::stereoImage
  • Imagick::subImageMatch »
  • PHP Manual
  • Imagick
  • Снимает изображение всех профилей и комментариев

Imagick::stripImage

(PECL imagick 2, PECL imagick 3)

Imagick::stripImage — Снимает изображение всех профилей и комментариев

Описание

public Imagick::stripImage(): bool

Снимает изображение всех профилей и комментариев.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.


Выполняет поиск фрагмента изображения в текущем изображении и возвращает второстепенное изображение

  • « Imagick::stripImage
  • Imagick::swirlImage »
  • PHP Manual
  • Imagick
  • Выполняет поиск фрагмента изображения в текущем изображении и возвращает второстепенное изображение

Imagick::subImageMatch

(PECL imagick 3 >= 3.3.0)

Imagick::subImageMatch — Выполняет поиск фрагмента изображения в текущем изображении и возвращает второстепенное изображение

Описание

public Imagick::subImageMatch(Imagick $Imagick, array &$offset = ?, float &$similarity = ?): Imagick

Выполняет поиск фрагмента изображения в текущем изображении и возвращает второстепенное изображение, в котором точное совпадение является полностью белым, а если ни один из пикселей не совпадает — чёрным, в противном случае - некоторым промежуточным уровнем серого. Вы также можете передать необязательные параметры bestMatch и similarity. После вызова функции similarity будет установлено на "score" сходства между второстепенным изображением и соответствующей позицией на большом изображении, bestMatch будет содержать ассоциативный массив с элементами x, y, width, height, которые описывают совпадающую область.

Список параметров

Imagick

offset

similarity

Новое изображение, отображающее степень сходства в каждом пикселе.

Возвращаемые значения

Примеры

Пример #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();
}

?>


Закручивает пиксели вокруг центра изображения

  • « Imagick::subImageMatch
  • Imagick::textureImage »
  • PHP Manual
  • Imagick
  • Закручивает пиксели вокруг центра изображения

Imagick::swirlImage

(PECL imagick 2, PECL imagick 3)

Imagick::swirlImage — Закручивает пиксели вокруг центра изображения

Описание

Imagick::swirlImage(float $degrees): bool

Закручивает пиксели вокруг центра изображения, где градусы указывают размах дуги, по которой перемещается каждый пиксель. Вы получаете более драматический эффект, когда градусы перемещаются от 1 до 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();
}

?>


Многократно размещает изображение текстуры

  • « Imagick::swirlImage
  • Imagick::thresholdImage »
  • PHP Manual
  • Imagick
  • Многократно размещает изображение текстуры

Imagick::textureImage

(PECL imagick 2, PECL imagick 3)

Imagick::textureImage — Многократно размещает изображение текстуры

Описание

Imagick::textureImage(Imagick $texture_wand): Imagick

Многократно размещает изображение текстуры поперёк и вниз по холсту изображения.

Список параметров

texture_wand

Объект Imagick для использования в качестве изображения текстуры.

Возвращаемые значения

Возвращает новый объект Imagick, к которому применена повторяющаяся текстура.

Ошибки

Вызывает 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, PECL imagick 3)

Imagick::thresholdImage — Изменяет отдельные пиксели на основе порогового значения

Описание

public 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();
}

?>


Изменяет размер изображения

  • « Imagick::thresholdImage
  • Imagick::tintImage »
  • PHP Manual
  • Imagick
  • Изменяет размер изображения

Imagick::thumbnailImage

(PECL imagick 2, PECL imagick 3)

Imagick::thumbnailImage — Изменяет размер изображения

Описание

public Imagick::thumbnailImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $fill = false,
bool $legacy = false
): bool

Изменяет размер изображения до заданных размеров и удаляет все связанные профили. Цель состоит в том, чтобы создавать миниатюры изображений, подходящие для отображения в Интернете. Если в качестве третьего параметра установлено значение true, тогда параметры столбцов и строк используются как максимальные для каждой стороны. Обе стороны будут уменьшены до тех пор, пока они не станут равными или меньше, чем параметр, указанный для стороны.

Замечание: Поведение параметра bestfit было изменено в Imagick 3.0.0. До этой версии при изменении изображения размером 200x150 до 400x300 никаких операций не происходило. В Imagick 3.0.0 и далее изображение будет масштабировано до размеров 400x300, так как это наилучшим образом соответствует ("best fit") данным размерам. Если используется параметр bestfit, то ширина и высота также должны быть определены.

Список параметров

columns

Ширина изображения.

rows

Высота изображения.

bestfit

Определяет, следует ли принудительно устанавливать максимальные значения.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Применяет вектор цвета к каждому пикселю изображения

  • « Imagick::thumbnailImage
  • Imagick::__toString »
  • PHP Manual
  • Imagick
  • Применяет вектор цвета к каждому пикселю изображения

Imagick::tintImage

(PECL imagick 2, PECL imagick 3)

Imagick::tintImage — Применяет вектор цвета к каждому пикселю изображения

Описание

public Imagick::tintImage(mixed $tint, mixed $opacity, bool $legacy = false): bool

Применяет вектор цвета к каждому пикселю изображения. Длина вектора равна 0 для чёрного и белого и максимальная длина для полутонов. Функция векторного взвешивания: f(x)=(1-(4.0*((x-0.5)*(x-0.5)))).

Список параметров

tint

opacity

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь разрешает строку, представляющую цвет, в качестве первого параметра и число с плавающей точкой, представляющее значение непрозрачности, в качестве второго параметра. Предыдущие версии допускали только объекты ImagickPixel.

Примеры

Пример #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();
}

?>


Возвращает изображение в виде строки

  • « Imagick::tintImage
  • Imagick::transformImage »
  • PHP Manual
  • Imagick
  • Возвращает изображение в виде строки

Imagick::__toString

(PECL imagick 2, PECL imagick 3)

Imagick::__toString — Возвращает изображение в виде строки

Описание

public Imagick::__toString(): string

Возвращает текущее изображение в виде строки. Вернёт только одно изображение; Метод не должен использоваться для объектов Imagick, которые содержат несколько изображений, например анимированный GIF или PDF с несколькими страницами.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое строки в случае успешного выполнения или пустую строку в случае возникновения ошибки.

Смотрите также

  • Imagick::getImageBlob() - Возвращает последовательность изображений в виде BLOB
  • Imagick::getImagesBlob() - Возвращает все последовательности изображений в виде большого двоичного объекта


Удобный метод настройки размера кадрирования и геометрии изображения

  • « Imagick::__toString
  • Imagick::transformImageColorspace »
  • PHP Manual
  • Imagick
  • Удобный метод настройки размера кадрирования и геометрии изображения

Imagick::transformImage

(PECL imagick 2, PECL imagick 3)

Imagick::transformImage — Удобный метод настройки размера кадрирования и геометрии изображения

Внимание

Функция объявлена УСТАРЕВШЕЙ в Imagick 3.4.4. Полагаться на эту функцию крайне не рекомендуется.

Описание

public Imagick::transformImage(string $crop, string $geometry): Imagick

Удобный метод настройки размера кадрирования и геометрии изображения из строк. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

crop

Строка геометрии обрезки. Геометрия определяет подобласть изображения для обрезки.

geometry

Строка геометрии изображения. Геометрия определяет окончательный размер изображения.

Возвращаемые значения

Возвращает объект Imagick, содержащий преобразованное изображение.

Примеры

Пример #1 Пример использования Imagick::transformImage():

В примере создаётся чёрное изображение размером 100x100.

<?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() - Масштабирует изображение
  • Imagick::thumbnailImage() - Изменяет размер изображения


Преобразует изображение в новое цветовое пространство

  • « Imagick::transformImage
  • Imagick::transparentPaintImage »
  • PHP Manual
  • Imagick
  • Преобразует изображение в новое цветовое пространство

Imagick::transformImageColorspace

(PECL imagick 3)

Imagick::transformImageColorspace — Преобразует изображение в новое цветовое пространство

Описание

public Imagick::transformImageColorspace(int $colorspace): bool

Преобразует изображение в новое цветовое пространство.

Список параметров

colorspace

Цветовое пространство, в которое должно быть преобразовано изображение, одна изконстант COLORSPACE, например, Imagick::COLORSPACE_CMYK.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::transformImageColorspace()

Преобразует изображение в новое цветовое пространство, а затем извлекает отдельный канал, чтобы можно было просмотреть значения отдельных каналов.

<?php
function transformImageColorspace($imagePath, $colorSpace, $channel) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->transformimagecolorspace($colorSpace);
//канал должен быть одной из констант канала, например \Imagick::CHANNEL_BLUE
$imagick->separateImageChannel($channel);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}
?>

Смотрите также

  • Imagick::setColorSpace() - Устанавливает цветовое пространство


Рисует пиксели прозрачными

  • « Imagick::transformImageColorspace
  • Imagick::transposeImage »
  • PHP Manual
  • Imagick
  • Рисует пиксели прозрачными

Imagick::transparentPaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::transparentPaintImage — Рисует пиксели прозрачными

Описание

public Imagick::transparentPaintImage(
mixed $target,
float $alpha,
float $fuzz,
bool $invert
): bool

Рисует пиксели, соответствующие целевому цвету, прозрачным. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или старше.

Список параметров

target

Целевой цвет для рисования

alpha

Уровень прозрачности: 1.0 полностью непрозрачный, тогда как 0.0 полностью прозрачен.

fuzz

Мера округления (fuzz). Для примера, установите значение fuzz в 10 и красный цвет с интенсивностью 100 и 102 будет интерпретироваться как один и тот же цвет.

invert

Если true, закрашивает любой пиксель, который не соответствует целевому цвету.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::transparentPaintImage()

<?php
function transparentPaintImage($color, $alpha, $fuzz) {
$imagick = new \Imagick(realpath("images/BlueScreen.jpg"));

//Должен быть в формате, который поддерживает прозрачность
$imagick->setimageformat('png');

$imagick->transparentPaintImage(
$color, $alpha, $fuzz * \Imagick::getQuantum(), false
);

//Не требуется, но помогает убирать оставленные пиксели
$imagick->despeckleimage();

header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Создаёт вертикальное зеркальное отображение

  • « Imagick::transparentPaintImage
  • Imagick::transverseImage »
  • PHP Manual
  • Imagick
  • Создаёт вертикальное зеркальное отображение

Imagick::transposeImage

(PECL imagick 2, PECL imagick 3)

Imagick::transposeImage — Создаёт вертикальное зеркальное отображение

Описание

public Imagick::transposeImage(): bool

Создаёт вертикальное зеркальное изображение, отражая пиксели вокруг центральной оси X, поворачивая их на 90 градусов. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::transposeImage()

<?php
function transposeImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->transposeImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>

Смотрите также

  • Imagick::transverseImage() - Создаёт горизонтальное зеркальное отображение


Создаёт горизонтальное зеркальное отображение

  • « Imagick::transposeImage
  • Imagick::trimImage »
  • PHP Manual
  • Imagick
  • Создаёт горизонтальное зеркальное отображение

Imagick::transverseImage

(PECL imagick 2, PECL imagick 3)

Imagick::transverseImage — Создаёт горизонтальное зеркальное отображение

Описание

public Imagick::transverseImage(): bool

Создаёт горизонтальное зеркальное изображение, отражая пиксели вокруг центральной оси Y, поворачивая их на 270 градусов. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #1 Пример использования Imagick::transverseImage()

<?php
function transverseImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->transverseImage();
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>

Смотрите также

  • Imagick::transposeImage() - Создаёт вертикальное зеркальное отображение


Удаляет края с изображения

  • « Imagick::transverseImage
  • Imagick::uniqueImageColors »
  • PHP Manual
  • Imagick
  • Удаляет края с изображения

Imagick::trimImage

(PECL imagick 2, PECL imagick 3)

Imagick::trimImage — Удаляет края с изображения

Описание

public Imagick::trimImage(float $fuzz): bool

Удаляет края, которые являются цветом фона с изображения. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

fuzz

По умолчанию цель должна точно соответствовать определённому цвету пикселя. Однако во многих случаях два цвета могут незначительно отличаться. Размытый элемент изображения определяет, насколько допустимо, чтобы два цвета считались одинаковыми. Этот параметр представляет собой изменение квантового диапазона.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Imagick::trimImage():

Обрежьте изображение, затем отобразите в браузере.

<?php
/* Создайте объект и прочитайте изображение в */
$im = new Imagick("image.jpg");

/* Обрежьте изображение. */
$im->trimImage(0);

/* Выведите изображение */
header("Content-Type: image/" . $im->getImageFormat());
echo $im;
?>

Смотрите также

  • Imagick::getQuantumDepth() - Возвращает величину глубины
  • Imagick::getQuantumRange() - Возвращает величину размера спектра Imagick
  • imagecropauto() - Обрезает изображение автоматически, используя один из доступных режимов


Отбрасывает всё, кроме одного, любого цвета пикселя

  • « Imagick::trimImage
  • Imagick::unsharpMaskImage »
  • PHP Manual
  • Imagick
  • Отбрасывает всё, кроме одного, любого цвета пикселя

Imagick::uniqueImageColors

(PECL imagick 2,PECL imagick 3)

Imagick::uniqueImageColors — Отбрасывает всё, кроме одного, любого цвета пикселя

Описание

public Imagick::uniqueImageColors(): bool

Отбрасывает всё, кроме одного, любого цвета пикселя. Этот метод доступен, если 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();
}

?>


Резкость изображения

  • « Imagick::uniqueImageColors
  • Imagick::valid »
  • PHP Manual
  • Imagick
  • Резкость изображения

Imagick::unsharpMaskImage

(PECL imagick 2, PECL imagick 3)

Imagick::unsharpMaskImage — Резкость изображения

Описание

public Imagick::unsharpMaskImage(
float $radius,
float $sigma,
float $amount,
float $threshold,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

Резкость изображения. Мы сворачиваем изображение с помощью гауссовского оператора заданного радиуса и стандартного отклонения (сигма). Для получения разумных результатов радиус должен быть больше сигмы. Укажите радиус 0, чтобы Imagick::UnsharpMaskImage() задал подходящий радиус автоматически.

Список параметров

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();
}

?>


Проверяет, является ли текущий элемент корректным

  • « Imagick::unsharpMaskImage
  • Imagick::vignetteImage »
  • PHP Manual
  • Imagick
  • Проверяет, является ли текущий элемент корректным

Imagick::valid

(PECL imagick 2, PECL imagick 3)

Imagick::valid — Проверяет, является ли текущий элемент корректным

Описание

public Imagick::valid(): bool

Проверяет, является ли текущий элемент корректным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Добавляет виньетный фильтр к изображению

  • « Imagick::valid
  • Imagick::waveImage »
  • PHP Manual
  • Imagick
  • Добавляет виньетный фильтр к изображению

Imagick::vignetteImage

(PECL imagick 2, PECL imagick 3)

Imagick::vignetteImage — Добавляет виньетный фильтр к изображению

Описание

public Imagick::vignetteImage(
float $blackPoint,
float $whitePoint,
int $x,
int $y
): bool

Смягчает края изображения в стиле виньетки. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

blackPoint

Чёрная точка

whitePoint

Белая точка

x

Смещение эллипса по оси X

y

Смещение эллипса по оси Y

Возвращаемые значения

В случае успешной работы возвращает true.

Примеры

Пример #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();
}

?>

Смотрите также

  • Imagick::waveImage() - Применяет волновой фильтр к изображению
  • Imagick::swirlImage() - Закручивает пиксели вокруг центра изображения


Применяет волновой фильтр к изображению

  • « Imagick::vignetteImage
  • Imagick::whiteThresholdImage »
  • PHP Manual
  • Imagick
  • Применяет волновой фильтр к изображению

Imagick::waveImage

(PECL imagick 2, PECL imagick 3)

Imagick::waveImage — Применяет волновой фильтр к изображению

Описание

public Imagick::waveImage(float $amplitude, float $length): bool

Применяет волновой фильтр к изображению. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

amplitude

Амплитуда волны.

length

Длина волны.

Возвращаемые значения

В случае успешной работы возвращает true.

Ошибки

Вызывает ImagickException в случае возникновения ошибки.

Примеры

Пример #1 WaveImage может быть довольно медленным 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();
}

?>

Смотрите также

  • Imagick::solarizeImage() - Применяет к изображению эффект соляризации
  • Imagick::oilpaintImage() - Имитирует картину маслом
  • Imagick::embossImage() - Возвращает изображение в градациях серого с трёхмерным эффектом
  • Imagick::addNoiseImage() - Накладывает случайный шум на изображение
  • Imagick::swirlImage() - Закручивает пиксели вокруг центра изображения


Закрашивает все пиксели выше порога в белый

  • « Imagick::waveImage
  • Imagick::writeImage »
  • PHP Manual
  • Imagick
  • Закрашивает все пиксели выше порога в белый

Imagick::whiteThresholdImage

(PECL imagick 2, PECL imagick 3)

Imagick::whiteThresholdImage — Закрашивает все пиксели выше порога в белый

Описание

public Imagick::whiteThresholdImage(mixed $threshold): bool

Похож на Imagick::ThresholdImage(), но закрашивает все пиксели выше порога в белый цвет, оставляя все пиксели ниже порога без изменений.

Список параметров

threshold

Возвращаемые значения

В случае успешной работы возвращает true.

Список изменений

Версия | Описание
PECL imagick 2.1.0 | Теперь разрешается передавать строку, представляющую цвет в качестве параметра. Предыдущие версии допускают только объект ImagickPixel.

Примеры

Пример #1 Пример использования Imagick::whiteThresholdImage()

<?php
function whiteThresholdImage($imagePath, $color) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->whiteThresholdImage($color);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}

?>


Записывает изображение по указанному имени файла

  • « Imagick::whiteThresholdImage
  • Imagick::writeImageFile »
  • PHP Manual
  • Imagick
  • Записывает изображение по указанному имени файла

Imagick::writeImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImage — Записывает изображение по указанному имени файла

Описание

public Imagick::writeImage(string $filename = NULL): bool

Записывает изображение в указанное имя файла. Если параметр имени файла равен NULL, изображение записывается в имя файла, установленное с помощью Imagick::readImage() или Imagick::setImageFilename().

Список параметров

filename

Имя файла, куда записать изображение. Расширение имени файла определяет тип файла. Формат может быть принудительно установлен независимо от расширения файла, используя префикс "format:" например, "jpg:test.png".

Возвращаемые значения

В случае успешной работы возвращает true.


Записывает изображение в файл

  • « Imagick::writeImage
  • Imagick::writeImages »
  • PHP Manual
  • Imagick
  • Записывает изображение в файл

Imagick::writeImageFile

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImageFile — Записывает изображение в файл

Описание

public Imagick::writeImageFile(resource $filehandle, string $format = ?): bool

Записывает изображение в заданный файловый дескриптор. Дескриптор должен быть предварительно открыт, например с помощью fopen. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

filehandle

Файловый дескриптор.

format

Формат изображения. Список допустимых спецификаторов формата зависит от скомпилированного набора функций программы ImageMagick и может быть запрошен во время выполнения с помощью метода Imagick::queryFormats().

Возвращаемые значения

В случае успешной работы возвращает true.

Смотрите также

  • Imagick::queryFormats() - Возвращает форматы, поддерживаемые Imagick


Записывает изображение или последовательность изображений

  • « Imagick::writeImageFile
  • Imagick::writeImagesFile »
  • PHP Manual
  • Imagick
  • Записывает изображение или последовательность изображений

Imagick::writeImages

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImages — Записывает изображение или последовательность изображений

Описание

public Imagick::writeImages(string $filename, bool $adjoin): bool

Записывает изображение или последовательность изображений.

Список параметров

filename

adjoin

Возвращаемые значения

В случае успешной работы возвращает true.


Записывает фреймы в файловый дескриптор

  • « Imagick::writeImages
  • ImagickDraw »
  • PHP Manual
  • Imagick
  • Записывает фреймы в файловый дескриптор

Imagick::writeImagesFile

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImagesFile — Записывает фреймы в файловый дескриптор

Описание

public Imagick::writeImagesFile(resource $filehandle, string $format = ?): bool

Записывает все фреймы изображения в открытый дескриптор файла. Метод можно использовать для записи анимированных GIF-файлов или других многокадровых изображений в открытый дескриптор файла. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

filehandle

Файловый дескриптор, в который записать изображения.

format

Формат изображения. Список допустимых спецификаторов формата зависит от скомпилированного набора функций программы ImageMagick и может быть запрошен во время выполнения с помощью метода Imagick::queryFormats().

Возвращаемые значения

В случае успешной работы возвращает true.

Смотрите также

  • Imagick::queryFormats() - Возвращает форматы, поддерживаемые Imagick


Класс ImagickDraw

(PECL imagick 2, PECL imagick 3)

Обзор классов

class ImagickDraw {
public affine(array $affine): bool
public annotation(float $x, float $y, string $text): bool
public arc(
float $sx,
float $sy,
float $ex,
float $ey,
float $sd,
float $ed
): bool
public bezier(array $coordinates): bool
public circle(
float $ox,
float $oy,
float $px,
float $py
): bool
public clear(): bool
public clone(): ImagickDraw
public color(float $x, float $y, int $paintMethod): bool
public comment(string $comment): bool
public composite(
int $compose,
float $x,
float $y,
float $width,
float $height,
Imagick $compositeWand
): bool
public __construct()
public destroy(): bool
public ellipse(
float $ox,
float $oy,
float $rx,
float $ry,
float $start,
float $end
): bool
public getClipPath(): string
public getClipRule(): int
public getClipUnits(): int
public getFillColor(): ImagickPixel
public getFillOpacity(): float
public getFillRule(): int
public getFont(): string
public getFontFamily(): string
public getFontSize(): float
public getFontStretch(): int
public getFontStyle(): int
public getFontWeight(): int
public getGravity(): int
public getStrokeAntialias(): bool
public getStrokeColor(): ImagickPixel
public getStrokeDashArray(): array
public getStrokeDashOffset(): float
public getStrokeLineCap(): int
public getStrokeLineJoin(): int
public getStrokeMiterLimit(): int
public getStrokeOpacity(): float
public getStrokeWidth(): float
public getTextAlignment(): int
public getTextAntialias(): bool
public getTextDecoration(): int
public getTextEncoding(): string
public getTextInterlineSpacing(): float
public getTextInterwordSpacing(): float
public getTextKerning(): float
public getTextUnderColor(): ImagickPixel
public getVectorGraphics(): string
public line(
float $sx,
float $sy,
float $ex,
float $ey
): bool
public matte(float $x, float $y, int $paintMethod): bool
public pathClose(): bool
public pathCurveToAbsolute(
float $x1,
float $y1,
float $x2,
float $y2,
float $x,
float $y
): bool
public pathCurveToQuadraticBezierAbsolute(
float $x1,
float $y1,
float $x,
float $y
): bool
public pathCurveToQuadraticBezierRelative(
float $x1,
float $y1,
float $x,
float $y
): bool
public pathCurveToQuadraticBezierSmoothAbsolute(float $x, float $y): bool
public pathCurveToQuadraticBezierSmoothRelative(float $x, float $y): bool
public pathCurveToRelative(
float $x1,
float $y1,
float $x2,
float $y2,
float $x,
float $y
): bool
public pathCurveToSmoothAbsolute(
float $x2,
float $y2,
float $x,
float $y
): bool
public pathCurveToSmoothRelative(
float $x2,
float $y2,
float $x,
float $y
): bool
public pathEllipticArcAbsolute(
float $rx,
float $ry,
float $x_axis_rotation,
bool $large_arc_flag,
bool $sweep_flag,
float $x,
float $y
): bool
public pathEllipticArcRelative(
float $rx,
float $ry,
float $x_axis_rotation,
bool $large_arc_flag,
bool $sweep_flag,
float $x,
float $y
): bool
public pathFinish(): bool
public pathLineToAbsolute(float $x, float $y): bool
public pathLineToHorizontalAbsolute(float $x): bool
public pathLineToHorizontalRelative(float $x): bool
public pathLineToRelative(float $x, float $y): bool
public pathLineToVerticalAbsolute(float $y): bool
public pathLineToVerticalRelative(float $y): bool
public pathMoveToAbsolute(float $x, float $y): bool
public pathMoveToRelative(float $x, float $y): bool
public pathStart(): bool
public point(float $x, float $y): bool
public polygon(array $coordinates): bool
public polyline(array $coordinates): bool
public pop(): bool
public popClipPath(): bool
public popDefs(): bool
public popPattern(): bool
public push(): bool
public pushClipPath(string $clip_mask_id): bool
public pushDefs(): bool
public pushPattern(
string $pattern_id,
float $x,
float $y,
float $width,
float $height
): bool
public rectangle(
float $x1,
float $y1,
float $x2,
float $y2
): bool
public render(): bool
public resetVectorGraphics(): bool
public rotate(float $degrees): bool
public roundRectangle(
float $x1,
float $y1,
float $x2,
float $y2,
float $rx,
float $ry
): bool
public scale(float $x, float $y): bool
public setClipPath(string $clip_mask): bool
public setClipRule(int $fill_rule): bool
public setClipUnits(int $clip_units): bool
public setFillAlpha(float $opacity): bool
public setFillColor(ImagickPixel $fill_pixel): bool
public setFillOpacity(float $fillOpacity): bool
public setFillPatternURL(string $fill_url): bool
public setFillRule(int $fill_rule): bool
public setFont(string $font_name): bool
public setFontFamily(string $font_family): bool
public setFontSize(float $pointsize): bool
public setFontStretch(int $fontStretch): bool
public setFontStyle(int $style): bool
public setFontWeight(int $font_weight): bool
public setGravity(int $gravity): bool
public setResolution(float $x_resolution, float $y_resolution): bool
public setStrokeAlpha(float $opacity): bool
public setStrokeAntialias(bool $stroke_antialias): bool
public setStrokeColor(ImagickPixel $stroke_pixel): bool
public setStrokeDashArray(array $dashArray): bool
public setStrokeDashOffset(float $dash_offset): bool
public setStrokeLineCap(int $linecap): bool
public setStrokeLineJoin(int $linejoin): bool
public setStrokeMiterLimit(int $miterlimit): bool
public setStrokeOpacity(float $stroke_opacity): bool
public setStrokePatternURL(string $stroke_url): bool
public setStrokeWidth(float $stroke_width): bool
public setTextAlignment(int $alignment): bool
public setTextAntialias(bool $antiAlias): bool
public setTextDecoration(int $decoration): bool
public setTextEncoding(string $encoding): bool
public setTextInterlineSpacing(float $spacing): bool
public setTextInterwordSpacing(float $spacing): bool
public setTextKerning(float $kerning): bool
public setTextUnderColor(ImagickPixel $under_color): bool
public setVectorGraphics(string $xml): bool
public setViewbox(
int $x1,
int $y1,
int $x2,
int $y2
): bool
public skewX(float $degrees): bool
public skewY(float $degrees): bool
public translate(float $x, float $y): bool
}

Содержание

  • ImagickDraw::affine — Регулирует текущую матрицу аффинного преобразования
  • ImagickDraw::annotation — Рисует текст на картинке
  • ImagickDraw::arc — Рисует дугу
  • ImagickDraw::bezier — Рисует кривую Безье
  • ImagickDraw::circle — Рисует круг
  • ImagickDraw::clear — Очищает ImagickDraw
  • ImagickDraw::clone — Делает точную копию указанного объекта ImagickDraw
  • ImagickDraw::color — Рисует цвет на изображении
  • ImagickDraw::comment — Добавляет комментарий
  • ImagickDraw::composite — Накладывает изображение на текущее изображение
  • ImagickDraw::__construct — Конструктор класса ImagickDraw
  • ImagickDraw::destroy — Освобождает все связанные ресурсы
  • ImagickDraw::ellipse — Рисует на изображении эллипс
  • ImagickDraw::getClipPath — Возвращает идентификатор текущего обтравочного контура
  • ImagickDraw::getClipRule — Возвращает текущее правило заливки многоугольника
  • ImagickDraw::getClipUnits — Возвращает интерпретацию единиц обтравочного контура
  • ImagickDraw::getFillColor — Возвращает цвет заливки
  • ImagickDraw::getFillOpacity — Возвращает непрозрачность, используемую при рисовании
  • ImagickDraw::getFillRule — Возвращает правило заливки
  • ImagickDraw::getFont — Возвращает шрифт
  • ImagickDraw::getFontFamily — Возвращает семейство шрифтов
  • ImagickDraw::getFontSize — Возвращает размер шрифта
  • ImagickDraw::getFontStretch — Получает растяжение шрифта, используемое при аннотации текста
  • ImagickDraw::getFontStyle — Возвращает стиль шрифта
  • ImagickDraw::getFontWeight — Возвращает толщину шрифта
  • ImagickDraw::getGravity — Возвращает гравитацию размещения текста
  • ImagickDraw::getStrokeAntialias — Возвращает текущую настройку сглаживания обводки
  • ImagickDraw::getStrokeColor — Возвращает цвет, используемый для обводки контуров объекта
  • ImagickDraw::getStrokeDashArray — Возвращает массив, представляющий паттерн из штрихов и пробелов, используемых для обводки контуров
  • ImagickDraw::getStrokeDashOffset — Возвращает смещение в штриховом паттерне для начала штриховки
  • ImagickDraw::getStrokeLineCap — Возвращает форму, которая будет использоваться в конце открытых внутренних контуров при их обводке
  • ImagickDraw::getStrokeLineJoin — Возвращает форму, которая будет использоваться в углах контуров при их обводке
  • ImagickDraw::getStrokeMiterLimit — Возвращает предел среза обводки
  • ImagickDraw::getStrokeOpacity — Возвращает непрозрачность обведённых контуров объекта
  • ImagickDraw::getStrokeWidth — Возвращает ширину обводки, используемой для рисования контуров объекта
  • ImagickDraw::getTextAlignment — Возвращает выравнивание текста
  • ImagickDraw::getTextAntialias — Возвращает текущую настройку сглаживания текста
  • ImagickDraw::getTextDecoration — Возвращает оформление текста
  • ImagickDraw::getTextEncoding — Возвращает кодовый набор, используемый для текстовых аннотаций
  • ImagickDraw::getTextInterlineSpacing — Возвращает межстрочный интервал текста
  • ImagickDraw::getTextInterwordSpacing — Возвращает межсловный интервал текста
  • ImagickDraw::getTextKerning — Возвращает межбуквенный интервал текста
  • ImagickDraw::getTextUnderColor — Возвращает цвет под текстом
  • ImagickDraw::getVectorGraphics — Возвращает строку, содержащую векторную графику
  • ImagickDraw::line — Рисует линию
  • ImagickDraw::matte — Закрашивает канал непрозрачности изображения
  • ImagickDraw::pathClose — Добавляет элемент пути к текущему пути
  • ImagickDraw::pathCurveToAbsolute — Рисует кубическую кривую Безье
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Рисует квадратичную кривую Безье
  • ImagickDraw::pathCurveToQuadraticBezierRelative — Рисует квадратичную кривую Безье
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Рисует квадратичную кривую Безье
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Рисует квадратичную кривую Безье
  • ImagickDraw::pathCurveToRelative — Рисует кубическую кривую Безье
  • ImagickDraw::pathCurveToSmoothAbsolute — Рисует кубическую кривую Безье
  • ImagickDraw::pathCurveToSmoothRelative — Рисует кубическую кривую Безье
  • ImagickDraw::pathEllipticArcAbsolute — Рисует эллиптическую дугу
  • ImagickDraw::pathEllipticArcRelative — Рисует эллиптическую дугу
  • ImagickDraw::pathFinish — Завершает текущий путь
  • ImagickDraw::pathLineToAbsolute — Рисует линию
  • ImagickDraw::pathLineToHorizontalAbsolute — Рисует горизонтальную линию
  • ImagickDraw::pathLineToHorizontalRelative — Рисует горизонтальную линию
  • ImagickDraw::pathLineToRelative — Рисует линию
  • ImagickDraw::pathLineToVerticalAbsolute — Рисует вертикальную линию
  • ImagickDraw::pathLineToVerticalRelative — Рисует вертикальную линию
  • ImagickDraw::pathMoveToAbsolute — Начинает новый внутренний контур
  • ImagickDraw::pathMoveToRelative — Начинает новый внутренний контур
  • ImagickDraw::pathStart — Объявляет начало отрисовки контура
  • ImagickDraw::point — Рисует точку
  • ImagickDraw::polygon — Рисует многоугольник
  • ImagickDraw::polyline — Рисует ломаную линию
  • ImagickDraw::pop — Уничтожает текущий объект ImagickDraw в стеке и возвращается к ранее добавленному объекту ImagickDraw
  • ImagickDraw::popClipPath — Завершает определение пути обтравочного контура
  • ImagickDraw::popDefs — Завершает список определений
  • ImagickDraw::popPattern — Завершает определение шаблона
  • ImagickDraw::push — Клонирует текущий объект ImagickDraw и добавляет его в стек
  • ImagickDraw::pushClipPath — Запускает определение пути обтравочного контура
  • ImagickDraw::pushDefs — Указывает, что следующие команды создают именованные элементы для ранней обработки
  • ImagickDraw::pushPattern — Указывает, что последующие команды вплоть до ImagickDraw::opPattern() составляют определение именованного паттерна
  • ImagickDraw::rectangle — Рисует прямоугольник
  • ImagickDraw::render — Отрисовывает все предыдущие команды рисования на изображении
  • ImagickDraw::resetVectorGraphics — Сбрасывает векторную графику
  • ImagickDraw::rotate — Применяет указанный поворот к текущему координатному пространству
  • ImagickDraw::roundRectangle — Рисует прямоугольник с закруглёнными углами
  • ImagickDraw::scale — Регулирует коэффициент масштабирования
  • ImagickDraw::setClipPath — Связывает именованный контур обтравочного контура с изображением
  • ImagickDraw::setClipRule — Устанавливает правило заливки многоугольника, которое будет использоваться обтравочным контуром
  • ImagickDraw::setClipUnits — Устанавливает интерпретацию единиц траектории обтравочного контура
  • ImagickDraw::setFillAlpha — Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки
  • ImagickDraw::setFillColor — Устанавливает цвет заливки, используемый для рисования объектов с заливкой
  • ImagickDraw::setFillOpacity — Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки
  • ImagickDraw::setFillPatternURL — Устанавливает URL-адрес для использования в качестве образца заливки для заливки объектов
  • ImagickDraw::setFillRule — Устанавливает правило заливки для использования при рисовании полигонов
  • ImagickDraw::setFont — Устанавливает указанный шрифт для использования при аннотировании текстом
  • ImagickDraw::setFontFamily — Устанавливает семейство шрифтов для использования при аннотировании текстом
  • ImagickDraw::setFontSize — Устанавливает размер шрифта для использования при аннотировании текстом
  • ImagickDraw::setFontStretch — Устанавливает растяжение шрифта для использования при аннотировании текстом
  • ImagickDraw::setFontStyle — Устанавливает стиль шрифта для использования при аннотировании текстом
  • ImagickDraw::setFontWeight — Устанавливает толщину шрифта
  • ImagickDraw::setGravity — Устанавливает гравитацию размещения текста
  • ImagickDraw::setResolution — Устанавливает разрешение
  • ImagickDraw::setStrokeAlpha — Определяет непрозрачность обводки контуров объекта
  • ImagickDraw::setStrokeAntialias — Управляет сглаживанием обводок контуров
  • ImagickDraw::setStrokeColor — Устанавливает цвет, используемый для обводки контуров объекта
  • ImagickDraw::setStrokeDashArray — Задаёт паттерн из штрихов и пробелов, используемых для обводки контуров
  • ImagickDraw::setStrokeDashOffset — Задаёт смещение в штриховом паттерне для начала штриховки
  • ImagickDraw::setStrokeLineCap — Задаёт форму, которая будет использоваться в конце открытых внутренних контуров при их обводке
  • ImagickDraw::setStrokeLineJoin — Задаёт форму, которая будет использоваться в углах контуров при их обводке
  • ImagickDraw::setStrokeMiterLimit — Задаёт предел среза обводки
  • ImagickDraw::setStrokeOpacity — Определяет непрозрачность обводки контуров объекта
  • ImagickDraw::setStrokePatternURL — Устанавливает паттерн, используемый для обводки контуров объекта
  • ImagickDraw::setStrokeWidth — Устанавливает ширину обводки, используемой для рисования контуров объекта
  • ImagickDraw::setTextAlignment — Задаёт выравнивание текста
  • ImagickDraw::setTextAntialias — Управляет сглаживанием текста
  • ImagickDraw::setTextDecoration — Определяет оформление
  • ImagickDraw::setTextEncoding — Задаёт кодовый набор текста
  • ImagickDraw::setTextInterlineSpacing — Устанавливает межстрочный интервал текста
  • ImagickDraw::setTextInterwordSpacing — Устанавливает межсловный интервал текста
  • ImagickDraw::setTextKerning — Устанавливает межбуквенный интервал текста
  • ImagickDraw::setTextUnderColor — Задаёт цвет фонового прямоугольника
  • ImagickDraw::setVectorGraphics — Устанавливает векторную графику
  • ImagickDraw::setViewbox — Устанавливает общий размер холста
  • ImagickDraw::skewX — Наклоняет текущую систему координат по горизонтали
  • ImagickDraw::skewY — Наклоняет текущую систему координат по вертикали
  • ImagickDraw::translate — Применяет перенос к текущей системе координат


Регулирует текущую матрицу аффинного преобразования

  • « ImagickDraw
  • ImagickDraw::annotation »
  • PHP Manual
  • ImagickDraw
  • Регулирует текущую матрицу аффинного преобразования

ImagickDraw::affine

(PECL imagick 2, PECL imagick 3)

ImagickDraw::affine — Регулирует текущую матрицу аффинного преобразования

Описание

public ImagickDraw::affine(array $affine): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Корректирует текущую матрицу аффинного преобразования с указанной матрицей аффинного преобразования.

Список параметров

affine

Параметры аффинной матрицы

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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;

//Масштабирование координат чертежа.
$affineScale = array("sx" => 1.75, "sy" => 1.75, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0);

//Сдвиг координат чертежа.
$affineShear = array("sx" => 1, "sy" => 1, "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0);

//Поворот координат чертежа. Аффинная матрица сдвига даёт
//неправильно масштабированные чертежи.
$affineRotate = array("sx" => cos($angle), "sy" => cos($angle), "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0,);

//Смещение рисунка
$affineTranslate = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 30, "ty" => 30);

//Единичная аффинная матрица
$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++;
}

//Создание объекта изображения, в который можно преобразовать команды рисования.
$image = new \Imagick();
$image->newImage(500, 750, $backgroundColor);
$image->setImageFormat("png");

//Преобразование команд рисования в объекте ImagickDraw
//в изображение.
$image->drawImage($draw);

//Отображение изображения в браузере
header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Рисует текст на картинке

  • « ImagickDraw::affine
  • ImagickDraw::arc »
  • PHP Manual
  • ImagickDraw
  • Рисует текст на картинке

ImagickDraw::annotation

(PECL imagick 2, PECL imagick 3)

ImagickDraw::annotation — Рисует текст на картинке

Описание

public ImagickDraw::annotation(float $x, float $y, string $text): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует текст на картинке.

Список параметров

x

Координата X, где рисуется текст

y

Координата Y, где рисуется текст

text

Текст для рисования на изображении

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует дугу

  • « ImagickDraw::annotation
  • ImagickDraw::bezier »
  • PHP Manual
  • ImagickDraw
  • Рисует дугу

ImagickDraw::arc

(PECL imagick 2, PECL imagick 3)

ImagickDraw::arc — Рисует дугу

Описание

public ImagickDraw::arc(
float $sx,
float $sy,
float $ex,
float $ey,
float $sd,
float $ed
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует дугу, попадающую в указанный ограничивающий прямоугольник на изображении.

Список параметров

sx

Начальная координата X ограничивающего прямоугольника

sy

Начальная координата Y ограничивающего прямоугольника

ex

Конечная координата X ограничивающего прямоугольника

ey

Конечная координата Y ограничивающего прямоугольника

sd

Начальный градус вращения

ed

Конечный градус вращения

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ImagickDraw::arc()

<?php
function arc($strokeColor, $fillColor, $backgroundColor, $startX, $startY, $endX, $endY, $startAngle, $endAngle) {

//Создание объекта ImagickDraw для рисования.
$draw = new \ImagickDraw();
$draw->setStrokeWidth(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(2);

$draw->arc($startX, $startY, $endX, $endY, $startAngle, $endAngle);

//Создание объекта изображения, в который можно преобразовать команды рисования.
$image = new \Imagick();
$image->newImage(IMAGE_WIDTH, IMAGE_HEIGHT, $backgroundColor);
$image->setImageFormat("png");

//Преобразование команд рисования в объекте ImagickDraw
//в изображение.
$image->drawImage($draw);

//Отображение изображения в браузере
header("Content-Type: image/png");
echo $image->getImageBlob();
}

?>


Рисует кривую Безье

  • « ImagickDraw::arc
  • ImagickDraw::circle »
  • PHP Manual
  • ImagickDraw
  • Рисует кривую Безье

ImagickDraw::bezier

(PECL imagick 2, PECL imagick 3)

ImagickDraw::bezier — Рисует кривую Безье

Описание

public ImagickDraw::bezier(array $coordinates): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует кривую Безье через набор точек на изображении.

Список параметров

coordinates

Многомерный массив вроде 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);
}

//Создание объекта изображения, в который можно преобразовать команды рисования.
$imagick = new \Imagick();
$imagick->newImage(500, 500, $backgroundColor);
$imagick->setImageFormat("png");

//Преобразование команд рисования в объекте ImagickDraw
//в изображение.
$imagick->drawImage($draw);

//Отображение изображения в браузере
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Рисует круг

  • « ImagickDraw::bezier
  • ImagickDraw::clear »
  • PHP Manual
  • ImagickDraw
  • Рисует круг

ImagickDraw::circle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::circle — Рисует круг

Описание

public ImagickDraw::circle(
float $ox,
float $oy,
float $px,
float $py
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует круг на изображении.

Список параметров

ox

Исходная координата X

oy

Исходная координата Y

px

Координата X периметра

py

Координата Y периметра

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ImagickDraw::circle()

<?php
function circle($strokeColor, $fillColor, $backgroundColor, $originX, $originY, $endX, $endY) {

//Создание объекта ImagickDraw для рисования.
$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();
}

?>


Очищает ImagickDraw

  • « ImagickDraw::circle
  • ImagickDraw::clone »
  • PHP Manual
  • ImagickDraw
  • Очищает ImagickDraw

ImagickDraw::clear

(PECL imagick 2, PECL imagick 3)

ImagickDraw::clear — Очищает ImagickDraw

Описание

public ImagickDraw::clear(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Очищает объект ImagickDraw от всех накопленных команд и сбрасывает содержащиеся в нем параметры к их значениям по умолчанию.

Возвращаемые значения

Возвращает объект ImagickDraw.


Делает точную копию указанного объекта ImagickDraw

  • « ImagickDraw::clear
  • ImagickDraw::color »
  • PHP Manual
  • ImagickDraw
  • Делает точную копию указанного объекта ImagickDraw

ImagickDraw::clone

(PECL imagick 2, PECL imagick 3)

ImagickDraw::clone — Делает точную копию указанного объекта ImagickDraw

Описание

public ImagickDraw::clone(): ImagickDraw
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Делает точную копию указанного объекта ImagickDraw.

Возвращаемые значения

Возвращает точную копию указанного объекта ImagickDraw.


Рисует цвет на изображении

  • « ImagickDraw::clone
  • ImagickDraw::comment »
  • PHP Manual
  • ImagickDraw
  • Рисует цвет на изображении

ImagickDraw::color

(PECL imagick 2, PECL imagick 3)

ImagickDraw::color — Рисует цвет на изображении

Описание

public ImagickDraw::color(float $x, float $y, int $paintMethod): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует цвет на изображении, используя текущий цвет заливки, начиная с указанной позиции и используя указанный метод рисования.

Список параметров

x

Координата X рисунка

y

Координата Y рисунка

paintMethod

Одна из констант PAINT (imagick::PAINT_*).

Возвращаемые значения

Функция не возвращает значения после выполнения.


Добавляет комментарий

  • « ImagickDraw::color
  • ImagickDraw::composite »
  • PHP Manual
  • ImagickDraw
  • Добавляет комментарий

ImagickDraw::comment

(PECL imagick 2, PECL imagick 3)

ImagickDraw::comment — Добавляет комментарий

Описание

public ImagickDraw::comment(string $comment): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Добавляет комментарий в векторный поток вывода.

Список параметров

comment

Строка комментария для добавления в векторный поток вывода

Возвращаемые значения

Функция не возвращает значения после выполнения.


Накладывает изображение на текущее изображение

  • « ImagickDraw::comment
  • ImagickDraw::__construct »
  • PHP Manual
  • ImagickDraw
  • Накладывает изображение на текущее изображение

ImagickDraw::composite

(PECL imagick 2, PECL imagick 3)

ImagickDraw::composite — Накладывает изображение на текущее изображение

Описание

public ImagickDraw::composite(
int $compose,
float $x,
float $y,
float $width,
float $height,
Imagick $compositeWand
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Накладывает изображение на текущее изображение, используя указанный оператор накладывания, указанную позицию и указанный размер.

Список параметров

compose

Оператор накладывания. Одна из констант Оператора накладывания (imagick::COMPOSITE_*).

x

Координата X левого верхнего угла.

y

Координата Y левого верхнего угла.

width

Ширина изображения композиции.

height

Высота изображения композиции.

compositeWand

Объект Imagick, из которого взято композиционное изображение.

Возвращаемые значения

В случае успешной работы возвращает 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!");

//Создание объекта изображения, в который можно преобразовать команды рисования.
$imagick = new \Imagick();
$imagick->newImage(1000, 302, $backgroundColor);
$imagick->setImageFormat("png");

//Преобразование команд рисования в объекте ImagickDraw
//в изображение.
$imagick->drawImage($draw);

//Отображение изображения в браузере
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}

?>


Конструктор класса ImagickDraw

  • « ImagickDraw::composite
  • ImagickDraw::destroy »
  • PHP Manual
  • ImagickDraw
  • Конструктор класса ImagickDraw

ImagickDraw::__construct

(PECL imagick 2, PECL imagick 3)

ImagickDraw::__construct — Конструктор класса ImagickDraw

Описание

public ImagickDraw::__construct()
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Конструктор класса ImagickDraw.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Освобождает все связанные ресурсы

  • « ImagickDraw::__construct
  • ImagickDraw::ellipse »
  • PHP Manual
  • ImagickDraw
  • Освобождает все связанные ресурсы

ImagickDraw::destroy

(PECL imagick 2, PECL imagick 3)

ImagickDraw::destroy — Освобождает все связанные ресурсы

Описание

public ImagickDraw::destroy(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Освобождает все ресурсы, связанные с объектом ImagickDraw.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует на изображении эллипс

  • « ImagickDraw::destroy
  • ImagickDraw::getClipPath »
  • PHP Manual
  • ImagickDraw
  • Рисует на изображении эллипс

ImagickDraw::ellipse

(PECL imagick 2, PECL imagick 3)

ImagickDraw::ellipse — Рисует на изображении эллипс

Описание

public ImagickDraw::ellipse(
float $ox,
float $oy,
float $rx,
float $ry,
float $start,
float $end
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует на изображении эллипс.

Список параметров

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();
}

?>


Возвращает идентификатор текущего обтравочного контура

  • « ImagickDraw::ellipse
  • ImagickDraw::getClipRule »
  • PHP Manual
  • ImagickDraw
  • Возвращает идентификатор текущего обтравочного контура

ImagickDraw::getClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getClipPath — Возвращает идентификатор текущего обтравочного контура

Описание

public ImagickDraw::getClipPath(): string
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Получает идентификатор текущего обтравочного контура.

Возвращаемые значения

Возвращает строку, содержащую идентификатор обтравочного контура или false, если обтравочного контура не существует.


Возвращает текущее правило заливки многоугольника

  • « ImagickDraw::getClipPath
  • ImagickDraw::getClipUnits »
  • PHP Manual
  • ImagickDraw
  • Возвращает текущее правило заливки многоугольника

ImagickDraw::getClipRule

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getClipRule — Возвращает текущее правило заливки многоугольника

Описание

public ImagickDraw::getClipRule(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает текущее правило заливки многоугольника, которое будет использоваться обтравочным контуром.

Возвращаемые значения

Возвращает одну из констант FILLRULE (imagick::FILLRULE_*).


Возвращает интерпретацию единиц обтравочного контура

  • « ImagickDraw::getClipRule
  • ImagickDraw::getFillColor »
  • PHP Manual
  • ImagickDraw
  • Возвращает интерпретацию единиц обтравочного контура

ImagickDraw::getClipUnits

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getClipUnits — Возвращает интерпретацию единиц обтравочного контура

Описание

public ImagickDraw::getClipUnits(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает интерпретацию единиц обтравочного контура.

Возвращаемые значения

В случае успешного выполнения возвращает целое число (int).


Возвращает цвет заливки

  • « ImagickDraw::getClipUnits
  • ImagickDraw::getFillOpacity »
  • PHP Manual
  • ImagickDraw
  • Возвращает цвет заливки

ImagickDraw::getFillColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFillColor — Возвращает цвет заливки

Описание

public ImagickDraw::getFillColor(): ImagickPixel
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает цвет заливки, используемый для рисования объектов с заливкой.

Возвращаемые значения

Возвращает объект ImagickPixel.


Возвращает непрозрачность, используемую при рисовании

  • « ImagickDraw::getFillColor
  • ImagickDraw::getFillRule »
  • PHP Manual
  • ImagickDraw
  • Возвращает непрозрачность, используемую при рисовании

ImagickDraw::getFillOpacity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFillOpacity — Возвращает непрозрачность, используемую при рисовании

Описание

public ImagickDraw::getFillOpacity(): float
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает непрозрачность, используемую при рисовании с использованием цвета или текстуры заливки. Полностью непрозрачный - 1.0.

Возвращаемые значения

Непрозрачность.


Возвращает правило заливки

  • « ImagickDraw::getFillOpacity
  • ImagickDraw::getFont »
  • PHP Manual
  • ImagickDraw
  • Возвращает правило заливки

ImagickDraw::getFillRule

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFillRule — Возвращает правило заливки

Описание

public ImagickDraw::getFillRule(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает правило заливки, используемое при рисовании полигонов.

Возвращаемые значения

Возвращает константу FILLRULE (imagick::FILLRULE_*).


Возвращает шрифт

  • « ImagickDraw::getFillRule
  • ImagickDraw::getFontFamily »
  • PHP Manual
  • ImagickDraw
  • Возвращает шрифт

ImagickDraw::getFont

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFont — Возвращает шрифт

Описание

public ImagickDraw::getFont(): string
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает строку, определяющую шрифт, используемый при аннотации текста.

Возвращаемые значения

Возвращает строку в случае успешного выполнения или false, если шрифт не определён.


Возвращает семейство шрифтов

  • « ImagickDraw::getFont
  • ImagickDraw::getFontSize »
  • PHP Manual
  • ImagickDraw
  • Возвращает семейство шрифтов

ImagickDraw::getFontFamily

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFontFamily — Возвращает семейство шрифтов

Описание

public ImagickDraw::getFontFamily(): string
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает семейство шрифтов, используемое при аннотации текста.

Возвращаемые значения

Возвращает текущее выбранное семейство шрифтов или false, если семейство шрифтов не определено.


Возвращает размер шрифта

  • « ImagickDraw::getFontFamily
  • ImagickDraw::getFontStretch »
  • PHP Manual
  • ImagickDraw
  • Возвращает размер шрифта

ImagickDraw::getFontSize

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFontSize — Возвращает размер шрифта

Описание

public ImagickDraw::getFontSize(): float
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает размер шрифта, используемый при аннотации текста.

Возвращаемые значения

Возвращает размер шрифта, связанный с текущим объектом ImagickDraw.


Получает растяжение шрифта, используемое при аннотации текста

  • « ImagickDraw::getFontSize
  • ImagickDraw::getFontStyle »
  • PHP Manual
  • ImagickDraw
  • Получает растяжение шрифта, используемое при аннотации текста

ImagickDraw::getFontStretch

(PECL imagick 2 >=2.3.0, PECL imagick 3)

ImagickDraw::getFontStretch — Получает растяжение шрифта, используемое при аннотации текста

Описание

public ImagickDraw::getFontStretch(): int

Получает растяжение шрифта, используемое при аннотации текста. Возвращает StretchType.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает стиль шрифта

  • « ImagickDraw::getFontStretch
  • ImagickDraw::getFontWeight »
  • PHP Manual
  • ImagickDraw
  • Возвращает стиль шрифта

ImagickDraw::getFontStyle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFontStyle — Возвращает стиль шрифта

Описание

public ImagickDraw::getFontStyle(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает стиль шрифта, используемый при аннотации текста.

Возвращаемые значения

Возвращает константу STYLE (imagick::STYLE_*), связанную с объектом ImagickDraw или 0, если стиль не установлен.


Возвращает толщину шрифта

  • « ImagickDraw::getFontStyle
  • ImagickDraw::getGravity »
  • PHP Manual
  • ImagickDraw
  • Возвращает толщину шрифта

ImagickDraw::getFontWeight

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFontWeight — Возвращает толщину шрифта

Описание

public ImagickDraw::getFontWeight(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает толщину шрифта, используемую при аннотации текста.

Возвращаемые значения

Возвращает целое число (int) в случае успешного выполнения или 0, если толщина не задана.


Возвращает гравитацию размещения текста

  • « ImagickDraw::getFontWeight
  • ImagickDraw::getStrokeAntialias »
  • PHP Manual
  • ImagickDraw
  • Возвращает гравитацию размещения текста

ImagickDraw::getGravity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getGravity — Возвращает гравитацию размещения текста

Описание

public ImagickDraw::getGravity(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает гравитацию размещения текста, используемую при его аннотации.

Возвращаемые значения

Возвращает константу GRAVITY (imagick::GRAVITY_*) в случае успешного выполнения или 0, если гравитация не установлена.


Возвращает текущую настройку сглаживания обводки

  • « ImagickDraw::getGravity
  • ImagickDraw::getStrokeColor »
  • PHP Manual
  • ImagickDraw
  • Возвращает текущую настройку сглаживания обводки

ImagickDraw::getStrokeAntialias

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeAntialias — Возвращает текущую настройку сглаживания обводки

Описание

public ImagickDraw::getStrokeAntialias(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает текущую настройку сглаживания обводки. По умолчанию обведённые контуры сглаживаются. Когда сглаживание отключено, для обведённых пикселей устанавливается пороговое значение, чтобы определить, следует ли использовать цвет обводки или базовый цвет холста.

Возвращаемые значения

Возвращает true, если сглаживание включено или false, если оно выключено.


Возвращает цвет, используемый для обводки контуров объекта

  • « ImagickDraw::getStrokeAntialias
  • ImagickDraw::getStrokeDashArray »
  • PHP Manual
  • ImagickDraw
  • Возвращает цвет, используемый для обводки контуров объекта

ImagickDraw::getStrokeColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeColor — Возвращает цвет, используемый для обводки контуров объекта

Описание

public ImagickDraw::getStrokeColor(): ImagickPixel
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает цвет, используемый для обводки контуров объекта.

Список параметров

stroke_color

Возвращаемые значения

Возвращает объект ImagickPixel, описывающий цвет.


Возвращает массив, представляющий паттерн из штрихов и пробелов, используемых для обводки контуров

  • « ImagickDraw::getStrokeColor
  • ImagickDraw::getStrokeDashOffset »
  • PHP Manual
  • ImagickDraw
  • Возвращает массив, представляющий паттерн из штрихов и пробелов, используемых для обводки контуров

ImagickDraw::getStrokeDashArray

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeDashArray — Возвращает массив, представляющий паттерн из штрихов и пробелов, используемых для обводки контуров

Описание

public ImagickDraw::getStrokeDashArray(): array
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает массив, представляющий паттерн из штрихов и пробелов, используемых для обводки контуров.

Возвращаемые значения

Возвращает массив в случае успешного выполнения или пустой массив, если паттерн не задан.


Возвращает смещение в штриховом паттерне для начала штриховки

  • « ImagickDraw::getStrokeDashArray
  • ImagickDraw::getStrokeLineCap »
  • PHP Manual
  • ImagickDraw
  • Возвращает смещение в штриховом паттерне для начала штриховки

ImagickDraw::getStrokeDashOffset

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeDashOffset — Возвращает смещение в штриховом паттерне для начала штриховки

Описание

public ImagickDraw::getStrokeDashOffset(): float
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает смещение в штриховом паттерне для начала штриховки.

Возвращаемые значения

Возвращает число с плавающей точкой, представляющее смещение, или 0, если оно не установлено.


Возвращает форму, которая будет использоваться в конце открытых внутренних контуров при их обводке

  • « ImagickDraw::getStrokeDashOffset
  • ImagickDraw::getStrokeLineJoin »
  • PHP Manual
  • ImagickDraw
  • Возвращает форму, которая будет использоваться в конце открытых внутренних контуров при их обводке

ImagickDraw::getStrokeLineCap

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeLineCap — Возвращает форму, которая будет использоваться в конце открытых внутренних контуров при их обводке

Описание

public ImagickDraw::getStrokeLineCap(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает форму, которая будет использоваться в конце открытых внутренних контуров при их обводке.

Возвращаемые значения

Возвращает константу LINECAP (imagick::LINECAP_*) или 0, если форма обводки не задана.


Возвращает форму, которая будет использоваться в углах контуров при их обводке

  • « ImagickDraw::getStrokeLineCap
  • ImagickDraw::getStrokeMiterLimit »
  • PHP Manual
  • ImagickDraw
  • Возвращает форму, которая будет использоваться в углах контуров при их обводке

ImagickDraw::getStrokeLineJoin

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeLineJoin — Возвращает форму, которая будет использоваться в углах контуров при их обводке

Описание

public ImagickDraw::getStrokeLineJoin(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает фигуру, которая будет использоваться в углах контуров (или других векторных фигур) при их обводке.

Возвращаемые значения

Возвращает одну из констант LINEJOIN (imagick::LINEJOIN_*) или 0, если соединение линии обводки не задано.


Возвращает предел среза обводки

  • « ImagickDraw::getStrokeLineJoin
  • ImagickDraw::getStrokeOpacity »
  • PHP Manual
  • ImagickDraw
  • Возвращает предел среза обводки

ImagickDraw::getStrokeMiterLimit

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeMiterLimit — Возвращает предел среза обводки

Описание

public ImagickDraw::getStrokeMiterLimit(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает предел среза. Когда два отрезка линии встречаются под острым углом и для 'lineJoin' заданы угловые стыки, срез может выходить далеко за пределы толщины линии, обводящей контур. 'miterLimit' накладывает ограничение на отношение длины среза к 'lineWidth'.

Возвращаемые значения

Возвращает целое число, описывающее предел среза, или 0, если предел среза не установлен.


Возвращает непрозрачность обведённых контуров объекта

  • « ImagickDraw::getStrokeMiterLimit
  • ImagickDraw::getStrokeWidth »
  • PHP Manual
  • ImagickDraw
  • Возвращает непрозрачность обведённых контуров объекта

ImagickDraw::getStrokeOpacity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeOpacity — Возвращает непрозрачность обведённых контуров объекта

Описание

public ImagickDraw::getStrokeOpacity(): float
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает непрозрачность обведённых контуров объекта.

Возвращаемые значения

Возвращает число с плавающей точкой (float), описывающее непрозрачность.


Возвращает ширину обводки, используемой для рисования контуров объекта

  • « ImagickDraw::getStrokeOpacity
  • ImagickDraw::getTextAlignment »
  • PHP Manual
  • ImagickDraw
  • Возвращает ширину обводки, используемой для рисования контуров объекта

ImagickDraw::getStrokeWidth

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getStrokeWidth — Возвращает ширину обводки, используемой для рисования контуров объекта

Описание

public ImagickDraw::getStrokeWidth(): float
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает ширину обводки, используемой для рисования контуров объекта.

Возвращаемые значения

Возвращает число с плавающей точкой (float), описывающее ширину обводки.


Возвращает выравнивание текста

  • « ImagickDraw::getStrokeWidth
  • ImagickDraw::getTextAntialias »
  • PHP Manual
  • ImagickDraw
  • Возвращает выравнивание текста

ImagickDraw::getTextAlignment

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextAlignment — Возвращает выравнивание текста

Описание

public ImagickDraw::getTextAlignment(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает выравнивание, применённое при аннотации текста.

Возвращаемые значения

Возвращает одну из констант ALIGN (imagick::ALIGN_*) или 0, если выравнивание не задано.


Возвращает текущую настройку сглаживания текста

  • « ImagickDraw::getTextAlignment
  • ImagickDraw::getTextDecoration »
  • PHP Manual
  • ImagickDraw
  • Возвращает текущую настройку сглаживания текста

ImagickDraw::getTextAntialias

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextAntialias — Возвращает текущую настройку сглаживания текста

Описание

public ImagickDraw::getTextAntialias(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает текущую настройку сглаживания текста, которая определяет, является ли текст сглаженным. По умолчанию сглаживание текста включено.

Возвращаемые значения

Возвращает true, если текст сглажен или false, если нет.


Возвращает оформление текста

  • « ImagickDraw::getTextAntialias
  • ImagickDraw::getTextEncoding »
  • PHP Manual
  • ImagickDraw
  • Возвращает оформление текста

ImagickDraw::getTextDecoration

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextDecoration — Возвращает оформление текста

Описание

public ImagickDraw::getTextDecoration(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает оформление, применённое при аннотации текста.

Возвращаемые значения

Возвращает одну из констант DECORATION (imagick::DECORATION_*) или 0, если оформление не задано.


Возвращает кодовый набор, используемый для текстовых аннотаций

  • « ImagickDraw::getTextDecoration
  • ImagickDraw::getTextInterlineSpacing »
  • PHP Manual
  • ImagickDraw
  • Возвращает кодовый набор, используемый для текстовых аннотаций

ImagickDraw::getTextEncoding

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextEncoding — Возвращает кодовый набор, используемый для текстовых аннотаций

Описание

public ImagickDraw::getTextEncoding(): string
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает строку, определяющую кодовый набор, используемый для текстовых аннотаций.

Возвращаемые значения

Возвращает строку, определяющую кодовый набор, или false, если кодировка текста не установлена.


Возвращает межстрочный интервал текста

  • « ImagickDraw::getTextEncoding
  • ImagickDraw::getTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Возвращает межстрочный интервал текста

ImagickDraw::getTextInterlineSpacing

(PECL imagick 3 >= 3.1.0)

ImagickDraw::getTextInterlineSpacing — Возвращает межстрочный интервал текста

Описание

public ImagickDraw::getTextInterlineSpacing(): float

Возвращает межстрочный интервал текста.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает межсловный интервал текста

  • « ImagickDraw::getTextInterlineSpacing
  • ImagickDraw::getTextKerning »
  • PHP Manual
  • ImagickDraw
  • Возвращает межсловный интервал текста

ImagickDraw::getTextInterwordSpacing

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.1.0)

ImagickDraw::getTextInterwordSpacing — Возвращает межсловный интервал текста

Описание

public ImagickDraw::getTextInterwordSpacing(): float

Возвращает межсловный интервал текста.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает межбуквенный интервал текста

  • « ImagickDraw::getTextInterwordSpacing
  • ImagickDraw::getTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Возвращает межбуквенный интервал текста

ImagickDraw::getTextKerning

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.1.0)

ImagickDraw::getTextKerning — Возвращает межбуквенный интервал текста

Описание

public ImagickDraw::getTextKerning(): float

Возвращает межбуквенный интервал текста.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает цвет под текстом

  • « ImagickDraw::getTextKerning
  • ImagickDraw::getVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Возвращает цвет под текстом

ImagickDraw::getTextUnderColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getTextUnderColor — Возвращает цвет под текстом

Описание

public ImagickDraw::getTextUnderColor(): ImagickPixel
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает цвет фонового прямоугольника для размещения под текстовыми аннотациями.

Возвращаемые значения

Возвращает объект ImagickPixel, описывающий цвет.


Возвращает строку, содержащую векторную графику

  • « ImagickDraw::getTextUnderColor
  • ImagickDraw::line »
  • PHP Manual
  • ImagickDraw
  • Возвращает строку, содержащую векторную графику

ImagickDraw::getVectorGraphics

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getVectorGraphics — Возвращает строку, содержащую векторную графику

Описание

public ImagickDraw::getVectorGraphics(): string
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает строку, которая определяет векторную графику, сгенерированную любыми графическими вызовами, сделанными с момента создания объекта ImagickDraw.

Возвращаемые значения

Возвращает строку, содержащую векторную графику.


Рисует линию

  • « ImagickDraw::getVectorGraphics
  • ImagickDraw::matte »
  • PHP Manual
  • ImagickDraw
  • Рисует линию

ImagickDraw::line

(PECL imagick 2, PECL imagick 3)

ImagickDraw::line — Рисует линию

Описание

public ImagickDraw::line(
float $sx,
float $sy,
float $ex,
float $ey
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует линию на изображении, используя текущий цвет обводки, её прозрачность и ширину.

Список параметров

sx

Начальная координата x.

sy

Начальная координата y.

ex

Конечная координата x.

ey

Конечная координата y.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Закрашивает канал непрозрачности изображения

  • « ImagickDraw::line
  • ImagickDraw::pathClose »
  • PHP Manual
  • ImagickDraw
  • Закрашивает канал непрозрачности изображения

ImagickDraw::matte

(PECL imagick 2, PECL imagick 3)

ImagickDraw::matte — Закрашивает канал непрозрачности изображения

Описание

public ImagickDraw::matte(float $x, float $y, int $paintMethod): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Закрашивает канал непрозрачности изображения с целью сделать затронутые пиксели прозрачными.

Список параметров

x

Координата x.

y

Координата y.

paintMethod

Одна из констант PAINT (imagick::PAINT_*).

Возвращаемые значения

Возвращает 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();
}

?>


Добавляет элемент пути к текущему пути

  • « ImagickDraw::matte
  • ImagickDraw::pathCurveToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Добавляет элемент пути к текущему пути

ImagickDraw::pathClose

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathClose — Добавляет элемент пути к текущему пути

Описание

public ImagickDraw::pathClose(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Добавляет элемент пути к текущему пути, который закрывает текущий дополнительный путь, рисуя прямую линию от текущей точки до самой последней начальной точки текущего дополнительного пути (обычно, самой последней точки).

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует кубическую кривую Безье

  • « ImagickDraw::pathClose
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute »
  • PHP Manual
  • ImagickDraw
  • Рисует кубическую кривую Безье

ImagickDraw::pathCurveToAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToAbsolute — Рисует кубическую кривую Безье

Описание

public ImagickDraw::pathCurveToAbsolute(
float $x1,
float $y1,
float $x2,
float $y2,
float $x,
float $y
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует кубическую кривую Безье от текущей точки до (x,y), используя (x1,y1) в качестве контрольной точки в начале кривой и (x2,y2) в качестве контрольной точки в конце кривой с использованием абсолютных координат. В конце команды новая текущая точка становится последней парой координат (x, y), используемой в кубической кривой Безье.

Список параметров

x1

Координата x первой контрольной точки.

y1

Координата y первой контрольной точки.

x2

Координата x второй контрольной точки.

y2

Координата y второй контрольной точки.

x

Координата x конца кривой.

y

Координата y конца кривой.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует квадратичную кривую Безье

  • « ImagickDraw::pathCurveToAbsolute
  • ImagickDraw::pathCurveToQuadraticBezierRelative »
  • PHP Manual
  • ImagickDraw
  • Рисует квадратичную кривую Безье

ImagickDraw::pathCurveToQuadraticBezierAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierAbsolute — Рисует квадратичную кривую Безье

Описание

public ImagickDraw::pathCurveToQuadraticBezierAbsolute(
float $x1,
float $y1,
float $x,
float $y
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует квадратичную кривую Безье от текущей точки до (x,y) с (x1,y1) в качестве контрольной точки, используя абсолютные координаты. В конце команды новая текущая точка становится последней парой координат (x,y), используемой в кривой Безье.

Список параметров

x1

Координата x контрольной точки.

y1

Координата y первой контрольной точки.

x

Координата x конечной точки.

y

Координата y конечной точки.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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);

// Определение квадратичной кривой Безье с текущей позицией в качестве начальной точки,
// контрольной точкой являются первые два параметра, а конечной - последние два.
$draw->pathCurveToQuadraticBezierAbsolute(
150,50,
250,250
);

// Определение квадратичной кривой Безье с текущей позицией в качестве начальной точки,
// контрольная точка зеркально отражается от контрольной точки предыдущей кривой,
// а конечная точка определяется значениями x, y.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
450,250
);

// Определение квадратичной кривой Безье с текущей позицией в качестве начальной точки,
// контрольная точка зеркально отражается от контрольной точки предыдущей кривой,
// а конечная точка определяется значениями x, y относительно текущей позиции.
$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();

}

?>


Рисует квадратичную кривую Безье

  • « ImagickDraw::pathCurveToQuadraticBezierAbsolute
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute »
  • PHP Manual
  • ImagickDraw
  • Рисует квадратичную кривую Безье

ImagickDraw::pathCurveToQuadraticBezierRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierRelative — Рисует квадратичную кривую Безье

Описание

public ImagickDraw::pathCurveToQuadraticBezierRelative(
float $x1,
float $y1,
float $x,
float $y
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует квадратичную кривую Безье от текущей точки до (x,y) с (x1,y1) в качестве контрольной точки, используя относительные координаты. В конце команды новая текущая точка становится последней парой координат (x,y), используемой в кривой Безье.

Список параметров

x1

Начальная координата x.

y1

Начальная координата y.

x

Конечная координата x.

y

Конечная координата y.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует квадратичную кривую Безье

  • « ImagickDraw::pathCurveToQuadraticBezierRelative
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative »
  • PHP Manual
  • ImagickDraw
  • Рисует квадратичную кривую Безье

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Рисует квадратичную кривую Безье

Описание

public ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute(float $x, float $y): bool

Рисует квадратичную кривую Безье (с использованием абсолютных координат) от текущей точки до (x,y). Предполагается, что контрольная точка является отражением контрольной точки предыдущей команды относительно текущей точки. (Если предыдущая команда отсутствует или не является DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolute или DrawPathCurveToQuadraticBezierSmoothRelative, то предполагается, что контрольная точка совпадает с текущей). В конце команды новая текущая точка становится последней парой координат (x,y), используемой в кривой Безье.

Функцию нельзя использовать для плавного продолжения кубической кривой Безье. Она может плавно продолжать только квадратичную кривую.

Список параметров

x

Конечная координата x.

y

Конечная координата y.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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);

// Определение квадратичной кривой Безье с текущей позицией в качестве начальной точки,
// контрольной точкой являются первые два параметра, а конечной - последние два.
$draw->pathCurveToQuadraticBezierAbsolute(
150,50,
250,250
);

// Определение квадратичной кривой Безье с текущей позицией в качестве начальной точки,
// контрольная точка зеркально отражается от контрольной точки предыдущей кривой,
// а конечная точка определяется значениями x, y.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
450,250
);

// Определение квадратичной кривой Безье с текущей позицией в качестве начальной точки,
// контрольная точка зеркально отражается от контрольной точки предыдущей кривой,
// а конечная точка определяется значениями x, y относительно текущей позиции.
$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();
?>


Рисует квадратичную кривую Безье

  • « ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
  • ImagickDraw::pathCurveToRelative »
  • PHP Manual
  • ImagickDraw
  • Рисует квадратичную кривую Безье

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Рисует квадратичную кривую Безье

Описание

public ImagickDraw::pathCurveToQuadraticBezierSmoothRelative(float $x, float $y): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует квадратичную кривую Безье (с использованием относительных координат) от текущей точки до (x,y). Предполагается, что контрольная точка является отражением контрольной точки предыдущей команды относительно текущей точки. (Если предыдущая команда отсутствует или не является DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolute или DrawPathCurveToQuadraticBezierSmoothRelative, то предполагается, что контрольная точка совпадает с текущей). В конце команды новая текущая точка становится последней парой координат (x,y), используемой в кривой Безье.

Функцию нельзя использовать для плавного продолжения кубической кривой Безье. Она может плавно продолжать только квадратичную кривую.

Список параметров

x

Конечная координата x.

y

Конечная координата y.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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);

// Определение квадратичной кривой Безье с текущей позицией в качестве начальной точки,
// контрольной точкой являются первые два параметра, а конечной - последние два.
$draw->pathCurveToQuadraticBezierAbsolute(
150,50,
250,250
);

// Определение квадратичной кривой Безье с текущей позицией в качестве начальной точки,
// контрольная точка зеркально отражается от контрольной точки предыдущей кривой,
// а конечная точка определяется значениями x, y.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
450,250
);

// Определение квадратичной кривой Безье с текущей позицией в качестве начальной точки,
// контрольная точка зеркально отражается от контрольной точки предыдущей кривой,
// а конечная точка определяется значениями x, y относительно текущей позиции.
$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();
?>


Рисует кубическую кривую Безье

  • « ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
  • ImagickDraw::pathCurveToSmoothAbsolute »
  • PHP Manual
  • ImagickDraw
  • Рисует кубическую кривую Безье

ImagickDraw::pathCurveToRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToRelative — Рисует кубическую кривую Безье

Описание

public ImagickDraw::pathCurveToRelative(
float $x1,
float $y1,
float $x2,
float $y2,
float $x,
float $y
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует кубическую кривую Безье от текущей точки до (x,y), используя (x1,y1) в качестве контрольной точки в начале кривой и (x2,y2) в качестве контрольной точки в конце кривой с использованием относительных координат. В конце команды новая текущая точка становится последней парой координат (x,y), используемой в кубической кривой Безье.

Список параметров

x1

Координата x начальной контрольной точки.

y1

Координата y начальной контрольной точки.

x2

Координата x конечной контрольной точки.

y2

Координата y конечной контрольной точки.

x

Конечная координата x.

y

Конечная координата y.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует кубическую кривую Безье

  • « ImagickDraw::pathCurveToRelative
  • ImagickDraw::pathCurveToSmoothRelative »
  • PHP Manual
  • ImagickDraw
  • Рисует кубическую кривую Безье

ImagickDraw::pathCurveToSmoothAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToSmoothAbsolute — Рисует кубическую кривую Безье

Описание

public ImagickDraw::pathCurveToSmoothAbsolute(
float $x2,
float $y2,
float $x,
float $y
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует кубическую кривую Безье от текущей точки до (x,y) с использованием абсолютных координат. Предполагается, что первая контрольная точка является отражением второй контрольной точки предыдущей команды относительно текущей точки. (Если предыдущая команда отсутствует или не является DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute или DrawPathCurveToSmoothRelative, то предполагается, что первая контрольная точка совпадает с текущей точкой). (x2,y2) - вторая контрольная точка (т.е. контрольная точка в конце кривой). В конце команды новая текущая точка становится последней парой координат (x,y), используемой в кривой Безье.

Список параметров

x2

Координата x второй контрольной точки.

y2

Координата y второй контрольной точки.

x

Координата x конечной точки.

y

Координата y конечной точки.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует кубическую кривую Безье

  • « ImagickDraw::pathCurveToSmoothAbsolute
  • ImagickDraw::pathEllipticArcAbsolute »
  • PHP Manual
  • ImagickDraw
  • Рисует кубическую кривую Безье

ImagickDraw::pathCurveToSmoothRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathCurveToSmoothRelative — Рисует кубическую кривую Безье

Описание

public ImagickDraw::pathCurveToSmoothRelative(
float $x2,
float $y2,
float $x,
float $y
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует кубическую кривую Безье от текущей точки до (x,y) с использованием относительных координат. Предполагается, что первая контрольная точка является отражением второй контрольной точки предыдущей команды относительно текущей точки. (Если предыдущая команда отсутствует или не является DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute или DrawPathCurveToSmoothRelative, то предполагается, что первая контрольная точка совпадает с текущей точкой). (x2,y2) - вторая контрольная точка (т.е. контрольная точка в конце кривой). В конце команды новая текущая точка становится последней парой координат (x,y), используемой в кривой Безье.

Список параметров

x2

Координата x второй контрольной точки.

y2

Координата y второй контрольной точки.

x

Координата x конечной точки.

y

Координата y конечной точки.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует эллиптическую дугу

  • « ImagickDraw::pathCurveToSmoothRelative
  • ImagickDraw::pathEllipticArcRelative »
  • PHP Manual
  • ImagickDraw
  • Рисует эллиптическую дугу

ImagickDraw::pathEllipticArcAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathEllipticArcAbsolute — Рисует эллиптическую дугу

Описание

public ImagickDraw::pathEllipticArcAbsolute(
float $rx,
float $ry,
float $x_axis_rotation,
bool $large_arc_flag,
bool $sweep_flag,
float $x,
float $y
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует эллиптическую дугу от текущей точки до (x, y) с использованием абсолютных координат. Размер и ориентация эллипса определяются двумя радиусами (rx, ry) и параметром xAxisRotation, который указывает, как эллипс в целом вращается относительно текущей системы координат. Центр (cx, cy) эллипса вычисляется автоматически, чтобы удовлетворить ограничения, налагаемые другими параметрами. largeArcFlag и sweepFlag участвуют в автоматических вычислениях и помогают определить, как нарисована дуга. Если значение large_arc_flag равно true, то рисуется наибольшая из доступных дуг. Если значение sweep_flag равно true, то рисуется дуга, соответствующая вращению по часовой стрелке.

Список параметров

rx

Радиус x.

ry

Радиус y.

x_axis_rotation

Вращение оси x.

large_arc_flag

Флаг large arc.

sweep_flag

Флаг sweep.

x

Координата x.

y

Координата y.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует эллиптическую дугу

  • « ImagickDraw::pathEllipticArcAbsolute
  • ImagickDraw::pathFinish »
  • PHP Manual
  • ImagickDraw
  • Рисует эллиптическую дугу

ImagickDraw::pathEllipticArcRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathEllipticArcRelative — Рисует эллиптическую дугу

Описание

public ImagickDraw::pathEllipticArcRelative(
float $rx,
float $ry,
float $x_axis_rotation,
bool $large_arc_flag,
bool $sweep_flag,
float $x,
float $y
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует эллиптическую дугу от текущей точки до (x, y) с использованием относительных координат. Размер и ориентация эллипса определяются двумя радиусами (rx, ry) и параметром xAxisRotation, который указывает, как эллипс в целом вращается относительно текущей системы координат. Центр (cx, cy) эллипса вычисляется автоматически, чтобы удовлетворить ограничения, налагаемые другими параметрами. largeArcFlag и sweepFlag участвуют в автоматических вычислениях и помогают определить, как нарисована дуга. Если значение large_arc_flag равно true, то рисуется наибольшая из доступных дуг. Если значение sweep_flag равно true, то рисуется дуга, соответствующая вращению по часовой стрелке.

Список параметров

rx

Радиус x.

ry

Радиус y.

x_axis_rotation

Вращение оси x.

large_arc_flag

Флаг large arc.

sweep_flag

Флаг sweep.

x

Координата x.

y

Координата y.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Завершает текущий путь

  • « ImagickDraw::pathEllipticArcRelative
  • ImagickDraw::pathLineToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Завершает текущий путь

ImagickDraw::pathFinish

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathFinish — Завершает текущий путь

Описание

public ImagickDraw::pathFinish(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Завершает текущий путь.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует линию

  • « ImagickDraw::pathFinish
  • ImagickDraw::pathLineToHorizontalAbsolute »
  • PHP Manual
  • ImagickDraw
  • Рисует линию

ImagickDraw::pathLineToAbsolute

(PECL imagick 2)

ImagickDraw::pathLineToAbsolute — Рисует линию

Описание

public ImagickDraw::pathLineToAbsolute(float $x, float $y): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует линию от текущей точки до заданной координаты с использованием абсолютных координат. Затем координата становится новой текущей точкой.

Список параметров

x

Начальная координата X

y

Конечная координата X

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует горизонтальную линию

  • « ImagickDraw::pathLineToAbsolute
  • ImagickDraw::pathLineToHorizontalRelative »
  • PHP Manual
  • ImagickDraw
  • Рисует горизонтальную линию

ImagickDraw::pathLineToHorizontalAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToHorizontalAbsolute — Рисует горизонтальную линию

Описание

public ImagickDraw::pathLineToHorizontalAbsolute(float $x): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует горизонтальную линию от текущей точки до целевой точки с использованием абсолютных координат. Целевая точка становится новой текущей точкой.

Список параметров

x

Координата X

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует горизонтальную линию

  • « ImagickDraw::pathLineToHorizontalAbsolute
  • ImagickDraw::pathLineToRelative »
  • PHP Manual
  • ImagickDraw
  • Рисует горизонтальную линию

ImagickDraw::pathLineToHorizontalRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToHorizontalRelative — Рисует горизонтальную линию

Описание

public ImagickDraw::pathLineToHorizontalRelative(float $x): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует горизонтальную линию от текущей точки до целевой точки с использованием относительных координат. Целевая точка становится новой текущей точкой.

Список параметров

x

Координата X

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует линию

  • « ImagickDraw::pathLineToHorizontalRelative
  • ImagickDraw::pathLineToVerticalAbsolute »
  • PHP Manual
  • ImagickDraw
  • Рисует линию

ImagickDraw::pathLineToRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToRelative — Рисует линию

Описание

public ImagickDraw::pathLineToRelative(float $x, float $y): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует линию от текущей точки до заданной координаты с использованием относительных координат. Затем координата становится новой текущей точкой.

Список параметров

x

Начальная координата X

y

Начальная координата Y

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует вертикальную линию

  • « ImagickDraw::pathLineToRelative
  • ImagickDraw::pathLineToVerticalRelative »
  • PHP Manual
  • ImagickDraw
  • Рисует вертикальную линию

ImagickDraw::pathLineToVerticalAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToVerticalAbsolute — Рисует вертикальную линию

Описание

public ImagickDraw::pathLineToVerticalAbsolute(float $y): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует вертикальную линию от текущей точки до целевой точки с использованием абсолютных координат. Целевая точка становится новой текущей точкой.

Список параметров

y

Координата Y

Возвращаемые значения

Функция не возвращает значения после выполнения.


Рисует вертикальную линию

  • « ImagickDraw::pathLineToVerticalAbsolute
  • ImagickDraw::pathMoveToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Рисует вертикальную линию

ImagickDraw::pathLineToVerticalRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathLineToVerticalRelative — Рисует вертикальную линию

Описание

public ImagickDraw::pathLineToVerticalRelative(float $y): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует вертикальную линию от текущей точки до целевой точки с использованием относительных координат. Целевая точка становится новой текущей точкой.

Список параметров

y

Координата Y

Возвращаемые значения

Функция не возвращает значения после выполнения.


Начинает новый внутренний контур

  • « ImagickDraw::pathLineToVerticalRelative
  • ImagickDraw::pathMoveToRelative »
  • PHP Manual
  • ImagickDraw
  • Начинает новый внутренний контур

ImagickDraw::pathMoveToAbsolute

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathMoveToAbsolute — Начинает новый внутренний контур

Описание

public ImagickDraw::pathMoveToAbsolute(float $x, float $y): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Начинает новый внутренний контур в заданной координате с использованием абсолютных координат. Текущая точка становится указанной координатой.

Список параметров

x

Координата x начальной точки.

y

Координата y начальной точки.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Начинает новый внутренний контур

  • « ImagickDraw::pathMoveToAbsolute
  • ImagickDraw::pathStart »
  • PHP Manual
  • ImagickDraw
  • Начинает новый внутренний контур

ImagickDraw::pathMoveToRelative

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathMoveToRelative — Начинает новый внутренний контур

Описание

public ImagickDraw::pathMoveToRelative(float $x, float $y): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Начинает новый внутренний контур в заданной координате с использованием относительных координат. Текущая точка становится указанной координатой.

Список параметров

x

Целевая координата x.

y

Целевая координата y.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Объявляет начало отрисовки контура

  • « ImagickDraw::pathMoveToRelative
  • ImagickDraw::point »
  • PHP Manual
  • ImagickDraw
  • Объявляет начало отрисовки контура

ImagickDraw::pathStart

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathStart — Объявляет начало отрисовки контура

Описание

public ImagickDraw::pathStart(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Объявляет начало отрисовки контура, которое завершается соответствующей командой DrawPathFinish(). Все остальные команды DrawPath должны быть заключены между DrawPathStart() и DrawPathFinish(). Это связано с тем, что команды рисования пути не работают сами по себе.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Рисует точку

  • « ImagickDraw::pathStart
  • ImagickDraw::polygon »
  • PHP Manual
  • ImagickDraw
  • Рисует точку

ImagickDraw::point

(PECL imagick 2, PECL imagick 3)

ImagickDraw::point — Рисует точку

Описание

public ImagickDraw::point(float $x, float $y): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует точку, используя текущий цвет и толщину обводки по указанным координатам.

Список параметров

x

Координата x.

y

Координата y.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Рисует многоугольник

  • « ImagickDraw::point
  • ImagickDraw::polyline »
  • PHP Manual
  • ImagickDraw
  • Рисует многоугольник

ImagickDraw::polygon

(PECL imagick 2, PECL imagick 3)

ImagickDraw::polygon — Рисует многоугольник

Описание

public ImagickDraw::polygon(array $coordinates): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует многоугольник с использованием текущей обводки, её ширины, цвета заливки или текстуры с использованием указанного массива координат.

Список параметров

coordinates

Многомерный массив наподобие 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();
}

?>


Рисует ломаную линию

  • « ImagickDraw::polygon
  • ImagickDraw::pop »
  • PHP Manual
  • ImagickDraw
  • Рисует ломаную линию

ImagickDraw::polyline

(PECL imagick 2, PECL imagick 3)

ImagickDraw::polyline — Рисует ломаную линию

Описание

public ImagickDraw::polyline(array $coordinates): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует ломаную линию с использованием текущей обводки, её ширины, цвета заливки или текстуры с использованием указанного массива координат.

Список параметров

coordinates

Массив координат x и y: 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();
}

?>


Уничтожает текущий объект ImagickDraw в стеке и возвращается к ранее добавленному объекту ImagickDraw

  • « ImagickDraw::polyline
  • ImagickDraw::popClipPath »
  • PHP Manual
  • ImagickDraw
  • Уничтожает текущий объект ImagickDraw в стеке и возвращается к ранее добавленному объекту ImagickDraw

ImagickDraw::pop

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pop — Уничтожает текущий объект ImagickDraw в стеке и возвращается к ранее добавленному объекту ImagickDraw

Описание

public ImagickDraw::pop(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Уничтожает текущий объект ImagickDraw в стеке и возвращается к ранее добавленному объекту ImagickDraw. Может существовать несколько изображений ImagickDraw. Попытка извлечь больше изображений ImagickDraw, чем было добавлено, приведёт к возникновению ошибки, правильным использованием является извлечение только тех изображений ImagickDraw, которые были добавлены в стек.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Завершает определение пути обтравочного контура

  • « ImagickDraw::pop
  • ImagickDraw::popDefs »
  • PHP Manual
  • ImagickDraw
  • Завершает определение пути обтравочного контура

ImagickDraw::popClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::popClipPath — Завершает определение пути обтравочного контура

Описание

public ImagickDraw::popClipPath(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Завершает определение пути обтравочного контура.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Завершает список определений

  • « ImagickDraw::popClipPath
  • ImagickDraw::popPattern »
  • PHP Manual
  • ImagickDraw
  • Завершает список определений

ImagickDraw::popDefs

(PECL imagick 2, PECL imagick 3)

ImagickDraw::popDefs — Завершает список определений

Описание

public ImagickDraw::popDefs(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Завершает список определений.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Завершает определение шаблона

  • « ImagickDraw::popDefs
  • ImagickDraw::push »
  • PHP Manual
  • ImagickDraw
  • Завершает определение шаблона

ImagickDraw::popPattern

(PECL imagick 2, PECL imagick 3)

ImagickDraw::popPattern — Завершает определение шаблона

Описание

public ImagickDraw::popPattern(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Завершает определение шаблона.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Клонирует текущий объект ImagickDraw и добавляет его в стек

  • « ImagickDraw::popPattern
  • ImagickDraw::pushClipPath »
  • PHP Manual
  • ImagickDraw
  • Клонирует текущий объект ImagickDraw и добавляет его в стек

ImagickDraw::push

(PECL imagick 2, PECL imagick 3)

ImagickDraw::push — Клонирует текущий объект ImagickDraw и добавляет его в стек

Описание

public ImagickDraw::push(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Клонирует текущий объект ImagickDraw для создания нового объекта ImagickDraw, который затем добавляется в стек ImagickDraw. Исходный рисующий объект ImagickDraw (или несколько объектов) можно вернуть, вызвав ImagickDraw::pop(). Объекты ImagickDraw хранятся в стеке ImagickDraw. Для каждой операции удаления должна существовать эквивалентная операция добавления.

Возвращаемые значения

Возвращает 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();
}

?>


Запускает определение пути обтравочного контура

  • « ImagickDraw::push
  • ImagickDraw::pushDefs »
  • PHP Manual
  • ImagickDraw
  • Запускает определение пути обтравочного контура

ImagickDraw::pushClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pushClipPath — Запускает определение пути обтравочного контура

Описание

public ImagickDraw::pushClipPath(string $clip_mask_id): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Запускает определение пути обтравочного контура, который состоит из любого количества команд рисования и завершается командой ImagickDraw::popClipPath().

Список параметров

clip_mask_id

Идентификатор маски обтравочного контура

Возвращаемые значения

Функция не возвращает значения после выполнения.


Указывает, что следующие команды создают именованные элементы для ранней обработки

  • « ImagickDraw::pushClipPath
  • ImagickDraw::pushPattern »
  • PHP Manual
  • ImagickDraw
  • Указывает, что следующие команды создают именованные элементы для ранней обработки

ImagickDraw::pushDefs

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pushDefs — Указывает, что следующие команды создают именованные элементы для ранней обработки

Описание

public ImagickDraw::pushDefs(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Указывает, что команды вплоть до завершающей команды ImagickDraw::popDefs() создают именованные элементы (например, пути обтравочного контура, текстуры и т.д.), которые могут безопасно обрабатываться раньше для повышения эффективности.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Указывает, что последующие команды вплоть до ImagickDraw::opPattern() составляют определение именованного паттерна

  • « ImagickDraw::pushDefs
  • ImagickDraw::rectangle »
  • PHP Manual
  • ImagickDraw
  • Указывает, что последующие команды вплоть до ImagickDraw::opPattern() составляют определение именованного паттерна

ImagickDraw::pushPattern

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pushPattern — Указывает, что последующие команды вплоть до ImagickDraw::opPattern() составляют определение именованного паттерна

Описание

public ImagickDraw::pushPattern(
string $pattern_id,
float $x,
float $y,
float $width,
float $height
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Указывает, что последующие команды вплоть до DrawPopPattern() содержат определение именованного паттерна. Пространству паттерна назначаются координаты верхнего левого угла, ширина и высота, и оно становится пространством для рисования. Всё, что можно нарисовать, можно использовать в определении паттерна. Именованные паттерны могут использоваться в качестве определений обводки или кистей.

Список параметров

pattern_id

ID паттерна.

x

Координата x левого верхнего угла.

y

Координата y левого верхнего угла.

width

Ширина паттерна.

height

Высота паттерна.

Возвращаемые значения

Возвращает 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();
}

?>


Рисует прямоугольник

  • « ImagickDraw::pushPattern
  • ImagickDraw::render »
  • PHP Manual
  • ImagickDraw
  • Рисует прямоугольник

ImagickDraw::rectangle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::rectangle — Рисует прямоугольник

Описание

public ImagickDraw::rectangle(
float $x1,
float $y1,
float $x2,
float $y2
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует прямоугольник по двум координатам с использованием текущих параметров обводки, ширины обводки и заливки.

Список параметров

x1

Координата x левого верхнего угла.

y1

Координата y левого верхнего угла.

x2

Координата x правого нижнего угла.

y2

Координата y правого нижнего угла.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Отрисовывает все предыдущие команды рисования на изображении

  • « ImagickDraw::rectangle
  • ImagickDraw::resetVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Отрисовывает все предыдущие команды рисования на изображении

ImagickDraw::render

(PECL imagick 2, PECL imagick 3)

ImagickDraw::render — Отрисовывает все предыдущие команды рисования на изображении

Описание

public ImagickDraw::render(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Отрисовывает все предыдущие команды рисования на изображении.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Сбрасывает векторную графику

  • « ImagickDraw::render
  • ImagickDraw::rotate »
  • PHP Manual
  • ImagickDraw
  • Сбрасывает векторную графику

ImagickDraw::resetVectorGraphics

(PECL imagick 2, PECL imagick 3)

ImagickDraw::resetVectorGraphics — Сбрасывает векторную графику

Описание

public ImagickDraw::resetVectorGraphics(): bool

Сбрасывает векторную графику.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешной работы возвращает true.


Применяет указанный поворот к текущему координатному пространству

  • « ImagickDraw::resetVectorGraphics
  • ImagickDraw::roundRectangle »
  • PHP Manual
  • ImagickDraw
  • Применяет указанный поворот к текущему координатному пространству

ImagickDraw::rotate

(PECL imagick 2, PECL imagick 3)

ImagickDraw::rotate — Применяет указанный поворот к текущему координатному пространству

Описание

public ImagickDraw::rotate(float $degrees): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Применяет указанный поворот к текущему координатному пространству.

Список параметров

degrees

Угол поворота.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Рисует прямоугольник с закруглёнными углами

  • « ImagickDraw::rotate
  • ImagickDraw::scale »
  • PHP Manual
  • ImagickDraw
  • Рисует прямоугольник с закруглёнными углами

ImagickDraw::roundRectangle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::roundRectangle — Рисует прямоугольник с закруглёнными углами

Описание

public ImagickDraw::roundRectangle(
float $x1,
float $y1,
float $x2,
float $y2,
float $rx,
float $ry
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Рисует прямоугольник с закруглёнными углами по двум координатам и радиусам углов x & y, используя текущую обводку, её ширину и настройки заливки.

Список параметров

x1

Координата x левого верхнего угла.

y1

Координата y левого верхнего угла.

x2

Координата x правого нижнего угла.

y2

Координата y правого нижнего угла.

rx

Округление по оси x.

ry

Округление по оси y.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Регулирует коэффициент масштабирования

  • « ImagickDraw::roundRectangle
  • ImagickDraw::setClipPath »
  • PHP Manual
  • ImagickDraw
  • Регулирует коэффициент масштабирования

ImagickDraw::scale

(PECL imagick 2, PECL imagick 3)

ImagickDraw::scale — Регулирует коэффициент масштабирования

Описание

public ImagickDraw::scale(float $x, float $y): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Регулирует коэффициент масштабирования для применения в горизонтальном и вертикальном направлениях к текущему координатному пространству.

Список параметров

x

Горизонтальный коэффициент масштабирования.

y

Вертикальный коэффициент масштабирования.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Связывает именованный контур обтравочного контура с изображением

  • « ImagickDraw::scale
  • ImagickDraw::setClipRule »
  • PHP Manual
  • ImagickDraw
  • Связывает именованный контур обтравочного контура с изображением

ImagickDraw::setClipPath

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setClipPath — Связывает именованный контур обтравочного контура с изображением

Описание

public ImagickDraw::setClipPath(string $clip_mask): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Связывает именованный контур обтравочного контура с изображением. Только области, нарисованные обтравочным контуром, будут изменены, пока он остаётся в силе.

Список параметров

clip_mask

имя обтравочного контура

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Устанавливает правило заливки многоугольника, которое будет использоваться обтравочным контуром

  • « ImagickDraw::setClipPath
  • ImagickDraw::setClipUnits »
  • PHP Manual
  • ImagickDraw
  • Устанавливает правило заливки многоугольника, которое будет использоваться обтравочным контуром

ImagickDraw::setClipRule

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setClipRule — Устанавливает правило заливки многоугольника, которое будет использоваться обтравочным контуром

Описание

public ImagickDraw::setClipRule(int $fill_rule): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает правило заливки многоугольника, которое будет использоваться обтравочным контуром.

Список параметров

fill_rule

Одна из констант FILLRULE (imagick::FILLRULE_*).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Устанавливает интерпретацию единиц траектории обтравочного контура

  • « ImagickDraw::setClipRule
  • ImagickDraw::setFillAlpha »
  • PHP Manual
  • ImagickDraw
  • Устанавливает интерпретацию единиц траектории обтравочного контура

ImagickDraw::setClipUnits

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setClipUnits — Устанавливает интерпретацию единиц траектории обтравочного контура

Описание

public ImagickDraw::setClipUnits(int $clip_units): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает интерпретацию единиц траектории обтравочного контура.

Список параметров

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();
}

?>


Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки

  • « ImagickDraw::setClipUnits
  • ImagickDraw::setFillColor »
  • PHP Manual
  • ImagickDraw
  • Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки

ImagickDraw::setFillAlpha

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillAlpha — Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки

Описание

public ImagickDraw::setFillAlpha(float $opacity): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки. Полностью непрозрачный - 1.0.

Список параметров

opacity

Непрозрачность заливки.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Устанавливает цвет заливки, используемый для рисования объектов с заливкой

  • « ImagickDraw::setFillAlpha
  • ImagickDraw::setFillOpacity »
  • PHP Manual
  • ImagickDraw
  • Устанавливает цвет заливки, используемый для рисования объектов с заливкой

ImagickDraw::setFillColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillColor — Устанавливает цвет заливки, используемый для рисования объектов с заливкой

Описание

public ImagickDraw::setFillColor(ImagickPixel $fill_pixel): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает цвет заливки, используемый для рисования объектов с заливкой.

Список параметров

fill_pixel

Объект ImagickPixel, используемый для установки цвета.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки

  • « ImagickDraw::setFillColor
  • ImagickDraw::setFillPatternURL »
  • PHP Manual
  • ImagickDraw
  • Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки

ImagickDraw::setFillOpacity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillOpacity — Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки

Описание

public ImagickDraw::setFillOpacity(float $fillOpacity): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки. Полностью непрозрачный - 1.0.

Список параметров

fillOpacity

Непрозрачность заливки.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Устанавливает URL-адрес для использования в качестве образца заливки для заливки объектов

  • « ImagickDraw::setFillOpacity
  • ImagickDraw::setFillRule »
  • PHP Manual
  • ImagickDraw
  • Устанавливает URL-адрес для использования в качестве образца заливки для заливки объектов

ImagickDraw::setFillPatternURL

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillPatternURL — Устанавливает URL-адрес для использования в качестве образца заливки для заливки объектов

Описание

public ImagickDraw::setFillPatternURL(string $fill_url): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает URL-адрес для использования в качестве образца заливки для объектов. В настоящее время поддерживаются только локальные URL-адреса ("#identifier"). Эти локальные URL-адреса обычно создаются путём определения именованного образца заливки с помощью DrawPushPattern/DrawPopPattern.

Список параметров

fill_url

URL-адрес, используемый для получения образца заливки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Устанавливает правило заливки для использования при рисовании полигонов

  • « ImagickDraw::setFillPatternURL
  • ImagickDraw::setFont »
  • PHP Manual
  • ImagickDraw
  • Устанавливает правило заливки для использования при рисовании полигонов

ImagickDraw::setFillRule

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFillRule — Устанавливает правило заливки для использования при рисовании полигонов

Описание

public ImagickDraw::setFillRule(int $fill_rule): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает правило заливки для использования при рисовании полигонов.

Список параметров

fill_rule

Одна из констант FILLRULE (imagick::FILLRULE_*).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Устанавливает указанный шрифт для использования при аннотировании текстом

  • « ImagickDraw::setFillRule
  • ImagickDraw::setFontFamily »
  • PHP Manual
  • ImagickDraw
  • Устанавливает указанный шрифт для использования при аннотировании текстом

ImagickDraw::setFont

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFont — Устанавливает указанный шрифт для использования при аннотировании текстом

Описание

public ImagickDraw::setFont(string $font_name): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает указанный шрифт для использования при аннотировании текстом.

Список параметров

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();
}

?>


Устанавливает семейство шрифтов для использования при аннотировании текстом

  • « ImagickDraw::setFont
  • ImagickDraw::setFontSize »
  • PHP Manual
  • ImagickDraw
  • Устанавливает семейство шрифтов для использования при аннотировании текстом

ImagickDraw::setFontFamily

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontFamily — Устанавливает семейство шрифтов для использования при аннотировании текстом

Описание

public ImagickDraw::setFontFamily(string $font_family): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает семейство шрифтов для использования при аннотировании текстом.

Список параметров

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();
}

?>


Устанавливает размер шрифта для использования при аннотировании текстом

  • « ImagickDraw::setFontFamily
  • ImagickDraw::setFontStretch »
  • PHP Manual
  • ImagickDraw
  • Устанавливает размер шрифта для использования при аннотировании текстом

ImagickDraw::setFontSize

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontSize — Устанавливает размер шрифта для использования при аннотировании текстом

Описание

public ImagickDraw::setFontSize(float $pointsize): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает размер шрифта для использования при аннотировании текстом.

Список параметров

pointsize

Размер шрифта.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Устанавливает растяжение шрифта для использования при аннотировании текстом

  • « ImagickDraw::setFontSize
  • ImagickDraw::setFontStyle »
  • PHP Manual
  • ImagickDraw
  • Устанавливает растяжение шрифта для использования при аннотировании текстом

ImagickDraw::setFontStretch

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontStretch — Устанавливает растяжение шрифта для использования при аннотировании текстом

Описание

public ImagickDraw::setFontStretch(int $fontStretch): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает растяжение шрифта для использования при аннотировании текстом. Использование AnyStretch действует как «любое».

Список параметров

fontStretch

Одна из констант STRETCH (imagick::STRETCH_*).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Устанавливает стиль шрифта для использования при аннотировании текстом

  • « ImagickDraw::setFontStretch
  • ImagickDraw::setFontWeight »
  • PHP Manual
  • ImagickDraw
  • Устанавливает стиль шрифта для использования при аннотировании текстом

ImagickDraw::setFontStyle

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontStyle — Устанавливает стиль шрифта для использования при аннотировании текстом

Описание

public ImagickDraw::setFontStyle(int $style): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает стиль шрифта, который будет использоваться при аннотировании текстом. Использование AnyStyle действует как «любой».

Список параметров

style

Одна из констант STYLE (imagick::STYLE_*).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Устанавливает толщину шрифта

  • « ImagickDraw::setFontStyle
  • ImagickDraw::setGravity »
  • PHP Manual
  • ImagickDraw
  • Устанавливает толщину шрифта

ImagickDraw::setFontWeight

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setFontWeight — Устанавливает толщину шрифта

Описание

public ImagickDraw::setFontWeight(int $font_weight): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает толщину шрифта для использования при аннотировании текстом.

Список параметров

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();
}

?>


Устанавливает гравитацию размещения текста

  • « ImagickDraw::setFontWeight
  • ImagickDraw::setResolution »
  • PHP Manual
  • ImagickDraw
  • Устанавливает гравитацию размещения текста

ImagickDraw::setGravity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setGravity — Устанавливает гравитацию размещения текста

Описание

public ImagickDraw::setGravity(int $gravity): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает гравитацию размещения текста, используемую при его аннотации.

Список параметров

gravity

Одна из констант GRAVITY (imagick::GRAVITY_*).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Устанавливает разрешение

  • « ImagickDraw::setGravity
  • ImagickDraw::setStrokeAlpha »
  • PHP Manual
  • ImagickDraw
  • Устанавливает разрешение

ImagickDraw::setResolution

(PECL imagick 3 >= 3.1.0)

ImagickDraw::setResolution — Устанавливает разрешение

Описание

public ImagickDraw::setResolution(float $x_resolution, float $y_resolution): bool

Устанавливает разрешение.

Список параметров

x_resolution

y_resolution

Возвращаемые значения

В случае успешной работы возвращает true.


Определяет непрозрачность обводки контуров объекта

  • « ImagickDraw::setResolution
  • ImagickDraw::setStrokeAntialias »
  • PHP Manual
  • ImagickDraw
  • Определяет непрозрачность обводки контуров объекта

ImagickDraw::setStrokeAlpha

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeAlpha — Определяет непрозрачность обводки контуров объекта

Описание

public ImagickDraw::setStrokeAlpha(float $opacity): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Определяет непрозрачность обводки контуров объекта.

Список параметров

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();
}

?>


Управляет сглаживанием обводок контуров

  • « ImagickDraw::setStrokeAlpha
  • ImagickDraw::setStrokeColor »
  • PHP Manual
  • ImagickDraw
  • Управляет сглаживанием обводок контуров

ImagickDraw::setStrokeAntialias

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeAntialias — Управляет сглаживанием обводок контуров

Описание

public ImagickDraw::setStrokeAntialias(bool $stroke_antialias): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Управляет сглаживанием обводок контуров. По умолчанию обведённые контуры сглаживаются. Когда сглаживание отключено, для обведённых пикселей устанавливается пороговое значение, чтобы определить, следует ли использовать цвет обводки или цвет базового холста.

Список параметров

stroke_antialias

Настройка сглаживания.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Устанавливает цвет, используемый для обводки контуров объекта

  • « ImagickDraw::setStrokeAntialias
  • ImagickDraw::setStrokeDashArray »
  • PHP Manual
  • ImagickDraw
  • Устанавливает цвет, используемый для обводки контуров объекта

ImagickDraw::setStrokeColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeColor — Устанавливает цвет, используемый для обводки контуров объекта

Описание

public ImagickDraw::setStrokeColor(ImagickPixel $stroke_pixel): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает цвет, используемый для обводки контуров объекта.

Список параметров

stroke_pixel

Цвет обводки.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Задаёт паттерн из штрихов и пробелов, используемых для обводки контуров

  • « ImagickDraw::setStrokeColor
  • ImagickDraw::setStrokeDashOffset »
  • PHP Manual
  • ImagickDraw
  • Задаёт паттерн из штрихов и пробелов, используемых для обводки контуров

ImagickDraw::setStrokeDashArray

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeDashArray — Задаёт паттерн из штрихов и пробелов, используемых для обводки контуров

Описание

public ImagickDraw::setStrokeDashArray(array $dashArray): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Задаёт паттерн из штрихов и пробелов, используемый для обводки контуров. strokeDashArray представляет собой массив чисел, определяющих длину чередующихся штрихов и пробелов в пикселях. Если указано нечётное количество значений, то список значений повторяется, чтобы получить чётное количество значений. Чтобы удалить существующий массив штрихов, необходимо передать number_elements со значением ноль и dash_array со значением null. Типичный массив strokeDashArray_ может содержать элементы 5 3 2.

Список параметров

dashArray

Массив чисел с плавающей точкой.

Возвращаемые значения

В случае успешной работы возвращает 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();
}

?>


Задаёт смещение в штриховом паттерне для начала штриховки

  • « ImagickDraw::setStrokeDashArray
  • ImagickDraw::setStrokeLineCap »
  • PHP Manual
  • ImagickDraw
  • Задаёт смещение в штриховом паттерне для начала штриховки

ImagickDraw::setStrokeDashOffset

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeDashOffset — Задаёт смещение в штриховом паттерне для начала штриховки

Описание

public ImagickDraw::setStrokeDashOffset(float $dash_offset): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Задаёт смещение в штриховом паттерне для начала штриховки.

Список параметров

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);

//Начало эффекта штриховки в середине сплошной части
$draw->setStrokeDashOffset(10);
$draw->rectangle(275, 50, 400, 175);

//Начало эффекта штриховки в пространственной части
$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();
}

?>


Задаёт форму, которая будет использоваться в конце открытых внутренних контуров при их обводке

  • « ImagickDraw::setStrokeDashOffset
  • ImagickDraw::setStrokeLineJoin »
  • PHP Manual
  • ImagickDraw
  • Задаёт форму, которая будет использоваться в конце открытых внутренних контуров при их обводке

ImagickDraw::setStrokeLineCap

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeLineCap — Задаёт форму, которая будет использоваться в конце открытых внутренних контуров при их обводке

Описание

public ImagickDraw::setStrokeLineCap(int $linecap): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Задаёт форму, которая будет использоваться в конце открытых внутренних контуров при их обводке.

Список параметров

linecap

Одна из констант LINECAP (imagick::LINECAP_*).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Задаёт форму, которая будет использоваться в углах контуров при их обводке

  • « ImagickDraw::setStrokeLineCap
  • ImagickDraw::setStrokeMiterLimit »
  • PHP Manual
  • ImagickDraw
  • Задаёт форму, которая будет использоваться в углах контуров при их обводке

ImagickDraw::setStrokeLineJoin

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeLineJoin — Задаёт форму, которая будет использоваться в углах контуров при их обводке

Описание

public ImagickDraw::setStrokeLineJoin(int $linejoin): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Задаёт форму, которая будет использоваться в углах контуров (или других векторных фигур) при их обводке.

Список параметров

linejoin

Одна из констант LINEJOIN (imagick::LINEJOIN_*).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Задаёт предел среза обводки

  • « ImagickDraw::setStrokeLineJoin
  • ImagickDraw::setStrokeOpacity »
  • PHP Manual
  • ImagickDraw
  • Задаёт предел среза обводки

ImagickDraw::setStrokeMiterLimit

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeMiterLimit — Задаёт предел среза обводки

Описание

public ImagickDraw::setStrokeMiterLimit(int $miterlimit): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Задаёт предел среза. Когда два отрезка линии встречаются под острым углом и для 'lineJoin' заданы угловые стыки, срез может выходить далеко за пределы толщины линии, обводящей контур. 'miterLimit' накладывает ограничение на отношение длины среза к 'lineWidth'.

Список параметров

miterlimit

Предел среза.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Определяет непрозрачность обводки контуров объекта

  • « ImagickDraw::setStrokeMiterLimit
  • ImagickDraw::setStrokePatternURL »
  • PHP Manual
  • ImagickDraw
  • Определяет непрозрачность обводки контуров объекта

ImagickDraw::setStrokeOpacity

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeOpacity — Определяет непрозрачность обводки контуров объекта

Описание

public ImagickDraw::setStrokeOpacity(float $stroke_opacity): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Определяет непрозрачность обводки контуров объекта.

Список параметров

stroke_opacity

Непрозрачность обводки. 1.0 - полностью непрозрачная.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Устанавливает паттерн, используемый для обводки контуров объекта

  • « ImagickDraw::setStrokeOpacity
  • ImagickDraw::setStrokeWidth »
  • PHP Manual
  • ImagickDraw
  • Устанавливает паттерн, используемый для обводки контуров объекта

ImagickDraw::setStrokePatternURL

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokePatternURL — Устанавливает паттерн, используемый для обводки контуров объекта

Описание

public ImagickDraw::setStrokePatternURL(string $stroke_url): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает паттерн, используемый для обводки контуров объекта.

Список параметров

stroke_url

URL обводки.

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает ширину обводки, используемой для рисования контуров объекта

  • « ImagickDraw::setStrokePatternURL
  • ImagickDraw::setTextAlignment »
  • PHP Manual
  • ImagickDraw
  • Устанавливает ширину обводки, используемой для рисования контуров объекта

ImagickDraw::setStrokeWidth

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeWidth — Устанавливает ширину обводки, используемой для рисования контуров объекта

Описание

public ImagickDraw::setStrokeWidth(float $stroke_width): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает ширину обводки, используемой для рисования контуров объекта.

Список параметров

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();
}

?>


Задаёт выравнивание текста

  • « ImagickDraw::setStrokeWidth
  • ImagickDraw::setTextAntialias »
  • PHP Manual
  • ImagickDraw
  • Задаёт выравнивание текста

ImagickDraw::setTextAlignment

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextAlignment — Задаёт выравнивание текста

Описание

public ImagickDraw::setTextAlignment(int $alignment): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Задаёт выравнивание текста, которое будет применяться при аннотировании текстом.

Список параметров

alignment

Одна из констант ALIGN (imagick::ALIGN_*).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Управляет сглаживанием текста

  • « ImagickDraw::setTextAlignment
  • ImagickDraw::setTextDecoration »
  • PHP Manual
  • ImagickDraw
  • Управляет сглаживанием текста

ImagickDraw::setTextAntialias

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextAntialias — Управляет сглаживанием текста

Описание

public ImagickDraw::setTextAntialias(bool $antiAlias): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Управляет сглаживанием текста. По умолчанию текст сглаживается.

Список параметров

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();
}

?>


Определяет оформление

  • « ImagickDraw::setTextAntialias
  • ImagickDraw::setTextEncoding »
  • PHP Manual
  • ImagickDraw
  • Определяет оформление

ImagickDraw::setTextDecoration

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextDecoration — Определяет оформление

Описание

public ImagickDraw::setTextDecoration(int $decoration): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Задаёт оформление, которое будет применяться при аннотировании текстом.

Список параметров

decoration

Одна из констант DECORATION (imagick::DECORATION_*).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Задаёт кодовый набор текста

  • « ImagickDraw::setTextDecoration
  • ImagickDraw::setTextInterlineSpacing »
  • PHP Manual
  • ImagickDraw
  • Задаёт кодовый набор текста

ImagickDraw::setTextEncoding

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextEncoding — Задаёт кодовый набор текста

Описание

public ImagickDraw::setTextEncoding(string $encoding): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Задаёт кодовый набор, который будет использоваться для текстовых аннотаций. Единственная кодировка символов, которая может быть указана в настоящее время, - это "UTF-8" для представления Unicode как последовательности байтов. Укажите пустую строку, чтобы установить кодировку текста по умолчанию в системе. Для успешного аннотирования текста с использованием Unicode могут потребоваться шрифты, поддерживающие Unicode.

Список параметров

encoding

Имя кодировки.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Устанавливает межстрочный интервал текста

  • « ImagickDraw::setTextEncoding
  • ImagickDraw::setTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Устанавливает межстрочный интервал текста

ImagickDraw::setTextInterlineSpacing

(PECL imagick 3 >= 3.1.0)

ImagickDraw::setTextInterlineSpacing — Устанавливает межстрочный интервал текста

Описание

public ImagickDraw::setTextInterlineSpacing(float $spacing): bool

Устанавливает межстрочный интервал текста.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

spacing

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает межсловный интервал текста

  • « ImagickDraw::setTextInterlineSpacing
  • ImagickDraw::setTextKerning »
  • PHP Manual
  • ImagickDraw
  • Устанавливает межсловный интервал текста

ImagickDraw::setTextInterwordSpacing

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickDraw::setTextInterwordSpacing — Устанавливает межсловный интервал текста

Описание

public ImagickDraw::setTextInterwordSpacing(float $spacing): bool

Устанавливает межсловный интервал текста.

Список параметров

spacing

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает межбуквенный интервал текста

  • « ImagickDraw::setTextInterwordSpacing
  • ImagickDraw::setTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Устанавливает межбуквенный интервал текста

ImagickDraw::setTextKerning

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickDraw::setTextKerning — Устанавливает межбуквенный интервал текста

Описание

public ImagickDraw::setTextKerning(float $kerning): bool

Устанавливает межбуквенный интервал текста.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

kerning

Возвращаемые значения

В случае успешной работы возвращает true.


Задаёт цвет фонового прямоугольника

  • « ImagickDraw::setTextKerning
  • ImagickDraw::setVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Задаёт цвет фонового прямоугольника

ImagickDraw::setTextUnderColor

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setTextUnderColor — Задаёт цвет фонового прямоугольника

Описание

public ImagickDraw::setTextUnderColor(ImagickPixel $under_color): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Задаёт цвет фонового прямоугольника для размещения под текстовыми аннотациями.

Список параметров

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();
}

?>


Устанавливает векторную графику

  • « ImagickDraw::setTextUnderColor
  • ImagickDraw::setViewbox »
  • PHP Manual
  • ImagickDraw
  • Устанавливает векторную графику

ImagickDraw::setVectorGraphics

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setVectorGraphics — Устанавливает векторную графику

Описание

public ImagickDraw::setVectorGraphics(string $xml): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает векторную графику, связанную с указанным объектом ImagickDraw. Метод используется с ImagickDraw::getVectorGraphics() в качестве метода для сохранения состояния векторной графики.

Список параметров

xml

XML, содержащий векторную графику.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ImagickDraw::setVectorGraphics()

<?php
function setVectorGraphics() {
//Создание объекта для рисования с каким-нибудь рисунком в нём.
$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);

//Получение рисунка в виде строки
$SVG = $draw->getVectorGraphics();

//$svg - строка, и её можно сохранить везде, где строка может быть сохранена

//Использование сохранённого рисунка для создания нового объекта для рисования
$draw2 = new \ImagickDraw();
//По-видимому, в тексте SVG отсутствует корневой элемент.
$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();
}

?>


Устанавливает общий размер холста

  • « ImagickDraw::setVectorGraphics
  • ImagickDraw::skewX »
  • PHP Manual
  • ImagickDraw
  • Устанавливает общий размер холста

ImagickDraw::setViewbox

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setViewbox — Устанавливает общий размер холста

Описание

public ImagickDraw::setViewbox(
int $x1,
int $y1,
int $x2,
int $y2
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает общий размер холста, который будет записан с векторными данными рисунка. Обычно для этого используется размер изображения холста. Когда векторные данные сохраняются в форматах SVG или MVG, окно просмотра используется для указания размера изображения холста, на котором средство просмотра будет отображать векторные данные.

Список параметров

x1

Левая координата x.

y1

Левая координата y.

x2

Правая координата x.

y2

Правая координата y.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ImagickDraw::setViewBox()

<?php
function setViewBox($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();

$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);
$draw->setStrokeWidth(2);
$draw->setFontSize(72);

/*

Устанавливает общий размер холста, который будет записан с векторными данными рисунка. Обычно для этого используется размер изображения холста. Когда векторные данные сохраняются в форматах SVG или MVG, окно просмотра используется для указания размера изображения холста, на котором средство просмотра будет отображать векторные данные.

*/

$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();
}

?>


Наклоняет текущую систему координат по горизонтали

  • « ImagickDraw::setViewbox
  • ImagickDraw::skewY »
  • PHP Manual
  • ImagickDraw
  • Наклоняет текущую систему координат по горизонтали

ImagickDraw::skewX

(PECL imagick 2, PECL imagick 3)

ImagickDraw::skewX — Наклоняет текущую систему координат по горизонтали

Описание

public ImagickDraw::skewX(float $degrees): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Наклоняет текущую систему координат по горизонтали.

Список параметров

degrees

Градус наклона.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Наклоняет текущую систему координат по вертикали

  • « ImagickDraw::skewX
  • ImagickDraw::translate »
  • PHP Manual
  • ImagickDraw
  • Наклоняет текущую систему координат по вертикали

ImagickDraw::skewY

(PECL imagick 2, PECL imagick 3)

ImagickDraw::skewY — Наклоняет текущую систему координат по вертикали

Описание

public ImagickDraw::skewY(float $degrees): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Наклоняет текущую систему координат по вертикали.

Список параметров

degrees

Градус наклона.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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();
}

?>


Применяет перенос к текущей системе координат

  • « ImagickDraw::skewY
  • ImagickPixel »
  • PHP Manual
  • ImagickDraw
  • Применяет перенос к текущей системе координат

ImagickDraw::translate

(PECL imagick 2, PECL imagick 3)

ImagickDraw::translate — Применяет перенос к текущей системе координат

Описание

public ImagickDraw::translate(float $x, float $y): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Применяет перенос к текущей системе координат, который перемещает начало системы координат в указанную координату.

Список параметров

x

Горизонтальный перенос.

y

Вертикальный перенос.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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, PECL imagick 3)

Обзор классов

class ImagickPixel {
public clear(): bool
public __construct(string $color = ?)
public destroy(): bool
public getColor(int $normalized = 0): array
public getColorAsString(): string
public getColorCount(): int
public getColorQuantum(): array
public getColorValue(int $color): float
public getColorValueQuantum(int $color): int|float
public getHSL(): array
public getIndex(): int
public isPixelSimilar(ImagickPixel $color, float $fuzz): bool
public isPixelSimilarQuantum(string $color, string $fuzz = ?): bool
public isSimilar(ImagickPixel $color, float $fuzz): bool
public setColor(string $color): bool
public setcolorcount(int $colorCount): bool
public setColorValue(int $color, float $value): bool
public setColorValueQuantum(int $color, int|float $value): bool
public 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 — Возвращает цвет пикселя в массиве в виде квантовых значений
  • ImagickPixel::getColorValue — Возвращает нормализованное значение цвета канала
  • ImagickPixel::getColorValueQuantum — Получает квантовое значение цвета в ImagickPixel
  • ImagickPixel::getHSL — Возвращает нормализованный HSL-цвет объекта ImagickPixel
  • ImagickPixel::getIndex — Получает индекс цветовой карты пиксельной палочки
  • ImagickPixel::isPixelSimilar — Проверяет расстояние между этим цветом и другим
  • ImagickPixel::isPixelSimilarQuantum — Возвращает true, если расстояние между двумя цветами меньше указанного расстояния
  • ImagickPixel::isSimilar — Проверить разницу между этим цветом и другим
  • ImagickPixel::setColor — Устанавливает цвет
  • ImagickPixel::setColorCount — Устанавливает количество цветов, связанных с этим цветом
  • ImagickPixel::setColorValue — Устанавливает нормализованное значение одного из каналов
  • ImagickPixel::setColorValueQuantum — Устанавливает квантовое значение цветового элемента ImagickPixel
  • ImagickPixel::setHSL — Установка нормализованного HSL цвета
  • ImagickPixel::setIndex — Устанавливает индекс цветовой карты пиксельной палочки


Очищает ресурсы, связанные с этим объектом

  • « ImagickPixel
  • ImagickPixel::__construct »
  • PHP Manual
  • ImagickPixel
  • Очищает ресурсы, связанные с этим объектом

ImagickPixel::clear

(PECL imagick 2, PECL imagick 3)

ImagickPixel::clear — Очищает ресурсы, связанные с этим объектом

Описание

public ImagickPixel::clear(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Очищает объект ImagickPixel, оставляя его в первоначальном состоянии и удаляет все цвета связанные с ним.

Возвращаемые значения

В случае успешной работы возвращает true.


Конструктор ImagickPixel

  • « ImagickPixel::clear
  • ImagickPixel::destroy »
  • PHP Manual
  • ImagickPixel
  • Конструктор ImagickPixel

ImagickPixel::__construct

(PECL imagick 2, PECL imagick 3)

ImagickPixel::__construct — Конструктор ImagickPixel

Описание

public 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, PECL imagick 3)

ImagickPixel::destroy — Освобождает ресурсы, связанные с этим объектом

Описание

public ImagickPixel::destroy(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Освобождает все ресурсы используемые объектом ImagickPixel и удалят все связанные с ним цвета. Объект не следует использовать после его уничтожения.

Возвращаемые значения

В случае успешной работы возвращает true.


Возвращает цвет

  • « ImagickPixel::destroy
  • ImagickPixel::getColorAsString »
  • PHP Manual
  • ImagickPixel
  • Возвращает цвет

ImagickPixel::getColor

(PECL imagick 2, PECL imagick 3)

ImagickPixel::getColor — Возвращает цвет

Описание

public ImagickPixel::getColor(int $normalized = 0): array

Возвращает цвет в виде массива, описанный в объекте ImagickPixel. Если у цвета установлен канал прозрачности, то он будет отражён в четвёртом значении списка.

Список параметров

normalized

Нормализовать значение цвета. Возможные значения: 0, 1 или 2.

Список возможных значений для normalized
normalized | Описание
0 | Значения RGB возвращаются как целые числа (int) в диапазоне от 0 до 255 (включительно). Альфа-значение возвращается как целое число (int) и равно либо 0, либо 1.
1 | Значения RGBA возвращаются как числа с плавающей точкой (float) в диапазоне от 0 до 1 (включительно).
2 | Значения RGBA возвращаются как целые числа (int) в диапазоне от 0 до 255 (включительно).

Возвращаемые значения

Массив значений канала. Выбрасывает исключение 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(1);

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 >= 2.1.0, PECL imagick 3)

ImagickPixel::getColorAsString — Возвращает цвет в виде строки

Описание

public ImagickPixel::getColorAsString(): 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, PECL imagick 3)

ImagickPixel::getColorCount — Возвращает количество цветов связанных с этим цветом

Описание

public ImagickPixel::getColorCount(): 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


Возвращает цвет пикселя в массиве в виде квантовых значений

  • « ImagickPixel::getColorCount
  • ImagickPixel::getColorValue »
  • PHP Manual
  • ImagickPixel
  • Возвращает цвет пикселя в массиве в виде квантовых значений

ImagickPixel::getColorQuantum

(Информация о версии неизвестна, возможно, только в Git)

ImagickPixel::getColorQuantum — Возвращает цвет пикселя в массиве в виде квантовых значений

Описание

public ImagickPixel::getColorQuantum(): array

Возвращает цвет пикселя в массиве в виде квантовых значений. Если ImageMagick был скомпилирован как HDRI, это будут числа с плавающей точкой, в противном случае они будут целыми числами.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с ключами "r", "g", "b", "a".


Возвращает нормализованное значение цвета канала

  • « ImagickPixel::getColorQuantum
  • ImagickPixel::getColorValueQuantum »
  • PHP Manual
  • ImagickPixel
  • Возвращает нормализованное значение цвета канала

ImagickPixel::getColorValue

(PECL imagick 2, PECL imagick 3)

ImagickPixel::getColorValue — Возвращает нормализованное значение цвета канала

Описание

public 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 "Значение альфа канала ".$color->getColorValue(Imagick::COLOR_ALPHA).PHP_EOL;
echo "".PHP_EOL;
echo "Значение красного канала ".$color->getColorValue(Imagick::COLOR_RED).PHP_EOL;
echo "Значение зелёного канала ".$color->getColorValue(Imagick::COLOR_GREEN).PHP_EOL;
echo "Значение синего канала ".$color->getColorValue(Imagick::COLOR_BLUE).PHP_EOL;
echo "".PHP_EOL;
echo "Значение голубого канала ".$color->getColorValue(Imagick::COLOR_CYAN).PHP_EOL;
echo "Значение пурпурного канала ".$color->getColorValue(Imagick::COLOR_MAGENTA).PHP_EOL;
echo "Значение жёлтого канала ".$color->getColorValue(Imagick::COLOR_YELLOW).PHP_EOL;
echo "Значение чёрного канала ".$color->getColorValue(Imagick::COLOR_BLACK).PHP_EOL;

?>

Результат выполнения данного примера:

Значение альфа канала 0.74999618524453

Значение красного канала 0.90000762951095
Значение зелёного канала 0.2
Значение синего канала 0.2

Значение голубого канала 0.90000762951095
Значение пурпурного канала 0.2
Значение жёлтого канала 0.2
Значение чёрного канала 0


Получает квантовое значение цвета в ImagickPixel

  • « ImagickPixel::getColorValue
  • ImagickPixel::getHSL »
  • PHP Manual
  • ImagickPixel
  • Получает квантовое значение цвета в ImagickPixel

ImagickPixel::getColorValueQuantum

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickPixel::getColorValueQuantum — Получает квантовое значение цвета в ImagickPixel

Описание

public ImagickPixel::getColorValueQuantum(int $color): int|float

Получает квантовое значение цвета в ImagickPixel. Возвращаемое значение - это число с плавающей точкой, если ImageMagick был скомпилирован с HDRI, в противном случае - целое число.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Квантовое значение цветового элемента. Число с плавающей точкой, если ImageMagick был скомпилирован с HDRI, иначе - целое число.

Примеры

Пример #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(
"Красный: %s Зелёный: %s Синий %s Альфа: %s",
$colorRed,
$colorGreen,
$colorBlue,
$colorAlpha
);

?>


Возвращает нормализованный HSL-цвет объекта ImagickPixel

  • « ImagickPixel::getColorValueQuantum
  • ImagickPixel::getIndex »
  • PHP Manual
  • ImagickPixel
  • Возвращает нормализованный HSL-цвет объекта ImagickPixel

ImagickPixel::getHSL

(PECL imagick 2, PECL imagick 3)

ImagickPixel::getHSL — Возвращает нормализованный HSL-цвет объекта ImagickPixel

Описание

public ImagickPixel::getHSL(): 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 или выше.


Получает индекс цветовой карты пиксельной палочки

  • « ImagickPixel::getHSL
  • ImagickPixel::isPixelSimilar »
  • PHP Manual
  • ImagickPixel
  • Получает индекс цветовой карты пиксельной палочки

ImagickPixel::getIndex

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickPixel::getIndex — Получает индекс цветовой карты пиксельной палочки

Описание

public ImagickPixel::getIndex(): int

Получает индекс цветовой карты пиксельной палочки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверяет расстояние между этим цветом и другим

  • « ImagickPixel::getIndex
  • ImagickPixel::isPixelSimilarQuantum »
  • PHP Manual
  • ImagickPixel
  • Проверяет расстояние между этим цветом и другим

ImagickPixel::isPixelSimilar

(PECL imagick 3 >= 3.3.0)

ImagickPixel::isPixelSimilar — Проверяет расстояние между этим цветом и другим

Описание

public ImagickPixel::isPixelSimilar(ImagickPixel $color, float $fuzz): bool

Проверяет расстояние между цветом, описанным этим объектом ImagickPixel, и цветом предоставленного объекта, нанося их значения RGB на цветной куб. Если расстояние между двумя точками меньше заданного значения размытия, цвета схожи. Метод заменяет ImagickPixel::isSimilar() и корректно нормализует значение fuzz в ImageMagick QuantumRange.

Список параметров

color

Объект ImagickPixel для сравнения с текущим объектом.

fuzz

Максимальное расстояние, на котором можно считать эти цвета одинаковыми. Теоретическим максимумом для этого значения является квадратный корень из трёх (1,732).

Возвращаемые значения

В случае успешной работы возвращает true.


Возвращает true, если расстояние между двумя цветами меньше указанного расстояния

  • « ImagickPixel::isPixelSimilar
  • ImagickPixel::isSimilar »
  • PHP Manual
  • ImagickPixel
  • Возвращает true, если расстояние между двумя цветами меньше указанного расстояния

ImagickPixel::isPixelSimilarQuantum

(PECL imagick 3 >= 3.3.0)

ImagickPixel::isPixelSimilarQuantum — Возвращает true, если расстояние между двумя цветами меньше указанного расстояния

Описание

public ImagickPixel::isPixelSimilarQuantum(string $color, string $fuzz = ?): bool

Возвращает true, если расстояние между двумя цветами меньше указанного расстояния. Значение fuzz должно быть в диапазоне от 0 до QuantumRange. Максимальное значение представляет максимально возможное расстояние в цветовом пространстве. Например, от RGB (0, 0, 0) до RGB (255, 255, 255) для цветового пространства RGB

Список параметров

color

fuzz

Возвращаемые значения


Проверить разницу между этим цветом и другим

  • « ImagickPixel::isPixelSimilarQuantum
  • ImagickPixel::setColor »
  • PHP Manual
  • ImagickPixel
  • Проверить разницу между этим цветом и другим

ImagickPixel::isSimilar

(PECL imagick 2, PECL imagick 3)

ImagickPixel::isSimilar — Проверить разницу между этим цветом и другим

Описание

public 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, PECL imagick 3)

ImagickPixel::setColor — Устанавливает цвет

Описание

public 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();
}

?>


Устанавливает количество цветов, связанных с этим цветом

  • « ImagickPixel::setColor
  • ImagickPixel::setColorValue »
  • PHP Manual
  • ImagickPixel
  • Устанавливает количество цветов, связанных с этим цветом

ImagickPixel::setColorCount

(PECL imagick 2, PECL imagick 3)

ImagickPixel::setColorCount — Устанавливает количество цветов, связанных с этим цветом

Описание

public ImagickPixel::setcolorcount(int $colorCount): bool

Устанавливает количество цветов, связанных с этим цветом.

Список параметров

colorCount

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает нормализованное значение одного из каналов

  • « ImagickPixel::setColorCount
  • ImagickPixel::setColorValueQuantum »
  • PHP Manual
  • ImagickPixel
  • Устанавливает нормализованное значение одного из каналов

ImagickPixel::setColorValue

(PECL imagick 2, PECL imagick 3)

ImagickPixel::setColorValue — Устанавливает нормализованное значение одного из каналов

Описание

public 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
)


Устанавливает квантовое значение цветового элемента ImagickPixel

  • « ImagickPixel::setColorValue
  • ImagickPixel::setHSL »
  • PHP Manual
  • ImagickPixel
  • Устанавливает квантовое значение цветового элемента ImagickPixel

ImagickPixel::setColorValueQuantum

(PECL imagick 2 >=2.3.0, PECL imagick 3)

ImagickPixel::setColorValueQuantum — Устанавливает квантовое значение цветового элемента ImagickPixel

Описание

public ImagickPixel::setColorValueQuantum(int $color, int|float $value): bool

Устанавливает квантовое значение цветового элемента ImagickPixel.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

color

Какой цветовой элемент установить, например, \Imagick::COLOR_GREEN.

value

Квантовое значение для элемента цвета. Это должно быть число с плавающей точкой, если ImageMagick был скомпилирован с HDRI, иначе целое число в диапазоне от 0 до 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, PECL imagick 3)

ImagickPixel::setHSL — Установка нормализованного HSL цвета

Описание

public 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.


Устанавливает индекс цветовой карты пиксельной палочки

  • « ImagickPixel::setHSL
  • ImagickPixelIterator »
  • PHP Manual
  • ImagickPixel
  • Устанавливает индекс цветовой карты пиксельной палочки

ImagickPixel::setIndex

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickPixel::setIndex — Устанавливает индекс цветовой карты пиксельной палочки

Описание

public ImagickPixel::setIndex(int $index): bool

Устанавливает индекс цветовой карты пиксельной палочки.

Список параметров

index

Возвращаемые значения

В случае успешной работы возвращает true.


Класс ImagickPixelIterator

(PECL imagick 2, PECL imagick 3)

Обзор классов

class ImagickPixelIterator {
public clear(): bool
public __construct(Imagick $wand)
public destroy(): bool
public getCurrentIteratorRow(): array
public getIteratorRow(): int
public getNextIteratorRow(): array
public getPreviousIteratorRow(): array
public newPixelIterator(Imagick $wand): bool
public newPixelRegionIterator(
Imagick $wand,
int $x,
int $y,
int $columns,
int $rows
): bool
public resetIterator(): bool
public setIteratorFirstRow(): bool
public setIteratorLastRow(): bool
public setIteratorRow(int $row): bool
public syncIterator(): 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, PECL imagick 3)

ImagickPixelIterator::clear — Очищает ресурсы, связанные с PixelIterator

Описание

public ImagickPixelIterator::clear(): 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, PECL imagick 3)

ImagickPixelIterator::__construct — Конструктор ImagickPixelIterator

Описание

public 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, PECL imagick 3)

ImagickPixelIterator::destroy — Освобождает ресурсы, связанные с PixelIterator

Описание

public ImagickPixelIterator::destroy(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Освобождает ресурсы, связанные с PixelIterator.

Возвращаемые значения

В случае успешной работы возвращает true.


Возвращает текущий ряд объекта ImagickPixel

  • « ImagickPixelIterator::destroy
  • ImagickPixelIterator::getIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает текущий ряд объекта ImagickPixel

ImagickPixelIterator::getCurrentIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::getCurrentIteratorRow — Возвращает текущий ряд объекта ImagickPixel

Описание

public ImagickPixelIterator::getCurrentIteratorRow(): array
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает текущий ряд в виде массива объектов ImagickPixel из пиксельного итератора.

Возвращаемые значения

Возвращает ряд в виде массива объектов ImagickPixel, который сам может быть итерирован.


Возвращает текущий пиксель итератора ряда

  • « ImagickPixelIterator::getCurrentIteratorRow
  • ImagickPixelIterator::getNextIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает текущий пиксель итератора ряда

ImagickPixelIterator::getIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::getIteratorRow — Возвращает текущий пиксель итератора ряда

Описание

public ImagickPixelIterator::getIteratorRow(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает текущий пиксель итератора ряда.

Возвращаемые значения

Возвращает смещение ряда в виде числа, в случае возникновения ошибки выбрасывает исключение ImagickPixelIteratorException.


Возвращает следующий ряд итератора пикселей

  • « ImagickPixelIterator::getIteratorRow
  • ImagickPixelIterator::getPreviousIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает следующий ряд итератора пикселей

ImagickPixelIterator::getNextIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::getNextIteratorRow — Возвращает следующий ряд итератора пикселей

Описание

public ImagickPixelIterator::getNextIteratorRow(): 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, PECL imagick 3)

ImagickPixelIterator::getPreviousIteratorRow — Возвращает предыдущий ряд

Описание

public ImagickPixelIterator::getPreviousIteratorRow(): array
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает предыдущий ряд в виде массива пикселей из итератора пикселей.

Возвращаемые значения

Возвращает предыдущий ряд в виде массива объектов ImagickPixel, в случае возникновения ошибки выбрасывает исключение ImagickPixelIteratorException.


Возвращает новый итератор пикселей

  • « ImagickPixelIterator::getPreviousIteratorRow
  • ImagickPixelIterator::newPixelRegionIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает новый итератор пикселей

ImagickPixelIterator::newPixelIterator

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::newPixelIterator — Возвращает новый итератор пикселей

Описание

public ImagickPixelIterator::newPixelIterator(Imagick $wand): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает новый итератор пикселей.

Возвращаемые значения

В случае успешной работы возвращает true. Исключение ImagickPixelIteratorException.


Возвращает новый итератор пикселей

  • « ImagickPixelIterator::newPixelIterator
  • ImagickPixelIterator::resetIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает новый итератор пикселей

ImagickPixelIterator::newPixelRegionIterator

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::newPixelRegionIterator — Возвращает новый итератор пикселей

Описание

public 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, PECL imagick 3)

ImagickPixelIterator::resetIterator — Сбрасывает итератор пикселей

Описание

public ImagickPixelIterator::resetIterator(): 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, PECL imagick 3)

ImagickPixelIterator::setIteratorFirstRow — Устанавливает итератор пикселей на первый ряд

Описание

public ImagickPixelIterator::setIteratorFirstRow(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает внутренний указатель итератора пикселей на первый ряд.

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает итератор пикселей на последний ряд

  • « ImagickPixelIterator::setIteratorFirstRow
  • ImagickPixelIterator::setIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Устанавливает итератор пикселей на последний ряд

ImagickPixelIterator::setIteratorLastRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::setIteratorLastRow — Устанавливает итератор пикселей на последний ряд

Описание

public ImagickPixelIterator::setIteratorLastRow(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает внутренний указатель итератора пикселей на последний ряд.

Возвращаемые значения

В случае успешной работы возвращает true.


Устанавливает номер ряда в итераторе пикселей

  • « ImagickPixelIterator::setIteratorLastRow
  • ImagickPixelIterator::syncIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Устанавливает номер ряда в итераторе пикселей

ImagickPixelIterator::setIteratorRow

(PECL imagick 2, PECL imagick 3)

ImagickPixelIterator::setIteratorRow — Устанавливает номер ряда в итераторе пикселей

Описание

public 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, PECL imagick 3)

ImagickPixelIterator::syncIterator — Синхронизирует итератор пикселей

Описание

public ImagickPixelIterator::syncIterator(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Синхронизирует итератор пикселей.

Возвращаемые значения

В случае успешной работы возвращает true.


Класс ImagickKernel

(PECL imagick >= 3.3.0)

Введение

Обзор классов

class 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(): array
public scale(float $scale, int $normalizeFlag = ?): void
public separate(): array
}

Содержание

  • ImagickKernel::addKernel — Присоединяет другое ядро к этому ядру
  • ImagickKernel::addUnityKernel — Добавляет ядро Unity в список ядер
  • ImagickKernel::fromBuiltIn — Создаёт ядро из встроенного ядра
  • ImagickKernel::fromMatrix — Создаёт ядро из двумерной матрицы значений
  • ImagickKernel::getMatrix — Получает 2d матрицу значений, используемых в этом ядре
  • ImagickKernel::scale — Масштабирует список ядер на заданную величину
  • ImagickKernel::separate — Разделяет связанный набор ядер и возвращает массив ImagickKernels


Присоединяет другое ядро к этому ядру

  • « ImagickKernel
  • ImagickKernel::addUnityKernel »
  • PHP Manual
  • ImagickKernel
  • Присоединяет другое ядро к этому ядру

ImagickKernel::addKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addKernel — Присоединяет другое ядро к этому ядру

Описание

public ImagickKernel::addKernel(ImagickKernel $ImagickKernel): void

Присоединяет другое ядро к этому ядру, чтобы позволить им обоим применяться в одной морфологии или функции фильтра. Возвращает новое объединённое ядро.

Список параметров

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();

}

?>


Добавляет ядро Unity в список ядер

  • « ImagickKernel::addKernel
  • ImagickKernel::fromBuiltIn »
  • PHP Manual
  • ImagickKernel
  • Добавляет ядро Unity в список ядер

ImagickKernel::addUnityKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addUnityKernel — Добавляет ядро Unity в список ядер

Описание

public ImagickKernel::addUnityKernel(float $scale): void

Добавляет указанное количество свёрточного ядра 'Unity' к указанному предварительно масштабированному и нормализованному ядру. Это фактически добавляет то количество исходного изображения в получающееся ядро свёртки. В результате получается преобразование определённых ядер в смешанные мягкие пятна, нерезкие ядра или в заострённые ядра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #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 = "Перед добавлением unity ядра: <br/>";
$output .= renderKernelTable($kernel->getMatrix());
$kernel->addUnityKernel(0.5);
$output .= "После добавления unity ядра: <br/>";
$output .= renderKernelTable($kernel->getMatrix());

$kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
$output .= "После перенормировки ядра: <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();

}

?>


Создаёт ядро из встроенного ядра

  • « ImagickKernel::addUnityKernel
  • ImagickKernel::fromMatrix »
  • PHP Manual
  • ImagickKernel
  • Создаёт ядро из встроенного ядра

ImagickKernel::fromBuiltIn

(PECL imagick >= 3.3.0)

ImagickKernel::fromBuiltIn — Создаёт ядро из встроенного ядра

Описание

public static ImagickKernel::fromBuiltin(int $kernelType, string $kernelString): ImagickKernel

Создаёт ядро из встроенного ядра. Смотрите примеры на http://www.imagemagick.org/Usage/morphology/#kernel. В настоящее время символы "вращения" не поддерживаются. Пример: $diamondKernel = ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "2");

Список параметров

kerneltype

Тип ядра для сборки, например, \Imagick::KERNEL_DIAMOND

kernelString

Строка, описывающая параметры, например, "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);

/* создание тени на собственном слое */
$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);

/* накладывает исходный text_layer на 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);

?>


Создаёт ядро из двумерной матрицы значений

  • « ImagickKernel::fromBuiltIn
  • ImagickKernel::getMatrix »
  • PHP Manual
  • ImagickKernel
  • Создаёт ядро из двумерной матрицы значений

ImagickKernel::fromMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::fromMatrix — Создаёт ядро из двумерной матрицы значений

Описание

public static ImagickKernel::fromMatrix(array $matrix, array $origin = ?): ImagickKernel

Создаёт ядро из двумерной матрицы значений. Каждое значение должно быть либо числом с плавающей запятой (если элемент должен использоваться), либо с 'false', если элемент следует пропустить. Для матриц нечётных размеров в обоих измерениях исходным пикселем по умолчанию будет центр ядра. Для всех других размеров ядра необходимо указать исходный пиксель.

Список параметров

array

Матрица (т.е. двумерный массив) значений, определяющих ядро. Каждый элемент должен быть либо числом с плавающей запятой, либо значением FALSE, если этот элемент не должен использоваться ядром.

array

Какой элемент ядра следует использовать в качестве исходного пикселя. Например, для матрицы 3x3, определяющей начало координат как [2, 2], будет указано, что нижний правый элемент должен быть исходным пикселем.

Возвращаемые значения

Созданный 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);

/* создание тени на собственном слое */
$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);

/* накладывает исходный text_layer на 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();
}

?>


Получает 2d матрицу значений, используемых в этом ядре

  • « ImagickKernel::fromMatrix
  • ImagickKernel::scale »
  • PHP Manual
  • ImagickKernel
  • Получает 2d матрицу значений, используемых в этом ядре

ImagickKernel::getMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::getMatrix — Получает 2d матрицу значений, используемых в этом ядре

Описание

public ImagickKernel::getMatrix(): array

Получить 2d матрицу значений, используемых в этом ядре. Элементы являются либо числом с плавающей точкой для используемых элементов, либо 'false', если элемент должен быть пропущен.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Матрица (2d массив) значений, представляющих ядро.

Примеры

Пример #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 = "Имя встроенного ядра 'ring' с параметрами '2,3.5':<br/>";
$kernel = \ImagickKernel::fromBuiltIn(
\Imagick::KERNEL_RING,
"2,3.5"
);
$matrix = $kernel->getMatrix();
$output .= renderKernelTable($matrix);

echo $output;

?>


Масштабирует список ядер на заданную величину

  • « ImagickKernel::getMatrix
  • ImagickKernel::separate »
  • PHP Manual
  • ImagickKernel
  • Масштабирует список ядер на заданную величину

ImagickKernel::scale

(PECL imagick >= 3.3.0)

ImagickKernel::scale — Масштабирует список ядер на заданную величину

Описание

public ImagickKernel::scale(float $scale, int $normalizeFlag = ?): void

Масштабирует заданный список ядер на заданную величину, с нормализацией или без нормализации суммы значений ядер (согласно заданным флагам). Точное поведение функции зависит от используемого типа нормализации, смотрите подробности на http://www.imagemagick.org/api/morphology.php#ScaleKernelInfo.

Список параметров

scale

normalizeFlag

  • Imagick::NORMALIZE_KERNEL_NONE
  • Imagick::NORMALIZE_KERNEL_VALUE
  • Imagick::NORMALIZE_KERNEL_CORRELATE
  • Imagick::NORMALIZE_KERNEL_PERCENT

Возвращаемые значения

Примеры

Пример #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 .= "Старт ядра<br/>";
$output .= renderKernelTable($kernel->getMatrix());

$output .= "Масштабирование с NORMALIZE_KERNEL_VALUE. The <br/>";
$kernel->scale(2, \Imagick::NORMALIZE_KERNEL_VALUE);
$output .= renderKernelTable($kernel->getMatrix());

$kernel = clone $kernelClone;
$output .= "Масштабирование в процентах<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 .= "Масштабирование по корреляции<br/>";
$kernel->scale(1, \Imagick::NORMALIZE_KERNEL_CORRELATE);
$output .= renderKernelTable($kernel->getMatrix());

return $output;
?>


Разделяет связанный набор ядер и возвращает массив ImagickKernels

  • « ImagickKernel::scale
  • Модули для работы с почтой »
  • PHP Manual
  • ImagickKernel
  • Разделяет связанный набор ядер и возвращает массив ImagickKernels

ImagickKernel::separate

(PECL imagick >= 3.3.0)

ImagickKernel::separate — Разделяет связанный набор ядер и возвращает массив ImagickKernels

Описание

public ImagickKernel::separate(): array

Разделяет связанный набор ядер и возвращает массив 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/>Ядро $count<br/>";
$output .= renderKernelTable($kernel->getMatrix());
$count++;
}

return $output;

?>


Модули для работы с почтой

  • IMAP — IMAP, POP3 и NNTP
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции IMAP
    • IMAP\Connection — Класс IMAP\Connection
  • Mail
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Почта
  • Mailparse
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Mailparse


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_is_open — Проверяет, является ли поток IMAP всё ещё корректным
    • 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\Connection — Класс IMAP\Connection


Введение

Эти функции позволяют работать с протоколом IMAP, а также NNTP, POP3 и локальными методами доступа к почтовому ящику.

Однако следует иметь в виду, что некоторые функции IMAP не будут корректно работать c протоколом POP.

Внимание

Модуль IMAP не является потокобезопасным; его не следует использовать со сборками ZTS.


Требования

Этот модуль требует установленной библиотеки c-client. Возьмите последнюю версию с » https://github.com/uw-imap/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.

Замечание: В зависимости от того как настроен ваш c-client, вам может понадобиться добавить --with-imap-ssl=/path/to/openssl/ и/или --with-kerberos=/path/to/kerberos ключ при конфигурировании PHP.

Внимание

Модуль IMAP не является потокобезопасным; его не следует использовать со сборками ZTS.

Внимание

Модуль IMAP не может использоваться вместе с модулями перекодировки и YAZ. Это связано с тем фактом, что они оба используют одни и те же внутренние символы. Замечание: Версии 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 bool

Установление соединения с сервером может запустить команду rsh или ssh, если эта опция не отключена в php.ini.

Внимание

Ни PHP ни библиотека IMAP не фильтруют имена почтовых ящиков при передачи их командам rsh или ssh. Таким образом, передача непроверенных данных в эту функцию, без отключения этой опции в php.ini небезопасна.


  • « Настройка во время выполнения
  • Предопределённые константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

До PHP 8.1.0, ресурс imap, возвращаемый функцией imap_open(), ссылался на открытый поток IMAP.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

NIL (int)
Объявлена устаревшей, начиная с PHP 8.1.0.
OP_DEBUG (int)
OP_READONLY (int)
Открыть почтовый ящик только для чтения
OP_ANONYMOUS (int)
Не используйте обновления .newsrc для новостей (только для NNTP)
OP_SHORTCACHE (int)
OP_SILENT (int)
OP_PROTOTYPE (int)
OP_HALFOPEN (int)
Для IMAP и NNTP имён, открыть соединение, но не открывать почтовый ящик.
OP_EXPUNGE (int)
OP_SECURE (int)
CL_EXPUNGE (int)
Не выдавая никаких предупреждений стирать сообщения прежде чем закрыть при вызове imap_close()
FT_UID (int)
Параметром является UID
FT_PEEK (int)
Не устанавливать флаг \Seen, если до этого он ещё не установлен
FT_NOT (int)
FT_INTERNAL (int)
Возвращаемая строка во внутреннем формате. Не будет канонизирована к виду CRLF.
FT_PREFETCHTEXT (int)
ST_UID (int)
Последовательность аргументов, которая содержит идентификаторы UID вместо последовательности номеров
ST_SILENT (int)
ST_SET (int)
CP_UID (int)
порядковые номера, содержащие идентификаторы UID
CP_MOVE (int)
Удалить сообщения из текущего почтового ящика после копирования с помощью imap_mail_copy()
SE_UID (int)
Возвращать идентификаторы UID вместо порядковых номеров
SE_FREE (int)
SE_NOPREFETCH (int)
Не выполнять предвыборку найденных сообщений
SO_FREE (int)
SO_NOSERVER (int)
SA_MESSAGES (int)
SA_RECENT (int)
SA_UNSEEN (int)
SA_UIDNEXT (int)
SA_UIDVALIDITY (int)
SA_ALL (int)
LATT_NOINFERIORS (int)
Этот почтовый ящик не имеет "потомков". (Почтовые ящики за этим отсутствуют)
LATT_NOSELECT (int)
Это только контейнер, а не почтовый ящик. Вы не можете открыть его.
LATT_MARKED (int)
Этот почтовый ящик помечен. Используется только UW-IMAPD.
LATT_UNMARKED (int)
Этот почтовый ящик не помечен. Используется только с UW-IMAPD.
LATT_REFERRAL (int)
Этот контейнер имеет направления (referral) на удалённый почтовый ящик.
LATT_HASCHILDREN (int)
Этот почтовый ящик имеет выбираемые подчинённые (inferiors).
LATT_HASNOCHILDREN (int)
Этот почтовый ящик не имеет выбираемые подчинённые (inferiors).
SORTDATE (int)
Критерий сортировки для imap_sort(): дата написания
SORTARRIVAL (int)
Критерий сортировки для imap_sort(): дата доставки
SORTFROM (int)
Критерий сортировки для imap_sort(): почтовый ящик первый в поле "от кого" (поле from)
SORTSUBJECT (int)
Критерий сортировки для imap_sort(): тема письма
SORTTO (int)
Критерий сортировки для imap_sort(): почтовый ящик первый в поле "кому" (поле to)
SORTCC (int)
Критерий сортировки для imap_sort(): почтовый ящик первый в поле "копия" (поле cc)
SORTSIZE (int)
Критерий сортировки для imap_sort(): размер сообщения в байтах
TYPETEXT (int)
Первичный тип тела сообщения: неформатированный текст
TYPEMULTIPART (int)
Первичный тип тела сообщения: несколько частей
TYPEMESSAGE (int)
Первичный тип тела сообщения: инкапсулированное сообщение
TYPEAPPLICATION (int)
Первичный тип тела сообщения: данные приложения
TYPEAUDIO (int)
Первичный тип тела сообщения: аудио
TYPEIMAGE (int)
Первичный тип тела сообщения: статическое изображение
TYPEVIDEO (int)
Первичный тип тела сообщения: видео
TYPEMODEL (int)
Первичный тип тела сообщения: модель
TYPEOTHER (int)
Первичный тип тела сообщения: неизвестно
ENC7BIT (int)
Кодировка тела сообщения: 7-битные данные в семантике SMTP
ENC8BIT (int)
Кодировка тела сообщения: 8-битные данные в семантике SMTP
ENCBINARY (int)
Кодировка тела сообщения: 7-битные двоичные данные
ENCBASE64 (int)
Кодировка тела сообщения: данные закодированные в base-64
ENCQUOTEDPRINTABLE (int)
Кодировка тела сообщения: человеко-читаемые 7-как-8 битные данные
ENCOTHER (int)
Кодировка тела сообщения: неизвестно
IMAP_OPENTIMEOUT (int)
IMAP_READTIMEOUT (int)
IMAP_WRITETIMEOUT (int)
IMAP_CLOSETIMEOUT (int)
IMAP_GC_ELT (int)
Сборщик мусора, очищает элементы кеша сообщений.
IMAP_GC_ENV (int)
Сборщик мусора, очищает обёртку и тело сообщения.
IMAP_GC_TEXTS (int)
Сборщик мусора, очищает текст.


Функции 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_is_open — Проверяет, является ли поток IMAP всё ещё корректным
  • 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, PHP 8)

imap_8bit — Конвертирует 8-битную строку в строку в формате quoted-printable

Описание

imap_8bit(string $string): string|false

Конвертирует 8-битную строку в строку, закодированную механизмом quoted-printable (в соответствии с » RFC2045, раздел 6.7).

Список параметров

string

8-битная строка для конвертации

Возвращаемые значения

Возвращает строку формата quoted-printable или false в случае возникновения ошибки.

Смотрите также

  • imap_qprint() - Преобразовать строку из формата "quoted-printable" в 8-битную строку


Возвращает все произошедшие предупредительные сообщения IMAP

  • « imap_8bit
  • imap_append »
  • PHP Manual
  • Функции IMAP
  • Возвращает все произошедшие предупредительные сообщения IMAP

imap_alerts

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_alerts — Возвращает все произошедшие предупредительные сообщения IMAP

Описание

imap_alerts(): array|false

Возвращает все созданные предупредительные сообщения 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, PHP 8)

imap_append — Добавляет строковое сообщение в указанный почтовый ящик

Описание

imap_append(
IMAP\Connection $imap,
string $folder,
string $message,
?string $options = null,
?string $internal_date = null
): bool

Добавляет строку message в указанный folder.

Список параметров

imap

Экземпляр IMAP\Connection.

folder

Имя почтового ящика. Смотрите imap_open() для подробной информации.

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

message

Добавляемое сообщение в виде строки

При обращении к серверу Cyrus IMAP следует использовать "\r\n" как завершающий символ строки вместо "\n", иначе операция будет неудачна.

options

Если указан, то параметр options также будет записан в folder

internal_date

Если этот параметр указан, он установит INTERNALDATE в добавляемом сообщении. Параметр должен содержать дату, представленную строкой, которая соответствует спецификации rfc2060 для значения date_time.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.
8.0.0 | options и internal_date теперь допускают значение null.

Примеры

Пример #1 Пример использования imap_append()

<?php
$imap = imap_open("{imap.example.org}INBOX.Drafts", "username", "password");

$check = imap_check($imap);
echo "Кол-во сообщений до добавления: ". $check->Nmsgs . "\n";

imap_append($imap, "{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($imap);
echo "Кол-во сообщений после добавления : ". $check->Nmsgs . "\n";

imap_close($imap);
?>


Декодировать текст закодированный BASE64

  • « imap_append
  • imap_binary »
  • PHP Manual
  • Функции IMAP
  • Декодировать текст закодированный BASE64

imap_base64

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_base64 — Декодировать текст закодированный BASE64

Описание

imap_base64(string $string): string|false

Декодирует текст string, закодированный BASE64.

Список параметров

string

Закодированный текст

Возвращаемые значения

Возвращает строку с декодированным сообщением или false в случае возникновения ошибки.

Смотрите также

  • 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, PHP 8)

imap_binary — Конвертирует 8-битную строку в строку base64

Описание

imap_binary(string $string): string|false

Конвертирует 8-битную строку в строку base64 в соответствии с » RFC2045, Секция 6.8.

Список параметров

string

8-битная строка

Возвращаемые значения

Возвращает строку, кодированную в base64 или false в случае возникновения ошибки.

Смотрите также

  • imap_base64() - Декодировать текст закодированный BASE64


Прочитать тело сообщения

  • « imap_binary
  • imap_bodystruct »
  • PHP Manual
  • Функции IMAP
  • Прочитать тело сообщения

imap_body

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_body — Прочитать тело сообщения

Описание

imap_body(IMAP\Connection $imap, int $message_num, int $flags = 0): string|false

imap_body() возвращает тело сообщения с номером message_num в текущем почтовом ящике.

imap_body() вернёт точную копию тела сообщения. Для извлечения одной части составного MIME-сообщения используйте imap_fetchstructure() для анализа структуры и imap_fetchbody() для извлечения копии одной из частей тела.

Список параметров

imap

Экземпляр IMAP\Connection.

message_num

Номер сообщения

flags

Опциональный параметр flags, являющийся битовой маской одной или нескольких констант:

  • FT_UID - message_num является UID
  • FT_PEEK - Не устанавливать флаг Просмотрено (\Seen), если он уже не установлен.
  • FT_INTERNAL - возвращаемая строка будет во внутреннем формате, а не канонизирована к CRLF.

Возвращаемые значения

Возвращает строку с телом указанного сообщения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.


Прочитать структуру указанной секции тела заданного сообщения

  • « imap_body
  • imap_check »
  • PHP Manual
  • Функции IMAP
  • Прочитать структуру указанной секции тела заданного сообщения

imap_bodystruct

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_bodystruct — Прочитать структуру указанной секции тела заданного сообщения

Описание

imap_bodystruct(IMAP\Connection $imap, int $message_num, string $section): stdClass|false

Читает структуру указанной секции тела заданного сообщения.

Список параметров

imap

Экземпляр IMAP\Connection.

message_num

Номер сообщения

section

Секция тела для чтения

Возвращаемые значения

Возвращает информацию в виде объекта или false в случае возникновения ошибки. Описание структуры и свойств объекта читайте в разделе, посвящённом функции imap_fetchstructure().

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_fetchstructure() - Прочитать структуру указанного сообщения


Проверить текущий почтовый ящик

  • « imap_bodystruct
  • imap_clearflag_full »
  • PHP Manual
  • Функции IMAP
  • Проверить текущий почтовый ящик

imap_check

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_check — Проверить текущий почтовый ящик

Описание

imap_check(IMAP\Connection $imap): stdClass|false

Проверяет информацию текущего почтового ящика.

Список параметров

imap

Экземпляр IMAP\Connection.

Возвращаемые значения

Возвращает объект со следующими свойствами:

  • Date - текущее системное время в формате соответствующем » RFC2822
  • Driver - протокол, используемый для доступа к почтовому ящику: POP3, IMAP, NNTP
  • Mailbox - имя почтового ящика
  • Nmsgs - количество сообщений
  • Recent - количество новых сообщений

В случае возникновения ошибки возвращает false.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #1 Пример использования imap_check()

<?php

$imap = imap_check($imap_stream);
var_dump($imap);

?>

Результатом выполнения данного примера будет что-то подобное:

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, PHP 8)

imap_clearflag_full — Снять с сообщения установленные флаги

Описание

imap_clearflag_full(
IMAP\Connection $imap,
string $sequence,
string $flag,
int $options = 0
): bool

Эта функция оповещает хранилище, что необходимо снять заданный флаг flag для указанной последовательности сообщений sequence.

Список параметров

imap

Экземпляр IMAP\Connection.

sequence

Последовательность номеров сообщений. Вы можете перечислить номера через запятую X,Y, или задать диапазон номеров с помощью двоеточия X:Y

flag

Флаги, которые можно удалить: "\\Seen", "\\Answered", "\\Flagged", "\\Deleted" и "\\Draft" (как определено в » RFC2060)

options

options - битовая маска, которая может принимать единственное значение:

  • ST_UID - аргумент sequence содержит список UID, а не последовательность номеров

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_setflag_full() - Установить флаги на сообщения


Закрыть поток IMAP

  • « imap_clearflag_full
  • imap_create »
  • PHP Manual
  • Функции IMAP
  • Закрыть поток IMAP

imap_close

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_close — Закрыть поток IMAP

Описание

imap_close(IMAP\Connection $imap, int $flags = 0): bool

Закрывает поток IMAP.

Список параметров

imap

Экземпляр IMAP\Connection.

flags

Если установлен CL_EXPUNGE, то эта функция молча применит все внесённые изменения, в частности удалит все сообщения помеченные для удаления. По сути сделает то же, что и функция imap_expunge()

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_open() - Открывает поток IMAP к почтовому ящику


Псевдоним imap_createmailbox

  • « imap_close
  • imap_createmailbox »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_createmailbox

imap_create

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_create — Псевдоним imap_createmailbox()

Описание

Функция является псевдонимом: imap_createmailbox().


Создать новый почтовый ящик

  • « imap_create
  • imap_delete »
  • PHP Manual
  • Функции IMAP
  • Создать новый почтовый ящик

imap_createmailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_createmailbox — Создать новый почтовый ящик

Описание

imap_createmailbox(IMAP\Connection $imap, string $mailbox): bool

Создаёт новый почтовый ящик, указанный в mailbox.

Список параметров

imap

Экземпляр IMAP\Connection.

mailbox

Имя почтового ящика. Более подробно смотрите imap_open(). Имена почтовых ящиков, содержащие интернациональные символы должны быть закодированы с помощью imap_utf7_encode().

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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, PHP 8)

imap_delete — Пометить сообщение для удаления

Описание

imap_delete(IMAP\Connection $imap, string $message_nums, int $flags = 0): bool

Помечает сообщения, перечисленные в message_nums для удаления. Помеченные сообщения будут оставаться в ящике пока не будет вызвана функция imap_expunge(), либо imap_close() с установленным параметром CL_EXPUNGE.

Список параметров

imap

Экземпляр IMAP\Connection.

message_nums

Строка (string), состоящая из одного или нескольких сообщений в формате последовательности в стиле IMAP4 ("n", "n:m" или их комбинация, разделённая запятыми).

flags

Можно задать как FT_UID, тогда функция будет ожидать в параметре message_nums не номер сообщения, а UID.

Возвращаемые значения

Возвращает true.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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, PHP 8)

imap_deletemailbox — Удалить почтовый ящик

Описание

imap_deletemailbox(IMAP\Connection $imap, string $mailbox): bool

Удаляет почтовый ящик mailbox.

Список параметров

imap

Экземпляр IMAP\Connection.

mailbox

Имя ящика. Более подробно читайте в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • 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, PHP 8)

imap_errors — Получить все произошедшие ошибки IMAP

Описание

imap_errors(): array|false

Возвращает все ошибки 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, PHP 8)

imap_expunge — Удалить все помеченные для удаления сообщения

Описание

imap_expunge(IMAP\Connection $imap): bool

Удаляет все помеченные для удаления сообщения. Пометить для удаления можно
с помощью функций imap_delete(),
imap_mail_move() или
imap_setflag_full().

Список параметров

imap

Экземпляр IMAP\Connection.

Возвращаемые значения

Возвращает true.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.


Обзор информации, содержащейся в заголовках сообщений

  • « imap_expunge
  • imap_fetchbody »
  • PHP Manual
  • Функции IMAP
  • Обзор информации, содержащейся в заголовках сообщений

imap_fetch_overview

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetch_overview — Обзор информации, содержащейся в заголовках сообщений

Описание

imap_fetch_overview(IMAP\Connection $imap, string $sequence, int $flags = 0): array|false

Эта функция читает заголовки сообщений, заданных в sequence и возвращает обзорную информацию об их контенте.

Список параметров

imap

Экземпляр IMAP\Connection.

sequence

Последовательность номеров сообщений.Вы можете перечислить несколько сообщений, используя как разделитель запятую (X,Y), или задать интервал сообщений с помощью двоеточия X:Y

flags

Параметр 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 даты получения
Функция возвращает false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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, PHP 8)

imap_fetchbody — Извлечь конкретную секцию тела сообщения

Описание

imap_fetchbody(
IMAP\Connection $imap,
int $message_num,
string $section,
int $flags = 0
): string|false

Извлекает конкретную секцию тела сообщения. Секции сообщения в этой функции не декодируются.

Список параметров

imap

Экземпляр IMAP\Connection.

message_num

Номер сообщения

section

Номер секции сообщения. Строка целых чисел, разделённых точками, определяющая часть тела сообщения в соответствии со спецификацией IMAP4

flags

Битовая маска из одной или нескольких опций:

  • FT_UID - параметр message_num является UID
  • FT_PEEK - Не устанавливать флаг \Seen, если он уже не установлен
  • FT_INTERNAL - возвращать строку во внутреннем формате, без преобразования концов строк к CRLF.

Возвращаемые значения

Возвращает конкретную секцию тела сообщения в виде строки или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_savebody() - Сохранить часть тела сообщения в файл
  • imap_fetchstructure() - Прочитать структуру указанного сообщения


Получить заголовок сообщения

  • « imap_fetchbody
  • imap_fetchmime »
  • PHP Manual
  • Функции IMAP
  • Получить заголовок сообщения

imap_fetchheader

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetchheader — Получить заголовок сообщения

Описание

imap_fetchheader(IMAP\Connection $imap, int $message_num, int $flags = 0): string|false

Эта функция извлекает полный, нефильтрованный заголовок в формате » RFC2822 для заданного сообщения.

Список параметров

imap

Экземпляр IMAP\Connection.

message_num

Номер сообщения

flags

Допустимые значения flags:

  • FT_UID - параметр message_num является UID
  • FT_INTERNAL - возвращать строку во внутреннем формате, без преобразования концов строк к CRLF.
  • FT_PREFETCHTEXT - одновременно должен быть подгружён RFC822.TEXT. Это позволяет избежать лишнего RTT при соединении IMAP, если выбран полный текст сообщения (например при операции "сохранить в файл")

Возвращаемые значения

Возвращает заголовок сообщения в виде строки или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_fetch_overview() - Обзор информации, содержащейся в заголовках сообщений


Извлечь MIME-заголовки для конкретной секции сообщения

  • « imap_fetchheader
  • imap_fetchstructure »
  • PHP Manual
  • Функции IMAP
  • Извлечь MIME-заголовки для конкретной секции сообщения

imap_fetchmime

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

imap_fetchmime — Извлечь MIME-заголовки для конкретной секции сообщения

Описание

imap_fetchmime(
IMAP\Connection $imap,
int $message_num,
string $section,
int $flags = 0
): string|false

Извлекает MIME-заголовки для конкретной секции сообщения.

Список параметров

imap

Экземпляр IMAP\Connection.

message_num

Номер сообщения

section

Номер секции сообщения. Строка целых чисел, разделённых точками, определяющая часть тела сообщения в соответствии со спецификацией IMAP4

flags

Битовая маска из одной или нескольких опций:

  • FT_UID - параметр message_num является UID
  • FT_PEEK - Не устанавливать флаг \Seen, если он уже не установлен
  • FT_INTERNAL - возвращать строку во внутреннем формате, без преобразования концов строк к CRLF.

Возвращаемые значения

Возвращает MIME-заголовки для конкретной секции сообщения в виде строки или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_fetchbody() - Извлечь конкретную секцию тела сообщения
  • imap_fetchstructure() - Прочитать структуру указанного сообщения
  • imap_fetchheader() - Получить заголовок сообщения


Прочитать структуру указанного сообщения

  • « imap_fetchmime
  • imap_fetchtext »
  • PHP Manual
  • Функции IMAP
  • Прочитать структуру указанного сообщения

imap_fetchstructure

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_fetchstructure — Прочитать структуру указанного сообщения

Описание

imap_fetchstructure(IMAP\Connection $imap, int $message_num, int $flags = 0): stdClass|false

Извлекает информацию о структуре указанного сообщения.

Список параметров

imap

Экземпляр IMAP\Connection.

message_num

Номер сообщения

flags

Если задано как FT_UID, то в message_num должны быть UID сообщений, а не их номера.

Возвращаемые значения

Возвращает объект со свойствами, перечисленными в таблице ниже или false в случае возникновения ошибки.

Объект, возвращаемый 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

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_fetchbody() - Извлечь конкретную секцию тела сообщения
  • imap_bodystruct() - Прочитать структуру указанной секции тела заданного сообщения


Псевдоним imap_body

  • « imap_fetchstructure
  • imap_gc »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_body

imap_fetchtext

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

imap_gc — Очистить кеш IMAP

Описание

imap_gc(IMAP\Connection $imap, int $flags): bool

Удаляет из кеша записи заданного типа.

Список параметров

imap

Экземпляр IMAP\Connection.

flags

Задаёт кеш для чистки. Может быть любой комбинацией констант: IMAP_GC_ELT (элементы кеша сообщений), IMAP_GC_ENV (обёртки и тела), IMAP_GC_TEXTS (тексты).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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, PHP 8)

imap_get_quota — Получить настройку уровня квоты и статистику использования почтовых ящиков

Описание

imap_get_quota(IMAP\Connection $imap, string $quota_root): array|false

Возвращает настройку уровня квоты и статистику использования почтовых ящиков.

Версия данной функции для использования обычными пользователями, не администраторами - imap_get_quotaroot().

Список параметров

imap

Экземпляр IMAP\Connection.

quota_root

quota_root должно соответствовать формату user.name, где name - имя ящика, информация по которому нужна.

Возвращаемые значения

Возвращает ассоциативный массив целых чисел с ключами "limit" и "usage". Число с ключом "limit" определяет максимальный допустимый размер ящика. Число с ключом "usage" определяет текущий уровень использования. В случае возникновения ошибки вернёт false.

Начиная с PHP 4.3 и выше, функция более точно соответствует стандарту, описанному в » RFC2087. Значение возвращаемого массива изменилось для поддержки неограниченного количества возвращаемых ресурсов (т.е. сообщений или подпапок), где каждый именованный ресурс будет представлен индивидуальным массивом. Каждый элемент массива будет содержать другой массив к ключами "limit" и "usage".

Для обеспечения обратной совместимости, оригинальный метод доступа всё ещё доступен, хотя предполагается это поправить.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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 должен быть открыт под административным пользователем.

Смотрите также

  • 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, PHP 8)

imap_get_quotaroot — Получить настройки квоты для каждого пользователя

Описание

imap_get_quotaroot(IMAP\Connection $imap, string $mailbox): array|false

Возвращает настройки квоты для каждого пользователя. Число с ключом "limit" определяет максимальный допустимый размер ящика. Число с ключом "usage" определяет текущий уровень использования.

Список параметров

imap

Экземпляр IMAP\Connection.

mailbox

mailbox должно содержать имя ящика (например INBOX).

Возвращаемые значения

Возвращает массив целых чисел, относящихся к конкретному пользователю. В качестве ключей массива используются имена ресурсов, а в качестве значений массивы с ключами "limit" и "usage".

В случае возникновения ошибки эта функция вернёт false и массив информации о соединении в случае получения ответа, который она не сможет разобрать.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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 должен быть открыт под пользователем, чей ящик вы хотите проверить.

Смотрите также

  • 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, PHP 8)

imap_getacl — Получить ACL для заданного почтового ящика

Описание

imap_getacl(IMAP\Connection $imap, string $mailbox): array|false

Возвращает ACL для заданного почтового ящика.

Список параметров

imap

Экземпляр IMAP\Connection.

mailbox

Имя почтового ящика. Более подробно читайте в разделе, посвящённом функции imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

Возвращаемые значения

Возвращает ассоциативный массив вида "folder" => "acl" или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #1 Пример использования imap_getacl()

<?php

print_r(imap_getacl($imap, '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, PHP 8)

imap_getmailboxes — Прочитать список почтовых ящиков, возвращая подробную информацию по каждому из них

Описание

imap_getmailboxes(IMAP\Connection $imap, string $reference, string $pattern): array|false

Получает информацию о почтовых ящиков.

Список параметров

imap

Экземпляр IMAP\Connection.

reference

reference обычно должен быть только спецификацией сервера, как описано в 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).

Функция возвращает false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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, PHP 8)

imap_getsubscribed — Список всех почтовых ящиков, на которые вы подписаны

Описание

imap_getsubscribed(IMAP\Connection $imap, string $reference, string $pattern): array|false

Возвращает информацию о списке всех почтовых ящиков, на которые вы подписаны.

Идентично imap_getmailboxes(), за исключением того, что возвращается только список ящиков, на которые подписан пользователь.

Список параметров

imap

Экземпляр IMAP\Connection.

reference

В reference, как правило, должна быть указана только спецификация сервера, как описано в 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).
Функция возвращает false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.


Псевдоним imap_headerinfo

  • « imap_getsubscribed
  • imap_headerinfo »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_headerinfo

imap_header

(PHP 4, PHP 5, PHP 7)

imap_header — Псевдоним imap_headerinfo()

Внимание

Псевдоним УДАЛЁН в PHP 8.0.0.

Описание

Функция является псевдонимом: imap_headerinfo().


Прочитать заголовок сообщения

  • « imap_header
  • imap_headers »
  • PHP Manual
  • Функции IMAP
  • Прочитать заголовок сообщения

imap_headerinfo

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_headerinfo — Прочитать заголовок сообщения

Описание

imap_headerinfo(
IMAP\Connection $imap,
int $message_num,
int $from_length = 0,
int $subject_length = 0
): stdClass|false

Извлекает информацию о сообщении из его заголовка.

Список параметров

imap

Экземпляр IMAP\Connection.

message_num

Номер сообщения

from_length

Количество символов в свойстве fetchfrom. Должно быть больше или равно нулю.

subject_length

Количество символов в свойстве 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 если удалено, ' ' если нет
  • Draft - X если черновик, ' ' если нет
  • Msgno - Номер сообщения
  • MailDate -
  • Size - Размер сообщения
  • udate - время отсылки в виде временной метки Unix
  • fetchfrom - поле from, отформатированное в соответствии с from_length
  • fetchsubject - поле subject, отформатированное в соответствии с subject_length

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.
8.0.0 | Неиспользуемый параметр defaulthost был удалён.

Смотрите также

  • imap_fetch_overview() - Обзор информации, содержащейся в заголовках сообщений


Получить заголовки всех сообщений в почтовом ящике

  • « imap_headerinfo
  • imap_is_open »
  • PHP Manual
  • Функции IMAP
  • Получить заголовки всех сообщений в почтовом ящике

imap_headers

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_headers — Получить заголовки всех сообщений в почтовом ящике

Описание

imap_headers(IMAP\Connection $imap): array|false

Возвращает заголовки всех сообщений в почтовом ящике.

Список параметров

imap

Экземпляр IMAP\Connection.

Возвращаемые значения

Возвращает массив со строками, содержащими заголовки сообщений. Один элемент - одно сообщение. Возвращает false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.


Проверяет, является ли поток IMAP всё ещё корректным

  • « imap_headers
  • imap_last_error »
  • PHP Manual
  • Функции IMAP
  • Проверяет, является ли поток IMAP всё ещё корректным

imap_is_open

(PHP 8 >= 8.2.1)

imap_is_open — Проверяет, является ли поток IMAP всё ещё корректным

Описание

imap_is_open(IMAP\Connection $imap): bool

Проверяет, является ли поток IMAP всё ещё корректным.

Список параметров

imap

Экземпляр IMAP\Connection.

Возвращаемые значения

Возвращает true, если поток ещё корректный, в противном случае возвращает false.

Примеры

Пример #1 Пример использования imap_is_open()

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password") or die(implode(", ", imap_errors()));
imap_is_open($mbox);
// ...
?>


Получить последнюю ошибку IMAP в текущем запросе

  • « imap_is_open
  • imap_list »
  • PHP Manual
  • Функции IMAP
  • Получить последнюю ошибку IMAP в текущем запросе

imap_last_error

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_last_error — Получить последнюю ошибку IMAP в текущем запросе

Описание

imap_last_error(): string|false

Возвращает полный текст ошибки 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, PHP 8)

imap_list — Прочитать список почтовых ящиков

Описание

imap_list(IMAP\Connection $imap, string $reference, string $pattern): array|false

Читает список почтовых ящиков.

Список параметров

imap

Экземпляр IMAP\Connection.

reference

В reference, как правило, должна быть указана только спецификация сервера, как описано в imap_open().

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернёт только текущий уровень. '%', переданный как параметр pattern, вернёт почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернёт все ящики в директории ~/mail, кроме тех, которые находятся в её поддиректориях.

Возвращаемые значения

Возвращает массив с именами почтовых ящиков или false в случае неудачи.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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, PHP 8)

imap_listmailbox — Псевдоним imap_list()

Описание

Функция является псевдонимом: imap_list().


Получить список почтовых ящиков, имена которых содержат заданную строку

  • « imap_listmailbox
  • imap_listsubscribed »
  • PHP Manual
  • Функции IMAP
  • Получить список почтовых ящиков, имена которых содержат заданную строку

imap_listscan

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_listscan — Получить список почтовых ящиков, имена которых содержат заданную строку

Описание

imap_listscan(
IMAP\Connection $imap,
string $reference,
string $pattern,
string $content
): array|false

Возвращает массив, содержащий имена почтовых ящиков содержащих content в тексте.

Эта функция похожа на imap_listmailbox(), но также выявляет присутствие строки content внутри данных почтового ящика.

Список параметров

imap

Экземпляр IMAP\Connection.

reference

В reference, как правило, должна быть указана только спецификация сервера, как описано в imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернёт только текущий уровень. '%', переданный как параметр pattern, вернёт почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернёт все ящики в директории ~/mail, кроме тех, которые находятся в её поддиректориях.

content

Искомая строка

Возвращаемые значения

Возвращает массив, содержащий имена почтовых ящиков содержащих content в тексте или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • 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, PHP 8)

imap_listsubscribed — Псевдоним imap_lsub()

Описание

Функция является псевдонимом: imap_lsub().


Список всех подписанных почтовых ящиков

  • « imap_listsubscribed
  • imap_mail_compose »
  • PHP Manual
  • Функции IMAP
  • Список всех подписанных почтовых ящиков

imap_lsub

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_lsub — Список всех подписанных почтовых ящиков

Описание

imap_lsub(IMAP\Connection $imap, string $reference, string $pattern): array|false

Возвращает массив всех почтовых ящиков на которые вы подписаны.

Список параметров

imap

Экземпляр IMAP\Connection.

reference

В reference, как правило, должна быть указана только спецификация сервера, как описано в imap_open().

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернёт только текущий уровень. '%', переданный как параметр pattern, вернёт почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернёт все ящики в директории ~/mail, кроме тех, которые находятся в её поддиректориях.

Возвращаемые значения

Возвращает массив всех подписанных почтовых ящиков или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_list() - Прочитать список почтовых ящиков
  • imap_getmailboxes() - Прочитать список почтовых ящиков, возвращая подробную информацию по каждому из них


Создать MIME-сообщение на основе заданных обёртки и тела

  • « imap_lsub
  • imap_mail_copy »
  • PHP Manual
  • Функции IMAP
  • Создать MIME-сообщение на основе заданных обёртки и тела

imap_mail_compose

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mail_compose — Создать MIME-сообщение на основе заданных обёртки и тела

Описание

imap_mail_compose(array $envelope, array $bodies): string|false

Создаёт MIME-сообщение на основе обёртки envelope и тела bodies.

Список параметров

envelope

Ассоциативный массив с полями заголовка. Допустимые ключи: "remail", "return_path", "date", "from", "reply_to", "in_reply_to", "subject", "to", "cc", "bcc" и "message_id", которые устанавливают соответствующие заголовки сообщений в заданную строку (string). Для установки дополнительных заголовков поддерживается ключ "custom_headers", который содержит ассоциативный массив прочих заголовков, например, ["User-Agent: My Mail Client"].

bodies

Индексированный массив тел. Первое тело - это основная часть сообщения; дальнейшие тела обрабатываются, только если оно с типом TYPEMULTIPART; эти тела составляют тела частей.

Структура массива тела
Ключ | Тип | Описание
type | int | Тип MIME. Один из TYPETEXT (по умолчанию), TYPEMULTIPART, TYPEMESSAGE, TYPEAPPLICATION, TYPEAUDIO, TYPEIMAGE, TYPEMODEL или TYPEOTHER.
encoding | int | Значение Content-Transfer-Encoding. Одно из ENC7BIT (default), ENC8BIT, ENCBINARY, ENCBASE64, ENCQUOTEDPRINTABLE или ENCOTHER.
charset | string | Параметр charset типа MIME.
type.parameters | array | Ассоциативный массив (array) имён параметров Content-Type и их значений.
subtype | string | Подтип MIME, например, 'jpeg' для TYPEIMAGE.
id | string | Значение Content-ID.
description | string | Значение Content-Description.
disposition.type | string | Значение Content-Disposition, например, 'attachment'.
disposition | array | Ассоциативный массив (array) имён параметров Content-Disposition и их значений.
contents.data | string | Полезная нагрузка.
lines | int | Размер полезной нагрузки в строках.
bytes | int | Размер полезной нагрузки в байтах.
md5 | string | Контрольная сумма MD5 полезной нагрузки.

Возвращаемые значения

Возвращает MIME-сообщение в виде строки (string) или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

imap_mail_copy — Скопировать сообщения в указанный почтовый ящик

Описание

imap_mail_copy(
IMAP\Connection $imap,
string $message_nums,
string $mailbox,
int $flags = 0
): bool

Копирует заданные в message_nums письма в указанный почтовый ящик.

Список параметров

imap

Экземпляр IMAP\Connection.

message_nums

message_nums - это диапазон, а не просто номера сообщений (как определено в » RFC2060).

mailbox

Имя почтового ящика. Более подробно читайте в разделе, посвящённом функции imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

flags

flags - битовая маска одной или нескольких констант:

  • CP_UID - означает, что в первом параметре не номера сообщений, а их UID.
  • CP_MOVE - удалить оригинальные сообщения после копирования. Если этот флаг установлен, функция ведёт себя идентично функции imap_mail_move().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_mail_move() - Переместить указанные сообщения в указанный почтовый ящик


Переместить указанные сообщения в указанный почтовый ящик

  • « imap_mail_copy
  • imap_mail »
  • PHP Manual
  • Функции IMAP
  • Переместить указанные сообщения в указанный почтовый ящик

imap_mail_move

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mail_move — Переместить указанные сообщения в указанный почтовый ящик

Описание

imap_mail_move(
IMAP\Connection $imap,
string $message_nums,
string $mailbox,
int $flags = 0
): bool

Перемещает письма, заданные в message_nums в указанный почтовый ящик mailbox. Обратите внимание, что почтовые сообщения фактически копируются в mailbox, а исходные сообщения помечаются для удаления. Это означает, что сообщениям в mailbox назначаются новые UID.

Список параметров

imap

Экземпляр IMAP\Connection.

message_nums

message_nums - это диапазон, а не просто номера сообщений (как определено в » RFC2060).

mailbox

Имя почтового ящика. Более подробно читайте в разделе, посвящённом функции imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

flags

flags - битовая маска, которая может принимать всего одно значение:

  • CP_UID - означает, что в первом параметре не номера сообщений, а их UID

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примечания

Замечание:

Функция 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, PHP 8)

imap_mail — Отправить email

Описание

imap_mail(
string $to,
string $subject,
string $message,
?string $additional_headers = null,
?string $cc = null,
?string $bcc = null,
?string $return_path = null
): bool

Эта функция позволяет отправлять сообщения с корректной обработкой получателей Cc и Bcc.

Параметры to, cc и bcc - строки, которые будут разобраны в соответствии с » RFC822.

Список параметров

to

Получатель

subject

Тема письма

message

Тело письма, смотрите imap_mail_compose()

additional_headers

Строка с дополнительными заголовками

cc

bcc

Получатели bcc получат письмо, но не будут указаны в заголовках.

return_path

Используйте этот параметр для указания обратного адреса для отсылки отчёта в случае неудачной доставки. Это удобно, когда PHP используется как почтовый клиент несколькими пользователями.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | additional_headers, cc, bcc и return_path теперь допускают значение null.

Смотрите также

  • mail() - Отправляет электронную почту
  • imap_mail_compose() - Создать MIME-сообщение на основе заданных обёртки и тела


Получить информацию о текущем почтовом ящике

  • « imap_mail
  • imap_mime_header_decode »
  • PHP Manual
  • Функции IMAP
  • Получить информацию о текущем почтовом ящике

imap_mailboxmsginfo

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mailboxmsginfo — Получить информацию о текущем почтовом ящике

Описание

imap_mailboxmsginfo(IMAP\Connection $imap): stdClass

Проверяет статус текущего почтового ящика на сервере. Аналогично imap_status(), но дополнительно вычисляет суммарный размер всех писем в ящике, из-за чего работает несколько медленнее.

Список параметров

imap

Экземпляр IMAP\Connection.

Возвращаемые значения

Возвращает объект со следующими полями:

Свойства почтового ящика
Date | дата последнего изменения (текущие дата и время)
Driver | драйвер
Mailbox | имя почтового ящика
Nmsgs | количество писем
Recent | количество новых
Unread | количество непрочитанных
Deleted | количество удалённых
Size | размер ящика

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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, PHP 8)

imap_mime_header_decode — Декодировать элементы заголовка

Описание

imap_mime_header_decode(string $string): array|false

Декодирует MIME-расширения заголовка, не являющиеся текстом ASCII (смотри » RFC2047).

Список параметров

string

MIME-текст

Возвращаемые значения

Декодированные элементы возвращаются в массиве объектов, где каждый объект имеет два свойства, charset и text.

Если элемент не был декодирован, или, другими словами, он является текстом US-ASCII, свойство charset будет установлено в значение default.

Функция возвращает false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

imap_msgno — Получить номер сообщения с заданным UID

Описание

imap_msgno(IMAP\Connection $imap, int $message_uid): int

Возвращает номер сообщения для указанного message_uid.

Эта функция обратная к imap_uid().

Список параметров

imap

Экземпляр IMAP\Connection.

message_uid

UID сообщения

Возвращаемые значения

Возвращает номер сообщения для указанного message_uid.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • 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, PHP 8)

imap_mutf7_to_utf8 — Декодировать изменённую строку UTF-7 в UTF-8

Описание

imap_mutf7_to_utf8(string $string): string|false

Декодировать изменённую строку UTF-7 (в соответствии с RFC 2060, раздел 5.1.3) в UTF-8.

Замечание:

Эта функция доступна только в случае, если libcclient экспортирует utf8_to_mutf7().

Список параметров

string

Изменённая строка, закодированная в UTF-7.

Возвращаемые значения

Возвращает string, конвертированную в 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, PHP 8)

imap_num_msg — Получить количество сообщений в текущем почтовом ящике

Описание

imap_num_msg(IMAP\Connection $imap): int|false

Возвращает количество сообщений в текущем почтовом ящике.

Список параметров

imap

Экземпляр IMAP\Connection.

Возвращаемые значения

Возвращает количество сообщений в текущем почтовом ящике в виде целого числа. В случае возникновения ошибки возвращает false.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_num_recent() - Получить количество новых сообщений в текущем почтовом ящике
  • imap_status() - Получить информацию по статусу почтового ящика


Получить количество новых сообщений в текущем почтовом ящике

  • « imap_num_msg
  • imap_open »
  • PHP Manual
  • Функции IMAP
  • Получить количество новых сообщений в текущем почтовом ящике

imap_num_recent

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_num_recent — Получить количество новых сообщений в текущем почтовом ящике

Описание

imap_num_recent(IMAP\Connection $imap): int

Возвращает количество новых сообщений в текущем почтовом ящике.

Список параметров

imap

Экземпляр IMAP\Connection.

Возвращаемые значения

Возвращает количество новых сообщений в текущем почтовом ящике в виде целого числа.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_num_msg() - Получить количество сообщений в текущем почтовом ящике
  • imap_status() - Получить информацию по статусу почтового ящика


Открывает поток IMAP к почтовому ящику

  • « imap_num_recent
  • imap_ping »
  • PHP Manual
  • Функции IMAP
  • Открывает поток IMAP к почтовому ящику

imap_open

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_open — Открывает поток IMAP к почтовому ящику

Описание

imap_open(
string $mailbox,
string $user,
string $password,
int $flags = 0,
int $retries = 0,
array $options = []
): IMAP\Connection|false

Открывает поток 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)

user

Имя пользователя

password

Пароль пользователя user

flags

flags - битовая маска из одной или нескольких констант:

  • 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 - не производить безопасную аутентификацию

retries

Максимальное количество попыток соединения

options

Параметры для соединения. Для установки одного или нескольких параметров соединения можно использовать следующие (строки) ключи:

  • DISABLE_AUTHENTICATOR - запрещает свойства аутентификации

Возвращаемые значения

В случае успешного выполнения возвращает экземпляр IMAP\Connection или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр IMAP\Connection; ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

imap_ping — Проверить, активен ли ещё поток IMAP

Описание

imap_ping(IMAP\Connection $imap): bool

imap_ping() проверяет, активен ли ещё открытый поток. С помощью него можно узнавать, есть ли новая почта. Это предпочтительный метод проверять есть ли новые сообщения и аналог "keep alive" для серверов с настроенным временем ожидания неактивности.

Список параметров

imap

Экземпляр IMAP\Connection.

Возвращаемые значения

Возвращает true, если поток активен и false, если нет.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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, PHP 8)

imap_qprint — Преобразовать строку из формата "quoted-printable" в 8-битную строку

Описание

imap_qprint(string $string): string|false

Преобразует строку из формата "quoted-printable" в 8-битную строку в соответствии с » RFC2045, секция 6.7.

Список параметров

string

Строка в формате "quoted-printable"

Возвращаемые значения

Возвращает 8-битную строку или false в случае возникновения ошибки.

Смотрите также

  • imap_8bit() - Конвертирует 8-битную строку в строку в формате quoted-printable


Псевдоним imap_renamemailbox

  • « imap_qprint
  • imap_renamemailbox »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_renamemailbox

imap_rename

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_rename — Псевдоним imap_renamemailbox()

Описание

Функция является псевдонимом: imap_renamemailbox().


Переименовать почтовый ящик

  • « imap_rename
  • imap_reopen »
  • PHP Manual
  • Функции IMAP
  • Переименовать почтовый ящик

imap_renamemailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_renamemailbox — Переименовать почтовый ящик

Описание

imap_renamemailbox(IMAP\Connection $imap, string $from, string $to): bool

Эта функция переименовывает old_mbox в new_mbox (формат имени mbox смотрите в описании imap_open()).

Список параметров

imap

Экземпляр IMAP\Connection.

from

Старое имя. Более подробно читайте в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

to

Новое имя. Более подробно читайте в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_createmailbox() - Создать новый почтовый ящик
  • imap_deletemailbox() - Удалить почтовый ящик


Переоткрывает поток IMAP к новому ящику

  • « imap_renamemailbox
  • imap_rfc822_parse_adrlist »
  • PHP Manual
  • Функции IMAP
  • Переоткрывает поток IMAP к новому ящику

imap_reopen

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_reopen — Переоткрывает поток IMAP к новому ящику

Описание

imap_reopen(
IMAP\Connection $imap,
string $mailbox,
int $flags = 0,
int $retries = 0
): bool

Переоткрывает указанный поток к ящику mailbox на сервере IMAP или NNTP.

Список параметров

imap

Экземпляр IMAP\Connection.

mailbox

Имя почтового ящика. Более подробно читайте в разделе про функцию imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

flags

flags - битовая маска из одной или нескольких констант:

  • OP_READONLY - открыть почтовый ящик только для чтения
  • OP_ANONYMOUS - не использовать и не обновлять .newsrc для новостей (только NNTP)
  • OP_HALFOPEN - открыть соединение, но не подключаться к почтовому ящику для имён IMAP и NNTP.
  • OP_EXPUNGE - молча выполнить удаление помеченных для удаления сообщений в потоке
  • CL_EXPUNGE - автоматически удалять все помеченные для удаления сообщения при закрытии почтового ящика (смотрите imap_delete() и imap_expunge())

retries

Максимально количество попыток соединения

Возвращаемые значения

Возвращает true, если поток переоткрыт и false, если нет.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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, PHP 8)

imap_rfc822_parse_adrlist — Разбор адресной строки

Описание

imap_rfc822_parse_adrlist(string $string, string $default_hostname): array

Разбирает адресную строку в соответствии с » RFC2822 для каждого адреса.

Список параметров

string

Строка с адресами

default_hostname

Имя хоста по умолчанию

Возвращаемые значения

Возвращает массив объектов со следующими свойствами:

  • 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, PHP 8)

imap_rfc822_parse_headers — Разбор строки заголовка письма

Описание

imap_rfc822_parse_headers(string $headers, string $default_hostname = "UNKNOWN"): stdClass

Извлекает объект различных элементов заголовка, аналогично imap_header().

Список параметров

headers

Данные для разбора

default_hostname

Имя хоста по умолчанию

Возвращаемые значения

Возвращает объект, аналогичный возвращаемым функцией 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, PHP 8)

imap_rfc822_write_address — Получить корректно сформированный e-mail адрес, заданный именем ящика, хоста и персональной информацией

Описание

imap_rfc822_write_address(string $mailbox, string $hostname, string $personal): string|false

Возвращает почтовый адрес сформированный в соответствии с » RFC2822.

Список параметров

mailbox

Имя почтового ящика. Более подробно читайте в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

hostname

Часть e-mail, описывающая хост

personal

Имя владельца аккаунта

Возвращаемые значения

Возвращает строку содержащую почтовый адрес в сформированный в соответствии с » RFC2822 или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

imap_savebody — Сохранить часть тела сообщения в файл

Описание

imap_savebody(
IMAP\Connection $imap,
resource|string|int $file,
int $message_num,
string $section = "",
int $flags = 0
): bool

Записывает часть тела сообщения в файл.

Список параметров

imap

Экземпляр IMAP\Connection.

file

Путь к файлу в виде строки, либо открытый с помощью fopen() файловый дескриптор.

message_num

Номер сообщения

section

Номер секции сообщения. Строка целых чисел, разделённых точками, определяющая часть тела сообщения в соответствии со спецификацией IMAP4

flags

Битовая маска из одной или нескольких опций:

  • FT_UID - The message_num is a UID
  • FT_PEEK - Не устанавливать флаг \Seen, если он уже не установлен
  • FT_INTERNAL - возвращать строку во внутреннем формате, без преобразования концов строк к CRLF.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_fetchbody() - Извлечь конкретную секцию тела сообщения


Псевдоним imap_listscan

  • « imap_savebody
  • imap_scanmailbox »
  • PHP Manual
  • Функции IMAP
  • Псевдоним imap_listscan

imap_scan

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

imap_scanmailbox — Псевдоним imap_listscan()

Описание

Функция является псевдонимом: imap_listscan().


Получить сообщения, удовлетворяющие заданным критериям

  • « imap_scanmailbox
  • imap_set_quota »
  • PHP Manual
  • Функции IMAP
  • Получить сообщения, удовлетворяющие заданным критериям

imap_search

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_search — Получить сообщения, удовлетворяющие заданным критериям

Описание

imap_search(
IMAP\Connection $imap,
string $criteria,
int $flags = SE_FREE,
string $charset = ""
): array|false

Эта функция производит поиск в текущем почтовом ящике открытом в потоке IMAP.

К примеру, чтобы найти все неотвеченные сообщения посланные от мамы (Mom), нужно будет использовать "UNANSWERED FROM mom". Поиск регистронезависимый. Приведённый список критериев извлечён из исходных кодов UW c-client и может быть неполным или не совсем точным (дополнительно смотрите » RFC1176, секция "tag SEARCH search_criteria").

Список параметров

imap

Экземпляр IMAP\Connection.

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 - непрочитанные сообщения

flags

Корректные значения flags - это SE_UID, что приведёт к тому, что в возвращённом массиве вместо номеров сообщений будут содержаться их UID.

charset

Кодировка MIME, в которой будет происходить поиск.

Возвращаемые значения

Возвращает номера сообщений или их UID.

Возвращает false, если сообщения не найдены, либо критерии указанные в criteria некорректны.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #1 Пример использования imap_search()

<?php
$imap = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);

$some = imap_search($imap, 'SUBJECT "HOWTO be Awesome" SINCE "8 August 2008"', SE_UID);
$msgnos = imap_search($imap, 'ALL');
$uids = imap_search($imap, '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, PHP 8)

imap_set_quota — Установить квоту для заданного почтового ящика

Описание

imap_set_quota(IMAP\Connection $imap, string $quota_root, int $mailbox_size): bool

Устанавливает верхний предел квоты для заданного почтового ящика

Список параметров

imap

Экземпляр IMAP\Connection.

quota_root

Почтовый ящик, для которого устанавливается квота в виде строки в формате IMAP: user.name.

mailbox_size

Максимальный размер (в килобайтах) для quota_root

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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 должен быть открыт от имени администратора почтового сервера, иначе функция завершится с ошибкой.

Смотрите также

  • 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, PHP 8)

imap_setacl — Установка ACL для заданного почтового ящика

Описание

imap_setacl(
IMAP\Connection $imap,
string $mailbox,
string $user_id,
string $rights
): bool

Устанавливает ACL для заданного почтового ящика.

Список параметров

imap

Экземпляр IMAP\Connection.

mailbox

Имя почтового ящика, более подробно смотрите в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

user_id

Идентификатор пользователя, которому выдаются права.

rights

Права для выдачи. Передача пустой строки означает удаление всех прав.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примечания

В данный момент эта функция поддерживается только при использовании библиотеки c-client2000 или более новой версии.

Смотрите также

  • imap_getacl() - Получить ACL для заданного почтового ящика


Установить флаги на сообщения

  • « imap_setacl
  • imap_sort »
  • PHP Manual
  • Функции IMAP
  • Установить флаги на сообщения

imap_setflag_full

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_setflag_full — Установить флаги на сообщения

Описание

imap_setflag_full(
IMAP\Connection $imap,
string $sequence,
string $flag,
int $options = 0
): bool

Сообщает серверу, что надо добавить флаг flag к набору флагов, заданным в sequence сообщениям.

Список параметров

imap

Экземпляр IMAP\Connection.

sequence

Последовательность номеров сообщений.Вы можете перечислить несколько сообщений, используя как разделитель запятую (X,Y), или задать интервал сообщений с помощью двоеточия X:Y

flag

Флаги, которые можно установить: \Seen, \Answered, \Flagged, \Deleted и \Draft, как определено в » RFC2060.

options

Битовая маска, которая может принимать только одно значение:

  • ST_UID - последовательность сообщений задана не их номерами, а с помощью UID

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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, PHP 8)

imap_sort — Получить и отсортировать сообщения

Описание

imap_sort(
IMAP\Connection $imap,
int $criteria,
bool $reverse,
int $flags = 0,
?string $search_criteria = null,
?string $charset = null
): array|false

Получает и сортирует номера сообщений в соответствии с заданными параметрами.

Список параметров

imap

Экземпляр IMAP\Connection.

criteria

Одно (и только одно) из следующих значений:

  • SORTDATE - сортировать по дате
  • SORTARRIVAL - дата получения
  • SORTFROM - по первому адресу в поле From
  • SORTSUBJECT - по теме письма
  • SORTTO - по первому адресу в поле To
  • SORTCC - по первому адресу в поле cc
  • SORTSIZE - по размеру сообщения

reverse

Определяет сортировку в обратном порядке.

flags

Параметр flags задаётся битовой маской одной или нескольких констант:

  • SE_UID - возвращать UID, а не номера сообщений
  • SE_NOPREFETCH - не извлекать найденные сообщения

search_criteria

Строка с поисковым критерием в формате IMAP2. Подробнее смотрите в описании функции imap_search().

charset

Кодировка MIME для использования при сортировке строк.

Возвращаемые значения

Возвращает массив номеров сообщений, отсортированных в соответствии с заданными параметрами или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.
8.0.0 | reverse теперь является логическим типом (bool) вместо целого числа (int).
8.0.0 | search_criteria и charset теперь являются nullable.


Получить информацию по статусу почтового ящика

  • « imap_sort
  • imap_subscribe »
  • PHP Manual
  • Функции IMAP
  • Получить информацию по статусу почтового ящика

imap_status

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_status — Получить информацию по статусу почтового ящика

Описание

imap_status(IMAP\Connection $imap, string $mailbox, int $flags): stdClass|false

Возвращает информацию по статусу заданного ящика mailbox.

Список параметров

imap

Экземпляр IMAP\Connection.

mailbox

Имя почтового ящика, более подробно смотрите в описании imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

flags

Допустимые опции:

  • SA_MESSAGES - установить $status->messages, равным количеству писем в ящике
  • SA_RECENT - установить $status->recent, равным количеству новых писем
  • SA_UNSEEN - установить $status->unseen, равным количеству непрочитанных писем
  • SA_UIDNEXT - установить $status->uidnext равным следующему uid, который будет использован в ящике
  • SA_UIDVALIDITY - установить $status->uidvalidity в значение константы, которая меняется, когда UID для почтового ящика больше не могут быть действительным
  • SA_ALL - использовать все перечисленные опции

Возвращаемые значения

Функция возвращает объект, содержащий информацию по статусу или false в случае возникновения ошибки. Объект имеет следующие свойства: messages, recent, unseen, uidnext и uidvalidity.

flags также установлен, он содержит битовую маску которая может быть проверена с помощью перечисленных выше констант.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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, PHP 8)

imap_subscribe — Подписаться на почтовый ящик

Описание

imap_subscribe(IMAP\Connection $imap, string $mailbox): bool

Подписаться на новый почтовый ящик.

Список параметров

imap

Экземпляр IMAP\Connection.

mailbox

Имя почтового ящика. Более подробно читай в разделе про imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_unsubscribe() - Отписаться от почтового ящика


Получить дерево связанных сообщений

  • « imap_subscribe
  • imap_timeout »
  • PHP Manual
  • Функции IMAP
  • Получить дерево связанных сообщений

imap_thread

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imap_thread — Получить дерево связанных сообщений

Описание

imap_thread(IMAP\Connection $imap, int $flags = SE_FREE): array|false

Возвращает дерево связанных сообщений.

Список параметров

imap

Экземпляр IMAP\Connection.

flags

Возвращаемые значения

imap_thread() возвращает ассоциативный массив содержащий дерево сообщений, связанных с помощью REFERENCES, или false в случае возникновения ошибки.

Каждое сообщение в текущем почтовом ящике будет представлено как запись в дереве в результирующем массиве:

  • $thread["XX.num"] - номер текущего сообщения

  • $thread["XX.next"]

  • $thread["XX.branch"]

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примеры

Пример #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, PHP 8)

imap_timeout — Установить или получить время ожидания imap

Описание

imap_timeout(int $timeout_type, int $timeout = -1): int|bool

Устанавливает или получает время ожидания 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, PHP 8)

imap_uid — Получить UID по номеру сообщения

Описание

imap_uid(IMAP\Connection $imap, int $message_num): int|false

Эта функция возвращает UID для сообщения с заданным номером. UID - это уникальный идентификатор, который не меняется со временем, в то время как номер сообщения в ящике может меняться при изменении контента почтового ящика.

Эта функция обратная функции imap_msgno().

Список параметров

imap

Экземпляр IMAP\Connection.

message_num

Номер сообщения.

Возвращаемые значения

UID заданного письма.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Примечания

Замечание:

Эта функция не поддерживается для почтовых ящиков POP3.

Смотрите также

  • imap_msgno() - Получить номер сообщения с заданным UID


Снимает с сообщения метку удаления

  • « imap_uid
  • imap_unsubscribe »
  • PHP Manual
  • Функции IMAP
  • Снимает с сообщения метку удаления

imap_undelete

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_undelete — Снимает с сообщения метку удаления

Описание

imap_undelete(IMAP\Connection $imap, string $message_nums, int $flags = 0): bool

Удаляет с заданного сообщения метку удаления, которая была установлена с помощью imap_delete() или imap_mail_move().

Список параметров

imap

Экземпляр IMAP\Connection.

message_nums

Строка (string), состоящая из одного или нескольких сообщений в формате последовательности в стиле IMAP4 ("n", "n:m" или их комбинация, разделённая запятыми).

flags

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_delete() - Пометить сообщение для удаления
  • imap_mail_move() - Переместить указанные сообщения в указанный почтовый ящик


Отписаться от почтового ящика

  • « imap_undelete
  • imap_utf7_decode »
  • PHP Manual
  • Функции IMAP
  • Отписаться от почтового ящика

imap_unsubscribe

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_unsubscribe — Отписаться от почтового ящика

Описание

imap_unsubscribe(IMAP\Connection $imap, string $mailbox): bool

Отписаться от почтового ящика mailbox.

Список параметров

imap

Экземпляр IMAP\Connection.

mailbox

Имя почтового ящика. Более подробно смотрите в разделе про imap_open()

Внимание

Если imap.enable_insecure_rsh не отключён, то передача в этот параметр не проверенных данных не безопасна.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр imap теперь ожидает экземпляр IMAP\Connection; ранее ожидался ресурс (resource) imap.

Смотрите также

  • imap_subscribe() - Подписаться на почтовый ящик


Декодирует строку из модифицированной кодировки UTF-7

  • « imap_unsubscribe
  • imap_utf7_encode »
  • PHP Manual
  • Функции IMAP
  • Декодирует строку из модифицированной кодировки UTF-7

imap_utf7_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_utf7_decode — Декодирует строку из модифицированной кодировки UTF-7

Описание

imap_utf7_decode(string $string): string|false

Декодирует string из модифицированной кодировки UTF-7 в ISO-8859-1.

Это нужно для декодирования имён почтовых ящиков, содержащих в имени символы, не входящие в печатный диапазон ASCII.

Список параметров

string

Текст в модифицированной кодировке UTF-7, как определено в » RFC 2060, раздел 5.1.3.

Возвращаемые значения

Возвращает строку в кодировке ISO-8859-1, которая содержит ту же последовательность символов, что и string, или false, если string содержит некорректные символы или если string содержит символы не входящие в набор символов 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, PHP 8)

imap_utf7_encode — Преобразует строку ISO-8859-1 в модифицированную UTF-7

Описание

imap_utf7_encode(string $string): string

Преобразует string в текст в модифицированной кодировке UTF-7.

Это нужно для кодирования имён почтовых ящиков, содержащих в имени символы, не входящие в печатный диапазон ASCII.

Список параметров

string

Строка в кодировке ISO-8859-1.

Возвращаемые значения

Возвращает данные string кодированные в модифицированной кодировке UTF-7, как определено в » RFC 2060, раздел 5.1.3.

Смотрите также

  • 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, PHP 8)

imap_utf8_to_mutf7 — Кодировать строку UTF-8 в изменённую UTF-7

Описание

imap_utf8_to_mutf7(string $string): string|false

Кодировать строку UTF-8 в изменённую строку UTF-7 (в соответствии с RFC 2060, раздел 5.1.3).

Замечание:

Эта функция доступна только в случае, если libcclient экспортирует utf8_to_mutf7().

Список параметров

string

Закодированная в UTF-8 строка.

Возвращаемые значения

Возвращает string, конвертированную в изменённую UTF-7 или false в случае возникновения ошибки.

Смотрите также

  • imap_mutf7_to_utf8() - Декодировать изменённую строку UTF-7 в UTF-8


Преобразует MIME-кодированный текст в UTF-8

  • « imap_utf8_to_mutf7
  • IMAP\Connection »
  • PHP Manual
  • Функции IMAP
  • Преобразует MIME-кодированный текст в UTF-8

imap_utf8

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_utf8 — Преобразует MIME-кодированный текст в UTF-8

Описание

imap_utf8(string $mime_encoded_text): string

Преобразует заданный mime_encoded_text в UTF-8, если заявленная кодировка известна libc-client. В противном случае данный текст декодируется, но не преобразуется в UTF-8.

Список параметров

mime_encoded_text

MIME-кодированная строка. Метод кодирования MIME и спецификация UTF-8 описаны в » RFC2047 и » RFC2044 соответственно.

Возвращаемые значения

Возвращает декодированную строку, если возможно, преобразованную в UTF-8.

Примеры

Пример #1 Базовое использование imap_utf8()

<?php
echo imap_utf8("Johannes =?ISO-8859-1?Q?Schl=FCter?=");
?>

Результатом выполнения данного примера будет что-то подобное:

Johannes Schlu?ter

Смотрите также

  • imap_mime_header_decode() - Декодировать элементы заголовка


Класс IMAP\Connection

(PHP 8 >= 8.1.0)

Введение

Полностью непрозрачный класс, заменяющий ресурс imap в PHP 8.1.0.

Обзор классов

final class IMAP\Connection {
}


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 |
mail.log | NULL | PHP_INI_SYSTEM|PHP_INI_PERDIR |
mail.force_extra_parameters | NULL | 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:" в письмах, отправляемых напрямую через SMTP (только для 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

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

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, PHP 8)

mail — Отправляет электронную почту

Описание

mail(
string $to,
string $subject,
string $message,
array|string $additional_headers = [],
string $additional_params = ""
): 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 при отправке напрямую через SMTP (только Windows).

Замечание:

Если сообщения не отправляются, попробуйте использовать только LF (\n). Некоторые агенты пересылки сообщений Unix (особенно » qmail) автоматически заменяют LF на CRLF (что приводит к двойному CR, если использовалось CRLF). Используйте эту меру в крайнем случае, так как это нарушает » RFC 2822.

additional_params (необязательный)

Параметр additional_params может быть использован для передачи дополнительных флагов в виде аргументов командной строки для программы сконфигурированной для отправки писем, указанной директивой 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 может принимать значения типа массив.

Примеры

Пример #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_params может быть использован для передачи дополнительных параметров программе, используемой для отправки писем с помощью директивы 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';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';

// Дополнительные заголовки
$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.

Примечания

Замечание:

Реализация SMTP (только Windows) функции mail() в Windows во многом отличается от реализации в sendmail. Во-первых, она не использует локальную программу для составления писем, а работает непосредственно с сокетами, что означает что необходим почтовый агент (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 для использования этих функций. Бинарные файлы Windows (файлы DLL) для этого модуля PECL доступны на сайте PECL.

Необходимо, чтобы модуль mbstring был загружен перед использованием mailparse.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Mailparse
Имя | По умолчанию | Место изменения | Список изменений
mailparse.def_charset | "us-ascii" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mailparse.def_charset string

Набор символов по умолчанию.


Типы ресурсов

Mailparse определяет тип ресурса mailparse_mail_structure, который возвращается функциями mailparse_msg_create() и mailparse_msg_parse_file().


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

MAILPARSE_EXTRACT_OUTPUT (int)
MAILPARSE_EXTRACT_STREAM (int)
MAILPARSE_EXTRACT_RETURN (int)


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(): resource

Создаёт почтовый MIME-ресурс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает обработчик, который можно использовать для разбора сообщения.

Примечания

Замечание:

Рекомендуется вызывать mailparse_msg_free() для результата этой функции, когда он больше не нужен, чтобы избежать утечки памяти.

Смотрите также

  • 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

Путь к файлу. Файл будет открыт и пропущен через анализатор.

Замечание:

Сообщение, содержащееся в filename, должно заканчиваться новой строкой (CRLF); иначе последняя строка сообщения не будет проанализирована.

Возвращаемые значения

Возвращает MIME-ресурс, представляющий структуру, или false в случае возникновения ошибки.

Примечания

Замечание:

Рекомендуется вызывать mailparse_msg_free() для результата этой функции, когда он больше не нужен, чтобы избежать утечки памяти.

Смотрите также

  • 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

Замечание:

Сообщение, содержащееся в filename, должно заканчиваться новой строкой (CRLF); иначе последняя строка сообщения не будет проанализирована.

Возвращаемые значения

Возвращает 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
  • Математические модули »
  • 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


Математические модули

  • BC Math — Вычисления над числами с произвольной точностью BCMath
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции BC Math
  • GMP — Вычисления над целыми числами с произвольной точностью (GNU Multiple Precision)
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • GMP Функции
    • GMP — Класс GMP
  • Math — Математические функции
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Математические функции
  • Статистика
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции статистики
  • Trader — Технический анализ для трейдеров
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции Trader


Вычисления над числами с произвольной точностью BCMath

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции BC Math
    • bcadd — Сложить 2 числа произвольной точности
    • bccomp — Сравнение двух чисел произвольной точности
    • bcdiv — Операция деления для чисел произвольной точности
    • bcmod — Получает остаток от деления чисел с произвольной точностью
    • bcmul — Умножение двух чисел с произвольной точностью
    • bcpow — Возведение в степень чисел с произвольной точностью
    • bcpowmod — Возводит одно число в степень другого и возвращает остаток от деления результата на третье число
    • bcscale — Устанавливает или получает количество чисел после десятичной точки по умолчанию для всех функций bc math.
    • bcsqrt — Извлекает квадратный корень из числа с заданной точностью
    • bcsub — Вычитает одно число из другого с заданной точностью


Введение

Для вычислений с произвольной точностью PHP предоставляет BCMath, который поддерживает числа любого размера и точности, вплоть до 2147483647 (или 0x7FFFFFFF) десятичных знаков, если хватит памяти, представленных в виде строк.

Допустимые (также известные как правильно сформированные) числа BCMath - это строки, соответствующие регулярному выражению /^[+-]?[0-9]*(\.[0-9]*)?$/.

Предостережение

Передача в функции BCMath аргументов типа float, в то время как они ожидают строки могут привести к неожиданным результатам, из-за используемого PHP алгоритма преобразования float в string, например можно получить строку содержащую число в экспоненциальной нотации (который не поддерживается BCMath), или, до PHP 8.0.0, в зависимости от локали, десятичный разделитель в виде запятой (тогда как 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 int

Число десятичных цифр для всех 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, PHP 8)

bcadd — Сложить 2 числа произвольной точности

Описание

bcadd(string $num1, string $num2, ?int $scale = null): string

Складывает num1 с num2.

Список параметров

num1

Левый операнд (слагаемое) в виде строки.

num2

Правый операнд (слагаемое) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Сумма слагаемых в виде строки.

Список изменений

Версия | Описание
8.0.0 | scale теперь допускает значение null.

Примеры

Пример #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, PHP 8)

bccomp — Сравнение двух чисел произвольной точности

Описание

bccomp(string $num1, string $num2, ?int $scale = null): int

Сравнивает num1 с num2 и возвращает целочисленный результат.

Список параметров

num1

Левый операнд в виде строки.

num2

Правый операнд в виде строки.

scale

Необязательный аргумент scale задаёт количество цифр после десятичной точки, которое будет участвовать в сравнении.

Возвращаемые значения

Возвращает 0, если числа равны; 1, если left_operand больше, чем right_operand; -1, если меньше.

Список изменений

Версия | Описание
8.0.0 | scale теперь допускает значение null.

Примеры

Пример #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, PHP 8)

bcdiv — Операция деления для чисел произвольной точности

Описание

bcdiv(string $num1, string $num2, ?int $scale = null): string

Делит num1 на num2.

Список параметров

num1

Делимое в виде строки.

num2

Делитель в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает результат деления в виде строки или null, если divisor равен 0.

Список изменений

Версия | Описание
8.0.0 | scale теперь допускает значение null.

Примеры

Пример #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, PHP 8)

bcmod — Получает остаток от деления чисел с произвольной точностью

Описание

bcmod(string $num1, string $num2, ?int $scale = null): string

Получает остаток от деления num1 на num2. Если num2 не равен нулю, результат будет иметь такой же знак, что и num1.

Список параметров

num1

Делимое в виде строки.

num2

Правый операнд (модуль) в виде строки.

Возвращаемые значения

Возвращает остаток от деления в виде строки или null, если num2 равен 0.

Список изменений

Версия | Описание
8.0.0 | scale теперь допускает значение null.
7.2.0 | num1 и num2 больше не обрезаются до целого, так что теперь поведение 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, PHP 8)

bcmul — Умножение двух чисел с произвольной точностью

Описание

bcmul(string $num1, string $num2, ?int $scale = null): string

Умножает num1 на num2.

Список параметров

num1

Левый операнд (первый множитель) в виде строки.

num2

Правый операнд (второй множитель) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает результат в виде строки.

Список изменений

Версия | Описание
8.0.0 | scale теперь допускает значение null.
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, PHP 8)

bcpow — Возведение в степень чисел с произвольной точностью

Описание

bcpow(string $num, string $exponent, ?int $scale = null): string

Возводит num в степень exponent.

Список параметров

num

Основание в виде строки.

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, PHP 8)

bcpowmod — Возводит одно число в степень другого и возвращает остаток от деления результата на третье число

Описание

bcpowmod(
string $num,
string $exponent,
string $modulus,
?int $scale = null
): string

Используйте метод быстрого возведения числа num в степень exponent и получения остатка от деления на modulus.

Список параметров

num

Основание степени в виде строки, содержащее целое число.

exponent

Показатель степени в виде строки, содержащее неотрицательное целое число.

modulus

Модуль в виде строки, содержащий целое число.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает результат в виде строки или false, если modulus равен 0 или exponent отрицательна.

Список изменений

Версия | Описание
8.0.0 | scale теперь допускает значение null.

Примеры

Следующие выражения дают одинаковый результат. Однако функция 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, PHP 8)

bcscale — Устанавливает или получает количество чисел после десятичной точки по умолчанию для всех функций bc math.

Описание

bcscale(int $scale): int

Задаёт количество чисел после десятичной точки по умолчанию для функций bc math, которые не могут явно получить это число в виде аргумента.

bcscale(null $scale = null): int

Получает текущий масштаб.

Список параметров

scale

Масштаб, число знаков после запятой.

Возвращаемые значения

Возвращает старый масштаб, если используется как сеттер. В противном случае возвращает текущий масштаб.

Список изменений

Версия | Описание
8.0.0 | scale is now nullable.
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, PHP 8)

bcsqrt — Извлекает квадратный корень из числа с заданной точностью

Описание

bcsqrt(string $num, ?int $scale = null): string

Возвращает квадратный корень из num.

Список параметров

num

Операнд (подкоренное выражение) в виде корректно сформированной числовой строки BCMath.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает квадратный корень в виде корректно сформированной числовой строки BCMath.

Ошибки

Функция выбрасывает исключение ValueError в следующих случаях:

  • если num не является корректно сформированной числовой строкой BCMath
  • если num меньше, чем 0
  • если scale находится вне допустимого диапазона

Список изменений

Версия | Описание
8.0.0 | Если параметр num не является корректно сформированной числовой строкой BCMath или меньше 0, выбрасывается исключение ValueError; ранее вместо этого выдавалась ошибка уровня E_WARNING.
8.0.0 | Параметр scale теперь должен быть между 0 и 2147483647; ранее отрицательные значения воспринимались как 0.
8.0.0 | scale теперь допускает значение null.

Примеры

Пример #1 Пример использования bcsqrt()

<?php

echo bcsqrt('2', 3); // 1.414

?>

Смотрите также

  • bcpow() - Возведение в степень чисел с произвольной точностью


Вычитает одно число из другого с заданной точностью

  • « bcsqrt
  • GMP »
  • PHP Manual
  • Функции BC Math
  • Вычитает одно число из другого с заданной точностью

bcsub

(PHP 4, PHP 5, PHP 7, PHP 8)

bcsub — Вычитает одно число из другого с заданной точностью

Описание

bcsub(string $num1, string $num2, ?int $scale = null): string

Вычитает число num2 из num1.

Список параметров

num1

Левый операнд (уменьшаемое) в виде строки.

num2

Правый операнд (вычитаемое) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Разность в виде строки.

Список изменений

Версия | Описание
8.0.0 | scale теперь допускает значение null.

Примеры

Пример #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 — Random number
    • gmp_random_range — Get a uniformly selected integer
    • 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
    • GMP::__construct — Create GMP number
    • GMP::__serialize — Сериализует объект GMP
    • GMP::__unserialize — Десериализует параметр data в объект GMP


Введение

Эти функции позволяют работать с целыми числами произвольной длины, используя GNU MP библиотеку.

Замечание:

Большинство GMP функций принимают GMP числа в виде аргументов. Они представлены в документации как объекты класса GMP. Большинство этих функций также допускают числовые и строковые аргументы, если есть возможность преобразовать последние в числа. Также, если существует более быстрая функция, которая может работать с переданными аргументами (актуально только для целых чисел), то будет использована именно она, прозрачно для пользователя. Смотрите также функцию gmp_init().

Замечание:

С версии PHP 5.6 и новее, вы можете использовать арифметические, побитовые и операторы сравнения с объектами GMP, возвращаемыми gmp_init() и другими GMP функциями.

Внимание

Если требуется явно задать большое целое число, задавайте его строкой, иначе PHP приведёт его к типу float и в результате потеряется точность.

Замечание: Модуль доступен на Windows платформах.


Требования

Библиотеку GMP можно загрузить тут » http://gmplib.org/#DOWNLOAD. На этом сайте также есть руководство по GMP.

Как минимум требуется GMP версии 4.2, при этом, некоторые функции требуют более поздней версии библиотеки GMP.

В Windows требуется MPIR вместо GMP.


Установка

Чтобы эти функции были доступны, необходимо во время компиляции PHP включить поддержку GMP с помощью настройки --with-gmp.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

GMP_ROUND_ZERO (int)
GMP_ROUND_PLUSINF (int)
GMP_ROUND_MINUSINF (int)
GMP_MSW_FIRST (int)
GMP_LSW_FIRST (int)
GMP_LITTLE_ENDIAN (int)
GMP_BIG_ENDIAN (int)
GMP_NATIVE_ENDIAN (int)
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 — Random number
  • gmp_random_range — Get a uniformly selected integer
  • 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, PHP 8)

gmp_abs — Абсолютная величина

Описание

gmp_abs(GMP|int|string $num): GMP

Получение абсолютной величины числа.

Список параметров

num

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Возвращает абсолютную величину аргумента num, в виде 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, PHP 8)

gmp_add — Сложение чисел

Описание

gmp_add(GMP|int|string $num1, GMP|int|string $num2): GMP

Складывает два числа.

Список параметров

num1

Первое слагаемое.

Объект GMP, целое число (int) или числовая строка (string).

num2

Второе слагаемое.

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Сумма аргументов в виде 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, PHP 8)

gmp_and — Побитовое И

Описание

gmp_and(GMP|int|string $num1, GMP|int|string $num2): GMP

Вычисляет побитовое И двух GMP чисел.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Результат побитового И в виде 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, PHP 8)

gmp_binomial — Вычисляет биномиальный коэффициент

Описание

gmp_binomial(GMP|int|string $n, int $k): GMP

Вычисляет биномиальный коэффициент C(n, k).

Список параметров

n

Объект GMP, целое число (int) или числовая строка (string).

k

Возвращаемые значения

Возвращает биномиальный коэффициент C(n, k).

Ошибки

Выбрасывает ValueError, если k отрицателен. До PHP 8.0.0, выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает false в случае возникновения ошибки.


Сброс бита

  • « gmp_binomial
  • gmp_cmp »
  • PHP Manual
  • GMP Функции
  • Сброс бита

gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_clrbit — Сброс бита

Описание

gmp_clrbit(GMP $num, int $index): void

Сбрасывает (устанавливает в 0) бит на позиции index аргумента num. Индексация начинается с 0.

Список параметров

num

Объект GMP.

index

Индекс очищаемого бита. Индекс 0 указывает на младший бит.

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #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, PHP 8)

gmp_cmp — Сравнение чисел

Описание

gmp_cmp(GMP|int|string $num1, GMP|int|string $num2): int

Сравнивает два числа.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Возвращает положительное значение, если 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, PHP 8)

gmp_com — Вычисляет дополнение до единицы числа

Описание

gmp_com(GMP|int|string $num): GMP

Возвращает дополнение до единицы числа num.

Список параметров

num

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Возвращает дополнение до единицы числа num в виде числа 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, PHP 8)

gmp_div_q — Деление чисел

Описание

gmp_div_q(GMP|int|string $num1, GMP|int|string $num2, int $rounding_mode = GMP_ROUND_ZERO): GMP

Делит num1 на num2 и возвращает целочисленный результат.

Список параметров

num1

Делимое.

Объект GMP, целое число (int) или числовая строка (string).

num2

Делитель числа num1.

Объект GMP, целое число (int) или числовая строка (string).

rounding_mode

Округление результата определяется параметром rounding_mode, который может принимать следующие значения:

  • GMP_ROUND_ZERO: Дробная часть просто отрезается.
  • GMP_ROUND_PLUSINF: Результат округляется до ближайшего целого в сторону +бесконечности.
  • GMP_ROUND_MINUSINF: Результат округляется до ближайшего целого в сторону -бесконечности.

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #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, PHP 8)

gmp_div_qr — Деление чисел и получение частного и остатка

Описание

gmp_div_qr(GMP|int|string $num1, GMP|int|string $num2, int $rounding_mode = GMP_ROUND_ZERO): array

Функция делит num1 на num2.

Список параметров

num1

Делимое.

Объект GMP, целое число (int) или числовая строка (string).

num2

Делитель числа num1.

Объект GMP, целое число (int) или числовая строка (string).

rounding_mode

В документации к функции gmp_div_q() приведено описание аргумента rounding_mode.

Возвращаемые значения

Возвращает массив (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, PHP 8)

gmp_div_r — Остаток от деления чисел

Описание

gmp_div_r(GMP|int|string $num1, GMP|int|string $num2, int $rounding_mode = GMP_ROUND_ZERO): GMP

Вычисляет остаток от деления нацело числа num1 на num2. Если число num1 отлично от нуля, результат будет иметь знак этого числа.

Список параметров

num1

Делимое.

Объект GMP, целое число (int) или числовая строка (string).

num2

Делитель числа num1.

Объект GMP, целое число (int) или числовая строка (string).

rounding_mode

В документации к функции gmp_div_q() приведено описание аргумента rounding_mode.

Возвращаемые значения

Остаток в виде 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, PHP 8)

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, PHP 8)

gmp_divexact — Делит числа без остатка

Описание

gmp_divexact(GMP|int|string $num1, GMP|int|string $num2): GMP

Делит число num1 на num2, используя быстрый алгоритм деления без остатка. Функция выдаёт корректный результат, только если заведомо известно, что число num2 делит num1 нацело.

Список параметров

num1

Делимое.

Объект GMP, целое число (int) или числовая строка (string).

num2

Делитель числа num1.

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #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, PHP 8)

gmp_export — Экспортировать в бинарную строку

Описание

gmp_export(GMP|int|string $num, int $word_size = 1, int $flags = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN): string

Экспортирует GMP-число в бинарную строку

Список параметров

num

GMP-число для экспорта

word_size

По умолчанию равно 1. Количество байт в каждом блоке бинарных данных. Обычно используется совместно с заданием параметра options.

flags

По умолчанию GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Возвращаемые значения

Возвращает строку.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает 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, PHP 8)

gmp_fact — Факториал

Описание

gmp_fact(GMP|int|string $num): GMP

Вычисляет факториал (num!) числа num.

Список параметров

num

Число, факториал которого вычисляется.

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #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, PHP 8)

gmp_gcd — Вычисление наибольшего общего делителя

Описание

gmp_gcd(GMP|int|string $num1, GMP|int|string $num2): GMP

Вычисляет наибольший общий делитель чисел num1 и num2. Результат всегда положителен, даже если одно из чисел, или оба, отрицательные.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Положительный НОД чисел num1 и num2.

Примеры

Пример #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, PHP 8)

gmp_gcdext — Вычисление НОД и множителей

Описание

gmp_gcdext(GMP|int|string $num1, GMP|int|string $num2): array

Вычисляет величины g, s и t, в выражении a*s + b*t = g = gcd(a,b), где gcd - наибольший общий делитель. Возвращает массив, значения которого соответствуют значениям величин g, s и t.

Эта функция может использоваться для решения Диофантовых уравнений с двумя переменными. Это такие уравнения, которые имеют только целочисленные решения и имеют вид: a*x + b*y = c. За дополнительной информацией обращайтесь на » страницу "Диофантово уравнение" в MathWorld

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Массив (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, PHP 8)

gmp_hamdist — Расстояние Хэмминга

Описание

gmp_hamdist(GMP|int|string $num1, GMP|int|string $num2): int

Возвращает расстояние Хэмминга для чисел num1 и num2. Оба операнда должны быть неотрицательными.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

Должно быть неотрицательным.

num2

Объект GMP, целое число (int) или числовая строка (string).

Должно быть неотрицательным.

Возвращаемые значения

Расстояние Хэмминга между num1 и num2 в виде целого числа (int).

Примеры

Пример #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, PHP 8)

gmp_import — Импортировать из бинарной строки

Описание

gmp_import(string $data, int $word_size = 1, int $flags = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN): GMP

Импортирует GMP-число из бинарной строки

Список параметров

data

Бинарная строка для импорта

word_size

По умолчанию равно 1. Количество байт в каждом блоке бинарных данных. Обычно используется совместно с заданием параметра options.

flags

По умолчанию GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Возвращаемые значения

Возвращает GMP-число.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает 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, PHP 8)

gmp_init — Создание GMP числа

Описание

gmp_init(int|string $num, int $base = 0): GMP

Создаёт GMP число из целого числа или строки.

Список параметров

num

Целое число или строка. Число, заданное строкой может быть десятичным, шестнадцатеричным или восьмеричным.

base

Основание системы счисления.

Основание может варьироваться от 2 до 62. Если основание 0 (по умолчанию), основание будет определено, исходя из первых символов: если первые два символа 0x или 0X, число будет интерпретировано как шестнадцатеричное, если первые два символа - 0b or 0B, предполагается двоичный, если первый символ "0", то как восьмеричное, в остальных случаях числа будут восприниматься как десятичные. Для оснований до 36 регистр игнорируется; буквы верхнего и нижнего регистра имеют одинаковое значение. Для оснований от 37 до 62 заглавные буквы представляют обычные от 10 до 35, а строчные буквы - от 36 до 61.

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #1 Создание GMP числа

<?php
$a = gmp_init(123456);
$b = gmp_init("0xFFFFDEBACDFEDF7200");
?>

Примечания

Замечание:

Нет необходимости явно вызывать эту функцию, если требуется вставить целое число или строку на место GMP числа в GMP функциях, как например gmp_add(). Аргументы функций автоматически преобразуются в GMP числа, если такое преобразование требуется и оно возможно, по тем же правилам, что и в gmp_init().

Смотрите также

  • GMP::__construct() - Create GMP number


Преобразование числа GMP в целое число

  • « gmp_init
  • gmp_invert »
  • PHP Manual
  • GMP Функции
  • Преобразование числа GMP в целое число

gmp_intval

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_intval — Преобразование числа GMP в целое число

Описание

gmp_intval(GMP|int|string $num): int

Функция преобразует число GMP в обычное целое число PHP (int).

Список параметров

num

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Целое число типа int преобразованное из num.

Примеры

Пример #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, PHP 8)

gmp_invert — Инверсия остатка от деления

Описание

gmp_invert(GMP|int|string $num1, GMP|int|string $num2): GMP|false

Вычисляет инверсию остатка от деления числа num1 на число num2.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

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, PHP 8)

gmp_jacobi — Символ Якоби

Описание

gmp_jacobi(GMP|int|string $num1, GMP|int|string $num2): int

Вычисляет » Символ Якоби для чисел num1 и num2. num2 должно быть положительным и нечётным.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Объект GMP, целое число (int) или числовая строка (string).

Должно быть положительным и нечётным.

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #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, PHP 8)

gmp_kronecker — Символ Кронекера — Якоби

Описание

gmp_kronecker(GMP|int|string $num1, GMP|int|string $num2): int

Производит вычисление символа Кронекера — Якоби для num1 и num2.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Возвращает символ Кронекера — Якоби для num1 и num2

Смотрите также

  • gmp_jacobi() - Символ Якоби
  • gmp_legendre() - Символ Лежандра


Вычисляет наименьшее общее кратное

  • « gmp_kronecker
  • gmp_legendre »
  • PHP Manual
  • GMP Функции
  • Вычисляет наименьшее общее кратное

gmp_lcm

(PHP 7 >= 7.3.0, PHP 8)

gmp_lcm — Вычисляет наименьшее общее кратное

Описание

gmp_lcm(GMP|int|string $num1, GMP|int|string $num2): GMP

Функция вычисляет наименьшее общее кратное для заданных num1 и num2.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Объект класса GMP.

Смотрите также

  • gmp_gcd() - Вычисление наибольшего общего делителя


Символ Лежандра

  • « gmp_lcm
  • gmp_mod »
  • PHP Manual
  • GMP Функции
  • Символ Лежандра

gmp_legendre

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_legendre — Символ Лежандра

Описание

gmp_legendre(GMP|int|string $num1, GMP|int|string $num2): int

Вычисляет » символ Лежандра чисел num1 и num2. num2 должно быть нечётным и положительным.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Объект GMP, целое число (int) или числовая строка (string).

Должно быть положительным и нечётным.

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #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, PHP 8)

gmp_mod — Вычисление остатка от целочисленного деления

Описание

gmp_mod(GMP|int|string $num1, GMP|int|string $num2): GMP

Вычисляет остаток от деления числа num1 на num2. Результат всегда неотрицательный, знак числа num2 игнорируется.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Делитель (модуль).

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #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, PHP 8)

gmp_mul — Умножение чисел

Описание

gmp_mul(GMP|int|string $num1, GMP|int|string $num2): GMP

Умножает число num1 на num2 и возвращает результат.

Список параметров

num1

Первый множитель, число умножаемое на num2.

Объект GMP, целое число (int) или числовая строка (string).

num2

Второй множитель, число умножаемое на num1.

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #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, PHP 8)

gmp_neg — Изменение знака числа

Описание

gmp_neg(GMP|int|string $num): GMP

Возвращает противоположное относительно нуля число.

Список параметров

num

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Возвращает -num в виде 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, PHP 8)

gmp_nextprime — Поиск следующего простого числа

Описание

gmp_nextprime(GMP|int|string $num): GMP

Ищет следующее простое число

Список параметров

num

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Возвращает следующее простое число, большее, чем num в виде 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, PHP 8)

gmp_or — Побитовое ИЛИ

Описание

gmp_or(GMP|int|string $num1, GMP|int|string $num2): GMP

Вычисляет побитовое ИЛИ двух GMP чисел.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #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, PHP 8)

gmp_perfect_power — Проверить, является ли число "совершенной степенью"

Описание

gmp_perfect_power(GMP|int|string $num): bool

Проверяет, является ли num совершенной степенью. Целое число является совершенной степенью, если его можно получить возведением меньшего целого числа в целую степень.

Список параметров

num

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Возвращает true, если num является совершенной степенью. В противном случае возвращает false.

Смотрите также

  • gmp_perfect_square() - Проверка числа на точный квадрат


Проверка числа на точный квадрат

  • « gmp_perfect_power
  • gmp_popcount »
  • PHP Manual
  • GMP Функции
  • Проверка числа на точный квадрат

gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_perfect_square — Проверка числа на точный квадрат

Описание

gmp_perfect_square(GMP|int|string $num): bool

Проверяет, является ли число точным квадратом, т.е. квадратом целого числа.

Список параметров

num

Проверяемое на точный квадрат число.

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Возвращает true, если num является квадратом целого числа, в противном случае возвращает 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, PHP 8)

gmp_popcount — Количество единиц в двоичной записи числа

Описание

gmp_popcount(GMP|int|string $num): int

Возвращает количество единиц в двоичной записи числа.

Список параметров

num

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Количество единиц в двоичной записи числа num, в виде числа (int).

Примеры

Пример #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, PHP 8)

gmp_pow — Возводит число в степень

Описание

gmp_pow(GMP|int|string $num, int $exponent): GMP

Возводит число num в степень exponent.

Список параметров

num

Основание степени.

Объект GMP, целое число (int) или числовая строка (string).

exponent

Положительный показатель степени числа num.

Возвращаемые значения

Новое (результирующее) 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, PHP 8)

gmp_powm — Возводит число в степень и производит деление по модулю

Описание

gmp_powm(GMP|int|string $num, GMP|int|string $exponent, GMP|int|string $modulus): GMP

Вычисляет (num возводится в степень exponent) остаток от целочисленного деления на modulus. Если exponent отрицателен, результат не определён.

Список параметров

num

Основание степени.

Объект GMP, целое число (int) или числовая строка (string).

exponent

Положительный показатель степени, в которую возводится num.

Объект GMP, целое число (int) или числовая строка (string).

modulus

Делитель, остаток от целочисленного деления на который будет возвращён.

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Новое 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, PHP 8)

gmp_prob_prime — Проверяет, является ли число "вероятно простым"

Описание

gmp_prob_prime(GMP|int|string $num, int $repetitions = 10): int

Функция использует тест Миллера-Рабина для определения, является ли число простым.

Список параметров

num

Число, для которого проводится проверка.

Объект GMP, целое число (int) или числовая строка (string).

repetitions

Допустимые значения аргумента repetitions лежат в диапазоне от 5 до 10 (по умолчанию 10); чем больше это число, тем меньше вероятность, что непростые числа пройдут этот тест и определятся, как "возможно простые".

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Если функция возвращает 0, num точно не является простым. Если возвращает 1, то num "возможно" простое. Если возвращает 2, то num точно простое.

Примеры

Пример #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


Random number

  • « gmp_prob_prime
  • gmp_random_range »
  • PHP Manual
  • GMP Функции
  • Random number

gmp_random_bits

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

gmp_random_bits — Random number

Описание

gmp_random_bits(int $bits): GMP

Generate a random number. The number will be between 0 and 2$bits - 1.

bits must greater than 0, and the maximum value is restricted by available memory.

Предостережение

Функция не создаёт криптографически защищённые значения и не должна использоваться для криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для разгадывания.

Если требуется криптографически безопасная случайная последовательность, Random\Randomizer может использоваться с движком Random\Engine\Secure. Для простых случаев использования функции random_int() и random_bytes() предоставляют удобный и безопасный API, поддерживаемый CSPRNG операционной системы.

Список параметров

bits

The number of bits to generate.

Возвращаемые значения

A random GMP number.

Ошибки

If bits is less than 1, a ValueError will be thrown.

Примеры

Пример #1 gmp_random_bits() example

<?php
$rand1 = gmp_random_bits(3); // random number from 0 to 7
$rand2 = gmp_random_bits(5); // random number from 0 to 31

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

Результат выполнения данного примера:

3
15


Get a uniformly selected integer

  • « gmp_random_bits
  • gmp_random_seed »
  • PHP Manual
  • GMP Функции
  • Get a uniformly selected integer

gmp_random_range

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

gmp_random_range — Get a uniformly selected integer

Описание

gmp_random_range(GMP|int|string $min, GMP|int|string $max): GMP

Generate a random number. The number will be between min and max.

min and max can both be negative, but min must always be less than max.

Предостережение

Функция не создаёт криптографически защищённые значения и не должна использоваться для криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для разгадывания.

Если требуется криптографически безопасная случайная последовательность, Random\Randomizer может использоваться с движком Random\Engine\Secure. Для простых случаев использования функции random_int() и random_bytes() предоставляют удобный и безопасный API, поддерживаемый CSPRNG операционной системы.

Список параметров

min

A GMP number representing the lower bound for the random number

max

A GMP number representing the upper bound for the random number

Возвращаемые значения

Returns a GMP object which contains a uniformly selected integer from the closed interval [min, max]. Both min and max are possible return values.

Ошибки

If max is less than min, a ValueError will be thrown.

Примеры

Пример #1 gmp_random_range() example

<?php
$rand1 = gmp_random_range(0, 100); // random number between 0 and 100
$rand2 = gmp_random_range(-100, -10); // random number between -100 and -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, PHP 8)

gmp_random_seed — Установить начальное состояние RNG

Описание

gmp_random_seed(GMP|int|string $seed): void

Список параметров

seed

Начальное состояние для функций gmp_random(),
gmp_random_bits() и
gmp_random_range().

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает ValueError, если параметр seed указан некорректно.

Список изменений

Версия | Описание
8.0.0 | Если параметр seed указан некорректно, функция gmp_random_seed() теперь выбрасывает ValueError; ранее выдавалась ошибка уровня E_WARNING и возвращалось значение false.

Примеры

Пример #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() - Random number
  • gmp_random_range() - Get a uniformly selected integer


Случайное число

  • « 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 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

gmp_random(int $limiter = 20): GMP

Генерирует случайное число. Число будет лежать в пределах от нуля до (2 ** n) - 1, где n - это число, представляющее из себя произведение числа limiter и количества бит в лимбе (limb). Если число limiter отрицательное, то будет возвращён отрицательный результат.

Лимб (дословно конечность) - внутренний GMP механизм. Технически это часть числа, помещающаяся в одно машинное слово. Количество бит в нем может различаться в разных системах. В основном это либо 32, либо 64, но это не гарантируется.

Предостережение

Функция не создаёт криптографически защищённые значения и не должна использоваться для криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для разгадывания.

Если требуется криптографически безопасная случайная последовательность, Random\Randomizer может использоваться с движком Random\Engine\Secure. Для простых случаев использования функции random_int() и random_bytes() предоставляют удобный и безопасный API, поддерживаемый CSPRNG операционной системы.

Список параметров

limiter

Ограничитель.

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Случайное 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, PHP 8)

gmp_root — Извлечь корень степени N и вернуть его целую часть

Описание

gmp_root(GMP|int|string $num, int $nth): GMP

Извлекает корень степени nth из num и возвращает целочисленную часть результата.

Список параметров

num

Объект GMP, целое число (int) или числовая строка (string).

nth

Положительное число степени корня num.

Возвращаемые значения

Целочисленную часть результата извлечения корня в виде GMP-числа.


Извлечь корень степени N и вернуть его целую часть и остаток

  • « gmp_root
  • gmp_scan0 »
  • PHP Manual
  • GMP Функции
  • Извлечь корень степени N и вернуть его целую часть и остаток

gmp_rootrem

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

gmp_rootrem — Извлечь корень степени N и вернуть его целую часть и остаток

Описание

gmp_rootrem(GMP|int|string $num, int $nth): array

Извлекает корень степени nth из num, возвращает его целую часть и остаток (остаток вычисляется путём вычитания из первоначального числа целочисленного результата в степени nth).

Список параметров

num

Объект GMP, целое число (int) или числовая строка (string).

nth

Положительное число степени корня num.

Возвращаемые значения

Массив с двумя элементами, первый из которых равен целочисленной компоненте результата, а второй остатку. Оба элемента возвращаются в виде GMP-чисел.


Поиск нуля в числе

  • « gmp_rootrem
  • gmp_scan1 »
  • PHP Manual
  • GMP Функции
  • Поиск нуля в числе

gmp_scan0

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_scan0 — Поиск нуля в числе

Описание

gmp_scan0(GMP|int|string $num1, int $start): int

Сканирует num1, начиная с бита start, пока не найдёт бит установленный в 0.

Список параметров

num1

Число для сканирования.

Объект GMP, целое число (int) или числовая строка (string).

start

Бит начала сканирования.

Возвращаемые значения

Возвращает индекс найденного бита в виде числа (int). Индексация начинается с нуля.

Примеры

Пример #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, PHP 8)

gmp_scan1 — Поиск единицы в числе

Описание

gmp_scan1(GMP|int|string $num1, int $start): int

Сканирует num1, начиная с бита start, пока не найдёт бит установленный в 1.

Список параметров

num1

Сканируемое число.

Объект GMP, целое число (int) или числовая строка (string).

start

Бит начала поиска.

Возвращаемые значения

Возвращает индекс найденного бита в виде числа (int). Если таких нет, будет возвращено -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, PHP 8)

gmp_setbit — Установка бита

Описание

gmp_setbit(GMP $num, int $index, bool $value = true): void

Устанавливает в 1 бит с индексом index в числе num.

Список параметров

num

Объект GMP.

index

Индекс устанавливаемого бита. Индекс 0 указывает на младший бит.

value

True для установки бита (установки в 1/включён); false для его очистки (установки в 0/выключен).

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #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, PHP 8)

gmp_sign — Знак числа

Описание

gmp_sign(GMP|int|string $num): int

Проверяет знак числа.

Список параметров

num

Объект GMP, либо строка, содержащая число, которую можно преобразовать к типу int.

Возвращаемые значения

Возвращает 1, если num положительное; -1, если num отрицательное; и 0, если num равно нулю.

Примеры

Пример #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, PHP 8)

gmp_sqrt — Вычисление квадратного корня

Описание

gmp_sqrt(GMP|int|string $num): GMP

Вычисляет квадратный корень числа num.

Список параметров

num

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Целая часть корня в виде 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, PHP 8)

gmp_sqrtrem — Квадратный корень с остатком

Описание

gmp_sqrtrem(GMP|int|string $num): array

Вычисляет квадратный корень числа, с остатком.

Список параметров

num

Число, из которого извлекается корень.

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Возвращает массив, в котором первый элемент - целая часть корня из числа num, а второй - остаток (т.е. разность чисел num и квадрата первого элемента массива).

Примеры

Пример #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, PHP 8)

gmp_strval — Преобразование GMP числа в строку

Описание

gmp_strval(GMP|int|string $num, int $base = 10): string

Преобразует GMP число в строку в системе счисления base. По умолчанию числа преобразуются в десятеричной системе счисления.

Список параметров

num

GMP число для конвертации.

Объект GMP, целое число (int) или числовая строка (string).

base

Система счисления возвращаемого числа. По умолчанию - 10. Возможные значения: от 2 до 62 и от -2 до -36.

Возвращаемые значения

Число в виде строки (string).

Примеры

Пример #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, PHP 8)

gmp_sub — Вычитание чисел

Описание

gmp_sub(GMP|int|string $num1, GMP|int|string $num2): GMP

Вычитает число num2 из числа num1 и возвращает результат.

Список параметров

num1

Уменьшаемое.

Объект GMP, целое число (int) или числовая строка (string).

num2

Вычитаемое из числа num1.

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #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, PHP 8)

gmp_testbit — Проверка, установлен ли бит в 1

Описание

gmp_testbit(GMP|int|string $num, int $index): bool

Проверяет, установлен ли заданный бит в 1.

Список параметров

num

Объект GMP, целое число (int) или числовая строка (string).

index

Проверяемый бит

Возвращаемые значения

Возвращает true, если бит установлен в num, иначе 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, PHP 8)

gmp_xor — Побитовое исключающее ИЛИ

Описание

gmp_xor(GMP|int|string $num1, GMP|int|string $num2): GMP

Вычисляет побитовое исключающее ИЛИ (XOR) двух GMP чисел.

Список параметров

num1

Объект GMP, целое число (int) или числовая строка (string).

num2

Объект GMP, целое число (int) или числовая строка (string).

Возвращаемые значения

Объект класса GMP.

Примеры

Пример #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, PHP 8)

Введение

Номер GMP. Эти объекты поддерживают перегрузку следующих операторов: арифметических, побитовых и сравнения.

Замечание:

Нет объектно-ориентированного интерфейса для управления объектами GMP. Для управления такими объектами рекомендованно использовать процедурный GMP API.

class GMP {
/* Методы */
public __construct(int|string $num = 0, int $base = 0)
public __serialize(): array
public __unserialize(array $data): void
}

Содержание

  • GMP::__construct — Create GMP number
  • GMP::__serialize — Сериализует объект GMP
  • GMP::__unserialize — Десериализует параметр data в объект GMP


Create GMP number

  • « GMP
  • GMP::__serialize »
  • PHP Manual
  • GMP
  • Create GMP number

GMP::__construct

(PHP 8 >= 8.2.4)

GMP::__construct — Create GMP number

Описание

public GMP::__construct(int|string $num = 0, int $base = 0)

Creates a GMP number from an integer or string.

Список параметров

num

An integer or a string. The string representation can be decimal, hexadecimal or octal.

base

The base.

The base may vary from 2 to 62. If base is 0 (default value), the actual base is determined from the leading characters: if the first two characters are 0x or 0X, hexadecimal is assumed, if the first two characters are 0b or 0B, binary is assumed, otherwise if the first character is 0, octal is assumed, otherwise decimal is assumed. For bases up to 36, case is ignored; upper-case and lower-case letters have the same value. For bases 37 to 62, upper-case letter represent the usual 10 to 35 while lower-case letter represent 36 to 61.

Смотрите также

  • gmp_init() - Создание GMP числа


Сериализует объект GMP

  • « GMP::__construct
  • GMP::__unserialize »
  • PHP Manual
  • GMP
  • Сериализует объект GMP

GMP::__serialize

(PHP 8 >= 8.1.0)

GMP::__serialize — Сериализует объект GMP

Описание

public GMP::__serialize(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Десериализует параметр data в объект GMP

  • « GMP::__serialize
  • Math »
  • PHP Manual
  • GMP
  • Десериализует параметр data в объект GMP

GMP::__unserialize

(PHP 8 >= 8.1.0)

GMP::__unserialize — Десериализует параметр data в объект GMP

Описание

public GMP::__unserialize(array $data): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Десериализуемое значение.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Математические функции

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Математические функции
    • abs — Абсолютное значение (модуль числа)
    • acos — Вычисляет арккосинус
    • acosh — Гиперболический арккосинус
    • asin — Вычисляет арксинус
    • asinh — Гиперболический арксинус
    • atan2 — Арктангенс двух переменных
    • atan — Вычисляет арктангенс
    • atanh — Вычисляет гиперболический арктангенс
    • base_convert — Преобразование числа между произвольными системами счисления
    • bindec — Двоичное в десятичное
    • ceil — Округляет дробь в большую сторону
    • cos — Косинус
    • cosh — Гиперболический косинус
    • decbin — Переводит число из десятичной системы счисления в двоичную
    • dechex — Переводит число из десятичной системы счисления в шестнадцатеричную
    • decoct — Переводит число из десятичной системы счисления в восьмеричную
    • deg2rad — Преобразует значение из градусов в радианы
    • exp — Вычисляет степень числа e
    • expm1 — Возвращает exp($num) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.
    • fdiv — Делит одно число на другое в соответствии с IEEE 754
    • floor — Округляет дробь в меньшую сторону
    • fmod — Возвращает дробный остаток от деления по модулю
    • hexdec — Переводит число из шестнадцатеричной системы счисления в десятичную
    • hypot — Рассчитывает длину гипотенузы прямоугольного треугольника
    • intdiv — Целочисленное деление
    • is_finite — Проверяет, является ли число с плавающей точкой допустимым конечным числом
    • is_infinite — Проверяет, является ли число с плавающей точкой бесконечным
    • is_nan — Проверяет, является ли число с плавающей точкой нечислом
    • log10 — Десятичный логарифм
    • log1p — Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю
    • log — Натуральный логарифм
    • max — Возвращает наибольшее значение
    • min — Находит наименьшее значение
    • octdec — Переводит число из восьмеричной системы счисления в десятичную
    • pi — Возвращает число Пи
    • pow — Возведение в степень
    • rad2deg — Преобразует значение из радианов в градусы
    • round — Округляет число типа float
    • sin — Синус
    • sinh — Гиперболический синус
    • sqrt — Извлекает квадратный корень
    • tan — Тангенс
    • tanh — Гиперболический тангенс


Введение

Данные функции работают с числами в диапазонах типов int и float. Для работы с большими числами обратите внимание на раздел математических функций произвольной точности или функций множественной точности GNU.

Смотрите также

  • Арифметические операторы
  • Математические функции произвольной точности
  • Функции множественной точности GNU


Предопределённые константы

Перечисленные ниже константы всегда доступны как часть ядра 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) |
M_SQRT1_2 | 0.70710678118654752440 | 1/sqrt(2) |
M_LNPI | 1.14472988584940017414 | Натуральный логарифм числа пи |
M_EULER | 0.57721566490153286061 | Постоянная Эйлера |
PHP_ROUND_HALF_UP | 1 | Округление к большему целому |
PHP_ROUND_HALF_DOWN | 2 | Округление к меньшему целому |
PHP_ROUND_HALF_EVEN | 3 | Округление к чётному числу |
PHP_ROUND_HALF_ODD | 4 | Округление к нечётному числу |
NAN | NAN (тип float) | Не является числом (Not A Number) |
INF | INF (тип float) | Бесконечность |


Математические функции

Содержание

  • abs — Абсолютное значение (модуль числа)
  • acos — Вычисляет арккосинус
  • acosh — Гиперболический арккосинус
  • asin — Вычисляет арксинус
  • asinh — Гиперболический арксинус
  • atan2 — Арктангенс двух переменных
  • atan — Вычисляет арктангенс
  • atanh — Вычисляет гиперболический арктангенс
  • base_convert — Преобразование числа между произвольными системами счисления
  • bindec — Двоичное в десятичное
  • ceil — Округляет дробь в большую сторону
  • cos — Косинус
  • cosh — Гиперболический косинус
  • decbin — Переводит число из десятичной системы счисления в двоичную
  • dechex — Переводит число из десятичной системы счисления в шестнадцатеричную
  • decoct — Переводит число из десятичной системы счисления в восьмеричную
  • deg2rad — Преобразует значение из градусов в радианы
  • exp — Вычисляет степень числа e
  • expm1 — Возвращает exp($num) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.
  • fdiv — Делит одно число на другое в соответствии с IEEE 754
  • floor — Округляет дробь в меньшую сторону
  • fmod — Возвращает дробный остаток от деления по модулю
  • hexdec — Переводит число из шестнадцатеричной системы счисления в десятичную
  • hypot — Рассчитывает длину гипотенузы прямоугольного треугольника
  • intdiv — Целочисленное деление
  • is_finite — Проверяет, является ли число с плавающей точкой допустимым конечным числом
  • is_infinite — Проверяет, является ли число с плавающей точкой бесконечным
  • is_nan — Проверяет, является ли число с плавающей точкой нечислом
  • log10 — Десятичный логарифм
  • log1p — Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю
  • log — Натуральный логарифм
  • max — Возвращает наибольшее значение
  • min — Находит наименьшее значение
  • octdec — Переводит число из восьмеричной системы счисления в десятичную
  • pi — Возвращает число Пи
  • pow — Возведение в степень
  • rad2deg — Преобразует значение из радианов в градусы
  • round — Округляет число типа float
  • sin — Синус
  • sinh — Гиперболический синус
  • sqrt — Извлекает квадратный корень
  • tan — Тангенс
  • tanh — Гиперболический тангенс


Абсолютное значение (модуль числа)

  • « Математические функции
  • acos »
  • PHP Manual
  • Математические функции
  • Абсолютное значение (модуль числа)

abs

(PHP 4, PHP 5, PHP 7, PHP 8)

abs — Абсолютное значение (модуль числа)

Описание

abs(int|float $num): int|float

Возвращает абсолютное значение num.

Список параметров

num

Числовое значение

Возвращаемые значения

Абсолютное значение num. Если тип аргумента num - float, то возвращаемый тип также float, иначе - int (тип float обычно имеет больший диапазон значений, чем тип int).

Список изменений

Версия | Описание
8.0.0 | num больше не принимает внутренние объекты, поддерживающие числовое преобразование.

Примеры

Пример #1 Пример использования abs()

<?php
var_dump(abs(-4.2));
var_dump(abs(5));
var_dump(abs(-5));
?>

Результат выполнения данного примера:

float(4.2)
int(5)
int(5)

Смотрите также

  • gmp_abs() - Абсолютная величина
  • gmp_sign() - Знак числа


Вычисляет арккосинус

  • « abs
  • acosh »
  • PHP Manual
  • Математические функции
  • Вычисляет арккосинус

acos

(PHP 4, PHP 5, PHP 7, PHP 8)

acos — Вычисляет арккосинус

Описание

acos(float $num): float

Возвращает арккосинус аргумента num в радианах. Функция acos() — обратная тригонометрическая функция к функции cos(), то есть $num == cos(acos($num)) для каждого значения параметра num, входящего в область значений функции acos().

Список параметров

num

Аргумент для вычисления

Возвращаемые значения

Возвращает арккосинус числа num в радианах.

Смотрите также

  • cos() - Косинус
  • acosh() - Гиперболический арккосинус
  • asin() - Вычисляет арксинус
  • atan() - Вычисляет арктангенс


Гиперболический арккосинус

  • « acos
  • asin »
  • PHP Manual
  • Математические функции
  • Гиперболический арккосинус

acosh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

acosh — Гиперболический арккосинус

Описание

acosh(float $num): float

Возвращает гиперболический арккосинус num, то есть значение, чей гиперболический косинус равен num.

Список параметров

num

Входное значение

Возвращаемые значения

Гиперболический арккосинус num

Смотрите также

  • cosh() - Гиперболический косинус
  • acos() - Вычисляет арккосинус
  • asinh() - Гиперболический арксинус
  • atanh() - Вычисляет гиперболический арктангенс


Вычисляет арксинус

  • « acosh
  • asinh »
  • PHP Manual
  • Математические функции
  • Вычисляет арксинус

asin

(PHP 4, PHP 5, PHP 7, PHP 8)

asin — Вычисляет арксинус

Описание

asin(float $num): float

Возвращает арксинус аргумента num в радианах. Функция asin() — обратная тригонометрическая функция к функции sin(), то есть $num == sin(asin($num)) для каждого значения параметр num, входящего в область значений функции asin().

Список параметров

num

Аргумент для вычисления

Возвращаемые значения

Возвращает арксинус числа num в радианах.

Смотрите также

  • sin() - Синус
  • asinh() - Гиперболический арксинус
  • acos() - Вычисляет арккосинус
  • atan() - Вычисляет арктангенс


Гиперболический арксинус

  • « asin
  • atan2 »
  • PHP Manual
  • Математические функции
  • Гиперболический арксинус

asinh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

asinh — Гиперболический арксинус

Описание

asinh(float $num): float

Возвращает гиперболический арксинус num, то есть значение, чей гиперболический синус равен num.

Список параметров

num

Входное значение

Возвращаемые значения

Гиперболический арксинус num

Смотрите также

  • sinh() - Гиперболический синус
  • asin() - Вычисляет арксинус
  • acosh() - Гиперболический арккосинус
  • atanh() - Вычисляет гиперболический арктангенс


Арктангенс двух переменных

  • « asinh
  • atan »
  • PHP Manual
  • Математические функции
  • Арктангенс двух переменных

atan2

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

atan — Вычисляет арктангенс

Описание

atan(float $num): float

Возвращает арктангенс аргумента num в радианах. Функция atan() — обратная тригонометрическая функция к функции tan(), то есть $num == tan(atan($num)) для каждого значения num, входящего в область значений функции atan().

Список параметров

num

Аргумент для вычисления

Возвращаемые значения

Возвращает арктангенс числа num в радианах.

Смотрите также

  • tan() - Тангенс
  • atanh() - Вычисляет гиперболический арктангенс
  • asin() - Вычисляет арксинус
  • acos() - Вычисляет арккосинус


Вычисляет гиперболический арктангенс

  • « atan
  • base_convert »
  • PHP Manual
  • Математические функции
  • Вычисляет гиперболический арктангенс

atanh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

atanh — Вычисляет гиперболический арктангенс

Описание

atanh(float $num): float

Возвращает гиперболический арктангенс аргумента num, то есть значение, чей гиперболический тангенс равен значению num.

Список параметров

num

Аргумент для вычисления

Возвращаемые значения

Возвращает гиперболический арктангенс num.

Смотрите также

  • tanh() - Гиперболический тангенс
  • atan() - Вычисляет арктангенс
  • asinh() - Гиперболический арксинус
  • acosh() - Гиперболический арккосинус


Преобразование числа между произвольными системами счисления

  • « atanh
  • bindec »
  • PHP Manual
  • Математические функции
  • Преобразование числа между произвольными системами счисления

base_convert

(PHP 4, PHP 5, PHP 7, PHP 8)

base_convert — Преобразование числа между произвольными системами счисления

Описание

base_convert(string $num, int $from_base, int $to_base): string

Возвращает строку, содержащую число num, представленное в системе счисления to_base. Система счисления, в которой дано число num указана в from_base. Значения from_base и to_base должны быть между 2 и 36 (включительно). Цифры в числах, представленных в системе счисления выше десятичной, будут представлены буквами a-z, где "a" обозначает 10, "b" обозначает 11 и "z" - 35. Регистр букв не имеет значения, поскольку числа (num) интерпретируются регистронезависимо.

Внимание

base_convert() может потерять точность представления больших чисел из-за свойств, связанных с внутренним представлением типа float. Более подробную информацию о специфике данных типов и связанных с ними ограничениях, смотрите в разделе Числа с плавающей точкой.

Список параметров

num

Число для преобразования. Любой некорректный символ в num будет проигнорирован без какого-либо предупреждения. Начиная с PHP 7.4.0, предоставление любых некорректных символов устарело.

from_base

Основание системы счисления числа num

to_base

Основание системы счисления для преобразования числа num

Возвращаемые значения

num, преобразованное в систему счисления to_base

Список изменений

Версия | Описание
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, PHP 8)

bindec — Двоичное в десятичное

Описание

bindec(string $binary_string): int|float

Возвращает десятичный эквивалент двоичного числа binary_string.

bindec() преобразует двоичное число в целое число (int) или, если необходимо, по причинам размера, в число с плавающей точкой (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

Примечания

Замечание:

Эта функция может конвертировать числа, которые слишком большие для типа int на текущей платформе. В этом случае большие значения возвращаются как float.

Смотрите также

  • decbin() - Переводит число из десятичной системы счисления в двоичную
  • octdec() - Переводит число из восьмеричной системы счисления в десятичную
  • hexdec() - Переводит число из шестнадцатеричной системы счисления в десятичную
  • base_convert() - Преобразование числа между произвольными системами счисления


Округляет дробь в большую сторону

  • « bindec
  • cos »
  • PHP Manual
  • Математические функции
  • Округляет дробь в большую сторону

ceil

(PHP 4, PHP 5, PHP 7, PHP 8)

ceil — Округляет дробь в большую сторону

Описание

ceil(int|float $num): float

Возвращает ближайшее большее целое от num.

Список параметров

num

Значение, которое требуется округлить в большую сторону

Возвращаемые значения

Возвращает ближайшее большее целое от num. Тип возвращаемого значения остаётся float т.к. диапазон float больше int.

Список изменений

Версия | Описание
8.0.0 | num больше не принимает внутренние объекты, поддерживающие числовое преобразование.

Примеры

Пример #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, PHP 8)

cos — Косинус

Описание

cos(float $num): float

cos() возвращает косинус параметра num. Параметр num задаётся в радианах.

Список параметров

num

Угол в радианах

Возвращаемые значения

Косинус угла num

Примеры

Пример #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, PHP 8)

cosh — Гиперболический косинус

Описание

cosh(float $num): float

Возвращает гиперболический косинус num, определяемый как (exp($num) + exp(-$num))/2.

Список параметров

num

Входное значение

Возвращаемые значения

Гиперболический косинус num

Смотрите также

  • cos() - Косинус
  • acosh() - Гиперболический арккосинус
  • sinh() - Гиперболический синус
  • tanh() - Гиперболический тангенс


Переводит число из десятичной системы счисления в двоичную

  • « cosh
  • dechex »
  • PHP Manual
  • Математические функции
  • Переводит число из десятичной системы счисления в двоичную

decbin

(PHP 4, PHP 5, PHP 7, PHP 8)

decbin — Переводит число из десятичной системы счисления в двоичную

Описание

decbin(int $num): string

Возвращает строку, содержащую двоичное представление указанного аргумента num.

Список параметров

num

Десятичное число для преобразования

Область ввода для 32-битных машин
положительный num | отрицательный num | возвращаемое значение
0 | 0
1 | 1
2 | 10
... и так далее ...
2147483646 | 1111111111111111111111111111110
2147483647 (наибольший знаковый integer) | 1111111111111111111111111111111 (31 единица)
2147483648 | -2147483648 | 10000000000000000000000000000000
... и так далее ...
4294967294 | -2 | 11111111111111111111111111111110
4294967295 (наибольший беззнаковый integer) | -1 | 11111111111111111111111111111111 (32 единицы)
Область ввода для 64-битных машин
положительный num | отрицательный num | возвращаемое значение
0 | 0
1 | 1
2 | 10
... и так далее ...
9223372036854775806 | 111111111111111111111111111111111111111111111111111111111111110
9223372036854775807 (наибольший знаковый integer) | 111111111111111111111111111111111111111111111111111111111111111 (63 единицы)
-9223372036854775808 | 1000000000000000000000000000000000000000000000000000000000000000
... и так далее ...
-2 | 1111111111111111111111111111111111111111111111111111111111111110
-1 | 1111111111111111111111111111111111111111111111111111111111111111 (64 единицы)

Возвращаемые значения

Бинарное строковое представление num

Примеры

Пример #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, PHP 8)

dechex — Переводит число из десятичной системы счисления в шестнадцатеричную

Описание

dechex(int $num): string

Возвращает строку, содержащую шестнадцатеричное представление указанного беззнакового аргумента num.

Наибольшее число, которое может быть преобразовано - PHP_INT_MAX * 2 + 1 (или -1): на 32-битных платформах это 4294967295 в десятеричной системе, что конвертируется функцией dechex() в ffffffff.

Список параметров

num

Десятичное значение для преобразования

Так как тип PHP int является знаковым, а dechex() работает с беззнаковыми целыми, то отрицательные целые воспринимаются как беззнаковые.

Возвращаемые значения

Шестнадцатеричное строковое представление num.

Примеры

Пример #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, PHP 8)

decoct — Переводит число из десятичной системы счисления в восьмеричную

Описание

decoct(int $num): string

Возвращает строку, содержащую восьмеричное представление указанного аргумента num. Значение наибольшего числа, которое может быть преобразовано, зависит от платформы. Для 32-битных платформ это обычно 4294967295 в десятичном представлении и 37777777777 в восьмеричном. Для 64-битных платформ это обычно 9223372036854775807 и 777777777777777777777 соответственно.

Список параметров

num

Десятичное значение для преобразования

Возвращаемые значения

Восьмеричное строковое представление num

Примеры

Пример #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, PHP 8)

deg2rad — Преобразует значение из градусов в радианы

Описание

deg2rad(float $num): float

Функция преобразует num из градусов в радианы.

Список параметров

num

Угловая величина в градусах

Возвращаемые значения

Эквивалент num в радианах

Примеры

Пример #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, PHP 8)

exp — Вычисляет степень числа e

Описание

exp(float $num): float

Возвращает e в степени num.

Замечание:

Число e - основание натурального логарифма. Приблизительно равно 2.718282.

Список параметров

num

Степень для возведения

Возвращаемые значения

'e' возводится в степень num

Примеры

Пример #1 Пример использования exp()

<?php
echo exp(12) . "\n";
echo exp(5.7);
?>

Результат выполнения данного примера:

1.6275E+005
298.87

Смотрите также

  • log() - Натуральный логарифм
  • pow() - Возведение в степень


Возвращает exp($num) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.

  • « exp
  • fdiv »
  • PHP Manual
  • Математические функции
  • Возвращает exp($num) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.

expm1

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

expm1 — Возвращает exp($num) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.

Описание

expm1(float $num): float

expm1() возвращает эквивалент выражения 'exp(num) - 1', рассчитанный таким образом, что результат точен, даже если значение num близко к нулю, тогда как 'exp (num) - 1' будет неточно из-за вычитания двух почти равных чисел.

Список параметров

num

Входное значение

Возвращаемые значения

'e' в степени num минус один

Смотрите также

  • log1p() - Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю
  • exp() - Вычисляет степень числа e


Делит одно число на другое в соответствии с IEEE 754

  • « expm1
  • floor »
  • PHP Manual
  • Математические функции
  • Делит одно число на другое в соответствии с IEEE 754

fdiv

(PHP 8)

fdiv — Делит одно число на другое в соответствии с IEEE 754

Описание

fdiv(float $num1, float $num2): float

Возвращает результат деления num1 на num2 в виде числа с плавающей точкой. Если num2 равен нулю, то будет возвращено либо INF, либо -INF, либо NAN.

Обратите внимание, что при сравнении NAN с помощью == или === с чем угодно, включая его самого, результат всегда будет false.

Список параметров

num1

Делимое

num2

Делитель

Возвращаемые значения

Число с плавающей точкой, являющееся результатом деления num1 на num2.

Примеры

Пример #1 Пример использования fdiv()

<?php
var_dump(fdiv(5.7, 1.3)); // float(4.384615384615385)
var_dump(fdiv(4, 2)); // float(2)
var_dump(fdiv(1.0, 0.0)); // float(INF)
var_dump(fdiv(-1.0, 0.0)); // float(-INF)
var_dump(fdiv(0.0, 0.0)); // float(NAN)
?>

Смотрите также

  • / - Деление чисел с плавающей точкой
  • intdiv() - Целочисленное деление
  • fmod() - Модуль


Округляет дробь в меньшую сторону

  • « fdiv
  • fmod »
  • PHP Manual
  • Математические функции
  • Округляет дробь в меньшую сторону

floor

(PHP 4, PHP 5, PHP 7, PHP 8)

floor — Округляет дробь в меньшую сторону

Описание

floor(int|float $num): float

Возвращает ближайшее целое число (как тип float), округляя num в меньшую сторону.

Список параметров

num

Числовое значение для округления

Возвращаемые значения

Значение num, округлённое в меньшую сторону до ближайшего целого числа. Возвращаемое значение функции floor() по-прежнему типа float. В случае возникновения какой-либо ошибки (например, при передаче массива), эта функция вернёт false.

Список изменений

Версия | Описание
8.0.0 | num больше не принимает внутренние объекты, поддерживающие числовое преобразование.

Примеры

Пример #1 Пример использования floor()

<?php
echo floor(4.3); // 4
echo floor(9.999); // 9
echo floor(-3.14); // -4
?>

Смотрите также

  • ceil() - Округляет дробь в большую сторону
  • round() - Округляет число типа float


Возвращает дробный остаток от деления по модулю

  • « floor
  • hexdec »
  • PHP Manual
  • Математические функции
  • Возвращает дробный остаток от деления по модулю

fmod

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

fmod — Возвращает дробный остаток от деления по модулю

Описание

fmod(float $num1, float $num2): float

Возвращает дробный остаток от деления делимого (num1) и делителя (num2). Остаток (r) определяется так: x = i * y + r, где i - некоторое целое. Если y не равен нулю, то r имеет такой же знак, как num1 и величину, меньшую или равную величине num2.

Список параметров

num1

Делимое.

num2

Делитель.

Возвращаемые значения

Остаток от операции деления num1/num2

Примеры

Пример #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
  • hypot »
  • PHP Manual
  • Математические функции
  • Переводит число из шестнадцатеричной системы счисления в десятичную

hexdec

(PHP 4, PHP 5, PHP 7, PHP 8)

hexdec — Переводит число из шестнадцатеричной системы счисления в десятичную

Описание

hexdec(string $hex_string): int|float

Возвращает десятичный эквивалент шестнадцатеричного числа, содержащегося в аргументе 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)"
?>

Примечания

Замечание:

Эта функция может конвертировать числа, которые слишком большие для типа int на текущей платформе. В этом случае большие значения возвращаются как float.

Смотрите также

  • dechex() - Переводит число из десятичной системы счисления в шестнадцатеричную
  • bindec() - Двоичное в десятичное
  • octdec() - Переводит число из восьмеричной системы счисления в десятичную
  • base_convert() - Преобразование числа между произвольными системами счисления


Рассчитывает длину гипотенузы прямоугольного треугольника

  • « hexdec
  • intdiv »
  • PHP Manual
  • Математические функции
  • Рассчитывает длину гипотенузы прямоугольного треугольника

hypot

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

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, PHP 8)

intdiv — Целочисленное деление

Описание

intdiv(int $num1, int $num2): int

Возвращает результат целочисленного деления num1 на num2.

Список параметров

num1

Числитель (то, что делится).

num2

Знаменатель. Число, на которое делится num1

Возвращаемые значения

Целое частное от деления num1 на num2.

Ошибки

Если num2 равен 0, будет выброшено исключение DivisionByZeroError. Если num1 равен PHP_INT_MIN, а num2 равен -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, PHP 8)

is_finite — Проверяет, является ли число с плавающей точкой допустимым конечным числом

Описание

is_finite(float $num): bool

Возвращает результат проверки того, является ли переданное в параметр num значение допустимым конечным числом с плавающей точкой.

Допустимое конечное число с плавающей точкой не может быть ни нечислом (NAN), как его вычисляет функция is_nan(), ни бесконечностью, как её вычисляет функция is_infinite().

Список параметров

num

Проверяемое число с плавающей точкой (float)

Возвращаемые значения

Возвращает true, если значение num не нечисло NAN, не положительная бесконечность INF, не отрицательная бесконечность -INF, иначе false.

Примеры

Пример #1 Пример использования функции is_finite()

<?php
$float = 1.2345;
var_dump($float, is_finite($float));

$nan = sqrt(-1);
var_dump($nan, is_finite($nan));

$inf = 1e308 * 2;
var_dump($inf, is_finite($inf));
?>

Результат выполнения данного примера:

float(1.2345)
bool(true)
float(NAN)
bool(false)
float(INF)
bool(false)

Смотрите также

  • is_infinite() - Проверяет, является ли число с плавающей точкой бесконечным
  • is_nan() - Проверяет, является ли число с плавающей точкой нечислом


Проверяет, является ли число с плавающей точкой бесконечным

  • « is_finite
  • is_nan »
  • PHP Manual
  • Математические функции
  • Проверяет, является ли число с плавающей точкой бесконечным

is_infinite

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_infinite — Проверяет, является ли число с плавающей точкой бесконечным

Описание

is_infinite(float $num): bool

Возвращает результат проверки того, является ли переданное в параметр num значение положительной (INF) или отрицательной бесконечностью (-INF).

Список параметров

num

Проверяемое число с плавающей точкой (float)

Возвращаемые значения

Возвращает true, если параметр num является бесконечным положительным числом (INF) или отрицательным бесконечным числом (-INF), иначе false.

Примеры

Пример #1 Пример использования функции is_infinite()

<?php
$inf = 1e308 * 2;

var_dump($inf, is_infinite($inf));

$negative_inf = -$inf;

var_dump($negative_inf, is_infinite($negative_inf));
?>

Результат выполнения данного примера:

float(INF)
bool(true)
float(-INF)
bool(true)

Смотрите также

  • is_finite() - Проверяет, является ли число с плавающей точкой допустимым конечным числом
  • is_nan() - Проверяет, является ли число с плавающей точкой нечислом


Проверяет, является ли число с плавающей точкой нечислом

  • « is_infinite
  • log10 »
  • PHP Manual
  • Математические функции
  • Проверяет, является ли число с плавающей точкой нечислом

is_nan

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_nan — Проверяет, является ли число с плавающей точкой нечислом

Описание

is_nan(float $num): bool

Возвращает результат проверки того, является ли переданное в параметр num значение нечислом (NAN) (не числом).

Нечисло (NAN) — неопределённый результат математического вычисления, бывает, например, тогда, когда передаваемые параметры выходят за пределы области входных данных функции. Квадратный корень числа (функция sqrt()) может быть определён только для положительных чисел, передача (в функцию) отрицательного числа приведёт к состоянию нечисла (NAN). Другие примеры операций, возвращающих нечисло (NAN), — деление положительного бесконечного числа (INF) на другое бесконечное положительное число (INF) или любая операция, аргументами которой будет нечисло (NAN).

Замечание:

Несмотря на сказанное выше, нечисло (NAN) — это допустимое значение для типа float.

Предостережение

Нечисло (NAN) не тождественно другому нечислу (NAN). Соответствие числа с плавающей точкой нечислу (NAN) проверяют функцией is_nan(). Проверка $float === NAN не сработает.

Список параметров

num

Проверяемое число с плавающей точкой (float)

Возвращаемые значения

Возвращает true, если параметр num — нечисло (NAN), иначе false.

Примеры

Пример #1 Пример использования is_nan()

<?php
$nan = sqrt(-1);

var_dump($nan, is_nan($nan));
?>

Результат выполнения данного примера:

float(NAN)
bool(true)

Смотрите также

  • is_finite() - Проверяет, является ли число с плавающей точкой допустимым конечным числом
  • is_infinite() - Проверяет, является ли число с плавающей точкой бесконечным


Десятичный логарифм

  • « is_nan
  • log1p »
  • PHP Manual
  • Математические функции
  • Десятичный логарифм

log10

(PHP 4, PHP 5, PHP 7, PHP 8)

log10 — Десятичный логарифм

Описание

log10(float $num): float

Возвращает десятичный логарифм num.

Список параметров

num

Входное значение

Возвращаемые значения

Десятичный логарифм num

Смотрите также

  • log() - Натуральный логарифм


Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю

  • « log10
  • log »
  • PHP Manual
  • Математические функции
  • Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю

log1p

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

log1p — Возвращает log(1 + number), рассчитанный так, что результат точен, даже если значение number близко к нулю

Описание

log1p(float $num): float

log1p() возвращает log(1 + num), рассчитанное таким образом, что результат точен, даже когда значение num близко к нулю. Из-за недостатка точности log() в этом случае может вернуть просто log(1).

Список параметров

num

Входное значение

Возвращаемые значения

log(1 + num)

Смотрите также

  • expm1() - Возвращает exp($num) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.
  • log() - Натуральный логарифм
  • log10() - Десятичный логарифм


Натуральный логарифм

  • « log1p
  • max »
  • PHP Manual
  • Математические функции
  • Натуральный логарифм

log

(PHP 4, PHP 5, PHP 7, PHP 8)

log — Натуральный логарифм

Описание

log(float $num, float $base = M_E): float

Если указан необязательный параметр base, log() возвращает logbase от num, иначе log() возвращает натуральный логарифм числа num.

Список параметров

num

Число, для которого необходимо вычислить логарифм

base

Необязательное основание логарифма (по умолчанию основание 'e', что соответствует натуральному логарифму).

Возвращаемые значения

Логарифм числа num по основанию base, если указано, или натуральный логарифм.

Смотрите также

  • log10() - Десятичный логарифм
  • exp() - Вычисляет степень числа e
  • pow() - Возведение в степень
  • error_log() - Отправляет сообщение об ошибке заданному обработчику ошибок


Возвращает наибольшее значение

  • « log
  • min »
  • PHP Manual
  • Математические функции
  • Возвращает наибольшее значение

max

(PHP 4, PHP 5, PHP 7, PHP 8)

max — Возвращает наибольшее значение

Описание

max(mixed $value, mixed ...$values): mixed

Альтернативная сигнатура (не поддерживается с именованными аргументами):

max(array $value_array): mixed

Если первый и единственный параметр — массив, то функция max() вернёт наибольшее значение из этого массива. Если переданы хотя бы два параметра, функция max() вернёт наибольший из них.

Замечание:

Значения разных типов будут сравниваться в соответствии со стандартными правилами сравнения. К примеру, нечисловая строка (string) будет сравниваться с целым числом (int) так, как будто это 0, а множество нечисловых строк (string) будут сравниваться алфавитно-цифровым порядком. Выбранное значение будет возвращено без конвертации типа.

Предостережение

Соблюдают осторожность при передаче аргументов разных типов, поскольку результат функции max() может оказаться непредсказуемым.

Список параметров

value

Любое поддающееся сравнению значение.

values

Любые поддающиеся сравнению значения.

value_array

Массив, содержащий значения.

Возвращаемые значения

Функция max() вернёт значение «наибольшего» из элементов массива, в соответствии со стандартными правилами сравнения. Если несколько разнотипных значений посчитаются идентичными (например 0 и 'abc'), функция вернёт первое из них.

Ошибки

Если передан пустой массив, функция max() выбрасывает ошибку ValueError.

Список изменений

Версия | Описание
8.0.0 | Функция max() теперь в случае возникновения ошибки выбрасывает ошибку ValueError; ранее возвращалось значение false и выдавалась ошибка уровня E_WARNING.
8.0.0 | Поскольку сравнение строк с числами было изменено, функция max() больше не возвращает другое значение в зависимости от порядка аргументов для таких случаев.

Примеры

Пример #1 Пример использования max()

<?php
echo max(1, 3, 5, 6, 7); // 7
echo max(array(2, 4, 5)); // 5

// Здесь сравниваются -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() - Подсчитывает количество элементов массива или Countable объекте


Находит наименьшее значение

  • « max
  • octdec »
  • PHP Manual
  • Математические функции
  • Находит наименьшее значение

min

(PHP 4, PHP 5, PHP 7, PHP 8)

min — Находит наименьшее значение

Описание

min(mixed $value, mixed ...$values): mixed

Альтернативная сигнатура (не поддерживается с именованными аргументами):

min(array $value_array): mixed

Если первый и единственный параметр — массив, то функция min() возвратит наименьшее значение из этого массива. Если переданы хотя бы два параметра, функция min() вернёт наименьший из них.

Замечание:

Значения разных типов будут сравниваться в соответствии со стандартными правилами сравнения. К примеру, нечисловая строка (string) будет сравниваться с целым числом (int) так, как будто это 0, а множество нечисловых строк (string) будут сравниваться алфавитно-цифровым порядком. Выбранное значение будет возвращено без конвертации типа.

Предостережение

Соблюдают осторожность при передаче аргументов разных типов, поскольку результат функции min() может оказаться непредсказуемым.

Список параметров

value

Любое поддающееся сравнению значение.

values

Любые поддающиеся сравнению значения.

value_array

Массив содержащий значения.

Возвращаемые значения

Функция min() вернёт значение «наименьшего» из элементов массива, в соответствии со стандартными правилами сравнения. Если несколько разнотипных значений посчитаются идентичными (например 0 и 'abc'), функция вернёт первое из них.

Ошибки

Если передан пустой массив, функция min() выбрасывает ошибку ValueError.

Список изменений

Версия | Описание
8.0.0 | Функция min() в случае возникновения ошибки теперь вызывает ошибку ValueError; ранее возвращалось значение false и выдавалась ошибка уровня E_WARNING.
8.0.0 | Поскольку сравнение строк с числами было изменено, функция min() больше не возвращает другое значение в зависимости от порядка аргументов для таких случаев.

Примеры

Пример #1 Пример использования min()

<?php
echo min(2, 3, 1, 6, 7); // 1
echo min(array(2, 4, 5)); // 2

// Здесь сравниваются -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() - Подсчитывает количество элементов массива или Countable объекте


Переводит число из восьмеричной системы счисления в десятичную

  • « min
  • pi »
  • PHP Manual
  • Математические функции
  • Переводит число из восьмеричной системы счисления в десятичную

octdec

(PHP 4, PHP 5, PHP 7, PHP 8)

octdec — Переводит число из восьмеричной системы счисления в десятичную

Описание

octdec(string $octal_string): int|float

Возвращает десятичный эквивалент восьмеричного числа, указанного в аргументе 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

Примечания

Замечание:

Эта функция может конвертировать числа, которые слишком большие для типа int на текущей платформе. В этом случае большие значения возвращаются как float.

Смотрите также

  • decoct() - Переводит число из десятичной системы счисления в восьмеричную
  • bindec() - Двоичное в десятичное
  • hexdec() - Переводит число из шестнадцатеричной системы счисления в десятичную
  • base_convert() - Преобразование числа между произвольными системами счисления


Возвращает число Пи

  • « octdec
  • pow »
  • PHP Manual
  • Математические функции
  • Возвращает число Пи

pi

(PHP 4, PHP 5, PHP 7, PHP 8)

pi — Возвращает число Пи

Описание

pi(): float

Возвращает приближённое значение числа Пи. Константа 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, PHP 8)

pow — Возведение в степень

Описание

pow(mixed $num, mixed $exponent): int|float|object

Возвращает num, возведённое в степень exponent.

Замечание:

Вместо функции можно использовать оператор **.

Список параметров

num

Основание

exponent

Показатель степени

Возвращаемые значения

Основание num возведённое в степень exponent. Если оба аргумента - неотрицательные целые и результат может быть представлен как целое, то возвращаемый результат будет типа int. В ином случае результат будет типа 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); // NAN
?>

Примечания

Замечание:

Функция преобразует все входные значения, даже нескалярные, к числовым, что может привести к странным результатам.

Смотрите также

  • exp() - Вычисляет степень числа e
  • sqrt() - Извлекает квадратный корень
  • bcpow() - Возведение в степень чисел с произвольной точностью
  • gmp_pow() - Возводит число в степень


Преобразует значение из радианов в градусы

  • « pow
  • round »
  • PHP Manual
  • Математические функции
  • Преобразует значение из радианов в градусы

rad2deg

(PHP 4, PHP 5, PHP 7, PHP 8)

rad2deg — Преобразует значение из радианов в градусы

Описание

rad2deg(float $num): float

Функция преобразует значение num из радианов в градусы.

Список параметров

num

Значение в радианах

Возвращаемые значения

Эквивалент num в градусах

Примеры

Пример #1 Пример использования rad2deg()

<?php

echo rad2deg(M_PI_4); // 45

?>

Смотрите также

  • deg2rad() - Преобразует значение из градусов в радианы


Округляет число типа float

  • « rad2deg
  • sin »
  • PHP Manual
  • Математические функции
  • Округляет число типа float

round

(PHP 4, PHP 5, PHP 7, PHP 8)

round — Округляет число типа float

Описание

round(int|float $num, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float

Возвращает округлённое значение num с указанной точностью precision (количество цифр после запятой). precision может быть отрицательным или нулём (по умолчанию).

Список параметров

num

Значение для округления.

precision

Количество десятичных знаков, до которых производится округление

Если precision положительный, num округляется до точности precision цифр после запятой.

Если precision отрицателен, num округляется до точности precision цифр перед десятичной запятой, то есть до ближайшего кратного pow(10, -$precision), например для precision равной -1 num округляется до десятков, для precision равной -2 до сотен и т.д.

mode

Используйте одну из этих констант для задания способа округления.

Константы | Описание
PHP_ROUND_HALF_UP | Округляет num от нуля, когда следующий знак находится посередине. То есть округляет 1.5 в 2 и -1.5 в -2.
PHP_ROUND_HALF_DOWN | Округляет num к нулю, когда следующий знак находится посередине. То есть округляет 1.5 в 1 и -1.5 в -1.
PHP_ROUND_HALF_EVEN | Округляет num до ближайшего чётного значения, когда следующий знак находится посередине. То есть округляет 1.5 и 2.5 в 2.
PHP_ROUND_HALF_ODD | Округляет num до ближайшего нечётного значения, когда следующий знак находится посередине. То есть округляет 1.5 в 1 и 2.5 в 3.

Возвращаемые значения

Значение округляется до заданного значения precision как float.

Список изменений

Версия | Описание
8.0.0 | num больше не принимает внутренние объекты, поддерживающие числовое преобразование.

Примеры

Пример #1 Пример использования round()

<?php
var_dump(round(3.4));
var_dump(round(3.5));
var_dump(round(3.6));
var_dump(round(3.6, 0));
var_dump(round(5.045, 2));
var_dump(round(5.055, 2));
var_dump(round(345, -2));
var_dump(round(345, -3));
var_dump(round(678, -2));
var_dump(round(678, -3));
?>

Результат выполнения данного примера:

float(3)
float(4)
float(4)
float(4)
float(5.05)
float(5.06)
float(300)
float(0)
float(700)
float(1000)

Пример #2 Как параметр precision влияет на числа с плавающей точкой

<?php
$number = 135.79;

var_dump(round($number, 3));
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));
?>

Результат выполнения данного примера:

float(135.79)
float(135.79)
float(135.8)
float(136)
float(140)
float(100)
float(0)

Пример #3 Примеры использования параметра mode

<?php
echo 'Режимы округления с 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 PHP_EOL;
echo 'Режимы округления с 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));
?>

Результат выполнения данного примера:

Режимы округления с 9.5
float(10)
float(9)
float(10)
float(9)

Режимы округления с 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.55, 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.55, 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.55, 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.55, 1, PHP_ROUND_HALF_ODD));
?>

Результат выполнения данного примера:

Использование PHP_ROUND_HALF_UP с точностью до 1 знака
float(1.6)
float(-1.6)

Использование PHP_ROUND_HALF_DOWN с точностью до 1 знака
float(1.5)
float(-1.5)

Использование PHP_ROUND_HALF_EVEN с точностью до 1 знака
float(1.6)
float(-1.6)

Использование PHP_ROUND_HALF_ODD с точностью до 1 знака
float(1.5)
float(-1.5)

Смотрите также

  • ceil() - Округляет дробь в большую сторону
  • floor() - Округляет дробь в меньшую сторону
  • number_format() - Форматирует число с разделением групп


Синус

  • « round
  • sinh »
  • PHP Manual
  • Математические функции
  • Синус

sin

(PHP 4, PHP 5, PHP 7, PHP 8)

sin — Синус

Описание

sin(float $num): float

sin() возвращает синус параметра num. Параметр num задаётся в радианах.

Список параметров

num

Значение в радианах

Возвращаемые значения

Синус угла num

Примеры

Пример #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, PHP 8)

sinh — Гиперболический синус

Описание

sinh(float $num): float

Возвращает гиперболический синус num, определяемый как (exp($num) - exp(-$num))/2.

Список параметров

num

Входное значение

Возвращаемые значения

Гиперболический синус num

Смотрите также

  • sin() - Синус
  • asinh() - Гиперболический арксинус
  • cosh() - Гиперболический косинус
  • tanh() - Гиперболический тангенс


Извлекает квадратный корень

  • « sinh
  • tan »
  • PHP Manual
  • Математические функции
  • Извлекает квадратный корень

sqrt

(PHP 4, PHP 5, PHP 7, PHP 8)

sqrt — Извлекает квадратный корень

Описание

sqrt(float $num): float

Возвращает квадратный корень числа, переданного в параметр num.

Список параметров

num

Аргумент для вычисления

Возвращаемые значения

Возвращает квадратный корень числа в параметре num или специальное значение NAN для отрицательных чисел.

Примеры

Пример #1 Пример использования sqrt()

<?php
// Точность зависит от ваших настроек точности
echo sqrt(9); // 3
echo sqrt(10); // 3.16227766 ...
?>

Смотрите также

  • pow() - Возведение в степень
  • M_SQRTPI - sqrt(pi)
  • M_2_SQRTPI - 2/sqrt(pi)
  • M_SQRT2 - sqrt(2)
  • M_SQRT3 - sqrt(3)
  • M_SQRT1_2 - 1/sqrt(2)


Тангенс

  • « sqrt
  • tanh »
  • PHP Manual
  • Математические функции
  • Тангенс

tan

(PHP 4, PHP 5, PHP 7, PHP 8)

tan — Тангенс

Описание

tan(float $num): float

tan() возвращает тангенс параметра num. Параметр num задаётся в радианах.

Список параметров

num

Значение в радианах

Возвращаемые значения

Тангенс угла num

Примеры

Пример #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, PHP 8)

tanh — Гиперболический тангенс

Описание

tanh(float $num): float

Возвращает гиперболический тангенс num, определяемый как sinh($num)/cosh($num).

Список параметров

num

Входное значение

Возвращаемые значения

Гиперболический тангенс num

Смотрите также

  • 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 — Генерирует одно случайное отклонение от 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 для функций кумулятивного распределения, инверсий и других параметров) от Б. Брауна & Дж. Лавато и RANDLIB Барри Брауна, Джеймса Лавато & Кэти Рассел. Включает функции CD и PD.


Требования

Никаких внешних библиотек не требуется. Модуль поставляется в комплекте с используемыми библиотеками.


Установка

Этот модуль » PECL не поставляется вместе с PHP.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/stats.

Бинарные файлы Windows (файлы DLL) для этого модуля PECL доступны на сайте PECL.


  • « Типы ресурсов
  • Функции статистики »
  • 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 — Генерирует одно случайное отклонение от 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(): 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

Стандартное отклонение нормального распределения

Возвращаемые значения

Случайное отклонение


Генерирует одно случайное отклонение от t-распределения

  • « stats_rand_gen_normal
  • stats_rand_get_seeds »
  • PHP Manual
  • Функции статистики
  • Генерирует одно случайное отклонение от t-распределения

stats_rand_gen_t

(PECL stats >= 1.0.0)

stats_rand_gen_t — Генерирует одно случайное отклонение от t-распределения

Описание

stats_rand_gen_t(float $df): float

Возвращает случайное отклонение от t-распределения со степенями свободы, 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(): 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(): 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 в случае возникновения ошибки.


Технический анализ для трейдеров

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределённые константы
  • Функции 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 — Закрытие марубозу
    • trader_cdlconcealbabyswall — Прячущаяся ласточка
    • trader_cdlcounterattack — Контратака
    • trader_cdldarkcloudcover — Завеса из тёмных облаков
    • trader_cdldoji — Дожи
    • trader_cdldojistar — Дожи-звезда
    • trader_cdldragonflydoji — Стрекоза дожи
    • trader_cdlengulfing — Модель поглощения
    • trader_cdleveningdojistar — Вечерняя дожи-звезда
    • trader_cdleveningstar — Вечерняя звезда
    • trader_cdlgapsidesidewhite — Свечная модель "Смежные белые свечи"
    • trader_cdlgravestonedoji — Дожи-надгробие
    • trader_cdlhammer — Молот
    • trader_cdlhangingman — Висельник
    • trader_cdlharami — Паттерн Харами
    • trader_cdlharamicross — Паттерн "Крест Харами"
    • trader_cdlhighwave — Свечная модель "Высокая волна"
    • trader_cdlhikkake — Свечная модель "Крюк"
    • trader_cdlhikkakemod — Модифицированная свечная модель "Крюк"
    • trader_cdlhomingpigeon — Свечная модель "Почтовый голубь"
    • trader_cdlidentical3crows — Свечная модель "Три одинаковые вороны"
    • trader_cdlinneck — Свечная модель "На линии шеи"
    • trader_cdlinvertedhammer — Свечная модель "Перевёрнутый молоток"
    • trader_cdlkicking — Свечная модель "Высокий прыжок"
    • trader_cdlkickingbylength — Высокий прыжок - бык/медведь определяется по длинному марубозу
    • trader_cdlladderbottom — Свечная модель "Ступенчатое дно"
    • trader_cdllongleggeddoji — Свечная модель "Длинноногие доджи"
    • trader_cdllongline — Свечная модель "Длинная свеча"
    • trader_cdlmarubozu — Марубозу
    • trader_cdlmatchinglow — Свечная модель "Совпадение по нижнему уровню"
    • trader_cdlmathold — Фигура Подстилка
    • trader_cdlmorningdojistar — Утренняя звезда дожи
    • trader_cdlmorningstar — Утренняя звезда
    • trader_cdlonneck — Паттерн "У линии шеи"
    • trader_cdlpiercing — Паттерн "Просвет в облаках"
    • trader_cdlrickshawman — Длинноногий дожи
    • trader_cdlrisefall3methods — Бычья/медвежья модель "Три метода"
    • trader_cdlseparatinglines — Разделение
    • trader_cdlshootingstar — Падающая звезда
    • trader_cdlshortline — Свечная модель "Свеча короткой линии"
    • trader_cdlspinningtop — Волчок
    • trader_cdlstalledpattern — Торможение
    • trader_cdlsticksandwich — Прилипший сэндвич
    • trader_cdltakuri — Такури (Стрекоза Доджи с очень длинной нижней тенью)
    • trader_cdltasukigap — Разрыв Тасуки
    • trader_cdlthrusting — Свечная модель "Толчок"
    • trader_cdltristar — Свечная модель "Тристар"
    • trader_cdlunique3river — Свечная модель "Особая впадина три реки"
    • trader_cdlupsidegap2crows — Свечная модель "Перевёрнутые две вороны"
    • trader_cdlxsidegap3methods — Верх/вниз - три метода
    • trader_ceil — Вектор наибольшего целого числа
    • trader_cmo — Осциллятор ценовых моментов Чанде
    • trader_correl — Линейный коэффициент корреляции r-Пирсона
    • trader_cos — Тригонометрический вектор косинуса
    • trader_cosh — Тригонометрический вектор гиперболического косинуса
    • trader_dema — Двойная экспоненциальная скользящая средняя
    • trader_div — Арифметический вектор деления
    • trader_dx — Индекс направленного движения
    • trader_ema — Экспоненциальная скользящая средняя
    • trader_errno — Получить код ошибки
    • trader_exp — Арифметический вектор возведения в степень
    • trader_floor — Вектор наименьшего числа
    • trader_get_compat — Получает режим совместимости
    • trader_get_unstable_period — Получает нестабильный период
    • trader_ht_dcperiod — Преобразование Гильберта - период доминирующего цикла
    • trader_ht_dcphase — Преобразование Гильберта - Фаза доминирующего цикла
    • trader_ht_phasor — Преобразование Гильберта - Phasor Components
    • trader_ht_sine — Преобразование Гильберта - SineWave
    • trader_ht_trendline — Преобразование Гильберта - мгновенная линия тренда
    • trader_ht_trendmode — Преобразование Гильберта - тренд против цикла
    • trader_kama — Адаптивная скользящая средняя Кауфмана
    • trader_linearreg_angle — Линейный регрессионный угол
    • trader_linearreg_intercept — Перехват линейной регрессии
    • trader_linearreg_slope — Линейный регрессионный наклон
    • trader_linearreg — Линейная регрессия
    • trader_ln — Вектор натурального логарифма
    • trader_log10 — Вектор логарифма по основанию-10
    • trader_ma — Скользящая средняя
    • trader_macd — Скользящее среднее сходимость/дивергенция
    • trader_macdext — MACD с управляемым типом MA
    • trader_macdfix — Исправление схождения/расхождения скользящей средней 12/26
    • trader_mama — MESA Адаптивная скользящая средняя
    • trader_mavp — Скользящая средняя с переменным периодом
    • trader_max — Наибольшее значение за указанный период
    • trader_maxindex — Индекс наибольшего значения за указанный период
    • trader_medprice — Средняя цена
    • trader_mfi — Индекс денежных потоков
    • trader_midpoint — Середина отрезка за период
    • trader_midprice — Средняя цена за период
    • trader_min — Наименьшее значение за указанный период
    • trader_minindex — Индекс наименьшего значения за определённый период
    • trader_minmax — Самые низкие и самые высокие значения за указанный период
    • trader_minmaxindex — Индексы самых низких и самых высоких значений за указанный период
    • trader_minus_di — Минус-направленный индикатор
    • trader_minus_dm — Минус-направленное движение
    • trader_mom — Моментум
    • trader_mult — Арифметический вектор произведения
    • trader_natr — Нормализованный средний истинный диапазон
    • trader_obv — Индикатор Балансового объёма
    • trader_plus_di — Плюс-направленный индикатор
    • trader_plus_dm — Плюс-направленное движение
    • trader_ppo — Процентный ценовой осциллятор
    • trader_roc — Скорость изменения: ((цена/предыдущая цена)-1)*100
    • trader_rocp — Коэффициент изменения в процентах: (цена-предыдущая цена)/предыдущая цена
    • trader_rocr100 — Коэффициент изменения курса шкалы: (цена/предыдущая цена)*100
    • trader_rocr — Коэффициент изменения курса: (цена/предыдущая цена)
    • trader_rsi — Индекс относительной силы
    • trader_sar — Параболический SAR
    • trader_sarext — Параболический SAR - расширенный
    • trader_set_compat — Устанавливает режим совместимости
    • trader_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 — Тригонометрический вектор Тан
    • trader_tema — Тройная экспоненциальная скользящая средняя
    • trader_trange — Истинный диапазон
    • trader_trima — Треугольная скользящая средняя
    • trader_trix — 1-дневная скорость изменения (ROC) тройной гладкой EMA
    • trader_tsf — Прогноз временного ряда
    • trader_typprice — Типичная цена
    • trader_ultosc — Окончательный, предельный осциллятор
    • trader_var — Вариация
    • trader_wclprice — Взвешенная цена закрытия
    • trader_willr — Процентный диапазон Уильямса
    • trader_wma — Взвешенное скользящее среднее


Введение

Модуль trader - это бесплатная фондовая библиотека с открытым исходным кодом, основанная на TA-Lib. Он предназначен для разработчиков программного обеспечения для торговли, которым необходим технический анализ данных финансового рынка. Наряду со многими индикаторами, такими как ADX, MACD, RSI, Stochastic, TRIX, присутствует распознавание свечных моделей и несколько векторных арифметических и алгебраических функций.

Расчёты можно сделать в двух режимах - TA-Lib и Metastock. Изменение режима с помощью trader_set_compat() повлияет на работу некоторых функций трейдера.

Некоторые функции трейдера дают разные результаты в зависимости от "отправной точки" задействованных данных. Это часто называют функцией, имеющей воспоминания. Примером такой функции является экспоненциальная скользящая средняя. Можно управлять нестабильным периодом (объёмом данных для удаления), используя trader_set_unstable_period().

Расширенную документацию по индикаторам, формулам и реализациям на других языках программирования можно найти по ссылке » tadoc.org.


Требования

Модуль trader основан на » TA-Lib. TA-Lib полностью интегрирован в модуль, поэтому внешние библиотеки не нужны.


Установка

Этот модуль » PECL не поставляется вместе с PHP.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/trader.

DLL для этого модуля PECL доступен по ссылке » http://windows.php.net/downloads/pecl/releases/trader/.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Trader
Имя | По умолчанию | Место изменения | Список изменений
trader.real_precision | 3 | PHP_INI_ALL | С версии trader 0.2.1
trader.real_round_mode | HALF_DOWN | PHP_INI_ALL | С версии trader 0.3.0

Краткое разъяснение конфигурационных директив.

trader.real_precision int

Все значения в возвращаемых массивах будут округлены до этой точности. Однако расчёты внутри TA-Lib происходят с неокругленными значениями.

trader.real_round_mode string

Контролирует реальную политику округления trader. Допустимые значения: HALF_UP, HALF_DOWN, HALF_EVEN и HALF_ODD. Поведение идентично функции round(), используемой с аргументом mode.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

TRADER_MA_TYPE_SMA (int)
TRADER_MA_TYPE_EMA (int)
TRADER_MA_TYPE_WMA (int)
TRADER_MA_TYPE_DEMA (int)
TRADER_MA_TYPE_TEMA (int)
TRADER_MA_TYPE_TRIMA (int)
TRADER_MA_TYPE_KAMA (int)
TRADER_MA_TYPE_MAMA (int)
TRADER_MA_TYPE_T3 (int)
TRADER_REAL_MIN (float)
TRADER_REAL_MAX (float)
TRADER_FUNC_UNST_ADX (int)
TRADER_FUNC_UNST_ADXR (int)
TRADER_FUNC_UNST_ATR (int)
TRADER_FUNC_UNST_CMO (int)
TRADER_FUNC_UNST_DX (int)
TRADER_FUNC_UNST_EMA (int)
TRADER_FUNC_UNST_HT_DCPERIOD (int)
TRADER_FUNC_UNST_HT_DCPHASE (int)
TRADER_FUNC_UNST_HT_PHASOR (int)
TRADER_FUNC_UNST_HT_SINE (int)
TRADER_FUNC_UNST_HT_TRENDLINE (int)
TRADER_FUNC_UNST_HT_TRENDMODE (int)
TRADER_FUNC_UNST_KAMA (int)
TRADER_FUNC_UNST_MAMA (int)
TRADER_FUNC_UNST_MFI (int)
TRADER_FUNC_UNST_MINUS_DI (int)
TRADER_FUNC_UNST_MINUS_DM (int)
TRADER_FUNC_UNST_NATR (int)
TRADER_FUNC_UNST_PLUS_DI (int)
TRADER_FUNC_UNST_PLUS_DM (int)
TRADER_FUNC_UNST_RSI (int)
TRADER_FUNC_UNST_STOCHRSI (int)
TRADER_FUNC_UNST_T3 (int)
TRADER_FUNC_UNST_ALL (int)
TRADER_FUNC_UNST_NONE (int)
TRADER_COMPATIBILITY_DEFAULT (int)
TRADER_COMPATIBILITY_METASTOCK (int)
TRADER_ERR_SUCCESS (int)
TRADER_ERR_LIB_NOT_INITIALIZE (int)
TRADER_ERR_BAD_PARAM (int)
TRADER_ERR_ALLOC_ERR (int)
TRADER_ERR_GROUP_NOT_FOUND (int)
TRADER_ERR_FUNC_NOT_FOUND (int)
TRADER_ERR_INVALID_HANDLE (int)
TRADER_ERR_INVALID_PARAM_HOLDER (int)
TRADER_ERR_INVALID_PARAM_HOLDER_TYPE (int)
TRADER_ERR_INVALID_PARAM_FUNCTION (int)
TRADER_ERR_INPUT_NOT_ALL_INITIALIZE (int)
TRADER_ERR_OUTPUT_NOT_ALL_INITIALIZE (int)
TRADER_ERR_OUT_OF_RANGE_START_INDEX (int)
TRADER_ERR_OUT_OF_RANGE_END_INDEX (int)
TRADER_ERR_INVALID_LIST_TYPE (int)
TRADER_ERR_BAD_OBJECT (int)
TRADER_ERR_NOT_SUPPORTED (int)
TRADER_ERR_INTERNAL_ERROR (int)
TRADER_ERR_UNKNOWN_ERROR (int)


Функции 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 — Закрытие марубозу
  • trader_cdlconcealbabyswall — Прячущаяся ласточка
  • trader_cdlcounterattack — Контратака
  • trader_cdldarkcloudcover — Завеса из тёмных облаков
  • trader_cdldoji — Дожи
  • trader_cdldojistar — Дожи-звезда
  • trader_cdldragonflydoji — Стрекоза дожи
  • trader_cdlengulfing — Модель поглощения
  • trader_cdleveningdojistar — Вечерняя дожи-звезда
  • trader_cdleveningstar — Вечерняя звезда
  • trader_cdlgapsidesidewhite — Свечная модель "Смежные белые свечи"
  • trader_cdlgravestonedoji — Дожи-надгробие
  • trader_cdlhammer — Молот
  • trader_cdlhangingman — Висельник
  • trader_cdlharami — Паттерн Харами
  • trader_cdlharamicross — Паттерн "Крест Харами"
  • trader_cdlhighwave — Свечная модель "Высокая волна"
  • trader_cdlhikkake — Свечная модель "Крюк"
  • trader_cdlhikkakemod — Модифицированная свечная модель "Крюк"
  • trader_cdlhomingpigeon — Свечная модель "Почтовый голубь"
  • trader_cdlidentical3crows — Свечная модель "Три одинаковые вороны"
  • trader_cdlinneck — Свечная модель "На линии шеи"
  • trader_cdlinvertedhammer — Свечная модель "Перевёрнутый молоток"
  • trader_cdlkicking — Свечная модель "Высокий прыжок"
  • trader_cdlkickingbylength — Высокий прыжок - бык/медведь определяется по длинному марубозу
  • trader_cdlladderbottom — Свечная модель "Ступенчатое дно"
  • trader_cdllongleggeddoji — Свечная модель "Длинноногие доджи"
  • trader_cdllongline — Свечная модель "Длинная свеча"
  • trader_cdlmarubozu — Марубозу
  • trader_cdlmatchinglow — Свечная модель "Совпадение по нижнему уровню"
  • trader_cdlmathold — Фигура Подстилка
  • trader_cdlmorningdojistar — Утренняя звезда дожи
  • trader_cdlmorningstar — Утренняя звезда
  • trader_cdlonneck — Паттерн "У линии шеи"
  • trader_cdlpiercing — Паттерн "Просвет в облаках"
  • trader_cdlrickshawman — Длинноногий дожи
  • trader_cdlrisefall3methods — Бычья/медвежья модель "Три метода"
  • trader_cdlseparatinglines — Разделение
  • trader_cdlshootingstar — Падающая звезда
  • trader_cdlshortline — Свечная модель "Свеча короткой линии"
  • trader_cdlspinningtop — Волчок
  • trader_cdlstalledpattern — Торможение
  • trader_cdlsticksandwich — Прилипший сэндвич
  • trader_cdltakuri — Такури (Стрекоза Доджи с очень длинной нижней тенью)
  • trader_cdltasukigap — Разрыв Тасуки
  • trader_cdlthrusting — Свечная модель "Толчок"
  • trader_cdltristar — Свечная модель "Тристар"
  • trader_cdlunique3river — Свечная модель "Особая впадина три реки"
  • trader_cdlupsidegap2crows — Свечная модель "Перевёрнутые две вороны"
  • trader_cdlxsidegap3methods — Верх/вниз - три метода
  • trader_ceil — Вектор наибольшего целого числа
  • trader_cmo — Осциллятор ценовых моментов Чанде
  • trader_correl — Линейный коэффициент корреляции r-Пирсона
  • trader_cos — Тригонометрический вектор косинуса
  • trader_cosh — Тригонометрический вектор гиперболического косинуса
  • trader_dema — Двойная экспоненциальная скользящая средняя
  • trader_div — Арифметический вектор деления
  • trader_dx — Индекс направленного движения
  • trader_ema — Экспоненциальная скользящая средняя
  • trader_errno — Получить код ошибки
  • trader_exp — Арифметический вектор возведения в степень
  • trader_floor — Вектор наименьшего числа
  • trader_get_compat — Получает режим совместимости
  • trader_get_unstable_period — Получает нестабильный период
  • trader_ht_dcperiod — Преобразование Гильберта - период доминирующего цикла
  • trader_ht_dcphase — Преобразование Гильберта - Фаза доминирующего цикла
  • trader_ht_phasor — Преобразование Гильберта - Phasor Components
  • trader_ht_sine — Преобразование Гильберта - SineWave
  • trader_ht_trendline — Преобразование Гильберта - мгновенная линия тренда
  • trader_ht_trendmode — Преобразование Гильберта - тренд против цикла
  • trader_kama — Адаптивная скользящая средняя Кауфмана
  • trader_linearreg_angle — Линейный регрессионный угол
  • trader_linearreg_intercept — Перехват линейной регрессии
  • trader_linearreg_slope — Линейный регрессионный наклон
  • trader_linearreg — Линейная регрессия
  • trader_ln — Вектор натурального логарифма
  • trader_log10 — Вектор логарифма по основанию-10
  • trader_ma — Скользящая средняя
  • trader_macd — Скользящее среднее сходимость/дивергенция
  • trader_macdext — MACD с управляемым типом MA
  • trader_macdfix — Исправление схождения/расхождения скользящей средней 12/26
  • trader_mama — MESA Адаптивная скользящая средняя
  • trader_mavp — Скользящая средняя с переменным периодом
  • trader_max — Наибольшее значение за указанный период
  • trader_maxindex — Индекс наибольшего значения за указанный период
  • trader_medprice — Средняя цена
  • trader_mfi — Индекс денежных потоков
  • trader_midpoint — Середина отрезка за период
  • trader_midprice — Средняя цена за период
  • trader_min — Наименьшее значение за указанный период
  • trader_minindex — Индекс наименьшего значения за определённый период
  • trader_minmax — Самые низкие и самые высокие значения за указанный период
  • trader_minmaxindex — Индексы самых низких и самых высоких значений за указанный период
  • trader_minus_di — Минус-направленный индикатор
  • trader_minus_dm — Минус-направленное движение
  • trader_mom — Моментум
  • trader_mult — Арифметический вектор произведения
  • trader_natr — Нормализованный средний истинный диапазон
  • trader_obv — Индикатор Балансового объёма
  • trader_plus_di — Плюс-направленный индикатор
  • trader_plus_dm — Плюс-направленное движение
  • trader_ppo — Процентный ценовой осциллятор
  • trader_roc — Скорость изменения: ((цена/предыдущая цена)-1)*100
  • trader_rocp — Коэффициент изменения в процентах: (цена-предыдущая цена)/предыдущая цена
  • trader_rocr100 — Коэффициент изменения курса шкалы: (цена/предыдущая цена)*100
  • trader_rocr — Коэффициент изменения курса: (цена/предыдущая цена)
  • trader_rsi — Индекс относительной силы
  • trader_sar — Параболический SAR
  • trader_sarext — Параболический SAR - расширенный
  • trader_set_compat — Устанавливает режим совместимости
  • trader_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 — Тригонометрический вектор Тан
  • trader_tema — Тройная экспоненциальная скользящая средняя
  • trader_trange — Истинный диапазон
  • trader_trima — Треугольная скользящая средняя
  • trader_trix — 1-дневная скорость изменения (ROC) тройной гладкой EMA
  • trader_tsf — Прогноз временного ряда
  • trader_typprice — Типичная цена
  • trader_ultosc — Окончательный, предельный осциллятор
  • trader_var — Вариация
  • trader_wclprice — Взвешенная цена закрытия
  • trader_willr — Процентный диапазон Уильямса
  • 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 в случае возникновения ошибки.


Закрытие марубозу

  • « trader_cdlbreakaway
  • trader_cdlconcealbabyswall »
  • PHP Manual
  • Функции Trader
  • Закрытие марубозу

trader_cdlclosingmarubozu

(PECL trader >= 0.2.0)

trader_cdlclosingmarubozu — Закрытие марубозу

Описание

trader_cdlclosingmarubozu(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Прячущаяся ласточка

  • « 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 в случае возникновения ошибки.


Свечная модель "Смежные белые свечи"

  • « trader_cdleveningstar
  • trader_cdlgravestonedoji »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Смежные белые свечи"

trader_cdlgapsidesidewhite

(PECL trader >= 0.2.0)

trader_cdlgapsidesidewhite — Свечная модель "Смежные белые свечи"

Описание

trader_cdlgapsidesidewhite(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Дожи-надгробие

  • « 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 в случае возникновения ошибки.


Свечная модель "Высокая волна"

  • « trader_cdlharamicross
  • trader_cdlhikkake »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Высокая волна"

trader_cdlhighwave

(PECL trader >= 0.2.0)

trader_cdlhighwave — Свечная модель "Высокая волна"

Описание

trader_cdlhighwave(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Крюк"

  • « trader_cdlhighwave
  • trader_cdlhikkakemod »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Крюк"

trader_cdlhikkake

(PECL trader >= 0.2.0)

trader_cdlhikkake — Свечная модель "Крюк"

Описание

trader_cdlhikkake(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Модифицированная свечная модель "Крюк"

  • « trader_cdlhikkake
  • trader_cdlhomingpigeon »
  • PHP Manual
  • Функции Trader
  • Модифицированная свечная модель "Крюк"

trader_cdlhikkakemod

(PECL trader >= 0.2.0)

trader_cdlhikkakemod — Модифицированная свечная модель "Крюк"

Описание

trader_cdlhikkakemod(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Почтовый голубь"

  • « trader_cdlhikkakemod
  • trader_cdlidentical3crows »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Почтовый голубь"

trader_cdlhomingpigeon

(PECL trader >= 0.2.0)

trader_cdlhomingpigeon — Свечная модель "Почтовый голубь"

Описание

trader_cdlhomingpigeon(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Три одинаковые вороны"

  • « trader_cdlhomingpigeon
  • trader_cdlinneck »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Три одинаковые вороны"

trader_cdlidentical3crows

(PECL trader >= 0.2.0)

trader_cdlidentical3crows — Свечная модель "Три одинаковые вороны"

Описание

trader_cdlidentical3crows(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "На линии шеи"

  • « trader_cdlidentical3crows
  • trader_cdlinvertedhammer »
  • PHP Manual
  • Функции Trader
  • Свечная модель "На линии шеи"

trader_cdlinneck

(PECL trader >= 0.2.0)

trader_cdlinneck — Свечная модель "На линии шеи"

Описание

trader_cdlinneck(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Перевёрнутый молоток"

  • « trader_cdlinneck
  • trader_cdlkicking »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Перевёрнутый молоток"

trader_cdlinvertedhammer

(PECL trader >= 0.2.0)

trader_cdlinvertedhammer — Свечная модель "Перевёрнутый молоток"

Описание

trader_cdlinvertedhammer(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Высокий прыжок"

  • « trader_cdlinvertedhammer
  • trader_cdlkickingbylength »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Высокий прыжок"

trader_cdlkicking

(PECL trader >= 0.2.0)

trader_cdlkicking — Свечная модель "Высокий прыжок"

Описание

trader_cdlkicking(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Высокий прыжок - бык/медведь определяется по длинному марубозу

  • « trader_cdlkicking
  • trader_cdlladderbottom »
  • PHP Manual
  • Функции Trader
  • Высокий прыжок - бык/медведь определяется по длинному марубозу

trader_cdlkickingbylength

(PECL trader >= 0.2.0)

trader_cdlkickingbylength — Высокий прыжок - бык/медведь определяется по длинному марубозу

Описание

trader_cdlkickingbylength(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Ступенчатое дно"

  • « trader_cdlkickingbylength
  • trader_cdllongleggeddoji »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Ступенчатое дно"

trader_cdlladderbottom

(PECL trader >= 0.2.0)

trader_cdlladderbottom — Свечная модель "Ступенчатое дно"

Описание

trader_cdlladderbottom(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Длинноногие доджи"

  • « trader_cdlladderbottom
  • trader_cdllongline »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Длинноногие доджи"

trader_cdllongleggeddoji

(PECL trader >= 0.2.0)

trader_cdllongleggeddoji — Свечная модель "Длинноногие доджи"

Описание

trader_cdllongleggeddoji(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Длинная свеча"

  • « trader_cdllongleggeddoji
  • trader_cdlmarubozu »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Длинная свеча"

trader_cdllongline

(PECL trader >= 0.2.0)

trader_cdllongline — Свечная модель "Длинная свеча"

Описание

trader_cdllongline(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Марубозу

  • « trader_cdllongline
  • trader_cdlmatchinglow »
  • PHP Manual
  • Функции Trader
  • Марубозу

trader_cdlmarubozu

(PECL trader >= 0.2.0)

trader_cdlmarubozu — Марубозу

Описание

trader_cdlmarubozu(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Совпадение по нижнему уровню"

  • « trader_cdlmarubozu
  • trader_cdlmathold »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Совпадение по нижнему уровню"

trader_cdlmatchinglow

(PECL trader >= 0.2.0)

trader_cdlmatchinglow — Свечная модель "Совпадение по нижнему уровню"

Описание

trader_cdlmatchinglow(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Фигура Подстилка

  • « 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 в случае возникновения ошибки.


Свечная модель "Свеча короткой линии"

  • « trader_cdlshootingstar
  • trader_cdlspinningtop »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Свеча короткой линии"

trader_cdlshortline

(PECL trader >= 0.2.0)

trader_cdlshortline — Свечная модель "Свеча короткой линии"

Описание

trader_cdlshortline(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Волчок

  • « 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 в случае возникновения ошибки.


Такури (Стрекоза Доджи с очень длинной нижней тенью)

  • « trader_cdlsticksandwich
  • trader_cdltasukigap »
  • PHP Manual
  • Функции Trader
  • Такури (Стрекоза Доджи с очень длинной нижней тенью)

trader_cdltakuri

(PECL trader >= 0.2.0)

trader_cdltakuri — Такури (Стрекоза Доджи с очень длинной нижней тенью)

Описание

trader_cdltakuri(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Разрыв Тасуки

  • « trader_cdltakuri
  • trader_cdlthrusting »
  • PHP Manual
  • Функции Trader
  • Разрыв Тасуки

trader_cdltasukigap

(PECL trader >= 0.2.0)

trader_cdltasukigap — Разрыв Тасуки

Описание

trader_cdltasukigap(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Толчок"

  • « trader_cdltasukigap
  • trader_cdltristar »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Толчок"

trader_cdlthrusting

(PECL trader >= 0.2.0)

trader_cdlthrusting — Свечная модель "Толчок"

Описание

trader_cdlthrusting(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Тристар"

  • « trader_cdlthrusting
  • trader_cdlunique3river »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Тристар"

trader_cdltristar

(PECL trader >= 0.2.0)

trader_cdltristar — Свечная модель "Тристар"

Описание

trader_cdltristar(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Особая впадина три реки"

  • « trader_cdltristar
  • trader_cdlupsidegap2crows »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Особая впадина три реки"

trader_cdlunique3river

(PECL trader >= 0.2.0)

trader_cdlunique3river — Свечная модель "Особая впадина три реки"

Описание

trader_cdlunique3river(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Свечная модель "Перевёрнутые две вороны"

  • « trader_cdlunique3river
  • trader_cdlxsidegap3methods »
  • PHP Manual
  • Функции Trader
  • Свечная модель "Перевёрнутые две вороны"

trader_cdlupsidegap2crows

(PECL trader >= 0.2.0)

trader_cdlupsidegap2crows — Свечная модель "Перевёрнутые две вороны"

Описание

trader_cdlupsidegap2crows(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Верх/вниз - три метода

  • « trader_cdlupsidegap2crows
  • trader_ceil »
  • PHP Manual
  • Функции Trader
  • Верх/вниз - три метода

trader_cdlxsidegap3methods

(PECL trader >= 0.2.0)

trader_cdlxsidegap3methods — Верх/вниз - три метода

Описание

trader_cdlxsidegap3methods(
array $open,
array $high,
array $low,
array $close
): array

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Вектор наибольшего целого числа

  • « trader_cdlxsidegap3methods
  • trader_cmo »
  • PHP Manual
  • Функции Trader
  • Вектор наибольшего целого числа

trader_ceil

(PECL trader >= 0.2.0)

trader_ceil — Вектор наибольшего целого числа

Описание

trader_ceil(array $real): array

Вычисляет следующее наибольшее целое число для каждого значения в real и возвращает полученный массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Осциллятор ценовых моментов Чанде

  • « trader_ceil
  • trader_correl »
  • PHP Manual
  • Функции Trader
  • Осциллятор ценовых моментов Чанде

trader_cmo

(PECL trader >= 0.2.0)

trader_cmo — Осциллятор ценовых моментов Чанде

Описание

trader_cmo(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Линейный коэффициент корреляции r-Пирсона

  • « trader_cmo
  • trader_cos »
  • PHP Manual
  • Функции Trader
  • Линейный коэффициент корреляции r-Пирсона

trader_correl

(PECL trader >= 0.2.0)

trader_correl — Линейный коэффициент корреляции r-Пирсона

Описание

trader_correl(array $real0, array $real1, int $timePeriod = ?): array

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Тригонометрический вектор косинуса

  • « trader_correl
  • trader_cosh »
  • PHP Manual
  • Функции Trader
  • Тригонометрический вектор косинуса

trader_cos

(PECL trader >= 0.2.0)

trader_cos — Тригонометрический вектор косинуса

Описание

trader_cos(array $real): array

Вычисляет косинус для каждого значения в real и возвращает полученный массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Тригонометрический вектор гиперболического косинуса

  • « trader_cos
  • trader_dema »
  • PHP Manual
  • Функции Trader
  • Тригонометрический вектор гиперболического косинуса

trader_cosh

(PECL trader >= 0.2.0)

trader_cosh — Тригонометрический вектор гиперболического косинуса

Описание

trader_cosh(array $real): array

Вычисляет гиперболический косинус для каждого значения в real и возвращает полученный массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Двойная экспоненциальная скользящая средняя

  • « trader_cosh
  • trader_div »
  • PHP Manual
  • Функции Trader
  • Двойная экспоненциальная скользящая средняя

trader_dema

(PECL trader >= 0.2.0)

trader_dema — Двойная экспоненциальная скользящая средняя

Описание

trader_dema(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Арифметический вектор деления

  • « trader_dema
  • trader_dx »
  • PHP Manual
  • Функции Trader
  • Арифметический вектор деления

trader_div

(PECL trader >= 0.2.0)

trader_div — Арифметический вектор деления

Описание

trader_div(array $real0, array $real1): array

Делит каждое значение из real0 на соответствующее значение из real1 и возвращает полученный массив.

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Индекс направленного движения

  • « trader_div
  • trader_ema »
  • PHP Manual
  • Функции Trader
  • Индекс направленного движения

trader_dx

(PECL trader >= 0.2.0)

trader_dx — Индекс направленного движения

Описание

trader_dx(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Экспоненциальная скользящая средняя

  • « trader_dx
  • trader_errno »
  • PHP Manual
  • Функции Trader
  • Экспоненциальная скользящая средняя

trader_ema

(PECL trader >= 0.2.0)

trader_ema — Экспоненциальная скользящая средняя

Описание

trader_ema(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Получить код ошибки

  • « trader_ema
  • trader_exp »
  • PHP Manual
  • Функции Trader
  • Получить код ошибки

trader_errno

(PECL trader >= 0.3.0)

trader_errno — Получить код ошибки

Описание

trader_errno(): int

Получить код ошибки последней операции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ошибки, идентифицированный одной из TRADER_ERR_* констант.


Арифметический вектор возведения в степень

  • « trader_errno
  • trader_floor »
  • PHP Manual
  • Функции Trader
  • Арифметический вектор возведения в степень

trader_exp

(PECL trader >= 0.2.0)

trader_exp — Арифметический вектор возведения в степень

Описание

trader_exp(array $real): array

Вычисляет e, возведённую в степень каждого значения в real. Возвращает массив с рассчитанными данными.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Вектор наименьшего числа

  • « trader_exp
  • trader_get_compat »
  • PHP Manual
  • Функции Trader
  • Вектор наименьшего числа

trader_floor

(PECL trader >= 0.2.0)

trader_floor — Вектор наименьшего числа

Описание

trader_floor(array $real): array

Вычисляет следующее наименьшее целое число для каждого значения в real и возвращает полученный массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Получает режим совместимости

  • « trader_floor
  • trader_get_unstable_period »
  • PHP Manual
  • Функции Trader
  • Получает режим совместимости

trader_get_compat

(PECL trader >= 0.2.2)

trader_get_compat — Получает режим совместимости

Описание

trader_get_compat(): int

Получает режим совместимости, который влияет на способ выполнения вычислений всеми функциями модуля.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор режима совместимости, который можно определить по константам TRADER_COMPATIBILITY_*.


Получает нестабильный период

  • « trader_get_compat
  • trader_ht_dcperiod »
  • PHP Manual
  • Функции Trader
  • Получает нестабильный период

trader_get_unstable_period

(PECL trader >= 0.2.2)

trader_get_unstable_period — Получает нестабильный период

Описание

trader_get_unstable_period(int $functionId): int

Получает нестабильный коэффициент периода для конкретной функции.

Список параметров

functionId

Идентификатор функции, для которого нужно прочитать фактор. Следует использовать серию констант TRADER_FUNC_UNST_*.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Преобразование Гильберта - период доминирующего цикла

  • « trader_get_unstable_period
  • trader_ht_dcphase »
  • PHP Manual
  • Функции Trader
  • Преобразование Гильберта - период доминирующего цикла

trader_ht_dcperiod

(PECL trader >= 0.2.0)

trader_ht_dcperiod — Преобразование Гильберта - период доминирующего цикла

Описание

trader_ht_dcperiod(array $real): array

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Преобразование Гильберта - Фаза доминирующего цикла

  • « trader_ht_dcperiod
  • trader_ht_phasor »
  • PHP Manual
  • Функции Trader
  • Преобразование Гильберта - Фаза доминирующего цикла

trader_ht_dcphase

(PECL trader >= 0.2.0)

trader_ht_dcphase — Преобразование Гильберта - Фаза доминирующего цикла

Описание

trader_ht_dcphase(array $real): array

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Преобразование Гильберта - Phasor Components

  • « trader_ht_dcphase
  • trader_ht_sine »
  • PHP Manual
  • Функции Trader
  • Преобразование Гильберта - Phasor Components

trader_ht_phasor

(PECL trader >= 0.2.0)

trader_ht_phasor — Преобразование Гильберта - Phasor Components

Описание

trader_ht_phasor(array $real): array

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Преобразование Гильберта - SineWave

  • « trader_ht_phasor
  • trader_ht_trendline »
  • PHP Manual
  • Функции Trader
  • Преобразование Гильберта - SineWave

trader_ht_sine

(PECL trader >= 0.2.0)

trader_ht_sine — Преобразование Гильберта - SineWave

Описание

trader_ht_sine(array $real): array

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Преобразование Гильберта - мгновенная линия тренда

  • « trader_ht_sine
  • trader_ht_trendmode »
  • PHP Manual
  • Функции Trader
  • Преобразование Гильберта - мгновенная линия тренда

trader_ht_trendline

(PECL trader >= 0.2.0)

trader_ht_trendline — Преобразование Гильберта - мгновенная линия тренда

Описание

trader_ht_trendline(array $real): array

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Преобразование Гильберта - тренд против цикла

  • « trader_ht_trendline
  • trader_kama »
  • PHP Manual
  • Функции Trader
  • Преобразование Гильберта - тренд против цикла

trader_ht_trendmode

(PECL trader >= 0.2.0)

trader_ht_trendmode — Преобразование Гильберта - тренд против цикла

Описание

trader_ht_trendmode(array $real): array

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Адаптивная скользящая средняя Кауфмана

  • « 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 в случае возникновения ошибки.


Вектор натурального логарифма

  • « trader_linearreg
  • trader_log10 »
  • PHP Manual
  • Функции Trader
  • Вектор натурального логарифма

trader_ln

(PECL trader >= 0.2.0)

trader_ln — Вектор натурального логарифма

Описание

trader_ln(array $real): array

Вычисляет натуральный логарифм для каждого значения в real и возвращает полученный массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Вектор логарифма по основанию-10

  • « trader_ln
  • trader_ma »
  • PHP Manual
  • Функции Trader
  • Вектор логарифма по основанию-10

trader_log10

(PECL trader >= 0.2.0)

trader_log10 — Вектор логарифма по основанию-10

Описание

trader_log10(array $real): array

Вычисляет логарифм по основанию-10 для каждого значения в real и возвращает полученный массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Скользящая средняя

  • « 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 с управляемым типом MA

  • « trader_macd
  • trader_macdfix »
  • PHP Manual
  • Функции Trader
  • MACD с управляемым типом MA

trader_macdext

(PECL trader >= 0.2.0)

trader_macdext — MACD с управляемым типом MA

Описание

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_*.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Исправление схождения/расхождения скользящей средней 12/26

  • « trader_macdext
  • trader_mama »
  • PHP Manual
  • Функции Trader
  • Исправление схождения/расхождения скользящей средней 12/26

trader_macdfix

(PECL trader >= 0.2.0)

trader_macdfix — Исправление схождения/расхождения скользящей средней 12/26

Описание

trader_macdfix(array $real, int $signalPeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

signalPeriod

Сглаживание для сигнальной линии (номер периода). Допустимы значения от 1 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


MESA Адаптивная скользящая средняя

  • « trader_macdfix
  • trader_mavp »
  • PHP Manual
  • Функции Trader
  • MESA Адаптивная скользящая средняя

trader_mama

(PECL trader >= 0.2.0)

trader_mama — MESA Адаптивная скользящая средняя

Описание

trader_mama(array $real, float $fastLimit = ?, float $slowLimit = ?): array

Список параметров

real

Массив, содержащий реальные значения.

fastLimit

Верхний предел, используемый в адаптивном алгоритме. Допустимы значения от 0.01 до 0.99.

slowLimit

Нижний предел, используемый в адаптивном алгоритме. Допустимы значения от 0.01 до 0.99.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Скользящая средняя с переменным периодом

  • « trader_mama
  • trader_max »
  • PHP Manual
  • Функции Trader
  • Скользящая средняя с переменным периодом

trader_mavp

(PECL trader >= 0.2.0)

trader_mavp — Скользящая средняя с переменным периодом

Описание

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_*.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Наибольшее значение за указанный период

  • « trader_mavp
  • trader_maxindex »
  • PHP Manual
  • Функции Trader
  • Наибольшее значение за указанный период

trader_max

(PECL trader >= 0.2.0)

trader_max — Наибольшее значение за указанный период

Описание

trader_max(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Индекс наибольшего значения за указанный период

  • « trader_max
  • trader_medprice »
  • PHP Manual
  • Функции Trader
  • Индекс наибольшего значения за указанный период

trader_maxindex

(PECL trader >= 0.2.0)

trader_maxindex — Индекс наибольшего значения за указанный период

Описание

trader_maxindex(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Средняя цена

  • « 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 в случае возникновения ошибки.


Середина отрезка за период

  • « trader_mfi
  • trader_midprice »
  • PHP Manual
  • Функции Trader
  • Середина отрезка за период

trader_midpoint

(PECL trader >= 0.2.0)

trader_midpoint — Середина отрезка за период

Описание

trader_midpoint(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Средняя цена за период

  • « trader_midpoint
  • trader_min »
  • PHP Manual
  • Функции Trader
  • Средняя цена за период

trader_midprice

(PECL trader >= 0.2.0)

trader_midprice — Средняя цена за период

Описание

trader_midprice(array $high, array $low, int $timePeriod = ?): array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Наименьшее значение за указанный период

  • « trader_midprice
  • trader_minindex »
  • PHP Manual
  • Функции Trader
  • Наименьшее значение за указанный период

trader_min

(PECL trader >= 0.2.0)

trader_min — Наименьшее значение за указанный период

Описание

trader_min(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Индекс наименьшего значения за определённый период

  • « 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 в случае возникновения ошибки.


Самые низкие и самые высокие значения за указанный период

  • « trader_minindex
  • trader_minmaxindex »
  • PHP Manual
  • Функции Trader
  • Самые низкие и самые высокие значения за указанный период

trader_minmax

(PECL trader >= 0.2.0)

trader_minmax — Самые низкие и самые высокие значения за указанный период

Описание

trader_minmax(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Индексы самых низких и самых высоких значений за указанный период

  • « trader_minmax
  • trader_minus_di »
  • PHP Manual
  • Функции Trader
  • Индексы самых низких и самых высоких значений за указанный период

trader_minmaxindex

(PECL trader >= 0.2.0)

trader_minmaxindex — Индексы самых низких и самых высоких значений за указанный период

Описание

trader_minmaxindex(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Минус-направленный индикатор

  • « 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 в случае возникновения ошибки.


Арифметический вектор произведения

  • « trader_mom
  • trader_natr »
  • PHP Manual
  • Функции Trader
  • Арифметический вектор произведения

trader_mult

(PECL trader >= 0.2.0)

trader_mult — Арифметический вектор произведения

Описание

trader_mult(array $real0, array $real1): array

Вычисляет произведение векторной точки для real0 с помощью real1 и возвращает полученный вектор.

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Нормализованный средний истинный диапазон

  • « trader_mult
  • trader_obv »
  • PHP Manual
  • Функции Trader
  • Нормализованный средний истинный диапазон

trader_natr

(PECL trader >= 0.2.0)

trader_natr — Нормализованный средний истинный диапазон

Описание

trader_natr(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Индикатор Балансового объёма

  • « 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 в случае возникновения ошибки.


Скорость изменения: ((цена/предыдущая цена)-1)*100

  • « trader_ppo
  • trader_rocp »
  • PHP Manual
  • Функции Trader
  • Скорость изменения: ((цена/предыдущая цена)-1)*100

trader_roc

(PECL trader >= 0.2.0)

trader_roc — Скорость изменения: ((цена/предыдущая цена)-1)*100

Описание

trader_roc(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Коэффициент изменения в процентах: (цена-предыдущая цена)/предыдущая цена

  • « trader_roc
  • trader_rocr100 »
  • PHP Manual
  • Функции Trader
  • Коэффициент изменения в процентах: (цена-предыдущая цена)/предыдущая цена

trader_rocp

(PECL trader >= 0.2.0)

trader_rocp — Коэффициент изменения в процентах: (цена-предыдущая цена)/предыдущая цена

Описание

trader_rocp(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Коэффициент изменения курса шкалы: (цена/предыдущая цена)*100

  • « trader_rocp
  • trader_rocr »
  • PHP Manual
  • Функции Trader
  • Коэффициент изменения курса шкалы: (цена/предыдущая цена)*100

trader_rocr100

(PECL trader >= 0.2.0)

trader_rocr100 — Коэффициент изменения курса шкалы: (цена/предыдущая цена)*100

Описание

trader_rocr100(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Коэффициент изменения курса: (цена/предыдущая цена)

  • « trader_rocr100
  • trader_rsi »
  • PHP Manual
  • Функции Trader
  • Коэффициент изменения курса: (цена/предыдущая цена)

trader_rocr

(PECL trader >= 0.2.0)

trader_rocr — Коэффициент изменения курса: (цена/предыдущая цена)

Описание

trader_rocr(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Индекс относительной силы

  • « 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 в случае возникновения ошибки.


Параболический SAR

  • « trader_rsi
  • trader_sarext »
  • PHP Manual
  • Функции Trader
  • Параболический SAR

trader_sar

(PECL trader >= 0.2.0)

trader_sar — Параболический SAR

Описание

trader_sar(
array $high,
array $low,
float $acceleration = ?,
float $maximum = ?
): array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

acceleration

Коэффициент ускорения используется до максимального значения. Допустимый диапазон от 0 до TRADER_REAL_MAX.

maximum

Коэффициент ускорения Максимальное значение. Допустимый диапазон от 0 до TRADER_REAL_MAX.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Параболический SAR - расширенный

  • « trader_sar
  • trader_set_compat »
  • PHP Manual
  • Функции Trader
  • Параболический SAR - расширенный

trader_sarext

(PECL trader >= 0.2.0)

trader_sarext — Параболический SAR - расширенный

Описание

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

Начальное значение и направление. 0 для автоматического направления, > 0 для длинного направления, < 0 для короткого направления. Допустимый диапазон от TRADER_REAL_MIN до TRADER_REAL_MAX.

offsetOnReverse

Процентное смещение добавлено/удалено к начальной остановке при коротком/длинном развороте. Допустимый диапазон от 0 до TRADER_REAL_MAX.

accelerationInitLong

Начальное значение коэффициента ускорения для длинного направления. Допустимый диапазон от 0 до TRADER_REAL_MAX.

accelerationLong

Коэффициент ускорения для длинного направления. Допустимый диапазон от 0 до TRADER_REAL_MAX.

accelerationMaxLong

Максимальное значение коэффициента ускорения для длинного направления. Допустимый диапазон от 0 до TRADER_REAL_MAX.

accelerationInitShort

Начальное значение коэффициента ускорения для короткого направления. Допустимый диапазон от 0 до TRADER_REAL_MAX.

accelerationShort

Коэффициент ускорения для короткого направления. Допустимый диапазон от 0 до TRADER_REAL_MAX.

accelerationMaxShort

Максимальное значение коэффициента ускорения для короткого направления. Допустимый диапазон от 0 до TRADER_REAL_MAX.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Устанавливает режим совместимости

  • « trader_sarext
  • trader_set_unstable_period »
  • PHP Manual
  • Функции Trader
  • Устанавливает режим совместимости

trader_set_compat

(PECL trader >= 0.2.2)

trader_set_compat — Устанавливает режим совместимости

Описание

trader_set_compat(int $compatId): void

Устанавливает режим совместимости, который влияет на способ выполнения вычислений всеми функциями модуля.

Список параметров

compatId

Идентификатор совместимости. Используется серия констант TRADER_COMPATIBILITY_*.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Устанавливает нестабильный период

  • « trader_set_compat
  • trader_sin »
  • PHP Manual
  • Функции Trader
  • Устанавливает нестабильный период

trader_set_unstable_period

(PECL trader >= 0.2.2)

trader_set_unstable_period — Устанавливает нестабильный период

Описание

trader_set_unstable_period(int $functionId, int $timePeriod): void

Влияет на фактор нестабильного периода для чувствительных к нему функций. Дополнительную информацию о нестабильных периодах можно найти на странице документации по API » TA-Lib.

Список параметров

functionId

Идентификатор функции, для которой должен быть установлен коэффициент. Серия констант TRADER_FUNC_UNST_* может использоваться для воздействия на соответствующую функцию.

timePeriod

Значение нестабильного периода.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Векторный тригонометрический синус

  • « 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 в случае возникновения ошибки.


Тригонометрический вектор Тан

  • « trader_tan
  • trader_tema »
  • PHP Manual
  • Функции Trader
  • Тригонометрический вектор Тан

trader_tanh

(PECL trader >= 0.2.0)

trader_tanh — Тригонометрический вектор Тан

Описание

trader_tanh(array $real): array

Вычисляет гиперболический тангенс для каждого значения в real и возвращает полученный массив.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Тройная экспоненциальная скользящая средняя

  • « 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-дневная скорость изменения (ROC) тройной гладкой EMA

  • « trader_trima
  • trader_tsf »
  • PHP Manual
  • Функции Trader
  • 1-дневная скорость изменения (ROC) тройной гладкой EMA

trader_trix

(PECL trader >= 0.2.0)

trader_trix — 1-дневная скорость изменения (ROC) тройной гладкой EMA

Описание

trader_trix(array $real, int $timePeriod = ?): array

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Прогноз временного ряда

  • « 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 в случае возникновения ошибки.


Процентный диапазон Уильямса

  • « trader_wclprice
  • trader_wma »
  • PHP Manual
  • Функции Trader
  • Процентный диапазон Уильямса

trader_willr

(PECL trader >= 0.2.0)

trader_willr — Процентный диапазон Уильямса

Описание

trader_willr(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Возвращает массив с вычисленными данными или false в случае возникновения ошибки.


Взвешенное скользящее среднее

  • « 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 Функции
  • wkhtmltox
    • Введение
    • Установка и настройка
    • wkhtmltox\PDF\Converter — Класс wkhtmltox\PDF\Converter
    • wkhtmltox\PDF\Object — Класс wkhtmltox\PDF\Object
    • wkhtmltox\Image\Converter — Класс wkhtmltox\Image\Converter
  • PS — Создание документов PostScript
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции PS
  • RpmInfo
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции RpmInfo
  • XLSWriter
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Vtiful\Kernel\Excel — Класс Vtiful\Kernel\Excel
    • Vtiful\Kernel\Format — Класс Vtiful\Kernel\Format


Формат данных форм

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
  • FDF
    • fdf_add_doc_javascript — Добавляет код javascript в документ FDF
    • fdf_add_template — Добавляет шаблон в FDF-документ
    • fdf_close — Закрывает FDF-документ
    • fdf_create — Создаёт новый документ FDF
    • fdf_enum_values — Вызывает пользовательскую функцию для каждого значения документа
    • fdf_errno — Возвращает код ошибки для последней операции FDF
    • fdf_error — Возвращает описание ошибки для кода ошибки FDF
    • fdf_get_ap — Получает вид поля
    • fdf_get_attachment — Извлекает загруженный файл, встроенный в FDF
    • fdf_get_encoding — Получает значение ключа /Encoding
    • fdf_get_file — Получает значение ключа /F
    • fdf_get_flags — Получает флаги поля
    • fdf_get_opt — Получает значение из массива opt поля
    • fdf_get_status — Получает значение ключа /STATUS
    • fdf_get_value — Получает значение поля
    • fdf_get_version — Получает номер версии для FDF API или файла
    • fdf_header — Устанавливает специфичные для FDF выходные заголовки
    • fdf_next_field_name — Получает имя следующего поля
    • fdf_open_string — Читает FDF документ из строки
    • fdf_open — Открывает документ FDF
    • fdf_remove_item — Устанавливает целевой фрейм для формы
    • fdf_save_string — Возвращает документ FDF в виде строки
    • fdf_save — Сохраняет документ FDF
    • fdf_set_ap — Устанавливает внешний вид поля
    • fdf_set_encoding — Устанавливает кодировку символов FDF
    • fdf_set_file — Устанавливает PDF-документ для отображения данных FDF
    • fdf_set_flags — Устанавливает флаг поля
    • fdf_set_javascript_action — Устанавливает действие javascript для поля
    • fdf_set_on_import_javascript — Добавляет код JavaScript, который будет выполняться, когда Acrobat открывает FDF
    • fdf_set_opt — Устанавливает параметры поля
    • fdf_set_status — Устанавливает значение ключа /STATUS
    • fdf_set_submit_form_action — Устанавливает действие формы отправки поля
    • fdf_set_target_frame — Устанавливает целевой фрейм для отображения формы
    • fdf_set_value — Устанавливает значение поля
    • fdf_set_version — Устанавливает номер версии для файла FDF


Введение

Формат данных форм (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.

Замечание: Если у вас возникли проблемы при конфигурировании поддержки 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 (int)
FDFStatus (int)
FDFFile (int)
FDFID (int)
FDFFf (int)
FDFSetFf (int)
FDFClearFf (int)
FDFFlags (int)
FDFSetF (int)
FDFClrF (int)
FDFAP (int)
FDFAS (int)
FDFAction (int)
FDFAA (int)
FDFAPRef (int)
FDFIF (int)
FDFEnter (int)
FDFExit (int)
FDFDown (int)
FDFUp (int)
FDFFormat (int)
FDFValidate (int)
FDFKeystroke (int)
FDFCalculate (int)
FDFNormalAP (int)
FDFRolloverAP (int)
FDFDownAP (int)


Примеры

Следующий пример демонстрирует простую обработку данных.

Пример #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 — Добавляет код javascript в документ FDF
  • fdf_add_template — Добавляет шаблон в FDF-документ
  • fdf_close — Закрывает FDF-документ
  • fdf_create — Создаёт новый документ FDF
  • fdf_enum_values — Вызывает пользовательскую функцию для каждого значения документа
  • fdf_errno — Возвращает код ошибки для последней операции FDF
  • fdf_error — Возвращает описание ошибки для кода ошибки FDF
  • fdf_get_ap — Получает вид поля
  • fdf_get_attachment — Извлекает загруженный файл, встроенный в FDF
  • fdf_get_encoding — Получает значение ключа /Encoding
  • fdf_get_file — Получает значение ключа /F
  • fdf_get_flags — Получает флаги поля
  • fdf_get_opt — Получает значение из массива opt поля
  • fdf_get_status — Получает значение ключа /STATUS
  • fdf_get_value — Получает значение поля
  • fdf_get_version — Получает номер версии для FDF API или файла
  • fdf_header — Устанавливает специфичные для FDF выходные заголовки
  • fdf_next_field_name — Получает имя следующего поля
  • fdf_open_string — Читает FDF документ из строки
  • fdf_open — Открывает документ FDF
  • fdf_remove_item — Устанавливает целевой фрейм для формы
  • fdf_save_string — Возвращает документ FDF в виде строки
  • fdf_save — Сохраняет документ FDF
  • fdf_set_ap — Устанавливает внешний вид поля
  • fdf_set_encoding — Устанавливает кодировку символов FDF
  • fdf_set_file — Устанавливает PDF-документ для отображения данных FDF
  • fdf_set_flags — Устанавливает флаг поля
  • fdf_set_javascript_action — Устанавливает действие javascript для поля
  • fdf_set_on_import_javascript — Добавляет код JavaScript, который будет выполняться, когда Acrobat открывает FDF
  • fdf_set_opt — Устанавливает параметры поля
  • fdf_set_status — Устанавливает значение ключа /STATUS
  • fdf_set_submit_form_action — Устанавливает действие формы отправки поля
  • fdf_set_target_frame — Устанавливает целевой фрейм для отображения формы
  • fdf_set_value — Устанавливает значение поля
  • fdf_set_version — Устанавливает номер версии для файла FDF


Добавляет код javascript в документ FDF

  • « FDF
  • fdf_add_template »
  • PHP Manual
  • FDF
  • Добавляет код javascript в документ FDF

fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_add_doc_javascript — Добавляет код javascript в документ FDF

Описание

fdf_add_doc_javascript(resource $fdf_document, string $script_name, string $script_code): bool

Добавляет скрипт в FDF, который Acrobat затем добавляет в скрипт документа на уровне документа после того, как в него будет импортирован FDF.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() или fdf_open_string().

script_name

Имя скрипта.

script_code

Код скрипта. Настоятельно рекомендуется использовать \r для переноса строк в коде скрипта.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Добавление кода JavaScript в FDF

<?php
$fdf = fdf_create();
fdf_add_doc_javascript($fdf, "PlusOne", "function PlusOne(x)\r{\r return x+1;\r}\r");
fdf_save($fdf);
?>

создаст FDF следующим образом:

%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 < 5.3.0, PECL fdf SVN)

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 < 5.3.0, PECL fdf SVN)

fdf_close — Закрывает FDF-документ

Описание

fdf_close(resource $fdf_document): void

Закрывает FDF-документ.

Список параметров

fdf_document

Дескриптор FDF-документа, возвращённый функциями fdf_create(), fdf_open() или fdf_open_string().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • fdf_open() - Открывает документ FDF


Создаёт новый документ FDF

  • « fdf_close
  • fdf_enum_values »
  • PHP Manual
  • FDF
  • Создаёт новый документ FDF

fdf_create

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_create — Создаёт новый документ FDF

Описание

fdf_create(): resource

Создаёт новый документ FDF.

Функция необходима, если нужно заполнить данными поля ввода в документе PDF.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает дескриптор документа FDF или false в случае возникновения ошибки.

Примеры

Пример #1 Заполнение PDF-документа

<?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() - Сохраняет документ FDF
  • fdf_open() - Открывает документ FDF


Вызывает пользовательскую функцию для каждого значения документа

  • « fdf_create
  • fdf_errno »
  • PHP Manual
  • FDF
  • Вызывает пользовательскую функцию для каждого значения документа

fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_enum_values — Вызывает пользовательскую функцию для каждого значения документа

Описание

fdf_enum_values(resource $fdf_document, callable $function, mixed $userdata = ?): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.


Возвращает код ошибки для последней операции FDF

  • « fdf_enum_values
  • fdf_error »
  • PHP Manual
  • FDF
  • Возвращает код ошибки для последней операции FDF

fdf_errno

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_errno — Возвращает код ошибки для последней операции FDF

Описание

fdf_errno(): int

Получает код ошибки, установленный последним вызовом функции FDF.

Текстовое описание ошибки можно получить с помощью fdf_error().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ошибки как целое число или ноль, если ошибок не было.

Смотрите также

  • fdf_error() - Возвращает описание ошибки для кода ошибки FDF


Возвращает описание ошибки для кода ошибки FDF

  • « fdf_errno
  • fdf_get_ap »
  • PHP Manual
  • FDF
  • Возвращает описание ошибки для кода ошибки FDF

fdf_error

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_error — Возвращает описание ошибки для кода ошибки FDF

Описание

fdf_error(int $error_code = -1): string

Получает текстовое описание кода ошибки FDF, указанного в error_code.

Список параметров

error_code

Код ошибки, полученный с помощью fdf_errno(). Если не указано, функция использует код внутренней ошибки, установленный последней операцией.

Возвращаемые значения

Возвращает сообщение об ошибке в виде строки или строки no error, если ошибки нет.

Смотрите также

  • fdf_errno() - Возвращает код ошибки для последней операции FDF


Получает вид поля

  • « fdf_error
  • fdf_get_attachment »
  • PHP Manual
  • FDF
  • Получает вид поля

fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_ap — Получает вид поля

Описание

fdf_get_ap(
resource $fdf_document,
string $field,
int $face,
string $filename
): bool

Получает вид field (т.е. значение ключа /AP) и сохраняет его в файле.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() или fdf_open_string().

field

face

Возможные значения: FDFNormalAP, FDFRolloverAP и FDFDownAP.

filename

Внешний вид будет сохранён в этом параметре.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Извлекает загруженный файл, встроенный в FDF

  • « fdf_get_ap
  • fdf_get_encoding »
  • PHP Manual
  • FDF
  • Извлекает загруженный файл, встроенный в FDF

fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_attachment — Извлекает загруженный файл, встроенный в FDF

Описание

fdf_get_attachment(resource $fdf_document, string $fieldname, string $savepath): array

Извлекает файл, загруженный с помощью поля "выбор файла" fieldname, и сохраняет его в savepath.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() или fdf_open_string().

fieldname

savepath

Может быть, это имя простого файла или существующего каталога, в котором файл должен быть создан под его исходным именем. Любой существующий файл с таким же именем будет перезаписан.

Замечание:

Кажется, нет другого способа узнать исходное имя файла, кроме как сохранить файл, используя каталог как savepath и проверить базовое имя, под которым он был сохранён.

Возвращаемые значения

Возвращённый массив содержит следующие поля:

  • path - путь, где хранится файл
  • size - размер сохраняемого файла в байтах
  • type - mimetype, если он указан в FDF

Примеры

Пример #1 Сохранение загруженного файла

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
$data = fdf_get_attachment($fdf, "filename", "/tmpdir");
echo "Загруженный файл хранится в $data[path]";
?>


Получает значение ключа /Encoding

  • « fdf_get_attachment
  • fdf_get_file »
  • PHP Manual
  • FDF
  • Получает значение ключа /Encoding

fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

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() - Устанавливает кодировку символов FDF


Получает значение ключа /F

  • « fdf_get_encoding
  • fdf_get_flags »
  • PHP Manual
  • FDF
  • Получает значение ключа /F

fdf_get_file

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

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() - Устанавливает PDF-документ для отображения данных FDF


Получает флаги поля

  • « fdf_get_file
  • fdf_get_opt »
  • PHP Manual
  • FDF
  • Получает флаги поля

fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_flags — Получает флаги поля

Описание

fdf_get_flags(resource $fdf_document, string $fieldname, int $whichflags): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.


Получает значение из массива opt поля

  • « fdf_get_flags
  • fdf_get_status »
  • PHP Manual
  • FDF
  • Получает значение из массива opt поля

fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECLv)

fdf_get_opt — Получает значение из массива opt поля

Описание

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 < 5.3.0, PECL fdf SVN)

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() - Устанавливает значение ключа /STATUS


Получает значение поля

  • « fdf_get_status
  • fdf_get_version »
  • PHP Manual
  • FDF
  • Получает значение поля

fdf_get_value

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_value — Получает значение поля

Описание

fdf_get_value(resource $fdf_document, string $fieldname, int $which = -1): mixed

Получает значение для запрошенного поля.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() или fdf_open_string().

fieldname

Имя поля FDF в виде строки.

which

Элементы поля массива можно получить, передав этот необязательный параметр, начиная с нуля. Для полей без массива этот параметр будет проигнорирован.

Возвращаемые значения

Возвращает значение поля.

Список изменений

Версия | Описание
4.3.0 | Добавлена поддержка массивов и параметра which.

Смотрите также

  • fdf_set_value() - Устанавливает значение поля


Получает номер версии для FDF API или файла

  • « fdf_get_value
  • fdf_header »
  • PHP Manual
  • FDF
  • Получает номер версии для FDF API или файла

fdf_get_version

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_get_version — Получает номер версии для FDF API или файла

Описание

fdf_get_version(resource $fdf_document = ?): string

Возвращает версию FDF для данного документа или номер версии API набора инструментов, если параметр не указан.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() или fdf_open_string().

Возвращаемые значения

Возвращает версию в виде строки. Для текущего набора инструментов FDF 5.0 номер версии API - 5.0, а номер версии документа - 1.2, 1.3 или 1.4.

Смотрите также

  • fdf_set_version() - Устанавливает номер версии для файла FDF


Устанавливает специфичные для FDF выходные заголовки

  • « fdf_get_version
  • fdf_next_field_name »
  • PHP Manual
  • FDF
  • Устанавливает специфичные для FDF выходные заголовки

fdf_header

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVNf)

fdf_header — Устанавливает специфичные для FDF выходные заголовки

Описание

fdf_header(): void

Это удобная функция для установки соответствующих HTTP-заголовков для вывода FDF. Она устанавливает для Content-type: значение application/vnd.fdf.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Получает имя следующего поля

  • « fdf_header
  • fdf_open_string »
  • PHP Manual
  • FDF
  • Получает имя следующего поля

fdf_next_field_name

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_next_field_name — Получает имя следующего поля

Описание

fdf_next_field_name(resource $fdf_document, string $fieldname = ?): string

Получает имя поля после заданного поля. Это имя можно использовать несколькими функциями.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() или fdf_open_string().

fieldname

Имя поля FDF в виде строки. Если не указано, будет использоваться первое поле.

Возвращаемые значения

Возвращает имя поля в виде строки.

Примеры

Пример #1 Обнаружение всех имён полей в 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\n";
}
?>

Смотрите также

  • fdf_get_value() - Получает значение поля


Читает FDF документ из строки

  • « fdf_next_field_name
  • fdf_open »
  • PHP Manual
  • FDF
  • Читает FDF документ из строки

fdf_open_string

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_open_string — Читает FDF документ из строки

Описание

fdf_open_string(string $fdf_data): resource

Считывает данные формы из строки.

Вы можете использовать fdf_open_string() вместе с $HTTP_FDF_DATA для обработки ввода FDF формы от удалённого клиента.

Список параметров

fdf_data

Данные, возвращённые из PDF формы или созданные с помощью fdf_create() и fdf_save_string().

Возвращаемые значения

Возвращает дескриптор FDF документа или false в случае возникновения ошибки.

Примеры

Пример #1 Доступ к данным формы

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

Смотрите также

  • fdf_open() - Открывает документ FDF
  • fdf_close() - Закрывает FDF-документ
  • fdf_create() - Создаёт новый документ FDF
  • fdf_save_string() - Возвращает документ FDF в виде строки


Открывает документ FDF

  • « fdf_open_string
  • fdf_remove_item »
  • PHP Manual
  • FDF
  • Открывает документ FDF

fdf_open

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_open — Открывает документ FDF

Описание

fdf_open(string $filename): resource

Открывает файл с данными формы.

Вы также можете использовать fdf_open_string() для обработки результатов POST-запроса PDF-формы.

Список параметров

filename

Путь к файлу FDF. Файл должен содержать данные, возвращённые из PDF формы или созданные с помощью fdf_create() и fdf_save().

Возвращаемые значения

Возвращает дескриптор документа FDF или false в случае возникновения ошибки.

Примеры

Пример #1 Доступ к данным формы

<?php
// Сохранение данных FDF во временный файл
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Открытие временного файла и получение данных
$fdf = fdf_open("test.fdf");
/* ... */
fdf_close($fdf);
?>

Смотрите также

  • fdf_open_string() - Читает FDF документ из строки
  • fdf_close() - Закрывает FDF-документ
  • fdf_create() - Создаёт новый документ FDF
  • fdf_save() - Сохраняет документ FDF


Устанавливает целевой фрейм для формы

  • « fdf_open
  • fdf_save_string »
  • PHP Manual
  • FDF
  • Устанавливает целевой фрейм для формы

fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_remove_item — Устанавливает целевой фрейм для формы

Описание

fdf_remove_item(resource $fdf_document, string $fieldname, int $item): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.


Возвращает документ FDF в виде строки

  • « fdf_remove_item
  • fdf_save »
  • PHP Manual
  • FDF
  • Возвращает документ FDF в виде строки

fdf_save_string

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_save_string — Возвращает документ FDF в виде строки

Описание

fdf_save_string(resource $fdf_document): string

Возвращает документ FDF в виде строки.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() or fdf_open_string().

Возвращаемые значения

Возвращает документ в виде строки или false в случае возникновения ошибки.

Примеры

Пример #1 Получение FDF в виде строки

<?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() - Читает FDF документ из строки
  • fdf_close() - Закрывает FDF-документ
  • fdf_create() - Создаёт новый документ FDF
  • fdf_save() - Сохраняет документ FDF


Сохраняет документ FDF

  • « fdf_save_string
  • fdf_set_ap »
  • PHP Manual
  • FDF
  • Сохраняет документ FDF

fdf_save

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_save — Сохраняет документ FDF

Описание

fdf_save(resource $fdf_document, string $filename = ?): bool

Сохраняет документ FDF.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() or fdf_open_string().

filename

Если указано, FDF будет записан в этот параметр. В противном случае функция запишет FDF в выходной поток PHP по умолчанию.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fdf_close() - Закрывает FDF-документ
  • fdf_create() - Создаёт новый документ FDF
  • fdf_save_string() - Возвращает документ FDF в виде строки


Устанавливает внешний вид поля

  • « fdf_save
  • fdf_set_encoding »
  • PHP Manual
  • FDF
  • Устанавливает внешний вид поля

fdf_set_ap

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_ap — Устанавливает внешний вид поля

Описание

fdf_set_ap(
resource $fdf_document,
string $field_name,
int $face,
string $filename,
int $page_number
): bool

Устанавливает внешний вид поля (т.е. значение ключа /AP).

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() or fdf_open_string().

field_name

face

Допустимые значения: FDFNormalAP, FDFRolloverAP и FDFDownAP.

filename

page_number

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Устанавливает кодировку символов FDF

  • « fdf_set_ap
  • fdf_set_file »
  • PHP Manual
  • FDF
  • Устанавливает кодировку символов FDF

fdf_set_encoding

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_encoding — Устанавливает кодировку символов FDF

Описание

fdf_set_encoding(resource $fdf_document, string $encoding): bool

Устанавливает кодировку символов для документа FDF.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() or fdf_open_string().

encoding

Название кодировки. Поддерживаются следующие значения: "Shift-JIS", "UHC", "GBK" и "BigFive".

Пустая строка сбрасывает кодировку по умолчанию в схему PDFDocEncoding/Unicode.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Устанавливает PDF-документ для отображения данных FDF

  • « fdf_set_encoding
  • fdf_set_flags »
  • PHP Manual
  • FDF
  • Устанавливает PDF-документ для отображения данных FDF

fdf_set_file

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_file — Устанавливает PDF-документ для отображения данных FDF

Описание

fdf_set_file(resource $fdf_document, string $url, string $target_frame = ?): bool

Выбирает другой документ PDF для отображения результатов формы в той форме, из которой он был создан.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() or fdf_open_string().

url

Должен быть указан абсолютный URL.

target_frame

Используйте этот параметр, чтобы указать фрейм, в котором будет отображаться документ. Вы также можете установить значение по умолчанию для этого параметра с помощью fdf_set_target_frame().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Передача данных FDF во вторую форму

<?php
/* Установка типа содержимого для Adobe FDF */
fdf_header();

/* Создание нового fdf */
$fdf = fdf_create();

/* Установка значения "bar" в поле "foo" */
fdf_set_value($fdf, "foo", "bar");

/* сообщение клиенту, что нужно отображать данные FDF, используя "fdf_form.pdf" */
fdf_set_file($fdf, "http://www.example.com/fdf_form.pdf");

/* вывод fdf */
fdf_save($fdf);

/* закрытие */
fdf_close($fdf);
?>

Смотрите также

  • fdf_get_file() - Получает значение ключа /F
  • fdf_set_target_frame() - Устанавливает целевой фрейм для отображения формы


Устанавливает флаг поля

  • « fdf_set_file
  • fdf_set_javascript_action »
  • PHP Manual
  • FDF
  • Устанавливает флаг поля

fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_flags — Устанавливает флаг поля

Описание

fdf_set_flags(
resource $fdf_document,
string $fieldname,
int $whichFlags,
int $newFlags
): bool

Устанавливает определённые флаги данного поля.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() or fdf_open_string().

fieldname

Имя поля FDF в виде строки.

whichFlags

newFlags

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fdf_set_opt() - Устанавливает параметры поля


Устанавливает действие javascript для поля

  • « fdf_set_flags
  • fdf_set_on_import_javascript »
  • PHP Manual
  • FDF
  • Устанавливает действие javascript для поля

fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_javascript_action — Устанавливает действие javascript для поля

Описание

fdf_set_javascript_action(
resource $fdf_document,
string $fieldname,
int $trigger,
string $script
): bool

Устанавливает действие javascript для заданного поля

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() or fdf_open_string().

fieldname

Имя поля FDF в виде строки.

trigger

script

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fdf_set_submit_form_action() - Устанавливает действие формы отправки поля


Добавляет код JavaScript, который будет выполняться, когда Acrobat открывает FDF

  • « fdf_set_javascript_action
  • fdf_set_opt »
  • PHP Manual
  • FDF
  • Добавляет код JavaScript, который будет выполняться, когда Acrobat открывает FDF

fdf_set_on_import_javascript

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_on_import_javascript — Добавляет код JavaScript, который будет выполняться, когда Acrobat открывает FDF

Описание

fdf_set_on_import_javascript(resource $fdf_document, string $script, bool $before_data_import): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • fdf_add_doc_javascript() - Добавляет код javascript в документ FDF
  • fdf_set_javascript_action() - Устанавливает действие javascript для поля


Устанавливает параметры поля

  • « fdf_set_on_import_javascript
  • fdf_set_status »
  • PHP Manual
  • FDF
  • Устанавливает параметры поля

fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_opt — Устанавливает параметры поля

Описание

fdf_set_opt(
resource $fdf_document,
string $fieldname,
int $element,
string $str1,
string $str2
): bool

Устанавливает параметры заданного поля.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() or fdf_open_string().

fieldname

Имя поля FDF в виде строки.

element

str1

str2

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fdf_set_flags() - Устанавливает флаг поля


Устанавливает значение ключа /STATUS

  • « fdf_set_opt
  • fdf_set_submit_form_action »
  • PHP Manual
  • FDF
  • Устанавливает значение ключа /STATUS

fdf_set_status

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_status — Устанавливает значение ключа /STATUS

Описание

fdf_set_status(resource $fdf_document, string $status): bool

Устанавливает значение ключа /STATUS. Когда клиент получает FDF с установленным статусом, он представляет значение в окне предупреждения.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() or fdf_open_string().

status

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fdf_get_status() - Получает значение ключа /STATUS


Устанавливает действие формы отправки поля

  • « fdf_set_status
  • fdf_set_target_frame »
  • PHP Manual
  • FDF
  • Устанавливает действие формы отправки поля

fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_submit_form_action — Устанавливает действие формы отправки поля

Описание

fdf_set_submit_form_action(
resource $fdf_document,
string $fieldname,
int $trigger,
string $script,
int $flags
): bool

Устанавливает действие формы отправки для заданного поля.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() или fdf_open_string().

fieldname

Имя поля FDF в виде строки.

trigger

script

flags

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fdf_set_javascript_action() - Устанавливает действие javascript для поля


Устанавливает целевой фрейм для отображения формы

  • « fdf_set_submit_form_action
  • fdf_set_value »
  • PHP Manual
  • FDF
  • Устанавливает целевой фрейм для отображения формы

fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_target_frame — Устанавливает целевой фрейм для отображения формы

Описание

fdf_set_target_frame(resource $fdf_document, string $frame_name): bool

Устанавливает целевой фрейм для отображения PDF-файла, определённого с помощью fdf_save_file().

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() или fdf_open_string().

frame_name

Имя фрейма в виде строки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fdf_save_file()


Устанавливает значение поля

  • « fdf_set_target_frame
  • fdf_set_version »
  • PHP Manual
  • FDF
  • Устанавливает значение поля

fdf_set_value

(PHP 4, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_value — Устанавливает значение поля

Описание

fdf_set_value(
resource $fdf_document,
string $fieldname,
mixed $value,
int $isName = ?
): bool

Устанавливает value для заданного поля.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() or fdf_open_string().

fieldname

Имя поля FDF в виде строки.

value

Этот параметр будет храниться в виде строки, если он не является массивом. В этом случае все элементы массива будут сохранены как массив значений.

isName

Замечание:

В более старых версиях набора инструментов FDF последний параметр определял, должно ли значение поля быть преобразовано в PDF Name (= 1) или установлено PDF String (= 0).

Это значение больше не используется в текущей версии 5.0. Для совместимости оно по-прежнему поддерживается как необязательный параметр, но внутренне игнорируется.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fdf_get_value() - Получает значение поля
  • fdf_remove_item() - Устанавливает целевой фрейм для формы


Устанавливает номер версии для файла FDF

  • « fdf_set_value
  • GnuPG »
  • PHP Manual
  • FDF
  • Устанавливает номер версии для файла FDF

fdf_set_version

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL fdf SVN)

fdf_set_version — Устанавливает номер версии для файла FDF

Описание

fdf_set_version(resource $fdf_document, string $version): bool

Устанавливает version FDF для данного документа.

Некоторые функции, поддерживаемые модулем, доступны только в новых версиях FDF.

Список параметров

fdf_document

Дескриптор документа FDF, возвращаемый fdf_create(), fdf_open() or fdf_open_string().

version

Номер версии. Для текущего набора инструментов FDF 5.0 это может быть 1.2, 1.3 или 1.4.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fdf_get_version() - Получает номер версии для FDF API или файла


GNU Privacy Guard

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
    • Прозрачное подписывание текста
  • GnuPG Функции
    • gnupg_adddecryptkey — Добавить ключ для расшифровки
    • gnupg_addencryptkey — Добавляет ключ для шифрования
    • gnupg_addsignkey — Добавить ключ для подписания
    • gnupg_cleardecryptkeys — Удаляет все ключи, которые были установлены для расшифровки раньше
    • gnupg_clearencryptkeys — Удаляет все ключи, которые были установлены для шифрования раньше
    • gnupg_clearsignkeys — Удаляет все ключи, которые были установлены для подписания раньше
    • gnupg_decrypt — Расшифровывает переданный текст
    • gnupg_decryptverify — Расшифровывает и проверяет подпись переданного текста
    • gnupg_deletekey — Удаляет ключ из связки ключей
    • gnupg_encrypt — Шифрует заданный текст
    • gnupg_encryptsign — Шифрует и подписывает переданный текст
    • gnupg_export — Экспортирует ключ
    • gnupg_getengineinfo — Возвращает информацию о движке
    • gnupg_geterror — Возвращает текст сообщения об ошибке, если функция не была выполнена
    • gnupg_geterrorinfo — Возвращает информацию об ошибке
    • gnupg_getprotocol — Возвращает текущий активный протокол для всех операций
    • gnupg_gettrustlist — Поиск доверительных элементов
    • gnupg_import — Импортирует ключ
    • gnupg_init — Инициализировать GnuPG
    • gnupg_keyinfo — Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону
    • gnupg_listsignatures — Перечисляет подписи ключа
    • 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 (int)
GNUPG_SIG_MODE_DETACH (int)
GNUPG_SIG_MODE_CLEAR (int)
GNUPG_VALIDITY_UNKNOWN (int)
GNUPG_VALIDITY_UNDEFINED (int)
GNUPG_VALIDITY_NEVER (int)
GNUPG_VALIDITY_MARGINAL (int)
GNUPG_VALIDITY_FULL (int)
GNUPG_VALIDITY_ULTIMATE (int)
GNUPG_PROTOCOL_OpenPGP (int)
GNUPG_PROTOCOL_CMS (int)
GNUPG_SIGSUM_VALID (int)
GNUPG_SIGSUM_GREEN (int)
GNUPG_SIGSUM_RED (int)
GNUPG_SIGSUM_KEY_REVOKED (int)
GNUPG_SIGSUM_KEY_EXPIRED (int)
GNUPG_SIGSUM_KEY_MISSING (int)
GNUPG_SIGSUM_SIG_EXPIRED (int)
GNUPG_SIGSUM_CRL_MISSING (int)
GNUPG_SIGSUM_CRL_TOO_OLD (int)
GNUPG_SIGSUM_BAD_POLICY (int)
GNUPG_SIGSUM_SYS_ERROR (int)
GNUPG_ERROR_WARNING (int)
GNUPG_ERROR_EXCEPTION (int)
GNUPG_ERROR_SILENT (int)


  • « Предопределённые константы
  • Прозрачное подписывание текста »
  • 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_deletekey — Удаляет ключ из связки ключей
  • gnupg_encrypt — Шифрует заданный текст
  • gnupg_encryptsign — Шифрует и подписывает переданный текст
  • gnupg_export — Экспортирует ключ
  • gnupg_getengineinfo — Возвращает информацию о движке
  • gnupg_geterror — Возвращает текст сообщения об ошибке, если функция не была выполнена
  • gnupg_geterrorinfo — Возвращает информацию об ошибке
  • gnupg_getprotocol — Возвращает текущий активный протокол для всех операций
  • gnupg_gettrustlist — Поиск доверительных элементов
  • gnupg_import — Импортирует ключ
  • gnupg_init — Инициализировать GnuPG
  • gnupg_keyinfo — Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону
  • gnupg_listsignatures — Перечисляет подписи ключа
  • 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|false

Расшифровывает переданный текст ключами, установленными ранее с помощью 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_decrypt()

<?php
$gpg = new gnupg();
$gpg->adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = $gpg->decrypt($encrypted_text);
echo $plain;
?>


Расшифровывает и проверяет подпись переданного текста

  • « gnupg_decrypt
  • gnupg_deletekey »
  • PHP Manual
  • GnuPG Функции
  • Расшифровывает и проверяет подпись переданного текста

gnupg_decryptverify

(PECL gnupg >= 0.2)

gnupg_decryptverify — Расшифровывает и проверяет подпись переданного текста

Описание

gnupg_decryptverify(resource $identifier, string $text, string &$plaintext): array|false

Расшифровывает и проверяет подпись переданного текста и возвращает информацию о подписи.

Список параметров

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_encrypt »
  • PHP Manual
  • GnuPG Функции
  • Удаляет ключ из связки ключей

gnupg_deletekey

(PECL gnupg >= 0.5)

gnupg_deletekey — Удаляет ключ из связки ключей

Описание

gnupg_deletekey(resource $identifier, string $key, bool $allow_secret): bool

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

key

Ключ для удаления.

allow_secret

Указывает, следует ли удалять и секретные ключи.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования gnupg_deletekey() в процедурном стиле

<?php
$res = gnupg_init();
gnupg_deletekey($res, "8660281B6051D071D94B5B230549F9DC851566DC");
?>

Пример #2 Пример использования gnupg_deletekey() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
$gpg->deletekey("8660281B6051D071D94B5B230549F9DC851566DC");
?>


Шифрует заданный текст

  • « gnupg_deletekey
  • gnupg_encryptsign »
  • PHP Manual
  • GnuPG Функции
  • Шифрует заданный текст

gnupg_encrypt

(PECL gnupg >= 0.1)

gnupg_encrypt — Шифрует заданный текст

Описание

gnupg_encrypt(resource $identifier, string $plaintext): string|false

Шифрует заданный текст 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|false

Шифрует и подписывает переданный в параметре 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("just a test");
echo $enc;
?>


Экспортирует ключ

  • « gnupg_encryptsign
  • gnupg_getengineinfo »
  • PHP Manual
  • GnuPG Функции
  • Экспортирует ключ

gnupg_export

(PECL gnupg >= 0.1)

gnupg_export — Экспортирует ключ

Описание

gnupg_export(resource $identifier, string $fingerprint): string|false

Экспортирует ключ 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_geterror »
  • PHP Manual
  • GnuPG Функции
  • Возвращает информацию о движке

gnupg_getengineinfo

(PECL gnupg >= 1.5)

gnupg_getengineinfo — Возвращает информацию о движке

Описание

gnupg_getengineinfo(resource $identifier): array

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

Возвращаемые значения

Возвращает массив с информацией о движке, состоящей из protocol, file_name и home_dir.

Примеры

Пример #1 Пример использования gnupg_getengineinfo() в процедурном стиле

<?php
$res = gnupg_init();
print_r(gnupg_getengineinfo($res));
?>

Результат выполнения данного примера:

array(3) {
  ["protocol"]=>
  int(0)
  ["file_name"]=>
  string(12) "/usr/bin/gpg"
  ["home_dir"]=>
  string(0) ""
}

Пример #2 Пример использования gnupg_getengineinfo() в объектно-ориентированном стиле

<?php
$gpg = new gnupg(["file_name" => "/usr/bin/gpg2", "home_dir" => "/var/www/.gnupg"]);
print_r($gpg->getengineinfo());
?>

Результат выполнения данного примера:

array(3) {
  ["protocol"]=>
  int(0)
  ["file_name"]=>
  string(13) "/usr/bin/gpg2"
  ["home_dir"]=>
  string(15) "/var/www/.gnupg"
}


Возвращает текст сообщения об ошибке, если функция не была выполнена

  • « gnupg_getengineinfo
  • gnupg_geterrorinfo »
  • PHP Manual
  • GnuPG Функции
  • Возвращает текст сообщения об ошибке, если функция не была выполнена

gnupg_geterror

(PECL gnupg >= 0.1)

gnupg_geterror — Возвращает текст сообщения об ошибке, если функция не была выполнена

Описание

gnupg_geterror(resource $identifier): string|false

Список параметров

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_getprotocol »
  • PHP Manual
  • GnuPG Функции
  • Возвращает информацию об ошибке

gnupg_geterrorinfo

(PECL gnupg >= 1.5)

gnupg_geterrorinfo — Возвращает информацию об ошибке

Описание

gnupg_geterrorinfo(resource $identifier): array

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

Возвращаемые значения

Возвращает массив с информацией об ошибке.

Примеры

Пример #1 Пример использования gnupg_geterrorinfo() в процедурном стиле

<?php
$res = gnupg_init();
// вызывается без ошибок
print_r(gnupg_geterrorinfo($res));
?>

Результат выполнения данного примера:

array(4) {
  ["generic_message"]=>
  bool(false)
  ["gpgme_code"]=>
  int(0)
  ["gpgme_source"]=>
  string(18) "Unspecified source"
  ["gpgme_message"]=>
  string(7) "Success"
}

Пример #2 Пример использования gnupg_geterrorinfo() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
// вызов с ошибкой
$gpg->decrypt('abc');
// должна отобразиться информация об ошибке
print_r($gpg->geterrorinfo());
?>

Результат выполнения данного примера:

array(4) {
  ["generic_message"]=>
  string(14) "decrypt failed"
  ["gpgme_code"]=>
  int(117440570)
  ["gpgme_source"]=>
  string(5) "GPGME"
  ["gpgme_message"]=>
  string(7) "No data"
}


Возвращает текущий активный протокол для всех операций

  • « gnupg_geterrorinfo
  • gnupg_gettrustlist »
  • 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_import »
  • PHP Manual
  • GnuPG Функции
  • Поиск доверительных элементов

gnupg_gettrustlist

(PECL gnupg >= 0.5)

gnupg_gettrustlist — Поиск доверительных элементов

Описание

gnupg_gettrustlist(resource $identifier, string $pattern): ?array

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

pattern

Выражение для ограничения списка доверительных элементов только теми, которые соответствуют шаблону.

Возвращаемые значения

В случае успешного выполнения функция возвращает массив доверительных элементов. В случае возникновения ошибки функция возвращает null.

Примеры

Пример #1 Пример использования gnupg_gettrustlist() в процедурном стиле

<?php
$res = gnupg_init();
$items = gnupg_gettrustlist($res);
print_r($items);
?>

Пример #2 Пример использования gnupg_gettrustlist() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
$items = $gpg->gettrustlist();
print_r($items);
?>


Импортирует ключ

  • « gnupg_gettrustlist
  • gnupg_init »
  • PHP Manual
  • GnuPG Функции
  • Импортирует ключ

gnupg_import

(PECL gnupg >= 0.3)

gnupg_import — Импортирует ключ

Описание

gnupg_import(resource $identifier, string $keydata): array|false

Импортирует ключ 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(?array $options = null): resource

Список параметров

options

Параметр принимает ассоциативный массив. Он используется для изменения конфигурации криптографического механизма по умолчанию.

Переопределение конфигурации
Ключ | Тип | Описание
file_name | string | Имя файла исполняемой программы, реализующей протокол, который обычно является путём к исполняемому файлу gpg.
home_dir | string | Имя каталога конфигурации. Оно также переопределяет переменную окружения GNUPGHOME, которая используется для той же цели.

Возвращаемые значения

Возвращает ресурс (resource) GnuPG, который используется другими функциями GnuPG.

Список изменений

Версия | Описание
1.5.0 | Добавлен параметр options.

Примеры

Пример #1 Пример использования gnupg_init() в процедурном стиле с настройками по умолчанию

<?php
$res = gnupg_init();
?>

Пример #2 Пример использования gnupg_init() в процедурном стиле с переопределённым именем файла и домашним каталогом

<?php
$res = gnupg_init(["file_name" => "/usr/bin/gpg2", "home_dir" => "/var/www/.gnupg"]);
?>

Пример #3 Пример использования инициализатора gnupg в объектно-ориентированном стиле с настройками по умолчанию

<?php
$gpg = new gnupg();
?>

Пример #4 Пример использования в объектно-ориентированном стиле с переопределённым именем файла и домашним каталогом

<?php
$gpg = new gnupg(["file_name" => "/usr/bin/gpg2", "home_dir" => "/var/www/.gnupg"]);
?>


Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону

  • « gnupg_init
  • gnupg_listsignatures »
  • PHP Manual
  • GnuPG Функции
  • Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону

gnupg_keyinfo

(PECL gnupg >= 0.1)

gnupg_keyinfo — Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону

Описание

gnupg_keyinfo(resource $identifier, string $pattern): array|false

Список параметров

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_setarmor »
  • PHP Manual
  • GnuPG Функции
  • Перечисляет подписи ключа

gnupg_listsignatures

(PECL gnupg >= 0.5)

gnupg_listsignatures — Перечисляет подписи ключа

Описание

gnupg_listsignatures(resource $identifier, string $keyid): ?array

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

keyid

Идентификатор ключа для списка подписей.

Возвращаемые значения

В случае успешного выполнения функция возвращает массив подписей ключей. В случае возникновения ошибки функция возвращает null.

Примеры

Пример #1 Пример использования gnupg_listsignatures() в процедурном стиле

<?php
$res = gnupg_init();
$signatures = gnupg_listsignatures($res, "8660281B6051D071D94B5B230549F9DC851566DC");
print_r($signatures);
?>

Пример #2 Пример использования gnupg_listsignatures() в объектно-ориентированном стиле

<?php
$gpg = new gnupg();
$signatures = $gpg->listsignatures("8660281B6051D071D94B5B230549F9DC851566DC");
print_r($signatures);
?>


Переключает вывод в текстовом или бинарном режиме

  • « gnupg_listsignatures
  • 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|false

Подписывает переданный в параметре 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
  • wkhtmltox »
  • PHP Manual
  • GnuPG Функции
  • Проверяет подпись текста

gnupg_verify

(PECL gnupg >= 0.1)

gnupg_verify — Проверяет подпись текста

Описание

gnupg_verify(
resource $identifier,
string $signed_text,
string $signature,
string &$plaintext = ?
): array|false

Проверяет подпись переданного в параметре 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);
?>


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

Обзор классов

class wkhtmltox\PDF\Converter {
/* Constructor */
public __construct(array $settings = ?)
/* Методы */
public add(wkhtmltox\PDF\Object $object): void
public convert(): ?string
public getVersion(): 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(): ?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(): string

Определяет версию конвертера, как указано в библиотеке libwkhtmltox

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает версию в виде строки


Класс wkhtmltox\PDF\Object

(wkhtmltox >= 0.1.0)

Введение

Представляет HTML-документ, вход в PDF-конвертер

Обзор классов

class 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 | имя пользователя, используемое при входе на веб-сайт | bart | >= 0.1.0
load.password | пароль, используемый при входе на веб-сайт | elbarto | >= 0.1.0
load.jsdelay | количество времени в миллисекундах для ожидания после загрузки страницы, пока она не будет захвачена | 1200 | >= 0.1.0
load.zoomFactor | насколько масштабировать контент | 2.2 | >= 0.1.0
load.customHeaders | пользовательские заголовки для отправки при запросе главной веб-страницы | >= 0.1.0
load.repertCustomHeaders | установите true для отправки со всеми запросами | boolean | >= 0.1.0
load.cookies | строка cookie для отправки при запросе главной веб-страницы | >= 0.1.0
load.post | строка post для отправки при запросе главной веб-страницы | >= 0.1.0
load.blockLocalFileAccess | запретить локальным и передаваемым файлам доступ к другим локальным файлам | boolean | >= 0.1.0
load.stopSlowScript | остановить медленный javascript | boolean
load.debugJavascript | разрешить javascript выдавать предупреждения | boolean | >= 0.1.0
load.loadErrorHandling установить стратегию обработки ошибок
abort | прервать процесс преобразования
skip | не добавлять объект к конечному выводу
ignore | попытаться добавить объект к конечному выводу
>= 0.1.0
load.proxy | >= 0.1.0
web.background | включить фоновое изображение в вывод | boolean | >= 0.1.0
web.loadImages | включить изображения в вывод | boolean | >= 0.1.0
web.enableJavascript | включить или отключить javascript | boolean | >= 0.1.0
web.enableIntelligentShrinking | включить для попытки уместить больше содержимого на странице, применяется только к выходным PDF-файлам | boolean | >= 0.1.0
web.minimumFontSize | минимальный допустимый размер шрифта | 9 | >= 0.1.0
web.printMediaType | распечатать содержимое, используя тип носителя print вместо screen | boolean | >= 0.1.0
web.defaultEncoding | содержимое для использования без указания кодировки | utf-8 | >= 0.1.0
web.userStyleSheet | URL или путь к указанной пользователем таблице стилей | /path/to/style.css | >= 0.1.0
web.enablePlugins | включить или отключить плагины NS | boolean | >= 0.1.0


Класс wkhtmltox\Image\Converter

(wkhtmltox >= 0.1.0)

Введение

Преобразует входные данные HTML в различные форматы изображений

Обзор классов

class wkhtmltox\Image\Converter {
/* Constructor */
public __construct(string $buffer = ?, array $settings = ?)
/* Методы */
public convert(): ?string
public getVersion(): 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 | имя пользователя, используемое при входе на веб-сайт | bart | >= 0.1.0
load.password | пароль, используемый при входе на веб-сайт | elbarto | >= 0.1.0
load.jsdelay | количество времени в миллисекундах для ожидания после загрузки страницы, пока она не будет захвачена | 1200 | >= 0.1.0
load.zoomFactor | насколько масштабировать контент | 2.2 | >= 0.1.0
load.customHeaders | пользовательские заголовки для отправки при запросе главной веб-страницы | >= 0.1.0
load.repertCustomHeaders | установите true для отправки со всеми запросами | boolean | >= 0.1.0
load.cookies | строка cookie для отправки при запросе главной веб-страницы | >= 0.1.0
load.post | строка post для отправки при запросе главной веб-страницы | >= 0.1.0
load.blockLocalFileAccess | запретить локальным и передаваемым файлам доступ к другим локальным файлам | boolean | >= 0.1.0
load.stopSlowScript | остановить медленный javascript | boolean
load.debugJavascript | разрешить javascript выдавать предупреждения | boolean | >= 0.1.0
load.loadErrorHandling установить стратегию обработки ошибок
abort | прервать процесс преобразования
skip | не добавлять объект к конечному выводу
ignore | попытаться добавить объект к конечному выводу
>= 0.1.0
load.proxy | >= 0.1.0
web.background | включить фоновое изображение в вывод | boolean | >= 0.1.0
web.loadImages | включить изображения в вывод | boolean | >= 0.1.0
web.enableJavascript | включить или отключить javascript | boolean | >= 0.1.0
web.enableIntelligentShrinking | включить для попытки уместить больше содержимого на странице, применяется только к выходным PDF-файлам | boolean | >= 0.1.0
web.minimumFontSize | минимальный допустимый размер шрифта | 9 | >= 0.1.0
web.printMediaType | распечатать содержимое, используя тип носителя print вместо screen | boolean | >= 0.1.0
web.defaultEncoding | содержимое для использования без указания кодировки | utf-8 | >= 0.1.0
web.userStyleSheet | URL или путь к указанной пользователем таблице стилей | /path/to/style.css | >= 0.1.0
web.enablePlugins | включить или отключить плагины NS | 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(): ?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(): string

Определяет версию конвертера, как указано в библиотеке libwkhtmltox

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает версию в виде строки

Внимание

Это ещё не реализовано в libwkhtmltox


Создание документов PostScript

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции PS
    • ps_add_bookmark — Добавляет закладку на текущую страницу
    • ps_add_launchlink — Добавляет ссылку, запускающую файл
    • ps_add_locallink — Добавляет ссылку на страницу того же документа
    • ps_add_note — Добавляет примечание к текущей странице
    • ps_add_pdflink — Добавляет ссылку на страницу в другом PDF-документе
    • ps_add_weblink — Добавляет ссылку на веб-страницу
    • ps_arc — Рисует дугу против часовой стрелки
    • ps_arcn — Рисует дугу по часовой стрелке
    • ps_begin_page — Начинает новую страницу
    • ps_begin_pattern — Начинает новый узор
    • ps_begin_template — Начинает новый шаблон
    • ps_circle — Рисует круг
    • ps_clip — Отрисовка клипов по текущему пути
    • ps_close_image — Закрывает изображение и освобождает память
    • ps_close — Закрывает документ PostScript
    • ps_closepath_stroke — Замыкает и обводит контур
    • ps_closepath — Замыкает путь
    • ps_continue_text — Продолжает текст в следующей строке
    • ps_curveto — Рисует кривую
    • ps_delete — Удаляет все ресурсы документа PostScript
    • ps_end_page — Завершает страницу
    • ps_end_pattern — Завершает шаблон
    • ps_end_template — Завершает шаблон
    • ps_fill_stroke — Заполняет и обводит текущий путь
    • ps_fill — Заполняет текущий путь
    • ps_findfont — Загружает шрифт
    • ps_get_buffer — Получает полный буфер, содержащий сгенерированные данные PS
    • ps_get_parameter — Получает определённые параметры
    • ps_get_value — Получает определённые значения
    • ps_hyphenate — Переносит слово
    • ps_include_file — Читает внешний файл с необработанным кодом PostScript
    • ps_lineto — Рисует линию
    • ps_makespotcolor — Создаёт плашечный цвет
    • ps_moveto — Устанавливает текущую точку
    • ps_new — Создаёт новый объект документа PostScript
    • ps_open_file — Открывает файл для вывода
    • ps_open_image_file — Открывает изображение из файла
    • ps_open_image — Считывает изображение для последующего размещения
    • ps_open_memory_image — Берёт изображение GD и возвращает изображение для размещения в документе PS
    • ps_place_image — Размещает изображение на странице
    • ps_rect — Рисует прямоугольник
    • ps_restore — Восстанавливает ранее сохранённый контекст
    • ps_rotate — Устанавливает коэффициент вращения
    • ps_save — Сохраняет текущий контекст
    • ps_scale — Устанавливает коэффициент масштабирования
    • ps_set_border_color — Устанавливает цвет границы аннотаций
    • ps_set_border_dash — Устанавливает длину тире для границы аннотации
    • ps_set_border_style — Устанавливает стиль границы аннотаций
    • ps_set_info — Устанавливает информационные поля документа
    • ps_set_parameter — Устанавливает определённые параметры
    • ps_set_text_pos — Устанавливает позицию для вывода текста
    • ps_set_value — Устанавливает определённые значения
    • ps_setcolor — Устанавливает текущий цвет
    • ps_setdash — Устанавливает внешний вид пунктирной линии
    • ps_setflat — Устанавливает плоскостность
    • ps_setfont — Устанавливает шрифт, который будет использоваться для следующего вывода
    • ps_setgray — Устанавливает значение серого
    • ps_setlinecap — Устанавливает внешний вид окончания линии
    • ps_setlinejoin — Устанавливает способ соединения линий
    • ps_setlinewidth — Устанавливает ширину линии
    • ps_setmiterlimit — Устанавливает предел скоса
    • ps_setoverprintmode — Устанавливает режим наложения
    • ps_setpolydash — Устанавливает внешний вид пунктирной линии
    • ps_shading_pattern — Создаёт узор на основе затенения
    • ps_shading — Создаёт затенение для последующего использования
    • ps_shfill — Заполняет область затенением
    • ps_show_boxed — Выводит текст в поле
    • ps_show_xy2 — Выводит текст в заданной позиции
    • ps_show_xy — Выводит текст в заданной позиции
    • ps_show2 — Выводит текст в текущей позиции
    • ps_show — Выводит текст
    • ps_string_geometry — Получает геометрию строки
    • ps_stringwidth — Получает ширину строки
    • ps_stroke — Рисует текущий путь
    • ps_symbol_name — Получает имя глифа
    • ps_symbol_width — Получает ширину глифа
    • ps_symbol — Выводит глиф
    • ps_translate — Изменяет систему координат


Введение

Модуль позволяет создавать документы в формате 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 — Добавляет ссылку, запускающую файл
  • ps_add_locallink — Добавляет ссылку на страницу того же документа
  • ps_add_note — Добавляет примечание к текущей странице
  • ps_add_pdflink — Добавляет ссылку на страницу в другом PDF-документе
  • ps_add_weblink — Добавляет ссылку на веб-страницу
  • ps_arc — Рисует дугу против часовой стрелки
  • ps_arcn — Рисует дугу по часовой стрелке
  • ps_begin_page — Начинает новую страницу
  • ps_begin_pattern — Начинает новый узор
  • ps_begin_template — Начинает новый шаблон
  • ps_circle — Рисует круг
  • ps_clip — Отрисовка клипов по текущему пути
  • ps_close_image — Закрывает изображение и освобождает память
  • ps_close — Закрывает документ PostScript
  • ps_closepath_stroke — Замыкает и обводит контур
  • ps_closepath — Замыкает путь
  • ps_continue_text — Продолжает текст в следующей строке
  • ps_curveto — Рисует кривую
  • ps_delete — Удаляет все ресурсы документа PostScript
  • ps_end_page — Завершает страницу
  • ps_end_pattern — Завершает шаблон
  • ps_end_template — Завершает шаблон
  • ps_fill_stroke — Заполняет и обводит текущий путь
  • ps_fill — Заполняет текущий путь
  • ps_findfont — Загружает шрифт
  • ps_get_buffer — Получает полный буфер, содержащий сгенерированные данные PS
  • ps_get_parameter — Получает определённые параметры
  • ps_get_value — Получает определённые значения
  • ps_hyphenate — Переносит слово
  • ps_include_file — Читает внешний файл с необработанным кодом PostScript
  • ps_lineto — Рисует линию
  • ps_makespotcolor — Создаёт плашечный цвет
  • ps_moveto — Устанавливает текущую точку
  • ps_new — Создаёт новый объект документа PostScript
  • ps_open_file — Открывает файл для вывода
  • ps_open_image_file — Открывает изображение из файла
  • ps_open_image — Считывает изображение для последующего размещения
  • ps_open_memory_image — Берёт изображение GD и возвращает изображение для размещения в документе PS
  • ps_place_image — Размещает изображение на странице
  • ps_rect — Рисует прямоугольник
  • ps_restore — Восстанавливает ранее сохранённый контекст
  • ps_rotate — Устанавливает коэффициент вращения
  • ps_save — Сохраняет текущий контекст
  • ps_scale — Устанавливает коэффициент масштабирования
  • ps_set_border_color — Устанавливает цвет границы аннотаций
  • ps_set_border_dash — Устанавливает длину тире для границы аннотации
  • ps_set_border_style — Устанавливает стиль границы аннотаций
  • ps_set_info — Устанавливает информационные поля документа
  • ps_set_parameter — Устанавливает определённые параметры
  • ps_set_text_pos — Устанавливает позицию для вывода текста
  • ps_set_value — Устанавливает определённые значения
  • ps_setcolor — Устанавливает текущий цвет
  • ps_setdash — Устанавливает внешний вид пунктирной линии
  • ps_setflat — Устанавливает плоскостность
  • ps_setfont — Устанавливает шрифт, который будет использоваться для следующего вывода
  • ps_setgray — Устанавливает значение серого
  • ps_setlinecap — Устанавливает внешний вид окончания линии
  • ps_setlinejoin — Устанавливает способ соединения линий
  • ps_setlinewidth — Устанавливает ширину линии
  • ps_setmiterlimit — Устанавливает предел скоса
  • ps_setoverprintmode — Устанавливает режим наложения
  • ps_setpolydash — Устанавливает внешний вид пунктирной линии
  • ps_shading_pattern — Создаёт узор на основе затенения
  • ps_shading — Создаёт затенение для последующего использования
  • ps_shfill — Заполняет область затенением
  • ps_show_boxed — Выводит текст в поле
  • ps_show_xy2 — Выводит текст в заданной позиции
  • ps_show_xy — Выводит текст в заданной позиции
  • ps_show2 — Выводит текст в текущей позиции
  • ps_show — Выводит текст
  • ps_string_geometry — Получает геометрию строки
  • ps_stringwidth — Получает ширину строки
  • ps_stroke — Рисует текущий путь
  • ps_symbol_name — Получает имя глифа
  • ps_symbol_width — Получает ширину глифа
  • ps_symbol — Выводит глиф
  • ps_translate — Изменяет систему координат


Добавляет закладку на текущую страницу

  • « Функции 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() - Добавляет ссылку, запускающую файл
  • ps_add_pdflink() - Добавляет ссылку на страницу в другом PDF-документе
  • ps_add_weblink() - Добавляет ссылку на веб-страницу


Добавляет ссылку, запускающую файл

  • « ps_add_bookmark
  • ps_add_locallink »
  • PHP Manual
  • Функции PS
  • Добавляет ссылку, запускающую файл

ps_add_launchlink

(PECL ps >= 1.1.0)

ps_add_launchlink — Добавляет ссылку, запускающую файл

Описание

ps_add_launchlink(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
string $filename
): bool

Помещает гиперссылку в заданную позицию, указывающую на файловую программу, которая запускается при нажатии. Исходная позиция гиперссылки - это прямоугольник с нижним левым углом в позиции (llx, lly) и верхним правым углом в позиции (urx, ury). У прямоугольника по умолчанию тонкая синяя рамка.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

llx

Координата X левого нижнего угла.

lly

Координата Y левого нижнего угла.

urx

Координата X правого верхнего угла.

ury

Координата Y правого верхнего угла.

filename

Путь к запускаемой программе при нажатии на ссылку.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_add_locallink() - Добавляет ссылку на страницу того же документа
  • ps_add_pdflink() - Добавляет ссылку на страницу в другом PDF-документе
  • ps_add_weblink() - Добавляет ссылку на веб-страницу


Добавляет ссылку на страницу того же документа

  • « ps_add_launchlink
  • ps_add_note »
  • PHP Manual
  • Функции PS
  • Добавляет ссылку на страницу того же документа

ps_add_locallink

(PECL ps >= 1.1.0)

ps_add_locallink — Добавляет ссылку на страницу того же документа

Описание

ps_add_locallink(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
int $page,
string $dest
): bool

Добавляет гиперссылку в заданном месте, указывающую на страницу того же документа. Нажатие по ссылке приведёт к переходу на данную страницу. Номер первой страницы документа - 1.

Исходная позиция гиперссылки представляет собой прямоугольник с нижним левым углом в (llx, lly) и его правым верхним углом в (urx, ury). У прямоугольника по умолчанию есть тонкая синяя рамка.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

llx

Координата X левого нижнего угла.

lly

Координата Y левого нижнего угла.

urx

Координата X правого верхнего угла.

ury

Координата Y правого верхнего угла.

page

Номер страницы, отображаемой при переходе по ссылке.

dest

Параметр dest определяет способ просмотра документа. Может быть: fitpage, fitwidth, fitheight или fitbbox.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_add_launchlink() - Добавляет ссылку, запускающую файл
  • ps_add_pdflink() - Добавляет ссылку на страницу в другом PDF-документе
  • ps_add_weblink() - Добавляет ссылку на веб-страницу


Добавляет примечание к текущей странице

  • « ps_add_locallink
  • ps_add_pdflink »
  • PHP Manual
  • Функции PS
  • Добавляет примечание к текущей странице

ps_add_note

(PECL ps >= 1.1.0)

ps_add_note — Добавляет примечание к текущей странице

Описание

ps_add_note(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
string $contents,
string $title,
string $icon,
int $open
): bool

Добавляет примечание в определённое место на странице. Примечания похожи на маленькие прямоугольные листы с текстом, которые можно разместить в любом месте страницы. Они показаны в свёрнутом или развёрнутом виде. В свёрнутом виде указанный значок используется в качестве заполнителя.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

llx

Координата X левого нижнего угла.

lly

Координата Y левого нижнего угла.

urx

Координата X правого верхнего угла.

ury

Координата Y правого верхнего угла.

contents

Текст примечания.

title

Название примечания, отображаемое в заголовке примечания.

icon

Значок, отображаемый, если заметка сложена. Может быть: comment, insert, note, paragraph, newparagraph, key или help.

open

Если open не равно нулю, заметка будет отображаться развёрнутой после открытия документа с помощью программы просмотра PDF.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_add_pdflink() - Добавляет ссылку на страницу в другом PDF-документе
  • ps_add_launchlink() - Добавляет ссылку, запускающую файл
  • ps_add_locallink() - Добавляет ссылку на страницу того же документа
  • ps_add_weblink() - Добавляет ссылку на веб-страницу


Добавляет ссылку на страницу в другом PDF-документе

  • « ps_add_note
  • ps_add_weblink »
  • PHP Manual
  • Функции PS
  • Добавляет ссылку на страницу в другом PDF-документе

ps_add_pdflink

(PECL ps >= 1.1.0)

ps_add_pdflink — Добавляет ссылку на страницу в другом PDF-документе

Описание

ps_add_pdflink(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
string $filename,
int $page,
string $dest
): bool

Добавляет гиперссылку в указанном месте, указывающую на другой документ PDF. Нажатие по ссылке приведёт к переходу на данную страницу. Номер первой страницы документа - 1.

Исходная позиция гиперссылки представляет собой прямоугольник с нижним левым углом в (llx, lly) и его правым верхним углом в (urx, ury). У прямоугольника по умолчанию есть тонкая синяя рамка.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

llx

Координата X левого нижнего угла.

lly

Координата Y левого нижнего угла.

urx

Координата X правого верхнего угла.

ury

Координата Y правого верхнего угла.

filename

Имя PDF-документа, который будет открыт при нажатии на ссылку.

page

Номер страницы, отображаемой при переходе по ссылке.

dest

Параметр dest определяет способ просмотра документа. Может быть: fitpage, fitwidth, fitheight или fitbbox.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_add_launchlink() - Добавляет ссылку, запускающую файл
  • ps_add_locallink() - Добавляет ссылку на страницу того же документа
  • ps_add_weblink() - Добавляет ссылку на веб-страницу


Добавляет ссылку на веб-страницу

  • « ps_add_pdflink
  • ps_arc »
  • PHP Manual
  • Функции PS
  • Добавляет ссылку на веб-страницу

ps_add_weblink

(PECL ps >= 1.1.0)

ps_add_weblink — Добавляет ссылку на веб-страницу

Описание

ps_add_weblink(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
string $url
): bool

Добавляет гиперссылку в указанном месте, указывающую на веб-страницу. Исходная позиция гиперссылки представляет собой прямоугольник с нижним левым углом в (llx, lly) и его правым верхним углом в (urx, ury). У прямоугольника по умолчанию есть тонкая синяя рамка.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

llx

Координата X левого нижнего угла.

lly

Координата Y левого нижнего угла.

urx

Координата X правого верхнего угла.

ury

Координата Y правого верхнего угла.

url

URL-адрес гиперссылки, которая открывается при нажатии на ссылку, например, http://www.php.net.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_add_launchlink() - Добавляет ссылку, запускающую файл
  • ps_add_locallink() - Добавляет ссылку на страницу того же документа
  • ps_add_pdflink() - Добавляет ссылку на страницу в другом PDF-документе


Рисует дугу против часовой стрелки

  • « ps_add_weblink
  • ps_arcn »
  • PHP Manual
  • Функции PS
  • Рисует дугу против часовой стрелки

ps_arc

(PECL ps >= 1.1.0)

ps_arc — Рисует дугу против часовой стрелки

Описание

ps_arc(
resource $psdoc,
float $x,
float $y,
float $radius,
float $alpha,
float $beta
): bool

Рисует часть круга со средней точкой в точке (x, y). Дуга начинается под углом alpha и заканчивается под углом beta. Она рисуется против часовой стрелки (используйте ps_arcn() для рисования по часовой стрелке). Дочерний путь, добавленный к текущему пути, начинается на дуге под углом alpha и заканчивается на дуге под углом beta.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

x

Координата X средней точки круга.

y

Координата Y средней точки круга.

radius

Радиус круга.

alpha

Начальный угол в градусах.

beta

Конечный угол в градусах.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_arcn() - Рисует дугу по часовой стрелке


Рисует дугу по часовой стрелке

  • « ps_arc
  • ps_begin_page »
  • PHP Manual
  • Функции PS
  • Рисует дугу по часовой стрелке

ps_arcn

(PECL ps >= 1.1.0)

ps_arcn — Рисует дугу по часовой стрелке

Описание

ps_arcn(
resource $psdoc,
float $x,
float $y,
float $radius,
float $alpha,
float $beta
): bool

Рисует часть круга со средней точкой в точке (x, y). Дуга начинается под углом alpha и заканчивается под углом beta. Она рисуется по часовой стрелке (используйте ps_arc() для рисования против часовой стрелки). Дочерний путь, добавленный к текущему пути, начинается на дуге под углом alpha и заканчивается на дуге под углом beta.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

x

Координата X средней точки круга.

y

Координата Y средней точки круга.

radius

Радиус круга.

alpha

Начальный угол в градусах.

beta

Конечный угол в градусах.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_arc() - Рисует дугу против часовой стрелки


Начинает новую страницу

  • « ps_arcn
  • ps_begin_pattern »
  • PHP Manual
  • Функции PS
  • Начинает новую страницу

ps_begin_page

(PECL ps >= 1.1.0)

ps_begin_page — Начинает новую страницу

Описание

ps_begin_page(resource $psdoc, float $width, float $height): bool

Начинает новую страницу. Хотя параметры width и height подразумевают различный размер страницы для каждой страницы, это невозможно в PostScript. Первый вызов ps_begin_page() устанавливает размер страницы для всего документа. Последующие вызовы не будут иметь никакого эффекта, кроме создания новой страницы. Ситуация иная, если вы собираетесь преобразовать документ PostScript в PDF. Функция помещает в документ метки PDF, которые могут индивидуально устанавливать размер каждой страницы. Полученный PDF-документ будет иметь разные размеры страниц.

Хотя PostScript не знает разных размеров страниц, pslib помещает в документ ограничительную рамку для каждой страницы. Этот размер оценивается некоторыми программами просмотра PostScript и имеет приоритет над BoundingBox в заголовке документа. Это может привести к неожиданным результатам, если вы установите BoundingBox, нижний левый угол которого не равен (0, 0), потому что у ограничивающей рамки страницы всегда будет нижний левый угол (0, 0) и перезапишет глобальную настройку.

Каждая страница инкапсулируется в режим сохранения/восстановления. Это означает, что большинство настроек, сделанных на одной странице, не будут сохранены на следующей странице.

Если до первого вызова ps_begin_page() не было вызова ps_findfont(), то будет выведен заголовок документа PostScript, а размер ограничивающей рамки будет установлен на первая страница. Нижний левый угол ограничивающей рамки установлен в (0, 0). Если ps_findfont() была вызвана раньше, значит, заголовок уже был выведен и документ не будет иметь корректной ограничительной рамки. Чтобы предотвратить это, следует вызвать ps_set_info(), чтобы установить информационное поле BoundingBox и, возможно, Orientation перед любым вызовом ps_findfont() или ps_begin_page().

Замечание:

До версии 0.2.6 pslib функция всегда будет перезаписывать BoundingBox и Orientation, если они была установлены ранее с помощью ps_set_info() и ps_findfont() ранее не вызывалась.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

width

Ширина страницы в пикселях, например, 596 для формата А4.

height

Высота страницы в пикселях, например, 842 для формата А4.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_end_page() - Завершает страницу
  • ps_findfont() - Загружает шрифт
  • ps_set_info() - Устанавливает информационные поля документа


Начинает новый узор

  • « ps_begin_page
  • ps_begin_template »
  • PHP Manual
  • Функции PS
  • Начинает новый узор

ps_begin_pattern

(PECL ps >= 1.2.0)

ps_begin_pattern — Начинает новый узор

Описание

ps_begin_pattern(
resource $psdoc,
float $width,
float $height,
float $xstep,
float $ystep,
int $painttype
): int|false

Начинает новый узор. Узор похож на страницу, содержащую, например, рисунок, который можно использовать для заливки областей. Он используется как цвет, вызывая ps_setcolor() и устанавливая цветовое пространство в pattern.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

width

Ширина узора в пикселях.

height

Высота узора в пикселях.

x-step

Расстояние в пикселях размещений узора по горизонтали.

y-step

Расстояние в пикселях размещений узора по вертикали.

painttype

Может быть 1 или 2.

Возвращаемые значения

Идентификатор узора или false в случае возникновения ошибки.

Примеры

Пример #1 Создание и использование узора

<?php
$ps = ps_new();

if (!ps_open_file($ps, "pattern.ps")) {
print "Не удаётся открыть файл PostScript\n";
exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "pattern.php");
ps_set_info($ps, "Author", "Уве Штайнманн");
ps_set_info($ps, "Title", "Пример узора");

$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() - Завершает шаблон
  • ps_setcolor() - Устанавливает текущий цвет
  • ps_shading_pattern() - Создаёт узор на основе затенения


Начинает новый шаблон

  • « ps_begin_pattern
  • ps_circle »
  • PHP Manual
  • Функции PS
  • Начинает новый шаблон

ps_begin_template

(PECL ps >= 1.2.0)

ps_begin_template — Начинает новый шаблон

Описание

ps_begin_template(resource $psdoc, float $width, float $height): int

Начинает новый шаблон. На языке postscript шаблон называется формой. Он создаётся аналогично узору, но используется как изображение. Шаблоны часто используются для рисунков, которые размещаются в документе несколько раз, например как логотип компании. В шаблоне можно использовать все функции рисования. Шаблон не будет нарисован, пока он не будет размещён с помощью ps_place_image().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

width

Ширина шаблона в пикселях.

height

Высота шаблона в пикселях.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Создание и использование шаблона

<?php
$ps = ps_new();

if (!ps_open_file($ps, "template.ps")) {
print "Не удаётся открыть файл PostScript\n";
exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "template.php");
ps_set_info($ps, "Author", "Уве Штайнманн");
ps_set_info($ps, "Title", "Пример шаблона");

$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() - Завершает шаблон


Рисует круг

  • « ps_begin_template
  • ps_clip »
  • PHP Manual
  • Функции PS
  • Рисует круг

ps_circle

(PECL ps >= 1.1.0)

ps_circle — Рисует круг

Описание

ps_circle(
resource $psdoc,
float $x,
float $y,
float $radius
): bool

Рисует круг со средней точкой в точке (x, y). Круг начинается и заканчивается в позиции (x+radius, y). Если функция вызывается вне пути, она начнёт новый путь. Если функция вызывается внутри пути, она добавит круг как дочерний путь. Если последняя операция рисования не заканчивается точкой (x+radius, y), тогда на пути будет разрыв.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

x

Координата X центра круга.

y

Координата Y центра круга.

radius

Радиус круга.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_arc() - Рисует дугу против часовой стрелки
  • ps_arcn() - Рисует дугу по часовой стрелке


Отрисовка клипов по текущему пути

  • « ps_circle
  • ps_close_image »
  • PHP Manual
  • Функции PS
  • Отрисовка клипов по текущему пути

ps_clip

(PECL ps >= 1.1.0)

ps_clip — Отрисовка клипов по текущему пути

Описание

ps_clip(resource $psdoc): bool

Берёт текущий путь и использует его для определения границы области отсечения. Всё, что нарисовано за пределами этой области, не будет видно.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_closepath() - Замыкает путь


Закрывает изображение и освобождает память

  • « ps_clip
  • ps_close »
  • PHP Manual
  • Функции PS
  • Закрывает изображение и освобождает память

ps_close_image

(PECL ps >= 1.1.0)

ps_close_image — Закрывает изображение и освобождает память

Описание

ps_close_image(resource $psdoc, int $imageid): void|false

Закрывает изображение и освобождает его ресурсы. Как только изображение было закрыто, его больше нельзя использовать.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

imageid

Идентификатор ресурса изображения, возвращённый функцией ps_open_image() или ps_open_image_file().

Возвращаемые значения

Возвращает null в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_open_image() - Считывает изображение для последующего размещения
  • ps_open_image_file() - Открывает изображение из файла


Закрывает документ PostScript

  • « ps_close_image
  • ps_closepath_stroke »
  • PHP Manual
  • Функции PS
  • Закрывает документ PostScript

ps_close

(PECL ps >= 1.1.0)

ps_close — Закрывает документ PostScript

Описание

ps_close(resource $psdoc): bool

Закрывает документ PostScript.

Функция записывает количество страниц в документе PostScript. Она также записывает иерархию закладок. ps_close() не освобождает ресурсы, как ps_delete().

Функция также вызывается функцией ps_delete(), если она не была вызвана ранее.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_open_file() - Открывает файл для вывода
  • ps_delete() - Удаляет все ресурсы документа PostScript


Замыкает и обводит контур

  • « ps_close
  • ps_closepath »
  • PHP Manual
  • Функции PS
  • Замыкает и обводит контур

ps_closepath_stroke

(PECL ps >= 1.1.0)

ps_closepath_stroke — Замыкает и обводит контур

Описание

ps_closepath_stroke(resource $psdoc): bool

Соединяет последнюю точку с первой точкой пути и рисует получившуюся замкнутую линию.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_closepath() - Замыкает путь


Замыкает путь

  • « ps_closepath_stroke
  • ps_continue_text »
  • PHP Manual
  • Функции PS
  • Замыкает путь

ps_closepath

(PECL ps >= 1.1.0)

ps_closepath — Замыкает путь

Описание

ps_closepath(resource $psdoc): bool

Соединяет последнюю точку с первой точкой пути. Полученный контур можно использовать для обводки, заливки, обрезки и т.д.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_clip() - Отрисовка клипов по текущему пути
  • ps_closepath_stroke() - Замыкает и обводит контур


Продолжает текст в следующей строке

  • « ps_closepath
  • ps_curveto »
  • PHP Manual
  • Функции PS
  • Продолжает текст в следующей строке

ps_continue_text

(PECL ps >= 1.1.0)

ps_continue_text — Продолжает текст в следующей строке

Описание

ps_continue_text(resource $psdoc, string $text): bool

Выводит текст на одну строку ниже последней строки. Межстрочный интервал берётся из значения "leading", которое должно быть установлено с помощью ps_set_value(). Фактическое положение текста определяется значениями "textx" и "texty", которые можно запросить с помощью функции ps_get_value().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

text

Текст для вывода.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_show() - Выводит текст
  • ps_show_xy() - Выводит текст в заданной позиции
  • ps_show_boxed() - Выводит текст в поле


Рисует кривую

  • « ps_continue_text
  • ps_delete »
  • PHP Manual
  • Функции PS
  • Рисует кривую

ps_curveto

(PECL ps >= 1.1.0)

ps_curveto — Рисует кривую

Описание

ps_curveto(
resource $psdoc,
float $x1,
float $y1,
float $x2,
float $y2,
float $x3,
float $y3
): bool

Добавляет отрезок кубической кривой Безье, описанный тремя заданными контрольными точками, к текущему пути. points to the current path.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

x1

Координата X первой контрольной точки.

y1

Координата Y первой контрольной точки.

x2

Координата X второй контрольной точки.

y2

Координата Y второй контрольной точки.

x3

Координата X третьей контрольной точки.

y3

Координата Y третьей контрольной точки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_lineto() - Рисует линию


Удаляет все ресурсы документа PostScript

  • « ps_curveto
  • ps_end_page »
  • PHP Manual
  • Функции PS
  • Удаляет все ресурсы документа PostScript

ps_delete

(PECL ps >= 1.1.0)

ps_delete — Удаляет все ресурсы документа PostScript

Описание

ps_delete(resource $psdoc): bool

В основном освобождает память, используемую документом. Также закрывает файл, если он не был ранее закрыт с помощью ps_close(). В любом случае вам следует закрыть файл с помощью ps_close() раньше, потому что ps_close() не только закрывает файл, но и выводит данные, содержащие комментарии PostScript, такие как количество страниц в документе и добавление иерархии закладок.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_close() - Закрывает документ PostScript


Завершает страницу

  • « ps_delete
  • ps_end_pattern »
  • PHP Manual
  • Функции PS
  • Завершает страницу

ps_end_page

(PECL ps >= 1.1.0)

ps_end_page — Завершает страницу

Описание

ps_end_page(resource $psdoc): bool

Завершает страницу, которая была начата с помощью ps_begin_page(). Завершение страницы приведёт к выходу из текущего контекста рисования, который, например, требует перезагрузки шрифтов, если они загружались на странице и установки многих других параметров рисования, таких как ширина линии или цвет.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_begin_page() - Начинает новую страницу


Завершает шаблон

  • « ps_end_page
  • ps_end_template »
  • PHP Manual
  • Функции PS
  • Завершает шаблон

ps_end_pattern

(PECL ps >= 1.2.0)

ps_end_pattern — Завершает шаблон

Описание

ps_end_pattern(resource $psdoc): bool

Завершает шаблон, который был начат с ps_begin_pattern(). Когда шаблон закончен, его можно использовать как цвет для заливки областей.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_begin_pattern() - Начинает новый узор


Завершает шаблон

  • « ps_end_pattern
  • ps_fill_stroke »
  • PHP Manual
  • Функции PS
  • Завершает шаблон

ps_end_template

(PECL ps >= 1.2.0)

ps_end_template — Завершает шаблон

Описание

ps_end_template(resource $psdoc): bool

Завершает шаблон, который был начат с помощью ps_begin_template(). После завершения шаблона его можно использовать как изображение.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_begin_template() - Начинает новый шаблон


Заполняет и обводит текущий путь

  • « ps_end_template
  • ps_fill »
  • PHP Manual
  • Функции PS
  • Заполняет и обводит текущий путь

ps_fill_stroke

(PECL ps >= 1.1.0)

ps_fill_stroke — Заполняет и обводит текущий путь

Описание

ps_fill_stroke(resource $psdoc): bool

Заполняет и обводит путь, построенный с помощью ранее вызванных функций рисования, таких как ps_lineto().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_fill() - Заполняет текущий путь
  • ps_stroke() - Рисует текущий путь


Заполняет текущий путь

  • « ps_fill_stroke
  • ps_findfont »
  • PHP Manual
  • Функции PS
  • Заполняет текущий путь

ps_fill

(PECL ps >= 1.1.0)

ps_fill — Заполняет текущий путь

Описание

ps_fill(resource $psdoc): bool

Заполняет путь, созданный с помощью ранее вызванных функций рисования, таких как ps_lineto().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_fill_stroke() - Заполняет и обводит текущий путь
  • ps_stroke() - Рисует текущий путь


Загружает шрифт

  • « ps_fill
  • ps_get_buffer »
  • PHP Manual
  • Функции PS
  • Загружает шрифт

ps_findfont

(PECL ps >= 1.1.0)

ps_findfont — Загружает шрифт

Описание

ps_findfont(
resource $psdoc,
string $fontname,
string $encoding,
bool $embed = false
): int

Загружает шрифт для дальнейшего использования. Перед выводом текста с загруженным шрифтом он должен быть установлен с помощью ps_setfont(). Функция нуждается в файле метрики шрифта Adobe, чтобы вычислить пространство, используемое символами. Шрифт, загруженный на страницу, будет доступен только на этой странице. Шрифты, которые будут использоваться во всем документе, должны быть загружены до первого вызова ps_begin_page(). Вызов ps_findfont() между страницами сделает шрифт доступным для всех следующих страниц.

Имя afm-файла должно быть fontname.afm. Если шрифт должен быть встроен, также должен присутствовать файл fontname.pfb, содержащий контур шрифта.

Вызов ps_findfont() перед первой страницей требует вывода заголовка PostScript, который включает BoundingBox для всего документа. Обычно BoundingBox устанавливается при первом вызове ps_begin_page(), который теперь идёт после ps_findfont(). Следовательно, BoundingBox не установлен, и при вызове ps_findfont() будет выдано предупреждение. Чтобы предотвратить эту ситуацию, следует вызвать ps_set_parameter() для установки BoundingBox до вызова ps_findfont().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

fontname

Название шрифта.

encoding

Функция ps_findfont() попытается загрузить файл, переданный в параметре encoding. Файлы кодирования имеют тот же синтаксис, что и используемые dvips(1). Они содержат вектор кодировки шрифта (который в настоящее время не используется, но должен присутствовать) и список дополнительных лигатур для расширения списка лигатур, полученных из файла afm.

encoding может быть null или пустой строкой, если должна использоваться кодировка по умолчанию (TeXBase1).

Если для кодировки установлено значение builtin, то перекодирования не будет и будет использоваться кодировка, специфичная для шрифта. Это очень полезно для символьных шрифтов.

embed

Если установлено значение > 0, шрифт будет встроен в документ. Для этого требуется наличие контура шрифта (файл .pfb).

Возвращаемые значения

Возвращает идентификатор шрифта или ноль в случае возникновения ошибки. Идентификатор - положительное число.

Смотрите также

  • ps_begin_page() - Начинает новую страницу
  • ps_setfont() - Устанавливает шрифт, который будет использоваться для следующего вывода


Получает полный буфер, содержащий сгенерированные данные PS

  • « ps_findfont
  • ps_get_parameter »
  • PHP Manual
  • Функции PS
  • Получает полный буфер, содержащий сгенерированные данные PS

ps_get_buffer

(PECL ps >= 1.1.0)

ps_get_buffer — Получает полный буфер, содержащий сгенерированные данные PS

Описание

ps_get_buffer(resource $psdoc): string

Функция пока не реализована. Она всегда будет возвращать пустую строку. Идея для более поздней реализации состоит в том, чтобы записать содержимое файла postscript во внутренний буфер, если требуется создание в памяти, и получить содержимое буфера с помощью этой функции. В настоящее время документы, созданные в памяти, отправляются в браузер без буферизации.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

Смотрите также

  • ps_open_file() - Открывает файл для вывода


Получает определённые параметры

  • « ps_get_buffer
  • ps_get_value »
  • PHP Manual
  • Функции PS
  • Получает определённые параметры

ps_get_parameter

(PECL ps >= 1.1.0)

ps_get_parameter — Получает определённые параметры

Описание

ps_get_parameter(resource $psdoc, string $name, float $modifier = ?): string|false

Получает несколько параметров, которые были прямо установлены ps_set_parameter() или косвенно одной из других функций. Параметры по определению являются строковыми значениями. Функцию нельзя использовать для получения ресурсов, которые также были установлены с помощью ps_set_parameter().

Параметр name может иметь следующие значения:

fontname

Имя текущего активного шрифта или шрифта, идентификатор которого передаётся в параметре modifier.

fontencoding

Кодировка текущего активного шрифта.

dottedversion

Версия базовой библиотеки pslib в формате <major>.<minor>.<subminor>

scope

Текущий объём чертежа. Может быть: object, document, null, page, pattern, path, template, prolog, font, glyph.

ligaturedisolvechar

Символ, который растворяет лигатуру. Если вы используете шрифт, содержащий лигатуры `ff' и символ для растворения лигатуры `|', тогда `f|f' приведёт к двум `f' вместо лигатуры `ff'.

imageencoding

Кодировка, используемая для кодирования изображений. Может иметь значение hex или 85. Шестнадцатеричное кодирование использует два байта в файле postscript на каждый байт изображения. 85 - это кодировка Ascii85.

linenumbermode

Установите значение paragraph, если строки пронумерованы внутри абзаца или box, если они пронумерованы в пределах окружающего поля.

linebreak

Используется, только если текст выводится с помощью ps_show_boxed(). Если установлено значение true, возврат каретки добавит разрыв строки.

parbreak

Используется, только если текст выводится с помощью ps_show_boxed(). Если установлено значение true, возврат каретки начнёт новый абзац.

hyphenation

Используется, только если текст выводится с помощью ps_show_boxed(). Если установлено значение true, абзац будет расставлен через дефис, если дефисный словарь установлен и существует.

hyphendict

Имя файла словаря, используемого для расстановки переносов.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

name

Имя параметра.

modifier

Идентификатор, необходимый, если запрашивается параметр ресурса, например, размер изображения. В таком случае передаётся идентификатор ресурса.

Возвращаемые значения

Возвращает значение параметра или false в случае возникновения ошибки.

Смотрите также

  • ps_set_parameter() - Устанавливает определённые параметры


Получает определённые значения

  • « ps_get_parameter
  • ps_hyphenate »
  • PHP Manual
  • Функции PS
  • Получает определённые значения

ps_get_value

(PECL ps >= 1.1.0)

ps_get_value — Получает определённые значения

Описание

ps_get_value(resource $psdoc, string $name, float $modifier = ?): float

Получает несколько значений, установленных ps_set_value(). Значения по определению являются значениями с плавающей точкой.

Параметр name может иметь следующие значения:

fontsize

Размер текущего активного шрифта или шрифта, идентификатор которого передаётся в параметре modifier.

font

Текущий активный шрифт.

imagewidth

Ширина изображения, идентификатор которого передаётся в параметре modifier.

imageheight

Высота изображения, идентификатор которого передаётся в параметре modifier.

capheight

Высота заглавной буквы M активного шрифта или шрифта, идентификатор которого передаётся в параметре modifier.

ascender

Верхний элемент активного шрифта или шрифта, идентификатор которого передаётся в параметре modifier.

descender

Нисходящий элемент активного шрифта или шрифта, идентификатор которого передаётся в параметре modifier.

italicangle

Курсив активного шрифта или шрифта, идентификатор которого передаётся в параметре modifier.

underlineposition

Подчёркивание активного шрифта или шрифта, идентификатор которого передаётся в параметре modifier.

underlinethickness

Толщина подчёркивания активного шрифта или шрифта, идентификатор которого передаётся в параметре modifier.

textx

Текущая позиция по оси X для вывода текста.

texty

Текущая позиция по оси Y для вывода текста.

textrendering

Текущий режим отрисовки текста.

textrise

Пространство, на которое текст поднимается над базовой линией.

leading

Расстояние между строками текста в точках.

wordspacing

Расстояние между словами, кратное ширине символа пробела.

charspacing

Пробел между символами. Если charspacing не равно 0.0, лигатуры всегда будут растворяться.

hyphenminchars

Минимальное количество символов в конце слова.

parindent

Отступ первой n строки абзаца.

numindentlines

Номер строки в абзаце для отступа, если parindent не равно 0,0.

parskip

Расстояние между абзацами.

linenumberspace

Общее пространство перед каждой строкой для номера строки.

linenumbersep

Пробел между строкой и номером строки.

major

Мажорная версия pslib.

minor

Минорная версия pslib.

subminor, revision

Патч-версия pslib.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

name

Название значения.

modifier

Параметр modifier указывает ресурс, для которого должно быть получено значение. Это может быть идентификатор шрифта или изображения.

Возвращаемые значения

Возвращает значение параметра или false.

Смотрите также

  • ps_set_value() - Устанавливает определённые значения


Переносит слово

  • « ps_get_value
  • ps_include_file »
  • PHP Manual
  • Функции PS
  • Переносит слово

ps_hyphenate

(PECL ps >= 1.1.1)

ps_hyphenate — Переносит слово

Описание

ps_hyphenate(resource $psdoc, string $text): array|false

Переносит указанное слово. Функция ps_hyphenate() оценивает дефисы значения (устанавливается ps_set_value()) и дефисы параметра (устанавливается ps_set_parameter()). Перед вызовом этой функции необходимо установить дефис.

Для работы функции требуется, чтобы категория языкового стандарта LC_CTYPE была установлена корректно. Это делается, при инициализации модуля с использованием переменных окружения. В системах Unix для получения дополнительной информации прочтите справочную страницу языковых стандартов.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

text

text не должен содержать никаких символов, отличных от букв. Возможные позиции для переносов возвращаются в виде массива целых чисел. Каждое число - это позиция символа в text, после которой может быть выполнен перенос.

Возвращаемые значения

Массив целых чисел, указывающий положение возможных переносов в тексте или false в случае возникновения ошибки.

Примеры

Пример #1 Перенос текста

<?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() - Выводит текст в поле
  • locale(1)


Читает внешний файл с необработанным кодом PostScript

  • « ps_hyphenate
  • ps_lineto »
  • PHP Manual
  • Функции PS
  • Читает внешний файл с необработанным кодом PostScript

ps_include_file

(PECL ps >= 1.3.4)

ps_include_file — Читает внешний файл с необработанным кодом PostScript

Описание

ps_include_file(resource $psdoc, string $file): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

file

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Рисует линию

  • « ps_include_file
  • ps_makespotcolor »
  • PHP Manual
  • Функции PS
  • Рисует линию

ps_lineto

(PECL ps >= 1.1.0)

ps_lineto — Рисует линию

Описание

ps_lineto(resource $psdoc, float $x, float $y): bool

Добавляет к текущему пути прямую линию от текущей точки до заданных координат. Используйте ps_moveto(), чтобы установить начальную точку линии.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

x

Координата X конечной точки линии.

y

Координата Y конечной точки линии.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Рисование прямоугольника

<?php
$ps = ps_new();
if (!ps_open_file($ps, "rectangle.ps")) {
print "Не удаётся открыть файл PostScript\n";
exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Уве Штайнманн");
ps_set_info($ps, "Title", "Пример Линето");

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() - Устанавливает текущую точку


Создаёт плашечный цвет

  • « ps_lineto
  • ps_moveto »
  • PHP Manual
  • Функции PS
  • Создаёт плашечный цвет

ps_makespotcolor

(PECL ps >= 1.1.0)

ps_makespotcolor — Создаёт плашечный цвет

Описание

ps_makespotcolor(resource $psdoc, string $name, int $reserved = 0): int

Создаёт плашечный цвет из текущего цвета заливки. Цвет заливки должен быть определён в цветовом пространстве rgb, cmyk или gray. Название плашечного цвета может быть произвольным. Плашечный цвет может быть установлен как любой цвет с помощью ps_setcolor(). Если документ не печатается, а отображается программой просмотра PostScript, используется заданный цвет в указанном цветовом пространстве.

Список параметров

psdoc

Идентификатор ресурса файла PostScript, возвращённый функцией ps_new().

name

Название плашечного цвета, например, Pantone 5565.

Возвращаемые значения

Идентификатор нового плашечного цвета или 0 в случае возникновения ошибки.

Примеры

Пример #1 Создание и использование плашечного цвета

<?php
$ps = ps_new();
if (!ps_open_file($ps, "spotcolor.ps")) {
print "Не удаётся открыть файл PostScript\n";
exit;
}

ps_set_info($ps, "Creator", "spotcolor.php");
ps_set_info($ps, "Author", "Уве Штайнманн");
ps_set_info($ps, "Title", "Пример плашечного цвета");

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);
?>

В этом примере создаётся плашечный цвет "PANTONE 5565 C", который является более темно-зелёным (оливковым) и заполняет прямоугольник с интенсивностью 50%.

Смотрите также

  • ps_setcolor() - Устанавливает текущий цвет


Устанавливает текущую точку

  • « ps_makespotcolor
  • ps_new »
  • PHP Manual
  • Функции PS
  • Устанавливает текущую точку

ps_moveto

(PECL ps >= 1.1.0)

ps_moveto — Устанавливает текущую точку

Описание

ps_moveto(resource $psdoc, float $x, float $y): bool

Устанавливает новые координаты текущей точке. Если это первый вызов ps_moveto() после того, как предыдущий путь был завершён, тогда функция запустит новый путь. Если функция вызывается в середине пути, она просто устанавливает текущую точку и запускает дополнительный путь.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

x

Координата X точки, в которую нужно переместиться.

y

Координата Y точки, в которую нужно переместиться.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_lineto() - Рисует линию


Создаёт новый объект документа PostScript

  • « ps_moveto
  • ps_open_file »
  • PHP Manual
  • Функции PS
  • Создаёт новый объект документа PostScript

ps_new

(PECL ps >= 1.1.0)

ps_new — Создаёт новый объект документа PostScript

Описание

ps_new(): resource|false

Создаёт новый экземпляр документа. Функция не создаёт файл на диске или в памяти, она просто все настраивает. За ps_new() обычно следует вызов ps_open_file() для фактического создания документа postscript.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ресурс документа PostScript или false в случае возникновения ошибки. Возвращаемое значение передаётся всем остальным функциям в качестве первого аргумента.

Смотрите также

  • ps_delete() - Удаляет все ресурсы документа PostScript


Открывает файл для вывода

  • « ps_new
  • ps_open_image_file »
  • PHP Manual
  • Функции PS
  • Открывает файл для вывода

ps_open_file

(PECL ps >= 1.1.0)

ps_open_file — Открывает файл для вывода

Описание

ps_open_file(resource $psdoc, string $filename = ?): bool

Создаёт новый файл на диске и записывает в него документ PostScript. Файл будет закрыт при вызове ps_close().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

filename

Имя файла postscript. Если filename не передан, документ будет создан в памяти и весь вывод будет идти прямо в браузер.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_close() - Закрывает документ PostScript


Открывает изображение из файла

  • « ps_open_file
  • ps_open_image »
  • PHP Manual
  • Функции PS
  • Открывает изображение из файла

ps_open_image_file

(PECL ps >= 1.1.0)

ps_open_image_file — Открывает изображение из файла

Описание

ps_open_image_file(
resource $psdoc,
string $type,
string $filename,
string $stringparam = ?,
int $intparam = 0
): int

Загружает изображение для дальнейшего использования.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

type

Тип изображения. Возможные значения: png, jpeg или eps.

filename

Имя файла, содержащего данные изображения.

stringparam

Параметр не используется.

intparam

Параметр не используется.

Возвращаемые значения

Возвращает идентификатор изображения или ноль в случае возникновения ошибки. Идентификатор - положительное число больше 0.

Смотрите также

  • ps_open_image() - Считывает изображение для последующего размещения
  • ps_place_image() - Размещает изображение на странице
  • ps_close_image() - Закрывает изображение и освобождает память


Считывает изображение для последующего размещения

  • « ps_open_image_file
  • ps_open_memory_image »
  • PHP Manual
  • Функции PS
  • Считывает изображение для последующего размещения

ps_open_image

(PECL ps >= 1.1.0)

ps_open_image — Считывает изображение для последующего размещения

Описание

ps_open_image(
resource $psdoc,
string $type,
string $source,
string $data,
int $lenght,
int $width,
int $height,
int $components,
int $bpc,
string $params
): int

Считывает изображение, которое уже доступно в памяти. Параметр source в настоящее время не используется и предполагается, что это memory. Данные изображения представляют собой последовательность пикселей, начинающуюся в верхнем левом углу и заканчивающуюся в правом нижнем углу. Каждый пиксель состоит из компонентов цвета (components) и у каждого компонента есть биты bpc.

Список параметров

psdoc

Идентификатор ресурса файла PostScript, возвращённый функцией ps_new().

type

Тип изображения. Возможные значения: png, jpeg или eps.

source

Не используется.

data

Данные изображения.

length

Длина данных изображения.

width

Ширина изображения.

height

Высота изображения.

components

Количество компонентов для каждого пикселя. Может быть: 1 (изображения в градациях серого), 3 (изображения RGB) или 4 (изображения cmyk, rgba).

bpc

Количество бит на компонент (чаще всего 8).

params

Возвращаемые значения

Возвращает идентификатор изображения или ноль в случае возникновения ошибки. Идентификатор - положительное число больше 0.

Смотрите также

  • ps_open_image_file() - Открывает изображение из файла
  • ps_place_image() - Размещает изображение на странице
  • ps_close_image() - Закрывает изображение и освобождает память


Берёт изображение GD и возвращает изображение для размещения в документе PS

  • « ps_open_image
  • ps_place_image »
  • PHP Manual
  • Функции PS
  • Берёт изображение GD и возвращает изображение для размещения в документе PS

ps_open_memory_image

(PECL ps >= 1.1.0)

ps_open_memory_image — Берёт изображение GD и возвращает изображение для размещения в документе PS

Описание

ps_open_memory_image(resource $psdoc, int $gd): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

gd


Размещает изображение на странице

  • « ps_open_memory_image
  • ps_rect »
  • PHP Manual
  • Функции PS
  • Размещает изображение на странице

ps_place_image

(PECL ps >= 1.1.0)

ps_place_image — Размещает изображение на странице

Описание

ps_place_image(
resource $psdoc,
int $imageid,
float $x,
float $y,
float $scale
): bool

Помещает ранее загруженное изображение на страницу. Изображение можно масштабировать. Если изображение тоже необходимо повернуть, нужно будет сначала повернуть систему координат с помощью ps_rotate().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

imageid

Идентификатор ресурса изображения, возвращённый ps_open_image() или ps_open_image_file().

x

Координата X левого нижнего угла изображения.

y

Координата Y левого нижнего угла изображения.

scale

Коэффициент масштабирования изображения. Масштаб 1.0 даст разрешение 72 точки на дюйм, потому что каждый пиксель эквивалентен 1 точке.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_open_image() - Считывает изображение для последующего размещения
  • ps_open_image_file() - Открывает изображение из файла


Рисует прямоугольник

  • « ps_place_image
  • ps_restore »
  • PHP Manual
  • Функции PS
  • Рисует прямоугольник

ps_rect

(PECL ps >= 1.1.0)

ps_rect — Рисует прямоугольник

Описание

ps_rect(
resource $psdoc,
float $x,
float $y,
float $width,
float $height
): bool

Рисует прямоугольник с нижним левым углом в точке (x, y). Прямоугольник начинается и заканчивается в нижнем левом углу. Если функция вызывается вне пути, она начинает новый путь. Если вызывается внутри пути, прямоугольник добавится как дополнительный путь. Если последняя операция рисования не заканчивается в нижнем левом углу, на пути будет разрыв.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

x

Координата X левого нижнего угла прямоугольника.

y

Координата Y левого нижнего угла прямоугольника.

width

Ширина изображения.

height

Высота изображения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_arc() - Рисует дугу против часовой стрелки
  • ps_cirle()
  • ps_lineto() - Рисует линию


Восстанавливает ранее сохранённый контекст

  • « ps_rect
  • ps_rotate »
  • PHP Manual
  • Функции PS
  • Восстанавливает ранее сохранённый контекст

ps_restore

(PECL ps >= 1.1.0)

ps_restore — Восстанавливает ранее сохранённый контекст

Описание

ps_restore(resource $psdoc): bool

Восстанавливает ранее сохранённый графический контекст. Любой вызов ps_save() должен сопровождаться вызовом ps_restore(). Все преобразования координат, настройки стиля линий, настройки цвета и т.д. восстанавливаются до состояния до вызова ps_save().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_save() - Сохраняет текущий контекст


Устанавливает коэффициент вращения

  • « ps_restore
  • ps_save »
  • PHP Manual
  • Функции PS
  • Устанавливает коэффициент вращения

ps_rotate

(PECL ps >= 1.1.0)

ps_rotate — Устанавливает коэффициент вращения

Описание

ps_rotate(resource $psdoc, float $rot): bool

Устанавливает поворот системы координат.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

rot

Угол поворота в градусах.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Вращение системы координат

<?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 "Не удаётся открыть файл PostScript\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, "Текст без поворота");
ps_end_page($ps);

ps_delete($ps);
?>

В приведённом выше примере показан очень распространённый способ поворота изображения (в данном случае просто прямоугольника) путём поворота системы координат. Поскольку система координат графики предполагает, что (0,0) является началом координат, система координат страницы также переводится, чтобы разместить графику не на краю страницы. Обратите внимание на порядок ps_translate() и ps_rotate(). В приведённом выше примере прямоугольник вращается вокруг точки (100, 100) в непереведённой системе координат. Переключение двух операторов даёт совершенно другой результат.

Чтобы вывести следующий текст в исходной позиции, все модификации системы координат инкапсулируются в ps_save() и ps_restore().

Смотрите также

  • ps_scale() - Устанавливает коэффициент масштабирования
  • ps_translate() - Изменяет систему координат


Сохраняет текущий контекст

  • « ps_rotate
  • ps_scale »
  • PHP Manual
  • Функции PS
  • Сохраняет текущий контекст

ps_save

(PECL ps >= 1.1.0)

ps_save — Сохраняет текущий контекст

Описание

ps_save(resource $psdoc): bool

Сохраняет текущий графический контекст, содержащий цвета, настройки перемещения, поворота и многое другое. Сохранённый контекст можно восстановить с помощью ps_restore().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_restore() - Восстанавливает ранее сохранённый контекст


Устанавливает коэффициент масштабирования

  • « ps_save
  • ps_set_border_color »
  • PHP Manual
  • Функции PS
  • Устанавливает коэффициент масштабирования

ps_scale

(PECL ps >= 1.1.0)

ps_scale — Устанавливает коэффициент масштабирования

Описание

ps_scale(resource $psdoc, float $x, float $y): bool

Устанавливает горизонтальный и вертикальный масштаб системы координат.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

x

Коэффициент масштабирования в горизонтальном направлении.

y

Коэффициент масштабирования по вертикали.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_rotate() - Устанавливает коэффициент вращения
  • ps_translate() - Изменяет систему координат


Устанавливает цвет границы аннотаций

  • « ps_scale
  • ps_set_border_dash »
  • PHP Manual
  • Функции PS
  • Устанавливает цвет границы аннотаций

ps_set_border_color

(PECL ps >= 1.1.0)

ps_set_border_color — Устанавливает цвет границы аннотаций

Описание

ps_set_border_color(
resource $psdoc,
float $red,
float $green,
float $blue
): bool

Ссылки, добавленные с помощью одной из функций ps_add_weblink(), ps_add_pdflink() и т.д., будут отображаться с закруглённым прямоугольником, когда документ PostScript преобразуется в PDF и просматривается в программе просмотра PDF. Этот прямоугольник не отображается в документе PostScript. Функция устанавливает цвет границы прямоугольника.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

red

Красный компонент цвета границы.

green

Зелёный компонент цвета границы.

blue

Синий компонент цвета границы.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_set_border_dash() - Устанавливает длину тире для границы аннотации
  • ps_set_border_style() - Устанавливает стиль границы аннотаций


Устанавливает длину тире для границы аннотации

  • « ps_set_border_color
  • ps_set_border_style »
  • PHP Manual
  • Функции PS
  • Устанавливает длину тире для границы аннотации

ps_set_border_dash

(PECL ps >= 1.1.0)

ps_set_border_dash — Устанавливает длину тире для границы аннотации

Описание

ps_set_border_dash(resource $psdoc, float $black, float $white): bool

Ссылки, добавленные с помощью одной из функций ps_add_weblink(), ps_add_pdflink() и т.д., будут отображаться с закруглённым прямоугольником, когда документ PostScript преобразуется в PDF и просматривается в программе просмотра PDF. Этот прямоугольник не отображается в документе PostScript. Функция устанавливает внешний вид и ширину линии границы.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

black

Длина чёрточки.

white

Длина промежутка между чёрточками.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_set_border_color() - Устанавливает цвет границы аннотаций
  • ps_set_border_style() - Устанавливает стиль границы аннотаций


Устанавливает стиль границы аннотаций

  • « ps_set_border_dash
  • ps_set_info »
  • PHP Manual
  • Функции PS
  • Устанавливает стиль границы аннотаций

ps_set_border_style

(PECL ps >= 1.1.0)

ps_set_border_style — Устанавливает стиль границы аннотаций

Описание

ps_set_border_style(resource $psdoc, string $style, float $width): bool

Ссылки, добавленные с помощью одной из функций ps_add_weblink(), ps_add_pdflink() и т.д., будут отображаться с закруглённым прямоугольником, когда документ PostScript преобразуется в PDF и просматривается в программе просмотра PDF. Этот прямоугольник не отображается в документе PostScript. Функция устанавливает внешний вид и ширину линии границы.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

style

style может быть solid или dashed.

width

Ширина линии границы.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_set_border_color() - Устанавливает цвет границы аннотаций
  • ps_set_border_dash() - Устанавливает длину тире для границы аннотации


Устанавливает информационные поля документа

  • « ps_set_border_style
  • ps_set_parameter »
  • PHP Manual
  • Функции PS
  • Устанавливает информационные поля документа

ps_set_info

(PECL ps >= 1.1.0)

ps_set_info — Устанавливает информационные поля документа

Описание

ps_set_info(resource $p, string $key, string $val): bool

Устанавливает определённые информационные поля документа. Эти поля будут отображаться в виде комментария в заголовке файла PostScript. Если документ конвертируется в pdf, эти поля также будут использоваться для информации о документе.

Для BoundingBox обычно устанавливается значение, присвоенное первой странице. Это работает, только если ps_findfont() не вызывалась раньше. В таких случаях BoundingBox не будет установлен, если вы не установите его явно с помощью этой функции.

Функция больше не будет работать, если заголовок файла postscript уже записан. Она должна вызываться перед первой страницей или первым вызовом ps_findfont().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

key

Имя настраиваемого информационного поля. Можно установить следующие значения: Keywords, Subject, Title, Creator, Author, BoundingBox и Orientation. Имейте в виду, что некоторые из них имеют значение для программ просмотра документов PostScript.

value

Значение информационного поля. Поле Orientation может быть установлено как Portrait или Landscape. В BoundingBox - это строка, состоящая из четырёх чисел. Первые два числа - координаты левого нижнего угла страницы. Последние два числа - координаты верхнего правого угла.

Замечание:

До версии 0.2.6 pslib BoundingBox и Orientation будут перезаписаны функцией ps_begin_page(), если функция ps_findfont() не была вызвана ранее.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_findfont() - Загружает шрифт
  • ps_begin_page() - Начинает новую страницу


Устанавливает определённые параметры

  • « ps_set_info
  • ps_set_text_pos »
  • PHP Manual
  • Функции PS
  • Устанавливает определённые параметры

ps_set_parameter

(PECL ps >= 1.1.0)

ps_set_parameter — Устанавливает определённые параметры

Описание

ps_set_parameter(resource $psdoc, string $name, string $value): bool

Устанавливает несколько параметров, которые используются многими функциями. Параметры по определению являются строковыми значениями.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

name

Список возможных имён смотрите ps_get_parameter().

value

Значение параметра.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_get_parameters()
  • ps_set_value() - Устанавливает определённые значения


Устанавливает позицию для вывода текста

  • « ps_set_parameter
  • ps_set_value »
  • PHP Manual
  • Функции PS
  • Устанавливает позицию для вывода текста

ps_set_text_pos

(PECL ps >= 1.1.0)

ps_set_text_pos — Устанавливает позицию для вывода текста

Описание

ps_set_text_pos(resource $psdoc, float $x, float $y): bool

Устанавливает позицию для следующего вывода текста. Можно установить значения X и Y отдельно, вызвав ps_set_value() и выбрав textx или texty соответственно в качестве имени значения.

Для вывода текста в определённом месте, удобнее использовать ps_show_xy() вместо установки позиции текста и вызова ps_show().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

x

Координата X новой позиции текста.

y

Координата Y новой позиции текста.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Размещение текста в заданной позиции

<?php
$ps = ps_new();
if (!ps_open_file($ps, "text.ps")) {
print "Не удается открыть файл PostScript\n";
exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Уве Штайнманн");
ps_set_info($ps, "Title", "Пример размещения текста");

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() - Устанавливает определённые значения
  • ps_show() - Выводит текст


Устанавливает определённые значения

  • « ps_set_text_pos
  • ps_setcolor »
  • PHP Manual
  • Функции PS
  • Устанавливает определённые значения

ps_set_value

(PECL ps >= 1.1.0)

ps_set_value — Устанавливает определённые значения

Описание

ps_set_value(resource $psdoc, string $name, float $value): bool

Устанавливает несколько значений, которые используются многими функциями. Параметры по определению являются значениями с плавающей точкой.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

name

Значение name может быть одно из следующего:

textrendering

Способ отображения текста.

textx

Координата X для вывода текста.

texty

Координата Y для вывода текста.

wordspacing

Расстояние между словами относительно ширины пробела.

leading

Расстояние между строками в пикселях.

value

Значение параметра.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_get_value() - Получает определённые значения
  • ps_set_parameter() - Устанавливает определённые параметры


Устанавливает текущий цвет

  • « ps_set_value
  • ps_setdash »
  • PHP Manual
  • Функции PS
  • Устанавливает текущий цвет

ps_setcolor

(PECL ps >= 1.1.0)

ps_setcolor — Устанавливает текущий цвет

Описание

ps_setcolor(
resource $psdoc,
string $type,
string $colorspace,
float $c1,
float $c2,
float $c3,
float $c4
): bool

Устанавливает цвет для рисования, заливки или и того и другого.

Список параметров

psdoc

Идентификатор ресурса файла PostScript, возвращённый функцией ps_new().

type

Параметр type может быть: both, fill или fillstroke.

colorspace

Цветовое пространство должно быть одним из: gray, rgb, cmyk, spot, pattern. В зависимости от цветового пространства будут использоваться только первый, первые три или все параметры.

c1

В зависимости от цветового пространства параметр может принимать значение: красный компонент (rgb), голубой компонент (cmyk), значение серого (gray), идентификатор плашечного цвета или идентификатор шаблона.

c2

В зависимости от цветового пространства параметр может принимать значение: либо зелёный компонент (rgb), либо пурпурный компонент (cmyk).

c3

В зависимости от цветового пространства параметр может принимать значение: либо синий компонент (rgb), либо жёлтый компонент (cmyk).

c4

Должно быть установлено только в цветовом пространстве cmyk, указывается чёрный компонент.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примечания

Предостережение

Второй параметр в настоящее время не всегда используется. Цвет иногда устанавливается для заливки и рисования так же, как если бы было передано значение fillstroke.


Устанавливает внешний вид пунктирной линии

  • « ps_setcolor
  • ps_setflat »
  • PHP Manual
  • Функции PS
  • Устанавливает внешний вид пунктирной линии

ps_setdash

(PECL ps >= 1.1.0)

ps_setdash — Устанавливает внешний вид пунктирной линии

Описание

ps_setdash(resource $psdoc, float $on, float $off): bool

Устанавливает длину чёрных и белых частей пунктирной линии.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

on

Длина чёрточки.

off

Длина промежутка между чёрточками.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_setpolydash() - Устанавливает внешний вид пунктирной линии


Устанавливает плоскостность

  • « ps_setdash
  • ps_setfont »
  • PHP Manual
  • Функции PS
  • Устанавливает плоскостность

ps_setflat

(PECL ps >= 1.1.0)

ps_setflat — Устанавливает плоскостность

Описание

ps_setflat(resource $psdoc, float $value): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

value

value должно быть между 0.2 и 1.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Устанавливает шрифт, который будет использоваться для следующего вывода

  • « ps_setflat
  • ps_setgray »
  • PHP Manual
  • Функции PS
  • Устанавливает шрифт, который будет использоваться для следующего вывода

ps_setfont

(PECL ps >= 1.1.0)

ps_setfont — Устанавливает шрифт, который будет использоваться для следующего вывода

Описание

ps_setfont(resource $psdoc, int $fontid, float $size): bool

Устанавливает шрифт, который должен быть загружен раньше с помощью ps_findfont(). Вывод текста без установки шрифта приводит к ошибке.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

fontid

Идентификатор шрифта, возвращённый ps_findfont().

size

Размер шрифта.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_findfont() - Загружает шрифт
  • ps_set_text_pos() - Устанавливает позицию для вывода текста для примера.


Устанавливает значение серого

  • « ps_setfont
  • ps_setlinecap »
  • PHP Manual
  • Функции PS
  • Устанавливает значение серого

ps_setgray

(PECL ps >= 1.1.0)

ps_setgray — Устанавливает значение серого

Описание

ps_setgray(resource $psdoc, float $gray): bool

Устанавливает значение серого для всех последующих операций рисования.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

gray

Значение должно быть от 0 (белый) до 1 (чёрный).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_setcolor() - Устанавливает текущий цвет


Устанавливает внешний вид окончания линии

  • « ps_setgray
  • ps_setlinejoin »
  • PHP Manual
  • Функции PS
  • Устанавливает внешний вид окончания линии

ps_setlinecap

(PECL ps >= 1.1.0)

ps_setlinecap — Устанавливает внешний вид окончания линии

Описание

ps_setlinecap(resource $psdoc, int $type): bool

Устанавливает внешний вид окончания линии.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

type

Тип окончания линии. Возможные значения: PS_LINECAP_BUTT, PS_LINECAP_ROUND или PS_LINECAP_SQUARED.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_setlinejoin() - Устанавливает способ соединения линий
  • ps_setlinewidth() - Устанавливает ширину линии
  • ps_setmiterlimit() - Устанавливает предел скоса


Устанавливает способ соединения линий

  • « ps_setlinecap
  • ps_setlinewidth »
  • PHP Manual
  • Функции PS
  • Устанавливает способ соединения линий

ps_setlinejoin

(PECL ps >= 1.1.0)

ps_setlinejoin — Устанавливает способ соединения линий

Описание

ps_setlinejoin(resource $psdoc, int $type): bool

Устанавливает способ соединения линий.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

type

Способ соединения линий. Возможные значения: PS_LINEJOIN_MITER, PS_LINEJOIN_ROUND или PS_LINEJOIN_BEVEL.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_setlinecap() - Устанавливает внешний вид окончания линии
  • ps_setlinewidth() - Устанавливает ширину линии
  • ps_setmiterlimit() - Устанавливает предел скоса


Устанавливает ширину линии

  • « ps_setlinejoin
  • ps_setmiterlimit »
  • PHP Manual
  • Функции PS
  • Устанавливает ширину линии

ps_setlinewidth

(PECL ps >= 1.1.0)

ps_setlinewidth — Устанавливает ширину линии

Описание

ps_setlinewidth(resource $psdoc, float $width): bool

Устанавливает ширину линии для всех последующих операций рисования.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

width

Ширина линий в точках.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_setlinecap() - Устанавливает внешний вид окончания линии
  • ps_setlinejoin() - Устанавливает способ соединения линий
  • ps_setmiterlimit() - Устанавливает предел скоса


Устанавливает предел скоса

  • « ps_setlinewidth
  • ps_setoverprintmode »
  • PHP Manual
  • Функции PS
  • Устанавливает предел скоса

ps_setmiterlimit

(PECL ps >= 1.1.0)

ps_setmiterlimit — Устанавливает предел скоса

Описание

ps_setmiterlimit(resource $psdoc, float $value): bool

Если две линии соединяются под небольшим углом, а для соединения линий установлено значение PS_LINEJOIN_MITER, то результирующий выступ будет очень длинным. Предел скоса - это максимальное соотношение длины скоса (длины выступа) и ширины линии.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

value

Максимальное соотношение между длиной скоса и шириной линии. Большие значения (> 10) приведут к очень длинным выступам, если две линии пересекаются под небольшим углом. Оставьте значение по умолчанию, если вы не уверены в том, что делаете.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_setlinecap() - Устанавливает внешний вид окончания линии
  • ps_setlinejoin() - Устанавливает способ соединения линий
  • ps_setlinewidth() - Устанавливает ширину линии


Устанавливает режим наложения

  • « ps_setmiterlimit
  • ps_setpolydash »
  • PHP Manual
  • Функции PS
  • Устанавливает режим наложения

ps_setoverprintmode

(PECL ps >= 1.3.0)

ps_setoverprintmode — Устанавливает режим наложения

Описание

ps_setoverprintmode(resource $psdoc, int $mode): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

mode

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Устанавливает внешний вид пунктирной линии

  • « ps_setoverprintmode
  • ps_shading_pattern »
  • PHP Manual
  • Функции PS
  • Устанавливает внешний вид пунктирной линии

ps_setpolydash

(PECL ps >= 1.1.0)

ps_setpolydash — Устанавливает внешний вид пунктирной линии

Описание

ps_setpolydash(resource $psdoc, float $arr): bool

Устанавливает длину чёрных и белых частей пунктирной линии. ps_setpolydash() используется для установки более сложных шаблонов тире.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

arr

arr - это список элементов длины поочерёдно для чёрной и белой части.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Рисование пунктирной линии

<?php
$ps = ps_new();
if (!ps_open_file($ps, "polydash.ps")) {
print "Не удаётся открыть файл PostScript\n";
exit;
}

ps_set_info($ps, "Creator", "polydash.php");
ps_set_info($ps, "Author", "Уве Штайнманн");
ps_set_info($ps, "Title", "Пример множественного тире");

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);
?>

В этом примере рисуется линия из 10 и 2 точек с промежутками в 5 точек между ними.

Смотрите также

  • ps_setdash() - Устанавливает внешний вид пунктирной линии


Создаёт узор на основе затенения

  • « ps_setpolydash
  • ps_shading »
  • PHP Manual
  • Функции PS
  • Создаёт узор на основе затенения

ps_shading_pattern

(PECL ps >= 1.3.0)

ps_shading_pattern — Создаёт узор на основе затенения

Описание

ps_shading_pattern(resource $psdoc, int $shadingid, string $optlist): int|false

Создаёт узор на основе затенения, которое должно быть создано ранее с помощью ps_shading(). Шаблоны затенения можно использовать как обычные шаблоны.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

shadingid

Идентификатор затенения, ранее созданного с помощью ps_shading().

optlist

Аргумент в настоящее время не используется.

Возвращаемые значения

Идентификатор шаблона или false в случае возникновения ошибки.

Смотрите также

  • ps_shading() - Создаёт затенение для последующего использования
  • ps_shfill() - Заполняет область затенением


Создаёт затенение для последующего использования

  • « ps_shading_pattern
  • ps_shfill »
  • PHP Manual
  • Функции PS
  • Создаёт затенение для последующего использования

ps_shading

(PECL ps >= 1.3.0)

ps_shading — Создаёт затенение для последующего использования

Описание

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|false

Создаёт затенение, которое может использоваться функцией ps_shfill() или ps_shading_pattern().

Цвет затенения может быть в любом цветовом пространстве, кроме pattern.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

type

Тип затенения может быть radial или axial. Каждое затенение начинается с текущего цвета заливки и заканчивается заданными значениями цвета, переданными в параметрах от c1 до c4 (описание их значений смотрите в ps_setcolor()).

x0, x1, y0, y1

Координаты x0, y0, x1, y1 - это начальная и конечная точки затенения. Если тип затенения - radial, две точки являются средними точками начальной и конечной окружностей.

c1, c2, c3, c4

Смотрите описание их значений в ps_setcolor().

optlist

Если тип затенения radial, optlist также должен содержать параметры r0 и r1 с радиусом начального и конечного круга.

Возвращаемые значения

Возвращает идентификатор шаблона или false в случае возникновения ошибки.

Смотрите также

  • ps_shading_pattern() - Создаёт узор на основе затенения
  • ps_shfill() - Заполняет область затенением


Заполняет область затенением

  • « ps_shading
  • ps_show_boxed »
  • PHP Manual
  • Функции PS
  • Заполняет область затенением

ps_shfill

(PECL ps >= 1.3.0)

ps_shfill — Заполняет область затенением

Описание

ps_shfill(resource $psdoc, int $shadingid): bool

Заполняет область затенением, которое должно быть создано ранее с помощью ps_shading(). Это альтернативный способ создания узора из затенения ps_shading_pattern() и использования узора в качестве цвета заливки.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

shadingid

Идентификатор затенения, ранее созданного с помощью ps_shading().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_shading() - Создаёт затенение для последующего использования
  • ps_shading_pattern() - Создаёт узор на основе затенения


Выводит текст в поле

  • « ps_shfill
  • ps_show_xy2 »
  • PHP Manual
  • Функции PS
  • Выводит текст в поле

ps_show_boxed

(PECL ps >= 1.1.0)

ps_show_boxed — Выводит текст в поле

Описание

ps_show_boxed(
resource $psdoc,
string $text,
float $left,
float $bottom,
float $width,
float $height,
string $hmode,
string $feature = ?
): int

Выводит текст в заданном поле. Нижний левый угол поля находится в (left, bottom). При необходимости будут вставлены разрывы строк. Несколько пробелов рассматриваются как один. Табуляторы рассматриваются как пробелы.

Текст будет переноситься через дефис, если для параметра hyphenation установлено значение true, а параметр hyphendict содержит допустимое имя файла для файла расстановки переносов. Межстрочный интервал берётся из значения leading. Абзацы можно разделять пустой строкой, как в TeX. Если для параметра parindent установлено значение > 0.0, то первые n строк будут с отступом. Количество строк n задаётся параметром numindentlines. Чтобы предотвратить отступ первых m абзацев, установите положительное число значением параметра parindentkip.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

text

Текст, который нужно вывести в данное поле.

left

Координата X левого нижнего угла поля.

bottom

Координата Y левого нижнего угла поля.

width

Ширина поля.

height

Высота поля.

hmode

Параметр hmode может быть fulljustify, right, left или center. Разница между justify и fulljustify влияет только на последнюю строку поля. В режиме fulljustify последняя строка будет выровнена по левому и правому краю, если только это не последняя строка абзаца. В режиме justify она всегда будет выровнена по левому краю.

feature

Используемые параметры

Вывод ps_show_boxed() может быть сконфигурирован с несколькими параметрами и значениями, которые должны быть установлены с помощью ps_set_parameter() или ps_set_value(). Помимо параметров и значений, влияющих на вывод текста, оцениваются следующие параметры и значения:

leading (значение)

Расстояние между базовыми линиями двух последовательных линий.

linebreak (параметр)

Установите значение true, если хотите, чтобы возврат каретки начинал новую строку, а не рассматривал его как пробел. По умолчанию false.

parbreak (параметр)

Установите значение true, если хотите, чтобы возврат каретки в отдельной строке начинал новый абзац, а не рассматривал его как пробел. По умолчанию true.

hyphenation (параметр)

Установите значение true, чтобы включить расстановку переносов. Для этого требуется, чтобы словарь был установлен с параметром hyphendict. По умолчанию false.

hyphendict (параметр)

Имя файла словаря, используемого для расстановки переносов (смотрите ниже).

hyphenminchar (значение)

Количество символов, которое должно быть по крайней мере оставлено до или после дефиса. Это означает, что через дефис будут перенесены только слова, которые как минимум в два раза превышают это значение. Значение по умолчанию - три. Установка нулевого значения установит значение по умолчанию.

parindent (значение)

Установите количество места в пикселях для отступа первых m строк абзаца. m можно установить с помощью значения numindentlines.

parskip (значение)

Установите количество дополнительного пространства в пикселях между абзацами. По умолчанию 0, что приведёт к нормальному расстоянию между линиями.

numindentlines (значение)

Количество строк от начала абзаца, которые будут с отступом. По умолчанию 1.

parindentskip (значение)

Количество абзацев в поле, первые строки которых будут без отступа. По умолчанию 0. Это полезно для абзацев сразу после заголовка раздела или текста, продолжающегося во втором поле. В обоих случаях можно установить значение 1.

linenumbermode (параметр)

Задайте способ нумерации строк. Возможные значения: box для нумерации строк во всем блоке или paragraph для нумерации строк в каждом абзаце.

linenumberspace (значение)

Пространство для столбца слева от нумерованной строки, содержащей номер строки. Номер строки в этом столбце будет выровнен по правому краю. По умолчанию 20.

linenumbersep (значение)

Пространство между столбцом с номерами строк и самой строкой. По умолчанию 5.

Переносы

Текст переносится, если в параметре hyphenation установлено значение true и задан допустимый словарь для расстановки переносов. pslib не предоставляет собственный словарь для расстановки переносов, но использует словарь из openoffice, scribus или koffice. Вы можете найти их словари для разных языков в одном из следующих каталогов, если установлено соответствующее программное обеспечение:

  • /usr/share/apps/koffice/hyphdicts/
  • /usr/lib/scribus/dicts/
  • /usr/lib/openoffice/share/dict/ooo/
В настоящее время у scribus наиболее полные словари расстановки переносов.

Возвращаемые значения

Количество символов, которые не удалось записать.

Смотрите также

  • ps_continue_text() - Продолжает текст в следующей строке


Выводит текст в заданной позиции

  • « ps_show_boxed
  • ps_show_xy »
  • PHP Manual
  • Функции PS
  • Выводит текст в заданной позиции

ps_show_xy2

(PECL ps >= 1.1.0)

ps_show_xy2 — Выводит текст в заданной позиции

Описание

ps_show_xy2(
resource $psdoc,
string $text,
int $len,
float $xcoor,
float $ycoor
): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Выводит текст в заданной позиции

  • « ps_show_xy2
  • ps_show2 »
  • PHP Manual
  • Функции PS
  • Выводит текст в заданной позиции

ps_show_xy

(PECL ps >= 1.1.0)

ps_show_xy — Выводит текст в заданной позиции

Описание

ps_show_xy(
resource $psdoc,
string $text,
float $x,
float $y
): bool

Выводит текст в заданной текстовой позиции.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

text

Текст для вывода.

x

Координата X левого нижнего угла поля, окружающего текст.

y

Координата Y левого нижнего угла поля, окружающего текст.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_continue_text() - Продолжает текст в следующей строке
  • ps_show() - Выводит текст


Выводит текст в текущей позиции

  • « ps_show_xy
  • ps_show »
  • PHP Manual
  • Функции PS
  • Выводит текст в текущей позиции

ps_show2

(PECL ps >= 1.1.0)

ps_show2 — Выводит текст в текущей позиции

Описание

ps_show2(resource $psdoc, string $text, int $len): bool

Выводит текст в текущей позиции. Не выводит более len символов.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

text

Текст для вывода.

len

Максимальное количество символов для вывода.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Выводит текст

  • « ps_show2
  • ps_string_geometry »
  • PHP Manual
  • Функции PS
  • Выводит текст

ps_show

(PECL ps >= 1.1.0)

ps_show — Выводит текст

Описание

ps_show(resource $psdoc, string $text): bool

Выводит текст в текущей позиции. Положение текста можно установить, erfpfd координаты X и Y в значениях textx и texty с помощью функции ps_set_value(). Функция выдаст ошибку, если шрифт не был установлен ранее с помощью ps_setfont().

Функция ps_show() оценивает следующие параметры и значения, установленные ps_set_parameter() и ps_set_value().

charspacing (значение)

Расстояние между двумя последовательными глифами. Если это значение не равно нулю, все лигатуры будут разрешены. Допускаются значения меньше нуля.

kerning (параметр)

Установка параметру значения "false" отключит кернинг. По умолчанию кернинг включён.

ligatures (параметр)

Установка параметру значения "false" отключит использование лигатур. По умолчанию лигатуры включены.

underline (параметр)

Установка параметру значения "true" включит подчёркивание. По умолчанию подчёркивание отключено.

overline (параметр)

Установка параметру значения "true" включит наложение. Наложение по умолчанию отключено.

strikeout (параметр)

Установка параметру значения "true" включит зачёркивание. По умолчанию зачёркивание отключено.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

text

Текст для вывода.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_continue_text() - Продолжает текст в следующей строке
  • ps_show_xy() - Выводит текст в заданной позиции
  • ps_setfont() - Устанавливает шрифт, который будет использоваться для следующего вывода


Получает геометрию строки

  • « ps_show
  • ps_stringwidth »
  • PHP Manual
  • Функции PS
  • Получает геометрию строки

ps_string_geometry

(PECL ps >= 1.2.0)

ps_string_geometry — Получает геометрию строки

Описание

ps_string_geometry(
resource $psdoc,
string $text,
int $fontid = 0,
float $size = 0.0
): array

Функция похожа на ps_stringwidth(), но возвращает массив размеров, содержащий ширину, верхнюю и нижнюю границу текста.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

text

Текст, для которого должна быть рассчитана геометрия.

fontid

Идентификатор используемого шрифта. Если шрифт не указан, используется текущий шрифт.

size

Размер шрифта. Если размер не указан, используется текущий размер.

Возвращаемые значения

Массив размеров строки. Элемент "width" содержит ширину строки, возвращаемую функцией ps_stringwidth(). Элемент "descender" содержит максимальную нижнюю границу, а "ascender" - максимальную верхнюю границу элемента строки.

Смотрите также

  • ps_continue_text() - Продолжает текст в следующей строке
  • ps_stringwidth() - Получает ширину строки


Получает ширину строки

  • « ps_string_geometry
  • ps_stroke »
  • PHP Manual
  • Функции PS
  • Получает ширину строки

ps_stringwidth

(PECL ps >= 1.1.0)

ps_stringwidth — Получает ширину строки

Описание

ps_stringwidth(
resource $psdoc,
string $text,
int $fontid = 0,
float $size = 0.0
): float

Вычисляет ширину строки в пунктах, если бы она выводилась с заданным шрифтом и размером шрифта. Функции необходим файл метрик шрифтов Adobe для расчёта точной ширины. Если интервал между буквами включён, он также будет учтён.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

text

Текст, для которого нужно рассчитать ширину.

fontid

Идентификатор используемого шрифта. Если шрифт не указан, используется текущий шрифт.

size

Размер шрифта. Если размер не указан, используется текущий размер.

Возвращаемые значения

Ширина строки в пунктах.

Смотрите также

  • ps_string_geometry() - Получает геометрию строки


Рисует текущий путь

  • « ps_stringwidth
  • ps_symbol_name »
  • PHP Manual
  • Функции PS
  • Рисует текущий путь

ps_stroke

(PECL ps >= 1.1.0)

ps_stroke — Рисует текущий путь

Описание

ps_stroke(resource $psdoc): bool

Рисует путь, построенный с помощью ранее вызванных функций рисования, таких как ps_lineto().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_closepath_stroke() - Замыкает и обводит контур
  • ps_fill() - Заполняет текущий путь
  • ps_fill_stroke() - Заполняет и обводит текущий путь


Получает имя глифа

  • « ps_stroke
  • ps_symbol_width »
  • PHP Manual
  • Функции PS
  • Получает имя глифа

ps_symbol_name

(PECL ps >= 1.2.0)

ps_symbol_name — Получает имя глифа

Описание

ps_symbol_name(resource $psdoc, int $ord, int $fontid = 0): string

Для функции необходим файл метрик шрифтов Adobe, чтобы знать, какие глифы доступны.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

ord

Параметр ord - это позиция глифа в векторе кодировки шрифта.

fontid

Идентификатор используемого шрифта. Если шрифт не указан, будет использоваться текущий шрифт.

Возвращаемые значения

Имя глифа в заданном шрифте.

Смотрите также

  • ps_symbol() - Выводит глиф
  • ps_symbol_width() - Получает ширину глифа


Получает ширину глифа

  • « ps_symbol_name
  • ps_symbol »
  • PHP Manual
  • Функции PS
  • Получает ширину глифа

ps_symbol_width

(PECL ps >= 1.2.0)

ps_symbol_width — Получает ширину глифа

Описание

ps_symbol_width(
resource $psdoc,
int $ord,
int $fontid = 0,
float $size = 0.0
): float

Вычисляет ширину глифа в точках, если он был выведен с заданным шрифтом и размером шрифта. Функции необходим файл метрик шрифтов Adobe для расчёта точной ширины.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

ord

Положение глифа в векторе кодировки шрифта.

fontid

Идентификатор используемого шрифта. Если шрифт не указан, будет использоваться текущий шрифт.

size

Размер шрифта. Если размер не указан, используется текущий размер.

Возвращаемые значения

Ширина глифа в точках.

Смотрите также

  • ps_symbol() - Выводит глиф
  • ps_symbol_name() - Получает имя глифа


Выводит глиф

  • « ps_symbol_width
  • ps_translate »
  • PHP Manual
  • Функции PS
  • Выводит глиф

ps_symbol

(PECL ps >= 1.2.0)

ps_symbol — Выводит глиф

Описание

ps_symbol(resource $psdoc, int $ord): bool

Выводит глиф в позиции ord в векторе кодировки текущего шрифта. Кодировку шрифта можно установить при загрузке шрифта с помощью ps_findfont().

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый ps_new().

ord

Положение глифа в векторе кодировки шрифта.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ps_symbol_name() - Получает имя глифа
  • ps_symbol_width() - Получает ширину глифа


Изменяет систему координат

  • « ps_symbol
  • RpmInfo »
  • PHP Manual
  • Функции PS
  • Изменяет систему координат

ps_translate

(PECL ps >= 1.1.0)

ps_translate — Изменяет систему координат

Описание

ps_translate(resource $psdoc, float $x, float $y): bool

Устанавливает новую начальную точку системы координат.

Список параметров

psdoc

Идентификатор ресурса файла postscript, возвращённый функцией ps_new().

x

Координата X начала изменённой системы координат.

y

Координата Y начала изменённой системы координат.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Изменение системы координат

<?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 "Не удается открыть файл PostScript\n";
exit;
}

ps_set_info($ps, "Creator", "translate.php");
ps_set_info($ps, "Author", "Уве Штайнманн");
ps_set_info($ps, "Title", "Пример перевода");
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, "Текст в исходной позиции");
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, "Текст в исходной позиции");
ps_end_page($ps);

ps_delete($ps);
?>

Приведённый выше пример демонстрирует два возможных способа разместить графику (в данном случае просто прямоугольник) в любой позиции на странице, в то время как сама графика использует свою собственную систему координат. Хитрость заключается в том, чтобы изменить начало текущей системы координат перед рисованием прямоугольника. Изменение системы координат необходимо отменить после того, как рисунок был нарисован.

На второй странице применён несколько иной и более элегантный подход. Вместо отмены изменения вторым вызовом ps_translate(), графический контекст сохраняется до изменения системы координат и восстанавливается после рисования прямоугольника.

Смотрите также

  • ps_scale() - Устанавливает коэффициент масштабирования
  • ps_rotate() - Устанавливает коэффициент вращения


RpmInfo

  • Введение
  • Установка и настройка
    • Требования
    • Установка через PECL
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции RpmInfo
    • rpmaddtag — Добавляет тег, полученный в запросе
    • rpmdbinfo — Получает информацию от установленного RPM
    • rpmdbsearch — Поиск RPM-пакетов
    • rpmgetsymlink — Get target of a symlink
    • rpminfo — Извлечь информацию из RPM-файла
    • rpmvercmp — Сравнивает версии RPM


Введение

Модуль позволяет получать информацию из файлов RPM или из установленной базы данных RPM.

Модуль также предоставляет обёртку потока rpm для получения содержимого RPM (начиная с версии 1.0.0 с librpm >= 4.13).


Установка и настройка

Содержание

  • Требования
  • Установка через PECL
  • Настройка во время выполнения
  • Типы ресурсов


  • « Установка и настройка
  • Установка через PECL »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для работы модуля требуется » librpm версии 4.11.3 или выше.


Установка через PECL

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/rpminfo.


  • « Установка через PECL
  • Типы ресурсов »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

Данный модуль не определяет никакие директивы конфигурации в php.ini.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

RPMVERSION (string)
Системная версия librpm.
RPMSENSE_ANY (int)
RPMSENSE_LESS (int)
RPMSENSE_GREATER (int)
RPMSENSE_EQUAL (int)
RPMSENSE_POSTTRANS (int)
RPMSENSE_PREREQ (int)
RPMSENSE_PRETRANS (int)
RPMSENSE_INTERP (int)
RPMSENSE_SCRIPT_PRE (int)
RPMSENSE_SCRIPT_POST (int)
RPMSENSE_SCRIPT_PREUN (int)
RPMSENSE_SCRIPT_POSTUN (int)
RPMSENSE_SCRIPT_VERIFY (int)
RPMSENSE_FIND_REQUIRES (int)
RPMSENSE_FIND_PROVIDES (int)
RPMSENSE_TRIGGERIN (int)
RPMSENSE_TRIGGERUN (int)
RPMSENSE_TRIGGERPOSTUN (int)
RPMSENSE_MISSINGOK (int)
RPMSENSE_RPMLIB (int)
RPMSENSE_TRIGGERPREIN (int)
RPMSENSE_KEYRING (int)
RPMSENSE_CONFIG (int)
RPMMIRE_DEFAULT (int)
Шаблон поиска представляет собой выражение с добавлением \., .* и ^...$.
RPMMIRE_STRCMP (int)
Шаблон поиска представляет собой строку (string), используя strcmp(3).
RPMMIRE_REGEX (int)
Шаблон поиска представляет собой регулярное выражение, использующее regcomp(3).
RPMMIRE_GLOB (int)
Шаблон поиска представляет собой глобальное выражение, использующее fnmatch(3).
RPMTAG_ARCH (int)
RPMTAG_ARCHSUFFIX (int)
Требуется librpm >= 4.18
RPMTAG_ARCHIVESIZE (int)
RPMTAG_BASENAMES (int)
Имя (не путь) файлов, с индексом базы данных.
RPMTAG_BUGURL (int)
RPMTAG_BUILDARCHS (int)
RPMTAG_BUILDHOST (int)
RPMTAG_BUILDTIME (int)
RPMTAG_C (int)
RPMTAG_CHANGELOGNAME (int)
RPMTAG_CHANGELOGTEXT (int)
RPMTAG_CHANGELOGTIME (int)
RPMTAG_CLASSDICT (int)
RPMTAG_CONFLICTFLAGS (int)
RPMTAG_CONFLICTNAME (int)
Конфликтующие зависимости с индексом базы данных.
RPMTAG_CONFLICTNEVRS (int)
RPMTAG_CONFLICTS (int)
RPMTAG_CONFLICTVERSION (int)
RPMTAG_COOKIE (int)
RPMTAG_DBINSTANCE (int)
RPMTAG_DEPENDSDICT (int)
RPMTAG_DESCRIPTION (int)
RPMTAG_DIRINDEXES (int)
RPMTAG_DIRNAMES (int)
Каталог файлов, с индексом базы данных.
RPMTAG_DISTRIBUTION (int)
RPMTAG_DISTTAG (int)
RPMTAG_DISTURL (int)
RPMTAG_DSAHEADER (int)
RPMTAG_E (int)
RPMTAG_ENCODING (int)
RPMTAG_ENHANCEFLAGS (int)
RPMTAG_ENHANCENAME (int)
Слабые зависимости с индексом базы данных, требуются librpm >= 4.13.
RPMTAG_ENHANCENEVRS (int)
RPMTAG_ENHANCES (int)
RPMTAG_ENHANCEVERSION (int)
RPMTAG_EPOCH (int)
RPMTAG_EPOCHNUM (int)
RPMTAG_EVR (int)
RPMTAG_EXCLUDEARCH (int)
RPMTAG_EXCLUDEOS (int)
RPMTAG_EXCLUSIVEARCH (int)
RPMTAG_EXCLUSIVEOS (int)
RPMTAG_FILECAPS (int)
RPMTAG_FILECLASS (int)
RPMTAG_FILECOLORS (int)
RPMTAG_FILECONTEXTS (int)
RPMTAG_FILEDEPENDSN (int)
RPMTAG_FILEDEPENDSX (int)
RPMTAG_FILEDEVICES (int)
RPMTAG_FILEDIGESTALGO (int)
RPMTAG_FILEDIGESTS (int)
RPMTAG_FILEFLAGS (int)
RPMTAG_FILEGROUPNAME (int)
RPMTAG_FILEINODES (int)
RPMTAG_FILELANGS (int)
RPMTAG_FILELINKTOS (int)
RPMTAG_FILEMD5S (int)
RPMTAG_FILEMODES (int)
RPMTAG_FILEMTIMES (int)
RPMTAG_FILENAMES (int)
RPMTAG_FILENLINKS (int)
RPMTAG_FILEPROVIDE (int)
RPMTAG_FILERDEVS (int)
RPMTAG_FILEREQUIRE (int)
RPMTAG_FILESIGNATURELENGTH (int)
RPMTAG_FILESIGNATURES (int)
RPMTAG_FILESIZES (int)
RPMTAG_FILESTATES (int)
RPMTAG_FILETRIGGERCONDS (int)
RPMTAG_FILETRIGGERFLAGS (int)
RPMTAG_FILETRIGGERINDEX (int)
RPMTAG_FILETRIGGERNAME (int)
File trigger name, with database index, requires librpm >= 4.13.
RPMTAG_FILETRIGGERPRIORITIES (int)
RPMTAG_FILETRIGGERSCRIPTFLAGS (int)
RPMTAG_FILETRIGGERSCRIPTPROG (int)
RPMTAG_FILETRIGGERSCRIPTS (int)
RPMTAG_FILETRIGGERTYPE (int)
RPMTAG_FILETRIGGERVERSION (int)
RPMTAG_FILEUSERNAME (int)
RPMTAG_FILEVERIFYFLAGS (int)
RPMTAG_FSCONTEXTS (int)
RPMTAG_GIF (int)
RPMTAG_GROUP (int)
Group of the package, with database index.
RPMTAG_HDRID (int)
RPMTAG_HEADERCOLOR (int)
RPMTAG_HEADERI18NTABLE (int)
RPMTAG_HEADERIMAGE (int)
RPMTAG_HEADERIMMUTABLE (int)
RPMTAG_HEADERREGIONS (int)
RPMTAG_HEADERSIGNATURES (int)
RPMTAG_ICON (int)
RPMTAG_INSTALLCOLOR (int)
RPMTAG_INSTALLTID (int)
Идентификатор транзакции установки, с индексом базы данных.
RPMTAG_INSTALLTIME (int)
RPMTAG_INSTFILENAMES (int)
Путь к файлам, с индексом базы данных.
RPMTAG_INSTPREFIXES (int)
RPMTAG_LICENSE (int)
RPMTAG_LONGARCHIVESIZE (int)
RPMTAG_LONGFILESIZES (int)
RPMTAG_LONGSIGSIZE (int)
RPMTAG_LONGSIZE (int)
RPMTAG_MODULARITYLABEL (int)
RPMTAG_N (int)
RPMTAG_NAME (int)
Package name, with database index.
RPMTAG_NEVR (int)
RPMTAG_NEVRA (int)
RPMTAG_NOPATCH (int)
RPMTAG_NOSOURCE (int)
RPMTAG_NVR (int)
RPMTAG_NVRA (int)
RPMTAG_O (int)
RPMTAG_OBSOLETEFLAGS (int)
RPMTAG_OBSOLETENAME (int)
Устаревшие пакеты, с индексом базы данных.
RPMTAG_OBSOLETENEVRS (int)
RPMTAG_OBSOLETES (int)
RPMTAG_OBSOLETEVERSION (int)
RPMTAG_OLDENHANCES (int)
RPMTAG_OLDENHANCESFLAGS (int)
RPMTAG_OLDENHANCESNAME (int)
RPMTAG_OLDENHANCESVERSION (int)
RPMTAG_OLDFILENAMES (int)
RPMTAG_OLDSUGGESTS (int)
RPMTAG_OLDSUGGESTSFLAGS (int)
RPMTAG_OLDSUGGESTSNAME (int)
RPMTAG_OLDSUGGESTSVERSION (int)
RPMTAG_OPTFLAGS (int)
RPMTAG_ORDERFLAGS (int)
RPMTAG_ORDERNAME (int)
RPMTAG_ORDERVERSION (int)
RPMTAG_ORIGBASENAMES (int)
RPMTAG_ORIGDIRINDEXES (int)
RPMTAG_ORIGDIRNAMES (int)
RPMTAG_ORIGFILENAMES (int)
RPMTAG_OS (int)
RPMTAG_P (int)
RPMTAG_PACKAGER (int)
RPMTAG_PATCH (int)
RPMTAG_PATCHESFLAGS (int)
RPMTAG_PATCHESNAME (int)
RPMTAG_PATCHESVERSION (int)
RPMTAG_PAYLOADCOMPRESSOR (int)
RPMTAG_PAYLOADDIGEST (int)
RPMTAG_PAYLOADDIGESTALT (int)
С librpm >= 4.16.
RPMTAG_PAYLOADDIGESTALGO (int)
RPMTAG_PAYLOADFLAGS (int)
RPMTAG_PAYLOADFORMAT (int)
RPMTAG_PKGID (int)
RPMTAG_PLATFORM (int)
RPMTAG_POLICIES (int)
RPMTAG_POLICYFLAGS (int)
RPMTAG_POLICYNAMES (int)
RPMTAG_POLICYTYPES (int)
RPMTAG_POLICYTYPESINDEXES (int)
RPMTAG_POSTIN (int)
RPMTAG_POSTINFLAGS (int)
RPMTAG_POSTINPROG (int)
RPMTAG_POSTTRANS (int)
RPMTAG_POSTTRANSFLAGS (int)
RPMTAG_POSTTRANSPROG (int)
RPMTAG_POSTUN (int)
RPMTAG_POSTUNFLAGS (int)
RPMTAG_POSTUNPROG (int)
RPMTAG_POSTUNTRANS (int)
Требуется librpm >= 4.19
RPMTAG_POSTUNTRANSFLAGS (int)
Требуется librpm >= 4.19
RPMTAG_POSTUNTRANSPROG (int)
Требуется librpm >= 4.19
RPMTAG_PREFIXES (int)
RPMTAG_PREIN (int)
RPMTAG_PREINFLAGS (int)
RPMTAG_PREINPROG (int)
RPMTAG_PRETRANS (int)
RPMTAG_PRETRANSFLAGS (int)
RPMTAG_PRETRANSPROG (int)
RPMTAG_PREUN (int)
RPMTAG_PREUNFLAGS (int)
RPMTAG_PREUNPROG (int)
RPMTAG_PREUNTRANS (int)
Требуется librpm >= 4.19
RPMTAG_PREUNTRANSFLAGS (int)
Требуется librpm >= 4.19
RPMTAG_PREUNTRANSPROG (int)
Требуется librpm >= 4.19
RPMTAG_PROVIDEFLAGS (int)
RPMTAG_PROVIDENAME (int)
Предоставленные зависимости, с индексом базы данных.
RPMTAG_PROVIDENEVRS (int)
RPMTAG_PROVIDES (int)
RPMTAG_PROVIDEVERSION (int)
RPMTAG_PUBKEYS (int)
RPMTAG_R (int)
RPMTAG_RECOMMENDFLAGS (int)
RPMTAG_RECOMMENDNAME (int)
Рекомендуемые слабые зависимости с индексом базы данных, требуется librpm >= 4.13.
RPMTAG_RECOMMENDNEVRS (int)
RPMTAG_RECOMMENDS (int)
RPMTAG_RECOMMENDVERSION (int)
RPMTAG_RECONTEXTS (int)
RPMTAG_RELEASE (int)
RPMTAG_REMOVETID (int)
RPMTAG_REQUIREFLAGS (int)
RPMTAG_REQUIRENAME (int)
Обязательные зависимости с индексом базы данных.
RPMTAG_REQUIRENEVRS (int)
RPMTAG_REQUIRES (int)
RPMTAG_REQUIREVERSION (int)
RPMTAG_RPMVERSION (int)
RPMTAG_RSAHEADER (int)
RPMTAG_SHA1HEADER (int)
Подпись SHA1, с индексом базы данных.
RPMTAG_SHA256HEADER (int)
RPMTAG_SIGGPG (int)
RPMTAG_SIGMD5 (int)
Подпись MD5, с индексом базы данных.
RPMTAG_SIGPGP (int)
RPMTAG_SIGSIZE (int)
RPMTAG_SIZE (int)
RPMTAG_SOURCE (int)
RPMTAG_SOURCEPACKAGE (int)
RPMTAG_SOURCEPKGID (int)
RPMTAG_SOURCERPM (int)
RPMTAG_SPEC (int)
Требуется librpm >= 4.18
RPMTAG_SUGGESTFLAGS (int)
RPMTAG_SUGGESTNAME (int)
Предлагаемые слабые зависимости с индексом базы данных, требуется librpm >= 4.13.
RPMTAG_SUGGESTNEVRS (int)
RPMTAG_SUGGESTS (int)
RPMTAG_SUGGESTVERSION (int)
RPMTAG_SUMMARY (int)
RPMTAG_SUPPLEMENTFLAGS (int)
RPMTAG_SUPPLEMENTNAME (int)
Слабые зависимости, с индексом базы данных, требуется librpm >= 4.13.
RPMTAG_SUPPLEMENTNEVRS (int)
RPMTAG_SUPPLEMENTS (int)
RPMTAG_SUPPLEMENTVERSION (int)
RPMTAG_SYSUSERS (int)
Требуется librpm >= 4.19
RPMTAG_TRANSFILETRIGGERCONDS (int)
RPMTAG_TRANSFILETRIGGERFLAGS (int)
RPMTAG_TRANSFILETRIGGERINDEX (int)
RPMTAG_TRANSFILETRIGGERNAME (int)
Имя триггера файла транзакции, с индексом базы данных, требуется librpm >= 4.13.
RPMTAG_TRANSFILETRIGGERPRIORITIES (int)
RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS (int)
RPMTAG_TRANSFILETRIGGERSCRIPTPROG (int)
RPMTAG_TRANSFILETRIGGERSCRIPTS (int)
RPMTAG_TRANSFILETRIGGERTYPE (int)
RPMTAG_TRANSFILETRIGGERVERSION (int)
RPMTAG_TRANSLATIONURL (int)
Требуется librpm >= 4.18
RPMTAG_TRIGGERCONDS (int)
RPMTAG_TRIGGERFLAGS (int)
RPMTAG_TRIGGERINDEX (int)
RPMTAG_TRIGGERNAME (int)
Trigger name, with database index.
RPMTAG_TRIGGERSCRIPTFLAGS (int)
RPMTAG_TRIGGERSCRIPTPROG (int)
RPMTAG_TRIGGERSCRIPTS (int)
RPMTAG_TRIGGERTYPE (int)
RPMTAG_TRIGGERVERSION (int)
RPMTAG_UPSTREAMRELEASES (int)
Требуется librpm >= 4.18
RPMTAG_URL (int)
RPMTAG_V (int)
RPMTAG_VCS (int)
RPMTAG_VENDOR (int)
RPMTAG_VERBOSE (int)
RPMTAG_VERIFYSCRIPT (int)
RPMTAG_VERIFYSCRIPTFLAGS (int)
RPMTAG_VERIFYSCRIPTPROG (int)
RPMTAG_VERITYSIGNATUREALGO (int)
С librpm >= 4.17.
RPMTAG_VERITYSIGNATURES (int)
С librpm >= 4.17.
RPMTAG_VERSION (int)
RPMTAG_XPM (int)


Функции RpmInfo

Содержание

  • rpmaddtag — Добавляет тег, полученный в запросе
  • rpmdbinfo — Получает информацию от установленного RPM
  • rpmdbsearch — Поиск RPM-пакетов
  • rpmgetsymlink — Get target of a symlink
  • rpminfo — Извлечь информацию из RPM-файла
  • rpmvercmp — Сравнивает версии RPM


Добавляет тег, полученный в запросе

  • « Функции RpmInfo
  • rpmdbinfo »
  • PHP Manual
  • Функции RpmInfo
  • Добавляет тег, полученный в запросе

rpmaddtag

(PECL rpminfo >= 0.5.0)

rpmaddtag — Добавляет тег, полученный в запросе

Описание

rpmaddtag(int $tag): bool

Добавляет дополнительный извлечённый тег в последующих запросах.

Список параметров

tag

Одна из констант RPMTAG_*, посмотрите страницу константы rpminfo.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • rpminfo() - Извлечь информацию из RPM-файла
  • rpmdbinfo() - Получает информацию от установленного RPM
  • rpmdbsearch() - Поиск RPM-пакетов


Получает информацию от установленного RPM

  • « rpmaddtag
  • rpmdbsearch »
  • PHP Manual
  • Функции RpmInfo
  • Получает информацию от установленного RPM

rpmdbinfo

(PECL rpminfo >= 0.2.0)

rpmdbinfo — Получает информацию от установленного RPM

Описание

rpmdbinfo(string $nevr, bool $full = false): ?array

Получает информацию об установленном пакете из системной базы данных RPM.

Список параметров

nevr

Имя с указанием эпохи, версии и выпуска.

full

Если true, извлекаются все информационные заголовки для файла, иначе только минимальный набор.

Возвращаемые значения

Массив (array) массивов (array) информации или NULL в случае возникновения ошибки.

Примеры

Пример #1 Пример использования rpmdbinfo()

<?php
rpmaddtag(RPMTAG_INSTALLTIME);
$info = rpmdbinfo("php-pecl-rpminfo");
print_r($info);
?>

Результат выполнения данного примера:

Array
(
    [0] => Array
        (
            [Name] => php-pecl-rpminfo
            [Version] => 0.4.2
            [Release] => 1.fc31
            [Summary] => RPM information
            [Installtime] => 1586244687
            [Arch] => x86_64
        )
)

Смотрите также

  • rpmaddtag() - Добавляет тег, полученный в запросе


Поиск RPM-пакетов

  • « rpmdbinfo
  • rpmgetsymlink »
  • PHP Manual
  • Функции RpmInfo
  • Поиск RPM-пакетов

rpmdbsearch

(PECL rpminfo >= 0.3.0)

rpmdbsearch — Поиск RPM-пакетов

Описание

rpmdbsearch(
string $pattern,
int $rpmtag = RPMTAG_NAME,
int $rpmmire = -1,
bool $full = false
): ?array

Поиск пакетов в системной базе данных RPM.

Список параметров

pattern

Значение, которое будем искать.

rpmtag

Критерий поиска. Одна из констант RPMTAG_*, смотрите константы rpminfo.

rpmmire

Тип шаблона. Одна из констант RPMMIRE_*, смотрите константы rpminfo. Если меньше 0, то критерий должен быть равен значению и по возможности будет использован индекс базы данных.

full

Если true, то для файла будут извлечены все заголовки. Иначе будет извлечён минимальный набор.

Возвращаемые значения

Массив массивов с информацией, либо null, в случае возникновения ошибки.

Примеры

Пример #1 Поиск пакета, в котором находится файл

<?php
$info = rpmdbsearch("/usr/bin/php", RPMTAG_INSTFILENAMES);
print_r($info);
?>

Результат выполнения данного примера:

Array
(
    [0] => Array
        (
            [Name] => php-cli
            [Version] => 7.4.4
            [Release] => 1.fc32
            [Summary] => Command-line interface for PHP
            [Arch] => x86_64
        )

)

Смотрите также

  • rpmaddtag() - Добавляет тег, полученный в запросе


Get target of a symlink

  • « rpmdbsearch
  • rpminfo »
  • PHP Manual
  • Функции RpmInfo
  • Get target of a symlink

rpmgetsymlink

(PECL rpminfo >= 1.1.0)

rpmgetsymlink — Get target of a symlink

Описание

rpmgetsymlink(string $path, string $name): ?string

Get target of a symlink.

Список параметров

path

Path of the RPM file.

name

Name of the symlink file.

Возвращаемые значения

A string with target of the symlink, NULL on error, or an empty string if not a symlink.


Извлечь информацию из RPM-файла

  • « rpmgetsymlink
  • rpmvercmp »
  • PHP Manual
  • Функции RpmInfo
  • Извлечь информацию из RPM-файла

rpminfo

(PECL rpminfo >= 0.1.0)

rpminfo — Извлечь информацию из RPM-файла

Описание

rpminfo(string $path, bool $full = false, string &$error = ?): ?array

Извлечь информацию о локальном RPM-файле.

Список параметров

path

Путь к файлу.

full

Если true, то для файла будут извлечены все заголовки. Иначе будет извлечён минимальный набор.

error

Если задан, то в него будет записана информация об ошибке, в случае её возникновения. Это позволит избежать предупреждений во время исполнения.

Возвращаемые значения

Массив с данными или null в случае возникновения ошибки.

Примеры

Пример #1 Пример использования rpminfo()

<?php
rpmaddtag(RPMTAG_BUILDTIME);
$info = rpminfo("./php-pecl-rpminfo-0.4.2-1.el8.remi.7.4.x86_64.rpm");
print_r($info);
?>

Результат выполнения данного примера:

Array
(
    [Name] => php-pecl-rpminfo
    [Version] => 0.4.2
    [Release] => 1.el8
    [Summary] => RPM information
    [Buildtime] => 1586244821
    [Arch] => x86_64
)

Смотрите также

  • rpmaddtag() - Добавляет тег, полученный в запросе


Сравнивает версии RPM

  • « rpminfo
  • XLSWriter »
  • PHP Manual
  • Функции RpmInfo
  • Сравнивает версии RPM

rpmvercmp

(PECL rpminfo >= 0.1.0)

rpmvercmp — Сравнивает версии RPM

Описание

rpmvercmp(string $evr1, string $evr2, ?string $operator = null): int|bool

Сравнивает версий двух RPM.

Список параметров

evr1

Первая версия в формате epoch:version-release

evr2

Вторая версия в формате epoch:version-release

operator

Необязательный оператор. Доступные операторы: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne соответственно.

Этот параметр чувствителен к регистру, значение необходимо указывать в нижнем регистре.

Возвращаемые значения

Возвращает < 0, если evr1 меньше evr2, > 0, если evr1 больше evr2, и 0, если они идентичны.

Если будет получен необязательный параметр operator функция вернёт true, если сравнение будет соответствовать тому, которое задано оператором, иначе false.

Список изменений

Версия | Описание
0.7.0 | Был добавлен необязательный аргумент operator.


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

(PECL xlswriter >= 1.2.1)

Введение

Создаёт файлы xlsx с заданными ячейками

Обзор классов

class Vtiful\Kernel\Excel {
/* Методы */
public __construct(array $config)
public addSheet(string $sheetName)
public autoFilter(string $scope)
public constMemory(string $fileName, string $sheetName = ?)
public data(array $data)
public fileName(string $fileName, string $sheetName = ?)
public getHandle()
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,
int|float|string $data,
string $format = ?
)
public mergeCells(string $scope, string $data)
public output()
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

(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

(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

(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

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::__construct — Конструктор

Описание

public Vtiful\Kernel\Excel::__construct(array $config)

Конструктор Vtiful\Kernel\Excel, создать экземпляр.

Список параметров

config

Конфигурация экспорта файла XLSX

Примеры

Пример #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

(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

(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

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::getHandle — Получить дескриптор

Описание

public Vtiful\Kernel\Excel::getHandle()

Получить дескриптор текстового ресурса 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

(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

(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

(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

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertText — Вставить текст

Описание

public Vtiful\Kernel\Excel::insertText(
int $row,
int $column,
int|float|string $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

(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

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::output — Вывод

Описание

public Vtiful\Kernel\Excel::output()

Вывод 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

(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

(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

(PECL xlswriter >= 1.2.1)

Введение

Возвращает объект форматирования ячейки

Обзор классов

class 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

(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

(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

(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

(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
  • PCNTL — Управление процессами
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции PCNTL
  • POSIX
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • POSIX Функции
  • Запуск программы — Запуск программ в системе
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции запуска программ
  • parallel
    • Введение
    • Установка
    • Философия
    • Функциональный API
    • parallel\Runtime — Класс parallel\Runtime
    • parallel\Future — Класс parallel\Future
    • parallel\Channel — Класс parallel\Channel
    • parallel\Events — Класс parallel\Events
    • parallel\Events\Input — Класс parallel\Events\Input
    • parallel\Events\Event — Класс parallel\Events\Event
    • parallel\Events\Event\Type — Класс parallel\Events\Event\Type
    • parallel\Sync — Класс parallel\Sync
  • pthreads
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Threaded — Класс Threaded
    • Thread — Класс Thread
    • Worker — Класс Worker
    • Collectable — Интерфейс Collectable
    • Pool — Класс Pool
    • Volatile — Класс Volatile
  • Семафоры — Семафоры, разделяемая память и IPC
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции семафоров
    • SysvMessageQueue — Класс SysvMessageQueue
    • SysvSemaphore — Класс SysvSemaphore
    • SysvSharedMemory — Класс SysvSharedMemory
  • Управление разделяемой памятью
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Разделяемая (shared) память
    • Shmop — Класс Shmop
  • Sync
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • SyncMutex — Класс SyncMutex
    • SyncSemaphore — Класс SyncSemaphore
    • SyncEvent — Класс SyncEvent
    • SyncReaderWriter — Класс SyncReaderWriter
    • SyncSharedMemory — Класс SyncSharedMemory


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 */
?>


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Модуль включает в себя библиотеку » libeio. Установка libeio отдельно НЕ требуется.


Установка

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/eio.

Информация об установке в ручном режиме находится в файле INSTALL в пакете поставки.


  • « Настройка во время выполнения
  • Предопределённые константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

В данном модуле два типа ресурсов: request и request group.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

Константы приоритета запроса:

EIO_PRI_MIN (int)
Минимальный приоритет запроса
EIO_PRI_DEFAULT (int)
Приоритет по умолчанию
EIO_PRI_MAX (int)
Максимальный приоритет запроса

Аргумент whence функции eio_seek():

EIO_SEEK_SET (int)
Смещение offset, заданное в байтах.
EIO_SEEK_CUR (int)
Смещение offset, заданное в байтах от текущего значения.
EIO_SEEK_END (int)
Смещение offset, заданное в байтах от размера файла.

Флаги, используемые в eio_readdir():

EIO_READDIR_DENTS (int)
Флаг eio_readdir(). Если указан, аргумент для выполнения callback-функции становится массивом со следующими ключами: 'names' - массив имён директории 'dents' - массив массивов вида struct eio_dirent, каждый из которых имеет ключи: 'name' - имя директории; 'type' - одна из констант EIO_DT_*; 'inode' - Номер inode, если он доступен, иначе значение не указывается;
EIO_READDIR_DIRS_FIRST (int)
Когда флаг указан, имена будут возвращены в порядке, при котором будут возвращены первыми директории в оптимальном порядке.
EIO_READDIR_STAT_ORDER (int)
Когда флаг указан, имена будут возвращены в порядке, в зависимости от stat каждого из них. Если планируется выполнить stat() для всех файлов в директории, такой порядок будет, скорее всего, наиболее быстрым.
EIO_READDIR_FOUND_UNKNOWN (int)
EIO_DT_UNKNOWN (int)
Неизвестный тип узла (очень распространено). Далее необходим вызов stat().
EIO_DT_FIFO (int)
Тип FIFO узла
EIO_DT_CHR (int)
Тип узла
EIO_DT_MPC (int)
Тип узла мультиплексное символьное устройство (v7+coherent)
EIO_DT_DIR (int)
Тип узла директория
EIO_DT_NAM (int)
Тип узла специальный именованный файл Xenix (Xenix special named file)
EIO_DT_BLK (int)
Тип узла
EIO_DT_MPB (int)
Тип узла мультиплексное блочное устройство (Multiplexed block device) (v7+coherent)
EIO_DT_REG (int)
Тип узла
EIO_DT_NWK (int)
EIO_DT_CMP (int)
Тип узла HP-UX network special
EIO_DT_LNK (int)
Тип узла ссылка
EIO_DT_SOCK (int)
Тип узла сокет
EIO_DT_DOOR (int)
Тип узла Solaris door
EIO_DT_WHT (int)
Тип узла
EIO_DT_MAX (int)
Наибольшее значение типа узла

Режимы доступа для eio_open() аргумент flags:

EIO_O_RDONLY (int)
EIO_O_WRONLY (int)
EIO_O_RDWR (int)
EIO_O_NONBLOCK (int)
EIO_O_APPEND (int)
EIO_O_CREAT (int)
EIO_O_TRUNC (int)
EIO_O_EXCL (int)
EIO_O_FSYNC (int)

Флаги аргумента mode функции eio_open():

EIO_S_IRUSR (int)
EIO_S_IWUSR (int)
EIO_S_IXUSR (int)
EIO_S_IRGRP (int)
EIO_S_IWGRP (int)
EIO_S_IXGRP (int)
EIO_S_IROTH (int)
EIO_S_IWOTH (int)
EIO_S_IXOTH (int)
EIO_S_IFREG (int)
EIO_S_IFCHR (int)
EIO_S_IFBLK (int)
EIO_S_IFIFO (int)
EIO_S_IFSOCK (int)

Флаги функции eio_sync_file_range():

EIO_SYNC_FILE_RANGE_WAIT_BEFORE (int)
EIO_SYNC_FILE_RANGE_WRITE (int)
EIO_SYNC_FILE_RANGE_WAIT_AFTER (int)

Флаги функции eio_fallocate():

EIO_FALLOC_FL_KEEP_SIZE (int)

Замечание:

Константы 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(): 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_chmod() возвращает указатель на запрос в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • 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(): 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

Указатель на ресурс

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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

eio_init() (ре-)инициализирует Eio. Резервируется память для внутренних структур libeio и Eio. Можно вызывать eio_init() перед использованием Eio-функций. В любом случае, инициализация будет выполнена при первом вызове Eio-функции.

Замечание:

Функция была удалена в версии 3.0.0RC1 модуля eio для PHP версии 8 и выше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Создаёт жёсткую ссылку на файл

  • « 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(): 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(): 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(): 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(): 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(): 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 (int)
Флаг eio_readdir(). Если задан, в качестве аргумента callback-функции будет передаваться массив со следующими ключами: 'names' - массив имён директории 'dents' - массив структур типа struct eio_dirent, каждая из которых представляется массивом с ключами: 'name' - имя директории; 'type' - одна из констант EIO_DT_*; 'inode' - номер узла inode, если доступен, либо пустое значение;
EIO_READDIR_DIRS_FIRST (int)
Если этот флаг задан, первыми будут возвращаться имена директорий, затем имена файлов. Порядок следования имён в каждой группе будет оптимальным для применения функции stat.
EIO_READDIR_STAT_ORDER (int)
Если этот флаг задан, имена файлов и директорий будут возвращаться в порядке, удобном для сбора статистики (stat) каждого из объектов. Если полученный список имён предполагается передавать в функцию stat(), порядок следования имён обеспечит наиболее быструю работу функции.
EIO_READDIR_FOUND_UNKNOWN (int)

Типы узлов:

EIO_DT_UNKNOWN (int)
Неизвестный тип узла (очень часто). Необходима обработка функцией stat().
EIO_DT_FIFO (int)
Тип узла - FIFO
EIO_DT_CHR (int)
Тип узла
EIO_DT_MPC (int)
Тип узла - составное символьное устройство (v7+coherent)
EIO_DT_DIR (int)
Тип узла - директория
EIO_DT_NAM (int)
Тип узла - файл со специальным Xenix наименованием
EIO_DT_BLK (int)
Тип узла
EIO_DT_MPB (int)
Составное блочное устройство (v7+coherent)
EIO_DT_REG (int)
Тип узла
EIO_DT_NWK (int)
EIO_DT_CMP (int)
Специальный тип узла для сетей HP-UX
EIO_DT_LNK (int)
Тип узла - ссылка
EIO_DT_SOCK (int)
Тип узла - сокет
EIO_DT_DOOR (int)
Тип узла - Solaris door
EIO_DT_WHT (int)
Тип узла
EIO_DT_MAX (int)
Максимальное значение типа узла

Примеры

Пример #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,
mixed $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 "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
Запускаем одну итерацию
Функция обратного вызова таймера, созданного остановленным
Перезапускаем второго наблюдателя и пытаемся отловить те же события, но не блокируем
Запускаем блокирующий цикл
вызывается раз в секунду, первое срабатывание через 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 Периодический таймер. Срабатывает каждые 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();
?>

Пример #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. Каждое последующее срабатывание будет ровно через 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 class Ev {
/* Константы */
const int FLAG_AUTO = 0;
const int FLAG_NOENV = 16777216;
const int FLAG_FORKCHECK = 33554432;
const int FLAG_NOINOTIFY = 1048576;
const int FLAG_SIGNALFD = 2097152;
const int FLAG_NOSIGMASK = 4194304;
const int RUN_NOWAIT = 1;
const int RUN_ONCE = 2;
const int BREAK_CANCEL = 0;
const int BREAK_ONE = 1;
const int BREAK_ALL = 2;
const int MINPRI = -2;
const int MAXPRI = 2;
const int READ = 1;
const int WRITE = 2;
const int TIMER = 256;
const int PERIODIC = 512;
const int SIGNAL = 1024;
const int CHILD = 2048;
const int STAT = 4096;
const int IDLE = 8192;
const int PREPARE = 16384;
const int CHECK = 32768;
const int EMBED = 65536;
const int CUSTOM = 16777216;
const int ERROR = 2147483648;
const int BACKEND_SELECT = 1;
const int BACKEND_POLL = 2;
const int BACKEND_EPOLL = 4;
const int BACKEND_KQUEUE = 8;
const int BACKEND_DEVPOLL = 16;
const int BACKEND_PORT = 32;
const int BACKEND_ALL = 63;
const int BACKEND_MASK = 65535;
/* Методы */
final public static backend(): int
final public static depth(): int
final public static embeddableBackends(): int
final public static feedSignal( int $signum ): void
final public static feedSignalEvent( int $signum ): void
final public static iteration(): int
final public static now(): float
final public static nowUpdate(): void
final public static recommendedBackends(): int
final public static resume(): 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(): int
final public static suspend(): void
final public static time(): float
final public static verify(): 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(): 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(): 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(): 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(): int

Возвращает количество произведённых опросов цикла по умолчанию на предмет новых событий. Иногда полезно в качестве счётчика генераций.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Получить количество произведённых опросов цикла по умолчанию.

Смотрите также

  • Ev::depth() - Получить глубину рекурсии


Получить время запуска последней итерации цикла по умолчанию

  • « Ev::iteration
  • Ev::nowUpdate »
  • PHP Manual
  • Ev
  • Получить время запуска последней итерации цикла по умолчанию

Ev::now

(PECL ev >= 0.2.0)

Ev::now — Получить время запуска последней итерации цикла по умолчанию

Описание

final public static Ev::now(): 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

Устанавливает текущее время путём запроса к ядру в процессе обновляя время, возвращаемое 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(): 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

Методы 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(): 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

Методы 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(): 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

Производит внутреннюю проверку целостности(для отладки 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 выполнят свою работу.

Обзор классов

class 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(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): 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

приоритет наблюдателя

Смотрите также

  • 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 после того, как дочерний поток был ответвлён (что подразумевает, что он должен был уже завершиться), пока не началась итерация цикла событий (или продолжается из наблюдателя), т.е. ветвление и затем немедленная регистрация наблюдателя для дочернего элемента является хорошей практикой, а ветвление и регистрация наблюдателя после нескольких итераций цикла событий или при следующем запуске callback-функции - нет.

Наблюдателей EvChild разрешается регистрировать только в цикле по умолчанию.

Обзор классов

class 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(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): 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

Приоритет наблюдателя

Смотрите также

  • 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)

Введение

Используется для вставки одного цикла событий в другой.

Обзор классов

class 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
/* Наследуемые методы */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): 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

Приоритет наблюдателя

Примеры

Пример #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

Делает одиночную, неблокирующую развёртку по встроенному циклу. Работает аналогично следующему коду, но является более предпочтительным в случае встроенных циклов:

<?php
$other->start(Ev::RUN_NOWAIT);
?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • EvWatcher::start() - Запускает наблюдателя


Класс EvFork

(PECL ev >= 0.2.0)

Введение

Параллельный процесс наблюдателя вызывается тогда, когда вызывается fork() (обычно потому, что об этом сообщили libev путём вызова EvLoop::fork()). Вызов делается до следующей блокировки циклом событий и до начала вызова наблюдателей EvCheck и только в дочернем процессе после ветвления. Обратите внимание на то, что если кто-нибудь сделает вызов EvLoop::fork() в неправильном процессе, обработчики ветвления также будут вызваны.

Обзор классов

class 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(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): 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

Приоритет наблюдателя

Смотрите также

  • 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

Смотрите callback-функции наблюдателей .

data

Произвольные данные, ассоциированные с наблюдателем

priority

Приоритет наблюдателя

Возвращаемые значения

Возвращает остановленный объект EvFork.

Смотрите также

  • EvFork::__construct() - Конструктор наблюдателя EvFork


Класс EvIdle

(PECL ev >= 0.2.0)

Введение

Наблюдатели EvIdle вызывают события тогда, когда никакие другие события такого же или более высокого приоритета не находятся в ожидании (EvPrepare, EvCheck и другие наблюдатели EvIdle не считаются за получающие события).

Таким образом этот процесс занят обработкой сокетов или ожиданий (или даже сигналов) такого же или более высокого приоритета до тех пор, пока он не будет активирован. Но когда процесс находится в режиме ожидания (или в очереди только наблюдатели с более низким приоритетом), наблюдатели EvIdle будут вызываться единожды за итерацию цикла событий - пока не будут остановлены или пока процессом не будут получены новые сообщения и он не будет занят более приоритетными задачами.

Помимо поддержания неблокирующего процесса (который полезен в некоторых случаях), наблюдатели EvIdle являются хорошим местом для выполнения "псевдо-фоновой обработки" или задержки обработки данных до момента, пока цикл событий не обработает все исключительные события.

Наиболее заметный эффект проявляется в том, что пока спящие наблюдатели активны, процесс не будет блокироваться в процессе ожидания новых событий.

Обзор классов

class 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(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): 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::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 и внутренний таймер для проверки, что блокировка не вечная.

Старайтесь всегда использовать неблокирующий режим.

Обзор классов

class 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(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): 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::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 class EvLoop {
/* Свойства */
public $data;
public $backend;
public $is_default_loop;
public $iteration;
public $pending;
public $io_interval;
public $timeout_interval;
public $depth;
/* Методы */
public __construct(
int $flags = ?,
mixed $data = NULL ,
float $io_interval = 0.0 ,
float $timeout_interval = 0.0
)
public backend(): 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 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
final public io(
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvIo
public loopFork(): void
public now(): float
public nowUpdate(): 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
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
final public timer(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvTimer
public verify(): 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(): 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::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

Вызывает всех ожидающих наблюдателей при сбросе их отложенного состояния

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Создаёт объект наблюдателя 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

Должен вызываться после разветвления в дочернем элементе, перед входом или продолжением цикла событий. Альтернативой является использование 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(): 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

Устанавливает текущее время, запрашивая ядро, обновляя время, возвращаемое 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

Методы 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

Методы 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

Выполняет внутренние проверки согласованности (для отладки libev) и прерывает программу, если обнаружены повреждённые структуры данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • Ev::verify() - Производит внутреннюю проверку целостности(для отладки)


Класс EvPeriodic

(PECL ev >= 0.2.0)

Введение

Периодические наблюдатели также, своего рода, таймеры, но гораздо более непостоянные.

В отличие от EvTimer , наблюдатели EvPeriodic базируются не на реальном времени (или относительном времени, физически прошедшем), а на "системном" (том, которое показывается на ваших часах). Разница в том, что такое время может идти быстрее или медленнее "реального", или вообще скакать, в момент перехода на зимнее/летнее время или просто ручного изменения времени.

Наблюдатель EvPeriodic можно сконфигурировать на срабатывание после определённого времени. Например, если наблюдатель EvPeriodic сконфигурирован сработать "в 10 секунд" (т.е. EvLoop::now() + 10.0 секунд по "системному" времени, а не через 10 секунд!) и сразу после этого системное время сбросили на первое Января прошлого года, то наблюдатель сработает через год или больше, ровно в тот момент, когда системное время будет равно заданному. В то время как EvTimer просто сработает через 10 секунд после запуска.

Также как и с таймерами, callback-функция гарантированно сработает после наступления необходимого времени. Если несколько таймеров будут готовы сработать в одной и той же итерации событийного цикла, то первыми сработают те, которые должны сработать раньше по времени. (это более не распространяется на ситуации, когда callback-функции рекурсивно вызывают EvLoop::run()).

Обзор классов

class EvPeriodic extends EvWatcher {
/* Свойства */
public $offset;
public $interval;
/* Наследуемые свойства */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Методы */
public __construct(
float $offset ,
string $interval ,
callable $reschedule_cb ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
public again(): void
public at(): float
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(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): 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

Останавливает и снова запускает периодический наблюдатель. Полезно только при изменении атрибутов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • EvTimer::again() - Перезапускает таймер наблюдателя


Возвращает абсолютное время, когда наблюдатель запустится в следующий раз

  • « EvPeriodic::again
  • EvPeriodic::__construct »
  • PHP Manual
  • EvPeriodic
  • Возвращает абсолютное время, когда наблюдатель запустится в следующий раз

EvPeriodic::at

(PECL ev >= 0.2.0)

EvPeriodic::at — Возвращает абсолютное время, когда наблюдатель запустится в следующий раз

Описание

public EvPeriodic::at(): 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

Приоритет наблюдателя

Примеры

Пример #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 выполнят свою работу.

Обзор классов

class 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(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): 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

Приоритет наблюдателя

Смотрите также

  • 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.

Обзор классов

class 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(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): void
}

Свойства

signum

Номер сигнала. Смотрите константы, экспортированные модулем pcntl. Также смотрите страницу руководства 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

Приоритет наблюдателя

Примеры

Пример #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, так как это может сильно повлиять на потребление ресурсов в связи с использованием механизмов оповещения операционной системы.

Обзор классов

class EvStat extends EvWatcher {
/* Свойства */
public $path;
public $interval;
/* Наследуемые свойства */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Методы */
public __construct(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
public attr(): array
final public static createStopped(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): void
public prev(): void
public set( string $path , float $interval ): void
public stat(): bool
/* Наследуемые методы */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): 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(): 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

Приоритет наблюдателя

Примеры

Пример #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

Как и 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(): 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 секунд, то таймер сработает не чаще чем один раз за итерацию событийного цикла.

Обзор классов

class EvTimer extends EvWatcher {
/* Свойства */
public $repeat;
public $remaining;
/* Наследуемые свойства */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Методы */
public __construct(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
public again(): void
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(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public EvWatcher::stop(): 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

Будет действовать так, как если бы таймер отключился и перезапустился снова, если он повторяется. Точная семантика:

  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

Приоритет наблюдателя

Примеры

Пример #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 class EvWatcher {
/* Свойства */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Методы */
abstract public __construct()
public clear(): int
public feed( int $revents ): void
public getLoop(): EvLoop
public invoke( int $revents ): void
public keepalive( bool $value = ?): bool
public setCallback( callable $callback ): void
public start(): void
public stop(): void
}

Свойства

is_active

Только чтение. Если наблюдатель активен, то true, если нет, то false.

data

Произвольные пользовательские данные.

is_pending

Только чтение. если наблюдатель в режиме ожидания, то есть имеет неразобранные сообщения, а callback-функция ещё не запускалась, то true. В противном случае false. Пока наблюдатель находится в режиме ожидания (но не активен), вы не должны изменять его приоритет.

priority

Целое число (int) в диапазоне от 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(): 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()

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(): 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

Отмечает наблюдателя как активного. Обратите внимание, что только активные наблюдатели будут получать события.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • EvWatcher::stop() - Останавливает наблюдателя


Останавливает наблюдателя

  • « EvWatcher::start
  • Expect »
  • PHP Manual
  • EvWatcher
  • Останавливает наблюдателя

EvWatcher::stop

(PECL ev >= 0.2.0)

EvWatcher::stop — Останавливает наблюдателя

Описание

public EvWatcher::stop(): 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 int

Максимальное время ожидания данных при использовании функции expect_expectl().

Значение "-1" задаёт вечное ожидание.

Замечание:

Значение "0" означает, что функция expect_expectl() завершится сразу.

expect.loguser bool

Определяет, будет ли порождённый процесс производить вывод в поток stdout. Так как интерактивные программы обычно дублируют пользовательский ввод, обычно нужно разрешать эту опцию, чтобы взаимодействие было осознанным.

expect.logfile string

Имя файла, куда будет писаться вывод порождённого процесса. Если файл не существует, он будет создан.

Замечание:

Если этой опции присвоено какое-либо не пустое значение, то вывод будет писаться в файл вне зависимости от настройки expect.loguser.

expect.match_max int

Изменяет размер буфера (по умолчанию 2000 байт) используемого для поиска символа звёздочки в шаблонах.


  • « Настройка во время выполнения
  • Предопределённые константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

expect_popen() возвращает открытый поток PTY используемый expect_expectl().


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

EXP_GLOB (int)
Указывает, что шаблон является шаблоном поиска файла (glob).
EXP_EXACT (int)
Указывает, что шаблон является точной строкой.
EXP_REGEXP (int)
Указывает, что шаблон является регулярным выражением.
EXP_EOF (int)
Значение, возвращаемое expect_expectl(), когда достигнут конец файла.
EXP_TIMEOUT (int)
Значение, возвращаемое expect_expectl() после исчерпания времени ожидания, заданного в expect.timeout
EXP_FULLBUFFER (int)
Значение, возвращаемое 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

Список изменений

Версия | Описание
PECL expect 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
  • PCNTL »
  • 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() - Открывает файловый указатель процесса


Управление процессами

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
    • Базовое применение
  • Функции 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_rfork — Взаимодействует с ресурсами процесса
    • pcntl_setpriority — Изменить приоритет процесса
    • pcntl_signal_dispatch — Вызывает обработчики для ожидающих сигналов
    • pcntl_signal_get_handler — Получить текущий обработчик указанного сигнала
    • pcntl_signal — Установка обработчика сигнала
    • pcntl_sigprocmask — Задаёт и извлекает список блокируемых сигналов
    • pcntl_sigtimedwait — Ожидает сигналы в течение заданного времени
    • pcntl_sigwaitinfo — Ожидание сигналов
    • pcntl_strerror — Получить текст ошибки по её коду
    • pcntl_unshare — Разделяет части контекста выполнения процесса
    • 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 (int)
WUNTRACED (int)
Константы SIG_*
SIG_IGN (int)
SIG_DFL (int)
SIG_ERR (int)
SIGHUP (int)
SIGINT (int)
SIGQUIT (int)
SIGILL (int)
SIGTRAP (int)
SIGABRT (int)
SIGIOT (int)
SIGBUS (int)
SIGFPE (int)
SIGKILL (int)
SIGUSR1 (int)
SIGSEGV (int)
SIGUSR2 (int)
SIGPIPE (int)
SIGALRM (int)
SIGTERM (int)
SIGSTKFLT (int)
SIGCLD (int)
SIGCHLD (int)
SIGCONT (int)
SIGSTOP (int)
SIGTSTP (int)
SIGTTIN (int)
SIGTTOU (int)
SIGURG (int)
SIGXCPU (int)
SIGXFSZ (int)
SIGVTALRM (int)
SIGPROF (int)
SIGWINCH (int)
SIGPOLL (int)
SIGIO (int)
SIGPWR (int)
SIGSYS (int)
SIGBABY (int)
SIG_BLOCK (int)
SIG_UNBLOCK (int)
SIG_SETMASK (int)
SI_USER (int)
SI_NOINFO (int)
SI_KERNEL (int)
SI_QUEUE (int)
SI_TIMER (int)
SI_MSGGQ (int)
SI_ASYNCIO (int)
SI_SIGIO (int)
SI_TKILL (int)
Константы CLD_*
CLD_EXITED (int)
CLD_KILLED (int)
CLD_DUMPED (int)
CLD_TRAPPED (int)
CLD_STOPPED (int)
CLD_CONTINUED (int)
Константы TRAP_*
TRAP_BRKPT (int)
TRAP_TRACE (int)
POLL_IN (int)
POLL_OUT (int)
POLL_MSG (int)
POLL_ERR (int)
POLL_PRI (int)
POLL_HUP (int)
Константы ILL_*
ILL_ILLOPC (int)
ILL_ILLOPN (int)
ILL_ILLADR (int)
ILL_ILLTRP (int)
ILL_PRVOPC (int)
ILL_PRVREG (int)
ILL_COPROC (int)
ILL_BADSTK (int)
Константы FPE_*
FPE_INTDIV (int)
FPE_INTOVF (int)
FPE_FLTDIV (int)
FPE_FLTOVF (int)
FPE_FLTUND (int)
FPE_FLTRES (int)
FPE_FLTINV (int)
FPE_FLTSUB (int)
Константы SEGV_*
SEGV_MAPERR (int)
SEGV_ACCERR (int)
Константы BUS_*
BUS_ADRALN (int)
BUS_ADRERR (int)
BUS_OBJERR (int)
Константы CLONE_*
CLONE_NEWNS (int)
Доступно, начиная с PHP 7.4.0
CLONE_NEWIPC (int)
Доступно, начиная с PHP 7.4.0
CLONE_NEWUTS (int)
Доступно, начиная с PHP 7.4.0
CLONE_NEWNET (int)
Доступно, начиная с PHP 7.4.0
CLONE_NEWPID (int)
Доступно, начиная с PHP 7.4.0
CLONE_NEWUSER (int)
Доступно, начиная с PHP 7.4.0
CLONE_NEWCGROUP (int)
Доступно, начиная с PHP 7.4.0
Константы PRIO_*
PRIO_PGRP (int)
PRIO_USER (int)
PRIO_PROCESS (int)
PRIO_DARWIN_BG (int)
Доступно, начиная с PHP 8.1.0.
PRIO_DARWIN_THREAD (int)
Доступно, начиная с PHP 8.1.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_rfork — Взаимодействует с ресурсами процесса
  • pcntl_setpriority — Изменить приоритет процесса
  • pcntl_signal_dispatch — Вызывает обработчики для ожидающих сигналов
  • pcntl_signal_get_handler — Получить текущий обработчик указанного сигнала
  • pcntl_signal — Установка обработчика сигнала
  • pcntl_sigprocmask — Задаёт и извлекает список блокируемых сигналов
  • pcntl_sigtimedwait — Ожидает сигналы в течение заданного времени
  • pcntl_sigwaitinfo — Ожидание сигналов
  • pcntl_strerror — Получить текст ошибки по её коду
  • pcntl_unshare — Разделяет части контекста выполнения процесса
  • 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, PHP 8)

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, PHP 8)

pcntl_async_signals — Включить/отключить асинхронную обработку сигналов, либо получить текущий статус

Описание

pcntl_async_signals(?bool $enable = null): bool

Если пропущен параметр enable, функция pcntl_async_signals() вернёт текущее значение настройки. А если задан, то асинхронная обработка будет включена, либо отключена, в зависимости от заданного значения.

Список параметров

enable

Включить или отключить асинхронную обработку сигналов.

Возвращаемые значения

Если при использовании значение параметра enable равно null, возвращает включена ли асинхронная обработка сигналов. Если при использовании параметр enable не равен null, возвращает, была ли включена асинхронная обработка сигналов до вызова функции.

Список изменений

Версия | Описание
8.0.0 | enable теперь допускает значение null.

Смотрите также

  • 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, PHP 8)

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, PHP 8)

pcntl_exec — Запустить указанную программу в области текущего процесса

Описание

pcntl_exec(string $path, array $args = [], array $env_vars = []): bool

Запускает программу с переданными аргументами.

Список параметров

path

path путь до исполняемой программы или скрипта с корректным указанием пути до интерпретатора в первой строке (например, #!/usr/local/bin/perl). Для получения дополнительной информации обратитесь к системному руководству execve(2).

args

args массив строк аргументов переданных программе

env_vars

env_vars массив строк, которые переданы программе в качестве переменных окружения. Массив формата name => value, где name - имя переменной окружения и value - значение переменной окружения.

Возвращаемые значения

Возвращает false.


Разветвить (fork) текущий запущенный процесс

  • « pcntl_exec
  • pcntl_get_last_error »
  • PHP Manual
  • Функции PCNTL
  • Разветвить (fork) текущий запущенный процесс

pcntl_fork

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_fork — Разветвить (fork) текущий запущенный процесс

Описание

pcntl_fork(): 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_rfork() - Взаимодействует с ресурсами процесса
  • pcntl_waitpid() - Ожидает или возвращает статус порождённого дочернего процесса
  • pcntl_signal() - Установка обработчика сигнала
  • cli_set_process_title() - Устанавливает заголовок процесса


Получить код последней ошибки, возникшей в pcntl-функции

  • « pcntl_fork
  • pcntl_getpriority »
  • PHP Manual
  • Функции PCNTL
  • Получить код последней ошибки, возникшей в pcntl-функции

pcntl_get_last_error

(PHP 5 >= 5.3.4, PHP 7, PHP 8)

pcntl_get_last_error — Получить код последней ошибки, возникшей в pcntl-функции

Описание

pcntl_get_last_error(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ошибки.

Смотрите также

  • pcntl_strerror() - Получить текст ошибки по её коду


Получить значение приоритета процесса

  • « pcntl_get_last_error
  • pcntl_rfork »
  • PHP Manual
  • Функции PCNTL
  • Получить значение приоритета процесса

pcntl_getpriority

(PHP 5, PHP 7, PHP 8)

pcntl_getpriority — Получить значение приоритета процесса

Описание

pcntl_getpriority(?int $process_id = null, int $mode = PRIO_PROCESS): int|false

pcntl_getpriority() получает значение приоритета для процесса, указанного в аргументе process_id. Поскольку уровни приоритета процессов отличаются в различных типах операционных систем и версиях их ядер, пожалуйста, ознакомьтесь с вашим системным руководством getpriority(2) для получения детальной информации о специфике работы функции в вашей системе.

Список параметров

process_id

Если не указано, то будет использован идентификатор текущего процесса.

mode

Может принимать значение одной из констант PRIO_PGRP, PRIO_USER, PRIO_PROCESS, PRIO_DARWIN_BG или PRIO_DARWIN_THREAD.

Возвращаемые значения

pcntl_getpriority() возвращает приоритет процесса, или false в случае возникновения ошибки. Более низкое числовое значение (в т.ч. отрицательное) означает больший приоритет.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.0.0 | process_id теперь допускает значение null.

Смотрите также

  • pcntl_setpriority() - Изменить приоритет процесса


Взаимодействует с ресурсами процесса

  • « pcntl_getpriority
  • pcntl_setpriority »
  • PHP Manual
  • Функции PCNTL
  • Взаимодействует с ресурсами процесса

pcntl_rfork

(PHP 8 >= 8.1.0)

pcntl_rfork — Взаимодействует с ресурсами процесса

Описание

pcntl_rfork(int $flags, int $signal = 0): int

Взаимодействует с ресурсами процесса.

Список параметров

flags

Параметр flags определяет, какие ресурсы вызывающего процесса (родительского) разделяются новым процессом (дочерним) или инициализируются в значения по умолчанию.

flags является логическим OR (или) некоторого подмножества из:

  • RFPROC: Если установлено, создаётся новый процесс; в противном случае изменения затрагивают текущий процесс.
  • RFNOWAIT: Если установлено, дочерний процесс будет отделён от родительского. При выходе дочерний процесс не будет оставлять статус для родителя, чтобы забрать его.
  • RFFDG: Если установлено, копируется таблица дескрипторов файлов вызывающей стороны; В противном случае два процесса используют одну таблицу.
  • RFCFDG: Если установлено, новый процесс начинается с чистой таблицей дескрипторов файлов. Взаимоисключающий флаг с RFFDG.
  • RFLINUXTHPN: Если установлено, ядро будет возвращать SIGUSR1 вместо SIGCHILD при выходе из дочернего потока. Предназначен для уведомления родительского процесса о выходе из Linux-клона.

signal

Номер сигнала.

Возвращаемые значения

В случае успешного выполнения в потоке выполнения родительского процесса возвращается PID дочернего процесса, а в потоке выполнения дочернего процесса возвращается 0. В случае возникновения ошибки в контексте родителя будет возвращено -1, дочерний процесс не будет создан и будет выдана ошибка PHP.

Примеры

Пример #1 Пример использования pcntl_rfork()

<?php

$pid = pcntl_rfork(RFNOWAIT|RFTSIGZMB, SIGUSR1);
if ($pid > 0) {
// Родительский процесс.
var_dump($pid);
} else {
// Дочерний процесс.
var_dump($pid);
sleep(2); // поскольку дочерний процесс не ждёт, мы видим его "pid".
}
?>

Результатом выполнения данного примера будет что-то подобное:

int(77093)
int(0)

Примечания

Замечание:

Функция доступна только в системах BSD.

Смотрите также

  • pcntl_fork() - Разветвить (fork) текущий запущенный процесс
  • pcntl_waitpid() - Ожидает или возвращает статус порождённого дочернего процесса
  • pcntl_signal() - Установка обработчика сигнала
  • cli_set_process_title() - Устанавливает заголовок процесса


Изменить приоритет процесса

  • « pcntl_rfork
  • pcntl_signal_dispatch »
  • PHP Manual
  • Функции PCNTL
  • Изменить приоритет процесса

pcntl_setpriority

(PHP 5, PHP 7, PHP 8)

pcntl_setpriority — Изменить приоритет процесса

Описание

pcntl_setpriority(int $priority, ?int $process_id = null, int $mode = PRIO_PROCESS): bool

pcntl_setpriority() задаёт приоритет процессу, указанному в аргументе process_id.

Список параметров

priority

Как правило приоритет priority - это значение в интервале от -20 до 20. Приоритет по умолчанию равен 0, при том что более низкое числовое значение означает более высокий приоритет процесса. Поскольку уровни приоритета процессов отличаются в различных типах операционных систем и версиях их ядер, пожалуйста, ознакомьтесь с вашим системным руководством getpriority(2) для получения детальной информации о специфике работы функции в вашей системе.

process_id

Если не указано, то будет использован идентификатор текущего процесса.

mode

Может принимать значение одной из констант PRIO_PGRP, PRIO_USER, PRIO_PROCESS, PRIO_DARWIN_BG или PRIO_DARWIN_THREAD.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | process_id теперь допускает значение null.

Смотрите также

  • pcntl_getpriority() - Получить значение приоритета процесса
  • pcntl_setpriority()


Вызывает обработчики для ожидающих сигналов

  • « pcntl_setpriority
  • pcntl_signal_get_handler »
  • PHP Manual
  • Функции PCNTL
  • Вызывает обработчики для ожидающих сигналов

pcntl_signal_dispatch

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_signal_dispatch — Вызывает обработчики для ожидающих сигналов

Описание

pcntl_signal_dispatch(): 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, PHP 8)

pcntl_signal_get_handler — Получить текущий обработчик указанного сигнала

Описание

pcntl_signal_get_handler(int $signal): callable|int

Функция pcntl_signal_get_handler() получит текущий обработчик указанного сигнала signal.

Список параметров

signal

Номер сигнала.

Возвращаемые значения

Функция вернёт целочисленное значение, указывающее на константы SIG_DFL или SIG_IGN. Если задан пользовательский обработчик, возвращается этот callable. функции.

Список изменений

Версия | Описание
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, PHP 8)

pcntl_signal — Установка обработчика сигнала

Описание

pcntl_signal(int $signal, callable|int $handler, bool $restart_syscalls = true): bool

Функция pcntl_signal() устанавливает новый обработчик сигнала или заменяет текущий обработчик сигнала, указанный в аргументе signal.

Список параметров

signal

Номер сигнала.

handler

Обработчик сигнала. Это может быть или callable, указатель на функцию, которая будет запущена для обработки сигнала, или значение одной из глобальных констант: SIG_IGN или SIG_DFL, которые, соответственно, либо приведут к игнорированию сигнала, либо восстановлению обработчика по умолчанию.

Если передан тип callable, он должен иметь следующую сигнатуру:

handler(int $signo, mixed $siginfo): void
signal
Номер обрабатываемого сигнала.
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, PHP 8)

pcntl_sigprocmask — Задаёт и извлекает список блокируемых сигналов

Описание

pcntl_sigprocmask(int $mode, array $signals, array &$old_signals = null): bool

Функция pcntl_sigprocmask() добавляет, удаляет или задаёт список блокированных процессов в зависимости от значения переданного в аргументе mode.

Список параметров

mode

Задаёт поведение функции pcntl_sigprocmask(). Возможные значения:

  • SIG_BLOCK: Добавить сигнал к списку уже блокируемых сигналов.
  • SIG_UNBLOCK: Удалить сигнал из списка блокируемых.
  • SIG_SETMASK: Заменить список блокируемых сигналов новым списком.

signals

Список сигналов

old_signals

Функция передаст по ссылке в аргумент old_signals ранее заданный список блокируемых сигналов.

Возвращаемые значения

Возвращает 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, PHP 8)

pcntl_sigtimedwait — Ожидает сигналы в течение заданного времени

Описание

pcntl_sigtimedwait(
array $signals,
array &$info = [],
int $seconds = 0,
int $nanoseconds = 0
): int|false

Функция pcntl_sigtimedwait() ведёт себя точно так же как и функция pcntl_sigwaitinfo() за исключением того, что принимает два дополнительных аргумента, seconds и nanoseconds, которые устанавливают верхнюю границу времени, которое скрипт может простаивать.

Список параметров

signals

Массив ожидаемых сигналов.

info

info содержит информацию о сигнале. Смотрите функцию pcntl_sigwaitinfo().

seconds

Время ожидания в секундах.

nanoseconds

Время ожидания в наносекундах.

Возвращаемые значения

В случае успешного выполнения pcntl_sigtimedwait() возвращает номер сигнала или false в случае возникновения ошибки.

Смотрите также

  • pcntl_sigprocmask() - Задаёт и извлекает список блокируемых сигналов
  • pcntl_sigwaitinfo() - Ожидание сигналов


Ожидание сигналов

  • « pcntl_sigtimedwait
  • pcntl_strerror »
  • PHP Manual
  • Функции PCNTL
  • Ожидание сигналов

pcntl_sigwaitinfo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_sigwaitinfo — Ожидание сигналов

Описание

pcntl_sigwaitinfo(array $signals, array &$info = []): int|false

Функция pcntl_sigwaitinfo() приостанавливает выполнение вызывающего скрипта до тех пор, пока не будет доставлен один из сигналов, указанных в signals. Если один из сигналов уже ожидает обработки (например, заблокирован pcntl_sigprocmask()),pcntl_sigwaitinfo() незамедлительно вернёт управление.

Список параметров

signals

Массив ожидаемых сигналов.

info

Аргумент info массив, содержащий информацию о сигнале.

Следующие ключи массива (аргумента) применимы для всех сигналов

  • signo: Номер сигнала
  • errno: Номер ошибки
  • code: Код сигнала

Следующие элементы массива применимы для сигнала SIGCHLD:

  • status: Статус выхода дочернего процесса или сигнал, заставивший дочерний процесс поменять состояние
  • utime: Потреблённое пользовательское время
  • stime: Потреблённое системное время
  • pid: ID процесса-отправителя
  • uid: ID пользователя владеющего процессом-отправителем

Следующие элементы массива применимы для сигналов SIGILL, SIGFPE, SIGSEGV и SIGBUS:

  • addr: Адрес памяти в котором произошёл сбой

Следующие элементы массива применимы для сигнала SIGPOLL

  • band: Событие ввода-вывода
  • fd: Номер файлового дескриптора

Возвращаемые значения

В случае успешного выполнения функция pcntl_sigwaitinfo() возвращает номер сигнала или false в случае возникновения ошибки.

Примеры

Пример #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_unshare »
  • PHP Manual
  • Функции PCNTL
  • Получить текст ошибки по её коду

pcntl_strerror

(PHP 5 >= 5.3.4, PHP 7, PHP 8)

pcntl_strerror — Получить текст ошибки по её коду

Описание

pcntl_strerror(int $error_code): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

error_code

Возвращаемые значения

Возвращает описание ошибки.

Смотрите также

  • pcntl_get_last_error() - Получить код последней ошибки, возникшей в pcntl-функции


Разделяет части контекста выполнения процесса

  • « pcntl_strerror
  • pcntl_wait »
  • PHP Manual
  • Функции PCNTL
  • Разделяет части контекста выполнения процесса

pcntl_unshare

(PHP 7 >= 7.4.0, PHP 8)

pcntl_unshare — Разделяет части контекста выполнения процесса

Описание

pcntl_unshare(int $flags): bool

Функция pcntl_unshare() позволяет процессу отсоединить части своего контекста выполнения, которые в настоящее время используются совместно с другими процессами. Основное использование pcntl_unshare() заключается в том, чтобы позволить процессу управлять своим общим контекстом выполнения без создания нового процесса.

Список параметров

flags

Параметр flags - это битовая маска, определяющая, какие части контекста выполнения должны быть неразделёнными. Параметр задаётся путём использования оператора OR вместе с нулём или более констант CLONE_*:

  • CLONE_NEWNS
  • CLONE_NEWIPC
  • CLONE_NEWUTS
  • CLONE_NEWNET
  • CLONE_NEWPID
  • CLONE_NEWUSER
  • CLONE_NEWCGROUP

Возвращаемые значения

Возвращает 0 в случае успешного выполнения, -1 в противном случае. В случае возникновения ошибки устанавливается код ошибки, который можно получить с помощью функции pcntl_get_last_error().

Смотрите также

  • Константы PCNTL
  • pcntl_get_last_error() - Получить код последней ошибки, возникшей в pcntl-функции


Ожидает или возвращает статус порождённого дочернего процесса

  • « pcntl_unshare
  • pcntl_waitpid »
  • PHP Manual
  • Функции PCNTL
  • Ожидает или возвращает статус порождённого дочернего процесса

pcntl_wait

(PHP 5, PHP 7, PHP 8)

pcntl_wait — Ожидает или возвращает статус порождённого дочернего процесса

Описание

pcntl_wait(int &$status, int $flags = 0, array &$resource_usage = []): int

Функция ожидания приостанавливает выполнение текущего процесса до тех пор, пока дочерний процесс не завершится или пока не будет получен сигнал который завершает текущий процесс или вызывает функцию обработки сигнала. Если дочерний процесс уже завершился ко времени вызова (так называемые "зомби" процессы), функция незамедлительно вернёт управление. Обратитесь к вашей системному руководству (man) wait(2) для уточнения специфики работы wait в вашей системе.

Замечание:

Эта функция эквивалентна вызову pcntl_waitpid() с аргументом process_id равным -1 и без аргумента flags.

Список параметров

status

pcntl_wait() разместит информацию о статусе
по ссылке в аргументе status, который может
быть передан в следующие функции:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() и
pcntl_wstopsig().

flags

Если системный вызов wait3 (man 2 wait3) доступен в вашей системе (как правило в BSD-подобных системах), вы можете задать необязательный аргумент flags. Если этот параметр не задан, будет использован стандартный системный вызов wait. Если системный вызов wait3 не доступен для вашей системы, передача значения аргумента flags не будет иметь значения. Значение аргумента flags - это битовая маска, которая может принимать значение ноль или более путём логического объединения следующих констант:

Возможные значения для flags
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, PHP 8)

pcntl_waitpid — Ожидает или возвращает статус порождённого дочернего процесса

Описание

pcntl_waitpid(
int $process_id,
int &$status,
int $flags = 0,
array &$resource_usage = []
): int

Функция ожидания приостанавливает выполнение текущего процесса до тех пор, пока дочерний процесс, указанный в аргументе process_id, не завершится или пока не будет получен сигнал, который завершает текущий процесс или вызывает функцию обработки сигнала.

Если дочерний процесс, указанный в аргументе process_id, уже завершился ко времени вызова (так называемые "зомби" процессы), функция незамедлительно вернёт управление. Любые системные ресурсы используемые дочерним процессом будут освобождены. Обратитесь к вашей системному руководству waitpid(2) для уточнения специфики работы waitpid в вашей системе.

Список параметров

process_id

Аргумент process_id может принимать одно из следующих значений:

возможные значения аргумента process_id
< -1 | ожидать любой дочерний процесс, у которого значение идентификатор группы процессов (group ID) равно модулю значения аргумента |process_id|.
-1 | ожидать любой дочерний процесс; это такое же поведение, что и у функции wait.
0 | ожидать любой дочерний процесс, идентификатор группы процессов (group ID) которого равен идентификатору текущего процесса.
> 0 | ожидать дочерний процесс ID которого равен process_id.

Замечание:

Указание -1 в качестве process_id - это аналог функции pcntl_wait() (минус flags).

status

pcntl_waitpid() разместит информацию о статусе
по ссылке в аргументе status, который может
быть передан в следующие функции:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() и
pcntl_wstopsig().

flags

Значение аргумента flags - это битовая маска, которая может принимать значение ноль или более путём логического объединения следующих констант:

Возможные значения для flags
WNOHANG | Незамедлительно вернуть управление, если ни один из дочерних процессов не завершён
WUNTRACED | Вернуть управление для остановленных дочерних процессов, о статусе которых ещё не сообщено

Возвращаемые значения

pcntl_wait() возвращает ID завершённого дочернего процесса, -1 в случае возникновения ошибке или ноль, если WNOHANG был передан в аргумент flags и не было доступных дочерних процессов.

Смотрите также

  • 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, PHP 8)

pcntl_wexitstatus — Получить код возврата завершённого дочернего процесса

Описание

pcntl_wexitstatus(int $status): int|false

Возвращает код возврата завершённого дочернего процесса. Функция применима только если функция pcntl_wifexited() вернула true.

Список параметров

status

Параметр status — это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Возвращает код возврата дочернего процесса. Если эта функция не поддерживается ОС, возвращается false.

Смотрите также

  • pcntl_waitpid() - Ожидает или возвращает статус порождённого дочернего процесса
  • pcntl_wifexited() - Проверяет, соответствует ли код завершения процесса нормальному завершению


Проверяет, соответствует ли код завершения процесса нормальному завершению

  • « pcntl_wexitstatus
  • pcntl_wifsignaled »
  • PHP Manual
  • Функции PCNTL
  • Проверяет, соответствует ли код завершения процесса нормальному завершению

pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

pcntl_wstopsig — Получить сигнал, из-за которого был остановлен дочерний процесс

Описание

pcntl_wstopsig(int $status): int|false

Возвращает сигнал, из-за которого был остановлен дочерний процесс. Функция имеет смысл только если pcntl_wifstopped() вернула true.

Список параметров

status

Параметр status — это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Возвращает номер сигнала. Если эта функция не поддерживается ОС, возвращается false.

Смотрите также

  • pcntl_waitpid() - Ожидает или возвращает статус порождённого дочернего процесса
  • pcntl_wifstopped() - Проверить, остановлен ли дочерний процесс


Получить сигнал, из-за которого был принудительно завершён дочерний процесс

  • « pcntl_wstopsig
  • POSIX »
  • PHP Manual
  • Функции PCNTL
  • Получить сигнал, из-за которого был принудительно завершён дочерний процесс

pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_wtermsig — Получить сигнал, из-за которого был принудительно завершён дочерний процесс

Описание

pcntl_wtermsig(int $status): int|false

Возвращает номер сигнала, из-за которого был принудительно завершён дочерний процесс. Имеет смысл только если pcntl_wifsignaled() вернула true.

Список параметров

status

Параметр status — это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Возвращает номер сигнала. Если эта функция не поддерживается ОС, возвращается false.

Смотрите также

  • pcntl_waitpid() - Ожидает или возвращает статус порождённого дочернего процесса
  • pcntl_signal() - Установка обработчика сигнала
  • pcntl_wifsignaled() - Проверить, соответствует ли код завершения процесса завершению по сигналу


POSIX

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
    • Константы posix_access
    • Константы posix_mknod
    • Константы posix_setrlimit
  • POSIX Функции
    • posix_access — Определяет доступность файла
    • posix_ctermid — Возвращает путь управляющего терминала
    • posix_eaccess — Determine accessibility of a file
    • posix_errno — Псевдоним posix_get_last_error
    • posix_fpathconf — Returns the value of a configurable limit
    • 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_pathconf — Returns the value of a configurable limit
    • posix_setegid — Устанавливает эффективный идентификатор группы для текущего процесса EGID
    • posix_seteuid — Устанавливает эффективный идентификатор пользователя для текущего процесса EUID
    • posix_setgid — Устанавливает идентификатор группы для текущего процесса GID
    • posix_setpgid — Устанавливает идентификатор группы процесса для менеджера задач
    • posix_setrlimit — Устанавливает пределы системных ресурсов
    • posix_setsid — Делает текущий процесс лидером сессии
    • posix_setuid — Устанавливает UID текущего процесса
    • posix_strerror — Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки
    • posix_sysconf — Returns system runtime information
    • posix_times — Возвращает информацию об использовании процессорного времени
    • posix_ttyname — Определяет имя терминального устройства
    • posix_uname — Возвращает информацию о системе


Введение

Этот модуль содержит интерфейс к функциям, определённым в стандарте IEEE 1003.1 (POSIX.1), которые не доступны с помощью других средств.

Внимание

Конфиденциальные данные могут быть получены с помощью POSIX функций, например posix_getpwnam() и других.

Замечание: Для Windows-платформ этот модуль недоступен.


Установка

Модуль включён по умолчанию. Он может быть отключён во время выполнения с помощью следующей опции: --disable-posix


Предопределённые константы

Содержание

  • Константы posix_access
  • Константы posix_mknod
  • Константы posix_setrlimit

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.


Константы posix_access

  • « Предопределённые константы
  • Константы posix_mknod »
  • PHP Manual
  • Предопределённые константы
  • Константы posix_access

Константы posix_access()

Замечание:

Пожалуйста, обратите внимание, что некоторые из данных констант могут быть недоступны в вашей операционной системе.

POSIX_F_OK (int)
Проверить, существует ли файл.
POSIX_R_OK (int)
Проверить, существует ли файл и имеется ли разрешение на чтение.
POSIX_W_OK (int)
Проверить, существует ли файл и имеется ли разрешение на запись.
POSIX_X_OK (int)
Проверить, существует ли файл и имеется ли разрешение на выполнение.


Константы posix_mknod

  • « Константы posix_access
  • Константы posix_setrlimit »
  • PHP Manual
  • Предопределённые константы
  • Константы posix_mknod

Константы posix_mknod()

Замечание:

Пожалуйста, обратите внимание, что некоторые из данных констант могут быть недоступны в вашей операционной системе.

POSIX_S_IFBLK (int)
Блочный специальный файл
POSIX_S_IFCHR (int)
Символьный специальный файл
POSIX_S_IFIFO (int)
FIFO (именованный канал) специальный файл
POSIX_S_IFREG (int)
Обычный файл
POSIX_S_IFSOCK (int)
Сокет


Константы posix_setrlimit

  • « Константы posix_mknod
  • POSIX Функции »
  • PHP Manual
  • Предопределённые константы
  • Константы posix_setrlimit

Константы posix_setrlimit()

Замечание:

Пожалуйста, обратите внимание, что некоторые из данных констант могут быть недоступны в вашей операционной системе.

Замечание:

В дополнение к приведённой ниже информации вы можете изучить раздел руководства функции setrlimit() для вашей конкретной операционной системы, т.к. существуют различия в том как эти ограничения интерпретируются, даже в системах, которые заявляют о полной реализации POSIX.

POSIX_RLIMIT_AS (int)
Максимальный размер адресного пространства процесса в байтах. Также смотрите конфигурационную директиву memory_limit.
POSIX_RLIMIT_CORE (int)
Максимальный размер файла дампа ядра. Если это ограничение установлено в качестве 0, то файл дампа ядра создаваться не будет.
POSIX_RLIMIT_CPU (int)
Максимальное количество процессорного времени, которое может быть использовано процессом, в секундах. Когда достигается мягкое ограничение, процессу будет отправлен сигнал SIGXCPU, который может быть обработан с помощью функции pcntl_signal(). В зависимости от операционной системы, может ежесекундно посылаться дополнительный сигнал SIGXCPU, пока не будет достигнут жёсткий предел, достижение которого нельзя обработать. Процессу будет отправлен сигнал SIGKILL. Смотрите также set_time_limit().
POSIX_RLIMIT_DATA (int)
Максимальный размер сегмента данных процесса, в байтах. Крайне маловероятно, что данное ограничение будет влиять на выполнение PHP, за исключением модулей, использующих вызовы функций brk() или sbrk().
POSIX_RLIMIT_FSIZE (int)
Максимальный размер файлов, которые могут быть созданы процессом в байтах.
POSIX_RLIMIT_LOCKS (int)
Максимальное количество блокировок, которое данный процесс может создать. Это поддерживается только на очень старых ядрах Linux.
POSIX_RLIMIT_MEMLOCK (int)
Максимальное количество байт, которое может быть заблокировано в памяти.
POSIX_RLIMIT_MSGQUEUE (int)
Максимальное количество байт, которое может быть выделено под очередь сообщений POSIX. Стандартная сборка PHP не поддерживает POSIX очередь сообщений, поэтому данное ограничение не будет иметь никакого эффекта, кроме случаев, когда вы используете модули, обеспечивающие эту поддержку.
POSIX_RLIMIT_NICE (int)
Максимальное значение, приоритета планировщика процессов, которое может быть установлено. Итоговое значение вычисляется как 20 - limit. Как ограничение ресурса значение не может быть отрицательным.
POSIX_RLIMIT_NOFILE (int)
Значение, превышающее на 1, максимальное количество файловых дескрипторов, которое может быть открыть процессом.
POSIX_RLIMIT_NPROC (int)
Максимальное количество процессов (и/или нитей, в зависимости от операционной системы) которое может быть создано для реального пользователя процесса.
POSIX_RLIMIT_RSS (int)
Максимальный размер физической памяти (RAM), используемой кодом процесса и данными, в страницах.
POSIX_RLIMIT_RTPRIO (int)
Максимальный приоритет реального времени, который может быть установлен с помощью системных вызовов sched_setscheduler() и sched_setparam().
POSIX_RLIMIT_RTTIME (int)
Максимальное количество процессорного времени, в миллисекундах, которое процесс может использовать без блокирования системных вызовов при использовании планировщика реального времени.
POSIX_RLIMIT_SIGPENDING (int)
Максимальное количество сигналов, которое можно поставить в очередь для реального пользователя данного процесса.
POSIX_RLIMIT_STACK (int)
Максимальный размер стека процесса в байтах.
POSIX_RLIMIT_INFINITY (int)
Используется для отображения бесконечного значения ограничения ресурса.
POSIX_RLIMIT_KQUEUES (int)
Максимальное количество kqueue, которое может создать этот идентификатор пользователя (FreeBSD). Доступно с PHP 8.1.0.
POSIX_RLIMIT_NPTS (int)
Максимальное количество псевдотерминалов, которое может создать этот идентификатор пользователя (FreeBSD). Доступно с PHP 8.1.0.


POSIX Функции

Смотрите также

Также может оказаться полезным раздел "Функции управления процессами".

Содержание

  • posix_access — Определяет доступность файла
  • posix_ctermid — Возвращает путь управляющего терминала
  • posix_eaccess — Determine accessibility of a file
  • posix_errno — Псевдоним posix_get_last_error
  • posix_fpathconf — Returns the value of a configurable limit
  • 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_pathconf — Returns the value of a configurable limit
  • posix_setegid — Устанавливает эффективный идентификатор группы для текущего процесса EGID
  • posix_seteuid — Устанавливает эффективный идентификатор пользователя для текущего процесса EUID
  • posix_setgid — Устанавливает идентификатор группы для текущего процесса GID
  • posix_setpgid — Устанавливает идентификатор группы процесса для менеджера задач
  • posix_setrlimit — Устанавливает пределы системных ресурсов
  • posix_setsid — Делает текущий процесс лидером сессии
  • posix_setuid — Устанавливает UID текущего процесса
  • posix_strerror — Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки
  • posix_sysconf — Returns system runtime information
  • posix_times — Возвращает информацию об использовании процессорного времени
  • posix_ttyname — Определяет имя терминального устройства
  • posix_uname — Возвращает информацию о системе


Определяет доступность файла

  • « POSIX Функции
  • posix_ctermid »
  • PHP Manual
  • POSIX Функции
  • Определяет доступность файла

posix_access

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

posix_access — Определяет доступность файла

Описание

posix_access(string $filename, int $flags = 0): bool

Функция posix_access() проверяет права пользователя на доступ к файлу.

Список параметров

filename

Путь к проверяемому файлу.

flags

Маска, состоящая из одной или более констант: 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);
}

?>

Примечания

Смотрите также

  • posix_get_last_error() - Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей
  • posix_strerror() - Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки


Возвращает путь управляющего терминала

  • « posix_access
  • posix_eaccess »
  • PHP Manual
  • POSIX Функции
  • Возвращает путь управляющего терминала

posix_ctermid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_ctermid — Возвращает путь управляющего терминала

Описание

posix_ctermid(): string|false

Возвращает переменную типа 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 функции, завершившейся неудачей


Determine accessibility of a file

  • « posix_ctermid
  • posix_errno »
  • PHP Manual
  • POSIX Функции
  • Determine accessibility of a file

posix_eaccess

(PHP 8 >= 8.3.0)

posix_eaccess — Determine accessibility of a file

Описание

posix_eaccess(string $filename, int $flags = 0): bool

posix_eaccess() checks the effective user's permission of a file

Список параметров

filename

The name of a file to be tested.

flags

A mask consisting of one or more of POSIX_F_OK, POSIX_R_OK, POSIX_W_OK and POSIX_X_OK.

POSIX_R_OK, POSIX_W_OK and POSIX_X_OK request checking whether the file exists and has read, write and execute permissions, respectively. POSIX_F_OK just requests checking for the existence of the file.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.3.0 | Checks the effective user/group for a file, differing from posix_access() which checks from the real user/group.

Примеры

Пример #1 posix_eaccess() example

This example will check if the $file is readable and writable, otherwise will print an error message.

<?php

$file = 'some_file';

if (posix_eaccess($file, POSIX_R_OK | POSIX_W_OK)) {
echo 'The file is readable and writable!';

} else {
$error = posix_get_last_error();

echo "Error $error: " . posix_strerror($error);
}

?>

Примечания

Смотрите также

  • posix_get_last_error() - Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей
  • posix_strerror() - Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки
  • posix_access() - Определяет доступность файла


Псевдоним posix_get_last_error

  • « posix_eaccess
  • posix_fpathconf »
  • PHP Manual
  • POSIX Функции
  • Псевдоним posix_get_last_error

posix_errno

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

posix_errno — Псевдоним posix_get_last_error()

Описание

Функция является псевдонимом: posix_get_last_error().


Returns the value of a configurable limit

  • « posix_errno
  • posix_get_last_error »
  • PHP Manual
  • POSIX Функции
  • Returns the value of a configurable limit

posix_fpathconf

(PHP 8 >= 8.3.0)

posix_fpathconf — Returns the value of a configurable limit

Описание

posix_fpathconf(resource|int $file_descriptor, int $name): int|false

Returns the value of a configurable limit from name for a file descriptor resource

Список параметров

file_descriptor

Файловый дескриптор, который ожидается в виде или ресурса resource или целого числа int. Под int подразумевается файловый дескриптор, который можно передать непосредственно в базовый системный вызов.

name

The name of the configurable limit, one of the following. POSIX_PC_LINK_MAX, POSIX_PC_MAX_CANON POSIX_PC_MAX_INPUT, POSIX_PC_NAME_MAX POSIX_PC_PATH_MAX, POSIX_PC_PIPE_BUF POSIX_PC_CHOWN_RESTRICTED, POSIX_PC_NO_TRUNC POSIX_PC_ALLOC_SIZE_MIN, POSIX_PC_SYMLINK_MAX

Возвращаемые значения

Returns the configurable limit or false.

Ошибки

Throws a ValueError when resource is invalid.

Примеры

Пример #1 posix_fpathconf() example

This example will get the max path name's length in bytes for the current dir.

<?php
$fd = fopen(__DIR__, "r");
echo posix_fpathconf($fd, POSIX_PC_PATH_MAX);
?>

Результат выполнения данного примера:

4096

Примечания

Смотрите также

  • posix_pathconf() - Returns the value of a configurable limit


Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей

  • « posix_fpathconf
  • posix_getcwd »
  • PHP Manual
  • POSIX Функции
  • Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей

posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

posix_get_last_error — Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей

Описание

posix_get_last_error(): 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, PHP 8)

posix_getcwd — Возвращает путь текущей директории

Описание

posix_getcwd(): string|false

Возвращает абсолютный путь рабочей директории выполняемого скрипта. В случае возникновения ошибки будет установлен её номер, который может быть обработан с помощью 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, PHP 8)

posix_getegid — Возвращает эффективный идентификатор группы текущего процесса EGID

Описание

posix_getegid(): int

Возвращает эффективной идентификатор группы текущего процесса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число типа int соответствующее эффективному идентификатору группы.

Примеры

Пример #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, PHP 8)

posix_geteuid — Возвращает эффективный идентификатор пользователя текущего процесса EUID

Описание

posix_geteuid(): int

Возвращает число, соответствующее эффективному идентификатору пользователя текущего процесса. Посмотрите функцию posix_getpwuid() для получения информации как преобразовать данное число в имя пользователя.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ID пользователя как int

Примеры

Пример #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, PHP 8)

posix_getgid — Возвращает действительный ID группы текущего процесса GID

Описание

posix_getgid(): int

Возвращает число, соответствующее действительному ID группы текущего процесса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает int, соответствующее действительному 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, PHP 8)

posix_getgrgid — Возвращает информацию о группе по её ID

Описание

posix_getgrgid(int $group_id): array|false

Возвращает информацию о группе, используя её ID.

Список параметров

group_id

Идентификатор группы.

Возвращаемые значения

Массив со следующими элементами:

Массив с информацией о группе
Элемент | Описание
name | Элемент name содержит имя группы. Это короткий, обычно менее 16 символов "дескриптор" группы, не являющийся полным именем группы.
passwd | Элемент passwd содержит пароль группы в зашифрованном виде. Часто, например в системах, использующих "shadow" файлы для хранения информации о паролях, это поле содержит строку из звёздочек.
gid | Элемент содержит ID группы и должен соответствовать group_id параметру, используемому при вызове функции. Данный элемент является избыточным.
members | Этот элемент состоит из array, содержащего string. Значениями данного массива являются имена членов данной группы.
Функция возвращает false в случае возникновения ошибки.

Примеры

Пример #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() - Возвращает информацию о файле
  • POSIX руководство GETGRNAM(3)


Возвращает информацию о группе, используя её имя

  • « posix_getgrgid
  • posix_getgroups »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о группе, используя её имя

posix_getgrnam

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getgrnam — Возвращает информацию о группе, используя её имя

Описание

posix_getgrnam(string $name): array|false

Возвращает информацию о группе, используя её имя.

Список параметров

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() - Возвращает информацию о файле
  • POSIX руководство GETGRNAM(3)


Возвращает список групп для текущего процесса

  • « posix_getgrnam
  • posix_getlogin »
  • PHP Manual
  • POSIX Функции
  • Возвращает список групп для текущего процесса

posix_getgroups

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getgroups — Возвращает список групп для текущего процесса

Описание

posix_getgroups(): array|false

Возвращает список групп для текущего процесса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает числовой массив, содержащий список идентификаторов групп для текущего процесса или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

posix_getlogin — Возвращает логин владельца процесса

Описание

posix_getlogin(): string|false

Возвращает логин пользователя, являющегося владельцем данного процесса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логин пользователя как переменную типа string или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

posix_getpgid — Возвращает ID группы текущего процесса для менеджера задач

Описание

posix_getpgid(int $process_id): int|false

Возвращает идентификатор группы текущего процесса. process_id или false в случае возникновения ошибки.

Список параметров

process_id

Идентификатор текущего процесса.

Возвращаемые значения

Возвращает идентификатор как число типа int.

Примеры

Пример #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, PHP 8)

posix_getpgrp — Возвращает идентификатор группы текущего процесса

Описание

posix_getpgrp(): int

Возвращает идентификатор группы текущего процесса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор как int.

Смотрите также

  • POSIX.1 и getpgrp(2) руководства для POSIX систем для получения более подробной информации о группах процессов.


Возвращает идентификатор текущего процесса

  • « posix_getpgrp
  • posix_getppid »
  • PHP Manual
  • POSIX Функции
  • Возвращает идентификатор текущего процесса

posix_getpid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getpid — Возвращает идентификатор текущего процесса

Описание

posix_getpid(): int

Возвращает идентификатор текущего процесса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор как int.

Примеры

Пример #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, PHP 8)

posix_getppid — Возвращает идентификатор родительского процесса

Описание

posix_getppid(): int

Возвращает идентификатор родительского процесса по отношению к текущему процессу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор процесса как int.

Примеры

Пример #1 Пример использования posix_getppid()

<?php
echo posix_getppid(); //8259
?>


Возвращает информацию о пользователе по его имени

  • « posix_getppid
  • posix_getpwuid »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о пользователе по его имени

posix_getpwnam

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getpwnam — Возвращает информацию о пользователе по его имени

Описание

posix_getpwnam(string $username): array|false

Возвращает массив (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, PHP 8)

posix_getpwuid — Возвращает информацию о пользователе, используя его ID

Описание

posix_getpwuid(int $user_id): array|false

Возвращает array с информацией о пользователе, используя идентификатор пользователя.

Список параметров

user_id

Идентификатор пользователя.

Возвращаемые значения

Возвращает ассоциативный массив со следующими элементами:

Массив с информацией о пользователе
Элемент | Описание
name | Элемент name содержит имя пользователя. Это короткий, обычно менее 16 символов "дескриптор" пользователя, не являющийся фактическим полным именем пользователя.
passwd | Элемент passwd содержит пароль группы в зашифрованном виде. Часто, например в системах, использующих "shadow" файлы для хранения информации о паролях, это поле содержит звёздочку.
uid | Числовой идентификатор пользователя, должен совпадать с параметром user_id, переданном при вызове функции. Является избыточным.
gid | Идентификатор группы пользователя. Используйте функцию posix_getgrgid() для получения имени группы и списка пользователей- её членов.
gecos | GECOS является устаревшим членом, который указывает на информационное поле в системе пакетной обработки Honeywell. Однако, это поле существует, и его содержимое было формализовано в стандарте POSIX. Это поле содержит список, разделённый запятыми, и содержащий в себе полное имя пользователя, рабочий телефон, номер офиса и домашний телефон. В большинстве систем доступно только полное имя пользователя.
dir | Этот элемент содержит абсолютный путь к домашней директории пользователя.
shell | Элемент shell содержит абсолютный путь к исполняемому файлу командной оболочки пользователя по умолчанию.
Функция возвращает false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

posix_getrlimit — Возвращает информацию об ограничениях системных ресурсов

Описание

posix_getrlimit(?int $resource = null): array|false

posix_getrlimit() возвращает array с информацией о текущих мягких и жёстких ограничениях системных ресурсов.

С каждым ресурсом ассоциированы свои мягкие и жёсткие ограничения. Мягкие ограничения — это величина, которую ядро обещает обеспечить ресурсу. Жёсткие ограничения — это величина, характеризующая потолок мягких ресурсов. Непривилегированный процесс может управлять только своими мягкими ограничениями, выставляя их от 0 до величины жёсткого ограничения.

Список параметров

resource

Если указано значение null, то будут найдены все ограничения ресурсов. В противном случае будут возвращены только ограничения предоставленного типа ресурса.

Возвращаемые значения

Возвращает ассоциативный array, каждый элемент которого соответствует определённому ограничению. Каждый лимит имеет мягкое и жёсткое ограничения.

Список возможных ограничений
Ограничение | Описание ограничения
core | Максимальный размер системного файла. В случае некорректного завершения программы, операционная система завершает этот процесс и создаёт системный файл с дампом состояния программы, чтобы программисты могли разобраться в причинах произошедшего. Если данное ограничение установлено в 0, то системные файлы не создаются. Если размер системного файла превышает этот предел, то он обрезается до указанного размера.
totalmem | Максимальный размер памяти, доступной процессу, в байтах.
virtualmem | Максимальный размер виртуальной памяти, доступной процессу, в байтах.
data | Максимальный размер сегмента данных для процесса, в байтах.
stack | Максимальный размер стека процесса в байтах.
rss | Максимальное количество виртуальных страниц в оперативной памяти
maxproc | Максимальное количество процессов, которое может быть создано для отдельного действительного ID пользователя, вызвавшего процесс.
memlock | Максимальный объем памяти в байтах, который может быть заблокирован в RAM
cpu | Количество процессорного времени, доступного для использования в CPU.
filesize | Максимальный размер сегмента данных для процесса, в байтах.
openfiles | На один больше, чем доступное максимальное количество открытых файловых дескрипторов.
Функция возвращает false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.3.0 | Добавлен необязательный параметр resource.

Примеры

Пример #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, PHP 8)

posix_getsid — Возвращает текущий SID процесса

Описание

posix_getsid(int $process_id): int|false

Возвращает идентификатор сессии процесса process_id. Сессионным идентификатором процесса является идентификатор процесса лидера сеанса.

Список параметров

process_id

Идентификатор процесса. Если установлено в 0, подразумевается текущий процесс. Если передан некорректный process_id, то будет возвращено false. Также будет установлен номер ошибки, который можно обработать с помощью функции posix_get_last_error().

Возвращаемые значения

Возвращает идентификатор как int или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

posix_getuid — Возвращает фактический идентификатор пользователя текущего процесса UID

Описание

posix_getuid(): int

Возвращает число, соответствующее действительному ID пользователю текущего процесса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ID пользователя как int

Примеры

Пример #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, PHP 8)

posix_initgroups — Определяет уровень доступа для группы

Описание

posix_initgroups(string $username, int $group_id): bool

Определяет уровень доступа группы для пользователя, указанного в параметрах.

Список параметров

username

Имя пользователя, для которого определяется уровень доступа.

group_id

Идентификатор базовой группы из файла password.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • Руководство Unix initgroups(3).


Определяет является ли файловый дескриптор интерактивным терминалом

  • « posix_initgroups
  • posix_kill »
  • PHP Manual
  • POSIX Функции
  • Определяет является ли файловый дескриптор интерактивным терминалом

posix_isatty

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_isatty — Определяет является ли файловый дескриптор интерактивным терминалом

Описание

posix_isatty(resource|int $file_descriptor): bool

Определяет является ли файловый дескриптор file_descriptor ссылкой на валидный терминал.

Список параметров

file_descriptor

Файловый дескриптор, который ожидается в виде или ресурса resource или целого числа int. Под int подразумевается файловый дескриптор, который можно передать непосредственно в базовый системный вызов.

Возвращаемые значения

Возвращает true если file_descriptor является открытым файловым дескриптором, связанным с терминалом и false в остальных случаях.

Список изменений

Версия | Описание
8.3.0 | Ошибки уровня E_WARNING теперь выдаются при преобразованиях целых чисел в соответствии с обычной семантикой преобразования типов PHP.

Смотрите также

  • posix_ttyname() - Определяет имя терминального устройства
  • stream_isatty() - Проверяет, является ли поток TTY


Отправляет сигнал соответствующему процессу

  • « posix_isatty
  • posix_mkfifo »
  • PHP Manual
  • POSIX Функции
  • Отправляет сигнал соответствующему процессу

posix_kill

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_kill — Отправляет сигнал соответствующему процессу

Описание

posix_kill(int $process_id, int $signal): bool

Отправляет сигнал signal процессу с идентификатором process_id.

Список параметров

process_id

Идентификатор процесса.

signal

Одна из 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, PHP 8)

posix_mkfifo — Создаёт специальный fifo файл (именованный канал- pipe)

Описание

posix_mkfifo(string $filename, int $permissions): bool

posix_mkfifo() создаёт специальный FIFO файл, который существует в файловой системе и выступает в качестве двунаправленной связи для процессов.

Список параметров

filename

Путь к FIFO файлу.

permissions

Второй параметр permissions должен быть представлен в восьмеричной нотации (например 0644). Это уровень прав для вновь созданного FIFO файла, также зависит от настроек текущего umask(). Права на созданный файл будут определяться как результат (mode & ~umask).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Создаёт специальный или обычный файл (POSIX.1)

  • « posix_mkfifo
  • posix_pathconf »
  • PHP Manual
  • POSIX Функции
  • Создаёт специальный или обычный файл (POSIX.1)

posix_mknod

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

posix_mknod — Создаёт специальный или обычный файл (POSIX.1)

Описание

posix_mknod(
string $filename,
int $flags,
int $major = 0,
int $minor = 0
): bool

Создаёт специальный или обычный файл.

Список параметров

filename

Путь и имя создаваемого файла

flags

Данный параметр получается с помощью побитового ИЛИ между типом файла (одной из следующих констант: 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)


Returns the value of a configurable limit

  • « posix_mknod
  • posix_setegid »
  • PHP Manual
  • POSIX Функции
  • Returns the value of a configurable limit

posix_pathconf

(PHP 8 >= 8.3.0)

posix_pathconf — Returns the value of a configurable limit

Описание

posix_pathconf(string $path, int $name): int|false
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Returns the value of a configurable limit from name for a file

Список параметров

path

The name of the file whose limit you want to get.

name

The name of the configurable limit, one of the following. POSIX_PC_LINK_MAX, POSIX_PC_MAX_CANON POSIX_PC_MAX_INPUT, POSIX_PC_NAME_MAX POSIX_PC_PATH_MAX, POSIX_PC_PIPE_BUF POSIX_PC_CHOWN_RESTRICTED, POSIX_PC_NO_TRUNC POSIX_PC_ALLOC_SIZE_MIN, POSIX_PC_SYMLINK_MAX

Возвращаемые значения

Returns the configurable limit or false.

Ошибки

Throws a ValueError when path is empty.

Примеры

Пример #1 posix_pathconf() example

This example will get the max path name's length in bytes for the tmp dir.

<?php
echo posix_pathconf(sys_get_temp_dir(), POSIX_PC_PATH_MAX);
?>

Результат выполнения данного примера:

4096

Примечания

Смотрите также

  • posix_fpathconf() - Returns the value of a configurable limit


Устанавливает эффективный идентификатор группы для текущего процесса EGID

  • « posix_pathconf
  • posix_seteuid »
  • PHP Manual
  • POSIX Функции
  • Устанавливает эффективный идентификатор группы для текущего процесса EGID

posix_setegid

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

posix_setegid — Устанавливает эффективный идентификатор группы для текущего процесса EGID

Описание

posix_setegid(int $group_id): bool

Устанавливает эффективный идентификатор группы для текущего процесса. Это привилегированная функция и требует соответствующих прав (как правило прав суперпользователя root) в системе, чтобы иметь возможность выполнять её.

Список параметров

group_id

Устанавливаемый эффективный идентификатор группы для текущего процесса

Возвращаемые значения

Возвращает 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, PHP 8)

posix_seteuid — Устанавливает эффективный идентификатор пользователя для текущего процесса EUID

Описание

posix_seteuid(int $user_id): bool

Устанавливает эффективный идентификатор пользователя. Это привилегированная функция и требует соответствующих прав (как правило прав суперпользователя root) чтобы иметь возможность выполнить её.

Список параметров

user_id

Устанавливаемый идентификатор пользователя.

Возвращаемые значения

Возвращает 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, PHP 8)

posix_setgid — Устанавливает идентификатор группы для текущего процесса GID

Описание

posix_setgid(int $group_id): bool

Устанавливает фактический идентификатор группы текущего процесса. Это привилегированная функция и требует соответствующих прав (обычно прав суперпользователя root) в системе, чтобы иметь возможность выполнить её. Правильным является следующий порядок вызова функций: сначала posix_setgid(), затем posix_setuid().

Замечание:

Если функция будет вызвана суперпользователем, то также будет установлен и эффективный идентификатор группы пользователя.

Список параметров

group_id

Идентификатор группы.

Возвращаемые значения

Возвращает 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, PHP 8)

posix_setpgid — Устанавливает идентификатор группы процесса для менеджера задач

Описание

posix_setpgid(int $process_id, int $process_group_id): bool

Добавляет к процессу process_id идентификатор группы process_group_id.

Список параметров

process_id

Идентификатор процесса.

process_group_id

Идентификатор группы процесса.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • Для получения более полной информации о процессах и управлении заданиями обратитесь к POSIX.1 и setsid(2) руководству в POSIX системах.


Устанавливает пределы системных ресурсов

  • « posix_setpgid
  • posix_setsid »
  • PHP Manual
  • POSIX Функции
  • Устанавливает пределы системных ресурсов

posix_setrlimit

(PHP 7, PHP 8)

posix_setrlimit — Устанавливает пределы системных ресурсов

Описание

posix_setrlimit(int $resource, int $soft_limit, int $hard_limit): bool

posix_setrlimit() устанавливает жёсткие и мягкие пределы заданных системных ресурсов.

С каждым ресурсом ассоциированы свои мягкие и жёсткие ограничения. Мягкие ограничения — это величина, которую ядро обещает обеспечить ресурсу. Жёсткие ограничения — это величина, характеризующая потолок мягких ресурсов. Непривилегированный процесс может управлять только своими мягкими ограничениями, выставляя их от 0 до величины жёсткого ограничения.

Список параметров

resource

Константа предела ресурса отвечающая за предел, который должен быть установлен.

soft_limit

Мягкий предел, любой требуемый предел, или POSIX_RLIMIT_INFINITY.

hard_limit

Жёсткий предел, любой требуемый предел, или 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, PHP 8)

posix_setsid — Делает текущий процесс лидером сессии

Описание

posix_setsid(): int

Делает текущий процесс лидером сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор сессии или -1 в случае возникновения ошибки.

Смотрите также

  • Стандарт POSIX.1 руководство по setsid(2) в POSIX совместимых системах для получения более полной информации о группах процессов и управлении заданиями.


Устанавливает UID текущего процесса

  • « posix_setsid
  • posix_strerror »
  • PHP Manual
  • POSIX Функции
  • Устанавливает UID текущего процесса

posix_setuid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_setuid — Устанавливает UID текущего процесса

Описание

posix_setuid(int $user_id): bool

Устанавливает фактический идентификатор пользователя текущего процесса. Это привилегированный процесс и требует соответствующих прав (обычно прав суперпользователя root) в системе для возможности выполнить эту функцию.

Список параметров

user_id

Идентификатор пользователя.

Возвращаемые значения

Возвращает 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_sysconf »
  • PHP Manual
  • POSIX Функции
  • Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки

posix_strerror

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

posix_strerror — Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки

Описание

posix_strerror(int $error_code): string

Возвращает POSIX системное сообщение об ошибке, связанное с полученным в параметре error_code номером. Вы можете получить параметр error_code с помощью вызова функции posix_get_last_error().

Список параметров

error_code

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 функции, завершившейся неудачей


Returns system runtime information

  • « posix_strerror
  • posix_times »
  • PHP Manual
  • POSIX Функции
  • Returns system runtime information

posix_sysconf

(PHP 8 >= 8.3.0)

posix_sysconf — Returns system runtime information

Описание

posix_sysconf(int $conf_id): int

Returns system runtime information.

Список параметров

conf_id

Identifier of the variable with the following constants POSIX_SC_ARG_MAX, POSIX_SC_PAGESIZE POSIX_SC_NPROCESSORS_CONF, POSIX_SC_NPROCESSORS_ONLN

Возвращаемые значения

Returns the numeric value related to conf_id

Примеры

Пример #1 posix_sysconf() example

Returns the number of active cpus.

<?php
echo posix_sysconf(POSIX_SC_NPROCESSORS_ONLN);
?>

Результат выполнения данного примера:

2


Возвращает информацию об использовании процессорного времени

  • « posix_sysconf
  • posix_ttyname »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию об использовании процессорного времени

posix_times

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_times — Возвращает информацию об использовании процессорного времени

Описание

posix_times(): array|false

Возвращает информацию об уровне загрузки CPU.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив строк с информацией об текущем использовании CPU, который включает следующее

  • ticks - число тактов, прошедшее с момента перезагрузки.
  • utime - время пользователя, затраченное текущим процессом.
  • stime - системное время, затраченное текущим процессом.
  • cutime - время пользователя, затраченное текущим процессом и его дочерними процессами.
  • cstime - системное время, затраченное текущим процессом и его дочерними процессами..
Функция возвращает false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

posix_ttyname — Определяет имя терминального устройства

Описание

posix_ttyname(resource|int $file_descriptor): string|false

Возвращает string, содержащую абсолютный путь до текущего терминального устройства, которое открыто и связано с файловым дескриптором file_descriptor.

Список параметров

file_descriptor

Файловый дескриптор, который ожидается в виде или ресурса resource или целого числа int. Под int подразумевается файловый дескриптор, который можно передать непосредственно в базовый системный вызов.

Возвращаемые значения

В случае успешного выполнения возвращает строку (string), содержащую абсолютный путь до терминала, связанного с файловым дескриптором file_descriptor. В случае неудачи возвращает false

Ошибки

При недопустимых целочисленных значениях параметра file_descriptor выдаётся ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.3.0 | Ошибки уровня E_WARNING теперь выдаются при преобразованиях целых чисел в соответствии с обычной семантикой преобразования типов PHP.
8.3.0 | При недопустимых целочисленных значениях параметра file_descriptor теперь выдаётся ошибка уровня E_WARNING.

Смотрите также

  • posix_isatty() - Определяет является ли файловый дескриптор интерактивным терминалом
  • stream_isatty() - Проверяет, является ли поток TTY


Возвращает информацию о системе

  • « posix_ttyname
  • Запуск программы »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о системе

posix_uname

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_uname — Возвращает информацию о системе

Описание

posix_uname(): array|false

Возвращает информацию о системе.

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.

Функция возвращает false в случае возникновения ошибки.

Примеры

Пример #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
  • Запуск программы
  • Предопределённые константы

Предопределённые константы

Данный модуль не определяет никакие константы.


Функции запуска программ

Примечания

Внимание

Открытые файлы с блокировкой (особенно открытые сессии) должны быть закрыты до выполнения программы в фоне.

Смотрите также

Эти функции также тесно связаны с оператором обратные кавычки (``).

Содержание

  • 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, PHP 8)

escapeshellarg — Экранировать строку для того, чтобы она могла быть использована как аргумент командной строки

Описание

escapeshellarg(string $arg): string

Функция escapeshellarg() добавляет одинарные кавычки вокруг строки и кавычек и экранирует любые существующие одинарные кавычки, позволяя вам передать строку непосредственно в функцию оболочки и рассматривать её как один безопасный аргумент. Эта функция должна использоваться для того, чтобы экранировать отдельные аргументы для функций оболочки, полученные из пользовательского ввода. Экранирование аргумента необходимо в таких функциях оболочки как exec(), system() и оператор "обратный апостроф".

В Windows escapeshellarg() заменяет восклицательный знак, знак процента (позднее связывание переменных) и двойные кавычки на пробелы и добавляет двойные кавычки вокруг строки. Кроме того, каждая серия последовательных обратных слешей (\) экранируется одним дополнительным обратным слешем.

Список параметров

arg

Аргумент, который будет экранирован.

Возвращаемые значения

Экранированная строка.

Примеры

Пример #1 Пример использования escapeshellarg()

<?php
system('ls '.escapeshellarg($dir));
?>

Смотрите также

  • escapeshellcmd() - Экранировать метасимволы командной строки
  • exec() - Выполнить внешнюю программу
  • popen() - Открывает файловый указатель процесса
  • system() - Выполнить внешнюю программу и отобразить вывод
  • Оператор исполнения


Экранировать метасимволы командной строки

  • « escapeshellarg
  • exec »
  • PHP Manual
  • Функции запуска программ
  • Экранировать метасимволы командной строки

escapeshellcmd

(PHP 4, PHP 5, PHP 7, PHP 8)

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().

Внимание

Пробелы не будут экранированы с помощью escapeshellcmd(), что может быть проблематичным в Windows с такими путями, как: C:\Program Files\ProgramName\program.exe. Можно уменьшить проблему, используя следующий фрагмент кода:

<?php
$cmd = preg_replace('`(?<!^) `', '^ ', escapeshellcmd($cmd));

Смотрите также

  • escapeshellarg() - Экранировать строку для того, чтобы она могла быть использована как аргумент командной строки
  • exec() - Выполнить внешнюю программу
  • popen() - Открывает файловый указатель процесса
  • system() - Выполнить внешнюю программу и отобразить вывод
  • Оператор исполнения


Выполнить внешнюю программу

  • « escapeshellcmd
  • passthru »
  • PHP Manual
  • Функции запуска программ
  • Выполнить внешнюю программу

exec

(PHP 4, PHP 5, PHP 7, PHP 8)

exec — Выполнить внешнюю программу

Описание

exec(string $command, array &$output = null, int &$result_code = null): string|false

exec() выполняет команду command.

Список параметров

command

Команда, которая будет исполнена.

output

Если параметр output указан, то массив будет заполнен строками вывода программы. Завершающие пробелы, такие как \n, не будут включены в массив. Обратите внимание, что если массив уже содержит какие-либо элементы, то exec() добавит новые элементы в конец массива. Если же вы не хотите, чтобы функция добавляла новые элементы в конец, вызовите unset() на этом массиве, прежде чем передать его в exec().

result_code

Если аргумент result_code присутствует вместе с output, тогда статус возврата выполненной команды будет записан в этой переменной.

Возвращаемые значения

Последняя строка из результата команды. Если требуется выполнить команду и получить все данные команды без какой-либо обработки, используйте функцию passthru().

Возвращает false в случае возникновения ошибки.

Для получения результата выполнения команды, убедитесь, что параметр output инициализирован и используется.

Ошибки

Выдаёт ошибку уровня E_WARNING, если функция exec() не может выполнить команду command.

Выбрасывает исключение ValueError, если параметр command не указан или содержит нулевые байты.

Список изменений

Версия | Описание
8.0.0 | Если параметр command не указан или содержит нулевые байты, функция exec() теперь выбрасывает исключение ValueError; ранее она выдавала ошибку уровня E_WARNING и возвращала false.

Примеры

Пример #1 Пример функции exec()

<?php
// выводит имя пользователя, от имени которого запущен процесс php/httpd
// (применимо к системам с командой "whoami" в системном пути)
$output=null;
$retval=null;
exec('whoami', $output, $retval);
echo "Вернёт статус $retval и значение:\n";
print_r($output);
?>

Результатом выполнения данного примера будет что-то подобное:

Вернёт статус 0 и значение:
Array
(
    [0] => cmb
)

Примечания

Внимание

Если вы собираетесь передавать функции пользовательские данные, используйте функции escapeshellarg() или escapeshellcmd() для того, чтобы пользователи не смогли обмануть систему, запустив произвольную команду.

Замечание:

Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.

Замечание:

В Windows функция exec() стартует cmd.exe для запуска команды. Если вы хотите запустить внешнюю программу без запуска cmd.exe, то используйте функцию proc_open() с установленной опцией bypass_shell.

Смотрите также

  • system() - Выполнить внешнюю программу и отобразить вывод
  • passthru() - Выполнить внешнюю программу и отобразить необработанный вывод
  • escapeshellcmd() - Экранировать метасимволы командной строки
  • pcntl_exec() - Запустить указанную программу в области текущего процесса
  • Оператор исполнения


Выполнить внешнюю программу и отобразить необработанный вывод

  • « exec
  • proc_close »
  • PHP Manual
  • Функции запуска программ
  • Выполнить внешнюю программу и отобразить необработанный вывод

passthru

(PHP 4, PHP 5, PHP 7, PHP 8)

passthru — Выполнить внешнюю программу и отобразить необработанный вывод

Описание

passthru(string $command, int &$result_code = null): ?false

Функция passthru() похожа на функцию exec() в том, что она выполняет команду command. Эта функция должна быть использована вместо функции exec() или system(), когда вывод команды Unix представляет собой двоичные данные, которые необходимо передать непосредственно в браузер. Стандартное использование этой функции - выполнение таких утилит как pbmplus, которые выводят непосредственно поток изображения. Установив Content-type в image/gif и затем вызвав программу pbmplus для вывода gif, вы можете создать PHP-скрипты, которые выводят изображения напрямую в браузер.

Список параметров

command

Команда, которая будет выполнена.

result_code

Если присутствует аргумент result_code, то код возврата Unix-команды будет помещён здесь.

Возвращаемые значения

Возвращает null в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выдаёт ошибку уровня E_WARNING, если функция passthru() не может выполнить команду command.

Выбрасывает исключение ValueError, если параметр command не указан или содержит нулевые байты.

Список изменений

Версия | Описание
8.0.0 | Если параметр command не указан или содержит нулевые байты, функция passthru() теперь выбрасывает исключение ValueError; ранее она выдавала ошибку уровня E_WARNING и возвращала false.

Примечания

Внимание

Если вы собираетесь передавать функции пользовательские данные, используйте функции escapeshellarg() или escapeshellcmd() для того, чтобы пользователи не смогли обмануть систему, запустив произвольную команду.

Замечание:

Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.

Смотрите также

  • 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, PHP 8)

proc_close — Завершить процесс, открытый proc_open() и вернуть код возврата этого процесса

Описание

proc_close(resource $process): int

Функция proc_close() похожа на функцию pclose(), за исключением того, что она работает только с процессами, открытыми при помощи функции proc_open(). Функция proc_close() ожидает завершения процесса и возвращает его код возврата. Открытые каналы для этого процесса закрываются при вызове этой функции, чтобы избежать полной остановки программы: дочерний процесс не сможет завершиться, если есть открытые каналы.

Список параметров

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, PHP 8)

proc_get_status — Получить информацию о процессе, открытом proc_open()

Описание

proc_get_status(resource $process): array

proc_get_status() получает данные о процессе, открытом при помощи функции proc_open().

Список параметров

process

Дескриптор типа resource, открытый при помощи proc_open(), который будет исследоваться.

Возвращаемые значения

Массив (array) с полученной информацией. Получаемый массив содержит следующие элементы:

элемент | тип | описание
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, PHP 8)

proc_nice — Изменить приоритет текущего процесса

Описание

proc_nice(int $priority): bool

proc_nice() изменяет приоритет текущего процесса на значение, указанное в параметре priority. Положительное значение параметра priority будет уменьшать приоритет текущего процесса, а отрицательное значение параметра priority будет увеличивать приоритет.

Функция proc_nice() не связана с функцией proc_open() и к относящимся к ней функциям каким-либо образом.

Список параметров

priority

Новое значение приоритета процесса. Может отличаться на разных платформах.

В Unix, чем ниже эта величина, например -20, тем выше приоритет процесса.

В Windows параметр priority может принимать такие значения:

Класс приоритета | Допустимые значения
Высокий приоритет | priority < -9
Приоритет выше нормального | priority < -4
Нормальный приоритет | priority < 5 & priority > -5
Приоритет ниже нормального | priority > 5
Приоритет ожидания | priority > 9

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. В случае, если происходит ошибка, например, пользователь не имеет прав на изменение приоритета, также генерируется ошибка уровня E_WARNING.

Список изменений

Версия | Описание
7.2.0 | Эта функция стала доступна в Windows.

Примеры

Пример #1 Установка высокого приоритета с помощью proc_nice()

<?php
// Наивысший приоритет
proc_nice(-20);
?>

Примечания

Замечание: Доступность

Функция proc_nice() будет доступна только в том случае, если ваша операционная система её поддерживает. Поддержку 'nice' имеют: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3.

Замечание: Только Windows

В Windows эта функция изменяет приоритет текущего процесса, даже если PHP был собран как потокобезопасный.

Смотрите также

  • pcntl_setpriority() - Изменить приоритет процесса


Выполнить команду и открыть указатель на файл для ввода/вывода

  • « proc_nice
  • proc_terminate »
  • PHP Manual
  • Функции запуска программ
  • Выполнить команду и открыть указатель на файл для ввода/вывода

proc_open

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

proc_open — Выполнить команду и открыть указатель на файл для ввода/вывода

Описание

proc_open(
array|string $command,
array $descriptor_spec,
array &$pipes,
?string $cwd = null,
?array $env_vars = null,
?array $options = null
): resource|false

proc_open() аналогична popen(), но предоставляет намного больше контроля над выполнением программы.

Список параметров

command

Командная для выполнения, указанная как строка (string). Специальные символы должны быть должным образом экранированы, и должны применяться правильные кавычки.

Замечание: В Windows, если для bypass_shell не установлено значение true в options, command передаётся в cmd.exe (точнее, %ComSpec%) с флагом /c в виде строки без кавычек (т.е. точно так, как было задано в proc_open()). Это может привести к тому, что cmd.exe удалит заключающие из command (подробности смотрите в документации cmd.exe), приводя к неожиданному и потенциально даже опасному поведению, потому что сообщения об ошибках cmd.exe могут содержать (частично) переданный параметр command (смотрите пример ниже).

Начиная с PHP 7.4.0, command может передаваться как массив (array) параметров команды. В этом случае процесс будет открыт напрямую (не проходя через оболочку) и PHP позаботится об экранировании любого необходимого аргумента.

Замечание:

В Windows экранирование аргумента массива (array) элементов предполагает, что синтаксический анализ выполненной команды совместим с синтаксическим анализом аргументов командной строки, выполняемых средой выполнения VC.

descriptor_spec

Массив, ключи которого представляют собой номер дескриптора, а значение описывает, как PHP должен передать этот дескриптор дочернему процессу. 0 - stdin, 1 - stdout и 2 - stderr.

Каждый элемент может быть:

  • Массивом, описывающим канал (pipe) для передачи процессу. Первый элемент - это дескриптор типа, второй - настройка для выбранного типа. Возможные типы: pipe (второй элемент либо r для передачи процессу стороны канала для чтения, либо w для передачи стороны записи) и file (второй элемент - имя файла). Обратите внимание, что всё, кроме w, обрабатывается как r.
  • Ресурсом потока, представляющим дескриптор файла (например, открытый файл, сокет, STDIN).

Номера дескрипторов не ограничены только 0, 1 и 2 - вы можете назначить любой действительный номер дескриптора и он будет передан дочернему процессу. Это позволяет скрипту взаимодействовать с другими скриптами, работающими, как параллельные процессы. В частности, таким образом можно передавать данные, требующие защиты, в программы вроде PGP, GPG и openssl более безопасно. Также это может оказаться полезным для чтения статусной информации, предоставляемой этими программами на вспомогательных файловых дескрипторах.

pipes

Будет задан массивом указателей на файлы, соответствующие созданным каналам передачи данных PHP.

cwd

Рабочая директория команды. Это должен быть абсолютный путь к директории или null, если требуется использовать директорию по умолчанию (рабочая директория текущего процесса PHP).

env_vars

Массив переменных окружения для запускаемой команды или null, если требуется использовать то же самое окружение, что и у текущего PHP-процесса.

options

Позволяет задать дополнительные настройки. На данный момент поддерживаются следующие настройки:

  • suppress_errors (только для Windows): при установке в true не будут показываться ошибки, возникающие в ходе работы функции
  • bypass_shell (только для Windows): при установке в true процесс будет запущен в обход оболочки cmd.exe
  • blocking_pipes (только для Windows): принудительно блокировать поток при значении true
  • create_process_group (только для Windows): разрешить дочернему процессу обрабатывать CTRL события, если установлено значение true
  • create_new_console (только для Windows): новый процесс использует новую консоль, а не наследует консоль своего родителя

Возвращаемые значения

Возвращает ресурс, представляющий процесс. Этот ресурс необходимо освобождать функцией proc_close() по завершении работы с ним. В случае возникновения ошибки возвращает false.

Список изменений

Версия | Описание
7.4.4 | Добавлена опция create_new_console в параметр options.
7.4.0 | proc_open() теперь также принимает массив (array) в command.
7.4.0 | Добавлена опция create_process_group в параметр 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

Пример #2 proc_open() причуда в Windows

Хотя можно ожидать, что следующая программа будет искать в файле filename.txt текст search и выводить результаты, она ведёт себя несколько иначе.

<?php
$descriptorspec = [STDIN, STDOUT, STDOUT];
$cmd = '"findstr" "search" "filename.txt"';
$proc = proc_open($cmd, $descriptorspec, $pipes);
proc_close($proc);
?>

Результат выполнения данного примера:

'findstr" "search" "filename.txt' не распознается как внутренняя или внешняя команда,
работающая программа или пакетный файл.

Чтобы обойти это поведение, обычно достаточно передать command в дополнительных кавычках:

$cmd = '""findstr" "search" "filename.txt""';

Примечания

Замечание:

Совместимость с Windows: Дескрипторы дальше 2 (stderr) наследуются дочерними процессам, однако с тех пор как Windows не ассоциирует номера файловых дескрипторов с низкоуровневыми обработчиками, дочерние процессы не имеют (пока) к ним доступа. Это не относится к stdin, stdout и stderr.

Замечание:

Если нужен однонаправленный канал процесса, используйте функцию popen(), так как она значительно проще в использовании.

Смотрите также

  • popen() - Открывает файловый указатель процесса
  • exec() - Выполнить внешнюю программу
  • system() - Выполнить внешнюю программу и отобразить вывод
  • passthru() - Выполнить внешнюю программу и отобразить необработанный вывод
  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds
  • Оператор обратный апостроф


Уничтожить процесс, открытый при помощи функции proc_open

  • « proc_open
  • shell_exec »
  • PHP Manual
  • Функции запуска программ
  • Уничтожить процесс, открытый при помощи функции proc_open

proc_terminate

(PHP 5, PHP 7, PHP 8)

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.

Возвращаемые значения

Возвращает статус прекращения процесса, который был запущен.

Смотрите также

  • proc_open() - Выполнить команду и открыть указатель на файл для ввода/вывода
  • proc_close() - Завершить процесс, открытый proc_open и вернуть код возврата этого процесса
  • proc_get_status() - Получить информацию о процессе, открытом proc_open


Выполнить команду через оболочку и вернуть вывод в виде строки

  • « proc_terminate
  • system »
  • PHP Manual
  • Функции запуска программ
  • Выполнить команду через оболочку и вернуть вывод в виде строки

shell_exec

(PHP 4, PHP 5, PHP 7, PHP 8)

shell_exec — Выполнить команду через оболочку и вернуть вывод в виде строки

Описание

shell_exec(string $command): string|false|null

Функция идентична оператору с обратным апострофом.

Замечание:

В Windows нижележащий канал открывается в текстовом режиме, что может привести к сбою функции для двоичного вывода. В таком случае попробуйте вместо этого использовать popen().

Список параметров

command

Команда, которая будет выполнена.

Возвращаемые значения

Строка (string), содержащая вывод выполненной команды, false, если канал не может быть установлен или null в случае возникновения ошибки или отсутствии вывода команды.

Замечание:

Эта функция может вернуть null в двух случаях: если произошла ошибка или если выполняемая команда ничего не выводит. Не пользуйтесь этой функцией, для определения, успешно ли выполнилась команда. Вместо этого используйте exec(), так как она предоставляет возможность проверить код возврата.

Ошибки

Выдаётся ошибка уровня E_WARNING, когда канал не может быть установлен.

Примеры

Пример #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, PHP 8)

system — Выполнить внешнюю программу и отобразить вывод

Описание

system(string $command, int &$result_code = null): string|false

system() похожа на C-версию этой функции в том, что она выполняет указанную команду command и выводит её результат.

Вызов функции system() также пытается автоматически очистить буфер вывода веб-сервера после каждой строки вывода, если PHP работает как модуль сервера.

Если вам нужно выполнить команду и получить все данные из команды непосредственно без каких-либо препятствий, используйте функцию passthru().

Список параметров

command

Команда, которая будет выполнена.

result_code

Если передан аргумент result_code, то в эту переменную будет записан код возврата выполненной команды.

Возвращаемые значения

Возвращает последнюю строку вывода команды в случае успешного выполнения, и 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 зависнет вплоть до конца выполнения программы.

Смотрите также

  • exec() - Выполнить внешнюю программу
  • passthru() - Выполнить внешнюю программу и отобразить необработанный вывод
  • popen() - Открывает файловый указатель процесса
  • escapeshellcmd() - Экранировать метасимволы командной строки
  • pcntl_exec() - Запустить указанную программу в области текущего процесса
  • Оператор исполнения


parallel

  • Введение
  • Установка
  • Философия
  • Функциональный API
    • parallel\bootstrap — Начальная загрузка
    • parallel\run — Выполнение
  • parallel\Runtime — Класс parallel\Runtime
    • parallel\Runtime::__construct — Конструктор класса Runtime
    • parallel\Runtime::run — Выполнение
    • parallel\Runtime::close — Изящное соединение во время выполнения
    • parallel\Runtime::kill — Соединение во время выполнения
  • parallel\Future — Класс parallel\Future
    • parallel\Future::cancel — Прекращение
    • parallel\Future::cancelled — Определение состояния
    • parallel\Future::done — Определение состояния
    • parallel\Future::value — Разрешение
  • parallel\Channel — Класс parallel\Channel
    • parallel\Channel::__construct — Конструктор класса Channel
    • parallel\Channel::make — Доступ
    • parallel\Channel::open — Доступ
    • parallel\Channel::recv — Совместное использование
    • parallel\Channel::send — Совместное использование
    • parallel\Channel::close — Закрытие
  • parallel\Events — Класс parallel\Events
    • parallel\Events::setBlocking — Поведение
    • parallel\Events::setTimeout — Поведение
    • parallel\Events::setInput — Вход
    • parallel\Events::addChannel — Цели
    • parallel\Events::addFuture — Цели
    • parallel\Events::remove — Цели
    • parallel\Events::poll — Опрос
  • parallel\Events\Input — Класс parallel\Events\Input
    • parallel\Events\Input::add — Входы
    • parallel\Events\Input::clear — Входы
    • parallel\Events\Input::remove — Входы
  • parallel\Events\Event — Класс parallel\Events\Event
  • parallel\Events\Event\Type — Класс parallel\Events\Event\Type
  • parallel\Sync — Класс parallel\Sync
    • parallel\Sync::__construct — Конструктор класса
    • parallel\Sync::get — Доступ
    • parallel\Sync::set — Доступ
    • parallel\Sync::wait — Синхронизация
    • parallel\Sync::notify — Синхронизация
    • parallel\Sync::__invoke — Синхронизация


Введение

parallel - это модуль параллельного выполнения для PHP ? 7.2.0. Начиная с parallel 1.2.0, требуется PHP ? 8.0.0.

Краткое описание основных понятий параллельных процессов описано ниже, более подробную информацию можно найти в этом разделе руководства.

Runtime

parallel\Runtime представляет поток интерпретатора PHP. parallel\Runtime настроен с дополнительным файлом начальной загрузки, переданным в parallel\Runtime::__construct(), обычно это автозагрузчик или какая-либо другая процедура предварительной загрузки: файл начальной загрузки будет подключаться перед выполнением любой задачи.

После создания parallel\Runtime остаётся доступным до тех пор, пока он не будет закрыт, уничтожен или уничтожен обычными правилами области видимости объектов PHP. parallel\Runtime::run() позволяет программисту планировать задачи для параллельного выполнения. У parallel\Runtime расписание FIFO, задачи будут выполняться в том порядке, в котором они запланированы.

Функциональный API

parallel реализует функциональный API более высокого уровня поверх parallel\Runtime, который обеспечивает единую точку входа функции для выполнения параллельного кода с автоматическим планированием: parallel\run().

Задача

Задача - это просто замыкание (Closure), предназначенное для параллельного выполнения. Closure может содержать практически любую инструкцию, включая вложенные замыкания. Однако есть некоторые инструкции, которые запрещены в задачах:

  • yield

  • use by-reference

  • declare class

  • declare named function

Замечание:

Вложенные замыкания могут содержать "yield" или "use by-reference", но не должны содержать объявления классов или именованных функций.

Замечание:

Никакие инструкции не запрещены в файлах, которые может включать задача.

Фьючерс

parallel\Future используется для доступа к возвращаемому значению из задачи и предоставляет API для отмены задачи.

Канал

Задачу можно запланировать с аргументами, использовать переменные лексической области видимости (по значению) и вернуть значение (с помощью parallel\Future), но это разрешает только однонаправленную связь: Это позволяет программисту отправлять данные и извлекать данные из задачи, но не допускают двунаправленную связь между задачами. API parallel\Channel обеспечивает двунаправленную связь между задачами, parallel\Channel - это соединение типа сокета между задачами, которое программист может использовать для отправки и получения данных.

События

API parallel\Events реализует собственный цикл событий (Traversable) и метод parallel\Events::poll(). Это позволяет программисту работать с наборами каналов и/или фьючерсами. Программист просто добавляет каналы и фьючерсы в цикл событий, необязательно устанавливая вход для записи с помощью parallel\Events::setInput(), и входит в foreach: parallel будет читать и записывать объекты по мере их превращения. Доступно с получением объектов parallel\Events\Event, описывающих произошедшие операции.

Смотрите также

  • Философия


Установка

Требования

Для работы parallel требуется сборка PHP с включённым ZTS (Zend Thread Safety). Сделать это можно указав при компиляции ключ --enable-zts или на системах, отличных от Windows, до PHP 8.0.0, ключ --enable-maintainer-zts.

Предостережение

Zend Thread Safety нельзя включить после сборки; это вариант конфигурации во время сборки.

parallel следует собирать везде, где есть рабочий заголовок Posix Threads (pthread.h) и ZTS-сборка PHP, включая Windows (с использованием проекта pthread-w32 от redhat).

Установка

Выпуски parallel размещаются на PECL, а исходный код - на » GitHub, Самый простой способ установки - это обычный маршрут PECL: » https://pecl.php.net/package/parallel.

Пользователи Windows могут загрузить готовые двоичные файлы выпуска с сайта » PECL.

Предостережение

Пользователи Windows должны предпринять дополнительный шаг, добавив pthreadVC2.dll (распространяется вместе с выпусками Windows) в их PATH.


Философия

Раздел содержит основные принципы, важные для написания параллельного кода и некоторые подробности о внутренней реализации parallel.

Не общайтесь, разделяя память; вместо этого поделитесь памятью, с помощью общения.

Эта философия, которой придерживается parallel, берёт своё начало из Go, одной из самых популярных из используемых платформ для написания параллельного кода в настоящее время. Программисты на Go должны упорно трудиться, чтобы соответствовать этому идеалу: PHP и параллельный интерфейс делают всю тяжёлую работу за программиста, причём по умолчанию.

В традиционных моделях потоковой передачи, встречающихся в других языках, потоки обычно обмениваются данными друг с другом только благодаря тому факту, что они работают в одном и том же адресном пространстве. Программист должен использовать взаимное исключение, переменные условия и другие низкоуровневые примитивы потоковой передачи или синхронизации, чтобы обеспечить надлежащую передачу состояния и согласованность.

Когда обычная модель инвертирована, это означает, что потоки совместно используют память только в результате обмена данными (например, переменная передаётся по каналу).

Когда parallel передаёт переменную из одного потока в другой любым способом - аргументами задачи, возвратом через Future и каналами - она передаётся по значению. Во всех случаях, кроме небуферизованных каналов, переменная также буферизуется, поэтому она не может измениться (или быть уничтожена) до того, как она будет использована в любом потоке, в который передаётся переменная. Небуферизованное чтение по каналу - единственный случай, когда поток непосредственно читает память, выделенную другим потоком, это можно сделать безопасно, потому что поток, владеющий памятью, ожидает завершения чтения, прежде чем он сможет продолжить управлять им, и поток, которому не принадлежит память, читает по значению. Когда оба потока продолжают работу, они больше не разделяют память.

Это значительно упрощает написание параллельного кода и рассуждения о нём по сравнению с традиционной моделью многопоточности. Это означает, что программисту не нужно учитывать, что потоки могут одновременно управлять данными, потому что это невозможно.

Это также делает PHP идеальной платформой для реализации API параллельного кода на основе CSP (передача сообщений по каналам), поскольку сам PHP ничего не разделяет - потоки PHP по умолчанию работают в собственном виртуальном адресном пространстве и поэтому могут совместно использовать память только путём обмена данными.

У данных должен быть окончательный единственный владелец

Приближаясь к модели CSP в первый раз, программист, разбирающийся в традиционной модели потоковой передачи, может обнаружить, что ищет параллельные структуры данных, потому что это то, что они тоже используют: они передают общие объекты для управления.

Когда дело доходит до модели CSP, нет необходимости в том, чтобы структуры данных совместно использовались многими задачами и действительно, это проще, если это не так. Данные должны принадлежать одной задаче, изменения (или операции) в этой структуре данных должны передаваться по каналам и выполняться владельцем данных, успешное выполнение, ошибка или результат (состояние) изменения (или операции) передаётся обратно.

Опять же, природа PHP ничего не разделяет и природа параллельного копирования по значению помогают программисту достичь этой цели, никакие данные не будут переданы случайно, только в результате обмена данными.


Функциональный API

API parallel\Runtime обеспечивает высокую степень контроля для опытных программистов PHP и тех, кто хорошо знаком с написанием приложений, использующих параллельные процессы.

Функциональный API обеспечивает меньший контроль в обмен на возможность принимать решения для программиста:

  • все исполняемые среды выполнения загружаются одинаково

  • планирование определяется API, а не программистом

parallel\run() обеспечивает гарантию того, что задача начнёт выполняться параллельно, как только это разрешено ограничениями оборудования и операционной системы, без ненужного создания сред выполнения. Для большинства приложений следует отдавать предпочтение функциональному API.

Содержание

  • parallel\bootstrap — Начальная загрузка
  • parallel\run — Выполнение


Начальная загрузка

  • « Функциональный API
  • parallel\run »
  • PHP Manual
  • Функциональный API
  • Начальная загрузка

parallel\bootstrap

(1.0.0)

parallel\bootstrap — Начальная загрузка

Описание

parallel\bootstrap(string $file): void

Должен использовать предоставленный file для начальной загрузки всех сред выполнения, созданных для автоматического планирования с помощью parallel\run().

Список параметров

file

Путь к файлу для начальной загрузки всех сред выполнения.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Внимание

Выбрасывает parallel\Runtime\Error\Bootstrap, если этот процесс уже был ранее вызван.

Внимание

Выбрасывает parallel\Runtime\Error\Bootstrap, если вызывается после parallel\run().

Смотрите также

  • parallel\Runtime::run


Выполнение

  • « parallel\bootstrap
  • parallel\Runtime »
  • PHP Manual
  • Функциональный API
  • Выполнение

parallel\run

(1.0.0)

parallel\run — Выполнение

Описание

parallel\run(Closure $task): ?Future

Планирует task для выполнения в parallel.

parallel\run(Closure $task, array $argv): ?Future

Планирует task для выполнения в parallel, передавая argv во время выполнения.

Автоматическое планирование

Если \parallel\Runtime внутренне созданный и кешированный предыдущим вызовом parallel\run() бездействует, он будет использоваться для выполнения задачи. Если ни один \parallel\Runtime не бездействует, parallel создаст и сохранит в кеш \parallel\Runtime.

Замечание:

Объекты \parallel\Runtime, созданные программистом, не используются для автоматического планирования.

Список параметров

task

Замыкание (Closure) со специфическими характеристиками.

argv

Массив (array) аргументов с конкретными характеристиками, которые будут переданы task во время выполнения.

Характеристики задачи

Замыкания, запланированные для параллельного выполнения, не должны:

  • принимать или возвращать значения по ссылке
  • принимать или возвращать внутренние объекты (смотрите примечания)
  • выполнять ограниченный набор инструкций

В замыканиях, предназначенных для параллельного выполнения, запрещены следующие инструкции:

  • yield
  • use by-reference
  • declare class
  • declare named function

Замечание:

Вложенные замыкания могут использовать yield или передачу значения по ссылке, но не должны содержать объявления классов или именованных функций.

Замечание:

Никакие инструкции не запрещены в файлах, которые может включать задача.

Аргументы характеристик

Аргументы не должны:

  • содержать ссылки
  • содержать ресурсы
  • содержать внутренние объекты (смотрите примечания)

Замечание:

В случае ресурсов файлового потока ресурс будет преобразован в файловый дескриптор и передан как целое число (int), где это возможно, не поддерживается в Windows.

Примечания к внутренним объектам

Внутренние объекты обычно используют настраиваемую структуру, которую нельзя безопасно скопировать по значению, в PHP в настоящее время отсутствует механизм для этого (без сериализации), и поэтому могут использоваться только объекты, которые не используют настраиваемую структуру.

Некоторые внутренние объекты не используют настраиваемую структуру, например, parallel\Events\Event и поэтому могут использоваться совместно.

Замыкания - это особый вид внутреннего объекта, который поддерживает копирование по значению, поэтому может использоваться совместно.

Каналы играют ключевую роль в написании параллельного кода и при необходимости поддерживают одновременный доступ и выполнение, поэтому могут использоваться совместно.

Внимание

Пользовательский класс, расширяющий внутренний класс, может использовать настраиваемую структуру, определённую внутренним классом, и в этом случае они не могут быть безопасно скопированы по значению и поэтому не могут использоваться совместно.

Возвращаемые значения

Внимание

Нельзя игнорировать возвращаемый parallel\Future, если задача содержит оператор return или throw.

Исключения

Внимание

Выбрасывает parallel\Runtime\Error\Closed, если parallel\Runtime был закрыт.

Внимание

Выбрасывает parallel\Runtime\Error\IllegalFunction, если task является замыканием, созданным из внутренней функции.

Внимание

Выбрасывает parallel\Runtime\Error\IllegalInstruction, если task содержит недопустимые инструкции.

Внимание

Выбрасывает parallel\Runtime\Error\IllegalParameter, если task принимает или argv содержит недопустимые переменные.

Внимание

Выбрасывает parallel\Runtime\Error\IllegalReturn, если task возвращается некорректно.

Смотрите также

  • parallel\Runtime::run


Класс parallel\Runtime

(0.8.0)

Объекты во временя выполнения

Каждая среда выполнения представляет собой один поток PHP, поток создаётся (и загружается) при создании. Затем поток ожидает, пока задачи будут запланированы: запланированные задачи будут выполняться FIFO, а затем поток возобновит ожидание, пока не будут запланированы другие задачи или пока он не будет закрыт, убит или уничтожен в соответствии с обычными правилами области видимости объектов PHP.

Внимание

Когда среда выполнения уничтожается обычными правилами области видимости объектов PHP, она сначала выполняет все запланированные задачи и при этом блокирует добавление новых.

Начальная загрузка во время выполнения

Когда создаётся новая среда выполнения, она не разделяет код с потоком (или процессом), который её создал. Это означает, что в нём не загружены те же классы и функции, а также не установлен один и тот же автозагрузчик. В некоторых случаях желательна очень лёгкая среда выполнения, потому что задачи, которые будут запланированы, не нуждаются в доступе к коду в родительском потоке. В тех случаях, когда задачам нужен доступ к одному и тому же коду, достаточно установить автозагрузчик в качестве начальной загрузки.

Замечание:

Предварительная загрузка может использоваться вместе с параллельной, в этом случае предварительно загруженный код доступен без начальной загрузки.

Обзор классов

final class parallel\Runtime {
/* Создание */
public __construct()
public __construct(string $bootstrap)
/* Выполнение */
public run(Closure $task): ?Future
public run(Closure $task, array $argv): ?Future
/* Присоединение */
public close(): void
public kill(): void
}

Содержание

  • parallel\Runtime::__construct — Конструктор класса Runtime
  • parallel\Runtime::run — Выполнение
  • parallel\Runtime::close — Изящное соединение во время выполнения
  • parallel\Runtime::kill — Соединение во время выполнения


Конструктор класса Runtime

  • « parallel\Runtime
  • parallel\Runtime::run »
  • PHP Manual
  • parallel\Runtime
  • Конструктор класса Runtime

parallel\Runtime::__construct

(0.8.0)

parallel\Runtime::__construct — Конструктор класса Runtime

Описание

public parallel\Runtime::__construct()

Создаёт новую среду выполнения без начальной загрузки.

public parallel\Runtime::__construct(string $bootstrap)

Создаёт новую среду выполнения с начальной загрузкой.

Список параметров

bootstrap

Расположение файла начальной загрузки, обычно это автозагрузчик.

Ошибки

Внимание

Выбрасывает parallel\Runtime\Error, если поток не может быть создан.

Внимание

Выбрасывает parallel\Runtime\Bootstrap, если начальная загрузка завершилась с ошибкой.


Выполнение

  • « parallel\Runtime::__construct
  • parallel\Runtime::close »
  • PHP Manual
  • parallel\Runtime
  • Выполнение

parallel\Runtime::run

(0.8.0)

parallel\Runtime::run — Выполнение

Описание

public parallel\Runtime::run(Closure $task): ?Future

Планирует параллельное выполнение task.

public parallel\Runtime::run(Closure $task, array $argv): ?Future

Планирует параллельное выполнение task, передавая argv во время выполнения.

Список параметров

task

Замыкание (Closure) со специфическими характеристиками.

argv

Массив (array) аргументов с конкретными характеристиками, которые будут переданы task во время выполнения.

Характеристики задачи

Замыкания, запланированные для параллельного выполнения, не должны:

  • принимать или возвращать значения по ссылке
  • принимать или возвращать внутренние объекты (смотрите примечания)
  • выполнять ограниченный набор инструкций

В замыканиях, предназначенных для параллельного выполнения, запрещены следующие инструкции:

  • yield
  • use by-reference
  • declare class
  • declare named function

Замечание:

Вложенные замыкания могут использовать yield или передачу значения по ссылке, но не должны содержать объявления классов или именованных функций.

Замечание:

Никакие инструкции не запрещены в файлах, которые может включать задача.

Аргументы характеристик

Аргументы не должны:

  • содержать ссылки
  • содержать ресурсы
  • содержать внутренние объекты (смотрите примечания)

Замечание:

В случае ресурсов файлового потока ресурс будет преобразован в файловый дескриптор и передан как целое число (int), где это возможно, не поддерживается в Windows.

Примечания к внутренним объектам

Внутренние объекты обычно используют настраиваемую структуру, которую нельзя безопасно скопировать по значению, в PHP в настоящее время отсутствует механизм для этого (без сериализации), и поэтому могут использоваться только объекты, которые не используют настраиваемую структуру.

Некоторые внутренние объекты не используют настраиваемую структуру, например, parallel\Events\Event и поэтому могут использоваться совместно.

Замыкания - это особый вид внутреннего объекта, который поддерживает копирование по значению, поэтому может использоваться совместно.

Каналы играют ключевую роль в написании параллельного кода и при необходимости поддерживают одновременный доступ и выполнение, поэтому могут использоваться совместно.

Внимание

Пользовательский класс, расширяющий внутренний класс, может использовать настраиваемую структуру, определённую внутренним классом, и в этом случае они не могут быть безопасно скопированы по значению и поэтому не могут использоваться совместно.

Возвращаемые значения

Внимание

Нельзя игнорировать возвращаемый parallel\Future, если задача содержит оператор return или throw.

Исключения

Внимание

Выбрасывает parallel\Runtime\Error\Closed, если parallel\Runtime был закрыт.

Внимание

Выбрасывает parallel\Runtime\Error\IllegalFunction, если task является замыканием, созданным из внутренней функции.

Внимание

Выбрасывает parallel\Runtime\Error\IllegalInstruction, если task содержит недопустимые инструкции.

Внимание

Выбрасывает parallel\Runtime\Error\IllegalParameter, если task принимает или argv содержит недопустимые переменные.

Внимание

Выбрасывает parallel\Runtime\Error\IllegalReturn, если task возвращается некорректно.


Изящное соединение во время выполнения

  • « parallel\Runtime::run
  • parallel\Runtime::kill »
  • PHP Manual
  • parallel\Runtime
  • Изящное соединение во время выполнения

parallel\Runtime::close

(0.8.0)

parallel\Runtime::close — Изящное соединение во время выполнения

Описание

public parallel\Runtime::close(): void

Запрашивает завершение работы среды выполнения.

Замечание:

Запланированные к выполнению задачи будут выполнены до завершения работы.

Ошибки

Внимание

Выбрасывает parallel\Runtime\Error\Closed, если Runtime уже был закрыт.


Соединение во время выполнения

  • « parallel\Runtime::close
  • parallel\Future »
  • PHP Manual
  • parallel\Runtime
  • Соединение во время выполнения

parallel\Runtime::kill

(0.8.0)

parallel\Runtime::kill — Соединение во время выполнения

Описание

public parallel\Runtime::kill(): void

Пытается принудительно завершить работу среды выполнения.

Замечание:

Запланированные к выполнению задачи не будут выполнены, текущая задача будет прервана.

Внимание

Выполняющиеся внутренние вызовы функций не могут быть прерваны.

Ошибки

Внимание

Выбрасывает parallel\Runtime\Error\Closed, если Runtime уже был закрыт.


Класс parallel\Future

(0.8.0)

Объекты Future

Future представляет возвращаемое значение или неперехваченное исключение из задачи и предоставляет API для отмены.

Пример #1 Пример, показывающий Future как возвращаемое значение

<?php
$runtime = new \parallel\Runtime;
$future = $runtime->run(function(){
return "Мир";
});
printf("Привет, %s\n", $future->value());
?>

Результатом выполнения данного примера будет что-то подобное:

Привет, Мир

Поведение Future также позволяет использовать его в качестве простой точки синхронизации, даже если задача не возвращает значение явно.

Пример #2 Пример, показывающий Future как точку синхронизации

<?php
$runtime = new \parallel\Runtime;
$future = $runtime->run(function(){
echo "в дочернем потоке ";
for ($i = 0; $i < 500; $i++) {
if ($i % 10 == 0) {
echo ".";
}
}
echo " выход из дочернего потока";
});

$future->value();
echo "\nродительский поток продолжает работать\n";
?>

Результатом выполнения данного примера будет что-то подобное:

в дочернем потоке .................................................. выход из дочернего потока
родительский поток продолжает работать

Обзор классов

final class parallel\Future {
/* Разрешение */
public value(): mixed
/* Состояние */
public cancelled(): bool
public done(): bool
/* Отмена */
public cancel(): bool
}

Содержание

  • parallel\Future::cancel — Прекращение
  • parallel\Future::cancelled — Определение состояния
  • parallel\Future::done — Определение состояния
  • parallel\Future::value — Разрешение


Прекращение

  • « parallel\Future
  • parallel\Future::cancelled »
  • PHP Manual
  • parallel\Future
  • Прекращение

parallel\Future::cancel

(0.9.0)

parallel\Future::cancel — Прекращение

Описание

public parallel\Future::cancel(): bool

Пытается прервать задание.

Замечание:

Если задача запущена, она будет прервана.

Внимание

Выполняющиеся внутренние вызовы функций не могут быть прерваны.

Исключения

Внимание

Выбрасывает parallel\Future\Error\Killed, если parallel\Runtime выполнение задачи было прервано.

Внимание

Выбрасывает parallel\Future\Error\Cancelled, если задача была уже прервана.


Определение состояния

  • « parallel\Future::cancel
  • parallel\Future::done »
  • PHP Manual
  • parallel\Future
  • Определение состояния

parallel\Future::cancelled

(0.9.0)

parallel\Future::cancelled — Определение состояния

Описание

public parallel\Future::cancelled(): bool

Указывает, была ли задача отменена.


Определение состояния

  • « parallel\Future::cancelled
  • parallel\Future::value »
  • PHP Manual
  • parallel\Future
  • Определение состояния

parallel\Future::done

(0.8.0)

parallel\Future::done — Определение состояния

Описание

public parallel\Future::done(): bool

Указывает, выполнена ли задача


Разрешение

  • « parallel\Future::done
  • parallel\Channel »
  • PHP Manual
  • parallel\Future
  • Разрешение

parallel\Future::value

(0.8.0)

parallel\Future::value — Разрешение

Описание

public parallel\Future::value(): mixed

Возвращает (и при необходимости дожидается) возврата из задания.

Исключения

Внимание

Выбрасывает parallel\Future\Error, если ожидание не удалось (внутренняя ошибка).

Внимание

Выбрасывает parallel\Future\Error\Killed, если parallel\Runtime выполнение задачи было прервано.

Внимание

Выбрасывает parallel\Future\Error\Cancelled, если задача была отменена.

Внимание

Выбрасывает parallel\Future\Error\Foreign, если задача вызвала нераспознанное неперехваченное исключение.

Внимание

Выбрасывает Throwable, не пойманные в задаче.


Класс parallel\Channel

(0.9.0)

Небуферизованные каналы

Небуферизованный канал будет блокироваться при вызовах parallel\Channel::send() до тех пор, пока не появится получатель, и блокироваться при вызовах parallel\Channel::recv() до тех пор, пока не появится отправитель. Это означает, что небуферизованный канал - это не только способ обмена данными между задачами, но и простой метод синхронизации.

Небуферизованный канал - это самый быстрый способ обмена данными между задачами, требующий наименьшего количества копирования.

Буферизованные каналы

Буферизованный канал не будет блокироваться при вызовах parallel\Channel::send() до заполнения буфера, а вызовы parallel\Channel::recv() будут блокироваться до тех пор, пока в буфере есть данные.

Замыкания поверх каналов

Мощная особенность параллельных каналов состоит в том, что они позволяют обмениваться замыканиями между задачами (и средами выполнения).

Когда замыкание отправляется по каналу, оно буферизуется, не меняет буферизацию канала, передающего замыкание, но оно влияет на статическую область видимости внутри замыкания: одно и то же замыкание, отправленное в разные среды выполнения или в одну и ту же среду выполнения, не будет делиться своей статической областью.

Это означает, что всякий раз, когда выполняется замыкание, которое было передано каналом, статическое состояние будет таким, каким оно было при буферизации замыкания.

Анонимные каналы

Конструктор анонимного канала позволяет программисту избегать присвоения имён каждому каналу: parallel генерирует уникальное имя для анонимных каналов.

Обзор классов

final class parallel\Channel {
/* Анонимный конструктор */
public __construct()
public __construct(int $capacity)
/* Доступ */
public make(string $name): Channel
public make(string $name, int $capacity): Channel
public open(string $name): Channel
/* Совместное использование */
public recv(): mixed
public send(mixed $value): void
/* Закрытие */
public close(): void
/* Константа для бесконечной буферизации */
const Infinite;
}

Содержание

  • parallel\Channel::__construct — Конструктор класса Channel
  • parallel\Channel::make — Доступ
  • parallel\Channel::open — Доступ
  • parallel\Channel::recv — Совместное использование
  • parallel\Channel::send — Совместное использование
  • parallel\Channel::close — Закрытие


Конструктор класса Channel

  • « parallel\Channel
  • parallel\Channel::make »
  • PHP Manual
  • parallel\Channel
  • Конструктор класса Channel

parallel\Channel::__construct

(1.1.0)

parallel\Channel::__construct — Конструктор класса Channel

Описание

public parallel\Channel::__construct()

Создаёт анонимный небуферизованный канал

public parallel\Channel::__construct(int $capacity)

Создаёт анонимный буферизованный канал с заданной ёмкостью.

Список параметров

capacity

Может быть Channel::Infinite или положительным целым числом.


Доступ

  • « parallel\Channel::__construct
  • parallel\Channel::open »
  • PHP Manual
  • parallel\Channel
  • Доступ

parallel\Channel::make

(0.9.0)

parallel\Channel::make — Доступ

Описание

public parallel\Channel::make(string $name): Channel

Создаёт небуферизованный канал с заданным именем

public parallel\Channel::make(string $name, int $capacity): Channel

Создаёт буферизованный канал с заданным именем и ёмкостью.

Список параметров

name

Имя канала.

capacity

Может быть Channel::Infinite или положительным целым числом

Ошибки

Внимание

Выбрасывает parallel\Channel\Error\Existence, если канал уже существует.


Доступ

  • « parallel\Channel::make
  • parallel\Channel::recv »
  • PHP Manual
  • parallel\Channel
  • Доступ

parallel\Channel::open

(0.9.0)

parallel\Channel::open — Доступ

Описание

public parallel\Channel::open(string $name): Channel

Открывает канал с заданным именем

Ошибки

Внимание

Выбрасывает parallel\Channel\Error\Existence, если канал не существует.


Совместное использование

  • « parallel\Channel::open
  • parallel\Channel::send »
  • PHP Manual
  • parallel\Channel
  • Совместное использование

parallel\Channel::recv

(0.9.0)

parallel\Channel::recv — Совместное использование

Описание

public parallel\Channel::recv(): mixed

Получает значение из этого канала

Ошибки

Внимание

Выбрасывает parallel\Channel\Error\Closed, если канал закрыт.


Совместное использование

  • « parallel\Channel::recv
  • parallel\Channel::close »
  • PHP Manual
  • parallel\Channel
  • Совместное использование

parallel\Channel::send

(0.9.0)

parallel\Channel::send — Совместное использование

Описание

public parallel\Channel::send(mixed $value): void

Отправляет заданное значение в канал

Ошибки

Внимание

Выбрасывает parallel\Channel\Error\Closed, если канал закрыт.

Внимание

Выбрасывает parallel\Channel\Error\IllegalValue, если значение недопустимо.


Закрытие

  • « parallel\Channel::send
  • parallel\Events »
  • PHP Manual
  • parallel\Channel
  • Закрытие

parallel\Channel::close

(0.9.0)

parallel\Channel::close — Закрытие

Описание

public parallel\Channel::close(): void

Закрывает канал.

Ошибки

Внимание

Выбрасывает parallel\Channel\Error\Closed, если канал уже был закрыт.


Класс parallel\Events

(0.9.0)

Цикл событий

Цикл событий отслеживает состояние наборов объектов Future и/или Channel (целей) для выполнения операций чтения (parallel\Future::value(), parallel\Channel::recv()) и записи (parallel\Channel::send()) по мере того, как цели становятся доступными и операции могут выполняться без блокировки цикла событий.

Обзор классов

final class parallel\Events implements Countable, Traversable {
/* Входные данные */
public setInput(Input $input): void
/* Цели */
public addChannel(parallel\Channel $channel): void
public addFuture(string $name, parallel\Future $future): void
public remove(string $target): void
/* Поведение */
public setBlocking(bool $blocking): void
public setTimeout(int $timeout): void
/* Опрос */
public poll(): ?parallel\Events\Event
}

Содержание

  • parallel\Events::setBlocking — Поведение
  • parallel\Events::setTimeout — Поведение
  • parallel\Events::setInput — Вход
  • parallel\Events::addChannel — Цели
  • parallel\Events::addFuture — Цели
  • parallel\Events::remove — Цели
  • parallel\Events::poll — Опрос


Поведение

  • « parallel\Events
  • parallel\Events::setTimeout »
  • PHP Manual
  • parallel\Events
  • Поведение

parallel\Events::setBlocking

(0.9.0)

parallel\Events::setBlocking — Поведение

Описание

По умолчанию, когда опрашиваются события, блокировка будет происходить (на уровне PHP) до тех пор, пока не будет возвращено первое событие: установка режима блокировки в false приведёт к тому, что опрос вернёт управление, если первая опрошенная цель не готова.

Отличается от установки времени ожидания 0 с помощью parallel\Events::setTimeout(), поскольку время ожидания 0, хотя и разрешено, выбросит исключение, которое может быть чрезвычайно медленным или расточительным, если действительно необходимо неблокирующее поведение.

Неблокирующий цикл влияет на возвращаемое значение parallel\Events::poll(), так что оно может быть null до того, как все события будут обработаны.

public parallel\Events::setBlocking(bool $blocking): void

Устанавливает режим блокировки

Ошибки

Внимание

Выбрасывает parallel\Events\Error, если для цикла установлено время ожидания.


Поведение

  • « parallel\Events::setBlocking
  • parallel\Events::setInput »
  • PHP Manual
  • parallel\Events
  • Поведение

parallel\Events::setTimeout

(0.9.0)

parallel\Events::setTimeout — Поведение

Описание

По умолчанию при опросе событий происходит блокировка (на уровне PHP) до тех пор, пока не будет возвращено первое событие: установка времени ожидания приводит к выбрасыванию исключения при превышении времени ожидания.

Отличается от установки режима блокировки в false с помощью parallel\Events::setBlocking(), который не выбрасывает исключение.

public parallel\Events::setTimeout(int $timeout): void

Устанавливает время ожидания в микросекундах

Ошибки

Внимание

Выбрасывает parallel\Events\Error, если цикл не блокируется.


Вход

  • « parallel\Events::setTimeout
  • parallel\Events::addChannel »
  • PHP Manual
  • parallel\Events
  • Вход

parallel\Events::setInput

(0.9.0)

parallel\Events::setInput — Вход

Описание

public parallel\Events::setInput(Input $input): void

Устанавливает input для этого цикла событий


Цели

  • « parallel\Events::setInput
  • parallel\Events::addFuture »
  • PHP Manual
  • parallel\Events
  • Цели

parallel\Events::addChannel

(0.9.0)

parallel\Events::addChannel — Цели

Описание

public parallel\Events::addChannel(parallel\Channel $channel): void

Следит за событиями в заданном channel

Ошибки

Внимание

Выбрасывает parallel\Events\Error\Existence, если канал уже был добавлен.


Цели

  • « parallel\Events::addChannel
  • parallel\Events::remove »
  • PHP Manual
  • parallel\Events
  • Цели

parallel\Events::addFuture

(0.9.0)

parallel\Events::addFuture — Цели

Описание

public parallel\Events::addFuture(string $name, parallel\Future $future): void

Следит за событиями в заданном future

Ошибки

Внимание

Выбрасывает parallel\Events\Error\Existence, если цель с данным именем уже была добавлена.


Цели

  • « parallel\Events::addFuture
  • parallel\Events::poll »
  • PHP Manual
  • parallel\Events
  • Цели

parallel\Events::remove

(0.9.0)

parallel\Events::remove — Цели

Описание

public parallel\Events::remove(string $target): void

Удаляет заданный target

Ошибки

Внимание

Выбрасывает parallel\Events\Error\Existence, если цель с указанным именем не найдена.


Опрос

  • « parallel\Events::remove
  • parallel\Events\Input »
  • PHP Manual
  • parallel\Events
  • Опрос

parallel\Events::poll

(0.9.0)

parallel\Events::poll — Опрос

Описание

public parallel\Events::poll(): ?parallel\Events\Event

Опрашивает для следующего события

Возвращаемые значения

Если целей не осталось, возвращается null.

Если это будет неблокирующий цикл и произойдёт блокировка, будет возвращено значение null.

В противном случае parallel\Events\Event возвращает описание события.

Ошибки

Внимание

Выбрасывает parallel\Events\Error\Timeout, если время ожидания использовано и достигнуто.


Класс parallel\Events\Input

(0.9.0)

Входные данные событий

Объект Input - это контейнер для данных, которые объект parallel\Events запишет в объекты parallel\Channel по мере их доступности. Несколько циклов событий могут совместно использовать контейнер ввода - parallel не проверяет содержимое контейнера, если он установлен как входные данные для объекта parallel\Events.

Замечание:

Когда объект parallel\Events выполняет запись, цель удаляется из объекта входных данных, как если бы был вызван метод parallel\Events\Input::remove().

Обзор классов

final class parallel\Events\Input {
public add(string $target, mixed $value): void
public remove(string $target): void
public clear(): void
}

Содержание

  • parallel\Events\Input::add — Входы
  • parallel\Events\Input::clear — Входы
  • parallel\Events\Input::remove — Входы


Входы

  • « parallel\Events\Input
  • parallel\Events\Input::clear »
  • PHP Manual
  • parallel\Events\Input
  • Входы

parallel\Events\Input::add

(0.9.0)

parallel\Events\Input::add — Входы

Описание

public parallel\Events\Input::add(string $target, mixed $value): void

Устанавливает вход для заданной цели

Ошибки

Внимание

Выбрасывает parallel\Events\Input\Error\Existence, если вход для цели уже существует.

Внимание

Выбрасывает parallel\Events\Input\Error\IllegalValue, если значение недопустимо (object, null).


Входы

  • « parallel\Events\Input::add
  • parallel\Events\Input::remove »
  • PHP Manual
  • parallel\Events\Input
  • Входы

parallel\Events\Input::clear

(0.9.0)

parallel\Events\Input::clear — Входы

Описание

public parallel\Events\Input::clear(): void

Удаляет ввод для всех целей


Входы

  • « parallel\Events\Input::clear
  • parallel\Events\Event »
  • PHP Manual
  • parallel\Events\Input
  • Входы

parallel\Events\Input::remove

(0.9.0)

parallel\Events\Input::remove — Входы

Описание

public parallel\Events\Input::remove(string $target): void

Удаляет вход для данной цели

Ошибки

Внимание

Выбрасывает parallel\Events\Input\Error\Existence, если вход для цели не существует.


Класс parallel\Events\Event

(0.9.0)

Объекты событий

Когда возвращается объект Event, Event::$object должен быть удалён из цикла, который его вернул, если событие является событием записи, класс Input экземпляра Event::$source также следует удалить.

Обзор классов

final class parallel\Events\Event {
/* Одна из констант Event\Type. */
public int $type;
/* Должен быть источником события (имя цели) */
public string $source;
/* Должно быть либо Future, либо Channel */
public object $object;
/* Должен быть установлен для событий чтения/ошибки */
public $value;
}


Класс parallel\Events\Event\Type

(0.9.0)

Обзор классов

final class parallel\Events\Event\Type {
/* Event::$object был прочитан в Event::$value */
const Read;
/* Input for Event::$source записан в Event::$object */
const Write;
/* Event::$object (Канал) был закрыт */
const Close;
/* Event::$object (Фьючерс) был прекращён */
const Cancel;
/* Среда выполнения, выполняющая Event::$object (Фьючерс), была уничтожена */
const Kill;
/* Event::$object (фьючерс) выдал ошибку */
const Error;
}


Класс parallel\Sync

(1.1.0)

Синхронизация низкого уровня

Класс parallel\Sync обеспечивает доступ к низкоуровневым примитивам синхронизации, мьютексам, условным переменным и позволяет реализовать семафоры.

Синхронизация для большинства приложений намного лучше реализуется с использованием каналов, однако в некоторых случаях авторы низкоуровневого кода могут счесть полезным иметь доступ к этим механизмам более низкого уровня.

Обзор классов

final class parallel\Sync {
/* Конструктор */
public __construct()
public __construct(scalar $value)
/* Доступ */
public get(): scalar
public set(scalar $value)
/* Синхронизация */
public wait()
public notify(bool $all = ?)
public __invoke(callable $critical)
}

Содержание

  • parallel\Sync::__construct — Конструктор класса
  • parallel\Sync::get — Доступ
  • parallel\Sync::set — Доступ
  • parallel\Sync::wait — Синхронизация
  • parallel\Sync::notify — Синхронизация
  • parallel\Sync::__invoke — Синхронизация


Конструктор класса

  • « parallel\Sync
  • parallel\Sync::get »
  • PHP Manual
  • parallel\Sync
  • Конструктор класса

parallel\Sync::__construct

(1.1.0)

parallel\Sync::__construct — Конструктор класса

Описание

public parallel\Sync::__construct()

Создаёт новый объект синхронизации без значения.

public parallel\Sync::__construct(scalar $value)

Создаёт новый объект синхронизации, содержащий заданное скалярное значение.

Ошибки

Внимание

Выбрасывает parallel\Sync\Error\IllegalValue, если value не является скалярным значением.


Доступ

  • « parallel\Sync::__construct
  • parallel\Sync::set »
  • PHP Manual
  • parallel\Sync
  • Доступ

parallel\Sync::get

(1.1.0)

parallel\Sync::get — Доступ

Описание

public parallel\Sync::get(): scalar

Автоматически возвращает значение объектов синхронизации.


Доступ

  • « parallel\Sync::get
  • parallel\Sync::wait »
  • PHP Manual
  • parallel\Sync
  • Доступ

parallel\Sync::set

(1.1.0)

parallel\Sync::set — Доступ

Описание

public parallel\Sync::set(scalar $value)

Атомарно устанавливает значение объекта синхронизации.

Ошибки

Внимание

Выбрасывает parallel\Sync\Error\IllegalValue, если value не является скалярным значением.


Синхронизация

  • « parallel\Sync::set
  • parallel\Sync::notify »
  • PHP Manual
  • parallel\Sync
  • Синхронизация

parallel\Sync::wait

(1.1.0)

parallel\Sync::wait — Синхронизация

Описание

public parallel\Sync::wait()

Ожидает уведомления об этом объекте синхронизации.


Синхронизация

  • « parallel\Sync::wait
  • parallel\Sync::__invoke »
  • PHP Manual
  • parallel\Sync
  • Синхронизация

parallel\Sync::notify

(1.1.0)

parallel\Sync::notify — Синхронизация

Описание

public parallel\Sync::notify(bool $all = ?)

Уведомляет один (по умолчанию) или все потоки, ожидающие объекта синхронизации.


Синхронизация

  • « parallel\Sync::notify
  • pthreads »
  • PHP Manual
  • parallel\Sync
  • Синхронизация

parallel\Sync::__invoke

(1.1.0)

parallel\Sync::__invoke — Синхронизация

Описание

public parallel\Sync::__invoke(callable $critical)

Должен быть включён исключительно в критический код.


pthreads

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределённые константы
  • Threaded — Класс Threaded
    • Threaded::chunk — Обработка
    • Threaded::count — Обработка
    • Threaded::extend — Обработка во время выполнения
    • Threaded::isRunning — Определение состояния
    • Threaded::isTerminated — Определение состояния
    • Threaded::merge — Обработка
    • Threaded::notify — Синхронизация
    • Threaded::notifyOne — Синхронизация
    • Threaded::pop — Обработка
    • Threaded::run — Выполнение
    • Threaded::shift — Обработка
    • Threaded::synchronized — Синхронизация
    • Threaded::wait — Синхронизация
  • Thread — Класс Thread
    • Thread::getCreatorId — Идентификация
    • Thread::getCurrentThread — Идентификация
    • Thread::getCurrentThreadId — Идентификация
    • Thread::getThreadId — Идентификация
    • Thread::isJoined — Определение состояния
    • Thread::isStarted — Определение состояния
    • Thread::join — Синхронизация
    • Thread::start — Выполнение
  • Worker — Класс Worker
    • Worker::collect — Собрать ссылки на завершённые задачи
    • Worker::getStacked — Возвращает текущий размер стека
    • Worker::isShutdown — Определение состояния
    • Worker::shutdown — Остановить Worker
    • Worker::stack — Положить задачу на стек
    • Worker::unstack — Убрать задачу со стека
  • Collectable — Интерфейс Collectable
    • Collectable::isGarbage — Определяет, помечен ли объект как мусор
  • Pool — Класс Pool
    • Pool::collect — Собирает ссылки на выполненные задания
    • Pool::__construct — Создаёт новый пул воркеров
    • Pool::resize — Изменяет размер пула
    • Pool::shutdown — Выключает все воркеры
    • Pool::submit — Отправляет объект на исполнение
    • Pool::submitTo — Отправляет задачу конкретному воркеру для выполнения
  • 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-zts или на системах, отличных от Windows, до PHP 8.0.0, ключ --enable-maintainer-zts.

Предостережение

После компиляции потокобезопасность нельзя включить - это исключительно опция, устанавливаемая на этапе компиляции.

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 (int)
Настройка по умолчанию для всех потоков, указывает pthreads копировать все окружение при создании нового потока (класс Thread)
PTHREADS_INHERIT_NONE (int)
Ничего не наследовать при старте нового потока
PTHREADS_INHERIT_INI (int)
Наследовать INI-настройки при старте нового потока
PTHREADS_INHERIT_CONSTANTS (int)
Наследовать пользовательские константы при старте нового потока
PTHREADS_INHERIT_CLASSES (int)
Наследовать пользовательские классы при старте нового потока
PTHREADS_INHERIT_FUNCTIONS (int)
Наследовать пользовательские функции при старте нового потока
PTHREADS_INHERIT_INCLUDES (int)
Наследовать информацию из подключённых файлов при старте нового потока
PTHREADS_INHERIT_COMMENTS (int)
Наследовать все комментарии при старте нового потока
PTHREADS_ALLOW_HEADERS (int)
Позволять потокам отправлять заголовки (headers) в стандартный вывод (обычно запрещено)


Класс Threaded

(PECL pthreads >= 2.0.0)

Введение

Объекты Threaded формируют базис способности pthreads запускать пользовательский код в новых потоках. Класс содержит методы синхронизации и различные полезные интерфейсы.

Самое важное, что объекты Threaded обеспечивают безопасность для разработчика. Все операции в контексте объекта - безопасны.

Обзор классов

class Threaded implements Collectable, Traversable, Countable, ArrayAccess {
/* Методы */
public chunk(int $size, bool $preserve): array
public count(): int
public extend(string $class): bool
public isRunning(): bool
public isTerminated(): bool
public merge(mixed $from, bool $overwrite = ?): bool
public notify(): bool
public notifyOne(): bool
public pop(): bool
public run(): void
public shift(): mixed
public synchronized(Closure $block, mixed ...$args): mixed
public wait(int $timeout = ?): bool
}

Содержание

  • Threaded::chunk — Обработка
  • Threaded::count — Обработка
  • Threaded::extend — Обработка во время выполнения
  • Threaded::isRunning — Определение состояния
  • Threaded::isTerminated — Определение состояния
  • Threaded::merge — Обработка
  • Threaded::notify — Синхронизация
  • Threaded::notifyOne — Синхронизация
  • Threaded::pop — Обработка
  • Threaded::run — Выполнение
  • Threaded::shift — Обработка
  • Threaded::synchronized — Синхронизация
  • Threaded::wait — Синхронизация


Обработка

  • « Threaded
  • Threaded::count »
  • PHP Manual
  • Threaded
  • Обработка

Threaded::chunk

(PECL pthreads >= 2.0.0)

Threaded::chunk — Обработка

Описание

public Threaded::chunk(int $size, bool $preserve): array

Получает фрагмент таблицы свойств объектов заданного размера, при необходимости сохраняя ключи.

Список параметров

size

Количество элементов для получения.

preserve

Сохранять ключи элементов, по умолчанию false.

Возвращаемые значения

Массив элементов из таблицы свойств объектов.

Примеры

Пример #1 Получение фрагмента таблицы свойств

<?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)
}


Обработка

  • « Threaded::chunk
  • Threaded::extend »
  • PHP Manual
  • Threaded
  • Обработка

Threaded::count

(PECL pthreads >= 2.0.0)

Threaded::count — Обработка

Описание

public Threaded::count(): int

Возвращает количество свойств для этого объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Подсчёт свойств объекта

<?php
$safe = new Threaded();

while (count($safe) < 10) {
$safe[] = count($safe);
}

var_dump(count($safe));
?>

Результат выполнения данного примера:

int(10)


Обработка во время выполнения

  • « Threaded::count
  • Threaded::isRunning »
  • PHP Manual
  • Threaded
  • Обработка во время выполнения

Threaded::extend

(PECL pthreads >= 2.0.8)

Threaded::extend — Обработка во время выполнения

Описание

public Threaded::extend(string $class): bool

Делает потокобезопасный стандартный класс во время выполнения.

Список параметров

class

Класс для расширения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Наследование во время выполнения

<?php
class My {}

Threaded::extend(My::class);

$my = new My();

var_dump($my instanceof Threaded);
?>

Результат выполнения данного примера:

bool(true)


Определение состояния

  • « Threaded::extend
  • Threaded::isTerminated »
  • PHP Manual
  • Threaded
  • Определение состояния

Threaded::isRunning

(PECL pthreads >= 2.0.0)

Threaded::isRunning — Определение состояния

Описание

public Threaded::isRunning(): bool

Сообщает, выполняется ли указанный объект.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Логическое значение состояния объекта.

Замечание:

Объект считается запущенным при выполнении метода run.

Примеры

Пример #1 Определение состояния указанного объекта

<?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)


Определение состояния

  • « Threaded::isRunning
  • Threaded::merge »
  • PHP Manual
  • Threaded
  • Определение состояния

Threaded::isTerminated

(PECL pthreads >= 2.0.0)

Threaded::isTerminated — Определение состояния

Описание

public Threaded::isTerminated(): bool

Сообщает, был ли объект, на который указывает ссылка, прекращён во время выполнения; произошли ли фатальные ошибки или были выброшены неперехваченные исключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Логическое значение состояния объекта.

Примеры

Пример #1 Определение состояния указанного объекта

<?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)


Обработка

  • « Threaded::isTerminated
  • Threaded::notify »
  • PHP Manual
  • Threaded
  • Обработка

Threaded::merge

(PECL pthreads >= 2.0.0)

Threaded::merge — Обработка

Описание

public Threaded::merge(mixed $from, bool $overwrite = ?): bool

Объединяет данные в текущий объект.

Список параметров

from

Данные для объединения.

overwrite

Перезаписать существующие ключи, по умолчанию true.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Объединение с таблицей свойств связанного объекта

<?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"
}


Синхронизация

  • « Threaded::merge
  • Threaded::notifyOne »
  • PHP Manual
  • Threaded
  • Синхронизация

Threaded::notify

(PECL pthreads >= 2.0.0)

Threaded::notify — Синхронизация

Описание

public Threaded::notify(): bool

Отправляет уведомление указанному объекту.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Уведомления и ожидание

<?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)


Синхронизация

  • « Threaded::notify
  • Threaded::pop »
  • PHP Manual
  • Threaded
  • Синхронизация

Threaded::notifyOne

(PECL pthreads >= 3.0.0)

Threaded::notifyOne — Синхронизация

Описание

public Threaded::notifyOne(): bool

Отправляет уведомление указанному объекту. Это разблокирует по крайней мере один из заблокированных потоков (в отличие от Threaded::notify() с разблокировкой всех потоков).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Уведомления и ожидание

<?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->notifyOne();
}, $my);
var_dump($my->join());
?>

Результат выполнения данного примера:

bool(true)


Обработка

  • « Threaded::notifyOne
  • Threaded::run »
  • PHP Manual
  • Threaded
  • Обработка

Threaded::pop

(PECL pthreads >= 2.0.0)

Threaded::pop — Обработка

Описание

public Threaded::pop(): bool

Извлекает элемент из таблицы свойств объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний элемент из таблицы свойств объектов.

Примеры

Пример #1 Извлечение последнего элемента из таблицы свойств связанного объекта

<?php
$safe = new Threaded();

while (count($safe) < 10)
$safe[] = count($safe);

var_dump($safe->pop());
?>

Результат выполнения данного примера:

int(9)


Выполнение

  • « Threaded::pop
  • Threaded::shift »
  • PHP Manual
  • Threaded
  • Выполнение

Threaded::run

(PECL pthreads >= 2.0.0)

Threaded::run — Выполнение

Описание

public Threaded::run(): void

Программист всегда должен реализовывать метод run для объектов, которые предназначены для выполнения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращаемое значение метода, если оно используется, будет проигнорировано.


Обработка

  • « Threaded::run
  • Threaded::synchronized »
  • PHP Manual
  • Threaded
  • Обработка

Threaded::shift

(PECL pthreads >= 2.0.0)

Threaded::shift — Обработка

Описание

public Threaded::shift(): mixed

Перемещает элемент из таблицы свойств объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первый элемент из таблицы свойств объекта.

Примеры

Пример #1 Перемещение первого элемента из таблицы свойств связанного объекта

<?php
$safe = new Threaded();

while (count($safe) < 10)
$safe[] = count($safe);

var_dump($safe->shift());
?>

Результат выполнения данного примера:

int(0)


Синхронизация

  • « Threaded::shift
  • Threaded::wait »
  • PHP Manual
  • Threaded
  • Синхронизация

Threaded::synchronized

(PECL pthreads >= 2.0.0)

Threaded::synchronized — Синхронизация

Описание

public Threaded::synchronized(Closure $block, mixed ...$args): mixed

Выполняет блок, сохраняя блокировку синхронизации ссылочных объектов для вызывающего контекста.

Список параметров

block

Блок кода для выполнения.

args

Список аргументов переменной длины для использования в качестве аргументов функции блока.

Возвращаемые значения

Возвращаемое значение блока.

Примеры

Пример #1 Синхронизация

<?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)


Синхронизация

  • « Threaded::synchronized
  • Thread »
  • PHP Manual
  • Threaded
  • Синхронизация

Threaded::wait

(PECL pthreads >= 2.0.0)

Threaded::wait — Синхронизация

Описание

public Threaded::wait(int $timeout = ?): bool

Заставляет вызывающий контекст ждать уведомления от указанного объекта.

Список параметров

timeout

Необязательный параметр времени ожидания в микросекундах.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Уведомления и ожидание

<?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)


Класс Thread

(PECL pthreads >= 2.0.0)

Введение

Когда вызван стартовый метод Thread, код метода run будет запущен в отдельном потоке, параллельно.

После отработки метода run, Thread сразу же завершит работу. Он будет присоединён путём создания Thread в нужное время.

Внимание

Если полагаться на движок для определения, когда Thread будет присоединён, можно столкнуться с неожиданным поведением. Поэтому необходимо, по возможности, управлять присоединением в явном виде.

Обзор классов

class Thread extends Threaded implements Countable, Traversable, ArrayAccess {
/* Методы */
public getCreatorId(): int
public static getCurrentThread(): Thread
public static getCurrentThreadId(): int
public getThreadId(): int
public isJoined(): bool
public isStarted(): bool
public join(): bool
public start(int $options = ?): bool
/* Наследуемые методы */
public Threaded::chunk(int $size, bool $preserve): array
public Threaded::count(): int
public Threaded::extend(string $class): bool
public Threaded::isRunning(): bool
public Threaded::isTerminated(): bool
public Threaded::merge(mixed $from, bool $overwrite = ?): bool
public Threaded::notify(): bool
public Threaded::notifyOne(): bool
public Threaded::pop(): bool
public Threaded::run(): void
public Threaded::shift(): mixed
public Threaded::synchronized(Closure $block, mixed ...$args): mixed
public Threaded::wait(int $timeout = ?): bool
}

Содержание

  • Thread::getCreatorId — Идентификация
  • Thread::getCurrentThread — Идентификация
  • Thread::getCurrentThreadId — Идентификация
  • Thread::getThreadId — Идентификация
  • Thread::isJoined — Определение состояния
  • Thread::isStarted — Определение состояния
  • Thread::join — Синхронизация
  • Thread::start — Выполнение


Идентификация

  • « Thread
  • Thread::getCurrentThread »
  • PHP Manual
  • Thread
  • Идентификация

Thread::getCreatorId

(PECL pthreads >= 2.0.0)

Thread::getCreatorId — Идентификация

Описание

public Thread::getCreatorId(): int

Возвращает идентификатор потока, который создал указанный поток.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовой идентификатор.

Примеры

Пример #1 Возвращает идентификатор потока, который создал указанный поток

<?php
class My extends Thread {
public function run() {
printf("%s создан потоком #%lu\n", __CLASS__, $this->getCreatorId());
}
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

My создан потоком #123456778899


Идентификация

  • « Thread::getCreatorId
  • Thread::getCurrentThreadId »
  • PHP Manual
  • Thread
  • Идентификация

Thread::getCurrentThread

(PECL pthreads >= 2.0.0)

Thread::getCurrentThread — Идентификация

Описание

public static Thread::getCurrentThread(): Thread

Возвращает ссылку на текущий выполняющийся поток.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект, представляющий текущий выполняющийся поток.

Примеры

Пример #1 Возвращает ссылку на текущий выполняющийся поток

<?php
class My extends Thread {
public function run() {
var_dump(Thread::getCurrentThread());
}
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

object(My)#2 (0) {
}


Идентификация

  • « Thread::getCurrentThread
  • Thread::getThreadId »
  • PHP Manual
  • Thread
  • Идентификация

Thread::getCurrentThreadId

(PECL pthreads >= 2.0.0)

Thread::getCurrentThreadId — Идентификация

Описание

public static Thread::getCurrentThreadId(): int

Возвращает идентификатор текущего выполняющегося потока.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовой идентификатор.

Примеры

Пример #1 Возвращает идентификатор текущего выполняющегося потока

<?php
class My extends Thread {
public function run() {
printf("%s является потоком #%lu\n", __CLASS__, Thread::getCurrentThreadId());
}
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

My является потоком #123456778899


Идентификация

  • « Thread::getCurrentThreadId
  • Thread::isJoined »
  • PHP Manual
  • Thread
  • Идентификация

Thread::getThreadId

(PECL pthreads >= 2.0.0)

Thread::getThreadId — Идентификация

Описание

public Thread::getThreadId(): int

Возвращает идентификатор указанного потока

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовой идентификатор.

Примеры

Пример #1 Возвращает идентификатор указанного потока

<?php
class My extends Thread {
public function run() {
printf("%s является потоком #%lu\n", __CLASS__, $this->getThreadId());
}
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

My является потоком #123456778899


Определение состояния

  • « Thread::getThreadId
  • Thread::isStarted »
  • PHP Manual
  • Thread
  • Определение состояния

Thread::isJoined

(PECL pthreads >= 2.0.0)

Thread::isJoined — Определение состояния

Описание

public Thread::isJoined(): bool

Сообщает, был ли присоединён указанный поток.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Сообщает, был ли присоединён указанный поток

<?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)


Определение состояния

  • « Thread::isJoined
  • Thread::join »
  • PHP Manual
  • Thread
  • Определение состояния

Thread::isStarted

(PECL pthreads >= 2.0.0)

Thread::isStarted — Определение состояния

Описание

public Thread::isStarted(): bool

Сообщает, был ли запущен указанный поток.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Сообщает, был ли запущен указанный поток

<?php
$worker = new Worker();
$worker->start();
var_dump($worker->isStarted());
?>

Результат выполнения данного примера:

bool(true)


Синхронизация

  • « Thread::isStarted
  • Thread::start »
  • PHP Manual
  • Thread
  • Синхронизация

Thread::join

(PECL pthreads >= 2.0.0)

Thread::join — Синхронизация

Описание

public Thread::join(): bool

Заставляет вызывающий контекст ждать, пока указанный поток завершит выполнение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Присоединение к указанному процессу

<?php
class My extends Thread {
public function run() {
/* ... */
}
}
$my = new My();
$my->start();
/* ... */
var_dump($my->join());
/* ... */
?>

Результат выполнения данного примера:

bool(true)


Выполнение

  • « Thread::join
  • Worker »
  • PHP Manual
  • Thread
  • Выполнение

Thread::start

(PECL pthreads >= 2.0.0)

Thread::start — Выполнение

Описание

public Thread::start(int $options = ?): bool

Запускает новый поток для выполнения реализованного метода запуска.

Список параметров

options

Необязательная маска констант наследования, по умолчанию PTHREADS_INHERIT_ALL.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Запуск потока

<?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 этого объекта.

Обзор классов

class Worker extends Thread implements Traversable, Countable, ArrayAccess {
/* Методы */
public collect(Callable $collector = ?): int
public getStacked(): int
public isShutdown(): bool
public shutdown(): bool
public stack(Threaded &$work): int
public unstack(): int
/* Наследуемые методы */
public Thread::getCreatorId(): int
public static Thread::getCurrentThread(): Thread
public static Thread::getCurrentThreadId(): int
public Thread::getThreadId(): int
public Thread::isJoined(): bool
public Thread::isStarted(): bool
public Thread::join(): bool
public Thread::start(int $options = ?): bool
}

Содержание

  • Worker::collect — Собрать ссылки на завершённые задачи
  • Worker::getStacked — Возвращает текущий размер стека
  • Worker::isShutdown — Определение состояния
  • Worker::shutdown — Остановить Worker
  • Worker::stack — Положить задачу на стек
  • Worker::unstack — Убрать задачу со стека


Собрать ссылки на завершённые задачи

  • « Worker
  • Worker::getStacked »
  • PHP Manual
  • Worker
  • Собрать ссылки на завершённые задачи

Worker::collect

(PECL pthreads >= 3.0.0)

Worker::collect — Собрать ссылки на завершённые задачи

Описание

public Worker::collect(Callable $collector = ?): int

Позволяет Worker собрать "мусорные" ссылки на задачи. Опционально можно задать пользовательский сборщик.

Список параметров

collector

Сборщик типа Callable, который должен возвращать true или false в зависимости от того, можно ли собрать задачу. Случаи, когда вам может понадобиться собственный сборщик, крайне редки.

Возвращаемые значения

Количество оставшихся задач в стеке Worker, которые будут собраны.

Примеры

Пример #1 Пример использования Worker::collect()

<?php
$worker = new Worker();

echo "Сейчас на стеке {$worker->collect()} задач, которые нужно собрать\n";

for ($i = 0; $i < 15; ++$i) {
$worker->stack(new class extends Threaded {});
}

echo "На стеке {$worker->collect()} задач, которые нужно собрать\n";

$worker->start();

while ($worker->collect()); // ждём, пока все задачи не завершат исполнение

echo "Теперь на стеке {$worker->collect()} задач, ждущих, когда их соберут\n";

$worker->shutdown();

Результат выполнения данного примера:

Сейчас на стеке 0 задач, которые нужно собрать
На стеке 15 задач, которые нужно собрать
Теперь на стеке 0 задач, ждущих, когда их соберут


Возвращает текущий размер стека

  • « Worker::collect
  • Worker::isShutdown »
  • PHP Manual
  • Worker
  • Возвращает текущий размер стека

Worker::getStacked

(PECL pthreads >= 2.0.0)

Worker::getStacked — Возвращает текущий размер стека

Описание

public Worker::getStacked(): int

Возвращает количество задач, оставшихся в стеке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество задач, оставшихся в стеке и ожидающих запуска.

Примеры

Пример #1 Пример использования 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


Определение состояния

  • « Worker::getStacked
  • Worker::shutdown »
  • PHP Manual
  • Worker
  • Определение состояния

Worker::isShutdown

(PECL pthreads >= 2.0.0)

Worker::isShutdown — Определение состояния

Описание

public Worker::isShutdown(): bool

Определяет, остановлен Worker или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true если остановлен и false, если нет.

Примеры

Пример #1 Определение состояния

<?php
$worker = new Worker();
$worker->start();

var_dump($worker->isShutdown());

$worker->shutdown();

var_dump($worker->isShutdown());

Результат выполнения данного примера:

bool(false)
bool(true)


Остановить Worker

  • « Worker::isShutdown
  • Worker::stack »
  • PHP Manual
  • Worker
  • Остановить Worker

Worker::shutdown

(PECL pthreads >= 2.0.0)

Worker::shutdown — Остановить Worker

Описание

public Worker::shutdown(): bool

Остановить Worker после запуска всех задач со стека.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Остановка Worker

<?php
$my = new Worker();
$my->start();
/* stack/execute tasks */
var_dump($my->shutdown());

Результат выполнения данного примера:

bool(true)


Положить задачу на стек

  • « Worker::shutdown
  • Worker::unstack »
  • PHP Manual
  • Worker
  • Положить задачу на стек

Worker::stack

(PECL pthreads >= 2.0.0)

Worker::stack — Положить задачу на стек

Описание

public Worker::stack(Threaded &$work): int

Добавляет задачу на стек заданному Worker.

Список параметров

work

Объект типа Threaded, который будет запущен Worker.

Возвращаемые значения

Новый размер стека.

Примеры

Пример #1 Помещение задачи на стек Worker для её запуска

<?php
$worker = new Worker();
$work = new class extends Threaded {};

var_dump($worker->stack($work));

Результат выполнения данного примера:

int(1)


Убрать задачу со стека

  • « Worker::stack
  • Collectable »
  • PHP Manual
  • Worker
  • Убрать задачу со стека

Worker::unstack

(PECL pthreads >= 2.0.0)

Worker::unstack — Убрать задачу со стека

Описание

public Worker::unstack(): int

Убирает первую задачу (самую старую) из стека.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Новый размер стека.

Список изменений

Версия | Описание
v3 | Убран параметр, в котором указывалась задача для удаления. Теперь всегда удаляется первая задача.

Примеры

Пример #1 Удаление объектов из стека Worker

<?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)

Введение

Представляет объект, который можно собрать сборщиком мусора.

Обзор интерфейсов

interface Collectable {
/* Методы */
public isGarbage(): true
}

Содержание

  • Collectable::isGarbage — Определяет, помечен ли объект как мусор


Определяет, помечен ли объект как мусор

  • « Collectable
  • Pool »
  • PHP Manual
  • Collectable
  • Определяет, помечен ли объект как мусор

Collectable::isGarbage

(PECL pthreads >= 2.0.8)

Collectable::isGarbage — Определяет, помечен ли объект как мусор

Описание

public Collectable::isGarbage(): true

Можно вызывать в Pool::collect() для определения, является ли объект мусором.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Смотрите также

  • Pool::collect() - Собирает ссылки на выполненные задания


Класс Pool

(PECL pthreads >= 2.0.0)

Введение

Объект Pool является контейнером для хранения объектов Worker, управления ими и регулирования их количества.

Контейнеризация представляет собой высший уровень абстракции над функционалом Worker включая управление ссылками в корректном для pthreads виде.

Обзор классов

class Pool {
/* Свойства */
protected $size;
protected $class;
protected $workers;
protected $ctor;
protected $last;
/* Методы */
public __construct(int $size, string $class = ?, array $ctor = ?)
public collect(Callable $collector = ?): int
public resize(int $size): void
public shutdown(): 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 — Собирает ссылки на выполненные задания
  • Pool::__construct — Создаёт новый пул воркеров
  • Pool::resize — Изменяет размер пула
  • Pool::shutdown — Выключает все воркеры
  • Pool::submit — Отправляет объект на исполнение
  • Pool::submitTo — Отправляет задачу конкретному воркеру для выполнения


Собирает ссылки на выполненные задания

  • « Pool
  • Pool::__construct »
  • PHP Manual
  • Pool
  • Собирает ссылки на выполненные задания

Pool::collect

(PECL pthreads >= 2.0.0)

Pool::collect — Собирает ссылки на выполненные задания

Описание

public Pool::collect(Callable $collector = ?): int

Позволяет пулу собирать ссылки, определённые как мусор дополнительным сборщиком.

Список параметров

collector

Callback-функция сборщика, которая возвращает логическое значение, указывающее, может ли задача быть собрана или нет. Только в редких случаях может потребоваться специальный сборщик.

Возвращаемые значения

Количество оставшихся задач в пуле, которые нужно собрать.

Список изменений

Версия | Описание
v3 | Теперь возвращается целое число, а параметр collector теперь необязателен.

Примеры

Пример #1 Простой пример использования Pool::collect()

<?php
$pool = new Pool(4);

for ($i = 0; $i < 15; ++$i) {
$pool->submit(new class extends Threaded {});
}

while ($pool->collect()); // до тех пор, пока все задачи не закончат выполнение

$pool->shutdown();


Создаёт новый пул воркеров

  • « Pool::collect
  • Pool::resize »
  • PHP Manual
  • Pool
  • Создаёт новый пул воркеров

Pool::__construct

(PECL pthreads >= 2.0.0)

Pool::__construct — Создаёт новый пул воркеров

Описание

public Pool::__construct(int $size, string $class = ?, array $ctor = ?)

Создаёт новый пул рабочих. Пулы лениво создают свои потоки, что означает, что новые потоки будут создаваться только тогда, когда они необходимы для выполнения заданий.

Список параметров

size

Максимальное количество воркеров, которое может создать этот пул

class

Класс для новых воркеров. Если класс не указан, то по умолчанию используется класс Worker.

ctor

Массив аргументов для передачи конструкторам новых воркерам.

Примеры

Пример #1 Создание пулов

<?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)
}


Изменяет размер пула

  • « Pool::__construct
  • Pool::shutdown »
  • PHP Manual
  • Pool
  • Изменяет размер пула

Pool::resize

(PECL pthreads >= 2.0.0)

Pool::resize — Изменяет размер пула

Описание

public Pool::resize(int $size): void

Изменяет размер пула

Список параметров

size

Максимальное количество воркеров, которое может создать этот пул

Возвращаемые значения

Функция не возвращает значения после выполнения.


Выключает все воркеры

  • « Pool::resize
  • Pool::submit »
  • PHP Manual
  • Pool
  • Выключает все воркеры

Pool::shutdown

(PECL pthreads >= 2.0.0)

Pool::shutdown — Выключает все воркеры

Описание

public Pool::shutdown(): void

Выключает всех воркеров в пуле. Будет заблокировано до тех пор, пока все отправленные задачи не будут выполнены.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Выключение пула

<?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(); // пока все отправленные задачи не завершат выполнение


Отправляет объект на исполнение

  • « Pool::shutdown
  • Pool::submitTo »
  • PHP Manual
  • Pool
  • Отправляет объект на исполнение

Pool::submit

(PECL pthreads >= 2.0.0)

Pool::submit — Отправляет объект на исполнение

Описание

public Pool::submit(Threaded $task): int

Отправляет задание следующему воркеру в пуле

Список параметров

task

Задание для выполнения

Возвращаемые значения

Идентификатор воркера, выполняющего объект

Примеры

Пример #1 Отправка заданий

<?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)
}


Отправляет задачу конкретному воркеру для выполнения

  • « Pool::submit
  • Volatile »
  • PHP Manual
  • Pool
  • Отправляет задачу конкретному воркеру для выполнения

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitTo — Отправляет задачу конкретному воркеру для выполнения

Описание

public Pool::submitTo(int $worker, Threaded $task): int

Отправляет задачу указанному воркеру в пуле. Воркеры индексируются с 0 и будут существовать только в том случае, если пулу необходимо их создать (поскольку потоки создаются лениво).

Список параметров

worker

Воркер, в который нужно добавить задание, начиная с 0.

task

Задание для выполнения

Возвращаемые значения

Идентификатор воркера, принявшего задачу.

Примеры

Пример #1 Отправка задач конкретному воркеру

<?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()); // добавление всех заданий первому воркеру
}

$pool->submitTo(1, new Task()); // не может добавить задачу второму воркеру, потому что его ещё не существует

$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


Класс Volatile

(PECL pthreads >= 3.0.0)

Введение

Класс Volatile появился в pthreads v3. Его введение является следствием новой семантики неизменности Threaded-свойств классов Threaded. Класс Volatile включает иммутабельность их Threaded-свойств и, также, используется для хранения массивов PHP в контексте Threaded.

Обзор классов

class Volatile extends Threaded implements Collectable, Traversable {
/* Наследуемые методы */
public Threaded::chunk(int $size, bool $preserve): array
public Threaded::count(): int
public Threaded::extend(string $class): bool
public Threaded::isRunning(): bool
public Threaded::isTerminated(): bool
public Threaded::merge(mixed $from, bool $overwrite = ?): bool
public Threaded::notify(): bool
public Threaded::notifyOne(): bool
public Threaded::pop(): bool
public Threaded::run(): void
public Threaded::shift(): mixed
public Threaded::synchronized(Closure $block, mixed ...$args): mixed
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) {
}


Семафоры, разделяемая память и 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 — Создаёт или открывает сегмент разделяемой памяти
    • shm_detach — Отключается от сегмента разделяемой памяти
    • shm_get_var — Возвращает переменную из разделяемой памяти
    • shm_has_var — Проверяет, существует ли конкретная запись
    • shm_put_var — Вставляет или обновляет переменную в разделяемой памяти
    • shm_remove_var — Удаляет переменную из разделяемой памяти
    • shm_remove — Удаляет разделяемую память из систем Unix
  • SysvMessageQueue — Класс SysvMessageQueue
  • SysvSemaphore — Класс SysvSemaphore
  • SysvSharedMemory — Класс SysvSharedMemory


Введение

Модули обеспечивают поддержку семейства функций межпроцессного взаимодействия System V. Сюда входят семафоры, разделяемая память и обмен сообщениями между процессами (IPC).

Семафоры могут использоваться для получения эксклюзивного доступа к ресурсам локальной машины или для ограничения числа процессов, одновременно использующих ресурс.

Также этот модуль поддерживает функции для работы с разделяемой памятью System V. Разделяемая память может быть использована для предоставления доступа к глобальным переменным. Различные httpd-демоны и даже другие программы (написанные на Perl, C и т.д.) могут получать доступ к этим данным для осуществления глобального обмена данными. Помните, что разделяемая память НЕ ЗАЩИЩЕНА от одновременного доступа. Используйте семафоры для синхронизации.

Лимиты, наложенные на разделяемую память в Unix OS
SHMMAX | максимальный размер разделяемой памяти, обычно 131072 байт
SHMMIN | минимальный размер разделяемой памяти, обычно 1 байт
SHMMNI | максимальное количество сегментов разделяемой памяти в системе, обычно 100
SHMSEG | максимальное количество сегментов разделяемой памяти на процесс, обычно 6

Функции обмена сообщениями можно использовать для отправки и получения сообщений в/из другой процесс. Они обеспечивают простое и эффективное средство обмена данными между процессами без необходимости создания UNIX-сокетов.

Замечание: В Windows доступны только функции разделяемой памяти и ftok(). На этой платформе не поддерживаются ни семафоры, ни функции обмена сообщениями между процессами.


Установка

Поддержка этих функций по умолчанию отключена. Для включения поддержки семафоров 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 8.0.0 модуль определял типы ресурсов sysvmsg queue (очередь сообщений System V), sysvsem (семафор System V) и sysvshm (Разделяемая память System V).


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

MSG_IPC_NOWAIT (int)
MSG_EAGAIN (int)
MSG_ENOMSG (int)
MSG_NOERROR (int)
MSG_EXCEPT (int)


Функции семафоров

Содержание

  • 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 — Создаёт или открывает сегмент разделяемой памяти
  • shm_detach — Отключается от сегмента разделяемой памяти
  • shm_get_var — Возвращает переменную из разделяемой памяти
  • shm_has_var — Проверяет, существует ли конкретная запись
  • shm_put_var — Вставляет или обновляет переменную в разделяемой памяти
  • shm_remove_var — Удаляет переменную из разделяемой памяти
  • shm_remove — Удаляет разделяемую память из систем Unix


Преобразование пути и идентификатора проекта в ключ System V IPC

  • « Функции семафоров
  • msg_get_queue »
  • PHP Manual
  • Функции семафоров
  • Преобразование пути и идентификатора проекта в ключ System V IPC

ftok

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ftok — Преобразование пути и идентификатора проекта в ключ System V IPC

Описание

ftok(string $filename, string $project_id): int

Функция преобразует filename существующего, доступного файла и идентификатор проекта в целое для использования, например, в shmop_open() и других ключах System V IPC.

Список параметров

filename

Путь к файлу

project_id

Идентификатор проекта. Это должен быть один символ.

Возвращаемые значения

В случае успешного выполнения возвращается созданное значение ключа, и -1 в случае возникновения ошибки.

Смотрите также

  • shmop_open() - Резервирование или использование блока разделяемой памяти
  • sem_get() - Получение идентификатора семафора


Создание или подключение к очереди сообщений

  • « ftok
  • msg_queue_exists »
  • PHP Manual
  • Функции семафоров
  • Создание или подключение к очереди сообщений

msg_get_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

msg_get_queue — Создание или подключение к очереди сообщений

Описание

msg_get_queue(int $key, int $permissions = 0666): SysvMessageQueue|false

msg_get_queue() возвращает идентификатор, который используется для доступа к очереди сообщений System V с указанным ключом key. Первый вызов создаёт очередь сообщений с необязательными правами permissions. Второй и последующие вызовы msg_get_queue() для того же key будут возвращать другие идентификаторы, однако все они будут ссылаться на одну и ту же очередь сообщений.

Список параметров

key

Числовой идентификатор очереди сообщений.

permissions

Права доступа к очереди. По умолчанию 0666. Если очередь сообщений уже существует, параметр permissions игнорируется.

Возвращаемые значения

Возвращает экземпляр SysvMessageQueue, который может быть использован для доступа к очереди сообщений System V или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр SysvMessageQueue; ранее возвращался ресурс (resource).

Смотрите также

  • 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, PHP 8)

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, PHP 8)

msg_receive — Получение сообщения из очереди сообщений

Описание

msg_receive(
SysvMessageQueue $queue,
int $desired_message_type,
int &$received_message_type,
int $max_message_size,
mixed &$message,
bool $unserialize = true,
int $flags = 0,
int &$error_code = null
): bool

msg_receive() получает первое сообщение из задаваемой параметром queue очереди сообщений с типом, указанным в desired_message_type.

Список параметров

queue

Очередь сообщений.

desired_message_type

Если в desired_message_type указано 0, возвращается первое сообщение из очереди. Если desired_message_type больше 0, то возвращается первое сообщение с указанным типом. Если desired_message_type меньше 0, то возвращается первое сообщение с типом, меньшим или равным по модулю указанному в desired_message_type. Если нет сообщений, соответствующих критериям, ваш скрипт ожидает их появления в очереди. Вы можете изменить это поведение, указав MSG_IPC_NOWAIT в параметре flags.

received_message_type

В этом параметре сохраняется тип полученного сообщения.

max_message_size

Максимальный размер принимаемого сообщения задаётся в max_message_size; если сообщение в очереди больше этого размера, то функция завершается ошибкой (если вы не установите flags как описано ниже).

message

Полученное сообщение сохраняется в message, если не было ошибок при получении.

unserialize

Если установлено в true, сообщение рассматривается как сериализованое с использованием того же механизма, что и в модуле сессий. Сообщение десериализуется, а затем возвращается в ваш скрипт. Это позволяет вам легко получать массивы и сложные объекты из других PHP-скриптов, или, если вы используете WDDX-сериализатор, из любых совместимых с WDDX источников.

Если в unserialize указано false, сообщение возвращается в виде бинарно-безопасной строки.

flags

Необязательный параметр flags позволяет вам передать флажки в низкоуровневый системный вызов msgrcv. По умолчанию его значение 0, однако вы можете указать одно или несколько следующих значений (складывая их или выполняя операцию бинарного ИЛИ).

Flag values for msg_receive
MSG_IPC_NOWAIT | Если нет сообщений, удовлетворяющих условиям desired_message_type, возвращаться немедленно, а не ждать. Функция завершается ошибкой и возвращает целочисленное значение MSG_ENOMSG.
MSG_EXCEPT | Использование этого флага в комбинации с указанным в desired_message_type положительным значением, позволяет получить первое сообщение, тип которого не равен значению desired_message_type.
MSG_NOERROR | Если размер сообщения превышает max_message_size, то установка этого флага приводит к усечению сообщения до max_message_size без сигнализирования об ошибке.

error_code

Если функция завершается аварийно, необязательный параметр error_code будет содержать значение системной переменной errno.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

При успешном завершении, структура данных очереди сообщений обновляется следующим образом: msg_lrpid содержит идентификатор вызвавшего процесса, msg_qnum уменьшается на 1 и msg_rtime устанавливается соответственно текущему времени.

Список изменений

Версия | Описание
8.0.0 | Параметр queue теперь ожидает экземпляр SysvMessageQueue; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8)

msg_remove_queue — Удаление очереди сообщений

Описание

msg_remove_queue(SysvMessageQueue $queue): bool

msg_remove_queue() удаляет очередь сообщений, указанную в параметре queue. Используйте эту функцию только тогда, когда все использовавшие очередь сообщений процессы завершили работу с ней и вам необходимо освободить системные ресурсы.

Список параметров

queue

Очередь сообщений.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр queue теперь ожидает экземпляр SysvMessageQueue; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8)

msg_send — Отправка сообщения в очередь сообщений

Описание

msg_send(
SysvMessageQueue $queue,
int $message_type,
string|int|float|bool $message,
bool $serialize = true,
bool $blocking = true,
int &$error_code = null
): bool

msg_send() отправляет сообщение message с типом message_type (должно быть больше 0) в очередь сообщений, указанную параметром queue.

Список параметров

queue

Очередь сообщений.

message_type

Тип сообщения. Должно быть больше 0.

message

Тело сообщения.

Замечание:

Если serialize задано как false, ДОЛЖНО быть типа: string, int, float или bool. Иначе будет выведено предупреждение.

serialize

Необязательный параметр serialize управляет тем, как будет отправлено сообщение message. По умолчанию serialize имеет значение true, что означает сериализацию message перед отправкой тем же механизмом, который используется модулем обработки сессий. Это позволяет отправлять сложные массивы и объекты в другие PHP-скрипты, или, если вы используете сериализацию WDDX, в другие совместимые с WDDX клиенты.

blocking

Если помещаемое в очередь сообщение слишком велико, ваш скрипт будет ожидать прочтения сообщений другим процессом и освобождения места под отправляемое вами сообщение. Это называется блокировкой; вы можете отключить эту возможность, установив для blocking значение false, в этом случае msg_send() будет немедленно возвращать false если сообщение слишком велико, и устанавливать необязательный параметр error_code в значение MSG_EAGAIN, что будет указывать вам на необходимость попробовать отправить сообщение несколько позже.

error_code

Если функция отработает неудачно, то этот код будет записан в системную переменную errno.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

При успешном завершении структура данных очереди сообщений обновится следующим образом: msg_lspid будет содержать идентификатор вызвавшего процесса, msg_qnum увеличится на 1, а msg_stime будет содержать текущее время.

Список изменений

Версия | Описание
8.0.0 | Параметр queue теперь ожидает экземпляр SysvMessageQueue; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8)

msg_set_queue — Установка информации в структуре данных очереди сообщений

Описание

msg_set_queue(SysvMessageQueue $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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр queue теперь ожидает экземпляр SysvMessageQueue; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8)

msg_stat_queue — Получение информации из структуры данных очереди сообщений

Описание

msg_stat_queue(SysvMessageQueue $queue): array|false

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 процесса, последним получившим сообщение из очереди.

Возвращает false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр queue теперь ожидает экземпляр SysvMessageQueue; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8)

sem_acquire — Захват семафора

Описание

sem_acquire(SysvSemaphore $semaphore, bool $non_blocking = false): bool

sem_acquire() блокируется (при необходимости) до момента захвата семафора. Процесс, который попытается захватить семафор уже захваченный им же будет заблокирован навсегда, если будет превышено максимальное значение семафора.

После выполнения запроса, все захваченные, но явно не освобождённые процессом, семафоры освобождаются автоматически и генерируется предупреждение.

Список параметров

semaphore

semaphore - семафор.

non_blocking

Указывает, должен ли процесс ждать для захвата семафора. Если установлено в true, вызов немедленно вернёт false, если семафор не может быть захвачен.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр semaphore теперь ожидает экземпляр SysvSemaphore; ранее ожидался ресурс (resource).

Смотрите также

  • sem_get() - Получение идентификатора семафора
  • sem_release() - Освобождение семафора


Получение идентификатора семафора

  • « sem_acquire
  • sem_release »
  • PHP Manual
  • Функции семафоров
  • Получение идентификатора семафора

sem_get

(PHP 4, PHP 5, PHP 7, PHP 8)

sem_get — Получение идентификатора семафора

Описание

sem_get(
int $key,
int $max_acquire = 1,
int $permissions = 0666,
bool $auto_release = true
): SysvSemaphore|false

sem_get() возвращает идентификатор, который может быть использован для доступа к семафору System V, по заданному значению key.

Последующие вызовы sem_get() для того же самого ключа будут возвращать другие идентификаторы, однако все они будут ссылаться на один и тот же семафор.

Если key равен 0, то для каждого вызова sem_get() создаётся новый приватный семафор.

Список параметров

key

max_acquire

Число процессов, которые могут одновременно использовать семафор задаётся через max_acquire.

permissions

Права доступа к семафору. В действительности, устанавливается только если процесс является единственным использующим семафор.

auto_release

Определяет, должен ли семафор автоматически освобождаться при завершении работы.

Возвращаемые значения

При успешном завершении возвращается положительный идентификатор семафора, или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр SysvSemaphore; ранее возвращался ресурс (resource).
8.0.0 | Тип auto_release изменён с целого числа (int) на логическое значение (bool).

Примечания

Внимание

Когда 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, PHP 8)

sem_release — Освобождение семафора

Описание

sem_release(SysvSemaphore $semaphore): bool

sem_release() освобождает семафор, если он был захвачен вызывающим процессом, в противном случае генерируется предупреждение.

После освобождения семафор может быть захвачен повторно через вызов sem_acquire().

Список параметров

semaphore

Семафор, возвращённый sem_get().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр semaphore теперь ожидает экземпляр SysvSemaphore; ранее ожидался ресурс (resource).

Смотрите также

  • sem_get() - Получение идентификатора семафора
  • sem_acquire() - Захват семафора


Удаление семафора

  • « sem_release
  • shm_attach »
  • PHP Manual
  • Функции семафоров
  • Удаление семафора

sem_remove

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

sem_remove — Удаление семафора

Описание

sem_remove(SysvSemaphore $semaphore): bool

sem_remove() удаляет указанный семафор.

После удаления семафора он становится недоступным.

Список параметров

semaphore

Семафор, возвращённый sem_get().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр semaphore теперь ожидает экземпляр SysvSemaphore; ранее ожидался ресурс (resource).

Смотрите также

  • sem_get() - Получение идентификатора семафора
  • sem_release() - Освобождение семафора
  • sem_acquire() - Захват семафора


Создаёт или открывает сегмент разделяемой памяти

  • « sem_remove
  • shm_detach »
  • PHP Manual
  • Функции семафоров
  • Создаёт или открывает сегмент разделяемой памяти

shm_attach

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_attach — Создаёт или открывает сегмент разделяемой памяти

Описание

shm_attach(int $key, ?int $size = null, int $permissions = 0666): SysvSharedMemory|false

shm_attach() возвращает идентификатор, который можно использовать для доступа к разделяемой памяти System V по заданному ключу key. Первый вызов создаёт сегмент размером size и опциональными битами прав доступа permissions.

Следующий вызов shm_attach() с тем же ключом key вернёт другой экземпляр SysvSharedMemory, но они оба будут указывать на один и тот же сегмент разделяемой памяти. Параметры size и permissions будут проигнорированы.

Список параметров

key

Числовой идентификатор сегмента разделяемой памяти

size

Размер памяти. Если не задан, то по умолчанию будет использоваться sysvshm.init_mem в php.ini. Если не задан и он, тогда 10000 байт.

permissions

Опциональные биты прав доступа. По умолчанию 0666.

Возвращаемые значения

Возвращает экземпляр SysvSharedMemory в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр SysvSharedMemory; ранее возвращался ресурс (resource).
8.0.0 | size теперь допускает значение null.

Смотрите также

  • shm_detach() - Отключается от сегмента разделяемой памяти
  • ftok() - Преобразование пути и идентификатора проекта в ключ System V IPC


Отключается от сегмента разделяемой памяти

  • « shm_attach
  • shm_get_var »
  • PHP Manual
  • Функции семафоров
  • Отключается от сегмента разделяемой памяти

shm_detach

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_detach — Отключается от сегмента разделяемой памяти

Описание

shm_detach(SysvSharedMemory $shm): bool

shm_detach() отключается от сегмента разделяемой памяти, указанного в shm, созданного shm_attach(). Помните, что разделяемая память всё ещё существует в системе Unix и данные всё ещё присутствуют.

Список параметров

shm

Сегмент разделяемой памяти, полученный из shm_attach().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | shm ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource).

Смотрите также

  • shm_attach() - Создаёт или открывает сегмент разделяемой памяти
  • shm_remove() - Удаляет разделяемую память из систем Unix
  • shm_remove_var() - Удаляет переменную из разделяемой памяти


Возвращает переменную из разделяемой памяти

  • « shm_detach
  • shm_has_var »
  • PHP Manual
  • Функции семафоров
  • Возвращает переменную из разделяемой памяти

shm_get_var

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_get_var — Возвращает переменную из разделяемой памяти

Описание

shm_get_var(SysvSharedMemory $shm, int $key): mixed

shm_get_var() возвращает переменную по ключу key в указанном сегменте разделяемой памяти. Переменная всё ещё присутствует в разделяемой памяти.

Список параметров

shm

Сегмент разделяемой памяти, полученный из shm_attach().

key

Ключ переменной.

Возвращаемые значения

Возвращает переменную с заданным ключом.

Список изменений

Версия | Описание
8.0.0 | shm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource).

Смотрите также

  • shm_has_var() - Проверяет, существует ли конкретная запись
  • shm_put_var() - Вставляет или обновляет переменную в разделяемой памяти


Проверяет, существует ли конкретная запись

  • « shm_get_var
  • shm_put_var »
  • PHP Manual
  • Функции семафоров
  • Проверяет, существует ли конкретная запись

shm_has_var

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

shm_has_var — Проверяет, существует ли конкретная запись

Описание

shm_has_var(SysvSharedMemory $shm, int $key): bool

Проверяет, существует ли конкретный ключ в сегменте разделяемой памяти.

Список параметров

shm

Сегмент разделяемой памяти, полученный из shm_attach().

key

Ключ переменной.

Возвращаемые значения

Возвращает true, если запись существует, в противном случае возвращает false.

Список изменений

Версия | Описание
8.0.0 | shm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource).

Смотрите также

  • shm_get_var() - Возвращает переменную из разделяемой памяти
  • shm_put_var() - Вставляет или обновляет переменную в разделяемой памяти


Вставляет или обновляет переменную в разделяемой памяти

  • « shm_has_var
  • shm_remove_var »
  • PHP Manual
  • Функции семафоров
  • Вставляет или обновляет переменную в разделяемой памяти

shm_put_var

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_put_var — Вставляет или обновляет переменную в разделяемой памяти

Описание

shm_put_var(SysvSharedMemory $shm, int $key, mixed $value): bool

shm_put_var() добавляет или обновляет value с заданным ключом key.

Будет выдана ошибка (уровня E_WARNING), если shm не является допустимым индексом разделяемой памяти SysV или если разделяемой памяти недостаточно для выполнения вашего запроса.

Список параметров

shm

Сегмент разделяемой памяти, полученный из shm_attach().

key

Ключ переменной.

value

Переменная. Могут использоваться все типы переменной, которые поддерживают serialize(): обычно это означает все типы, кроме ресурсов и некоторых внутренних объектов, которые не могут быть сериализованы.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | shm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource).

Смотрите также

  • shm_get_var() - Возвращает переменную из разделяемой памяти
  • shm_has_var() - Проверяет, существует ли конкретная запись


Удаляет переменную из разделяемой памяти

  • « shm_put_var
  • shm_remove »
  • PHP Manual
  • Функции семафоров
  • Удаляет переменную из разделяемой памяти

shm_remove_var

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_remove_var — Удаляет переменную из разделяемой памяти

Описание

shm_remove_var(SysvSharedMemory $shm, int $key): bool

Удаляет переменную с заданным ключом key и освобождает занятую память.

Список параметров

shm

Сегмент разделяемой памяти, полученный из shm_attach().

key

Ключ переменной.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | shm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource).

Смотрите также

  • shm_remove() - Удаляет разделяемую память из систем Unix


Удаляет разделяемую память из систем Unix

  • « shm_remove_var
  • SysvMessageQueue »
  • PHP Manual
  • Функции семафоров
  • Удаляет разделяемую память из систем Unix

shm_remove

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_remove — Удаляет разделяемую память из систем Unix

Описание

shm_remove(SysvSharedMemory $shm): bool

shm_remove() удаляет разделяемую память shm. Все данные будут уничтожены.

Список параметров

shm

Сегмент разделяемой памяти, полученный из shm_attach().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | shm теперь ожидает экземпляр SysvSharedMemory; ранее ожидался ресурс (resource).

Смотрите также

  • shm_remove_var() - Удаляет переменную из разделяемой памяти


Класс SysvMessageQueue

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурс sysvmsg queue в PHP 8.0.0.

Обзор классов

final class SysvMessageQueue {
}


Класс SysvSemaphore

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурс sysvsem в PHP 8.0.0.

Обзор классов

final class SysvSemaphore {
}


Класс SysvSharedMemory

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурс sysvshm в PHP 8.0.0.

Обзор классов

final class SysvSharedMemory {
}


Управление разделяемой памятью

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
    • Базовое использование
  • Разделяемая (shared) память
    • shmop_close — Закрытие блока разделяемой памяти
    • shmop_delete — Удаление блока разделяемой памяти
    • shmop_open — Резервирование или использование блока разделяемой памяти
    • shmop_read — Чтение данных из участка разделяемой памяти
    • shmop_size — Возвращает размер блока в разделяемой памяти
    • shmop_write — Запись данных в разделяемую память
  • Shmop — Класс Shmop


Введение

Набор функций shmop позволяет легко выполнять операции чтения, записи, резервирования и удаления сегментов разделяемой памяти Unix.


Установка

Для использования набора функций shmop необходимо скомпилировать PHP с опцией --enable-shmop в строке конфигурации.


  • « Настройка во время выполнения
  • Предопределённые константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

До PHP 8.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, PHP 8)

shmop_close — Закрытие блока разделяемой памяти

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

shmop_close(Shmop $shmop): void

Замечание:

Использование функции больше не имеет смысла. До PHP 8.0.0 она использовалась для закрытия ресурса.

shmop_close() используется для завершения доступа к блоку разделяемой памяти.

Список параметров

shmop

Ресурс блока памяти, возвращаемый функцией shmop_open()

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | Параметр shmop ожидает экземпляр Shmop; ранее ожидался ресурс (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, PHP 8)

shmop_delete — Удаление блока разделяемой памяти

Описание

shmop_delete(Shmop $shmop): bool

shmop_delete() используется для удаления блока разделяемой памяти.

Список параметров

shmop

Ресурс блока памяти, возвращаемый функцией shmop_open()

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр shmop ожидает экземпляр Shmop; ранее ожидался ресурс (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, PHP 8)

shmop_open — Резервирование или использование блока разделяемой памяти

Описание

shmop_open(
int $key,
string $mode,
int $permissions,
int $size
): Shmop|false

shmop_open() резервирует или использует существующий блок разделяемой памяти.

Список параметров

key

Системный идентификатор блока разделяемой памяти. Может быть задан в десятичной или шестнадцатеричной кодировке.

mode

Доступные для использования флаги:

  • "a" для доступа (устанавливает флаг SHM_RDONLY) Следует применять этот флаг, когда необходимо использовать ранее зарезервированный участок разделяемой памяти, уже содержащий какие-либо данные. В этом случае доступ возможен только для операций чтения.
  • "c" для резервирования (устанавливает флаг IPC_CREATE) Следует применять этот флаг для создания нового зарезервированного участка разделяемой памяти. Если участок памяти с таким идентификатором уже существует, выполняется попытка доступа к нему для последующих операций чтения и записи.
  • "w" для выполнения операций чтения и записи Следует применять этот флаг для чтения и записи данных, хранимых в разделяемой памяти. Данный флаг используется в большинстве случаев.
  • "n" для создания в памяти нового сегмента (устанавливает флаг IPC_CREATE|IPC_EXCL) Следует применять этот флаг для создания нового сегмента в разделяемой памяти, но если сегмент уже существует с тем же флагом, происходит отказ. Это полезно в целях безопасности, т.к. позволяет избежать ошибок синхронизации (Race condition exploits).

permissions

Права доступа к участку памяти такие же, как к обычному файлу. Их можно указывать в восьмеричном виде, например 0644.

size

Размер резервируемого блока в разделяемой памяти в байтах

Замечание:

Обратите внимание: третий и четвёртый параметры должны быть указаны как 0, если необходимо получить доступ к существующему участку памяти.

Возвращаемые значения

В случае успешного выполнения shmop_open() возвращает экземпляр Shmop, который может быть в дальнейшем использован для доступа к зарезервированному участку памяти. В случае возникновения ошибки возвращает false.

Ошибки

Если параметр mode указан некорректно или параметр size меньше или равен нулю, выдаётся ошибка ValueError. В случае возникновения других ошибок выдаётся ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения возвращается экземпляр Shmop; ранее возвращался ресурс (resource).
8.0.0 | Если параметр mode указан некорректно или параметр size меньше или равен нулю, выдаётся ошибка ValueError. previously E_WARNING was emitted instead, ранее вместо этого выдавалась ошибка уровня E_WARNING и функция возвращала false.

Примеры

Пример #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, PHP 8)

shmop_read — Чтение данных из участка разделяемой памяти

Описание

shmop_read(Shmop $shmop, int $offset, int $size): string

shmop_read() возвращает строковые данные, хранимые в участке разделяемой памяти.

Список параметров

shmop

Ресурс блока памяти, возвращаемый функцией shmop_open()

offset

Смещение, с которого начинается чтение; должно быть больше или равно нулю и меньше или равно фактическому размеру сегмента разделяемой памяти.

size

Количество байтов для чтения; должно быть больше или равно нулю, а сумма offset и size должна быть меньше или равна фактическому размеру сегмента разделяемой памяти. 0 считывает байты shmop_size($shmid) - $start.

Возвращаемые значения

Возвращает строковые данные или false в случае возникновения ошибки.

Ошибки

Если параметр offset или size находятся вне допустимого диапазона, выбрасывается исключение ValueError.

Список изменений

Версия | Описание
8.0.0 | Параметр shmop ожидает экземпляр Shmop; ранее ожидался ресурс (resource).
8.0.0 | Если параметр offset или size находятся вне допустимого диапазона, выбрасывается исключение ValueError; ранее выдавалась ошибка уровня E_WARNING и функция возвращала значение false.

Примеры

Пример #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, PHP 8)

shmop_size — Возвращает размер блока в разделяемой памяти

Описание

shmop_size(Shmop $shmop): int

shmop_size() используется для получения размера блока разделяемой памяти в байтах.

Список параметров

shmop

Ресурс блока памяти, возвращаемый функцией shmop_open()

Возвращаемые значения

Результатом является целое число, отражающее количество байт, зарезервированных в разделяемой памяти для конкретного блока.

Список изменений

Версия | Описание
8.0.0 | Параметр shmop ожидает экземпляр Shmop; ранее ожидался ресурс (resource).

Примеры

Пример #1 Получение размера блока разделяемой памяти

<?php
$shm_size = shmop_size($shm_id);
?>

В приведённом примере показано получение размера блока с идентификатором $shm_id и его сохранение в $shm_size.


Запись данных в разделяемую память

  • « shmop_size
  • Shmop »
  • PHP Manual
  • Разделяемая (shared) память
  • Запись данных в разделяемую память

shmop_write

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_write — Запись данных в разделяемую память

Описание

shmop_write(Shmop $shmop, string $data, int $offset): int

shmop_write() записывает строковые данные в участок разделяемой памяти.

Список параметров

shmop

Ресурс блока памяти, возвращаемый функцией shmop_open()

data

Строковые данные для размещения в памяти

offset

Определяет, в каком месте участка памяти следует начать запись данных. Смещение должно быть больше или равно нулю и меньше или равно фактическому размеру сегмента разделяемой памяти.

Возвращаемые значения

Размер записанных данных, переданных через параметр data.

Ошибки

Если параметр offset находится вне диапазона или в сегмент разделяемой памяти, доступный только для чтения, должна быть произведена запись, будет выброшена ошибка ValueError.

Список изменений

Версия | Описание
8.0.0 | До PHP 8.0.0 в случае возникновения ошибки возвращалось false.
8.0.0 | Параметр shmop ожидает экземпляр Shmop; ранее ожидался ресурс (resource).

Примеры

Пример #1 Запись данных в участок разделяемой памяти

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

В данном примере в память помещается содержимое строковой переменной $my_string, после чего переменная $shm_bytes_written будет содержать размер фактически записанных данных.

Смотрите также

  • shmop_read() - Чтение данных из участка разделяемой памяти


Класс Shmop

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы shmop в PHP 8.0.0.

Обзор классов

final class Shmop {
}


Sync

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • SyncMutex — Класс SyncMutex
    • SyncMutex::__construct — Создаёт новый объект SyncMutex
    • SyncMutex::lock — Ждёт эксклюзивной блокировки
    • SyncMutex::unlock — Разблокирует мьютекс
  • SyncSemaphore — Класс SyncSemaphore
    • SyncSemaphore::__construct — Создаёт новый объект SyncSemaphore
    • SyncSemaphore::lock — Уменьшает счёт семафора или ждёт
    • SyncSemaphore::unlock — Увеличивает счёт семафора
  • SyncEvent — Класс SyncEvent
    • SyncEvent::__construct — Создаёт новый объект SyncEvent
    • SyncEvent::fire — Запускает/устанавливает событие
    • SyncEvent::reset — Сбрасывает ручное событие
    • SyncEvent::wait — Ожидает запуска/установки события
  • SyncReaderWriter — Класс SyncReaderWriter
    • SyncReaderWriter::__construct — Создаёт новый объект SyncReaderWriter
    • SyncReaderWriter::readlock — Ожидает блокировки чтения
    • SyncReaderWriter::readunlock — Снимает блокировку чтения
    • SyncReaderWriter::writelock — Ожидает эксклюзивной блокировки записи
    • SyncReaderWriter::writeunlock — Снимает блокировку записи
  • SyncSharedMemory — Класс SyncSharedMemory
    • SyncSharedMemory::__construct — Создаёт новый объект SyncSharedMemory
    • SyncSharedMemory::first — Проверяет, является ли объект первым общесистемным экземпляром именованной разделяемой памяти
    • SyncSharedMemory::read — Копирует данные из именованной разделяемой памяти
    • SyncSharedMemory::size — Возвращает размер именованной разделяемой памяти
    • SyncSharedMemory::write — Копирует данные в именованную разделяемую память


Введение

Модуль 'sync' вводит кроссплатформенные объекты синхронизации в PHP. Именованные и безымянные объекты Mutex, Semaphore, Event, Reader-Writer и именованная общая память обеспечивают синхронизацию на уровне ОС как на платформах POSIX (например, Linux), так и на платформах Windows.

Автоматическая очистка полученных объектов синхронизации происходит во время демонтажа модуля. Это означает, что если PHP преждевременно завершает выполнение скрипта (например, превышено время выполнения скрипта), объекты не останутся в неизвестном состоянии. Единственное исключение из этого - случай сбоя самого PHP (например, переполнение внутреннего буфера).

Безымянные объекты синхронизации не имеют большого применения вне многопоточного сценария. Безымянные объекты более полезны в сочетании с модулем pthreads PECL.

Замечание:

Именованные объекты требуют дополнительного ухода для использования во всех системах. Если объект создаётся с определённым набором параметров, он всегда должен создаваться с этими параметрами, иначе объект может оказаться в несовместимом состоянии до следующей перезагрузки или пока системный администратор не исправит беспорядок.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Система с поддержкой общей памяти POSIX (shm_open()) или под управлением Windows.


Установка

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/sync.


  • « Типы ресурсов
  • SyncMutex »
  • PHP Manual
  • Sync
  • Предопределённые константы

Предопределённые константы

Данный модуль не определяет никакие константы.


Класс SyncMutex

(PECL sync >= 1.0.0)

Введение

Кроссплатформенная, нативная реализация именованных и безымянных счётных объектов мьютекса.

Мьютекс - это объект взаимного исключения, который ограничивает доступ к общему ресурсу (например, файлу) для одного экземпляра. Счётные мьютексы получают мьютекс один раз и внутренне отслеживают, сколько раз мьютекс был заблокирован. Мьютекс разблокируется, как только он выходит из области действия или разблокируется столько раз, сколько он был заблокирован.

Обзор классов

class SyncMutex {
/* Методы */
public __construct(string $name = ?)
public lock(int $wait = -1): bool
public unlock(bool $all = false): bool
}

Содержание

  • SyncMutex::__construct — Создаёт новый объект SyncMutex
  • SyncMutex::lock — Ждёт эксклюзивной блокировки
  • SyncMutex::unlock — Разблокирует мьютекс


Создаёт новый объект SyncMutex

  • « SyncMutex
  • SyncMutex::lock »
  • PHP Manual
  • SyncMutex
  • Создаёт новый объект SyncMutex

SyncMutex::__construct

(PECL sync >= 1.0.0)

SyncMutex::__construct — Создаёт новый объект SyncMutex

Описание

public SyncMutex::__construct(string $name = ?)

Создаёт именованный или безымянный счётный мьютекс.

Список параметров

name

Имя мьютекса, если это именованный объект мьютекса.

Замечание:

Если имя уже существует, оно должно быть доступно для открытия текущим пользователем, от имени которого запущен процесс, иначе будет выброшено исключение с бессмысленным сообщением об ошибке.

Возвращаемые значения

Новый объект SyncMutex.

Ошибки

Если мьютекс не может быть создан или открыт, выбрасывается исключение.

Примеры

Пример #1 Пример использования SyncMutex::__construct() для создания именованного мьютекса со временем ожидания

<?php
$mutex = new SyncMutex("UniqueName");

if (!$mutex->lock(3000))
{
echo "Невозможно создать мьютеккс.";

exit();
}

/* ... */

$mutex->unlock();
?>

Пример #2 Пример использования SyncMutex::__construct() для создания безымянного мьютекса

<?php
$mutex = new SyncMutex();

$mutex->lock();

/* ... */

$mutex->unlock();
?>

Смотрите также

  • SyncMutex::lock() - Ждёт эксклюзивной блокировки
  • SyncMutex::unlock() - Разблокирует мьютекс


Ждёт эксклюзивной блокировки

  • « SyncMutex::__construct
  • SyncMutex::unlock »
  • PHP Manual
  • SyncMutex
  • Ждёт эксклюзивной блокировки

SyncMutex::lock

(PECL sync >= 1.0.0)

SyncMutex::lock — Ждёт эксклюзивной блокировки

Описание

public SyncMutex::lock(int $wait = -1): bool

Получает эксклюзивную блокировку объекта SyncMutex. Если блокировка уже установлена, внутренний счётчик увеличивается.

Список параметров

wait

Количество миллисекунд ожидания эксклюзивной блокировки. Значение -1 означает бесконечное время ожидания.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SyncMutex::lock()

<?php
$mutex = new SyncMutex("UniqueName");

if (!$mutex->lock(3000))
{
echo "Невозможно заблокировать мьютекс.";

exit();
}

/* ... */

$mutex->unlock();
?>

Смотрите также

  • SyncMutex::unlock() - Разблокирует мьютекс


Разблокирует мьютекс

  • « SyncMutex::lock
  • SyncSemaphore »
  • PHP Manual
  • SyncMutex
  • Разблокирует мьютекс

SyncMutex::unlock

(PECL sync >= 1.0.0)

SyncMutex::unlock — Разблокирует мьютекс

Описание

public SyncMutex::unlock(bool $all = false): bool

Уменьшает внутренний счётчик объекта SyncMutex. Когда внутренний счётчик достигает нуля, фактическая блокировка объекта снимается.

Список параметров

all

Определяет, устанавливать ли внутренний счётчик на ноль и, следовательно, снимать блокировку.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SyncMutex::unlock()

<?php
$mutex = new SyncMutex("UniqueName");

$mutex->lock();

/* ... */

$mutex->unlock();
?>

Смотрите также

  • SyncMutex::lock() - Ждёт эксклюзивной блокировки


Класс SyncSemaphore

(PECL sync >= 1.0.0)

Введение

Кроссплатформенная, нативная реализация именованных и безымянных объектов семафоров.

Семафор ограничивает доступ к ограниченному ресурсу ограниченным числом экземпляров. Семафоры отличаются от мьютексов тем, что они могут разрешить доступ к ресурсу более чем одному экземпляру одновременно, в то время как мьютекс допускает только один экземпляр за раз.

Обзор классов

class SyncSemaphore {
/* Методы */
public __construct(string $name = ?, int $initialval = 1, bool $autounlock = true)
public lock(int $wait = -1): bool
public unlock(int &$prevcount = ?): bool
}

Содержание

  • SyncSemaphore::__construct — Создаёт новый объект SyncSemaphore
  • SyncSemaphore::lock — Уменьшает счёт семафора или ждёт
  • SyncSemaphore::unlock — Увеличивает счёт семафора


Создаёт новый объект SyncSemaphore

  • « SyncSemaphore
  • SyncSemaphore::lock »
  • PHP Manual
  • SyncSemaphore
  • Создаёт новый объект SyncSemaphore

SyncSemaphore::__construct

(PECL sync >= 1.0.0)

SyncSemaphore::__construct — Создаёт новый объект SyncSemaphore

Описание

public SyncSemaphore::__construct(string $name = ?, int $initialval = 1, bool $autounlock = true)

Создаёт именованный или безымянный семафор.

Список параметров

name

Имя семафора, если это именованный объект семафора.

Замечание:

Если имя уже существует, оно должно быть доступно для открытия текущим пользователем, от имени которого запущен процесс, иначе будет выброшено исключение с бессмысленным сообщением об ошибке.

initialval

Начальное значение семафора. Это количество блокировок, которое можно получить.

autounlock

Указывает, следует ли автоматически разблокировать семафор при завершении скрипта PHP.

Внимание

Если объект - это: именованный семафор с autounlock со значением false, объект заблокирован и скрипт PHP завершается до того, как объект разблокируется, то базовый семафор окажется в несогласованном состоянии.

Возвращаемые значения

Новый объект SyncSemaphore.

Ошибки

Если семафор не может быть создан или открыт, выбрасывается исключение.

Примеры

Пример #1 Пример использования SyncSemaphore::__construct()

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
echo "Невозможно заблокировать семафор.";

exit();
}

/* ... */

$semaphore->unlock();
?>

Смотрите также

  • SyncSemaphore::lock() - Уменьшает счёт семафора или ждёт
  • SyncSemaphore::unlock() - Увеличивает счёт семафора


Уменьшает счёт семафора или ждёт

  • « SyncSemaphore::__construct
  • SyncSemaphore::unlock »
  • PHP Manual
  • SyncSemaphore
  • Уменьшает счёт семафора или ждёт

SyncSemaphore::lock

(PECL sync >= 1.0.0)

SyncSemaphore::lock — Уменьшает счёт семафора или ждёт

Описание

public SyncSemaphore::lock(int $wait = -1): bool

Уменьшает счётчик объекта SyncSemaphore или ждёт, пока семафор не станет отличным от нуля.

Список параметров

wait

Количество миллисекунд ожидания семафора. Значение -1 бесконечно.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SyncSemaphore::lock()

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
echo "Невозможно заблокировать семафор.";

exit();
}

/* ... */

$semaphore->unlock();
?>

Смотрите также

  • SyncSemaphore::unlock() - Увеличивает счёт семафора


Увеличивает счёт семафора

  • « SyncSemaphore::lock
  • SyncEvent »
  • PHP Manual
  • SyncSemaphore
  • Увеличивает счёт семафора

SyncSemaphore::unlock

(PECL sync >= 1.0.0)

SyncSemaphore::unlock — Увеличивает счёт семафора

Описание

public SyncSemaphore::unlock(int &$prevcount = ?): bool

Увеличивает счёт объекта SyncSemaphore.

Список параметров

prevcount

Возвращает предыдущее значение счётчика семафора.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SyncSemaphore::unlock()

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
echo "Невозможно заблокировать семафор.";

exit();
}

/* ... */

$semaphore->unlock();
?>

Смотрите также

  • SyncSemaphore::lock() - Уменьшает счёт семафора или ждёт


Класс SyncEvent

(PECL sync >= 1.0.0)

Введение

Кроссплатформенная, нативная реализация именованных и безымянных объектов событий. Поддерживаются как автоматические, так и ручные объекты событий.

Объект события без опроса ожидает запуска/установки объекта. Один экземпляр ожидает объекта события, а другой запускает/устанавливает событие. Объекты событий полезны там, где в противном случае длительный процесс мог бы опросить ресурс (например, проверить, нужно ли обрабатывать загруженные данные).

Обзор классов

class SyncEvent {
/* Методы */
public __construct(string $name = ?, bool $manual = false, bool $prefire = false)
public fire(): bool
public reset(): bool
public wait(int $wait = -1): bool
}

Содержание

  • SyncEvent::__construct — Создаёт новый объект SyncEvent
  • SyncEvent::fire — Запускает/устанавливает событие
  • SyncEvent::reset — Сбрасывает ручное событие
  • SyncEvent::wait — Ожидает запуска/установки события


Создаёт новый объект SyncEvent

  • « SyncEvent
  • SyncEvent::fire »
  • PHP Manual
  • SyncEvent
  • Создаёт новый объект SyncEvent

SyncEvent::__construct

(PECL sync >= 1.0.0)

SyncEvent::__construct — Создаёт новый объект SyncEvent

Описание

public SyncEvent::__construct(string $name = ?, bool $manual = false, bool $prefire = false)

Создаёт именованный или безымянный объект события.

Список параметров

name

Имя события, если это именованный объект события.

Замечание:

Если имя уже существует, оно должно быть доступно для открытия текущим пользователем, от имени которого запущен процесс, иначе будет выброшено исключение с бессмысленным сообщением об ошибке.

manual

Определяет, нужно ли сбрасывать объект события вручную.

Замечание:

Объекты событий со сбросом вручную позволяют выполнять все ожидающие процессы, пока объект не будет сброшен.

prefire

Определяет, следует ли предварительно активировать (сигнализировать) объект события.

Замечание:

Имеет значение только в том случае, если вызывающий процесс/поток первым создаёт объект.

Возвращаемые значения

Новый объект SyncEvent.

Ошибки

Если объект события не может быть создан или открыт, выбрасывается исключение.

Примеры

Пример #1 Пример использования SyncEvent::__construct()

<?php
// В веб-приложении:
$event = new SyncEvent("GetAppReport");
$event->fire();

// В задании cron:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Список изменений

Версия | Описание
PECL sync 1.1.0 | Добавлен параметр prefire.

Смотрите также

  • SyncEvent::fire() - Запускает/устанавливает событие
  • SyncEvent::reset() - Сбрасывает ручное событие
  • SyncEvent::wait() - Ожидает запуска/установки события


Запускает/устанавливает событие

  • « SyncEvent::__construct
  • SyncEvent::reset »
  • PHP Manual
  • SyncEvent
  • Запускает/устанавливает событие

SyncEvent::fire

(PECL sync >= 1.0.0)

SyncEvent::fire — Запускает/устанавливает событие

Описание

public SyncEvent::fire(): bool

Запускает/устанавливает объект SyncEvent. Позволяет проходить нескольким потокам, которые ожидают, если объект события был создан с параметром manual равным true.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SyncEvent::fire()

<?php
// В веб-приложении:
$event = new SyncEvent("GetAppReport");
$event->fire();

// В задании cron:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Смотрите также

  • SyncEvent::reset() - Сбрасывает ручное событие
  • SyncEvent::wait() - Ожидает запуска/установки события


Сбрасывает ручное событие

  • « SyncEvent::fire
  • SyncEvent::wait »
  • PHP Manual
  • SyncEvent
  • Сбрасывает ручное событие

SyncEvent::reset

(PECL sync >= 1.0.0)

SyncEvent::reset — Сбрасывает ручное событие

Описание

public SyncEvent::reset(): bool

Сбрасывает объект SyncEvent, который был запущен/установлен. Действительно только для объектов событий со сбросом вручную.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 SyncEvent::reset() example

<?php
// В веб-приложении:
$event = new SyncEvent("DemoApplication", true);
$event->wait();

// В задании cron:
$event = new SyncEvent("DemoApplication", true);
$event->reset();
/* ... Выполнение некоторых задач по обслуживанию ... */
$event->fire();
?>

Смотрите также

  • SyncEvent::fire() - Запускает/устанавливает событие
  • SyncEvent::reset()
  • SyncEvent::wait() - Ожидает запуска/установки события


Ожидает запуска/установки события

  • « SyncEvent::reset
  • SyncReaderWriter »
  • PHP Manual
  • SyncEvent
  • Ожидает запуска/установки события

SyncEvent::wait

(PECL sync >= 1.0.0)

SyncEvent::wait — Ожидает запуска/установки события

Описание

public SyncEvent::wait(int $wait = -1): bool

Ожидает запуска объекта SyncEvent.

Список параметров

wait

Количество миллисекунд ожидания запуска события. Значение -1 бесконечно.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SyncEvent::wait()

<?php
// В веб-приложении:
$event = new SyncEvent("GetAppReport");
$event->fire();

// В задании cron:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Смотрите также

  • SyncEvent::fire() - Запускает/устанавливает событие


Класс SyncReaderWriter

(PECL sync >= 1.0.0)

Введение

Кроссплатформенная, нативная реализация именованных и безымянных объектов чтения-записи.

Объект читатель-писатель позволяет многим читателям или одному писателю получить доступ к ресурсу. Это эффективное решение для управления ресурсами, где доступ будет главным образом только для чтения, но иногда необходим эксклюзивный доступ для записи.

Обзор классов

class SyncReaderWriter {
/* Методы */
public __construct(string $name = ?, int $autounlock = 1)
public readlock(int $wait = -1): bool
public readunlock(): bool
public writelock(int $wait = -1): bool
public writeunlock(): bool
}

Содержание

  • SyncReaderWriter::__construct — Создаёт новый объект SyncReaderWriter
  • SyncReaderWriter::readlock — Ожидает блокировки чтения
  • SyncReaderWriter::readunlock — Снимает блокировку чтения
  • SyncReaderWriter::writelock — Ожидает эксклюзивной блокировки записи
  • SyncReaderWriter::writeunlock — Снимает блокировку записи


Создаёт новый объект SyncReaderWriter

  • « SyncReaderWriter
  • SyncReaderWriter::readlock »
  • PHP Manual
  • SyncReaderWriter
  • Создаёт новый объект SyncReaderWriter

SyncReaderWriter::__construct

(PECL sync >= 1.0.0)

SyncReaderWriter::__construct — Создаёт новый объект SyncReaderWriter

Описание

public SyncReaderWriter::__construct(string $name = ?, int $autounlock = 1)

Создаёт именованный или безымянный объект чтения-записи.

Список параметров

name

Имя средства чтения-записи, если это именованный объект чтения-записи.

Замечание:

Если имя уже существует, оно должно быть доступно для открытия текущим пользователем, от имени которого запущен процесс, иначе будет выброшено исключение с бессмысленным сообщением об ошибке.

Замечание: В Windows параметр name не должен содержать обратных слешей.

autounlock

Указывает, следует ли автоматически разблокировать средство чтения-записи при завершении скрипта PHP.

Внимание

Если объект: Именованное средство чтения-записи с автоматической блокировкой FALSE, объект заблокирован для чтения или записи, и скрипт PHP завершается до того, как объект будет разблокирован, тогда базовые объекты окажутся в несогласованном состоянии.

Возвращаемые значения

Новый объект SyncReaderWriter.

Ошибки

Исключение выбрасывается, если средство чтения-записи не может быть создано или открыто.

Примеры

Пример #1 Пример использования SyncReaderWriter::__construct()

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();

$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Смотрите также

  • SyncReaderWriter::readlock() - Ожидает блокировки чтения
  • SyncReaderWriter::readunlock() - Снимает блокировку чтения
  • SyncReaderWriter::writelock() - Ожидает эксклюзивной блокировки записи
  • SyncReaderWriter::writeunlock() - Снимает блокировку записи


Ожидает блокировки чтения

  • « SyncReaderWriter::__construct
  • SyncReaderWriter::readunlock »
  • PHP Manual
  • SyncReaderWriter
  • Ожидает блокировки чтения

SyncReaderWriter::readlock

(PECL sync >= 1.0.0)

SyncReaderWriter::readlock — Ожидает блокировки чтения

Описание

public SyncReaderWriter::readlock(int $wait = -1): bool

Получает блокировку чтения объекта SyncReaderWriter.

Список параметров

wait

Количество миллисекунд ожидания блокировки. Значение -1 бесконечно.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SyncReaderWriter::readlock()

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();
?>

Смотрите также

  • SyncReaderWriter::readunlock() - Снимает блокировку чтения


Снимает блокировку чтения

  • « SyncReaderWriter::readlock
  • SyncReaderWriter::writelock »
  • PHP Manual
  • SyncReaderWriter
  • Снимает блокировку чтения

SyncReaderWriter::readunlock

(PECL sync >= 1.0.0)

SyncReaderWriter::readunlock — Снимает блокировку чтения

Описание

public SyncReaderWriter::readunlock(): bool

Снимает блокировку чтения объекта SyncReaderWriter.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SyncReaderWriter::readunlock()

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();
?>

Смотрите также

  • SyncReaderWriter::readlock() - Ожидает блокировки чтения


Ожидает эксклюзивной блокировки записи

  • « SyncReaderWriter::readunlock
  • SyncReaderWriter::writeunlock »
  • PHP Manual
  • SyncReaderWriter
  • Ожидает эксклюзивной блокировки записи

SyncReaderWriter::writelock

(PECL sync >= 1.0.0)

SyncReaderWriter::writelock — Ожидает эксклюзивной блокировки записи

Описание

public SyncReaderWriter::writelock(int $wait = -1): bool

Получает эксклюзивную блокировку записи для объекта SyncReaderWriter.

Список параметров

wait

Количество миллисекунд ожидания блокировки. Значение -1 бесконечно.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SyncReaderWriter::writelock()

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Смотрите также

  • SyncReaderWriter::writeunlock() - Снимает блокировку записи


Снимает блокировку записи

  • « SyncReaderWriter::writelock
  • SyncSharedMemory »
  • PHP Manual
  • SyncReaderWriter
  • Снимает блокировку записи

SyncReaderWriter::writeunlock

(PECL sync >= 1.0.0)

SyncReaderWriter::writeunlock — Снимает блокировку записи

Описание

public SyncReaderWriter::writeunlock(): bool

Снимает блокировку записи объекта SyncReaderWriter.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SyncReaderWriter::writeunlock()

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Смотрите также

  • SyncReaderWriter::writelock() - Ожидает эксклюзивной блокировки записи


Класс SyncSharedMemory

(PECL sync >= 1.1.0)

Введение

Кроссплатформенная, нативная, согласованная реализация именованных объектов общей памяти.

Совместно используемая память позволяет двум отдельным процессам обмениваться данными без необходимости в сложных каналах или сокетах. Существует несколько реализаций с общей памятью для PHP. Именованная общая память является альтернативой.

Объекты синхронизации (например, SyncMutex) всё ещё необходимы для защиты большинства видов использования общей памяти.

Обзор классов

class SyncSharedMemory {
/* Методы */
public __construct(string $name, int $size)
public first(): bool
public read(int $start = 0, int $length = ?)
public size(): int
public write(string $string = ?, int $start = 0)
}

Содержание

  • SyncSharedMemory::__construct — Создаёт новый объект SyncSharedMemory
  • SyncSharedMemory::first — Проверяет, является ли объект первым общесистемным экземпляром именованной разделяемой памяти
  • SyncSharedMemory::read — Копирует данные из именованной разделяемой памяти
  • SyncSharedMemory::size — Возвращает размер именованной разделяемой памяти
  • SyncSharedMemory::write — Копирует данные в именованную разделяемую память


Создаёт новый объект SyncSharedMemory

  • « SyncSharedMemory
  • SyncSharedMemory::first »
  • PHP Manual
  • SyncSharedMemory
  • Создаёт новый объект SyncSharedMemory

SyncSharedMemory::__construct

(PECL sync >= 1.1.0)

SyncSharedMemory::__construct — Создаёт новый объект SyncSharedMemory

Описание

public SyncSharedMemory::__construct(string $name, int $size)

Создаёт именованный объект разделяемой памяти.

Список параметров

name

Имя объекта разделяемой памяти.

Замечание:

Если имя уже существует, оно должно быть доступно для открытия текущим пользователем, от имени которого запущен процесс, иначе будет выброшено исключение с бессмысленным сообщением об ошибке.

size

Размер в байтах разделяемой памяти, которую необходимо зарезервировать.

Замечание:

Объем памяти не может быть изменён позже. Запросите заранее достаточно места для хранения.

Возвращаемые значения

Новый объект SyncSharedMemory.

Ошибки

Выбрасывается исключение, если объект разделяемой памяти не может быть создан или открыт.

Примеры

Пример #1 Пример использования SyncSharedMemory::__construct()

<?php
// Возможно, вам потребуется защитить разделяемую память с другими объектами синхронизации.
// Разделяемая память исчезает, когда исчезает последняя ссылка на неё.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
// Выполните здесь первоначальную инициализацию.
}

$result = $mem->write(json_encode(array("name" => "my_report.txt")));
?>

Смотрите также

  • SyncSharedMemory::first() - Проверяет, является ли объект первым общесистемным экземпляром именованной разделяемой памяти
  • SyncSharedMemory::size() - Возвращает размер именованной разделяемой памяти
  • SyncSharedMemory::write() - Копирует данные в именованную разделяемую память
  • SyncSharedMemory::read() - Копирует данные из именованной разделяемой памяти


Проверяет, является ли объект первым общесистемным экземпляром именованной разделяемой памяти

  • « SyncSharedMemory::__construct
  • SyncSharedMemory::read »
  • PHP Manual
  • SyncSharedMemory
  • Проверяет, является ли объект первым общесистемным экземпляром именованной разделяемой памяти

SyncSharedMemory::first

(PECL sync >= 1.1.0)

SyncSharedMemory::first — Проверяет, является ли объект первым общесистемным экземпляром именованной разделяемой памяти

Описание

public SyncSharedMemory::first(): bool

Получает общесистемный статус первого экземпляра объекта SyncSharedMemory.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SyncSharedMemory::first()

<?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() - Копирует данные в именованную разделяемую память
  • SyncSharedMemory::read() - Копирует данные из именованной разделяемой памяти


Копирует данные из именованной разделяемой памяти

  • « SyncSharedMemory::first
  • SyncSharedMemory::size »
  • PHP Manual
  • SyncSharedMemory
  • Копирует данные из именованной разделяемой памяти

SyncSharedMemory::read

(PECL sync >= 1.1.0)

SyncSharedMemory::read — Копирует данные из именованной разделяемой памяти

Описание

public SyncSharedMemory::read(int $start = 0, int $length = ?)

Копирует данные из именованной разделяемой памяти.

Список параметров

start

Начало/смещение в байтах для начала чтения.

Замечание:

Если значение отрицательное, начальная позиция будет начинаться с указанного количества байтов с конца сегмента разделяемой памяти.

length

Количество байтов для чтения.

Замечание:

Если не указано иное, чтение остановится в конце сегмента разделяемой памяти.

Если значение отрицательное, чтение остановится на указанном количестве байтов с конца сегмента разделяемой памяти.

Возвращаемые значения

Строка, содержащая данные, считанные из разделяемой памяти.

Примеры

Пример #1 Пример использования SyncSharedMemory::__construct()

<?php
// Возможно, вам потребуется защитить разделяемую память с другими объектами синхронизации.
// Разделяемая память исчезает, когда исчезает последняя ссылка на неё.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
// Здесь можно выполнить первоначальную инициализацию.
}

$result = $mem->write("report.txt");

$result = $mem->read(3, -4);
var_dump($result);
?>

Результатом выполнения данного примера будет что-то подобное:

string(3) "ort"

Смотрите также

  • SyncSharedMemory::__construct() - Создаёт новый объект SyncSharedMemory
  • SyncSharedMemory::first() - Проверяет, является ли объект первым общесистемным экземпляром именованной разделяемой памяти
  • SyncSharedMemory::write() - Копирует данные в именованную разделяемую память
  • SyncSharedMemory::read()


Возвращает размер именованной разделяемой памяти

  • « SyncSharedMemory::read
  • SyncSharedMemory::write »
  • PHP Manual
  • SyncSharedMemory
  • Возвращает размер именованной разделяемой памяти

SyncSharedMemory::size

(PECL sync >= 1.1.0)

SyncSharedMemory::size — Возвращает размер именованной разделяемой памяти

Описание

public SyncSharedMemory::size(): int

Извлекает размер разделяемой памяти объекта SyncSharedMemory.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Целое число, содержащее размер разделяемой памяти. Это будет тот же размер, который был передан конструктору.

Примеры

Пример #1 Пример использования SyncSharedMemory::size()

<?php
$mem = new SyncSharedMemory("AppReportName", 1024);
var_dump($mem->size());
?>

Результатом выполнения данного примера будет что-то подобное:

int(1024)

Смотрите также

  • SyncSharedMemory::__construct() - Создаёт новый объект SyncSharedMemory
  • SyncSharedMemory::write() - Копирует данные в именованную разделяемую память
  • SyncSharedMemory::read() - Копирует данные из именованной разделяемой памяти


Копирует данные в именованную разделяемую память

  • « SyncSharedMemory::size
  • Другие базовые модули »
  • PHP Manual
  • SyncSharedMemory
  • Копирует данные в именованную разделяемую память

SyncSharedMemory::write

(PECL sync >= 1.1.0)

SyncSharedMemory::write — Копирует данные в именованную разделяемую память

Описание

public SyncSharedMemory::write(string $string = ?, int $start = 0)

Копирует данные в именованную разделяемую память.

Список параметров

string

Данные для записи в разделяемую память.

Замечание:

Если размер данных превышает размер разделяемой памяти, количество записанных возвращаемых байтов будет меньше длины входных данных.

start

Начало/смещение в байтах для начала записи.

Замечание:

Если значение отрицательное, начальная позиция будет начинаться с указанного количества байтов с конца сегмента разделяемой памяти.

Возвращаемые значения

Целое число, содержащее количество байтов, записанных в разделяемую память.

Примеры

Пример #1 Пример использования SyncSharedMemory::write()

<?php
// Возможно, вам потребуется защитить разделяемую память с другими объектами синхронизации.
// Разделяемая память исчезает, когда исчезает последняя ссылка на неё.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
// Здесь можно выполнить первоначальную инициализацию.
}

$result = $mem->write("report.txt");
var_dump($result);

$result = $mem->write("report.txt", -3);
var_dump($result);
?>

Результатом выполнения данного примера будет что-то подобное:

int(10)
int(3)

Смотрите также

  • SyncSharedMemory::__construct() - Создаёт новый объект SyncSharedMemory
  • SyncSharedMemory::first() - Проверяет, является ли объект первым общесистемным экземпляром именованной разделяемой памяти
  • SyncSharedMemory::write()
  • SyncSharedMemory::read() - Копирует данные из именованной разделяемой памяти


Другие базовые модули

  • GeoIP — Geo IP Location
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции GeoIP
  • FANN — Быстрая искусственная нейронная сеть (Fast Artificial Neural Network или FANN)
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции Fann
    • FANNConnection — Класс FANNConnection
  • Igbinary
    • Введение
    • Установка и настройка
    • Функции Igbinary
  • JSON — JavaScript Object Notation
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • JsonException — Класс JsonException
    • JsonSerializable — Интерфейс JsonSerializable
    • Функции JSON
  • Simdjson
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции Simdjson
    • SimdJsonException — Класс SimdJsonException
    • SimdJsonValueError — Класс SimdJsonValueError
  • Lua
    • Введение
    • Установка и настройка
    • Lua — Класс Lua
    • LuaClosure — Класс LuaClosure
  • LuaSandbox
    • Введение
    • Установка и настройка
    • Отличия от стандартного Lua
    • Примеры
    • LuaSandbox — Класс LuaSandbox
    • LuaSandboxFunction — Класс LuaSandboxFunction
    • LuaSandboxError — Класс LuaSandboxError
    • LuaSandboxErrorError — Класс LuaSandboxErrorError
    • LuaSandboxFatalError — Класс LuaSandboxFatalError
    • LuaSandboxMemoryError — Класс LuaSandboxMemoryError
    • LuaSandboxRuntimeError — Класс LuaSandboxRuntimeError
    • LuaSandboxSyntaxError — Класс LuaSandboxSyntaxError
    • LuaSandboxTimeoutError — Класс LuaSandboxTimeoutError
  • Misc. — Разные функции
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Разные функции
    • Список изменений
  • Random — Генераторы случайных чисел и функции, связанные со случайностью
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции Random
    • Random\Randomizer — Класс Random\Randomizer
    • Random\Engine — Интерфейс Random\Engine
    • Random\CryptoSafeEngine — Интерфейс Random\CryptoSafeEngine
    • Random\Engine\Secure — Класс Random\Engine\Secure
    • Random\Engine\Mt19937 — Класс Random\Engine\Mt19937
    • Random\Engine\PcgOneseq128XslRr64 — Класс Random\Engine\PcgOneseq128XslRr64
    • Random\Engine\Xoshiro256StarStar — Класс Random\Engine\Xoshiro256StarStar
    • Random\RandomError — Класс Random\RandomError
    • Random\BrokenRandomEngineError — Класс Random\BrokenRandomEngineError
    • Random\RandomException — Класс Random\RandomException
  • Seaslog
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции Seaslog
    • SeasLog — Класс SeasLog
  • SPL — Стандартная библиотека PHP (SPL)
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Структуры данных
    • Итераторы
    • Интерфейсы
    • Исключения
    • Функции SPL
    • Обработка файлов
    • Различные классы и интерфейсы
  • Потоки
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Потоковые фильтры
    • Контексты потоков
    • Ошибки потока
    • Примеры
    • 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)
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • PhpToken — Класс PhpToken
    • Функции 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 — Класс Yaf_Controller_Abstract
    • Yaf_Action_Abstract — Класс Yaf_Action_Abstract
    • Yaf_View_Interface — Класс Yaf_View_Interface
    • Yaf_View_Simple — Класс Yaf_View_Simple
    • Yaf_Loader — Класс Yaf_Loader
    • Yaf_Plugin_Abstract — Класс Yaf_Plugin_Abstract
    • Yaf_Registry — Класс Yaf_Registry
    • Yaf_Request_Abstract — Класс Yaf_Request_Abstract
    • Yaf_Request_Http — Класс Yaf_Request_Http
    • Yaf_Request_Simple — Класс Yaf_Request_Simple
    • Yaf_Response_Abstract — Класс Yaf_Response_Abstract
    • Yaf_Route_Interface — Класс Yaf_Route_Interface
    • Yaf_Route_Map — Класс Yaf_Route_Map
    • Yaf_Route_Regex — Класс Yaf_Route_Regex
    • Yaf_Route_Rewrite — Класс Yaf_Route_Rewrite
    • Yaf_Router — Класс Yaf_Router
    • 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
  • Структуры данных
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Ds\Collection — Интерфейс Collection
    • Ds\Hashable — Интерфейс Hashable
    • Ds\Sequence — Интерфейс Sequence
    • Ds\Vector — Класс Vector
    • Ds\Deque — Класс Deque
    • Ds\Map — Класс Map
    • Ds\Pair — Класс Pair
    • Ds\Set — Класс Set
    • Ds\Stack — Класс Stack
    • Ds\Queue — Класс Queue
    • Ds\PriorityQueue — Класс PriorityQueue
  • var_representation
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции var_representation


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 (int)
GEOIP_REGION_EDITION_REV0 (int)
GEOIP_CITY_EDITION_REV0 (int)
GEOIP_ORG_EDITION (int)
GEOIP_ISP_EDITION (int)
GEOIP_CITY_EDITION_REV1 (int)
GEOIP_REGION_EDITION_REV1 (int)
GEOIP_PROXY_EDITION (int)
GEOIP_ASNUM_EDITION (int)
GEOIP_NETSPEED_EDITION (int)
GEOIP_DOMAIN_EDITION (int)

Следующие константы предназначены для установки скорости сети:

GEOIP_UNKNOWN_SPEED (int)
GEOIP_DIALUP_SPEED (int)
GEOIP_CABLEDSL_SPEED (int)
GEOIP_CORPORATE_SPEED (int)


Функции 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(): 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" -- Широта, число с плавающей точкой (float) без знака.
  • "longitude" -- Долгота, число с плавающей точкой (float) без знака.
  • "dma_code" -- Код рыночной зоны (Designated Market Area, DMA), только для США и Канады
  • "area_code" -- Код телефонной сети общего пользования (PSTN), например, 212

Список параметров

hostname

Имя хоста или IP-адрес, данные по которому должны быть получены.

Возвращаемые значения

Возвращает ассоциативный массив в случае успешного выполнения или false, если адрес не может быть найден в базе.

Список изменений

Версия | Описание
PECL geoip 1.0.4 | Добавлен код континента (continent_code) с GeoIP Library 1.4.3 или более новыми.
PECL geoip 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 — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения
    • fann_create_shortcut — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения
    • fann_create_sparse_array — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена, используя массив размеров слоёв
    • fann_create_sparse — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена
    • fann_create_standard_array — Создаёт стандартную полностью подключённую нейронную сеть обратного распространения, используя массив размеров слоёв
    • fann_create_standard — Создаёт стандартную полностью подключённую нейронную сеть обратного распространения
    • fann_create_train_from_callback — Создаёт структуру данных обучения из предоставленной пользователем функции
    • fann_create_train — Создаёт пустую структуру данных для обучения
    • fann_descale_input — Масштабирует данные во входном векторе после получения их на основе ранее рассчитанных параметров
    • fann_descale_output — Масштабирует данные в выходном векторе после получения их ина основе ранее рассчитанных параметров
    • fann_descale_train — Масштабирование входных и выходных данных на основе предварительно рассчитанных параметров
    • fann_destroy_train — Уничтожает тренировочные данные
    • fann_destroy — Уничтожает всю сеть и правильно освобождает всю связанную память
    • fann_duplicate_train_data — Возвращает точную копию тренировочных данных
    • fann_get_activation_function — Возвращает функцию активации
    • fann_get_activation_steepness — Возвращает крутизну активации для поставляемого нейрона и номера слоя
    • fann_get_bias_array — Получает количество смещений в каждом слое в сети
    • fann_get_bit_fail_limit — Возвращает предел сбоя битов, использованный во время обучения
    • fann_get_bit_fail — Количество битов сбоя
    • fann_get_cascade_activation_functions_count — Возвращает количество функций каскадной активации
    • fann_get_cascade_activation_functions — Возвращает функции каскадной активации
    • fann_get_cascade_activation_steepnesses_count — Количество крутизны активации
    • fann_get_cascade_activation_steepnesses — Возвращает крутизну каскадной активации
    • fann_get_cascade_candidate_change_fraction — Возвращает долю изменения каскада кандидата
    • fann_get_cascade_candidate_limit — Возвращает предел кандидата
    • fann_get_cascade_candidate_stagnation_epochs — Возвращает количество периодов застоя каскада кандидата
    • fann_get_cascade_max_cand_epochs — Получает наибольший период кандидата
    • fann_get_cascade_max_out_epochs — Возвращает максимальное количество периодов
    • fann_get_cascade_min_cand_epochs — Получает наименьший период кандидата
    • fann_get_cascade_min_out_epochs — Возвращает минимальное количество периодов
    • fann_get_cascade_num_candidate_groups — Возвращает количество групп кандидатов
    • fann_get_cascade_num_candidates — Возвращает количество кандидатов, использованных во время обучения
    • fann_get_cascade_output_change_fraction — Возвращает долю изменения выхода каскада
    • fann_get_cascade_output_stagnation_epochs — Возвращает количество каскадных периодов застоя кандидатов
    • fann_get_cascade_weight_multiplier — Возвращает множитель веса
    • fann_get_connection_array — Получает соединения в сети
    • fann_get_connection_rate — Получает скорость соединения, используемую при создании сети
    • fann_get_errno — Возвращает последний номер ошибки
    • fann_get_errstr — Возвращает последнюю строку ошибки
    • fann_get_layer_array — Получает количество нейронов в каждом слое сети
    • fann_get_learning_momentum — Возвращает импульс обучения
    • fann_get_learning_rate — Возвращает скорость обучения
    • fann_get_MSE — Считывает среднеквадратичную ошибку сети
    • fann_get_network_type — Получает тип нейронной сети
    • fann_get_num_input — Получает количество входных нейронов
    • fann_get_num_layers — Получает количество слоёв в нейронной сети
    • fann_get_num_output — Получает количество выходных нейронов
    • fann_get_quickprop_decay — Возвращает снижение, которое является фактором, при котором веса должны уменьшаться на каждой итерации во время обучения quickprop
    • fann_get_quickprop_mu — Возвращает коэффициент mu
    • fann_get_rprop_decrease_factor — Возвращает коэффициент уменьшения, используемый во время обучения RPROP
    • fann_get_rprop_delta_max — Возвращает максимальный размер шага
    • fann_get_rprop_delta_min — Возвращает минимальный размер шага
    • fann_get_rprop_delta_zero — Возвращает начальный размер шага
    • fann_get_rprop_increase_factor — Возвращает коэффициент увеличения, используемый во время обучения RPROP
    • fann_get_sarprop_step_error_shift — Возвращает сдвиг ошибки шага sarprop
    • fann_get_sarprop_step_error_threshold_factor — Возвращает пороговый коэффициент ошибки шага sarprop
    • fann_get_sarprop_temperature — Возвращает температуру sarprop
    • fann_get_sarprop_weight_decay_shift — Возвращает сдвиг уменьшения веса sarprop
    • fann_get_total_connections — Получает общее количество соединений во всей сети
    • fann_get_total_neurons — Получает общее количество нейронов во всей сети
    • fann_get_train_error_function — Возвращает функцию обработки ошибок, используемую во время обучения
    • fann_get_train_stop_function — Возвращает функцию остановки, используемую во время обучения
    • fann_get_training_algorithm — Возвращает алгоритм обучения
    • fann_init_weights — Инициализирует веса с помощью алгоритма Widrow + Nguyen
    • fann_length_train_data — Возвращает количество шаблонов в обучающих данных
    • fann_merge_train_data — Объединяет обучающие данные
    • fann_num_input_train_data — Возвращает количество входных данных в каждом из шаблонов в обучающих данных
    • fann_num_output_train_data — Возвращает количество выходных данных в каждом из шаблонов в обучающих данных
    • fann_print_error — Выводит строку ошибки
    • fann_randomize_weights — Присваивает каждому соединению случайный вес между min_weight и max_weight
    • fann_read_train_from_file — Читает файл, в котором хранятся данные обучения
    • fann_reset_errno — Сбрасывает номер последней ошибки
    • fann_reset_errstr — Сбрасывает последнюю строку ошибки
    • fann_reset_MSE — Сбрасывает среднеквадратичную ошибку из сети
    • fann_run — Запускает нейронную сеть с заданными данными
    • fann_save_train — Сохраняет структуру обучения в файл
    • fann_save — Сохраняет всю сеть в файл конфигурации
    • fann_scale_input_train_data — Масштабирует входные данные в обучающих данных до указанного диапазона
    • fann_scale_input — Масштабирует данные во входном векторе перед подачей их в ann на основе ранее рассчитанных параметров
    • fann_scale_output_train_data — Масштабирует выходные данные в обучающих данных до указанного диапазона
    • fann_scale_output — Масштабирует данные в выходном векторе перед их передачей в ann на основе ранее рассчитанных параметров
    • fann_scale_train_data — Масштабирует входные и выходные данные в обучающих данных до указанного диапазона
    • fann_scale_train — Масштабирует входные и выходные данные на основе ранее рассчитанных параметров
    • fann_set_activation_function_hidden — Устанавливает функцию активации для всех скрытых слоёв
    • fann_set_activation_function_layer — Устанавливает функцию активации для всех нейронов в предоставленном слое
    • fann_set_activation_function_output — Устанавливает функцию активации для выходного слоя
    • fann_set_activation_function — Устанавливает функцию активации для указанного нейрона и слоя
    • fann_set_activation_steepness_hidden — Устанавливает крутизну крутизны активации для всех нейронов во всех скрытых слоях
    • fann_set_activation_steepness_layer — Устанавливает крутизну активации для всех нейронов в указанном номере слоя
    • fann_set_activation_steepness_output — Устанавливает крутизну активации в выходном слое
    • fann_set_activation_steepness — Устанавливает крутизну активации для указанного нейрона и номера слоя
    • fann_set_bit_fail_limit — Устанавливает предел ошибок, используемый во время обучения
    • fann_set_callback — Устанавливает callback-функцию для использования во время обучения
    • fann_set_cascade_activation_functions — Устанавливает массив каскадных функций активации кандидатов
    • fann_set_cascade_activation_steepnesses — Устанавливает массив крутизны включения кандидатов в каскад
    • fann_set_cascade_candidate_change_fraction — Устанавливает долю каскадного изменения кандидата
    • fann_set_cascade_candidate_limit — Устанавливает лимит кандидатов
    • fann_set_cascade_candidate_stagnation_epochs — Устанавливает количество каскадных периодов застоя кандидатов
    • fann_set_cascade_max_cand_epochs — Устанавливает наибольший период кандидата
    • fann_set_cascade_max_out_epochs — Устанавливает максимальное количество эпох
    • fann_set_cascade_min_cand_epochs — Устанавливает наименьший период кандидата
    • fann_set_cascade_min_out_epochs — Устанавливает минимальные эпохи выходных данных
    • fann_set_cascade_num_candidate_groups — Устанавливает количество групп кандидатов
    • fann_set_cascade_output_change_fraction — Устанавливает долю изменения каскадных выходных данных
    • fann_set_cascade_output_stagnation_epochs — Устанавливает количество периодов стагнации каскадного вывода
    • fann_set_cascade_weight_multiplier — Устанавливает множитель веса
    • fann_set_error_log — Устанавливает, где регистрируются ошибки
    • fann_set_input_scaling_params — Рассчитывает входные параметры масштабирования для будущего использования на основе данных обучения
    • fann_set_learning_momentum — Устанавливает импульс обучения
    • fann_set_learning_rate — Устанавливает скорость обучения
    • fann_set_output_scaling_params — Рассчитывает выходные параметры масштабирования для будущего использования на основе данных обучения
    • fann_set_quickprop_decay — Устанавливает коэффициент затухания quickprop
    • fann_set_quickprop_mu — Устанавливает МЮ-фактор quickprop
    • fann_set_rprop_decrease_factor — Устанавливает коэффициент уменьшения, используемый во время обучения RPROP
    • fann_set_rprop_delta_max — Устанавливает максимальный размер шага
    • fann_set_rprop_delta_min — Устанавливает минимальный размер шага
    • fann_set_rprop_delta_zero — Устанавливает начальный размер шага
    • fann_set_rprop_increase_factor — Устанавливает коэффициент увеличения, используемый во время обучения Rprop
    • fann_set_sarprop_step_error_shift — Устанавливает сдвиг ошибки шага sarprop
    • fann_set_sarprop_step_error_threshold_factor — Устанавливает пороговый коэффициент ошибки шага sarprop
    • fann_set_sarprop_temperature — Устанавливает температуру sarprop
    • fann_set_sarprop_weight_decay_shift — Устанавливает смещение затухания sarprop
    • fann_set_scaling_params — Рассчитывает входные и выходные параметры масштабирования для будущего использования на основе данных обучения
    • fann_set_train_error_function — Устанавливает функцию ошибки, используемую во время тренировки
    • fann_set_train_stop_function — Устанавливает функцию остановки, используемую во время тренировки
    • fann_set_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 (int)
Стандартный алгоритм обратного распространения ошибки, в котором веса обновляются после каждого обучающего шаблона. Это означает, что веса обновляются множество раз в течение одной эпохи. Это приводит к тому, что для некоторых задач обучение будет происходить очень быстро, в то время как с более сложными задачами обучение не будет давать нужного качества.
FANN_TRAIN_BATCH (int)
Стандартный алгоритм обратного распространения ошибки, в котором веса обновляются после вычисления среднеквадратичной погрешности на всем обучающем наборе. Это означает, что веса обновляются всего один раз в течение одной эпохи. Это приводит к тому, что для некоторых задач обучение будет происходить медленнее. С другой стороны, вычисление среднеквадратичной погрешности более корректно, нежели чем в инкрементальном обучении, что позволяет получить более качественную сеть.
FANN_TRAIN_RPROP (int)
Более продвинутый алгоритм пакетного обучения, позволяющий достичь хороших результатов для многих задач. Обучающий алгоритм RPROP является адаптивным и, следовательно, не использует learning_rate. Тем не менее можно установить некоторые другие параметры для изменения работы алгоритма RPROP, но это рекомендуется делать только тем, кто понимает принципы работы этого алгоритма. Обучающий алгоритм RPROP описан Редмиллером и Брауном в 1993 г., но тут используется обучающий алгоритм iRPROP, описанный Игелем и Хаскиным в 2000 г., который является вариантом стандартного алгоритма RPROP.
FANN_TRAIN_QUICKPROP (int)
Более продвинутый алгоритм пакетного обучения, позволяющий достичь хороших результатов для многих задач. Алгоритм quickprop использует параметр learning_rate наряду с другими параметрами, но изменять эти параметры рекомендуется только если вы понимаете, что делаете. Обучающий алгоритм quickprop описан Фальманом в 1988 г.
FANN_TRAIN_SARPROP (int)
Ещё более продвинутый алгоритм тренировки. Только для версии 2.2
Activation functions
FANN_LINEAR (int)
Линейная функция активации.
FANN_THRESHOLD (int)
Функция активации по порогу.
FANN_THRESHOLD_SYMMETRIC (int)
Функция активации по порогу.
FANN_SIGMOID (int)
Функция активации по сигмоиде.
FANN_SIGMOID_STEPWISE (int)
Пошаговая линейная апроксимация к сигмоиде.
FANN_SIGMOID_SYMMETRIC (int)
Функция активации по симметричной сигмоиде, она же tanh (гиперболический тангенс).
FANN_SIGMOID_SYMMETRIC_STEPWISE (int)
Пошаговая линейная апроксимация к симметричной сигмоиде.
FANN_GAUSSIAN (int)
Гауссова функция активации.
FANN_GAUSSIAN_SYMMETRIC (int)
Симметричная гауссова функция активации.
FANN_GAUSSIAN_STEPWISE (int)
Пошаговая гауссова функция активации.
FANN_ELLIOT (int)
Быстрая (похожая на сигмоиду) функция активации, описанная Дэвидом Эллиотом.
FANN_ELLIOT_SYMMETRIC (int)
Быстрая (похожая на симметричную сигмоиду) функция активации, описанная Дэвидом Эллиотом.
FANN_LINEAR_PIECE (int)
Ограниченная линейная функция активации.
FANN_LINEAR_PIECE_SYMMETRIC (int)
Ограниченная линейная функция активации.
FANN_SIN_SYMMETRIC (int)
Периодическая синусоидальная функция активации.
FANN_COS_SYMMETRIC (int)
Периодическая косинусоидальная функция активации.
FANN_SIN (int)
Периодическая синусоидальная функция активации.
FANN_COS (int)
Периодическая косинусоидальная функция активации.
Error function used during training
FANN_ERRORFUNC_LINEAR (int)
Стандартная линейная функция ошибки.
FANN_ERRORFUNC_TANH (int)
Функция ошибки на основе гиперболического тангенса (tanh); обычно более качественное, но и более медленное обучение. Функция ошибки агрессивно нацелена на результаты сильно отличающиеся от ожидаемых, в то время, как результаты с небольшими отличиями не затрагиваются. Не рекомендуется для каскадного или инкрементального обучения.
Критерий остановки, используемый при обучении
FANN_STOPFUNC_MSE (int)
Критерий остановки - это значение среднеквадратичной ошибки (Mean Square Error или MSE).
FANN_STOPFUNC_BIT (int)
Критерий остановки - это количество ошибочных бит. Количество ошибочных бит - это количество отдающих нейронов, количество ошибочных бит, которые более установленного предела (смотрите fann_get_bit_fail_limit, fann_set_bit_fail_limit). Биты считаются во всех обучающих данных, так что это число может быть больше количества обучающих данных.
Определение типов сети используемых fann_get_network_type()
FANN_NETTYPE_LAYER (int)
Каждый уровень имеет связи только со следующим уровнем.
FANN_NETTYPE_SHORTCUT (int)
Каждый уровень имеет связи со всеми последующими уровнями.
Ошибки
FANN_E_NO_ERROR (int)
Нет ошибки.
FANN_E_CANT_OPEN_CONFIG_R (int)
Невозможно открыть конфигурационный файл на чтение.
FANN_E_CANT_OPEN_CONFIG_W (int)
Невозможно открыть конфигурационный файл на запись.
FANN_E_WRONG_CONFIG_VERSION (int)
Неверная версия конфигурационного файла.
FANN_E_CANT_READ_CONFIG (int)
Ошибка чтения данных из конфигурационного файла.
FANN_E_CANT_READ_NEURON (int)
Ошибка чтения данных нейрона из конфигурационного файла.
FANN_E_CANT_READ_CONNECTIONS (int)
Ошибка чтения данных связей из конфигурационного файла.
FANN_E_WRONG_NUM_CONNECTIONS (int)
Количество связей отличается от ожидаемого.
FANN_E_CANT_OPEN_TD_W (int)
Невозможно открыть файл с обучающими данными на запись.
FANN_E_CANT_OPEN_TD_R (int)
Невозможно открыть файл с обучающими данными на чтение.
FANN_E_CANT_READ_TD (int)
Ошибка чтения обучающих данных из файла.
FANN_E_CANT_ALLOCATE_MEM (int)
Невозможно выделить память.
FANN_E_CANT_TRAIN_ACTIVATION (int)
Обучение с заданной функцией активации невозможно.
FANN_E_CANT_USE_ACTIVATION (int)
Невозможно использовать заданную функцию активации.
FANN_E_TRAIN_DATA_MISMATCH (int)
Неразрешимые различия между двумя структурами fann_train_data.
FANN_E_CANT_USE_TRAIN_ALG (int)
Невозможно использовать указанный алгоритм обучения.
FANN_E_TRAIN_DATA_SUBSET (int)
Попытка взять подмножество отсутствующее в обучающем наборе.
FANN_E_INDEX_OUT_OF_BOUND (int)
Индекс за пределами допустимого диапазона.
FANN_E_SCALE_NOT_PRESENT (int)
Не задан параметр масштабирования.
FANN_E_INPUT_NO_MATCH (int)
Количество входных нейронов в сети и данных не совпадают.
FANN_E_OUTPUT_NO_MATCH (int)
Число выходных нейронов в сети и данных не совпадают.


  • « Предопределённые константы
  • Обучение 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 — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения
  • fann_create_shortcut — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения
  • fann_create_sparse_array — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена, используя массив размеров слоёв
  • fann_create_sparse — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена
  • fann_create_standard_array — Создаёт стандартную полностью подключённую нейронную сеть обратного распространения, используя массив размеров слоёв
  • fann_create_standard — Создаёт стандартную полностью подключённую нейронную сеть обратного распространения
  • fann_create_train_from_callback — Создаёт структуру данных обучения из предоставленной пользователем функции
  • fann_create_train — Создаёт пустую структуру данных для обучения
  • fann_descale_input — Масштабирует данные во входном векторе после получения их на основе ранее рассчитанных параметров
  • fann_descale_output — Масштабирует данные в выходном векторе после получения их ина основе ранее рассчитанных параметров
  • fann_descale_train — Масштабирование входных и выходных данных на основе предварительно рассчитанных параметров
  • fann_destroy_train — Уничтожает тренировочные данные
  • fann_destroy — Уничтожает всю сеть и правильно освобождает всю связанную память
  • fann_duplicate_train_data — Возвращает точную копию тренировочных данных
  • fann_get_activation_function — Возвращает функцию активации
  • fann_get_activation_steepness — Возвращает крутизну активации для поставляемого нейрона и номера слоя
  • fann_get_bias_array — Получает количество смещений в каждом слое в сети
  • fann_get_bit_fail_limit — Возвращает предел сбоя битов, использованный во время обучения
  • fann_get_bit_fail — Количество битов сбоя
  • fann_get_cascade_activation_functions_count — Возвращает количество функций каскадной активации
  • fann_get_cascade_activation_functions — Возвращает функции каскадной активации
  • fann_get_cascade_activation_steepnesses_count — Количество крутизны активации
  • fann_get_cascade_activation_steepnesses — Возвращает крутизну каскадной активации
  • fann_get_cascade_candidate_change_fraction — Возвращает долю изменения каскада кандидата
  • fann_get_cascade_candidate_limit — Возвращает предел кандидата
  • fann_get_cascade_candidate_stagnation_epochs — Возвращает количество периодов застоя каскада кандидата
  • fann_get_cascade_max_cand_epochs — Получает наибольший период кандидата
  • fann_get_cascade_max_out_epochs — Возвращает максимальное количество периодов
  • fann_get_cascade_min_cand_epochs — Получает наименьший период кандидата
  • fann_get_cascade_min_out_epochs — Возвращает минимальное количество периодов
  • fann_get_cascade_num_candidate_groups — Возвращает количество групп кандидатов
  • fann_get_cascade_num_candidates — Возвращает количество кандидатов, использованных во время обучения
  • fann_get_cascade_output_change_fraction — Возвращает долю изменения выхода каскада
  • fann_get_cascade_output_stagnation_epochs — Возвращает количество каскадных периодов застоя кандидатов
  • fann_get_cascade_weight_multiplier — Возвращает множитель веса
  • fann_get_connection_array — Получает соединения в сети
  • fann_get_connection_rate — Получает скорость соединения, используемую при создании сети
  • fann_get_errno — Возвращает последний номер ошибки
  • fann_get_errstr — Возвращает последнюю строку ошибки
  • fann_get_layer_array — Получает количество нейронов в каждом слое сети
  • fann_get_learning_momentum — Возвращает импульс обучения
  • fann_get_learning_rate — Возвращает скорость обучения
  • fann_get_MSE — Считывает среднеквадратичную ошибку сети
  • fann_get_network_type — Получает тип нейронной сети
  • fann_get_num_input — Получает количество входных нейронов
  • fann_get_num_layers — Получает количество слоёв в нейронной сети
  • fann_get_num_output — Получает количество выходных нейронов
  • fann_get_quickprop_decay — Возвращает снижение, которое является фактором, при котором веса должны уменьшаться на каждой итерации во время обучения quickprop
  • fann_get_quickprop_mu — Возвращает коэффициент mu
  • fann_get_rprop_decrease_factor — Возвращает коэффициент уменьшения, используемый во время обучения RPROP
  • fann_get_rprop_delta_max — Возвращает максимальный размер шага
  • fann_get_rprop_delta_min — Возвращает минимальный размер шага
  • fann_get_rprop_delta_zero — Возвращает начальный размер шага
  • fann_get_rprop_increase_factor — Возвращает коэффициент увеличения, используемый во время обучения RPROP
  • fann_get_sarprop_step_error_shift — Возвращает сдвиг ошибки шага sarprop
  • fann_get_sarprop_step_error_threshold_factor — Возвращает пороговый коэффициент ошибки шага sarprop
  • fann_get_sarprop_temperature — Возвращает температуру sarprop
  • fann_get_sarprop_weight_decay_shift — Возвращает сдвиг уменьшения веса sarprop
  • fann_get_total_connections — Получает общее количество соединений во всей сети
  • fann_get_total_neurons — Получает общее количество нейронов во всей сети
  • fann_get_train_error_function — Возвращает функцию обработки ошибок, используемую во время обучения
  • fann_get_train_stop_function — Возвращает функцию остановки, используемую во время обучения
  • fann_get_training_algorithm — Возвращает алгоритм обучения
  • fann_init_weights — Инициализирует веса с помощью алгоритма Widrow + Nguyen
  • fann_length_train_data — Возвращает количество шаблонов в обучающих данных
  • fann_merge_train_data — Объединяет обучающие данные
  • fann_num_input_train_data — Возвращает количество входных данных в каждом из шаблонов в обучающих данных
  • fann_num_output_train_data — Возвращает количество выходных данных в каждом из шаблонов в обучающих данных
  • fann_print_error — Выводит строку ошибки
  • fann_randomize_weights — Присваивает каждому соединению случайный вес между min_weight и max_weight
  • fann_read_train_from_file — Читает файл, в котором хранятся данные обучения
  • fann_reset_errno — Сбрасывает номер последней ошибки
  • fann_reset_errstr — Сбрасывает последнюю строку ошибки
  • fann_reset_MSE — Сбрасывает среднеквадратичную ошибку из сети
  • fann_run — Запускает нейронную сеть с заданными данными
  • fann_save_train — Сохраняет структуру обучения в файл
  • fann_save — Сохраняет всю сеть в файл конфигурации
  • fann_scale_input_train_data — Масштабирует входные данные в обучающих данных до указанного диапазона
  • fann_scale_input — Масштабирует данные во входном векторе перед подачей их в ann на основе ранее рассчитанных параметров
  • fann_scale_output_train_data — Масштабирует выходные данные в обучающих данных до указанного диапазона
  • fann_scale_output — Масштабирует данные в выходном векторе перед их передачей в ann на основе ранее рассчитанных параметров
  • fann_scale_train_data — Масштабирует входные и выходные данные в обучающих данных до указанного диапазона
  • fann_scale_train — Масштабирует входные и выходные данные на основе ранее рассчитанных параметров
  • fann_set_activation_function_hidden — Устанавливает функцию активации для всех скрытых слоёв
  • fann_set_activation_function_layer — Устанавливает функцию активации для всех нейронов в предоставленном слое
  • fann_set_activation_function_output — Устанавливает функцию активации для выходного слоя
  • fann_set_activation_function — Устанавливает функцию активации для указанного нейрона и слоя
  • fann_set_activation_steepness_hidden — Устанавливает крутизну крутизны активации для всех нейронов во всех скрытых слоях
  • fann_set_activation_steepness_layer — Устанавливает крутизну активации для всех нейронов в указанном номере слоя
  • fann_set_activation_steepness_output — Устанавливает крутизну активации в выходном слое
  • fann_set_activation_steepness — Устанавливает крутизну активации для указанного нейрона и номера слоя
  • fann_set_bit_fail_limit — Устанавливает предел ошибок, используемый во время обучения
  • fann_set_callback — Устанавливает callback-функцию для использования во время обучения
  • fann_set_cascade_activation_functions — Устанавливает массив каскадных функций активации кандидатов
  • fann_set_cascade_activation_steepnesses — Устанавливает массив крутизны включения кандидатов в каскад
  • fann_set_cascade_candidate_change_fraction — Устанавливает долю каскадного изменения кандидата
  • fann_set_cascade_candidate_limit — Устанавливает лимит кандидатов
  • fann_set_cascade_candidate_stagnation_epochs — Устанавливает количество каскадных периодов застоя кандидатов
  • fann_set_cascade_max_cand_epochs — Устанавливает наибольший период кандидата
  • fann_set_cascade_max_out_epochs — Устанавливает максимальное количество эпох
  • fann_set_cascade_min_cand_epochs — Устанавливает наименьший период кандидата
  • fann_set_cascade_min_out_epochs — Устанавливает минимальные эпохи выходных данных
  • fann_set_cascade_num_candidate_groups — Устанавливает количество групп кандидатов
  • fann_set_cascade_output_change_fraction — Устанавливает долю изменения каскадных выходных данных
  • fann_set_cascade_output_stagnation_epochs — Устанавливает количество периодов стагнации каскадного вывода
  • fann_set_cascade_weight_multiplier — Устанавливает множитель веса
  • fann_set_error_log — Устанавливает, где регистрируются ошибки
  • fann_set_input_scaling_params — Рассчитывает входные параметры масштабирования для будущего использования на основе данных обучения
  • fann_set_learning_momentum — Устанавливает импульс обучения
  • fann_set_learning_rate — Устанавливает скорость обучения
  • fann_set_output_scaling_params — Рассчитывает выходные параметры масштабирования для будущего использования на основе данных обучения
  • fann_set_quickprop_decay — Устанавливает коэффициент затухания quickprop
  • fann_set_quickprop_mu — Устанавливает МЮ-фактор quickprop
  • fann_set_rprop_decrease_factor — Устанавливает коэффициент уменьшения, используемый во время обучения RPROP
  • fann_set_rprop_delta_max — Устанавливает максимальный размер шага
  • fann_set_rprop_delta_min — Устанавливает минимальный размер шага
  • fann_set_rprop_delta_zero — Устанавливает начальный размер шага
  • fann_set_rprop_increase_factor — Устанавливает коэффициент увеличения, используемый во время обучения Rprop
  • fann_set_sarprop_step_error_shift — Устанавливает сдвиг ошибки шага sarprop
  • fann_set_sarprop_step_error_threshold_factor — Устанавливает пороговый коэффициент ошибки шага sarprop
  • fann_set_sarprop_temperature — Устанавливает температуру sarprop
  • fann_set_sarprop_weight_decay_shift — Устанавливает смещение затухания sarprop
  • fann_set_scaling_params — Рассчитывает входные и выходные параметры масштабирования для будущего использования на основе данных обучения
  • fann_set_train_error_function — Устанавливает функцию ошибки, используемую во время тренировки
  • fann_set_train_stop_function — Устанавливает функцию остановки, используемую во время тренировки
  • fann_set_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 был собран для libfann >= 2.2.

Смотрите также

  • 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() - Сохраняет всю сеть в файл конфигурации


Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения

  • « fann_create_from_file
  • fann_create_shortcut »
  • PHP Manual
  • Функции Fann
  • Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения

fann_create_shortcut_array

(PECL fann >= 1.0.0)

fann_create_shortcut_array — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения

Описание

fann_create_shortcut_array(int $num_layers, array $layers): resource

Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет соединения быстрого доступа с использованием массива размеров слоёв.

Список параметров

num_layers

Общее количество слоёв, включая входной и выходной слой.

layers

Массив размеров слоёв.

Возвращаемые значения

Возвращает ресурс нейронной сети в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fann_create_shortcut() - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения
  • fann_create_sparse() - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена
  • fann_create_standard() - Создаёт стандартную полностью подключённую нейронную сеть обратного распространения


Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения

  • « fann_create_shortcut_array
  • fann_create_sparse_array »
  • PHP Manual
  • Функции Fann
  • Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения

fann_create_shortcut

(PECL fann >= 1.0.0)

fann_create_shortcut — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения

Описание

fann_create_shortcut(
int $num_layers,
int $num_neurons1,
int $num_neurons2,
int ...$num_neuronsN
): resource

Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет соединения быстрого доступа.

Соединения быстрого доступа - это соединения, пропускающие слои. Полностью подключённая сеть с соединениями быстрого доступа - это сеть, в которой все нейроны связаны со всеми нейронами на более поздних уровнях. Включая прямые подключения от входного слоя к выходному слою.

Список параметров

num_layers

Общее количество слоёв, включая входной и выходной слой.

num_neurons1

Количество нейронов в первом слое.

num_neurons2

Количество нейронов во втором слое.

num_neuronsN

Количество нейронов в последующих слоях.

Возвращаемые значения

Возвращает ресурс нейронной сети в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fann_create_shortcut_array() - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения
  • fann_create_sparse() - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена
  • fann_create_standard() - Создаёт стандартную полностью подключённую нейронную сеть обратного распространения


Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена, используя массив размеров слоёв

  • « fann_create_shortcut
  • fann_create_sparse »
  • PHP Manual
  • Функции Fann
  • Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена, используя массив размеров слоёв

fann_create_sparse_array

(PECL fann >= 1.0.0)

fann_create_sparse_array — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена, используя массив размеров слоёв

Описание

fann_create_sparse_array(float $connection_rate, int $num_layers, array $layers): resource

Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена, используя массив размеров слоёв.

Список параметров

connection_rate

Скорость соединения определяет, сколько соединений будет в сети. Если скорость соединения установлена на 1, сеть будет полностью подключена, но если она установлена на 0,5, будет установлена только половина соединений. Скорость соединения 1 даст тот же результат, что и fann_create_standard().

num_layers

Общее количество слоёв, включая входной и выходной слой.

layers

Массив размеров слоёв.

Возвращаемые значения

Возвращает ресурс нейронной сети в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fann_create_sparse() - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена
  • fann_create_standard() - Создаёт стандартную полностью подключённую нейронную сеть обратного распространения
  • fann_create_shortcut() - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения


Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена

  • « fann_create_sparse_array
  • fann_create_standard_array »
  • PHP Manual
  • Функции Fann
  • Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена

fann_create_sparse

(PECL fann >= 1.0.0)

fann_create_sparse — Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена

Описание

fann_create_sparse(
float $connection_rate,
int $num_layers,
int $num_neurons1,
int $num_neurons2,
int ...$num_neuronsN
): resource

Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена.

Список параметров

connection_rate

Скорость соединения определяет, сколько соединений будет в сети. Если скорость соединения установлена на 1, сеть будет полностью подключена, но если она установлена на 0,5, будет установлена только половина соединений. Скорость соединения 1 даст тот же результат, что и fann_create_standard().

num_layers

Общее количество слоёв, включая входной и выходной слой.

num_neurons1

Количество нейронов в первом слое.

num_neurons2

Количество нейронов во втором слое.

num_neuronsN

Количество нейронов в других слоях.

Возвращаемые значения

Возвращает ресурс нейронной сети в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fann_create_sparse_array() - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена, используя массив размеров слоёв
  • fann_create_standard() - Создаёт стандартную полностью подключённую нейронную сеть обратного распространения
  • fann_create_shortcut() - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения


Создаёт стандартную полностью подключённую нейронную сеть обратного распространения, используя массив размеров слоёв

  • « fann_create_sparse
  • fann_create_standard »
  • PHP Manual
  • Функции Fann
  • Создаёт стандартную полностью подключённую нейронную сеть обратного распространения, используя массив размеров слоёв

fann_create_standard_array

(PECL fann >= 1.0.0)

fann_create_standard_array — Создаёт стандартную полностью подключённую нейронную сеть обратного распространения, используя массив размеров слоёв

Описание

fann_create_standard_array(int $num_layers, array $layers): resource

Создаёт стандартную полностью подключённую нейронную сеть обратного распространения.

В каждом слое будет нейрон смещения (кроме выходного слоя), и этот нейрон смещения будет связан со всеми нейронами в следующем слое. При работе в сети узлы смещения всегда излучают 1.

Чтобы уничтожить нейронную сеть, используйте функцию fann_destroy().

Список параметров

num_layers

Общее количество слоёв, включая входной и выходной слой.

layers

Массив размеров слоёв.

Возвращаемые значения

Возвращает ресурс нейронной сети в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fann_create_standard() - Создаёт стандартную полностью подключённую нейронную сеть обратного распространения
  • fann_create_sparse() - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена
  • fann_create_shortcut() - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения


Создаёт стандартную полностью подключённую нейронную сеть обратного распространения

  • « fann_create_standard_array
  • fann_create_train_from_callback »
  • PHP Manual
  • Функции Fann
  • Создаёт стандартную полностью подключённую нейронную сеть обратного распространения

fann_create_standard

(PECL fann >= 1.0.0)

fann_create_standard — Создаёт стандартную полностью подключённую нейронную сеть обратного распространения

Описание

fann_create_standard(
int $num_layers,
int $num_neurons1,
int $num_neurons2,
int ...$num_neuronsN
): resource

Создаёт стандартную полностью подключённую нейронную сеть обратного распространения.

В каждом слое будет нейрон смещения (кроме выходного слоя), и этот нейрон смещения будет связан со всеми нейронами в следующем слое. При работе в сети узлы смещения всегда выдаёт 1.

Чтобы уничтожить нейронную сеть, используйте функцию fann_destroy().

Список параметров

num_layers

Общее количество слоёв, включая входной и выходной слой.

num_neurons1

Количество нейронов в первом слое.

num_neurons2

Количество нейронов во втором слое.

num_neuronsN

Количество нейронов в других слоях.

Возвращаемые значения

Возвращает ресурс нейронной сети в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • fann_create_standard_array() - Создаёт стандартную полностью подключённую нейронную сеть обратного распространения, используя массив размеров слоёв
  • fann_create_sparse() - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена
  • fann_create_shortcut() - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения


Создаёт структуру данных обучения из предоставленной пользователем функции

  • « fann_create_standard
  • fann_create_train »
  • PHP Manual
  • Функции Fann
  • Создаёт структуру данных обучения из предоставленной пользователем функции

fann_create_train_from_callback

(PECL fann >= 1.0.0)

fann_create_train_from_callback — Создаёт структуру данных обучения из предоставленной пользователем функции

Описание

fann_create_train_from_callback(
int $num_data,
int $num_input,
int $num_output,
callable $user_function
): resource

Создаёт структуру данных обучения из предоставленной пользователем функции. Поскольку обучающие данные являются пронумерованными (данные 1, данные 2...), пользователь должен написать функцию, которая получает номер набора обучающих данных (вход, выход) и возвращает набор.

Список параметров

num_data

Количество тренировочных данных

num_input

Количество входов на тренировочных данных

num_output

Количество выходов на тренировочных данных

user_function

Функция, предоставленная пользователем со следующими параметрами:

  • num - Количество обучающих данных
  • num_input - Количество входов на тренировочных данных
  • num_output - Количество выходов на тренировочных данных

Функция должна возвращать ассоциативный массив с ключами input и output и двумя значениями массива input и output.

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования fann_create_train_from_callback()

<?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) {
// Сделай что-нибудь с $train_data
}
?>

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_read_train_from_file() - Читает файл, в котором хранятся данные обучения
  • fann_train_on_data() - Обучение на всем объёме данных на временном интервале
  • fann_destroy_train() - Уничтожает тренировочные данные
  • fann_save_train() - Сохраняет структуру обучения в файл


Создаёт пустую структуру данных для обучения

  • « fann_create_train_from_callback
  • fann_descale_input »
  • PHP Manual
  • Функции Fann
  • Создаёт пустую структуру данных для обучения

fann_create_train

(PECL fann >= 1.0.0)

fann_create_train — Создаёт пустую структуру данных для обучения

Описание

fann_create_train(int $num_data, int $num_input, int $num_output): resource

Создаёт пустую структуру данных для обучения.

Список параметров

num_data

Количество тренировочных данных

num_input

Количество входов на тренировочных данных

num_output

Количество выходов на тренировочных данных

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или false в случае возникновения ошибки.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_read_train_from_file() - Читает файл, в котором хранятся данные обучения
  • fann_train_on_data() - Обучение на всем объёме данных на временном интервале
  • fann_destroy_train() - Уничтожает тренировочные данные
  • fann_save_train() - Сохраняет структуру обучения в файл


Масштабирует данные во входном векторе после получения их на основе ранее рассчитанных параметров

  • « fann_create_train
  • fann_descale_output »
  • PHP Manual
  • Функции Fann
  • Масштабирует данные во входном векторе после получения их на основе ранее рассчитанных параметров

fann_descale_input

(PECL fann >= 1.0.0)

fann_descale_input — Масштабирует данные во входном векторе после получения их на основе ранее рассчитанных параметров

Описание

fann_descale_input(resource $ann, array $input_vector): bool

Масштабирует данные во входном векторе после получения их на основе ранее рассчитанных параметров.

Список параметров

ann

Ресурс (resource) нейронной сети.

input_vector

Входной вектор, который будет масштабирован

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_scale_input() - Масштабирует данные во входном векторе перед подачей их в ann на основе ранее рассчитанных параметров
  • fann_descale_output() - Масштабирует данные в выходном векторе после получения их ина основе ранее рассчитанных параметров


Масштабирует данные в выходном векторе после получения их ина основе ранее рассчитанных параметров

  • « fann_descale_input
  • fann_descale_train »
  • PHP Manual
  • Функции Fann
  • Масштабирует данные в выходном векторе после получения их ина основе ранее рассчитанных параметров

fann_descale_output

(PECL fann >= 1.0.0)

fann_descale_output — Масштабирует данные в выходном векторе после получения их ина основе ранее рассчитанных параметров

Описание

fann_descale_output(resource $ann, array $output_vector): bool

Масштабирует данные в выходном векторе после получения их ина основе ранее рассчитанных параметров.

Список параметров

ann

Ресурс (resource) нейронной сети.

output_vector

Выходной вектор, который будет масштабирован

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_scale_output() - Масштабирует данные в выходном векторе перед их передачей в ann на основе ранее рассчитанных параметров
  • fann_descale_input() - Масштабирует данные во входном векторе после получения их на основе ранее рассчитанных параметров


Масштабирование входных и выходных данных на основе предварительно рассчитанных параметров

  • « fann_descale_output
  • fann_destroy_train »
  • PHP Manual
  • Функции Fann
  • Масштабирование входных и выходных данных на основе предварительно рассчитанных параметров

fann_descale_train

(PECL fann >= 1.0.0)

fann_descale_train — Масштабирование входных и выходных данных на основе предварительно рассчитанных параметров

Описание

fann_descale_train(resource $ann, resource $train_data): bool

Масштабирование входных и выходных данных на основе предварительно рассчитанных параметров.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_scale_train() - Масштабирует входные и выходные данные на основе ранее рассчитанных параметров
  • fann_set_scaling_params() - Рассчитывает входные и выходные параметры масштабирования для будущего использования на основе данных обучения


Уничтожает тренировочные данные

  • « fann_descale_train
  • fann_destroy »
  • PHP Manual
  • Функции Fann
  • Уничтожает тренировочные данные

fann_destroy_train

(PECL fann >= 1.0.0)

fann_destroy_train — Уничтожает тренировочные данные

Описание

fann_destroy_train(resource $train_data): bool

Уничтожает тренировочные данные

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.


Уничтожает всю сеть и правильно освобождает всю связанную память

  • « fann_destroy_train
  • fann_duplicate_train_data »
  • PHP Manual
  • Функции Fann
  • Уничтожает всю сеть и правильно освобождает всю связанную память

fann_destroy

(PECL fann >= 1.0.0)

fann_destroy — Уничтожает всю сеть и правильно освобождает всю связанную память

Описание

fann_destroy(resource $ann): bool

Уничтожает всю сеть и правильно освобождает всю связанную память.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.


Возвращает точную копию тренировочных данных

  • « fann_destroy
  • fann_get_activation_function »
  • PHP Manual
  • Функции Fann
  • Возвращает точную копию тренировочных данных

fann_duplicate_train_data

(PECL fann >= 1.0.0)

fann_duplicate_train_data — Возвращает точную копию тренировочных данных

Описание

fann_duplicate_train_data(resource $data): resource

Возвращает ресурс (resource) с точной копией тренировочных данных

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или false в случае возникновения ошибки.


Возвращает функцию активации

  • « fann_duplicate_train_data
  • fann_get_activation_steepness »
  • PHP Manual
  • Функции Fann
  • Возвращает функцию активации

fann_get_activation_function

(PECL fann >= 1.0.0)

fann_get_activation_function — Возвращает функцию активации

Описание

fann_get_activation_function(resource $ann, int $layer, int $neuron): int

Получает функцию активации для номера нейрона neuron в слое номер layer, считая входной слой как слой 0.

Невозможно получить функции активации для нейронов во входном слое.

Возвращаемое значение является одной из констант функций активации.

Список параметров

ann

Ресурс (resource) нейронной сети.

layer

Номер слоя.

neuron

Номер нейрона.

Возвращаемые значения

Константа функций обучения или -1, если нейрон не определён в нейронной сети или false в случае возникновения ошибки.

Смотрите также

  • fann_set_activation_function_layer() - Устанавливает функцию активации для всех нейронов в предоставленном слое
  • fann_set_activation_function_hidden() - Устанавливает функцию активации для всех скрытых слоёв
  • fann_set_activation_function_output() - Устанавливает функцию активации для выходного слоя
  • fann_set_activation_steepness() - Устанавливает крутизну активации для указанного нейрона и номера слоя
  • fann_set_activation_function() - Устанавливает функцию активации для указанного нейрона и слоя


Возвращает крутизну активации для поставляемого нейрона и номера слоя

  • « fann_get_activation_function
  • fann_get_bias_array »
  • PHP Manual
  • Функции Fann
  • Возвращает крутизну активации для поставляемого нейрона и номера слоя

fann_get_activation_steepness

(PECL fann >= 1.0.0)

fann_get_activation_steepness — Возвращает крутизну активации для поставляемого нейрона и номера слоя

Описание

fann_get_activation_steepness(resource $ann, int $layer, int $neuron): float

Получает крутизну активации для нейрона с номером neuron в слое с номером layer, считая входной слой, как слой 0.

Невозможно получить крутизну активации для нейронов во входном слое.

Крутизна функции активации говорит о том, как быстро функция активации переходит от минимума к максимуму. Высокое значение для функции активации также даст более агрессивное обучение.

При обучении нейронных сетей, где выходные значения должны быть на предельных значениях (обычно 0 и 1, в зависимости от функции активации), может использоваться крутая функция активации (например, 1,0).

Крутизна активации по умолчанию - 0,5.

Список параметров

ann

Ресурс (resource) нейронной сети.

layer

Номер слоя

neuron

Номер нейрона

Возвращаемые значения

Крутизна активации для нейрона или -1, если нейрон не определён в нейронной сети, или false в случае возникновения ошибки.

Смотрите также

  • fann_set_activation_function() - Устанавливает функцию активации для указанного нейрона и слоя
  • fann_set_activation_steepness_layer() - Устанавливает крутизну активации для всех нейронов в указанном номере слоя
  • fann_set_activation_steepness_hidden() - Устанавливает крутизну крутизны активации для всех нейронов во всех скрытых слоях
  • fann_set_activation_steepness_output() - Устанавливает крутизну активации в выходном слое
  • fann_set_activation_steepness() - Устанавливает крутизну активации для указанного нейрона и номера слоя


Получает количество смещений в каждом слое в сети

  • « fann_get_activation_steepness
  • fann_get_bit_fail_limit »
  • PHP Manual
  • Функции Fann
  • Получает количество смещений в каждом слое в сети

fann_get_bias_array

(PECL fann >= 1.0.0)

fann_get_bias_array — Получает количество смещений в каждом слое в сети

Описание

fann_get_bias_array(resource $ann): array

Получает количество смещений в каждом слое в сети.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Массив чисел смещения в каждом слое


Возвращает предел сбоя битов, использованный во время обучения

  • « fann_get_bias_array
  • fann_get_bit_fail »
  • PHP Manual
  • Функции Fann
  • Возвращает предел сбоя битов, использованный во время обучения

fann_get_bit_fail_limit

(PECL fann >= 1.0.0)

fann_get_bit_fail_limit — Возвращает предел сбоя битов, использованный во время обучения

Описание

fann_get_bit_fail_limit(resource $ann): float

Возвращает предел сбоя битов, использованный во время обучения.

Предел сбоя битов используется во время обучения, когда функция остановки имеет значение FANN_STOPFUNC_BIT.

Предел - это максимально допустимая разница между желаемым результатом и фактическим результатом во время тренировки. Каждый выход, который расходится больше этого предела, считается как бит со сбоем. Эта разница делится на два при работе с симметричными функциями активации, так что симметричные и не симметричные функции активации могут использовать один и тот же предел.

Предельное значение сбоя по умолчанию составляет 0,35.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Предел сбоя битов или false в случае возникновения ошибки.

Смотрите также

  • fann_set_bit_fail_limit() - Устанавливает предел ошибок, используемый во время обучения


Количество битов сбоя

  • « fann_get_bit_fail_limit
  • fann_get_cascade_activation_functions_count »
  • PHP Manual
  • Функции Fann
  • Количество битов сбоя

fann_get_bit_fail

(PECL fann >= 1.0.0)

fann_get_bit_fail — Количество битов сбоя

Описание

fann_get_bit_fail(resource $ann): int

Количество битов сбоя; означает число выходных нейронов, которые отличаются больше, чем предел сбоя битов (смотрите fann_get_bit_fail_limit(), fann_set_bit_fail_limit()). Биты учитываются во всех обучающих данных, поэтому это число может быть больше количества обучающих данных.

Это значение сбрасывается fann_reset_MSE() и обновляется всеми теми же функциями, которые также обновляют значение MSE (например, fann_test_data(), fann_train_epoch())

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Количество битов сбоя или false в случае возникновения ошибки.

Смотрите также

  • fann_get_MSE() - Считывает среднеквадратичную ошибку сети
  • fann_reset_MSE() - Сбрасывает среднеквадратичную ошибку из сети
  • fann_test_data() - Тестирование набора обучающих данных и вычисление MSE для него
  • fann_train_epoch() - Обучение в течение одной эпохи
  • fann_get_bit_fail_limit() - Возвращает предел сбоя битов, использованный во время обучения
  • fann_set_bit_fail_limit() - Устанавливает предел ошибок, используемый во время обучения


Возвращает количество функций каскадной активации

  • « fann_get_bit_fail
  • fann_get_cascade_activation_functions »
  • PHP Manual
  • Функции Fann
  • Возвращает количество функций каскадной активации

fann_get_cascade_activation_functions_count

(PECL fann >= 1.0.0)

fann_get_cascade_activation_functions_count — Возвращает количество функций каскадной активации

Описание

fann_get_cascade_activation_functions_count(resource $ann): int

Количество функций активации в массиве fann_get_cascade_activation_functions().

Количество функций активации по умолчанию - 6.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Количество функций каскадной активации или false в случае возникновения ошибки.

Смотрите также

  • fann_get_cascade_activation_functions() - Возвращает функции каскадной активации
  • fann_set_cascade_activation_functions() - Устанавливает массив каскадных функций активации кандидатов


Возвращает функции каскадной активации

  • « fann_get_cascade_activation_functions_count
  • fann_get_cascade_activation_steepnesses_count »
  • PHP Manual
  • Функции Fann
  • Возвращает функции каскадной активации

fann_get_cascade_activation_functions

(PECL fann >= 1.0.0)

fann_get_cascade_activation_functions — Возвращает функции каскадной активации

Описание

fann_get_cascade_activation_functions(resource $ann): array

Массив функций каскадной активации - это массив различных функций активации, используемых кандидатами.

Смотрите fann_get_cascade_num_candidates() для описания того, какие нейроны кандидата будут генерироваться этим массивом.

Функции активации по умолчанию: FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN, FANN_GAUSSIAN_SYMMETRIC, FANN_ELLIOT, FANN_ELLIOT_SYMMETRIC.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Функции каскадной активации или false в случае возникновения ошибки.

Смотрите также

  • fann_get_cascade_activation_functions_count() - Возвращает количество функций каскадной активации
  • fann_set_cascade_activation_functions() - Устанавливает массив каскадных функций активации кандидатов


Количество крутизны активации

  • « fann_get_cascade_activation_functions
  • fann_get_cascade_activation_steepnesses »
  • PHP Manual
  • Функции Fann
  • Количество крутизны активации

fann_get_cascade_activation_steepnesses_count

(PECL fann >= 1.0.0)

fann_get_cascade_activation_steepnesses_count — Количество крутизны активации

Описание

fann_get_cascade_activation_steepnesses_count(resource $ann): int

Количество крутизны активации в массиве fann_get_cascade_activation_functions().

Количество крутизны активации по умолчанию - 4.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Количество крутизны активации или false в случае возникновения ошибки.

Смотрите также

  • fann_get_cascade_activation_steepnesses() - Возвращает крутизну каскадной активации
  • fann_set_cascade_activation_functions() - Устанавливает массив каскадных функций активации кандидатов


Возвращает крутизну каскадной активации

  • « fann_get_cascade_activation_steepnesses_count
  • fann_get_cascade_candidate_change_fraction »
  • PHP Manual
  • Функции Fann
  • Возвращает крутизну каскадной активации

fann_get_cascade_activation_steepnesses

(PECL fann >= 1.0.0)

fann_get_cascade_activation_steepnesses — Возвращает крутизну каскадной активации

Описание

fann_get_cascade_activation_steepnesses(resource $ann): array

Массив крутизны каскадной активации - это массив различных функций активации, используемых кандидатами.

Смотрите fann_get_cascade_num_candidates() для описания того, какие кандидатные нейроны будут генерироваться этим массивом.

Крутизна активации по умолчанию: {0,25, 0,50, 0,75, 1,00}.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Крутизна каскадной активации или false в случае возникновения ошибки.

Смотрите также

  • fann_get_cascade_activation_steepnesses_count() - Количество крутизны активации
  • fann_set_cascade_activation_steepnesses() - Устанавливает массив крутизны включения кандидатов в каскад


Возвращает долю изменения каскада кандидата

  • « fann_get_cascade_activation_steepnesses
  • fann_get_cascade_candidate_limit »
  • PHP Manual
  • Функции Fann
  • Возвращает долю изменения каскада кандидата

fann_get_cascade_candidate_change_fraction

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_change_fraction — Возвращает долю изменения каскада кандидата

Описание

fann_get_cascade_candidate_change_fraction(resource $ann): float

Доля изменения каскада кандидата - это число от 0 до 1, определяющее, насколько велико значение fann_get_MSE(), которое должно измениться в пределах fann_get_cascade_candidate_stagnation_epochs() во время обучения нейронов-кандидатов, чтобы обучение не застаивалось. Если обучение застаивается, обучение нейронов-кандидатов прекращается и выбирается лучший кандидат.

Это означает, что если MSE не изменяется на долю fann_get_cascade_candidate_change_fraction() в течение периода fann_get_cascade_candidate_stagnation_epochs(), обучение нейронов-кандидатов прекращается, потому что обучение застопорилось.

Если доля изменения каскада кандидатов мала, нейроны-кандидаты будут обучаться больше, а если доля высокая, они будут обучаться меньше.

Доля изменения каскада кандидата по умолчанию составляет 0.01, что эквивалентно изменению MSE на 1%.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Доля изменения каскада кандидата или false в случае возникновения ошибки.

Смотрите также

  • fann_set_cascade_candidate_change_fraction() - Устанавливает долю каскадного изменения кандидата
  • fann_get_MSE() - Считывает среднеквадратичную ошибку сети
  • fann_get_cascade_candidate_stagnation_epochs() - Возвращает количество периодов застоя каскада кандидата


Возвращает предел кандидата

  • « fann_get_cascade_candidate_change_fraction
  • fann_get_cascade_candidate_stagnation_epochs »
  • PHP Manual
  • Функции Fann
  • Возвращает предел кандидата

fann_get_cascade_candidate_limit

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_limit — Возвращает предел кандидата

Описание

fann_get_cascade_candidate_limit(resource $ann): float

Предел кандидата - это предел того, сколько нейронов кандидата может быть обучено. Ограничение - это ограничение на соотношение между MSE и баллом кандидата.

Устанавливает это на более низкое значение, чтобы избежать переоснащения, и на более высокое, если переоснащение не является проблемой.

Предельное число кандидатов по умолчанию составляет 1000.0.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Предел кандидата или false в случае возникновения ошибки.

Смотрите также

  • fann_set_cascade_candidate_limit() - Устанавливает лимит кандидатов


Возвращает количество периодов застоя каскада кандидата

  • « fann_get_cascade_candidate_limit
  • fann_get_cascade_max_cand_epochs »
  • PHP Manual
  • Функции Fann
  • Возвращает количество периодов застоя каскада кандидата

fann_get_cascade_candidate_stagnation_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_stagnation_epochs — Возвращает количество периодов застоя каскада кандидата

Описание

fann_get_cascade_candidate_stagnation_epochs(resource $ann): int

Количество периодов застоя каскада кандидата определяет количество периодов, которым разрешено продолжить обучение без изменения MSE на долю fann_get_cascade_candidate_change_fraction().

Смотрите дополнительную информацию об этом параметре в fann_get_cascade_candidate_change_fraction().

По умолчанию количество периодов застоя каскада кандидата равно 12.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Количество периодов застоя каскада кандидата или false в случае возникновения ошибки.

Смотрите также

  • fann_set_cascade_candidate_stagnation_epochs() - Устанавливает количество каскадных периодов застоя кандидатов
  • fann_get_cascade_candidate_change_fraction() - Возвращает долю изменения каскада кандидата


Получает наибольший период кандидата

  • « fann_get_cascade_candidate_stagnation_epochs
  • fann_get_cascade_max_out_epochs »
  • PHP Manual
  • Функции Fann
  • Получает наибольший период кандидата

fann_get_cascade_max_cand_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_max_cand_epochs — Получает наибольший период кандидата

Описание

fann_get_cascade_max_cand_epochs(resource $ann): int

Максимальный период кандидата определяет максимальное количество периодов, в которых входные соединения с кандидатами могут быть обучены перед добавлением нового нейрона-кандидата.

Максимальный период кандидата по умолчанию - 150.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Максимальный период кандидата или false в случае возникновения ошибки.

Смотрите также

  • fann_set_cascade_max_cand_epochs() - Устанавливает наибольший период кандидата


Возвращает максимальное количество периодов

  • « fann_get_cascade_max_cand_epochs
  • fann_get_cascade_min_cand_epochs »
  • PHP Manual
  • Функции Fann
  • Возвращает максимальное количество периодов

fann_get_cascade_max_out_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_max_out_epochs — Возвращает максимальное количество периодов

Описание

fann_get_cascade_max_out_epochs(resource $ann): int

Максимальное количество периодов определяет количество периодов, в которых выходные соединения могут быть обучены после добавления нового нейрона-кандидата.

Максимальное количество периодов равно 150.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Максимальное количество периодов или false в случае возникновения ошибки.

Смотрите также

  • fann_set_cascade_max_out_epochs() - Устанавливает максимальное количество эпох


Получает наименьший период кандидата

  • « fann_get_cascade_max_out_epochs
  • fann_get_cascade_min_out_epochs »
  • PHP Manual
  • Функции Fann
  • Получает наименьший период кандидата

fann_get_cascade_min_cand_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_min_cand_epochs — Получает наименьший период кандидата

Описание

fann_get_cascade_min_cand_epochs(resource $ann): int

Минимальный период кандидата определяет минимальное количество периодов, в которых входные соединения с кандидатами могут быть обучены перед добавлением нового нейрона-кандидата.

Минимальный период кандидата по умолчанию - 50.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Минимальный период кандидата или false в случае возникновения ошибки.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_set_cascade_min_cand_epochs() - Устанавливает наименьший период кандидата


Возвращает минимальное количество периодов

  • « fann_get_cascade_min_cand_epochs
  • fann_get_cascade_num_candidate_groups »
  • PHP Manual
  • Функции Fann
  • Возвращает минимальное количество периодов

fann_get_cascade_min_out_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_min_out_epochs — Возвращает минимальное количество периодов

Описание

fann_get_cascade_min_out_epochs(resource $ann): int

Минимальное количество периодов определяет количество периодов, в которых выходные соединения должны быть обучены после добавления нового нейрона-кандидата.

Минимальное количество периодов по умолчанию - 50.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Минимальное количество периодов или false в случае возникновения ошибки.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_set_cascade_min_out_epochs() - Устанавливает минимальные эпохи выходных данных


Возвращает количество групп кандидатов

  • « fann_get_cascade_min_out_epochs
  • fann_get_cascade_num_candidates »
  • PHP Manual
  • Функции Fann
  • Возвращает количество групп кандидатов

fann_get_cascade_num_candidate_groups

(PECL fann >= 1.0.0)

fann_get_cascade_num_candidate_groups — Возвращает количество групп кандидатов

Описание

fann_get_cascade_num_candidate_groups(resource $ann): int

Количество групп кандидатов - это количество групп одинаковых кандидатов, которые будут использоваться во время обучения.

Количество можно использовать для увеличения числа кандидатов без необходимости определять новые параметры для кандидатов.

Смотрите fann_get_cascade_num_candidates() для описания того, какие нейроны-кандидаты будут сгенерированы этим параметром.

Количество групп кандидатов по умолчанию равно 2.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Количество групп кандидатов или false в случае возникновения ошибки.

Смотрите также

  • fann_set_cascade_num_candidate_groups() - Устанавливает количество групп кандидатов


Возвращает количество кандидатов, использованных во время обучения

  • « fann_get_cascade_num_candidate_groups
  • fann_get_cascade_output_change_fraction »
  • PHP Manual
  • Функции Fann
  • Возвращает количество кандидатов, использованных во время обучения

fann_get_cascade_num_candidates

(PECL fann >= 1.0.0)

fann_get_cascade_num_candidates — Возвращает количество кандидатов, использованных во время обучения

Описание

fann_get_cascade_num_candidates(resource $ann): int

Количество кандидатов, использованных во время обучения (рассчитывается путём перемножения
fann_get_cascade_activation_functions_count(),
fann_get_cascade_activation_steepnesses_count() и
fann_get_cascade_num_candidate_groups()).

Фактические кандидаты определяются массивами fann_get_cascade_activation_functions() и fann_get_cascade_activation_steepnesses(). Эти массивы определяют функции активации и крутизны активации, используемые для нейронов-кандидатов. Если есть 2 функции активации в массиве функций активации и 3 крутизны в массиве крутизны, тогда будет 2 x 3 = 6 различных кандидатов, которые будут обучены. Эти 6 разных кандидатов могут быть скопированы в несколько групп кандидатов, где единственное различие между этими группами - начальные веса. Если количество групп равно 2, то количество нейронов-кандидатов будет 2 x 3 x 2 = 12. Количество групп кандидатов определяется fann_set_cascade_num_candidate_groups().

Количество кандидатов по умолчанию - 6 x 4 x 2 = 48.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Количество кандидатов, использованных во время обучения или false в случае возникновения ошибки.

Смотрите также

  • fann_get_cascade_activation_functions() - Возвращает функции каскадной активации
  • fann_get_cascade_activation_functions_count() - Возвращает количество функций каскадной активации
  • fann_get_cascade_activation_steepnesses() - Возвращает крутизну каскадной активации
  • fann_get_cascade_activation_steepnesses_count() - Количество крутизны активации
  • fann_get_cascade_num_candidate_groups() - Возвращает количество групп кандидатов


Возвращает долю изменения выхода каскада

  • « fann_get_cascade_num_candidates
  • fann_get_cascade_output_stagnation_epochs »
  • PHP Manual
  • Функции Fann
  • Возвращает долю изменения выхода каскада

fann_get_cascade_output_change_fraction

(PECL fann >= 1.0.0)

fann_get_cascade_output_change_fraction — Возвращает долю изменения выхода каскада

Описание

fann_get_cascade_output_change_fraction(resource $ann): float

Доля изменения выхода каскада - это число от 0 до 1, определяющее, насколько большая часть значения fann_get_MSE() должна измениться в fann_get_cascade_output_stagnation_epochs() во время обучения выходных соединений, чтобы обучение, чтобы не застаивалось. Если обучение застопорится, обучение выходных соединений будет прекращено и будут подготовлены новые кандидаты.

Это означает, что если MSE не изменяется на долю fann_get_cascade_output_change_fraction() в течение периода fann_get_cascade_output_stagnation_epochs(), обучение выходных соединений прекратится, потому что обучение застопорилось.

Если доля изменения выхода каскада мала, выходные соединения будут обучаться больше, а если доля высокая, они будут обучаться меньше.

Доля изменения выхода каскада по умолчанию составляет 0.01, что эквивалентно изменению MSE на 1%.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Доля изменения выхода каскада или false в случае возникновения ошибки.

Смотрите также

  • fann_set_cascade_output_change_fraction() - Устанавливает долю изменения каскадных выходных данных
  • fann_get_MSE() - Считывает среднеквадратичную ошибку сети
  • fann_get_cascade_output_stagnation_epochs() - Возвращает количество каскадных периодов застоя кандидатов


Возвращает количество каскадных периодов застоя кандидатов

  • « fann_get_cascade_output_change_fraction
  • fann_get_cascade_weight_multiplier »
  • PHP Manual
  • Функции Fann
  • Возвращает количество каскадных периодов застоя кандидатов

fann_get_cascade_output_stagnation_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_output_stagnation_epochs — Возвращает количество каскадных периодов застоя кандидатов

Описание

fann_get_cascade_output_stagnation_epochs(resource $ann): int

Количество каскадных периодов застоя кандидатов определяет количество периодов обучения, которое будет продолжено без изменения оценки MSE с помощью fann_get_cascade_output_change_fraction().

Смотрите дополнительную информацию об этом параметре в fann_get_cascade_output_change_fraction().

По умолчанию количество периодов застоя каскадного вывода равно 12.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Количество каскадных периодов застоя кандидатов или false в случае возникновения ошибки.

Смотрите также

  • fann_set_cascade_output_stagnation_epochs() - Устанавливает количество периодов стагнации каскадного вывода
  • fann_get_cascade_output_change_fraction() - Возвращает долю изменения выхода каскада


Возвращает множитель веса

  • « fann_get_cascade_output_stagnation_epochs
  • fann_get_connection_array »
  • PHP Manual
  • Функции Fann
  • Возвращает множитель веса

fann_get_cascade_weight_multiplier

(PECL fann >= 1.0.0)

fann_get_cascade_weight_multiplier — Возвращает множитель веса

Описание

fann_get_cascade_weight_multiplier(resource $ann): float

Множитель веса - это параметр, который используется для умножения веса нейрона-кандидата перед добавлением нейрона в нейронную сеть. Этот параметр обычно находится в диапазоне от 0 до 1 и используется, чтобы сделать тренировку менее агрессивной.

Множитель веса по умолчанию равен 0.4.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Множитель веса или false в случае возникновения ошибки.

Смотрите также

  • fann_set_cascade_weight_multiplier() - Устанавливает множитель веса


Получает соединения в сети

  • « fann_get_cascade_weight_multiplier
  • fann_get_connection_rate »
  • PHP Manual
  • Функции Fann
  • Получает соединения в сети

fann_get_connection_array

(PECL fann >= 1.0.0)

fann_get_connection_array — Получает соединения в сети

Описание

fann_get_connection_array(resource $ann): array

Получает соединения в сети.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Массив соединений в сети.


Получает скорость соединения, используемую при создании сети

  • « fann_get_connection_array
  • fann_get_errno »
  • PHP Manual
  • Функции Fann
  • Получает скорость соединения, используемую при создании сети

fann_get_connection_rate

(PECL fann >= 1.0.0)

fann_get_connection_rate — Получает скорость соединения, используемую при создании сети

Описание

fann_get_connection_rate(resource $ann): float

Получает скорость соединения, используемую при создании сети.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Скорость соединения, использованная при создании сети или false в случае возникновения ошибки.


Возвращает последний номер ошибки

  • « fann_get_connection_rate
  • fann_get_errstr »
  • PHP Manual
  • Функции Fann
  • Возвращает последний номер ошибки

fann_get_errno

(PECL fann >= 1.0.0)

fann_get_errno — Возвращает последний номер ошибки

Описание

fann_get_errno(resource $errdat): int

Возвращает последний номер ошибки.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Номер ошибки или false в случае возникновения ошибки.

Смотрите также

  • fann_reset_errno() - Сбрасывает номер последней ошибки
  • fann_get_errstr() - Возвращает последнюю строку ошибки


Возвращает последнюю строку ошибки

  • « fann_get_errno
  • fann_get_layer_array »
  • PHP Manual
  • Функции Fann
  • Возвращает последнюю строку ошибки

fann_get_errstr

(PECL fann >= 1.0.0)

fann_get_errstr — Возвращает последнюю строку ошибки

Описание

fann_get_errstr(resource $errdat): string

Возвращает последнюю строку ошибки.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Последняя строка ошибки или false в случае возникновения ошибки.

Смотрите также

  • fann_reset_errstr() - Сбрасывает последнюю строку ошибки
  • fann_get_errno() - Возвращает последний номер ошибки


Получает количество нейронов в каждом слое сети

  • « fann_get_errstr
  • fann_get_learning_momentum »
  • PHP Manual
  • Функции Fann
  • Получает количество нейронов в каждом слое сети

fann_get_layer_array

(PECL fann >= 1.0.0)

fann_get_layer_array — Получает количество нейронов в каждом слое сети

Описание

fann_get_layer_array(resource $ann): array

Получает количество нейронов в каждом слое сети.

Смещение не включено, поэтому слои соответствуют функциям fann_create.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Массив чисел нейтронов в каждом слое.


Возвращает импульс обучения

  • « fann_get_layer_array
  • fann_get_learning_rate »
  • PHP Manual
  • Функции Fann
  • Возвращает импульс обучения

fann_get_learning_momentum

(PECL fann >= 1.0.0)

fann_get_learning_momentum — Возвращает импульс обучения

Описание

fann_get_learning_momentum(resource $ann): float

Импульс обучения можно использовать для ускорения обучения FANN_TRAIN_INCREMENTAL. Однако слишком высокий импульс не принесёт пользы тренировкам. Установка импульса на 0 будет равносильна отключению параметра импульса. Рекомендуемое значение этого параметра составляет от 0.0 до 1.0.

Импульс по умолчанию равен 0.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Импульс обучения или false в случае возникновения ошибки.

Смотрите также

  • fann_set_learning_momentum() - Устанавливает импульс обучения
  • fann_set_training_algorithm() - Устанавливает алгоритм обучения


Возвращает скорость обучения

  • « fann_get_learning_momentum
  • fann_get_MSE »
  • PHP Manual
  • Функции Fann
  • Возвращает скорость обучения

fann_get_learning_rate

(PECL fann >= 1.0.0)

fann_get_learning_rate — Возвращает скорость обучения

Описание

fann_get_learning_rate(resource $ann): float

Скорость обучения используется для определения того, насколько агрессивным должно быть обучение для некоторых алгоритмов обучения (FANN_TRAIN_INCREMENTAL, FANN_TRAIN_BATCH, FANN_TRAIN_QUICKPROP). Однако обратите внимание, что она не используется в FANN_TRAIN_RPROP.

Скорость обучения по умолчанию равна 0.7.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Скорость обучения или false в случае возникновения ошибки.

Смотрите также

  • fann_set_learning_rate() - Устанавливает скорость обучения
  • fann_set_training_algorithm() - Устанавливает алгоритм обучения


Считывает среднеквадратичную ошибку сети

  • « fann_get_learning_rate
  • fann_get_network_type »
  • PHP Manual
  • Функции Fann
  • Считывает среднеквадратичную ошибку сети

fann_get_MSE

(PECL fann >= 1.0.0)

fann_get_MSE — Считывает среднеквадратичную ошибку сети

Описание

fann_get_MSE(resource $ann): float

Считывает среднеквадратичную ошибку сети.

Считывает среднеквадратичную ошибку сети. Это значение вычисляется во время обучения или тестирования и поэтому иногда может немного отличаться, если веса были изменены с момента последнего вычисления значения.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Среднеквадратичная ошибка или false в случае возникновения ошибки.

Смотрите также

  • fann_test_data() - Тестирование набора обучающих данных и вычисление MSE для него


Получает тип нейронной сети

  • « fann_get_MSE
  • fann_get_num_input »
  • PHP Manual
  • Функции Fann
  • Получает тип нейронной сети

fann_get_network_type

(PECL fann >= 1.0.0)

fann_get_network_type — Получает тип нейронной сети

Описание

fann_get_network_type(resource $ann): int

Получает тип нейронной сети, в которой она была создана.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Константа типа сети или false в случае возникновения ошибки.


Получает количество входных нейронов

  • « fann_get_network_type
  • fann_get_num_layers »
  • PHP Manual
  • Функции Fann
  • Получает количество входных нейронов

fann_get_num_input

(PECL fann >= 1.0.0)

fann_get_num_input — Получает количество входных нейронов

Описание

fann_get_num_input(resource $ann): int

Получает количество входных нейронов.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Количество входных нейронов или false в случае возникновения ошибки.


Получает количество слоёв в нейронной сети

  • « fann_get_num_input
  • fann_get_num_output »
  • PHP Manual
  • Функции Fann
  • Получает количество слоёв в нейронной сети

fann_get_num_layers

(PECL fann >= 1.0.0)

fann_get_num_layers — Получает количество слоёв в нейронной сети

Описание

fann_get_num_layers(resource $ann): int

Получает количество слоёв в нейронной сети.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Количество слоёв в нейронной сети или false в случае возникновения ошибки.


Получает количество выходных нейронов

  • « fann_get_num_layers
  • fann_get_quickprop_decay »
  • PHP Manual
  • Функции Fann
  • Получает количество выходных нейронов

fann_get_num_output

(PECL fann >= 1.0.0)

fann_get_num_output — Получает количество выходных нейронов

Описание

fann_get_num_output(resource $ann): int

Получает количество выходных нейронов.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Количество выходных нейронов или false в случае возникновения ошибки.


Возвращает снижение, которое является фактором, при котором веса должны уменьшаться на каждой итерации во время обучения quickprop

  • « fann_get_num_output
  • fann_get_quickprop_mu »
  • PHP Manual
  • Функции Fann
  • Возвращает снижение, которое является фактором, при котором веса должны уменьшаться на каждой итерации во время обучения quickprop

fann_get_quickprop_decay

(PECL fann >= 1.0.0)

fann_get_quickprop_decay — Возвращает снижение, которое является фактором, при котором веса должны уменьшаться на каждой итерации во время обучения quickprop

Описание

fann_get_quickprop_decay(resource $ann): float

Снижение - это небольшое число с отрицательными значениями, которое является фактором, по которому веса должны уменьшаться на каждой итерации во время обучения quickprop. Используется для того, чтобы во время обучения веса не становились слишком высокими.

The default decay is -0.0001.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Снижение или false в случае возникновения ошибки.

Смотрите также

  • fann_set_quickprop_decay() - Устанавливает коэффициент затухания quickprop


Возвращает коэффициент mu

  • « fann_get_quickprop_decay
  • fann_get_rprop_decrease_factor »
  • PHP Manual
  • Функции Fann
  • Возвращает коэффициент mu

fann_get_quickprop_mu

(PECL fann >= 1.0.0)

fann_get_quickprop_mu — Возвращает коэффициент mu

Описание

fann_get_quickprop_mu(resource $ann): float

Коэффициент mu используется для увеличения и уменьшения размера шага во время быстрой тренировки. Коэффициент mu всегда должен быть больше 1, поскольку в противном случае размер шага уменьшится, когда предполагается его увеличить.

Коэффициент mu по умолчанию равен 1.75.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Коэффициент mu или false в случае возникновения ошибки.

Смотрите также

  • fann_set_quickprop_mu() - Устанавливает МЮ-фактор quickprop


Возвращает коэффициент уменьшения, используемый во время обучения RPROP

  • « fann_get_quickprop_mu
  • fann_get_rprop_delta_max »
  • PHP Manual
  • Функции Fann
  • Возвращает коэффициент уменьшения, используемый во время обучения RPROP

fann_get_rprop_decrease_factor

(PECL fann >= 1.0.0)

fann_get_rprop_decrease_factor — Возвращает коэффициент уменьшения, используемый во время обучения RPROP

Описание

fann_get_rprop_decrease_factor(resource $ann): float

Коэффициент уменьшения - это значение меньше 1, которое используется для уменьшения размера шага во время обучения RPROP.

Коэффициент уменьшения по умолчанию составляет 0.5.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Коэффициент уменьшения или false в случае возникновения ошибки.

Смотрите также

  • fann_set_rprop_decrease_factor() - Устанавливает коэффициент уменьшения, используемый во время обучения RPROP


Возвращает максимальный размер шага

  • « fann_get_rprop_decrease_factor
  • fann_get_rprop_delta_min »
  • PHP Manual
  • Функции Fann
  • Возвращает максимальный размер шага

fann_get_rprop_delta_max

(PECL fann >= 1.0.0)

fann_get_rprop_delta_max — Возвращает максимальный размер шага

Описание

fann_get_rprop_delta_max(resource $ann): float

Максимальный размер шага - это положительное число, определяющее, насколько большим может быть максимальный размер шага.

Максимальное значение дельты по умолчанию составляет 50.0.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Максимальный размер шага или false в случае возникновения ошибки.

Смотрите также

  • fann_set_rprop_delta_max() - Устанавливает максимальный размер шага
  • fann_get_rprop_delta_min() - Возвращает минимальный размер шага


Возвращает минимальный размер шага

  • « fann_get_rprop_delta_max
  • fann_get_rprop_delta_zero »
  • PHP Manual
  • Функции Fann
  • Возвращает минимальный размер шага

fann_get_rprop_delta_min

(PECL fann >= 1.0.0)

fann_get_rprop_delta_min — Возвращает минимальный размер шага

Описание

fann_get_rprop_delta_min(resource $ann): float

Минимальный размер шага - это небольшое положительное число, определяющее, насколько маленьким может быть минимальный размер шага.

Значение дельты по умолчанию min равно 0.0.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Минимальный размер шага или false в случае возникновения ошибки.

Смотрите также

  • fann_set_rprop_delta_min() - Устанавливает минимальный размер шага


Возвращает начальный размер шага

  • « fann_get_rprop_delta_min
  • fann_get_rprop_increase_factor »
  • PHP Manual
  • Функции Fann
  • Возвращает начальный размер шага

fann_get_rprop_delta_zero

(PECL fann >= 1.0.0)

fann_get_rprop_delta_zero — Возвращает начальный размер шага

Описание

fann_get_rprop_delta_zero(resource $ann): int

Первоначальный размер шага - это положительное число, определяющее начальный размер шага.

По умолчанию нулевое значение дельты равно 0.1.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Начальный размер шага или false в случае возникновения ошибки.

Смотрите также

  • fann_set_rprop_delta_zero() - Устанавливает начальный размер шага
  • fann_get_rprop_delta_min() - Возвращает минимальный размер шага
  • fann_get_rprop_delta_max() - Возвращает максимальный размер шага


Возвращает коэффициент увеличения, используемый во время обучения RPROP

  • « fann_get_rprop_delta_zero
  • fann_get_sarprop_step_error_shift »
  • PHP Manual
  • Функции Fann
  • Возвращает коэффициент увеличения, используемый во время обучения RPROP

fann_get_rprop_increase_factor

(PECL fann >= 1.0.0)

fann_get_rprop_increase_factor — Возвращает коэффициент увеличения, используемый во время обучения RPROP

Описание

fann_get_rprop_increase_factor(resource $ann): float

Коэффициент увеличения - это значение больше 1, которое используется для увеличения размера шага во время обучения RPROP.

Коэффициент увеличения по умолчанию составляет 1.2.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Коэффициент увеличения или false в случае возникновения ошибки.

Смотрите также

  • fann_set_rprop_increase_factor() - Устанавливает коэффициент увеличения, используемый во время обучения Rprop


Возвращает сдвиг ошибки шага sarprop

  • « fann_get_rprop_increase_factor
  • fann_get_sarprop_step_error_threshold_factor »
  • PHP Manual
  • Функции Fann
  • Возвращает сдвиг ошибки шага sarprop

fann_get_sarprop_step_error_shift

(PECL fann >= 1.0.0)

fann_get_sarprop_step_error_shift — Возвращает сдвиг ошибки шага sarprop

Описание

fann_get_sarprop_step_error_shift(resource $ann): float

Возвращает сдвиг ошибки шага sarprop.

Сдвиг ошибки шага по умолчанию составляет 1.385.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Сдвиг ошибки шага sarprop или false в случае возникновения ошибки.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_set_sarprop_step_error_shift() - Устанавливает сдвиг ошибки шага sarprop


Возвращает пороговый коэффициент ошибки шага sarprop

  • « fann_get_sarprop_step_error_shift
  • fann_get_sarprop_temperature »
  • PHP Manual
  • Функции Fann
  • Возвращает пороговый коэффициент ошибки шага sarprop

fann_get_sarprop_step_error_threshold_factor

(PECL fann >= 1.0.0)

fann_get_sarprop_step_error_threshold_factor — Возвращает пороговый коэффициент ошибки шага sarprop

Описание

fann_get_sarprop_step_error_threshold_factor(resource $ann): float

Возвращает пороговый коэффициент ошибки шага sarprop.

Коэффициент по умолчанию составляет 0.1.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Пороговый коэффициент ошибки шага или false в случае возникновения ошибки.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_set_sarprop_step_error_threshold_factor() - Устанавливает пороговый коэффициент ошибки шага sarprop


Возвращает температуру sarprop

  • « fann_get_sarprop_step_error_threshold_factor
  • fann_get_sarprop_weight_decay_shift »
  • PHP Manual
  • Функции Fann
  • Возвращает температуру sarprop

fann_get_sarprop_temperature

(PECL fann >= 1.0.0)

fann_get_sarprop_temperature — Возвращает температуру sarprop

Описание

fann_get_sarprop_temperature(resource $ann): float

Возвращает температуру sarprop.

Температура по умолчанию составляет 0.015.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Температура sarprop или false в случае возникновения ошибки.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_set_sarprop_temperature() - Устанавливает температуру sarprop


Возвращает сдвиг уменьшения веса sarprop

  • « fann_get_sarprop_temperature
  • fann_get_total_connections »
  • PHP Manual
  • Функции Fann
  • Возвращает сдвиг уменьшения веса sarprop

fann_get_sarprop_weight_decay_shift

(PECL fann >= 1.0.0)

fann_get_sarprop_weight_decay_shift — Возвращает сдвиг уменьшения веса sarprop

Описание

fann_get_sarprop_weight_decay_shift(resource $ann): float

Возвращает сдвиг уменьшения веса sarprop.

Максимальная дельта по умолчанию составляет -6.644.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Сдвиг уменьшения веса sarprop или false в случае возникновения ошибки.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_set_sarprop_weight_decay_shift() - Устанавливает смещение затухания sarprop


Получает общее количество соединений во всей сети

  • « fann_get_sarprop_weight_decay_shift
  • fann_get_total_neurons »
  • PHP Manual
  • Функции Fann
  • Получает общее количество соединений во всей сети

fann_get_total_connections

(PECL fann >= 1.0.0)

fann_get_total_connections — Получает общее количество соединений во всей сети

Описание

fann_get_total_connections(resource $ann): int

Получает общее количество соединений во всей сети.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Общее количество соединений во всей сети или false в случае возникновения ошибки.


Получает общее количество нейронов во всей сети

  • « fann_get_total_connections
  • fann_get_train_error_function »
  • PHP Manual
  • Функции Fann
  • Получает общее количество нейронов во всей сети

fann_get_total_neurons

(PECL fann >= 1.0.0)

fann_get_total_neurons — Получает общее количество нейронов во всей сети

Описание

fann_get_total_neurons(resource $ann): int

Получает общее количество нейронов во всей сети. Число также включает нейроны смещения, поэтому у сети 2-4-2 есть 2+4+2 +2 (смещение) = 10 нейронов.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Общее количество нейронов во всей сети или false в случае возникновения ошибки.


Возвращает функцию обработки ошибок, используемую во время обучения

  • « fann_get_total_neurons
  • fann_get_train_stop_function »
  • PHP Manual
  • Функции Fann
  • Возвращает функцию обработки ошибок, используемую во время обучения

fann_get_train_error_function

(PECL fann >= 1.0.0)

fann_get_train_error_function — Возвращает функцию обработки ошибок, используемую во время обучения

Описание

fann_get_train_error_function(resource $ann): int

Возвращает функцию обработки ошибок, используемую во время обучения.

Функции обработки ошибок описаны далее в константах функции обработки ошибок.

Функции обработки ошибок по умолчанию: FANN_ERRORFUNC_TANH.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Константа функции обработки ошибок или false в случае возникновения ошибки.

Смотрите также

  • fann_set_train_error_function() - Устанавливает функцию ошибки, используемую во время тренировки


Возвращает функцию остановки, используемую во время обучения

  • « fann_get_train_error_function
  • fann_get_training_algorithm »
  • PHP Manual
  • Функции Fann
  • Возвращает функцию остановки, используемую во время обучения

fann_get_train_stop_function

(PECL fann >= 1.0.0)

fann_get_train_stop_function — Возвращает функцию остановки, используемую во время обучения

Описание

fann_get_train_stop_function(resource $ann): int

Возвращает функцию остановки, используемую во время обучения.

Функции остановки описаны далее в константах функции остановки.

Функция остановки по умолчанию: FANN_STOPFUNC_MSE.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Константа функции остановки или false в случае возникновения ошибки.

Смотрите также

  • fann_set_train_stop_function() - Устанавливает функцию остановки, используемую во время тренировки


Возвращает алгоритм обучения

  • « fann_get_train_stop_function
  • fann_init_weights »
  • PHP Manual
  • Функции Fann
  • Возвращает алгоритм обучения

fann_get_training_algorithm

(PECL fann >= 1.0.0)

fann_get_training_algorithm — Возвращает алгоритм обучения

Описание

fann_get_training_algorithm(resource $ann): int

Возвращает алгоритм обучения. Этот алгоритм обучения используется fann_train_on_data() и связанными функциями.

Обратите внимание, что этот алгоритм также используется во время fann_cascadetrain_on_data(), хотя во время каскадного обучения разрешены только FANN_TRAIN_RPROP and FANN_TRAIN_QUICKPROP.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Константа Алгоритма обучения или false в случае возникновения ошибки.

Смотрите также

  • fann_set_training_algorithm() - Устанавливает алгоритм обучения


Инициализирует веса с помощью алгоритма Widrow + Nguyen

  • « fann_get_training_algorithm
  • fann_length_train_data »
  • PHP Manual
  • Функции Fann
  • Инициализирует веса с помощью алгоритма Widrow + Nguyen

fann_init_weights

(PECL fann >= 1.0.0)

fann_init_weights — Инициализирует веса с помощью алгоритма Widrow + Nguyen

Описание

fann_init_weights(resource $ann, resource $train_data): bool

Инициализирует веса с помощью алгоритма Widrow + Nguyen.

Функция ведёт себя аналогично fann_randomize_weights(). Она будет использовать алгоритм, разработанный Дерриком Нгуеном и Бернардом Видроу, чтобы установить веса таким образом, чтобы ускорить обучение. Метод не всегда бывает успешным, а в некоторых случаях может быть менее эффективным, чем чисто случайная инициализация.

Алгоритм требует доступа к диапазону входных данных (например, наибольшим и наименьшим входным данным) и, следовательно, принимает второй аргумент, data, который является обучающими данными, которые будут использоваться для обучения сети.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_randomize_weights() - Присваивает каждому соединению случайный вес между min_weight и max_weight
  • fann_read_train_from_file() - Читает файл, в котором хранятся данные обучения


Возвращает количество шаблонов в обучающих данных

  • « fann_init_weights
  • fann_merge_train_data »
  • PHP Manual
  • Функции Fann
  • Возвращает количество шаблонов в обучающих данных

fann_length_train_data

(PECL fann >= 1.0.0)

fann_length_train_data — Возвращает количество шаблонов в обучающих данных

Описание

fann_length_train_data(resource $data): int

Возвращает количество шаблонов в ресурсе (resource) обучающих данных.

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Количество элементов в ресурсе (resource) обучающих данных или false в случае возникновения ошибки.


Объединяет обучающие данные

  • « fann_length_train_data
  • fann_num_input_train_data »
  • PHP Manual
  • Функции Fann
  • Объединяет обучающие данные

fann_merge_train_data

(PECL fann >= 1.0.0)

fann_merge_train_data — Объединяет обучающие данные

Описание

fann_merge_train_data(resource $data1, resource $data2): resource

Объединяет данные из data1 и data2 в новый ресурс (resource) обучающих данных.

Список параметров

data1

Ресурс (resource) обучающих данных нейронной сети.

data2

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Новый ресурс (resource) объединённых обучающих данных или false в случае возникновения ошибки.


Возвращает количество входных данных в каждом из шаблонов в обучающих данных

  • « fann_merge_train_data
  • fann_num_output_train_data »
  • PHP Manual
  • Функции Fann
  • Возвращает количество входных данных в каждом из шаблонов в обучающих данных

fann_num_input_train_data

(PECL fann >= 1.0.0)

fann_num_input_train_data — Возвращает количество входных данных в каждом из шаблонов в обучающих данных

Описание

fann_num_input_train_data(resource $data): int

Возвращает количество входных данных в каждом из шаблонов в ресурсе (resource) обучающих данных.

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Количество входных данных или false в случае возникновения ошибки.

Смотрите также

  • fann_length_train_data() - Возвращает количество шаблонов в обучающих данных
  • fann_num_output_train_data() - Возвращает количество выходных данных в каждом из шаблонов в обучающих данных


Возвращает количество выходных данных в каждом из шаблонов в обучающих данных

  • « fann_num_input_train_data
  • fann_print_error »
  • PHP Manual
  • Функции Fann
  • Возвращает количество выходных данных в каждом из шаблонов в обучающих данных

fann_num_output_train_data

(PECL fann >= 1.0.0)

fann_num_output_train_data — Возвращает количество выходных данных в каждом из шаблонов в обучающих данных

Описание

fann_num_output_train_data(resource $data): int

Возвращает количество выходных данных в каждом из шаблонов в ресурсе (resource) обучающих данных.

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Количество выходных данных или false в случае возникновения ошибки.

Смотрите также

  • fann_length_train_data() - Возвращает количество шаблонов в обучающих данных
  • fann_num_input_train_data() - Возвращает количество входных данных в каждом из шаблонов в обучающих данных


Выводит строку ошибки

  • « fann_num_output_train_data
  • fann_randomize_weights »
  • PHP Manual
  • Функции Fann
  • Выводит строку ошибки

fann_print_error

(PECL fann >= 1.0.0)

fann_print_error — Выводит строку ошибки

Описание

fann_print_error(resource $errdat): void

Выводит строку ошибки.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Не возвращает никакого значения.

Смотрите также

  • fann_get_errstr() - Возвращает последнюю строку ошибки


Присваивает каждому соединению случайный вес между min_weight и max_weight

  • « fann_print_error
  • fann_read_train_from_file »
  • PHP Manual
  • Функции Fann
  • Присваивает каждому соединению случайный вес между min_weight и max_weight

fann_randomize_weights

(PECL fann >= 1.0.0)

fann_randomize_weights — Присваивает каждому соединению случайный вес между min_weight и max_weight

Описание

fann_randomize_weights(resource $ann, float $min_weight, float $max_weight): bool

Присваивает каждому соединению случайный вес между min_weight и max_weight

С самого начала случайный вес в диапазоне от -0,1 до 0,1.

Список параметров

ann

Ресурс (resource) нейронной сети.

min_weight

Минимальное значение веса.

max_weight

Максимальное значение веса.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_init_weights() - Инициализирует веса с помощью алгоритма Widrow + Nguyen


Читает файл, в котором хранятся данные обучения

  • « fann_randomize_weights
  • fann_reset_errno »
  • PHP Manual
  • Функции Fann
  • Читает файл, в котором хранятся данные обучения

fann_read_train_from_file

(PECL fann >= 1.0.0)

fann_read_train_from_file — Читает файл, в котором хранятся данные обучения

Описание

fann_read_train_from_file(string $filename): resource

Читает файл, в котором хранятся данные обучения.

Список параметров

filename

Входной файл в следующем формате:

num_train_data num_input num_output
входные данные, разделённые пробелом
выходные данные, разделённые пробелом

.
.
.

входные данные, разделённые пробелом
выходные данные, разделённые пробелом

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования fann_read_train_from_file()

<?php
$train_data = fann_read_train_from_file("xor.data");
if ($train_data) {
// Сделайте что-нибудь с $train_data для функции XOR
}
?>

Содержимое xor.data

4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

Смотрите также

  • fann_train_on_data() - Обучение на всем объёме данных на временном интервале
  • fann_destroy_train() - Уничтожает тренировочные данные
  • fann_save_train() - Сохраняет структуру обучения в файл


Сбрасывает номер последней ошибки

  • « fann_read_train_from_file
  • fann_reset_errstr »
  • PHP Manual
  • Функции Fann
  • Сбрасывает номер последней ошибки

fann_reset_errno

(PECL fann >= 1.0.0)

fann_reset_errno — Сбрасывает номер последней ошибки

Описание

fann_reset_errno(resource $errdat): void

Сбрасывает номер последней ошибки.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Не возвращает никакого значения.

Смотрите также

  • fann_get_errno() - Возвращает последний номер ошибки
  • fann_reset_errstr() - Сбрасывает последнюю строку ошибки


Сбрасывает последнюю строку ошибки

  • « fann_reset_errno
  • fann_reset_MSE »
  • PHP Manual
  • Функции Fann
  • Сбрасывает последнюю строку ошибки

fann_reset_errstr

(PECL fann >= 1.0.0)

fann_reset_errstr — Сбрасывает последнюю строку ошибки

Описание

fann_reset_errstr(resource $errdat): void

Сбрасывает последнюю строку ошибки.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Не возвращает никакого значения.

Смотрите также

  • fann_get_errstr() - Возвращает последнюю строку ошибки
  • fann_reset_errno() - Сбрасывает номер последней ошибки


Сбрасывает среднеквадратичную ошибку из сети

  • « fann_reset_errstr
  • fann_run »
  • PHP Manual
  • Функции Fann
  • Сбрасывает среднеквадратичную ошибку из сети

fann_reset_MSE

(PECL fann >= 1.0.0)

fann_reset_MSE — Сбрасывает среднеквадратичную ошибку из сети

Описание

fann_reset_MSE(string $ann): bool

Сбрасывает среднеквадратичную ошибку из сети.

Функция также сбрасывает количество вышедших из строя битов.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_MSE() - Считывает среднеквадратичную ошибку сети
  • fann_get_bit_fail() - Количество битов сбоя
  • fann_get_bit_fail_limit() - Возвращает предел сбоя битов, использованный во время обучения


Запускает нейронную сеть с заданными данными

  • « fann_reset_MSE
  • fann_save_train »
  • PHP Manual
  • Функции Fann
  • Запускает нейронную сеть с заданными данными

fann_run

(PECL fann >= 1.0.0)

fann_run — Запускает нейронную сеть с заданными данными

Описание

fann_run(resource $ann, array $input): array

Запускает нейронную сеть с заданными данными, возвращая массив выходов, номера которых соответствует номерам нейронов в выходном слое.

Список параметров

ann

Ресурс (resource) нейронной сети.

input

Массив входных данных

Возвращаемые значения

Массив выходных данных, либо false в случае возникновения ошибки.


Сохраняет структуру обучения в файл

  • « fann_run
  • fann_save »
  • PHP Manual
  • Функции Fann
  • Сохраняет структуру обучения в файл

fann_save_train

(PECL fann >= 1.0.0)

fann_save_train — Сохраняет структуру обучения в файл

Описание

fann_save_train(resource $data, string $file_name): bool

Сохраняет данные обучения в файл в формате, указанном в fann_read_train_from_file().

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

file_name

Имя файла, в котором сохраняются данные обучения.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_read_train_from_file() - Читает файл, в котором хранятся данные обучения


Сохраняет всю сеть в файл конфигурации

  • « fann_save_train
  • fann_scale_input_train_data »
  • PHP Manual
  • Функции Fann
  • Сохраняет всю сеть в файл конфигурации

fann_save

(PECL fann >= 1.0.0)

fann_save — Сохраняет всю сеть в файл конфигурации

Описание

fann_save(resource $ann, string $configuration_file): bool

Сохраняет всю сеть в файл конфигурации.

Файл конфигурации содержит всю информацию о нейронной сети и позволяет функции fann_create_from_file() создавать точную копию нейронной сети и всех параметров, связанных с нейронной сетью.

Три параметра (fann_set_callback(), fann_set_error_log(), fann_set_user_data()) НЕ сохраняются в файл, потому что их нельзя безопасно перенести в другое место. Также не сохраняются временные параметры, сгенерированные во время обучения, такие как fann_get_MSE().

Список параметров

ann

Ресурс (resource) нейронной сети.

configuration_file

Путь к файлу конфигурации.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_create_from_file() - Создаёт нейронную сеть с обратным распространением ошибки из конфигурационного файла


Масштабирует входные данные в обучающих данных до указанного диапазона

  • « fann_save
  • fann_scale_input »
  • PHP Manual
  • Функции Fann
  • Масштабирует входные данные в обучающих данных до указанного диапазона

fann_scale_input_train_data

(PECL fann >= 1.0.0)

fann_scale_input_train_data — Масштабирует входные данные в обучающих данных до указанного диапазона

Описание

fann_scale_input_train_data(resource $train_data, float $new_min, float $new_max): bool

Масштабирует входные данные в обучающих данных до указанного диапазона.

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_min

Новый минимум после масштабирования входных данных в обучающих данных.

new_max

Новый максимум после масштабирования входных данных в обучающих данных.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_scale_output_train_data() - Масштабирует выходные данные в обучающих данных до указанного диапазона
  • fann_scale_train_data() - Масштабирует входные и выходные данные в обучающих данных до указанного диапазона


Масштабирует данные во входном векторе перед подачей их в ann на основе ранее рассчитанных параметров

  • « fann_scale_input_train_data
  • fann_scale_output_train_data »
  • PHP Manual
  • Функции Fann
  • Масштабирует данные во входном векторе перед подачей их в ann на основе ранее рассчитанных параметров

fann_scale_input

(PECL fann >= 1.0.0)

fann_scale_input — Масштабирует данные во входном векторе перед подачей их в ann на основе ранее рассчитанных параметров

Описание

fann_scale_input(resource $ann, array $input_vector): bool

Масштабирует данные во входном векторе перед подачей их в ann на основе ранее рассчитанных параметров.

Список параметров

ann

Ресурс (resource) нейронной сети.

input_vector

Входной вектор, который будет масштабирован.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_descale_input() - Масштабирует данные во входном векторе после получения их на основе ранее рассчитанных параметров
  • fann_scale_output() - Масштабирует данные в выходном векторе перед их передачей в ann на основе ранее рассчитанных параметров


Масштабирует выходные данные в обучающих данных до указанного диапазона

  • « fann_scale_input
  • fann_scale_output »
  • PHP Manual
  • Функции Fann
  • Масштабирует выходные данные в обучающих данных до указанного диапазона

fann_scale_output_train_data

(PECL fann >= 1.0.0)

fann_scale_output_train_data — Масштабирует выходные данные в обучающих данных до указанного диапазона

Описание

fann_scale_output_train_data(resource $train_data, float $new_min, float $new_max): bool

Масштабирует выходные данные в обучающих данных до указанного диапазона.

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_min

Новый минимум после масштабирования выходных данных в обучающих данных.

new_max

Новый максимум после масштабирования выходных данных в обучающих данных.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_scale_input_train_data() - Масштабирует входные данные в обучающих данных до указанного диапазона
  • fann_scale_train_data() - Масштабирует входные и выходные данные в обучающих данных до указанного диапазона


Масштабирует данные в выходном векторе перед их передачей в ann на основе ранее рассчитанных параметров

  • « fann_scale_output_train_data
  • fann_scale_train_data »
  • PHP Manual
  • Функции Fann
  • Масштабирует данные в выходном векторе перед их передачей в ann на основе ранее рассчитанных параметров

fann_scale_output

(PECL fann >= 1.0.0)

fann_scale_output — Масштабирует данные в выходном векторе перед их передачей в ann на основе ранее рассчитанных параметров

Описание

fann_scale_output(resource $ann, array $output_vector): bool

Масштабирует данные в выходном векторе перед их передачей в ann на основе ранее рассчитанных параметров.

Список параметров

ann

Ресурс (resource) нейронной сети.

output_vector

Выходной вектор, который будет масштабирован.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_descale_output() - Масштабирует данные в выходном векторе после получения их ина основе ранее рассчитанных параметров
  • fann_scale_input() - Масштабирует данные во входном векторе перед подачей их в ann на основе ранее рассчитанных параметров


Масштабирует входные и выходные данные в обучающих данных до указанного диапазона

  • « fann_scale_output
  • fann_scale_train »
  • PHP Manual
  • Функции Fann
  • Масштабирует входные и выходные данные в обучающих данных до указанного диапазона

fann_scale_train_data

(PECL fann >= 1.0.0)

fann_scale_train_data — Масштабирует входные и выходные данные в обучающих данных до указанного диапазона

Описание

fann_scale_train_data(resource $train_data, float $new_min, float $new_max): bool

Масштабирует входные и выходные данные в обучающих данных до указанного диапазона.

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_min

Новый минимум после масштабирования входных и выходных данных в обучающих данных.

new_max

Новый максимум после масштабирования входных и выходных данных в обучающих данных.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_scale_output_train_data() - Масштабирует выходные данные в обучающих данных до указанного диапазона
  • fann_scale_input_train_data() - Масштабирует входные данные в обучающих данных до указанного диапазона


Масштабирует входные и выходные данные на основе ранее рассчитанных параметров

  • « fann_scale_train_data
  • fann_set_activation_function_hidden »
  • PHP Manual
  • Функции Fann
  • Масштабирует входные и выходные данные на основе ранее рассчитанных параметров

fann_scale_train

(PECL fann >= 1.0.0)

fann_scale_train — Масштабирует входные и выходные данные на основе ранее рассчитанных параметров

Описание

fann_scale_train(resource $ann, resource $train_data): bool

Масштабирует входные и выходные данные на основе ранее рассчитанных параметров.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_descale_train() - Масштабирование входных и выходных данных на основе предварительно рассчитанных параметров
  • fann_set_scaling_params() - Рассчитывает входные и выходные параметры масштабирования для будущего использования на основе данных обучения


Устанавливает функцию активации для всех скрытых слоёв

  • « fann_scale_train
  • fann_set_activation_function_layer »
  • PHP Manual
  • Функции Fann
  • Устанавливает функцию активации для всех скрытых слоёв

fann_set_activation_function_hidden

(PECL fann >= 1.0.0)

fann_set_activation_function_hidden — Устанавливает функцию активации для всех скрытых слоёв

Описание

fann_set_activation_function_hidden(resource $ann, int $activation_function): bool

Устанавливает функцию активации для всех скрытых слоёв.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_function

Константа функций активации.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_set_activation_function() - Устанавливает функцию активации для указанного нейрона и слоя
  • fann_set_activation_function_layer() - Устанавливает функцию активации для всех нейронов в предоставленном слое
  • fann_set_activation_function_output() - Устанавливает функцию активации для выходного слоя
  • fann_set_activation_steepness() - Устанавливает крутизну активации для указанного нейрона и номера слоя


Устанавливает функцию активации для всех нейронов в предоставленном слое

  • « fann_set_activation_function_hidden
  • fann_set_activation_function_output »
  • PHP Manual
  • Функции Fann
  • Устанавливает функцию активации для всех нейронов в предоставленном слое

fann_set_activation_function_layer

(PECL fann >= 1.0.0)

fann_set_activation_function_layer — Устанавливает функцию активации для всех нейронов в предоставленном слое

Описание

fann_set_activation_function_layer(resource $ann, int $activation_function, int $layer): bool

Установите функцию активации для всех нейронов в слое номер layer, считая входной слой слоем 0.

Невозможно установить функции активации для нейронов во входном слое.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_function

Константа функций активации.

layer

Номер слоя.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_set_activation_function() - Устанавливает функцию активации для указанного нейрона и слоя
  • fann_set_activation_function_hidden() - Устанавливает функцию активации для всех скрытых слоёв
  • fann_set_activation_function_output() - Устанавливает функцию активации для выходного слоя
  • fann_set_activation_steepness() - Устанавливает крутизну активации для указанного нейрона и номера слоя


Устанавливает функцию активации для выходного слоя

  • « fann_set_activation_function_layer
  • fann_set_activation_function »
  • PHP Manual
  • Функции Fann
  • Устанавливает функцию активации для выходного слоя

fann_set_activation_function_output

(PECL fann >= 1.0.0)

fann_set_activation_function_output — Устанавливает функцию активации для выходного слоя

Описание

fann_set_activation_function_output(resource $ann, int $activation_function): bool

Устанавливает функцию активации для выходного слоя.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_function

Константа функций активации.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_set_activation_function() - Устанавливает функцию активации для указанного нейрона и слоя
  • fann_set_activation_function_layer() - Устанавливает функцию активации для всех нейронов в предоставленном слое
  • fann_set_activation_function_hidden() - Устанавливает функцию активации для всех скрытых слоёв
  • fann_set_activation_steepness() - Устанавливает крутизну активации для указанного нейрона и номера слоя


Устанавливает функцию активации для указанного нейрона и слоя

  • « fann_set_activation_function_output
  • fann_set_activation_steepness_hidden »
  • PHP Manual
  • Функции Fann
  • Устанавливает функцию активации для указанного нейрона и слоя

fann_set_activation_function

(PECL fann >= 1.0.0)

fann_set_activation_function — Устанавливает функцию активации для указанного нейрона и слоя

Описание

fann_set_activation_function(
resource $ann,
int $activation_function,
int $layer,
int $neuron
): bool

Установите функцию активации для нейрона номер neuron в слое номер layer, считая входной слой как слой 0.

Невозможно установить функции активации для нейронов во входном слое.

При выборе функции активации важно учитывать, что у функций активации разный диапазон. FANN_SIGMOID, например, в диапазоне от 0 до 1, в то время как FANN_SIGMOID_SYMMETRIC находится в диапазоне от -1 до 1, а FANN_LINEAR без ограничений.

Предоставленное значение activation_function должно быть одной из констант функций активации.

Возвращаемое значение - одна из констант функций активации.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_function

Константа функций активации.

layer

Номер слоя.

neuron

Номер нейрона.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_set_activation_function_layer() - Устанавливает функцию активации для всех нейронов в предоставленном слое
  • fann_set_activation_function_hidden() - Устанавливает функцию активации для всех скрытых слоёв
  • fann_set_activation_function_output() - Устанавливает функцию активации для выходного слоя
  • fann_set_activation_steepness() - Устанавливает крутизну активации для указанного нейрона и номера слоя
  • fann_get_activation_function() - Возвращает функцию активации


Устанавливает крутизну крутизны активации для всех нейронов во всех скрытых слоях

  • « fann_set_activation_function
  • fann_set_activation_steepness_layer »
  • PHP Manual
  • Функции Fann
  • Устанавливает крутизну крутизны активации для всех нейронов во всех скрытых слоях

fann_set_activation_steepness_hidden

(PECL fann >= 1.0.0)

fann_set_activation_steepness_hidden — Устанавливает крутизну крутизны активации для всех нейронов во всех скрытых слоях

Описание

fann_set_activation_steepness_hidden(resource $ann, float $activation_steepness): bool

Устанавливает крутизну крутизны активации для всех нейронов во всех скрытых слоях.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_steepness

Крутизна активации.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_set_activation_steepness() - Устанавливает крутизну активации для указанного нейрона и номера слоя
  • fann_set_activation_steepness_layer() - Устанавливает крутизну активации для всех нейронов в указанном номере слоя
  • fann_set_activation_steepness_output() - Устанавливает крутизну активации в выходном слое
  • fann_get_activation_steepness() - Возвращает крутизну активации для поставляемого нейрона и номера слоя
  • fann_set_activation_function() - Устанавливает функцию активации для указанного нейрона и слоя


Устанавливает крутизну активации для всех нейронов в указанном номере слоя

  • « fann_set_activation_steepness_hidden
  • fann_set_activation_steepness_output »
  • PHP Manual
  • Функции Fann
  • Устанавливает крутизну активации для всех нейронов в указанном номере слоя

fann_set_activation_steepness_layer

(PECL fann >= 1.0.0)

fann_set_activation_steepness_layer — Устанавливает крутизну активации для всех нейронов в указанном номере слоя

Описание

fann_set_activation_steepness_layer(resource $ann, float $activation_steepness, int $layer): bool

Установите крутизну активации для всех нейронов в слое номер layer, считая входной слой как слой 0.

Невозможно установить крутизну активации нейронов во входном слое.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_steepness

Крутизна активации.

layer

Номер слоя.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_set_activation_steepness() - Устанавливает крутизну активации для указанного нейрона и номера слоя
  • fann_set_activation_steepness_hidden() - Устанавливает крутизну крутизны активации для всех нейронов во всех скрытых слоях
  • fann_set_activation_steepness_output() - Устанавливает крутизну активации в выходном слое
  • fann_get_activation_steepness() - Возвращает крутизну активации для поставляемого нейрона и номера слоя
  • fann_set_activation_function() - Устанавливает функцию активации для указанного нейрона и слоя


Устанавливает крутизну активации в выходном слое

  • « fann_set_activation_steepness_layer
  • fann_set_activation_steepness »
  • PHP Manual
  • Функции Fann
  • Устанавливает крутизну активации в выходном слое

fann_set_activation_steepness_output

(PECL fann >= 1.0.0)

fann_set_activation_steepness_output — Устанавливает крутизну активации в выходном слое

Описание

fann_set_activation_steepness_output(resource $ann, float $activation_steepness): bool

Устанавливает крутизну активации в выходном слое.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_steepness

Крутизна активации.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_set_activation_steepness() - Устанавливает крутизну активации для указанного нейрона и номера слоя
  • fann_set_activation_steepness_layer() - Устанавливает крутизну активации для всех нейронов в указанном номере слоя
  • fann_set_activation_steepness_hidden() - Устанавливает крутизну крутизны активации для всех нейронов во всех скрытых слоях
  • fann_get_activation_steepness() - Возвращает крутизну активации для поставляемого нейрона и номера слоя
  • fann_set_activation_function() - Устанавливает функцию активации для указанного нейрона и слоя


Устанавливает крутизну активации для указанного нейрона и номера слоя

  • « fann_set_activation_steepness_output
  • fann_set_bit_fail_limit »
  • PHP Manual
  • Функции Fann
  • Устанавливает крутизну активации для указанного нейрона и номера слоя

fann_set_activation_steepness

(PECL fann >= 1.0.0)

fann_set_activation_steepness — Устанавливает крутизну активации для указанного нейрона и номера слоя

Описание

fann_set_activation_steepness(
resource $ann,
float $activation_steepness,
int $layer,
int $neuron
): bool

Установите крутизну активации для нейрона номер neuron в слое номер layer, считая входной слой как слой 0.

Невозможно установить крутизну активации нейронов во входном слое.

Крутизна функции активации кое-что говорит о том, насколько быстро функция активации переходит от минимума к максимуму. Высокое значение функции активации также даст более агрессивное обучение.

При обучении нейронных сетей, в которых выходные значения должны быть крайними (обычно 0 и 1, в зависимости от функции активации), может использоваться крутая функция активации (например, 1.0).

По умолчанию крутизна активации составляет 0.5.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_steepness

Крутизна активации.

layer

Номер слоя.

neuron

Номер нейрона.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_set_activation_steepness_layer() - Устанавливает крутизну активации для всех нейронов в указанном номере слоя
  • fann_set_activation_steepness_hidden() - Устанавливает крутизну крутизны активации для всех нейронов во всех скрытых слоях
  • fann_set_activation_steepness_output() - Устанавливает крутизну активации в выходном слое
  • fann_get_activation_steepness() - Возвращает крутизну активации для поставляемого нейрона и номера слоя
  • fann_set_activation_function() - Устанавливает функцию активации для указанного нейрона и слоя


Устанавливает предел ошибок, используемый во время обучения

  • « fann_set_activation_steepness
  • fann_set_callback »
  • PHP Manual
  • Функции Fann
  • Устанавливает предел ошибок, используемый во время обучения

fann_set_bit_fail_limit

(PECL fann >= 1.0.0)

fann_set_bit_fail_limit — Устанавливает предел ошибок, используемый во время обучения

Описание

fann_set_bit_fail_limit(resource $ann, float $bit_fail_limit): bool

Устанавливает предел ошибок, используемый во время обучения.

Список параметров

ann

Ресурс (resource) нейронной сети.

bit_fail_limit

Предел ошибок.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_bit_fail_limit() - Возвращает предел сбоя битов, использованный во время обучения


Устанавливает callback-функцию для использования во время обучения

  • « fann_set_bit_fail_limit
  • fann_set_cascade_activation_functions »
  • PHP Manual
  • Функции Fann
  • Устанавливает callback-функцию для использования во время обучения

fann_set_callback

(PECL fann >= 1.0.0)

fann_set_callback — Устанавливает callback-функцию для использования во время обучения

Описание

fann_set_callback(resource $ann, callable $callback): bool

Устанавливает callback-функцию для использования во время обучения. Это означает, что она вызывается из fann_train_on_data() или fann_train_on_file().

Список параметров

ann

Ресурс (resource) нейронной сети.

callback

Поставляемая callback-функция принимает следующие параметры:

  • ann - Ресурс (resource) нейронной сети
  • train - Ресурс (resource) данных для обучения или null, если вызывается из fann_train_on_file()
  • max_epochs - Максимальное количество периодов, в которых должно продолжаться обучение
  • epochs_between_reports - Количество периодов между вызовами этой функции
  • desired_error - Желаемая функция fann_get_MSE() или fann_get_bit_fail(), в зависимости от функции остановки, выбранной fann_set_train_stop_function()
  • epochs - Текущий период

Callback-функция должна вернуть true. Если она вернёт false, обучение будет прекращено.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_train_on_data() - Обучение на всем объёме данных на временном интервале
  • fann_train_on_file() - Обучение на полном наборе данных, прочитанном из файла, на временном интервале


Устанавливает массив каскадных функций активации кандидатов

  • « fann_set_callback
  • fann_set_cascade_activation_steepnesses »
  • PHP Manual
  • Функции Fann
  • Устанавливает массив каскадных функций активации кандидатов

fann_set_cascade_activation_functions

(PECL fann >= 1.0.0)

fann_set_cascade_activation_functions — Устанавливает массив каскадных функций активации кандидатов

Описание

fann_set_cascade_activation_functions(resource $ann, array $cascade_activation_functions): bool

Устанавливает массив каскадных функций активации кандидатов.

Смотрите fann_get_cascade_num_candidates() для описания того, какие нейроны-кандидаты будут сгенерированы этим массивом.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_activation_functions

Массив каскадных функций активации кандидатов.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_cascade_activation_functions_count() - Возвращает количество функций каскадной активации
  • fann_set_cascade_activation_functions()


Устанавливает массив крутизны включения кандидатов в каскад

  • « fann_set_cascade_activation_functions
  • fann_set_cascade_candidate_change_fraction »
  • PHP Manual
  • Функции Fann
  • Устанавливает массив крутизны включения кандидатов в каскад

fann_set_cascade_activation_steepnesses

(PECL fann >= 1.0.0)

fann_set_cascade_activation_steepnesses — Устанавливает массив крутизны включения кандидатов в каскад

Описание

fann_set_cascade_activation_steepnesses(resource $ann, array $cascade_activation_steepnesses_count): bool

Устанавливает массив крутизны включения кандидатов в каскад.

Смотрите fann_get_cascade_num_candidates() для описания того, какие нейроны-кандидаты будут сгенерированы этим массивом.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_activation_steepnesses_count

Массив крутизны включения кандидатов в каскад.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_cascade_activation_steepnesses() - Возвращает крутизну каскадной активации
  • fann_get_cascade_activation_steepnesses_count() - Количество крутизны активации


Устанавливает долю каскадного изменения кандидата

  • « fann_set_cascade_activation_steepnesses
  • fann_set_cascade_candidate_limit »
  • PHP Manual
  • Функции Fann
  • Устанавливает долю каскадного изменения кандидата

fann_set_cascade_candidate_change_fraction

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_change_fraction — Устанавливает долю каскадного изменения кандидата

Описание

fann_set_cascade_candidate_change_fraction(resource $ann, float $cascade_candidate_change_fraction): bool

Устанавливает долю каскадного изменения кандидата.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_candidate_change_fraction

Доля каскадного изменения кандидата.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_cascade_candidate_change_fraction() - Возвращает долю изменения каскада кандидата


Устанавливает лимит кандидатов

  • « fann_set_cascade_candidate_change_fraction
  • fann_set_cascade_candidate_stagnation_epochs »
  • PHP Manual
  • Функции Fann
  • Устанавливает лимит кандидатов

fann_set_cascade_candidate_limit

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_limit — Устанавливает лимит кандидатов

Описание

fann_set_cascade_candidate_limit(resource $ann, float $cascade_candidate_limit): bool

Устанавливает лимит кандидатов.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_candidate_limit

Лимит кандидатов.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_cascade_candidate_limit() - Возвращает предел кандидата


Устанавливает количество каскадных периодов застоя кандидатов

  • « fann_set_cascade_candidate_limit
  • fann_set_cascade_max_cand_epochs »
  • PHP Manual
  • Функции Fann
  • Устанавливает количество каскадных периодов застоя кандидатов

fann_set_cascade_candidate_stagnation_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_stagnation_epochs — Устанавливает количество каскадных периодов застоя кандидатов

Описание

fann_set_cascade_candidate_stagnation_epochs(resource $ann, int $cascade_candidate_stagnation_epochs): bool

Устанавливает количество каскадных периодов застоя кандидатов.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_candidate_stagnation_epochs

Количество каскадных периодов застоя кандидатов.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_cascade_candidate_stagnation_epochs() - Возвращает количество периодов застоя каскада кандидата


Устанавливает наибольший период кандидата

  • « fann_set_cascade_candidate_stagnation_epochs
  • fann_set_cascade_max_out_epochs »
  • PHP Manual
  • Функции Fann
  • Устанавливает наибольший период кандидата

fann_set_cascade_max_cand_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_max_cand_epochs — Устанавливает наибольший период кандидата

Описание

fann_set_cascade_max_cand_epochs(resource $ann, int $cascade_max_cand_epochs): bool

Устанавливает наибольший период кандидата.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_max_cand_epochs

Наибольший период кандидата.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_cascade_max_cand_epochs() - Получает наибольший период кандидата


Устанавливает максимальное количество эпох

  • « fann_set_cascade_max_cand_epochs
  • fann_set_cascade_min_cand_epochs »
  • PHP Manual
  • Функции Fann
  • Устанавливает максимальное количество эпох

fann_set_cascade_max_out_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_max_out_epochs — Устанавливает максимальное количество эпох

Описание

fann_set_cascade_max_out_epochs(resource $ann, int $cascade_max_out_epochs): bool

Устанавливает максимальное количество эпох.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_max_out_epochs

Максимальное количество эпох.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_cascade_max_out_epochs() - Возвращает максимальное количество периодов


Устанавливает наименьший период кандидата

  • « fann_set_cascade_max_out_epochs
  • fann_set_cascade_min_out_epochs »
  • PHP Manual
  • Функции Fann
  • Устанавливает наименьший период кандидата

fann_set_cascade_min_cand_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_min_cand_epochs — Устанавливает наименьший период кандидата

Описание

fann_set_cascade_min_cand_epochs(resource $ann, int $cascade_min_cand_epochs): bool

Устанавливает наименьший период кандидата.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_min_cand_epochs

Наименьший период кандидата.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_get_cascade_min_cand_epochs() - Получает наименьший период кандидата


Устанавливает минимальные эпохи выходных данных

  • « fann_set_cascade_min_cand_epochs
  • fann_set_cascade_num_candidate_groups »
  • PHP Manual
  • Функции Fann
  • Устанавливает минимальные эпохи выходных данных

fann_set_cascade_min_out_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_min_out_epochs — Устанавливает минимальные эпохи выходных данных

Описание

fann_set_cascade_min_out_epochs(resource $ann, int $cascade_min_out_epochs): bool

Устанавливает минимальные эпохи выходных данных.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_min_out_epochs

Минимальные эпохи выходных данных.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_get_cascade_min_out_epochs() - Возвращает минимальное количество периодов


Устанавливает количество групп кандидатов

  • « fann_set_cascade_min_out_epochs
  • fann_set_cascade_output_change_fraction »
  • PHP Manual
  • Функции Fann
  • Устанавливает количество групп кандидатов

fann_set_cascade_num_candidate_groups

(PECL fann >= 1.0.0)

fann_set_cascade_num_candidate_groups — Устанавливает количество групп кандидатов

Описание

fann_set_cascade_num_candidate_groups(resource $ann, int $cascade_num_candidate_groups): bool

Устанавливает количество групп кандидатов.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_num_candidate_groups

Количество групп кандидатов.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_cascade_num_candidate_groups() - Возвращает количество групп кандидатов


Устанавливает долю изменения каскадных выходных данных

  • « fann_set_cascade_num_candidate_groups
  • fann_set_cascade_output_stagnation_epochs »
  • PHP Manual
  • Функции Fann
  • Устанавливает долю изменения каскадных выходных данных

fann_set_cascade_output_change_fraction

(PECL fann >= 1.0.0)

fann_set_cascade_output_change_fraction — Устанавливает долю изменения каскадных выходных данных

Описание

fann_set_cascade_output_change_fraction(resource $ann, float $cascade_output_change_fraction): bool

Устанавливает долю изменения каскадных выходных данных.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_output_change_fraction

Доля изменения каскадных выходных данных.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_cascade_output_change_fraction() - Возвращает долю изменения выхода каскада


Устанавливает количество периодов стагнации каскадного вывода

  • « fann_set_cascade_output_change_fraction
  • fann_set_cascade_weight_multiplier »
  • PHP Manual
  • Функции Fann
  • Устанавливает количество периодов стагнации каскадного вывода

fann_set_cascade_output_stagnation_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_output_stagnation_epochs — Устанавливает количество периодов стагнации каскадного вывода

Описание

fann_set_cascade_output_stagnation_epochs(resource $ann, int $cascade_output_stagnation_epochs): bool

Устанавливает количество периодов стагнации каскадного вывода.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_output_stagnation_epochs

Количество эпох стагнации каскадного выхода.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_cascade_output_stagnation_epochs() - Возвращает количество каскадных периодов застоя кандидатов


Устанавливает множитель веса

  • « fann_set_cascade_output_stagnation_epochs
  • fann_set_error_log »
  • PHP Manual
  • Функции Fann
  • Устанавливает множитель веса

fann_set_cascade_weight_multiplier

(PECL fann >= 1.0.0)

fann_set_cascade_weight_multiplier — Устанавливает множитель веса

Описание

fann_set_cascade_weight_multiplier(resource $ann, float $cascade_weight_multiplier): bool

Устанавливает множитель веса.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_weight_multiplier

Множитель веса.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_cascade_weight_multiplier() - Возвращает множитель веса


Устанавливает, где регистрируются ошибки

  • « fann_set_cascade_weight_multiplier
  • fann_set_input_scaling_params »
  • PHP Manual
  • Функции Fann
  • Устанавливает, где регистрируются ошибки

fann_set_error_log

(PECL fann >= 1.0.0)

fann_set_error_log — Устанавливает, где регистрируются ошибки

Описание

fann_set_error_log(resource $errdat, string $log_file): void

Устанавливает, где регистрируются ошибки.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

log_file

Путь к файлу логов.

Возвращаемые значения

Не возвращает никакого значения.


Рассчитывает входные параметры масштабирования для будущего использования на основе данных обучения

  • « fann_set_error_log
  • fann_set_learning_momentum »
  • PHP Manual
  • Функции Fann
  • Рассчитывает входные параметры масштабирования для будущего использования на основе данных обучения

fann_set_input_scaling_params

(PECL fann >= 1.0.0)

fann_set_input_scaling_params — Рассчитывает входные параметры масштабирования для будущего использования на основе данных обучения

Описание

fann_set_input_scaling_params(
resource $ann,
resource $train_data,
float $new_input_min,
float $new_input_max
): bool

Рассчитывает входные параметры масштабирования для будущего использования на основе данных обучения.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_input_min

Желаемая нижняя граница во входных данных после масштабирования (строго не соблюдается)

new_input_max

Желаемая верхняя граница во входных данных после масштабирования (строго не соблюдается)

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_set_output_scaling_params() - Рассчитывает выходные параметры масштабирования для будущего использования на основе данных обучения


Устанавливает импульс обучения

  • « fann_set_input_scaling_params
  • fann_set_learning_rate »
  • PHP Manual
  • Функции Fann
  • Устанавливает импульс обучения

fann_set_learning_momentum

(PECL fann >= 1.0.0)

fann_set_learning_momentum — Устанавливает импульс обучения

Описание

fann_set_learning_momentum(resource $ann, float $learning_momentum): bool

Устанавливает импульс обучения.

Более подробная информация доступна в fann_get_learning_momentum().

Список параметров

ann

Ресурс (resource) нейронной сети.

learning_momentum

Импульс обучения.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_learning_momentum() - Возвращает импульс обучения
  • fann_set_training_algorithm() - Устанавливает алгоритм обучения


Устанавливает скорость обучения

  • « fann_set_learning_momentum
  • fann_set_output_scaling_params »
  • PHP Manual
  • Функции Fann
  • Устанавливает скорость обучения

fann_set_learning_rate

(PECL fann >= 1.0.0)

fann_set_learning_rate — Устанавливает скорость обучения

Описание

fann_set_learning_rate(resource $ann, float $learning_rate): bool

Устанавливает скорость обучения.

Более подробная информация доступна в fann_get_learning_rate().

Список параметров

ann

Ресурс (resource) нейронной сети.

learning_rate

Скорость обучения.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_learning_rate() - Возвращает скорость обучения
  • fann_set_training_algorithm() - Устанавливает алгоритм обучения


Рассчитывает выходные параметры масштабирования для будущего использования на основе данных обучения

  • « fann_set_learning_rate
  • fann_set_quickprop_decay »
  • PHP Manual
  • Функции Fann
  • Рассчитывает выходные параметры масштабирования для будущего использования на основе данных обучения

fann_set_output_scaling_params

(PECL fann >= 1.0.0)

fann_set_output_scaling_params — Рассчитывает выходные параметры масштабирования для будущего использования на основе данных обучения

Описание

fann_set_output_scaling_params(
resource $ann,
resource $train_data,
float $new_output_min,
float $new_output_max
): bool

Рассчитывает выходные параметры масштабирования для будущего использования на основе данных обучения.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_output_min

Желаемая нижняя граница в выходных данных после масштабирования (строго не соблюдается)

new_output_max

Желаемая верхняя граница в выходных данных после масштабирования (строго не соблюдается)

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_set_input_scaling_params() - Рассчитывает входные параметры масштабирования для будущего использования на основе данных обучения


Устанавливает коэффициент затухания quickprop

  • « fann_set_output_scaling_params
  • fann_set_quickprop_mu »
  • PHP Manual
  • Функции Fann
  • Устанавливает коэффициент затухания quickprop

fann_set_quickprop_decay

(PECL fann >= 1.0.0)

fann_set_quickprop_decay — Устанавливает коэффициент затухания quickprop

Описание

fann_set_quickprop_decay(resource $ann, float $quickprop_decay): bool

Устанавливает коэффициент затухания quickprop.

Список параметров

ann

Ресурс (resource) нейронной сети.

quickprop_decay

Коэффициент затухания quickprop.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_quickprop_decay() - Возвращает снижение, которое является фактором, при котором веса должны уменьшаться на каждой итерации во время обучения quickprop


Устанавливает МЮ-фактор quickprop

  • « fann_set_quickprop_decay
  • fann_set_rprop_decrease_factor »
  • PHP Manual
  • Функции Fann
  • Устанавливает МЮ-фактор quickprop

fann_set_quickprop_mu

(PECL fann >= 1.0.0)

fann_set_quickprop_mu — Устанавливает МЮ-фактор quickprop

Описание

fann_set_quickprop_mu(resource $ann, float $quickprop_mu): bool

Устанавливает МЮ-фактор quickprop.

Список параметров

ann

Ресурс (resource) нейронной сети.

quickprop_mu

МЮ-фактор quickprop.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_quickprop_mu() - Возвращает коэффициент mu


Устанавливает коэффициент уменьшения, используемый во время обучения RPROP

  • « fann_set_quickprop_mu
  • fann_set_rprop_delta_max »
  • PHP Manual
  • Функции Fann
  • Устанавливает коэффициент уменьшения, используемый во время обучения RPROP

fann_set_rprop_decrease_factor

(PECL fann >= 1.0.0)

fann_set_rprop_decrease_factor — Устанавливает коэффициент уменьшения, используемый во время обучения RPROP

Описание

fann_set_rprop_decrease_factor(resource $ann, float $rprop_decrease_factor): bool

Устанавливает коэффициент уменьшения, используемый во время обучения RPROP.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_decrease_factor

Коэффициент уменьшения.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_rprop_decrease_factor() - Возвращает коэффициент уменьшения, используемый во время обучения RPROP


Устанавливает максимальный размер шага

  • « fann_set_rprop_decrease_factor
  • fann_set_rprop_delta_min »
  • PHP Manual
  • Функции Fann
  • Устанавливает максимальный размер шага

fann_set_rprop_delta_max

(PECL fann >= 1.0.0)

fann_set_rprop_delta_max — Устанавливает максимальный размер шага

Описание

fann_set_rprop_delta_max(resource $ann, float $rprop_delta_max): bool

Максимальный размер шага - это положительное число, определяющее, насколько большим может быть максимальный размер шага.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_delta_max

Максимальный размер шага.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_rprop_delta_max() - Возвращает максимальный размер шага
  • fann_get_rprop_delta_min() - Возвращает минимальный размер шага


Устанавливает минимальный размер шага

  • « fann_set_rprop_delta_max
  • fann_set_rprop_delta_zero »
  • PHP Manual
  • Функции Fann
  • Устанавливает минимальный размер шага

fann_set_rprop_delta_min

(PECL fann >= 1.0.0)

fann_set_rprop_delta_min — Устанавливает минимальный размер шага

Описание

fann_set_rprop_delta_min(resource $ann, float $rprop_delta_min): bool

Минимальный размер шага - это небольшое положительное число, определяющее, насколько маленьким может быть минимальный размер шага.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_delta_min

Минимальный размер шага.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_rprop_delta_min() - Возвращает минимальный размер шага


Устанавливает начальный размер шага

  • « fann_set_rprop_delta_min
  • fann_set_rprop_increase_factor »
  • PHP Manual
  • Функции Fann
  • Устанавливает начальный размер шага

fann_set_rprop_delta_zero

(PECL fann >= 1.0.0)

fann_set_rprop_delta_zero — Устанавливает начальный размер шага

Описание

fann_set_rprop_delta_zero(resource $ann, float $rprop_delta_zero): bool

Начальный размер шага - это положительное число, определяющее начальный размер шага.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_delta_zero

Начальный размер шага.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_rprop_delta_zero() - Возвращает начальный размер шага
  • fann_get_rprop_delta_min() - Возвращает минимальный размер шага
  • fann_get_rprop_delta_max() - Возвращает максимальный размер шага


Устанавливает коэффициент увеличения, используемый во время обучения Rprop

  • « fann_set_rprop_delta_zero
  • fann_set_sarprop_step_error_shift »
  • PHP Manual
  • Функции Fann
  • Устанавливает коэффициент увеличения, используемый во время обучения Rprop

fann_set_rprop_increase_factor

(PECL fann >= 1.0.0)

fann_set_rprop_increase_factor — Устанавливает коэффициент увеличения, используемый во время обучения Rprop

Описание

fann_set_rprop_increase_factor(resource $ann, float $rprop_increase_factor): bool

Устанавливает коэффициент увеличения, используемый во время обучения Rprop

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_increase_factor

Коэффициент увеличения.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_rprop_increase_factor() - Возвращает коэффициент увеличения, используемый во время обучения RPROP


Устанавливает сдвиг ошибки шага sarprop

  • « fann_set_rprop_increase_factor
  • fann_set_sarprop_step_error_threshold_factor »
  • PHP Manual
  • Функции Fann
  • Устанавливает сдвиг ошибки шага sarprop

fann_set_sarprop_step_error_shift

(PECL fann >= 1.0.0)

fann_set_sarprop_step_error_shift — Устанавливает сдвиг ошибки шага sarprop

Описание

fann_set_sarprop_step_error_shift(resource $ann, float $sarprop_step_error_shift): bool

Устанавливает сдвиг ошибки шага sarprop.

Список параметров

ann

Ресурс (resource) нейронной сети.

sarprop_step_error_shift

Сдвиг ошибки шага sarprop.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_get_sarprop_step_error_shift() - Возвращает сдвиг ошибки шага sarprop


Устанавливает пороговый коэффициент ошибки шага sarprop

  • « fann_set_sarprop_step_error_shift
  • fann_set_sarprop_temperature »
  • PHP Manual
  • Функции Fann
  • Устанавливает пороговый коэффициент ошибки шага sarprop

fann_set_sarprop_step_error_threshold_factor

(PECL fann >= 1.0.0)

fann_set_sarprop_step_error_threshold_factor — Устанавливает пороговый коэффициент ошибки шага sarprop

Описание

fann_set_sarprop_step_error_threshold_factor(resource $ann, float $sarprop_step_error_threshold_factor): bool

Устанавливает пороговый коэффициент ошибки шага sarprop.

Список параметров

ann

Ресурс (resource) нейронной сети.

sarprop_step_error_threshold_factor

Пороговый коэффициент ошибки шага sarprop.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_get_sarprop_step_error_threshold_factor() - Возвращает пороговый коэффициент ошибки шага sarprop


Устанавливает температуру sarprop

  • « fann_set_sarprop_step_error_threshold_factor
  • fann_set_sarprop_weight_decay_shift »
  • PHP Manual
  • Функции Fann
  • Устанавливает температуру sarprop

fann_set_sarprop_temperature

(PECL fann >= 1.0.0)

fann_set_sarprop_temperature — Устанавливает температуру sarprop

Описание

fann_set_sarprop_temperature(resource $ann, float $sarprop_temperature): bool

Устанавливает температуру sarprop.

Список параметров

ann

Ресурс (resource) нейронной сети.

sarprop_temperature

Температура sarprop.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_get_sarprop_temperature() - Возвращает температуру sarprop


Устанавливает смещение затухания sarprop

  • « fann_set_sarprop_temperature
  • fann_set_scaling_params »
  • PHP Manual
  • Функции Fann
  • Устанавливает смещение затухания sarprop

fann_set_sarprop_weight_decay_shift

(PECL fann >= 1.0.0)

fann_set_sarprop_weight_decay_shift — Устанавливает смещение затухания sarprop

Описание

fann_set_sarprop_weight_decay_shift(resource $ann, float $sarprop_weight_decay_shift): bool

Устанавливает смещение затухания sarprop.

Список параметров

ann

Ресурс (resource) нейронной сети.

sarprop_weight_decay_shift

Смещение затухания sarprop.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Примечания

Замечание:

Функция доступна только в том случае, если модуль fann был собран для libfann >= 2.2.

Смотрите также

  • fann_get_sarprop_weight_decay_shift() - Возвращает сдвиг уменьшения веса sarprop


Рассчитывает входные и выходные параметры масштабирования для будущего использования на основе данных обучения

  • « fann_set_sarprop_weight_decay_shift
  • fann_set_train_error_function »
  • PHP Manual
  • Функции Fann
  • Рассчитывает входные и выходные параметры масштабирования для будущего использования на основе данных обучения

fann_set_scaling_params

(PECL fann >= 1.0.0)

fann_set_scaling_params — Рассчитывает входные и выходные параметры масштабирования для будущего использования на основе данных обучения

Описание

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

Рассчитывает входные и выходные параметры масштабирования для будущего использования на основе данных обучения.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_input_min

Желаемая нижняя граница во входных данных после масштабирования (строго не соблюдается)

new_input_max

Желаемая верхняя граница во входных данных после масштабирования (строго не соблюдается)

new_output_min

Желаемая нижняя граница в выходных данных после масштабирования (строго не соблюдается)

new_output_max

Желаемая верхняя граница в выходных данных после масштабирования (строго не соблюдается)

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_set_input_scaling_params() - Рассчитывает входные параметры масштабирования для будущего использования на основе данных обучения
  • fann_set_output_scaling_params() - Рассчитывает выходные параметры масштабирования для будущего использования на основе данных обучения


Устанавливает функцию ошибки, используемую во время тренировки

  • « fann_set_scaling_params
  • fann_set_train_stop_function »
  • PHP Manual
  • Функции Fann
  • Устанавливает функцию ошибки, используемую во время тренировки

fann_set_train_error_function

(PECL fann >= 1.0.0)

fann_set_train_error_function — Устанавливает функцию ошибки, используемую во время тренировки

Описание

fann_set_train_error_function(resource $ann, int $error_function): bool

Устанавливает функцию ошибки, используемую во время тренировки.

Функции ошибок описаны далее в константах функций ошибок.

Список параметров

ann

Ресурс (resource) нейронной сети.

error_function

Константа функций ошибок

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_train_error_function() - Возвращает функцию обработки ошибок, используемую во время обучения


Устанавливает функцию остановки, используемую во время тренировки

  • « fann_set_train_error_function
  • fann_set_training_algorithm »
  • PHP Manual
  • Функции Fann
  • Устанавливает функцию остановки, используемую во время тренировки

fann_set_train_stop_function

(PECL fann >= 1.0.0)

fann_set_train_stop_function — Устанавливает функцию остановки, используемую во время тренировки

Описание

fann_set_train_stop_function(resource $ann, int $stop_function): bool

Устанавливает функцию остановки, используемую во время тренировки.

Функции останова описаны далее в константах функции остановки.

Список параметров

ann

Ресурс (resource) нейронной сети.

stop_function

Константа функции остановки.

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_train_stop_function() - Возвращает функцию остановки, используемую во время обучения


Устанавливает алгоритм обучения

  • « fann_set_train_stop_function
  • fann_set_weight_array »
  • PHP Manual
  • Функции Fann
  • Устанавливает алгоритм обучения

fann_set_training_algorithm

(PECL fann >= 1.0.0)

fann_set_training_algorithm — Устанавливает алгоритм обучения

Описание

fann_set_training_algorithm(resource $ann, int $training_algorithm): bool

Устанавливает алгоритм обучения.

Более подробная информация доступна в fann_get_training_algorithm().

Список параметров

ann

Ресурс (resource) нейронной сети.

training_algorithm

Константа Алгоритма обучения

Возвращаемые значения

Возвращает true в случае успешного выполнения, или false в противном случае.

Смотрите также

  • fann_get_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() - Возвращает точную копию тренировочных данных


Тестирование набора обучающих данных и вычисление 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() - Количество битов сбоя
  • fann_get_MSE() - Считывает среднеквадратичную ошибку сети
  • fann_set_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() - Получает количество входных нейронов
  • fann_get_num_output() - Получает количество выходных нейронов


Обучение в течение одной эпохи

  • « 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() - Считывает среднеквадратичную ошибку сети
  • fann_set_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() - Количество битов сбоя
  • fann_get_MSE() - Считывает среднеквадратичную ошибку сети
  • fann_set_train_stop_function() - Устанавливает функцию остановки, используемую во время тренировки
  • fann_set_training_algorithm() - Устанавливает алгоритм обучения
  • fann_set_callback() - Устанавливает callback-функцию для использования во время обучения


Обучение на полном наборе данных, прочитанном из файла, на временном интервале

  • « 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() - Количество битов сбоя
  • fann_get_MSE() - Считывает среднеквадратичную ошибку сети
  • fann_set_train_stop_function() - Устанавливает функцию остановки, используемую во время тренировки
  • fann_set_training_algorithm() - Устанавливает алгоритм обучения
  • fann_set_callback() - Устанавливает callback-функцию для использования во время обучения


Провести одну итерацию обучения с набором входных данных и желаемым результатом

  • « 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() - Получает количество входных нейронов
  • fann_get_num_output() - Получает количество выходных нейронов


Класс FANNConnection

(Информация о версии неизвестна, возможно, только в Git)

Введение

FANNConnection используется для связи нейронной сети. Объекты этого класса используются в функциях fann_get_connection_array() и fann_set_weight_array().

Обзор классов

class FANNConnection {
/* Свойства */
public $from_neuron;
public $to_neuron;
public $weight;
/* Методы */
public __construct(int $from_neuron, int $to_neuron, float $weight)
public getFromNeuron(): int
public getToNeuron(): int
public getWeight(): 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(): int

Возвращает позицию стартового нейрона.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Позиция стартового нейрона.


Возвращает позицию конечного нейрона

  • « FANNConnection::getFromNeuron
  • FANNConnection::getWeight »
  • PHP Manual
  • FANNConnection
  • Возвращает позицию конечного нейрона

FANNConnection::getToNeuron

(PECL fann >= 1.0.0)

FANNConnection::getToNeuron — Возвращает позицию конечного нейрона

Описание

public FANNConnection::getToNeuron(): int

Возвращает позицию конечного нейрона.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Позиция конечного нейрона.


Возвращает вес связи

  • « FANNConnection::getToNeuron
  • FANNConnection::setWeight »
  • PHP Manual
  • FANNConnection
  • Возвращает вес связи

FANNConnection::getWeight

(PECL fann >= 1.0.0)

FANNConnection::getWeight — Возвращает вес связи

Описание

public FANNConnection::getWeight(): void

Возвращает вес связи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Вес связи.


Устанавливает вес связи

  • « FANNConnection::getWeight
  • Igbinary »
  • 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

Вес связи.

Возвращаемые значения

Не возвращает никакого значения.


Igbinary

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Функции Igbinary
    • igbinary_serialize — Создаёт компактное, сохраняемое двоичное представление значения
    • igbinary_unserialize — Создаёт значение PHP из сохранённого представления функцией igbinary_serialize


Введение

Igbinary - это небольшая замена стандартному сериализатору PHP. Вместо занимающего много времени и места текстового представления, используемого PHP serialize(), Igbinary хранит структуры данных PHP в компактной двоичной форме. Экономия памяти значительна при использовании memcached, APCu или аналогичных хранилищ на основе памяти для сериализованных данных. Типичное сокращение требований к хранению составляет около 50%. Точный процент зависит от данных.


Установка

Этот модуль » PECL не поставляется вместе с PHP.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/igbinary.

Бинарные файлы Windows (файлы DLL) для этого модуля PECL доступны на сайте PECL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Igbinary
Имя | По умолчанию | Место изменения | Список изменений
igbinary.compact_strings | 1 | PHP_INI_ALL |
Параметры конфигурации сессии, влияющие на поведение Igbinary
Имя | По умолчанию | Место изменения | Список изменений
session.save_handler | "files" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

igbinary.compact_strings bool

Включение или отключение сжатия повторяющихся строк. По умолчанию On (включено).

session.save_handler string

Igbinary будет использоваться как обработчик сессии, если установить значение igbinary.


Функции Igbinary

Содержание

  • igbinary_serialize — Создаёт компактное, сохраняемое двоичное представление значения
  • igbinary_unserialize — Создаёт значение PHP из сохранённого представления функцией igbinary_serialize


Создаёт компактное, сохраняемое двоичное представление значения

  • « Функции Igbinary
  • igbinary_unserialize »
  • PHP Manual
  • Функции Igbinary
  • Создаёт компактное, сохраняемое двоичное представление значения

igbinary_serialize

(PECL igbinary >= 1.1.1)

igbinary_serialize — Создаёт компактное, сохраняемое двоичное представление значения

Описание

igbinary_serialize(mixed $value): string|false

Создаёт сохраняемое представление значения.

Полезно для хранения или передачи значений PHP без потери их типа и структуры.

Чтобы снова превратить сериализованную строку в значение PHP, можно использовать igbinary_unserialize().

Список параметров

value

Значение, которое необходимо сериализовать. igbinary_serialize() обрабатывает все типы, кроме ресурсов (resource) и некоторых объектов (object) (смотрите примечание ниже). Даже массивы (array), содержащие ссылки на себя, могут быть сериализованы функцией igbinary_serialize(). Циклические ссылки внутри сериализующихся массивов (array) или объектов (object) также будут сохранены. Любая другая ссылка будет потеряна.

При сериализации объектов, igbinary будет пытаться вызвать функции __serialize() или __sleep() перед сериализацией. Это позволит объекту выполнить любую очистку в последнюю минуту и т.д. перед сериализацией. Аналогичным образом, когда объект восстанавливается с помощью igbinary_unserialize(), вызывается функция __unserialize() или __wakeup().

Замечание:

Начало имён закрытых членов объекта (object) дополняются именем класса, а начало имён защищённых членов символом '*'. Эти дополненные значения окружаются нулевым байтом с обеих сторон.

Возвращаемые значения

Возвращает строку, содержащую представление потока байтов value, которое может быть сохранено где угодно.

Обратите внимание, что это двоичная строка, которая может включать в себя любое байтовое значение и должна храниться и обрабатываться как таковая. Например, вывод функции igbinary_serialize() обычно должен храниться в поле базы данных BLOB, а не в поле CHAR или TEXT.

Примеры

Пример #1 Пример использования igbinary_serialize()

<?php
$ser = igbinary_serialize(['test', 'test']);
echo urlencode($ser), "\n";
var_export(igbinary_unserialize($ser));
?>

Результат выполнения данного примера:

%00%00%00%02%14%02%06%00%11%04test%06%01%0E%00
array (
  0 => 'test',
  1 => 'test',
)

Примечания

Замечание:

Обратите внимание, что многие встроенные объекты PHP не могут быть сериализованы. Однако те, у кого есть такая возможность, реализуют либо интерфейс Serializable, либо магические методы __serialize()/__unserialize() или __sleep()/__wakeup(). Если внутренний класс не соответствует ни одному из этих требований, он не может быть надёжно сериализован с помощью какого-либо сериализатора.

Есть несколько исторических исключений из приведённого выше правила, когда некоторые внутренние объекты могут быть сериализованы без реализации интерфейса или раскрытия методов.

Смотрите также

  • serialize() - Генерирует пригодное для хранения представление переменной
  • igbinary_unserialize() - Создаёт значение PHP из сохранённого представления функцией igbinary_serialize
  • var_export() - Выводит или возвращает интерпретируемое строковое представление переменной
  • json_encode() - Возвращает JSON-представление данных
  • Сериализация объектов
  • __sleep()
  • __wakeup()
  • __serialize()
  • __unserialize()


Создаёт значение PHP из сохранённого представления функцией igbinary_serialize

  • « igbinary_serialize
  • JSON »
  • PHP Manual
  • Функции Igbinary
  • Создаёт значение PHP из сохранённого представления функцией igbinary_serialize

igbinary_unserialize

(PECL igbinary >= 1.1.1)

igbinary_unserialize — Создаёт значение PHP из сохранённого представления функцией igbinary_serialize()

Описание

igbinary_unserialize(string $str): mixed

igbinary_unserialize() берёт одну сериализованную переменную из igbinary_serialize() и преобразует её обратно в значение PHP.

Внимание

Ненадёжные пользовательские входные данные не должны передаваться в igbinary_unserialize(). Десериализация может привести к загрузке и выполнению кода из-за создания экземпляра объекта и автозагрузки, тогда злоумышленник может этим воспользоваться. Вместо этого следует использовать безопасный стандартный формат обмена данными, такой как JSON (с помощью функций json_decode() и json_encode()), если сериализованные данные необходимо передать клиенту.

Если есть необходимость десериализовать сохранённые извне сериализованные данные, для проверки данных можно использовать функцию hash_hmac(). Важно убедиться, что данные никто не подделал.

Внимание

Формат сериализации igbinary не позволяет различать разные ссылочные группы для одного и того же значения. Все ссылки PHP на заданное значение при десериализации обрабатываются как часть одной и той же группы ссылок, даже если при сериализации они были частями разных групп ссылок.

Список параметров

str

Сериализованная функцией igbinary_serialize() строка.

Если десериализуемое значение является объектом (object), после успешного восстановления объекта, igbinary автоматически попытается вызвать метод __unserialize() или __wakeup() (если таковой существует).

Замечание: unserialize_callback_func directive

Можно установить callback-функцию, которая будет вызываться, если во время десериализации должен быть создан экземпляр неопределённого класса (чтобы предотвратить получение неполного объекта (object) __PHP_Incomplete_Class). Для определения unserialize_callback_func могут использоваться файлы php.ini, ini_set() или .htaccess. Каждый раз, когда необходимо создать экземпляр неопределённого класса, callback-функция будет вызываться. Чтобы отключить эту функцию, параметр следует очистить.

Возвращаемые значения

Возвращается преобразованное значение, которое может быть bool, int, float, string, array, object или null.

Если переданная строка не может быть десериализована, возвращается false и выдаётся ошибка уровня E_NOTICE или E_WARNING.

Ошибки

Объекты могут выбрасывать исключение Throwable в своих обработчиках десериализации.

Примечания

Внимание

null или false возвращается как в случае возникновения ошибки, так и при десериализации сериализованного значения null или false. Этот особый случай можно определить, сравнивstr с igbinary_serialize(null) или igbinary_serialize(false) или обработав выданную ошибку уровня E_NOTICE.

Смотрите также

  • unserialize() - Создаёт PHP-значение из хранимого представления
  • json_encode() - Возвращает JSON-представление данных
  • json_decode() - Декодирует строку JSON
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • igbinary_serialize() - Создаёт компактное, сохраняемое двоичное представление значения
  • Автоматическая загрузка классов
  • unserialize_callback_func
  • __wakeup()
  • __serialize()
  • __unserialize()


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 — Возвращает последнюю ошибку
    • json_validate — Проверяет, содержит ли строка допустимый JSON


Введение

Модуль реализует работу с текстовым форматом обмена данными » JavaScript Object Notation (JSON) Обработка осуществляется парсером, написанным специально для PHP и под лицензией PHP.

Замечание:

PHP реализует надмножество JSON, который описан в первоначальном » RFC 7159.


Установка

Модуль JSON по умолчанию входит в поставку PHP.

Начиная с PHP 8.0.0, модуль JSON является основным модулем PHP, поэтому оно всегда включён.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/json


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

Следующие константы указывают на тип ошибки, возвращённой функцией json_last_error() или хранящейся, как code в JsonException.

JSON_ERROR_NONE (int)
Не произошло никаких ошибок.
JSON_ERROR_DEPTH (int)
Была превышена максимальная глубина стека.
JSON_ERROR_STATE_MISMATCH (int)
Неверный или повреждённый JSON.
JSON_ERROR_CTRL_CHAR (int)
Ошибка управляющих символов, вероятно, из-за неверного кодирования.
JSON_ERROR_SYNTAX (int)
Синтаксическая ошибка.
JSON_ERROR_UTF8 (int)
Повреждённые символы UTF-8, вероятно, из-за неверного кодирования.
JSON_ERROR_RECURSION (int)
Объект или массив, переданный в функцию json_encode() включает рекурсивные ссылки и не может быть закодирован. Если была передана опция JSON_PARTIAL_OUTPUT_ON_ERROR, то на месте рекурсивных ссылок будет выведен null.
JSON_ERROR_INF_OR_NAN (int)
Значение, переданное в функцию json_encode(), включает либо NAN, либо INF. Если была указана константа JSON_PARTIAL_OUTPUT_ON_ERROR, то вместо указанных особых значений будет выведен 0.
JSON_ERROR_UNSUPPORTED_TYPE (int)
В функцию json_encode() было передано значение неподдерживаемого типа, например, resource. Если была указана константа JSON_PARTIAL_OUTPUT_ON_ERROR, то вместо неподдерживаемого значения будет выводиться null.
JSON_ERROR_INVALID_PROPERTY_NAME (int)
В строке переданной в json_decode() был ключ, начинающийся с символа \u0000.
JSON_ERROR_UTF16 (int)
Один непарный суррогат UTF-16 в экранированной последовательности Unicode в строке JSON, переданной в json_decode().

Можно комбинировать следующие константы для передачи в json_decode().

JSON_BIGINT_AS_STRING (int)
Декодирует большие целые числа в качестве исходного значения строки.
JSON_OBJECT_AS_ARRAY (int)
Преобразует объекты JSON в массив PHP. Эта опция может быть задана автоматически, если вызвать json_decode() указав вторым параметром true.

Следующие константы можно комбинировать для использования в json_encode().

JSON_HEX_TAG (int)
Все < и > кодируются в \u003C и \u003E.
JSON_HEX_AMP (int)
Все & кодируются в \u0026.
JSON_HEX_APOS (int)
Все символы ' кодируются в \u0027.
JSON_HEX_QUOT (int)
Все символы " кодируются в \u0022.
JSON_FORCE_OBJECT (int)
Выдавать объект вместо массива при использовании неассоциативного массива. Это полезно, когда принимающая программа или код ожидают объект, а массив пуст.
JSON_NUMERIC_CHECK (int)
Кодирование строк, содержащих числа, как числа.
JSON_PRETTY_PRINT (int)
Использовать пробельные символы в возвращаемых данных для их форматирования.
JSON_UNESCAPED_SLASHES (int)
Не экранировать /.
JSON_UNESCAPED_UNICODE (int)
Не кодировать многобайтовые символы Unicode (по умолчанию они кодируются как \uXXXX).
JSON_PARTIAL_OUTPUT_ON_ERROR (int)
Позволяет избежать возникновения ошибок при использовании функции json_encode. Осуществляет подстановку значений по умолчанию вместо некодируемых.
JSON_PRESERVE_ZERO_FRACTION (int)
Гарантирует, что значение типа float будет преобразовано именно в значение типа float в случае, если дробная часть равна 0.
JSON_UNESCAPED_LINE_TERMINATORS (int)
Символы конца строки не будут экранироваться, если задана константа JSON_UNESCAPED_UNICODE. Поведение будет таким же, какое оно было до PHP 7.1 без этой константы. Доступно с PHP 7.1.0.

Следующие константы можно комбинировать для использования в json_decode() и json_encode().

JSON_INVALID_UTF8_IGNORE (int)
Игнорировать некорректные символы UTF-8. Доступно с PHP 7.2.0.
JSON_INVALID_UTF8_SUBSTITUTE (int)
Преобразовывать некорректные символы UTF-8 в \0xfffd (Символ Юникода 'REPLACEMENT CHARACTER') Доступно с PHP 7.2.0.
JSON_THROW_ON_ERROR (int)
Выбрасывается исключение 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, PHP 8)

Введение

Данное исключение выбрасывается, если опция JSON_THROW_ON_ERROR
установлена для функции json_encode() или
json_decode(). code содержит тип
ошибки, смотрите возможные значения json_last_error().

Обзор классов

class JsonException extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Интерфейс JsonSerializable

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Введение

Объекты, реализующие интерфейс JsonSerializable, могут модифицировать своё JSON-представление при кодировании с помощью json_encode().

Обзор интерфейсов

interface JsonSerializable {
/* Методы */
public jsonSerialize(): mixed
}

Содержание

  • JsonSerializable::jsonSerialize — Задаёт данные, которые должны быть сериализованы в JSON


Задаёт данные, которые должны быть сериализованы в JSON

  • « JsonSerializable
  • Функции JSON »
  • PHP Manual
  • JsonSerializable
  • Задаёт данные, которые должны быть сериализованы в JSON

JsonSerializable::jsonSerialize

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

JsonSerializable::jsonSerialize — Задаёт данные, которые должны быть сериализованы в JSON

Описание

public JsonSerializable::jsonSerialize(): mixed

Сериализует объект в значение, которое изначально может быть сериализовано функцией json_encode().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы json_encode(), которые являются значением любого типа, кроме resource.

Примеры

Пример #1 Пример использования JsonSerializable::jsonSerialize(), возвращающий массив (array)

<?php
class ArrayValue implements JsonSerializable {
private $array;
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 {
private $array;
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(), возвращающий целое значение (int)

<?php
class IntegerValue implements JsonSerializable {
private $number;
public function __construct($number) {
$this->number = (int) $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 {
private $string;
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_validate — Проверяет, содержит ли строка допустимый JSON


Декодирует строку JSON

  • « Функции JSON
  • json_encode »
  • PHP Manual
  • Функции JSON
  • Декодирует строку JSON

json_decode

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL json >= 1.2.0)

json_decode — Декодирует строку JSON

Описание

json_decode(
string $json,
?bool $associative = null,
int $depth = 512,
int $flags = 0
): mixed

Принимает закодированную в JSON строку и преобразует её в PHP-значение.

Список параметров

json

Строка (string) json для декодирования.

Функция работает только со строками в кодировке UTF-8.

Замечание:

PHP реализует надмножество JSON, который описан в первоначальном » RFC 7159.

associative

Если true, объекты JSON будут возвращены как ассоциативные массивы (array); если false, объекты JSON будут возвращены как объекты (object). Если null, объекты JSON будут возвращены как ассоциативные массивы (array) или объекты (object) в зависимости от того, установлена ли JSON_OBJECT_AS_ARRAY в flags.

depth

Максимальная глубина вложенности структуры, для которой будет производиться декодирование. Значение должно быть больше 0 и меньше или равно 2147483647.

flags

Битовая маска из констант 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 не может быть преобразован или глубина вложенности структуры превышет установленный предел.

Ошибки

Начиная с PHP 8.0.0, если значение параметра depth выходит за пределы допустимого диапазона, функция выбрасывает исключение ValueError; ранее выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
7.3.0 | Добавлена константа JSON_THROW_ON_ERROR для параметра flags.
7.2.0 | associative теперь nullable.
7.2.0 | Добавлены константы JSON_INVALID_UTF8_IGNORE и JSON_INVALID_UTF8_SUBSTITUTE для параметра flags.
7.1.0 | Пустой ключ JSON ("") будет преобразован в пустое свойство объекта, а не в свойство со значением _empty_.

Примеры

Пример #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
// Закодируем данные с глубиной вложенности 4 (array -> array -> array -> string).
$json = json_encode(
array(
1 => array(
'English' => array(
'One',
'January'
),
'French' => array(
'Une',
'Janvier'
)
)
)
);

// Напечатаем ошибки для разных глубин.
var_dump(json_decode($json, true, 4));
echo 'Последняя ошибка: ', json_last_error_msg(), PHP_EOL, PHP_EOL;

var_dump(json_decode($json, true, 3));
echo 'Последняя ошибка: ', json_last_error_msg(), 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"
    }
  }
}
Последняя ошибка: No error

NULL
Последняя ошибка: Maximum stack depth exceeded

Пример #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, PHP 8, PECL json >= 1.2.0)

json_encode — Возвращает JSON-представление данных

Описание

json_encode(mixed $value, int $flags = 0, int $depth = 512): string|false

Возвращает строку, содержащую JSON-представление для указанного value. Если параметр является массивом (array) или объектом (object), он будет рекурсивно сериализован.

Если сериализуемое значение является объектом, то по умолчанию будут включены только публично видимые свойства. В качестве альтернативы класс может реализовать интерфейс JsonSerializable для управления тем, как его значения сериализуются в JSON.

На кодирование влияет параметр flags и, кроме того, кодирование значений типа float зависит от значения serialize_precision.

Список параметров

value

value - значение, которое будет закодировано. Может быть любого типа, кроме resource.

Функция работает только с кодировкой UTF-8.

Замечание:

PHP реализует надмножество JSON, который описан в первоначальном » RFC 7159.

flags

Битовая маска, составляемая из значений 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 для параметра flags.
7.2.0 | Добавлены константы JSON_INVALID_UTF8_IGNORE и JSON_INVALID_UTF8_SUBSTITUTE для параметра flags.
7.1.0 | Добавлена константа JSON_UNESCAPED_LINE_TERMINATORS для параметра flags.
7.1.0 | При кодировании чисел с плавающей точкой (float) используется serialize_precision вместо precision.

Примеры

Пример #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, int, float или bool в качестве входящего значения 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, PHP 8)

json_last_error_msg — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()

Описание

json_last_error_msg(): string

Возвращает текстовое описание последней ошибки, произошедшей при выполнении json_encode() или json_decode() без флага JSON_THROW_ON_ERROR.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сообщение об ошибке в случае успешного выполнения или "No error", если ошибки не произошло.

Смотрите также

  • json_last_error() - Возвращает последнюю ошибку


Возвращает последнюю ошибку

  • « json_last_error_msg
  • json_validate »
  • PHP Manual
  • Функции JSON
  • Возвращает последнюю ошибку

json_last_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

json_last_error — Возвращает последнюю ошибку

Описание

json_last_error(): 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, возможно неверная кодировка |
JSON_ERROR_RECURSION | Одна или несколько зацикленных ссылок в кодируемом значении |
JSON_ERROR_INF_OR_NAN | Одно или несколько значений NAN или INF в кодируемом значении |
JSON_ERROR_UNSUPPORTED_TYPE | Передано значение с неподдерживаемым типом |
JSON_ERROR_INVALID_PROPERTY_NAME | Имя свойства не может быть закодировано |
JSON_ERROR_UTF16 | Некорректный символ UTF-16, возможно некорректно закодирован |

Примеры

Пример #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-представление данных


Проверяет, содержит ли строка допустимый JSON

  • « json_last_error
  • Simdjson »
  • PHP Manual
  • Функции JSON
  • Проверяет, содержит ли строка допустимый JSON

json_validate

(PHP 8 >= 8.3.0)

json_validate — Проверяет, содержит ли строка допустимый JSON

Описание

json_validate(string $json, int $depth = 512, int $flags = 0): bool

Возвращает результат проверки соответствия формата входной строки (string) допустимому JSON. Если функция json_validate() вернёт true, функция json_decode() успешно декодирует входную строку при использовании тех же параметров depth и flags.

Если функция json_validate() вернёт false, причину можно будет установить с помощью функции json_last_error() и json_last_error_msg().

Функция json_validate() использует меньше памяти, чем функция json_decode(), поскольку ей не нужно декодировать полезную нагрузку JSON или создавать содержащую её структуру массива или объекта.

Предостережение

Вызов функции json_validate() непосредственно перед функцией json_decode() приведёт к ненужному двойному разбору строки, поскольку функция json_decode() неявно выполняет такую проверку во время декодирования.

Использовать функцию json_validate() надо только в случае, когда данные декодирования полезной нагрузки JSON не нужно использовать немедленно, и необходимо знать, содержит ли строка допустимый JSON.

Список параметров

json

Строка для проверки.

Эта функция работает только со строками в кодировке UTF-8.

Замечание:

PHP реализует надмножество JSON, который описан в первоначальном » RFC 7159.

depth

Максимальная глубина вложенности структуры, для которой будет производиться декодирование. Значение должно быть больше 0 и меньше или равно 2147483647.

flags

В настоящее время принимается только JSON_INVALID_UTF8_IGNORE.

Возвращаемые значения

Возвращает true, если входная строка является синтаксически допустимым JSON, или false в противном случае.

Ошибки

Если значение параметра depth выходит за пределы допустимого диапазона, будет выброшено исключение ValueError.

Примеры

Пример #1 Пример использования json_validate()

<?php
var_dump(json_validate('{ "test": { "foo": "bar" } }'));
var_dump(json_validate('{ "": "": "" } }'));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • json_decode() - Декодирует строку JSON
  • json_last_error() - Возвращает последнюю ошибку
  • json_last_error_msg() - Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()


Simdjson

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • Предопределённые константы
  • Функции Simdjson
    • simdjson_decode — Декодирует строку JSON
    • simdjson_is_valid — Проверяет, является ли строка JSON корректной
    • simdjson_key_count — Возвращает значение по указателю JSON
    • simdjson_key_exists — Проверяет, содержит ли JSON значение, на которое ссылается указатель JSON
    • simdjson_key_value — Декодирует значение строки JSON, расположенной по запрошенному указателю JSON
  • SimdJsonException — Класс SimdJsonException
  • SimdJsonValueError — Класс SimdJsonValueError


Введение

Обеспечивает более быстрое декодирование JSON с помощью привязки simdjson для PHP (Single Instruction, Multiple Data).


  • « Введение
  • Требования »
  • PHP Manual
  • Simdjson
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


Установка

Этот модуль » PECL не поставляется вместе с PHP.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/simdjson.

Бинарные файлы Windows (файлы DLL) для этого модуля PECL доступны на сайте PECL.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

SIMDJSON_ERR_CAPACITY (int)
Синтаксический анализатор не поддерживает документ такого размера. Выбрасывается при разборе строки JSON длиной более 4 Гб.
SIMDJSON_ERR_TAPE_ERROR (int)
У JSON-документа неправильная структура: отсутствующие или лишние запятые, скобки, пропущенные ключи и т.д.
SIMDJSON_ERR_DEPTH_ERROR (int)
JSON-документ слишком глубокий (слишком много вложенных объектов и массивов).
SIMDJSON_ERR_STRING_ERROR (int)
Проблема при разборе строки.
SIMDJSON_ERR_T_ATOM_ERROR (int)
Проблема при разборе атома, начинающегося с буквы 't'.
SIMDJSON_ERR_F_ATOM_ERROR (int)
Проблема при разборе атома, начинающегося с буквы 'f'.
SIMDJSON_ERR_N_ATOM_ERROR (int)
Проблема при разборе атома, начинающегося с буквы 'n'.
SIMDJSON_ERR_NUMBER_ERROR (int)
Проблема при разборе числа.
SIMDJSON_ERR_UTF8_ERROR (int)
Входные данные не соответствуют стандарту UTF-8.
SIMDJSON_ERR_UNINITIALIZED (int)
Парсер, используемый simdjson, не инициализирован. Этого не должно происходить.
SIMDJSON_ERR_EMPTY (int)
Пусто: JSON не найден.
SIMDJSON_ERR_UNESCAPED_CHARS (int)
В строках некоторые символы должны быть экранированы, но обнаружены неэкранированные символы.
SIMDJSON_ERR_UNCLOSED_STRING (int)
Строка открывается, но никогда не закрывается.
SIMDJSON_ERR_UNSUPPORTED_ARCHITECTURE (int)
У simdjson нет реализации, поддерживаемой данной архитектурой CPU (возможно, это не-SIMD CPU?).
SIMDJSON_ERR_INCORRECT_TYPE (int)
Этого не должно произойти.
SIMDJSON_ERR_NUMBER_OUT_OF_RANGE (int)
Число JSON слишком большое или слишком маленькое, чтобы вписаться в запрашиваемый тип. Обратите внимание, что библиотека C simdjson является форком и эта ошибка игнорируется, чтобы соответствовать обработке PHP слишком больших или слишком маленьких чисел JSON.
SIMDJSON_ERR_INDEX_OUT_OF_BOUNDS (int)
Этого не должно произойти.
SIMDJSON_ERR_NO_SUCH_FIELD (int)
Этого не должно произойти.
SIMDJSON_ERR_IO_ERROR (int)
Этого не должно произойти.
SIMDJSON_ERR_INVALID_JSON_POINTER (int)
Неверный синтаксис указателя JSON в функции simdjson_key_value() и других функциях, принимающих указатель JSON $key.
SIMDJSON_ERR_INVALID_URI_FRAGMENT (int)
Неверный синтаксис фрагмента URI.
SIMDJSON_ERR_UNEXPECTED_ERROR (int)
Непредвиденная ошибка, подумайте о том, чтобы сообщить об этой проблеме, так как, возможно, вы нашли ошибку в simdjson PECL.
SIMDJSON_ERR_PARSER_IN_USE (int)
Этого не должно произойти.
SIMDJSON_ERR_OUT_OF_ORDER_ITERATION (int)
Этого не должно произойти.
SIMDJSON_ERR_INSUFFICIENT_PADDING (int)
Этого не должно произойти.
SIMDJSON_ERR_INCOMPLETE_ARRAY_OR_OBJECT (int)
Документ JSON закончился раньше времени в середине объекта или массива.
SIMDJSON_ERR_SCALAR_DOCUMENT_AS_VALUE (int)
Этого не должно произойти.
SIMDJSON_ERR_OUT_OF_BOUNDS (int)
Попытка доступа к местоположению за пределами документа.
SIMDJSON_ERR_TRAILING_CONTENT (int)
SIMDJSON_ERR_KEY_COUNT_NOT_COUNTABLE (int)
SIMDJSON_ERR_INVALID_PROPERTY (int)
Недопустимое имя свойства для stdClass при декодировании значения с помощью функции simdjson_decode() или simdjson_key_value().


Функции Simdjson

Содержание

  • simdjson_decode — Декодирует строку JSON
  • simdjson_is_valid — Проверяет, является ли строка JSON корректной
  • simdjson_key_count — Возвращает значение по указателю JSON
  • simdjson_key_exists — Проверяет, содержит ли JSON значение, на которое ссылается указатель JSON
  • simdjson_key_value — Декодирует значение строки JSON, расположенной по запрошенному указателю JSON


Декодирует строку JSON

  • « Функции Simdjson
  • simdjson_is_valid »
  • PHP Manual
  • Функции Simdjson
  • Декодирует строку JSON

simdjson_decode

(PECL simdjson >= 2.0.0)

simdjson_decode — Декодирует строку JSON

Описание

simdjson_decode(string $json, bool $associative = false, int $depth = 512): mixed

Принимает строку в кодировке JSON и преобразует её в значение PHP. При этом используется более быстрая реализация Simultaneous Instruction, Multiple Data, чем в функции json_decode(), если это поддерживается архитектурой компьютера.

Список параметров

json

Декодируемая строка (string) в json формате.

Функция работает только со строками в кодировке UTF-8.

Функция анализирует допустимые входные данные, которые функция json_decode() может декодировать, при условии, что их длина не превышает 4 Гб.

associative

При значении true, объекты JSON будут возвращены как ассоциативные массивы (array); при значении false, объекты JSON будут возвращены как объекты (object).

depth

Максимальная глубина вложенности декодируемой структуры. Значение должно быть больше 0 и меньше или равно 2147483647. Вызывающие команды должны использовать достаточно маленькие значения, поскольку большая глубина требуют больше места в буфере и увеличивают глубину рекурсии, в отличие от текущей реализации функции json_decode().

Возвращаемые значения

Возвращает значение, закодированное в параметре json в соответствующем типе PHP. Значения true, false и null возвращаются как true, false и null соответственно.

Ошибки

Если параметр json недействителен, то начиная с версии PECL simdjson 2.1.0 выбрасывается исключение SimdJsonException, тогда как ранее выбрасывалось исключение RuntimeException.

Если параметр depth находится вне допустимого диапазона, то начиная с версии PECL simdjson 3.0.0 выбрасывается исключение SimdJsonValueError, тогда как ранее выдавалась ошибка уровня E_WARNING.

Примеры

Пример #1 Примеры использования simdjson_decode()

<?php
$json = '{"a":1,"b":2,"c":3}';

var_dump(simdjson_decode($json));
var_dump(simdjson_decode($json, true));

?>

Результат выполнения данного примера:

object(stdClass)#1 (3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}
array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}

Пример #2 Доступ к недопустимым свойствам объекта

Доступ к элементам объекта, содержащим символы, не разрешённые соглашением PHP об именовании (например, дефис), может быть осуществлён путём заключения имени элемента в фигурные скобки и апостроф.

<?php

$json = '{"foo-bar": 12345}';

$obj = simdjson_decode($json);
print $obj->{'foo-bar'}; // 12345

?>

Пример #3 Распространённые ошибки при использовании simdjson_decode()

<?php

// следующие строки являются допустимыми JavaScript, но не являются допустимыми JSON

// имя и значение должны быть заключены в двойные кавычки
// одинарные кавычки недопустимы
$bad_json = "{ 'bar': 'baz' }";
simdjson_decode($bad_json); // Выбрасывается исключение SimdJsonException

// имя должно быть заключено в двойные кавычки
$bad_json = '{ bar: "baz" }';
simdjson_decode($bad_json); // Выбрасывается исключение SimdJsonException

// запятые в конце не допускаются
$bad_json = '{ bar: "baz", }';
simdjson_decode($bad_json); // Выбрасывается исключение SimdJsonException

?>

Пример #4 Ошибки depth

<?php
// Кодирование некоторых данных с максимальной глубиной 4
// (array -> array -> array -> string)
$json = json_encode(
[
1 => [
'English' => [
'One',
'January'
],
'French' => [
'Une',
'Janvier'
]
]
]
);

// Отображение ошибок для разных глубин.
var_dump(simdjson_decode($json, true, 4));
try {
var_dump(simdjson_decode($json, true, 3));
} catch (SimdJsonException $e) {
echo "Попался: ", $e->getMessage(), "\n";
}
?>

Результат выполнения данного примера:

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"
    }
  }
}
Попался: The JSON document was too deep (too many nested objects and arrays)

Пример #5 simdjson_decode() больших целых чисел

<?php
$json = '{"number": 12345678901234567890}';

var_dump(simdjson_decode($json));

?>

Результат выполнения данного примера:

object(stdClass)#1 (1) {
  ["number"]=>
  float(1.2345678901235E+19)
}

Примечания

Замечание:

Спецификация JSON - это не JavaScript, а подмножество JavaScript.

Замечание:

В случае возникновения ошибки декодирования выбрасывается исключение SimdJsonException, а SimdJsonException::getCode() и SimdJsonException::getMessage() могут быть использованы для определения точной природы ошибки.

Смотрите также

  • json_encode() - Возвращает JSON-представление данных
  • json_decode() - Декодирует строку JSON


Проверяет, является ли строка JSON корректной

  • « simdjson_decode
  • simdjson_key_count »
  • PHP Manual
  • Функции Simdjson
  • Проверяет, является ли строка JSON корректной

simdjson_is_valid

(PECL simdjson >= 2.0.0)

simdjson_is_valid — Проверяет, является ли строка JSON корректной

Описание

simdjson_is_valid(string $json = false, int $depth = 512): bool

Принимает строку, закодированную в JSON и возвращает true, если она корректная.

Список параметров

json

Строка (string) в формате json для проверки.

Функция работает только со строками в кодировке UTF-8.

Функция анализирует допустимые входные данные, которые функция json_decode() может декодировать, при условии, что их длина не превышает 4 Гб.

depth

Максимальная глубина вложенности декодируемой структуры. Значение должно быть больше 0 и меньше или равно 2147483647. Вызывающие команды должны использовать достаточно маленькие значения, поскольку большая глубина требуют больше места в буфере и увеличивают глубину рекурсии, в отличие от текущей реализации функции json_decode().

Возвращаемые значения

Возвращает true, если параметр json является корректной строкой JSON, в противном случае возвращает false.

Ошибки

Если параметр json больше 4 ГБ, то начиная с версии PECL simdjson 2.1.0 выбрасывается исключение SimdJsonException; ранее выбрасывалось исключение RuntimeException.

Если параметр depth находится вне допустимого диапазона, то начиная с версии PECL simdjson 3.0.0 выбрасывается исключение SimdJsonValueError, тогда как ранее выдавалась ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования simdjson_decode()

<?php
$json = '{"a":1,"b":2,"c":3}';
$invalidJson = '{"a":1,"b":2,"c":';

var_dump(simdjson_is_valid($json));
var_dump(simdjson_is_valid($invalidJson));

?>

Результат выполнения данного примера:

bool(true)
bool(false)

Пример #2 Ошибки depth

<?php
// Кодирование данных с максимальной глубиной 4
// (array -> array -> array -> string)
$json = json_encode(
[
1 => [
'English' => [
'One',
'January'
],
'French' => [
'Une',
'Janvier'
]
]
]
);

// Отображает ошибки для разных глубин.
var_dump(simdjson_is_valid($json, 4));
var_dump(simdjson_is_valid($json, 3));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Примечания

Замечание:

Спецификация JSON - это не JavaScript, а подмножество JavaScript.

Замечание:

В случае возникновения ошибки декодирования выбрасывается исключение SimdJsonException, а SimdJsonException::getCode() и SimdJsonException::getMessage() могут быть использованы для определения точной природы ошибки.

Смотрите также

  • json_encode() - Возвращает JSON-представление данных
  • json_decode() - Декодирует строку JSON


Возвращает значение по указателю JSON

  • « simdjson_is_valid
  • simdjson_key_exists »
  • PHP Manual
  • Функции Simdjson
  • Возвращает значение по указателю JSON

simdjson_key_count

(PECL simdjson >= 2.0.0)

simdjson_key_count — Возвращает значение по указателю JSON

Описание

simdjson_key_count(
string $json,
string $key,
int $depth = 512,
bool $throw_if_uncountable = false
): int

Подсчитывает количество элементов объекта/массива, найденных по запрошенному указателю JSON.

Список параметров

json

Запрашиваемая строка (string) в формате json.

key

Строка (string) указатель JSON.

depth

Максимальная глубина вложенности декодируемой структуры. Значение должно быть больше 0 и меньше или равно 2147483647. Вызывающие команды должны использовать достаточно маленькие значения, поскольку большая глубина требуют больше места в буфере и увеличивают глубину рекурсии, в отличие от текущей реализации функции json_decode().

throw_if_uncountable

При значении true вместо возвращаемого значения 0 будет выброшено исключение SimdJsonException, если значение, на которое указывает указатель JSON, не является ни объектом, ни массивом.

Возвращаемые значения

Возвращает целое число (int) с количеством элементов значения по заданному указателю JSON.


Проверяет, содержит ли JSON значение, на которое ссылается указатель JSON

  • « simdjson_key_count
  • simdjson_key_value »
  • PHP Manual
  • Функции Simdjson
  • Проверяет, содержит ли JSON значение, на которое ссылается указатель JSON

simdjson_key_exists

(PECL simdjson >= 2.0.0)

simdjson_key_exists — Проверяет, содержит ли JSON значение, на которое ссылается указатель JSON

Описание

simdjson_key_exists(string $json, string $key, int $depth = ?): bool

Подсчитывает количество элементов объекта/массива, найденных по запрошенному указателю JSON.

Список параметров

json

Запрашиваемая строка (string) в формате json.

key

Строка (string) указатель JSON.

depth

Максимальная глубина вложенности декодируемой структуры. Значение должно быть больше 0 и меньше или равно 2147483647. Вызывающие команды должны использовать достаточно маленькие значения, поскольку большая глубина требуют больше места в буфере и увеличивают глубину рекурсии, в отличие от текущей реализации функции json_decode().

throw_if_uncountable

При значении true вместо возвращаемого значения 0 будет выброшено исключение SimdJsonException, если значение, на которое указывает указатель JSON, не является ни объектом, ни массивом.

Возвращаемые значения

Возвращает true, если указатель JSON действителен и ссылается на значение, найденное в корректной строке JSON. Возвращает false, если JSON действителен, но не содержит указателя JSON.


Декодирует значение строки JSON, расположенной по запрошенному указателю JSON

  • « simdjson_key_exists
  • SimdJsonException »
  • PHP Manual
  • Функции Simdjson
  • Декодирует значение строки JSON, расположенной по запрошенному указателю JSON

simdjson_key_value

(PECL simdjson >= 2.0.0)

simdjson_key_value — Декодирует значение строки JSON, расположенной по запрошенному указателю JSON

Описание

simdjson_key_value(
string $json,
string $key,
bool $associative = false,
int $depth = 512
): mixed

Декодирует и возвращает значение, найденное в запрошенном указателе JSON.

Список параметров

json

Запрашиваемая и декодируемая строка (string) в формате json.

Функция работает только со строками в кодировке UTF-8.

Функция анализирует допустимые входные данные, которые функция json_decode() может декодировать, при условии, что их длина не превышает 4 Гб.

key

Строка (string) указатель JSON.

associative

При значении true, объекты JSON будут возвращены как ассоциативные массивы (array); при значении false, объекты JSON будут возвращены как объекты (object).

depth

Максимальная глубина вложенности декодируемой структуры. Значение должно быть больше 0 и меньше или равно 2147483647. Вызывающие команды должны использовать достаточно маленькие значения, поскольку большая глубина требуют больше места в буфере и увеличивают глубину рекурсии, в отличие от текущей реализации функции json_decode().

Возвращаемые значения

Возвращает часть значения, закодированное в параметре json на которую ссылается ключ key в соответствующем PHP-типе. Значения true, false и null возвращаются как true, false и null соответственно.

Ошибки

Если параметр json или key недопустимы или параметр key не удалось найти в параметре json, то начиная с версии PECL simdjson 2.1.0 выбрасывается исключение SimdJsonException; ранее выбрасывалось исключение RuntimeException.

Если параметр depth находится вне допустимого диапазона, то начиная с версии PECL simdjson 3.0.0 выбрасывается исключение SimdJsonValueError, тогда как ранее выдавалась ошибка уровня E_WARNING.

Смотрите также

  • json_encode() - Возвращает JSON-представление данных
  • simdjson_decode() - Декодирует строку JSON


Класс SimdJsonException

(PECL simdjson >= 2.1.0)

Введение

Исключение, выбрасываемое функциями
simdjson_decode(),
simdjson_key_count(),
simdjson_key_exists()
или simdjson_key_value().

Возможные значения смотрите в константах коды ошибок simdjson.

Обзор классов

class SimdJsonException extends RuntimeException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
}


Класс SimdJsonValueError

(PECL simdjson >= 3.0.0)

Введение

Ошибка SimdJsonValueError выбрасывается, когда тип аргумента функции simdjson правильный, но его значение неверно. Например, когда JSON-декодированное значение $depth не является положительным или значение $depth слишком велико.

Обзор классов

class SimdJsonValueError extends ValueError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Список изменений

Версия | Описание
PHP 8.0.0 | Класс SimdJsonValueError теперь расширяет ValueError вместо Error.


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)

Введение

Обзор классов

class 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(): 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(): 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.

Обзор классов

class LuaClosure {
/* Методы */
public __invoke(mixed ...$args): 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 ...$args): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

args

Возвращаемые значения

Примеры

Пример #1 Пример использованияLuaClosure::__invoke()

<?php
$lua = new Lua();
$closure = $lua->eval(<<<CODE
 return (function ()
print("hello world")
end)
CODE
);

$lua->call($closure);
$closure();
?>

Результат выполнения данного примера:

hello worldhello world


LuaSandbox

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Отличия от стандартного Lua
  • Примеры
    • Базовое использование LuaSandbox
  • LuaSandbox — Класс LuaSandbox
    • LuaSandbox::callFunction — Вызывает функцию в глобальной переменной Lua
    • LuaSandbox::disableProfiler — Отключает профилировщик
    • LuaSandbox::enableProfiler — Включает профилировщик
    • LuaSandbox::getCPUUsage — Возвращает текущее время использования процессора в среде Lua
    • LuaSandbox::getMemoryUsage — Возвращает текущее использование памяти в среде Lua
    • LuaSandbox::getPeakMemoryUsage — Возвращает пиковое использование памяти в среде Lua
    • LuaSandbox::getProfilerFunctionReport — Получает данные профилировщика
    • LuaSandbox::getVersionInfo — Возвращает версии LuaSandbox и Lua
    • LuaSandbox::loadBinary — Загружает предварительно скомпилированный двоичный фрагмент в среду Lua
    • LuaSandbox::loadString — Загружает код Lua в среду Lua
    • LuaSandbox::pauseUsageTimer — Приостанавливает таймер использования процессора
    • LuaSandbox::registerLibrary — Регистрирует набор PHP-функций как библиотеку Lua
    • LuaSandbox::setCPULimit — Устанавливает ограничение времени процессора для среды Lua
    • LuaSandbox::setMemoryLimit — Устанавливает предел памяти для среды Lua
    • LuaSandbox::unpauseUsageTimer — Возобновляет таймер, приостановленный LuaSandbox::pauseUsageTimer
    • LuaSandbox::wrapPhpFunction — Оборачивает вызываемый PHP-объект в LuaSandboxFunction
  • LuaSandboxFunction — Класс LuaSandboxFunction
    • LuaSandboxFunction::call — Вызывает Lua-функцию
    • LuaSandboxFunction::__construct — Не используется
    • LuaSandboxFunction::dump — Выгружает функцию в виде BLOB
  • LuaSandboxError — Класс LuaSandboxError
  • LuaSandboxErrorError — Класс LuaSandboxErrorError
  • LuaSandboxFatalError — Класс LuaSandboxFatalError
  • LuaSandboxMemoryError — Класс LuaSandboxMemoryError
  • LuaSandboxRuntimeError — Класс LuaSandboxRuntimeError
  • LuaSandboxSyntaxError — Класс LuaSandboxSyntaxError
  • LuaSandboxTimeoutError — Класс LuaSandboxTimeoutError


Введение

LuaSandbox - это модуль для PHP 7 и PHP 8, позволяющий безопасно запускать ненадёжный код Lua 5.1 из PHP.

Отличия от модуля Lua:

  • LuaSandbox поддерживает ограничения по времени и памяти.

  • LuaSandbox предоставляет безопасную среду по умолчанию для запуска ненадёжного кода. Стандартные функции Lua были проверены на безопасность, и некоторые из них были исправлены соответствующим образом.

  • У LuaSandbox более сложный, точный и мощный интерфейс PHP, но менее удобный для разработчиков.

  • LuaSandbox поддерживает только Lua 5.1. Это сложно изменить, потому что LuaSandbox использует сильно модифицированные стандартные библиотеки Lua и из-за отсутствия обратной совместимости между основными версиями Lua. LuaSandbox стремится к максимальной обратной совместимости с пользовательскими скриптами.


Требования

Чтобы использовать модуль, необходимо установить Lua 5.1, доступную на » сайте Lua

Чтобы полностью использовать возможности таймера, LuaSandbox должен быть установлен в Linux.

Если используется FreeBSD или Mac OS X, поддерживается только реальное время (настенные часы), функции, предназначенные для возврата времени процессора, фактически будут возвращать время настенных часов.

Если используется Windows, функции таймера не поддерживаются. Сроки не будут действовать.


Установка

Этот модуль » PECL не поставляется вместе с PHP.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/luasandbox.

Если операционная система - Debian 10 и новее или Ubuntu 18.04 и новее, то LuaSandbox обычно следует устанавливать из пакета php-luasandbox:

sudo apt-get install php-luasandbox


  • « Настройка во время выполнения
  • Отличия от стандартного Lua »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данный модуль не определяет каких-либо типов ресурсов.


Отличия от стандартного Lua

LuaSandbox предоставляет изолированную среду, которая в некоторых отношениях отличается от стандартной Lua 5.1.

Функции, которые недоступны

  • dofile(), loadfile() и пакет io, поскольку они разрешают прямой доступ к файловой системе. При необходимости доступ к файловой системе должен осуществляться через callback-функции PHP.

  • Пакет package, включая require() и module(), так как он сильно зависит от прямого доступа к файловой системе. Вместо него можно использовать перезапись на чистом Lua, такую как та, что используется в модуле MediaWiki Scribunto.

  • load() и loadstring(), для статического анализа кода Lua.

  • print(), поскольку функция выводит в стандартный вывод. При необходимости вывод должен выполняться через callback-функции PHP.

  • Большая часть пакета os, поскольку он позволяет управлять процессом и выполнять другие процессы.

    • os.clock(), os.date(), os.difftime() и os.time() остаются доступными.

  • Большая часть пакета debug, поскольку он позволяет манипулировать состоянием Lua и метаданными способами, которые могут нарушить песочницу.

    • debug.traceback() остаётся доступным.

  • string.dump(), так как это может раскрыть внутренние данные.

  • collectgarbage(), gcinfo() и пакет coroutine не были проверены на безопасность.

Изменённые функции

  • pcall() и xpcall() не может отловить определённые ошибки, особенно ошибки времени ожидания.

  • tostring() не включает адреса указателей.

  • string.match() была исправлена для ограничения глубины рекурсии и периодической проверки времени ожидания.

  • math.random() и math.randomseed() заменяются версиями, которые не разделяют состояние с функцией PHP rand().

  • Метаметоды __pairs и __ipairs Lua 5.2 поддерживаются с помощью pairs() и ipairs().


  • « Отличия от стандартного Lua
  • Базовое использование LuaSandbox »
  • PHP Manual
  • LuaSandbox
  • Примеры

Примеры

Содержание

  • Базовое использование LuaSandbox


Базовое использование LuaSandbox

После того, как вы скомпилировали PHP с поддержкой LuaSandbox, вы можете начать использовать LuaSandbox для безопасного выполнения предоставленного пользователем кода Lua.

Пример #1 Выполните код Lua

<?php

$sandbox = new LuaSandbox;
$sandbox->setMemoryLimit( 50 * 1024 * 1024 );
$sandbox->setCPULimit( 10 );

// Зарегистрируйте некоторые функции в среде Lua

function frobnosticate( $v ) {
return [ $v + 42 ];
}

$sandbox->registerLibrary( 'php', [
'frobnosticate' => 'frobnosticate',
'output' => function ( $string ) {
echo "$string\n";
},
'error' => function () {
throw new LuaSandboxRuntimeError( "Что-то пошло не так" );
}
] );

// Выполните некоторый код Lua, включая callback-функции PHP и Lua.

$luaCode = <<<EOF
php.output( "Привет, мир" );

return "Привет", function ( v )
return php.frobnosticate( v + 200 )
end
EOF;

list( $hi, $frob ) = $sandbox->loadString( $luaCode )->call();
assert( $frob->call( 4000 ) === [ 4242 ] );

// Вызываемые PHP исключения LuaSandboxRuntimeError могут быть пойманы внутри Lua

list( $ok, $message ) = $sandbox->loadString( 'return pcall( php.error )' )->call();
assert( !$ok );
assert( $message === 'Что-то пошло не так' );

?>


Класс LuaSandbox

(PECL luasandbox >= 1.0.0)

Введение

Класс LuaSandbox создаёт среду Lua и позволяет выполнять код Lua.

Обзор классов

class LuaSandbox {
/* Константы */
const int SAMPLES = 0;
const int SECONDS = 1;
const int PERCENT = 2;
/* Методы */
public callFunction(string $name, mixed ...$args): array|bool
public disableProfiler(): void
public enableProfiler(float $period = 0.02): bool
public getCPUUsage(): float
public getMemoryUsage(): int
public getPeakMemoryUsage(): int
public getProfilerFunctionReport(int $units = LuaSandbox::SECONDS): array
public static getVersionInfo(): array
public loadBinary(string $code, string $chunkName = ''): LuaSandboxFunction
public loadString(string $code, string $chunkName = ''): LuaSandboxFunction
public pauseUsageTimer(): bool
public registerLibrary(string $libname, array $functions): void
public setCPULimit(float|bool $limit): void
public setMemoryLimit(int $limit): void
public unpauseUsageTimer(): void
public wrapPhpFunction(callable $function): LuaSandboxFunction
}

Предопределённые константы

LuaSandbox::SAMPLES

Используется с LuaSandbox::getProfilerFunctionReport() для возврата времени в образцах.

LuaSandbox::SECONDS

Используется с LuaSandbox::getProfilerFunctionReport() для возврата времени в секундах.

LuaSandbox::PERCENT

Используется с LuaSandbox::getProfilerFunctionReport() для возврата времени в процентах от общего значения.

Содержание

  • LuaSandbox::callFunction — Вызывает функцию в глобальной переменной Lua
  • LuaSandbox::disableProfiler — Отключает профилировщик
  • LuaSandbox::enableProfiler — Включает профилировщик
  • LuaSandbox::getCPUUsage — Возвращает текущее время использования процессора в среде Lua
  • LuaSandbox::getMemoryUsage — Возвращает текущее использование памяти в среде Lua
  • LuaSandbox::getPeakMemoryUsage — Возвращает пиковое использование памяти в среде Lua
  • LuaSandbox::getProfilerFunctionReport — Получает данные профилировщика
  • LuaSandbox::getVersionInfo — Возвращает версии LuaSandbox и Lua
  • LuaSandbox::loadBinary — Загружает предварительно скомпилированный двоичный фрагмент в среду Lua
  • LuaSandbox::loadString — Загружает код Lua в среду Lua
  • LuaSandbox::pauseUsageTimer — Приостанавливает таймер использования процессора
  • LuaSandbox::registerLibrary — Регистрирует набор PHP-функций как библиотеку Lua
  • LuaSandbox::setCPULimit — Устанавливает ограничение времени процессора для среды Lua
  • LuaSandbox::setMemoryLimit — Устанавливает предел памяти для среды Lua
  • LuaSandbox::unpauseUsageTimer — Возобновляет таймер, приостановленный LuaSandbox::pauseUsageTimer
  • LuaSandbox::wrapPhpFunction — Оборачивает вызываемый PHP-объект в LuaSandboxFunction


Вызывает функцию в глобальной переменной Lua

  • « LuaSandbox
  • LuaSandbox::disableProfiler »
  • PHP Manual
  • LuaSandbox
  • Вызывает функцию в глобальной переменной Lua

LuaSandbox::callFunction

(PECL luasandbox >= 1.0.0)

LuaSandbox::callFunction — Вызывает функцию в глобальной переменной Lua

Описание

public LuaSandbox::callFunction(string $name, mixed ...$args): array|bool

Вызывает функцию в глобальной переменной Lua.

Если имя содержит символы ".", функция находится через рекурсивный доступ к таблице, как если бы имя было выражением Lua.

Если переменная не существует или не является функцией, будет возвращено значение false и будет выдано предупреждение.

Для получения дополнительной информации о вызове функций Lua и возвращаемых значениях смотрите LuaSandboxFunction::call().

Список параметров

name

Имя переменной Lua.

args

Аргументы функции.

Возвращаемые значения

Возвращает массив (array) значений, возвращаемых функцией Lua, которые могут быть пустыми или false в случае возникновения ошибки.

Примеры

Пример #1 Вызов функции Lua

<?php

// создание нового LuaSandbox
$sandbox = new LuaSandbox();

// Вызов Lua-функции string.match
$captures = $sandbox->callFunction( 'string.match', $string, $pattern );

?>


Отключает профилировщик

  • « LuaSandbox::callFunction
  • LuaSandbox::enableProfiler »
  • PHP Manual
  • LuaSandbox
  • Отключает профилировщик

LuaSandbox::disableProfiler

(PECL luasandbox >= 1.1.0)

LuaSandbox::disableProfiler — Отключает профилировщик

Описание

public LuaSandbox::disableProfiler(): void

Отключает профилировщик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • LuaSandbox::enableProfiler() - Включает профилировщик
  • LuaSandbox::getProfilerFunctionReport() - Получает данные профилировщика


Включает профилировщик

  • « LuaSandbox::disableProfiler
  • LuaSandbox::getCPUUsage »
  • PHP Manual
  • LuaSandbox
  • Включает профилировщик

LuaSandbox::enableProfiler

(PECL luasandbox >= 1.1.0)

LuaSandbox::enableProfiler — Включает профилировщик

Описание

public LuaSandbox::enableProfiler(float $period = 0.02): bool

Включает профилировщик. Профилирование начнётся после ввода кода Lua.

Профилировщик периодически производит замеры среды Lua для записи выполняемой функции. Тестирование показывает, что по крайней мере в Linux установка периода менее 1 миллисекунды приведёт к большому количеству переполнений, но без проблем с производительностью.

Список параметров

period

Период выборки в секундах.

Возвращаемые значения

Возвращает логическое значение, указывающее, включён ли профилировщик.

Смотрите также

  • LuaSandbox::disableProfiler() - Отключает профилировщик
  • LuaSandbox::getProfilerFunctionReport() - Получает данные профилировщика


Возвращает текущее время использования процессора в среде Lua

  • « LuaSandbox::enableProfiler
  • LuaSandbox::getMemoryUsage »
  • PHP Manual
  • LuaSandbox
  • Возвращает текущее время использования процессора в среде Lua

LuaSandbox::getCPUUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getCPUUsage — Возвращает текущее время использования процессора в среде Lua

Описание

public LuaSandbox::getCPUUsage(): float

Возвращает текущее время использования процессора в среде Lua.

Включает затраченное время в callback-функциях PHP.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущее время использования процессора в секундах.

Замечание:

В Windows данная функция всегда возвращает ноль. В операционных системах, которые не поддерживают CLOCK_THREAD_CPUTIME_ID, таких как FreeBSD и Mac OS X, функция возвращает прошедшее физическое время, а не время процессора.

Смотрите также

  • LuaSandbox::getMemoryUsage() - Возвращает текущее использование памяти в среде Lua
  • LuaSandbox::getPeakMemoryUsage() - Возвращает пиковое использование памяти в среде Lua
  • LuaSandbox::setCPULimit() - Устанавливает ограничение времени процессора для среды Lua


Возвращает текущее использование памяти в среде Lua

  • « LuaSandbox::getCPUUsage
  • LuaSandbox::getPeakMemoryUsage »
  • PHP Manual
  • LuaSandbox
  • Возвращает текущее использование памяти в среде Lua

LuaSandbox::getMemoryUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getMemoryUsage — Возвращает текущее использование памяти в среде Lua

Описание

public LuaSandbox::getMemoryUsage(): int

Возвращает текущее использование памяти в среде Lua.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущее использование памяти в байтах.

Смотрите также

  • LuaSandbox::getPeakMemoryUsage() - Возвращает пиковое использование памяти в среде Lua
  • LuaSandbox::getCPUUsage() - Возвращает текущее время использования процессора в среде Lua
  • LuaSandbox::setMemoryLimit() - Устанавливает предел памяти для среды Lua


Возвращает пиковое использование памяти в среде Lua

  • « LuaSandbox::getMemoryUsage
  • LuaSandbox::getProfilerFunctionReport »
  • PHP Manual
  • LuaSandbox
  • Возвращает пиковое использование памяти в среде Lua

LuaSandbox::getPeakMemoryUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getPeakMemoryUsage — Возвращает пиковое использование памяти в среде Lua

Описание

public LuaSandbox::getPeakMemoryUsage(): int

Возвращает пиковое использование памяти в среде Lua.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает пиковое использование памяти в байтах.

Смотрите также

  • LuaSandbox::getMemoryUsage() - Возвращает текущее использование памяти в среде Lua
  • LuaSandbox::getCPUUsage() - Возвращает текущее время использования процессора в среде Lua
  • LuaSandbox::setMemoryLimit() - Устанавливает предел памяти для среды Lua


Получает данные профилировщика

  • « LuaSandbox::getPeakMemoryUsage
  • LuaSandbox::getVersionInfo »
  • PHP Manual
  • LuaSandbox
  • Получает данные профилировщика

LuaSandbox::getProfilerFunctionReport

(PECL luasandbox >= 1.1.0)

LuaSandbox::getProfilerFunctionReport — Получает данные профилировщика

Описание

public LuaSandbox::getProfilerFunctionReport(int $units = LuaSandbox::SECONDS): array

Для экземпляра профилирования, ранее запущенного с помощью LuaSandbox::enableProfiler(), получите отчёт о стоимости каждой функции.

The measurement unit used for the cost is determined by the $units parameter:

LuaSandbox::SAMPLES

Измерение количества образцов.

LuaSandbox::SECONDS

Измерение процессорного времени в секундах.

LuaSandbox::PERCENT

Измерение процента процессорного времени.

Список параметров

units

Константа единицы измерения.

Возвращаемые значения

Возвращает измерения профилировщика, отсортированные в порядке убывания, в виде ассоциативного массива (array). Ключи - это имена функций Lua (с исходным файлом и строкой, определёнными в угловых скобках), значения - это измерения как целое число (int) или число с плавающей запятой (float).

Замечание:

В Windows функция всегда возвращает пустой массив. В операционных системах, которые не поддерживают CLOCK_THREAD_CPUTIME_ID, таких как FreeBSD и Mac OS X, функция будет сообщать фактическое прошедшее время, а не время процессора.

Примеры

Пример #1 Профилирование кода Lua

<?php

// создание нового LuaSandbox
$sandbox = new LuaSandbox();

// начало профилирования
$sandbox->enableProfiler( 0.01 );

// ... Выполнение какого-то кода Lua ...

// получение данных профилирования
$data = $sandbox->getProfilerFunctionReport();

?>


Возвращает версии LuaSandbox и Lua

  • « LuaSandbox::getProfilerFunctionReport
  • LuaSandbox::loadBinary »
  • PHP Manual
  • LuaSandbox
  • Возвращает версии LuaSandbox и Lua

LuaSandbox::getVersionInfo

(PECL luasandbox >= 1.6.0)

LuaSandbox::getVersionInfo — Возвращает версии LuaSandbox и Lua

Описание

public static LuaSandbox::getVersionInfo(): array

Возвращает версии LuaSandbox и Lua.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с двумя ключами:

element | type | description
LuaSandbox | string | Версия модуля LuaSandbox.
Lua | string | Имя и версия библиотеки, определённые макросом LUA_RELEASE, например, "Lua 5.1.5".


Загружает предварительно скомпилированный двоичный фрагмент в среду Lua

  • « LuaSandbox::getVersionInfo
  • LuaSandbox::loadString »
  • PHP Manual
  • LuaSandbox
  • Загружает предварительно скомпилированный двоичный фрагмент в среду Lua

LuaSandbox::loadBinary

(PECL luasandbox >= 1.0.0)

LuaSandbox::loadBinary — Загружает предварительно скомпилированный двоичный фрагмент в среду Lua

Описание

public LuaSandbox::loadBinary(string $code, string $chunkName = ''): LuaSandboxFunction

Загружает данные, созданные LuaSandboxFunction::dump().

Список параметров

code

Данные из LuaSandboxFunction::dump().

chunkName

Имя загруженной функции.

Возвращаемые значения

Возвращает LuaSandboxFunction.

Смотрите также

  • LuaSandbox::loadString() - Загружает код Lua в среду Lua


Загружает код Lua в среду Lua

  • « LuaSandbox::loadBinary
  • LuaSandbox::pauseUsageTimer »
  • PHP Manual
  • LuaSandbox
  • Загружает код Lua в среду Lua

LuaSandbox::loadString

(PECL luasandbox >= 1.0.0)

LuaSandbox::loadString — Загружает код Lua в среду Lua

Описание

public LuaSandbox::loadString(string $code, string $chunkName = ''): LuaSandboxFunction

Загружает код Lua в среду Lua.

Это эквивалент стандартной функции Lua loadstring().

Список параметров

code

Код Lua.

chunkName

Имя загруженного фрагмента для использования в трассировке ошибок.

Возвращаемые значения

Возвращает LuaSandboxFunction, который при выполнении выполнит переданный $code.

Примеры

Пример #1 Загрузка кода в Lua

<?php

// создание нового LuaSandbox
$sandbox = new LuaSandbox();

// Загрузка кода
$function = $sandbox->loadString(
<<<CODE
 return "Привет, мир!"
CODE
);

// Выполнение загруженного кода
var_dump( $function->call() );

?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  string(12) "Привет, мир!"
}

Смотрите также

  • LuaSandbox::registerLibrary() - Регистрирует набор PHP-функций как библиотеку Lua
  • LuaSandbox::wrapPhpFunction() - Оборачивает вызываемый PHP-объект в LuaSandboxFunction


Приостанавливает таймер использования процессора

  • « LuaSandbox::loadString
  • LuaSandbox::registerLibrary »
  • PHP Manual
  • LuaSandbox
  • Приостанавливает таймер использования процессора

LuaSandbox::pauseUsageTimer

(PECL luasandbox >= 1.4.0)

LuaSandbox::pauseUsageTimer — Приостанавливает таймер использования процессора

Описание

public LuaSandbox::pauseUsageTimer(): bool

Приостанавливает таймер использования процессора.

Имеет значение только при вызове из callback-функции Lua. Когда выполнение возвращается в Lua, таймер автоматически возобновляет работу. Если будет сделан новый вызов в Lua, таймер будет возобновлён на время этого вызова.

Если callback-функция PHP снова вызывает Lua с не приостановленным таймером, а затем эта функция Lua снова вызывает PHP, второй вызов PHP не сможет приостановить таймер. Логика заключается в том, что даже если второй вызов PHP не учитывает использование процессора в соответствии с ограничением, первый вызов все равно его считает.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение (bool), указывающее, приостановлен ли таймер.

Примеры

Пример #1 Управление таймером использования

<?php

// создание нового LuaSandbox и установка лимита процессора
$sandbox = new LuaSandbox();
$sandbox->setCPULimit( 1 );

function doWait( $t ) {
$end = microtime( true ) + $t;
while ( microtime( true ) < $end ) {
// waste CPU cycles
}
}

// регистрация новой callback-функции PHP
$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 "Это не должно истекать...\n";
$sandbox->loadString( 'php.test()' )->call();

echo "Это должно истекать.\n";
try {
$sandbox->loadString( 'php.test2()' )->call();
echo "Это не так?\n";
} catch ( LuaSandboxTimeoutError $ex ) {
echo "Это так! " . $ex->getMessage() . "\n";
}

?>

Результат выполнения данного примера:

Это не должно истекать...
Это должно истекать.
Это так! The maximum execution time for this script was exceeded

Смотрите также

  • LuaSandbox::setCPULimit() - Устанавливает ограничение времени процессора для среды Lua
  • LuaSandbox::unpauseUsageTimer() - Возобновляет таймер, приостановленный LuaSandbox::pauseUsageTimer


Регистрирует набор PHP-функций как библиотеку Lua

  • « LuaSandbox::pauseUsageTimer
  • LuaSandbox::setCPULimit »
  • PHP Manual
  • LuaSandbox
  • Регистрирует набор PHP-функций как библиотеку Lua

LuaSandbox::registerLibrary

(PECL luasandbox >= 1.0.0)

LuaSandbox::registerLibrary — Регистрирует набор PHP-функций как библиотеку Lua

Описание

public LuaSandbox::registerLibrary(string $libname, array $functions): void

Регистрирует набор PHP-функций как библиотеку Lua, чтобы Lua мог вызывать соответствующий код PHP.

Для получения дополнительной информации о вызове функций Lua и возвращаемых значениях смотрите LuaSandboxFunction::call().

Список параметров

libname

Название библиотеки. В состоянии Lua глобальная переменная с этим именем будет установлена в таблицу функций. Если таблица уже существует, к ней будут добавлены новые функции.

functions

Массив (array), где каждый ключ - это имя функции, а каждое значение - это соответствующий вызываемый (callable) PHP-код.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Регистрация PHP-функций для вызова из Lua

<?php

// создание нового LuaSandbox
$sandbox = new LuaSandbox();

// регистрация некоторых функций в среде Lua

function frobnosticate( $v ) {
return [ $v + 42 ];
}

$sandbox->registerLibrary( 'php', [
'frobnosticate' => 'frobnosticate',
'output' => function ( $string ) {
echo "$string\n";
},
'error' => function () {
throw new LuaSandboxRuntimeError( "Что-то пошло не так" );
}
] );

?>

Смотрите также

  • LuaSandbox::loadString() - Загружает код Lua в среду Lua
  • LuaSandbox::wrapPhpFunction() - Оборачивает вызываемый PHP-объект в LuaSandboxFunction


Устанавливает ограничение времени процессора для среды Lua

  • « LuaSandbox::registerLibrary
  • LuaSandbox::setMemoryLimit »
  • PHP Manual
  • LuaSandbox
  • Устанавливает ограничение времени процессора для среды Lua

LuaSandbox::setCPULimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setCPULimit — Устанавливает ограничение времени процессора для среды Lua

Описание

public LuaSandbox::setCPULimit(float|bool $limit): void

Устанавливает ограничение времени процессора для среды Lua.

Если общее пользовательское и системное время, используемое средой после вызова метода, превышает это ограничение, выбрасывается исключение LuaSandboxTimeoutError.

Время, используемое в callback-функциях PHP, включено в лимит.

Установка ограничения по времени для callback-функции во время работы Lua приводит к сбросу таймера или его запуску, если он ещё не был запущен.

Замечание:

В Windows ограничение процессора игнорируется. В операционных системах, которые не поддерживают CLOCK_THREAD_CPUTIME_ID, таких как FreeBSD и Mac OS X, будет ограничено фактическое время, а не время процессора.

Список параметров

limit

Ограничение как число с плавающей точкой (float) в секундах или false, чтобы не ограничивать.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Вызов функции Lua

<?php

// создание нового LuaSandbox
$sandbox = new LuaSandbox();

// установка лимита
$sandbox->setCPULimit( 2 );

// запуск кода Lua
$sandbox->loadString( 'while true do end' )->call();

?>

Результатом выполнения данного примера будет что-то подобное:

PHP Fatal error:  Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded

Смотрите также

  • LuaSandbox::getCPUUsage() - Возвращает текущее время использования процессора в среде Lua
  • LuaSandbox::setMemoryLimit() - Устанавливает предел памяти для среды Lua


Устанавливает предел памяти для среды Lua

  • « LuaSandbox::setCPULimit
  • LuaSandbox::unpauseUsageTimer »
  • PHP Manual
  • LuaSandbox
  • Устанавливает предел памяти для среды Lua

LuaSandbox::setMemoryLimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setMemoryLimit — Устанавливает предел памяти для среды Lua

Описание

public LuaSandbox::setMemoryLimit(int $limit): void

Устанавливает предел памяти для среды Lua.

Если предел превышен, будет выброшено исключение LuaSandboxMemoryError.

Список параметров

limit

Предел памяти в байтах.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Вызов функции Lua

<?php

// Создание нового объекта LuaSandbox
$sandbox = new LuaSandbox();

// Установка предела памяти
$sandbox->setMemoryLimit( 50 * 1024 * 1024 );

// Запуск кода Lua
$sandbox->loadString( 'local x = "x"; while true do x = x .. x; end' )->call();

?>

Результатом выполнения данного примера будет что-то подобное:

PHP Fatal error:  Uncaught LuaSandboxMemoryError: not enough memory

Смотрите также

  • LuaSandbox::getMemoryUsage() - Возвращает текущее использование памяти в среде Lua
  • LuaSandbox::getPeakMemoryUsage() - Возвращает пиковое использование памяти в среде Lua
  • LuaSandbox::setCPULimit() - Устанавливает ограничение времени процессора для среды Lua


Возобновляет таймер, приостановленный LuaSandbox::pauseUsageTimer

  • « LuaSandbox::setMemoryLimit
  • LuaSandbox::wrapPhpFunction »
  • PHP Manual
  • LuaSandbox
  • Возобновляет таймер, приостановленный LuaSandbox::pauseUsageTimer

LuaSandbox::unpauseUsageTimer

(PECL luasandbox >= 1.4.0)

LuaSandbox::unpauseUsageTimer — Возобновляет таймер, приостановленный LuaSandbox::pauseUsageTimer()

Описание

public LuaSandbox::unpauseUsageTimer(): void

Возобновляет таймер, приостановленный LuaSandbox::pauseUsageTimer().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • LuaSandbox::pauseUsageTimer() - Приостанавливает таймер использования процессора
  • LuaSandbox::setCPULimit() - Устанавливает ограничение времени процессора для среды Lua


Оборачивает вызываемый PHP-объект в LuaSandboxFunction

  • « LuaSandbox::unpauseUsageTimer
  • LuaSandboxFunction »
  • PHP Manual
  • LuaSandbox
  • Оборачивает вызываемый PHP-объект в LuaSandboxFunction

LuaSandbox::wrapPhpFunction

(PECL luasandbox >= 1.2.0)

LuaSandbox::wrapPhpFunction — Оборачивает вызываемый PHP-объект в LuaSandboxFunction

Описание

public LuaSandbox::wrapPhpFunction(callable $function): LuaSandboxFunction

Оборачивает вызываемый PHP-объект в LuaSandboxFunction, поэтому его можно передать в Lua как анонимную функцию.

Функция должна возвращать либо массив значений (который может быть пустым), либо null, что эквивалентно возврату пустого массива.

Исключения будут возникать как ошибки в Lua, однако только исключения LuaSandboxRuntimeError могут быть обработаны внутри Lua с помощью pcall() или xpcall().

Для получения дополнительной информации о вызове функций Lua и возвращаемых значениях смотрите LuaSandboxFunction::call().

Список параметров

function

Вызываемая функция для обёртывания.

Возвращаемые значения

Возвращает LuaSandboxFunction.

Смотрите также

  • LuaSandbox::loadString() - Загружает код Lua в среду Lua
  • LuaSandbox::registerLibrary() - Регистрирует набор PHP-функций как библиотеку Lua


Класс LuaSandboxFunction

(PECL luasandbox >= 1.0.0)

Введение

Представляет функцию Lua, позволяющую вызывать её из PHP.

Функция LuaSandboxFunction может быть получена как возвращаемое значение из Lua, как параметр,
переданный в callback-функцию из Lua, или с помощью
LuaSandbox::wrapPhpFunction(),
LuaSandbox::loadString() или
LuaSandbox::loadBinary().

Обзор классов

class LuaSandboxFunction {
/* Методы */
public call(string ...$args): array|bool
public dump(): string
}

Содержание

  • LuaSandboxFunction::call — Вызывает Lua-функцию
  • LuaSandboxFunction::__construct — Не используется
  • LuaSandboxFunction::dump — Выгружает функцию в виде BLOB


Вызывает Lua-функцию

  • « LuaSandboxFunction
  • LuaSandboxFunction::__construct »
  • PHP Manual
  • LuaSandboxFunction
  • Вызывает Lua-функцию

LuaSandboxFunction::call

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::call — Вызывает Lua-функцию

Описание

public LuaSandboxFunction::call(string ...$args): array|bool

Вызывает Lua-функцию.

Ошибки, вызванные PHP-кодом, приведут к тому, что функция вернёт false и будет вызвано предупреждение E_WARNING, например, когда тип ресурса (resource) используется в качестве аргумента. При возникновении ошибок Lua будет выброшено исключение LuaSandboxRuntimeError.

Типы PHP и Lua преобразуются следующим образом:

  • null в PHP - это nil в Lua и наоборот.

  • Целые числа (int) и числа с плавающей точкой (float) в PHP преобразуются в числа Lua. Поддерживаются бесконечность и NAN.

  • Числа Lua без дробной части в диапазоне приблизительно от -2**53 и 2**53 преобразуются в целые числа (int) PHP, а другие - в числа PHP с плавающей точкой (float).

  • Логические значения в PHP (bool) - это значения типа boolean в Lua и наоборот.

  • Строки в PHP (string) - это значения типа string в Lua и наоборот.

  • Функции Lua - это объекты PHP LuaSandboxFunction, и наоборот. Callback-функции PHP (callable) не поддерживаются.

  • Массивы PHP (array) преобразуются в таблицы Lua и наоборот.

    • Обратите внимание, что Lua обычно индексирует массивы с 1, в то время как PHP индексирует массивы с 0. Никаких корректировок для этих различных соглашений не делается.

    • Массивы, ссылающиеся сами на себя, не поддерживаются ни в одном из направлений.

    • Ссылки PHP разыменовываются.

    • __pairs и __ipairs из Lua обрабатываются. __index игнорируется.

    • При преобразовании из PHP в Lua целочисленные ключи от -2**53 до 2**53 представляются как числа в Lua. Все остальные ключи представлены в виде строк Lua.

    • При преобразовании из Lua в PHP отличные от строк и чисел ключи приведут к возникновению ошибки, как и конфликты при преобразовании чисел в строки или наоборот (поскольку PHP считает такие конструкции, как $a[0] и $a["0"] эквивалентными).

  • Все остальные типы не поддерживаются и вызовут ошибку/выбросят исключение, включая PHP-объекты (object), пользовательские данные Lua и типы потоков.

Функции Lua по своей сути возвращают список результатов. Таким образом, в случае успешного выполнения этот метод возвращает массив (array), содержащий все значения, возвращаемые Lua, с целочисленными ключами (int), начинающимися с нуля. Lua может не возвращать результатов, и в этом случае возвращается пустой массив.

Список параметров

args

Аргументы, передаваемые в функцию.

Возвращаемые значения

Возвращает массив значений (array), возвращаемых функцией, который может быть пустым или false в случае возникновения ошибки.


Не используется

  • « LuaSandboxFunction::call
  • LuaSandboxFunction::dump »
  • PHP Manual
  • LuaSandboxFunction
  • Не используется

LuaSandboxFunction::__construct

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::__construct — Не используется

Описание

final private LuaSandboxFunction::__construct()

Объекты LuaSandboxFunction можно получить в виде возвращаемого значения из Lua, в виде параметра, переданного callback-функции из Lua, или при использовании LuaSandbox::wrapPhpFunction(), LuaSandbox::loadString() или LuaSandbox::loadBinary(). Они не могут быть созданы напрямую.

Список параметров

У этой функции нет параметров.


Выгружает функцию в виде BLOB

  • « LuaSandboxFunction::__construct
  • LuaSandboxError »
  • PHP Manual
  • LuaSandboxFunction
  • Выгружает функцию в виде BLOB

LuaSandboxFunction::dump

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::dump — Выгружает функцию в виде BLOB

Описание

public LuaSandboxFunction::dump(): string

Выгружает функцию в виде BLOB.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, которая может быть передана LuaSandbox::loadBinary().


Класс LuaSandboxError

(PECL luasandbox >= 1.0.0)

Введение

Базовый класс для исключений LuaSandbox

Обзор классов

class LuaSandboxError extends Exception {
/* Константы */
const int RUN = 2;
const int SYNTAX = 3;
const int MEM = 4;
const int ERR = 5;
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Предопределённые константы

LuaSandboxError::RUN

LuaSandboxError::SYNTAX

LuaSandboxError::MEM

LuaSandboxError::ERR


Класс LuaSandboxErrorError

(PECL luasandbox >= 1.0.0)

Введение

Исключение выбрасывается, когда Lua обнаруживает ошибку в обработчике ошибок.

Обзор классов

class LuaSandboxErrorError extends LuaSandboxFatalError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс LuaSandboxFatalError

(PECL luasandbox >= 1.0.0)

Введение

Неотлавливаемые исключения LuaSandbox.

Их нельзя отловить внутри Lua с помощью pcall() или xpcall().

Обзор классов

class LuaSandboxFatalError extends LuaSandboxError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс LuaSandboxMemoryError

(PECL luasandbox >= 1.0.0)

Введение

Исключение выбрасывается, когда Lua не может выделить память.

Обзор классов

class LuaSandboxMemoryError extends LuaSandboxFatalError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Смотрите также

  • LuaSandbox::setMemoryLimit()


Класс LuaSandboxRuntimeError

(PECL luasandbox >= 1.0.0)

Введение

Отлавливаемые исключения во время выполнения LuaSandbox.

Их можно отловить внутри Lua, используя pcall() или xpcall().

Обзор классов

class LuaSandboxRuntimeError extends LuaSandboxError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс LuaSandboxSyntaxError

(PECL luasandbox >= 1.0.0)

Введение

Исключение возникает, когда код Lua не может быть проанализирован.

Обзор классов

class LuaSandboxSyntaxError extends LuaSandboxFatalError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс LuaSandboxTimeoutError

(PECL luasandbox >= 1.0.0)

Введение

Исключение возникает при превышении настроенного лимита времени центрального процессора (CPU).

Обзор классов

class LuaSandboxTimeoutError extends LuaSandboxFatalError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): 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_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 — Послать событие CTRL другому процессу
    • sapi_windows_set_ctrl_handler — Установить или удалить обработчик события CTRL
    • 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.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

ignore_user_abort bool

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 (int)
CONNECTION_NORMAL (int)
CONNECTION_TIMEOUT (int)
__COMPILER_HALT_OFFSET__ (int)


Разные функции

Содержание

  • 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_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 — Послать событие CTRL другому процессу
  • sapi_windows_set_ctrl_handler — Установить или удалить обработчик события CTRL
  • 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, PHP 8)

connection_aborted — Проверить, отключён ли клиент

Описание

connection_aborted(): int

Проверяет, отключён ли клиент.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 1, если клиент отключён, 0 в противном случае.

Смотрите также

  • connection_status() - Возвращает статус соединения в битах
  • ignore_user_abort() - Установить, должно ли отключение клиента прерывать выполнение скрипта
  • Смотрите Управление подключениями для получения полного описания управления подключениями в PHP.


Возвращает статус соединения в битах

  • « connection_aborted
  • constant »
  • PHP Manual
  • Разные функции
  • Возвращает статус соединения в битах

connection_status

(PHP 4, PHP 5, PHP 7, PHP 8)

connection_status — Возвращает статус соединения в битах

Описание

connection_status(): int

Получает статус соединения в битах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает статус соединения в битах, который можно использовать в константах CONNECTION_XXX для определения статуса соединения.

Смотрите также

  • connection_aborted() - Проверить, отключён ли клиент
  • ignore_user_abort() - Установить, должно ли отключение клиента прерывать выполнение скрипта
  • Смотрите Управление соединением для полной информации об управлении соединением в PHP.


Возвращает значение константы

  • « connection_status
  • define »
  • PHP Manual
  • Разные функции
  • Возвращает значение константы

constant

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

constant — Возвращает значение константы

Описание

constant(string $name): mixed

Возвращает значение константы, указанной в параметре name.

Функция constant() полезна, если вам необходимо получить значение константы, но неизвестно её имя. Например, если оно хранится в переменной или возвращается функцией.

Данная функция также работает с константами классов и вариантами перечисления.

Список параметров

name

Имя константы.

Возвращаемые значения

Возвращает значение константы.

Ошибки

Если константа не определена, выбрасывается исключение Error. До PHP 8.0.0 в этом случае выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Если константа не определена, функция constant() теперь выбрасывает исключение Error; ранее выдавалась ошибка уровня E_WARNING и возвращалось значение null.

Примеры

Пример #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!"

?>

Пример #2 Пример использования constant() с вариантами перечисления (начиная с PHP 8.1.0)

<?php

enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$case = 'Hearts';

var_dump(constant('Suit::'. $case)); // enum(Suit::Hearts)

?>

Смотрите также

  • define() - Определяет именованную константу
  • defined() - Проверяет существование указанной именованной константы
  • get_defined_constants() - Возвращает ассоциативный массив с именами всех констант и их значений
  • Смотрите раздел Константы


Определяет именованную константу

  • « constant
  • defined »
  • PHP Manual
  • Разные функции
  • Определяет именованную константу

define

(PHP 4, PHP 5, PHP 7, PHP 8)

define — Определяет именованную константу

Описание

define(string $constant_name, mixed $value, bool $case_insensitive = false): bool

Определяет именованную константу во время выполнения.

Список параметров

constant_name

Имя константы.

Замечание:

Возможно определить константы с помощью функции define() зарезервированными или даже некорректными именами, значения которых могут быть (только) получены через функцию constant(). Однако, делать это не рекомендуется.

value

Значение константы. В PHP 5 value должно быть скалярным значением (int, float, string, bool или null). В PHP 7 также возможно использовать тип array.

Внимание

Хотя возможно определить константы с типом resource, не рекомендуется это делать, поскольку может привести к непредсказуемому поведению.

case_insensitive

Если параметр установлен как true, то константа будет определена без учёта регистра. По умолчанию константа чувствительна к регистру, то есть CONSTANT и Constant представляют разные значения.

Внимание

Начиная с PHP 7.3.0, определение нечувствительных к регистру констант объявлено устаревшим. Начиная с PHP 8.0.0, допустимым значением является только false, передача true вызовет предупреждение.

Замечание:

Нечувствительные к регистру константы хранятся в нижнем регистре.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Передача true в case_insensitive теперь выдаёт ошибку уровня E_WARNING. Передача 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, PHP 8)

defined — Проверяет существование указанной именованной константы

Описание

defined(string $constant_name): bool

Проверяет существование и наличие значения указанной константы.

Функция также работает с константами классов и перечислениями.

Замечание:

Если необходимо узнать о существовании переменной, то используйте isset(), так как defined() применима лишь для констант. Если вам необходимо узнать о существовании функции, то используйте function_exists().

Список параметров

constant_name

Имя константы.

Возвращаемые значения

Возвращает true, если именованная константа, указанная в параметре constant_name, была определена, false в противном случае.

Примеры

Пример #1 Проверка констант

<?php
/* Важно учесть необходимость использования кавычек. Данный пример проверяет,
* является ли строка 'TEST' именем константы TEST. */
if (defined('TEST')) {
echo TEST;
}

interface bar {
const test = 'foobar!';
}

class foo {
const test = 'foobar!';
}

var_dump(defined('bar::test')); // bool(true)
var_dump(defined('foo::test')); // bool(true)

?>

Пример #2 Проверка вариантов перечисления (начиная с PHP 8.1.0)

<?php

enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

var_dump(defined('Suit::Hearts')); // bool(true)

?>

Смотрите также

  • define() - Определяет именованную константу
  • constant() - Возвращает значение константы
  • get_defined_constants() - Возвращает ассоциативный массив с именами всех констант и их значений
  • function_exists() - Возвращает true, если указанная функция определена
  • Смотрите раздел Константы


Эквивалент функции exit

  • « defined
  • eval »
  • PHP Manual
  • Разные функции
  • Эквивалент функции exit

die

(PHP 4, PHP 5, PHP 7, PHP 8)

die — Эквивалент функции exit

Описание

Данная функция эквивалентна функции exit().


Расценивает строку как PHP-код и выполняет его

  • « die
  • exit »
  • PHP Manual
  • Разные функции
  • Расценивает строку как PHP-код и выполняет его

eval

(PHP 4, PHP 5, PHP 7, PHP 8)

eval — Расценивает строку как PHP-код и выполняет его

Описание

eval(string $code): mixed

Выполняет переданную в параметре code строку как код PHP.

Выполняемый код наследует ту же область видимости переменной, что и строка, на которой языковая конструкция eval() была вызвана. Любые доступные на этой строке переменные будут доступны для чтения и изменения в выполняемом коде. Однако все объявленные в этом коде функции и классы получат глобальную область видимости. Говоря по-другому, компилятор расценит выполняемый код так, как если бы это был подключёный файл.

Предостережение

Языковая конструкция eval() может быть очень опасной, поскольку может выполнять произвольный код. Поэтому от работы с ней воздерживаются. Если тщательный поиск других решений показал, что альтернативы нет, внимательно проверяют, чтобы в неё не передавались пользовательские данные без их правильной предварительной проверки.

Список параметров

code

Выполняемая строка кода PHP.

Код не должен быть обёрнут открывающимся и закрывающимся тегами PHP, то есть строка должна быть, например, такой: 'echo "Привет!";', но не такой '<?php echo "Привет!"; >'. Можно переключаться между режимами PHP- и HTML-кода, например: 'echo "Код PHP!"; ?>Код HTML<?php echo "Снова код PHP!";'.

Передаваемый код должен быть верным выполняемым кодом PHP. Это значит, что операторы должны быть разделены точкой с запятой (;). При выполнении строки 'echo "Привет!"' будет сгенерирована ошибка, а строка 'echo "Привет!";' будет успешно выполнена.

Указание в строке кода ключевого слова return прекращает выполнение.

Код из строки будет выполнен в той области видимости, в которой вызвана конструкция eval(). Поэтому переменные, которые определены или изменены в ней, сохранят видимость после завершения вызова конструкции eval().

Возвращаемые значения

Языковая конструкция eval() возвращает значение null, или значение, которое вернул вызванный в выполняемом коде оператор 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, PHP 8)

exit — Вывести сообщение и прекратить выполнение текущего скрипта

Описание

exit(string $status = ?): void
exit(int $status): void

Прекращает выполнение скрипта. Функции отключения и деструкторы объекта будут запущены, даже если была вызвана конструкция exit.

exit - это конструкция языка, и она может быть вызвана без круглых скобок, если не передаётся параметр status.

Список параметров

status

Если status задан в виде строки, то эта конструкция выведет содержимое status перед выходом.

Если status задан в виде целого числа (int), то это значение будет использовано как статус выхода и не будет выведено. Статусы выхода должны быть в диапазоне от 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, PHP 8)

get_browser — Сообщает о возможностях браузера пользователя

Описание

get_browser(?string $user_agent = null, bool $return_array = false): object|array|false

Пытается определить возможности браузера пользователя, производя поиск информации о браузере в файле 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(), обновление страницы и проверка значения.

Возвращает false, если невозможно получить информацию, например, когда параметр конфигурации browscap в php.ini не был установлен.

Примеры

Пример #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, PHP 8)

__halt_compiler — Останавливает работу компилятора

Описание

__halt_compiler(): 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, PHP 8)

highlight_file — Подсветка синтаксиса файла

Описание

highlight_file(string $filename, bool $return = false): string|bool

Выводит или возвращает версию с подсветкой синтаксиса кода, содержащегося в файле 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, PHP 8)

highlight_string — Подсветка синтаксиса строки

Описание

highlight_string(string $string, bool $return = false): string|bool

Выводит или возвращает код PHP с html-разметкой c подсвеченным синтаксисом, используя цвета, определённые во встроенном обработчике подсветки синтаксиса PHP.

Список параметров

string

Подсвечиваемый 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, PHP 8)

hrtime — Получить системное время высокого разрешения

Описание

hrtime(bool $as_number = false): array|int|float|false

Возвращает время высокого разрешения системы, отсчитываемое с произвольной точки времени. Полученная временная метка неизменна и не может быть отрегулирована.

Список параметров

as_number

Должно ли время высокого разрешения возвращаться в виде массива (array) или числа.

Возвращаемые значения

Возвращает массив целых чисел в формате [секунды, наносекунды], если параметр as_number равен false. В противном случае наносекунды возвращаются в виде целого числа (int) (для 64-битных систем) или float (для 32-битных систем). Возвращает false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования hrtime()

<?php
echo hrtime(true), PHP_EOL;
print_r(hrtime());
?>

Результатом выполнения данного примера будет что-то подобное:

10444739687370679
Array
(
    [0] => 10444739
    [1] => 687464812
)

Смотрите также

  • Модуль Время высокого разрешения
  • microtime() - Возвращает текущую метку времени Unix с микросекундами


Установить, должно ли отключение клиента прерывать выполнение скрипта

  • « hrtime
  • pack »
  • PHP Manual
  • Разные функции
  • Установить, должно ли отключение клиента прерывать выполнение скрипта

ignore_user_abort

(PHP 4, PHP 5, PHP 7, PHP 8)

ignore_user_abort — Установить, должно ли отключение клиента прерывать выполнение скрипта

Описание

ignore_user_abort(?bool $enable = null): int

Устанавливает, необходимо ли прерывать работу скрипта при отключении клиента.

При работе с PHP-скриптом в командной строке, когда терминал скрипта отключается без прерывания работы скрипта, скрипт будет остановлен, если параметр enable не равен true

Список параметров

enable

Если параметр задан и не null, то эта функция устанавливает ini-настройку ignore_user_abort, заданным значением параметра enable. Если же параметр не задан, функция вернёт предыдущее значение опции без его изменения.

Возвращаемые значения

Возвращает предыдущее значение в виде целого числа.

Список изменений

Версия | Описание
8.0.0 | enable теперь допускает значение null.

Примеры

Пример #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_strip_whitespace »
  • PHP Manual
  • Разные функции
  • Упаковать данные в бинарную строку

pack

(PHP 4, PHP 5, PHP 7, PHP 8)

pack — Упаковать данные в бинарную строку

Описание

pack(string $format, mixed ...$values): 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-заполнением
@ NUL-заполнение до абсолютной позиции

values

Возвращаемые значения

Возвращает бинарную строку, содержащую данные.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает false в случае возникновения ошибки.
7.2.0 | Типы float и double поддерживают как обратный, так и прямой порядок передачи байтов.
7.0.15,7.1.1 | Добавлены коды "e", "E", "g" и "G" для поддержки принудительного указания порядка байт для float и double.

Примеры

Пример #1 Пример использования pack()

<?php
$binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);
?>

Полученная бинарная строка длиной 6 байт будет содержать последовательность байтов 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Примечания

Предостережение

Необходимо отметить, что PHP сохраняет значения типа int как знаковые с машинно-зависимым размером (C тип long). Все числа, переданные как int, но выходящие за границы этого типа будут сохранены с типом float. При упаковке этих float как int, они будут переданы с типом int. Это может как совпадать, так и нет с заданным шаблоном.

Наиболее частым является случай, когда упаковываются беззнаковые числа типа int. В системах, где int имеет размер в 32 бита, число обычно передаётся по тому же шаблону, как если бы int был беззнаковым (хотя, это зависит от определённых преобразований из знаковое в беззнаковое, согласно стандарту С). В системах, где тип int имеет размер в 64 бита, тип float не имеет мантиссы, достаточной по размеру для хранения значения без потери точности. Если эти системы также имеют простой 64-битный С тип int (большинство UNIX систем не имеют), то единственным путём для использования формата I в верхнем разряде является создание отрицательных int значений с тем же представлением как и в определённом беззнаковом значении.

Смотрите также

  • unpack() - Распаковать данные из бинарной строки


Возвращает исходный код без комментариев и пробелов

  • « pack
  • sapi_windows_cp_conv »
  • PHP Manual
  • Разные функции
  • Возвращает исходный код без комментариев и пробелов

php_strip_whitespace

(PHP 5, PHP 7, PHP 8)

php_strip_whitespace — Возвращает исходный код без комментариев и пробелов

Описание

php_strip_whitespace(string $filename): string

Возвращает исходный код PHP в файл (filename) с удалёнными комментариями и пробелами. Эта функция может быть полезной для определения фактичного объёма чистого кода в скриптах по сравнению с количеством комментариев. Функция аналогична использованию php -w из командной строки.

Список параметров

filename

Путь к файлу PHP.

Возвращаемые значения

Возвращает очищенный исходный код в случае успешного выполнения или пустую строку в случае возникновения ошибки.

Замечание:

Эта функция принимает во внимание значение INI-директивы short_open_tag.

Примеры

Пример #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, PHP 8)

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, PHP 8)

sapi_windows_cp_get — Получить текущую кодовую страницу

Описание

sapi_windows_cp_get(string $kind = ""): int

Получить текущую кодовую страницу.

Список параметров

kind

Тип кодовой страницы операционной системы, которую нужно получить: либо 'ansi', либо 'oem'. Любое другое значение относится к текущей кодовой странице процесса.

Возвращаемые значения

Если kind равен 'ansi', возвращается текущая кодовая страница ANSI операционной системы. Если kind равен 'oem', возвращается текущая кодовая страница 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, PHP 8)

sapi_windows_cp_is_utf8 — Указывает, совместима ли кодовая страница с UTF-8

Описание

sapi_windows_cp_is_utf8(): 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, PHP 8)

sapi_windows_cp_set — Установить кодовую страницу процесса

Описание

sapi_windows_cp_set(int $codepage): bool

Установить кодовую страницу текущего процесса.

Список параметров

codepage

Идентификатор кодовой страницы.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • sapi_windows_cp_get() - Получить текущую кодовую страницу


Послать событие CTRL другому процессу

  • « sapi_windows_cp_set
  • sapi_windows_set_ctrl_handler »
  • PHP Manual
  • Разные функции
  • Послать событие CTRL другому процессу

sapi_windows_generate_ctrl_event

(PHP 7 >= 7.4.0, PHP 8)

sapi_windows_generate_ctrl_event — Послать событие CTRL другому процессу

Описание

sapi_windows_generate_ctrl_event(int $event, int $pid = 0): bool

Послать событие CTRL другому процессу в той же группе процессов.

Список параметров

event

Событие CTRL; PHP_WINDOWS_EVENT_CTRL_C или PHP_WINDOWS_EVENT_CTRL_BREAK.

pid

Идентификатор процесса, которому необходимо послать событие. Если задано как 0, то событие будет послано всем процессам в группе.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Использование sapi_windows_generate_ctrl_event()

В этом примере показано, как послать события CTRL+BREAK дочернему процессу. В данном случае дочерний процесс будет печатать Я всё ещё жив! раз в секунду, пока пользователь не нажмёт CTRL+BREAK. После этого дочерний процесс завершится.

<?php
// Пересылка событий CTRL+BREAK дочернему процессу
sapi_windows_set_ctrl_handler('sapi_windows_generate_ctrl_event');

// Создаём дочерний процесс
$cmd = ['php', '-r', 'while (true) { echo "Я всё ещё жив!\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() - Установить или удалить обработчик события CTRL


Установить или удалить обработчик события CTRL

  • « sapi_windows_generate_ctrl_event
  • sapi_windows_vt100_support »
  • PHP Manual
  • Разные функции
  • Установить или удалить обработчик события CTRL

sapi_windows_set_ctrl_handler

(PHP 7 >= 7.4.0, PHP 8)

sapi_windows_set_ctrl_handler — Установить или удалить обработчик события CTRL

Описание

sapi_windows_set_ctrl_handler(?callable $handler, bool $add = true): bool

Устанавливает или удаляет обработчик события CTRL, который позволит процессам Windows CLI перехватывать или игнорировать события CTRL+C и CTRL+BREAK. Обратите внимание, что в многопоточном окружение это возможно только при вызове из главного потока.

Список параметров

handler

Функция обратного вызова, которая будет установлена или удалена. Эта функция будет вызываться при наступлении событий CTRL+C и CTRL+BREAK. Функция должна иметь следующую сигнатуру:

handler(int $event): void
event
Полученное событие CTRL; PHP_WINDOWS_EVENT_CTRL_C или PHP_WINDOWS_EVENT_CTRL_BREAK.
Установка параметра handler в значение null приведёт к игнорированию событий CTRL+C, но не CTRL+BREAK.

add

Если true, то обработчик будет установлен. Если false, то удалён.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Использование sapi_windows_set_ctrl_handler()

В этом примере показано, как перехватывать события CTRL.

<?php
function ctrl_handler(int $event)
{
switch ($event) {
case PHP_WINDOWS_EVENT_CTRL_C:
echo "Вы нажали CTRL+C\n";
break;
case PHP_WINDOWS_EVENT_CTRL_BREAK:
echo "Вы нажали CTRL+BREAK\n";
break;
}
}

sapi_windows_set_ctrl_handler('ctrl_handler');
while (true); // Бесконечный цикл
?>

Смотрите также

  • sapi_windows_generate_ctrl_event() - Послать событие CTRL другому процессу


Получить или установить поддержку VT100 для заданного потока, связанного с буфером вывода консоли Windows

  • « sapi_windows_set_ctrl_handler
  • show_source »
  • PHP Manual
  • Разные функции
  • Получить или установить поддержку VT100 для заданного потока, связанного с буфером вывода консоли Windows

sapi_windows_vt100_support

(PHP 7 >= 7.2.0, PHP 8)

sapi_windows_vt100_support — Получить или установить поддержку VT100 для заданного потока, связанного с буфером вывода консоли Windows

Описание

sapi_windows_vt100_support(resource $stream, ?bool $enable = null): bool

Если параметр enable равен null, функция возвращает true или false в зависимости от того, разрешены или нет управляющие последовательности VT100 для stream

Если параметр enable является логическим значением (bool), функция попытается включить или выключить функциональность 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

Если является логическим значением (bool), то должно быть либо true, либо false, для включения и отключения VT100 соответственно.

Возвращаемые значения

Если параметр enable равен null, функция возвращает true или false в зависимости от того, разрешены или нет управляющие последовательности VT100

Если параметр enable является логическим значением (bool): Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | enable теперь допускает значение null.

Примеры

Пример #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, PHP 8)

show_source — Псевдоним highlight_file()

Описание

Функция является псевдонимом: highlight_file().


Задержка выполнения

  • « show_source
  • sys_getloadavg »
  • PHP Manual
  • Разные функции
  • Задержка выполнения

sleep

(PHP 4, PHP 5, PHP 7, PHP 8)

sleep — Задержка выполнения

Описание

sleep(int $seconds): int

Откладывает исполнение программы на число секунд, указанное в параметре seconds.

Замечание:

Чтобы отложить выполнение программы на доли секунды, используйте функцию usleep(), поскольку функция sleep() ожидает целое число (int). Например, sleep(0.25) приостановит выполнение программы на 0 секунд.

Список параметров

seconds

Время остановки в секундах (должно быть больше или равно 0).

Возвращаемые значения

Возвращает 0 в случае успешного выполнения.

Если вызов был прерван сигналом, функция sleep() возвратит значение, не равное нулю. В Windows это значение всегда будет равно 192 (значение константы Windows API WAIT_IO_COMPLETION). На других платформах возвращаемом значением будет количество секунд, оставшихся до задержки.

Ошибки

Если указанное число секунд в параметре seconds отрицательное, выбрасывается исключение ValueError..

Список изменений

Версия | Описание
8.0.0 | Функция выбрасывает исключение ValueError, если в параметре seconds указано отрицательное число; ранее вместо этого выдавалась ошибка уровня E_WARNING и функция возвращала значение false.

Примеры

Пример #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, PHP 8)

sys_getloadavg — Получает среднюю загрузку системы

Описание

sys_getloadavg(): array|false

Возвращает три образца, представляющих среднюю загрузку системы (число процессов в очереди системных процессов) за последние 1, 5 и 15 минут, соответственно. Возвращает false в случае возникновения ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив (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, PHP 8)

time_nanosleep — Задержка на заданное число секунд и наносекунд

Описание

time_nanosleep(int $seconds, int $nanoseconds): array|bool

Откладывает исполнение программы на заданные в параметрах seconds и nanoseconds число секунд и наносекунд соответственно.

Список параметров

seconds

Должно быть целым положительным числом.

nanoseconds

Должно быть целым положительным числом, меньшим одного миллиарда.

Замечание: В Windows система может откладывать исполнение дольше указанного количества наносекунд, в зависимости от аппаратного обеспечения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Если отложенное исполнение было прервано сигналом, то возвращается ассоциативный массив со следующими компонентами:

  • seconds - число оставшихся секунд
  • nanoseconds - число оставшихся наносекунд

Примеры

Пример #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, PHP 8)

time_sleep_until — Откладывает исполнение скрипта до заданного времени

Описание

time_sleep_until(float $timestamp): bool

Откладывает исполнение скрипта до заданной временной метки, указанной в параметре timestamp.

Список параметров

timestamp

Временная метка продолжения исполнения скрипта.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если указанная временная метка 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, PHP 8)

uniqid — Сгенерировать уникальный ID

Описание

uniqid(string $prefix = "", bool $more_entropy = false): string

Получает уникальный идентификатор с префиксом, основанный на текущем времени в микросекундах.

Предостережение

Функция не создаёт криптографически защищённые значения и не должна использоваться для криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для разгадывания.

Если требуется криптографически безопасная случайная последовательность, Random\Randomizer может использоваться с движком Random\Engine\Secure. Для простых случаев использования функции random_int() и random_bytes() предоставляют удобный и безопасный API, поддерживаемый CSPRNG операционной системы.

Внимание

Эта функция не гарантирует получения уникального значения. Большинство операционных систем синхронизирует время с 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 для работы этой функции.

Смотрите также

  • random_bytes() - Получает криптографически безопасные случайные байты


Распаковать данные из бинарной строки

  • « uniqid
  • usleep »
  • PHP Manual
  • Разные функции
  • Распаковать данные из бинарной строки

unpack

(PHP 4, PHP 5, PHP 7, PHP 8)

unpack — Распаковать данные из бинарной строки

Описание

unpack(string $format, string $string, int $offset = 0): array|false

Распаковывает данные из бинарной строки в массив в соответствии с заданным в format формате.

Распакованные данные хранятся в ассоциативном массиве. Для осуществления этого необходимо обозначить различные коды форматов и разделить их с помощью слеша /. Можно также передать замещающий аргумент, с помощью которого каждый ключ массива будет иметь порядковый номер после заданного имени.

Для поддержания совместимости с Perl сделано следующее:

  • Код "a" теперь сохраняет завершающие NULL-байты.
  • Код "A" теперь удаляет все завершающие пробельные символы ASCII (пробелы, табуляцию, переносы строк, возврат каретки, и NULL-байты).
  • Код "Z" добавлен для NULL-дополненными строками и удаляет завершающие NULL-байты.

Список параметров

format

Смотрите функцию pack() для разъяснения кодов форматов.

string

Упакованные данные.

offset

Смещение, с которого необходимо начать распаковку.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий распакованные элементы бинарной строки или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Типы float и double поддерживают как обратный, так и прямой порядок передачи байтов.
7.1.0 | Добавлен необязательный параметр offset.

Примеры

Пример #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, PHP 8)

usleep — Задержка выполнения в микросекундах

Описание

usleep(int $microseconds): void

Откладывает выполнение программы на указанное число микросекунд.

Список параметров

microseconds

Время откладываемого исполнения в микросекундах. Микросекунда - это одна миллионная секунды.

Замечание: Значения больше 1000000 (т.е. ожидание более секунды) могут не поддерживаться операционной системой. Вместо этого используйте sleep().

Замечание: Отложенное исполнение может быть немного дольше (т.е. может быть дольше, чем параметр microseconds) за счёт любой активности системы или времени, затраченного на обработку вызова или гранулярностью системных таймеров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования usleep()

<?php

// Текущее время
echo (new DateTime('now'))->format('H:i:s.v'), "\n";

// ждать 2 миллисекунды
usleep(2000);

// вернуться к исполнению
echo (new DateTime('now'))->format('H:i:s.v'), "\n";

// ждать 30 миллисекунд
usleep(30000);

// вернуться к исполнению ещё раз!
echo (new DateTime('now'))->format('H:i:s.v'), "\n";

?>

Результат выполнения данного примера:

11:13:28.005
11:13:28.007
11:13:28.037

Смотрите также

  • sleep() - Задержка выполнения
  • time_nanosleep() - Задержка на заданное число секунд и наносекунд
  • time_sleep_until() - Откладывает исполнение скрипта до заданного времени
  • set_time_limit() - Ограничение времени выполнения скрипта


Генераторы случайных чисел и функции, связанные со случайностью

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
  • Функции Random
    • getrandmax — Возвращает максимально возможное случайное число
    • lcg_value — Комбинированный линейный конгруэнтный генератор
    • mt_getrandmax — Показывает максимально возможное значение случайного числа
    • mt_rand — Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
    • mt_srand — Проинициализирует генератор случайных чисел на базе Вихря Мерсенна
    • rand — Генерирует случайное число
    • random_bytes — Получает криптографически безопасные случайные байты
    • random_int — Получает криптографически безопасное, равномерно выбранное целое число
    • srand — Изменяет начальное число генератора псевдослучайных чисел
  • Random\Randomizer — Класс Random\Randomizer
    • Random\Randomizer::__construct — Создаёт новый объект Randomizer
    • Random\Randomizer::getBytes — Получает случайные байты
    • Random\Randomizer::getBytesFromString — Get random bytes from a source string
    • Random\Randomizer::getFloat — Get a uniformly selected float
    • Random\Randomizer::getInt — Получает равномерно выбранное целое число
    • Random\Randomizer::nextFloat — Get a float from the right-open interval [0.0, 1.0)
    • Random\Randomizer::nextInt — Получает целое положительное число
    • Random\Randomizer::pickArrayKeys — Выбирает случайные ключи массива
    • Random\Randomizer::__serialize — Сериализует объект Randomizer
    • Random\Randomizer::shuffleArray — Получает перестановку массива
    • Random\Randomizer::shuffleBytes — Получает байтовую перестановку строки
    • Random\Randomizer::__unserialize — Десериализует параметр data в объект Randomizer
  • Random\Engine — Интерфейс Random\Engine
    • Random\Engine::generate — Создаёт случайную последовательность
  • Random\CryptoSafeEngine — Интерфейс Random\CryptoSafeEngine
  • Random\Engine\Secure — Класс Random\Engine\Secure
    • Random\Engine\Secure::generate — Создаёт криптографически безопасную случайную последовательность
  • Random\Engine\Mt19937 — Класс Random\Engine\Mt19937
    • Random\Engine\Mt19937::__construct — Создаёт новый объект движка Mt19937
    • Random\Engine\Mt19937::__debugInfo — Возвращает внутреннее состояние движка
    • Random\Engine\Mt19937::generate — Создаёт 32 бита случайной последовательности
    • Random\Engine\Mt19937::__serialize — Сериализует объект Mt19937
    • Random\Engine\Mt19937::__unserialize — Десериализует параметр data в объект Mt19937
  • Random\Engine\PcgOneseq128XslRr64 — Класс Random\Engine\PcgOneseq128XslRr64
    • Random\Engine\PcgOneseq128XslRr64::__construct — Создаёт новый движок PCG Oneseq 128 XSL RR 64
    • Random\Engine\PcgOneseq128XslRr64::__debugInfo — Возвращает внутреннее состояние движка
    • Random\Engine\PcgOneseq128XslRr64::generate — Создаёт 64 бита случайной последовательности
    • Random\Engine\PcgOneseq128XslRr64::jump — Эффективное перемещение движка вперёд на несколько шагов
    • Random\Engine\PcgOneseq128XslRr64::__serialize — Сериализует объект PcgOneseq128XslRr64
    • Random\Engine\PcgOneseq128XslRr64::__unserialize — Десериализует параметр data в объект PcgOneseq128XslRr64
  • Random\Engine\Xoshiro256StarStar — Класс Random\Engine\Xoshiro256StarStar
    • Random\Engine\Xoshiro256StarStar::__construct — Создаёт новый объект движка xoshiro256**
    • Random\Engine\Xoshiro256StarStar::__debugInfo — Возвращает внутреннее состояние движка
    • Random\Engine\Xoshiro256StarStar::generate — Генерирует 64 бита случайной последовательности
    • Random\Engine\Xoshiro256StarStar::jump — Эффективно перемещает движок вперёд на 2^128 шагов
    • Random\Engine\Xoshiro256StarStar::jumpLong — Эффективно перемещает движок вперёд на 2^192 шага
    • Random\Engine\Xoshiro256StarStar::__serialize — Сериализует объект Xoshiro256StarStar
    • Random\Engine\Xoshiro256StarStar::__unserialize — Десериализует параметр data в объект Xoshiro256StarStar
  • Random\RandomError — Класс Random\RandomError
  • Random\BrokenRandomEngineError — Класс Random\BrokenRandomEngineError
  • Random\RandomException — Класс Random\RandomException


  • « Random
  • Установка и настройка »
  • PHP Manual
  • Random
  • Введение

Введение


Предопределённые константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

MT_RAND_MT19937 (int)
Указывает, что правильная реализация » Mt19937 (Mersenne Twister) будет использоваться алгоритмом при создании экземпляра Random\Engine\Mt19937 с помощью метода Random\Engine\Mt19937::__construct() или при загрузке глобального Mersenne Twister с помощью функции mt_srand().
MT_RAND_PHP (int)
Указывает, что при создании экземпляра Random\Engine\Mt19937 с помощью метода Random\Engine\Mt19937::__construct() или при загрузке глобального Mersenne Twister с помощью функции mt_srand() алгоритм будет использовать некорректную реализацию Mersenne Twister. Некорректная реализация доступна для обратной совместимости с помощью функции mt_srand() до версии PHP 7.1.0.
Внимание

Данная функциональность объявлена УСТАРЕВШЕЙ, начиная с PHP 8.3.0 и её крайне не рекомендуется использовать.


Примеры

Пример #1 Пример использования Random

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Функции Random

Содержание

  • getrandmax — Возвращает максимально возможное случайное число
  • lcg_value — Комбинированный линейный конгруэнтный генератор
  • mt_getrandmax — Показывает максимально возможное значение случайного числа
  • mt_rand — Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
  • mt_srand — Проинициализирует генератор случайных чисел на базе Вихря Мерсенна
  • rand — Генерирует случайное число
  • random_bytes — Получает криптографически безопасные случайные байты
  • random_int — Получает криптографически безопасное, равномерно выбранное целое число
  • srand — Изменяет начальное число генератора псевдослучайных чисел


Возвращает максимально возможное случайное число

  • « Функции Random
  • lcg_value »
  • PHP Manual
  • Функции Random
  • Возвращает максимально возможное случайное число

getrandmax

(PHP 4, PHP 5, PHP 7, PHP 8)

getrandmax — Возвращает максимально возможное случайное число

Описание

getrandmax(): int

Возвращает максимальное значение, которое может быть получено функцией rand().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Максимально возможное случайное значение, возвращаемое функцией rand()

Смотрите также

  • rand() - Генерирует случайное число
  • srand() - Изменяет начальное число генератора псевдослучайных чисел
  • mt_getrandmax() - Показывает максимально возможное значение случайного числа


Комбинированный линейный конгруэнтный генератор

  • « getrandmax
  • mt_getrandmax »
  • PHP Manual
  • Функции Random
  • Комбинированный линейный конгруэнтный генератор

lcg_value

(PHP 4, PHP 5, PHP 7, PHP 8)

lcg_value — Комбинированный линейный конгруэнтный генератор

Описание

lcg_value(): float

lcg_value() возвращает псевдослучайное значение в диапазоне (0, 1). Функция комбинирует два КГ с периодами 2^31 - 85 и 2^31 - 249. Период этой функции равен произведению базовых.

Предостережение

Функция не создаёт криптографически защищённые значения и не должна использоваться для криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для разгадывания.

Если требуется криптографически безопасная случайная последовательность, Random\Randomizer может использоваться с движком Random\Engine\Secure. Для простых случаев использования функции random_int() и random_bytes() предоставляют удобный и безопасный API, поддерживаемый CSPRNG операционной системы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Псевдослучайное число с плавающей точкой в диапазоне от 0.0 до 1.0 включительно.

Смотрите также

  • rand() - Генерирует случайное число
  • mt_rand() - Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна


Показывает максимально возможное значение случайного числа

  • « lcg_value
  • mt_rand »
  • PHP Manual
  • Функции Random
  • Показывает максимально возможное значение случайного числа

mt_getrandmax

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_getrandmax — Показывает максимально возможное значение случайного числа

Описание

mt_getrandmax(): int

Возвращает максимальное значение, которое может быть получено при вызове mt_rand().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает максимальное случайное значение, возвращаемое mt_rand(), вызванного без аргументов, то есть максимальное значение, которое можно передать в параметр max, так чтобы результат не округлился и, соответственно, не уменьшалась случайность.

Смотрите также

  • mt_rand() - Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
  • mt_srand() - Проинициализирует генератор случайных чисел на базе Вихря Мерсенна
  • getrandmax() - Возвращает максимально возможное случайное число


Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна

  • « mt_getrandmax
  • mt_srand »
  • PHP Manual
  • Функции Random
  • Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна

mt_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_rand — Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна

Описание

mt_rand(): int
mt_rand(int $min, int $max): int

Многие генераторы случайных чисел в старых библиотеках имеют сомнительные или неизвестные характеристики, а также работают довольно медленно. Функция mt_rand() представляет собой замену старой функции rand(). Она использует генератор случайных чисел с известными характеристиками, основанный на » Вихре Мерсенна, который генерирует случайные числа в среднем в четыре раза быстрее, чем libc rand().

Вызванная без необязательных параметров min и max, функция mt_rand() возвращает псевдослучайное значение между 0 и mt_getrandmax(). Если вам нужно, например, случайное число между 5 и 15 (включительно), используйте вызов mt_rand(5,15)

Предостережение

Функция не создаёт криптографически защищённые значения и не должна использоваться для криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для разгадывания.

Если требуется криптографически безопасная случайная последовательность, Random\Randomizer может использоваться с движком Random\Engine\Secure. Для простых случаев использования функции random_int() и random_bytes() предоставляют удобный и безопасный API, поддерживаемый CSPRNG операционной системы.

Список параметров

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.

Примеры

Пример #1 Пример использования mt_rand()

<?php
echo mt_rand(), "\n";
echo mt_rand(), "\n";

echo mt_rand(5, 15), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

1604716014
1478613278
6

Примечания

Внимание

Диапазон min - max не должен выходить за границы mt_getrandmax(). То есть (max - min) <= mt_getrandmax(). В противном случае, mt_rand() может возвращать менее качественные случайные числа.

Смотрите также

  • mt_srand() - Проинициализирует генератор случайных чисел на базе Вихря Мерсенна
  • mt_getrandmax() - Показывает максимально возможное значение случайного числа
  • random_int() - Получает криптографически безопасное, равномерно выбранное целое число
  • random_bytes() - Получает криптографически безопасные случайные байты


Проинициализирует генератор случайных чисел на базе Вихря Мерсенна

  • « mt_rand
  • rand »
  • PHP Manual
  • Функции Random
  • Проинициализирует генератор случайных чисел на базе Вихря Мерсенна

mt_srand

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_srand — Проинициализирует генератор случайных чисел на базе Вихря Мерсенна

Описание

mt_srand(int $seed = 0, int $mode = MT_RAND_MT19937): void

Переинициализирует генератор случайных чисел параметром seed или случайным числом, если seed не указан.

Замечание: Нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку это происходит автоматически.

Предостережение

Поскольку механизм Mt19937 ("Mersenne Twister") принимает в качестве значения только одно 32-битное целое число, количество возможных случайных последовательностей ограничено всего 232 (то есть 4 294 967 296), несмотря на огромный период Mt19937, равный 219937-1.

Если полагаться на неявное или явное случайное значение, дубликаты появятся гораздо раньше. Дублированные значения ожидаются с 50% вероятностью после менее чем 80 000 случайно сгенерированных значений в соответствии с проблемой дня рождения. Вероятность дублирования значений составляет 10% после случайной генерации примерно 30 000 значений.

Это делает Mt19937 непригодным для применения в тех случаях, когда дублирование последовательностей не должно происходить с более чем ничтожной вероятностью. Если требуется воспроизводимое значение, то движки Random\Engine\Xoshiro256StarStar и Random\Engine\PcgOneseq128XslRr64 поддерживают гораздо большие значения, которые вряд ли столкнутся случайно. Если воспроизводимость не требуется, механизм Random\Engine\Secure обеспечивает криптографически безопасную случайную последовательность.

Список параметров

seed

Необязательное целочисленное (int) значение параметра переинициализации

mode

Используйте одну из следующих констант для изменения реализации генератора.

  • MT_RAND_MT19937: Корректная реализация Mt19937, доступная начиная с PHP 7.1.0.
  • MT_RAND_PHP Использует некорректную реализацию Mersenne Twister, которая использовалась по умолчанию до версии PHP 7.1.0. Этот режим доступен для обратной совместимости.

Внимание

Данная функциональность объявлена УСТАРЕВШЕЙ, начиная с PHP 8.3.0 и её крайне не рекомендуется использовать.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
7.1.0 | srand() теперь является псевдонимом для mt_srand().
7.1.0 | mt_rand() была изменена для использования фиксированной, корректной версии алгоритма Вихря Мерсенна. Для отката к старому поведению, используйте mt_srand() со вторым параметром MT_RAND_PHP.

Смотрите также

  • mt_rand() - Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
  • mt_getrandmax() - Показывает максимально возможное значение случайного числа
  • srand() - Изменяет начальное число генератора псевдослучайных чисел


Генерирует случайное число

  • « mt_srand
  • random_bytes »
  • PHP Manual
  • Функции Random
  • Генерирует случайное число

rand

(PHP 4, PHP 5, PHP 7, PHP 8)

rand — Генерирует случайное число

Описание

rand(): int
rand(int $min, int $max): int

При вызове без параметров min и max, возвращает псевдослучайное целое в диапазоне от 0 до getrandmax(). Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите rand(5, 15).

Предостережение

Функция не создаёт криптографически защищённые значения и не должна использоваться для криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для разгадывания.

Если требуется криптографически безопасная случайная последовательность, Random\Randomizer может использоваться с движком Random\Engine\Secure. Для простых случаев использования функции random_int() и random_bytes() предоставляют удобный и безопасный API, поддерживаемый CSPRNG операционной системы.

Замечание: На некоторых платформах (таких как 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), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

7771
22264
11

Примечания

Внимание

Диапазон min - max не должен выходить за границы getrandmax(). То есть (max - min) <= getrandmax(). В противном случае, rand() может возвращать менее качественные случайные числа.

Смотрите также

  • srand() - Изменяет начальное число генератора псевдослучайных чисел
  • getrandmax() - Возвращает максимально возможное случайное число
  • mt_rand() - Генерирует случайное значение методом с помощью генератора простых чисел на базе Вихря Мерсенна
  • random_int() - Получает криптографически безопасное, равномерно выбранное целое число
  • random_bytes() - Получает криптографически безопасные случайные байты


Получает криптографически безопасные случайные байты

  • « rand
  • random_int »
  • PHP Manual
  • Функции Random
  • Получает криптографически безопасные случайные байты

random_bytes

(PHP 7, PHP 8)

random_bytes — Получает криптографически безопасные случайные байты

Описание

random_bytes(int $length): string

Создаёт строку, содержащую равномерно выбранные случайные байты с запрошенной длиной length.

Поскольку возвращаемые байты выбираются совершенно случайно, полученная строка может содержать непечатаемые символы или недопустимые последовательности UTF-8. Может потребоваться её кодирование перед передачей или отображением.

Случайная последовательность, создаваемая функцией, подходит для всех приложений, включая генерацию долгосрочных секретов, таких как ключи шифрования.

Источники случайных величин в порядке приоритета:

  • Linux: » getrandom(), /dev/urandom

  • FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom

  • Windows (PHP >= 7.2): » CNG-API

    Windows: » CryptGenRandom

  • macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22, если CCRandomGenerateBytes доступен во время компиляции): CCRandomGenerateBytes()

    macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom

  • NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom

  • Solaris (PHP >= 8.1): » getrandom(), /dev/urandom

  • Любая комбинация операционной системы и версии PHP, не указанная ранее: /dev/urandom
  • Если ни один из источников не доступен или все они не генерируют случайную величину, то будет выброшено исключение Random\RandomException.

Замечание: Эта функция была добавлена в PHP 7.0, а для версий с 5.2 по 5.6 включительно доступна » пользовательская реализация.

Список параметров

length

Длина генерируемой строки в байтах; должно быть 1 или больше.

Возвращаемые значения

Возвращает строку, состоящую из заданного количества криптографически безопасных байт.

Ошибки

  • Если подходящие источники случайных величин отсутствуют, то выбрасывается исключение Random\RandomException.
  • Если значение параметра length меньше 1, будет выброшена ошибка ValueError.

Список изменений

Версия | Описание
8.2.0 | В случае возникновения ошибки CSPRNG, функция теперь будет выбрасывать исключение Random\RandomException. Ранее выбрасывалось исключение Exception.

Примеры

Пример #1 Пример использования random_bytes()

<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>

Результатом выполнения данного примера будет что-то подобное:

string(10) "385e33f741"

Смотрите также

  • Random\Randomizer::getBytes() - Получает случайные байты
  • random_int() - Получает криптографически безопасное, равномерно выбранное целое число
  • bin2hex() - Преобразует бинарные данные в шестнадцатеричное представление
  • base64_encode() - Кодирует данные в формат MIME base64


Получает криптографически безопасное, равномерно выбранное целое число

  • « random_bytes
  • srand »
  • PHP Manual
  • Функции Random
  • Получает криптографически безопасное, равномерно выбранное целое число

random_int

(PHP 7, PHP 8)

random_int — Получает криптографически безопасное, равномерно выбранное целое число

Описание

random_int(int $min, int $max): int

Создаёт равномерно выбранное целое число между заданными минимумом и максимумом.

Случайная последовательность, создаваемая функцией, подходит для всех приложений, включая генерацию долгосрочных секретов, таких как ключи шифрования.

Источники случайных величин в порядке приоритета:

  • Linux: » getrandom(), /dev/urandom

  • FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom

  • Windows (PHP >= 7.2): » CNG-API

    Windows: » CryptGenRandom

  • macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22, если CCRandomGenerateBytes доступен во время компиляции): CCRandomGenerateBytes()

    macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom

  • NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom

  • Solaris (PHP >= 8.1): » getrandom(), /dev/urandom

  • Любая комбинация операционной системы и версии PHP, не указанная ранее: /dev/urandom
  • Если ни один из источников не доступен или все они не генерируют случайную величину, то будет выброшено исключение Random\RandomException.

Замечание: Эта функция была добавлена в PHP 7.0, а для версий с 5.2 по 5.6 включительно доступна » пользовательская реализация.

Список параметров

min

Нижняя граница диапазона.

max

Верхняя граница диапазона.

Возвращаемые значения

Криптографически безопасное, равномерно выбранное целое число из замкнутого интервала [min, max]. Возможными возвращаемыми значениями являются min и max.

Ошибки

  • Если подходящие источники случайных величин отсутствуют, то выбрасывается исключение Random\RandomException.
  • Если задать max меньше чем min, то будет выброшено исключение класса ValueError.

Список изменений

Версия | Описание
8.2.0 | В случае возникновения ошибки CSPRNG, функция теперь будет выбрасывать исключение Random\RandomException. Ранее выбрасывалось исключение Exception.

Примеры

Пример #1 Пример использования random_int()

<?php
var_dump(random_int(100, 999));
var_dump(random_int(-1000, 0));
?>

Результатом выполнения данного примера будет что-то подобное:

int(248)
int(-898)

Смотрите также

  • Random\Randomizer::getInt() - Получает равномерно выбранное целое число
  • random_bytes() - Получает криптографически безопасные случайные байты


Изменяет начальное число генератора псевдослучайных чисел

  • « random_int
  • Random\Randomizer »
  • PHP Manual
  • Функции Random
  • Изменяет начальное число генератора псевдослучайных чисел

srand

(PHP 4, PHP 5, PHP 7, PHP 8)

srand — Изменяет начальное число генератора псевдослучайных чисел

Описание

srand(int $seed = 0, int $mode = MT_RAND_MT19937): void

Устанавливает начальное число генератора случайных чисел равным seed или случайному числу, если seed равен 0.

Замечание: Нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку это происходит автоматически.

Предостережение

Поскольку механизм Mt19937 ("Mersenne Twister") принимает в качестве значения только одно 32-битное целое число, количество возможных случайных последовательностей ограничено всего 232 (то есть 4 294 967 296), несмотря на огромный период Mt19937, равный 219937-1.

Если полагаться на неявное или явное случайное значение, дубликаты появятся гораздо раньше. Дублированные значения ожидаются с 50% вероятностью после менее чем 80 000 случайно сгенерированных значений в соответствии с проблемой дня рождения. Вероятность дублирования значений составляет 10% после случайной генерации примерно 30 000 значений.

Это делает Mt19937 непригодным для применения в тех случаях, когда дублирование последовательностей не должно происходить с более чем ничтожной вероятностью. Если требуется воспроизводимое значение, то движки Random\Engine\Xoshiro256StarStar и Random\Engine\PcgOneseq128XslRr64 поддерживают гораздо большие значения, которые вряд ли столкнутся случайно. Если воспроизводимость не требуется, механизм Random\Engine\Secure обеспечивает криптографически безопасную случайную последовательность.

Замечание: Начиная с PHP 7.1.0, srand() стала синонимом функции mt_srand().

Список параметров

seed

Произвольное целочисленное (int) начальное значение генератора

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
7.1.0 | srand() стала синонимом функции mt_srand().

Смотрите также

  • rand() - Генерирует случайное число
  • getrandmax() - Возвращает максимально возможное случайное число
  • mt_srand() - Проинициализирует генератор случайных чисел на базе Вихря Мерсенна


Класс Random\Randomizer

(PHP 8 >= 8.2.0)

Введение

Предоставляет высокоуровневый API для случайности, обеспечиваемой классом Random\Engine.

Обзор классов

final class Random\Randomizer {
/* Свойства */
public readonly Random\Engine $engine;
/* Методы */
public __construct(?Random\Engine $engine = null)
public getBytes(int $length): string
public getBytesFromString(string $string, int $length): string
public getFloat(float $min, float $max, Random\IntervalBoundary $boundary = Random\IntervalBoundary::ClosedOpen): float
public getInt(int $min, int $max): int
public nextFloat(): float
public nextInt(): int
public pickArrayKeys(array $array, int $num): array
public __serialize(): array
public shuffleArray(array $array): array
public shuffleBytes(string $bytes): string
public __unserialize(array $data): void
}

Свойства

engine

Низкоуровневый источник случайной последовательности для методов Random\Randomizer.

Содержание

  • Random\Randomizer::__construct — Создаёт новый объект Randomizer
  • Random\Randomizer::getBytes — Получает случайные байты
  • Random\Randomizer::getBytesFromString — Get random bytes from a source string
  • Random\Randomizer::getFloat — Get a uniformly selected float
  • Random\Randomizer::getInt — Получает равномерно выбранное целое число
  • Random\Randomizer::nextFloat — Get a float from the right-open interval [0.0, 1.0)
  • Random\Randomizer::nextInt — Получает целое положительное число
  • Random\Randomizer::pickArrayKeys — Выбирает случайные ключи массива
  • Random\Randomizer::__serialize — Сериализует объект Randomizer
  • Random\Randomizer::shuffleArray — Получает перестановку массива
  • Random\Randomizer::shuffleBytes — Получает байтовую перестановку строки
  • Random\Randomizer::__unserialize — Десериализует параметр data в объект Randomizer


Создаёт новый объект Randomizer

  • « Random\Randomizer
  • Random\Randomizer::getBytes »
  • PHP Manual
  • Random\Randomizer
  • Создаёт новый объект Randomizer

Random\Randomizer::__construct

(PHP 8 >= 8.2.0)

Random\Randomizer::__construct — Создаёт новый объект Randomizer

Описание

public Random\Randomizer::__construct(?Random\Engine $engine = null)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

engine

Класс Random\Engine, который будет использоваться для генерации случайной последовательности.

Если параметр engine опущен или null, будет использоваться объект Random\Engine\Secure.

Примеры

Пример #1 Пример использования Random\Randomizer::__construct()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Получает случайные байты

  • « Random\Randomizer::__construct
  • Random\Randomizer::getBytesFromString »
  • PHP Manual
  • Random\Randomizer
  • Получает случайные байты

Random\Randomizer::getBytes

(PHP 8 >= 8.2.0)

Random\Randomizer::getBytes — Получает случайные байты

Описание

public Random\Randomizer::getBytes(int $length): string

Создаёт строку, содержащую равномерно выбранные случайные байты с запрошенной длиной length.

Поскольку возвращаемые байты выбираются совершенно случайно, полученная строка может содержать непечатаемые символы или недопустимые последовательности UTF-8. Может потребоваться её кодирование перед передачей или отображением.

Список параметров

length

Длина случайной строки (string), которая должна быть возвращена, в байтах. Значение должно быть больше или равно 1.

Возвращаемые значения

Возвращает строку (string), содержащую запрошенное количество случайных байтов.

Ошибки

  • Если значение параметра length меньше 1, будет выброшена ошибка ValueError.
  • Любые Throwable, выбрасываемые методом Random\Engine::generate() базового Random\Randomizer::$engine.

Примеры

Пример #1 Пример использования Random\Randomizer::getBytes()

<?php

$r = new \Random\Randomizer();

echo bin2hex($r->getBytes(8)), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

ebdbe93cd56682c2

Смотрите также

  • random_bytes() - Получает криптографически безопасные случайные байты
  • bin2hex() - Преобразует бинарные данные в шестнадцатеричное представление
  • base64_encode() - Кодирует данные в формат MIME base64
  • Random\Randomizer::getBytesFromString() - Get random bytes from a source string


Get random bytes from a source string

  • « Random\Randomizer::getBytes
  • Random\Randomizer::getFloat »
  • PHP Manual
  • Random\Randomizer
  • Get random bytes from a source string

Random\Randomizer::getBytesFromString

(PHP 8 >= 8.3.0)

Random\Randomizer::getBytesFromString — Get random bytes from a source string

Описание

public Random\Randomizer::getBytesFromString(string $string, int $length): string

Generates a string containing uniformly selected random bytes from the input string with the requested length.

The chance for a byte to be selected is proportional to its share of the input string. If each byte occurs the same amount of times, each byte is equally likely to be selected.

Список параметров

string

The string from which the returned bytes are selected.

length

The length of the random string that should be returned in bytes; must be 1 or greater.

Возвращаемые значения

A string containing the requested number of random bytes taken from the input string.

Ошибки

  • If string is empty, a ValueError will be thrown.
  • If the value of length is less than 1, a ValueError will be thrown.
  • Любые Throwable, выбрасываемые методом Random\Engine::generate() базового Random\Randomizer::$engine.

Примеры

Пример #1 Random\Randomizer::getBytesFromString() example

<?php
$randomizer = new \Random\Randomizer();

printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>

Результатом выполнения данного примера будет что-то подобное:

3zsw04eiubcf82jd.example.com

Пример #2 Generate a random code for multi-factor authentication

<?php
// The Secure engine is the default, but we make it explicit, because
// multi-factor codes are security sensitive.
$randomizer = new \Random\Randomizer(new \Random\Engine\Secure());

echo implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
?>

Результатом выполнения данного примера будет что-то подобное:

11551-80418-27047-42075

Пример #3 Select from a string with a non-uniform distribution

<?php
$randomizer = new \Random\Randomizer();

echo $randomizer->getBytesFromString('aaaaabcdef', 20);
?>

Результатом выполнения данного примера будет что-то подобное:

fddacbeaaeaaacaaaaca

Смотрите также

  • Random\Randomizer::getBytes() - Получает случайные байты


Get a uniformly selected float

  • « Random\Randomizer::getBytesFromString
  • Random\Randomizer::getInt »
  • PHP Manual
  • Random\Randomizer
  • Get a uniformly selected float

Random\Randomizer::getFloat

(PHP 8 >= 8.3.0)

Random\Randomizer::getFloat — Get a uniformly selected float

Описание

public Random\Randomizer::getFloat(float $min, float $max, Random\IntervalBoundary $boundary = Random\IntervalBoundary::ClosedOpen): float

Returns a uniformly selected, equidistributed float from a requested interval.

Due to the limited precision, not all real numbers can be exactly represented as a floating point number. If a number cannot be represented exactly, it is rounded to the nearest representable exact value. Furthermore, floats are not equally dense across the whole number line. Because floats use a binary exponent, the distance between two neighboring floats doubles at each power of two. In other words: There are the same number of representable floats between 1.0 and 2.0 as they are between 2.0 and 4.0, 4.0 and 8.0, 8.0 and 16.0, and so on.

Randomly sampling an arbitrary number within the requested interval, for example by dividing two integers, might result in a biased distribution for this reason. The necessary rounding will cause some floats to be returned more often than others, especially around powers of two when the density of floats changes.

Random\Randomizer::getFloat() implements an algorithm that will return a uniformly selected float from the largest possible set of exactly representable and equidistributed floats within the requested interval. The distance between the selectable floats ("step size") matches the distance between the floats with the lowest density, i.e. the distance between floats at interval boundary with the larger absolute value. This means that not all representable floats within a given interval may be returned if the interval crosses one or more powers of two. Stepping will start from the interval boundary with the larger absolute value to ensure the steps align with the exactly representable floats.

Closed interval boundaries will always be included in the set of selectable floats. Thus, if the size of the interval is not an exact multiple of the step size and the boundary with the smaller absolute value is a closed boundary, the distance between that boundary and its nearest selectable float will be smaller than the step size.

Предостережение

Post-processing the returned floats is likely going to break the uniform equidistribution, because the intermediate floats within a mathematical operation are experiencing implicit rounding. The requested interval should match the desired interval as closely as possible and rounding should only be performed as an explicit operation right before displaying the selected number to a user.

Explanation of the Algorithm Using Example Values

To give an example of how the algorithm works, consider a floating point representation that uses a 3-bit mantissa. This representation is capable of representing 8 different floating point values between consecutive powers of two. This means that between 1.0 and 2.0 all steps of size 0.125 are exactly representable and between 2.0 and 4.0 all steps of size 0.25 are exactly representable. In reality PHP's floats use a 52-bit mantissa and can represent 252 different values between each power of two. This means that

  • 1.0
  • 1.125
  • 1.25
  • 1.375
  • 1.5
  • 1.625
  • 1.75
  • 1.875
  • 2.0
  • 2.25
  • 2.5
  • 2.75
  • 3.0
  • 3.25
  • 3.5
  • 3.75
  • 4.0
are the exactly representable floats between 1.0 and 4.0.

Now consider that $randomizer->getFloat(1.625, 2.5, IntervalBoundary::ClosedOpen) is called, i.e. a random float starting at 1.625 until, but not including, 2.5 is requested. The algorithm first determines the step size at the boundary with the larger absolute value (2.5). The step size at that boundary is 0.25.

Note that the size of the requested interval is 0.875, which is not an exact multiple of 0.25. If the algorithm would start stepping at the lower bound 1.625, it would encounter 2.125, which is not exactly representable and would experience implicit rounding. Thus the algorithm starts stepping at the upper boundary 2.5. The selectable values are:

  • 2.25
  • 2.0
  • 1.75
  • 1.625
2.5 is not included, because the upper boundary of the requested interval is an open boundary. 1.625 is included, even though its distance to the nearest value 1.75 is 0.125, which is smaller than the previously determined step size of 0.25. The reason for that is that the requested interval is closed at the lower boundary (1.625) and closed boundaries are always included.

Finally the algorithm uniformly selects one of the four selectable values at random and returns it.

Why Dividing Two Integers Does Not Work

In the previous example, there are eight representable floating point numbers between each sub-interval delimited by a power of two. To give an example why dividing two integers would not work well to generate a random float, consider that there are 16 equidistributed floating point numbers in the right-open interval from 0.0 until, but not including, 1.0. Half of them are the eight exactly representable values between 0.5 and 1.0, the other half are the values between 0.0 and 1.0 that the step size of 0.0625. These can easily be generated by dividing a random integer between 0 and 15 by 16 to obtain one of:

  • 0.0
  • 0.0625
  • 0.125
  • 0.1875
  • 0.25
  • 0.3125
  • 0.375
  • 0.4375
  • 0.5
  • 0.5625
  • 0.625
  • 0.6875
  • 0.75
  • 0.8125
  • 0.875
  • 0.9375

This random float could be scaled to right-open interval from 1.625 until, but not including, 2.75 by multiplying it with the size of the interval (0.875) and adding the minimum 1.625. This so-called affine transformation would result in the values:

  • 1.625 rounded to 1.625
  • 1.679 rounded to 1.625
  • 1.734 rounded to 1.75
  • 1.789 rounded to 1.75
  • 1.843 rounded to 1.875
  • 1.898 rounded to 1.875
  • 1.953 rounded to 2.0
  • 2.007 rounded to 2.0
  • 2.062 rounded to 2.0
  • 2.117 rounded to 2.0
  • 2.171 rounded to 2.25
  • 2.226 rounded to 2.25
  • 2.281 rounded to 2.25
  • 2.335 rounded to 2.25
  • 2.390 rounded to 2.5
  • 2.445 rounded to 2.5
Note how the upper boundary of 2.5 would be returned, despite being an open boundary and thus being excluded. Also note how 2.0 and 2.25 are twice as likely to be returned compared to the other values.

Список параметров

min

The lower bound of the interval.

max

The upper bound of the interval.

boundary

Specifies whether the interval boundaries are possible return values.

Возвращаемые значения

A uniformly selected, equidistributed float from the interval specified by min, max, and boundary. Whether min and max are possible return values depends on the value of boundary.

Ошибки

  • If the value of min is not finite (is_finite()), a ValueError will be thrown.
  • If the value of max is not finite (is_finite()), a ValueError will be thrown.
  • If the requested interval does not contain any values, a ValueError will be thrown.
  • Любые Throwable, выбрасываемые методом Random\Engine::generate() базового Random\Randomizer::$engine.

Примеры

Пример #1 Random\Randomizer::getFloat() example

<?php
$randomizer = new \Random\Randomizer();

// Note that the latitude granularity is double the
// longitude's granularity.
//
// For the latitude the value may be both -90 and 90.
// For the longitude the value may be 180, but not -180, because
// -180 and 180 refer to the same longitude.
printf(
"Lat: %+.6f Lng: %+.6f",
$randomizer->getFloat(-90, 90, \Random\IntervalBoundary::ClosedClosed),
$randomizer->getFloat(-180, 180, \Random\IntervalBoundary::OpenClosed),
);
?>

Результатом выполнения данного примера будет что-то подобное:

Lat: +69.244304 Lng: -53.548951

Примечания

Замечание:

This method implements the ?-section algorithm as published in » Drawing Random Floating-Point Numbers from an Interval. Frederic Goualard, ACM Trans. Model. Comput. Simul., 32:3, 2022 to obtain the desired behavioral properties.

Смотрите также

  • Random\Randomizer::nextFloat() - Get a float from the right-open interval [0.0, 1.0)
  • Random\Randomizer::getInt() - Получает равномерно выбранное целое число


Получает равномерно выбранное целое число

  • « Random\Randomizer::getFloat
  • Random\Randomizer::nextFloat »
  • PHP Manual
  • Random\Randomizer
  • Получает равномерно выбранное целое число

Random\Randomizer::getInt

(PHP 8 >= 8.2.0)

Random\Randomizer::getInt — Получает равномерно выбранное целое число

Описание

public Random\Randomizer::getInt(int $min, int $max): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

min

Наименьшее возвращаемое значение.

max

Наибольшее возвращаемое значение.

Возвращаемые значения

Возвращает равномерно выбранное целое число из замкнутого интервала [min, max]. Возможными возвращаемыми значениями являются как min, так и max.

Ошибки

  • Если max меньше, чем min, будет выброшена ошибка ValueError.
  • Любые Throwable, выбрасываемые методом Random\Engine::generate() базового Random\Randomizer::$engine.

Примеры

Пример #1 Пример использования Random\Randomizer::getInt()

<?php
$r = new \Random\Randomizer();

// Случайное целое число в диапазоне:
echo $r->getInt(1, 100), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • random_int() - Получает криптографически безопасное, равномерно выбранное целое число
  • Random\Randomizer::getFloat() - Get a uniformly selected float


Get a float from the right-open interval [0.0, 1.0)

  • « Random\Randomizer::getInt
  • Random\Randomizer::nextInt »
  • PHP Manual
  • Random\Randomizer
  • Get a float from the right-open interval [0.0, 1.0)

Random\Randomizer::nextFloat

(PHP 8 >= 8.3.0)

Random\Randomizer::nextFloat — Get a float from the right-open interval [0.0, 1.0)

Описание

public Random\Randomizer::nextFloat(): float

Returns a uniformly selected, equidistributed float from the right-open interval from 0.0 until, but not including, 1.0.

The chance for returned float to be within a given right-open sub-interval is proportial to the size of the sub-interval. This means that the chance for a float to be less than 0.5 is 50 %, which is equal to the chance for a float to be at least 0.5. Likewise the chance for a float to be within the right-open interval from 0.2 until, but not including, 0.25 is exactly 5 %.

This property makes it easy to leverage Random\Randomizer::nextFloat() to generate a random boolean with a given chance by checking if the returned float is less than a given chance.

Замечание:

The domain of the returnable floats of Random\Randomizer::nextFloat() is identical to that of Randomizer::getFloat(0.0, 1.0, IntervalBoundary::ClosedOpen).

The internal implementation of Random\Randomizer::nextFloat() is more efficient.

Предостережение

Scaling the return value to a different interval using multiplication or addition (a so-called affine transformation) might result in a bias in the resulting value as floats are not equally dense across the number line. As not all values can be exactly represented by a float, the result of the affine transformation might also result in values outside of the requested interval due to implicit rounding. An in-depth explanation of the problems with the affine transformation is given in the documentation for Random\Randomizer::getFloat().

Use Random\Randomizer::getFloat() to generate a random float within an arbitrary interval. Use Random\Randomizer::getInt() to generate a random integer within an arbitrary interval.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A uniformly selected, equidistributed float from the right-open (IntervalBoundary::ClosedOpen) interval [0.0, 1.0). 0.0 is a possible return value, 1.0 is not.

Ошибки

  • Любые Throwable, выбрасываемые методом Random\Engine::generate() базового Random\Randomizer::$engine.

Примеры

Пример #1 Random\Randomizer::nextFloat() example

<?php
$r = new \Random\Randomizer();

// The resulting bool will be true with the given chance.
$chance = 0.5;

$bool = $r->nextFloat() < $chance;

echo ($bool ? "You won" : "You lost"), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

You won

Пример #2 Incorrect scaling using an affine transformation

<?php
final class MaxEngine implements Random\Engine {
public function generate(): string {
return "\xff";
}
}

$randomizer = new \Random\Randomizer(new MaxEngine);

$min = 3.5;
$max = 4.5;

// DO NOT DO THIS:
//
// This will output 4.5, despite nextFloat() sampling from
// a right-open interval, which will never return 1.
printf("Wrong scaling: %.17g", $randomizer->nextFloat() * ($max - $min) + $min);

// Correct:
// $randomizer->getFloat($min, $max, \Random\IntervalBoundary::ClosedOpen);
?>

Результат выполнения данного примера:

Wrong scaling: 4.5

Смотрите также

  • Random\Randomizer::getFloat() - Get a uniformly selected float


Получает целое положительное число

  • « Random\Randomizer::nextFloat
  • Random\Randomizer::pickArrayKeys »
  • PHP Manual
  • Random\Randomizer
  • Получает целое положительное число

Random\Randomizer::nextInt

(PHP 8 >= 8.2.0)

Random\Randomizer::nextInt — Получает целое положительное число

Описание

public Random\Randomizer::nextInt(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Положительное целое число от 0 до максимального значения, зависящего от количества байт, возвращаемых Random\Engine::generate(). Точное максимальное значение может быть вычислено как 2$engine_bytes * 8 - 1 - 1.

Ошибки

  • Чтобы избежать несоответствий, 32-битный PHP будет выбрасывать исключение Random\RandomException, если размер возвращаемого значения Random\Engine::generate() превышает 32 бита, так как выбранное целое число не может быть возвращено без потерь. Это касается собственных 64-битных движков Random\Engine\PcgOneseq128XslRr64 и Random\Engine\Xoshiro256StarStar. Любой пользовательский механизм, возвращающий более 4 байт случайных данных, также подвержен влиянию.
  • Любые Throwable, выбрасываемые методом Random\Engine::generate() базового Random\Randomizer::$engine.

Примеры

Пример #1 Пример использования Random\Randomizer::nextInt()

<?php
$r = new \Random\Randomizer();

// Случайное "следующее" целое число:
echo $r->nextInt(), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

8041689838856078718


Выбирает случайные ключи массива

  • « Random\Randomizer::nextInt
  • Random\Randomizer::__serialize »
  • PHP Manual
  • Random\Randomizer
  • Выбирает случайные ключи массива

Random\Randomizer::pickArrayKeys

(PHP 8 >= 8.2.0)

Random\Randomizer::pickArrayKeys — Выбирает случайные ключи массива

Описание

public Random\Randomizer::pickArrayKeys(array $array, int $num): array

Равномерно выбирает num отдельных ключей массива входного массива array.

Каждый ключ входного массива array с равной вероятностью будет возвращён.

Предостережение

Выбор ключей массива зависит от внутренней структуры входного массива array. Ключи возвращаемого массива могут быть разными для двух одинаковых входных массивов и двух объектов Random\Engine с одинаковым состоянием, в зависимости от того, как были созданы входные массивы.

Список параметров

array

Массив, ключи массива которого выбираются.

num

Количество возвращаемых ключей массива; должно быть между 1 и количеством элементов в параметре array.

Возвращаемые значения

Массив (array), содержащий num отдельных ключей массива array.

Возвращаемый массив (array) будет списком (array_is_list()). Это будет подмножество массивов (array), возвращаемых функцией array_keys().

Ошибки

  • Если параметр num меньше 1 или больше количества элементов в параметре array, будет выброшено исключение ValueError.
  • Любые Throwable, выбрасываемые методом Random\Engine::generate() базового Random\Randomizer::$engine.

Примеры

Пример #1 Пример использования Random\Randomizer::pickArrayKeys()

<?php
$r = new \Random\Randomizer();

$fruits = [ 'red' => '??', 'green' => '??', 'yellow' => '??', 'pink' => '??', 'purple' => '??' ];

// Выборка 2 случайных ключей массива:
echo "Ключи: ", implode(', ', $r->pickArrayKeys($fruits, 2)), "\n";

// Выборка ещё 3:
echo "Ключи: ", implode(', ', $r->pickArrayKeys($fruits, 3)), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Ключи: yellow, purple
Ключи: red, green, yellow

Пример #2 Выбор случайных значений

<?php
$r = new \Random\Randomizer();

$fruits = [ 'red' => '??', 'green' => '??', 'yellow' => '??', 'pink' => '??', 'purple' => '??' ];

$keys = $r->pickArrayKeys($fruits, 2);
// Поиск значения для выбранных ключей.
$selection = array_map(
static fn ($key) => $fruits[$key],
$keys
);

echo "Значения: ", implode(', ', $selection), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Значения: ??, ??

Смотрите также

  • array_keys() - Возвращает все или некоторое подмножество ключей массива


Сериализует объект Randomizer

  • « Random\Randomizer::pickArrayKeys
  • Random\Randomizer::shuffleArray »
  • PHP Manual
  • Random\Randomizer
  • Сериализует объект Randomizer

Random\Randomizer::__serialize

(PHP 8 >= 8.2.0)

Random\Randomizer::__serialize — Сериализует объект Randomizer

Описание

public Random\Randomizer::__serialize(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Random\Randomizer::__serialize()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Получает перестановку массива

  • « Random\Randomizer::__serialize
  • Random\Randomizer::shuffleBytes »
  • PHP Manual
  • Random\Randomizer
  • Получает перестановку массива

Random\Randomizer::shuffleArray

(PHP 8 >= 8.2.0)

Random\Randomizer::shuffleArray — Получает перестановку массива

Описание

public Random\Randomizer::shuffleArray(array $array): array

Возвращает равномерно выбранную перестановку входного массива array.

Каждая возможная перестановка входного массива array с равной вероятностью будет возвращена.

Список параметров

array

Массив (array), значения которого перемешиваются.

Входной массив (array) не будет изменён.

Возвращаемые значения

Перестановка значений параметра array.

Ключи входного массива array не сохраняются; возвращаемый массив (array) будет списком (array_is_list()).

Ошибки

  • Любые Throwable, выбрасываемые методом Random\Engine::generate() базового Random\Randomizer::$engine.

Примеры

Пример #1 Пример использования Random\Randomizer::shuffleArray()

<?php
$r = new \Random\Randomizer();

$fruits = [ 'red' => '??', 'green' => '??', 'yellow' => '??', 'pink' => '??', 'purple' => '??' ];

// Перемешивание массива:
echo "Салат: ", implode(', ', $r->shuffleArray($fruits)), "\n";

// Перемешивание массива ещё раз:
echo "Другой салат: ", implode(', ', $r->shuffleArray($fruits)), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Салат: ??, ??, ??, ??, ??
Другой салат: ??, ??, ??, ??, ??


Получает байтовую перестановку строки

  • « Random\Randomizer::shuffleArray
  • Random\Randomizer::__unserialize »
  • PHP Manual
  • Random\Randomizer
  • Получает байтовую перестановку строки

Random\Randomizer::shuffleBytes

(PHP 8 >= 8.2.0)

Random\Randomizer::shuffleBytes — Получает байтовую перестановку строки

Описание

public Random\Randomizer::shuffleBytes(string $bytes): string

Возвращает равномерно выбранную перестановку входных байтов bytes.

Каждая возможная перестановка входного значения bytes с равной вероятностью будет возвращена.

Список параметров

bytes

Строка (string), байты которой перемешиваются.

Входная строка (string) не будет изменена.

Возвращаемые значения

Перестановка байтов параметра bytes.

Ошибки

  • Любые Throwable, выбрасываемые методом Random\Engine::generate() базового Random\Randomizer::$engine.

Примеры

Пример #1 Пример использования Random\Randomizer::shuffleBytes()

<?php
$r = new \Random\Randomizer();

// Перемешивание байтов в строке:
echo "«", $r->shuffleBytes("PHP is great!"), "»\n";

?>

Результатом выполнения данного примера будет что-то подобное:

« ga rHs!PPiet»

Пример #2 Byte-wise shuffling breaks Unicode characters

<?php
$r = new \Random\Randomizer();

$unicode = "??, ??, ??, ??, ??";
$shuffled = $r->shuffleBytes( $unicode );

// Побайтовое перемешивание символов, отличных от ASCII, разрушает их,
// в результате чего на выходе появляются недопустимые последовательности
// (обозначаемые символом замены Unicode) или даже совершенно другие символы.
echo "Исходные данные: ", $unicode, "\n";
echo "Перемешанные: «", $shuffled, "»\n";
echo "Перемешанные байты: ", bin2hex($shuffled), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Исходные данные: ??, ??, ??, ??, ??
Перемешанные: «? ??,???????,? ?? ?, ?,??»
Перемешанные байты: 87208e912c8d9fa5f0f0f09f8d9f2cf09f208c9d20f02c209f2c8d8d


Десериализует параметр data в объект Randomizer

  • « Random\Randomizer::shuffleBytes
  • Random\Engine »
  • PHP Manual
  • Random\Randomizer
  • Десериализует параметр data в объект Randomizer

Random\Randomizer::__unserialize

(PHP 8 >= 8.2.0)

Random\Randomizer::__unserialize — Десериализует параметр data в объект Randomizer

Описание

public Random\Randomizer::__unserialize(array $data): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Random\Randomizer::__unserialize()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Интерфейс Random\Engine

(PHP 8 >= 8.2.0)

Введение

Интерфейс Random\Engine обеспечивает низкоуровневый источник случайной последовательности, возвращая случайные байты, которые потребляются высокоуровневыми API для выполнения своих операций. Интерфейс Random\Engine позволяет менять местами алгоритм, используемый для генерации случайной последовательности, поскольку каждый алгоритм делает различные компромиссы для соответствия конкретным условиям использования. Некоторые алгоритмы очень быстры, но создают случайную последовательность низкого качества, в то время как другие алгоритмы медленнее, но создают более качественную случайную последовательность, вплоть до криптографически безопасной случайной последовательности, которую обеспечивает механизм Random\Engine\Secure.

PHP предоставляет несколько движков Random\Engine из коробки для различных случаев использования. Движок Random\Engine\Secure, основанный на CSPRNG, является рекомендуемым безопасным выбором по умолчанию, если только приложение не требует воспроизводимых последовательностей или очень высокой производительности.

Обзор интерфейсов

interface Random\Engine {
/* Методы */
public generate(): string
}

Содержание

  • Random\Engine::generate — Создаёт случайную последовательность


Создаёт случайную последовательность

  • « Random\Engine
  • Random\CryptoSafeEngine »
  • PHP Manual
  • Random\Engine
  • Создаёт случайную последовательность

Random\Engine::generate

(PHP 8 >= 8.2.0)

Random\Engine::generate — Создаёт случайную последовательность

Описание

public Random\Engine::generate(): string

Возвращает случайную последовательность и передвигает состояние алгоритма на один шаг.

Случайная последовательность представлена двоичной строкой, содержащей случайные байты. Такое представление позволяет однозначно интерпретировать случайные биты, генерируемые алгоритмом, например, для адаптации различных размеров вывода, используемых различными алгоритмами.

Алгоритмы, которые изначально оперируют целыми значениями, должны возвращать целое число в порядке little-endian байтов, например, используя функцию pack() с кодом формата P. Высокоуровневый интерфейс, предоставляемый классом Random\Randomizer, будет интерпретировать возвращаемые случайные байты как целые числа без знака с малым порядком возрастания, если требуется числовое представление.

Настоятельно рекомендуется, чтобы каждый бит возвращаемой строки был выбран равномерно и независимо, поскольку некоторые приложения требуют для корректной работы случайности на уровне битов. Например, линейные конгруэнтные генераторы часто генерируют менее качественную случайную последовательность для младших битов возвращаемого целого значения и поэтому не подходят для приложений, требующих случайной последовательности на уровне битов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Random\Engine::generate()

<?php
/**
* Реализует линейный конгруэнтный генератор с модулем 65536,
* множителем 61 и инкрементом 17, возвращающий 8-битное целое число.
*
* Примечание: Движок предназначен только для демонстрационных целей.
* Линейные конгруэнтные генераторы обычно генерируют случайность низкого
* качества, а данная конкретная реализация имеет
* очень короткий 16-битный период, который не подходит практически
* ни для одного реального случая использования.
*/
final class LinearCongruentialGenerator implements \Random\Engine
{
private int $state;

public function __construct(?int $seed = null)
{
if ($seed === null) {
$seed = random_int(0, 0xffff);
}

$this->state = $seed & 0xffff;
}

public function generate(): string
{
$this->state = (61 * $this->state + 17) & 0xffff;

return pack('C', $this->state >> 8);
}
}

$r = new \Random\Randomizer(
new LinearCongruentialGenerator(seed: 1)
);

echo "Счастливое число: ", $r->getInt(0, 99), "\n";
?>

Результат выполнения данного примера:

Счастливое число: 4


Интерфейс Random\CryptoSafeEngine

(PHP 8 >= 8.2.0)

Введение

Интерфейс, указывающий, что тип Random\Engine возвращает криптографически безопасную случайную последовательность.

Обзор интерфейсов

interface Random\CryptoSafeEngine extends Random\Engine {
/* Наследуемые методы */
public Random\Engine::generate(): string
}


Класс Random\Engine\Secure

(PHP 8 >= 8.2.0)

Введение

Создаёт криптографически безопасную случайную последовательность, используя CSPRNG операционной системы.

Случайная последовательность, создаваемая Random\Engine, подходит для всех приложений, включая создание долгосрочных секретов, таких как ключи шифрования.

Механизм Random\Engine\Secure является рекомендуемым безопасным выбором по умолчанию, если только приложение не требует воспроизводимых последовательностей или очень высокой производительности.

Обзор классов

final class Random\Engine\Secure implements Random\CryptoSafeEngine {
/* Методы */
public generate(): string
}

Содержание

  • Random\Engine\Secure::generate — Создаёт криптографически безопасную случайную последовательность


Создаёт криптографически безопасную случайную последовательность

  • « Random\Engine\Secure
  • Random\Engine\Mt19937 »
  • PHP Manual
  • Random\Engine\Secure
  • Создаёт криптографически безопасную случайную последовательность

Random\Engine\Secure::generate

(PHP 8 >= 8.2.0)

Random\Engine\Secure::generate — Создаёт криптографически безопасную случайную последовательность

Описание

public Random\Engine\Secure::generate(): string

Возвращает криптографически безопасную случайную последовательность.

Источники случайных величин в порядке приоритета:

  • Linux: » getrandom(), /dev/urandom

  • FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom

  • Windows (PHP >= 7.2): » CNG-API

    Windows: » CryptGenRandom

  • macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22, если CCRandomGenerateBytes доступен во время компиляции): CCRandomGenerateBytes()

    macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom

  • NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom

  • Solaris (PHP >= 8.1): » getrandom(), /dev/urandom

  • Любая комбинация операционной системы и версии PHP, не указанная ранее: /dev/urandom
  • Если ни один из источников не доступен или все они не генерируют случайную величину, то будет выброшено исключение Random\RandomException.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую PHP_INT_SIZE криптографически защищённых случайных байтов.

Ошибки

  • Если подходящие источники случайных величин отсутствуют, то выбрасывается исключение Random\RandomException.


Класс Random\Engine\Mt19937

(PHP 8 >= 8.2.0)

Введение

Реализует алгоритм » Mt19937 ("Mersenne Twister").

Обзор классов

final class Random\Engine\Mt19937 implements Random\Engine {
/* Методы */
public __construct(?int $seed = null, int $mode = MT_RAND_MT19937)
public __debugInfo(): array
public generate(): string
public __serialize(): array
public __unserialize(array $data): void
}

Содержание

  • Random\Engine\Mt19937::__construct — Создаёт новый объект движка Mt19937
  • Random\Engine\Mt19937::__debugInfo — Возвращает внутреннее состояние движка
  • Random\Engine\Mt19937::generate — Создаёт 32 бита случайной последовательности
  • Random\Engine\Mt19937::__serialize — Сериализует объект Mt19937
  • Random\Engine\Mt19937::__unserialize — Десериализует параметр data в объект Mt19937


Создаёт новый объект движка Mt19937

  • « Random\Engine\Mt19937
  • Random\Engine\Mt19937::__debugInfo »
  • PHP Manual
  • Random\Engine\Mt19937
  • Создаёт новый объект движка Mt19937

Random\Engine\Mt19937::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__construct — Создаёт новый объект движка Mt19937

Описание

public Random\Engine\Mt19937::__construct(?int $seed = null, int $mode = MT_RAND_MT19937)

Предостережение

Поскольку механизм Mt19937 ("Mersenne Twister") принимает в качестве значения только одно 32-битное целое число, количество возможных случайных последовательностей ограничено всего 232 (то есть 4 294 967 296), несмотря на огромный период Mt19937, равный 219937-1.

Если полагаться на неявное или явное случайное значение, дубликаты появятся гораздо раньше. Дублированные значения ожидаются с 50% вероятностью после менее чем 80 000 случайно сгенерированных значений в соответствии с проблемой дня рождения. Вероятность дублирования значений составляет 10% после случайной генерации примерно 30 000 значений.

Это делает Mt19937 непригодным для применения в тех случаях, когда дублирование последовательностей не должно происходить с более чем ничтожной вероятностью. Если требуется воспроизводимое значение, то движки Random\Engine\Xoshiro256StarStar и Random\Engine\PcgOneseq128XslRr64 поддерживают гораздо большие значения, которые вряд ли столкнутся случайно. Если воспроизводимость не требуется, механизм Random\Engine\Secure обеспечивает криптографически безопасную случайную последовательность.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

seed

Заполняет состояние значениями, сгенерированными линейным конгруэнтным генератором, который был заполнен параметром seed, интерпретируемым как 32-битное целое число без знака.

Если параметр seed опущен или null, будет использовано случайное 32-битное целое число без знака.

mode

Используйте одну из следующих констант, чтобы указать реализацию используемого алгоритма.

  • MT_RAND_MT19937: Корректная реализация Mt19937.
  • MT_RAND_PHP: Некорректная реализация для обратной совместимости с функцией mt_srand() до версии PHP 7.1.0.

Внимание

Данная функциональность объявлена УСТАРЕВШЕЙ, начиная с PHP 8.3.0 и её крайне не рекомендуется использовать.

Примеры

Пример #1 Пример использования Random\Engine\Mt19937::__construct()

<?php
// Использование случайного 32-битного значения.
$e = new \Random\Engine\Mt19937();

$r = new \Random\Randomizer($e);
?>


Возвращает внутреннее состояние движка

  • « Random\Engine\Mt19937::__construct
  • Random\Engine\Mt19937::generate »
  • PHP Manual
  • Random\Engine\Mt19937
  • Возвращает внутреннее состояние движка

Random\Engine\Mt19937::__debugInfo

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__debugInfo — Возвращает внутреннее состояние движка

Описание

public Random\Engine\Mt19937::__debugInfo(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Random\Engine\Mt19937::__debugInfo()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Создаёт 32 бита случайной последовательности

  • « Random\Engine\Mt19937::__debugInfo
  • Random\Engine\Mt19937::__serialize »
  • PHP Manual
  • Random\Engine\Mt19937
  • Создаёт 32 бита случайной последовательности

Random\Engine\Mt19937::generate

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::generate — Создаёт 32 бита случайной последовательности

Описание

public Random\Engine\Mt19937::generate(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, представляющую 32-битное целое число без знака в порядке little-endian.


Сериализует объект Mt19937

  • « Random\Engine\Mt19937::generate
  • Random\Engine\Mt19937::__unserialize »
  • PHP Manual
  • Random\Engine\Mt19937
  • Сериализует объект Mt19937

Random\Engine\Mt19937::__serialize

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__serialize — Сериализует объект Mt19937

Описание

public Random\Engine\Mt19937::__serialize(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Random\Engine\Mt19937::__serialize()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Десериализует параметр data в объект Mt19937

  • « Random\Engine\Mt19937::__serialize
  • Random\Engine\PcgOneseq128XslRr64 »
  • PHP Manual
  • Random\Engine\Mt19937
  • Десериализует параметр data в объект Mt19937

Random\Engine\Mt19937::__unserialize

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__unserialize — Десериализует параметр data в объект Mt19937

Описание

public Random\Engine\Mt19937::__unserialize(array $data): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Random\Engine\Mt19937::__unserialize()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Класс Random\Engine\PcgOneseq128XslRr64

(PHP 8 >= 8.2.0)

Введение

Реализует » перестановочный конгруэнтный генератор (PCG) со 128 битами состояния, преобразованиями XSL и RR и 64 битами на выходе.

Обзор классов

final class Random\Engine\PcgOneseq128XslRr64 implements Random\Engine {
/* Методы */
public __construct(string|int|null $seed = null)
public __debugInfo(): array
public generate(): string
public jump(int $advance): void
public __serialize(): array
public __unserialize(array $data): void
}

Содержание

  • Random\Engine\PcgOneseq128XslRr64::__construct — Создаёт новый движок PCG Oneseq 128 XSL RR 64
  • Random\Engine\PcgOneseq128XslRr64::__debugInfo — Возвращает внутреннее состояние движка
  • Random\Engine\PcgOneseq128XslRr64::generate — Создаёт 64 бита случайной последовательности
  • Random\Engine\PcgOneseq128XslRr64::jump — Эффективное перемещение движка вперёд на несколько шагов
  • Random\Engine\PcgOneseq128XslRr64::__serialize — Сериализует объект PcgOneseq128XslRr64
  • Random\Engine\PcgOneseq128XslRr64::__unserialize — Десериализует параметр data в объект PcgOneseq128XslRr64


Создаёт новый движок PCG Oneseq 128 XSL RR 64

  • « Random\Engine\PcgOneseq128XslRr64
  • Random\Engine\PcgOneseq128XslRr64::__debugInfo »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Создаёт новый движок PCG Oneseq 128 XSL RR 64

Random\Engine\PcgOneseq128XslRr64::__construct

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__construct — Создаёт новый движок PCG Oneseq 128 XSL RR 64

Описание

public Random\Engine\PcgOneseq128XslRr64::__construct(string|int|null $seed = null)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

seed

Способ наполнения внутреннего 128-битного (16-байтного) состояния, состоящего из одного 128-битного целого числа без знака, зависит от типа, используемого в качестве параметра seed.

Тип | Описание
null | Заполняет состояние 16 случайными байтами, сгенерированными с помощью CSPRNG.
int | Заполняет состояние, устанавливая состояние в 0, продвигая движок на один шаг, добавляя значение параметра seed, интерпретируемое как 64-битное целое число без знака и продвигая движок ещё на один шаг.
string | Заполняет состояние, интерпретируя 16-байтовую строку (string) как little-endian 128-битное целое число без знака.

Ошибки

  • Если длина строкового (string) параметра seed не равна 16 байтам, будет выдана ошибка ValueError.

Примеры

Пример #1 Пример использования Random\Engine\PcgOneseq128XslRr64::__construct()

<?php
// Использование случайного 128-битного значения.
$e = new \Random\Engine\PcgOneseq128XslRr64();

$r = new \Random\Randomizer($e);
?>

Пример #2 Выведение значения из строки (string)

<?php
$string = "My string seed";

// Хеширование строки усечённым SHA-256, используя двоичный вывод,
// чтобы превратить $string в 128-битное значение. Использование одной и той же
// строки приведёт к одной и той же случайной последовательности.
$e = new \Random\Engine\PcgOneseq128XslRr64(
substr(hash('sha256', $string, binary: true), 0, 16)
);

echo bin2hex($e->generate()), "\n";
?>

Результат выполнения данного примера:

8333ef59315b16d8


Возвращает внутреннее состояние движка

  • « Random\Engine\PcgOneseq128XslRr64::__construct
  • Random\Engine\PcgOneseq128XslRr64::generate »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Возвращает внутреннее состояние движка

Random\Engine\PcgOneseq128XslRr64::__debugInfo

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__debugInfo — Возвращает внутреннее состояние движка

Описание

public Random\Engine\PcgOneseq128XslRr64::__debugInfo(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Random\Engine\PcgOneseq128XslRr64::__debugInfo()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Создаёт 64 бита случайной последовательности

  • « Random\Engine\PcgOneseq128XslRr64::__debugInfo
  • Random\Engine\PcgOneseq128XslRr64::jump »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Создаёт 64 бита случайной последовательности

Random\Engine\PcgOneseq128XslRr64::generate

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::generate — Создаёт 64 бита случайной последовательности

Описание

public Random\Engine\PcgOneseq128XslRr64::generate(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, представляющую 32-битное целое число без знака в порядке little-endian.


Эффективное перемещение движка вперёд на несколько шагов

  • « Random\Engine\PcgOneseq128XslRr64::generate
  • Random\Engine\PcgOneseq128XslRr64::__serialize »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Эффективное перемещение движка вперёд на несколько шагов

Random\Engine\PcgOneseq128XslRr64::jump

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::jump — Эффективное перемещение движка вперёд на несколько шагов

Описание

public Random\Engine\PcgOneseq128XslRr64::jump(int $advance): void

Перемещает состояние алгоритма вперёд на количество шагов, заданное параметром advance, как если бы функция Random\Engine\PcgOneseq128XslRr64::generate() была вызвана столько раз.

Список параметров

advance

Количество шагов для продвижения вперёд; должно быть 0 или больше.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

  • Если параметр advance меньше 0, будет выброшено исключение ValueError.

Примеры

Пример #1 Пример использования Random\Engine\PcgOneseq128XslRr64::jump()

<?php
$a = new \Random\Engine\PcgOneseq128XslRr64(0);
$b = clone $a;

for ($i = 0; $i < 1_000; $i++) {
$a->generate();
}
$b->jump(1_000);

echo "A: ", bin2hex($a->generate()), "\n";
echo "B: ", bin2hex($b->generate()), "\n";
?>

Результат выполнения данного примера:

A: e6d0d5813913a424
B: e6d0d5813913a424

Пример #2 Методы Randomizer могут вызывать движок более одного раза

<?php
$a = new \Random\Randomizer(new \Random\Engine\PcgOneseq128XslRr64(42659));
$b = new \Random\Randomizer(clone $a->engine);

$a->getInt(1, 1572864); // Выполняет два вызова generate().
$a->getInt(1, 1572864);

$b->engine->jump(2);

// Потому что первый вызов ->getInt() вызвал ->generate() дважды
// движки не совпадают после выполнения ->jump(2).
echo "A: ", bin2hex($a->engine->generate()), "\n";
echo "B: ", bin2hex($b->engine->generate()), "\n";

// Теперь движок B соответствует движку A.
echo "B: ", bin2hex($b->engine->generate()), "\n";
?>

Результат выполнения данного примера:

A: 1e9f3107d56653d0
B: a156c0086dd79d44
B: 1e9f3107d56653d0


Сериализует объект PcgOneseq128XslRr64

  • « Random\Engine\PcgOneseq128XslRr64::jump
  • Random\Engine\PcgOneseq128XslRr64::__unserialize »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Сериализует объект PcgOneseq128XslRr64

Random\Engine\PcgOneseq128XslRr64::__serialize

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__serialize — Сериализует объект PcgOneseq128XslRr64

Описание

public Random\Engine\PcgOneseq128XslRr64::__serialize(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Random\Engine\PcgOneseq128XslRr64::__serialize()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Десериализует параметр data в объект PcgOneseq128XslRr64

  • « Random\Engine\PcgOneseq128XslRr64::__serialize
  • Random\Engine\Xoshiro256StarStar »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Десериализует параметр data в объект PcgOneseq128XslRr64

Random\Engine\PcgOneseq128XslRr64::__unserialize

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__unserialize — Десериализует параметр data в объект PcgOneseq128XslRr64

Описание

public Random\Engine\PcgOneseq128XslRr64::__unserialize(array $data): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Random\Engine\PcgOneseq128XslRr64::__unserialize()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Класс Random\Engine\Xoshiro256StarStar

(PHP 8 >= 8.2.0)

Введение

Реализует алгоритм » xoshiro256**.

Обзор классов

final class Random\Engine\Xoshiro256StarStar implements Random\Engine {
/* Методы */
public __construct(string|int|null $seed = null)
public __debugInfo(): array
public generate(): string
public jump(): void
public jumpLong(): void
public __serialize(): array
public __unserialize(array $data): void
}

Содержание

  • Random\Engine\Xoshiro256StarStar::__construct — Создаёт новый объект движка xoshiro256**
  • Random\Engine\Xoshiro256StarStar::__debugInfo — Возвращает внутреннее состояние движка
  • Random\Engine\Xoshiro256StarStar::generate — Генерирует 64 бита случайной последовательности
  • Random\Engine\Xoshiro256StarStar::jump — Эффективно перемещает движок вперёд на 2^128 шагов
  • Random\Engine\Xoshiro256StarStar::jumpLong — Эффективно перемещает движок вперёд на 2^192 шага
  • Random\Engine\Xoshiro256StarStar::__serialize — Сериализует объект Xoshiro256StarStar
  • Random\Engine\Xoshiro256StarStar::__unserialize — Десериализует параметр data в объект Xoshiro256StarStar


Создаёт новый объект движка xoshiro256**

  • « Random\Engine\Xoshiro256StarStar
  • Random\Engine\Xoshiro256StarStar::__debugInfo »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Создаёт новый объект движка xoshiro256**

Random\Engine\Xoshiro256StarStar::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__construct — Создаёт новый объект движка xoshiro256**

Описание

public Random\Engine\Xoshiro256StarStar::__construct(string|int|null $seed = null)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

seed

Способ заполнения внутреннего 256-битного (32 байта) состояния, состоящего из четырёх 64-битных целых чисел без знака, зависит от типа, используемого в качестве параметра seed.

Type | Описание
null | Заполняет состояние 32 случайными байтами, сгенерированными с помощью CSPRNG.
int | Заполняет состояние четырьмя последовательными значениями, сгенерированными с помощью алгоритма SplitMix64, который был заполнен параметром seed, интерпретированным как 64-битное целое число без знака.
string | Заполняет состояние, интерпретируя 32-байтовую строку (string) как четыре 64-битных целых числа без знака.

Ошибки

  • Если длина строки (string) параметра seed не равна 32 байтам, будет выброшена ошибка ValueError.
  • Если строка (string) параметра seed состоит из 32 нулевых байтов ("\x00"), будет выброшена ошибка ValueError.

Примеры

Пример #1 Пример использования Random\Engine\Xoshiro256StarStar::__construct()

<?php
// Использование случайного 256-битного значения.
$e = new \Random\Engine\Xoshiro256StarStar();

$r = new \Random\Randomizer($e);
?>

Пример #2 Выведение значения из строки (string)

<?php
$string = "My string seed";

// Хеширование строки с помощью SHA-256, используя двоичный вывод, чтобы превратить
// $string в 256-битное значение. Использование одной и той же строки приведёт
// к одной и той же последовательности случайностей.
$e = new \Random\Engine\Xoshiro256StarStar(
hash('sha256', $string, binary: true)
);

echo bin2hex($e->generate()), "\n";
?>

Результат выполнения данного примера:

6e013453678388c2


Возвращает внутреннее состояние движка

  • « Random\Engine\Xoshiro256StarStar::__construct
  • Random\Engine\Xoshiro256StarStar::generate »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Возвращает внутреннее состояние движка

Random\Engine\Xoshiro256StarStar::__debugInfo

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__debugInfo — Возвращает внутреннее состояние движка

Описание

public Random\Engine\Xoshiro256StarStar::__debugInfo(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Random\Engine\Xoshiro256StarStar::__debugInfo()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Генерирует 64 бита случайной последовательности

  • « Random\Engine\Xoshiro256StarStar::__debugInfo
  • Random\Engine\Xoshiro256StarStar::jump »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Генерирует 64 бита случайной последовательности

Random\Engine\Xoshiro256StarStar::generate

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::generate — Генерирует 64 бита случайной последовательности

Описание

public Random\Engine\Xoshiro256StarStar::generate(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, представляющую беззнаковое 64-битное целое число в порядке little-endian.


Эффективно перемещает движок вперёд на 2^128 шагов

  • « Random\Engine\Xoshiro256StarStar::generate
  • Random\Engine\Xoshiro256StarStar::jumpLong »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Эффективно перемещает движок вперёд на 2^128 шагов

Random\Engine\Xoshiro256StarStar::jump

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::jump — Эффективно перемещает движок вперёд на 2^128 шагов

Описание

public Random\Engine\Xoshiro256StarStar::jump(): void

Перемещает состояние алгоритма вперёд на 2128 шага, как если бы метод Random\Engine\Xoshiro256StarStar::generate() был вызван 2128 раза.

Цель метода - облегчить создание нового движка Random\Engine\Xoshiro256StarStar из существующего заполненного движка Random\Engine\Xoshiro256StarStar. Заданный движок действует как проект, который можно клонировать и повторно использовать для создания 2128 непересекающихся последовательностей с 2128 значениями каждая.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Random\Engine\Xoshiro256StarStar::jump()

<?php
use Random\Engine\Xoshiro256StarStar;
use Random\Randomizer;

$blueprintRng = new Xoshiro256StarStar(0);

$fibers = [];
for ($i = 0; $i < 8; $i++) {
$fiberRng = clone $blueprintRng;
$blueprintRng->jump();

$fiber = new Fiber(static function () use ($fiberRng, $i): void {
$randomizer = new Randomizer($fiberRng);

while (true) {
Fiber::suspend();
echo "{$i}: ", $randomizer->getInt(0, 100), "\n";
}
});
$fiber->start();

$fibers[] = $fiber;
}

// Даже если файберы выполняются в случайном порядке, они будут выводить одно и то же значение каждый раз,
// потому что у каждого из них свой собственный уникальный экземпляр RNG.
$randomizer = new Randomizer();

$fibers = $randomizer->shuffleArray($fibers);
foreach ($fibers as $fiber) {
$fiber->resume();
}

$fibers = $randomizer->shuffleArray($fibers);
foreach ($fibers as $fiber) {
$fiber->resume();
}
?>

Результатом выполнения данного примера будет что-то подобное:

4: 89
3: 10
2: 63
1: 75
6: 41
5: 56
0: 16
7: 60
7: 34
6: 58
1: 74
4: 63
3: 3
5: 42
2: 45
0: 86

Смотрите также

  • Random\Engine\Xoshiro256StarStar::jumpLong() - Эффективно перемещает движок вперёд на 2^192 шага


Эффективно перемещает движок вперёд на 2^192 шага

  • « Random\Engine\Xoshiro256StarStar::jump
  • Random\Engine\Xoshiro256StarStar::__serialize »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Эффективно перемещает движок вперёд на 2^192 шага

Random\Engine\Xoshiro256StarStar::jumpLong

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::jumpLong — Эффективно перемещает движок вперёд на 2^192 шага

Описание

public Random\Engine\Xoshiro256StarStar::jumpLong(): void

Перемещает состояние алгоритма вперёд на 2192 шага, как если бы метод Random\Engine\Xoshiro256StarStar::generate() был вызван 2192 раза.

Цель метода - облегчить создание нового движка Random\Engine\Xoshiro256StarStar из существующего заполненного движка Random\Engine\Xoshiro256StarStar. Заданный движок действует как проект, который можно клонировать и повторно использовать для создания 264 непересекающихся последовательностей с 2192 значениями каждая.

Метод может быть объединён с Random\Engine\Xoshiro256StarStar::jump() для дальнейшего разделения каждой из 264 последовательностей, сгенерированных данным методом, на 264 последовательности по 2128 значения каждая.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Random\Engine\Xoshiro256StarStar::jumpLong()

<?php
$blueprintRng = new \Random\Engine\Xoshiro256StarStar(0);

// У каждого родительского движка свой собственный блок из 2**192 значений.
$parent1 = clone $blueprintRng;
$blueprintRng->jumpLong();

$parent2 = clone $blueprintRng;
$blueprintRng->jumpLong();

// У каждого из дочерних движков свой собственный блок из 2**128 значений,
взятый из блока 2**192 значений их родительского движка.
$child1a = clone $parent1;
$parent1->jump();
$child1b = clone $parent1;
$parent1->jump();

$child2a = clone $parent2;
$parent2->jump();
$child2b = clone $parent2;
$parent2->jump();

echo "Дочерний 1A: ", bin2hex($child1a->generate()), "\n";
echo "Дочерний 1B: ", bin2hex($child1b->generate()), "\n";
echo "Дочерний 2A: ", bin2hex($child2a->generate()), "\n";
echo "Дочерний 2B: ", bin2hex($child2b->generate()), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Дочерний 1A: b4f275cb365fec99
Дочерний 1B: 2cd646c8ed156237
Дочерний 2A: eb3729a722a504e7
Дочерний 2B: d4208dc85bdd6dc3

Смотрите также

  • Random\Engine\Xoshiro256StarStar::jump() - Эффективно перемещает движок вперёд на 2^128 шагов


Сериализует объект Xoshiro256StarStar

  • « Random\Engine\Xoshiro256StarStar::jumpLong
  • Random\Engine\Xoshiro256StarStar::__unserialize »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Сериализует объект Xoshiro256StarStar

Random\Engine\Xoshiro256StarStar::__serialize

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__serialize — Сериализует объект Xoshiro256StarStar

Описание

public Random\Engine\Xoshiro256StarStar::__serialize(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Random\Engine\Xoshiro256StarStar::__serialize()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Десериализует параметр data в объект Xoshiro256StarStar

  • « Random\Engine\Xoshiro256StarStar::__serialize
  • Random\RandomError »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Десериализует параметр data в объект Xoshiro256StarStar

Random\Engine\Xoshiro256StarStar::__unserialize

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__unserialize — Десериализует параметр data в объект Xoshiro256StarStar

Описание

public Random\Engine\Xoshiro256StarStar::__unserialize(array $data): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Random\Engine\Xoshiro256StarStar::__unserialize()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Класс Random\RandomError

(PHP 8 >= 8.2.0)

Введение

Базовый класс для ошибок Error, возникающих при генерации или использовании случайной последовательности.

Обзор классов

class Random\RandomError extends Error {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


Класс Random\BrokenRandomEngineError

(PHP 8 >= 8.2.0)

Введение

Указывает, что используемый объект Random\Engine сломан, например, потому что он сильно смещён.

Обзор классов

class Random\BrokenRandomEngineError extends Random\RandomError {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


Класс Random\RandomException

(PHP 8 >= 8.2.0)

Введение

Базовый класс для исключений Exception, возникающих при генерации или использовании случайной последовательности.

Обзор классов

class Random\RandomException extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Seaslog

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
  • Функции Seaslog
    • seaslog_get_author — Получает автора SeasLog
    • seaslog_get_version — Получает версию SeasLog
  • SeasLog — Класс SeasLog
    • SeasLog::alert — Записывает информацию уровня "alert" в журнал
    • SeasLog::analyzerCount — Получает количество журналов по уровню, log_path и key_word
    • SeasLog::analyzerDetail — Получает детализацию журнала по уровню, log_path, key_word, start, limit, order
    • SeasLog::closeLoggerStream — Вручную освобождает поток от регистратора
    • SeasLog::__construct — Описание
    • SeasLog::critical — Записывает информацию уровня "critical" в журнал
    • SeasLog::debug — Записывает информацию уровня "debug" в журнал
    • SeasLog::__destruct — Описание
    • SeasLog::emergency — Записывает информацию уровня "emergency" в журнал
    • SeasLog::error — Записывает информацию уровня "error" в журнал
    • SeasLog::flushBuffer — Очищает буфер логов, делает дамп в файл приложения или отправляет на удалённый API с помощью tcp/udp
    • SeasLog::getBasePath — Получает базовый путь SeasLog
    • SeasLog::getBuffer — Получает буфер логов в памяти в виде массива
    • SeasLog::getBufferEnabled — Определяет, включён ли буфер
    • SeasLog::getDatetimeFormat — Получает стиль формата даты и времени SeasLog
    • SeasLog::getLastLogger — Получает последний путь регистратора SeasLog
    • SeasLog::getRequestID — Получает дифференцированные запросы SeasLog request_id
    • SeasLog::getRequestVariable — Получает переменную запроса SeasLog
    • SeasLog::info — Записывает информацию уровня "info" в журнал
    • SeasLog::log — Общая функция записи в журнал
    • SeasLog::notice — Записывает информацию уровня "notice" в журнал
    • SeasLog::setBasePath — Устанавливает базовый путь SeasLog
    • SeasLog::setDatetimeFormat — Устанавливает стиль формата даты и времени SeasLog
    • SeasLog::setLogger — Устанавливает имя регистратора SeasLog
    • SeasLog::setRequestID — Устанавливает дифференцированные запросы SeasLog request_id
    • SeasLog::setRequestVariable — Устанавливает переменную запроса SeasLog вручную
    • SeasLog::warning — Записывает информацию уровня "warning" в журнал


Введение

Seaslog - это эффективный, быстрый и стабильный модуль ведения журнала для PHP.

Журнал, который обычно представляет собой запись работы системы, программного обеспечения и приложения. Анализ журнала может помочь пользователям понять работу системы, программного обеспечения и ситуацию с приложениями. Если журнал вашего приложения достаточно обширен, модуль также может анализировать поведение, тип, региональное распределение и другую дополнительную информацию при предыдущем использовании. Журнал приложений также указывает на несколько уровней одновременно, вы можете легко получить анализ состояния работоспособности приложения, своевременно найти проблемы и быстро определить местоположение, а также решить проблему, исправить ошибку.

Функция syslog error_log, встроенная в PHP, является мощной и высокопроизводительной, но из-за различных дефектов (у error_log нет уровня ошибок, нет фиксированного формата, syslog независимо от модуля и смешивается с системным журналом), что снижает гибкость и не может соответствовать требованиям приложения.

Хорошей новостью является то, что существует ряд сторонних библиотек классов журналов, созданных для устранения дефектов, таких как log4php, plog, monolog (конечно, для ведения журнала есть много приложений).

Итак, существуют ли библиотеки для ведения журнала, отвечающих следующим требованиям:

  • Модули, классификация
  • Простая конфигурация (желательно без конфигурации)
  • Чёткий формат журнала и простота понимания
  • Простое приложение и хорошая производительность
Seaslog отвечает всем этим требованиям.

Что предусмотрено в настоящее время:

  • В PHP-проекте быстро записывает спецификацию журнала
  • Настраивается каталог и модуль журнала по умолчанию
  • Настраивается каталог журнала и текущая конфигурация записи
  • Предварительный анализ системы раннего предупреждения
  • Эффективный буфер журнала и удобная отладка буфера
  • Следует спецификации интерфейса журнала PSR-3
  • Автоматически записывает информацию об ошибках
  • Автоматически записывает ненормальную информацию
  • Поддерживает подключения к TCP-порту, отправка с RFC5424
  • Поддерживает подключения порта UDP, отправка с RFC5424
  • Поддерживает дифференцированные запросы с помощью RequestId
  • Поддерживает настройку шаблонов журнала

Подробнее в » документации SeasLog на 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 int

Переключает хранилище данных журнала записей. 1 - Файл, 2 - TCP, 3 - UDP (по умолчанию 1)

SeasLog отправит журнал на сервер tcp://remote_host:remote_port или udp://remote_host:remote_port, если seaslog.appender настроен на 2 (TCP) или 3 (UDP).

Когда SeasLog отправляет журнал по TCP/UDP, стиль соответствует RFC5424. {logInfo}, на который влияет seaslog.default_template.

Стиль журнала отформатирован следующим образом:
<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 int

Записывает количество повторных попыток журнала. По умолчанию 0 (не записывает)

seaslog.buffer_disabled_in_cli int

Отключает буфер в CLI. 1 - Да, 0 - Нет (по умолчанию)

Включите опцию buffer_disabled_in_cli. buffer_disabled_in_cli выключен по умолчанию. Если включить buffer_disabled_in_cli и запустить его в CLI, параметр seaslog.use_buffer будет сброшен, Seaslog НЕМЕДЛЕННО сделает запись в хранилище данных.

seaslog.buffer_size int

Задайте для параметра buffer_size значение 100. Значение buffer_size по умолчанию 0, это означает, что буфер не используется. Если buffer_size > 0, SeasLog перезапишет данные в хранилище, если размер предварительно записанного в память журнала >= buffer_size, а затем обновите опрос памяти.

seaslog.default_basepath string

Базовый путь журнала по умолчанию. По умолчанию "/var/log/www".

seaslog.default_datetime_format string

Стиль DateTime. По умолчанию "Y-m-d H:i:s".

seaslog.default_logger string

Путь к регистратору по умолчанию. По умолчанию "default".

seaslog.disting_by_hour int

Переключает режим регистратора по часам. 1 - Да, 0 - Нет (по умолчанию)

Замечание:

seaslog.disting_by_hour = 1 переключает режим использования Logger DisTing по часам. Это означает, что SeasLog будет создавать файл каждый час.

seaslog.disting_folder int

Переключает режим использование регистратора по папкам. 1 - Да (по умолчанию), 0 - Нет.

Замечание:

seaslog.disting_folder = 1 переключает режим использования Logger DisTing по папкам, это означает, что SeasLog будет создавать файлы в папках и при этой настройке закрытия SeasLog создаст файл с подчёркиванием, используя тип регистратора и время, например, default_20180211.log.

seaslog.disting_type int

Переключает режим использования регистратора по типу. 1 - Да, 0 - Нет (по умолчанию)

Замечание:

seaslog.disting_type = 1 переключает режим использования Logger DisTing по типу, это означает, что SeasLog создаст файл info\warn\error или другого типа.

seaslog.ignore_warning int

Переключает режим игнорирования предупреждений SeasLog. 1 - Да (по умолчанию), 0 - Нет.

Замечание:

seaslog.ignore_warning = 1 Открывает предупреждение об игнорировании самого SeasLog. Когда права доступа к каталогу или порты сервера приёма заблокированы, они игнорируются; при закрытии выдаётся предупреждение.

seaslog.level int

Уровень записи регистратора. По умолчанию 8 (всё). 0 - EMERGENCY, 1 - ALERT, 2 - CRITICAL, 3 - ERROR, 4 - WARNING, 5 - NOTICE, 6 - INFO, 7 - DEBUG, 8-ALL

Замечание:

Примечание: элемент конфигурации был изменён, начиная с версии 1.7.0. До версии 1.7.0, чем меньше значение, тем больше записей ведётся в соответствии с уровнем: 0 - всё, 1 - debug, 2 - info, 3-notice, 4-warning, 5-error, 6-critical, 7-alert, 8-emergency. До версии 1.7.0 значение по умолчанию - 0 (всё).

seaslog.recall_depth int

Глубина вызова функции журнала. Будет затронута переменная LineNo в %F. По умолчанию 0

seaslog.remote_host string

Если вы используете запись TCP или UDP, настройте удалённый IP. По умолчанию "127.0.0.1".

seaslog.remote_port int

Если вы используете запись TCP или UDP, настройте удалённый порт. По умолчанию 514.

seaslog.remote_timeout int

Если вы используете запись TCP или UDP, настройте удалённое время ожидания. По умолчанию 1 секунда

seaslog.throw_exception int

Переключает режим выбрасывания исключения SeasLog. 1 - Да (по умолчанию), 0 - Нет.

Замечание:

seaslog.throw_exception = 1 Открывает исключение, которое выбрасывает сам SeasLog. Если администрация каталога или порт принимающего сервера заблокированы, выбрасывается исключение; не выбрасывается исключение при закрытии.

seaslog.trace_error int

Автоматическая запись "error" регистратором по умолчанию. 1 - Да (по умолчанию), 0 - Нет.

seaslog.trace_exception int

Автоматическая запись "exception" регистратором по умолчанию. 1 - Да, 0 - Нет (по умолчанию).

seaslog.trace_notice int

Автоматическая запись "notice" регистратором по умолчанию. 1 - Да, 0 - Нет (по умолчанию).

seaslog.trace_warning int

Автоматическая запись "warning" регистратором по умолчанию. 1 - Да, 0 - Нет (по умолчанию).

seaslog.trim_wrap int

Обрезает \n и \r в сообщении журнала. 1 - Да, 0 - Нет (по умолчанию)

seaslog.use_buffer int

Переключает режим использования буфера журнала с памятью. 1 - Да, 0 - Нет (по умолчанию)

Замечание:

seaslog.use_buffer = 1 Включите configure use_buffer. По умолчанию use_buffer выключен. Если включить use_buffer, SeasLog будет предварительно записывать журнал в память и он будет перезаписан в хранилище данных путём завершения запроса или выхода из процесса PHP (PHP RSHUTDOWN или PHP MSHUTDOWN).

seaslog.default_template string

Шаблон журнала по умолчанию. По умолчанию "%T | %L | %P | %Q | %t | %M".

Замечание:

Предоставляются следующие переменные по умолчанию, которые можно использовать непосредственно в шаблоне журнала и заменять соответствующим значением при создании журнала.

Шаблон журнала по умолчанию: seaslog.default_template = "%T | %L | %P | %Q | %t | %M", это означает, что стиль журнала по умолчанию: {dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}

Если вы используете собственный шаблон журнала, например: seaslog.default_template = "[%T]:%L %P %Q %t %M", это будет означать, что стиль журнала был настроен как: [{dateTime}]:{level} {pid} {uniqid} {timeStamp} {logInfo}

Таблица переменных по умолчанию Seaslog
Variable Name | Описание
%L | Уровень.
%M | Сообщение.
%T | DateTime. Такое как 2017-08-16 19:15:02, затронутое seaslog.default_datetime_format.
%t | Timestamp. Такое как 1502882102.862, с точностью до миллисекунд.
%Q | RequestId. Чтобы различать один запрос, например, не вызывать функцию SeasLog::setRequestId($string), при инициализации запроса используется уникальное значение, сгенерированное встроенной функцией static char *get_uniqid().
%H | HostName.
%P | ProcessId.
%D | Domain:Port. Такое как www.cloudwise.com:80; Если CLI, то cli.
%R | URI запроса. Такой как /app/user/signin; Если CLI, то, например CliIndex.php.
%m | Метод запроса. Такой как Get; Если CLI, то, используется команда, например, /bin/bash.
%I | IP-адрес клиента; Если CLI, то local. Приоритет значений: HTTP_X_REAL_IP > HTTP_X_FORWARDED_FOR > REMOTE_ADDR
%F | FileName:LineNo. Такое как UserService.php:118.
%U | MemoryUsage в байтах. Вызов zend_memory_usage.
%u | PeakMemoryUsage в байтах. Вызов zend_memory_peak_usage.
%C | TODO Class::Action. Такое как UserService::getUserInfo


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

SEASLOG_VERSION (string)
SEASLOG_AUTHOR (string)
SEASLOG_ALL (string)
"ALL"
SEASLOG_DEBUG (string)
"DEBUG" - Подробная информация об отладке. Подробные информационные события.
SEASLOG_INFO (string)
"INFO" - Информационные события. Подчёркивает запущенный процесс приложения.
SEASLOG_NOTICE (string)
"NOTICE" - Нормальные, но важные события. Информация, которая важнее уровня INFO во время выполнения.
SEASLOG_WARNING (string)
"WARNING" - Исключительные случаи, которые не являются ошибками. Потенциально ошибочная информация, которая требует внимания и требует исправления.
SEASLOG_ERROR (string)
"ERROR" - Ошибки во время выполнения, которые не требуют немедленных действий, но обычно должны быть исправлены.
SEASLOG_CRITICAL (string)
"CRITICAL" - Критические условия. Требуется немедленное исправление, программный компонент недоступен.
SEASLOG_ALERT (string)
"ALERT" - Действия должны быть предприняты немедленно. Немедленное внимание должно быть уделено соответствующему персоналу для аварийного ремонта.
SEASLOG_EMERGENCY (string)
"EMERGENCY" - Система непригодна для использования.
SEASLOG_DETAIL_ORDER_ASC (int)
1
SEASLOG_DETAIL_ORDER_DESC (int)
2
SEASLOG_APPENDER_FILE (int)
1
SEASLOG_APPENDER_TCP (int)
2
SEASLOG_APPENDER_UDP (int)
3
SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL (int)
1
SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN (int)
2
SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT (int)
1
SEASLOG_REQUEST_VARIABLE_REQUEST_URI (int)
2
SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD (int)
3
SEASLOG_REQUEST_VARIABLE_CLIENT_IP (int)
4


Примеры

Пример #1 Получает и устанавливает базовый путь

<?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 Получает и устанавливает логирование

<?php
$lastLogger1 = SeasLog::getLastLogger();

SeasLog::setLogger('testModule/app1');
$lastLogger2 = SeasLog::getLastLogger();

var_dump($lastLogger1,$lastLogger2);

?>

Результатом выполнения данного примера будет что-то подобное:

string(7) "default"
string(15) "testModule/app1"

Пример #3 Журнал быстрой записи

<?php
SeasLog::log(SEASLOG_ERROR,'тестовая ошибка, сделанная ::log');
SeasLog::debug('отладка {userName}',array('{userName}' => 'neeke'));
SeasLog::info('запись информационного сообщения в журнал');
SeasLog::notice('запись предупреждения в журнал');
SeasLog::warning('сайт {website} не работает, пожалуйста, выполните {action} как можно скорее!',array('{website}' => 'github.com','{action}' => 'rboot'));
SeasLog::error('запись ошибки в журнал');
SeasLog::critical('произошло что-то критичное');
SeasLog::alert('да, это сообщение {messageName}',array('{messageName}' => 'alertMSG'));
SeasLog::emergency('Только что полностью выгорел соседний дом! {note}',array('{note}' => 'Это шутка'));
?>

Шаблон по умолчанию: seaslog.default_template = "%T | %L | %P | %Q | %t | %M". Это означает, что по умолчанию стиль записи журнала: `{dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}`.

Результатом выполнения данного примера будет что-то подобное:

seaslog.appender = 1

2014-07-27 08:53:52 | ERROR | 23625 | 599159975a9ff | 1406422432.786 | тестовая ошибка, сделанная log
2014-07-27 08:53:52 | DEBUG | 23625 | 599159975a9ff | 1406422432.786 | отладка neeke
2014-07-27 08:53:52 | INFO | 23625 | 599159975a9ff | 1406422432.787 | запись информационного сообщения в журнал
2014-07-27 08:53:52 | NOTICE | 23625 | 599159975a9ff | 1406422432.787 | запись предупреждения в журнал
2014-07-27 08:53:52 | WARNING | 23625 | 599159975a9ff | 1406422432.787 | сайт github.com не работает, пожалуйста, выполните rboot как можно скорее!
2014-07-27 08:53:52 | ERROR | 23625 | 599159975a9ff | 1406422432.787 | запись ошибки в журнал
2014-07-27 08:53:52 | CRITICAL | 23625 | 599159975a9ff | 1406422432.787 | произошло что-то критичное
2014-07-27 08:53:52 | EMERGENCY | 23625 | 599159975a9ff | 1406422432.787 | Только что полностью выгорел соседний дом! Это шутка

Результатом выполнения данного примера будет что-то подобное:

seaslog.appender = 2 или 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 | отладка neeke
<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 | запись информационного сообщения в журнал
<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 | запись предупреждения в журнал

Пример #4 Быстрый подсчёт некоторого типа значения подсчёта журнала

SeasLog получает значение счётчика `grep -wc`, использует системный канал и возвращает в PHP (массив или целое число).

<?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 Получает некоторый тип списка журналов

SeasLog получает значение счётчика `grep -w`, использует системный канал и возвращает массив в 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 — Получает автора SeasLog
  • seaslog_get_version — Получает версию SeasLog


Получает автора SeasLog

  • « Функции Seaslog
  • seaslog_get_version »
  • PHP Manual
  • Функции Seaslog
  • Получает автора SeasLog

seaslog_get_author

(PECL seaslog >=1.0.0)

seaslog_get_author — Получает автора SeasLog

Описание

seaslog_get_author(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает автора SeasLog в виде строки.

Примеры

Пример #1 Пример использования seaslog_get_author()

<?php

var_dump(seaslog_get_author());

?>

Результатом выполнения данного примера будет что-то подобное:

string(29) "Chitao.Gao  [ neeke@php.net ]"


Получает версию SeasLog

  • « seaslog_get_author
  • SeasLog »
  • PHP Manual
  • Функции Seaslog
  • Получает версию SeasLog

seaslog_get_version

(PECL seaslog >=1.0.0)

seaslog_get_version — Получает версию SeasLog

Описание

seaslog_get_version(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает версию SeasLog (SEASLOG_VERSION) в виде строки.

Примеры

Пример #1 Пример использования seaslog_get_version()

<?php

var_dump(seaslog_get_version());

?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "1.8.4"


Класс SeasLog

(PECL seaslog >=1.0.0)

Введение

Обзор классов

class 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()
public static emergency(string $message, array $content = ?, string $logger = ?): bool
public static error(string $message, array $content = ?, string $logger = ?): bool
public static flushBuffer(): bool
public static Seaslog::getBasePath(): string
public static getBuffer(): array
public static getBufferEnabled(): bool
public static getDatetimeFormat(): string
public static getLastLogger(): string
public static getRequestID(): 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 — Записывает информацию уровня "alert" в журнал
  • SeasLog::analyzerCount — Получает количество журналов по уровню, log_path и key_word
  • SeasLog::analyzerDetail — Получает детализацию журнала по уровню, log_path, key_word, start, limit, order
  • SeasLog::closeLoggerStream — Вручную освобождает поток от регистратора
  • SeasLog::__construct — Описание
  • SeasLog::critical — Записывает информацию уровня "critical" в журнал
  • SeasLog::debug — Записывает информацию уровня "debug" в журнал
  • SeasLog::__destruct — Описание
  • SeasLog::emergency — Записывает информацию уровня "emergency" в журнал
  • SeasLog::error — Записывает информацию уровня "error" в журнал
  • SeasLog::flushBuffer — Очищает буфер логов, делает дамп в файл приложения или отправляет на удалённый API с помощью tcp/udp
  • SeasLog::getBasePath — Получает базовый путь SeasLog
  • SeasLog::getBuffer — Получает буфер логов в памяти в виде массива
  • SeasLog::getBufferEnabled — Определяет, включён ли буфер
  • SeasLog::getDatetimeFormat — Получает стиль формата даты и времени SeasLog
  • SeasLog::getLastLogger — Получает последний путь регистратора SeasLog
  • SeasLog::getRequestID — Получает дифференцированные запросы SeasLog request_id
  • SeasLog::getRequestVariable — Получает переменную запроса SeasLog
  • SeasLog::info — Записывает информацию уровня "info" в журнал
  • SeasLog::log — Общая функция записи в журнал
  • SeasLog::notice — Записывает информацию уровня "notice" в журнал
  • SeasLog::setBasePath — Устанавливает базовый путь SeasLog
  • SeasLog::setDatetimeFormat — Устанавливает стиль формата даты и времени SeasLog
  • SeasLog::setLogger — Устанавливает имя регистратора SeasLog
  • SeasLog::setRequestID — Устанавливает дифференцированные запросы SeasLog request_id
  • SeasLog::setRequestVariable — Устанавливает переменную запроса SeasLog вручную
  • SeasLog::warning — Записывает информацию уровня "warning" в журнал


Записывает информацию уровня "alert" в журнал

  • « SeasLog
  • SeasLog::analyzerCount »
  • PHP Manual
  • SeasLog
  • Записывает информацию уровня "alert" в журнал

SeasLog::alert

(PECL seaslog >=1.0.0)

SeasLog::alert — Записывает информацию уровня "alert" в журнал

Описание

public static SeasLog::alert(string $message, array $content = ?, string $logger = ?): bool

Записывает информацию уровня "alert" в журнал.

Замечание:

"ALERT" - Действия должны быть предприняты немедленно. Немедленное внимание следует уделять соответствующему персоналу для аварийного ремонта.

Список параметров

message

Сообщение журнала.

content

Сообщение содержит заполнители, которые разработчики заменяют значениями из массива содержимого. Если `message` - это `информация журнала от {NAME}`, а `content` - `array('NAME' => 'Никиты')`, информация журнала будет `информация журнала от Никиты`.

logger

`logger`, заключённый в третий параметр, будет использоваться прямо сейчас, как временный регистратор, если функция SeasLog::setLogger() вызывается в предварительном содержимом. Если `logger` равен NULL или "" (пустая строка), SeasLog будет использовать последний регистратор, установленный методом SeasLog::setLogger().

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения записи журнала, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::alert()

<?php

var_dump(SeasLog::alert('log message'));

//с content
var_dump(SeasLog::alert('log message from {NAME}',array('NAME' => 'neeke')));

//с временным 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() - Записывает информацию уровня "debug" в журнал
  • SeasLog::info() - Записывает информацию уровня "info" в журнал
  • SeasLog::notice() - Записывает информацию уровня "notice" в журнал
  • SeasLog::warning() - Записывает информацию уровня "warning" в журнал
  • SeasLog::error() - Записывает информацию уровня "error" в журнал
  • SeasLog::critical() - Записывает информацию уровня "critical" в журнал
  • SeasLog::emergency() - Записывает информацию уровня "emergency" в журнал
  • SeasLog::log() - Общая функция записи в журнал


Получает количество журналов по уровню, log_path и key_word

  • « SeasLog::alert
  • SeasLog::analyzerDetail »
  • PHP Manual
  • SeasLog
  • Получает количество журналов по уровню, log_path и key_word

SeasLog::analyzerCount

(PECL seaslog >=1.1.6)

SeasLog::analyzerCount — Получает количество журналов по уровню, log_path и key_word

Описание

public static SeasLog::analyzerCount(string $level, string $log_path = ?, string $key_word = ?): mixed

`SeasLog` получает значение счётчика `grep -ai '{level}' | grep -aic '{key_word}'`, используя системный канал и возвращает в PHP (массив или целое число).

Список параметров

level

Строка. Уровень журнала.

log_path

Строка. Путь к журналу.

key_word

Строка. Ключевое слово для поиска в журнале.

Возвращаемые значения

Если `level` равен SEASLOG_ALL или не задан, возвращаются все уровни как массив. Если `level` равен SEASLOG_INFO или другой уровень, возвращается количество как целое число.

Примеры

Пример #1 Пример использования SeasLog::analyzerCount()

<?php

$countResult1 = SeasLog::analyzerCount();

//с `level`
$countResult2 = SeasLog::analyzerCount(SEASLOG_DEBUG);

//с `level` и `log_path`
$countResult3 = SeasLog::analyzerCount(SEASLOG_ERROR,date('Ymd',time()));

//с `level` и `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() - Получает детализацию журнала по уровню, log_path, key_word, start, limit, order


Получает детализацию журнала по уровню, log_path, key_word, start, limit, order

  • « SeasLog::analyzerCount
  • SeasLog::closeLoggerStream »
  • PHP Manual
  • SeasLog
  • Получает детализацию журнала по уровню, log_path, key_word, start, limit, order

SeasLog::analyzerDetail

(PECL seaslog >=1.1.6)

SeasLog::analyzerDetail — Получает детализацию журнала по уровню, 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` получает результат выполнения команды `grep -ai '{level}' | grep -ai '{key_word}' | sed -n '{start},{limit}'p`, использует системный канал и возвращает массив в PHP.

Список параметров

level

Строка. Уровень информации журнала.

log_path

Строка. Путь к информации журнала.

key_word

Строка. Ключевое слово для поиска информации журнала.

start

Целое число. По умолчанию `1`.

limit

Целое число. По умолчанию `20`.

order

Целое число. По умолчанию SEASLOG_DETAIL_ORDER_ASC. Смотрите также:

  • SEASLOG_DETAIL_ORDER_ASC
  • SEASLOG_DETAIL_ORDER_DESC

Возвращаемые значения

Возвращает результаты в виде массива.

Замечание:

Если start, limit не равны NULL, в Windows SeasLog выбросит исключение с сообщением: "Param start and limit don't support Windows" (Параметры start и limit не поддерживаются в Windows).

Примеры

Пример #1 Пример использования SeasLog::analyzerDetail()

<?php

$result1 = SeasLog::analyzerDetail(SEASLOG_ERROR);

//с `logger` и `key_word`
$result2 = SeasLog::analyzerDetail(SEASLOG_ERROR,'test/logger/','neeke');

//с `start` и `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() - Получает количество журналов по уровню, log_path и key_word


Вручную освобождает поток от регистратора

  • « SeasLog::analyzerDetail
  • SeasLog::__construct »
  • PHP Manual
  • SeasLog
  • Вручную освобождает поток от регистратора

SeasLog::closeLoggerStream

(PECL seaslog >=1.8.6)

SeasLog::closeLoggerStream — Вручную освобождает поток от регистратора

Описание

public static SeasLog::closeLoggerStream(int $model, string $logger): bool

Вручную освобождает поток от регистратора. SeasLog кеширует дескриптор потока, открытый регистратором журнала, чтобы сэкономить накладные расходы на создание потока. Дескриптор будет автоматически освобождён в конце запроса. В режиме CLI процесс также автоматически завершится при выходе. Или вы можете использовать следующие функции для освобождения вручную (функция ручного освобождения требует обновления SeasLog до версии 1.8.6 или обновлённой версии).

Список параметров

model

Целое число, одна из констант:

  • SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL
  • SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN

logger

Имя регистратора.

Возвращаемые значения

Возвращает TRUE в случае успешного освобождения потока, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::closeLoggerStream()

<?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() - Устанавливает имя регистратора SeasLog
  • SeasLog::getLastLogger() - Получает последний путь регистратора SeasLog


Описание

  • « SeasLog::closeLoggerStream
  • SeasLog::critical »
  • PHP Manual
  • SeasLog
  • Описание

SeasLog::__construct

(PECL seaslog >=1.0.0)

SeasLog::__construct — Описание

Описание

public SeasLog::__construct()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Примеры

Пример #1 Пример использования SeasLog::__construct()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Записывает информацию уровня "critical" в журнал

  • « SeasLog::__construct
  • SeasLog::debug »
  • PHP Manual
  • SeasLog
  • Записывает информацию уровня "critical" в журнал

SeasLog::critical

(PECL seaslog >=1.0.0)

SeasLog::critical — Записывает информацию уровня "critical" в журнал

Описание

public static SeasLog::critical(string $message, array $content = ?, string $logger = ?): bool

Записывает информацию уровня "critical" в журнал.

Замечание:

"CRITICAL" - Критические условия. Требуется немедленный ремонт, программный компонент недоступен.

Список параметров

message

Сообщение журнала.

content

Сообщение содержит заполнители, которые разработчики заменяют значениями из массива содержимого. Если `message` - это `информация журнала от {NAME}`, а `content` - `array('NAME' => 'Никиты')`, информация журнала будет `информация журнала от Никиты`.

logger

`logger`, заключённый в третий параметр, будет использоваться прямо сейчас, как временный регистратор, если функция SeasLog::setLogger() вызывается в предварительном содержимом. Если `logger` равен NULL или "" (пустая строка), SeasLog будет использовать последний регистратор, установленный методом SeasLog::setLogger().

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения записи журнала, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::critical()

<?php

var_dump(SeasLog::critical('log message'));

//с content
var_dump(SeasLog::critical('log message from {NAME}',array('NAME' => 'neeke')));

//с временным 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() - Записывает информацию уровня "debug" в журнал
  • SeasLog::info() - Записывает информацию уровня "info" в журнал
  • SeasLog::notice() - Записывает информацию уровня "notice" в журнал
  • SeasLog::warning() - Записывает информацию уровня "warning" в журнал
  • SeasLog::error() - Записывает информацию уровня "error" в журнал
  • SeasLog::alert() - Записывает информацию уровня "alert" в журнал
  • SeasLog::emergency() - Записывает информацию уровня "emergency" в журнал
  • SeasLog::log() - Общая функция записи в журнал


Записывает информацию уровня "debug" в журнал

  • « SeasLog::critical
  • SeasLog::__destruct »
  • PHP Manual
  • SeasLog
  • Записывает информацию уровня "debug" в журнал

SeasLog::debug

(PECL seaslog >=1.0.0)

SeasLog::debug — Записывает информацию уровня "debug" в журнал

Описание

public static SeasLog::debug(string $message, array $content = ?, string $logger = ?): bool

Записывает информацию уровня "debug" в журнал.

Замечание:

"DEBUG" - Подробная информация об отладке. Детализированные информационные события.

Список параметров

message

Сообщение журнала.

content

Сообщение содержит заполнители, которые разработчики заменяют значениями из массива содержимого. Если `message` - это `информация журнала от {NAME}`, а `content` - `array('NAME' => 'Никиты')`, информация журнала будет `информация журнала от Никиты`.

logger

`logger`, заключённый в третий параметр, будет использоваться прямо сейчас, как временный регистратор, если функция SeasLog::setLogger() вызывается в предварительном содержимом. Если `logger` равен NULL или "" (пустая строка), SeasLog будет использовать последний регистратор, установленный методом SeasLog::setLogger().

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения записи журнала, FALSE в случае возникновения ошибки.

Примеры

Пример #1 SeasLog::debug() example

<?php

var_dump(SeasLog::debug('log message'));

//с content
var_dump(SeasLog::debug('log message from {NAME}',array('NAME' => 'neeke')));

//с временным 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() - Записывает информацию уровня "info" в журнал
  • SeasLog::notice() - Записывает информацию уровня "notice" в журнал
  • SeasLog::warning() - Записывает информацию уровня "warning" в журнал
  • SeasLog::error() - Записывает информацию уровня "error" в журнал
  • SeasLog::critical() - Записывает информацию уровня "critical" в журнал
  • SeasLog::alert() - Записывает информацию уровня "alert" в журнал
  • SeasLog::emergency() - Записывает информацию уровня "emergency" в журнал
  • SeasLog::log() - Общая функция записи в журнал


Описание

  • « SeasLog::debug
  • SeasLog::emergency »
  • PHP Manual
  • SeasLog
  • Описание

SeasLog::__destruct

(PECL seaslog >=1.0.0)

SeasLog::__destruct — Описание

Описание

public SeasLog::__destruct()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования SeasLog::__destruct()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Записывает информацию уровня "emergency" в журнал

  • « SeasLog::__destruct
  • SeasLog::error »
  • PHP Manual
  • SeasLog
  • Записывает информацию уровня "emergency" в журнал

SeasLog::emergency

(PECL seaslog >=1.0.0)

SeasLog::emergency — Записывает информацию уровня "emergency" в журнал

Описание

public static SeasLog::emergency(string $message, array $content = ?, string $logger = ?): bool

Записывает информацию уровня "emergency" в журнал.

Замечание:

"EMERGENCY" - Система непригодна для использования.

Список параметров

message

Сообщение журнала.

content

Сообщение содержит заполнители, которые разработчики заменяют значениями из массива содержимого. Если `message` - это `информация журнала от {NAME}`, а `content` - `array('NAME' => 'Никиты')`, информация журнала будет `информация журнала от Никиты`.

logger

`logger`, заключённый в третий параметр, будет использоваться прямо сейчас, как временный регистратор, если функция SeasLog::setLogger() вызывается в предварительном содержимом. Если `logger` равен NULL или "" (пустая строка), SeasLog будет использовать последний регистратор, установленный методом SeasLog::setLogger().

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения записи журнала, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::emergency()

<?php

var_dump(SeasLog::emergency('log message'));

//с content
var_dump(SeasLog::emergency('log message from {NAME}',array('NAME' => 'neeke')));

//с временным 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() - Записывает информацию уровня "debug" в журнал
  • SeasLog::info() - Записывает информацию уровня "info" в журнал
  • SeasLog::notice() - Записывает информацию уровня "notice" в журнал
  • SeasLog::warning() - Записывает информацию уровня "warning" в журнал
  • SeasLog::error() - Записывает информацию уровня "error" в журнал
  • SeasLog::critical() - Записывает информацию уровня "critical" в журнал
  • SeasLog::alert() - Записывает информацию уровня "alert" в журнал
  • SeasLog::log() - Общая функция записи в журнал


Записывает информацию уровня "error" в журнал

  • « SeasLog::emergency
  • SeasLog::flushBuffer »
  • PHP Manual
  • SeasLog
  • Записывает информацию уровня "error" в журнал

SeasLog::error

(PECL seaslog >=1.0.0)

SeasLog::error — Записывает информацию уровня "error" в журнал

Описание

public static SeasLog::error(string $message, array $content = ?, string $logger = ?): bool

Записывает информацию уровня "error" в журнал.

Замечание:

"ERROR" - Ошибки во времени выполнения, которые не требуют немедленных действий, но обычно должны.

Список параметров

message

Сообщение журнала.

content

Сообщение содержит заполнители, которые разработчики заменяют значениями из массива содержимого. Если `message` - это `информация журнала от {NAME}`, а `content` - `array('NAME' => 'Никиты')`, информация журнала будет `информация журнала от Никиты`.

logger

`logger`, заключённый в третий параметр, будет использоваться прямо сейчас, как временный регистратор, если функция SeasLog::setLogger() вызывается в предварительном содержимом. Если `logger` равен NULL или "" (пустая строка), SeasLog будет использовать последний регистратор, установленный методом SeasLog::setLogger().

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения записи журнала, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::error()

<?php

var_dump(SeasLog::error('log message'));

//с content
var_dump(SeasLog::error('log message from {NAME}',array('NAME' => 'neeke')));

//с временным 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() - Записывает информацию уровня "debug" в журнал
  • SeasLog::info() - Записывает информацию уровня "info" в журнал
  • SeasLog::notice() - Записывает информацию уровня "notice" в журнал
  • SeasLog::warning() - Записывает информацию уровня "warning" в журнал
  • SeasLog::critical() - Записывает информацию уровня "critical" в журнал
  • SeasLog::alert() - Записывает информацию уровня "alert" в журнал
  • SeasLog::emergency() - Записывает информацию уровня "emergency" в журнал
  • SeasLog::log() - Общая функция записи в журнал


Очищает буфер логов, делает дамп в файл приложения или отправляет на удалённый API с помощью tcp/udp

  • « SeasLog::error
  • SeasLog::getBasePath »
  • PHP Manual
  • SeasLog
  • Очищает буфер логов, делает дамп в файл приложения или отправляет на удалённый API с помощью tcp/udp

SeasLog::flushBuffer

(PECL seaslog >=1.0.0)

SeasLog::flushBuffer — Очищает буфер логов, делает дамп в файл приложения или отправляет на удалённый API с помощью tcp/udp

Описание

public static SeasLog::flushBuffer(): bool

Очищает буфер логов с помощью seaslog.appender: делает дамп в файл приложения или отправляет на удалённый API с помощью tcp/udp.

Замечание:

Смотрите также: seaslog.appender_retry seaslog.remote_host seaslog.remote_port

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешной очистки буфера, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::flushBuffer()

<?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() - Определяет, включён ли буфер
  • SeasLog::getBuffer() - Получает буфер логов в памяти в виде массива


Получает базовый путь SeasLog

  • « SeasLog::flushBuffer
  • SeasLog::getBuffer »
  • PHP Manual
  • SeasLog
  • Получает базовый путь SeasLog

SeasLog::getBasePath

(PECL seaslog >=1.0.0)

SeasLog::getBasePath — Получает базовый путь SeasLog

Описание

public static Seaslog::getBasePath(): string

Используйте функцию SeasLog::getBasePath(), чтобы получить значение seaslog.default_basepath, которое настроено в php.ini (seaslog.ini).

Если вы используете Seaslog::setBasePath(), результат изменится.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение seaslog.default_basepath в виде строки.

Примеры

Пример #1 Пример использования SeasLog::getBasePath()

<?php

var_dump(SeasLog::getBasePath());

?>

Результатом выполнения данного примера будет что-то подобное:

string(12) "/var/log/www"


Получает буфер логов в памяти в виде массива

  • « SeasLog::getBasePath
  • SeasLog::getBufferEnabled »
  • PHP Manual
  • SeasLog
  • Получает буфер логов в памяти в виде массива

SeasLog::getBuffer

(PECL seaslog >=1.0.0)

SeasLog::getBuffer — Получает буфер логов в памяти в виде массива

Описание

public static SeasLog::getBuffer(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив из буфера логов в памяти.

Примеры

Пример #1 Пример использования SeasLog::getBuffer()

<?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() - Определяет, включён ли буфер
  • SeasLog::flushBuffer() - Очищает буфер логов, делает дамп в файл приложения или отправляет на удалённый API с помощью tcp/udp


Определяет, включён ли буфер

  • « SeasLog::getBuffer
  • SeasLog::getDatetimeFormat »
  • PHP Manual
  • SeasLog
  • Определяет, включён ли буфер

SeasLog::getBufferEnabled

(PECL seaslog >=1.0.0)

SeasLog::getBufferEnabled — Определяет, включён ли буфер

Описание

public static SeasLog::getBufferEnabled(): bool

Результат объединения seaslog.use_buffer и seaslog.buffer_disabled_in_cli.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если seaslog.use_buffer является true. Если включить seaslog.buffer_disabled_in_cli и запустить в cli, параметр seaslog.use_buffer будет сброшен, Seaslog НЕМЕДЛЕННО перезапишет данные в хранилище данных.

Примеры

Пример #1 Пример использования SeasLog::getBufferEnabled()

<?php

var_dump(SeasLog::getBufferEnabled());

?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)

Смотрите также

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBuffer() - Получает буфер логов в памяти в виде массива
  • SeasLog::flushBuffer() - Очищает буфер логов, делает дамп в файл приложения или отправляет на удалённый API с помощью tcp/udp


Получает стиль формата даты и времени SeasLog

  • « SeasLog::getBufferEnabled
  • SeasLog::getLastLogger »
  • PHP Manual
  • SeasLog
  • Получает стиль формата даты и времени SeasLog

SeasLog::getDatetimeFormat

(PECL seaslog >=1.0.0)

SeasLog::getDatetimeFormat — Получает стиль формата даты и времени SeasLog

Описание

public static SeasLog::getDatetimeFormat(): string

Получает стиль формата даты и времени SeasLog. Используйте функцию SeasLog::getDatetimeFormat(), чтобы получить значение seaslog.default_datetime_format, которое настроено в php.ini(seaslog.ini).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Получает стиль формата даты и времени SeasLog seaslog.default_datetime_format. Использование функции SeasLog::setDatetimeFormat() изменит это значение.

Примеры

Пример #1 Пример использования SeasLog::getDatetimeFormat()

<?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() - Устанавливает стиль формата даты и времени SeasLog


Получает последний путь регистратора SeasLog

  • « SeasLog::getDatetimeFormat
  • SeasLog::getRequestID »
  • PHP Manual
  • SeasLog
  • Получает последний путь регистратора SeasLog

SeasLog::getLastLogger

(PECL seaslog >=1.0.0)

SeasLog::getLastLogger — Получает последний путь регистратора SeasLog

Описание

public static SeasLog::getLastLogger(): string

Используйте функцию SeasLog::getLastLogger(), чтобы получить значение seaslog.default_logger, которое задано в php.ini (seaslog.ini).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Использование функции SeasLog::setLogger() изменит значение функции SeasLog::getLastLogger().

Примеры

Пример #1 Пример использования SeasLog::getLastLogger()

<?php

var_dump(SeasLog::getLastLogger());
SeasLog::setLogger('theNewLogger');
var_dump(SeasLog::getLastLogger());
?>

Результатом выполнения данного примера будет что-то подобное:

string(7) "default"
string(12) "theNewLogger"

Смотрите также

  • SeasLog::setLogger() - Устанавливает имя регистратора SeasLog


Получает дифференцированные запросы SeasLog request_id

  • « SeasLog::getLastLogger
  • SeasLog::getRequestVariable »
  • PHP Manual
  • SeasLog
  • Получает дифференцированные запросы SeasLog request_id

SeasLog::getRequestID

(PECL seaslog >=1.0.0)

SeasLog::getRequestID — Получает дифференцированные запросы SeasLog request_id

Описание

public static SeasLog::getRequestID(): string

Чтобы отличить один запрос, например, не вызывать функцию SeasLog::setRequestId(), при инициализации запроса используется уникальное значение, генерируемое встроенной функцией `static char *get_uniqid()`.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, созданную встроенной функцией `static char *get_uniqid()` или заданную функцией SeasLog::setRequestId().

Примеры

Пример #1 Пример использования SeasLog::getRequestID()

<?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() - Устанавливает дифференцированные запросы SeasLog request_id
  • Переменная `%Q` в Таблице переменных по умолчанию Seaslog.


Получает переменную запроса SeasLog

  • « SeasLog::getRequestID
  • SeasLog::info »
  • PHP Manual
  • SeasLog
  • Получает переменную запроса SeasLog

SeasLog::getRequestVariable

(PECL seaslog >=1.9.0)

SeasLog::getRequestVariable — Получает переменную запроса SeasLog

Описание

public static SeasLog::getRequestVariable(int $key): bool

Получает переменную запроса SeasLog.

Список параметров

key

Целочисленная константа:

  • SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT
  • SEASLOG_REQUEST_VARIABLE_REQUEST_URI
  • SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD
  • SEASLOG_REQUEST_VARIABLE_CLIENT_IP

Возвращаемые значения

Возвращает значение переменной запроса в случае успешного выполнения.

Примеры

Пример #1 Пример использования SeasLog::getRequestVariable()

<?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() - Устанавливает переменную запроса SeasLog вручную


Записывает информацию уровня "info" в журнал

  • « SeasLog::getRequestVariable
  • SeasLog::log »
  • PHP Manual
  • SeasLog
  • Записывает информацию уровня "info" в журнал

SeasLog::info

(PECL seaslog >=1.0.0)

SeasLog::info — Записывает информацию уровня "info" в журнал

Описание

public static SeasLog::info(string $message, array $content = ?, string $logger = ?): bool

Записывает информацию уровня "info" в журнал.

Замечание:

"INFO" - Интересные события. Подчёркивает запущенный процесс приложения.

Список параметров

message

Сообщение журнала.

content

Сообщение содержит заполнители, которые разработчики заменяют значениями из массива содержимого. Если `message` - это `информация журнала от {NAME}`, а `content` - `array('NAME' => 'Никиты')`, информация журнала будет `информация журнала от Никиты`.

logger

`logger`, заключённый в третий параметр, будет использоваться прямо сейчас, как временный регистратор, если функция SeasLog::setLogger() вызывается в предварительном содержимом. Если `logger` равен NULL или "" (пустая строка), SeasLog будет использовать последний регистратор, установленный методом SeasLog::setLogger().

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения записи журнала, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::info()

<?php

var_dump(SeasLog::info('log message'));

//с content
var_dump(SeasLog::info('log message from {NAME}',array('NAME' => 'neeke')));

//с временным 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() - Записывает информацию уровня "debug" в журнал
  • SeasLog::notice() - Записывает информацию уровня "notice" в журнал
  • SeasLog::warning() - Записывает информацию уровня "warning" в журнал
  • SeasLog::error() - Записывает информацию уровня "error" в журнал
  • SeasLog::critical() - Записывает информацию уровня "critical" в журнал
  • SeasLog::alert() - Записывает информацию уровня "alert" в журнал
  • SeasLog::emergency() - Записывает информацию уровня "emergency" в журнал
  • SeasLog::log() - Общая функция записи в журнал


Общая функция записи в журнал

  • « SeasLog::info
  • SeasLog::notice »
  • PHP Manual
  • SeasLog
  • Общая функция записи в журнал

SeasLog::log

(PECL seaslog >=1.0.0)

SeasLog::log — Общая функция записи в журнал

Описание

public static SeasLog::log(
string $level,
string $message = ?,
array $content = ?,
string $logger = ?
): bool

Общая функция записи в журнал.

Список параметров

level

Можно использовать уровень один из:

  • SEASLOG_DEBUG
  • SEASLOG_INFO
  • SEASLOG_NOTICE
  • SEASLOG_WARNING
  • SEASLOG_ERROR
  • SEASLOG_CRITICAL
  • SEASLOG_ALERT
  • SEASLOG_EMERGENCY
Или вы можете создать свой собственный уровень.

message

Сообщение журнала.

content

Сообщение содержит заполнители, которые разработчики заменяют значениями из массива содержимого. Если `message` - это `информация журнала от {NAME}`, а `content` - `array('NAME' => 'Никиты')`, информация журнала будет `информация журнала от Никиты`.

logger

`logger`, заключённый в третий параметр, будет использоваться прямо сейчас, как временный регистратор, если функция SeasLog::setLogger() вызывается в предварительном содержимом. Если `logger` равен NULL или "" (пустая строка), SeasLog будет использовать последний регистратор, установленный методом SeasLog::setLogger().

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения записи журнала, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::log()

<?php

var_dump(SeasLog::log(SEASLOG_INFO,'info log'));
var_dump(SeasLog::getBuffer());

//создание нового собственного уровня
var_dump(SeasLog::log('MySelfLevel','info log'));
var_dump(SeasLog::getBuffer());

//с `content`
var_dump(SeasLog::log('MySelfLevel','info log {NAME}',array('NAME' => 'neeke')));
var_dump(SeasLog::getBuffer());

//с `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() - Записывает информацию уровня "debug" в журнал
  • SeasLog::info() - Записывает информацию уровня "info" в журнал
  • SeasLog::notice() - Записывает информацию уровня "notice" в журнал
  • SeasLog::warning() - Записывает информацию уровня "warning" в журнал
  • SeasLog::error() - Записывает информацию уровня "error" в журнал
  • SeasLog::critical() - Записывает информацию уровня "critical" в журнал
  • SeasLog::alert() - Записывает информацию уровня "alert" в журнал
  • SeasLog::emergency() - Записывает информацию уровня "emergency" в журнал


Записывает информацию уровня "notice" в журнал

  • « SeasLog::log
  • SeasLog::setBasePath »
  • PHP Manual
  • SeasLog
  • Записывает информацию уровня "notice" в журнал

SeasLog::notice

(PECL seaslog >=1.0.0)

SeasLog::notice — Записывает информацию уровня "notice" в журнал

Описание

public static SeasLog::notice(string $message, array $content = ?, string $logger = ?): bool

Записывает информацию уровня "notice" в журнал.

Замечание:

"NOTICE" - Нормальные, но важные события. Информация, которая важнее уровня "info" во время выполнения.

Список параметров

message

Сообщение журнала.

content

Сообщение содержит заполнители, которые разработчики заменяют значениями из массива содержимого. Если `message` - это `информация журнала от {NAME}`, а `content` - `array('NAME' => 'Никиты')`, информация журнала будет `информация журнала от Никиты`.

logger

`logger`, заключённый в третий параметр, будет использоваться прямо сейчас, как временный регистратор, если функция SeasLog::setLogger() вызывается в предварительном содержимом. Если `logger` равен NULL или "" (пустая строка), SeasLog будет использовать последний регистратор, установленный методом SeasLog::setLogger().

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения записи журнала, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::notice()

<?php

var_dump(SeasLog::notice('log message'));

//с content
var_dump(SeasLog::notice('log message from {NAME}',array('NAME' => 'neeke')));

//с временным 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() - Записывает информацию уровня "debug" в журнал
  • SeasLog::info() - Записывает информацию уровня "info" в журнал
  • SeasLog::warning() - Записывает информацию уровня "warning" в журнал
  • SeasLog::error() - Записывает информацию уровня "error" в журнал
  • SeasLog::critical() - Записывает информацию уровня "critical" в журнал
  • SeasLog::alert() - Записывает информацию уровня "alert" в журнал
  • SeasLog::emergency() - Записывает информацию уровня "emergency" в журнал
  • SeasLog::log() - Общая функция записи в журнал


Устанавливает базовый путь SeasLog

  • « SeasLog::notice
  • SeasLog::setDatetimeFormat »
  • PHP Manual
  • SeasLog
  • Устанавливает базовый путь SeasLog

SeasLog::setBasePath

(PECL seaslog >=1.0.0)

SeasLog::setBasePath — Устанавливает базовый путь SeasLog

Описание

public static SeasLog::setBasePath(string $base_path): bool

Устанавливает базовый путь SeasLog.

Список параметров

base_path

Строка.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения заданного базового пути, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::setBasePath()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Устанавливает стиль формата даты и времени SeasLog

  • « SeasLog::setBasePath
  • SeasLog::setLogger »
  • PHP Manual
  • SeasLog
  • Устанавливает стиль формата даты и времени SeasLog

SeasLog::setDatetimeFormat

(PECL seaslog >=1.0.0)

SeasLog::setDatetimeFormat — Устанавливает стиль формата даты и времени SeasLog

Описание

public static SeasLog::setDatetimeFormat(string $format): bool

Устанавливает стиль формата даты и времени SeasLog.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

format

Строка. Например, "Y-m-d H:i:s" или "Ymd His". Смотрите первый параметр "format" функции date().

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения заданного формата даты и времени, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::setDatetimeFormat()

<?php

var_dump(SeasLog::setDateTimeFormat('Ymd His'));

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)

Смотрите также

  • SeasLog::getDateTimeFormat() - Получает стиль формата даты и времени SeasLog


Устанавливает имя регистратора SeasLog

  • « SeasLog::setDatetimeFormat
  • SeasLog::setRequestID »
  • PHP Manual
  • SeasLog
  • Устанавливает имя регистратора SeasLog

SeasLog::setLogger

(PECL seaslog >=1.0.0)

SeasLog::setLogger — Устанавливает имя регистратора SeasLog

Описание

public static SeasLog::setLogger(string $logger): bool

Использование функции SeasLog::setLogger() изменит значение функции SeasLog::getLastLogger(). Значит, SeasLog запишет loginfo в каталог регистратора.

Список параметров

logger

Имя регистратора.

Возвращаемые значения

Возвращает TRUE в случае успешного создания директории регистратора, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::setLogger()

<?php

var_dump(SeasLog::setLogger('testModule/testLogger'));

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)

Смотрите также

  • SeasLog::getLastLogger() - Получает последний путь регистратора SeasLog
  • SeasLog::closeLoggerStream() - Вручную освобождает поток от регистратора


Устанавливает дифференцированные запросы SeasLog request_id

  • « SeasLog::setLogger
  • SeasLog::setRequestVariable »
  • PHP Manual
  • SeasLog
  • Устанавливает дифференцированные запросы SeasLog request_id

SeasLog::setRequestID

(PECL seaslog >=1.0.0)

SeasLog::setRequestID — Устанавливает дифференцированные запросы SeasLog request_id

Описание

public static SeasLog::setRequestID(string $request_id): bool

Чтобы отличить один запрос, например, не вызывать функцию SeasLog::setRequestId(), при инициализации запроса используется уникальное значение, генерируемое встроенной функцией `static char *get_uniqid()`.

Список параметров

request_id

Строка.

Возвращаемые значения

Возвращает TRUE в случае успешной установки request_id, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::setRequestID()

<?php

var_dump(SeasLog::setRequestID(time() . rand()));

?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)

Смотрите также

  • SeasLog::getRequestID() - Получает дифференцированные запросы SeasLog request_id


Устанавливает переменную запроса SeasLog вручную

  • « SeasLog::setRequestID
  • SeasLog::warning »
  • PHP Manual
  • SeasLog
  • Устанавливает переменную запроса SeasLog вручную

SeasLog::setRequestVariable

(PECL seaslog >=1.9.0)

SeasLog::setRequestVariable — Устанавливает переменную запроса SeasLog вручную

Описание

public static SeasLog::setRequestVariable(int $key, string $value): bool

Устанавливает переменную запроса SeasLog вручную.

Список параметров

key

Константа, целое число.

  • SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT
  • SEASLOG_REQUEST_VARIABLE_REQUEST_URI
  • SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD
  • SEASLOG_REQUEST_VARIABLE_CLIENT_IP

value

Значение переменной запроса.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::setRequestVariable()

<?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() - Получает переменную запроса SeasLog


Записывает информацию уровня "warning" в журнал

  • « SeasLog::setRequestVariable
  • SPL »
  • PHP Manual
  • SeasLog
  • Записывает информацию уровня "warning" в журнал

SeasLog::warning

(PECL seaslog >=1.0.0)

SeasLog::warning — Записывает информацию уровня "warning" в журнал

Описание

public static SeasLog::warning(string $message, array $content = ?, string $logger = ?): bool

Записывает информацию уровня "warning" в журнал.

Замечание:

"WARNING" - Исключительные случаи, которые не являются ошибками. Потенциально ошибочная информация, которая требует внимания и требует исправления.

Список параметров

message

Сообщение журнала.

content

Сообщение содержит заполнители, которые разработчики заменяют значениями из массива содержимого. Если `message` - это `информация журнала от {NAME}`, а `content` - `array('NAME' => 'Никиты')`, информация журнала будет `информация журнала от Никиты`.

logger

`logger`, заключённый в третий параметр, будет использоваться прямо сейчас, как временный регистратор, если функция SeasLog::setLogger() вызывается в предварительном содержимом. Если `logger` равен NULL или "" (пустая строка), SeasLog будет использовать последний регистратор, установленный методом SeasLog::setLogger().

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения записи журнала, FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SeasLog::warning()

<?php

var_dump(SeasLog::warning('log message'));

//с content
var_dump(SeasLog::warning('log message from {NAME}',array('NAME' => 'neeke')));

//с временным 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() - Записывает информацию уровня "debug" в журнал
  • SeasLog::info() - Записывает информацию уровня "info" в журнал
  • SeasLog::notice() - Записывает информацию уровня "notice" в журнал
  • SeasLog::error() - Записывает информацию уровня "error" в журнал
  • SeasLog::critical() - Записывает информацию уровня "critical" в журнал
  • SeasLog::alert() - Записывает информацию уровня "alert" в журнал
  • SeasLog::emergency() - Записывает информацию уровня "emergency" в журнал
  • SeasLog::log() - Общая функция записи в журнал


Стандартная библиотека 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) - это набор интерфейсов и классов, предназначенных для решения стандартных задач.

SPL предоставляет ряд стандартных структур данных, итераторов для оббегания объектов, интерфейсов, стандартных исключений, некоторое количество классов для работы с файлами и предоставляет ряд функций, например spl_autoload_register().


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.


Структуры данных

Содержание

  • 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, PHP 8)

Введение

Класс SplDoublyLinkedList обеспечивает основные функциональные возможности двусвязного списка.

Обзор классов

class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializable {
/* Константы */
public const int IT_MODE_LIFO;
public const int IT_MODE_FIFO;
public const int IT_MODE_DELETE;
public const int IT_MODE_KEEP;
/* Методы */
public add(int $index, mixed $value): void
public bottom(): mixed
public count(): int
public current(): mixed
public getIteratorMode(): int
public isEmpty(): bool
public key(): int
public next(): void
public offsetExists(int $index): bool
public offsetGet(int $index): mixed
public offsetSet(?int $index, mixed $value): void
public offsetUnset(int $index): void
public pop(): mixed
public prev(): void
public push(mixed $value): void
public rewind(): void
public serialize(): string
public setIteratorMode(int $mode): int
public shift(): mixed
public top(): mixed
public unserialize(string $data): void
public unshift(mixed $value): void
public valid(): bool
}

Предопределённые константы

Направление итерации

SplDoublyLinkedList::IT_MODE_LIFO

Список будет повторяться по порядку "последним пришёл - первым вышел", как стек.

SplDoublyLinkedList::IT_MODE_FIFO

Список будет повторяться по порядку "первым пришёл - первым вышел", как очередь.

Поведение итерации

SplDoublyLinkedList::IT_MODE_DELETE

Итерация удалит повторяющиеся элементы.

SplDoublyLinkedList::IT_MODE_KEEP

Итерация не удалит повторяющиеся элементы.

Содержание

  • SplDoublyLinkedList::add — Добавляет/вставляет новое значение по указанному индексу
  • SplDoublyLinkedList::bottom — Получает узел, находящийся в начале двусвязного списка
  • SplDoublyLinkedList::count — Подсчитывает количество элементов в двусвязном списке
  • SplDoublyLinkedList::current — Возвращает текущий элемент массива
  • SplDoublyLinkedList::getIteratorMode — Возвращает режим итерации
  • SplDoublyLinkedList::isEmpty — Проверяет, является ли двусвязный список пустым
  • SplDoublyLinkedList::key — Возвращает индекс текущего узла
  • SplDoublyLinkedList::next — Перемещает итератор к следующему элементу
  • SplDoublyLinkedList::offsetExists — Проверяет, существует ли запрашиваемый индекс
  • SplDoublyLinkedList::offsetGet — Возвращает значение по указанному индексу
  • SplDoublyLinkedList::offsetSet — Устанавливает значение по заданному индексу $index в $value
  • 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, PHP 8)

SplDoublyLinkedList::add — Добавляет/вставляет новое значение по указанному индексу

Описание

public SplDoublyLinkedList::add(int $index, mixed $value): void

Вставляет значение value по указанному индексу index. Предыдущее значение (и все последующие), смещаются вверх по списку.

Список параметров

index

Индекс, по которому надо вставить значение.

value

Значение, которое надо вставить по индексу index.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OutOfRangeException, если index за пределами списка, либо если index не может быть представлен в виде целого числа.


Получает узел, находящийся в начале двусвязного списка

  • « SplDoublyLinkedList::add
  • SplDoublyLinkedList::count »
  • PHP Manual
  • SplDoublyLinkedList
  • Получает узел, находящийся в начале двусвязного списка

SplDoublyLinkedList::bottom

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::bottom — Получает узел, находящийся в начале двусвязного списка

Описание

public SplDoublyLinkedList::bottom(): mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение первого узла.

Ошибки

Выбрасывает исключение RuntimeException, когда структура данных пуста.


Подсчитывает количество элементов в двусвязном списке

  • « SplDoublyLinkedList::bottom
  • SplDoublyLinkedList::current »
  • PHP Manual
  • SplDoublyLinkedList
  • Подсчитывает количество элементов в двусвязном списке

SplDoublyLinkedList::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::count — Подсчитывает количество элементов в двусвязном списке

Описание

public SplDoublyLinkedList::count(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество элементов в двусвязном списке.


Возвращает текущий элемент массива

  • « SplDoublyLinkedList::count
  • SplDoublyLinkedList::getIteratorMode »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает текущий элемент массива

SplDoublyLinkedList::current

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::current — Возвращает текущий элемент массива

Описание

public SplDoublyLinkedList::current(): mixed

Получает текущий узел двусвязного списка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение текущего узла.


Возвращает режим итерации

  • « SplDoublyLinkedList::current
  • SplDoublyLinkedList::isEmpty »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает режим итерации

SplDoublyLinkedList::getIteratorMode

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::getIteratorMode — Возвращает режим итерации

Описание

public SplDoublyLinkedList::getIteratorMode(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает различные режимы и флаги, влияющие на итерацию.


Проверяет, является ли двусвязный список пустым

  • « SplDoublyLinkedList::getIteratorMode
  • SplDoublyLinkedList::key »
  • PHP Manual
  • SplDoublyLinkedList
  • Проверяет, является ли двусвязный список пустым

SplDoublyLinkedList::isEmpty

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::isEmpty — Проверяет, является ли двусвязный список пустым

Описание

public SplDoublyLinkedList::isEmpty(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает результат проверки двусвязного списка на пустоту.


Возвращает индекс текущего узла

  • « SplDoublyLinkedList::isEmpty
  • SplDoublyLinkedList::next »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает индекс текущего узла

SplDoublyLinkedList::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::key — Возвращает индекс текущего узла

Описание

public SplDoublyLinkedList::key(): int

Возвращает индекс текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего узла.


Перемещает итератор к следующему элементу

  • « SplDoublyLinkedList::key
  • SplDoublyLinkedList::offsetExists »
  • PHP Manual
  • SplDoublyLinkedList
  • Перемещает итератор к следующему элементу

SplDoublyLinkedList::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::next — Перемещает итератор к следующему элементу

Описание

public SplDoublyLinkedList::next(): void

Перемещает итератор к следующему узлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Проверяет, существует ли запрашиваемый индекс

  • « SplDoublyLinkedList::next
  • SplDoublyLinkedList::offsetGet »
  • PHP Manual
  • SplDoublyLinkedList
  • Проверяет, существует ли запрашиваемый индекс

SplDoublyLinkedList::offsetExists

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::offsetExists — Проверяет, существует ли запрашиваемый индекс

Описание

public SplDoublyLinkedList::offsetExists(int $index): bool

Список параметров

index

Проверяемый индекс.

Возвращаемые значения

true, если запрашиваемый индекс index существует, в противном случае false


Возвращает значение по указанному индексу

  • « SplDoublyLinkedList::offsetExists
  • SplDoublyLinkedList::offsetSet »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает значение по указанному индексу

SplDoublyLinkedList::offsetGet

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::offsetGet — Возвращает значение по указанному индексу

Описание

public SplDoublyLinkedList::offsetGet(int $index): mixed

Список параметров

index

Индекс.

Возвращаемые значения

Значение указанного индекса index.

Ошибки

Выбрасывает исключение OutOfRangeException, когда index выходит за границы, или когда index не может быть представлен в виде целого числа.


Устанавливает значение по заданному индексу $index в $value

  • « SplDoublyLinkedList::offsetGet
  • SplDoublyLinkedList::offsetUnset »
  • PHP Manual
  • SplDoublyLinkedList
  • Устанавливает значение по заданному индексу $index в $value

SplDoublyLinkedList::offsetSet

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::offsetSet — Устанавливает значение по заданному индексу $index в $value

Описание

public SplDoublyLinkedList::offsetSet(?int $index, mixed $value): void

Устанавливает значение по заданному индексу index в value.

Список параметров

index

Индекс. Если null, следующее значение будет добавлено после последнего элемента.

value

Новое значение для индекса index.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OutOfRangeException, когда index выходит за границы, или когда index не может быть представлен в виде целого числа.


Удаляет значение по указанному индексу $index

  • « SplDoublyLinkedList::offsetSet
  • SplDoublyLinkedList::pop »
  • PHP Manual
  • SplDoublyLinkedList
  • Удаляет значение по указанному индексу $index

SplDoublyLinkedList::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::offsetUnset — Удаляет значение по указанному индексу $index

Описание

public SplDoublyLinkedList::offsetUnset(int $index): void

Удаляет значение по указанному индексу.

Список параметров

index

Индекс, для которого удаляется значение.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение OutOfRangeException, когда index выходит за границы, или когда index не может быть представлен в виде целого числа.


Удаляет (выталкивает) узел, находящийся в конце двусвязного списка

  • « SplDoublyLinkedList::offsetUnset
  • SplDoublyLinkedList::prev »
  • PHP Manual
  • SplDoublyLinkedList
  • Удаляет (выталкивает) узел, находящийся в конце двусвязного списка

SplDoublyLinkedList::pop

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::pop — Удаляет (выталкивает) узел, находящийся в конце двусвязного списка

Описание

public SplDoublyLinkedList::pop(): mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение удалённого узла.

Ошибки

Выбрасывает исключение RuntimeException, когда структура данных пуста.


Перемещает итератор к предыдущему элементу

  • « SplDoublyLinkedList::pop
  • SplDoublyLinkedList::push »
  • PHP Manual
  • SplDoublyLinkedList
  • Перемещает итератор к предыдущему элементу

SplDoublyLinkedList::prev

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::prev — Перемещает итератор к предыдущему элементу

Описание

public SplDoublyLinkedList::prev(): void

Перемещает итератор к предыдущему узлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Помещает элемент в конец двусвязного списка

  • « SplDoublyLinkedList::prev
  • SplDoublyLinkedList::rewind »
  • PHP Manual
  • SplDoublyLinkedList
  • Помещает элемент в конец двусвязного списка

SplDoublyLinkedList::push

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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, PHP 8)

SplDoublyLinkedList::rewind — Возвращает итератор в начало

Описание

public SplDoublyLinkedList::rewind(): void

Возвращает итератор в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Сериализует хранилище

  • « SplDoublyLinkedList::rewind
  • SplDoublyLinkedList::setIteratorMode »
  • PHP Manual
  • SplDoublyLinkedList
  • Сериализует хранилище

SplDoublyLinkedList::serialize

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SplDoublyLinkedList::serialize — Сериализует хранилище

Описание

public SplDoublyLinkedList::serialize(): string

Сериализует хранилище.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованная строка.

Смотрите также

  • SplDoublyLinkedList::unserialize() - Десериализует хранилище


Устанавливает режим итерации

  • « SplDoublyLinkedList::serialize
  • SplDoublyLinkedList::shift »
  • PHP Manual
  • SplDoublyLinkedList
  • Устанавливает режим итерации

SplDoublyLinkedList::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::setIteratorMode — Устанавливает режим итерации

Описание

public SplDoublyLinkedList::setIteratorMode(int $mode): int

Список параметров

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

Внимание

Направление итерации нельзя изменить для классов SplStack и SplQueue, оно всегда SplDoublyLinkedList::IT_MODE_FIFO. Попытка изменить его приведёт к выбрасыванию исключения RuntimeException.

Возвращаемые значения

Возвращает различные режимы и флаги, влияющие на итерацию.


Удаляет узел, находящийся в начале двусвязного списка

  • « SplDoublyLinkedList::setIteratorMode
  • SplDoublyLinkedList::top »
  • PHP Manual
  • SplDoublyLinkedList
  • Удаляет узел, находящийся в начале двусвязного списка

SplDoublyLinkedList::shift

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::shift — Удаляет узел, находящийся в начале двусвязного списка

Описание

public SplDoublyLinkedList::shift(): mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение удалённого узла.

Ошибки

Выбрасывает исключение RuntimeException, когда структура данных пуста.


Получает узел, находящийся в конце двусвязного списка

  • « SplDoublyLinkedList::shift
  • SplDoublyLinkedList::unserialize »
  • PHP Manual
  • SplDoublyLinkedList
  • Получает узел, находящийся в конце двусвязного списка

SplDoublyLinkedList::top

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::top — Получает узел, находящийся в конце двусвязного списка

Описание

public SplDoublyLinkedList::top(): mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение последнего узла.

Ошибки

Выбрасывает исключение RuntimeException, когда структура данных пуста.


Десериализует хранилище

  • « SplDoublyLinkedList::top
  • SplDoublyLinkedList::unshift »
  • PHP Manual
  • SplDoublyLinkedList
  • Десериализует хранилище

SplDoublyLinkedList::unserialize

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SplDoublyLinkedList::unserialize — Десериализует хранилище

Описание

public SplDoublyLinkedList::unserialize(string $data): void

Десериализует хранилище из строкового представления, полученного с помощью SplDoublyLinkedList::serialize().

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Сериализованная строка.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • SplDoublyLinkedList::serialize() - Сериализует хранилище


Вставляет элемент в начало двусвязного списка

  • « SplDoublyLinkedList::unserialize
  • SplDoublyLinkedList::valid »
  • PHP Manual
  • SplDoublyLinkedList
  • Вставляет элемент в начало двусвязного списка

SplDoublyLinkedList::unshift

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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, PHP 8)

SplDoublyLinkedList::valid — Проверяет, содержит ли узлы двусвязный список

Описание

public SplDoublyLinkedList::valid(): bool

Проверяет, содержит ли ещё узлы двусвязный список.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если двусвязный список содержит узлы после текущего указателя, false в противном случае.


Класс SplStack

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Класс SplStack предоставляет основные функциональные возможности стека, реализованные с использованием двусвязного списка, установив режим итератора SplDoublyLinkedList::IT_MODE_LIFO.

Обзор классов

class SplStack extends SplDoublyLinkedList {
/* Наследуемые константы */
public const int SplDoublyLinkedList::IT_MODE_LIFO;
public const int SplDoublyLinkedList::IT_MODE_FIFO;
public const int SplDoublyLinkedList::IT_MODE_DELETE;
public const int SplDoublyLinkedList::IT_MODE_KEEP;
/* Наследуемые методы */
public SplDoublyLinkedList::add(int $index, mixed $value): void
public SplDoublyLinkedList::bottom(): mixed
public SplDoublyLinkedList::count(): int
public SplDoublyLinkedList::current(): mixed
public SplDoublyLinkedList::getIteratorMode(): int
public SplDoublyLinkedList::isEmpty(): bool
public SplDoublyLinkedList::key(): int
public SplDoublyLinkedList::next(): void
public SplDoublyLinkedList::offsetExists(int $index): bool
public SplDoublyLinkedList::offsetGet(int $index): mixed
public SplDoublyLinkedList::offsetSet(?int $index, mixed $value): void
public SplDoublyLinkedList::offsetUnset(int $index): void
public SplDoublyLinkedList::pop(): mixed
public SplDoublyLinkedList::prev(): void
public SplDoublyLinkedList::push(mixed $value): void
public SplDoublyLinkedList::rewind(): void
public SplDoublyLinkedList::serialize(): string
public SplDoublyLinkedList::setIteratorMode(int $mode): int
public SplDoublyLinkedList::shift(): mixed
public SplDoublyLinkedList::top(): mixed
public SplDoublyLinkedList::unserialize(string $data): void
public SplDoublyLinkedList::unshift(mixed $value): void
public SplDoublyLinkedList::valid(): bool
}

Примеры

Пример #1 Пример использования SplStack

<?php
$q = new SplStack();
$q[] = 1;
$q[] = 2;
$q[] = 3;
foreach ($q as $elem) {
echo $elem."\n";
}
?>

Результат выполнения данного примера:

3
2
1


Класс SplQueue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Класс SplQueue предоставляет основные функциональные возможности очереди, реализованной с использованием двусвязного списка, установив режим итератора SplDoublyLinkedList::IT_MODE_FIFO.

Обзор классов

class SplQueue extends SplDoublyLinkedList {
/* Наследуемые константы */
public const int SplDoublyLinkedList::IT_MODE_LIFO;
public const int SplDoublyLinkedList::IT_MODE_FIFO;
public const int SplDoublyLinkedList::IT_MODE_DELETE;
public const int SplDoublyLinkedList::IT_MODE_KEEP;
/* Методы */
public dequeue(): mixed
public enqueue(mixed $value): void
/* Наследуемые методы */
public SplDoublyLinkedList::add(int $index, mixed $value): void
public SplDoublyLinkedList::bottom(): mixed
public SplDoublyLinkedList::count(): int
public SplDoublyLinkedList::current(): mixed
public SplDoublyLinkedList::getIteratorMode(): int
public SplDoublyLinkedList::isEmpty(): bool
public SplDoublyLinkedList::key(): int
public SplDoublyLinkedList::next(): void
public SplDoublyLinkedList::offsetExists(int $index): bool
public SplDoublyLinkedList::offsetGet(int $index): mixed
public SplDoublyLinkedList::offsetSet(?int $index, mixed $value): void
public SplDoublyLinkedList::offsetUnset(int $index): void
public SplDoublyLinkedList::pop(): mixed
public SplDoublyLinkedList::prev(): void
public SplDoublyLinkedList::push(mixed $value): void
public SplDoublyLinkedList::rewind(): void
public SplDoublyLinkedList::serialize(): string
public SplDoublyLinkedList::setIteratorMode(int $mode): int
public SplDoublyLinkedList::shift(): mixed
public SplDoublyLinkedList::top(): mixed
public SplDoublyLinkedList::unserialize(string $data): void
public SplDoublyLinkedList::unshift(mixed $value): void
public SplDoublyLinkedList::valid(): bool
}

Примеры

Пример #1 Пример использования SplQueue

<?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::dequeue — Удаляет элемент из очереди
  • SplQueue::enqueue — Добавляет элемент в очередь


Удаляет элемент из очереди

  • « SplQueue
  • SplQueue::enqueue »
  • PHP Manual
  • SplQueue
  • Удаляет элемент из очереди

SplQueue::dequeue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplQueue::dequeue — Удаляет элемент из очереди

Описание

public SplQueue::dequeue(): mixed

Удаляет value из начала очереди.

Замечание:

SplQueue::dequeue() - псевдоним SplDoublyLinkedList::shift().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение удалённого из очереди элемента.


Добавляет элемент в очередь

  • « SplQueue::dequeue
  • SplHeap »
  • PHP Manual
  • SplQueue
  • Добавляет элемент в очередь

SplQueue::enqueue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplQueue::enqueue — Добавляет элемент в очередь

Описание

public SplQueue::enqueue(mixed $value): void

Добавляет value в конец очереди.

Замечание:

SplQueue::enqueue() - псевдоним SplDoublyLinkedList::push().

Список параметров

value

Значение для постановки в очередь.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Класс SplHeap

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Класс SplHeap предоставляет основные функциональные возможности кучи.

Обзор классов

abstract class SplHeap implements Iterator, Countable {
/* Методы */
protected compare(mixed $value1, mixed $value2): int
public count(): int
public current(): mixed
public extract(): mixed
public insert(mixed $value): true
public isCorrupted(): bool
public isEmpty(): bool
public key(): int
public next(): void
public recoverFromCorruption(): bool
public rewind(): void
public top(): mixed
public valid(): bool
}

Содержание

  • 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
  • SplHeap::count »
  • PHP Manual
  • SplHeap
  • Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

SplHeap::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

Описание

protected SplHeap::compare(mixed $value1, mixed $value2): int

Сравнивает value1 с value2.

Внимание

Выбрасывание исключений в методе SplHeap::compare() может нарушить целостность кучи и перевести её в заблокированное состояние. Разблокировать кучу можно методом SplHeap::recoverFromCorruption(). Однако, некоторые элементы могут быть помещены некорректно, что нарушит сортировку внутри кучи.

Список параметров

value1

Значение первого сравниваемого узла.

value2

Значение второго сравниваемого узла.

Возвращаемые значения

Метод должен возвращать положительное значение, когда value1 больше value2, 0 если они равны, и отрицательное в остальных случаях.

Замечание:

Помещению в кучу одинаковых элементов нежелательно, так как невозможно будет отследить точное положение конкретного элемента.


Определяет количество элементов в куче

  • « SplHeap::compare
  • SplHeap::current »
  • PHP Manual
  • SplHeap
  • Определяет количество элементов в куче

SplHeap::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::count — Определяет количество элементов в куче

Описание

public SplHeap::count(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество элементов в куче.


Возвращает текущий узел, на который указывает итератор

  • « SplHeap::count
  • SplHeap::extract »
  • PHP Manual
  • SplHeap
  • Возвращает текущий узел, на который указывает итератор

SplHeap::current

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::current — Возвращает текущий узел, на который указывает итератор

Описание

public SplHeap::current(): mixed

Получает текущий элемент, представляющий собой структуру данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущее значение узла.


Извлекает узел из кучи и пересортирует её

  • « SplHeap::current
  • SplHeap::insert »
  • PHP Manual
  • SplHeap
  • Извлекает узел из кучи и пересортирует её

SplHeap::extract

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::extract — Извлекает узел из кучи и пересортирует её

Описание

public SplHeap::extract(): mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение извлечённого узла.

Ошибки

Если структура данных узла окажется пустой, будет выброшено исключение RuntimeException.


Вставляет элемент в кучу и пересортирует её

  • « SplHeap::extract
  • SplHeap::isCorrupted »
  • PHP Manual
  • SplHeap
  • Вставляет элемент в кучу и пересортирует её

SplHeap::insert

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::insert — Вставляет элемент в кучу и пересортирует её

Описание

public SplHeap::insert(mixed $value): true

Вставляет value в кучу.

Список параметров

value

Значение, которое требуется вставить.

Возвращаемые значения

Функция всегда возвращает true.


Указывает, находится ли куча в повреждённом состоянии

  • « SplHeap::insert
  • SplHeap::isEmpty »
  • PHP Manual
  • SplHeap
  • Указывает, находится ли куча в повреждённом состоянии

SplHeap::isCorrupted

(PHP 7, PHP 8)

SplHeap::isCorrupted — Указывает, находится ли куча в повреждённом состоянии

Описание

public SplHeap::isCorrupted(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если куча в повреждённом состоянии, false в противном случае.


Проверка, пуста ли куча

  • « SplHeap::isCorrupted
  • SplHeap::key »
  • PHP Manual
  • SplHeap
  • Проверка, пуста ли куча

SplHeap::isEmpty

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::isEmpty — Проверка, пуста ли куча

Описание

public SplHeap::isEmpty(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Определяет, есть ли в куче элементы.


Возвращает индекс текущего узла

  • « SplHeap::isEmpty
  • SplHeap::next »
  • PHP Manual
  • SplHeap
  • Возвращает индекс текущего узла

SplHeap::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::key — Возвращает индекс текущего узла

Описание

public SplHeap::key(): int

Возвращает индекс текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего узла.


Переход к следующему узлу

  • « SplHeap::key
  • SplHeap::recoverFromCorruption »
  • PHP Manual
  • SplHeap
  • Переход к следующему узлу

SplHeap::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::next — Переход к следующему узлу

Описание

public SplHeap::next(): void

Переход к следующему узлу. Также удалит узел на вершине кучи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Восстанавливает корректное состояние кучи

  • « SplHeap::next
  • SplHeap::rewind »
  • PHP Manual
  • SplHeap
  • Восстанавливает корректное состояние кучи

SplHeap::recoverFromCorruption

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::recoverFromCorruption — Восстанавливает корректное состояние кучи

Описание

public SplHeap::recoverFromCorruption(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Всегда возвращает true.


Перевод итератора на начало

  • « SplHeap::recoverFromCorruption
  • SplHeap::top »
  • PHP Manual
  • SplHeap
  • Перевод итератора на начало

SplHeap::rewind

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::rewind — Перевод итератора на начало

Описание

public SplHeap::rewind(): void

Метод переводит итератор на начало кучи. На самом деле итератор является виртуальным и никуда не двигается с вершины кучи. Так что никаких операций над данными этот метод не совершает.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Возвращает узел, находящийся на вершине кучи

  • « SplHeap::rewind
  • SplHeap::valid »
  • PHP Manual
  • SplHeap
  • Возвращает узел, находящийся на вершине кучи

SplHeap::top

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::top — Возвращает узел, находящийся на вершине кучи

Описание

public SplHeap::top(): mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Узел, находящийся на вершине кучи.

Ошибки

Если структура данных узла окажется пустой, будет выброшено исключение RuntimeException.


Проверяет, содержит ли куча ещё элементы

  • « SplHeap::top
  • SplMaxHeap »
  • PHP Manual
  • SplHeap
  • Проверяет, содержит ли куча ещё элементы

SplHeap::valid

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::valid — Проверяет, содержит ли куча ещё элементы

Описание

public SplHeap::valid(): bool

Проверяет, содержит ли куча ещё элементы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если элементы в куче ещё есть, false в противном случае.


Класс SplMaxHeap

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Класс SplMaxHeap предоставляет основные функциональные возможности кучи, сохраняя максимальный элемент наверху.

Обзор классов

class SplMaxHeap extends SplHeap {
/* Методы */
protected compare(mixed $value1, mixed $value2): int
/* Наследуемые методы */
protected SplHeap::compare(mixed $value1, mixed $value2): int
public SplHeap::count(): int
public SplHeap::current(): mixed
public SplHeap::extract(): mixed
public SplHeap::insert(mixed $value): true
public SplHeap::isCorrupted(): bool
public SplHeap::isEmpty(): bool
public SplHeap::key(): int
public SplHeap::next(): void
public SplHeap::recoverFromCorruption(): bool
public SplHeap::rewind(): void
public SplHeap::top(): mixed
public SplHeap::valid(): bool
}

Содержание

  • SplMaxHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче


Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

  • « SplMaxHeap
  • SplMinHeap »
  • PHP Manual
  • SplMaxHeap
  • Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

SplMaxHeap::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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, PHP 8)

Введение

Класс SplMinHeap предоставляет основные функциональные возможности кучи, сохраняя минимальный элемент наверху.

Обзор классов

class SplMinHeap extends SplHeap {
/* Методы */
protectedcompare(mixed $value1, mixed $value2): int
/* Наследуемые методы */
protected SplHeap::compare(mixed $value1, mixed $value2): int
public SplHeap::count(): int
public SplHeap::current(): mixed
public SplHeap::extract(): mixed
public SplHeap::insert(mixed $value): true
public SplHeap::isCorrupted(): bool
public SplHeap::isEmpty(): bool
public SplHeap::key(): int
public SplHeap::next(): void
public SplHeap::recoverFromCorruption(): bool
public SplHeap::rewind(): void
public SplHeap::top(): mixed
public SplHeap::valid(): bool
}

Содержание

  • SplMinHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче


Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

  • « SplMinHeap
  • SplPriorityQueue »
  • PHP Manual
  • SplMinHeap
  • Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

SplMinHeap::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplMinHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

Описание

protectedSplMinHeap::compare(mixed $value1, mixed $value2): int

Сравнивает value1 с value2.

Список параметров

value1

Значение первого сравниваемого узла.

value2

Значение второго сравниваемого узла.

Возвращаемые значения

Метод возвращает положительное значение, когда value1 больше value2, 0 если они равны, и отрицательное в остальных случаях.

Замечание:

Наличие нескольких элементов с одинаковым значением в куче не рекомендуется, так как невозможно будет отследить точное положение конкретного элемента.


Класс SplPriorityQueue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Класс SplPriorityQueue обеспечивает основные функциональные возможности приоритетной очереди, реализованный при помощи кучи с максимальным элементом наверху (max-heap).

Замечание: Порядок элементов с одинаковым приоритетом не определён. Он может отличаться от порядка, в котором элементы были вставлены.

Обзор классов

class SplPriorityQueue implements Iterator, Countable {
/* Константы */
public const int EXTR_BOTH;
public const int EXTR_PRIORITY;
public const int EXTR_DATA;
/* Методы */
public compare(mixed $priority1, mixed $priority2): int
public count(): int
public current(): mixed
public extract(): mixed
public getExtractFlags(): int
public insert(mixed $value, mixed $priority): true
public isCorrupted(): bool
public isEmpty(): bool
public key(): int
public next(): void
public recoverFromCorruption(): bool
public rewind(): void
public setExtractFlags(int $flags): int
public top(): mixed
public valid(): bool
}

Предопределённые константы

SplPriorityQueue::EXTR_BOTH

SplPriorityQueue::EXTR_PRIORITY

SplPriorityQueue::EXTR_DATA

Содержание

  • 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
  • SplPriorityQueue::count »
  • PHP Manual
  • SplPriorityQueue
  • Сравнивает приоритеты для корректного помещения элементов в очередь

SplPriorityQueue::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::compare — Сравнивает приоритеты для корректного помещения элементов в очередь

Описание

public SplPriorityQueue::compare(mixed $priority1, mixed $priority2): int

Сравнивает priority1 с priority2.

Список параметров

priority1

Приоритет первого узла.

priority2

Приоритет второго узла.

Возвращаемые значения

Результат сравнения, положительное число, когда priority1 больше priority2, 0 если они равны, и отрицательное число в остальных случаях.

Замечание:

При добавлении нескольких элементов с одинаковым приоритетом точный порядок следования этих элементов в очереди не определён.


Производит подсчёт элементов в очереди

  • « SplPriorityQueue::compare
  • SplPriorityQueue::current »
  • PHP Manual
  • SplPriorityQueue
  • Производит подсчёт элементов в очереди

SplPriorityQueue::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::count — Производит подсчёт элементов в очереди

Описание

public SplPriorityQueue::count(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество элементов в очереди.


Возвращает текущий узел, на который указывает итератор

  • « SplPriorityQueue::count
  • SplPriorityQueue::extract »
  • PHP Manual
  • SplPriorityQueue
  • Возвращает текущий узел, на который указывает итератор

SplPriorityQueue::current

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::current — Возвращает текущий узел, на который указывает итератор

Описание

public SplPriorityQueue::current(): mixed

Возвращает структуру данных текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение или приоритет (или и то, и другое) текущего узла в зависимости от заданного флага.


Извлекает узел из начала очереди и пересортирует её

  • « SplPriorityQueue::current
  • SplPriorityQueue::getExtractFlags »
  • PHP Manual
  • SplPriorityQueue
  • Извлекает узел из начала очереди и пересортирует её

SplPriorityQueue::extract

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::extract — Извлекает узел из начала очереди и пересортирует её

Описание

public SplPriorityQueue::extract(): mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение или приоритет (или и то, и другое) текущего узла в зависимости от заданного флага.


Получить флаги извлечения

  • « SplPriorityQueue::extract
  • SplPriorityQueue::insert »
  • PHP Manual
  • SplPriorityQueue
  • Получить флаги извлечения

SplPriorityQueue::getExtractFlags

(PHP 7, PHP 8)

SplPriorityQueue::getExtractFlags — Получить флаги извлечения

Описание

public SplPriorityQueue::getExtractFlags(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает флаги извлечения.


Добавляет элемент в очередь и пересортирует её

  • « SplPriorityQueue::getExtractFlags
  • SplPriorityQueue::isCorrupted »
  • PHP Manual
  • SplPriorityQueue
  • Добавляет элемент в очередь и пересортирует её

SplPriorityQueue::insert

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::insert — Добавляет элемент в очередь и пересортирует её

Описание

public SplPriorityQueue::insert(mixed $value, mixed $priority): true

Добавляет значение value с приоритетом priority в очередь.

Список параметров

value

Добавляемое значение.

priority

Приоритет значения.

Возвращаемые значения

Функция всегда возвращает true.


Указывает, находится ли приоритетная очередь в повреждённом состоянии

  • « SplPriorityQueue::insert
  • SplPriorityQueue::isEmpty »
  • PHP Manual
  • SplPriorityQueue
  • Указывает, находится ли приоритетная очередь в повреждённом состоянии

SplPriorityQueue::isCorrupted

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::isCorrupted — Указывает, находится ли приоритетная очередь в повреждённом состоянии

Описание

public SplPriorityQueue::isCorrupted(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если состояние приоритетной очереди повреждено, и false в противном случае.


Проверяет, является ли очередь пустой

  • « SplPriorityQueue::isCorrupted
  • SplPriorityQueue::key »
  • PHP Manual
  • SplPriorityQueue
  • Проверяет, является ли очередь пустой

SplPriorityQueue::isEmpty

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::isEmpty — Проверяет, является ли очередь пустой

Описание

public SplPriorityQueue::isEmpty(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает результат проверки очереди на пустоту.


Возвращает индекс текущего узла

  • « SplPriorityQueue::isEmpty
  • SplPriorityQueue::next »
  • PHP Manual
  • SplPriorityQueue
  • Возвращает индекс текущего узла

SplPriorityQueue::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::key — Возвращает индекс текущего узла

Описание

public SplPriorityQueue::key(): int

Возвращает индекс текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего узла.


Переход к следующему узлу

  • « SplPriorityQueue::key
  • SplPriorityQueue::recoverFromCorruption »
  • PHP Manual
  • SplPriorityQueue
  • Переход к следующему узлу

SplPriorityQueue::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::next — Переход к следующему узлу

Описание

public SplPriorityQueue::next(): void

Переводит итератор на следующий узел.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Восстанавливает корректное состояние очереди

  • « SplPriorityQueue::next
  • SplPriorityQueue::rewind »
  • PHP Manual
  • SplPriorityQueue
  • Восстанавливает корректное состояние очереди

SplPriorityQueue::recoverFromCorruption

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::recoverFromCorruption — Восстанавливает корректное состояние очереди

Описание

public SplPriorityQueue::recoverFromCorruption(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Всегда возвращает true.


Переводит итератор на начало очереди

  • « SplPriorityQueue::recoverFromCorruption
  • SplPriorityQueue::setExtractFlags »
  • PHP Manual
  • SplPriorityQueue
  • Переводит итератор на начало очереди

SplPriorityQueue::rewind

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::rewind — Переводит итератор на начало очереди

Описание

public SplPriorityQueue::rewind(): void

Переводит итератор на начало очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Задаёт режим извлечения узлов

  • « SplPriorityQueue::rewind
  • SplPriorityQueue::top »
  • PHP Manual
  • SplPriorityQueue
  • Задаёт режим извлечения узлов

SplPriorityQueue::setExtractFlags

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::setExtractFlags — Задаёт режим извлечения узлов

Описание

public SplPriorityQueue::setExtractFlags(int $flags): int

Список параметров

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, PHP 8)

SplPriorityQueue::top — Возвращает узел, находящийся в начале очереди

Описание

public SplPriorityQueue::top(): mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение или приоритет узла (или и то, и другое) в зависимости от установленного флага.


Проверяет, есть ли в очереди ещё элементы

  • « SplPriorityQueue::top
  • SplFixedArray »
  • PHP Manual
  • SplPriorityQueue
  • Проверяет, есть ли в очереди ещё элементы

SplPriorityQueue::valid

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::valid — Проверяет, есть ли в очереди ещё элементы

Описание

public SplPriorityQueue::valid(): bool

Проверяет, есть ли в очереди ещё элементы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если в очереди ещё есть доступные элементы, и false в противном случае.


Класс SplFixedArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Класс SplFixedArray обеспечивает базовую функциональность, предоставляемую массивами. Главное различие между SplFixedArray и обычным массивом PHP в том, что размер SplFixedArray необходимо изменять вручную, а в качестве индексов могут выступать только целочисленные значения. Преимущество данных ограничений заключается в меньшем использовании памяти, чем стандартный массив (array).

Обзор классов

class SplFixedArray implements IteratorAggregate, ArrayAccess, Countable, JsonSerializable {
/* Методы */
public __construct(int $size = 0)
public count(): int
public current(): mixed
public static fromArray(array $array, bool $preserveKeys = true): SplFixedArray
public getIterator(): Iterator
public getSize(): int
public jsonSerialize(): mixed
public key(): int
public next(): void
public offsetExists(int $index): bool
public offsetGet(int $index): mixed
public offsetSet(int $index, mixed $value): void
public offsetUnset(int $index): void
public rewind(): void
public __serialize(): array
public setSize(int $size): bool
public toArray(): array
public __unserialize(array $data): void
public valid(): bool
public __wakeup(): void
}

Список изменений

Версия | Описание
8.2.0 | Магические методы SplFixedArray::__serialize() и SplFixedArray::__unserialize() добавлены в SplFixedArray.
8.1.0 | Класс SplFixedArray теперь реализует интерфейс JsonSerializable.
8.0.0 | Класс SplFixedArray теперь реализует интерфейс IteratorAggregate. Ранее был реализован интерфейс Iterator.

Примеры

Пример #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::getIterator — Получает итератор для перехода по массиву
  • SplFixedArray::getSize — Получает размер массива
  • SplFixedArray::jsonSerialize — Возвращает представление, которое может быть преобразовано в JSON
  • SplFixedArray::key — Возвращает индекс текущего элемента массива
  • SplFixedArray::next — Переходит к следующему элементу массива
  • SplFixedArray::offsetExists — Возвращает факт наличия указанного индекса массива
  • SplFixedArray::offsetGet — Возвращает значение по указанному индексу
  • SplFixedArray::offsetSet — Устанавливает новое значение по заданному индексу
  • SplFixedArray::offsetUnset — Удаляет значение по индексу $index
  • SplFixedArray::rewind — Устанавливает итератор массива в начало
  • SplFixedArray::__serialize — Сериализует объект SplFixedArray
  • SplFixedArray::setSize — Изменяет размер массива
  • SplFixedArray::toArray — Возвращает обычный PHP-массив со значениями фиксированного массива
  • SplFixedArray::__unserialize — Десериализует параметр data в объект SplFixedArray
  • SplFixedArray::valid — Проверяет массив на наличие элементов
  • SplFixedArray::__wakeup — Переинициализация массива после десериализации


Создаёт новый массив фиксированной длины

  • « SplFixedArray
  • SplFixedArray::count »
  • PHP Manual
  • SplFixedArray
  • Создаёт новый массив фиксированной длины

SplFixedArray::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::__construct — Создаёт новый массив фиксированной длины

Описание

public SplFixedArray::__construct(int $size = 0)

Создаёт фиксированный массив с числом null значений, равных size.

Список параметров

size

Размер фиксированного массива. Ожидается значение между 0 и PHP_INT_MAX.

Ошибки

Выбрасывает исключение ValueError, если параметр size отрицателен.

Список изменений

Версия | Описание
8.0.0 | Теперь выбрасывает исключение ValueError, если параметр size отрицателен; ранее выбрасывалось исключение InvalidArgumentException.

Примеры

Пример #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, PHP 8)

SplFixedArray::count — Возвращает размер массива

Описание

public SplFixedArray::count(): 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(): mixed

Получает текущий элемент массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий элемент массива.

Ошибки

Выбрасывает исключение RuntimeException, когда внутренний указатель массива указывает на неверный индекс или вышел за допустимые пределы.


Импортирует PHP-массив в объект класса SplFixedArray

  • « SplFixedArray::current
  • SplFixedArray::getIterator »
  • PHP Manual
  • SplFixedArray
  • Импортирует PHP-массив в объект класса SplFixedArray

SplFixedArray::fromArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::fromArray — Импортирует PHP-массив в объект класса SplFixedArray

Описание

public static SplFixedArray::fromArray(array $array, bool $preserveKeys = true): SplFixedArray

Импортирует PHP-массив array в новый объект класса SplFixedArray

Список параметров

array

Массив, который следует импортировать.

preserveKeys

По возможности сохранить численные индексы, заданные в оригинальном массиве.

Возвращаемые значения

Возвращает объект класса 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::getSize »
  • PHP Manual
  • SplFixedArray
  • Получает итератор для перехода по массиву

SplFixedArray::getIterator

(PHP 8)

SplFixedArray::getIterator — Получает итератор для перехода по массиву

Описание

public SplFixedArray::getIterator(): Iterator

Возвращает итератор для перехода по массиву

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр объекта, реализующего Iterator для прохождения по массиву.


Получает размер массива

  • « SplFixedArray::getIterator
  • SplFixedArray::jsonSerialize »
  • PHP Manual
  • SplFixedArray
  • Получает размер массива

SplFixedArray::getSize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::getSize — Получает размер массива

Описание

public SplFixedArray::getSize(): int

Получает размер массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер массива как int.

Примеры

Пример #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() - Возвращает размер массива


Возвращает представление, которое может быть преобразовано в JSON

  • « SplFixedArray::getSize
  • SplFixedArray::key »
  • PHP Manual
  • SplFixedArray
  • Возвращает представление, которое может быть преобразовано в JSON

SplFixedArray::jsonSerialize

(PHP 8 >= 8.1.0)

SplFixedArray::jsonSerialize — Возвращает представление, которое может быть преобразовано в JSON

Описание

public SplFixedArray::jsonSerialize(): mixed

Сериализует массив в значение, которое может быть сериализовано нативно с помощью функции json_encode().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив данных, который может быть сериализован функцией json_encode(), представляющий собой значение любого типа, отличного от ресурса (resource).


Возвращает индекс текущего элемента массива

  • « SplFixedArray::jsonSerialize
  • SplFixedArray::next »
  • PHP Manual
  • SplFixedArray
  • Возвращает индекс текущего элемента массива

SplFixedArray::key

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::key — Возвращает индекс текущего элемента массива

Описание

public SplFixedArray::key(): int

Возвращает индекс текущего элемента массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего элемента массива.


Переходит к следующему элементу массива

  • « SplFixedArray::key
  • SplFixedArray::offsetExists »
  • PHP Manual
  • SplFixedArray
  • Переходит к следующему элементу массива

SplFixedArray::next

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::next — Переходит к следующему элементу массива

Описание

public SplFixedArray::next(): void

Перемещает итератор на следующий элемент массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Возвращает факт наличия указанного индекса массива

  • « SplFixedArray::next
  • SplFixedArray::offsetGet »
  • PHP Manual
  • SplFixedArray
  • Возвращает факт наличия указанного индекса массива

SplFixedArray::offsetExists

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

SplFixedArray::offsetSet — Устанавливает новое значение по заданному индексу

Описание

public SplFixedArray::offsetSet(int $index, mixed $value): void

По индексу index устанавливает значение value.

Список параметров

index

Индекс, по которому устанавливается значение.

value

Новое значение для индекса index.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение RuntimeException, когда index превышает заданный размер массива или когда index нельзя распознать как целое число.


Удаляет значение по индексу $index

  • « SplFixedArray::offsetSet
  • SplFixedArray::rewind »
  • PHP Manual
  • SplFixedArray
  • Удаляет значение по индексу $index

SplFixedArray::offsetUnset

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::offsetUnset — Удаляет значение по индексу $index

Описание

public SplFixedArray::offsetUnset(int $index): void

Удаляет значение по заданному индексу.

Список параметров

index

Индекс, по которому удаляется значение.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение RuntimeException, когда index превышает заданный размер массива или когда index нельзя распознать как целое число.


Устанавливает итератор массива в начало

  • « SplFixedArray::offsetUnset
  • SplFixedArray::__serialize »
  • PHP Manual
  • SplFixedArray
  • Устанавливает итератор массива в начало

SplFixedArray::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::rewind — Устанавливает итератор массива в начало

Описание

public SplFixedArray::rewind(): void

Устанавливает итератор массива в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Сериализует объект SplFixedArray

  • « SplFixedArray::rewind
  • SplFixedArray::setSize »
  • PHP Manual
  • SplFixedArray
  • Сериализует объект SplFixedArray

SplFixedArray::__serialize

(PHP 8 >= 8.2.0)

SplFixedArray::__serialize — Сериализует объект SplFixedArray

Описание

public SplFixedArray::__serialize(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Изменяет размер массива

  • « SplFixedArray::__serialize
  • SplFixedArray::toArray »
  • PHP Manual
  • SplFixedArray
  • Изменяет размер массива

SplFixedArray::setSize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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::__unserialize »
  • PHP Manual
  • SplFixedArray
  • Возвращает обычный PHP-массив со значениями фиксированного массива

SplFixedArray::toArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::toArray — Возвращает обычный PHP-массив со значениями фиксированного массива

Описание

public SplFixedArray::toArray(): 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)
}


Десериализует параметр data в объект SplFixedArray

  • « SplFixedArray::toArray
  • SplFixedArray::valid »
  • PHP Manual
  • SplFixedArray
  • Десериализует параметр data в объект SplFixedArray

SplFixedArray::__unserialize

(PHP 8 >= 8.2.0)

SplFixedArray::__unserialize — Десериализует параметр data в объект SplFixedArray

Описание

public SplFixedArray::__unserialize(array $data): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Десериализуемое значение.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Проверяет массив на наличие элементов

  • « SplFixedArray::__unserialize
  • SplFixedArray::__wakeup »
  • PHP Manual
  • SplFixedArray
  • Проверяет массив на наличие элементов

SplFixedArray::valid

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::valid — Проверяет массив на наличие элементов

Описание

public SplFixedArray::valid(): bool

Проверяет массив на наличие элементов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если массив содержит хотя бы один элемент, и false в противном случае.


Переинициализация массива после десериализации

  • « SplFixedArray::valid
  • SplObjectStorage »
  • PHP Manual
  • SplFixedArray
  • Переинициализация массива после десериализации

SplFixedArray::__wakeup

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

SplFixedArray::__wakeup — Переинициализация массива после десериализации

Описание

public SplFixedArray::__wakeup(): void

Проинициализирует массив после десериализации.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Класс SplObjectStorage

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Класс SplObjectStorage предоставляет отображение объектов в данные или набор объектов, игнорируя данные. Эта двойная цель может быть полезна во многих случаях, включая необходимость уникальной идентификации объектов.

Обзор классов

class SplObjectStorage implements Countable, Iterator, Serializable, ArrayAccess {
/* Методы */
public addAll(SplObjectStorage $storage): int
public attach(object $object, mixed $info = null): void
public contains(object $object): bool
public count(int $mode = COUNT_NORMAL): int
public current(): object
public detach(object $object): void
public getHash(object $object): string
public getInfo(): mixed
public key(): int
public next(): void
public offsetExists(object $object): bool
public offsetGet(object $object): mixed
public offsetSet(object $object, mixed $info = null): void
public offsetUnset(object $object): void
public removeAll(SplObjectStorage $storage): int
public removeAllExcept(SplObjectStorage $storage): int
public rewind(): void
public serialize(): string
public setInfo(mixed $info): void
public unserialize(string $data): void
public valid(): 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, PHP 8)

SplObjectStorage::addAll — Добавляет все объекты из другого контейнера

Описание

public SplObjectStorage::addAll(SplObjectStorage $storage): int

Добавляет все пары объект-данные из другого контейнера в текущий.

Список параметров

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, PHP 8)

SplObjectStorage::attach — Добавляет объект в контейнер

Описание

public SplObjectStorage::attach(object $object, mixed $info = null): void

Добавляет объект object в контейнер и дополнительно может ассоциировать этот объект с какими-то данными.

Список параметров

object

Добавляемый объект object.

info

Данные, с которыми требуется ассоциировать объект 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"

Смотрите также

  • SplObjectStorage::detach() - Удаляет объект object из контейнера
  • SplObjectStorage::offsetSet() - Ассоциирует данные с объектом в контейнере


Проверяет, содержит ли контейнер заданный объект

  • « SplObjectStorage::attach
  • SplObjectStorage::count »
  • PHP Manual
  • SplObjectStorage
  • Проверяет, содержит ли контейнер заданный объект

SplObjectStorage::contains

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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, PHP 8)

SplObjectStorage::count — Возвращает количество объектов в контейнере

Описание

public SplObjectStorage::count(int $mode = COUNT_NORMAL): int

Производит подсчёт объектов в контейнере.

Список параметров

mode

Если для необязательного параметра mode задано значение COUNT_RECURSIVE (или 1), SplObjectStorage::count() будет рекурсивно подсчитывать объём хранилища.

Возвращаемые значения

Количество объектов в контейнере.

Примеры

Пример #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, PHP 8)

SplObjectStorage::current — Возвращает текущий объект

Описание

public SplObjectStorage::current(): object

Возвращает текущий объект.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект (object) на который указывает итератор контейнера.

Список изменений

Версия | Описание
8.1.0 | Метод SplObjectStorage::current() теперь выбрасывает исключение Error, если текущая позиция недопустима. Ранее вместо этого возвращалось значение false.

Примеры

Пример #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, PHP 8)

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, PHP 8)

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, PHP 8)

SplObjectStorage::getInfo — Возвращает данные, ассоциированные с текущим объектом

Описание

public SplObjectStorage::getInfo(): 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, PHP 8)

SplObjectStorage::key — Возвращает индекс текущего положения итератора

Описание

public SplObjectStorage::key(): 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, PHP 8)

SplObjectStorage::next — Переход к следующему объекту

Описание

public SplObjectStorage::next(): 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, PHP 8)

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, PHP 8)

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, PHP 8)

SplObjectStorage::offsetSet — Ассоциирует данные с объектом в контейнере

Описание

public SplObjectStorage::offsetSet(object $object, mixed $info = null): void

Ассоциирует данные с объектом object в контейнере.

Замечание:

SplObjectStorage::offsetSet() является псевдонимом метода SplObjectStorage::attach().

Список параметров

object

Объект object с которым требуется связать данные.

info

Данные, которые требуется связать с объектом 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, PHP 8)

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, PHP 8)

SplObjectStorage::removeAll — Удаляет из текущего контейнера объекты, которые есть в другом контейнере

Описание

public SplObjectStorage::removeAll(SplObjectStorage $storage): int

Удаляет из текущего контейнера объекты, которые есть в другом контейнере.

Список параметров

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, PHP 8)

SplObjectStorage::removeAllExcept — Удаляет из текущего контейнера все объекты, которых нет в другом контейнере

Описание

public SplObjectStorage::removeAllExcept(SplObjectStorage $storage): int

Удаляет из текущего контейнера все объекты, которых нет в другом контейнере.

Список параметров

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, PHP 8)

SplObjectStorage::rewind — Переводит итератор на первый элемент контейнера

Описание

public SplObjectStorage::rewind(): 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, PHP 8)

SplObjectStorage::serialize — Сериализует контейнер

Описание

public SplObjectStorage::serialize(): 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, PHP 8)

SplObjectStorage::setInfo — Ассоциирует данные с текущим объектом контейнера

Описание

public SplObjectStorage::setInfo(mixed $info): void

Ассоциирует данные с текущим объектом контейнера на который указывает итератор.

Список параметров

info

Данные, которые требуется связать с текущим объектом.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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, PHP 8)

SplObjectStorage::unserialize — Восстанавливает сериализованый контейнер из строки

Описание

public SplObjectStorage::unserialize(string $data): void

Восстанавливает данные контейнера из строки и добавляет их в текущий контейнер.

Список параметров

data

Сериализованное представление контейнера.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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, PHP 8)

SplObjectStorage::valid — Определяет, допустимо ли текущее значение итератора

Описание

public SplObjectStorage::valid(): 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, PHP 8)

Введение

Итератор, который выполняет несколько других итераторов один за другим

Обзор классов

class AppendIterator extends IteratorIterator {
/* Методы */
public __construct()
public append(Iterator $iterator): void
public current(): mixed
public getArrayIterator(): ArrayIterator
public getIteratorIndex(): ?int
public key(): scalar
public next(): void
public rewind(): void
public valid(): bool
/* Наследуемые методы */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Содержание

  • AppendIterator::append — Добавляет итератор
  • AppendIterator::__construct — Создаёт AppendIterator
  • AppendIterator::current — Возвращает текущее значение
  • AppendIterator::getArrayIterator — Возвращает класс итератора массива ArrayIterator
  • 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, PHP 8)

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, PHP 8)

AppendIterator::__construct — Создаёт AppendIterator

Описание

public AppendIterator::__construct()

Создаёт 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, PHP 8)

AppendIterator::current — Возвращает текущее значение

Описание

public AppendIterator::current(): mixed

Возвращает текущее значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущее значение, если оно действительное, или null в противном случае.

Смотрите также

  • Iterator::current() - Возврат текущего элемента
  • AppendIterator::key() - Возвращает текущий ключ
  • AppendIterator::valid() - Проверяет срок действия текущего элемента
  • AppendIterator::next() - Переходит к следующему элементу
  • AppendIterator::rewind() - Перематывает итератор


Возвращает класс итератора массива ArrayIterator

  • « AppendIterator::current
  • AppendIterator::getIteratorIndex »
  • PHP Manual
  • AppendIterator
  • Возвращает класс итератора массива ArrayIterator

AppendIterator::getArrayIterator

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

AppendIterator::getArrayIterator — Возвращает класс итератора массива ArrayIterator

Описание

public AppendIterator::getArrayIterator(): ArrayIterator

Этот метод получает класс ArrayIterator, который используется для хранения итераторов, добавленных с помощью метода AppendIterator::append().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает класс ArrayIterator, содержащий добавленные итераторы.

Смотрите также

  • AppendIterator::getInnerIterator()


Возвращает индекс итератора

  • « AppendIterator::getArrayIterator
  • AppendIterator::key »
  • PHP Manual
  • AppendIterator
  • Возвращает индекс итератора

AppendIterator::getIteratorIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

AppendIterator::getIteratorIndex — Возвращает индекс итератора

Описание

public AppendIterator::getIteratorIndex(): ?int

Возвращает индекс текущего внутреннего итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленный индекс, начинающийся с нуля текущего внутреннего итератора, если он существует, или null в противном случае.

Примеры

Пример #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, PHP 8)

AppendIterator::key — Возвращает текущий ключ

Описание

public AppendIterator::key(): 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, PHP 8)

AppendIterator::next — Переходит к следующему элементу

Описание

public AppendIterator::next(): 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, PHP 8)

AppendIterator::rewind — Перематывает итератор

Описание

public AppendIterator::rewind(): 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, PHP 8)

AppendIterator::valid — Проверяет срок действия текущего элемента

Описание

public AppendIterator::valid(): bool

Проверяет срок действия текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если текущая итерация допустима и false в противном случае.

Смотрите также

  • AppendIterator::current() - Возвращает текущее значение
  • AppendIterator::key() - Возвращает текущий ключ
  • AppendIterator::next() - Переходит к следующему элементу
  • AppendIterator::rewind() - Перематывает итератор


Класс ArrayIterator

(PHP 5, PHP 7, PHP 8)

Введение

Позволяет удалять элементы, изменять ключи или значения при итерации по массивам или объектам.

Когда вы хотите перебрать один и тот же массив несколько раз, вам нужно создать экземпляр ArrayObject и создать для него объекты ArrayIterator, ссылающиеся на него либо при помощи foreach или при вызове метода getIterator() вручную.

Обзор классов

class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Countable {
/* Константы */
public const int STD_PROP_LIST;
public const int ARRAY_AS_PROPS;
/* Методы */
public __construct(array|object $array = [], int $flags = 0)
public append(mixed $value): void
public asort(int $flags = SORT_REGULAR): true
public count(): int
public current(): mixed
public getArrayCopy(): array
public getFlags(): int
public key(): string|int|null
public ksort(int $flags = SORT_REGULAR): true
public natcasesort(): true
public natsort(): true
public next(): void
public offsetExists(mixed $key): bool
public offsetGet(mixed $key): mixed
public offsetSet(mixed $key, mixed $value): void
public offsetUnset(mixed $key): void
public rewind(): void
public seek(int $offset): void
public serialize(): string
public setFlags(int $flags): void
public uasort(callable $callback): true
public uksort(callable $callback): true
public unserialize(string $data): void
public valid(): 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, PHP 8)

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, PHP 8)

ArrayIterator::asort — Сортирует элементы по значениям

Описание

public ArrayIterator::asort(int $flags = SORT_REGULAR): true

Сортирует элементы по значениям.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Список параметров

flags

Необязательный второй параметр flags изменяет поведение сортировки и может принимать следующие значения:

Флаги типа сортировки:

  • SORT_REGULAR — обычное сравнение элементов; подробности описаны в разделе операторы сравнения
  • SORT_NUMERIC — числовое сравнение элементов
  • SORT_STRING — строковое сравнение элементов
  • SORT_LOCALE_STRING — сравнение элементов как строки на основе текущего языкового стандарта. Используется языковой стандарт, который можно изменить с помощью setlocale()
  • SORT_NATURAL — сравнение элементов как строки, используя "естественный порядок", например natsort()
  • SORT_FLAG_CASE — можно объединять (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки строк без учёта регистра

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Смотрите также

  • ArrayIterator::ksort() - Сортирует элементы по ключам
  • ArrayIterator::natcasesort() - Сортирует элементы "натурально", с учётом регистра
  • ArrayIterator::natsort() - Сортирует элементы "натурально"
  • ArrayIterator::uasort() - Сортировка с помощью заданной пользователем функции и сохранением ключей
  • ArrayIterator::uksort() - Сортировка по ключам с помощью заданной функции сравнения
  • asort() - Сортирует массив в порядке возрастания и поддерживает ассоциацию индексов


Создаёт ArrayIterator

  • « ArrayIterator::asort
  • ArrayIterator::count »
  • PHP Manual
  • ArrayIterator
  • Создаёт ArrayIterator

ArrayIterator::__construct

(PHP 5, PHP 7, PHP 8)

ArrayIterator::__construct — Создаёт ArrayIterator

Описание

public ArrayIterator::__construct(array|object $array = [], int $flags = 0)

Создаёт ArrayIterator типа object.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

array

Массив или объект, который может быть итерирован.

flags

Флаги для управления поведением объекта ArrayIterator. Смотрите ArrayIterator::setFlags().

Смотрите также

  • ArrayIterator::getArrayCopy() - Возвращает копию массива


Посчитать количество элементов

  • « ArrayIterator::__construct
  • ArrayIterator::current »
  • PHP Manual
  • ArrayIterator
  • Посчитать количество элементов

ArrayIterator::count

(PHP 5, PHP 7, PHP 8)

ArrayIterator::count — Посчитать количество элементов

Описание

public ArrayIterator::count(): int

Возвращает количество элементов в массиве (array) или количество публичных свойств объекта (object).

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество элементов или публичных свойств в ассоциативном массиве (array) или объекте (object) соответственно.

Смотрите также

  • ArrayIterator::getFlags() - Получает флаги поведения


Возвращает текущий элемент в массиве

  • « ArrayIterator::count
  • ArrayIterator::getArrayCopy »
  • PHP Manual
  • ArrayIterator
  • Возвращает текущий элемент в массиве

ArrayIterator::current

(PHP 5, PHP 7, PHP 8)

ArrayIterator::current — Возвращает текущий элемент в массиве

Описание

public ArrayIterator::current(): 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, PHP 8)

ArrayIterator::getArrayCopy — Возвращает копию массива

Описание

public ArrayIterator::getArrayCopy(): array

Возвращает копию массива.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Копия массива (array) или массив публичных свойств, если ArrayIterator указывает на объект (object).

Смотрите также

  • ArrayIterator::valid() - Проверяет, содержит ли массив ещё записи


Получает флаги поведения

  • « ArrayIterator::getArrayCopy
  • ArrayIterator::key »
  • PHP Manual
  • ArrayIterator
  • Получает флаги поведения

ArrayIterator::getFlags

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ArrayIterator::getFlags — Получает флаги поведения

Описание

public ArrayIterator::getFlags(): int

Получает флаги поведения ArrayIterator. Смотрите метод ArrayIterator::setFlags для просмотра списка доступных флагов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает флаги поведения ArrayIterator.

Смотрите также

  • ArrayIterator::setFlags() - Устанавливает флаги, изменяющие поведение ArrayIterator
  • ArrayIterator::valid() - Проверяет, содержит ли массив ещё записи


Возвращает ключ текущего элемента массива

  • « ArrayIterator::getFlags
  • ArrayIterator::ksort »
  • PHP Manual
  • ArrayIterator
  • Возвращает ключ текущего элемента массива

ArrayIterator::key

(PHP 5, PHP 7, PHP 8)

ArrayIterator::key — Возвращает ключ текущего элемента массива

Описание

public ArrayIterator::key(): string|int|null

Эта функция возвращает ключ текущего элемента массива

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключ текущего элемента в массиве (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, PHP 8)

ArrayIterator::ksort — Сортирует элементы по ключам

Описание

public ArrayIterator::ksort(int $flags = SORT_REGULAR): true

Сортирует элементы по ключам.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Список параметров

flags

Необязательный второй параметр flags изменяет поведение сортировки и может принимать следующие значения:

Флаги типа сортировки:

  • SORT_REGULAR — обычное сравнение элементов; подробности описаны в разделе операторы сравнения
  • SORT_NUMERIC — числовое сравнение элементов
  • SORT_STRING — строковое сравнение элементов
  • SORT_LOCALE_STRING — сравнение элементов как строки на основе текущего языкового стандарта. Используется языковой стандарт, который можно изменить с помощью setlocale()
  • SORT_NATURAL — сравнение элементов как строки, используя "естественный порядок", например natsort()
  • SORT_FLAG_CASE — можно объединять (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки строк без учёта регистра

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Смотрите также

  • ArrayIterator::asort() - Сортирует элементы по значениям
  • ArrayIterator::natcasesort() - Сортирует элементы "натурально", с учётом регистра
  • ArrayIterator::natsort() - Сортирует элементы "натурально"
  • ArrayIterator::uasort() - Сортировка с помощью заданной пользователем функции и сохранением ключей
  • ArrayIterator::uksort() - Сортировка по ключам с помощью заданной функции сравнения
  • ksort() - Сортирует массив по ключу в порядке возрастания


Сортирует элементы "натурально", с учётом регистра

  • « ArrayIterator::ksort
  • ArrayIterator::natsort »
  • PHP Manual
  • ArrayIterator
  • Сортирует элементы "натурально", с учётом регистра

ArrayIterator::natcasesort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::natcasesort — Сортирует элементы "натурально", с учётом регистра

Описание

public ArrayIterator::natcasesort(): true

Сортирует записи в массиве по значениям, используя алгоритм натуральной сортировки с учётом регистра.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Смотрите также

  • ArrayIterator::asort() - Сортирует элементы по значениям
  • ArrayIterator::ksort() - Сортирует элементы по ключам
  • ArrayIterator::natsort() - Сортирует элементы "натурально"
  • ArrayIterator::uasort() - Сортировка с помощью заданной пользователем функции и сохранением ключей
  • ArrayIterator::uksort() - Сортировка по ключам с помощью заданной функции сравнения
  • natcasesort() - Сортирует массив, используя алгоритм "natural order" без учёта регистра символов


Сортирует элементы "натурально"

  • « ArrayIterator::natcasesort
  • ArrayIterator::next »
  • PHP Manual
  • ArrayIterator
  • Сортирует элементы "натурально"

ArrayIterator::natsort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::natsort — Сортирует элементы "натурально"

Описание

public ArrayIterator::natsort(): true

Сортирует записи в массиве по значениям, используя алгоритм натуральной сортировки.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Смотрите также

  • ArrayIterator::asort() - Сортирует элементы по значениям
  • ArrayIterator::ksort() - Сортирует элементы по ключам
  • ArrayIterator::natsort()
  • ArrayIterator::uasort() - Сортировка с помощью заданной пользователем функции и сохранением ключей
  • ArrayIterator::uksort() - Сортировка по ключам с помощью заданной функции сравнения
  • natsort() - Сортирует массив, используя алгоритм "natural order"


Перемещает указатель за следующую запись

  • « ArrayIterator::natsort
  • ArrayIterator::offsetExists »
  • PHP Manual
  • ArrayIterator
  • Перемещает указатель за следующую запись

ArrayIterator::next

(PHP 5, PHP 7, PHP 8)

ArrayIterator::next — Перемещает указатель за следующую запись

Описание

public ArrayIterator::next(): 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, PHP 8)

ArrayIterator::offsetExists — Проверяет существует ли смещение

Описание

public ArrayIterator::offsetExists(mixed $key): bool

Проверяет существует ли смещение.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Проверяемое смещение.

Возвращаемые значения

Возвращает true, если смещение существует, в противном случае - false

Смотрите также

  • ArrayIterator::valid() - Проверяет, содержит ли массив ещё записи


Получает значение для смещения

  • « ArrayIterator::offsetExists
  • ArrayIterator::offsetSet »
  • PHP Manual
  • ArrayIterator
  • Получает значение для смещения

ArrayIterator::offsetGet

(PHP 5, PHP 7, PHP 8)

ArrayIterator::offsetGet — Получает значение для смещения

Описание

public ArrayIterator::offsetGet(mixed $key): mixed

Получает значение из предоставленного смещения.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Смещение, из которого необходимо получить значения.

Возвращаемые значения

Значение по смещению key.

Смотрите также

  • ArrayIterator::offsetSet() - Устанавливает значение для смещения
  • ArrayIterator::offsetUnset() - Сбрасывает значение по смещению


Устанавливает значение для смещения

  • « ArrayIterator::offsetGet
  • ArrayIterator::offsetUnset »
  • PHP Manual
  • ArrayIterator
  • Устанавливает значение для смещения

ArrayIterator::offsetSet

(PHP 5, PHP 7, PHP 8)

ArrayIterator::offsetSet — Устанавливает значение для смещения

Описание

public ArrayIterator::offsetSet(mixed $key, mixed $value): void

Устанавливает значение для данного смещения.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Индекс для установки значения.

value

Новое значение для хранения в индексе.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::offsetGet() - Получает значение для смещения
  • ArrayIterator::offsetUnset() - Сбрасывает значение по смещению


Сбрасывает значение по смещению

  • « ArrayIterator::offsetSet
  • ArrayIterator::rewind »
  • PHP Manual
  • ArrayIterator
  • Сбрасывает значение по смещению

ArrayIterator::offsetUnset

(PHP 5, PHP 7, PHP 8)

ArrayIterator::offsetUnset — Сбрасывает значение по смещению

Описание

public ArrayIterator::offsetUnset(mixed $key): void

Сбрасывает значение по смещению.

Если итерация выполняется и ArrayIterator::offsetUnset() используется для сброса текущего индекса итерации, позиция итерации будет смещена к следующему индексу. Поскольку позиция итерации также смещается в конце foreach в теле цикла, использование ArrayIterator::offsetUnset() внутри цикла foreach может привести к пропуску индексов.

Список параметров

key

Смещение для сброса.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::offsetGet() - Получает значение для смещения
  • ArrayIterator::offsetSet() - Устанавливает значение для смещения


Перемещает указатель в начало массива

  • « ArrayIterator::offsetUnset
  • ArrayIterator::seek »
  • PHP Manual
  • ArrayIterator
  • Перемещает указатель в начало массива

ArrayIterator::rewind

(PHP 5, PHP 7, PHP 8)

ArrayIterator::rewind — Перемещает указатель в начало массива

Описание

public ArrayIterator::rewind(): 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, PHP 8)

ArrayIterator::seek — Перемещает указатель на выбранную позицию

Описание

public ArrayIterator::seek(int $offset): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Позиция, на которую нужно переместить указатель.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Сериализует массив

  • « ArrayIterator::seek
  • ArrayIterator::setFlags »
  • PHP Manual
  • ArrayIterator
  • Сериализует массив

ArrayIterator::serialize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ArrayIterator::serialize — Сериализует массив

Описание

public ArrayIterator::serialize(): string

Сериализует массив.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованный ArrayIterator.

Смотрите также

  • ArrayIterator::unserialize() - Десериализация


Устанавливает флаги, изменяющие поведение ArrayIterator

  • « ArrayIterator::serialize
  • ArrayIterator::uasort »
  • PHP Manual
  • ArrayIterator
  • Устанавливает флаги, изменяющие поведение ArrayIterator

ArrayIterator::setFlags

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ArrayIterator::setFlags — Устанавливает флаги, изменяющие поведение ArrayIterator

Описание

public ArrayIterator::setFlags(int $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, PHP 8)

ArrayIterator::uasort — Сортировка с помощью заданной пользователем функции и сохранением ключей

Описание

public ArrayIterator::uasort(callable $callback): true

Сортирует записи в массиве по значениям, используя функцию сортировки, определённую пользователем и сохраняя связь ключ-значение.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Список параметров

callback

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Смотрите также

  • ArrayIterator::asort() - Сортирует элементы по значениям
  • ArrayIterator::ksort() - Сортирует элементы по ключам
  • ArrayIterator::natcasesort() - Сортирует элементы "натурально", с учётом регистра
  • ArrayIterator::natsort() - Сортирует элементы "натурально"
  • ArrayIterator::uksort() - Сортировка по ключам с помощью заданной функции сравнения
  • uasort() - Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей


Сортировка по ключам с помощью заданной функции сравнения

  • « ArrayIterator::uasort
  • ArrayIterator::unserialize »
  • PHP Manual
  • ArrayIterator
  • Сортировка по ключам с помощью заданной функции сравнения

ArrayIterator::uksort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::uksort — Сортировка по ключам с помощью заданной функции сравнения

Описание

public ArrayIterator::uksort(callable $callback): true

Сортирует записи в массиве по ключам, используя функцию сортировки, определённую пользователем.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Список параметров

callback

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Смотрите также

  • ArrayIterator::asort() - Сортирует элементы по значениям
  • ArrayIterator::ksort() - Сортирует элементы по ключам
  • ArrayIterator::natcasesort() - Сортирует элементы "натурально", с учётом регистра
  • ArrayIterator::natsort() - Сортирует элементы "натурально"
  • ArrayIterator::uksort()
  • uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей


Десериализация

  • « ArrayIterator::uksort
  • ArrayIterator::valid »
  • PHP Manual
  • ArrayIterator
  • Десериализация

ArrayIterator::unserialize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ArrayIterator::unserialize — Десериализация

Описание

public ArrayIterator::unserialize(string $data): void

Десериализация.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Сериализованный объект ArrayIterator, который предстоит десериализовать.

Возвращаемые значения

ArrayIterator.

Смотрите также

  • ArrayIterator::serialize() - Сериализует массив


Проверяет, содержит ли массив ещё записи

  • « ArrayIterator::unserialize
  • CachingIterator »
  • PHP Manual
  • ArrayIterator
  • Проверяет, содержит ли массив ещё записи

ArrayIterator::valid

(PHP 5, PHP 7, PHP 8)

ArrayIterator::valid — Проверяет, содержит ли массив ещё записи

Описание

public ArrayIterator::valid(): 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, PHP 8)

Введение

Этот объект поддерживает кеширование итерации над другим итератором.

Обзор классов

class CachingIterator extends IteratorIterator implements ArrayAccess, Countable, Stringable {
/* Константы */
public const int CALL_TOSTRING;
public const int CATCH_GET_CHILD;
public const int TOSTRING_USE_KEY;
public const int TOSTRING_USE_CURRENT;
public const int TOSTRING_USE_INNER;
public const int FULL_CACHE;
/* Методы */
public __construct(Iterator $iterator, int $flags = CachingIterator::CALL_TOSTRING)
public count(): int
public current(): mixed
public getCache(): array
public getFlags(): void
public hasNext(): bool
public key(): scalar
public next(): void
public offsetExists(string $key): bool
public offsetGet(string $key): mixed
public offsetSet(string $key, mixed $value): void
public offsetUnset(string $key): void
public rewind(): void
public setFlags(int $flags): void
public __toString(): string
public valid(): bool
/* Наследуемые методы */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Предопределённые константы

CachingIterator::CALL_TOSTRING

Преобразует каждый элемент в строку.

CachingIterator::CATCH_GET_CHILD

Не выбрасывать исключения при доступе к дочерним элементам.

CachingIterator::TOSTRING_USE_KEY

Использовать ключ при преобразовании в строку.

CachingIterator::TOSTRING_USE_CURRENT

Использовать текущий элемент при преобразовании в строку.

CachingIterator::TOSTRING_USE_INNER

Использовать внутренний итератор при преобразовании в строку.

CachingIterator::FULL_CACHE

Кеширование всей прочтённой информации.

Список изменений

Версия | Описание
8.0.0 | Класс CachingIterator теперь реализует интерфейс Stringable.

Содержание

  • CachingIterator::__construct — Создаёт новый объект CachingIterator для итератора
  • CachingIterator::count — Возвращает число элементов в итераторе
  • CachingIterator::current — Возвращает текущий элемент
  • CachingIterator::getCache — Получение содержимого кеша
  • CachingIterator::getFlags — Получает используемые флаги
  • 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, PHP 8)

CachingIterator::__construct — Создаёт новый объект CachingIterator для итератора

Описание

public CachingIterator::__construct(Iterator $iterator, int $flags = CachingIterator::CALL_TOSTRING)
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Iterator для кеширования

flags

Битовые маски флагов.


Возвращает число элементов в итераторе

  • « CachingIterator::__construct
  • CachingIterator::current »
  • PHP Manual
  • CachingIterator
  • Возвращает число элементов в итераторе

CachingIterator::count

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

CachingIterator::count — Возвращает число элементов в итераторе

Описание

public CachingIterator::count(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает число элементов в итераторе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество проитерированных элементов.


Возвращает текущий элемент

  • « CachingIterator::count
  • CachingIterator::getCache »
  • PHP Manual
  • CachingIterator
  • Возвращает текущий элемент

CachingIterator::current

(PHP 5, PHP 7, PHP 8)

CachingIterator::current — Возвращает текущий элемент

Описание

public CachingIterator::current(): mixed
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает текущий элемент в итерации.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Mixed

Смотрите также

  • Iterator::current() - Возврат текущего элемента


Получение содержимого кеша

  • « CachingIterator::current
  • CachingIterator::getFlags »
  • PHP Manual
  • CachingIterator
  • Получение содержимого кеша

CachingIterator::getCache

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::getCache — Получение содержимого кеша

Описание

public CachingIterator::getCache(): 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::hasNext »
  • PHP Manual
  • CachingIterator
  • Получает используемые флаги

CachingIterator::getFlags

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::getFlags — Получает используемые флаги

Описание

public CachingIterator::getFlags(): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Получает битовую маску флагов, используемых для данного экземпляра CachingIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описание...


Проверяет, имеет ли внутренний итератор допустимый следующий элемент

  • « CachingIterator::getFlags
  • CachingIterator::key »
  • PHP Manual
  • CachingIterator
  • Проверяет, имеет ли внутренний итератор допустимый следующий элемент

CachingIterator::hasNext

(PHP 5, PHP 7, PHP 8)

CachingIterator::hasNext — Проверяет, имеет ли внутренний итератор допустимый следующий элемент

Описание

public CachingIterator::hasNext(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Возвращает ключ для текущего элемента

  • « CachingIterator::hasNext
  • CachingIterator::next »
  • PHP Manual
  • CachingIterator
  • Возвращает ключ для текущего элемента

CachingIterator::key

(PHP 5, PHP 7, PHP 8)

CachingIterator::key — Возвращает ключ для текущего элемента

Описание

public CachingIterator::key(): scalar
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Этот метод может вернуть ключ для текущего элемента.

Список параметров

У этой функции нет параметров.


Перемещает итератор к следующему элементу

  • « CachingIterator::key
  • CachingIterator::offsetExists »
  • PHP Manual
  • CachingIterator
  • Перемещает итератор к следующему элементу

CachingIterator::next

(PHP 5, PHP 7, PHP 8)

CachingIterator::next — Перемещает итератор к следующему элементу

Описание

public CachingIterator::next(): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Перемещает итератор к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Назначение offsetExists

  • « CachingIterator::next
  • CachingIterator::offsetGet »
  • PHP Manual
  • CachingIterator
  • Назначение offsetExists

CachingIterator::offsetExists

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::offsetExists — Назначение offsetExists

Описание

public CachingIterator::offsetExists(string $key): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Индекс, который должен быть проверен.

Возвращаемые значения

Возвращает true, если элемент с указанным смещением существует, false - в противном случае.


Назначение offsetGet

  • « CachingIterator::offsetExists
  • CachingIterator::offsetSet »
  • PHP Manual
  • CachingIterator
  • Назначение offsetGet

CachingIterator::offsetGet

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::offsetGet — Назначение offsetGet

Описание

public CachingIterator::offsetGet(string $key): mixed
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Описание...

Возвращаемые значения

Описание...


Назначение offsetSet

  • « CachingIterator::offsetGet
  • CachingIterator::offsetUnset »
  • PHP Manual
  • CachingIterator
  • Назначение offsetSet

CachingIterator::offsetSet

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::offsetSet — Назначение offsetSet

Описание

public CachingIterator::offsetSet(string $key, mixed $value): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Индекс элемента.

value

Новое значение для элемента с индексомkey.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Назначение offsetUnset

  • « CachingIterator::offsetSet
  • CachingIterator::rewind »
  • PHP Manual
  • CachingIterator
  • Назначение offsetUnset

CachingIterator::offsetUnset

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::offsetUnset — Назначение offsetUnset

Описание

public CachingIterator::offsetUnset(string $key): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

Индекс элемента, который будет удалён.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Возвращает итератор в начало

  • « CachingIterator::offsetUnset
  • CachingIterator::setFlags »
  • PHP Manual
  • CachingIterator
  • Возвращает итератор в начало

CachingIterator::rewind

(PHP 5, PHP 7, PHP 8)

CachingIterator::rewind — Возвращает итератор в начало

Описание

public CachingIterator::rewind(): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает итератор в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Устанавливает флаги для объекта CachingIterator

  • « CachingIterator::rewind
  • CachingIterator::__toString »
  • PHP Manual
  • CachingIterator
  • Устанавливает флаги для объекта CachingIterator

CachingIterator::setFlags

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::setFlags — Устанавливает флаги для объекта CachingIterator

Описание

public CachingIterator::setFlags(int $flags): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Устанавливает флаги для объекта CachingIterator.

Список параметров

flags

Битовая маска флагов для установки.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Возвращает строковое представление текущего элемента

  • « CachingIterator::setFlags
  • CachingIterator::valid »
  • PHP Manual
  • CachingIterator
  • Возвращает строковое представление текущего элемента

CachingIterator::__toString

(PHP 5, PHP 7, PHP 8)

CachingIterator::__toString — Возвращает строковое представление текущего элемента

Описание

public CachingIterator::__toString(): string
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Получает строковое представление текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое (string) представление текущего элемента.


Проверяет, является ли текущий элемент допустимым

  • « CachingIterator::__toString
  • CallbackFilterIterator »
  • PHP Manual
  • CachingIterator
  • Проверяет, является ли текущий элемент допустимым

CachingIterator::valid

(PHP 5, PHP 7, PHP 8)

CachingIterator::valid — Проверяет, является ли текущий элемент допустимым

Описание

public CachingIterator::valid(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Проверяет, является ли текущий элемент допустимым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Класс CallbackFilterIterator

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Введение

Обзор классов

class CallbackFilterIterator extends FilterIterator {
/* Методы */
public __construct(Iterator $iterator, callable $callback)
public accept(): bool
/* Наследуемые методы */
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): 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, PHP 8)

CallbackFilterIterator::accept — Вызывает callback-функцию и передаёт ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель

Описание

public CallbackFilterIterator::accept(): 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, PHP 8)

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, PHP 8)

Введение

Класс DirectoryIterator предоставляет простой интерфейс для просмотра содержимого каталогов файловой системы.

Обзор классов

class DirectoryIterator extends SplFileInfo implements SeekableIterator {
/* Методы */
public __construct(string $directory)
public current(): mixed
public getBasename(string $suffix = ""): string
public getExtension(): string
public getFilename(): string
public isDot(): bool
public key(): mixed
public next(): void
public rewind(): void
public seek(int $offset): void
public __toString(): string
public valid(): bool
/* Наследуемые методы */
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Содержание

  • DirectoryIterator::__construct — Создаёт новый итератор каталогов из пути
  • DirectoryIterator::current — Возвращает текущий элемент DirectoryIterator
  • DirectoryIterator::getBasename — Получает базовое имя текущего элемента DirectoryIterator
  • DirectoryIterator::getExtension — Получает расширение файла
  • DirectoryIterator::getFilename — Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::isDot — Определяет, является ли текущий элемент 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, PHP 8)

DirectoryIterator::__construct — Создаёт новый итератор каталогов из пути

Описание

public DirectoryIterator::__construct(string $directory)

Создаёт новый итератор каталогов из пути.

Список параметров

directory

Путь к каталогу, который необходимо обойти.

Ошибки

Выбрасывает исключение UnexpectedValueException, если directory не существует.

Выбрасывает ошибку ValueError, если directory является пустой строкой.

Список изменений

Версия | Описание
8.0.0 | Теперь выбрасывается ошибка ValueError, если directory является пустой строкой; ранее выбрасывалось исключение RuntimeException.

Примеры

Пример #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::getBasename »
  • PHP Manual
  • DirectoryIterator
  • Возвращает текущий элемент DirectoryIterator

DirectoryIterator::current

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::current — Возвращает текущий элемент DirectoryIterator

Описание

public DirectoryIterator::current(): mixed

Получает текущий элемент 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::getExtension »
  • PHP Manual
  • DirectoryIterator
  • Получает базовое имя текущего элемента DirectoryIterator

DirectoryIterator::getBasename

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

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::getPathname()
  • basename() - Возвращает последний компонент имени из указанного пути
  • pathinfo() - Возвращает информацию о пути к файлу


Получает расширение файла

  • « DirectoryIterator::getBasename
  • DirectoryIterator::getFilename »
  • PHP Manual
  • DirectoryIterator
  • Получает расширение файла

DirectoryIterator::getExtension

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

DirectoryIterator::getExtension — Получает расширение файла

Описание

public DirectoryIterator::getExtension(): 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

Примечания

Замечание:

Другим способом получения расширения является использование функции pathinfo().

<?php
$extension = pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION);
?>

Смотрите также

  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getBasename() - Получает базовое имя текущего элемента DirectoryIterator
  • pathinfo() - Возвращает информацию о пути к файлу


Возвращает имя файла текущего элемента DirectoryIterator

  • « DirectoryIterator::getExtension
  • DirectoryIterator::isDot »
  • PHP Manual
  • DirectoryIterator
  • Возвращает имя файла текущего элемента DirectoryIterator

DirectoryIterator::getFilename

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::getFilename — Возвращает имя файла текущего элемента DirectoryIterator

Описание

public DirectoryIterator::getFilename(): 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::getPathname()
  • pathinfo() - Возвращает информацию о пути к файлу


Определяет, является ли текущий элемент DirectoryIterator '.' или '.'.

  • « DirectoryIterator::getFilename
  • DirectoryIterator::key »
  • PHP Manual
  • DirectoryIterator
  • Определяет, является ли текущий элемент DirectoryIterator '.' или '.'.

DirectoryIterator::isDot

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::isDot — Определяет, является ли текущий элемент DirectoryIterator '.' или '.'.

Описание

public DirectoryIterator::isDot(): 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::isDir()
  • DirectoryIterator::isFile()
  • DirectoryIterator::isLink()


Возвращает ключ для текущего элемента DirectoryIterator

  • « DirectoryIterator::isDot
  • DirectoryIterator::next »
  • PHP Manual
  • DirectoryIterator
  • Возвращает ключ для текущего элемента DirectoryIterator

DirectoryIterator::key

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::key — Возвращает ключ для текущего элемента DirectoryIterator

Описание

public DirectoryIterator::key(): mixed

Возвращает ключ для текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключ для текущего элемента DirectoryIterator в виде целого числа (int).

Список изменений

Версия | Описание
8.1.0 | При ошибке инициализации итератора теперь выдаётся ошибка Error; ранее метод возвращал значение false.

Примеры

Пример #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, PHP 8)

DirectoryIterator::next — Переход к следующему элементу DirectoryIterator

Описание

public DirectoryIterator::next(): 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, PHP 8)

DirectoryIterator::rewind — Перемотка итератора DirectoryIterator назад к началу

Описание

public DirectoryIterator::rewind(): 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, PHP 8)

DirectoryIterator::seek — Переход к элементу DirectoryIterator

Описание

public DirectoryIterator::seek(int $offset): void

Переход к заданной позиции DirectoryIterator.

Список параметров

offset

Числовая позиция, начинающаяся с нуля, к которой следует перейти.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования DirectoryIterator::seek()

Переход к четвёртому элементу каталога, содержащего скрипт. Первыми двумя обычно являются . и ...

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
$iterator->seek(3);
if ($iterator->valid()) {
echo $iterator->getFilename();
} else {
echo 'Отсутствие файла в позиции 3';
}
?>

Смотрите также

  • DirectoryIterator::rewind() - Перемотка итератора DirectoryIterator назад к началу
  • DirectoryIterator::next() - Переход к следующему элементу DirectoryIterator
  • SeekableIterator::seek() - Перемещается к позиции


Получает имя файла в виде строки

  • « DirectoryIterator::seek
  • DirectoryIterator::valid »
  • PHP Manual
  • DirectoryIterator
  • Получает имя файла в виде строки

DirectoryIterator::__toString

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::__toString — Получает имя файла в виде строки

Описание

public DirectoryIterator::__toString(): 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, PHP 8)

DirectoryIterator::valid — Проверяет, является ли текущая позиция DirectoryIterator корректным файлом

Описание

public DirectoryIterator::valid(): 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, PHP 8)

Введение

Класс EmptyIterator для пустого итератора.

Обзор классов

class EmptyIterator implements Iterator {
/* Методы */
public current(): never
public key(): never
public next(): void
public rewind(): void
public valid(): false
}

Содержание

  • 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, PHP 8)

EmptyIterator::current — Метод current()

Описание

public EmptyIterator::current(): never

Функция не должна вызываться. Выбрасывает исключение при попытке доступа.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Ошибки

Выбрасывает исключение Exception при вызове.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Метод key()

  • « EmptyIterator::current
  • EmptyIterator::next »
  • PHP Manual
  • EmptyIterator
  • Метод key()

EmptyIterator::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

EmptyIterator::key — Метод key()

Описание

public EmptyIterator::key(): never

Эта функция не должна вызываться. Вызывает исключение при попытке доступа.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Ошибки

Вызывает исключение Exception при вызове.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Метод next()

  • « EmptyIterator::key
  • EmptyIterator::rewind »
  • PHP Manual
  • EmptyIterator
  • Метод next()

EmptyIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

EmptyIterator::next — Метод next()

Описание

public EmptyIterator::next(): void

Нет действия. Ничего не делает.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Метод rewind()

  • « EmptyIterator::next
  • EmptyIterator::valid »
  • PHP Manual
  • EmptyIterator
  • Метод rewind()

EmptyIterator::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

EmptyIterator::rewind — Метод rewind()

Описание

public EmptyIterator::rewind(): void

Нет действия. Ничего не делает.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Метод valid()

  • « EmptyIterator::rewind
  • FilesystemIterator »
  • PHP Manual
  • EmptyIterator
  • Метод valid()

EmptyIterator::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

EmptyIterator::valid — Метод valid()

Описание

public EmptyIterator::valid(): false

Метод valid() класса EmptyIterator.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

false


Класс FilesystemIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Итератор файловой системы

Обзор классов

class FilesystemIterator extends DirectoryIterator {
/* Константы */
public const int CURRENT_MODE_MASK;
public const int CURRENT_AS_PATHNAME;
public const int CURRENT_AS_FILEINFO;
public const int CURRENT_AS_SELF;
public const int KEY_MODE_MASK;
public const int KEY_AS_PATHNAME;
public const int FOLLOW_SYMLINKS;
public const int KEY_AS_FILENAME;
public const int NEW_CURRENT_AND_KEY;
public const int OTHER_MODE_MASK;
public const int SKIP_DOTS;
public const int UNIX_PATHS;
/* Методы */
public __construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS)
public current(): string|SplFileInfo|FilesystemIterator
public getFlags(): int
public key(): string
public next(): void
public rewind(): void
public setFlags(int $flags): void
/* Наследуемые методы */
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Предопределённые константы

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::OTHER_MODE_MASK

Маска используется для FilesystemIterator::getFlags() и FilesystemIterator::setFlags().

FilesystemIterator::SKIP_DOTS

Пропускает точечные файлы (. и ..).

FilesystemIterator::UNIX_PATHS

Заставляет все пути использовать обратный слеш в Unix-стиле, независимо от настроек системы по умолчанию. Обратите внимание, что path, переданный в конструктор, не меняется.

Содержание

  • 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, PHP 8)

FilesystemIterator::__construct — Создаёт новый итератор файловой системы

Описание

public FilesystemIterator::__construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS)

Создаёт новый объект итератора файловой системы на основе аргумента directory.

Список параметров

directory

Путь к объекту файловой системы по которому требуется навигация.

flags

Поведение некоторых методов можно задать с помощью флагов. Список этих флагов можно найти на странице предопределённых констант FilesystemIterator. Также их можно задать позже методом FilesystemIterator::setFlags().

Ошибки

Выбрасывает исключение UnexpectedValueException, если директория directory не существует.

Выбрасывает исключение ValueError, если параметр directory содержит пустую строку.

Список изменений

Версия | Описание
8.2.0 | До версии PHP 8.2.0, константа FilesystemIterator::SKIP_DOTS всегда была установлена и не могла быть удалена.
8.0.0 | Теперь выбрасывает исключение ValueError, если параметр directory содержит пустую строку; ранее выбрасывалось исключение RuntimeException.

Примеры

Пример #1 Пример использования FilesystemIterator::__construct()

<?php
$it = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::CURRENT_AS_FILEINFO);
foreach ($it as $fileinfo) {
echo $fileinfo->getFilename() . "\n";
}
?>

Результат выполнения данного примера в PHP 8.2 аналогичен:

.
..
apples.jpg
banana.jpg
example.php

Вывод приведённого выше примера до версии PHP 8.2.0 выглядит следующим образом:

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, PHP 8)

FilesystemIterator::current — Текущий файл

Описание

public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator

Извлекает информацию о текущем файле.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя файла, информация о файле, либо $this, в зависимости от установленных флагов. Смотрите Константы FilesystemIterator.

Примеры

Пример #1 Пример использования FilesystemIterator::current()

В этом примере будет выведен список содержимого директории в которой находится выполняемый скрипт.

<?php
$iterator = new FilesystemIterator(__DIR__, FilesystemIterator::CURRENT_AS_PATHNAME);
foreach ($iterator as $fileinfo) {
echo $iterator->current() . "\n";
}
?>

Результат выполнения данного примера в PHP 8.2 аналогичен:

/www/examples/.
/www/examples/..
/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, PHP 8)

FilesystemIterator::getFlags — Получение флагов настроек объекта

Описание

public FilesystemIterator::getFlags(): 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, PHP 8)

FilesystemIterator::key — Определение ключа текущего файла

Описание

public FilesystemIterator::key(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь или имя файла в зависимости от установленных флагов. Смотрите Константы FilesystemIterator.

Примеры

Пример #1 Пример использования FilesystemIterator::key()

Этот пример выведет список содержимого директории в которой расположен скрипт.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_FILENAME);
foreach ($iterator as $fileinfo) {
echo $iterator->key() . "\n";
}
?>

Результат выполнения данного примера в PHP 8.2 аналогичен:

.
..
apple.jpg
banana.jpg
example.php

Смотрите также

  • FilesystemIterator constants
  • DirectoryIterator::key() - Возвращает ключ для текущего элемента DirectoryIterator
  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getPathname()


Перемещение указателя на следующий файл

  • « FilesystemIterator::key
  • FilesystemIterator::rewind »
  • PHP Manual
  • FilesystemIterator
  • Перемещение указателя на следующий файл

FilesystemIterator::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

FilesystemIterator::next — Перемещение указателя на следующий файл

Описание

public FilesystemIterator::next(): 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, PHP 8)

FilesystemIterator::rewind — Перемещение указателя на начало

Описание

public FilesystemIterator::rewind(): 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, PHP 8)

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";
}
?>

Результат выполнения данного примера в PHP 8.2 аналогичен:

Ключом является путь к файлу:
/www/examples/.
/www/examples/..
/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, PHP 8)

Введение

Этот абстрактный итератор фильтрует нежелательные значения. Этот класс следует расширить для реализации пользовательских фильтров итератора. Метод FilterIterator::accept() должен быть реализован в подклассе.

Обзор классов

abstract class FilterIterator extends IteratorIterator {
/* Методы */
public __construct(Iterator $iterator)
public accept(): bool
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
/* Наследуемые методы */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Содержание

  • FilterIterator::accept — Проверяет, является ли текущий элемент итератора допустимым
  • FilterIterator::__construct — Конструктор класса FilterIterator
  • FilterIterator::current — Получает значение текущего элемента
  • FilterIterator::key — Получает текущий ключ
  • FilterIterator::next — Перемещает итератор к следующему элементу
  • FilterIterator::rewind — Возвращает итератор в начало
  • FilterIterator::valid — Проверяет, является ли текущий элемент допустимым


Проверяет, является ли текущий элемент итератора допустимым

  • « FilterIterator
  • FilterIterator::__construct »
  • PHP Manual
  • FilterIterator
  • Проверяет, является ли текущий элемент итератора допустимым

FilterIterator::accept

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::accept — Проверяет, является ли текущий элемент итератора допустимым

Описание

public FilterIterator::accept(): 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, PHP 8)

FilterIterator::__construct — Конструктор класса FilterIterator

Описание

public FilterIterator::__construct(Iterator $iterator)

Создаёт объект класса FilterIterator, который состоит из итератора, переданного в параметре iterator, и фильтров, применяемых к нему.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Фильтруемый итератор.

Смотрите также

  • LimitIterator::__construct() - Конструктор класса LimitIterator


Получает значение текущего элемента

  • « FilterIterator::__construct
  • FilterIterator::key »
  • PHP Manual
  • FilterIterator
  • Получает значение текущего элемента

FilterIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::current — Получает значение текущего элемента

Описание

public FilterIterator::current(): mixed
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Получает значение текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение текущего элемента.

Смотрите также

  • FilterIterator::key() - Получает текущий ключ
  • FilterIterator::next() - Перемещает итератор к следующему элементу


Получает текущий ключ

  • « FilterIterator::current
  • FilterIterator::next »
  • PHP Manual
  • FilterIterator
  • Получает текущий ключ

FilterIterator::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::key — Получает текущий ключ

Описание

public FilterIterator::key(): mixed
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Получает текущий ключ.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий ключ.

Смотрите также

  • FilterIterator::next() - Перемещает итератор к следующему элементу
  • FilterIterator::current() - Получает значение текущего элемента


Перемещает итератор к следующему элементу

  • « FilterIterator::key
  • FilterIterator::rewind »
  • PHP Manual
  • FilterIterator
  • Перемещает итератор к следующему элементу

FilterIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::next — Перемещает итератор к следующему элементу

Описание

public FilterIterator::next(): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Перемещает итератор к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • FilterIterator::current() - Получает значение текущего элемента
  • FilterIterator::key() - Получает текущий ключ


Возвращает итератор в начало

  • « FilterIterator::next
  • FilterIterator::valid »
  • PHP Manual
  • FilterIterator
  • Возвращает итератор в начало

FilterIterator::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::rewind — Возвращает итератор в начало

Описание

public FilterIterator::rewind(): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращает итератор в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • FilterIterator::current() - Получает значение текущего элемента
  • FilterIterator::key() - Получает текущий ключ
  • FilterIterator::next() - Перемещает итератор к следующему элементу


Проверяет, является ли текущий элемент допустимым

  • « FilterIterator::rewind
  • GlobIterator »
  • PHP Manual
  • FilterIterator
  • Проверяет, является ли текущий элемент допустимым

FilterIterator::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::valid — Проверяет, является ли текущий элемент допустимым

Описание

public FilterIterator::valid(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Проверяет, является ли текущий элемент допустимым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если текущий элемент допустим, в противном случае false


Класс GlobIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Итерирует через файловую систему похожим образом, как работает glob().

Обзор классов

class GlobIterator extends FilesystemIterator implements Countable {
/* Наследуемые константы */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Методы */
public __construct(string $pattern, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)
public count(): int
/* Наследуемые методы */
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Содержание

  • GlobIterator::__construct — Создаёт итератор директории, используя glob-выражение
  • GlobIterator::count — Определяет количество директорий и файлов


Создаёт итератор директории, используя glob-выражение

  • « GlobIterator
  • GlobIterator::count »
  • PHP Manual
  • GlobIterator
  • Создаёт итератор директории, используя glob-выражение

GlobIterator::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

GlobIterator::__construct — Создаёт итератор директории, используя glob-выражение

Описание

public GlobIterator::__construct(string $pattern, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)

Создаёт новый итератор директории на основе glob-выражения.

Список параметров

pattern

Шаблон glob().

flags

Флаги настроек. Флаги можно задавать битовой маской констант FilesystemIterator.

Ошибки

Выбрасывает исключение UnexpectedValueException, если директория directory не существует.

Выбрасывает исключение ValueError, если параметр directory содержит пустую строку.

Список изменений

Версия | Описание
8.0.0 | Теперь выбрасывает исключение ValueError, если параметр directory содержит пустую строку. Ранее выбрасывалось исключение RuntimeException.

Примеры

Пример #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, PHP 8)

GlobIterator::count — Определяет количество директорий и файлов

Описание

public GlobIterator::count(): int

Определяет количество директорий и файлов, совпадающих с glob-выражением.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество директорий и файлов в виде целого числа (int).

Примеры

Пример #1 Пример использования GlobIterator::count()

<?php
$iterator = new GlobIterator('*.xml');

printf("Найдено элементов: %d \r\n", $iterator->count());
?>

Результатом выполнения данного примера будет что-то подобное:

Найдено элементов: 8

Смотрите также

  • GlobIterator::__construct() - Создаёт итератор директории, используя glob-выражение
  • count() - Подсчитывает количество элементов массива или Countable объекте
  • glob() - Находит файловые пути, совпадающие с шаблоном


Класс InfiniteIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Класс InfiniteIterator позволяет сделать бесконечный перебор итератора без необходимости вручную перебирать итератор до момента достижения его конца.

Обзор классов

class InfiniteIterator extends IteratorIterator {
/* Методы */
public __construct(Iterator $iterator)
public next(): void
/* Наследуемые методы */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Содержание

  • InfiniteIterator::__construct — Конструктор класса InfiniteIterator
  • InfiniteIterator::next — Перемещает итератор на одну позицию вперёд или в начало


Конструктор класса InfiniteIterator

  • « InfiniteIterator
  • InfiniteIterator::next »
  • PHP Manual
  • InfiniteIterator
  • Конструктор класса InfiniteIterator

InfiniteIterator::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

InfiniteIterator::__construct — Конструктор класса InfiniteIterator

Описание

public InfiniteIterator::__construct(Iterator $iterator)

Создаёт новый объект класса InfiniteIterator на основе объекта-итератора 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, PHP 8)

InfiniteIterator::next — Перемещает итератор на одну позицию вперёд или в начало

Описание

public InfiniteIterator::next(): void

Перемещает внутренний указатель объекта Iterator на следующий элемент или на первый элемент, если текущий элемент был последним.

Замечание:

Итератор InfiniteIterator останавливается, когда хранящийся внутри объект Iterator оказывается пустым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • InfiniteIterator::__construct() - Конструктор класса InfiniteIterator


Класс IteratorIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Этот итератор-обёртка позволяет преобразовывать все, что является "обходимым" (Traversable) в итератор. Важно понимать, что большинство классов, которые не реализуют итераторы, имеют на то причины, так как, скорее всего, они не позволяют реализовать полный набор возможностей итератора. Если так, то должны быть предприняты меры для предотвращения неправильного использования, иначе можно ожидать исключений или фатальных ошибок.

Обзор классов

class IteratorIterator implements OuterIterator {
/* Методы */
public __construct(Traversable $iterator, ?string $class = null)
public current(): mixed
public getInnerIterator(): ?Iterator
public key(): mixed
public next(): void
public rewind(): void
public valid(): 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, PHP 8)

IteratorIterator::__construct — Создаёт итератор из чего-либо, что является обходимым (traversable)

Описание

public IteratorIterator::__construct(Traversable $iterator, ?string $class = null)

Создаёт итератор из чего-либо, что является обходимым (traversable).

Список параметров

iterator

Обходимый (traversable) итератор.

class

Имя класса, используемого для внутреннего итератора. Позволяет указать другой класс итератора для обёртывания предоставленного итератора. По умолчанию будет использоваться класс IteratorIterator.

Смотрите также

  • Traversable


Получает текущее значение

  • « IteratorIterator::__construct
  • IteratorIterator::getInnerIterator »
  • PHP Manual
  • IteratorIterator
  • Получает текущее значение

IteratorIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::current — Получает текущее значение

Описание

public IteratorIterator::current(): mixed

Получает значение текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение текущего элемента.

Смотрите также

  • IteratorIterator::key() - Получает ключ текущего элемента


Получает внутренний итератор

  • « IteratorIterator::current
  • IteratorIterator::key »
  • PHP Manual
  • IteratorIterator
  • Получает внутренний итератор

IteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::getInnerIterator — Получает внутренний итератор

Описание

public IteratorIterator::getInnerIterator(): ?Iterator

Получает внутренний итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внутренний итератор, который был передан методу IteratorIterator::__construct() или null, если внутренний итератор отсутствует.

Смотрите также

  • Iterator
  • OuterIterator


Получает ключ текущего элемента

  • « IteratorIterator::getInnerIterator
  • IteratorIterator::next »
  • PHP Manual
  • IteratorIterator
  • Получает ключ текущего элемента

IteratorIterator::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::key — Получает ключ текущего элемента

Описание

public IteratorIterator::key(): mixed

Получает ключ текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключ текущего элемента.

Смотрите также

  • IteratorIterator::current() - Получает текущее значение


Перемещает итератор к следующему элементу

  • « IteratorIterator::key
  • IteratorIterator::rewind »
  • PHP Manual
  • IteratorIterator
  • Перемещает итератор к следующему элементу

IteratorIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::next — Перемещает итератор к следующему элементу

Описание

public IteratorIterator::next(): void

Перемещает итератор к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • IteratorIterator::rewind() - Возвращает итератор к первому элементу
  • IteratorIterator::valid() - Проверяет, является ли итератор допустимым


Возвращает итератор к первому элементу

  • « IteratorIterator::next
  • IteratorIterator::valid »
  • PHP Manual
  • IteratorIterator
  • Возвращает итератор к первому элементу

IteratorIterator::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::rewind — Возвращает итератор к первому элементу

Описание

public IteratorIterator::rewind(): void

Возвращает итератор к первому элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • IteratorIterator::next() - Перемещает итератор к следующему элементу
  • IteratorIterator::valid() - Проверяет, является ли итератор допустимым


Проверяет, является ли итератор допустимым

  • « IteratorIterator::rewind
  • LimitIterator »
  • PHP Manual
  • IteratorIterator
  • Проверяет, является ли итератор допустимым

IteratorIterator::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::valid — Проверяет, является ли итератор допустимым

Описание

public IteratorIterator::valid(): bool

Проверяет, является ли итератор допустимым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если итератор является допустимым, в противном случае возвращает false

Смотрите также

  • iterator_count() - Подсчитывает количество элементов в итераторе
  • IteratorIterator::current() - Получает текущее значение


Класс LimitIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Класс LimitIterator позволяет сделать перебор ограниченного количества элементов в Iterator.

Обзор классов

class LimitIterator extends IteratorIterator {
/* Методы */
public __construct(Iterator $iterator, int $offset = 0, int $limit = -1)
public current(): mixed
public getPosition(): int
public key(): mixed
public next(): void
public rewind(): void
public seek(int $offset): int
public valid(): bool
/* Наследуемые методы */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): 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::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, PHP 8)

LimitIterator::__construct — Конструктор класса LimitIterator

Описание

public LimitIterator::__construct(Iterator $iterator, int $offset = 0, int $limit = -1)

Создаёт новый объект класса LimitIterator на основе заданного объекта iterator, начального смещения offset и максимального числа итераций limit.

Список параметров

iterator

Объект-итератор Iterator, число итераций которого требуется ограничить.

offset

Необязательное начальное смещение.

limit

Необязательное ограничение количества итераций.

Ошибки

Выбрасывает исключение ValueError, если смещение offset окажется меньше 0, либо если limit окажется меньше -1.

Список изменений

Версия | Описание
8.0.0 | Теперь выбрасывает исключение ValueError, если смещение offset окажется меньше 0; ранее выбрасывалось исключение RuntimeException.
8.0.0 | Теперь выбрасывает исключение ValueError, если смещение limit окажется меньше -1; ранее выбрасывалось исключение RuntimeException.

Примеры

Пример #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::getPosition »
  • PHP Manual
  • LimitIterator
  • Получение текущего элемента

LimitIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

LimitIterator::current — Получение текущего элемента

Описание

public LimitIterator::current(): mixed

Получает текущий элемент, на который ссылается внутренний указатель Iterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент или null, если такового нет.

Смотрите также

  • LimitIterator::key() - Получение текущего ключа
  • LimitIterator::next() - Перемещение к следующей позиции
  • LimitIterator::rewind() - Перемещает указатель на начальную позицию
  • LimitIterator::seek() - Перемещает итератор на заданную позицию
  • LimitIterator::valid() - Проверяет валидность текущего элемента


Возвращает текущую позицию

  • « LimitIterator::current
  • LimitIterator::key »
  • PHP Manual
  • LimitIterator
  • Возвращает текущую позицию

LimitIterator::getPosition

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

LimitIterator::getPosition — Возвращает текущую позицию

Описание

public LimitIterator::getPosition(): 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, PHP 8)

LimitIterator::key — Получение текущего ключа

Описание

public LimitIterator::key(): 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, PHP 8)

LimitIterator::next — Перемещение к следующей позиции

Описание

public LimitIterator::next(): 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, PHP 8)

LimitIterator::rewind — Перемещает указатель на начальную позицию

Описание

public LimitIterator::rewind(): 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, PHP 8)

LimitIterator::seek — Перемещает итератор на заданную позицию

Описание

public LimitIterator::seek(int $offset): int

Перемещает указатель на заданную позицию offset.

Список параметров

offset

Позиция, на которую требуется переместить указатель.

Возвращаемые значения

Возвращает смещение от начальной позиции после перемещения.

Ошибки

Выбрасывает исключение 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, PHP 8)

LimitIterator::valid — Проверяет валидность текущего элемента

Описание

public LimitIterator::valid(): bool

Проверяет, имеет ли текущий элемент допустимое значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • LimitIterator::current() - Получение текущего элемента
  • LimitIterator::key() - Получение текущего ключа
  • LimitIterator::rewind() - Перемещает указатель на начальную позицию
  • LimitIterator::next() - Перемещение к следующей позиции
  • LimitIterator::seek() - Перемещает итератор на заданную позицию


Класс MultipleIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Введение

Итератор, который последовательно перебирает по всем присоединённым итераторам

Обзор классов

class MultipleIterator implements Iterator {
/* Константы */
public const int MIT_NEED_ANY;
public const int MIT_NEED_ALL;
public const int MIT_KEYS_NUMERIC;
public const int MIT_KEYS_ASSOC;
/* Методы */
public __construct(int $flags = MultipleIterator::MIT_NEED_ALL | MultipleIterator::MIT_KEYS_NUMERIC)
public attachIterator(Iterator $iterator, string|int|null $info = null): void
public containsIterator(Iterator $iterator): bool
public countIterators(): int
public current(): array
public detachIterator(Iterator $iterator): void
public getFlags(): int
public key(): array
public next(): void
public rewind(): void
public setFlags(int $flags): void
public valid(): 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, PHP 8)

MultipleIterator::attachIterator — Присоединяет итератор

Описание

public MultipleIterator::attachIterator(Iterator $iterator, string|int|null $info = null): void

Присоединяет итератор.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Новый итератор для присоединения.

info

Ассоциативная информация для итератора (Iterator), которая должна быть представлена целым числом (int), строкой (string), или null.

Возвращаемые значения

Описание...

Ошибки

IllegalValueException, если параметр iterator недействителен, или если info содержит уже ассоциированную информацию.

Смотрите также

  • MultipleIterator::__construct() - Создаёт новый MultipleIterator


Создаёт новый MultipleIterator

  • « MultipleIterator::attachIterator
  • MultipleIterator::containsIterator »
  • PHP Manual
  • MultipleIterator
  • Создаёт новый MultipleIterator

MultipleIterator::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

MultipleIterator::countIterators — Получает число присоединённых итераторов

Описание

public MultipleIterator::countIterators(): int

Получает число присоединённых итераторов.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число присоединённых итераторов (в виде int).

Смотрите также

  • MultipleIterator::containsIterator() - Проверяет, присоединён ли итератор


Получает зарегистрированные итераторы

  • « MultipleIterator::countIterators
  • MultipleIterator::detachIterator »
  • PHP Manual
  • MultipleIterator
  • Получает зарегистрированные итераторы

MultipleIterator::current

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::current — Получает зарегистрированные итераторы

Описание

public MultipleIterator::current(): array

Получает результат выполнения current() зарегистрированных итераторов.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) всех текущих значений каждого присоединённого итератора.

Ошибки

RuntimeException, если итератор недействителен (начиная с PHP 8.1.0) или установлен режим MIT_NEED_ALL и по крайней мере один присоединённый итератор недействителен. Или IllegalValueException, если ключ имеет значение null, а флаг MIT_KEYS_ASSOC установлен.

Список изменений

Версия | Описание
8.1.0 | Теперь выбрасывается исключение RuntimeException, если MultipleIterator::key() вызывается на недопустимом итераторе. Ранее вместо этого возвращалось значение false.

Смотрите также

  • MultipleIterator::valid() - Проверяет корректность подытераторов


Отсоединяет итератор

  • « MultipleIterator::current
  • MultipleIterator::getFlags »
  • PHP Manual
  • MultipleIterator
  • Отсоединяет итератор

MultipleIterator::detachIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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, PHP 8)

MultipleIterator::getFlags — Получает информацию о флагах

Описание

public MultipleIterator::getFlags(): int

Получает информацию о флагах.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Информация о флагах, в виде int.

Смотрите также

  • Предопределённые константы
  • MultipleIterator::__construct() - Создаёт новый MultipleIterator
  • MultipleIterator::setFlags() - Устанавливает флаги


Получает зарегистрированные итераторы

  • « MultipleIterator::getFlags
  • MultipleIterator::next »
  • PHP Manual
  • MultipleIterator
  • Получает зарегистрированные итераторы

MultipleIterator::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::key — Получает зарегистрированные итераторы

Описание

public MultipleIterator::key(): array

Получает результат выполнения key() зарегистрированных итераторов.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) всех зарегистрированных итераторов.

Ошибки

RuntimeException, если итератор недействителен (начиная с PHP 8.1.0) или установлен режим MIT_NEED_ALL и по крайней мере один присоединённый итератор недействителен.

Вызов этого метода из foreach вызовет предупреждение "Возвращён неверный тип" ("Illegal type returned").

Список изменений

Версия | Описание
8.1.0 | Теперь выбрасывается исключение RuntimeException, если MultipleIterator::key() вызывается на недопустимом итераторе. Ранее вместо этого возвращалось значение false.

Смотрите также

  • MultipleIterator::current() - Получает зарегистрированные итераторы


Перемещает все присоединённые итераторы к своим следующим элементам

  • « MultipleIterator::key
  • MultipleIterator::rewind »
  • PHP Manual
  • MultipleIterator
  • Перемещает все присоединённые итераторы к своим следующим элементам

MultipleIterator::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::next — Перемещает все присоединённые итераторы к своим следующим элементам

Описание

public MultipleIterator::next(): void

Перемещает все присоединённые итераторы к своим следующим элементам.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • MultipleIterator::rewind() - Возвращает в начало все присоединённые итераторы


Возвращает в начало все присоединённые итераторы

  • « MultipleIterator::next
  • MultipleIterator::setFlags »
  • PHP Manual
  • MultipleIterator
  • Возвращает в начало все присоединённые итераторы

MultipleIterator::rewind

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

MultipleIterator::rewind — Возвращает в начало все присоединённые итераторы

Описание

public MultipleIterator::rewind(): void

Возвращает в начало все присоединённые итераторы.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • MultipleIterator::next() - Перемещает все присоединённые итераторы к своим следующим элементам


Устанавливает флаги

  • « MultipleIterator::rewind
  • MultipleIterator::valid »
  • PHP Manual
  • MultipleIterator
  • Устанавливает флаги

MultipleIterator::setFlags

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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, PHP 8)

MultipleIterator::valid — Проверяет корректность подытераторов

Описание

public MultipleIterator::valid(): bool

Проверяет корректность подытераторов.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true если один или все (в зависимости от флагов) подытераторы действительны; в противном случае - false

Смотрите также

  • MultipleIterator::__construct() - Создаёт новый MultipleIterator


Класс NoRewindIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Итератор игнорирует операции перемотки. Это позволяет обрабатывать итератор в нескольких частичных циклах foreach.

Обзор классов

class NoRewindIterator extends IteratorIterator {
/* Методы */
public __construct(Iterator $iterator)
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
/* Наследуемые методы */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Содержание

  • NoRewindIterator::__construct — Создаёт новый объект NoRewindIterator
  • NoRewindIterator::current — Получает текущее значение
  • 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, PHP 8)

NoRewindIterator::__construct — Создаёт новый объект NoRewindIterator

Описание

public NoRewindIterator::__construct(Iterator $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::key »
  • PHP Manual
  • NoRewindIterator
  • Получает текущее значение

NoRewindIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

NoRewindIterator::current — Получает текущее значение

Описание

public NoRewindIterator::current(): mixed

Получает текущее значение.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущее значение.

Смотрите также

  • NoRewindIterator::key() - Получает текущий ключ


Получает текущий ключ

  • « NoRewindIterator::current
  • NoRewindIterator::next »
  • PHP Manual
  • NoRewindIterator
  • Получает текущий ключ

NoRewindIterator::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

NoRewindIterator::key — Получает текущий ключ

Описание

public NoRewindIterator::key(): mixed

Получает текущий ключ.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий ключ.

Смотрите также

  • NoRewindIterator::next() - Перемещает итератор к следующему элементу


Перемещает итератор к следующему элементу

  • « NoRewindIterator::key
  • NoRewindIterator::rewind »
  • PHP Manual
  • NoRewindIterator
  • Перемещает итератор к следующему элементу

NoRewindIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

NoRewindIterator::next — Перемещает итератор к следующему элементу

Описание

public NoRewindIterator::next(): void

Перемещает итератор к следующему элементу.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • NoRewindIterator::rewind() - Предотвращает возврат внутреннего итератора в начало


Предотвращает возврат внутреннего итератора в начало

  • « NoRewindIterator::next
  • NoRewindIterator::valid »
  • PHP Manual
  • NoRewindIterator
  • Предотвращает возврат внутреннего итератора в начало

NoRewindIterator::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

NoRewindIterator::rewind — Предотвращает возврат внутреннего итератора в начало

Описание

public NoRewindIterator::rewind(): 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, PHP 8)

NoRewindIterator::valid — Проверяет итератор

Описание

public NoRewindIterator::valid(): bool

Проверяет, является ли итератор допустимым.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • NoRewindIterator::getInnerIterator()


Класс ParentIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Это расширенный класс от FilterIterator, позволяющий осуществить рекурсивную итерацию, используя класс RecursiveIteratorIterator, который показывает только те элементы, которые имеют потомков.

Обзор классов

class ParentIterator extends RecursiveFilterIterator {
/* Методы */
public __construct(RecursiveIterator $iterator)
public accept(): bool
public getChildren(): ParentIterator
public hasChildren(): bool
public next(): void
public rewind(): void
/* Наследуемые методы */
public RecursiveFilterIterator::getChildren(): ?RecursiveFilterIterator
public RecursiveFilterIterator::hasChildren(): bool
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Содержание

  • 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, PHP 8)

ParentIterator::accept — Определение доступности

Описание

public ParentIterator::accept(): 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, PHP 8)

ParentIterator::__construct — Конструктор класса ParentIterator

Описание

public ParentIterator::__construct(RecursiveIterator $iterator)

Создаёт новый объект класса ParentIterator на основе объекта-итератора.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Объект-итератор, на основе которого создаётся новый объект.


Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator

  • « ParentIterator::__construct
  • ParentIterator::hasChildren »
  • PHP Manual
  • ParentIterator
  • Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator

ParentIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ParentIterator::getChildren — Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator

Описание

public ParentIterator::getChildren(): ParentIterator

Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект (object).


Проверяет, имеет ли внутренний объект-итератор дочерние объекты

  • « ParentIterator::getChildren
  • ParentIterator::next »
  • PHP Manual
  • ParentIterator
  • Проверяет, имеет ли внутренний объект-итератор дочерние объекты

ParentIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ParentIterator::hasChildren — Проверяет, имеет ли внутренний объект-итератор дочерние объекты

Описание

public ParentIterator::hasChildren(): bool

Проверяет, имеет ли внутренний объект-итератор дочерние объекты.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Перемещает указатель на одну позицию вперёд

  • « ParentIterator::hasChildren
  • ParentIterator::rewind »
  • PHP Manual
  • ParentIterator
  • Перемещает указатель на одну позицию вперёд

ParentIterator::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ParentIterator::next — Перемещает указатель на одну позицию вперёд

Описание

public ParentIterator::next(): void

Перемещает указатель на одну позицию вперёд.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Переводит итератор на начало

  • « ParentIterator::next
  • RecursiveArrayIterator »
  • PHP Manual
  • ParentIterator
  • Переводит итератор на начало

ParentIterator::rewind

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ParentIterator::rewind — Переводит итератор на начало

Описание

public ParentIterator::rewind(): void

Перемещает указатель на начальную позицию.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Класс RecursiveArrayIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Этот итератор позволяет сбросить и изменить значения и ключи во время прохода по массивам и объектам таким же образом, как и ArrayIterator. Кроме того, можно перебирать текущие записи итератора.

Обзор классов

class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator {
/* Наследуемые константы */
public const int ArrayIterator::STD_PROP_LIST;
public const int ArrayIterator::ARRAY_AS_PROPS;
/* Константы */
public const int CHILD_ARRAYS_ONLY;
/* Методы */
public getChildren(): ?RecursiveArrayIterator
public hasChildren(): bool
/* Наследуемые методы */
public ArrayIterator::__construct(array|object $array = [], int $flags = 0)
public ArrayIterator::append(mixed $value): void
public ArrayIterator::asort(int $flags = SORT_REGULAR): true
public ArrayIterator::count(): int
public ArrayIterator::current(): mixed
public ArrayIterator::getArrayCopy(): array
public ArrayIterator::getFlags(): int
public ArrayIterator::key(): string|int|null
public ArrayIterator::ksort(int $flags = SORT_REGULAR): true
public ArrayIterator::natcasesort(): true
public ArrayIterator::natsort(): true
public ArrayIterator::next(): void
public ArrayIterator::offsetExists(mixed $key): bool
public ArrayIterator::offsetGet(mixed $key): mixed
public ArrayIterator::offsetSet(mixed $key, mixed $value): void
public ArrayIterator::offsetUnset(mixed $key): void
public ArrayIterator::rewind(): void
public ArrayIterator::seek(int $offset): void
public ArrayIterator::serialize(): string
public ArrayIterator::setFlags(int $flags): void
public ArrayIterator::uasort(callable $callback): true
public ArrayIterator::uksort(callable $callback): true
public ArrayIterator::unserialize(string $data): void
public ArrayIterator::valid(): bool
}

Предопределённые константы

Флаги RecursiveArrayIterator

RecursiveArrayIterator::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, PHP 8)

RecursiveArrayIterator::getChildren — Возвращает итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object)

Описание

public RecursiveArrayIterator::getChildren(): ?RecursiveArrayIterator

Возвращает итератор для текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object); Возвращает null в случае возникновения ошибки.

Ошибки

Метод выбрасывает исключение 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, PHP 8)

RecursiveArrayIterator::hasChildren — Определяет, является ли текущий элемент массивом или объектом

Описание

public RecursiveArrayIterator::hasChildren(): 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, PHP 8)

Введение

...

Обзор классов

class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator {
/* Наследуемые константы */
public const int CachingIterator::CALL_TOSTRING;
public const int CachingIterator::CATCH_GET_CHILD;
public const int CachingIterator::TOSTRING_USE_KEY;
public const int CachingIterator::TOSTRING_USE_CURRENT;
public const int CachingIterator::TOSTRING_USE_INNER;
public const int CachingIterator::FULL_CACHE;
/* Методы */
public __construct(Iterator $iterator, int $flags = RecursiveCachingIterator::CALL_TOSTRING)
public getChildren(): ?RecursiveCachingIterator
public hasChildren(): bool
/* Наследуемые методы */
public CachingIterator::count(): int
public CachingIterator::current(): mixed
public CachingIterator::getCache(): array
public CachingIterator::getFlags(): void
public CachingIterator::hasNext(): bool
public CachingIterator::key(): scalar
public CachingIterator::next(): void
public CachingIterator::offsetExists(string $key): bool
public CachingIterator::offsetGet(string $key): mixed
public CachingIterator::offsetSet(string $key, mixed $value): void
public CachingIterator::offsetUnset(string $key): void
public CachingIterator::rewind(): void
public CachingIterator::setFlags(int $flags): void
public CachingIterator::__toString(): string
public CachingIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Содержание

  • RecursiveCachingIterator::__construct — Конструктор
  • RecursiveCachingIterator::getChildren — Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveCachingIterator
  • RecursiveCachingIterator::hasChildren — Проверяет, имеет ли текущий элемент внутреннего итератора дочерние элементы


Конструктор

  • « RecursiveCachingIterator
  • RecursiveCachingIterator::getChildren »
  • PHP Manual
  • RecursiveCachingIterator
  • Конструктор

RecursiveCachingIterator::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveCachingIterator::__construct — Конструктор

Описание

public RecursiveCachingIterator::__construct(Iterator $iterator, int $flags = RecursiveCachingIterator::CALL_TOSTRING)

Создаёт новый RecursiveCachingIterator, который состоит из переданного итератора (iterator).

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Используемый итератор.

flags

Флаги. Используйте CALL_TOSTRING для того, чтобы вызвать RecursiveCachingIterator::__toString() для каждого элемента (по умолчанию), и/или CATCH_GET_CHILD для перехвата исключений при попытке получения дочерних элементов.

Смотрите также

  • CachingIterator::__construct() - Создаёт новый объект CachingIterator для итератора


Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveCachingIterator

  • « RecursiveCachingIterator::__construct
  • RecursiveCachingIterator::hasChildren »
  • PHP Manual
  • RecursiveCachingIterator
  • Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveCachingIterator

RecursiveCachingIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveCachingIterator::getChildren — Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveCachingIterator

Описание

public RecursiveCachingIterator::getChildren(): ?RecursiveCachingIterator
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Дочерние элементы внутреннего итератора, в виде объекта RecursiveCachingIterator; Возвращает null, если элементы внутреннего оператора отсутствуют.


Проверяет, имеет ли текущий элемент внутреннего итератора дочерние элементы

  • « RecursiveCachingIterator::getChildren
  • RecursiveCallbackFilterIterator »
  • PHP Manual
  • RecursiveCachingIterator
  • Проверяет, имеет ли текущий элемент внутреннего итератора дочерние элементы

RecursiveCachingIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveCachingIterator::hasChildren — Проверяет, имеет ли текущий элемент внутреннего итератора дочерние элементы

Описание

public RecursiveCachingIterator::hasChildren(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если внутренний итератор имеет дочерние элементы; в противном случае - false


Класс RecursiveCallbackFilterIterator

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Введение

Обзор классов

class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements RecursiveIterator {
/* Методы */
public __construct(RecursiveIterator $iterator, callable $callback)
public getChildren(): RecursiveCallbackFilterIterator
public hasChildren(): bool
/* Наследуемые методы */
public CallbackFilterIterator::accept(): bool
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): 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, PHP 8)

RecursiveCallbackFilterIterator::__construct — Создаёт объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator

Описание

public RecursiveCallbackFilterIterator::__construct(RecursiveIterator $iterator, callable $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, PHP 8)

RecursiveCallbackFilterIterator::getChildren — Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator

Описание

public RecursiveCallbackFilterIterator::getChildren(): 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, PHP 8)

RecursiveCallbackFilterIterator::hasChildren — Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы

Описание

public RecursiveCallbackFilterIterator::hasChildren(): 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, PHP 8)

Введение

Класс RecursiveDirectoryIterator предоставляет интерфейс для рекурсивного перебора каталогов файловой системы.

Обзор классов

class RecursiveDirectoryIterator extends FilesystemIterator implements RecursiveIterator {
/* Наследуемые константы */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Методы */
public __construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)
public getChildren(): RecursiveDirectoryIterator
public getSubPath(): string
public getSubPathname(): string
public hasChildren(bool $allowLinks = false): bool
public key(): string
public next(): void
public rewind(): void
/* Наследуемые методы */
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Содержание

  • 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, PHP 8)

RecursiveDirectoryIterator::__construct — Конструктор класса RecursiveDirectoryIterator

Описание

public RecursiveDirectoryIterator::__construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)

Создаёт новый объект класса RecursiveDirectoryIterator(), используя заданный путь directory.

Список параметров

directory

Путь к директории, по которой будет осуществляться навигация.

flags

Можно установить несколько флагов от которых будет зависеть поведение некоторых методов. Список возможных флагов можно найти на странице Предопределённых констант класса FilesystemIterator. Флаги можно задать позднее методом FilesystemIterator::setFlags().

Ошибки

Выбрасывает исключение UnexpectedValueException, если директория directory не существует.

Выбрасывает исключение ValueError, если параметр directory содержит пустую строку.

Список изменений

Версия | Описание
8.0.0 | Теперь выбрасывает исключение ValueError, если параметр directory содержит пустую строку. ранее выбрасывалось исключение RuntimeException.

Примеры

Пример #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, PHP 8)

RecursiveDirectoryIterator::getChildren — Если текущий элемент является директорией, метод возвращает для неё итератор

Описание

public RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя файла, информация о файле или ссылка на объект $this. Что именно будет возвращаться зависит от флагов настроек. Смотрите дополнительно Константы FilesystemIterator.


Возвращает путь к поддиректории

  • « RecursiveDirectoryIterator::getChildren
  • RecursiveDirectoryIterator::getSubPathname »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Возвращает путь к поддиректории

RecursiveDirectoryIterator::getSubPath

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveDirectoryIterator::getSubPath — Возвращает путь к поддиректории

Описание

public RecursiveDirectoryIterator::getSubPath(): 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, PHP 8)

RecursiveDirectoryIterator::getSubPathname — Возвращает путь к поддиректории и имя файла

Описание

public RecursiveDirectoryIterator::getSubPathname(): 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, PHP 8)

RecursiveDirectoryIterator::hasChildren — Определяет, является ли текущий элемент директорией

Описание

public RecursiveDirectoryIterator::hasChildren(bool $allowLinks = false): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

allowLinks

Возвращаемые значения

Возвращает true, если текущий элемент является директорией, причём отличной от '.' и '..'


Возвращает путь и имя файла текущего элемента

  • « RecursiveDirectoryIterator::hasChildren
  • RecursiveDirectoryIterator::next »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Возвращает путь и имя файла текущего элемента

RecursiveDirectoryIterator::key

(PHP 5, PHP 7, PHP 8)

RecursiveDirectoryIterator::key — Возвращает путь и имя файла текущего элемента

Описание

public RecursiveDirectoryIterator::key(): string
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь и имя файла текущего элемента.


Переход к следующему элементу

  • « RecursiveDirectoryIterator::key
  • RecursiveDirectoryIterator::rewind »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Переход к следующему элементу

RecursiveDirectoryIterator::next

(PHP 5, PHP 7, PHP 8)

RecursiveDirectoryIterator::next — Переход к следующему элементу

Описание

public RecursiveDirectoryIterator::next(): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Переводит итератор на начало директории

  • « RecursiveDirectoryIterator::next
  • RecursiveFilterIterator »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Переводит итератор на начало директории

RecursiveDirectoryIterator::rewind

(PHP 5, PHP 7, PHP 8)

RecursiveDirectoryIterator::rewind — Переводит итератор на начало директории

Описание

public RecursiveDirectoryIterator::rewind(): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Класс RecursiveFilterIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Этот абстрактный итератор отфильтровывает нежелательные значения для RecursiveIterator. Этот класс следует расширять для реализации пользовательских фильтров. Метод RecursiveFilterIterator::accept() необходимо реализовывать в подклассе.

Обзор классов

abstract class RecursiveFilterIterator extends FilterIterator implements RecursiveIterator {
/* Методы */
public __construct(RecursiveIterator $iterator)
public getChildren(): ?RecursiveFilterIterator
public hasChildren(): bool
/* Наследуемые методы */
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): 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, PHP 8)

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, PHP 8)

RecursiveFilterIterator::getChildren — Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator

Описание

public RecursiveFilterIterator::getChildren(): ?RecursiveFilterIterator

Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает RecursiveFilterIterator, содержащий дочерние элементы текущего элемента внутреннего итератора.

Смотрите также

  • RecursiveFilterIterator::hasChildren() - Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы
  • RecursiveIterator::getChildren() - Возвращает итератор для текущего элемента


Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы

  • « RecursiveFilterIterator::getChildren
  • RecursiveIteratorIterator »
  • PHP Manual
  • RecursiveFilterIterator
  • Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы

RecursiveFilterIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveFilterIterator::hasChildren — Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы

Описание

public RecursiveFilterIterator::hasChildren(): bool

Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если у текущего элемента внутреннего итератора есть дочерние элементы, false в противно случае.

Смотрите также

  • RecursiveFilterIterator::getChildren() - Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator
  • RecursiveIterator::hasChildren() - Определяет, можно ли для текущего элемента создать итератор


Класс RecursiveIteratorIterator

(PHP 5, PHP 7, PHP 8)

Введение

Может быть использован для перебора рекурсивных итераторов.

Обзор классов

class RecursiveIteratorIterator implements OuterIterator {
/* Константы */
public const int LEAVES_ONLY;
public const int SELF_FIRST;
public const int CHILD_FIRST;
public const int CATCH_GET_CHILD;
/* Методы */
public __construct(Traversable $iterator, int $mode = RecursiveIteratorIterator::LEAVES_ONLY, int $flags = 0)
public beginChildren(): void
public beginIteration(): void
public callGetChildren(): ?RecursiveIterator
public callHasChildren(): bool
public current(): mixed
public endChildren(): void
public endIteration(): void
public getDepth(): int
public getInnerIterator(): RecursiveIterator
public getMaxDepth(): int|false
public getSubIterator(?int $level = null): ?RecursiveIterator
public key(): mixed
public next(): void
public nextElement(): void
public rewind(): void
public setMaxDepth(int $maxDepth = -1): void
public valid(): bool
}

Предопределённые константы

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, PHP 8)

RecursiveIteratorIterator::beginChildren — Переход к первому дочернему элементу

Описание

public RecursiveIteratorIterator::beginChildren(): void

Метод вызывается после выполнения RecursiveIteratorIterator::getChildren(), а результат его работы аналогичен вызову RecursiveIteratorIterator::rewind().

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Начало итерации

  • « RecursiveIteratorIterator::beginChildren
  • RecursiveIteratorIterator::callGetChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Начало итерации

RecursiveIteratorIterator::beginIteration

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::beginIteration — Начало итерации

Описание

public RecursiveIteratorIterator::beginIteration(): void

Вызывается, чтобы начать итерацию (после первого вызова RecursiveIteratorIterator::rewind()).

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Получение дочерних элементов

  • « RecursiveIteratorIterator::beginIteration
  • RecursiveIteratorIterator::callHasChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение дочерних элементов

RecursiveIteratorIterator::callGetChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::callGetChildren — Получение дочерних элементов

Описание

public RecursiveIteratorIterator::callGetChildren(): ?RecursiveIterator

Получает дочерние элементы текущего элемента итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса RecursiveIterator() в случае успешного выполнения или false в случае возникновения ошибки.


Проверка, есть ли у элемента дочерние элементы

  • « RecursiveIteratorIterator::callGetChildren
  • RecursiveIteratorIterator::__construct »
  • PHP Manual
  • RecursiveIteratorIterator
  • Проверка, есть ли у элемента дочерние элементы

RecursiveIteratorIterator::callHasChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::callHasChildren — Проверка, есть ли у элемента дочерние элементы

Описание

public RecursiveIteratorIterator::callHasChildren(): bool

Вызывается для каждого элемента, чтобы проверить, есть ли у него дочерние элементы.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает, есть ли у элемента дочерние элементы.


Конструктор класса RecursiveIteratorIterator

  • « RecursiveIteratorIterator::callHasChildren
  • RecursiveIteratorIterator::current »
  • PHP Manual
  • RecursiveIteratorIterator
  • Конструктор класса RecursiveIteratorIterator

RecursiveIteratorIterator::__construct

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

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, PHP 8)

RecursiveIteratorIterator::current — Получает значение текущего элемента

Описание

public RecursiveIteratorIterator::current(): mixed
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение текущего элемента.


Окончание дочерних элементов

  • « RecursiveIteratorIterator::current
  • RecursiveIteratorIterator::endIteration »
  • PHP Manual
  • RecursiveIteratorIterator
  • Окончание дочерних элементов

RecursiveIteratorIterator::endChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::endChildren — Окончание дочерних элементов

Описание

public RecursiveIteratorIterator::endChildren(): void

Вызывается, когда закончились элементы, находящиеся на одном уровне родства.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Окончание итерации

  • « RecursiveIteratorIterator::endChildren
  • RecursiveIteratorIterator::getDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Окончание итерации

RecursiveIteratorIterator::endIteration

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::endIteration — Окончание итерации

Описание

public RecursiveIteratorIterator::endIteration(): void

Вызывается по завершении итерации (когда метод RecursiveIteratorIterator::valid() впервые вернёт false).

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Определяет текущую глубину рекурсии

  • « RecursiveIteratorIterator::endIteration
  • RecursiveIteratorIterator::getInnerIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Определяет текущую глубину рекурсии

RecursiveIteratorIterator::getDepth

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::getDepth — Определяет текущую глубину рекурсии

Описание

public RecursiveIteratorIterator::getDepth(): int
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая глубина рекурсии навигации.


Получение ссылки на внутренний итератор

  • « RecursiveIteratorIterator::getDepth
  • RecursiveIteratorIterator::getMaxDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение ссылки на внутренний итератор

RecursiveIteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::getInnerIterator — Получение ссылки на внутренний итератор

Описание

public RecursiveIteratorIterator::getInnerIterator(): RecursiveIterator

Получает ссылку на активный в данный момент внутренний итератор.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ссылка на внутренний объект-итератор.


Получение максимальной глубины рекурсии

  • « RecursiveIteratorIterator::getInnerIterator
  • RecursiveIteratorIterator::getSubIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение максимальной глубины рекурсии

RecursiveIteratorIterator::getMaxDepth

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::getMaxDepth — Получение максимальной глубины рекурсии

Описание

public RecursiveIteratorIterator::getMaxDepth(): int|false

Определяет максимальную допустимую глубину вложенности элементов.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Максимальная глубина рекурсии или false, если глубина не ограничена.

Смотрите также

  • RecursiveIteratorIterator::setMaxDepth() - Установка максимальной глубины вложенности


Получение активного вложенного итератора

  • « RecursiveIteratorIterator::getMaxDepth
  • RecursiveIteratorIterator::key »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение активного вложенного итератора

RecursiveIteratorIterator::getSubIterator

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::getSubIterator — Получение активного вложенного итератора

Описание

public RecursiveIteratorIterator::getSubIterator(?int $level = null): ?RecursiveIterator
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

Возвращаемые значения

Активный вложенный итератор в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | level теперь допускает значение null.


Получение ключа текущего элемента

  • « RecursiveIteratorIterator::getSubIterator
  • RecursiveIteratorIterator::next »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение ключа текущего элемента

RecursiveIteratorIterator::key

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::key — Получение ключа текущего элемента

Описание

public RecursiveIteratorIterator::key(): mixed
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий ключ.


Перемещение итератора к следующему элементу

  • « RecursiveIteratorIterator::key
  • RecursiveIteratorIterator::nextElement »
  • PHP Manual
  • RecursiveIteratorIterator
  • Перемещение итератора к следующему элементу

RecursiveIteratorIterator::next

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::next — Перемещение итератора к следующему элементу

Описание

public RecursiveIteratorIterator::next(): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Следующий элемент

  • « RecursiveIteratorIterator::next
  • RecursiveIteratorIterator::rewind »
  • PHP Manual
  • RecursiveIteratorIterator
  • Следующий элемент

RecursiveIteratorIterator::nextElement

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::nextElement — Следующий элемент

Описание

public RecursiveIteratorIterator::nextElement(): void

Вызывается, когда следующий элемент становится доступен.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Перемещает итератор на первый элемент самого верхнего уровня вложенности внутреннего итератора

  • « RecursiveIteratorIterator::nextElement
  • RecursiveIteratorIterator::setMaxDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Перемещает итератор на первый элемент самого верхнего уровня вложенности внутреннего итератора

RecursiveIteratorIterator::rewind

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::rewind — Перемещает итератор на первый элемент самого верхнего уровня вложенности внутреннего итератора

Описание

public RecursiveIteratorIterator::rewind(): void
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Установка максимальной глубины вложенности

  • « RecursiveIteratorIterator::rewind
  • RecursiveIteratorIterator::valid »
  • PHP Manual
  • RecursiveIteratorIterator
  • Установка максимальной глубины вложенности

RecursiveIteratorIterator::setMaxDepth

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIteratorIterator::setMaxDepth — Установка максимальной глубины вложенности

Описание

public RecursiveIteratorIterator::setMaxDepth(int $maxDepth = -1): void

Задаёт максимальную глубину вложенности элементов.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

maxDepth

Максимально допустимая глубина вложенности. -1 снимает ограничение на глубину рекурсии.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение Exception, если аргумент maxDepth меньше -1.


Проверка допустимости текущей позиции

  • « RecursiveIteratorIterator::setMaxDepth
  • RecursiveRegexIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Проверка допустимости текущей позиции

RecursiveIteratorIterator::valid

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::valid — Проверка допустимости текущей позиции

Описание

public RecursiveIteratorIterator::valid(): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если текущая позиция допустима, false в противном случае.


Класс RecursiveRegexIterator

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Введение

Этот рекурсивный итератор может фильтровать другой рекурсивный итератор с помощью регулярных выражений.

Обзор классов

class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator {
/* Наследуемые константы */
public const int RegexIterator::USE_KEY;
public const int RegexIterator::INVERT_MATCH;
public const int RegexIterator::MATCH;
public const int RegexIterator::GET_MATCH;
public const int RegexIterator::ALL_MATCHES;
public const int RegexIterator::SPLIT;
public const int RegexIterator::REPLACE;
/* Наследуемые свойства */
public ?string $replacement = null;
/* Методы */
public __construct(
RecursiveIterator $iterator,
string $pattern,
int $mode = RecursiveRegexIterator::MATCH,
int $flags = 0,
int $pregFlags = 0
)
public getChildren(): RecursiveRegexIterator
public hasChildren(): bool
/* Наследуемые методы */
public RegexIterator::accept(): bool
public RegexIterator::getFlags(): int
public RegexIterator::getMode(): int
public RegexIterator::getPregFlags(): int
public RegexIterator::getRegex(): string
public RegexIterator::setFlags(int $flags): void
public RegexIterator::setMode(int $mode): void
public RegexIterator::setPregFlags(int $pregFlags): void
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Содержание

  • RecursiveRegexIterator::__construct — Конструктор класса RecursiveRegexIterator
  • RecursiveRegexIterator::getChildren — Возвращает итератор для текущего элемента
  • RecursiveRegexIterator::hasChildren — Определяет, возможна ли навигация по содержимому текущего элемента


Конструктор класса RecursiveRegexIterator

  • « RecursiveRegexIterator
  • RecursiveRegexIterator::getChildren »
  • PHP Manual
  • RecursiveRegexIterator
  • Конструктор класса RecursiveRegexIterator

RecursiveRegexIterator::__construct

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

RecursiveRegexIterator::__construct — Конструктор класса RecursiveRegexIterator

Описание

public RecursiveRegexIterator::__construct(
RecursiveIterator $iterator,
string $pattern,
int $mode = RecursiveRegexIterator::MATCH,
int $flags = 0,
int $pregFlags = 0
)

Создаёт новый объект-итератор регулярного выражения.

Список параметров

iterator

Рекурсивный итератор к которому требуется применить фильтр на основе регулярного выражения.

pattern

Регулярное выражение.

mode

Режим работы, список доступных режимов приведён в описании метода RegexIterator::setMode().

flags

Специальные флаги. Список доступных флагов приведён в описании метода RegexIterator::setFlags().

pregFlags

Флаги регулярного выражения. Список флагов зависит от режима работы:

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, PHP 8)

RecursiveRegexIterator::getChildren — Возвращает итератор для текущего элемента

Описание

public RecursiveRegexIterator::getChildren(): 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, PHP 8)

RecursiveRegexIterator::hasChildren — Определяет, возможна ли навигация по содержимому текущего элемента

Описание

public RecursiveRegexIterator::hasChildren(): 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, PHP 8)

Введение

Позволяет производить итерации по RecursiveIterator для генерации графического дерева в ASCII.

Обзор классов

class RecursiveTreeIterator extends RecursiveIteratorIterator {
/* Наследуемые константы */
public const int RecursiveIteratorIterator::LEAVES_ONLY;
public const int RecursiveIteratorIterator::SELF_FIRST;
public const int RecursiveIteratorIterator::CHILD_FIRST;
public const int RecursiveIteratorIterator::CATCH_GET_CHILD;
/* Константы */
public const int BYPASS_CURRENT;
public const int BYPASS_KEY;
public const int PREFIX_LEFT;
public const int PREFIX_MID_HAS_NEXT = 1;
public const int PREFIX_MID_LAST = 2;
public const int PREFIX_END_HAS_NEXT = 3;
public const int PREFIX_END_LAST = 4;
public const int PREFIX_RIGHT = 5;
/* Методы */
public __construct(
RecursiveIterator|IteratorAggregate $iterator,
int $flags = RecursiveTreeIterator::BYPASS_KEY,
int $cachingIteratorFlags = CachingIterator::CATCH_GET_CHILD,
int $mode = RecursiveTreeIterator::SELF_FIRST
)
public beginChildren(): void
public beginIteration(): RecursiveIterator
public callGetChildren(): RecursiveIterator
public callHasChildren(): bool
public current(): mixed
public endChildren(): void
public endIteration(): void
public getEntry(): string
public getPostfix(): string
public getPrefix(): string
public key(): mixed
public next(): void
public nextElement(): void
public rewind(): void
public setPostfix(string $postfix): void
public setPrefixPart(int $part, string $value): void
public valid(): bool
/* Наследуемые методы */
public RecursiveIteratorIterator::beginChildren(): void
public RecursiveIteratorIterator::beginIteration(): void
public RecursiveIteratorIterator::callGetChildren(): ?RecursiveIterator
public RecursiveIteratorIterator::callHasChildren(): bool
public RecursiveIteratorIterator::current(): mixed
public RecursiveIteratorIterator::endChildren(): void
public RecursiveIteratorIterator::endIteration(): void
public RecursiveIteratorIterator::getDepth(): int
public RecursiveIteratorIterator::getInnerIterator(): RecursiveIterator
public RecursiveIteratorIterator::getMaxDepth(): int|false
public RecursiveIteratorIterator::getSubIterator(?int $level = null): ?RecursiveIterator
public RecursiveIteratorIterator::key(): mixed
public RecursiveIteratorIterator::next(): void
public RecursiveIteratorIterator::nextElement(): void
public RecursiveIteratorIterator::rewind(): void
public RecursiveIteratorIterator::setMaxDepth(int $maxDepth = -1): void
public RecursiveIteratorIterator::valid(): 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, PHP 8)

RecursiveTreeIterator::beginChildren — Начало навигации по потомкам элемента

Описание

public RecursiveTreeIterator::beginChildren(): void

Вызывается, когда обход дерева спускается на один уровень вниз.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Начало навигации

  • « RecursiveTreeIterator::beginChildren
  • RecursiveTreeIterator::callGetChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Начало навигации

RecursiveTreeIterator::beginIteration

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::beginIteration — Начало навигации

Описание

public RecursiveTreeIterator::beginIteration(): RecursiveIterator

Вызывается, когда начинается навигация по элементам (после первого вызова метода RecursiveTreeIterator::rewind()).

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект RecursiveIterator.


Получение дочерних элементов

  • « RecursiveTreeIterator::beginIteration
  • RecursiveTreeIterator::callHasChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение дочерних элементов

RecursiveTreeIterator::callGetChildren

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::callGetChildren — Получение дочерних элементов

Описание

public RecursiveTreeIterator::callGetChildren(): RecursiveIterator

Возвращает итератор для элементов-потомков текущего элемента.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект RecursiveIterator.


Проверка, есть ли у текущего элемента потомки

  • « RecursiveTreeIterator::callGetChildren
  • RecursiveTreeIterator::__construct »
  • PHP Manual
  • RecursiveTreeIterator
  • Проверка, есть ли у текущего элемента потомки

RecursiveTreeIterator::callHasChildren

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::callHasChildren — Проверка, есть ли у текущего элемента потомки

Описание

public RecursiveTreeIterator::callHasChildren(): bool

Проверяет, есть ли у текущего элемента потомки.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если у текущего элемента есть дочерние, false в противном случае.


Конструктор класса RecursiveTreeIterator

  • « RecursiveTreeIterator::callHasChildren
  • RecursiveTreeIterator::current »
  • PHP Manual
  • RecursiveTreeIterator
  • Конструктор класса RecursiveTreeIterator

RecursiveTreeIterator::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::__construct — Конструктор класса RecursiveTreeIterator

Описание

public RecursiveTreeIterator::__construct(
RecursiveIterator|IteratorAggregate $iterator,
int $flags = RecursiveTreeIterator::BYPASS_KEY,
int $cachingIteratorFlags = CachingIterator::CATCH_GET_CHILD,
int $mode = RecursiveTreeIterator::SELF_FIRST
)

Создаёт новый объект класса RecursiveTreeIterator на основе рекурсивного объекта-итератора.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Объект класса 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, PHP 8)

RecursiveTreeIterator::current — Получение текущего элемента

Описание

public RecursiveTreeIterator::current(): mixed

Возвращает текущий элемент с префиксом и суффиксом.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент с префиксом и суффиксом.


Завершение навигации по потомкам элемента

  • « RecursiveTreeIterator::current
  • RecursiveTreeIterator::endIteration »
  • PHP Manual
  • RecursiveTreeIterator
  • Завершение навигации по потомкам элемента

RecursiveTreeIterator::endChildren

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::endChildren — Завершение навигации по потомкам элемента

Описание

public RecursiveTreeIterator::endChildren(): void

Вызывается, когда дочерние элементы одного уровня закончились.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Завершение навигации

  • « RecursiveTreeIterator::endChildren
  • RecursiveTreeIterator::getEntry »
  • PHP Manual
  • RecursiveTreeIterator
  • Завершение навигации

RecursiveTreeIterator::endIteration

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::endIteration — Завершение навигации

Описание

public RecursiveTreeIterator::endIteration(): void

Вызывается по завершении навигации (когда метод RecursiveTreeIterator::valid() впервые вернёт false).

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Получение поддерева, корнем которого является текущий элемент

  • « RecursiveTreeIterator::endIteration
  • RecursiveTreeIterator::getPostfix »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение поддерева, корнем которого является текущий элемент

RecursiveTreeIterator::getEntry

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::getEntry — Получение поддерева, корнем которого является текущий элемент

Описание

public RecursiveTreeIterator::getEntry(): string

Получает поддерево, корнем которого является текущий элемент.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает поддерево, корнем которого является текущий элемент.


Получение суффикса

  • « RecursiveTreeIterator::getEntry
  • RecursiveTreeIterator::getPrefix »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение суффикса

RecursiveTreeIterator::getPostfix

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::getPostfix — Получение суффикса

Описание

public RecursiveTreeIterator::getPostfix(): string

Получает строку для помещения после текущего элемента.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку для помещения после текущего элемента.


Получение префикса

  • « RecursiveTreeIterator::getPostfix
  • RecursiveTreeIterator::key »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение префикса

RecursiveTreeIterator::getPrefix

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::getPrefix — Получение префикса

Описание

public RecursiveTreeIterator::getPrefix(): string

Получает строку для помещения перед текущим элементом.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку для помещения перед текущим элементом.


Получение ключа текущего элемента

  • « RecursiveTreeIterator::getPrefix
  • RecursiveTreeIterator::next »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение ключа текущего элемента

RecursiveTreeIterator::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::key — Получение ключа текущего элемента

Описание

public RecursiveTreeIterator::key(): mixed

Получает ключ текущего элемента с префиксом и суффиксом.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ключ текущего элемента с префиксом и суффиксом.


Переход к следующему элементу

  • « RecursiveTreeIterator::key
  • RecursiveTreeIterator::nextElement »
  • PHP Manual
  • RecursiveTreeIterator
  • Переход к следующему элементу

RecursiveTreeIterator::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::next — Переход к следующему элементу

Описание

public RecursiveTreeIterator::next(): void

Переход к следующему элементу.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Следующий элемент

  • « RecursiveTreeIterator::next
  • RecursiveTreeIterator::rewind »
  • PHP Manual
  • RecursiveTreeIterator
  • Следующий элемент

RecursiveTreeIterator::nextElement

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::nextElement — Следующий элемент

Описание

public RecursiveTreeIterator::nextElement(): void

Вызывается, когда следующий элемент становится доступным.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Перевод итератора в начало

  • « RecursiveTreeIterator::nextElement
  • RecursiveTreeIterator::setPostfix »
  • PHP Manual
  • RecursiveTreeIterator
  • Перевод итератора в начало

RecursiveTreeIterator::rewind

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::rewind — Перевод итератора в начало

Описание

public RecursiveTreeIterator::rewind(): void

Переводит итератор на первый элемент верхнего уровня элементов внутреннего итератора.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Установка постфикса

  • « RecursiveTreeIterator::rewind
  • RecursiveTreeIterator::setPrefixPart »
  • PHP Manual
  • RecursiveTreeIterator
  • Установка постфикса

RecursiveTreeIterator::setPostfix

(PHP 5 >= 5.5.3, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

RecursiveTreeIterator::valid — Проверка допустимости элемента

Описание

public RecursiveTreeIterator::valid(): bool

Проверяет, имеет ли текущий элемент допустимое значение.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если текущий элемент валиден, false в противном случае.


Класс RegexIterator

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Введение

Этот итератор может быть использован для фильтрации другого итератора на основе регулярных выражений.

Обзор классов

class RegexIterator extends FilterIterator {
/* Константы */
public const int USE_KEY;
public const int INVERT_MATCH;
public const int MATCH;
public const int GET_MATCH;
public const int ALL_MATCHES;
public const int SPLIT;
public const int REPLACE;
/* Свойства */
public ?string $replacement = null;
/* Методы */
public __construct(
Iterator $iterator,
string $pattern,
int $mode = RegexIterator::MATCH,
int $flags = 0,
int $pregFlags = 0
)
public accept(): bool
public getFlags(): int
public getMode(): int
public getPregFlags(): int
public getRegex(): string
public setFlags(int $flags): void
public setMode(int $mode): void
public setPregFlags(int $pregFlags): void
/* Наследуемые методы */
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): 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::INVERT_MATCH

Инвертирует возвращаемое значение RegexIterator::accept().

Свойства

replacement

Содержание

  • 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, PHP 8)

RegexIterator::accept — Проверка соответствия регулярному выражению

Описание

public RegexIterator::accept(): 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, PHP 8)

RegexIterator::__construct — Конструктор класса RegexIterator

Описание

public RegexIterator::__construct(
Iterator $iterator,
string $pattern,
int $mode = RegexIterator::MATCH,
int $flags = 0,
int $pregFlags = 0
)

Создаёт новый объект класса RegexIterator, который фильтрует элементы итератора Iterator основываясь на регулярном выражении.

Список параметров

iterator

Итератор, к элементам которого требуется применить фильтр.

pattern

Регулярное выражение, на основе которого проводится отбор элементов.

mode

Режим работы. Список возможных режимов можно посмотреть в описании к методу RegexIterator::setMode().

flags

Специальные флаги. Список возможных флагов приведён в описании к методу RegexIterator::setFlags().

pregFlags

Флаги регулярного выражения. Список возможных флагов зависит от режима работы:

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, если pattern задан некорректно.

Примеры

Пример #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, PHP 8)

RegexIterator::getFlags — Получение флагов настройки

Описание

public RegexIterator::getFlags(): 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, PHP 8)

RegexIterator::getMode — Возвращает режим работы

Описание

public RegexIterator::getMode(): 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, PHP 8)

RegexIterator::getPregFlags — Возвращает флаги регулярного выражения

Описание

public RegexIterator::getPregFlags(): 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, PHP 8)

RegexIterator::getRegex — Возвращает строку текущего регулярного выражения

Описание

public RegexIterator::getRegex(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Установка флагов

  • « RegexIterator::getRegex
  • RegexIterator::setMode »
  • PHP Manual
  • RegexIterator
  • Установка флагов

RegexIterator::setFlags

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

RegexIterator::setPregFlags — Задание флагов регулярного выражения

Описание

public RegexIterator::setPregFlags(int $pregFlags): void

Устанавливает флаги регулярного выражения.

Список параметров

pregFlags

Флаги настройки регулярного выражения. Список возможных флагов приведён в описании метода 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, PHP 8)

Введение

Классы, реализующие интерфейс Countable, могут быть использованы с функцией count().

Обзор интерфейсов

interface Countable {
/* Методы */
public count(): int
}

Содержание

  • Countable::count — Количество элементов объекта


Количество элементов объекта

  • « Countable
  • OuterIterator »
  • PHP Manual
  • Countable
  • Количество элементов объекта

Countable::count

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Countable::count — Количество элементов объекта

Описание

public Countable::count(): int

Этот метод выполняется при использовании count() на объекте, реализующем интерфейс Countable.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Пользовательское значение типа int.

Замечание:

Возвращаемое значение приводится к типу int.

Примеры

Пример #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, PHP 8)

Введение

Классы, реализующие OuterIterator, могут быть использованы для перебора итераторов.

Обзор интерфейсов

interface OuterIterator extends Iterator {
/* Методы */
public getInnerIterator(): ?Iterator
/* Наследуемые методы */
public Iterator::current(): mixed
public Iterator::key(): mixed
public Iterator::next(): void
public Iterator::rewind(): void
public Iterator::valid(): bool
}

Содержание

  • OuterIterator::getInnerIterator — Возвращает внутренний итератор для текущего элемента


Возвращает внутренний итератор для текущего элемента

  • « OuterIterator
  • RecursiveIterator »
  • PHP Manual
  • OuterIterator
  • Возвращает внутренний итератор для текущего элемента

OuterIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

OuterIterator::getInnerIterator — Возвращает внутренний итератор для текущего элемента

Описание

public OuterIterator::getInnerIterator(): ?Iterator

Возвращает внутренний итератор для текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внутренний итератор для текущего элемента, если он существует или null в противном случае.


Интерфейс RecursiveIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Классы, реализующие RecursiveIterator, могут быть использованы для рекурсивного перебора итераторов.

Обзор интерфейсов

interface RecursiveIterator extends Iterator {
/* Методы */
public getChildren(): ?RecursiveIterator
public hasChildren(): bool
/* Наследуемые методы */
public Iterator::current(): mixed
public Iterator::key(): mixed
public Iterator::next(): void
public Iterator::rewind(): void
public Iterator::valid(): bool
}

Содержание

  • RecursiveIterator::getChildren — Возвращает итератор для текущего элемента
  • RecursiveIterator::hasChildren — Определяет, можно ли для текущего элемента создать итератор


Возвращает итератор для текущего элемента

  • « RecursiveIterator
  • RecursiveIterator::hasChildren »
  • PHP Manual
  • RecursiveIterator
  • Возвращает итератор для текущего элемента

RecursiveIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIterator::getChildren — Возвращает итератор для текущего элемента

Описание

public RecursiveIterator::getChildren(): ?RecursiveIterator

Возвращает итератор для текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает итератор для текущей записи, если он существует или null в противном случае.

Смотрите также

  • RecursiveIterator::hasChildren() - Определяет, можно ли для текущего элемента создать итератор


Определяет, можно ли для текущего элемента создать итератор

  • « RecursiveIterator::getChildren
  • SeekableIterator »
  • PHP Manual
  • RecursiveIterator
  • Определяет, можно ли для текущего элемента создать итератор

RecursiveIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

RecursiveIterator::hasChildren — Определяет, можно ли для текущего элемента создать итератор

Описание

public RecursiveIterator::hasChildren(): bool

Определяет, можно ли для текущего элемента создать итератор методом RecursiveIterator::getChildren().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если по текущему элементу можно осуществлять итерацию, false в противном случае.

Смотрите также

  • RecursiveIterator::getChildren() - Возвращает итератор для текущего элемента


Интерфейс SeekableIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Итератор Seekable.

Обзор интерфейсов

interface SeekableIterator extends Iterator {
/* Методы */
public seek(int $offset): void
/* Наследуемые методы */
public Iterator::current(): mixed
public Iterator::key(): mixed
public Iterator::next(): void
public Iterator::rewind(): void
public Iterator::valid(): 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, PHP 8)

SeekableIterator::seek — Перемещается к позиции

Описание

public SeekableIterator::seek(int $offset): void

Перемещается к заданной позиции в итераторе.

Список параметров

offset

Позиция, к которой нужно переместиться.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Реализации должны выбрасывать исключение OutOfBoundsException, если offset недействительна.

Примеры

Пример #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, PHP 8)

Введение

Создаётся исключение, если callback-функция относится к неопределённой функции или если некоторые аргументы отсутствуют.

Обзор классов

class BadFunctionCallException extends LogicException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс BadMethodCallException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Создаётся исключение, если callback-функция относится к неопределённому методу или если некоторые аргументы отсутствуют.

Обзор классов

class BadMethodCallException extends BadFunctionCallException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс DomainException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Создаётся исключение, если значение не соответствует определённой допустимой области данных.

Обзор классов

class DomainException extends LogicException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс InvalidArgumentException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Создаётся исключение, если аргумент не соответствует ожидаемому типу.

Обзор классов

class InvalidArgumentException extends LogicException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс LengthException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Создаётся исключение, если длина недопустима.

Обзор классов

class LengthException extends LogicException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс LogicException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Исключение, которое представляет ошибку в логике программы. Такой тип исключений должен непосредственно привести к исправлениям в вашем коде.

Обзор классов

class LogicException extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс OutOfBoundsException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Выбрасывается исключение, если значение не является действительным ключом. Это представляет ошибки, которые не могут быть обнаружены во время компиляции.

Обзор классов

class OutOfBoundsException extends RuntimeException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс OutOfRangeException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Выбрасывается исключение при запросе несуществующего индекса. Это представляет ошибки, которые должны быть обнаружены во время компиляции.

Обзор классов

class OutOfRangeException extends LogicException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс OverflowException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Выбрасывается исключение при добавлении элемента в полный контейнер.

Обзор классов

class OverflowException extends RuntimeException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс RangeException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Выбрасывается исключение, чтобы указать ошибки диапазона во время выполнения программы. Как правило, это означает, что была арифметическая ошибка, отличная от недополнения/ переполнения. Это версия DomainException, предназначенная для времени выполнения.

Обзор классов

class RangeException extends RuntimeException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс RuntimeException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Выбрасывается исключение в случае возникновения ошибки, которая может быть найдена только во время выполнения.

Обзор классов

class RuntimeException extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс UnderflowException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Выбрасывается исключение при попытке произвести недопустимую операцию над пустым контейнером. Например, такую, как удаление элемента из пустого контейнера.

Обзор классов

class UnderflowException extends RuntimeException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс UnexpectedValueException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Выбрасывается исключение, если значение не совпадает с набором значений. Обычно это происходит, когда функция вызывает другую функцию и ожидает, что возвращаемое значение будет определённого типа или значением, не включая арифметические ошибки, или ошибки, связанные с буфером.

Обзор классов

class UnexpectedValueException extends RuntimeException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): 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, PHP 8)

class_implements — Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе

Описание

class_implements(object|string $object_or_class, bool $autoload = true): array|false

Функция возвращает массив имён интерфейсов, реализованных в заданном классе object_or_class и его родительских классах.

Список параметров

object_or_class

Объект (экземпляр класса) или строка (имя класса или интерфейса).

autoload

Нужно ли автоматически подгружать класс, если он ещё не загружен.

Возвращаемые значения

В случае успешного выполнения будет возвращён массив, если заданный класс не существует, возвращается false.

Примеры

Пример #1 Пример использования class_implements()

<?php

interface foo { }
class bar implements foo {}

print_r(class_implements(new bar));

// можно передавать имя класса вместо объекта
print_r(class_implements('bar'));

spl_autoload_register();

// использование автозагрузки для загрузки ещё незагруженного класса 'not_loaded'
print_r(class_implements('not_loaded', true));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [foo] => foo
)
Array
(
    [foo] => foo
)
Array
(
    [interface_of_not_loaded] => interface_of_not_loaded
)

Примечания

Замечание: Для проверки того, что объект реализует интерфейс, следует использовать instanceof или функцию is_a().

Смотрите также

  • class_parents() - Возвращает список родительских классов заданного класса
  • get_declared_interfaces() - Возвращает массив всех объявленных интерфейсов
  • is_a() - Проверяет, является ли объект указанным типом или подтипом
  • instanceof


Возвращает список родительских классов заданного класса

  • « class_implements
  • class_uses »
  • PHP Manual
  • Функции SPL
  • Возвращает список родительских классов заданного класса

class_parents

(PHP 5, PHP 7, PHP 8)

class_parents — Возвращает список родительских классов заданного класса

Описание

class_parents(object|string $object_or_class, bool $autoload = true): array|false

Эта функция возвращает массив с именами родительских классов заданного класса object_or_class.

Список параметров

object_or_class

Объект (экземпляр класса) или строка (имя класса).

autoload

Нужно ли автоматически подгружать класс, если он ещё не загружен.

Возвращаемые значения

В случае успешного выполнения будет возвращён массив, если заданный класс не существует, возвращается false.

Примеры

Пример #1 Пример использования class_parents()

<?php

class foo { }
class bar extends foo {}

print_r(class_parents(new bar));

// можно передавать имя класса вместо объекта
print_r(class_parents('bar'));

spl_autoload_register();

// использование автозагрузки для загрузки ещё незагруженного класса 'not_loaded'
print_r(class_parents('not_loaded', true));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [foo] => foo
)
Array
(
    [foo] => foo
)
Array
(
    [parent_of_not_loaded] => parent_of_not_loaded
)

Примечания

Замечание: Для проверки того, что объект реализует интерфейс, следует использовать instanceof или функцию is_a().

Смотрите также

  • class_implements() - Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе
  • is_a() - Проверяет, является ли объект указанным типом или подтипом
  • instanceof


Возвращает список трейтов, используемых заданным классом

  • « class_parents
  • iterator_apply »
  • PHP Manual
  • Функции SPL
  • Возвращает список трейтов, используемых заданным классом

class_uses

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

class_uses — Возвращает список трейтов, используемых заданным классом

Описание

class_uses(object|string $object_or_class, bool $autoload = true): array|false

Эта функция возвращает массив с именами трейтов, которые использует заданный класс object_or_class. В этот массив, однако, не попадут трейты, используемые в классах-родителях.

Список параметров

object_or_class

Объект (экземпляр класса) или строка (имя класса).

autoload

Нужно ли автоматически подгружать класс, если он ещё не загружен.

Возвращаемые значения

В случае успешного выполнения будет возвращён массив, если заданный класс не существует, возвращается false.

Примеры

Пример #1 Пример использования class_uses()

<?php

trait foo { }
class bar {
use foo;
}

print_r(class_uses(new bar));

print_r(class_uses('bar'));

spl_autoload_register();

// использование автозагрузки для загрузки ещё незагруженного класса '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, PHP 8)

iterator_apply — Вызывает функцию для каждого элемента в итераторе

Описание

iterator_apply(Traversable $iterator, callable $callback, ?array $args = null): int

Вызывает функцию для каждого элемента в итераторе.

Список параметров

iterator

Объект итератора для перебора.

callback

Функция обратного вызова, которая применяется к каждому элементу. Эта функция принимает только переданный args, поэтому он null по умолчанию. Например, если count($args) === 3, функция обратного вызова - тернарная.

Замечание: Функция должна возвращать true для того, чтобы продолжать процесс итерации над iterator.

args

Аргументы для передачи в функцию обратного вызова. Массив (array) аргументов; каждый элемент args передаётся в функцию обратной функции (callback) в виде отдельного аргумента.

Возвращаемые значения

Возвращает количество итераций.

Примеры

Пример #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, PHP 8)

iterator_count — Подсчитывает количество элементов в итераторе

Описание

iterator_count(Traversable|array $iterator): int

Подсчитывает количество элементов в итераторе. iterator_count() не гарантирует сохранение текущей позиции iterator.

Список параметров

iterator

Итератор, в котором производится подсчёт.

Возвращаемые значения

Количество элементов в итераторе (iterator).

Список изменений

Версия | Описание
8.2.0 | Тип параметра iterator был расширен с Traversable до Traversable|array.

Примеры

Пример #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, PHP 8)

iterator_to_array — Копирует итератор в массив

Описание

iterator_to_array(Traversable|array $iterator, bool $preserve_keys = true): array

Копирует элементы итератора в массив.

Список параметров

iterator

Копируемый итератор.

preserve_keys

Следует ли использовать ключи элементов итератора как индексы.

Если ключ является массивом (array) или объектом (object), то бросается предупреждение. Ключи со значением null преобразуются в пустую строку, ключи в виде чисел с плавающей точкой (float) обрезаются до их целочисленных (int) частей, ключи с ресурсами (resource) бросают предупреждение и преобразуются в их идентификаторы ресурса, а логические (bool) ключи преобразуются в целые числа.

Замечание:

Если параметр не задан, либо задан как true, дублирующиеся ключи будут перезаписаны. Последнее значение с заданным ключом будет в результирующем массиве. Установите этот параметр равным false для получения всех значений.

Возвращаемые значения

Массив, содержащий элементы iterator.

Список изменений

Версия | Описание
8.2.0 | Тип параметра iterator был расширен с Traversable до Traversable|array.

Примеры

Пример #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, PHP 8)

spl_autoload_call — Попытка загрузить класс всеми зарегистрированными функциями __autoload()

Описание

spl_autoload_call(string $class): void

Эту функцию можно использовать для ручного поиска класса или интерфейса, используя все зарегистрированные методы __autoload.

Список параметров

class

Имя искомого класса.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Регистрация и вывод расширений файлов для spl_autoload

  • « spl_autoload_call
  • spl_autoload_functions »
  • PHP Manual
  • Функции SPL
  • Регистрация и вывод расширений файлов для spl_autoload

spl_autoload_extensions

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload_extensions — Регистрация и вывод расширений файлов для spl_autoload

Описание

spl_autoload_extensions(?string $file_extensions = null): string

Эта функция может задавать расширения файлов, в которых callback-функция __autoload() будет искать классы и интерфейсы. spl_autoload() будет вызывать функцию __autoload и передавать ему эти расширения. Также эта функция может выводить уже зарегистрированные расширения файлов.

Замечание: Между заданными расширениями файлов не должно быть пробелов.

Список параметров

file_extensions

Если null, функция просто выведет список зарегистрированных на данный момент расширений, перечисленных через запятую. Чтобы изменить этот список, необходимо вызывать функцию, передав ей строку с расширениями, также перечисленными через запятую.

Возвращаемые значения

Список перечисленных через запятую расширений файлов для функции spl_autoload().

Список изменений

Версия | Описание
8.0.0 | file_extensions теперь допускает значение null.

Примеры

Пример #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, PHP 8)

spl_autoload_functions — Получение списка всех зарегистрированных функций __autoload()

Описание

spl_autoload_functions(): array

Получает список всех зарегистрированных функций __autoload().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) всех зарегистрированных в __autoload функций. Если функция не зарегистрирована или очередь автозагрузки не активирована, то возвращаемым значением будет пустой массив.

Список изменений

Версия | Описание
8.0.0 | Возвращаемое значение было обновлено и теперь всегда является массивом (array); ранее функция возвращала false, если очередь автозагрузки не была активирована.


Регистрирует заданную функцию в качестве реализации метода __autoload()

  • « spl_autoload_functions
  • spl_autoload_unregister »
  • PHP Manual
  • Функции SPL
  • Регистрирует заданную функцию в качестве реализации метода __autoload()

spl_autoload_register

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload_register — Регистрирует заданную функцию в качестве реализации метода __autoload()

Описание

spl_autoload_register(?callable $callback = null, bool $throw = true, bool $prepend = false): bool

Регистрирует функцию __autoload в предоставляемой SPL очереди. В результате очередь будет активирована, даже если ранее она была выключена.

Если в вашем скрипте реализована функция __autoload(), её
необходимо явно зарегистрировать в очереди __autoload. Это необходимо,
т.к. spl_autoload_register() полностью заменяет механизм
кеширования __autoload() функциями
spl_autoload() и
spl_autoload_call().

spl_autoload_register() позволяет задать несколько реализаций метода автозагрузки. Она создаёт очередь из функций автозагрузки в порядке их определения в скрипте, тогда как встроенная функция __autoload() может иметь только одну реализацию.

Список параметров

callback

Имя функции, реализующей метод spl_autoload(). Если null, будет зарегистрирована реализация по умолчанию.

callback(string $class): void
throw

Этот параметр определяет, должна ли spl_autoload_register() выбрасывать исключение, если зарегистрировать callback оказалось невозможным.

Внимание

Начиная с PHP 8.0.0 этот параметр игнорируется, а при установке значения false будет выдано уведомление. Функция spl_autoload_register() теперь всегда будет выбрасывать исключение TypeError в случае передачи некорректных аргументов.

prepend

Если передано значение true, spl_autoload_register() поместит указанную функцию в начало очереди вместо добавления в конец.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | callback теперь допускает значение null.

Примеры

Пример #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');

// Можно использовать анонимные функции
spl_autoload_register(function ($class) {
include 'classes/' . $class . '.class.php';
});

?>

Пример #2 Пример использования spl_autoload_register() в случае, если класс не загрузился

<?php

namespace Foobar;

class Foo {
static public function test($class) {
print '[['. $class .']]';
}
}

spl_autoload_register(__NAMESPACE__ .'\Foo::test');

new InexistentClass;

?>

Результатом выполнения данного примера будет что-то подобное:

[[Foobar\InexistentClass]]
Fatal error: Class 'Foobar\InexistentClass' not found in ...

Пример #3 Идентификатор будет предоставлен без ведущего обратного слеша

<?php

spl_autoload_register(static function ($class) {
var_dump($class);
});

class_exists('RelativeName');
class_exists('RelativeName\\WithNamespace');
class_exists('\\AbsoluteName');
class_exists('\\AbsoluteName\\WithNamespace');

?>

Результат выполнения данного примера:

string(12) "RelativeName"
string(26) "RelativeName\WithNamespace"
string(12) "AbsoluteName"
string(26) "AbsoluteName\WithNamespace"

Смотрите также

  • __autoload() - Попытка загрузить неопределённый класс


Отмена регистрации функции в качестве реализации метода __autoload()

  • « spl_autoload_register
  • spl_autoload »
  • PHP Manual
  • Функции SPL
  • Отмена регистрации функции в качестве реализации метода __autoload()

spl_autoload_unregister

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload_unregister — Отмена регистрации функции в качестве реализации метода __autoload()

Описание

spl_autoload_unregister(callable $callback): bool

Удаляет функцию из очереди автозагрузки. Если очередь была активна и после удаления функции окажется пустой, она будет автоматически деактивирована.

Когда эта функция приводит к деактивации очереди, любая функция __autoload, которая ранее существовала, не будет повторно активирована.

Список параметров

callback

Функция автозагрузки, регистрацию которой требуется снять.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Реализация по умолчанию метода __autoload()

  • « spl_autoload_unregister
  • spl_classes »
  • PHP Manual
  • Функции SPL
  • Реализация по умолчанию метода __autoload()

spl_autoload

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload — Реализация по умолчанию метода __autoload()

Описание

spl_autoload(string $class, ?string $file_extensions = null): void

Эта функция представляет из себя базовую реализацию метода __autoload(). Если она не указана и spl_autoload_register() вызывается без каких-либо параметров, то при каждом последующем вызове __autoload() будет использоваться именно эта функция.

Список параметров

class

Имя класса (и пространства имён), которое требуется загрузить.

file_extensions

По умолчанию функция будет искать файлы с расширениями .inc и .php. по всем include-путям, где может располагаться искомый класс.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Вызывает исключение LogicException, если класс не найден и отсутствуют другие зарегистрированные автозагрузчики.

Список изменений

Версия | Описание
8.0.0 | file_extensions теперь допускает значение null.


Возвращает доступные классы SPL

  • « spl_autoload
  • spl_object_hash »
  • PHP Manual
  • Функции SPL
  • Возвращает доступные классы SPL

spl_classes

(PHP 5, PHP 7, PHP 8)

spl_classes — Возвращает доступные классы SPL

Описание

spl_classes(): 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, PHP 8)

spl_object_hash — Возвращает хеш-идентификатор для объекта

Описание

spl_object_hash(object $object): string

Функция возвращает уникальный идентификатор для заданного объекта. Этот идентификатор можно использовать в качестве хеш-ключа для хранения объектов или для идентификации объектов, пока объект не будет уничтожен. Как только объект будет уничтожен, его хеш может быть повторно использован для других объектов. Поведение похоже на функцию spl_object_id().

Список параметров

object

Какой-либо объект.

Возвращаемые значения

Уникальная строка символов для каждого существующего на данный момент объекта и всегда одинаковая для каждого конкретного объекта.

Примеры

Пример #1 Пример использования spl_object_hash()

<?php
$id = spl_object_hash($object);
$storage[$id] = $object;
?>

Примечания

Замечание:

После уничтожения объекта, его хеш-идентификатор может быть использован для других объектов.

Замечание:

Хеши объектов следует сравнивать на идентичность с помощью === и !==, поскольку возвращаемый хеш может быть числовой строкой. Например, 0000000000000e600000000000000000.

Смотрите также

  • spl_object_id() - Получить целочисленный идентификатор объекта


Получить целочисленный идентификатор объекта

  • « spl_object_hash
  • Обработка файлов »
  • PHP Manual
  • Функции SPL
  • Получить целочисленный идентификатор объекта

spl_object_id

(PHP 7 >= 7.2.0, PHP 8)

spl_object_id — Получить целочисленный идентификатор объекта

Описание

spl_object_id(object $object): 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, PHP 8)

Введение

Класс SplFileInfo предлагает высокоуровневый объектно-ориентированный интерфейс к информации для отдельного файла.

Обзор классов

class SplFileInfo implements Stringable {
/* Методы */
public __construct(string $filename)
public getATime(): int|false
public getBasename(string $suffix = ""): string
public getCTime(): int|false
public getExtension(): string
public getFileInfo(?string $class = null): SplFileInfo
public getFilename(): string
public getGroup(): int|false
public getInode(): int|false
public getLinkTarget(): string|false
public getMTime(): int|false
public getOwner(): int|false
public getPath(): string
public getPathInfo(?string $class = null): ?SplFileInfo
public getPathname(): string
public getPerms(): int|false
public getRealPath(): string|false
public getSize(): int|false
public getType(): string|false
public isDir(): bool
public isExecutable(): bool
public isFile(): bool
public isLink(): bool
public isReadable(): bool
public isWritable(): bool
public openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public setFileClass(string $class = SplFileObject::class): void
public setInfoClass(string $class = SplFileInfo::class): void
public __toString(): string
}

Список изменений

Версия | Описание
8.0.0 | Класс SplFileInfo теперь реализует Stringable.

Содержание

  • 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, PHP 8)

SplFileInfo::__construct — Создать новый объект SplFileInfo

Описание

public SplFileInfo::__construct(string $filename)

Создаёт новый объект SplFileInfo для указанного имени файла. Файл не обязательно должен существовать или быть доступным для чтения.

Список параметров

filename

Путь к файлу.

Примеры

Пример #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, PHP 8)

SplFileInfo::getATime — Получает время последнего доступа к файлу

Описание

public SplFileInfo::getATime(): int|false

Получает время последнего доступа к файлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время последнего обращения к файлу в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выбрасывает RunTimeException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SplFileInfo::getATime()

<?php
$info = new SplFileInfo('example.jpg');
echo 'Последнего обращения к файлу в ' . date('g:i a', $info->getATime());
?>

Результатом выполнения данного примера будет что-то подобное:

Последнего обращения к файлу в 1:49 pm

Смотрите также

  • fileatime() - Возвращает время последнего доступа к файлу


Получает базовое имя файла

  • « SplFileInfo::getATime
  • SplFileInfo::getCTime »
  • PHP Manual
  • SplFileInfo
  • Получает базовое имя файла

SplFileInfo::getBasename

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

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, PHP 8)

SplFileInfo::getCTime — Возвращает время последнего изменения индексного дескриптора файла

Описание

public SplFileInfo::getCTime(): int|false

Возвращает время последнего изменения индексного дескриптора файла. Возвращает временную метку Unix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Время последнего изменения в виде временной метки Unix в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

В случае возникновения ошибки выбрасывает исключение RunTimeException.

Примеры

Пример #1 Пример использования SplFileInfo::getCTime()

<?php
$info = new SplFileInfo('example.jpg');
echo 'Время последнего изменения ' . date('g:i a', $info->getCTime());
?>

Результатом выполнения данного примера будет что-то подобное:

Время последнего изменения 1:49 pm

Смотрите также

  • filectime() - Возвращает время изменения индексного дескриптора файла
  • SplFileInfo::getATime() - Получает время последнего доступа к файлу
  • SplFileInfo::getMTime() - Получает время последнего изменения


Получает расширение файла

  • « SplFileInfo::getCTime
  • SplFileInfo::getFileInfo »
  • PHP Manual
  • SplFileInfo
  • Получает расширение файла

SplFileInfo::getExtension

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

SplFileInfo::getExtension — Получает расширение файла

Описание

public SplFileInfo::getExtension(): 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"

Примечания

Замечание:

Другой способ для получения расширения - использование функции 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, PHP 8)

SplFileInfo::getFileInfo — Получает объект SplFileInfo для файла

Описание

public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo

Этот метод получает объект SplFileInfo для указанного файла.

Список параметров

class

Имя производного от SplFileInfo класса для использования.

Возвращаемые значения

Объект SplFileInfo, созданный для файла.

Список изменений

Версия | Описание
8.0.0 | class теперь допускает значение null.

Смотрите также

  • SplFileInfo::setInfoClass() - Задаёт имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo и SplFileInfo::getPathInfo


Получает имя файла

  • « SplFileInfo::getFileInfo
  • SplFileInfo::getGroup »
  • PHP Manual
  • SplFileInfo
  • Получает имя файла

SplFileInfo::getFilename

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getFilename — Получает имя файла

Описание

public SplFileInfo::getFilename(): 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, PHP 8)

SplFileInfo::getGroup — Получает группу файла

Описание

public SplFileInfo::getGroup(): int|false

Получает группу файла. Идентификатор группы возвращается в числовом формате.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Идентификатор группы в числовом формате в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выбрасывает RuntimeException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SplFileInfo::getGroup()

<?php
$info = new SplFileInfo('example.jpg');
echo info->getFilename() . ' принадлежит группе ' . $info->getGroup() . "\n";
print_r(posix_getgrgid($info->getGroup()));
?>

Результатом выполнения данного примера будет что-то подобное:

example.jpg принадлежит группе 42
Array
(
    [name] => toons
    [passwd] => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid] => 42
)

Смотрите также

  • filegroup() - Получает идентификатор группы файла
  • posix_getgrgid() - Возвращает информацию о группе по её ID


Получает индексный дескриптор для файла

  • « SplFileInfo::getGroup
  • SplFileInfo::getLinkTarget »
  • PHP Manual
  • SplFileInfo
  • Получает индексный дескриптор для файла

SplFileInfo::getInode

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getInode — Получает индексный дескриптор для файла

Описание

public SplFileInfo::getInode(): int|false

Получает номер индексного дескриптора для объекта файловой системы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер индексного дескриптора для объекта файловой системы в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

В случае возникновения ошибки выбрасывает исключение RuntimeException.

Смотрите также

  • fileinode() - Возвращает индексный дескриптор файла


Получает путь ссылки

  • « SplFileInfo::getInode
  • SplFileInfo::getMTime »
  • PHP Manual
  • SplFileInfo
  • Получает путь ссылки

SplFileInfo::getLinkTarget

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

SplFileInfo::getLinkTarget — Получает путь ссылки

Описание

public SplFileInfo::getLinkTarget(): string|false

Получает целевой путь ссылки файловой системы.

Замечание:

Этот путь может не быть реальным расположением в файловой системе. Чтобы получить реальный путь файловой системы, используйте метод SplFileInfo::getRealPath().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целевой путь ссылки файловой системы в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

В случае возникновения ошибки выбрасывает исключение 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, PHP 8)

SplFileInfo::getMTime — Получает время последнего изменения

Описание

public SplFileInfo::getMTime(): int|false

Возвращает время, когда содержимое файла было изменено. Время возвращается в формате временной метки Unix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время последнего изменения файла в формате временной метки Unix в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SplFileInfo::getMTime()

<?php
$info = new SplFileInfo('example.jpg');
echo 'Последнее изменение в ' . date('g:i a', $info->getMTime());
?>

Результатом выполнения данного примера будет что-то подобное:

Последнее изменение в 1:49 pm

Смотрите также

  • filemtime() - Возвращает время последнего изменения файла
  • SplFileInfo::getATime() - Получает время последнего доступа к файлу
  • SplFileInfo::getCTime() - Возвращает время последнего изменения индексного дескриптора файла


Получает владельца файла

  • « SplFileInfo::getMTime
  • SplFileInfo::getPath »
  • PHP Manual
  • SplFileInfo
  • Получает владельца файла

SplFileInfo::getOwner

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getOwner — Получает владельца файла

Описание

public SplFileInfo::getOwner(): int|false

Получает владельца файла. Идентификатор владельца возвращается в числовом формате.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Идентификатор владельца файла в виде числа в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

В случае возникновения ошибки выбрасывает исключение RuntimeException.

Примеры

Пример #1 Пример использования SplFileInfo::getOwner()

<?php
$info = new SplFileInfo('example.jpg');
echo info->getFilename() . ' принадлежит группе ' . $info->getOwner() . "\n";
print_r(posix_getpwuid($info->getOwner()));
?>

Результатом выполнения данного примера будет что-то подобное:

example.jpg принадлежит группе 501
Array
(
    [name] => tom
    [passwd] => x
    [uid] => 501
    [gid] => 42
    [gecos] => Tom Cat
    [dir] => /home/tom
    [shell] => /bin/bash
)

Смотрите также

  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID
  • SplFileInfo::getGroup() - Получает группу файла


Получает путь без имени файла

  • « SplFileInfo::getOwner
  • SplFileInfo::getPathInfo »
  • PHP Manual
  • SplFileInfo
  • Получает путь без имени файла

SplFileInfo::getPath

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getPath — Получает путь без имени файла

Описание

public SplFileInfo::getPath(): 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, PHP 8)

SplFileInfo::getPathInfo — Получает объект SplFileInfo для заданного пути

Описание

public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo

Получает объект класса SplFileInfo для пути текущего файла.

Список параметров

class

Имя производного от SplFileInfo класса для использования или себя, если null.

Возвращаемые значения

Возвращает объект класса SplFileInfo для родительского пути файла в случае успешного выполнения или null в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | class теперь допускает значение null.

Примеры

Пример #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, PHP 8)

SplFileInfo::getPathname — Получает путь к файлу

Описание

public SplFileInfo::getPathname(): 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, PHP 8)

SplFileInfo::getPerms — Получает список разрешений

Описание

public SplFileInfo::getPerms(): int|false

Получает список разрешений для файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает список разрешений для файла в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

SplFileInfo::getRealPath — Получает абсолютный путь к файлу

Описание

public SplFileInfo::getRealPath(): string|false

Этот метод распаковывает все символические ссылки, разрешает относительные пути и возвращает абсолютный путь к файлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь к файлу или 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, PHP 8)

SplFileInfo::getSize — Получает размер файла

Описание

public SplFileInfo::getSize(): int|false

Возвращает размер файла в байтах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Размер файла в байтах в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Будет выброшено исключение RuntimeException, если файл не существует или возникла ошибка.

Примеры

Пример #1 Пример использования SplFileInfo::getSize()

<?php
$info = new SplFileInfo('example.jpg');
echo $fileinfo->getFilename() . " " . $fileinfo->getSize();
?>

Результатом выполнения данного примера будет что-то подобное:

example.jpg 15385

Смотрите также

  • filesize() - Возвращает размер файла


Получает тип файла

  • « SplFileInfo::getSize
  • SplFileInfo::isDir »
  • PHP Manual
  • SplFileInfo
  • Получает тип файла

SplFileInfo::getType

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getType — Получает тип файла

Описание

public SplFileInfo::getType(): string|false

Возвращает тип указанного файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка (string), представляющая тип элемента. Возможны следующие значения: file, link, dir, block, fifo, char, socket или unknown. В случае возникновения ошибки возвращает false.

Ошибки

Выбрасывает 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, PHP 8)

SplFileInfo::isDir — Указывает, является ли файл каталогом

Описание

public SplFileInfo::isDir(): 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, PHP 8)

SplFileInfo::isExecutable — Указывает, является ли файл исполняемым

Описание

public SplFileInfo::isExecutable(): 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, PHP 8)

SplFileInfo::isFile — Указывает, ссылается ли объект на обычный файл

Описание

public SplFileInfo::isFile(): 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, PHP 8)

SplFileInfo::isLink — Указывает, является ли файл ссылкой

Описание

public SplFileInfo::isLink(): 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, PHP 8)

SplFileInfo::isReadable — Указывает, является ли файл доступным для чтения

Описание

public SplFileInfo::isReadable(): bool

Проверяет, является ли файл доступным для чтения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если файл доступен для чтения; false в противном случае.

Примеры

Пример #1 Пример использования SplFileInfo::isReadable()

<?php
$info = new SplFileInfo('readable.jpg');
if ($info->isReadable()) {
echo $info->getFilename() . ' доступен для чтения';
}
?>

Результатом выполнения данного примера будет что-то подобное:

readable.jpg доступен для чтения


Указывает, является ли файл доступным для записи

  • « SplFileInfo::isReadable
  • SplFileInfo::openFile »
  • PHP Manual
  • SplFileInfo
  • Указывает, является ли файл доступным для записи

SplFileInfo::isWritable

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::isWritable — Указывает, является ли файл доступным для записи

Описание

public SplFileInfo::isWritable(): bool

Проверяет, является ли текущий файл доступным для записи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если файл доступен для записи; false в противном случае.

Примеры

Пример #1 Пример использования SplFileInfo::isWriteable()

<?php
$info = new SplFileInfo('locked.jpg');
if (!$info->isWriteable()) {
echo $info->getFilename() . ' не доступен для записи';
}
?>

Результатом выполнения данного примера будет что-то подобное:

locked.jpg не доступен для записи


Получает объект SplFileObject для файла

  • « SplFileInfo::isWritable
  • SplFileInfo::setFileClass »
  • PHP Manual
  • SplFileInfo
  • Получает объект SplFileObject для файла

SplFileInfo::openFile

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::openFile — Получает объект SplFileObject для файла

Описание

public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject

Создаёт объект (object) SplFileObject файла. Это полезно, потому что SplFileObject содержит дополнительные методы для работы с файлом, в то время как SplFileInfo полезен только для получения информации, например, доступен ли файл для записи.

Список параметров

mode

Режим открытия файла. Смотрите документацию по fopen() с описанием возможных режимов. По умолчанию только для чтения.

useIncludePath

Если установлено в true, имя файла также ищется в include_path

context

Для описания контекстов обратитесь к следующему разделу руководства: контекст.

Возвращаемые значения

Открытый файл как объект (object) SplFileObject.

Ошибки

Выбрасывает RuntimeException, если файл не может быть открыт (например, недостаточно прав доступа).

Список изменений

Версия | Описание
8.0.0 | context теперь допускает значение null.

Примеры

Пример #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, PHP 8)

SplFileInfo::setFileClass — Задаёт имя класса, который будет использоваться методом SplFileInfo::openFile()

Описание

public SplFileInfo::setFileClass(string $class = SplFileObject::class): void

Задаёт имя класса, которое будет использовать метод SplFileInfo::openFile(). Этим классом должен быть SplFileObject или наследник класса SplFileObject.

Список параметров

class

Имя класса для метода 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, PHP 8)

SplFileInfo::setInfoClass — Задаёт имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo() и SplFileInfo::getPathInfo()

Описание

public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void

Задаёт имя класса, объекты которого будут создаваться при вызове методов SplFileInfo::getFileInfo() и SplFileInfo::getPathInfo(). Класс должен быть SplFileInfo или классом, производным от SplFileInfo.

Список параметров

class

Имя класса, который будет использоваться при вызове 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, PHP 8)

SplFileInfo::__toString — Возвращает путь к файлу в виде строки

Описание

public SplFileInfo::__toString(): 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, PHP 8)

Введение

Класс SplFileObject предоставляет объектно-ориентированный интерфейс для файла.

Обзор классов

class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIterator {
/* Константы */
public const int DROP_NEW_LINE;
public const int READ_AHEAD;
public const int SKIP_EMPTY;
public const int READ_CSV;
/* Методы */
public __construct(
string $filename,
string $mode = "r",
bool $useIncludePath = false,
?resource $context = null
)
public current(): string|array|false
public eof(): bool
public fflush(): bool
public fgetc(): string|false
public fgetcsv(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false
public fgets(): string
public fgetss(string $allowable_tags = ?): string
public flock(int $operation, int &$wouldBlock = null): bool
public fpassthru(): int
public fputcsv(
array $fields,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\",
string $eol = "\n"
): int|false
public fread(int $length): string|false
public fscanf(string $format, mixed &...$vars): array|int|null
public fseek(int $offset, int $whence = SEEK_SET): int
public fstat(): array
public ftell(): int|false
public ftruncate(int $size): bool
public fwrite(string $data, int $length = 0): int|false
public getChildren(): null
public getCsvControl(): array
public getFlags(): int
public getMaxLineLen(): int
public hasChildren(): false
public key(): int
public next(): void
public rewind(): void
public seek(int $line): void
public setCsvControl(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): void
public setFlags(int $flags): void
public setMaxLineLen(int $maxLength): void
public __toString(): string
public valid(): bool
/* Наследуемые методы */
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Предопределённые константы

SplFileObject::DROP_NEW_LINE

Удаляет символы переноса в конце строки.

SplFileObject::READ_AHEAD

Читает при использовании функций rewind/next.

SplFileObject::SKIP_EMPTY

Пропускает пустые строки с файле. Для правильной работы требуется включить флаг READ_AHEAD.

SplFileObject::READ_CSV

Читает строки в формате CSV.

Содержание

  • 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::valid — Проверяет, достигнут ли конец файла (EOF)


Создаёт объект SplFileObject

  • « SplFileObject
  • SplFileObject::current »
  • PHP Manual
  • SplFileObject
  • Создаёт объект SplFileObject

SplFileObject::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::__construct — Создаёт объект SplFileObject

Описание

public SplFileObject::__construct(
string $filename,
string $mode = "r",
bool $useIncludePath = false,
?resource $context = null
)

Создаёт новый файловый объект.

Список параметров

filename

Файл, который требуется прочитать.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых обёрток URL, их возможности, замечания по использованию и список предопределённых констант в разделе Поддерживаемые протоколы и обёртки.

mode

Режим работы с файлом. Список возможных режимов работы приведён в описании функции fopen().

useIncludePath

Требуется ли просматривать 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, PHP 8)

SplFileObject::current — Получить текущую строки файла

Описание

public SplFileObject::current(): string|array|false

Извлекает текущую строку файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Извлекает текущую строку файла. Если задан флаг SplFileObject::READ_CSV, этот метод будет разбирать строку, как данные CSV, и вернёт массив. Если достигнут конец файла, возвращается false.

Примеры

Пример #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, PHP 8)

SplFileObject::eof — Проверяет, достигнут ли конец файла

Описание

public SplFileObject::eof(): 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, PHP 8)

SplFileObject::fflush — Сбрасывает буфер вывода в файл

Описание

public SplFileObject::fflush(): 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, PHP 8)

SplFileObject::fgetc — Получает символ из файла

Описание

public SplFileObject::fgetc(): string|false

Получает символ из файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую один символ, прочитанный из файла, или 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, PHP 8)

SplFileObject::fgetcsv — Получить строку из файла и её разбор как поля CSV

Описание

public SplFileObject::fgetcsv(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false

Получает строку из файла и разбирает её в соответствии с форматом CSV. Результаты разбора возвращает в виде массива.

Замечание:

Эта функция принимает во внимание настройки локали. К примеру, если LC_CTYPE установлена в en_US.UTF-8, то файлы в однобайтовой кодировке будут неправильно прочитаны этой функцией.

Список параметров

separator

Разделитель полей (только один однобайтовый символ). По умолчанию это запятая или символ, который был задан методом 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, PHP 8)

SplFileObject::fgets — Получает строку из файла

Описание

public SplFileObject::fgets(): string

Получает строку из файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую следующую строку из файла.

Ошибки

Выбрасывает 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 и была УДАЛЕНА в версии PHP 8.0.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, PHP 8)

SplFileObject::flock — Портируемая блокировка файла

Описание

public SplFileObject::flock(int $operation, int &$wouldBlock = null): bool

Блокирует или разблокирует файл тем же портируемым способом, что и flock().

Список параметров

operation

operation может принимать следующие значения:

  • LOCK_SH для получения разделяемой блокировки (чтение).
  • LOCK_EX для получения эксклюзивной блокировки (запись).
  • LOCK_UN для снятия блокировки (разделяемой или эксклюзивной).

Также возможно добавить LOCK_NB в качестве битовой маски к одной из вышеуказанных операций, если flock() не должен блокироваться во время попытки блокировки.

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 "Не удалось получить блокировку!";
}
?>

Смотрите также

  • flock() - Портируемая консультативная блокировка файлов


Выводит всё оставшееся содержимое файла в выходной поток

  • « SplFileObject::flock
  • SplFileObject::fputcsv »
  • PHP Manual
  • SplFileObject
  • Выводит всё оставшееся содержимое файла в выходной поток

SplFileObject::fpassthru

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fpassthru — Выводит всё оставшееся содержимое файла в выходной поток

Описание

public SplFileObject::fpassthru(): 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, PHP 8)

SplFileObject::fputcsv — Записать массив полей в виде строки CSV

Описание

public SplFileObject::fputcsv(
array $fields,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\",
string $eol = "\n"
): int|false

Записывает массив fields в файл как строку CSV.

Список параметров

fields

Массив значений

separator

Необязательный параметр separator устанавливает разделитель полей (только один однобайтовый символ).

enclosure

Необязательный параметр enclosure (только один однобайтовый символ). Символ обёртывания используется для помещения в него значений полей. Например строка 'строка' обёрнута в одиночные кавычки (').

escape

Необязательный параметр escape устанавливает символ экранирования (не более одного однобайтового символа). Пустая строка ("") отключает проприетарный механизм экранирования.

eol

Необязательный параметр eol задаёт настраиваемую последовательность конца строки.

Замечание:

Если символ enclosure содержится в поле, он будет экранирован путём его удвоения, если ему не предшествует escape.

Возвращаемые значения

Возвращает длину записанной строки или false в случае возникновения ошибки.

Возвращает false и не производит запись в файл, если параметры separator или enclosure содержат больше одного символа.

Ошибки

Вызывает ошибку уровня E_WARNING, если параметры separator или enclosure содержат больше одного символа.

Список изменений

Версия | Описание
8.1.0 | Добавлен необязательный параметр eol.
7.4.0 | Теперь параметр 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, PHP 8)

SplFileObject::fread — Чтение из файла

Описание

public SplFileObject::fread(int $length): string|false

Считывает заданное количества байт из файла.

Список параметров

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, PHP 8)

SplFileObject::fscanf — Разбирает строку файла в соответствии с заданным форматом

Описание

public SplFileObject::fscanf(string $format, mixed &...$vars): array|int|null

Читает строку из файла и разбирает её в соответствии с заданным форматом format.

Любые пробелы в строке format соответствует любому пробелу в строке из файла. Это означает, что символ табуляции (\t) в строке формата может соответствовать одному пробелу в строке файла.

Список параметров

format

Интерпретируемый формат для параметра string, который описан в документации функции sprintf() со следующими отличиями:

  • Функция не ориентирована на локализацию.
  • Не поддерживаются значения F, g, G и b.
  • D обозначает десятичное число.
  • i обозначает целое число с определением системы счисления.
  • n обозначает количество символов, обработанных на данный момент.
  • s останавливает чтение на любом символе пробела.
  • * вместо argnum$ подавляет присвоение данной спецификации преобразования.

vars

Дополнительные строки форматирования.

Возвращаемые значения

Если передан только один параметр, распознанные в строке значения будут помещены в массив. Если переданы дополнительные строки форматирования, функция вернёт количество шаблонов, с которыми совпала строка. Необязательные параметры должны передаваться по ссылке.

Примеры

Пример #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, PHP 8)

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, PHP 8)

SplFileObject::fstat — Получает информацию о файле

Описание

public SplFileObject::fstat(): 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, PHP 8)

SplFileObject::ftell — Вернуть текущую позицию файлового указателя

Описание

public SplFileObject::ftell(): int|false

Возвращает текущую позицию файлового указателя, которая представляет текущее смещение в файловом потоке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает позицию файлового указателя в виде целого числа или 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, PHP 8)

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, PHP 8)

SplFileObject::fwrite — Запись в файл

Описание

public SplFileObject::fwrite(string $data, int $length = 0): int|false

Записывает содержимое строки string в файл.

Список параметров

data

Строка, которая будет записана в файл.

length

Если задан аргумент length, запись остановится после того, как length байт будут записаны или будет достигнут конец строки string, в зависимости от того, что случится раньше.

Возвращаемые значения

Возвращает количество записанных байт или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.4.0 | Функция теперь возвращает false вместо нуля в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

SplFileObject::getChildren — Метод-заглушка

Описание

public SplFileObject::getChildren(): null

Класс SplFileObject не имеет дочерних элементов, поэтому этот метод возвращает null.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает null.

Смотрите также

  • RecursiveIterator::getChildren() - Возвращает итератор для текущего элемента


Получает символы разделителя, обёртывания и экранирования для CSV

  • « SplFileObject::getChildren
  • SplFileObject::getCurrentLine »
  • PHP Manual
  • SplFileObject
  • Получает символы разделителя, обёртывания и экранирования для CSV

SplFileObject::getCsvControl

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

SplFileObject::getCsvControl — Получает символы разделителя, обёртывания и экранирования для CSV

Описание

public SplFileObject::getCsvControl(): array

Получает символы разделителя, обёртывания и экранирования для CSV. Символ обёртывания используется для помещения в него значений полей. Например строка 'строка' обёрнута в одиночные кавычки (').

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает индексный массив, содержащий символы разделителя и ограничителя.

Список изменений

Версия | Описание
7.4.0 | В качестве символа экранирования можно использовать пустую строку.
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, PHP 8)

SplFileObject::getCurrentLine — Псевдоним SplFileObject::fgets()

Описание

Метод является псевдонимом: SplFileObject::fgets().


Получает флаги настройки объекта SplFileObject

  • « SplFileObject::getCurrentLine
  • SplFileObject::getMaxLineLen »
  • PHP Manual
  • SplFileObject
  • Получает флаги настройки объекта SplFileObject

SplFileObject::getFlags

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::getFlags — Получает флаги настройки объекта SplFileObject

Описание

public SplFileObject::getFlags(): int

Получает флаги настройки объекта SplFileObject в виде целого числа типа int.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число типа int, представляющее набор флагов.

Примеры

Пример #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, PHP 8)

SplFileObject::getMaxLineLen — Получить максимальную длину строки

Описание

public SplFileObject::getMaxLineLen(): 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)

Смотрите также

  • SplFileObject::setMaxLineLen() - Установить максимальную длину строки


Класс SplFileObject не имеет наследников

  • « SplFileObject::getMaxLineLen
  • SplFileObject::key »
  • PHP Manual
  • SplFileObject
  • Класс SplFileObject не имеет наследников

SplFileObject::hasChildren

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileObject::hasChildren — Класс SplFileObject не имеет наследников

Описание

public SplFileObject::hasChildren(): false

Класс SplFileObject не имеет дочерних элементов, поэтому метод всегда возвращает false.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает false

Смотрите также

  • RecursiveIterator::hasChildren() - Определяет, можно ли для текущего элемента создать итератор


Получить номер строки

  • « SplFileObject::hasChildren
  • SplFileObject::next »
  • PHP Manual
  • SplFileObject
  • Получить номер строки

SplFileObject::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::key — Получить номер строки

Описание

public SplFileObject::key(): 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, PHP 8)

SplFileObject::next — Читать следующую строку

Описание

public SplFileObject::next(): 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, PHP 8)

SplFileObject::rewind — Перемотка файлового указателя в начало файла

Описание

public SplFileObject::rewind(): 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, PHP 8)

SplFileObject::seek — Перевод файлового указателя на заданную строку

Описание

public SplFileObject::seek(int $line): void

Переводит файловый указатель на заданную строку.

Список параметров

line

Номер строки, начиная с 0, на которую требуется перейти.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение LogicException, если аргумент line принимает отрицательное значение.

Примеры

Пример #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, PHP 8)

SplFileObject::setCsvControl — Устанавливает символы разделителя, обёртывания и экранирования для CSV

Описание

public SplFileObject::setCsvControl(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): void

Устанавливает символы разделителя, ограничителя и экранирования для CSV. Символ ограничителя используется для помещения в него значений полей. Например строка 'строка' обёрнута в одиночные кавычки (').

Список параметров

separator

Разделитель поля (только один однобайтовый символ).

enclosure

Символ ограничителя поля (только один однобайтовый символ).

escape

Экранирующий символ (не более одного однобайтового символа). Пустая строка ("") отключает проприетарный механизм экранирования.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
7.4.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, PHP 8)

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, PHP 8)

SplFileObject::setMaxLineLen — Установить максимальную длину строки

Описание

public SplFileObject::setMaxLineLen(int $maxLength): void

Устанавливает максимальную длину строки для чтения.

Список параметров

maxLength

Максимальная длина строки.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает DomainException, если значение maxLength меньше нуля.

Примеры

Пример #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.

Смотрите также

  • SplFileObject::getMaxLineLen() - Получить максимальную длину строки


Возвращает текущую строку в виде строки

  • « SplFileObject::setMaxLineLen
  • SplFileObject::valid »
  • PHP Manual
  • SplFileObject
  • Возвращает текущую строку в виде строки

SplFileObject::__toString

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::__toString — Возвращает текущую строку в виде строки

Описание

public SplFileObject::__toString(): string

Метод возвращает текущую строку в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущую строку в виде строки.

Список изменений

Версия | Описание
8.1.14, 8.2.1 | Изменён с псевдонима SplFileObject::fgets() на реализацию SplFileObject::current(), которая возвращает строку CSV, когда установлен флаг SplFileObject::READ_CSV.
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, PHP 8)

SplFileObject::valid — Проверяет, достигнут ли конец файла (EOF)

Описание

public SplFileObject::valid(): 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, PHP 8)

Введение

Класс SplTempFileObject предлагает объектно-ориентированный интерфейс для работы с временным файлом.

Обзор классов

class SplTempFileObject extends SplFileObject {
/* Наследуемые константы */
public const int SplFileObject::DROP_NEW_LINE;
public const int SplFileObject::READ_AHEAD;
public const int SplFileObject::SKIP_EMPTY;
public const int SplFileObject::READ_CSV;
/* Методы */
public __construct(int $maxMemory = 2 * 1024 * 1024)
/* Наследуемые методы */
public SplFileObject::current(): string|array|false
public SplFileObject::eof(): bool
public SplFileObject::fflush(): bool
public SplFileObject::fgetc(): string|false
public SplFileObject::fgetcsv(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false
public SplFileObject::fgets(): string
public SplFileObject::fgetss(string $allowable_tags = ?): string
public SplFileObject::flock(int $operation, int &$wouldBlock = null): bool
public SplFileObject::fpassthru(): int
public SplFileObject::fputcsv(
array $fields,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\",
string $eol = "\n"
): int|false
public SplFileObject::fread(int $length): string|false
public SplFileObject::fscanf(string $format, mixed &...$vars): array|int|null
public SplFileObject::fseek(int $offset, int $whence = SEEK_SET): int
public SplFileObject::fstat(): array
public SplFileObject::ftell(): int|false
public SplFileObject::ftruncate(int $size): bool
public SplFileObject::fwrite(string $data, int $length = 0): int|false
public SplFileObject::getChildren(): null
public SplFileObject::getCsvControl(): array
public SplFileObject::getFlags(): int
public SplFileObject::getMaxLineLen(): int
public SplFileObject::hasChildren(): false
public SplFileObject::key(): int
public SplFileObject::next(): void
public SplFileObject::rewind(): void
public SplFileObject::seek(int $line): void
public SplFileObject::setCsvControl(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): void
public SplFileObject::setFlags(int $flags): void
public SplFileObject::setMaxLineLen(int $maxLength): void
public SplFileObject::__toString(): string
public SplFileObject::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Содержание

  • SplTempFileObject::__construct — Создаёт новый объект временного файла


Создаёт новый объект временного файла

  • « SplTempFileObject
  • Различные классы и интерфейсы »
  • PHP Manual
  • SplTempFileObject
  • Создаёт новый объект временного файла

SplTempFileObject::__construct

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplTempFileObject::__construct — Создаёт новый объект временного файла

Описание

public SplTempFileObject::__construct(int $maxMemory = 2 * 1024 * 1024)

Создаёт новый объект, представляющий временный файл.

Список параметров

maxMemory

Максимальный объем памяти (в байтах, по умолчанию равен 2 МБ) для временного файла. Если временный файл превысит этот размер, он будет перемещён в файл в системной папке временных файлов.

Если значение maxMemory отрицательное, будет использоваться только память. Если значение maxMemory равно нулю, то память не будет использоваться.

Ошибки

Выбрасывает исключение 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, PHP 8)

Введение

Данный класс позволяет объектам работать как массивы.

Обзор классов

class ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Countable {
/* Константы */
const int STD_PROP_LIST;
const int ARRAY_AS_PROPS;
/* Методы */
public __construct(array|object $array = [], int $flags = 0, string $iteratorClass = ArrayIterator::class)
public append(mixed $value): void
public asort(int $flags = SORT_REGULAR): true
public count(): int
public exchangeArray(array|object $array): array
public getArrayCopy(): array
public getFlags(): int
public getIterator(): Iterator
public getIteratorClass(): string
public ksort(int $flags = SORT_REGULAR): true
public natcasesort(): true
public natsort(): true
public offsetExists(mixed $key): bool
public offsetGet(mixed $key): mixed
public offsetSet(mixed $key, mixed $value): void
public offsetUnset(mixed $key): void
public serialize(): string
public setFlags(int $flags): void
public setIteratorClass(string $iteratorClass): void
public uasort(callable $callback): true
public uksort(callable $callback): true
public unserialize(string $data): void
}

Предопределённые константы

Опции ArrayObject

ArrayObject::STD_PROP_LIST

Свойства объекта получают стандартное поведение при доступе в виде списка (var_dump, foreach и т.д.).

ArrayObject::ARRAY_AS_PROPS

Записи могут быть доступны как свойства (для чтения и записи).

Содержание

  • 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, PHP 8)

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, PHP 8)

ArrayObject::asort — Сортировать записи по значению

Описание

public ArrayObject::asort(int $flags = SORT_REGULAR): true

Сортирует элементы массива в порядке возрастания, так что его ключи сохраняют свою корреляцию со значениями, с которыми они связаны.

Используется в основном при сортировке ассоциативных массивов, где важен фактический порядок элементов.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Список параметров

flags

Необязательный второй параметр flags изменяет поведение сортировки и может принимать следующие значения:

Флаги типа сортировки:

  • SORT_REGULAR — обычное сравнение элементов; подробности описаны в разделе операторы сравнения
  • SORT_NUMERIC — числовое сравнение элементов
  • SORT_STRING — строковое сравнение элементов
  • SORT_LOCALE_STRING — сравнение элементов как строки на основе текущего языкового стандарта. Используется языковой стандарт, который можно изменить с помощью setlocale()
  • SORT_NATURAL — сравнение элементов как строки, используя "естественный порядок", например natsort()
  • SORT_FLAG_CASE — можно объединять (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки строк без учёта регистра

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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() - Сортировать массив по ключам, используя пользовательскую функцию для сравнения
  • asort() - Сортирует массив в порядке возрастания и поддерживает ассоциацию индексов


Создаёт новый объект массива

  • « ArrayObject::asort
  • ArrayObject::count »
  • PHP Manual
  • ArrayObject
  • Создаёт новый объект массива

ArrayObject::__construct

(PHP 5, PHP 7, PHP 8)

ArrayObject::__construct — Создаёт новый объект массива

Описание

public ArrayObject::__construct(array|object $array = [], int $flags = 0, string $iteratorClass = ArrayIterator::class)

Создаёт новый объект (object) массива.

Список параметров

array

Параметр array принимает значение типа array или Object.

flags

Флаги для управления поведением объекта ArrayObject. Смотрите ArrayObject::setFlags().

iteratorClass

Указывает класс, который будет использоваться в качестве итератора объекта ArrayObject. Класс должен реализовать интерфейс ArrayIterator.

Примеры

Пример #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, PHP 8)

ArrayObject::count — Получить количество общедоступных свойств ArrayObject

Описание

public ArrayObject::count(): 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, PHP 8)

ArrayObject::exchangeArray — Заменить массив на другой

Описание

public ArrayObject::exchangeArray(array|object $array): array

Заменяет текущий массив (array) на другой массив (array) или объект (object).

Список параметров

array

Новый массив (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, PHP 8)

ArrayObject::getArrayCopy — Создаёт копию ArrayObject

Описание

public ArrayObject::getArrayCopy(): 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, PHP 8)

ArrayObject::getFlags — Получает флаги поведения

Описание

public ArrayObject::getFlags(): 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, PHP 8)

ArrayObject::getIterator — Создать новый итератор из экземпляра ArrayObject

Описание

public ArrayObject::getIterator(): Iterator

Создать новый итератор из экземпляра 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, PHP 8)

ArrayObject::getIteratorClass — Получает имя класса итератора для ArrayObject

Описание

public ArrayObject::getIteratorClass(): 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, PHP 8)

ArrayObject::ksort — Сортировать записи по ключам

Описание

public ArrayObject::ksort(int $flags = SORT_REGULAR): true

Сортирует массив по ключам, сохраняя отношения между ключами и значениями. Это полезно в основном для работы с ассоциативными массивами.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Список параметров

flags

Необязательный второй параметр flags изменяет поведение сортировки и может принимать следующие значения:

Флаги типа сортировки:

  • SORT_REGULAR — обычное сравнение элементов; подробности описаны в разделе операторы сравнения
  • SORT_NUMERIC — числовое сравнение элементов
  • SORT_STRING — строковое сравнение элементов
  • SORT_LOCALE_STRING — сравнение элементов как строки на основе текущего языкового стандарта. Используется языковой стандарт, который можно изменить с помощью setlocale()
  • SORT_NATURAL — сравнение элементов как строки, используя "естественный порядок", например natsort()
  • SORT_FLAG_CASE — можно объединять (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки строк без учёта регистра

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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() - Сортировать массив по ключам, используя пользовательскую функцию для сравнения
  • ksort() - Сортирует массив по ключу в порядке возрастания


Сортировать массив, используя регистронезависимый алгоритм "natural order"

  • « ArrayObject::ksort
  • ArrayObject::natsort »
  • PHP Manual
  • ArrayObject
  • Сортировать массив, используя регистронезависимый алгоритм "natural order"

ArrayObject::natcasesort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::natcasesort — Сортировать массив, используя регистронезависимый алгоритм "natural order"

Описание

public ArrayObject::natcasesort(): true

Этот метод является регистронезависимой версией ArrayObject::natsort.

Этот метод реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека, сохраняя при этом связь ключ/значение. Такой алгоритм называется "естественный порядок" (natural ordering).

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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() - Сортировать массив по ключам, используя пользовательскую функцию для сравнения
  • natcasesort() - Сортирует массив, используя алгоритм "natural order" без учёта регистра символов


Сортировать массив, используя алгоритм "natural order"

  • « ArrayObject::natcasesort
  • ArrayObject::offsetExists »
  • PHP Manual
  • ArrayObject
  • Сортировать массив, используя алгоритм "natural order"

ArrayObject::natsort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::natsort — Сортировать массив, используя алгоритм "natural order"

Описание

public ArrayObject::natsort(): true

Этот метод реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека, сохраняя при этом связь ключ/значение. Такой алгоритм называется "естественный порядок" (natural ordering). Пример разницы между этим алгоритмом и обычными алгоритмами сортировки, (используются в ArrayObject::asort) можно увидеть в примере ниже.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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() - Сортировать массив по ключам, используя пользовательскую функцию для сравнения
  • natsort() - Сортирует массив, используя алгоритм "natural order"


Возвращает, существует ли указанный индекс

  • « ArrayObject::natsort
  • ArrayObject::offsetGet »
  • PHP Manual
  • ArrayObject
  • Возвращает, существует ли указанный индекс

ArrayObject::offsetExists

(PHP 5, PHP 7, PHP 8)

ArrayObject::offsetExists — Возвращает, существует ли указанный индекс

Описание

public ArrayObject::offsetExists(mixed $key): bool

Список параметров

key

Индекс, который должен быть проверен.

Возвращаемые значения

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, PHP 8)

ArrayObject::offsetGet — Возвращает значение по указанному индексу

Описание

public ArrayObject::offsetGet(mixed $key): mixed

Список параметров

key

Индекс, ссылающийся на значение.

Возвращаемые значения

Значение по указанному индексу или 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, PHP 8)

ArrayObject::offsetSet — Устанавливает новое значение по указанному индексу

Описание

public ArrayObject::offsetSet(mixed $key, mixed $value): void

Устанавливает новое значение по указанному индексу.

Список параметров

key

Индекс для установки значения.

value

Новое значение для key.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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, PHP 8)

ArrayObject::offsetUnset — Удаляет значение по указанному индексу

Описание

public ArrayObject::offsetUnset(mixed $key): void

Удаляет значение по указанному индексу.

Список параметров

key

Индекс, значение которого необходимо удалить.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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, PHP 8)

ArrayObject::serialize — Сериализовать ArrayObject

Описание

public ArrayObject::serialize(): 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, PHP 8)

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, PHP 8)

ArrayObject::setIteratorClass — Устанавливает имя класса итератора для ArrayObject

Описание

public ArrayObject::setIteratorClass(string $iteratorClass): void

Устанавливает имя класса итератора массива, которое используется ArrayObject::getIterator().

Список параметров

iteratorClass

Имя класса итератора массива, который будет использоваться при итерации по этому объекту.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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, PHP 8)

ArrayObject::uasort — Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение

Описание

public ArrayObject::uasort(callable $callback): true

Эта функция сортирует значения с сохранением ключей, используя пользовательскую функцию сравнения.

Функция используется в основном при сортировке ассоциативных массивов, в которых важен актуальный порядок элементов.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Список параметров

callback

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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() - Сортировать массив по ключам, используя пользовательскую функцию для сравнения
  • uasort() - Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей


Сортировать массив по ключам, используя пользовательскую функцию для сравнения

  • « ArrayObject::uasort
  • ArrayObject::unserialize »
  • PHP Manual
  • ArrayObject
  • Сортировать массив по ключам, используя пользовательскую функцию для сравнения

ArrayObject::uksort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::uksort — Сортировать массив по ключам, используя пользовательскую функцию для сравнения

Описание

public ArrayObject::uksort(callable $callback): true

Эта функция сортирует ключи записей, используя предоставленную пользователем функцию. Отношения между ключами и элементами сохраняются.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Список параметров

callback

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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() - Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
  • uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей


Десериализовать ArrayObject

  • « ArrayObject::uksort
  • SplObserver »
  • PHP Manual
  • ArrayObject
  • Десериализовать ArrayObject

ArrayObject::unserialize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ArrayObject::unserialize — Десериализовать ArrayObject

Описание

public ArrayObject::unserialize(string $data): void

Десериализует сериализованный объект ArrayObject.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Сериализованный объект ArrayObject.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::serialize() - Сериализует массив
  • unserialize() - Создаёт PHP-значение из хранимого представления
  • Сериализация объектов


Интерфейс SplObserver

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Интерфейс SplObserver используется совместно с SplSubject для реализации шаблона проектирования Наблюдатель (Observer).

Обзор интерфейсов

interface SplObserver {
/* Методы */
public update(SplSubject $subject): void
}

Содержание

  • SplObserver::update — Получить обновление от субъекта


Получить обновление от субъекта

  • « SplObserver
  • SplSubject »
  • PHP Manual
  • SplObserver
  • Получить обновление от субъекта

SplObserver::update

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplObserver::update — Получить обновление от субъекта

Описание

public SplObserver::update(SplSubject $subject): void

Этот метод вызывается, когда любой SplSubject, к которому присоединён наблюдатель, вызывает SplSubject::notify().

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

subject

SplSubject, уведомляющий наблюдателя об обновлении.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Интерфейс SplSubject

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Интерфейс SplSubject используется совместно с SplObserver для реализации шаблона проектирования Наблюдатель (Observer).

Обзор интерфейсов

interface SplSubject {
/* Методы */
public attach(SplObserver $observer): void
public detach(SplObserver $observer): void
public notify(): 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, PHP 8)

SplSubject::attach — Присоединить наблюдателя (объект класса SplObserver)

Описание

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, PHP 8)

SplSubject::detach — Отсоединить наблюдателя

Описание

public SplSubject::detach(SplObserver $observer): void

Отсоединяет наблюдателя от субъекта, чтобы больше не уведомлять его об обновлениях.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

observer

Объект класса SplObserver для отсоединения.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Уведомить наблюдателя

  • « SplSubject::detach
  • Потоки »
  • PHP Manual
  • SplSubject
  • Уведомить наблюдателя

SplSubject::notify

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplSubject::notify — Уведомить наблюдателя

Описание

public SplSubject::notify(): void

Посылает уведомление всем присоединённым наблюдателям.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Потоки

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Классы для работы с потоками
  • Предопределённые константы
  • Потоковые фильтры
  • Контексты потоков
  • Ошибки потока
  • Примеры
    • Пример класса, зарегистрированного в качестве обёртки потока
  • 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 — Получение информации о файле
  • Функции для работы с потоками
    • 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_options — Sets options on the specified context
    • 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() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds
    • 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(). Добавлять можно произвольное количество обёрток, что делает возможности работы с потоками практически безграничными. Посмотреть список зарегистрированных на данный момент обёрток можно с помощью функции stream_get_wrappers().

Ссылка на поток записывается в следующем виде: scheme://target

  • scheme (строка) - Название обёртки. Например, file, http, https, ftp, ftps, compress.zlib, compress.bz2, php. Список встроенных обёрток можно посмотреть здесь Поддерживаемые протоколы и обёртки. Если название обёртки не указано, каждая функция, работающая с потоком, использует обёртку по умолчанию (обычно это file://).
  • target - Зависит от того, какая обёртка используется. Для потоков, связанных с файловой системой это обычно путь и имя файла. Для сетевых потоков это, как правило, имя хоста (зачастую с добавлением к нему пути). Описания целей для встроенных обёрток приведены в Поддерживаемые протоколы и обёртки.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Классы для работы с потоками


  • « Установка
  • Классы для работы с потоками »
  • 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() для отключения дальнейшего приёма данных.
STREAM_SHUT_WR | Используется функцией stream_socket_shutdown() для отключения дальнейшей передачи данных.
STREAM_SHUT_RDWR | Используется функцией stream_socket_shutdown() для отключения дальнейших приёма и передачи данных.
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().
STREAM_BUFFER_NONE | Без буферизации.
STREAM_BUFFER_LINE | Буферизация строки.
STREAM_BUFFER_FULL | Полная буферизация.

Замечание: Константы, отмеченные +, предназначены для использования в функции stream_socket_pair(). Учитывайте, что некоторые из констант могут быть недоступны в вашей системе.

Замечание: Константы STREAM_META_* предназначены для использования в функции stream_metadata().


Потоковые фильтры

Фильтр (filter) - рабочий код, который может осуществлять операции с данными, читаемыми из потока или записываемыми в него. На каждый поток можно надстроить несколько фильтров. Пользовательские фильтры можно регистрировать в PHP-скрипте функцией stream_filter_register(). Чтобы посмотреть список зарегистрированных на данный момент фильтров, воспользуйтесь функцией 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, PHP 8)

Введение

Потомки этого класса передаются в функцию stream_filter_register(). Обратите внимание, что метод __construct не вызывается; вместо этого для инициализации следует использовать php_user_filter::onCreate().

Обзор классов

class php_user_filter {
/* Свойства */
public string $filtername = "";
public mixed $params = "";
public ?resource $stream = null;
/* Методы */
public filter(
resource $in,
resource $out,
int &$consumed,
bool $closing
): int
public onClose(): void
public onCreate(): bool
}

Свойства

filtername

Имя фильтра, зарегистрированного функцией stream_filter_append().

params

stream

Содержание

  • 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 8)

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 8)

php_user_filter::onClose — Вызывается при закрытии фильтра

Описание

public php_user_filter::onClose(): void

Этот метод вызывается, когда фильтр завершает работу (обычно вместе с закрытием потока), и выполняется после вызова метода flush. Если какие-либо ресурсы были выделены во время выполнения метода onCreate(), то это время, когда их пора уничтожать.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращаемое значение игнорируется.


Вызывается при создании объекта фильтра

  • « php_user_filter::onClose
  • streamWrapper »
  • PHP Manual
  • php_user_filter
  • Вызывается при создании объекта фильтра

php_user_filter::onCreate

(PHP 5, PHP 7, PHP 8)

php_user_filter::onCreate — Вызывается при создании объекта фильтра

Описание

public php_user_filter::onCreate(): 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, PHP 8)

Введение

Позволяет реализовывать собственные обработчики протоколов и потоков для дальнейшего использования со всеми функциями по работе с файловой системой (такими как fopen(), fread() и т.п.).

Замечание:

Это НЕ реальный класс, а лишь прототип, предоставленный в качестве наглядного пособия.

Замечание:

Реализация методов, отличная от описанной здесь, может привести к неопределённому поведению.

Объект класса инициализируется в тот момент, когда потоковая функция пытается получить доступ к протоколу, с которым этот класс ассоциирован.

Обзор классов

class streamWrapper {
/* Свойства */
public resource $context;
/* Методы */
public __construct()
public dir_closedir(): bool
public dir_opendir(string $path, int $options): bool
public dir_readdir(): string
public dir_rewinddir(): 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
public stream_eof(): bool
public stream_flush(): 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|false
public stream_seek(int $offset, int $whence = SEEK_SET): bool
public stream_set_option(int $option, int $arg1, int $arg2): bool
public stream_stat(): array|false
public stream_tell(): 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|false
public __destruct()
}

Свойства

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, PHP 8)

streamWrapper::__construct — Создаёт новый объект обёртки потока

Описание

public streamWrapper::__construct()

Вызывается при открытии обёртки потока непосредственно перед вызовом метода streamWrapper::stream_open().

Список параметров

У этой функции нет параметров.


Уничтожает существующую обёртку потока

  • « streamWrapper::__construct
  • streamWrapper::dir_closedir »
  • PHP Manual
  • streamWrapper
  • Уничтожает существующую обёртку потока

streamWrapper::__destruct

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::__destruct — Уничтожает существующую обёртку потока

Описание

public streamWrapper::__destruct()

Вызывается во время закрытия обёртки потока непосредственно перед вызовом метода streamWrapper::stream_flush().

Список параметров

У этой функции нет параметров.


Закрыть дескриптор директории

  • « streamWrapper::__destruct
  • streamWrapper::dir_opendir »
  • PHP Manual
  • streamWrapper
  • Закрыть дескриптор директории

streamWrapper::dir_closedir

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::dir_closedir — Закрыть дескриптор директории

Описание

public streamWrapper::dir_closedir(): 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, PHP 8)

streamWrapper::dir_opendir — Открыть дескриптор директории

Описание

public streamWrapper::dir_opendir(string $path, int $options): bool

Этот метод вызывается в процессе выполнения opendir().

Список параметров

path

Задаёт URL, который был передан в opendir().

Замечание:

URL можно разделить на части с помощью parse_url().

options

Возвращаемые значения

Возвращает 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, PHP 8)

streamWrapper::dir_readdir — Чтение записи из дескриптора директории

Описание

public streamWrapper::dir_readdir(): 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, PHP 8)

streamWrapper::dir_rewinddir — Дескриптор директории перемещения на её в начало

Описание

public streamWrapper::dir_rewinddir(): 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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

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() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds


Закрывает ресурс

  • « streamWrapper::stream_cast
  • streamWrapper::stream_eof »
  • PHP Manual
  • streamWrapper
  • Закрывает ресурс

streamWrapper::stream_close

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

streamWrapper::stream_close — Закрывает ресурс

Описание

public streamWrapper::stream_close(): 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, PHP 8)

streamWrapper::stream_eof — Проверяет достижение конца файла по файловому указателю

Описание

public streamWrapper::stream_eof(): 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, PHP 8)

streamWrapper::stream_flush — Сбрасывает вывод

Описание

public streamWrapper::stream_flush(): bool

Этот метод вызывается в процессе выполнения fflush(), если поток закрывается имея несброшенные данные, записанные в него ранее.

Если в потоке есть кешированные и ещё неиспользованные данные, в этом методе самое место передать их на нижележащий уровень.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Должен возвращать true, если кешированные данные успешно сохранены (или их вообще нет), либо false, если данные не могут быть сохранены.

Примечания

Замечание:

Если метод не реализован, в качестве возвращаемого значения полагается false.

Смотрите также

  • fflush() - Сбрасывает буфер вывода в файл


Консультативная блокировка файла

  • « streamWrapper::stream_flush
  • streamWrapper::stream_metadata »
  • PHP Manual
  • streamWrapper
  • Консультативная блокировка файла

streamWrapper::stream_lock

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

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: Значение владельца/группу в виде целого числа (int).
  • STREAM_META_ACCESS: Аргумент функции chmod() в виде целого числа (int).

Возвращаемые значения

Возвращает 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, PHP 8)

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, PHP 8)

streamWrapper::stream_read — Читает из потока

Описание

public streamWrapper::stream_read(int $count): string|false

Этот метод вызывается в процессе выполнения функций 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, PHP 8)

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 байт от конца файла.

Замечание: Текущая реализация никогда не устанавливает для whence значение SEEK_CUR; вместо этого такие поиски внутренне преобразуются в поиски SEEK_SET.

Возвращаемые значения

Возвращает 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, PHP 8)

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, PHP 8)

streamWrapper::stream_stat — Получение информации о файловом ресурсе

Описание

public streamWrapper::stream_stat(): array|false

Этот метод вызывается в результате вызова функции 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, PHP 8)

streamWrapper::stream_tell — Определение текущей позиции потока

Описание

public streamWrapper::stream_tell(): int

Этот метод вызывается в процессе выполнения fseek() для определения текущей позиции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Должен возвращать текущую позицию потока.

Смотрите также

  • streamWrapper::stream_tell()


Усечение потока

  • « streamWrapper::stream_tell
  • streamWrapper::stream_write »
  • PHP Manual
  • streamWrapper
  • Усечение потока

streamWrapper::stream_truncate

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

streamWrapper::url_stat — Получение информации о файле

Описание

public streamWrapper::url_stat(string $path, int $flags): array|false

Этот метод вызывается в процессе выполнения любой из stat() функций, таких как:

  • 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().

Возвращаемые значения

Должен возвращаться массив (array) с теми же элементами, что и в stat(). Неизвестные или недоступные значения необходимо приводить к разумным значениям (обычно к 0). Обратите особое внимание на mode, как описано в разделе stat(). В случае возникновения ошибки возвращает false.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • stat() - Возвращает информацию о файле
  • streamwrapper::stream_stat() - Получение информации о файловом ресурсе


Функции для работы с потоками

Содержание

  • 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_options — Sets options on the specified context
  • 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() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds
  • 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


Добавить ведро (bucket) в бригаду (brigade)

  • « Функции для работы с потоками
  • stream_bucket_make_writeable »
  • PHP Manual
  • Функции для работы с потоками
  • Добавить ведро (bucket) в бригаду (brigade)

stream_bucket_append

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

stream_bucket_make_writeable — Возвращает объект корзины из бригады для дальнейшей работы с ним

Описание

stream_bucket_make_writeable(resource $brigade): ?object

Функция вызывается всякий раз, когда возникает необходимость в доступе к содержимому, содержащемся в бригаде и работе с ним. Обычно функция вызывается из php_user_filter::filter().

Список параметров

brigade

Бригада, из которой нужно вернуть объект корзины.

Возвращаемые значения

Возвращает объект корзины со свойствами, перечисленными ниже или null.

data (string)

data bucket Текущая строка в корзине.

datalen (integer)

datalen bucket Длина строки в корзине.

Смотрите также

  • stream_bucket_append() - Добавить ведро (bucket) в бригаду (brigade)
  • stream_bucket_prepend() - Добавить ведро в начало бригады


Создать новое ведро для использования в текущем потоке

  • « stream_bucket_make_writeable
  • stream_bucket_prepend »
  • PHP Manual
  • Функции для работы с потоками
  • Создать новое ведро для использования в текущем потоке

stream_bucket_new

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

stream_context_create — Создаёт контекст потока

Описание

stream_context_create(?array $options = null, ?array $params = null): resource

Создаёт и возвращает контекст потока с опциями, указанными в массиве options.

Список параметров

options

Должен быть ассоциативным массивом в формате $arr['wrapper']['option'] = $value или null. Список доступных обёрток и опций смотрите в разделе Опции контекста

Значение по умолчанию - null.

params

Должен быть ассоциативным массивом в формате $arr['parameter'] = $value или null. Обратитесь к разделу Опции контекста за списком стандартных параметров потока.

Возвращаемые значения

Ресурс (resource) контекста потока.

Список изменений

Версия | Описание
8.0.0 | Параметры options и params теперь допускают значение null.

Примеры

Пример #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, PHP 8)

stream_context_get_default — Получает контекст потока по умолчанию

Описание

stream_context_get_default(?array $options = null): resource

Возвращает контекст потока по умолчанию, который используется в любых файловых операциях (fopen(), file_get_contents() и т.д.), вызванных без параметра контекста. Опции для контекста по умолчанию могут быть опционально указаны с помощью этой функцией используя тот же синтаксис, что и для stream_context_create().

Список параметров

options
options должен быть ассоциативным массивом ассоциативных массивов в формате $arr['wrapper']['option'] = $value или null.

Возвращаемые значения

Ресурс (resource) контекста потока.

Список изменений

Версия | Описание
8.0.0 | Параметр options теперь допускает значение null.

Примеры

Пример #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_set_default() - Установить контекст потока по умолчанию
  • Список поддерживаемых обёрток с опциями контекста (Поддерживаемые протоколы и обёртки).


Получает опции для потока/обёртки/контекста

  • « stream_context_get_default
  • stream_context_get_params »
  • PHP Manual
  • Функции для работы с потоками
  • Получает опции для потока/обёртки/контекста

stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

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, PHP 8)

stream_context_get_params — Получает параметры из контекста

Описание

stream_context_get_params(resource $context): array

Возвращает информацию о параметрах и опциях из потока или контекста.

Список параметров

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, PHP 8)

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_options »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает опцию для потока/обёртки/контекста

stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

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

Поток или ресурс контекста, к которому будут применены опции.

wrapper

Имя обёртки (может отличаться от протокола). Смотрите опции и параметры контекста для получения списка параметров потока.

option

Имя опции.

value

Значение опции.

options

Опции, которые будут применены к stream_or_context.

Замечание:

Параметр options должен быть ассоциативным массивом ассоциативных массивов в формате $arr['wrapper']['option'] = $value.

Обратитесь к разделу опции и параметры контекста, чтобы получить список опций потока.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Sets options on the specified context

  • « stream_context_set_option
  • stream_context_set_params »
  • PHP Manual
  • Функции для работы с потоками
  • Sets options on the specified context

stream_context_set_options

(PHP 8 >= 8.3.0)

stream_context_set_options — Sets options on the specified context

Описание

stream_context_set_options(resource $context, array $options): bool

Sets options on the specified context.

Список параметров

context

The stream or context resource to apply the options to.

options

The options to set for context.

Замечание:

options must be an associative array of associative arrays in the format $array['wrapper']['option'] = $value.

Refer to context options and parameters for a listing of stream options.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 stream_context_set_options() example

<?php

$context = stream_context_create();

$options = [
'http' => [
'protocol_version' => 1.1,
'user_agent' => 'PHPT Agent',
],
];

stream_context_set_options($context, $options);
var_dump(stream_context_get_options($context));
?>

Результат выполнения данного примера:

array(1) {
  ["http"]=>
  array(2) {
    ["protocol_version"]=>
    float(1.1)
    ["user_agent"]=>
    string(10) "PHPT Agent"
  }
}

Смотрите также

  • stream_context_set_option() - Устанавливает опцию для потока/обёртки/контекста


Устанавливает параметры для потока/обёртки/контекста

  • « stream_context_set_options
  • stream_copy_to_stream »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает параметры для потока/обёртки/контекста

stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_context_set_params — Устанавливает параметры для потока/обёртки/контекста

Описание

stream_context_set_params(resource $context, array $params): bool

Устанавливает параметры для указанного контекста.

Список параметров

context

Поток или контекст, к которому будут применены параметры.

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, PHP 8)

stream_copy_to_stream — Копирует данные из одного потока в другой

Описание

stream_copy_to_stream(
resource $from,
resource $to,
?int $length = null,
int $offset = 0
): int|false

Делает копию до length байт данных от текущей позиции (или от позиции offset, если указана) потока from в поток to. Если length равен null, будет скопировано всё оставшееся содержимое из from.

Список параметров

from

Исходный поток.

to

Поток назначения.

length

Максимальное количество байт для копирования. По умолчанию копируются все оставшиеся байты.

offset

Смещение, с которого будут копироваться данные.

Возвращаемые значения

Возвращает общее количество скопированных байт или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр length теперь допускает значение null.

Примеры

Пример #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, PHP 8)

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 не найден.

Примеры

Пример #1 Контроль применения фильтров

<?php
/* Открываем тестовый файл для чтения и записи */
$fp = fopen('test.txt', 'w+');

/* Прикрепляем фильтр ROT13 к
* цепочке фильтров записи, но не к
* цепочке фильтров чтения */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* Запишем простую строку в файл
* она будет преобразована при помощи ROT13
* на выходе */
fwrite($fp, "This is a test\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, PHP 8)

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 не найден.

Примечания

Замечание: При использовании пользовательских фильтров
Сначала должна быть вызвана функция 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, PHP 8)

stream_filter_register — Регистрирует потоковый фильтр, определённый пользователем

Описание

stream_filter_register(string $filter_name, string $class): bool

stream_filter_register() позволяет вам реализовать собственный фильтр для любого зарегистрированного потока, используемого со всеми другими функциями файловой системы (такими как fopen(), fread() и т. д.).

Список параметров

filter_name

Название регистрируемого фильтра.

class

Чтобы реализовать фильтр, вам нужно определить класс как расширение php_user_filter c целым рядом функций-членов. При выполнении операций чтения/записи на потоке, к которому прикреплён ваш фильтр, PHP будет передавать данные через ваш фильтр (и через любые другие фильтры, прикреплённые к потоку), так что данные могут быть изменены как требуется. Вам необходимо реализовать методы точно как описано в php_user_filter. Иная реализация приведёт к непредсказуемому поведению.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

stream_filter_register() будет возвращать false, если фильтр с именем filter_name уже определён.

Примеры

Пример #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, PHP 8)

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, PHP 8)

stream_get_contents — Читает оставшуюся часть потока в строку

Описание

stream_get_contents(resource $stream, ?int $length = null, int $offset = -1): string|false

Похожа на функцию file_get_contents(), за исключением того, что stream_get_contents() работает с уже открытым ресурсом потока и возвращает оставшуюся часть содержимого в строку размером до length байт и начиная с указанного смещения offset.

Список параметров

stream (resource)

Ресурс потока (например, полученный при помощи функции fopen())

length (int)

Максимальное количество байт для чтения. По умолчанию null (прочитать весь оставшийся буфер).

offset (int)

Перейти к указанному смещению перед чтением. Если это число отрицательное, то переход не произойдёт и чтение начнётся с текущей позиции.

Возвращаемые значения

Возвращает строку или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | length теперь допускает значение null.

Примеры

Пример #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);
}

?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Замечание:

При указании значения параметра length, отличного от null, эта функция немедленно выделит внутренний буфер такого размера, даже если фактическое содержимое будет значительно короче.

Смотрите также

  • fgets() - Читает строку из файла
  • fread() - Бинарно-безопасное чтение файла
  • fpassthru() - Выводит все оставшиеся данные из файлового указателя


Получить список зарегистрированных фильтров

  • « stream_get_contents
  • stream_get_line »
  • PHP Manual
  • Функции для работы с потоками
  • Получить список зарегистрированных фильтров

stream_get_filters

(PHP 5, PHP 7, PHP 8)

stream_get_filters — Получить список зарегистрированных фильтров

Описание

stream_get_filters(): 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, PHP 8)

stream_get_line — Получает строку из потокового ресурса до указанного разделителя

Описание

stream_get_line(resource $stream, int $length, string $ending = ""): string|false

Получает строку из указанного дескриптора.

Чтение заканчивается, когда прочитано length количество байт и когда найдена непустая строка, указанная в параметре ending (она не включается в возвращаемое значение) или достигнут EOF (смотря что произойдёт раньше).

Функция очень похожа на функцию fgets(), кроме того, что она позволяет использовать разделители строк, отличающиеся от стандартных \n, \r, и \r\n, и не возвращает сам разделитель.

Список параметров

stream

Допустимый дескриптор файла.

length

Максимальное количество байтов для чтения из дескриптора. Отрицательные значения не поддерживаются. Ноль (0) означает размер блока сокета по умолчанию, т.е. 8192 байта.

ending

Необязательный разделитель строки.

Возвращаемые значения

Возвращает строку длиной до length байт, прочитанную из файла указанного параметром stream или 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, PHP 8)

stream_get_meta_data — Извлекает заголовок/метаданные из потоков/файловых указателей

Описание

stream_get_meta_data(resource $stream): array

Получает информацию о существующем потоке stream.

Список параметров

stream

Параметр stream может быть любым потоком, созданным при помощи функций fopen(), fsockopen(), pfsockopen() и stream_socket_client().

Возвращаемые значения

Получаемый массив содержит следующие элементы:

  • 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/имя файла, связанное с этим потоком.

  • crypto (array) - метаданные TLS-соединения потока. Примечание: указывается только в том случае, если поток ресурса использует TLS.

Примеры

Пример #1 Пример использования stream_get_meta_data() с использованием fopen() с http

<?php
$url = 'http://www.example.com/';

if (!$fp = fopen($url, 'r')) {
trigger_error("Невозможно открыть URL ($url)", E_USER_ERROR);
}

$meta = stream_get_meta_data($fp);

var_dump($meta);

fclose($fp);
?>

Результатом выполнения данного примера будет что-то подобное:

array(10) {
  'timed_out' =>
  bool(false)
  'blocked' =>
  bool(true)
  'eof' =>
  bool(false)
  'wrapper_data' =>
  array(13) {
    [0] =>
    string(15) "HTTP/1.1 200 OK"
    [1] =>
    string(11) "Age: 244629"
    [2] =>
    string(29) "Cache-Control: max-age=604800"
    [3] =>
    string(38) "Content-Type: text/html; CHARSET=Windows-1251"
    [4] =>
    string(35) "Date: Sat, 20 Nov 2021 18:17:57 GMT"
    [5] =>
    string(24) "Etag: "3147526947+ident""
    [6] =>
    string(38) "Expires: Sat, 27 Nov 2021 18:17:57 GMT"
    [7] =>
    string(44) "Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT"
    [8] =>
    string(22) "Server: ECS (chb/0286)"
    [9] =>
    string(21) "Vary: Accept-Encoding"
    [10] =>
    string(12) "X-Cache: HIT"
    [11] =>
    string(20) "Content-Length: 1256"
    [12] =>
    string(17) "Connection: close"
  }
  'wrapper_type' =>
  string(4) "http"
  'stream_type' =>
  string(14) "tcp_socket/ssl"
  'mode' =>
  string(1) "r"
  'unread_bytes' =>
  int(1256)
  'seekable' =>
  bool(false)
  'uri' =>
  string(23) "http://www.example.com/"
}

Пример #2 Пример использования stream_get_meta_data() с использованием stream_socket_client() с https

<?php
$streamContext = stream_context_create(
[
'ssl' => [
'capture_peer_cert' => true,
'capture_peer_cert_chain' => true,
'disable_compression' => true,
],
]
);
$client = stream_socket_client(
'ssl://www.example.com:443',
$errorNumber,
$errorDescription,
40,
STREAM_CLIENT_CONNECT,
$streamContext
);
$meta = stream_get_meta_data($client);
var_dump($meta);
?>

Результатом выполнения данного примера будет что-то подобное:

array(8) {
  'crypto' =>
  array(4) {
    'protocol' =>
    string(7) "TLSv1.3"
    'cipher_name' =>
    string(22) "TLS_AES_256_GCM_SHA384"
    'cipher_bits' =>
    int(256)
    'cipher_version' =>
    string(7) "TLSv1.3"
  }
  'timed_out' =>
  bool(false)
  'blocked' =>
  bool(true)
  'eof' =>
  bool(false)
  'stream_type' =>
  string(14) "tcp_socket/ssl"
  'mode' =>
  string(2) "r+"
  'unread_bytes' =>
  int(0)
  'seekable' =>
  bool(false)
}

Примечания

Замечание:

Эта функция НЕ будет работать с сокетами, созданными при помощи модуля Socket.

Смотрите также

  • get_headers() - Возвращает все заголовки из ответа сервера на HTTP-запрос
  • $http_response_header


Получить список зарегистрированных транспортов сокета

  • « stream_get_meta_data
  • stream_get_wrappers »
  • PHP Manual
  • Функции для работы с потоками
  • Получить список зарегистрированных транспортов сокета

stream_get_transports

(PHP 5, PHP 7, PHP 8)

stream_get_transports — Получить список зарегистрированных транспортов сокета

Описание

stream_get_transports(): 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, PHP 8)

stream_get_wrappers — Получить список зарегистрированных потоков

Описание

stream_get_wrappers(): 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, PHP 8)

stream_is_local — Проверяет, является ли поток локальным потоком

Описание

stream_is_local(resource|string $stream): bool

Проверяет, является ли поток или URL локальным или нет.

Список параметров

stream

Ресурс (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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

stream_resolve_include_path — Преобразовать полное имя файла, используя пути включения

Описание

stream_resolve_include_path(string $filename): string|false

Преобразовать полное имя файла из параметра 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() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds

  • « stream_resolve_include_path
  • stream_set_blocking »
  • PHP Manual
  • Функции для работы с потоками
  • Запускает эквивалент системного вызова select() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds

stream_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_select — Запускает эквивалент системного вызова select() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds

Описание

stream_select(
?array &$read,
?array &$write,
?array &$except,
?int $seconds,
?int $microseconds = null
): int|false

Функция stream_select() получает массивы потоков и ждёт изменения их статуса. Её работа эквивалентна работе функции socket_select(), за исключением того, что она работает с потоками.

Список параметров

read

Потоки, перечисленные в массиве read будут отслеживаться на предмет появления символов, доступных для чтения (точнее, чтобы убедиться, что чтение не будет блокироваться - в частности, потоковый ресурс также готов для чтения в конце файла, но в этом случае функция fread() будет возвращать строку нулевой длины).

write

Потоки, перечисленные в массиве write, будут отслеживаться на предмет того, что запись в них не будет блокироваться.

except

Потоки, перечисленные в массиве except, будут отслеживаться на предмет поступления высокоприоритетных исключительных (внеполосных или "out-of-band") данных.

Замечание:

Когда stream_select() возвращается, массивы read, write и except изменяются для того, чтобы указать, какие потоковые ресурсы на самом деле изменили статус. Исходные ключи массивов (array) сохраняются.

seconds

Параметры seconds и microseconds вместе формируют параметр timeout, seconds указывает число секунд, а microseconds - число микросекунд. Параметр timeout - это верхняя граница времени, которое функция stream_select() будет ожидать до возвращения. Если параметры seconds и microseconds оба установлены в 0, то функция stream_select() не будет ожидать данных - вместо этого она вернётся немедленно, указывая текущий статус потоков.

Если параметр seconds равен null, то функция stream_select() может выполняться неопределённое время, возвращаясь только тогда, когда происходит событие на одном из отслеживаемых потоков (или если системный вызов прерывается сигналом).

Внимание

Использование значения времени ожидания 0 позволяет вам мгновенно опросить статус потоков, однако ПЛОХАЯ идея использовать значение времени ожидания 0 в цикле, так как это заставит ваш скрипт потреблять слишком много процессорного времени.

Гораздо лучше указать значение времени ожидания в несколько секунд, хотя если вам нужно проверять и одновременно запускать другой код, использование времени ожидания как минимум 200000 микросекунд поможет уменьшить использование процессорного времени вашим скриптом.

Запомните, что значение времени ожидания - это максимальное время, которое будет затрачено. Функция stream_select() вернётся как только запрошенные потоки будут готовы к использованию.

microseconds

Смотрите описание параметра seconds.

Возвращаемые значения

В случае успешного выполнения функция stream_select() возвращает количество потоковых ресурсов, содержащееся в изменённых массивах, которое может равно нулю, если превышено время ожидания до того, как произошло что-то интересное. В случае возникновения ошибки возвращается false и возникает предупреждение (это может случиться, если системный вызов прерывается входящим сигналом).

Список изменений

Версия | Описание
8.1.0 | Параметр microseconds теперь допускает значение null.

Примеры

Пример #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() не удастся и возвратит false под Windows.

STDIN из консоли меняет статус, как только становятся доступны какие-либо входные события, но чтение из потока всё ещё может блокироваться.

Смотрите также

  • stream_set_blocking() - Установить блокирующий/неблокирующий режим в потоке


Установить блокирующий/неблокирующий режим в потоке

  • « stream_select
  • stream_set_chunk_size »
  • PHP Manual
  • Функции для работы с потоками
  • Установить блокирующий/неблокирующий режим в потоке

stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_set_blocking — Установить блокирующий/неблокирующий режим в потоке

Описание

stream_set_blocking(resource $stream, bool $enable): bool

Устанавливает блокирующий или неблокирующий режим в потоке stream.

Эта функция работает для любого потока, который поддерживает неблокирующий режим (в настоящее время это обычные файлы и сокетные потоки).

Список параметров

stream

Поток.

enable

Если параметр enable равен false, указанный поток будет переключён в неблокирующий режим, а если он равен true, поток будет переключён в блокирующий режим. Это влияет на такие вызовы, как fgets() и fread(), которые читают из потока. В неблокирующем режиме вызов функции fgets() будет всегда возвращаться сразу, тогда как в блокирующем режиме он будет ожидать, пока данные станут доступны на потоке.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примечания

Замечание:

В Windows эта функция не влияет на локальные файлы. Неблокирующий IO для локальных файлов не поддерживается в Windows.

Смотрите также

  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds


Установить размер фрагмента данных потока

  • « stream_set_blocking
  • stream_set_read_buffer »
  • PHP Manual
  • Функции для работы с потоками
  • Установить размер фрагмента данных потока

stream_set_chunk_size

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

stream_set_chunk_size — Установить размер фрагмента данных потока

Описание

stream_set_chunk_size(resource $stream, int $size): int

Установить размер фрагмента обрабатываемых данных потока.

Список параметров

stream

Поток.

size

Желаемый размер фрагмента.

Возвращаемые значения

Возвращает предыдущий размер фрагмента в случае успешного выполнения.

Вернёт false, если size меньше 1 или больше PHP_INT_MAX.

Ошибки

Вызывает ошибку уровня E_WARNING, если 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, PHP 8)

stream_set_read_buffer — Установить буферизацию чтения файла на указанном потоке

Описание

stream_set_read_buffer(resource $stream, int $size): int

Устанавливает буфер чтения. Это эквивалент функции stream_set_write_buffer(), но для операций чтения.

Список параметров

stream

Файловый указатель.

size

Число байт для буферизации. Если аргумент size равен 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, PHP 8)

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, PHP 8)

stream_set_write_buffer — Устанавливает буферизацию файла при записи в указанный поток

Описание

stream_set_write_buffer(resource $stream, int $size): int

Устанавливает буферизацию для операций записи на заданном потоке stream в число size байт.

Список параметров

stream

Файловый указатель.

size

Число байт для буферизации. Если аргумент size равен 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, PHP 8)

stream_socket_accept — Принимать соединение в сокете, созданном c помощью функции stream_socket_server()

Описание

stream_socket_accept(resource $socket, ?float $timeout = null, string &$peer_name = null): resource|false

Принимать соединение в сокете, предварительно созданном с помощью функции stream_socket_server().

Список параметров

socket

Серверный сокет для принятия соединения.

timeout

Переопределять время ожидания подключения сокета по умолчанию. Время должно быть указано в секундах. По умолчанию используется значение default_socket_timeout.

peer_name

Будет присвоено имя (адрес) клиента, который подсоединился, если оно содержится и доступно из выбранного транспорта.

Замечание:

Может быть определено позже, используя функцию stream_socket_get_name().

Возвращаемые значения

Возвращает поток принятого соединения с сокетом или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | timeout теперь допускает значение null.

Примечания

Внимание

Эта функция не должна использоваться с серверными сокетами 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, PHP 8)

stream_socket_client — Открыть соединение с интернет-сокетом или с доменным сокетом Unix

Описание

stream_socket_client(
string $address,
int &$error_code = null,
string &$error_message = null,
?float $timeout = null,
int $flags = STREAM_CLIENT_CONNECT,
?resource $context = null
): resource|false

Начинает соединение потока или датаграммы с удалённым сокетом, указанным параметром address. Тип создаваемого сокета определяется по транспорту, указанному с использованием стандартного форматирования URL: transport://target. Для интернет-сокетов, (AF_INET) таких, как TCP и UDP, часть target параметра address должна состоять из имени хоста или IP-адреса, за которым следует двоеточие и номер порта. Для доменных сокетов Unix, часть target должна указывать на файл сокета в файловой системе.

Замечание:

По умолчанию поток будет открыт в блокирующем режиме. Вы можете переключить его в неблокирующий режим, используя функцию stream_set_blocking().

Список параметров

address

Адрес удалённого сокета для соединения.

error_code

Будет присвоен номер системной ошибки, если соединение не удалось установить.

error_message

Будет присвоено сообщение о системной ошибке, если соединение не удалось установить.

timeout

Число секунд, в течение которых должно произойти время ожидания системного вызова connect(). По умолчанию используется значение default_socket_timeout.

Замечание: Этот параметр применяется только если не происходит попытка асинхронного соединения.

Замечание:

Чтобы указать время ожидания для чтения/записи данных через сокет, используйте функцию 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.

Ошибки

В случае неудачного вызова функции аргументы error_code и error_message будут заполнены системной ошибкой, которая произошла при системном вызове connect(). Если значение, возвращённое в аргументе error_code равно 0 и функция возвратила значение false, это означает, что ошибка произошла до вызова connect(). Это произошло скорее всего из-за проблемы инициализации сокета. Примите во внимание, что аргументы error_code и error_message всегда будут передаваться по ссылке.

Список изменений

Версия | Описание
8.0.0 | timeout и context теперь допускают значение null.

Примеры

Пример #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() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds
  • 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, PHP 8)

stream_socket_enable_crypto — Включает или отключает шифрование на уже подключённом сокете

Описание

stream_socket_enable_crypto(
resource $stream,
bool $enable,
?int $crypto_method = null,
?resource $session_stream = null
): int|bool

Включает или отключает шифрование на потоке.

После настройки шифрования, криптография может быть включена или выключена динамически при помощи передачи значения true или false параметру enable.

Список параметров

stream

Потоковый ресурс.

enable

Включить/отключить криптографию на потоке.

crypto_method

Включить шифрование на потоке. Допустимые методы

  • 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_TLSv1_3_CLIENT (начиная с PHP 7.4.0)
  • 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
  • STREAM_CRYPTO_METHOD_TLSv1_3_SERVER (начиная с PHP 7.4.0)

Если не указан, то будет использован параметр crypto_method из SSL контекста потока.

session_stream

Использовать в потоке настройки из session_stream.

Возвращаемые значения

Возвращает true в случае успешного выполнения, false, если не удалось установить шифрование или 0, если недостаточно данных и вы должны попытаться ещё раз (только для неблокирующих сокетов).

Список изменений

Версия | Описание
8.0.0 | session_stream теперь допускает значение null.

Примеры

Пример #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, PHP 8)

stream_socket_get_name — Получить название локального или удалённого сокета

Описание

stream_socket_get_name(resource $socket, bool $remote): string|false

Возвращает локальное или удалённое название указанного сокетного соединения.

Список параметров

socket

Сокет, название которого нужно получить.

remote

Если установлено в true, то будет возвращено удалённое название сокета, если установлено в false, то будет возвращено локальное название.

Возвращаемые значения

Название сокета или 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, PHP 8)

stream_socket_pair — Создаёт пару подключённых, неразличимых потоков сокетов

Описание

stream_socket_pair(int $domain, int $type, int $protocol): array|false

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 в случае неудачи.

Примеры

Пример #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, PHP 8)

stream_socket_recvfrom — Получает данные из сокета, подключённого или нет

Описание

stream_socket_recvfrom(
resource $socket,
int $length,
int $flags = 0,
?string &$address = null
): string|false

stream_socket_recvfrom() принимает данные из удалённого сокета размером до length байт.

Список параметров

socket

Удалённый сокет.

length

Количество байт для получения из параметра socket.

flags

Значение параметра flags может быть любой комбинацией из следующего:

Возможные значения для параметра flags
STREAM_OOB | Обрабатывать данные OOB (out-of-band).
STREAM_PEEK | Получать данные из сокета, но не расходовать буфер. Последующие вызовы функций fread() или stream_socket_recvfrom() получат те же самые данные.

address

Если указан параметр address, он будет заполнен адресом удалённого сокета.

Возвращаемые значения

Возвращает прочитанные данные в виде строки или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

stream_socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

Описание

stream_socket_sendto(
resource $socket,
string $data,
int $flags = 0,
string $address = ""
): int|false

Отправляет указанные данные data через сокет socket.

Список параметров

socket

Сокет для отправки данных data.

data

Отправляемые данные.

flags

Значение параметра flags может быть любой из следующих комбинаций:

возможные значения для параметра flags
STREAM_OOB Обрабатывать OOB (out-of-band, внеполосные) данные.

address

Адрес, указанный при создании потокового сокета, будет использоваться до тех пор, пока не указан альтернативный адрес в параметре address.

Если указан, он должен быть в формате ipv4 или ipv6.

Возвращаемые значения

Возвращает код результата, как целое число или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

stream_socket_server — Создаёт интернет-сокет или доменный сокет Unix

Описание

stream_socket_server(
string $address,
int &$error_code = null,
string &$error_message = null,
int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,
?resource $context = null
): resource|false

Создаёт сокет потока или датаграммы на указанном address.

Эта функция только создаёт сокет. Чтобы начать принимать соединения используйте stream_socket_accept().

Список параметров

address

Тип создаваемого сокета определяется по транспорту, указанному с использованием стандартного форматирования URL: transport://target.

Для доменных сокетов интернета (AF_INET), таких как TCP и UDP, часть target параметра remote_socket должна состоять из имени хоста или IP-адреса с последующим двоеточием и номера порта. Для доменных сокетов Unix часть target должна указывать на файл сокета в файловой системе.

В зависимости от окружения, доменные сокеты Unix могут быть недоступны. Список доступных транспортов может быть получен при помощи функции stream_get_transports(). Смотрите Список поддерживаемых транспортных протоколов для списка встроенных транспортов.

error_code

Если необязательные аргументы error_code и error_message присутствуют, то они будут установлены для указания действительного уровня системной ошибки, которая происходит при системных вызовах socket(), bind() и listen(). Если значение, возвращаемое в error_code, равно 0 и функция возвратила false, это означает, что ошибка произошла до вызова bind(). Скорее всего это произошло из-за проблемы инициализации сокета. Примите во внимание, что аргументы error_code и error_message должны всегда передаваться по ссылке.

error_message

Смотрите описание параметра error_code.

flags

Битовая маска, которая может быть установлена в любую комбинацию флагов для создания сокета.

Замечание:

Для UDP-сокетов вы должны использовать STREAM_SERVER_BIND в качестве параметра flags.

context

Возвращаемые значения

Возвращает созданный поток или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр context теперь допускает значение null.

Примеры

Пример #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, PHP 8)

stream_socket_shutdown — Закрыть полнодуплексное соединение

Описание

stream_socket_shutdown(resource $stream, int $mode): bool

Закрывает (частично или нет) полнодуплексное соединение.

Замечание:

Ассоциированные буферы, или буферы, могут быть закрыты, а могут и нет.

Список параметров

stream

Открытый поток (например, открытый при помощи функции stream_socket_client())

mode

Одна из следующих констант: 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, PHP 8)

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, PHP 8)

stream_wrapper_register — Регистрирует обёртку URL, реализованную в виде PHP-класса

Описание

stream_wrapper_register(string $protocol, string $class, int $flags = 0): bool

Позволяет вам реализовать ваши собственные обработчики протоколов и потоков для использования со всеми другими функциями файловой системы (такими как fopen(), fread() и т.д.).

Список параметров

protocol

Название регистрируемой обёртки. Допустимые имена протоколов должны содержать только буквы, цифры, точки (.), плюсы (+) или дефисы (-).

class

Название класса, который реализует протокол protocol.

flags

Должно быть установлено в STREAM_IS_URL, если параметр protocol является протоколом URL. По умолчанию 0, локальный поток.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

stream_wrapper_register() будет возвращать false, если протокол protocol уже имеет обработчик.

Примеры

Пример #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, PHP 8)

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, PHP 8)

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_clear_error — Сбрасывает ошибки в сокете или по последнему коду ошибки
    • swoole_client_select — Получить описание файла, готового к чтению/записи или ошибке
    • swoole_cpu_num — Получить количество CPU
    • swoole_errno — Получить код ошибки последнего системного вызова
    • swoole_error_log — Выводит сообщения об ошибках в журнал
    • 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 — Создаёт канал Swoole
    • Swoole\Channel::__destruct — Уничтожает канал Swoole
    • Swoole\Channel::pop — Читает и извлекает данные из канала Swoole
    • Swoole\Channel::push — Записывает и передаёт данные в канал Swoole
    • Swoole\Channel::stats — Получает статистику канала Swoole
  • Swoole\Client — Класс Swoole\Client
    • Swoole\Client::close — Закрывает установленное соединение
    • Swoole\Client::connect — Подключается к удалённому порту TCP или UDP
    • Swoole\Client::__construct — Создаёт синхронный или асинхронный TCP/UDP клиент Swoole с поддержкой SSL или без него
    • Swoole\Client::__destruct — Уничтожает клиент Swoole
    • Swoole\Client::getpeername — Получает имя удалённого сокета соединения
    • Swoole\Client::getsockname — Получает локальное имя сокета соединения
    • Swoole\Client::isConnected — Проверяет, установлено ли соединение
    • Swoole\Client::on — Добавляет callback-функции, вызванные событиями
    • Swoole\Client::pause — Приостанавливает получение данных
    • Swoole\Client::pipe — Перенаправляет данные в другой файловый дескриптор
    • Swoole\Client::recv — Получает данные из удалённого сокета
    • Swoole\Client::resume — Возобновляет получение данных
    • Swoole\Client::send — Отправляет данные в удалённый TCP-сокет
    • Swoole\Client::sendfile — Отправляет файл в удалённый TCP-сокет
    • Swoole\Client::sendto — Отправляет данные на удалённый UDP-адрес
    • Swoole\Client::set — Устанавливает параметры клиента Swoole до установления соединения
    • Swoole\Client::sleep — Удаляет TCP-клиент из цикла системных событий
    • Swoole\Client::wakeup — Добавляет TCP-клиент обратно в цикл системных событий
  • 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 — Вызывает callback-функцию с массивом параметров
    • Swoole\Coroutine::call_user_func — Вызывает callback-функцию, заданную первым параметром
    • Swoole\Coroutine::cli_wait — Описание
    • Swoole\Coroutine::create — Описание
    • 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 — Описание
    • Swoole\Coroutine::resume — Описание
    • Swoole\Coroutine::suspend — Описание
  • 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 — Создаёт блокировку памяти
    • Swoole\Lock::__destruct — Уничтожает блокировку памяти Swoole
    • Swoole\Lock::lock_read — Блокирует чтение-запись блокировки для чтения
    • Swoole\Lock::lock — Пытается получить блокировку. Заблокируется, если блокировка недоступна
    • Swoole\Lock::trylock_read — Пытается заблокировать блокировку чтения-записи для чтения и сразу возвращает, даже если блокировка недоступна
    • Swoole\Lock::trylock — Пытается получить блокировку и сразу возвращает, даже если блокировка недоступна
    • Swoole\Lock::unlock — Снимает блокировку
  • 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 — Устанавливает тип данных и размер столбцов
    • Swoole\Table::__construct — Создаёт таблицу памяти Swoole с фиксированным размером
    • Swoole\Table::count — Подсчитывает строки в таблице или подсчитывает все элементы в таблице, если $mode = 1
    • Swoole\Table::create — Создаёт таблицу памяти swoole
    • Swoole\Table::current — Получает текущую строку
    • Swoole\Table::decr — Уменьшает значение в таблице Swoole по $row_key и $column_key
    • Swoole\Table::del — Удаляет строку в таблице Swoole по $row_key
    • Swoole\Table::destroy — Уничтожает таблицу Swoole
    • Swoole\Table::exist — Проверяет, существует ли строка по $row_key
    • Swoole\Table::get — Получает значение в таблице Swoole по $row_key и $column_key
    • Swoole\Table::incr — Увеличивает значение по $row_key и $column_key
    • Swoole\Table::key — Получает ключ текущей строки
    • Swoole\Table::next — Перемещает итератор на следующую строку
    • Swoole\Table::rewind — Перематывает итератор
    • Swoole\Table::set — Обновляет строку таблицы по $row_key
    • Swoole\Table::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.enable_coroutine | On | PHP_INI_ALL | Доступно, начиная с swoole 4.0.0
swoole.use_shortname | On | PHP_INI_ALL | Доступно, начиная с swoole 4.0.0
swoole.enable_preemptive_scheduler | Off | PHP_INI_ALL | Доступно, начиная с swoole 4.4.0
swoole.enable_library | On | PHP_INI_ALL | Доступно, начиная с swoole 4.0.0

Краткое разъяснение конфигурационных директив.

swoole.aio_thread_num int

Номер потока асинхронного ввода/вывода POSIX

swoole.display_errors string

Определяет, должны ли ошибки Swoole выводиться на экран.

swoole.fast_serialize string

Определяет, включать ли Swoole fast_serialize.

swoole.unixsock_buffer_size int

Размер буфера сокета Unix.

swoole.use_namespace string

Определяет, использовать ли пространства имён PHP.

swoole.enable_coroutine string

Определяет, включать ли сопрограмму

swoole.use_shortname string

Определяет, включать ли короткие псевдонимы

swoole.enable_preemptive_scheduler string

Определяет, включать ли вытесняющий планировщик

swoole.enable_library string

Определяет, включать ли библиотеку


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

SWOOLE_BASE (int)
SWOOLE_THREAD (int)
SWOOLE_PROCESS (int)
SWOOLE_IPC_UNSOCK (int)
SWOOLE_IPC_MSGQUEUE (int)
SWOOLE_IPC_PREEMPTIVE (int)
SWOOLE_SOCK_TCP (int)
SWOOLE_SOCK_TCP6 (int)
SWOOLE_SOCK_UDP (int)
SWOOLE_SOCK_UDP6 (int)
SWOOLE_SOCK_UNIX_DGRAM (int)
SWOOLE_SOCK_UNIX_STREAM (int)
SWOOLE_TCP (int)
SWOOLE_TCP6 (int)
SWOOLE_UDP (int)
SWOOLE_UDP6 (int)
SWOOLE_UNIX_DGRAM (int)
SWOOLE_UNIX_STREAM (int)
SWOOLE_SOCK_SYNC (int)
SWOOLE_SOCK_ASYNC (int)
SWOOLE_SYNC (int)
SWOOLE_ASYNC (int)
SWOOLE_KEEP (int)
SWOOLE_EVENT_READ (int)
SWOOLE_EVENT_WRITE (int)
SWOOLE_VERSION (string)
SWOOLE_AIO_BASE (int)
SWOOLE_AIO_LINUX (int)
SWOOLE_FILELOCK (int)
SWOOLE_MUTEX (int)
SWOOLE_SEM (int)
SWOOLE_RWLOCK (int)
WEBSOCKET_OPCODE_TEXT (int)
WEBSOCKET_OPCODE_BINARY (int)
WEBSOCKET_OPCODE_PING (int)
WEBSOCKET_STATUS_CONNECTION (int)
WEBSOCKET_STATUS_HANDSHAKE (int)
WEBSOCKET_STATUS_FRAME (int)
WEBSOCKET_STATUS_ACTIVE (int)
SWOOLE_FAST_PACK (int)
SWOOLE_LOG_DEBUG (int)
Журнал отладки. Доступно с версии swoole 2.1.2.
SWOOLE_LOG_TRACE (int)
Журнал трассировки. Доступно с версии swoole 2.1.2.
SWOOLE_LOG_INFO (int)
Журнал информационных сообщений. Доступно с версии swoole 2.1.2.
SWOOLE_LOG_NOTICE (int)
Журнал уведомлений. Доступно с версии swoole 2.1.2.
SWOOLE_LOG_WARNING (int)
Журнал предупреждений. Доступно с версии swoole 2.1.2.
SWOOLE_LOG_ERROR (int)
Журнал ошибок. Доступно с версии swoole 2.1.2.
SWOOLE_LOG_NONE (int)
Нет журнала. Доступно с версии swoole 2.1.2.


Функции Swoole

Содержание

  • swoole_async_dns_lookup — Асинхронный и неблокирующий поиск имени хоста или IP-адреса
  • swoole_async_read — Асинхронное чтение потока файла
  • swoole_async_readfile — Асинхронное чтение файла
  • swoole_async_set — Обновление опций асинхронного ввода-вывода
  • swoole_async_write — Асинхронная запись данных в поток файла
  • swoole_async_writefile — Асинхронная запись данных в файл
  • swoole_clear_error — Сбрасывает ошибки в сокете или по последнему коду ошибки
  • swoole_client_select — Получить описание файла, готового к чтению/записи или ошибке
  • swoole_cpu_num — Получить количество CPU
  • swoole_errno — Получить код ошибки последнего системного вызова
  • swoole_error_log — Выводит сообщения об ошибках в журнал
  • 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

(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

(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

(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

(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

(PECL swoole >= 1.9.0)

swoole_async_write — Асинхронная запись данных в поток файла

Описание

swoole_async_write(
string $filename,
string $content,
int $offset = ?,
callable $callback = ?
): bool

Список параметров

filename

Имя файла, в который будет произведена запись

content

Содержимое, записываемое в файл.

offset

Смещение.

callback

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Асинхронная запись данных в файл

  • « swoole_async_write
  • swoole_clear_error »
  • PHP Manual
  • Функции Swoole
  • Асинхронная запись данных в файл

swoole_async_writefile

(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_client_select »
  • PHP Manual
  • Функции Swoole
  • Сбрасывает ошибки в сокете или по последнему коду ошибки

swoole_clear_error

(PECL swoole >= 4.6.0)

swoole_clear_error — Сбрасывает ошибки в сокете или по последнему коду ошибки

Описание

swoole_clear_error(): void

Сбрасывает ошибки в сокете или по последнему коду ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Получить описание файла, готового к чтению/записи или ошибке

  • « swoole_clear_error
  • swoole_cpu_num »
  • PHP Manual
  • Функции Swoole
  • Получить описание файла, готового к чтению/записи или ошибке

swoole_client_select

(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

(PECL swoole >= 1.9.0)

swoole_cpu_num — Получить количество CPU

Описание

swoole_cpu_num(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество CPU.


Получить код ошибки последнего системного вызова

  • « swoole_cpu_num
  • swoole_error_log »
  • PHP Manual
  • Функции Swoole
  • Получить код ошибки последнего системного вызова

swoole_errno

(PECL swoole >= 1.9.0)

swoole_errno — Получить код ошибки последнего системного вызова

Описание

swoole_errno(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Выводит сообщения об ошибках в журнал

  • « swoole_errno
  • swoole_event_add »
  • PHP Manual
  • Функции Swoole
  • Выводит сообщения об ошибках в журнал

swoole_error_log

(PECL swoole >= 4.5.8)

swoole_error_log — Выводит сообщения об ошибках в журнал

Описание

swoole_error_log(int $level, string $msg): void

Выводит сообщения об ошибках в журнал.

Список параметров

level

Уровень записи в журнал, можно использовать константы: SWOOLE_LOG_DEBUG, SWOOLE_LOG_TRACE, SWOOLE_LOG_INFO, SWOOLE_LOG_NOTICE, SWOOLE_LOG_WARNING, SWOOLE_LOG_ERROR, SWOOLE_LOG_NONE

msg

Сообщение, записываемое в журнал.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Добавить новых callback-функций сокета в цикл событий

  • « swoole_error_log
  • swoole_event_defer »
  • PHP Manual
  • Функции Swoole
  • Добавить новых callback-функций сокета в цикл событий

swoole_event_add

(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

(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

(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

(PECL swoole >= 1.9.0)

swoole_event_exit — Закрыть цикл событий, доступный только на стороне клиента

Описание

swoole_event_exit(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Обновить callback-функции события сокета

  • « swoole_event_exit
  • swoole_event_wait »
  • PHP Manual
  • Функции Swoole
  • Обновить callback-функции события сокета

swoole_event_set

(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

(PECL swoole >= 1.9.0)

swoole_event_wait — Запустить цикл событий

Описание

swoole_event_wait(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Записать данные в сокет

  • « swoole_event_wait
  • swoole_get_local_ip »
  • PHP Manual
  • Функции Swoole
  • Записать данные в сокет

swoole_event_write

(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

(PECL swoole >= 1.9.0)

swoole_get_local_ip — Получить IP-адреса в формате IPv4 каждой сетевой платы (NIC) компьютера

Описание

swoole_get_local_ip(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить последнее сообщение об ошибке

  • « swoole_get_local_ip
  • swoole_load_module »
  • PHP Manual
  • Функции Swoole
  • Получить последнее сообщение об ошибке

swoole_last_error

(PECL swoole >= 1.9.0)

swoole_last_error — Получить последнее сообщение об ошибке

Описание

swoole_last_error(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Загрузить модуль swoole

  • « swoole_last_error
  • swoole_select »
  • PHP Manual
  • Функции Swoole
  • Загрузить модуль swoole

swoole_load_module

(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

(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

(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

(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

(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

(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

(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

(PECL swoole >= 1.9.0)

swoole_version — Получить версию Swoole

Описание

swoole_version(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Версия Swoole.


Класс Swoole\Async

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Async {
/* Методы */
public static dnsLookup(string $hostname, callable $callback): void
public static read(
string $filename,
callable $callback,
int $chunk_size = ?,
int $offset = ?
): bool
public static readFile(string $filename, callable $callback): void
public static set(array $settings): void
public static write(
string $filename,
string $content,
int $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

(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

(PECL swoole >= 1.9.0)

Swoole\Async::read — Асинхронное чтение файлового потока

Описание

public static Swoole\Async::read(
string $filename,
callable $callback,
int $chunk_size = ?,
int $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

(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

(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

(PECL swoole >= 1.9.0)

Swoole\Async::write — Асинхронно записывает данные в файловый поток

Описание

public static Swoole\Async::write(
string $filename,
string $content,
int $offset = ?,
callable $callback = ?
): void

Список параметров

filename

Имя файла для записи.

content

Содержание для записи в файл.

offset

Смещение.

callback


Описание

  • « Swoole\Async::write
  • Swoole\Atomic »
  • PHP Manual
  • Swoole\Async
  • Описание

Swoole\Async::writeFile

(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

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Atomic {
/* Методы */
public add(int $add_value = ?): int
public cmpset(int $cmp_value, int $new_value): int
public get(): int
public set(int $value): int
public sub(int $sub_value = ?): int
}

Содержание

  • 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

(PECL swoole >= 1.9.0)

Swoole\Atomic::add — Добавляет число к значению атомарного объекта

Описание

public Swoole\Atomic::add(int $add_value = ?): int

Добавляет число к значению атомарного объекта.

Список параметров

add_value

Значение, которое будет добавлено к текущему значению.

Возвращаемые значения

Новое значение атомарного объекта.


Сравнивает и устанавливает значение атомарного объекта

  • « Swoole\Atomic::add
  • Swoole\Atomic::__construct »
  • PHP Manual
  • Swoole\Atomic
  • Сравнивает и устанавливает значение атомарного объекта

Swoole\Atomic::cmpset

(PECL swoole >= 1.9.0)

Swoole\Atomic::cmpset — Сравнивает и устанавливает значение атомарного объекта

Описание

public Swoole\Atomic::cmpset(int $cmp_value, int $new_value): int

Список параметров

cmp_value

Значение для сравнения с текущим значением атомарного объекта.

new_value

Значение, устанавливаемое для атомарного объекта, если значение cmp_value совпадает с текущим значением атомарного объекта.

Возвращаемые значения

Новое значение атомарного объекта.


Создаёт атомарный объект swoole

  • « Swoole\Atomic::cmpset
  • Swoole\Atomic::get »
  • PHP Manual
  • Swoole\Atomic
  • Создаёт атомарный объект swoole

Swoole\Atomic::__construct

(PECL swoole >= 1.9.0)

Swoole\Atomic::__construct — Создаёт атомарный объект swoole

Описание

public Swoole\Atomic::__construct(int $value = ?)

Атомарный объект Swoole - это целочисленная переменная, которая позволяет любому процессору атомарно тестировать и модифицировать. Он реализован на основе атомарных инструкций процессора. Атомарные переменные Swoole должны быть определены до swoole_server->start.

Сравнение и замена (CAS) - это атомарная инструкция, используемая в многопоточности для достижения синхронизации. Она сравнивает содержимое области памяти с заданным значением и, только если они совпадают, изменяет содержимое этой области памяти на новое заданное значение.

Список параметров

value

Значение атомарного объекта.


Получает текущее значение атомарного объекта

  • « Swoole\Atomic::__construct
  • Swoole\Atomic::set »
  • PHP Manual
  • Swoole\Atomic
  • Получает текущее значение атомарного объекта

Swoole\Atomic::get

(PECL swoole >= 1.9.0)

Swoole\Atomic::get — Получает текущее значение атомарного объекта

Описание

public Swoole\Atomic::get(): int

Получает текущее значение атомарного объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущее значение атомарного объекта.


Устанавливает новое значение для атомарного объекта

  • « Swoole\Atomic::get
  • Swoole\Atomic::sub »
  • PHP Manual
  • Swoole\Atomic
  • Устанавливает новое значение для атомарного объекта

Swoole\Atomic::set

(PECL swoole >= 1.9.0)

Swoole\Atomic::set — Устанавливает новое значение для атомарного объекта

Описание

public Swoole\Atomic::set(int $value): int

Устанавливает новое значение для атомарного объекта.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

value

Значение, устанавливаемое для атомарного объекта.

Возвращаемые значения

Текущее значение атомарного объекта.


Вычитает число из значения атомарного объекта

  • « Swoole\Atomic::set
  • Swoole\Buffer »
  • PHP Manual
  • Swoole\Atomic
  • Вычитает число из значения атомарного объекта

Swoole\Atomic::sub

(PECL swoole >= 1.9.0)

Swoole\Atomic::sub — Вычитает число из значения атомарного объекта

Описание

public Swoole\Atomic::sub(int $sub_value = ?): int

Вычитает число из значения атомарного объекта.

Список параметров

sub_value

Значение, которое будет вычтено из текущего значения.

Возвращаемые значения

Текущее значение атомарного объекта.


Класс Swoole\Buffer

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Buffer {
/* Методы */
public append(string $data): int
public clear(): void
public __destruct(): void
public expand(int $size): int
public read(int $offset, int $length): string
public recycle(): void
public substr(int $offset, int $length = ?, bool $remove = ?): string
public __toString(): string
public write(int $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

(PECL swoole >= 1.9.0)

Swoole\Buffer::append — Добавляет строку или двоичные данные в конец буфера памяти и возвращает новый размер выделенной памяти

Описание

public Swoole\Buffer::append(string $data): int

Список параметров

data

Строка или двоичные данные, добавляемые в конец буфера памяти.

Возвращаемые значения

Новый размер буфера памяти.


Сбрасывает буфер памяти

  • « Swoole\Buffer::append
  • Swoole\Buffer::__construct »
  • PHP Manual
  • Swoole\Buffer
  • Сбрасывает буфер памяти

Swoole\Buffer::clear

(PECL swoole >= 1.9.0)

Swoole\Buffer::clear — Сбрасывает буфер памяти

Описание

public Swoole\Buffer::clear(): void

Список параметров

У этой функции нет параметров.


Фиксированный размер блока памяти

  • « Swoole\Buffer::clear
  • Swoole\Buffer::__destruct »
  • PHP Manual
  • Swoole\Buffer
  • Фиксированный размер блока памяти

Swoole\Buffer::__construct

(PECL swoole >= 1.9.0)

Swoole\Buffer::__construct — Фиксированный размер блока памяти

Описание

public Swoole\Buffer::__construct(int $size = ?)

Список параметров

size

Размер памяти для выделения.


Уничтожает буфер памяти Swoole

  • « Swoole\Buffer::__construct
  • Swoole\Buffer::expand »
  • PHP Manual
  • Swoole\Buffer
  • Уничтожает буфер памяти Swoole

Swoole\Buffer::__destruct

(PECL swoole >= 1.9.0)

Swoole\Buffer::__destruct — Уничтожает буфер памяти Swoole

Описание

public Swoole\Buffer::__destruct(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.


Расширяет размер буфера памяти

  • « Swoole\Buffer::__destruct
  • Swoole\Buffer::read »
  • PHP Manual
  • Swoole\Buffer
  • Расширяет размер буфера памяти

Swoole\Buffer::expand

(PECL swoole >= 1.9.0)

Swoole\Buffer::expand — Расширяет размер буфера памяти

Описание

public Swoole\Buffer::expand(int $size): int

Список параметров

size

Новый размер буфера памяти.

Возвращаемые значения

Новый размер буфера памяти.


Читает данные из буфера памяти на основе смещения и длины

  • « Swoole\Buffer::expand
  • Swoole\Buffer::recycle »
  • PHP Manual
  • Swoole\Buffer
  • Читает данные из буфера памяти на основе смещения и длины

Swoole\Buffer::read

(PECL swoole >= 1.9.0)

Swoole\Buffer::read — Читает данные из буфера памяти на основе смещения и длины

Описание

public Swoole\Buffer::read(int $offset, int $length): string

Список параметров

offset

Смещение.

length

Длина.

Возвращаемые значения

Данные, считанные из буфера памяти.


Освобождает память для ОС, которая не используется буфером памяти

  • « Swoole\Buffer::read
  • Swoole\Buffer::substr »
  • PHP Manual
  • Swoole\Buffer
  • Освобождает память для ОС, которая не используется буфером памяти

Swoole\Buffer::recycle

(PECL swoole >= 1.9.0)

Swoole\Buffer::recycle — Освобождает память для ОС, которая не используется буфером памяти

Описание

public Swoole\Buffer::recycle(): void

Список параметров

У этой функции нет параметров.


Считывает данные из буфера памяти на основе смещения и длины. Или удаляет данные из буфера памяти

  • « Swoole\Buffer::recycle
  • Swoole\Buffer::__toString »
  • PHP Manual
  • Swoole\Buffer
  • Считывает данные из буфера памяти на основе смещения и длины. Или удаляет данные из буфера памяти

Swoole\Buffer::substr

(PECL swoole >= 1.9.0)

Swoole\Buffer::substr — Считывает данные из буфера памяти на основе смещения и длины. Или удаляет данные из буфера памяти

Описание

public Swoole\Buffer::substr(int $offset, int $length = ?, bool $remove = ?): string

Если для $remove установлено значение true, а для $offset установлено значение 0, данные будут удалены из буфера. Память для хранения данных будет освобождена при уничтожении объекта буфера.

Список параметров

offset

Смещение.

length

Длина.

remove

Определяет, удалить ли данные из буфера памяти.

Возвращаемые значения

Данные или строка, прочитанные из буфера памяти.


Получает строковое значение буфера памяти

  • « Swoole\Buffer::substr
  • Swoole\Buffer::write »
  • PHP Manual
  • Swoole\Buffer
  • Получает строковое значение буфера памяти

Swoole\Buffer::__toString

(PECL swoole >= 1.9.0)

Swoole\Buffer::__toString — Получает строковое значение буфера памяти

Описание

public Swoole\Buffer::__toString(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое значение буфера памяти.


Записывает данные в буфер памяти. Память, выделенная для буфера, не будет изменена

  • « Swoole\Buffer::__toString
  • Swoole\Channel »
  • PHP Manual
  • Swoole\Buffer
  • Записывает данные в буфер памяти. Память, выделенная для буфера, не будет изменена

Swoole\Buffer::write

(PECL swoole >= 1.9.0)

Swoole\Buffer::write — Записывает данные в буфер памяти. Память, выделенная для буфера, не будет изменена

Описание

public Swoole\Buffer::write(int $offset, string $data): void

Список параметров

offset

Смещение.

data

Данные для записи в буфер памяти.

Возвращаемые значения


Класс Swoole\Channel

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Channel {
/* Методы */
public __destruct(): void
public pop(): mixed
public push(string $data): bool
public stats(): array
}

Содержание

  • Swoole\Channel::__construct — Создаёт канал Swoole
  • Swoole\Channel::__destruct — Уничтожает канал Swoole
  • Swoole\Channel::pop — Читает и извлекает данные из канала Swoole
  • Swoole\Channel::push — Записывает и передаёт данные в канал Swoole
  • Swoole\Channel::stats — Получает статистику канала Swoole


Создаёт канал Swoole

  • « Swoole\Channel
  • Swoole\Channel::__destruct »
  • PHP Manual
  • Swoole\Channel
  • Создаёт канал Swoole

Swoole\Channel::__construct

(PECL swoole >= 1.9.0)

Swoole\Channel::__construct — Создаёт канал Swoole

Описание

public Swoole\Channel::__construct(string $size)

Канал Swoole - это структура данных в памяти, которая работает как Chan в Golang, реализована на основе разделяемой памяти и мьютексов. Может использоваться как высокопроизводительная очередь сообщений в памяти. Создание канала Swoole с фиксированным размером. Минимальный размер канала Swoole составляет 64 КБ. Будут выброшены исключения, если недостаточно памяти.

Список параметров

size

Размер канала Swoole.


Уничтожает канал Swoole

  • « Swoole\Channel::__construct
  • Swoole\Channel::pop »
  • PHP Manual
  • Swoole\Channel
  • Уничтожает канал Swoole

Swoole\Channel::__destruct

(PECL swoole >= 1.9.0)

Swoole\Channel::__destruct — Уничтожает канал Swoole

Описание

public Swoole\Channel::__destruct(): void

Список параметров

У этой функции нет параметров.


Читает и извлекает данные из канала Swoole

  • « Swoole\Channel::__destruct
  • Swoole\Channel::push »
  • PHP Manual
  • Swoole\Channel
  • Читает и извлекает данные из канала Swoole

Swoole\Channel::pop

(PECL swoole >= 1.9.0)

Swoole\Channel::pop — Читает и извлекает данные из канала Swoole

Описание

public Swoole\Channel::pop(): mixed

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Если канал пуст, функция вернёт false или несериализованные данные.


Записывает и передаёт данные в канал Swoole

  • « Swoole\Channel::pop
  • Swoole\Channel::stats »
  • PHP Manual
  • Swoole\Channel
  • Записывает и передаёт данные в канал Swoole

Swoole\Channel::push

(PECL swoole >= 1.9.0)

Swoole\Channel::push — Записывает и передаёт данные в канал Swoole

Описание

public Swoole\Channel::push(string $data): bool

Данные могут быть любой непустой переменной PHP, переменная будет сериализована, если она не является строковым типом.

Если размер данных превышает 8 КБ, канал Swoole будет использовать временные хранилища файлов.

Функция вернёт true, если операция записи выполнена успешно или false, если недостаточно места.

Список параметров

data

Данные для вставки в канал Swoole.

Возвращаемые значения

Передались ли данные в канал Swoole.


Получает статистику канала Swoole

  • « Swoole\Channel::push
  • Swoole\Client »
  • PHP Manual
  • Swoole\Channel
  • Получает статистику канала Swoole

Swoole\Channel::stats

(PECL swoole >= 1.9.0)

Swoole\Channel::stats — Получает статистику канала Swoole

Описание

public Swoole\Channel::stats(): array

Получает количество элементов в очереди и общий объем памяти, используемой в очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Статистика канала Swoole.


Класс Swoole\Client

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Client {
/* Constants */
const int MSG_OOB = 1;
const int MSG_PEEK = 2;
const int MSG_DONTWAIT = 128;
const int MSG_WAITALL = 64;
/* Свойства */
public $errCode;
public $sock;
public $reuse;
public $reuseCount;
/* Методы */
public close(bool $force = ?): bool
public connect(
string $host,
int $port = ?,
int $timeout = ?,
int $flag = ?
): bool
public __destruct(): void
public getpeername(): array
public getsockname(): array
public isConnected(): bool
public on(string $event, callable $callback): void
public pause(): void
public pipe(string $socket): void
public recv(string $size = ?, string $flag = ?): void
public resume(): void
public send(string $data, string $flag = ?): int
public sendfile(string $filename, int $offset = ?): bool
public sendto(string $ip, int $port, string $data): bool
public set(array $settings): void
public sleep(): void
public wakeup(): void
}

Свойства

errCode

sock

reuse

reuseCount

Предопределённые константы

Swoole\Client::MSG_OOB

Swoole\Client::MSG_PEEK

Swoole\Client::MSG_DONTWAIT

Swoole\Client::MSG_WAITALL

Содержание

  • Swoole\Client::close — Закрывает установленное соединение
  • Swoole\Client::connect — Подключается к удалённому порту TCP или UDP
  • Swoole\Client::__construct — Создаёт синхронный или асинхронный TCP/UDP клиент Swoole с поддержкой SSL или без него
  • Swoole\Client::__destruct — Уничтожает клиент Swoole
  • Swoole\Client::getpeername — Получает имя удалённого сокета соединения
  • Swoole\Client::getsockname — Получает локальное имя сокета соединения
  • Swoole\Client::isConnected — Проверяет, установлено ли соединение
  • Swoole\Client::on — Добавляет callback-функции, вызванные событиями
  • Swoole\Client::pause — Приостанавливает получение данных
  • Swoole\Client::pipe — Перенаправляет данные в другой файловый дескриптор
  • Swoole\Client::recv — Получает данные из удалённого сокета
  • Swoole\Client::resume — Возобновляет получение данных
  • Swoole\Client::send — Отправляет данные в удалённый TCP-сокет
  • Swoole\Client::sendfile — Отправляет файл в удалённый TCP-сокет
  • Swoole\Client::sendto — Отправляет данные на удалённый UDP-адрес
  • Swoole\Client::set — Устанавливает параметры клиента Swoole до установления соединения
  • Swoole\Client::sleep — Удаляет TCP-клиент из цикла системных событий
  • Swoole\Client::wakeup — Добавляет TCP-клиент обратно в цикл системных событий


Закрывает установленное соединение

  • « Swoole\Client
  • Swoole\Client::connect »
  • PHP Manual
  • Swoole\Client
  • Закрывает установленное соединение

Swoole\Client::close

(PECL swoole >= 1.9.0)

Swoole\Client::close — Закрывает установленное соединение

Описание

public Swoole\Client::close(bool $force = ?): bool

Список параметров

force

Определяет, принудительное закрытие соединения.

Возвращаемые значения

Закрыто ли соединение.


Подключается к удалённому порту TCP или UDP

  • « Swoole\Client::close
  • Swoole\Client::__construct »
  • PHP Manual
  • Swoole\Client
  • Подключается к удалённому порту TCP или UDP

Swoole\Client::connect

(PECL swoole >= 1.9.0)

Swoole\Client::connect — Подключается к удалённому порту TCP или UDP

Описание

public Swoole\Client::connect(
string $host,
int $port = ?,
int $timeout = ?,
int $flag = ?
): bool

Список параметров

host

Имя хоста удалённого адреса.

port

Номер порта удалённого адреса.

timeout

Время ожидания (в секундах) соединения/отправки/получения, значение по умолчанию составляет 0,1 с

flag

Если тип клиента - UDP, $flag означает, включена ли конфигурацию udp_connect. Если конфигурация udp_connect включена, клиент будет получать данные только с указанного ip:port. Если тип клиента TCP, а $flag установлен в 1, он должен использовать swoole_client_select для проверки состояния соединения перед отправкой/получением.

Возвращаемые значения

Установлено ли соединение.


Создаёт синхронный или асинхронный TCP/UDP клиент Swoole с поддержкой SSL или без него

  • « Swoole\Client::connect
  • Swoole\Client::__destruct »
  • PHP Manual
  • Swoole\Client
  • Создаёт синхронный или асинхронный TCP/UDP клиент Swoole с поддержкой SSL или без него

Swoole\Client::__construct

(PECL swoole >= 1.9.0)

Swoole\Client::__construct — Создаёт синхронный или асинхронный TCP/UDP клиент Swoole с поддержкой SSL или без него

Описание

public Swoole\Client::__construct(int $sock_type, int $is_async = ?)

Список параметров

sock_type

Тип сокета: SWOOLE_TCP, SWOOLE_UDP, SWOOLE_ASYNC, SWOOLE_SSL, SWOOLE_KEEP.

is_async

Синхронный или асинхронный клиент.


Уничтожает клиент Swoole

  • « Swoole\Client::__construct
  • Swoole\Client::getpeername »
  • PHP Manual
  • Swoole\Client
  • Уничтожает клиент Swoole

Swoole\Client::__destruct

(PECL swoole >= 1.9.0)

Swoole\Client::__destruct — Уничтожает клиент Swoole

Описание

public Swoole\Client::__destruct(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.


Получает имя удалённого сокета соединения

  • « Swoole\Client::__destruct
  • Swoole\Client::getsockname »
  • PHP Manual
  • Swoole\Client
  • Получает имя удалённого сокета соединения

Swoole\Client::getpeername

(PECL swoole >= 1.9.0)

Swoole\Client::getpeername — Получает имя удалённого сокета соединения

Описание

public Swoole\Client::getpeername(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Хост и порт удалённого сокета.


Получает локальное имя сокета соединения

  • « Swoole\Client::getpeername
  • Swoole\Client::isConnected »
  • PHP Manual
  • Swoole\Client
  • Получает локальное имя сокета соединения

Swoole\Client::getsockname

(PECL swoole >= 1.9.0)

Swoole\Client::getsockname — Получает локальное имя сокета соединения

Описание

public Swoole\Client::getsockname(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Хост и порт локального сокета.


Проверяет, установлено ли соединение

  • « Swoole\Client::getsockname
  • Swoole\Client::on »
  • PHP Manual
  • Swoole\Client
  • Проверяет, установлено ли соединение

Swoole\Client::isConnected

(PECL swoole >= 1.9.0)

Swoole\Client::isConnected — Проверяет, установлено ли соединение

Описание

public Swoole\Client::isConnected(): bool

Метод возвращает состояние соединения прикладного уровня.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Установлено ли соединение.


Добавляет callback-функции, вызванные событиями

  • « Swoole\Client::isConnected
  • Swoole\Client::pause »
  • PHP Manual
  • Swoole\Client
  • Добавляет callback-функции, вызванные событиями

Swoole\Client::on

(PECL swoole >= 1.9.0)

Swoole\Client::on — Добавляет callback-функции, вызванные событиями

Описание

public Swoole\Client::on(string $event, callable $callback): void

Список параметров

event

callback


Приостанавливает получение данных

  • « Swoole\Client::on
  • Swoole\Client::pipe »
  • PHP Manual
  • Swoole\Client
  • Приостанавливает получение данных

Swoole\Client::pause

(PECL swoole >= 1.9.0)

Swoole\Client::pause — Приостанавливает получение данных

Описание

public Swoole\Client::pause(): void

Список параметров

У этой функции нет параметров.


Перенаправляет данные в другой файловый дескриптор

  • « Swoole\Client::pause
  • Swoole\Client::recv »
  • PHP Manual
  • Swoole\Client
  • Перенаправляет данные в другой файловый дескриптор

Swoole\Client::pipe

(PECL swoole >= 1.9.0)

Swoole\Client::pipe — Перенаправляет данные в другой файловый дескриптор

Описание

public Swoole\Client::pipe(string $socket): void

Список параметров

socket


Получает данные из удалённого сокета

  • « Swoole\Client::pipe
  • Swoole\Client::resume »
  • PHP Manual
  • Swoole\Client
  • Получает данные из удалённого сокета

Swoole\Client::recv

(PECL swoole >= 1.9.0)

Swoole\Client::recv — Получает данные из удалённого сокета

Описание

public Swoole\Client::recv(string $size = ?, string $flag = ?): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

size

flag

Возвращаемые значения


Возобновляет получение данных

  • « Swoole\Client::recv
  • Swoole\Client::send »
  • PHP Manual
  • Swoole\Client
  • Возобновляет получение данных

Swoole\Client::resume

(PECL swoole >= 1.9.0)

Swoole\Client::resume — Возобновляет получение данных

Описание

public Swoole\Client::resume(): void

Список параметров

У этой функции нет параметров.


Отправляет данные в удалённый TCP-сокет

  • « Swoole\Client::resume
  • Swoole\Client::sendfile »
  • PHP Manual
  • Swoole\Client
  • Отправляет данные в удалённый TCP-сокет

Swoole\Client::send

(PECL swoole >= 1.9.0)

Swoole\Client::send — Отправляет данные в удалённый TCP-сокет

Описание

public Swoole\Client::send(string $data, string $flag = ?): int

Список параметров

data

Данные для отправки, которые могут быть строковыми или двоичными

flag

Возвращаемые значения

Если клиент успешно отправил данные, он возвращает длину отправленных данных. Или он возвращает false и устанавливает $swoole_client->errCode. Для синхронного клиента нет ограничений на отправку данных. Для асинхронного клиента ограничение на отправку данных - socket_buffer_size.


Отправляет файл в удалённый TCP-сокет

  • « Swoole\Client::send
  • Swoole\Client::sendto »
  • PHP Manual
  • Swoole\Client
  • Отправляет файл в удалённый TCP-сокет

Swoole\Client::sendfile

(PECL swoole >= 1.9.0)

Swoole\Client::sendfile — Отправляет файл в удалённый TCP-сокет

Описание

public Swoole\Client::sendfile(string $filename, int $offset = ?): bool

Является оболочкой системного вызова sendfile в Linux.

Список параметров

filename

Путь к файлу для отправки.

offset

Смещение файла для отправки

Возвращаемые значения


Отправляет данные на удалённый UDP-адрес

  • « Swoole\Client::sendfile
  • Swoole\Client::set »
  • PHP Manual
  • Swoole\Client
  • Отправляет данные на удалённый UDP-адрес

Swoole\Client::sendto

(PECL swoole >= 1.9.0)

Swoole\Client::sendto — Отправляет данные на удалённый UDP-адрес

Описание

public Swoole\Client::sendto(string $ip, int $port, string $data): bool

Тип клиента swoole должен быть SWOOLE_SOCK_UDP или SWOOLE_SOCK_UDP6.

Список параметров

ip

IP-адрес удалённого хоста, IPv4 или IPv6.

port

Номер порта удалённого хоста.

data

Данные для отправки должны быть меньше 64К.

Возвращаемые значения


Устанавливает параметры клиента Swoole до установления соединения

  • « Swoole\Client::sendto
  • Swoole\Client::sleep »
  • PHP Manual
  • Swoole\Client
  • Устанавливает параметры клиента Swoole до установления соединения

Swoole\Client::set

(PECL swoole >= 1.9.0)

Swoole\Client::set — Устанавливает параметры клиента Swoole до установления соединения

Описание

public Swoole\Client::set(array $settings): void

Список параметров

settings

Возвращаемые значения


Удаляет TCP-клиент из цикла системных событий

  • « Swoole\Client::set
  • Swoole\Client::wakeup »
  • PHP Manual
  • Swoole\Client
  • Удаляет TCP-клиент из цикла системных событий

Swoole\Client::sleep

(PECL swoole >= 1.9.0)

Swoole\Client::sleep — Удаляет TCP-клиент из цикла системных событий

Описание

public Swoole\Client::sleep(): void

Удаляет TCP-клиент из цикла системных событий.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Добавляет TCP-клиент обратно в цикл системных событий

  • « Swoole\Client::sleep
  • Swoole\Connection\Iterator »
  • PHP Manual
  • Swoole\Client
  • Добавляет TCP-клиент обратно в цикл системных событий

Swoole\Client::wakeup

(PECL swoole >= 1.9.0)

Swoole\Client::wakeup — Добавляет TCP-клиент обратно в цикл системных событий

Описание

public Swoole\Client::wakeup(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Connection\Iterator

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Connection\Iterator implements Iterator, Countable, ArrayAccess {
/* Методы */
public count(): int
public current(): Connection
public key(): int
public next(): Connection
public offsetExists(int $index): bool
public offsetGet(string $index): Connection
public offsetSet(int $offset, mixed $connection): void
public offsetUnset(int $offset): void
public rewind(): void
public valid(): bool
}

Содержание

  • 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

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::count — Считает соединения

Описание

public Swoole\Connection\Iterator::count(): int

Получает количество соединений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество соединений.


Возвращает текущую запись соединения

  • « Swoole\Connection\Iterator::count
  • Swoole\Connection\Iterator::key »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Возвращает текущую запись соединения

Swoole\Connection\Iterator::current

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::current — Возвращает текущую запись соединения

Описание

public Swoole\Connection\Iterator::current(): Connection

Получает текущую запись соединения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая запись соединения.


Возвращает ключ текущего соединения

  • « Swoole\Connection\Iterator::current
  • Swoole\Connection\Iterator::next »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Возвращает ключ текущего соединения

Swoole\Connection\Iterator::key

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::key — Возвращает ключ текущего соединения

Описание

public Swoole\Connection\Iterator::key(): int

Функция возвращает ключ текущего соединения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключ текущего соединения.


Переходит к следующему соединению

  • « Swoole\Connection\Iterator::key
  • Swoole\Connection\Iterator::offsetExists »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Переходит к следующему соединению

Swoole\Connection\Iterator::next

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::next — Переходит к следующему соединению

Описание

public Swoole\Connection\Iterator::next(): Connection

Итератор для следующего соединения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверяет, существует ли смещение

  • « Swoole\Connection\Iterator::next
  • Swoole\Connection\Iterator::offsetGet »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Проверяет, существует ли смещение

Swoole\Connection\Iterator::offsetExists

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetExists — Проверяет, существует ли смещение

Описание

public Swoole\Connection\Iterator::offsetExists(int $index): bool

Проверяет, существует ли смещение.

Список параметров

index

Смещение, которое необходимо проверить.

Возвращаемые значения

Возвращает TRUE, если смещение существует, в противном случае FALSE.


Смещение для извлечения

  • « Swoole\Connection\Iterator::offsetExists
  • Swoole\Connection\Iterator::offsetSet »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Смещение для извлечения

Swoole\Connection\Iterator::offsetGet

(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

(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

(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

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::rewind — Перематывает итератор

Описание

public Swoole\Connection\Iterator::rewind(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверяет правильность текущей позиции

  • « Swoole\Connection\Iterator::rewind
  • Swoole\Coroutine »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Проверяет правильность текущей позиции

Swoole\Connection\Iterator::valid

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::valid — Проверяет правильность текущей позиции

Описание

public Swoole\Connection\Iterator::valid(): bool

Проверяет правильность текущей позиции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если текущая позиция итератора верна, иначе FALSE.


Класс Swoole\Coroutine

(PECL swoole >= 2.0.0)

Введение

Обзор классов

class Swoole\Coroutine {
/* Методы */
public static call_user_func_array(callable $callback, array $param_array): mixed
public static call_user_func(callable $callback, mixed ...$args): mixed
public static cli_wait(): ReturnType
public static create(): ReturnType
public Swoole\Coroutine\Client::close(): ReturnType
public Swoole\Coroutine\Client::connect(): ReturnType
public Swoole\Coroutine\Client::__destruct(): ReturnType
public Swoole\Coroutine\Client::getpeername(): ReturnType
public Swoole\Coroutine\Client::getsockname(): ReturnType
public Swoole\Coroutine\Client::isConnected(): ReturnType
public Swoole\Coroutine\Client::recv(): ReturnType
public Swoole\Coroutine\Client::send(): ReturnType
public Swoole\Coroutine\Client::sendfile(): ReturnType
public Swoole\Coroutine\Client::sendto(): ReturnType
public Swoole\Coroutine\Client::set(): ReturnType
public Swoole\Coroutine\Http\Client::addFile(): ReturnType
public Swoole\Coroutine\Http\Client::close(): ReturnType
public Swoole\Coroutine\Http\Client::__destruct(): ReturnType
public Swoole\Coroutine\Http\Client::execute(): ReturnType
public Swoole\Coroutine\Http\Client::get(): ReturnType
public Swoole\Coroutine\Http\Client::getDefer(): ReturnType
public Swoole\Coroutine\Http\Client::isConnected(): ReturnType
public Swoole\Coroutine\Http\Client::post(): ReturnType
public Swoole\Coroutine\Http\Client::recv(): ReturnType
public Swoole\Coroutine\Http\Client::set(): ReturnType
public Swoole\Coroutine\Http\Client::setCookies(): ReturnType
public Swoole\Coroutine\Http\Client::setData(): ReturnType
public Swoole\Coroutine\Http\Client::setDefer(): ReturnType
public Swoole\Coroutine\Http\Client::setHeaders(): ReturnType
public Swoole\Coroutine\Http\Client::setMethod(): ReturnType
public Swoole\Coroutine\MySQL::close(): ReturnType
public Swoole\Coroutine\MySQL::connect(): ReturnType
public Swoole\Coroutine\MySQL::__destruct(): ReturnType
public Swoole\Coroutine\MySQL::getDefer(): ReturnType
public Swoole\Coroutine\MySQL::query(): ReturnType
public Swoole\Coroutine\MySQL::recv(): ReturnType
public Swoole\Coroutine\MySQL::setDefer(): ReturnType
public static getuid(): ReturnType
public static resume(): ReturnType
public static suspend(): ReturnType
}

Содержание

  • Swoole\Coroutine::call_user_func_array — Вызывает callback-функцию с массивом параметров
  • Swoole\Coroutine::call_user_func — Вызывает callback-функцию, заданную первым параметром
  • Swoole\Coroutine::cli_wait — Описание
  • Swoole\Coroutine::create — Описание
  • 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 — Описание
  • Swoole\Coroutine::resume — Описание
  • Swoole\Coroutine::suspend — Описание


Вызывает callback-функцию с массивом параметров

  • « Swoole\Coroutine
  • Swoole\Coroutine::call_user_func »
  • PHP Manual
  • Swoole\Coroutine
  • Вызывает callback-функцию с массивом параметров

Swoole\Coroutine::call_user_func_array

(PECL swoole >= 2.0.0)

Swoole\Coroutine::call_user_func_array — Вызывает callback-функцию с массивом параметров

Описание

public static Swoole\Coroutine::call_user_func_array(callable $callback, array $param_array): mixed

Вызывает callback-функцию, заданную первым параметром с параметрами в param_array.

Список параметров

callback

Функция callable для вызова.

param_array

Ноль или более параметров для передачи в callback-функцию.

Возвращаемые значения


Вызывает callback-функцию, заданную первым параметром

  • « Swoole\Coroutine::call_user_func_array
  • Swoole\Coroutine::cli_wait »
  • PHP Manual
  • Swoole\Coroutine
  • Вызывает callback-функцию, заданную первым параметром

Swoole\Coroutine::call_user_func

(PECL swoole >= 2.0.0)

Swoole\Coroutine::call_user_func — Вызывает callback-функцию, заданную первым параметром

Описание

public static Swoole\Coroutine::call_user_func(callable $callback, mixed ...$args): mixed

Вызывает callback-функцию, заданную первым параметром и передаёт оставшиеся параметры в качестве аргументов.

Список параметров

callback

Функция callable для вызова.

args

Ноль или более параметров для передачи в callback-функцию.

Возвращаемые значения


Описание

  • « Swoole\Coroutine::call_user_func
  • Swoole\Coroutine::create »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine::cli_wait

(PECL swoole >= 2.0.0)

Swoole\Coroutine::cli_wait — Описание

Описание

public static Swoole\Coroutine::cli_wait(): ReturnType

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine::cli_wait
  • Swoole\Coroutine\Client::close »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine::create

(PECL swoole >= 2.0.0)

Swoole\Coroutine::create — Описание

Описание

public static Swoole\Coroutine::create(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine::create
  • Swoole\Coroutine\Client::connect »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::close

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::close — Описание

Описание

public Swoole\Coroutine\Client::close(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::close
  • Swoole\Coroutine\Client::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::connect

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::connect — Описание

Описание

public Swoole\Coroutine\Client::connect(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::connect
  • Swoole\Coroutine\Client::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::__construct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::__construct — Описание

Описание

public Swoole\Coroutine\Client::__construct()

Список параметров

У этой функции нет параметров.


Описание

  • « Swoole\Coroutine\Client::__construct
  • Swoole\Coroutine\Client::getpeername »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::__destruct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::__destruct — Описание

Описание

public Swoole\Coroutine\Client::__destruct(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::__destruct
  • Swoole\Coroutine\Client::getsockname »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::getpeername

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::getpeername — Описание

Описание

public Swoole\Coroutine\Client::getpeername(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::getpeername
  • Swoole\Coroutine\Client::isConnected »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::getsockname

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::getsockname — Описание

Описание

public Swoole\Coroutine\Client::getsockname(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::getsockname
  • Swoole\Coroutine\Client::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::isConnected

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::isConnected — Описание

Описание

public Swoole\Coroutine\Client::isConnected(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::isConnected
  • Swoole\Coroutine\Client::send »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::recv

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::recv — Описание

Описание

public Swoole\Coroutine\Client::recv(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::recv
  • Swoole\Coroutine\Client::sendfile »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::send

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::send — Описание

Описание

public Swoole\Coroutine\Client::send(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::send
  • Swoole\Coroutine\Client::sendto »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::sendfile

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::sendfile — Описание

Описание

public Swoole\Coroutine\Client::sendfile(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::sendfile
  • Swoole\Coroutine\Client::set »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::sendto

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::sendto — Описание

Описание

public Swoole\Coroutine\Client::sendto(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::sendto
  • Swoole\Coroutine\Http\Client::addFile »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Client::set

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::set — Описание

Описание

public Swoole\Coroutine\Client::set(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Client::set
  • Swoole\Coroutine\Http\Client::close »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::addFile

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::addFile — Описание

Описание

public Swoole\Coroutine\Http\Client::addFile(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::addFile
  • Swoole\Coroutine\Http\Client::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::close

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::close — Описание

Описание

public Swoole\Coroutine\Http\Client::close(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::close
  • Swoole\Coroutine\Http\Client::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::__construct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::__construct — Описание

Описание

public Swoole\Coroutine\Http\Client::__construct()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.


Описание

  • « Swoole\Coroutine\Http\Client::__construct
  • Swoole\Coroutine\Http\Client::execute »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::__destruct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::__destruct — Описание

Описание

public Swoole\Coroutine\Http\Client::__destruct(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::__destruct
  • Swoole\Coroutine\Http\Client::get »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::execute

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::execute — Описание

Описание

public Swoole\Coroutine\Http\Client::execute(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::execute
  • Swoole\Coroutine\Http\Client::getDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::get

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::get — Описание

Описание

public Swoole\Coroutine\Http\Client::get(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::get
  • Swoole\Coroutine\Http\Client::isConnected »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::getDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::getDefer — Описание

Описание

public Swoole\Coroutine\Http\Client::getDefer(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::getDefer
  • Swoole\Coroutine\Http\Client::post »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::isConnected

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::isConnected — Описание

Описание

public Swoole\Coroutine\Http\Client::isConnected(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::isConnected
  • Swoole\Coroutine\Http\Client::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::post

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::post — Описание

Описание

public Swoole\Coroutine\Http\Client::post(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::post
  • Swoole\Coroutine\Http\Client::set »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::recv

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::recv — Описание

Описание

public Swoole\Coroutine\Http\Client::recv(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::recv
  • Swoole\Coroutine\Http\Client::setCookies »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::set

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::set — Описание

Описание

public Swoole\Coroutine\Http\Client::set(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::set
  • Swoole\Coroutine\Http\Client::setData »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::setCookies

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setCookies — Описание

Описание

public Swoole\Coroutine\Http\Client::setCookies(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::setCookies
  • Swoole\Coroutine\Http\Client::setDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::setData

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setData — Описание

Описание

public Swoole\Coroutine\Http\Client::setData(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::setData
  • Swoole\Coroutine\Http\Client::setHeaders »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::setDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setDefer — Описание

Описание

public Swoole\Coroutine\Http\Client::setDefer(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::setDefer
  • Swoole\Coroutine\Http\Client::setMethod »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::setHeaders

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setHeaders — Описание

Описание

public Swoole\Coroutine\Http\Client::setHeaders(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::setHeaders
  • Swoole\Coroutine\MySQL::close »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\Http\Client::setMethod

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setMethod — Описание

Описание

public Swoole\Coroutine\Http\Client::setMethod(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\Http\Client::setMethod
  • Swoole\Coroutine\MySQL::connect »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::close

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::close — Описание

Описание

public Swoole\Coroutine\MySQL::close(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::close
  • Swoole\Coroutine\MySQL::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::connect

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::connect — Описание

Описание

public Swoole\Coroutine\MySQL::connect(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::connect
  • Swoole\Coroutine\MySQL::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::__construct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::__construct — Описание

Описание

public Swoole\Coroutine\MySQL::__construct()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.


Описание

  • « Swoole\Coroutine\MySQL::__construct
  • Swoole\Coroutine\MySQL::getDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::__destruct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::__destruct — Описание

Описание

public Swoole\Coroutine\MySQL::__destruct(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::__destruct
  • Swoole\Coroutine\MySQL::query »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::getDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::getDefer — Описание

Описание

public Swoole\Coroutine\MySQL::getDefer(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::getDefer
  • Swoole\Coroutine\MySQL::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::query

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::query — Описание

Описание

public Swoole\Coroutine\MySQL::query(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::query
  • Swoole\Coroutine\MySQL::setDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::recv

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::recv — Описание

Описание

public Swoole\Coroutine\MySQL::recv(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::recv
  • Swoole\Coroutine::getuid »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine\MySQL::setDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::setDefer — Описание

Описание

public Swoole\Coroutine\MySQL::setDefer(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine\MySQL::setDefer
  • Swoole\Coroutine::resume »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine::getuid

(PECL swoole >= 2.0.0)

Swoole\Coroutine::getuid — Описание

Описание

public static Swoole\Coroutine::getuid(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine::getuid
  • Swoole\Coroutine::suspend »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine::resume

(PECL swoole >= 2.0.0)

Swoole\Coroutine::resume — Описание

Описание

public static Swoole\Coroutine::resume(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\Coroutine::resume
  • Swoole\Event »
  • PHP Manual
  • Swoole\Coroutine
  • Описание

Swoole\Coroutine::suspend

(PECL swoole >= 2.0.0)

Swoole\Coroutine::suspend — Описание

Описание

public static Swoole\Coroutine::suspend(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Event

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Event {
/* Методы */
public static add(
int $fd,
callable $read_callback,
callable $write_callback = ?,
string $events = ?
): bool
public static defer(mixed $callback): void
public static del(string $fd): bool
public static exit(): void
public static set(
int $fd,
string $read_callback = ?,
string $write_callback = ?,
string $events = ?
): bool
public static wait(): 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

(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 = ?
): bool

Список параметров

fd

read_callback

write_callback

events

Возвращаемые значения


Добавляет callback-функцию в следующий цикл событий

  • « Swoole\Event::add
  • Swoole\Event::del »
  • PHP Manual
  • Swoole\Event
  • Добавляет callback-функцию в следующий цикл событий

Swoole\Event::defer

(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

(PECL swoole >= 1.9.0)

Swoole\Event::del — Удаляет все callback-функции события сокета

Описание

public static Swoole\Event::del(string $fd): bool

Список параметров

fd

Возвращаемые значения


Выходит из цикла событий, доступно только на стороне клиента

  • « Swoole\Event::del
  • Swoole\Event::set »
  • PHP Manual
  • Swoole\Event
  • Выходит из цикла событий, доступно только на стороне клиента

Swoole\Event::exit

(PECL swoole >= 1.9.0)

Swoole\Event::exit — Выходит из цикла событий, доступно только на стороне клиента

Описание

public static Swoole\Event::exit(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Обновляет callback-функции события сокета

  • « Swoole\Event::exit
  • Swoole\Event::wait »
  • PHP Manual
  • Swoole\Event
  • Обновляет callback-функции события сокета

Swoole\Event::set

(PECL swoole >= 1.9.0)

Swoole\Event::set — Обновляет callback-функции события сокета

Описание

public static Swoole\Event::set(
int $fd,
string $read_callback = ?,
string $write_callback = ?,
string $events = ?
): bool

Список параметров

fd

read_callback

write_callback

events

Возвращаемые значения


Описание

  • « Swoole\Event::set
  • Swoole\Event::write »
  • PHP Manual
  • Swoole\Event
  • Описание

Swoole\Event::wait

(PECL swoole >= 1.9.0)

Swoole\Event::wait — Описание

Описание

public static Swoole\Event::wait(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Записывает данные в сокет

  • « Swoole\Event::wait
  • Swoole\Exception »
  • PHP Manual
  • Swoole\Event
  • Записывает данные в сокет

Swoole\Event::write

(PECL swoole >= 1.9.0)

Swoole\Event::write — Записывает данные в сокет

Описание

public static Swoole\Event::write(string $fd, string $data): void

Список параметров

fd

data

Возвращаемые значения


Класс Swoole\Exception

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Exception extends Exception implements Throwable {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
}


Класс Swoole\Http\Client

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Http\Client {
/* Свойства */
public $errCode;
public $sock;
/* Методы */
public addFile(
string $path,
string $name,
string $type = ?,
string $filename = ?,
string $offset = ?
): void
public close(): void
public __destruct(): void
public download(
string $path,
string $file,
callable $callback,
int $offset = ?
): void
public execute(string $path, string $callback): void
public get(string $path, callable $callback): void
public isConnected(): bool
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

(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

(PECL swoole >= 1.9.0)

Swoole\Http\Client::close — Закрывает http-соединение

Описание

public Swoole\Http\Client::close(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Создаёт асинхронный HTTP-клиент

  • « Swoole\Http\Client::close
  • Swoole\Http\Client::__destruct »
  • PHP Manual
  • Swoole\Http\Client
  • Создаёт асинхронный HTTP-клиент

Swoole\Http\Client::__construct

(PECL swoole >= 1.9.0)

Swoole\Http\Client::__construct — Создаёт асинхронный HTTP-клиент

Описание

public Swoole\Http\Client::__construct(string $host, string $port = ?, bool $ssl = ?)

Список параметров

host

Имя удалённого хоста.

port

Номер порта удалённого хоста.

ssl

Определяет, поддержку SSL.


Уничтожает HTTP-клиент

  • « Swoole\Http\Client::__construct
  • Swoole\Http\Client::download »
  • PHP Manual
  • Swoole\Http\Client
  • Уничтожает HTTP-клиент

Swoole\Http\Client::__destruct

(PECL swoole >= 1.9.0)

Swoole\Http\Client::__destruct — Уничтожает HTTP-клиент

Описание

public Swoole\Http\Client::__destruct(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Загружает файл с удалённого сервера

  • « Swoole\Http\Client::__destruct
  • Swoole\Http\Client::execute »
  • PHP Manual
  • Swoole\Http\Client
  • Загружает файл с удалённого сервера

Swoole\Http\Client::download

(PECL swoole >= 1.9.0)

Swoole\Http\Client::download — Загружает файл с удалённого сервера

Описание

public Swoole\Http\Client::download(
string $path,
string $file,
callable $callback,
int $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

(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

(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

(PECL swoole >= 1.9.0)

Swoole\Http\Client::isConnected — Проверяет, подключено ли соединение HTTP

Описание

public Swoole\Http\Client::isConnected(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Регистрирует callback-функцию по имени события

  • « Swoole\Http\Client::isConnected
  • Swoole\Http\Client::post »
  • PHP Manual
  • Swoole\Http\Client
  • Регистрирует callback-функцию по имени события

Swoole\Http\Client::on

(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

(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

(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

(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

(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

(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

(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

(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

(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

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Http\Request {
/* Методы */
public __destruct(): void
public rawcontent(): 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

(PECL swoole >= 1.9.0)

Swoole\Http\Request::__destruct — Уничтожает HTTP-запрос

Описание

public Swoole\Http\Request::__destruct(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает необработанное тело HTTP POST

  • « Swoole\Http\Request::__destruct
  • Swoole\Http\Response »
  • PHP Manual
  • Swoole\Http\Request
  • Получает необработанное тело HTTP POST

Swoole\Http\Request::rawcontent

(PECL swoole >= 1.9.0)

Swoole\Http\Request::rawcontent — Получает необработанное тело HTTP POST

Описание

public Swoole\Http\Request::rawcontent(): string

Метод используется для данных POST, которые не имеют форму `application/x-www-form-urlencoded`.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Http\Response

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Http\Response {
/* Методы */
public cookie(
string $name,
string $value = ?,
string $expires = ?,
string $path = ?,
string $domain = ?,
string $secure = ?,
string $httponly = ?
): string
public __destruct(): void
public end(string $content = ?): void
public gzip(string $compress_level = ?): ReturnType
public header(string $key, string $value, string $ucwords = ?): void
public initHeader(): 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

(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

(PECL swoole >= 1.9.0)

Swoole\Http\Response::__destruct — Уничтожает HTTP-ответ

Описание

public Swoole\Http\Response::__destruct(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Отправляет данные HTTP-запроса и завершает ответ

  • « Swoole\Http\Response::__destruct
  • Swoole\Http\Response::gzip »
  • PHP Manual
  • Swoole\Http\Response
  • Отправляет данные HTTP-запроса и завершает ответ

Swoole\Http\Response::end

(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

(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

(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

(PECL swoole >= 1.9.0)

Swoole\Http\Response::initHeader — Инициировать заголовок HTTP-ответа

Описание

public Swoole\Http\Response::initHeader(): ReturnType

Инициировать заголовок HTTP-ответа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Устанавливает необработанные cookie в HTTP-ответ

  • « Swoole\Http\Response::initHeader
  • Swoole\Http\Response::sendfile »
  • PHP Manual
  • Swoole\Http\Response
  • Устанавливает необработанные cookie в HTTP-ответ

Swoole\Http\Response::rawcookie

(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

(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

(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

(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

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Http\Server extends Swoole\Server {
/* Методы */
public on(string $event_name, callable $callback): void
public start(): void
/* Наследуемые методы */
public Swoole\Server::addlistener(string $host, int $port, string $socket_type): void
public Swoole\Server::addProcess(swoole_process $process): bool
public Swoole\Server::after(int $after_time_ms, callable $callback, string $param = ?): ReturnType
public Swoole\Server::bind(int $fd, int $uid): bool
public Swoole\Server::clearTimer(int $timer_id): void
swoole_timer_clear(int $timer_id): void
public Swoole\Server::close(int $fd, bool $reset = ?): bool
public Swoole\Server::confirm(int $fd): bool
public Swoole\Server::connection_info(int $fd, int $reactor_id = ?): array
public Swoole\Server::connection_list(int $start_fd, int $pagesize = ?): array
public Swoole\Server::defer(callable $callback): void
public Swoole\Server\Port::__destruct(): void
public Swoole\Server\Port::on(string $event_name, callable $callback): ReturnType
public Swoole\Server\Port::set(array $settings): void
public Swoole\Server::exist(int $fd): bool
public Swoole\Server::finish(string $data): void
public Swoole\Server::getClientInfo(int $fd, int $reactor_id = ?, bool $ignore_error = ?): array
public Swoole\Server::getClientList(int $start_fd, int $pagesize = ?): array
public Swoole\Server::getLastError(): int
public Swoole\Server::heartbeat(bool $if_close_connection): mixed
public Swoole\Server::listen(string $host, int $port, string $socket_type): bool
public Swoole\Server::on(string $event_name, callable $callback): void
public Swoole\Server::pause(int $fd): void
public Swoole\Server::protect(int $fd, bool $is_protected = ?): void
public Swoole\Server::reload(): bool
public Swoole\Server::resume(int $fd): void
public Swoole\Server::send(int $fd, string $data, int $reactor_id = ?): bool
public Swoole\Server::sendfile(int $fd, string $filename, int $offset = ?): bool
public Swoole\Server::sendMessage(int $worker_id, string $data): bool
public Swoole\Server::sendto(
string $ip,
int $port,
string $data,
string $server_socket = ?
): bool
public Swoole\Server::sendwait(int $fd, string $data): bool
public Swoole\Server::set(array $settings): ReturnType
public Swoole\Server::shutdown(): void
public Swoole\Server::start(): void
public Swoole\Server::stats(): array
public Swoole\Server::stop(int $worker_id = ?): bool
public Swoole\Server::task(string $data, int $dst_worker_id = ?, callable $callback = ?): mixed
public Swoole\Server::taskwait(string $data, float $timeout = ?, int $worker_id = ?): void
public Swoole\Server::taskWaitMulti(array $tasks, float $timeout_ms = ?): void
public Swoole\Server::tick(int $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

(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

(PECL swoole >= 1.9.0)

Swoole\Http\Server::start — Запускает http-сервер swoole

Описание

public Swoole\Http\Server::start(): void

Запускает http-сервер swoole.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Lock

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Lock {
/* Методы */
public __destruct(): void
public lock_read(): void
public lock(): void
public trylock_read(): void
public trylock(): void
public unlock(): void
}

Содержание

  • Swoole\Lock::__construct — Создаёт блокировку памяти
  • Swoole\Lock::__destruct — Уничтожает блокировку памяти Swoole
  • Swoole\Lock::lock_read — Блокирует чтение-запись блокировки для чтения
  • Swoole\Lock::lock — Пытается получить блокировку. Заблокируется, если блокировка недоступна
  • Swoole\Lock::trylock_read — Пытается заблокировать блокировку чтения-записи для чтения и сразу возвращает, даже если блокировка недоступна
  • Swoole\Lock::trylock — Пытается получить блокировку и сразу возвращает, даже если блокировка недоступна
  • Swoole\Lock::unlock — Снимает блокировку


Создаёт блокировку памяти

  • « Swoole\Lock
  • Swoole\Lock::__destruct »
  • PHP Manual
  • Swoole\Lock
  • Создаёт блокировку памяти

Swoole\Lock::__construct

(PECL swoole >= 1.9.0)

Swoole\Lock::__construct — Создаёт блокировку памяти

Описание

public Swoole\Lock::__construct(string $type = ?, string $file_lock_location = ?)

Блокировка Swoole используется для синхронизации данных между несколькими операциями или процессами.

Список параметров

type

file_lock_location


Уничтожает блокировку памяти Swoole

  • « Swoole\Lock::__construct
  • Swoole\Lock::lock_read »
  • PHP Manual
  • Swoole\Lock
  • Уничтожает блокировку памяти Swoole

Swoole\Lock::__destruct

(PECL swoole >= 1.9.0)

Swoole\Lock::__destruct — Уничтожает блокировку памяти Swoole

Описание

public Swoole\Lock::__destruct(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Блокирует чтение-запись блокировки для чтения

  • « Swoole\Lock::__destruct
  • Swoole\Lock::lock »
  • PHP Manual
  • Swoole\Lock
  • Блокирует чтение-запись блокировки для чтения

Swoole\Lock::lock_read

(PECL swoole >= 1.9.0)

Swoole\Lock::lock_read — Блокирует чтение-запись блокировки для чтения

Описание

public Swoole\Lock::lock_read(): void

Блокирует чтение-запись блокировки для чтения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Пытается получить блокировку. Заблокируется, если блокировка недоступна

  • « Swoole\Lock::lock_read
  • Swoole\Lock::trylock_read »
  • PHP Manual
  • Swoole\Lock
  • Пытается получить блокировку. Заблокируется, если блокировка недоступна

Swoole\Lock::lock

(PECL swoole >= 1.9.0)

Swoole\Lock::lock — Пытается получить блокировку. Заблокируется, если блокировка недоступна

Описание

public Swoole\Lock::lock(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Пытается заблокировать блокировку чтения-записи для чтения и сразу возвращает, даже если блокировка недоступна

  • « Swoole\Lock::lock
  • Swoole\Lock::trylock »
  • PHP Manual
  • Swoole\Lock
  • Пытается заблокировать блокировку чтения-записи для чтения и сразу возвращает, даже если блокировка недоступна

Swoole\Lock::trylock_read

(PECL swoole >= 1.9.0)

Swoole\Lock::trylock_read — Пытается заблокировать блокировку чтения-записи для чтения и сразу возвращает, даже если блокировка недоступна

Описание

public Swoole\Lock::trylock_read(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Пытается получить блокировку и сразу возвращает, даже если блокировка недоступна

  • « Swoole\Lock::trylock_read
  • Swoole\Lock::unlock »
  • PHP Manual
  • Swoole\Lock
  • Пытается получить блокировку и сразу возвращает, даже если блокировка недоступна

Swoole\Lock::trylock

(PECL swoole >= 1.9.0)

Swoole\Lock::trylock — Пытается получить блокировку и сразу возвращает, даже если блокировка недоступна

Описание

public Swoole\Lock::trylock(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Снимает блокировку

  • « Swoole\Lock::trylock
  • Swoole\Mmap »
  • PHP Manual
  • Swoole\Lock
  • Снимает блокировку

Swoole\Lock::unlock

(PECL swoole >= 1.9.0)

Swoole\Lock::unlock — Снимает блокировку

Описание

public Swoole\Lock::unlock(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Mmap

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class 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

(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

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\MySQL {
/* Методы */
public close(): void
public connect(array $server_config, callable $callback): void
public __destruct(): void
public getBuffer(): 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

(PECL swoole >= 1.9.0)

Swoole\MySQL::close — Закрывает асинхронное соединение MySQL

Описание

public Swoole\MySQL::close(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Подключается к удалённому серверу MySQL

  • « Swoole\MySQL::close
  • Swoole\MySQL::__construct »
  • PHP Manual
  • Swoole\MySQL
  • Подключается к удалённому серверу MySQL

Swoole\MySQL::connect

(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

(PECL swoole >= 1.9.0)

Swoole\MySQL::__construct — Создаёт асинхронный клиент MySQL

Описание

public Swoole\MySQL::__construct()

Создаёт асинхронный клиент MySQL.

Список параметров

У этой функции нет параметров.


Уничтожает асинхронный клиент MySQL

  • « Swoole\MySQL::__construct
  • Swoole\MySQL::getBuffer »
  • PHP Manual
  • Swoole\MySQL
  • Уничтожает асинхронный клиент MySQL

Swoole\MySQL::__destruct

(PECL swoole >= 1.9.0)

Swoole\MySQL::__destruct — Уничтожает асинхронный клиент MySQL

Описание

public Swoole\MySQL::__destruct(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Описание

  • « Swoole\MySQL::__destruct
  • Swoole\MySQL::on »
  • PHP Manual
  • Swoole\MySQL
  • Описание

Swoole\MySQL::getBuffer

(PECL swoole >= 1.9.0)

Swoole\MySQL::getBuffer — Описание

Описание

public Swoole\MySQL::getBuffer(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Регистрирует callback-функцию на основе имени события

  • « Swoole\MySQL::getBuffer
  • Swoole\MySQL::query »
  • PHP Manual
  • Swoole\MySQL
  • Регистрирует callback-функцию на основе имени события

Swoole\MySQL::on

(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

(PECL swoole >= 1.9.0)

Swoole\MySQL::query — Выполняет запрос SQL

Описание

public Swoole\MySQL::query(string $sql, callable $callback): ReturnType

Список параметров

sql

callback

Возвращаемые значения


Класс Swoole\MySQL\Exception

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\MySQL\Exception extends Exception implements Throwable {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
}


Класс Swoole\Process

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Process {
/* Константы */
const int IPC_NOWAIT = 256;
/* Методы */
public static alarm(int $interval_usec): void
public close(): void
public static daemon(bool $nochdir = ?, bool $noclose = ?): void
public __destruct(): void
public exec(string $exec_file, string $args): ReturnType
public exit(string $exit_code = ?): void
public freeQueue(): void
public static kill(int $pid, int $signal_no = ?): bool
public name(string $process_name): bool
public pop(int $maxsize = ?): mixed
public push(string $data): bool
public read(int $maxsize = ?): string
public static signal(string $signal_no, callable $callback): void
public start(): void
public statQueue(): array
public useQueue(int $key, int $mode = ?): bool
public static wait(bool $blocking = ?): array
public write(string $data): int
}

Предопределённые константы

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

(PECL swoole >= 1.9.0)

Swoole\Process::alarm — Таймер высокой точности, который запускает сигнал с фиксированным интервалом

Описание

public static Swoole\Process::alarm(int $interval_usec): void

Список параметров

interval_usec

Возвращаемые значения


Закрывает канал для дочернего процесса

  • « Swoole\Process::alarm
  • Swoole\Process::__construct »
  • PHP Manual
  • Swoole\Process
  • Закрывает канал для дочернего процесса

Swoole\Process::close

(PECL swoole >= 1.9.0)

Swoole\Process::close — Закрывает канал для дочернего процесса

Описание

public Swoole\Process::close(): void

Закрывает канал для дочернего процесса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Создаёт процесс

  • « Swoole\Process::close
  • Swoole\Process::daemon »
  • PHP Manual
  • Swoole\Process
  • Создаёт процесс

Swoole\Process::__construct

(PECL swoole >= 1.9.0)

Swoole\Process::__construct — Создаёт процесс

Описание

public Swoole\Process::__construct(callable $callback, bool $redirect_stdin_and_stdout = ?, int $pipe_type = ?)

Список параметров

callback

redirect_stdin_and_stdout

pipe_type


Изменяет процесс на процесс-демон

  • « Swoole\Process::__construct
  • Swoole\Process::__destruct »
  • PHP Manual
  • Swoole\Process
  • Изменяет процесс на процесс-демон

Swoole\Process::daemon

(PECL swoole >= 1.9.0)

Swoole\Process::daemon — Изменяет процесс на процесс-демон

Описание

public static Swoole\Process::daemon(bool $nochdir = ?, bool $noclose = ?): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

nochdir

noclose

Возвращаемые значения


Уничтожает процесс

  • « Swoole\Process::daemon
  • Swoole\Process::exec »
  • PHP Manual
  • Swoole\Process
  • Уничтожает процесс

Swoole\Process::__destruct

(PECL swoole >= 1.9.0)

Swoole\Process::__destruct — Уничтожает процесс

Описание

public Swoole\Process::__destruct(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Выполняет системные команды

  • « Swoole\Process::__destruct
  • Swoole\Process::exit »
  • PHP Manual
  • Swoole\Process
  • Выполняет системные команды

Swoole\Process::exec

(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

(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

(PECL swoole >= 1.9.0)

Swoole\Process::freeQueue — Уничтожает очередь сообщений, созданную swoole_process::useQueue

Описание

public Swoole\Process::freeQueue(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Посылает сигнал дочернему процессу

  • « Swoole\Process::freeQueue
  • Swoole\Process::name »
  • PHP Manual
  • Swoole\Process
  • Посылает сигнал дочернему процессу

Swoole\Process::kill

(PECL swoole >= 1.9.0)

Swoole\Process::kill — Посылает сигнал дочернему процессу

Описание

public static Swoole\Process::kill(int $pid, int $signal_no = ?): bool

Посылает сигнал дочернему процессу.

Список параметров

pid

Идентификатор процесса

signal_no

Сигнал к отправке

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Устанавливает название процесса

  • « Swoole\Process::kill
  • Swoole\Process::pop »
  • PHP Manual
  • Swoole\Process
  • Устанавливает название процесса

Swoole\Process::name

(PECL swoole >= 1.9.0)

Swoole\Process::name — Устанавливает название процесса

Описание

public Swoole\Process::name(string $process_name): bool

Список параметров

process_name

Устанавливает имя процесса.

Возвращаемые значения


Читает и извлекает данные из очереди сообщений

  • « Swoole\Process::name
  • Swoole\Process::push »
  • PHP Manual
  • Swoole\Process
  • Читает и извлекает данные из очереди сообщений

Swoole\Process::pop

(PECL swoole >= 1.9.0)

Swoole\Process::pop — Читает и извлекает данные из очереди сообщений

Описание

public Swoole\Process::pop(int $maxsize = ?): mixed

Список параметров

maxsize

Возвращаемые значения


Записывает и помещает данные в очередь сообщений

  • « Swoole\Process::pop
  • Swoole\Process::read »
  • PHP Manual
  • Swoole\Process
  • Записывает и помещает данные в очередь сообщений

Swoole\Process::push

(PECL swoole >= 1.9.0)

Swoole\Process::push — Записывает и помещает данные в очередь сообщений

Описание

public Swoole\Process::push(string $data): bool

Список параметров

data

Возвращаемые значения


Читает данные отправки в процесс

  • « Swoole\Process::push
  • Swoole\Process::signal »
  • PHP Manual
  • Swoole\Process
  • Читает данные отправки в процесс

Swoole\Process::read

(PECL swoole >= 1.9.0)

Swoole\Process::read — Читает данные отправки в процесс

Описание

public Swoole\Process::read(int $maxsize = ?): string

Список параметров

maxsize

Возвращаемые значения


Посылает сигнал дочерним процессам

  • « Swoole\Process::read
  • Swoole\Process::start »
  • PHP Manual
  • Swoole\Process
  • Посылает сигнал дочерним процессам

Swoole\Process::signal

(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

(PECL swoole >= 1.9.0)

Swoole\Process::start — Запускает процесс

Описание

public Swoole\Process::start(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает статистику очереди сообщений, используемой в качестве метода связи между процессами

  • « Swoole\Process::start
  • Swoole\Process::useQueue »
  • PHP Manual
  • Swoole\Process
  • Получает статистику очереди сообщений, используемой в качестве метода связи между процессами

Swoole\Process::statQueue

(PECL swoole >= 1.9.0)

Swoole\Process::statQueue — Получает статистику очереди сообщений, используемой в качестве метода связи между процессами

Описание

public Swoole\Process::statQueue(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив состояния очереди сообщений.


Создаёт очередь сообщений в качестве метода связи между родительским процессом и дочерними процессами

  • « Swoole\Process::statQueue
  • Swoole\Process::wait »
  • PHP Manual
  • Swoole\Process
  • Создаёт очередь сообщений в качестве метода связи между родительским процессом и дочерними процессами

Swoole\Process::useQueue

(PECL swoole >= 1.9.0)

Swoole\Process::useQueue — Создаёт очередь сообщений в качестве метода связи между родительским процессом и дочерними процессами

Описание

public Swoole\Process::useQueue(int $key, int $mode = ?): bool

Список параметров

key

mode

Возвращаемые значения


Ожидает событий дочерних процессов

  • « Swoole\Process::useQueue
  • Swoole\Process::write »
  • PHP Manual
  • Swoole\Process
  • Ожидает событий дочерних процессов

Swoole\Process::wait

(PECL swoole >= 1.9.0)

Swoole\Process::wait — Ожидает событий дочерних процессов

Описание

public static Swoole\Process::wait(bool $blocking = ?): array

Список параметров

blocking

Возвращаемые значения


Записывает данные в канал и связывается с родительским процессом или дочерними процессами

  • « Swoole\Process::wait
  • Swoole\Redis\Server »
  • PHP Manual
  • Swoole\Process
  • Записывает данные в канал и связывается с родительским процессом или дочерними процессами

Swoole\Process::write

(PECL swoole >= 1.9.0)

Swoole\Process::write — Записывает данные в канал и связывается с родительским процессом или дочерними процессами

Описание

public Swoole\Process::write(string $data): int

Список параметров

data

Возвращаемые значения


Класс Swoole\Redis\Server

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Redis\Server extends Swoole\Server {
/* Константы */
const int NIL = 1;
const int ERROR = 0;
const int STATUS = 2;
const int INT = 3;
const int STRING = 4;
const int SET = 5;
const int 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(): ReturnType
/* Наследуемые методы */
public Swoole\Server::addlistener(string $host, int $port, string $socket_type): void
public Swoole\Server::addProcess(swoole_process $process): bool
public Swoole\Server::after(int $after_time_ms, callable $callback, string $param = ?): ReturnType
public Swoole\Server::bind(int $fd, int $uid): bool
public Swoole\Server::clearTimer(int $timer_id): void
swoole_timer_clear(int $timer_id): void
public Swoole\Server::close(int $fd, bool $reset = ?): bool
public Swoole\Server::confirm(int $fd): bool
public Swoole\Server::connection_info(int $fd, int $reactor_id = ?): array
public Swoole\Server::connection_list(int $start_fd, int $pagesize = ?): array
public Swoole\Server::defer(callable $callback): void
public Swoole\Server\Port::__destruct(): void
public Swoole\Server\Port::on(string $event_name, callable $callback): ReturnType
public Swoole\Server\Port::set(array $settings): void
public Swoole\Server::exist(int $fd): bool
public Swoole\Server::finish(string $data): void
public Swoole\Server::getClientInfo(int $fd, int $reactor_id = ?, bool $ignore_error = ?): array
public Swoole\Server::getClientList(int $start_fd, int $pagesize = ?): array
public Swoole\Server::getLastError(): int
public Swoole\Server::heartbeat(bool $if_close_connection): mixed
public Swoole\Server::listen(string $host, int $port, string $socket_type): bool
public Swoole\Server::on(string $event_name, callable $callback): void
public Swoole\Server::pause(int $fd): void
public Swoole\Server::protect(int $fd, bool $is_protected = ?): void
public Swoole\Server::reload(): bool
public Swoole\Server::resume(int $fd): void
public Swoole\Server::send(int $fd, string $data, int $reactor_id = ?): bool
public Swoole\Server::sendfile(int $fd, string $filename, int $offset = ?): bool
public Swoole\Server::sendMessage(int $worker_id, string $data): bool
public Swoole\Server::sendto(
string $ip,
int $port,
string $data,
string $server_socket = ?
): bool
public Swoole\Server::sendwait(int $fd, string $data): bool
public Swoole\Server::set(array $settings): ReturnType
public Swoole\Server::shutdown(): void
public Swoole\Server::start(): void
public Swoole\Server::stats(): array
public Swoole\Server::stop(int $worker_id = ?): bool
public Swoole\Server::task(string $data, int $dst_worker_id = ?, callable $callback = ?): mixed
public Swoole\Server::taskwait(string $data, float $timeout = ?, int $worker_id = ?): void
public Swoole\Server::taskWaitMulti(array $tasks, float $timeout_ms = ?): void
public Swoole\Server::tick(int $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

(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

(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

(PECL swoole >= 1.9.0)

Swoole\Redis\Server::start — Описание

Описание

public Swoole\Redis\Server::start(): ReturnType

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Serialize

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class 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

(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

(PECL swoole >= 1.9.0)

Swoole\Serialize::unpack — Десериализовать данные

Описание

public static Swoole\Serialize::unpack(string $data, string $args = ?): ReturnType

Десериализовать данные.

Список параметров

string

args

Возвращаемые значения


Класс Swoole\Server

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Server {
/* Методы */
public addlistener(string $host, int $port, string $socket_type): void
public addProcess(swoole_process $process): bool
public after(int $after_time_ms, callable $callback, string $param = ?): ReturnType
public bind(int $fd, int $uid): bool
public clearTimer(int $timer_id): void
swoole_timer_clear(int $timer_id): void
public close(int $fd, bool $reset = ?): bool
public confirm(int $fd): bool
public connection_info(int $fd, int $reactor_id = ?): array
public connection_list(int $start_fd, int $pagesize = ?): array
public defer(callable $callback): void
public Swoole\Server\Port::__destruct(): void
public Swoole\Server\Port::on(string $event_name, callable $callback): ReturnType
public Swoole\Server\Port::set(array $settings): void
public exist(int $fd): bool
public finish(string $data): void
public getClientInfo(int $fd, int $reactor_id = ?, bool $ignore_error = ?): array
public getClientList(int $start_fd, int $pagesize = ?): array
public getLastError(): int
public heartbeat(bool $if_close_connection): mixed
public listen(string $host, int $port, string $socket_type): bool
public on(string $event_name, callable $callback): void
public pause(int $fd): void
public protect(int $fd, bool $is_protected = ?): void
public reload(): bool
public resume(int $fd): void
public send(int $fd, string $data, int $reactor_id = ?): bool
public sendfile(int $fd, string $filename, int $offset = ?): bool
public sendMessage(int $worker_id, string $data): bool
public sendto(
string $ip,
int $port,
string $data,
string $server_socket = ?
): bool
public sendwait(int $fd, string $data): bool
public set(array $settings): ReturnType
public shutdown(): void
public start(): void
public stats(): array
public stop(int $worker_id = ?): bool
public task(string $data, int $dst_worker_id = ?, callable $callback = ?): mixed
public taskwait(string $data, float $timeout = ?, int $worker_id = ?): void
public taskWaitMulti(array $tasks, float $timeout_ms = ?): void
public tick(int $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

(PECL swoole >= 1.9.0)

Swoole\Server::addlistener — Добавляет нового слушателя на сервер

Описание

public Swoole\Server::addlistener(string $host, int $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

(PECL swoole >= 1.9.0)

Swoole\Server::addProcess — Добавляет определённый пользователем swoole_process на сервер

Описание

public Swoole\Server::addProcess(swoole_process $process): bool

Список параметров

process

Возвращаемые значения


Запускает callback-функцию по истечении определённого периода времени

  • « Swoole\Server::addProcess
  • Swoole\Server::bind »
  • PHP Manual
  • Swoole\Server
  • Запускает callback-функцию по истечении определённого периода времени

Swoole\Server::after

(PECL swoole >= 1.9.0)

Swoole\Server::after — Запускает callback-функцию по истечении определённого периода времени

Описание

public Swoole\Server::after(int $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

(PECL swoole >= 1.9.0)

Swoole\Server::bind — Привязывает соединение к указанному идентификатору пользователя

Описание

public Swoole\Server::bind(int $fd, int $uid): bool

Список параметров

fd

uid

Возвращаемые значения


Останавливает и уничтожает таймер

  • « Swoole\Server::bind
  • Swoole\Server::close »
  • PHP Manual
  • Swoole\Server
  • Останавливает и уничтожает таймер

Swoole\Server::clearTimer

swoole_timer_clear

(PECL swoole >= 1.9.0)

Swoole\Server::clearTimer -- swoole_timer_clear — Останавливает и уничтожает таймер

Описание

Объектно-ориентированный стиль (метод):

public Swoole\Server::clearTimer(int $timer_id): void

Процедурный стиль:

swoole_timer_clear(int $timer_id): void

Останавливает и уничтожает таймер

Список параметров

timer_id

Возвращаемые значения


Закрывает соединение с клиентом

  • « Swoole\Server::clearTimer
  • Swoole\Server::confirm »
  • PHP Manual
  • Swoole\Server
  • Закрывает соединение с клиентом

Swoole\Server::close

(PECL swoole >= 1.9.0)

Swoole\Server::close — Закрывает соединение с клиентом

Описание

public Swoole\Server::close(int $fd, bool $reset = ?): bool

Список параметров

fd

reset

Возвращаемые значения


Проверяет состояние соединения

  • « Swoole\Server::close
  • Swoole\Server::connection_info »
  • PHP Manual
  • Swoole\Server
  • Проверяет состояние соединения

Swoole\Server::confirm

(PECL swoole >= 1.9.0)

Swoole\Server::confirm — Проверяет состояние соединения

Описание

public Swoole\Server::confirm(int $fd): bool

Список параметров

fd

Возвращаемые значения


Получает информацию о соединении по описанию файла

  • « Swoole\Server::confirm
  • Swoole\Server::connection_list »
  • PHP Manual
  • Swoole\Server
  • Получает информацию о соединении по описанию файла

Swoole\Server::connection_info

(PECL swoole >= 1.9.0)

Swoole\Server::connection_info — Получает информацию о соединении по описанию файла

Описание

public Swoole\Server::connection_info(int $fd, int $reactor_id = ?): array

Список параметров

fd

reactor_id

Возвращаемые значения


Получает все установленные соединения

  • « Swoole\Server::connection_info
  • Swoole\Server::__construct »
  • PHP Manual
  • Swoole\Server
  • Получает все установленные соединения

Swoole\Server::connection_list

(PECL swoole >= 1.9.0)

Swoole\Server::connection_list — Получает все установленные соединения

Описание

public Swoole\Server::connection_list(int $start_fd, int $pagesize = ?): array

Список параметров

start_fd

pagesize

Возвращаемые значения


Создаёт сервер Swoole

  • « Swoole\Server::connection_list
  • Swoole\Server::defer »
  • PHP Manual
  • Swoole\Server
  • Создаёт сервер Swoole

Swoole\Server::__construct

(PECL swoole >= 1.9.0)

Swoole\Server::__construct — Создаёт сервер Swoole

Описание

public Swoole\Server::__construct(
string $host,
int $port = ?,
int $mode = ?,
int $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

(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

(PECL swoole >= 1.9.0)

Swoole\Server\Port::__construct — Создаёт порт сервера

Описание

private Swoole\Server\Port::__construct()

Список параметров

У этой функции нет параметров.


Уничтожает порт сервера

  • « Swoole\Server\Port::__construct
  • Swoole\Server\Port::on »
  • PHP Manual
  • Swoole\Server
  • Уничтожает порт сервера

Swoole\Server\Port::__destruct

(PECL swoole >= 1.9.0)

Swoole\Server\Port::__destruct — Уничтожает порт сервера

Описание

public Swoole\Server\Port::__destruct(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Регистрирует callback-функции по событию

  • « Swoole\Server\Port::__destruct
  • Swoole\Server\Port::set »
  • PHP Manual
  • Swoole\Server
  • Регистрирует callback-функции по событию

Swoole\Server\Port::on

(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

(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

(PECL swoole >= 1.9.0)

Swoole\Server::exist — Проверяет, существует ли соединение

Описание

public Swoole\Server::exist(int $fd): bool

Список параметров

fd

Возвращаемые значения


Используется в процессе задачи для отправки результата в рабочий процесс после завершения задачи

  • « Swoole\Server::exist
  • Swoole\Server::getClientInfo »
  • PHP Manual
  • Swoole\Server
  • Используется в процессе задачи для отправки результата в рабочий процесс после завершения задачи

Swoole\Server::finish

(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

(PECL swoole >= 1.9.0)

Swoole\Server::getClientInfo — Получает информацию о соединении по описанию файла

Описание

public Swoole\Server::getClientInfo(int $fd, int $reactor_id = ?, bool $ignore_error = ?): array

Список параметров

fd

Дескриптор файла

reactor_id

Идентификатор потока Reactor, в котором выполняется соединение.

ignore_error

Следует ли игнорировать ошибки. Если установлено значение true, информация о соединении будет возвращена, даже если соединение будет закрыто.

Возвращаемые значения


Получает все установленные соединения

  • « Swoole\Server::getClientInfo
  • Swoole\Server::getLastError »
  • PHP Manual
  • Swoole\Server
  • Получает все установленные соединения

Swoole\Server::getClientList

(PECL swoole >= 1.9.0)

Swoole\Server::getClientList — Получает все установленные соединения

Описание

public Swoole\Server::getClientList(int $start_fd, int $pagesize = ?): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

start_fd

pagesize

Возвращаемые значения


Получает код самой последней ошибки

  • « Swoole\Server::getClientList
  • Swoole\Server::heartbeat »
  • PHP Manual
  • Swoole\Server
  • Получает код самой последней ошибки

Swoole\Server::getLastError

(PECL swoole >= 1.9.0)

Swoole\Server::getLastError — Получает код самой последней ошибки

Описание

public Swoole\Server::getLastError(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверяет все соединения на сервере

  • « Swoole\Server::getLastError
  • Swoole\Server::listen »
  • PHP Manual
  • Swoole\Server
  • Проверяет все соединения на сервере

Swoole\Server::heartbeat

(PECL swoole >= 1.9.0)

Swoole\Server::heartbeat — Проверяет все соединения на сервере

Описание

public Swoole\Server::heartbeat(bool $if_close_connection): mixed

Список параметров

if_close_connection

Возвращаемые значения


Слушает по заданному IP и порту, тип сокета

  • « Swoole\Server::heartbeat
  • Swoole\Server::on »
  • PHP Manual
  • Swoole\Server
  • Слушает по заданному IP и порту, тип сокета

Swoole\Server::listen

(PECL swoole >= 1.9.0)

Swoole\Server::listen — Слушает по заданному IP и порту, тип сокета

Описание

public Swoole\Server::listen(string $host, int $port, string $socket_type): bool

Список параметров

host

port

socket_type

Возвращаемые значения


Регистрирует callback-функцию по имени события

  • « Swoole\Server::listen
  • Swoole\Server::pause »
  • PHP Manual
  • Swoole\Server
  • Регистрирует callback-функцию по имени события

Swoole\Server::on

(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

(PECL swoole >= 1.9.0)

Swoole\Server::pause — Прекращает получение данных от соединения

Описание

public Swoole\Server::pause(int $fd): void

Список параметров

fd

Возвращаемые значения


Устанавливает соединение в защищённый режим

  • « Swoole\Server::pause
  • Swoole\Server::reload »
  • PHP Manual
  • Swoole\Server
  • Устанавливает соединение в защищённый режим

Swoole\Server::protect

(PECL swoole >= 1.9.0)

Swoole\Server::protect — Устанавливает соединение в защищённый режим

Описание

public Swoole\Server::protect(int $fd, bool $is_protected = ?): void

Список параметров

fd

is_protected

Возвращаемые значения


Перезапускает все рабочие процессы

  • « Swoole\Server::protect
  • Swoole\Server::resume »
  • PHP Manual
  • Swoole\Server
  • Перезапускает все рабочие процессы

Swoole\Server::reload

(PECL swoole >= 1.9.0)

Swoole\Server::reload — Перезапускает все рабочие процессы

Описание

public Swoole\Server::reload(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Начинает получать данные из соединения

  • « Swoole\Server::reload
  • Swoole\Server::send »
  • PHP Manual
  • Swoole\Server
  • Начинает получать данные из соединения

Swoole\Server::resume

(PECL swoole >= 1.9.0)

Swoole\Server::resume — Начинает получать данные из соединения

Описание

public Swoole\Server::resume(int $fd): void

Список параметров

fd

Возвращаемые значения


Отправляет данные клиенту

  • « Swoole\Server::resume
  • Swoole\Server::sendfile »
  • PHP Manual
  • Swoole\Server
  • Отправляет данные клиенту

Swoole\Server::send

(PECL swoole >= 1.9.0)

Swoole\Server::send — Отправляет данные клиенту

Описание

public Swoole\Server::send(int $fd, string $data, int $reactor_id = ?): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fd

data

reactor_id

Возвращаемые значения


Отправляет файл на соединение

  • « Swoole\Server::send
  • Swoole\Server::sendMessage »
  • PHP Manual
  • Swoole\Server
  • Отправляет файл на соединение

Swoole\Server::sendfile

(PECL swoole >= 1.9.0)

Swoole\Server::sendfile — Отправляет файл на соединение

Описание

public Swoole\Server::sendfile(int $fd, string $filename, int $offset = ?): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fd

filename

offset

Возвращаемые значения


Отправляет сообщение рабочим процессам по идентификатору

  • « Swoole\Server::sendfile
  • Swoole\Server::sendto »
  • PHP Manual
  • Swoole\Server
  • Отправляет сообщение рабочим процессам по идентификатору

Swoole\Server::sendMessage

(PECL swoole >= 1.9.0)

Swoole\Server::sendMessage — Отправляет сообщение рабочим процессам по идентификатору

Описание

public Swoole\Server::sendMessage(int $worker_id, string $data): bool

Список параметров

dst_worker_id

data

Возвращаемые значения


Отправляет данные на удалённый UDP-адрес

  • « Swoole\Server::sendMessage
  • Swoole\Server::sendwait »
  • PHP Manual
  • Swoole\Server
  • Отправляет данные на удалённый UDP-адрес

Swoole\Server::sendto

(PECL swoole >= 1.9.0)

Swoole\Server::sendto — Отправляет данные на удалённый UDP-адрес

Описание

public Swoole\Server::sendto(
string $ip,
int $port,
string $data,
string $server_socket = ?
): bool

Список параметров

ip

port

data

server_socket

Возвращаемые значения


Отправляет данные в удалённый сокет блокирующим способом

  • « Swoole\Server::sendto
  • Swoole\Server::set »
  • PHP Manual
  • Swoole\Server
  • Отправляет данные в удалённый сокет блокирующим способом

Swoole\Server::sendwait

(PECL swoole >= 1.9.0)

Swoole\Server::sendwait — Отправляет данные в удалённый сокет блокирующим способом

Описание

public Swoole\Server::sendwait(int $fd, string $data): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fd

data

Возвращаемые значения


Устанавливает настройки времени выполнения сервера swoole

  • « Swoole\Server::sendwait
  • Swoole\Server::shutdown »
  • PHP Manual
  • Swoole\Server
  • Устанавливает настройки времени выполнения сервера swoole

Swoole\Server::set

(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

(PECL swoole >= 1.9.0)

Swoole\Server::shutdown — Завершает процесс главного сервера, функцию можно вызывать в рабочих процессах

Описание

public Swoole\Server::shutdown(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Запускает сервер Swoole

  • « Swoole\Server::shutdown
  • Swoole\Server::stats »
  • PHP Manual
  • Swoole\Server
  • Запускает сервер Swoole

Swoole\Server::start

(PECL swoole >= 1.9.0)

Swoole\Server::start — Запускает сервер Swoole

Описание

public Swoole\Server::start(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает статистику сервера Swoole

  • « Swoole\Server::start
  • Swoole\Server::stop »
  • PHP Manual
  • Swoole\Server
  • Получает статистику сервера Swoole

Swoole\Server::stats

(PECL swoole >= 1.9.0)

Swoole\Server::stats — Получает статистику сервера Swoole

Описание

public Swoole\Server::stats(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Останавливает сервер Swoole

  • « Swoole\Server::stats
  • Swoole\Server::task »
  • PHP Manual
  • Swoole\Server
  • Останавливает сервер Swoole

Swoole\Server::stop

(PECL swoole >= 1.9.0)

Swoole\Server::stop — Останавливает сервер Swoole

Описание

public Swoole\Server::stop(int $worker_id = ?): bool

Список параметров

worker_id

Возвращаемые значения


Отправляет данные в рабочие процессы задачи

  • « Swoole\Server::stop
  • Swoole\Server::taskwait »
  • PHP Manual
  • Swoole\Server
  • Отправляет данные в рабочие процессы задачи

Swoole\Server::task

(PECL swoole >= 1.9.0)

Swoole\Server::task — Отправляет данные в рабочие процессы задачи

Описание

public Swoole\Server::task(string $data, int $dst_worker_id = ?, callable $callback = ?): mixed

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

dst_worker_id

callback

Возвращаемые значения


Посылает данные рабочим процессам задачи блокирующим способом

  • « Swoole\Server::task
  • Swoole\Server::taskWaitMulti »
  • PHP Manual
  • Swoole\Server
  • Посылает данные рабочим процессам задачи блокирующим способом

Swoole\Server::taskwait

(PECL swoole >= 1.9.0)

Swoole\Server::taskwait — Посылает данные рабочим процессам задачи блокирующим способом

Описание

public Swoole\Server::taskwait(string $data, float $timeout = ?, int $worker_id = ?): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

timeout

worker_id

Возвращаемые значения


Выполняет несколько задач одновременно

  • « Swoole\Server::taskwait
  • Swoole\Server::tick »
  • PHP Manual
  • Swoole\Server
  • Выполняет несколько задач одновременно

Swoole\Server::taskWaitMulti

(PECL swoole >= 1.9.0)

Swoole\Server::taskWaitMulti — Выполняет несколько задач одновременно

Описание

public Swoole\Server::taskWaitMulti(array $tasks, float $timeout_ms = ?): void

Список параметров

tasks

timeout_ms

Возвращаемые значения


Повторяет данную функцию в каждый заданный интервал времени

  • « Swoole\Server::taskWaitMulti
  • Swoole\Table »
  • PHP Manual
  • Swoole\Server
  • Повторяет данную функцию в каждый заданный интервал времени

Swoole\Server::tick

(PECL swoole >= 1.9.0)

Swoole\Server::tick — Повторяет данную функцию в каждый заданный интервал времени

Описание

public Swoole\Server::tick(int $interval_ms, callable $callback): void

Список параметров

interval_ms

callback

Возвращаемые значения


Класс Swoole\Table

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Table implements Iterator, Countable {
/* Константы */
const int TYPE_INT = 1;
const int TYPE_STRING = 7;
const int TYPE_FLOAT = 6;
/* Методы */
public column(string $name, string $type, int $size = ?): ReturnType
public count(): int
public create(): void
public current(): array
public decr(string $key, string $column, int $decrby = ?): ReturnType
public del(string $key): void
public destroy(): void
public exist(string $key): bool
public get(string $row_key, string $column_key): int
public incr(string $key, string $column, int $incrby = ?): void
public key(): string
public next(): ReturnType
public rewind(): void
public set(string $key, array $value): VOID
public valid(): bool
}

Предопределённые константы

Swoole\Table::TYPE_INT

Swoole\Table::TYPE_STRING

Swoole\Table::TYPE_FLOAT

Содержание

  • Swoole\Table::column — Устанавливает тип данных и размер столбцов
  • Swoole\Table::__construct — Создаёт таблицу памяти Swoole с фиксированным размером
  • Swoole\Table::count — Подсчитывает строки в таблице или подсчитывает все элементы в таблице, если $mode = 1
  • Swoole\Table::create — Создаёт таблицу памяти swoole
  • Swoole\Table::current — Получает текущую строку
  • Swoole\Table::decr — Уменьшает значение в таблице Swoole по $row_key и $column_key
  • Swoole\Table::del — Удаляет строку в таблице Swoole по $row_key
  • Swoole\Table::destroy — Уничтожает таблицу Swoole
  • Swoole\Table::exist — Проверяет, существует ли строка по $row_key
  • Swoole\Table::get — Получает значение в таблице Swoole по $row_key и $column_key
  • Swoole\Table::incr — Увеличивает значение по $row_key и $column_key
  • Swoole\Table::key — Получает ключ текущей строки
  • Swoole\Table::next — Перемещает итератор на следующую строку
  • Swoole\Table::rewind — Перематывает итератор
  • Swoole\Table::set — Обновляет строку таблицы по $row_key
  • Swoole\Table::valid — Проверяет, является ли текущая строка корректной


Устанавливает тип данных и размер столбцов

  • « Swoole\Table
  • Swoole\Table::__construct »
  • PHP Manual
  • Swoole\Table
  • Устанавливает тип данных и размер столбцов

Swoole\Table::column

(PECL swoole >= 1.9.0)

Swoole\Table::column — Устанавливает тип данных и размер столбцов

Описание

public Swoole\Table::column(string $name, string $type, int $size = ?): ReturnType

Список параметров

name

type

size

Возвращаемые значения


Создаёт таблицу памяти Swoole с фиксированным размером

  • « Swoole\Table::column
  • Swoole\Table::count »
  • PHP Manual
  • Swoole\Table
  • Создаёт таблицу памяти Swoole с фиксированным размером

Swoole\Table::__construct

(PECL swoole >= 1.9.0)

Swoole\Table::__construct — Создаёт таблицу памяти Swoole с фиксированным размером

Описание

public Swoole\Table::__construct(int $table_size)

Список параметров

table_size


Подсчитывает строки в таблице или подсчитывает все элементы в таблице, если $mode = 1

  • « Swoole\Table::__construct
  • Swoole\Table::create »
  • PHP Manual
  • Swoole\Table
  • Подсчитывает строки в таблице или подсчитывает все элементы в таблице, если $mode = 1

Swoole\Table::count

(PECL swoole >= 1.9.0)

Swoole\Table::count — Подсчитывает строки в таблице или подсчитывает все элементы в таблице, если $mode = 1

Описание

public Swoole\Table::count(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Создаёт таблицу памяти swoole

  • « Swoole\Table::count
  • Swoole\Table::current »
  • PHP Manual
  • Swoole\Table
  • Создаёт таблицу памяти swoole

Swoole\Table::create

(PECL swoole >= 1.9.0)

Swoole\Table::create — Создаёт таблицу памяти swoole

Описание

public Swoole\Table::create(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает текущую строку

  • « Swoole\Table::create
  • Swoole\Table::decr »
  • PHP Manual
  • Swoole\Table
  • Получает текущую строку

Swoole\Table::current

(PECL swoole >= 1.9.0)

Swoole\Table::current — Получает текущую строку

Описание

public Swoole\Table::current(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Уменьшает значение в таблице Swoole по $row_key и $column_key

  • « Swoole\Table::current
  • Swoole\Table::del »
  • PHP Manual
  • Swoole\Table
  • Уменьшает значение в таблице Swoole по $row_key и $column_key

Swoole\Table::decr

(PECL swoole >= 1.9.0)

Swoole\Table::decr — Уменьшает значение в таблице Swoole по $row_key и $column_key

Описание

public Swoole\Table::decr(string $key, string $column, int $decrby = ?): ReturnType

Список параметров

key

column

decrby

Возвращаемые значения


Удаляет строку в таблице Swoole по $row_key

  • « Swoole\Table::decr
  • Swoole\Table::destroy »
  • PHP Manual
  • Swoole\Table
  • Удаляет строку в таблице Swoole по $row_key

Swoole\Table::del

(PECL swoole >= 1.9.0)

Swoole\Table::del — Удаляет строку в таблице Swoole по $row_key

Описание

public Swoole\Table::del(string $key): void

Список параметров

key

Возвращаемые значения


Уничтожает таблицу Swoole

  • « Swoole\Table::del
  • Swoole\Table::exist »
  • PHP Manual
  • Swoole\Table
  • Уничтожает таблицу Swoole

Swoole\Table::destroy

(PECL swoole >= 1.9.0)

Swoole\Table::destroy — Уничтожает таблицу Swoole

Описание

public Swoole\Table::destroy(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверяет, существует ли строка по $row_key

  • « Swoole\Table::destroy
  • Swoole\Table::get »
  • PHP Manual
  • Swoole\Table
  • Проверяет, существует ли строка по $row_key

Swoole\Table::exist

(PECL swoole >= 1.9.0)

Swoole\Table::exist — Проверяет, существует ли строка по $row_key

Описание

public Swoole\Table::exist(string $key): bool

Список параметров

key

Возвращаемые значения


Получает значение в таблице Swoole по $row_key и $column_key

  • « Swoole\Table::exist
  • Swoole\Table::incr »
  • PHP Manual
  • Swoole\Table
  • Получает значение в таблице Swoole по $row_key и $column_key

Swoole\Table::get

(PECL swoole >= 1.9.0)

Swoole\Table::get — Получает значение в таблице Swoole по $row_key и $column_key

Описание

public Swoole\Table::get(string $row_key, string $column_key): int

Список параметров

row_key

column_key

Возвращаемые значения


Увеличивает значение по $row_key и $column_key

  • « Swoole\Table::get
  • Swoole\Table::key »
  • PHP Manual
  • Swoole\Table
  • Увеличивает значение по $row_key и $column_key

Swoole\Table::incr

(PECL swoole >= 1.9.0)

Swoole\Table::incr — Увеличивает значение по $row_key и $column_key

Описание

public Swoole\Table::incr(string $key, string $column, int $incrby = ?): void

Список параметров

key

column

incrby

Возвращаемые значения


Получает ключ текущей строки

  • « Swoole\Table::incr
  • Swoole\Table::next »
  • PHP Manual
  • Swoole\Table
  • Получает ключ текущей строки

Swoole\Table::key

(PECL swoole >= 1.9.0)

Swoole\Table::key — Получает ключ текущей строки

Описание

public Swoole\Table::key(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Перемещает итератор на следующую строку

  • « Swoole\Table::key
  • Swoole\Table::rewind »
  • PHP Manual
  • Swoole\Table
  • Перемещает итератор на следующую строку

Swoole\Table::next

(PECL swoole >= 1.9.0)

Swoole\Table::next — Перемещает итератор на следующую строку

Описание

public Swoole\Table::next(): ReturnType

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Перематывает итератор

  • « Swoole\Table::next
  • Swoole\Table::set »
  • PHP Manual
  • Swoole\Table
  • Перематывает итератор

Swoole\Table::rewind

(PECL swoole >= 1.9.0)

Swoole\Table::rewind — Перематывает итератор

Описание

public Swoole\Table::rewind(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Обновляет строку таблицы по $row_key

  • « Swoole\Table::rewind
  • Swoole\Table::valid »
  • PHP Manual
  • Swoole\Table
  • Обновляет строку таблицы по $row_key

Swoole\Table::set

(PECL swoole >= 1.9.0)

Swoole\Table::set — Обновляет строку таблицы по $row_key

Описание

public Swoole\Table::set(string $key, array $value): VOID

Список параметров

key

value

Возвращаемые значения


Проверяет, является ли текущая строка корректной

  • « Swoole\Table::set
  • Swoole\Timer »
  • PHP Manual
  • Swoole\Table
  • Проверяет, является ли текущая строка корректной

Swoole\Table::valid

(PECL swoole >= 1.9.0)

Swoole\Table::valid — Проверяет, является ли текущая строка корректной

Описание

public Swoole\Table::valid(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Swoole\Timer

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\Timer {
/* Методы */
public static after(int $after_time_ms, callable $callback): void
public static clear(int $timer_id): void
public static exists(int $timer_id): bool
public static tick(int $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

(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

(PECL swoole >= 1.9.0)

Swoole\Timer::clear — Удаляет таймер по идентификатору

Описание

public static Swoole\Timer::clear(int $timer_id): void

Удаляет таймер по идентификатору.

Список параметров

timer_id

Возвращаемые значения


Проверяет, существует ли таймер

  • « Swoole\Timer::clear
  • Swoole\Timer::tick »
  • PHP Manual
  • Swoole\Timer
  • Проверяет, существует ли таймер

Swoole\Timer::exists

(PECL swoole >= 1.9.0)

Swoole\Timer::exists — Проверяет, существует ли таймер

Описание

public static Swoole\Timer::exists(int $timer_id): bool

Проверяет, существует ли таймер.

Список параметров

timer_id

Возвращаемые значения


Повторяет данную функцию в каждый заданный интервал времени

  • « Swoole\Timer::exists
  • Swoole\WebSocket\Frame »
  • PHP Manual
  • Swoole\Timer
  • Повторяет данную функцию в каждый заданный интервал времени

Swoole\Timer::tick

(PECL swoole >= 1.9.0)

Swoole\Timer::tick — Повторяет данную функцию в каждый заданный интервал времени

Описание

public static Swoole\Timer::tick(int $interval_ms, callable $callback, string $param = ?): void

Список параметров

interval_ms

callback

param

Возвращаемые значения


Класс Swoole\WebSocket\Frame

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\WebSocket\Frame {
/* Методы */
}


Класс Swoole\WebSocket\Server

(PECL swoole >= 1.9.0)

Введение

Обзор классов

class Swoole\WebSocket\Server extends Swoole\Http\Server {
/* Методы */
public exist(int $fd): bool
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
}

Содержание

  • 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

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::exist — Проверяет, существует ли описание файла

Описание

public Swoole\WebSocket\Server::exist(int $fd): bool

Список параметров

fd

Возвращаемые значения


Зарегистрировать callback-функцию события

  • « Swoole\WebSocket\Server::exist
  • Swoole\WebSocket\Server::pack »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Зарегистрировать callback-функцию события

Swoole\WebSocket\Server::on

(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

(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

(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

(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 — Проверяет, является ли узел узлом элемента
    • 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_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

tidy.default_config string

Путь по умолчанию к конфигурационному файлу Tidy.

tidy.clean_output bool

Включает/выключает восстановление потока вывода средствами 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, PHP 8, PECL tidy >= 0.5.2)

Введение

HTML-узел в HTML-файле, обнаруженный Tidy.

Обзор классов

class tidy {
/* Свойства */
public ?string $errorBuffer = null;
public ?string $value = null;
/* Методы */
public __construct(
?string $filename = null,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
)
public body(): ?tidyNode
public cleanRepair(): bool
public diagnose(): bool
public getConfig(): array
public getHtmlVer(): int
public getOpt(string $option): string|int|bool
public getOptDoc(string $option): string|false
public getRelease(): string
public getStatus(): int
public head(): ?tidyNode
public html(): ?tidyNode
public isXhtml(): bool
public isXml(): bool
public parseFile(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): bool
public parseString(string $string, array|string|null $config = null, ?string $encoding = null): bool
public static repairFile(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): string|false
public static repairString(string $string, array|string|null $config = null, ?string $encoding = null): string|false
public root(): ?tidyNode
}

Свойства

value

HTML-представление узла, включая окружающие теги.

Содержание

  • 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, PHP 8, PECL tidy 0.5.2-1.0)

tidy::body -- tidy_get_body — Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева

Описание

Объектно-ориентированный стиль

public tidy::body(): ?tidyNode

Процедурный стиль

tidy_get_body(tidy $tidy): ?tidyNode

Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева.

Список параметров

tidy

Объект 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, PHP 8, PECL tidy >= 0.5.2)

tidy::cleanRepair -- tidy_clean_repair — Выполнить настроенную очистку и восстановление разобранной разметки

Описание

Объектно-ориентированный стиль

public tidy::cleanRepair(): bool

Процедурный стиль

tidy_clean_repair(tidy $tidy): bool

Функция очищает и восстанавливает полученный tidy-объект tidy.

Список параметров

tidy

Объект 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, PHP 8, PECL tidy >= 0.5.2)

tidy::__construct — Создаёт новый tidy-объект

Описание

public tidy::__construct(
?string $filename = null,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
)

Создаёт новый tidy-объект.

Список параметров

filename

Если задан параметр filename, то эта функция прочитает файл и инициализирует объект с этим файлом, действуя как функция tidy_parse_file().

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то это интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Описание каждого параметра можно найти тут: » http://api.html-tidy.org/#quick-reference.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

useIncludePath

Поиск файла в include_path.

Список изменений

Версия | Описание
8.0.0 | filename, config, encoding и useIncludePath теперь допускают значение null.

Примеры

Пример #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, PHP 8, PECL tidy >= 0.5.2)

tidy::diagnose -- tidy_diagnose — Запуск настроенной диагностики для разобранной и восстановленной разметки

Описание

Объектно-ориентированный стиль

public tidy::diagnose(): bool

Процедурный стиль

tidy_diagnose(tidy $tidy): bool

Выполняет диагностические тесты полученного tidy-объекта tidy, добавляя некоторую информацию о документе в буфер ошибок.

Список параметров

tidy

Объект 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, PHP 8, PECL tidy >= 0.5.2)

tidy::$errorBuffer -- tidy_get_error_buffer — Возвращает предупреждения и ошибки, возникшие при разборе указанного документа

Описание

Объектно-ориентированный стиль (property):

public string $tidy->errorBuffer;

Процедурный стиль:

tidy_get_error_buffer(tidy $tidy): string|false

Возвращает предупреждения и ошибки, возникшие при разборе указанного документа.

Список параметров

tidy

Объект Tidy.

Возвращаемые значения

Возвращает буфер ошибки в виде строки или false, если буфер пустой.

Примеры

Пример #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, PHP 8, PECL tidy >= 0.7.0)

tidy::getConfig -- tidy_get_config — Получает текущую конфигурацию Tidy

Описание

Объектно-ориентированный стиль

public tidy::getConfig(): array

Процедурный стиль

tidy_get_config(tidy $tidy): array

Получает список используемых опций конфигурации в указанном объекте tidy tidy.

Список параметров

tidy

Объект Tidy.

Возвращаемые значения

Возвращает массив опций конфигурации.

Информацию о каждом параметре можно получить тут: » http://api.html-tidy.org/#quick-reference.

Примеры

Пример #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, PHP 8, PECL tidy >= 0.5.2)

tidy::getHtmlVer -- tidy_get_html_ver — Получает обнаруженную HTML версию для указанного документа

Описание

Объектно-ориентированный стиль

public tidy::getHtmlVer(): int

Процедурный стиль

tidy_get_html_ver(tidy $tidy): int

Возвращает обнаруженную HTML версию для указанного объекта tidy tidy.

Список параметров

tidy

Объект Tidy.

Возвращаемые значения

Возвращает обнаруженную HTML версию.

Внимание

Функция ещё не реализована в самом Tidylib, поэтому всегда возвращается 0.


Возвращает значение указанного параметра конфигурации для документа tidy

  • « tidy::getHtmlVer
  • tidy::getOptDoc »
  • PHP Manual
  • tidy
  • Возвращает значение указанного параметра конфигурации для документа tidy

tidy::getOpt

tidy_getopt

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::getOpt -- tidy_getopt — Возвращает значение указанного параметра конфигурации для документа tidy

Описание

Объектно-ориентированный стиль

public tidy::getOpt(string $option): string|int|bool

Процедурный стиль

tidy_getopt(tidy $tidy, string $option): string|int|bool

Возвращает значение указанного параметра option для указанного объекта tidy tidy.

Список параметров

tidy

Объект Tidy.

option

Вы можете найти список из каждой опции конфигурации с типом здесь: » http://api.html-tidy.org/#quick-reference.

Возвращаемые значения

Возвращает значение указанной опции 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, PHP 8)

tidy::getOptDoc -- tidy_get_opt_doc — Возвращает описание для опции с указанным названием

Описание

Объектно-ориентированный стиль

public tidy::getOptDoc(string $option): string|false

Процедурный стиль

tidy_get_opt_doc(tidy $tidy, string $option): string|false

Функция tidy_get_opt_doc() возвращает описание для опции с указанным названием.

Замечание:

Для использования этой функции вам потребуется библиотека libtidy минимум от 25 Апреля 2005 г.

Список параметров

tidy

Объект 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, PHP 8, PECL tidy >= 0.5.2)

tidy::getRelease -- tidy_get_release — Получить дату релиза (версию) для библиотеки Tidy

Описание

Объектно-ориентированный стиль

public tidy::getRelease(): string

Процедурный стиль

tidy_get_release(): string

Получает дату релиза для библиотеки Tidy.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку с датой релиза библиотеки Tidy, которая может быть 'unknown'.


Получает статус указанного документа

  • « tidy::getRelease
  • tidy::head »
  • PHP Manual
  • tidy
  • Получает статус указанного документа

tidy::getStatus

tidy_get_status

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::getStatus -- tidy_get_status — Получает статус указанного документа

Описание

Объектно-ориентированный стиль

public tidy::getStatus(): int

Процедурный стиль

tidy_get_status(tidy $tidy): int

Возвращает статус указанного tidy-объекта tidy.

Список параметров

tidy

Объект 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, PHP 8, PECL tidy 0.5.2-1.0.0)

tidy::head -- tidy_get_head — Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева

Описание

Объектно-ориентированный стиль

public tidy::head(): ?tidyNode

Процедурный стиль

tidy_get_head(tidy $tidy): ?tidyNode

Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева.

Список параметров

tidy

Объект 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, PHP 8, PECL tidy 0.5.2-1.0.0)

tidy::html -- tidy_get_html — Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева

Описание

Объектно-ориентированный стиль

public tidy::html(): ?tidyNode

Процедурный стиль

tidy_get_html(tidy $tidy): ?tidyNode

Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева.

Список параметров

tidy

Объект 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, PHP 8, PECL tidy >= 0.5.2)

tidy::isXhtml -- tidy_is_xhtml — Определяет, является ли документ XHTML-документом

Описание

Объектно-ориентированный стиль

public tidy::isXhtml(): bool

Процедурный стиль

tidy_is_xhtml(tidy $tidy): bool

Определяет, является ли документ XHTML-документом.

Список параметров

tidy

Объект Tidy.

Возвращаемые значения

Функция возвращает true, если указанный tidy-объект tidy является 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, PHP 8, PECL tidy >= 0.5.2)

tidy::isXml -- tidy_is_xml — Определяет, является ли документ общим XML-документом (не HTML/XHTML)

Описание

Объектно-ориентированный стиль

public tidy::isXml(): bool

Процедурный стиль

tidy_is_xml(tidy $tidy): bool

Определяет, является ли документ общим XML-документом (не HTML/XHTML).

Список параметров

tidy

Объект Tidy.

Возвращаемые значения

Эта функция возвращает true, если указанный tidy-объект tidy является общим XML-документом (не HTML/XHTML), или false в противном случае.

Внимание

Эта функция ещё не реализована в самом Tidylib, поэтому всегда возвращается false.


Разбор разметки в файле или URI

  • « tidy::isXml
  • tidy::parseString »
  • PHP Manual
  • tidy
  • Разбор разметки в файле или URI

tidy::parseFile

tidy_parse_file

(PHP 5, PHP 7, PHP 8, PECL tidy >= 0.5.2)

tidy::parseFile -- tidy_parse_file — Разбор разметки в файле или URI

Описание

Объектно-ориентированный стиль

public tidy::parseFile(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): bool

Процедурный стиль

tidy_parse_file(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): tidy|false

Разбор полученного файла.

Список параметров

filename

Если получен параметр filename, то функция прочитает этот файл и инициализирует объект с этим файлом, так же как делает это функция tidy_parse_file().

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то она интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Информацию о каждом параметре можно найти тут: » http://api.html-tidy.org/#quick-reference.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

useIncludePath

Поиск файла в include_path.

Возвращаемые значения

tidy::parseFile() возвращает true в случае успешного выполнения. tidy_parse_file() возвращает новый экземпляр tidy в случае успешного выполнения. И метод, и функция возвращают false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | config и encoding теперь допускают значение null.

Примеры

Пример #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, PHP 8, PECL tidy >= 0.5.2)

tidy::parseString -- tidy_parse_string — Разбор документа, хранимого в строке

Описание

Объектно-ориентированный стиль

public tidy::parseString(string $string, array|string|null $config = null, ?string $encoding = null): bool

Процедурный стиль

tidy_parse_string(string $string, array|string|null $config = null, ?string $encoding = null): tidy|false

Разбор документа, хранимого в строке.

Список параметров

string

Данные для разбора.

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то она интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Информацию о каждом параметре можно найти тут: » http://api.html-tidy.org/#quick-reference.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

Возвращаемые значения

tidy::parseString() возвращает true в случае успешного выполнения. tidy_parse_string() возвращает новый экземпляр tidy в случае успешного выполнения. И метод, и функция возвращают false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | config и encoding теперь допускают значение null.

Примеры

Пример #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, PHP 8, PECL tidy >= 0.7.0)

tidy::repairFile -- tidy_repair_file — Восстанавливает разметку файла и возвращает его в виде строки

Описание

Объектно-ориентированный стиль

public static tidy::repairFile(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): string|false

Процедурный стиль

tidy_repair_file(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): string|false

Восстанавливает полученный файл и возвращает его в виде строки.

Список параметров

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.

useIncludePath

Поиск файла в include_path.

Возвращаемые значения

Возвращает восстановленный документ в виде строки или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | tidy::repairFile() теперь статичный метод.
8.0.0 | config и encoding теперь допускают значение null.

Примеры

Пример #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, PHP 8, PECL tidy >= 0.7.0)

tidy::repairString -- tidy_repair_string — Восстанавливает строку, используя по возможности конфигурационный файл

Описание

Объектно-ориентированный стиль

public static tidy::repairString(string $string, array|string|null $config = null, ?string $encoding = null): string|false

Процедурный стиль

tidy_repair_string(string $string, array|string|null $config = null, ?string $encoding = null): string|false

Восстанавливает полученную строку.

Список параметров

string

Данные для восстановления.

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то она интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Информацию о каждом параметре можно найти тут: » http://api.html-tidy.org/#quick-reference.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

Возвращаемые значения

Возвращает восстановленную строку или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | tidy::repairString() теперь статичный метод.
8.0.0 | config и encoding теперь допускают значение null.
8.0.0 | Функция больше не принимает параметр useIncludePath.

Примеры

Пример #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, PHP 8, PECL tidy 0.5.2-1.0.0)

tidy::root -- tidy_get_root — Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева

Описание

Объектно-ориентированный стиль

public tidy::root(): ?tidyNode

Процедурный стиль

tidy_get_root(tidy $tidy): ?tidyNode

Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева.

Список параметров

tidy

Объект 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, PHP 8)

Введение

An HTML node in an HTML file, as detected by tidy.

Обзор классов

final class tidyNode {
/* Свойства */
public readonly string $value;
public readonly string $name;
public readonly int $type;
public readonly int $line;
public readonly int $column;
public readonly bool $proprietary;
public readonly ?int $id;
public readonly ?array $attribute;
public readonly ?array $child;
/* Методы */
private __construct()
public getParent(): ?tidyNode
public hasChildren(): bool
public hasSiblings(): bool
public isAsp(): bool
public isComment(): bool
public isHtml(): bool
public isJste(): bool
public isPhp(): bool
public isText(): bool
}

Свойства

value

HTML-представление узла, включая окружающие теги.

name

Название HTML-узла

type

Тип тэга (одна из констант, описанных выше, например TIDY_NODETYPE_PHP)

line

Номер строки, на которой расположен тег в файле

column

Номер столбца, на котором расположен тег в файле

proprietary

Признак проприетарности тега

id

Идентификатор тега (одна из констант, описанных выше, например TIDY_TAG_FRAME)

attribute

Массив строк, представляющих имена атрибутов (в качестве ключей) текущего узла.

child

Массив, состоящий из экземпляров tidyNode, представляющий детей текущего узла.

Содержание

  • tidyNode::__construct — Приватный конструктор, делающий невозможным прямое создание объекта
  • tidyNode::getParent — Возвращает родительский узел текущего узла
  • tidyNode::hasChildren — Проверяет существование потомков у узла
  • tidyNode::hasSiblings — Проверяет существование соседних узлов
  • tidyNode::isAsp — Проверяет текущий узел на соответствие ASP
  • tidyNode::isComment — Проверяет, является ли узел комментарием
  • tidyNode::isHtml — Проверяет, является ли узел узлом элемента
  • tidyNode::isJste — Проверяет текущий узел на соответствие JSTE
  • tidyNode::isPhp — Проверяет, является ли текущий узел PHP-кодом
  • tidyNode::isText — Проверяет, является ли текущий узел обычным текстом (не разметкой)


Приватный конструктор, делающий невозможным прямое создание объекта

  • « tidyNode
  • tidyNode::getParent »
  • PHP Manual
  • tidyNode
  • Приватный конструктор, делающий невозможным прямое создание объекта

tidyNode::__construct

(PHP 5, PHP 7, PHP 8)

tidyNode::__construct — Приватный конструктор, делающий невозможным прямое создание объекта

Описание

private tidyNode::__construct()

Список параметров

У этой функции нет параметров.


Возвращает родительский узел текущего узла

  • « tidyNode::__construct
  • tidyNode::hasChildren »
  • PHP Manual
  • tidyNode
  • Возвращает родительский узел текущего узла

tidyNode::getParent

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

tidyNode::getParent — Возвращает родительский узел текущего узла

Описание

public tidyNode::getParent(): ?tidyNode

Возвращает родительский узел текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект tidyNode, если узел имеет родителя, в противном случае возвращает null.

Примеры

Пример #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::getParent
  • tidyNode::hasSiblings »
  • PHP Manual
  • tidyNode
  • Проверяет существование потомков у узла

tidyNode::hasChildren

(PHP 5, PHP 7, PHP 8)

tidyNode::hasChildren — Проверяет существование потомков у узла

Описание

public tidyNode::hasChildren(): 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, PHP 8)

tidyNode::hasSiblings — Проверяет существование соседних узлов

Описание

public tidyNode::hasSiblings(): 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, PHP 8)

tidyNode::isAsp — Проверяет текущий узел на соответствие ASP

Описание

public tidyNode::isAsp(): 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, PHP 8)

tidyNode::isComment — Проверяет, является ли узел комментарием

Описание

public tidyNode::isComment(): 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
<!-- Комментарии -->


Проверяет, является ли узел узлом элемента

  • « tidyNode::isComment
  • tidyNode::isJste »
  • PHP Manual
  • tidyNode
  • Проверяет, является ли узел узлом элемента

tidyNode::isHtml

(PHP 5, PHP 7, PHP 8)

tidyNode::isHtml — Проверяет, является ли узел узлом элемента

Описание

public tidyNode::isHtml(): bool

Проверяет, является ли узел узлом элемента, но не корневым узлом документа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если узел является узлом элемента, но не корневым узлом документа, в противном случае возвращает false.

Список изменений

Версия | Описание
7.3.24, 7.4.12 | Исправлено, теперь функция ведёт себя разумно. Раньше почти любой узел считался узлом HTML.

Примеры

Пример #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
<title></title>

# html узел #4
<body>
<?php
  // PHP-код
  echo 'привет мир!';
?><%
  /* ASP код */
  response.write("Привет Мир!")
%><!-- Комментарии -->
Привет МирЗа пределами HTML кода
</body>


Проверяет текущий узел на соответствие JSTE

  • « tidyNode::isHtml
  • tidyNode::isPhp »
  • PHP Manual
  • tidyNode
  • Проверяет текущий узел на соответствие JSTE

tidyNode::isJste

(PHP 5, PHP 7, PHP 8)

tidyNode::isJste — Проверяет текущий узел на соответствие JSTE

Описание

public tidyNode::isJste(): 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, PHP 8)

tidyNode::isPhp — Проверяет, является ли текущий узел PHP-кодом

Описание

public tidyNode::isPhp(): 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, PHP 8)

tidyNode::isText — Проверяет, является ли текущий узел обычным текстом (не разметкой)

Описание

public tidyNode::isText(): 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, PHP 8)

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, PHP 8, PECL tidy >= 0.5.2)

tidy_access_count — Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе

Описание

tidy_access_count(tidy $tidy): int

tidy_access_count() возвращает число доступных предупреждений, найденных в рассмотренном документе.

Список параметров

tidy

Объект 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, PHP 8, PECL tidy >= 0.5.2)

tidy_config_count — Возвращает число ошибок конфигурации Tidy, встретившихся при рассмотрении документа

Описание

tidy_config_count(tidy $tidy): int

Возвращает число ошибок в конфигурации заданного объекта tidy.

Список параметров

tidy

Объект 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, PHP 8, PECL tidy >= 0.5.2)

tidy_error_count — Возвращает число ошибок Tidy, встретившихся при рассмотрении документа

Описание

tidy_error_count(tidy $tidy): int

Возвращает число ошибок Tidy, встретившихся при рассмотрении документа.

Список параметров

tidy

Объект 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, PHP 8, PECL tidy >= 0.5.2)

tidy_get_output — Возвращает строку, представляющую разобранную tidy-разметку

Описание

tidy_get_output(tidy $tidy): string

Получить строку с восстановленным html.

Список параметров

tidy

Объект 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, PHP 8, PECL tidy >= 0.5.2)

tidy_warning_count — Возвращает число Tidy-предупреждений, встреченных в указанном документе

Описание

tidy_warning_count(tidy $tidy): int

Возвращает число Tidy-предупреждений, встреченных в указанном документе.

Список параметров

tidy

Объект 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)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
  • PhpToken — Класс PhpToken
    • PhpToken::__construct — Создаёт объект PhpToken
    • PhpToken::getTokenName — Возвращает имя токена
    • PhpToken::is — Проверяет, соответствует ли токен указанному типу
    • PhpToken::isIgnorable — Сообщает, будет ли токен игнорироваться парсером PHP
    • PhpToken::__toString — Возвращает текстовое содержимое токена
    • PhpToken::tokenize — Разбирает заданную строку, содержащую программу на PHP, на массив объектов PhpToken
  • Функции PHP-лексера (tokenizer)
    • token_get_all — Разбивает переданный исходный код на PHP-лексемы
    • token_name — Получить символьное имя для переданной PHP-лексемы


Введение

Лексические функции предоставляют интерфейс ко встроенному в Zend Engine PHP-лексеру (tokenizer). Используя эти функции, вы можете писать собственные утилиты анализа или модификации исходного кода на PHP без необходимости иметь дело с языковой спецификацией на лексическом уровне.

Смотрите также приложение со списком лексем.


Установка

Модуль включён по умолчанию. Он может быть отключён во время выполнения с помощью следующей опции: --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;
}
}
}
?>


Класс PhpToken

(PHP 8)

Введение

Этот класс предоставляет альтернативу функции token_get_all(). Тогда как функция возвращает токены либо в виде односимвольной строки, либо в виде массива с идентификатором токена, его текстом и номером строки, PhpToken::tokenize() нормализует все токены в объекты PhpToken, что позволяет гораздо более удобно работать с токенами.

Обзор классов

class PhpToken implements Stringable {
/* Свойства */
public int $id;
public string $text;
public int $line;
public int $pos;
/* Методы */
final public __construct(
int $id,
string $text,
int $line = -1,
int $pos = -1
)
public getTokenName(): ?string
public is(int|string|array $kind): bool
public isIgnorable(): bool
public __toString(): string
public static tokenize(string $code, int $flags = 0): array
}

Свойства

id

Одна из констант T_*, или символ ASCII, представляющий односимвольный токен.

text

Текстовое содержимое токена.

line

Номер строки (начиная с 1), с которой начинается токен.

pos

Начальная позиция (начиная с 0) токена в строке (количество байтов).

Содержание

  • PhpToken::__construct — Создаёт объект PhpToken
  • PhpToken::getTokenName — Возвращает имя токена
  • PhpToken::is — Проверяет, соответствует ли токен указанному типу
  • PhpToken::isIgnorable — Сообщает, будет ли токен игнорироваться парсером PHP
  • PhpToken::__toString — Возвращает текстовое содержимое токена
  • PhpToken::tokenize — Разбирает заданную строку, содержащую программу на PHP, на массив объектов PhpToken


Создаёт объект PhpToken

  • « PhpToken
  • PhpToken::getTokenName »
  • PHP Manual
  • PhpToken
  • Создаёт объект PhpToken

PhpToken::__construct

(PHP 8)

PhpToken::__construct — Создаёт объект PhpToken

Описание

final public PhpToken::__construct(
int $id,
string $text,
int $line = -1,
int $pos = -1
)

Возвращает новый объект PhpToken.

Список параметров

id

Одна из констант T_* (смотрите Список меток (tokens) парсера), или символ ASCII, представляющий односимвольный токен.

text

Текстовое содержимое токена.

line

Номер строки (начиная с 1), с которой начинается токен.

pos

Начальная позиция (начиная с 0) токена в строке (количество байтов).

Смотрите также

  • PhpToken::tokenize() - Разбирает заданную строку, содержащую программу на PHP, на массив объектов PhpToken


Возвращает имя токена

  • « PhpToken::__construct
  • PhpToken::is »
  • PHP Manual
  • PhpToken
  • Возвращает имя токена

PhpToken::getTokenName

(PHP 8)

PhpToken::getTokenName — Возвращает имя токена

Описание

public PhpToken::getTokenName(): ?string

Возвращает имя токена.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Символ ASCII для односимвольных токенов, либо имя одной из констант T_* (смотрите Список меток (tokens) парсера), либо null, для неизвестных токенов.

Примеры

Пример #1 Пример использования PhpToken::getTokenName()

<?php
// стандартный токен
$token = new PhpToken(T_ECHO, 'echo');
var_dump($token->getTokenName()); // -> string(6) "T_ECHO"

// односимвольный токен
$token = new PhpToken(ord(';'), ';');
var_dump($token->getTokenName()); // -> string(1) ";"

// неизвестный токен
$token = new PhpToken(10000 , "\0");
var_dump($token->getTokenName()); // -> NULL

Смотрите также

  • PhpToken::tokenize() - Разбирает заданную строку, содержащую программу на PHP, на массив объектов PhpToken
  • token_name() - Получить символьное имя для переданной PHP-лексемы


Проверяет, соответствует ли токен указанному типу

  • « PhpToken::getTokenName
  • PhpToken::isIgnorable »
  • PHP Manual
  • PhpToken
  • Проверяет, соответствует ли токен указанному типу

PhpToken::is

(PHP 8)

PhpToken::is — Проверяет, соответствует ли токен указанному типу

Описание

public PhpToken::is(int|string|array $kind): bool

Проверяет, соответствует ли токен указанному типу kind.

Список параметров

kind

Значение для сравнения с идентификатором токена, либо его текстовым представлением, или массив таких значений.

Возвращаемые значения

Логическое значение, true или false.

Примеры

Пример #1 Пример использования PhpToken::is()

<?php
$token = new PhpToken(T_ECHO, 'echo');
var_dump($token->is(T_ECHO)); // -> bool(true)
var_dump($token->is('echo')); // -> bool(true)
var_dump($token->is(T_FOREACH)); // -> bool(false)
var_dump($token->is('foreach')); // -> bool(false)

Пример #2 Использование с массивом

<?php
function isClassType(PhpToken $token): bool {
return $token->is([T_CLASS, T_INTERFACE, T_TRAIT]);
}

$interface = new PhpToken(T_INTERFACE, 'interface');
var_dump(isClassType($interface)); // -> bool(true)

$function = new PhpToken(T_FUNCTION, 'function');
var_dump(isClassType($function)); // -> bool(false)

Смотрите также

  • token_name() - Получить символьное имя для переданной PHP-лексемы


Сообщает, будет ли токен игнорироваться парсером PHP

  • « PhpToken::is
  • PhpToken::__toString »
  • PHP Manual
  • PhpToken
  • Сообщает, будет ли токен игнорироваться парсером PHP

PhpToken::isIgnorable

(PHP 8)

PhpToken::isIgnorable — Сообщает, будет ли токен игнорироваться парсером PHP

Описание

public PhpToken::isIgnorable(): bool

Сообщает, будет ли токен игнорироваться парсером PHP.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Если токен будет игнорироваться парсером PHP (такие как пробельные последовательности или комментарии), то вернёт true. В противном случае вернёт false.

Примеры

Пример #1 Пример использования PhpToken::isIgnorable()

<?php
$echo = new PhpToken(T_ECHO, 'echo');
var_dump($echo->isIgnorable()); // -> bool(false)

$space = new PhpToken(T_WHITESPACE, ' ');
var_dump($space->isIgnorable()); // -> bool(true)

Смотрите также

  • PhpToken::tokenize() - Разбирает заданную строку, содержащую программу на PHP, на массив объектов PhpToken


Возвращает текстовое содержимое токена

  • « PhpToken::isIgnorable
  • PhpToken::tokenize »
  • PHP Manual
  • PhpToken
  • Возвращает текстовое содержимое токена

PhpToken::__toString

(PHP 8)

PhpToken::__toString — Возвращает текстовое содержимое токена

Описание

public PhpToken::__toString(): string

Возвращает текстовое содержимое токена.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текстовое содержимое токена.

Примеры

Пример #1 Пример использования PhpToken::__toString()

<?php
$token = new PhpToken(T_ECHO, 'echo');
echo $token;

Результат выполнения данных примеров:

echo

Смотрите также

  • token_name() - Получить символьное имя для переданной PHP-лексемы


Разбирает заданную строку, содержащую программу на PHP, на массив объектов PhpToken

  • « PhpToken::__toString
  • Функции PHP-лексера (tokenizer) »
  • PHP Manual
  • PhpToken
  • Разбирает заданную строку, содержащую программу на PHP, на массив объектов PhpToken

PhpToken::tokenize

(PHP 8)

PhpToken::tokenize — Разбирает заданную строку, содержащую программу на PHP, на массив объектов PhpToken

Описание

public static PhpToken::tokenize(string $code, int $flags = 0): array

Возвращает массив объектов PhpToken, представляющих код code.

Список параметров

code

Исходный код на языке PHP.

flags

Допустимые флаги:

  • TOKEN_PARSE - допускает возможность использовать зарезервированные слова в определённых контекстах.

Возвращаемые значения

Массив токенов PHP в виде объектов класса PhpToken или его потомков. Этот метод возвращает static[], так что PhpToken можно свободно расширять.

Примеры

Пример #1 Пример использования PhpToken::tokenize()

<?php
$tokens = PhpToken::tokenize('<?php echo; ?>');

foreach ($tokens as $token) {
echo "Line {$token->line}: {$token->getTokenName()} ('{$token->text}')", PHP_EOL;
}

Результат выполнения данных примеров:

Line 1: T_OPEN_TAG ('<?php ')
Line 1: T_ECHO ('echo')
Line 1: ; (';')
Line 1: T_WHITESPACE (' ')
Line 1: T_CLOSE_TAG ('?>')

Пример #2 Расширение PhpToken

<?php

class MyPhpToken extends PhpToken {
public function getUpperText() {
return strtoupper($this->text);
}
}

$tokens = MyPhpToken::tokenize('<?php echo; ?>');
echo "'{$tokens[0]->getUpperText()}'";

Результат выполнения данных примеров:

'<?PHP '

Смотрите также

  • token_get_all() - Разбивает переданный исходный код на PHP-лексемы


Функции 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, PHP 8)

token_get_all — Разбивает переданный исходный код на PHP-лексемы

Описание

token_get_all(string $code, int $flags = 0): array

Функция token_get_all() разбирает переданную строку code в языковые лексемы PHP, используя лексический сканер Zend Engine.

Список лексем смотрите в Список меток (tokens) парсера или используйте token_name() для перевода значения лексемы в строковое представление.

Список параметров

code

Исходный код PHP для разбора.

flags

Корректные флаги:

  • TOKEN_PARSE - Распознает возможность использования зарезервированных слов в определённых контекстах.

Возвращаемые значения

Массив идентификаторов лексем. Каждый индивидуальный идентификатор лексемы это или одиночный символ (например, ;, ., >, !, другие...), или трёхэлементный массив, содержащий индекс лексемы в нулевом элементе, строку с оригинальным содержимым лексемы в первом элементе и номером строки во втором элементе.

Примеры

Пример #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.

Смотрите также

  • PhpToken::tokenize() - Разбирает заданную строку, содержащую программу на PHP, на массив объектов PhpToken
  • token_name() - Получить символьное имя для переданной PHP-лексемы


Получить символьное имя для переданной PHP-лексемы

  • « token_get_all
  • URL »
  • PHP Manual
  • Функции PHP-лексера (tokenizer)
  • Получить символьное имя для переданной PHP-лексемы

token_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

token_name — Получить символьное имя для переданной PHP-лексемы

Описание

token_name(int $id): string

Функция token_name() получает символьное имя для значения PHP-лексемы id.

Список параметров

id

Значение лексемы.

Возвращаемые значения

Символьное значение для переданной лексемы id.

Примеры

Пример #1 Пример использования token_name()

<?php
// 260 - значение для лексемы T_EVAL
echo token_name(260); // -> "T_EVAL"

// Константа лексемы сопоставима с его собственным именем
echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

Смотрите также

  • Список лексем
  • PhpToken::getTokenName() - Возвращает имя токена


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_URL_SCHEME (int)
PHP_URL_HOST (int)
Вывод имени из хоста разобранного URL.
PHP_URL_PORT (int)
Вывод порта из разобранного URL.
PHP_URL_USER (int)
Вывод пользователя из разобранного URL.
PHP_URL_PASS (int)
Вывод пароля из разобранного URL.
PHP_URL_PATH (int)
Вывод пути из разобранного URL.
PHP_URL_QUERY (int)
Вывод строки запроса из разобранного URL.
PHP_URL_FRAGMENT (int)
Вывод фрагмента (строка после символа #) из разобранного URL.

Следующие константы предназначены для использования с http_build_query().

PHP_QUERY_RFC1738 (int)
Кодирование выполняется в соответствии с » RFC 1738 и типом данных application/x-www-form-urlencoded. Это означает, что пробелы заменяются символом плюс (+).
PHP_QUERY_RFC3986 (int)
Кодирование производится в соответствии с » 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, PHP 8)

base64_decode — Декодирует данные, закодированные MIME base64

Описание

base64_decode(string $string, bool $strict = false): string|false

Декодирует строку string, закодированную при помощи base64.

Список параметров

string

Закодированные данные.

strict

Если параметр strict задан как true, функция base64_decode() вернёт false в случае, если входные данные содержат символы, не входящие в алфавит base64. В противном случае такие символы будут отброшены.

Возвращаемые значения

Возвращает декодированные данные или false в случае возникновения ошибки. Возвращаемые данные могут быть бинарными.

Примеры

Пример #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, PHP 8)

base64_encode — Кодирует данные в формат MIME base64

Описание

base64_encode(string $string): string

Кодирует string с base64.

Эта кодировка предназначена для корректной передачи бинарных данных по протоколам, не поддерживающим 8-битную передачу, например, для отправки тела письма.

Данные, закодированные base64 занимают на 33% больше места по сравнению с оригинальными данными.

Список параметров

string

Данные для кодирования.

Возвращаемые значения

Кодированные данные в виде строки.

Примеры

Пример #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, PHP 8)

get_headers — Возвращает все заголовки из ответа сервера на HTTP-запрос

Описание

get_headers(string $url, bool $associative = false, ?resource $context = null): array|false

get_headers() возвращает массив с заголовками из ответа сервера на HTTP-запрос.

Список параметров

url

Целевой URL.

associative

Если необязательный параметр associative установлен в ненулевое значение, get_headers() разберёт ответ сервера и установит ключи для возвращаемого массива.

context

Корректный контекст ресурса, созданный с помощью stream_context_create() или null, чтобы использовать контекст ресурса по умолчанию.

Возвращаемые значения

Возвращает индексированный или ассоциативный массив с заголовками ответа или false при возникновении ошибки.

Список изменений

Версия | Описание
8.0.0 | Тип параметра associative был изменён с целого числа (int) на логическое значение (bool).
7.1.0 | Добавлен параметр context.

Примеры

Пример #1 Пример использования get_headers()

<?php
$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, true));
?>

Результатом выполнения данного примера будет что-то подобное:

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-запрос, то это можно сделать, используя контекста потока:
$context = stream_context_create(
[
'http' => array(
'method' => 'HEAD'
)
]
);
$headers = get_headers('http://example.com', false, $context);
?>

Смотрите также

  • apache_request_headers() - Получает список всех заголовков HTTP-запроса


Извлекает содержимое всех метатегов из файла и возвращает массив

  • « get_headers
  • http_build_query »
  • PHP Manual
  • Функции URL
  • Извлекает содержимое всех метатегов из файла и возвращает массив

get_meta_tags

(PHP 4, PHP 5, PHP 7, PHP 8)

get_meta_tags — Извлекает содержимое всех метатегов из файла и возвращает массив

Описание

get_meta_tags(string $filename, bool $use_include_path = false): array|false

Открывает 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> <!-- разбор файла будет остановлен здесь -->

use_include_path

Если use_include_path равен true, PHP будет искать файл используя стандартные пути поиска из директивы php.ini include_path. Это актуально только для локальных файлов, но не для URL.

Возвращаемые значения

Возвращает ассоциативный массив со значениями разобранных метатегов.

Значение атрибута name становится ключом массива, а значение атрибута content - значением этого элемента. Вы можете использовать стандартные функции работы с массивами для обхода или доступа к конкретным значениям. Специальные символы в именах (ключах массива) заменяются на '_', и ключи приводятся к нижнему регистру. Если два метатега имеют одинаковые имена, будет возвращён только последний.

Возвращает false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

http_build_query — Генерирует URL-кодированную строку запроса

Описание

http_build_query(
array|object $data,
string $numeric_prefix = "",
?string $arg_separator = null,
int $encoding_type = PHP_QUERY_RFC1738
): string

Генерирует URL-кодированную строку запроса из предоставленного ассоциативного (или индексированного) массива.

Список параметров

data

Может быть массив или объект, содержащий свойства.

Если data массив, то он может быть простой одномерной структурой или массивом массивов (который, в свою очередь, может содержать другие массивы).

Если data объект, тогда только общедоступные свойства будут включены в результат.

numeric_prefix

Если числовые индексы используются в базовом массиве и этот параметр указан, то он будет добавлен к числовому индексу для элементов только в базовом массиве.

Это позволяет обеспечить допустимые имена переменных, в которые позже данные будут декодированы PHP или другим CGI-приложением.

arg_separator

Разделитель аргументов. Если не задан или null, то для разделения аргументов используется arg_separator.output.

encoding_type

По умолчанию PHP_QUERY_RFC1738.

Если encoding_type равен PHP_QUERY_RFC1738, тогда кодирование осуществляется по » RFC 1738 и типу контента application/x-www-form-urlencoded, что подразумевает, что пробелы кодируются как символы "плюс" (+).

Если enc_type равен PHP_QUERY_RFC3986, тогда кодирование осуществляется в соответствии с » RFC 3986, а пробелы будут закодированы в процентах (%20).

Возвращаемые значения

Возвращает URL-кодированную строку.

Список изменений

Версия | Описание
8.0.0 | Параметр arg_separator теперь допускает значение null.

Примеры

Пример #1 Простой пример использования http_build_query()

<?php
$data = array(
'foo' => 'bar',
'baz' => 'boom',
'cow' => 'milk',
'null' => null,
'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', null, 'boom', 'cow' => 'milk', 'php' => 'hypertext processor');

echo http_build_query($data) . "\n";
echo http_build_query($data, 'myvar_');
?>

Результат выполнения данного примера:

0=foo&1=bar&2=baz&4=boom&cow=milk&php=hypertext+processor
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_4=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, PHP 8)

parse_url — Разбирает URL и возвращает его компоненты

Описание

parse_url(string $url, int $component = -1): int|string|array|null|false

Эта функция разбирает 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, в этом случае возвращаемое значение будет типа int.

Возвращаемые значения

При разборе значительно некорректных URL-адресов parse_url() может вернуть false.

Если параметр component будет опущен, функция возвратит ассоциативный массив (array). В массиве будет находиться по крайней мере один элемент. Возможные ключи в этом массиве:

  • scheme - например, http
  • host
  • port
  • user
  • pass
  • path
  • query - после знака вопроса ?
  • fragment - после знака решётки #

Если параметр component определён, функция parse_url() вернёт строку (string) (или число (int), в случае PHP_URL_PORT) вместо массива (array). Если запрошенный компонент не существует в данном URL, будет возвращён null. Начиная с PHP 8.0.0, parse_url() различает отсутствующие и пустые запросы и фрагменты:

http://example.com/foo > query = null, fragment = null
http://example.com/foo? > query = "",   fragment = null
http://example.com/foo# > query = null, fragment = ""
http://example.com/foo?# > query = "",   fragment = ""

Ранее во всех случаях запрос и фрагмент были null.

Обратите внимание, что управляющие символы (смотрите ctype_cntrl()) в компонентах заменяются подчёркиванием (_).

Список изменений

Версия | Описание
8.0.0 | parse_url() теперь различает отсутствующие и пустые запросы и фрагменты.

Примеры

Пример #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-адресов и результаты могут даже не соответствовать общему поведению HTTP-клиентов. Если необходимо проанализировать URL-адреса из ненадёжных входных данных, потребуется дополнительная проверка, например, с помощью filter_var() с фильтром FILTER_VALIDATE_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, PHP 8)

rawurldecode — Декодирование URL-кодированной строки

Описание

rawurldecode(string $string): string

Возвращает строку, в которой последовательность знаков процента (%) и следующие за ним два шестнадцатеричных числа заменены буквальными символами.

Список параметров

string

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, PHP 8)

rawurlencode — URL-кодирование строки согласно RFC 3986

Описание

rawurlencode(string $string): string

Кодирует строку согласно » RFC 3986.

Список параметров

string

URL, который должен быть закодирован.

Возвращаемые значения

Возвращает строку, в которой все не цифро-буквенные символы, кроме -_.~, должны быть заменены знаком процента (%), за которым следует два шестнадцатеричных числа. Это кодирование, описанное в » RFC 3986, служит для защиты буквенных символов от интерпретации в качестве специальных разграничителей URL и защищает URL от искажения при передаче символов с последующей конвертацией (как в некоторых почтовых системах).

Примеры

Пример #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, PHP 8)

urldecode — Декодирование URL-кодированной строки

Описание

urldecode(string $string): string

Декодирует любые кодированные последовательности %## в данной строке. Символ "плюс" ('+') декодируется в символ пробела.

Список параметров

string

Строка, которая должна быть декодирована.

Возвращаемые значения

Возвращает декодированную строку.

Примеры

Пример #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, PHP 8)

urlencode — URL-кодирование строки

Описание

urlencode(string $string): string

Эта функция удобна, когда закодированная строка будет использоваться в запросе, как часть URL, в качестве удобного способа передачи переменных на следующую страницу.

Список параметров

string

Строка, которая должна быть закодирована.

Возвращаемые значения

Возвращает строку, в которой все не цифро-буквенные символы, кроме -_. должны быть заменены знаком процента (%), за которым следует два шестнадцатеричных числа, а пробелы закодированы как знак сложения (+). Строка кодируется тем же способом, что и POST-данные веб-формы, то есть по типу контента application/x-www-form-urlencoded. Это отличается от кодирования по » RFC 3986 (смотрите rawurlencode() ) в том, что по историческим причинам, пробелы кодируются как знак "плюс" (+).

Примеры

Пример #1 Пример использования urlencode()

<?php
$userinput = 'Data123!@-_ +';
echo "Пользовательские данные: $userinput\n";
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>

Результат выполнения данного примера:

Пользовательские данные: Data123!@-_ +
<a href="mycgi?foo=Data123%21%40-_+%2B">

Пример #2 Пример использования urlencode() и htmlentities()

<?php
$foo = 'Data123!@-_ +';
$bar = "Содержимое, отличное от $foo";
echo "foo: $foo\n";
echo "bar: $bar\n";
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>

Результат выполнения данного примера:

foo: Data123!@-_ +
bar: Содержимое, отличное от Data123!@-_ +
<a href="mycgi?foo=Data123%21%40-_+%2B&amp;bar=Not+the+same+content+as+Data123%21%40-_+%2B">

Примечания

Замечание:

Будьте внимательны с переменными, которые могут совпадать с элементами 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, библиотеки и заголовочные файлы 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 int

Устанавливает предел размещённого контекста, после которого V8 принудительно запустит сборщик мусора.

v8js.flags string

Устанавливает флаги командной строки V8. Список доступных флагов можно посмотреть в режиме CLI, задав параметр --help. Пример:

$ php -r 'ini_set("v8js.flags", "--help"); new V8Js;' | less

Замечание:

Для эффективного управления флагами во время исполнения используйте ini_set() перед тем, как создавать объекты V8Js!


  • « Настройка во время выполнения
  • Примеры »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данный модуль не определяет каких-либо типов ресурсов.


Примеры

Основы использования

Пример #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().

Обзор классов

class V8Js {
/* Константы */
const string V8_VERSION;
const int FLAG_NONE = 1;
const int 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(): array
public getPendingException(): 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().


Выполнить строку как код 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(): 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(): 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)

Введение

Обзор классов

class V8JsException extends Exception {
/* Свойства */
protected $JsFileName;
protected $JsLineNumber;
protected $JsSourceLine;
protected $JsTrace;
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
final public getJsFileName(): string
final public getJsLineNumber(): int
final public getJsSourceLine(): string
final public getJsTrace(): string
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): 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(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить номер строки

  • « V8JsException::getJsFileName
  • V8JsException::getJsSourceLine »
  • PHP Manual
  • V8JsException
  • Получить номер строки

V8JsException::getJsLineNumber

(PECL v8js >= 0.1.0)

V8JsException::getJsLineNumber — Получить номер строки

Описание

final public V8JsException::getJsLineNumber(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить исходную строку JavaScript

  • « V8JsException::getJsLineNumber
  • V8JsException::getJsTrace »
  • PHP Manual
  • V8JsException
  • Получить исходную строку JavaScript

V8JsException::getJsSourceLine

(PECL v8js >= 0.1.0)

V8JsException::getJsSourceLine — Получить исходную строку JavaScript

Описание

final public V8JsException::getJsSourceLine(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить стек вызовов

  • « V8JsException::getJsSourceLine
  • Yaml »
  • PHP Manual
  • V8JsException
  • Получить стек вызовов

V8JsException::getJsTrace

(PECL v8js >= 0.1.0)

V8JsException::getJsTrace — Получить стек вызовов

Описание

final public V8JsException::getJsTrace(): 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 bool

По умолчанию Off. Если установить как On, то будут декодироваться бинарные записи кодированные в base64 и имеющие тег "tag:yaml.org,2002:binary".

yaml.decode_php bool

По умолчанию Off. Если задать как On, то сериализованные объекты PHP с явно заданным тегом "!php/object" будут десериализованы.

yaml.decode_timestamp int

Контролирует декодирование явных и неявных скаляров "tag:yaml.org,2002:timestamp" в потоке документов YAML. Значение по умолчанию равно 0, что означает отсутствие декодирования. Если задать 1, то для разбора временной метки Unix будет использоваться strtotime(). Если задать 2, то для разбора временной метки будет использоваться date_create(), создающая объект DateTime.

yaml.output_canonical boolean

По умолчанию Off. Если задать как On, то будет использоваться каноничный вывод форм.

yaml.output_indent int

Количество пробелов для разделения секций. Должно быть в диапазоне от 1 до 10.

yaml.output_width int

Задаёт предпочтительную ширину строки. -1 для неограниченной длины.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

Скалярные стили сущностей, которые можно использовать в callback-методах yaml_parse().
YAML_ANY_SCALAR_STYLE (int)
YAML_PLAIN_SCALAR_STYLE (int)
YAML_SINGLE_QUOTED_SCALAR_STYLE (int)
YAML_DOUBLE_QUOTED_SCALAR_STYLE (int)
YAML_LITERAL_SCALAR_STYLE (int)
YAML_FOLDED_SCALAR_STYLE (int)
Стандартные теги, которые можно использовать в 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 (int)
Позволить источнику выбрать кодировку.
YAML_UTF8_ENCODING (int)
UTF8
YAML_UTF16LE_ENCODING (int)
UTF16LE
YAML_UTF16BE_ENCODING (int)
UTF16BE
Типы конца строк для yaml_emit()
YAML_ANY_BREAK (int)
Позволить источнику выбрать символ конца строки.
YAML_CR_BREAK (int)
Использовать \r (стиль Mac).
YAML_LN_BREAK (int)
Использовать \n (стиль Unix).
YAML_CRLN_BREAK (int)
Использовать \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-функций (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 в случае успешного выполнения.

Список изменений

Версия | Описание
PECL yaml 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) в случае успешного выполнения.

Список изменений

Версия | Описание
PECL yaml 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::__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_Bootstrap_Abstract — Класс Yaf_Bootstrap_Abstract
  • Yaf_Dispatcher — Класс Yaf_Dispatcher
    • Yaf_Dispatcher::autoRender — Включает/выключает авторендеринг
    • Yaf_Dispatcher::catchException — Включает/выключает перехват исключений
    • Yaf_Dispatcher::__construct — Конструктор класса Yaf_Dispatcher
    • Yaf_Dispatcher::disableView — Отключает механизм просмотра
    • Yaf_Dispatcher::dispatch — Отправляет запрос
    • Yaf_Dispatcher::enableView — Включает механизм просмотра
    • Yaf_Dispatcher::flushInstantly — Включает/выключает мгновенную очистку
    • Yaf_Dispatcher::getApplication — Получает приложение
    • Yaf_Dispatcher::getDefaultAction — Получает имя действия по умолчанию
    • Yaf_Dispatcher::getDefaultController — Получает имя контроллера по умолчанию
    • Yaf_Dispatcher::getDefaultModule — Получает имя модуля по умолчанию
    • Yaf_Dispatcher::getInstance — Получает экземпляр диспетчера
    • Yaf_Dispatcher::getRequest — Получает экземпляр запроса
    • Yaf_Dispatcher::getRouter — Получает экземпляр маршрутизатора
    • Yaf_Dispatcher::initView — Инициализирует представление и возвращает его
    • Yaf_Dispatcher::registerPlugin — Регистрирует плагин
    • Yaf_Dispatcher::returnResponse — Назначение returnResponse
    • Yaf_Dispatcher::setDefaultAction — Изменяет имя действия по умолчанию
    • Yaf_Dispatcher::setDefaultController — Изменяет имя контроллера по умолчанию
    • Yaf_Dispatcher::setDefaultModule — Изменяет имя модуля по умолчанию
    • Yaf_Dispatcher::setErrorHandler — Устанавливает обработчик ошибок
    • Yaf_Dispatcher::setRequest — Назначение setRequest
    • Yaf_Dispatcher::setView — Устанавливает пользовательский механизм отображения
    • Yaf_Dispatcher::throwException — Включает/выключает выбрасывание исключений
  • Yaf_Config_Abstract — Класс Yaf_Config_Abstract
    • Yaf_Config_Abstract::get — Геттер
    • Yaf_Config_Abstract::readonly — Находит конфигурацию только для чтения
    • Yaf_Config_Abstract::set — Сеттер
    • Yaf_Config_Abstract::toArray — Приведение к массиву
  • Yaf_Config_Ini — Класс Yaf_Config_Ini
    • Yaf_Config_Ini::__construct — Конструктор класса Yaf_Config_Ini
    • Yaf_Config_Ini::count — Подсчитывает все элементы в Yaf_Config.ini
    • Yaf_Config_Ini::current — Получает текущее значение
    • Yaf_Config_Ini::__get — Получает элемент
    • Yaf_Config_Ini::__isset — Определяет, существует ли ключ
    • Yaf_Config_Ini::key — Получает ключ текущего элемента
    • Yaf_Config_Ini::next — Продвигает внутренний указатель
    • Yaf_Config_Ini::offsetExists — Назначение offsetExists
    • Yaf_Config_Ini::offsetGet — Назначение offsetGet
    • Yaf_Config_Ini::offsetSet — Назначение offsetSet
    • Yaf_Config_Ini::offsetUnset — Назначение offsetUnset
    • Yaf_Config_Ini::readonly — Назначение readonly
    • Yaf_Config_Ini::rewind — Назначение rewind
    • Yaf_Config_Ini::__set — Назначение __set
    • Yaf_Config_Ini::toArray — Возвращает конфигурацию как массив PHP
    • Yaf_Config_Ini::valid — Назначение valid
  • Yaf_Config_Simple — Класс Yaf_Config_Simple
    • Yaf_Config_Simple::__construct — Назначение __construct
    • Yaf_Config_Simple::count — Назначение count
    • Yaf_Config_Simple::current — Назначение current
    • Yaf_Config_Simple::__get — Назначение __get
    • Yaf_Config_Simple::__isset — Назначение __isset
    • Yaf_Config_Simple::key — Назначение key
    • Yaf_Config_Simple::next — Назначение next
    • Yaf_Config_Simple::offsetExists — Назначение offsetExists
    • Yaf_Config_Simple::offsetGet — Назначение offsetGet
    • Yaf_Config_Simple::offsetSet — Назначение offsetSet
    • Yaf_Config_Simple::offsetUnset — Назначение offsetUnset
    • Yaf_Config_Simple::readonly — Назначение readonly
    • Yaf_Config_Simple::rewind — Назначение rewind
    • Yaf_Config_Simple::__set — Назначение __set
    • Yaf_Config_Simple::toArray — Возвращает массив PHP
    • Yaf_Config_Simple::valid — Назначение valid
  • Yaf_Controller_Abstract — Класс Yaf_Controller_Abstract
    • Yaf_Controller_Abstract::__construct — Конструктор класса Yaf_Controller_Abstract
    • Yaf_Controller_Abstract::display — Назначение display
    • Yaf_Controller_Abstract::forward — Переходит к другому действию
    • Yaf_Controller_Abstract::getInvokeArg — Назначение getInvokeArg
    • Yaf_Controller_Abstract::getInvokeArgs — Назначение getInvokeArgs
    • Yaf_Controller_Abstract::getModuleName — Получает имя модуля
    • Yaf_Controller_Abstract::getName — Получает своё имя
    • Yaf_Controller_Abstract::getRequest — Получает текущий объект запроса
    • Yaf_Controller_Abstract::getResponse — Получает текущий объект ответа
    • Yaf_Controller_Abstract::getView — Получает движок отображения
    • Yaf_Controller_Abstract::getViewpath — Назначение getViewpath
    • Yaf_Controller_Abstract::init — Инициализатор контроллера
    • Yaf_Controller_Abstract::initView — Назначение initView
    • Yaf_Controller_Abstract::redirect — Перенаправляет на URL
    • Yaf_Controller_Abstract::render — Отображает шаблон представления
    • Yaf_Controller_Abstract::setViewpath — Назначение setViewpath
  • Yaf_Action_Abstract — Класс Yaf_Action_Abstract
    • Yaf_Action_Abstract::execute — Точка входа для Action-классов
    • Yaf_Action_Abstract::getController — Получить объект контроллер
    • Yaf_Action_Abstract::getControllerName — Получает имя контроллера
  • Yaf_View_Interface — Класс Yaf_View_Interface
    • Yaf_View_Interface::assign — Назначает значение для движка отображения
    • Yaf_View_Interface::display — Отрисовывает и выводит шаблон
    • Yaf_View_Interface::getScriptPath — Назначение getScriptPath
    • Yaf_View_Interface::render — Отрисовывает шаблон
    • Yaf_View_Interface::setScriptPath — Назначение setScriptPath
  • Yaf_View_Simple — Класс Yaf_View_Simple
    • Yaf_View_Simple::assign — Назначить значения
    • Yaf_View_Simple::assignRef — Назначение assignRef
    • Yaf_View_Simple::clear — Сбрасывает назначенные значения
    • Yaf_View_Simple::__construct — Конструктор класса Yaf_View_Simple
    • Yaf_View_Simple::display — Отрисовывает и отображает
    • Yaf_View_Simple::eval — Отрисовывает шаблон
    • Yaf_View_Simple::__get — Получает назначенную переменную
    • Yaf_View_Simple::getScriptPath — Получает каталог шаблонов
    • Yaf_View_Simple::__isset — Назначение __isset
    • Yaf_View_Simple::render — Отрисовывает шаблон
    • Yaf_View_Simple::__set — Устанавливает значение для движка
    • Yaf_View_Simple::setScriptPath — Устанавливает каталог шаблонов
  • Yaf_Loader — Класс Yaf_Loader
    • Yaf_Loader::autoload — Назначение autoload
    • Yaf_Loader::clearLocalNamespace — Назначение clearLocalNamespace
    • Yaf_Loader::__construct — Назначение __construct
    • Yaf_Loader::getInstance — Назначение getInstance
    • Yaf_Loader::getLibraryPath — Получает путь к библиотеке
    • Yaf_Loader::getLocalNamespace — Назначение getLocalNamespace
    • Yaf_Loader::getNamespacePath — Получает путь зарегистрированного пространства имён
    • Yaf_Loader::getLocalNamespace — Получает всю информацию о зарегистрированных пространствах имён
    • Yaf_Loader::import — Назначение import
    • Yaf_Loader::isLocalName — Назначение isLocalName
    • Yaf_Loader::registerLocalNamespace — Регистрирует префикс локального класса
    • Yaf_Loader::registerNamespace — Регистрирует пространство имён с путём поиска
    • Yaf_Loader::setLibraryPath — Изменяет путь к библиотеке
  • Yaf_Plugin_Abstract — Класс Yaf_Plugin_Abstract
    • Yaf_Plugin_Abstract::dispatchLoopShutdown — Назначение dispatchLoopShutdown
    • Yaf_Plugin_Abstract::dispatchLoopStartup — Хук перед отправкой цикла
    • Yaf_Plugin_Abstract::postDispatch — Назначение postDispatch
    • Yaf_Plugin_Abstract::preDispatch — Назначение preDispatch
    • Yaf_Plugin_Abstract::preResponse — Назначение preResponse
    • Yaf_Plugin_Abstract::routerShutdown — Назначение routerShutdown
    • Yaf_Plugin_Abstract::routerStartup — Перехватчик RouterStartup
  • Yaf_Registry — Класс Yaf_Registry
    • Yaf_Registry::__construct — Yaf_Registry реализует шаблон проектирования "Одиночка"
    • Yaf_Registry::del — Удаляет элемент из реестра
    • Yaf_Registry::get — Получает элемент из реестра
    • Yaf_Registry::has — Проверяет, существует ли элемент
    • Yaf_Registry::set — Добавляет элемент в реестр
  • Yaf_Request_Abstract — Класс Yaf_Request_Abstract
    • Yaf_Request_Abstract::clearParams — Удаляет все параметры
    • Yaf_Request_Abstract::getActionName — Назначение getActionName
    • Yaf_Request_Abstract::getBaseUri — Назначение getBaseUri
    • Yaf_Request_Abstract::getControllerName — Назначение getControllerName
    • Yaf_Request_Abstract::getEnv — Получает переменную ENV
    • Yaf_Request_Abstract::getException — Назначение getException
    • Yaf_Request_Abstract::getLanguage — Получает предпочтительный язык клиента
    • Yaf_Request_Abstract::getMethod — Получает метод запроса
    • Yaf_Request_Abstract::getModuleName — Назначение getModuleName
    • Yaf_Request_Abstract::getParam — Получает параметр вызова
    • Yaf_Request_Abstract::getParams — Получает все параметры вызова
    • Yaf_Request_Abstract::getRequestUri — Назначение getRequestUri
    • Yaf_Request_Abstract::getServer — Получает переменную SERVER
    • Yaf_Request_Abstract::isCli — Определяет, является ли запрос CLI-запросом
    • Yaf_Request_Abstract::isDispatched — Определяет, отправлен ли запрос
    • Yaf_Request_Abstract::isGet — Определяет, является ли запрос GET-запросом
    • Yaf_Request_Abstract::isHead — Определяет, является ли запрос HEAD-запросом
    • Yaf_Request_Abstract::isOptions — Определяет, является ли запрос OPTIONS-запросом
    • Yaf_Request_Abstract::isPost — Определяет, является ли запрос POST-запросом
    • Yaf_Request_Abstract::isPut — Определяет, является ли запрос PUT-запросом
    • Yaf_Request_Abstract::isRouted — Определяет, был ли запрос направлен
    • Yaf_Request_Abstract::isXmlHttpRequest — Определяет, является ли запрос AJAX-запросом
    • Yaf_Request_Abstract::setActionName — Устанавливает имя действия
    • Yaf_Request_Abstract::setBaseUri — Устанавливает базовый URI
    • Yaf_Request_Abstract::setControllerName — Устанавливает имя контроллера
    • Yaf_Request_Abstract::setDispatched — Назначение setDispatched
    • Yaf_Request_Abstract::setModuleName — Устанавливает имя модуля
    • Yaf_Request_Abstract::setParam — Устанавливает параметр вызова для запроса
    • Yaf_Request_Abstract::setRequestUri — Назначение setRequestUri
    • Yaf_Request_Abstract::setRouted — Назначение setRouted
  • Yaf_Request_Http — Класс Yaf_Request_Http
    • Yaf_Request_Http::__construct — Конструктор класса Yaf_Request_Http
    • Yaf_Request_Http::get — Получает переменную от клиента
    • Yaf_Request_Http::getCookie — Получает переменную Cookie
    • Yaf_Request_Http::getFiles — Назначение getFiles
    • Yaf_Request_Http::getPost — Получает переменную POST
    • Yaf_Request_Http::getQuery — Получает параметр запроса
    • Yaf_Request_Http::getRaw — Получает необработанное тело запроса
    • Yaf_Request_Http::getRequest — Назначение getRequest
    • Yaf_Request_Http::isXmlHttpRequest — Определяет, является ли запрос Ajax-запросом
  • Yaf_Request_Simple — Класс Yaf_Request_Simple
    • Yaf_Request_Simple::__construct — Конструктор класса Yaf_Request_Simple
    • Yaf_Request_Simple::get — Назначение get
    • Yaf_Request_Simple::getCookie — Назначение getCookie
    • Yaf_Request_Simple::getFiles — Назначение getFiles
    • Yaf_Request_Simple::getPost — Назначение getPost
    • Yaf_Request_Simple::getQuery — Назначение getQuery
    • Yaf_Request_Simple::getRequest — Назначение getRequest
    • Yaf_Request_Simple::isXmlHttpRequest — Определяет, является ли запрос AJAX-запросом
  • Yaf_Response_Abstract — Класс Yaf_Response_Abstract
    • Yaf_Response_Abstract::appendBody — Добавляет содержимое к телу ответа
    • Yaf_Response_Abstract::clearBody — Сбрасывает все существующее тело ответа
    • Yaf_Response_Abstract::clearHeaders — Сбрасывает все установленные заголовки
    • Yaf_Response_Abstract::__construct — Конструктор класса Yaf_Response_Abstract
    • Yaf_Response_Abstract::__destruct — Деструктор класса Yaf_Response_Abstract
    • Yaf_Response_Abstract::getBody — Получает существующее содержимое
    • Yaf_Response_Abstract::getHeader — Назначение getHeader
    • Yaf_Response_Abstract::prependBody — Назначение prependBody
    • Yaf_Response_Abstract::response — Отправляет ответ
    • Yaf_Response_Abstract::setAllHeaders — Назначение setAllHeaders
    • Yaf_Response_Abstract::setBody — Устанавливает содержимое ответа
    • Yaf_Response_Abstract::setHeader — Устанавливает заголовок ответа
    • Yaf_Response_Abstract::setRedirect — Назначение setRedirect
    • Yaf_Response_Abstract::__toString — Получает все тело в виде строки
  • Yaf_Route_Interface — Класс Yaf_Route_Interface
    • Yaf_Route_Interface::assemble — Собирает запрос
    • Yaf_Route_Interface::route — Направление запроса
  • Yaf_Route_Map — Класс Yaf_Route_Map
    • Yaf_Route_Map::assemble — Собирает URL
    • Yaf_Route_Map::__construct — Назначение __construct
    • Yaf_Route_Map::route — Назначение route
  • 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 — Собирает URL
    • Yaf_Route_Rewrite::__construct — Конструктор класса Yaf_Route_Rewrite
    • Yaf_Route_Rewrite::route — Назначение route
  • Yaf_Router — Класс Yaf_Router
    • Yaf_Router::addConfig — Добавляет настроенные маршруты в маршрутизатор
    • Yaf_Router::addRoute — Добавляет новый маршрут в маршрутизатор
    • Yaf_Router::__construct — Конструктор класса Yaf_Router
    • Yaf_Router::getCurrentRoute — Получает имя действующего маршрута
    • Yaf_Router::getRoute — Получает маршрут по имени
    • Yaf_Router::getRoutes — Получает зарегистрированные маршруты
    • Yaf_Router::route — Назначение route
  • Yaf_Route_Simple — Класс Yaf_Route_Simple
    • Yaf_Route_Simple::assemble — Собирает URL
    • Yaf_Route_Simple::__construct — Конструктор класса Yaf_Route_Simple
    • Yaf_Route_Simple::route — Направляет запрос
  • Yaf_Route_Static — Класс Yaf_Route_Static
    • Yaf_Route_Static::assemble — Собирает URL
    • Yaf_Route_Static::match — Назначение match
    • Yaf_Route_Static::route — Направляет запрос
  • Yaf_Route_Supervar — Класс Yaf_Route_Supervar
    • Yaf_Route_Supervar::assemble — Собирает URL
    • Yaf_Route_Supervar::__construct — Назначение __construct
    • Yaf_Route_Supervar::route — Назначение route
  • Yaf_Session — Класс Yaf_Session
    • Yaf_Session::__construct — Конструктор класса Yaf_Session
    • Yaf_Session::count — Назначение count
    • Yaf_Session::current — Назначение current
    • Yaf_Session::del — Назначение del
    • Yaf_Session::__get — Назначение __get
    • Yaf_Session::getInstance — Назначение getInstance
    • Yaf_Session::has — Назначение has
    • Yaf_Session::__isset — Назначение __isset
    • Yaf_Session::key — Назначение key
    • Yaf_Session::next — Назначение next
    • Yaf_Session::offsetExists — Назначение offsetExists
    • Yaf_Session::offsetGet — Назначение offsetGet
    • Yaf_Session::offsetSet — Назначение offsetSet
    • Yaf_Session::offsetUnset — Назначение offsetUnset
    • Yaf_Session::rewind — Назначение rewind
    • Yaf_Session::__set — Назначение __set
    • Yaf_Session::start — Назначение start
    • Yaf_Session::__unset — Назначение __unset
    • Yaf_Session::valid — Назначение valid
  • 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 можно найти на » 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 int

Если в PATH_INFO только одна часть, её следует рассмотреть в качестве контроллера или действия.

Если задана как On, она будет рассматриваться как имя действия (Action).

yaf.lowcase_path int

Рассматривать ли все пути в нижнем регистре при автозагрузке классов.

yaf.use_spl_autoload int

Если задано как On, то, если Yaf_Loader не может найти класс, он вернёт false, тем самым предоставляя возможность вызова другой функции автозагрузки.

Если задано как Off, то, если Yaf_Loader не найдёт класс, он вернёт true и прервёт дальнейшие действия по автозагрузке.

Замечание:

Yaf регистрирует загрузчик классов при создании экземпляра класса Yaf_Application, так что какие-либо другие автозагрузчики, зарегистрированные до инстанциации этого класса, будут запущены до Yaf_Loader::autoload().

Если задано как Off(по умолчанию), Yaf_Loader::autoload() будет всегда возвращать true.

yaf.forward_limit int

Максимальное количество перенаправлений, по умолчанию 5. Это означает, что стек перенаправлений не может быть глубже 5.

Это сделано для предотвращения рекурсии в Yaf_Controller_Abstract::forward().

yaf.name_suffix int

Если задано как On, Yaf_Loader будет идентифицировать по его суффиксу, для определения, является ли он классом MVC.

Если задано как Off, Yaf_Loader будет смотреть на префикс.

yaf.name_separator string

Если не пусто, Yaf_Loader, при идентификации класса, будет искать суффикс учитывая заданный символ как разделитель.

К примеру, если задать равным "_", Yaf_Loader идентифицирует Index_Controller как класс контроллер, а IndexController как обычный класс.

yaf.cache_config int

Если задано как 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 int

Если задано как 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 (int)
YAF_ERR_ROUTE_FAILED (int)
YAF_ERR_DISPATCH_FAILED (int)
YAF_ERR_AUTOLOAD_FAILED (int)
YAF_ERR_NOTFOUND_MODULE (int)
YAF_ERR_NOTFOUND_CONTROLLER (int)
YAF_ERR_NOTFOUND_ACTION (int)
YAF_ERR_NOTFOUND_VIEW (int)
YAF_ERR_CALL_FAILED (int)
YAF_ERR_TYPE_ERROR (int)


Примеры

Пример #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 class Yaf_Application {
/* Свойства */
protected $config;
protected $dispatcher;
protected static $_app;
protected $_modules;
protected $_running;
protected $_environ;
/* Методы */
public __construct(mixed $config, string $envrion = ?)
public staticapp(): mixed
public bootstrap(Yaf_Bootstrap_Abstract $bootstrap = ?): void
public clearLastError(): Yaf_Application
public environ(): void
public execute(callable $entry, string ...$args): void
public getAppDirectory(): Yaf_Application
public getConfig(): Yaf_Config_Abstract
public getDispatcher(): Yaf_Dispatcher
public getLastErrorMsg(): string
public getLastErrorNo(): int
public getModules(): array
public run(): void
public setAppDirectory(string $directory): Yaf_Application
public __destruct()
}

Свойства

config

dispatcher

_app

_modules

_running

_environ

Содержание

  • Yaf_Application::app — Извлечь экземпляр приложения
  • Yaf_Application::bootstrap — Вызвать bootstrap
  • Yaf_Application::clearLastError — Очистка информации по последней ошибке
  • 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
  • Yaf_Application::bootstrap »
  • PHP Manual
  • Yaf_Application
  • Извлечь экземпляр приложения

Yaf_Application::app

(Yaf >=1.0.0)

Yaf_Application::app — Извлечь экземпляр приложения

Описание

public staticYaf_Application::app(): mixed

Извлекает экземпляр класса Yaf_Application. Также для этого вы можете использовать Yaf_Dispatcher::getApplication().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр класса Yaf_Application, если ни одного Yaf_Application ещё не инициализировано, будет возвращён null.

Смотрите также

  • Yaf_Dispatcher::getApplication() - Получает приложение


Вызвать 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__);

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap();
?>

Результатом выполнения данного примера будет что-то подобное:

первый метод вызван
второй метод вызван

Смотрите также

  • Yaf_Bootstrap_Abstract


Очистка информации по последней ошибке

  • « Yaf_Application::bootstrap
  • Yaf_Application::__construct »
  • PHP Manual
  • Yaf_Application
  • Очистка информации по последней ошибке

Yaf_Application::clearLastError

(Yaf >=2.1.2)

Yaf_Application::clearLastError — Очистка информации по последней ошибке

Описание

public Yaf_Application::clearLastError(): 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::__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.defaultModule=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__));

$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()

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить значение окружения

  • « 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

Получить значение окружения из 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 ...$args): void

Этот метод обычно используется для запуска Yaf_Application через планировщик (crontab). Задача в crontab также может использовать механизмы autoloader и Bootstrap.

Список параметров

entry

Callback-функция

args

Параметры, которые надо передать в эту функцию

Возвращаемые значения

Примеры

Пример #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(): 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(): 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(): 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(): 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(): 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(): 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

Запускает Yaf_Application, позволяя Yaf_Application принимать запросы и маршрутизировать их, направлять в контроллер/действие(Action) и отрисовывать. И, в конце концов, отправлять ответ клиенту.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Изменить директорию приложения

  • « Yaf_Application::run
  • Yaf_Bootstrap_Abstract »
  • PHP Manual
  • Yaf_Application
  • Изменить директорию приложения

Yaf_Application::setAppDirectory

(Yaf >=2.1.4)

Yaf_Application::setAppDirectory — Изменить директорию приложения

Описание

public Yaf_Application::setAppDirectory(string $directory): Yaf_Application

Список параметров

directory

Возвращаемые значения


Класс 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 class Yaf_Bootstrap_Abstract {
/* Свойства */
/* Методы */
}


Класс Yaf_Dispatcher

(Yaf >=1.0.0)

Введение

Yaf_Dispatcher предназначен для инициализации окружения запроса, маршрутизации входящего запроса, и последующей отправки любых обнаруженных задач; агрегирует все ответы и возвращает их по завершению процесса.

Yaf_Dispatcher реализует шаблон проектирования Singleton, это значит что только один экземпляр класса может быть доступен в любое время. Это позволяет ему также выступать в качестве реестра в который другие объекты в процессе диспетчеризации могут подтягиваться.

Обзор классов

final class 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 __construct()
public autoRender(bool $flag = ?): Yaf_Dispatcher
public catchException(bool $flag = ?): Yaf_Dispatcher
public disableView(): bool
public dispatch(Yaf_Request_Abstract $request): Yaf_Response_Abstract
public enableView(): Yaf_Dispatcher
public flushInstantly(bool $flag = ?): Yaf_Dispatcher
public getApplication(): Yaf_Application
public getDefaultAction(): string
public getDefaultController(): string
public getDefaultModule(): string
public static getInstance(): Yaf_Dispatcher
public getRequest(): Yaf_Request_Abstract
public getRouter(): 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
public throwException(bool $flag = ?): Yaf_Dispatcher
}

Свойства

_router

_view

_request

_plugins

_instance

_auto_render

_return_response

_instantly_flush

_default_module

_default_controller

_default_action

Содержание

  • Yaf_Dispatcher::autoRender — Включает/выключает авторендеринг
  • Yaf_Dispatcher::catchException — Включает/выключает перехват исключений
  • Yaf_Dispatcher::__construct — Конструктор класса Yaf_Dispatcher
  • Yaf_Dispatcher::disableView — Отключает механизм просмотра
  • Yaf_Dispatcher::dispatch — Отправляет запрос
  • Yaf_Dispatcher::enableView — Включает механизм просмотра
  • Yaf_Dispatcher::flushInstantly — Включает/выключает мгновенную очистку
  • Yaf_Dispatcher::getApplication — Получает приложение
  • Yaf_Dispatcher::getDefaultAction — Получает имя действия по умолчанию
  • Yaf_Dispatcher::getDefaultController — Получает имя контроллера по умолчанию
  • Yaf_Dispatcher::getDefaultModule — Получает имя модуля по умолчанию
  • Yaf_Dispatcher::getInstance — Получает экземпляр диспетчера
  • Yaf_Dispatcher::getRequest — Получает экземпляр запроса
  • Yaf_Dispatcher::getRouter — Получает экземпляр маршрутизатора
  • Yaf_Dispatcher::initView — Инициализирует представление и возвращает его
  • Yaf_Dispatcher::registerPlugin — Регистрирует плагин
  • Yaf_Dispatcher::returnResponse — Назначение returnResponse
  • Yaf_Dispatcher::setDefaultAction — Изменяет имя действия по умолчанию
  • Yaf_Dispatcher::setDefaultController — Изменяет имя контроллера по умолчанию
  • Yaf_Dispatcher::setDefaultModule — Изменяет имя модуля по умолчанию
  • Yaf_Dispatcher::setErrorHandler — Устанавливает обработчик ошибок
  • Yaf_Dispatcher::setRequest — Назначение setRequest
  • Yaf_Dispatcher::setView — Устанавливает пользовательский механизм отображения
  • Yaf_Dispatcher::throwException — Включает/выключает выбрасывание исключений


Включает/выключает авторендеринг

  • « Yaf_Dispatcher
  • Yaf_Dispatcher::catchException »
  • PHP Manual
  • Yaf_Dispatcher
  • Включает/выключает авторендеринг

Yaf_Dispatcher::autoRender

(Yaf >=1.0.0)

Yaf_Dispatcher::autoRender — Включает/выключает авторендеринг

Описание

public Yaf_Dispatcher::autoRender(bool $flag = ?): Yaf_Dispatcher

Yaf_Dispatcher будет отображаться автоматически после отправки входящего запроса. Вы можете предотвратить рендеринг, вызвав этот метод с помощью flag true

Замечание:

Вы можете просто вернуть false в действии, чтобы предотвратить автоматический рендеринг этого действия

Список параметров

flag

bool

Замечание:

начиная с 2.2.0, если этот параметр не задан, будет возвращено текущее состояние

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Dispatcher::autoRender()

<?php
class IndexController extends Yaf_Controller_Abstract {
/* Метод init будет вызван, как только будет инициализирован контроллер */
public function init() {
if ($this->getRequest()->isXmlHttpRequest()) {
//не вызывать render для ajax-запроса
//мы выведем строку JSON
Yaf_Dispatcher::getInstance()->autoRender(FALSE);
}
}

}
?>

Результатом выполнения данного примера будет что-то подобное:


Включает/выключает перехват исключений

  • « Yaf_Dispatcher::autoRender
  • Yaf_Dispatcher::__construct »
  • PHP Manual
  • Yaf_Dispatcher
  • Включает/выключает перехват исключений

Yaf_Dispatcher::catchException

(Yaf >=1.0.0)

Yaf_Dispatcher::catchException — Включает/выключает перехват исключений

Описание

public Yaf_Dispatcher::catchException(bool $flag = ?): Yaf_Dispatcher

Пока application.dispatcher.throwException включено (вы также можете вызвать Yaf_Dispatcher::throwException(TRUE)(), чтобы включить), Yaf будет выбрасывать исключение в случае возникновения ошибки вместо ошибки срабатывания.

тогда, если вы включите Yaf_Dispatcher::catchException() (также можно включить, установив application.dispatcher.catchException), все неперехваченные исключения будут пойманы ErrorController::error, если вы его определили.

Список параметров

flag

Логическое значение

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Dispatcher::catchException()

/* если вы определили ErrorController следующим образом */
<?php
class ErrorController extends Yaf_Controller_Abstract {
/**
* вы также можете вызвать Yaf_Request_Abstract::getException, чтобы получить
* неперехваченное исключение.
*/
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() - Включает/выключает выбрасывание исключений
  • Yaf_Dispatcher::setErrorHandler() - Устанавливает обработчик ошибок


Конструктор класса Yaf_Dispatcher

  • « Yaf_Dispatcher::catchException
  • Yaf_Dispatcher::disableView »
  • PHP Manual
  • Yaf_Dispatcher
  • Конструктор класса Yaf_Dispatcher

Yaf_Dispatcher::__construct

(Yaf >=1.0.0)

Yaf_Dispatcher::__construct — Конструктор класса Yaf_Dispatcher

Описание

public Yaf_Dispatcher::__construct()

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Отключает механизм просмотра

  • « Yaf_Dispatcher::__construct
  • Yaf_Dispatcher::dispatch »
  • PHP Manual
  • Yaf_Dispatcher
  • Отключает механизм просмотра

Yaf_Dispatcher::disableView

(Yaf >=1.0.0)

Yaf_Dispatcher::disableView — Отключает механизм просмотра

Описание

public Yaf_Dispatcher::disableView(): bool

Отключает механизм просмотра, используемый в некоторых приложениях, которые пользователь выводит самостоятельно

Замечание:

Вы можете просто вернуть false в действии, чтобы предотвратить автоматический рендеринг этого действия

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Отправляет запрос

  • « Yaf_Dispatcher::disableView
  • Yaf_Dispatcher::enableView »
  • PHP Manual
  • Yaf_Dispatcher
  • Отправляет запрос

Yaf_Dispatcher::dispatch

(Yaf >=1.0.0)

Yaf_Dispatcher::dispatch — Отправляет запрос

Описание

public Yaf_Dispatcher::dispatch(Yaf_Request_Abstract $request): Yaf_Response_Abstract

Метод выполняет тяжёлую работу Yaf_Dispatcher. Требуется объект запроса.

Процесс отправки имеет три различных события:

  • Маршрутизация
  • Диспетчеризация
  • Ответ
Маршрутизация выполняется ровно один раз с использованием значений в объекте запроса при вызове Yaf_Dispatcher::dispatch(). Диспетчеризация происходит в цикле; запрос может либо указывать на несколько действий для отправки, либо контроллер или подключаемый модуль может сбросить объект запроса, чтобы принудительно выполнить отправку дополнительных действий (смотрите Yaf_Plugin_Abstract. Когда всё будет готово, Yaf_Dispatcher возвращает ответ.

Список параметров

request

Возвращаемые значения


Включает механизм просмотра

  • « Yaf_Dispatcher::dispatch
  • Yaf_Dispatcher::flushInstantly »
  • PHP Manual
  • Yaf_Dispatcher
  • Включает механизм просмотра

Yaf_Dispatcher::enableView

(Yaf >=1.0.0)

Yaf_Dispatcher::enableView — Включает механизм просмотра

Описание

public Yaf_Dispatcher::enableView(): Yaf_Dispatcher

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Включает/выключает мгновенную очистку

  • « Yaf_Dispatcher::enableView
  • Yaf_Dispatcher::getApplication »
  • PHP Manual
  • Yaf_Dispatcher
  • Включает/выключает мгновенную очистку

Yaf_Dispatcher::flushInstantly

(Yaf >=1.0.0)

Yaf_Dispatcher::flushInstantly — Включает/выключает мгновенную очистку

Описание

public Yaf_Dispatcher::flushInstantly(bool $flag = ?): Yaf_Dispatcher

Список параметров

flag

bool

Замечание:

начиная с 2.2.0, если этот параметр не задан, будет возвращено текущее состояние

Возвращаемые значения


Получает приложение

  • « Yaf_Dispatcher::flushInstantly
  • Yaf_Dispatcher::getDefaultAction »
  • PHP Manual
  • Yaf_Dispatcher
  • Получает приложение

Yaf_Dispatcher::getApplication

(Yaf >=1.0.0)

Yaf_Dispatcher::getApplication — Получает приложение

Описание

public Yaf_Dispatcher::getApplication(): Yaf_Application

Получает экземпляр Yaf_Application. То же, что и Yaf_Application::app().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Application::app() - Извлечь экземпляр приложения


Получает имя действия по умолчанию

  • « Yaf_Dispatcher::getApplication
  • Yaf_Dispatcher::getDefaultController »
  • PHP Manual
  • Yaf_Dispatcher
  • Получает имя действия по умолчанию

Yaf_Dispatcher::getDefaultAction

(Yaf >=3.2.0)

Yaf_Dispatcher::getDefaultAction — Получает имя действия по умолчанию

Описание

public Yaf_Dispatcher::getDefaultAction(): string

Получает имя действия по умолчанию

Список параметров

У этой функции нет параметров.

Возвращаемые значения

string, имя действия, по умолчанию - "index"


Получает имя контроллера по умолчанию

  • « Yaf_Dispatcher::getDefaultAction
  • Yaf_Dispatcher::getDefaultModule »
  • PHP Manual
  • Yaf_Dispatcher
  • Получает имя контроллера по умолчанию

Yaf_Dispatcher::getDefaultController

(Yaf >=3.2.0)

Yaf_Dispatcher::getDefaultController — Получает имя контроллера по умолчанию

Описание

public Yaf_Dispatcher::getDefaultController(): string

Получает имя контроллера по умолчанию

Список параметров

У этой функции нет параметров.

Возвращаемые значения

string, имя контроллера, по умолчанию - "Index"


Получает имя модуля по умолчанию

  • « Yaf_Dispatcher::getDefaultController
  • Yaf_Dispatcher::getInstance »
  • PHP Manual
  • Yaf_Dispatcher
  • Получает имя модуля по умолчанию

Yaf_Dispatcher::getDefaultModule

(Yaf >=3.2.0)

Yaf_Dispatcher::getDefaultModule — Получает имя модуля по умолчанию

Описание

public Yaf_Dispatcher::getDefaultModule(): string

Получает имя модуля по умолчанию

Список параметров

У этой функции нет параметров.

Возвращаемые значения

string, имя модуля, по умолчанию - "Index"


Получает экземпляр диспетчера

  • « Yaf_Dispatcher::getDefaultModule
  • Yaf_Dispatcher::getRequest »
  • PHP Manual
  • Yaf_Dispatcher
  • Получает экземпляр диспетчера

Yaf_Dispatcher::getInstance

(Yaf >=1.0.0)

Yaf_Dispatcher::getInstance — Получает экземпляр диспетчера

Описание

public static Yaf_Dispatcher::getInstance(): Yaf_Dispatcher

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает экземпляр запроса

  • « Yaf_Dispatcher::getInstance
  • Yaf_Dispatcher::getRouter »
  • PHP Manual
  • Yaf_Dispatcher
  • Получает экземпляр запроса

Yaf_Dispatcher::getRequest

(Yaf >=1.0.0)

Yaf_Dispatcher::getRequest — Получает экземпляр запроса

Описание

public Yaf_Dispatcher::getRequest(): Yaf_Request_Abstract

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает экземпляр маршрутизатора

  • « Yaf_Dispatcher::getRequest
  • Yaf_Dispatcher::initView »
  • PHP Manual
  • Yaf_Dispatcher
  • Получает экземпляр маршрутизатора

Yaf_Dispatcher::getRouter

(Yaf >=1.0.0)

Yaf_Dispatcher::getRouter — Получает экземпляр маршрутизатора

Описание

public Yaf_Dispatcher::getRouter(): Yaf_Router

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Инициализирует представление и возвращает его

  • « Yaf_Dispatcher::getRouter
  • Yaf_Dispatcher::registerPlugin »
  • PHP Manual
  • Yaf_Dispatcher
  • Инициализирует представление и возвращает его

Yaf_Dispatcher::initView

(Yaf >=1.0.0)

Yaf_Dispatcher::initView — Инициализирует представление и возвращает его

Описание

public Yaf_Dispatcher::initView(string $templates_dir, array $options = ?): Yaf_View_Interface

Список параметров

templates_dir

options

Возвращаемые значения


Регистрирует плагин

  • « Yaf_Dispatcher::initView
  • Yaf_Dispatcher::returnResponse »
  • PHP Manual
  • Yaf_Dispatcher
  • Регистрирует плагин

Yaf_Dispatcher::registerPlugin

(Yaf >=1.0.0)

Yaf_Dispatcher::registerPlugin — Регистрирует плагин

Описание

public Yaf_Dispatcher::registerPlugin(Yaf_Plugin_Abstract $plugin): Yaf_Dispatcher

Регистрирует плагин (смотрите Yaf_Plugin_Abstract). Как правило, мы регистрируем плагины в Bootstrap (смотрите Yaf_Bootstrap_Abstract).

Список параметров

plugin

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Dispatcher::registerPlugin()

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {
public function _initPlugin(Yaf_Dispatcher $dispatcher) {
/**
* Yaf ожидает скрипты плагинов в [application.directory] . "/plugins"
* для этого случая будет:
* [application.directory] . "/plugins/" . "User" . [application.ext]
*/
$user = new UserPlugin();
$dispatcher->registerPlugin($user);
}
}
?>

Смотрите также

  • Yaf_Plugin_Abstract
  • Yaf_Bootstrap_Abstract


Назначение returnResponse

  • « Yaf_Dispatcher::registerPlugin
  • Yaf_Dispatcher::setDefaultAction »
  • PHP Manual
  • Yaf_Dispatcher
  • Назначение returnResponse

Yaf_Dispatcher::returnResponse

(Yaf >=1.0.0)

Yaf_Dispatcher::returnResponse — Назначение returnResponse

Описание

public Yaf_Dispatcher::returnResponse(bool $flag): Yaf_Dispatcher

Список параметров

flag

Возвращаемые значения


Изменяет имя действия по умолчанию

  • « Yaf_Dispatcher::returnResponse
  • Yaf_Dispatcher::setDefaultController »
  • PHP Manual
  • Yaf_Dispatcher
  • Изменяет имя действия по умолчанию

Yaf_Dispatcher::setDefaultAction

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultAction — Изменяет имя действия по умолчанию

Описание

public Yaf_Dispatcher::setDefaultAction(string $action): Yaf_Dispatcher

Список параметров

action

Возвращаемые значения


Изменяет имя контроллера по умолчанию

  • « Yaf_Dispatcher::setDefaultAction
  • Yaf_Dispatcher::setDefaultModule »
  • PHP Manual
  • Yaf_Dispatcher
  • Изменяет имя контроллера по умолчанию

Yaf_Dispatcher::setDefaultController

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultController — Изменяет имя контроллера по умолчанию

Описание

public Yaf_Dispatcher::setDefaultController(string $controller): Yaf_Dispatcher

Список параметров

controller

Возвращаемые значения


Изменяет имя модуля по умолчанию

  • « Yaf_Dispatcher::setDefaultController
  • Yaf_Dispatcher::setErrorHandler »
  • PHP Manual
  • Yaf_Dispatcher
  • Изменяет имя модуля по умолчанию

Yaf_Dispatcher::setDefaultModule

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultModule — Изменяет имя модуля по умолчанию

Описание

public Yaf_Dispatcher::setDefaultModule(string $module): Yaf_Dispatcher

Список параметров

module

Возвращаемые значения


Устанавливает обработчик ошибок

  • « Yaf_Dispatcher::setDefaultModule
  • Yaf_Dispatcher::setRequest »
  • PHP Manual
  • Yaf_Dispatcher
  • Устанавливает обработчик ошибок

Yaf_Dispatcher::setErrorHandler

(Yaf >=1.0.0)

Yaf_Dispatcher::setErrorHandler — Устанавливает обработчик ошибок

Описание

public Yaf_Dispatcher::setErrorHandler(call $callback, int $error_types): Yaf_Dispatcher

Устанавливает обработчик ошибок для Yaf. Если application.dispatcher.throwException выключен, Yaf будет вызывать перехватываемую ошибку в случае возникновения непредвиденных ошибок.

Таким образом, этот обработчик ошибок будет вызываться в случае возникновения ошибки.

Список параметров

callback

Вызываемая callback-функция

error_types

Возвращаемые значения

Смотрите также

  • Yaf_Dispatcher::throwException() - Включает/выключает выбрасывание исключений
  • Yaf_Application::getLastErrorNo() - Получить код последней ошибки
  • Yaf_Application::getLastErrorMsg() - Получить последнее сообщение об ошибке


Назначение setRequest

  • « Yaf_Dispatcher::setErrorHandler
  • Yaf_Dispatcher::setView »
  • PHP Manual
  • Yaf_Dispatcher
  • Назначение setRequest

Yaf_Dispatcher::setRequest

(Yaf >=1.0.0)

Yaf_Dispatcher::setRequest — Назначение setRequest

Описание

public Yaf_Dispatcher::setRequest(Yaf_Request_Abstract $request): Yaf_Dispatcher

Список параметров

plugin

Возвращаемые значения


Устанавливает пользовательский механизм отображения

  • « Yaf_Dispatcher::setRequest
  • Yaf_Dispatcher::throwException »
  • PHP Manual
  • Yaf_Dispatcher
  • Устанавливает пользовательский механизм отображения

Yaf_Dispatcher::setView

(Yaf >=1.0.0)

Yaf_Dispatcher::setView — Устанавливает пользовательский механизм отображения

Описание

public Yaf_Dispatcher::setView(Yaf_View_Interface $view): Yaf_Dispatcher

Метод предоставляет решение, если вы хотите использовать собственный механизм отображения вместо Yaf_View_Simple.

Список параметров

view

Экземпляр Yaf_View_Interface

Возвращаемые значения

Примеры

Пример #1 Пример использования пользовательского движка отображения()

<?php
require "/path/to/smarty/Smarty.class.php";

class Smarty_Adapter implements Yaf_View_Interface
{
/**
* Smarty object
* @var Smarty
*/
public $_smarty;

/**
* Конструктор
*
* @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;
}
}

/**
* Задайте путь к шаблонам
*
* @param string $path Каталог, который нужно задать в качестве пути.
* @return void
*/
public function setScriptPath($path)
{
if (is_readable($path)) {
$this->_smarty->template_dir = $path;
return;
}

throw new Exception('Invalid path provided');
}

/**
* Назначьте переменную шаблону
*
* @param string $key Имя переменной
* @param mixed $val Значение переменной.
* @return void
*/
public function __set($key, $val)
{
$this->_smarty->assign($key, $val);
}

/**
* Разрешает тестирование с empty() и isset()
*
* @param string $key
* @return boolean
*/
public function __isset($key)
{
return (null !== $this->_smarty->get_template_vars($key));
}

/**
* Разрешает unset() для свойств объекта
*
* @param string $key
* @return void
*/
public function __unset($key)
{
$this->_smarty->clear_assign($key);
}

/**
* Назначьте переменные шаблону
*
* Позволяет установить конкретный ключ для указанного значения
* ИЛИ передать массив пар ключ => значение для массовой установки.
*
* @see __set()
* @param string|array $spec Стратегия присваивания (ключ или массив пар ключ => значение)
* @param mixed $value (Optional) При присвоении именованной переменной используйте её как значение.
* @return void
*/
public function assign($spec, $value = null) {
if (is_array($spec)) {
$this->_smarty->assign($spec);
return;
}

$this->_smarty->assign($spec, $value);
}

/**
* Очистить все присвоенные переменные
*
* Очищает все переменные, назначенные Yaf_View, либо через
* {@link assign()} или перезагрузку свойства
* ({@link __get()}/{@link __set()}).
*
* @return void
*/
public function clearVars() {
$this->_smarty->clear_all_assign();
}

/**
* Обрабатывает шаблон и возвращает результат.
*
* @param string $name Шаблон для обработки.
* @return string Вывод.
*/
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()

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {

/**
* конфигурация для smarty в конфигурации:
*
* 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() {
/** мы помещаем класс Smarty_Adapter в каталог локальной библиотеки */
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);
/* теперь механизм отображения Smarty стал механизмом отображения по умолчанию для Yaf */
}
}
?>

Смотрите также

  • Yaf_View_Interface
  • Yaf_View_Simple


Включает/выключает выбрасывание исключений

  • « Yaf_Dispatcher::setView
  • Yaf_Config_Abstract »
  • PHP Manual
  • Yaf_Dispatcher
  • Включает/выключает выбрасывание исключений

Yaf_Dispatcher::throwException

(Yaf >=1.0.0)

Yaf_Dispatcher::throwException — Включает/выключает выбрасывание исключений

Описание

public Yaf_Dispatcher::throwException(bool $flag = ?): Yaf_Dispatcher

Включает/выключает выбрасывание исключений в случае возникновении непредвиденной ошибки. Когда включено, Yaf будет выбрасывать исключения вместо того, чтобы вызывать ошибки, которые можно отловить.

Вы также можете использовать application.dispatcher.throwException, чтобы достичь той же цели.

Список параметров

flag

bool

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Dispatcher::throwexception()

<?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()

<?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() - Включает/выключает перехват исключений
  • Yaf_Exception


Класс Yaf_Config_Abstract

(Yaf >=1.0.0)

Введение

Обзор классов

abstract class Yaf_Config_Abstract {
/* Свойства */
protected $_config;
protected $_readonly;
/* Методы */
abstract public get(string $name, mixed $value): mixed
abstract public readonly(): bool
abstract public set(): Yaf_Config_Abstract
abstract public toArray(): array
}

Свойства

_config

_readonly

Содержание

  • Yaf_Config_Abstract::get — Геттер
  • Yaf_Config_Abstract::readonly — Находит конфигурацию только для чтения
  • Yaf_Config_Abstract::set — Сеттер
  • Yaf_Config_Abstract::toArray — Приведение к массиву


Геттер

  • « Yaf_Config_Abstract
  • Yaf_Config_Abstract::readonly »
  • PHP Manual
  • Yaf_Config_Abstract
  • Геттер

Yaf_Config_Abstract::get

(Yaf >=1.0.0)

Yaf_Config_Abstract::get — Геттер

Описание

abstract public Yaf_Config_Abstract::get(string $name, mixed $value): mixed

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Находит конфигурацию только для чтения

  • « Yaf_Config_Abstract::get
  • Yaf_Config_Abstract::set »
  • PHP Manual
  • Yaf_Config_Abstract
  • Находит конфигурацию только для чтения

Yaf_Config_Abstract::readonly

(Yaf >=1.0.0)

Yaf_Config_Abstract::readonly — Находит конфигурацию только для чтения

Описание

abstract public Yaf_Config_Abstract::readonly(): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Сеттер

  • « Yaf_Config_Abstract::readonly
  • Yaf_Config_Abstract::toArray »
  • PHP Manual
  • Yaf_Config_Abstract
  • Сеттер

Yaf_Config_Abstract::set

(Yaf >=1.0.0)

Yaf_Config_Abstract::set — Сеттер

Описание

abstract public Yaf_Config_Abstract::set(): Yaf_Config_Abstract

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Приведение к массиву

  • « Yaf_Config_Abstract::set
  • Yaf_Config_Ini »
  • PHP Manual
  • Yaf_Config_Abstract
  • Приведение к массиву

Yaf_Config_Abstract::toArray

(Yaf >=1.0.0)

Yaf_Config_Abstract::toArray — Приведение к массиву

Описание

abstract public Yaf_Config_Abstract::toArray(): 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".

Обзор классов

class Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable {
/* Свойства */
/* Методы */
public __construct(string $config_file, string $section = ?)
public count(): void
public current(): void
public __get(string $name = ?): void
public __isset(string $name): void
public key(): void
public next(): 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
public rewind(): void
public __set(string $name, mixed $value): void
public toArray(): array
public valid(): void
/* Наследуемые методы */
abstract public Yaf_Config_Abstract::get(string $name, mixed $value): mixed
abstract public Yaf_Config_Abstract::readonly(): bool
abstract public Yaf_Config_Abstract::set(): Yaf_Config_Abstract
abstract public Yaf_Config_Abstract::toArray(): 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
  • Yaf_Config_Ini::count — Подсчитывает все элементы в Yaf_Config.ini
  • Yaf_Config_Ini::current — Получает текущее значение
  • Yaf_Config_Ini::__get — Получает элемент
  • Yaf_Config_Ini::__isset — Определяет, существует ли ключ
  • Yaf_Config_Ini::key — Получает ключ текущего элемента
  • Yaf_Config_Ini::next — Продвигает внутренний указатель
  • Yaf_Config_Ini::offsetExists — Назначение offsetExists
  • Yaf_Config_Ini::offsetGet — Назначение offsetGet
  • Yaf_Config_Ini::offsetSet — Назначение offsetSet
  • Yaf_Config_Ini::offsetUnset — Назначение offsetUnset
  • Yaf_Config_Ini::readonly — Назначение readonly
  • Yaf_Config_Ini::rewind — Назначение rewind
  • Yaf_Config_Ini::__set — Назначение __set
  • Yaf_Config_Ini::toArray — Возвращает конфигурацию как массив PHP
  • Yaf_Config_Ini::valid — Назначение valid


Конструктор класса Yaf_Config_Ini

  • « Yaf_Config_Ini
  • Yaf_Config_Ini::count »
  • PHP Manual
  • Yaf_Config_Ini
  • Конструктор класса Yaf_Config_Ini

Yaf_Config_Ini::__construct

(Yaf >=1.0.0)

Yaf_Config_Ini::__construct — Конструктор класса Yaf_Config_Ini

Описание

public Yaf_Config_Ini::__construct(string $config_file, string $section = ?)

Конструктор класса Yaf_Config_Ini

Список параметров

config_file

Путь к файлу конфигурации INI

section

Какой раздел в этом файле INI вы хотите проанализировать

Возвращаемые значения


Подсчитывает все элементы в Yaf_Config.ini

  • « Yaf_Config_Ini::__construct
  • Yaf_Config_Ini::current »
  • PHP Manual
  • Yaf_Config_Ini
  • Подсчитывает все элементы в Yaf_Config.ini

Yaf_Config_Ini::count

(Yaf >=1.0.0)

Yaf_Config_Ini::count — Подсчитывает все элементы в Yaf_Config.ini

Описание

public Yaf_Config_Ini::count(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает текущее значение

  • « Yaf_Config_Ini::count
  • Yaf_Config_Ini::__get »
  • PHP Manual
  • Yaf_Config_Ini
  • Получает текущее значение

Yaf_Config_Ini::current

(Yaf >=1.0.0)

Yaf_Config_Ini::current — Получает текущее значение

Описание

public Yaf_Config_Ini::current(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает элемент

  • « Yaf_Config_Ini::current
  • Yaf_Config_Ini::__isset »
  • PHP Manual
  • Yaf_Config_Ini
  • Получает элемент

Yaf_Config_Ini::__get

(Yaf >=1.0.0)

Yaf_Config_Ini::__get — Получает элемент

Описание

public Yaf_Config_Ini::__get(string $name = ?): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Определяет, существует ли ключ

  • « Yaf_Config_Ini::__get
  • Yaf_Config_Ini::key »
  • PHP Manual
  • Yaf_Config_Ini
  • Определяет, существует ли ключ

Yaf_Config_Ini::__isset

(Yaf >=1.0.0)

Yaf_Config_Ini::__isset — Определяет, существует ли ключ

Описание

public Yaf_Config_Ini::__isset(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Получает ключ текущего элемента

  • « Yaf_Config_Ini::__isset
  • Yaf_Config_Ini::next »
  • PHP Manual
  • Yaf_Config_Ini
  • Получает ключ текущего элемента

Yaf_Config_Ini::key

(Yaf >=1.0.0)

Yaf_Config_Ini::key — Получает ключ текущего элемента

Описание

public Yaf_Config_Ini::key(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Продвигает внутренний указатель

  • « Yaf_Config_Ini::key
  • Yaf_Config_Ini::offsetExists »
  • PHP Manual
  • Yaf_Config_Ini
  • Продвигает внутренний указатель

Yaf_Config_Ini::next

(Yaf >=1.0.0)

Yaf_Config_Ini::next — Продвигает внутренний указатель

Описание

public Yaf_Config_Ini::next(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение offsetExists

  • « Yaf_Config_Ini::next
  • Yaf_Config_Ini::offsetGet »
  • PHP Manual
  • Yaf_Config_Ini
  • Назначение offsetExists

Yaf_Config_Ini::offsetExists

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetExists — Назначение offsetExists

Описание

public Yaf_Config_Ini::offsetExists(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение offsetGet

  • « Yaf_Config_Ini::offsetExists
  • Yaf_Config_Ini::offsetSet »
  • PHP Manual
  • Yaf_Config_Ini
  • Назначение offsetGet

Yaf_Config_Ini::offsetGet

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetGet — Назначение offsetGet

Описание

public Yaf_Config_Ini::offsetGet(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение offsetSet

  • « Yaf_Config_Ini::offsetGet
  • Yaf_Config_Ini::offsetUnset »
  • PHP Manual
  • Yaf_Config_Ini
  • Назначение offsetSet

Yaf_Config_Ini::offsetSet

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetSet — Назначение offsetSet

Описание

public Yaf_Config_Ini::offsetSet(string $name, string $value): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Назначение offsetUnset

  • « Yaf_Config_Ini::offsetSet
  • Yaf_Config_Ini::readonly »
  • PHP Manual
  • Yaf_Config_Ini
  • Назначение offsetUnset

Yaf_Config_Ini::offsetUnset

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetUnset — Назначение offsetUnset

Описание

public Yaf_Config_Ini::offsetUnset(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение readonly

  • « Yaf_Config_Ini::offsetUnset
  • Yaf_Config_Ini::rewind »
  • PHP Manual
  • Yaf_Config_Ini
  • Назначение readonly

Yaf_Config_Ini::readonly

(Yaf >=1.0.0)

Yaf_Config_Ini::readonly — Назначение readonly

Описание

public Yaf_Config_Ini::readonly(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение rewind

  • « Yaf_Config_Ini::readonly
  • Yaf_Config_Ini::__set »
  • PHP Manual
  • Yaf_Config_Ini
  • Назначение rewind

Yaf_Config_Ini::rewind

(Yaf >=1.0.0)

Yaf_Config_Ini::rewind — Назначение rewind

Описание

public Yaf_Config_Ini::rewind(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение __set

  • « Yaf_Config_Ini::rewind
  • Yaf_Config_Ini::toArray »
  • PHP Manual
  • Yaf_Config_Ini
  • Назначение __set

Yaf_Config_Ini::__set

(Yaf >=1.0.0)

Yaf_Config_Ini::__set — Назначение __set

Описание

public Yaf_Config_Ini::__set(string $name, mixed $value): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Возвращает конфигурацию как массив PHP

  • « Yaf_Config_Ini::__set
  • Yaf_Config_Ini::valid »
  • PHP Manual
  • Yaf_Config_Ini
  • Возвращает конфигурацию как массив PHP

Yaf_Config_Ini::toArray

(Yaf >=1.0.0)

Yaf_Config_Ini::toArray — Возвращает конфигурацию как массив PHP

Описание

public Yaf_Config_Ini::toArray(): array

Возвращает массив PHP из Yaf_Config_Ini

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение valid

  • « Yaf_Config_Ini::toArray
  • Yaf_Config_Simple »
  • PHP Manual
  • Yaf_Config_Ini
  • Назначение valid

Yaf_Config_Ini::valid

(Yaf >=1.0.0)

Yaf_Config_Ini::valid — Назначение valid

Описание

public Yaf_Config_Ini::valid(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Config_Simple

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Config_Simple extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable {
/* Свойства */
protected $_readonly;
/* Методы */
public __construct(array $configs, bool $readonly = false)
public count(): void
public current(): void
public __get(string $name = ?): void
public __isset(string $name): void
public key(): void
public next(): 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
public rewind(): void
public __set(string $name, string $value): void
public toArray(): array
public valid(): void
/* Наследуемые методы */
abstract public Yaf_Config_Abstract::get(string $name, mixed $value): mixed
abstract public Yaf_Config_Abstract::readonly(): bool
abstract public Yaf_Config_Abstract::set(): Yaf_Config_Abstract
abstract public Yaf_Config_Abstract::toArray(): array
}

Свойства

_config

_readonly

Содержание

  • Yaf_Config_Simple::__construct — Назначение __construct
  • Yaf_Config_Simple::count — Назначение count
  • Yaf_Config_Simple::current — Назначение current
  • Yaf_Config_Simple::__get — Назначение __get
  • Yaf_Config_Simple::__isset — Назначение __isset
  • Yaf_Config_Simple::key — Назначение key
  • Yaf_Config_Simple::next — Назначение next
  • Yaf_Config_Simple::offsetExists — Назначение offsetExists
  • Yaf_Config_Simple::offsetGet — Назначение offsetGet
  • Yaf_Config_Simple::offsetSet — Назначение offsetSet
  • Yaf_Config_Simple::offsetUnset — Назначение offsetUnset
  • Yaf_Config_Simple::readonly — Назначение readonly
  • Yaf_Config_Simple::rewind — Назначение rewind
  • Yaf_Config_Simple::__set — Назначение __set
  • Yaf_Config_Simple::toArray — Возвращает массив PHP
  • Yaf_Config_Simple::valid — Назначение valid


Назначение __construct

  • « Yaf_Config_Simple
  • Yaf_Config_Simple::count »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение __construct

Yaf_Config_Simple::__construct

(Yaf >=1.0.0)

Yaf_Config_Simple::__construct — Назначение __construct

Описание

public Yaf_Config_Simple::__construct(array $configs, bool $readonly = false)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

configs

readonly

Возвращаемые значения


Назначение count

  • « Yaf_Config_Simple::__construct
  • Yaf_Config_Simple::current »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение count

Yaf_Config_Simple::count

(Yaf >=1.0.0)

Yaf_Config_Simple::count — Назначение count

Описание

public Yaf_Config_Simple::count(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение current

  • « Yaf_Config_Simple::count
  • Yaf_Config_Simple::__get »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение current

Yaf_Config_Simple::current

(Yaf >=1.0.0)

Yaf_Config_Simple::current — Назначение current

Описание

public Yaf_Config_Simple::current(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение __get

  • « Yaf_Config_Simple::current
  • Yaf_Config_Simple::__isset »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение __get

Yaf_Config_Simple::__get

(Yaf >=1.0.0)

Yaf_Config_Simple::__get — Назначение __get

Описание

public Yaf_Config_Simple::__get(string $name = ?): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение __isset

  • « Yaf_Config_Simple::__get
  • Yaf_Config_Simple::key »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение __isset

Yaf_Config_Simple::__isset

(Yaf >=1.0.0)

Yaf_Config_Simple::__isset — Назначение __isset

Описание

public Yaf_Config_Simple::__isset(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение key

  • « Yaf_Config_Simple::__isset
  • Yaf_Config_Simple::next »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение key

Yaf_Config_Simple::key

(Yaf >=1.0.0)

Yaf_Config_Simple::key — Назначение key

Описание

public Yaf_Config_Simple::key(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение next

  • « Yaf_Config_Simple::key
  • Yaf_Config_Simple::offsetExists »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение next

Yaf_Config_Simple::next

(Yaf >=1.0.0)

Yaf_Config_Simple::next — Назначение next

Описание

public Yaf_Config_Simple::next(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение offsetExists

  • « Yaf_Config_Simple::next
  • Yaf_Config_Simple::offsetGet »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение offsetExists

Yaf_Config_Simple::offsetExists

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetExists — Назначение offsetExists

Описание

public Yaf_Config_Simple::offsetExists(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение offsetGet

  • « Yaf_Config_Simple::offsetExists
  • Yaf_Config_Simple::offsetSet »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение offsetGet

Yaf_Config_Simple::offsetGet

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetGet — Назначение offsetGet

Описание

public Yaf_Config_Simple::offsetGet(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение offsetSet

  • « Yaf_Config_Simple::offsetGet
  • Yaf_Config_Simple::offsetUnset »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение offsetSet

Yaf_Config_Simple::offsetSet

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetSet — Назначение offsetSet

Описание

public Yaf_Config_Simple::offsetSet(string $name, string $value): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Назначение offsetUnset

  • « Yaf_Config_Simple::offsetSet
  • Yaf_Config_Simple::readonly »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение offsetUnset

Yaf_Config_Simple::offsetUnset

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetUnset — Назначение offsetUnset

Описание

public Yaf_Config_Simple::offsetUnset(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение readonly

  • « Yaf_Config_Simple::offsetUnset
  • Yaf_Config_Simple::rewind »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение readonly

Yaf_Config_Simple::readonly

(Yaf >=1.0.0)

Yaf_Config_Simple::readonly — Назначение readonly

Описание

public Yaf_Config_Simple::readonly(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение rewind

  • « Yaf_Config_Simple::readonly
  • Yaf_Config_Simple::__set »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение rewind

Yaf_Config_Simple::rewind

(Yaf >=1.0.0)

Yaf_Config_Simple::rewind — Назначение rewind

Описание

public Yaf_Config_Simple::rewind(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение __set

  • « Yaf_Config_Simple::rewind
  • Yaf_Config_Simple::toArray »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение __set

Yaf_Config_Simple::__set

(Yaf >=1.0.0)

Yaf_Config_Simple::__set — Назначение __set

Описание

public Yaf_Config_Simple::__set(string $name, string $value): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Возвращает массив PHP

  • « Yaf_Config_Simple::__set
  • Yaf_Config_Simple::valid »
  • PHP Manual
  • Yaf_Config_Simple
  • Возвращает массив PHP

Yaf_Config_Simple::toArray

(Yaf >=1.0.0)

Yaf_Config_Simple::toArray — Возвращает массив PHP

Описание

public Yaf_Config_Simple::toArray(): array

Возвращает массив PHP из Yaf_Config_Simple

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение valid

  • « Yaf_Config_Simple::toArray
  • Yaf_Controller_Abstract »
  • PHP Manual
  • Yaf_Config_Simple
  • Назначение valid

Yaf_Config_Simple::valid

(Yaf >=1.0.0)

Yaf_Config_Simple::valid — Назначение valid

Описание

public Yaf_Config_Simple::valid(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Controller_Abstract

(Yaf >=1.0.0)

Введение

Yaf_Controller_Abstract это сердце системы Yaf. MVC расшифровывается как Model-View-Controller и представляет собой шаблон проектирования, предназначенный для отделения логики приложения от логики отображения

Каждый пользовательский контроллер должен наследовать Yaf_Controller_Abstract.

Вы обнаружите, что не можете определить функцию __construct для своего пользовательского контроллера, поэтому Yaf_Controller_Abstract предоставляет

Если вы определили метод init() в своём пользовательском контроллере, он будет вызываться до тех пор, пока будет создан экземпляр контроллера.

У действия при поступлении запроса могут быть аргументы. Если в параметрах запроса есть одна и та же переменная имени (Yaf_Request_Abstract::getParam()) после перенаправления, Yaf передаст их методу действия (Yaf_Action_Abstract::execute()).

Замечание:

Аргументы извлекаются напрямую без фильтрации, перед использованием их следует тщательно обработать.

Обзор классов

abstract class Yaf_Controller_Abstract {
/* Свойства */
public $actions;
protected $_module;
protected $_name;
protected $_request;
protected $_response;
protected $_invoke_args;
protected $_view;
/* Методы */
final private __construct()
protected display(string $tpl, array $parameters = ?): bool
public forward(string $action, array $paramters = ?): bool
public getInvokeArg(string $name): void
public getInvokeArgs(): void
public getModuleName(): string
public getName(): string
public getRequest(): Yaf_Request_Abstract
public getResponse(): Yaf_Response_Abstract
public getView(): Yaf_View_Interface
public getViewpath(): string
public init(): 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

Вы также можете определить метод действия в отдельном скрипте PHP, используя это свойство и Yaf_Action_Abstract.

Пример #1 Определение действия в отдельном файле

<?php
class IndexController extends Yaf_Controller_Abstract {
protected $actions = array(
/** теперь dummyAction определяется в отдельном файле */
"dummy" => "actions/Dummy_action.php",
);

/* у метода действия могут быть аргументы */
public function indexAction($name, $id) {
/* $name и $id небезопасные необработанные данные */
assert($name == $this->getRequest()->getParam("name"));
assert($id == $this->_request->getParam("id"));
}
}
?>

Пример #2 Dummy_action.php

<?php
class DummyAction extends Yaf_Action_Abstract {
/* класс действия должен определить этот метод как точку входа */
public function execute() {
}
}
?>

_module

имя модуля

_name

имя контроллера

_request

текущий объект запроса

_response

текущий объект ответа

_invoke_args

_view

объект движка отображения

Содержание

  • Yaf_Controller_Abstract::__construct — Конструктор класса Yaf_Controller_Abstract
  • Yaf_Controller_Abstract::display — Назначение display
  • Yaf_Controller_Abstract::forward — Переходит к другому действию
  • Yaf_Controller_Abstract::getInvokeArg — Назначение getInvokeArg
  • Yaf_Controller_Abstract::getInvokeArgs — Назначение getInvokeArgs
  • Yaf_Controller_Abstract::getModuleName — Получает имя модуля
  • Yaf_Controller_Abstract::getName — Получает своё имя
  • Yaf_Controller_Abstract::getRequest — Получает текущий объект запроса
  • Yaf_Controller_Abstract::getResponse — Получает текущий объект ответа
  • Yaf_Controller_Abstract::getView — Получает движок отображения
  • Yaf_Controller_Abstract::getViewpath — Назначение getViewpath
  • Yaf_Controller_Abstract::init — Инициализатор контроллера
  • Yaf_Controller_Abstract::initView — Назначение initView
  • Yaf_Controller_Abstract::redirect — Перенаправляет на URL
  • Yaf_Controller_Abstract::render — Отображает шаблон представления
  • Yaf_Controller_Abstract::setViewpath — Назначение setViewpath


Конструктор класса Yaf_Controller_Abstract

  • « Yaf_Controller_Abstract
  • Yaf_Controller_Abstract::display »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Конструктор класса Yaf_Controller_Abstract

Yaf_Controller_Abstract::__construct

(Yaf >=1.0.0)

Yaf_Controller_Abstract::__construct — Конструктор класса Yaf_Controller_Abstract

Описание

final private Yaf_Controller_Abstract::__construct()

Yaf_Controller_Abstract::__construct() — окончательный (final) метод и не может быть переопределён. Вы можете посмотреть вместо этого Yaf_Controller_Abstract::init().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Controller_Abstract::init() - Инициализатор контроллера


Назначение display

  • « Yaf_Controller_Abstract::__construct
  • Yaf_Controller_Abstract::forward »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Назначение display

Yaf_Controller_Abstract::display

(Yaf >=1.0.0)

Yaf_Controller_Abstract::display — Назначение display

Описание

protected Yaf_Controller_Abstract::display(string $tpl, array $parameters = ?): bool

Список параметров

tpl

parameters

Возвращаемые значения


Переходит к другому действию

  • « Yaf_Controller_Abstract::display
  • Yaf_Controller_Abstract::getInvokeArg »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Переходит к другому действию

Yaf_Controller_Abstract::forward

(Yaf >=1.0.0)

Yaf_Controller_Abstract::forward — Переходит к другому действию

Описание

public Yaf_Controller_Abstract::forward(string $action, array $paramters = ?): bool
public Yaf_Controller_Abstract::forward(string $controller, string $action, array $paramters = ?): bool
public Yaf_Controller_Abstract::forward(
string $module,
string $controller,
string $action,
array $paramters = ?
): bool

Перенаправляет текущий процесс выполнения на другое действие.

Замечание:

Метод не переключается на указанное действие немедленно, переход происходит после завершения текущего потока.

Список параметров

module

Имя целевого модуля, если задано NULL, то подразумевается имя модуля по умолчанию

controller

Имя целевого контроллера

action

Имя целевого действия

paramters

Аргументы вызова

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Yaf_Controller_Abstract::forward()

<?php
class IndexController extends Yaf_Controller_Abstract
{
public function indexAction(){
$logined = $_SESSION["login"];
if (!$logined) {
$this->forward("login", array("from" => "Index")); // вперёд к действию login
return FALSE; // это важно, это закончить текущий рабочий поток
// и сказать Yaf не делать авторендеринг
}

// other processes
}

public function loginAction() {
echo "Вход, перенаправлено с действия ", $this->_request->getParam("from");
}
}
?>

Результатом выполнения данного примера будет что-то подобное:

   Вход, перенаправлено с действия Index

Смотрите также

  • Yaf_Request_Abstrace::getParam()


Назначение getInvokeArg

  • « Yaf_Controller_Abstract::forward
  • Yaf_Controller_Abstract::getInvokeArgs »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Назначение getInvokeArg

Yaf_Controller_Abstract::getInvokeArg

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getInvokeArg — Назначение getInvokeArg

Описание

public Yaf_Controller_Abstract::getInvokeArg(string $name): void

Список параметров

name

Возвращаемые значения


Назначение getInvokeArgs

  • « Yaf_Controller_Abstract::getInvokeArg
  • Yaf_Controller_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Назначение getInvokeArgs

Yaf_Controller_Abstract::getInvokeArgs

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getInvokeArgs — Назначение getInvokeArgs

Описание

public Yaf_Controller_Abstract::getInvokeArgs(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает имя модуля

  • « Yaf_Controller_Abstract::getInvokeArgs
  • Yaf_Controller_Abstract::getName »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Получает имя модуля

Yaf_Controller_Abstract::getModuleName

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getModuleName — Получает имя модуля

Описание

public Yaf_Controller_Abstract::getModuleName(): string

Получает имя модуля контроллера

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает своё имя

  • « Yaf_Controller_Abstract::getModuleName
  • Yaf_Controller_Abstract::getRequest »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Получает своё имя

Yaf_Controller_Abstract::getName

(Yaf >=3.2.0)

Yaf_Controller_Abstract::getName — Получает своё имя

Описание

public Yaf_Controller_Abstract::getName(): string

Получает имя контроллера

Список параметров

У этой функции нет параметров.

Возвращаемые значения

string, имя контроллера


Получает текущий объект запроса

  • « Yaf_Controller_Abstract::getName
  • Yaf_Controller_Abstract::getResponse »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Получает текущий объект запроса

Yaf_Controller_Abstract::getRequest

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getRequest — Получает текущий объект запроса

Описание

public Yaf_Controller_Abstract::getRequest(): Yaf_Request_Abstract

Получает текущий объект запроса

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр Yaf_Request_Abstract


Получает текущий объект ответа

  • « Yaf_Controller_Abstract::getRequest
  • Yaf_Controller_Abstract::getView »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Получает текущий объект ответа

Yaf_Controller_Abstract::getResponse

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getResponse — Получает текущий объект ответа

Описание

public Yaf_Controller_Abstract::getResponse(): Yaf_Response_Abstract

Получает текущий объект ответа

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр Yaf_Response_Abstract


Получает движок отображения

  • « Yaf_Controller_Abstract::getResponse
  • Yaf_Controller_Abstract::getViewpath »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Получает движок отображения

Yaf_Controller_Abstract::getView

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getView — Получает движок отображения

Описание

public Yaf_Controller_Abstract::getView(): Yaf_View_Interface

Получает движок отображения

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение getViewpath

  • « Yaf_Controller_Abstract::getView
  • Yaf_Controller_Abstract::init »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Назначение getViewpath

Yaf_Controller_Abstract::getViewpath

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getViewpath — Назначение getViewpath

Описание

public Yaf_Controller_Abstract::getViewpath(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Инициализатор контроллера

  • « Yaf_Controller_Abstract::getViewpath
  • Yaf_Controller_Abstract::initView »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Инициализатор контроллера

Yaf_Controller_Abstract::init

(Yaf >=1.0.0)

Yaf_Controller_Abstract::init — Инициализатор контроллера

Описание

public Yaf_Controller_Abstract::init(): void

Yaf_Controller_Abstract::__construct() — окончательный (final) метод, это означает, что пользователи не могут переопределить его. Но пользователи могут определить Yaf_Controller_Abstract::init(), который будет вызываться после создания экземпляра объекта контроллера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Controller_Abstract::__construct() - Конструктор класса Yaf_Controller_Abstract


Назначение initView

  • « Yaf_Controller_Abstract::init
  • Yaf_Controller_Abstract::redirect »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Назначение initView

Yaf_Controller_Abstract::initView

(Yaf >=1.0.0)

Yaf_Controller_Abstract::initView — Назначение initView

Описание

public Yaf_Controller_Abstract::initView(array $options = ?): void

Список параметров

options

Возвращаемые значения


Перенаправляет на URL

  • « Yaf_Controller_Abstract::initView
  • Yaf_Controller_Abstract::render »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Перенаправляет на URL

Yaf_Controller_Abstract::redirect

(Yaf >=1.0.0)

Yaf_Controller_Abstract::redirect — Перенаправляет на URL

Описание

public Yaf_Controller_Abstract::redirect(string $url): bool

Перенаправляет на URL, отправив заголовок 302

Список параметров

url

URL местоположения

Возвращаемые значения

Тип bool


Отображает шаблон представления

  • « Yaf_Controller_Abstract::redirect
  • Yaf_Controller_Abstract::setViewpath »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Отображает шаблон представления

Yaf_Controller_Abstract::render

(Yaf >=1.0.0)

Yaf_Controller_Abstract::render — Отображает шаблон представления

Описание

protected Yaf_Controller_Abstract::render(string $tpl, array $parameters = ?): string

Список параметров

tpl

parameters

Возвращаемые значения


Назначение setViewpath

  • « Yaf_Controller_Abstract::render
  • Yaf_Action_Abstract »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Назначение setViewpath

Yaf_Controller_Abstract::setViewpath

(Yaf >=1.0.0)

Yaf_Controller_Abstract::setViewpath — Назначение setViewpath

Описание

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, вы, в вашем класе, должны реализовать метод Yaf_Action_Abstract::execute().

Обзор классов

class Yaf_Action_Abstract extends Yaf_Controller_Abstract {
/* Свойства */
protected $_controller;
/* Методы */
abstract publicexecute(mixed ...$args): mixed
publicgetController(): Yaf_Controller_Abstract
public getControllerName(): string
/* Наследуемые методы */
protected Yaf_Controller_Abstract::display(string $tpl, array $parameters = ?): bool
public Yaf_Controller_Abstract::forward(string $action, array $paramters = ?): bool
public Yaf_Controller_Abstract::getInvokeArg(string $name): void
public Yaf_Controller_Abstract::getInvokeArgs(): void
public Yaf_Controller_Abstract::getModuleName(): string
public Yaf_Controller_Abstract::getName(): string
public Yaf_Controller_Abstract::getRequest(): Yaf_Request_Abstract
public Yaf_Controller_Abstract::getResponse(): Yaf_Response_Abstract
public Yaf_Controller_Abstract::getView(): Yaf_View_Interface
public Yaf_Controller_Abstract::getViewpath(): string
public Yaf_Controller_Abstract::init(): 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 — Получить объект контроллер
  • Yaf_Action_Abstract::getControllerName — Получает имя контроллера


Точка входа для 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 ...$args): mixed

Пользователь должен определять этот метод для Action-классов, он является точкой входа в Action. Yaf_Action_Abstract::execute() может принимать аргументы.

Замечание:

Значение, извлекаемое из запроса не безопасно. Вы должны самостоятельно проверять его перед использованием.

Список параметров

args

Возвращаемые значения

Примеры

Пример #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_Action_Abstract::getControllerName »
  • PHP Manual
  • Yaf_Action_Abstract
  • Получить объект контроллер

Yaf_Action_Abstract::getController

(Yaf >=1.0.0)

Yaf_Action_Abstract::getController — Получить объект контроллер

Описание

publicYaf_Action_Abstract::getController(): Yaf_Controller_Abstract

Получить текущий объект контроллер.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса Yaf_Controller_Abstract


Получает имя контроллера

  • « Yaf_Action_Abstract::getController
  • Yaf_View_Interface »
  • PHP Manual
  • Yaf_Action_Abstract
  • Получает имя контроллера

Yaf_Action_Abstract::getControllerName

(Информация о версии неизвестна, возможно, только в Git)

Yaf_Action_Abstract::getControllerName — Получает имя контроллера

Описание

public Yaf_Action_Abstract::getControllerName(): string

Получает имя контроллера

Список параметров

У этой функции нет параметров.

Возвращаемые значения

string, имя контроллера


Класс Yaf_View_Interface

(Yaf >=1.0.0)

Введение

Yaf предоставляет разработчикам возможность использовать их собственный движок отображения, отличающийся от встроенного Yaf_View_Simple. Пример реализации смотрите в описании Yaf_Dispatcher::setView().

Обзор классов

class Yaf_View_Interface {
/* Методы */
abstract public assign(string $name, string $value = ?): bool
abstract public display(string $tpl, array $tpl_vars = ?): bool
abstract public getScriptPath(): void
abstract public render(string $tpl, array $tpl_vars = ?): string
abstract public setScriptPath(string $template_dir): void
}

Содержание

  • Yaf_View_Interface::assign — Назначает значение для движка отображения
  • Yaf_View_Interface::display — Отрисовывает и выводит шаблон
  • Yaf_View_Interface::getScriptPath — Назначение getScriptPath
  • Yaf_View_Interface::render — Отрисовывает шаблон
  • Yaf_View_Interface::setScriptPath — Назначение setScriptPath


Назначает значение для движка отображения

  • « Yaf_View_Interface
  • Yaf_View_Interface::display »
  • PHP Manual
  • Yaf_View_Interface
  • Назначает значение для движка отображения

Yaf_View_Interface::assign

(Yaf >=1.0.0)

Yaf_View_Interface::assign — Назначает значение для движка отображения

Описание

abstract public Yaf_View_Interface::assign(string $name, string $value = ?): bool

Присваивает значения движку отображения, после чего к значению можно обращаться напрямую по имени в шаблоне.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Отрисовывает и выводит шаблон

  • « Yaf_View_Interface::assign
  • Yaf_View_Interface::getScriptPath »
  • PHP Manual
  • Yaf_View_Interface
  • Отрисовывает и выводит шаблон

Yaf_View_Interface::display

(Yaf >=1.0.0)

Yaf_View_Interface::display — Отрисовывает и выводит шаблон

Описание

abstract public Yaf_View_Interface::display(string $tpl, array $tpl_vars = ?): bool

Отрисовывает шаблон и немедленно выводит результат.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

tpl

tpl_vars

Возвращаемые значения


Назначение getScriptPath

  • « Yaf_View_Interface::display
  • Yaf_View_Interface::render »
  • PHP Manual
  • Yaf_View_Interface
  • Назначение getScriptPath

Yaf_View_Interface::getScriptPath

(Yaf >=1.0.0)

Yaf_View_Interface::getScriptPath — Назначение getScriptPath

Описание

abstract public Yaf_View_Interface::getScriptPath(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Отрисовывает шаблон

  • « Yaf_View_Interface::getScriptPath
  • Yaf_View_Interface::setScriptPath »
  • PHP Manual
  • Yaf_View_Interface
  • Отрисовывает шаблон

Yaf_View_Interface::render

(Yaf >=1.0.0)

Yaf_View_Interface::render — Отрисовывает шаблон

Описание

abstract public Yaf_View_Interface::render(string $tpl, array $tpl_vars = ?): string

Отрисовывает шаблон и возвращает результат.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

tpl

tpl_vars

Возвращаемые значения


Назначение setScriptPath

  • « Yaf_View_Interface::render
  • Yaf_View_Simple »
  • PHP Manual
  • Yaf_View_Interface
  • Назначение setScriptPath

Yaf_View_Interface::setScriptPath

(Yaf >=1.0.0)

Yaf_View_Interface::setScriptPath — Назначение setScriptPath

Описание

abstract public Yaf_View_Interface::setScriptPath(string $template_dir): void

Устанавливает базовый каталог шаблонов, обычно вызывается в Yaf_Dispatcher

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

template_dir

Абсолютный путь к каталогу шаблонов по умолчанию Yaf_Dispatcher используется application.directory . "/views".

Возвращаемые значения


Класс Yaf_View_Simple

(Yaf >=1.0.0)

Введение

Yaf_View_Simple - это встроенный шаблонный движок Yaf. Он простой, но быстрый и поддерживает только шаблоны PHP-скриптов.

Обзор классов

class Yaf_View_Simple implements Yaf_View_Interface {
/* Свойства */
protected $_tpl_vars;
protected $_tpl_dir;
/* Методы */
final public __construct(string $template_dir, array $options = ?)
public assign(string $name, mixed $value = ?): bool
public assignRef(string $name, mixed &$value): bool
public clear(string $name = ?): bool
public display(string $tpl, array $tpl_vars = ?): bool
public eval(string $tpl_content, array $tpl_vars = ?): string
public __get(string $name = ?): void
public getScriptPath(): 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 — Назначить значения
  • Yaf_View_Simple::assignRef — Назначение assignRef
  • Yaf_View_Simple::clear — Сбрасывает назначенные значения
  • Yaf_View_Simple::__construct — Конструктор класса Yaf_View_Simple
  • Yaf_View_Simple::display — Отрисовывает и отображает
  • Yaf_View_Simple::eval — Отрисовывает шаблон
  • Yaf_View_Simple::__get — Получает назначенную переменную
  • Yaf_View_Simple::getScriptPath — Получает каталог шаблонов
  • Yaf_View_Simple::__isset — Назначение __isset
  • Yaf_View_Simple::render — Отрисовывает шаблон
  • Yaf_View_Simple::__set — Устанавливает значение для движка
  • Yaf_View_Simple::setScriptPath — Устанавливает каталог шаблонов


Назначить значения

  • « Yaf_View_Simple
  • Yaf_View_Simple::assignRef »
  • PHP Manual
  • Yaf_View_Simple
  • Назначить значения

Yaf_View_Simple::assign

(Yaf >=1.0.0)

Yaf_View_Simple::assign — Назначить значения

Описание

public Yaf_View_Simple::assign(string $name, mixed $value = ?): bool

Назначает переменную для движка отображения

Список параметров

name

Строка или массив.

Если это строка, то следующий аргумент $value обязателен.

value

Различное значение

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_View_Simple::assign()

<?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()

<html>
<head>
<title><?php echo $foo; ?></title>
</head>
<body>
<?php

foreach ($this->_tpl_vars as $name => $value) {
echo $$name; // или echo $this->_tpl_vars[$name];
}
?>
</body>
</html>

Смотрите также

  • Yaf_View_Simple::assignRef() - Назначение assignRef
  • Yaf_View_Interface::clear()
  • Yaf_View_Simple::__set() - Устанавливает значение для движка


Назначение assignRef

  • « Yaf_View_Simple::assign
  • Yaf_View_Simple::clear »
  • PHP Manual
  • Yaf_View_Simple
  • Назначение assignRef

Yaf_View_Simple::assignRef

(Yaf >=1.0.0)

Yaf_View_Simple::assignRef — Назначение assignRef

Описание

public Yaf_View_Simple::assignRef(string $name, mixed &$value): bool

В отличие от Yaf_View_Simple::assign(), этот метод присваивает значение ref движку.

Список параметров

name

Строковое имя, которое будет использоваться для доступа к значению в шаблоне.

value

Различное значение

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_View_Simple::assignRef()

<?php
class IndexController extends Yaf_Controller_Abstract {
public function indexAction() {
$value = "bar";
$this->getView()->assign("foo", $value);

/* обратите внимание, что до Yaf 2.1.4 была ошибка,
* которая делает следующий вывод "bar";
*/
$dummy = $this->getView()->render("index/index.phtml");
echo $value;

// предотвратить авто-рендеринг
Yaf_Dispatcher::getInstance()->autoRender(FALSE);
}
}
?>

Пример #2 Пример использования template()

<html>
<head>
<title><?php echo $foo; $foo = "changed"; ?></title>
</head>
<body>
</body>
</html>

Результатом выполнения данного примера будет что-то подобное:

/* доступ к IndexController: */
changed

Смотрите также

  • Yaf_View_Simple::assign() - Назначить значения
  • Yaf_View_Simple::__set() - Устанавливает значение для движка


Сбрасывает назначенные значения

  • « Yaf_View_Simple::assignRef
  • Yaf_View_Simple::__construct »
  • PHP Manual
  • Yaf_View_Simple
  • Сбрасывает назначенные значения

Yaf_View_Simple::clear

(Yaf >=2.2.0)

Yaf_View_Simple::clear — Сбрасывает назначенные значения

Описание

public Yaf_View_Simple::clear(string $name = ?): bool

Сбрасывает назначенные значения

Список параметров

name

Присвоенное имя переменной

Если не указано, очистит все назначенные переменные

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_View_Simple::clear()

<?php
class IndexController extends Yaf_Controller_Abstract {
public function indexAction() {
$this->getView()->clear("foo")->clear("bar"); // очистить "foo" и "bar"
$this->_view->clear(); //очистить все назначенные переменные
}
}
?>

Смотрите также

  • Yaf_View_Simple::assignRef() - Назначение assignRef
  • Yaf_View_Interface::assign() - Назначает значение для движка отображения
  • Yaf_View_Simple::__set() - Устанавливает значение для движка


Конструктор класса Yaf_View_Simple

  • « Yaf_View_Simple::clear
  • Yaf_View_Simple::display »
  • PHP Manual
  • Yaf_View_Simple
  • Конструктор класса Yaf_View_Simple

Yaf_View_Simple::__construct

(Yaf >=1.0.0)

Yaf_View_Simple::__construct — Конструктор класса Yaf_View_Simple

Описание

final public Yaf_View_Simple::__construct(string $template_dir, array $options = ?)

Список параметров

template_dir

Базовый каталог шаблонов, по умолчанию это APPLICATOIN . "/views" для Yaf.

options

Опции для движка, начиная с Yaf 2.1.13, вы можете использовать short_tag
      "<?=$var?>" в своём шаблоне (независимо от "short_open_tag"),
      чтобы предотвратить использование short_tag в шаблоне,
      имеется опция с именем "short_tag", которую вы можете отключить.

Примеры

Пример #1 Пример использования Yaf_View_Simple::__constructor()

<?php
define ("TEMPLATE_DIRECTORY", APPLICATOIN_PATH . '/views');
$view = new Yaf_View_Simple(TEMPLATE_DIRECTORY, array(
'short_tag' => false //не позволяет использовать короткие теги в шаблоне
));
?>


Отрисовывает и отображает

  • « Yaf_View_Simple::__construct
  • Yaf_View_Simple::eval »
  • PHP Manual
  • Yaf_View_Simple
  • Отрисовывает и отображает

Yaf_View_Simple::display

(Yaf >=1.0.0)

Yaf_View_Simple::display — Отрисовывает и отображает

Описание

public Yaf_View_Simple::display(string $tpl, array $tpl_vars = ?): bool

Отрисовывает шаблон и мгновенно отображает результат.

Список параметров

tpl

tpl_vars

Возвращаемые значения


Отрисовывает шаблон

  • « Yaf_View_Simple::display
  • Yaf_View_Simple::__get »
  • PHP Manual
  • Yaf_View_Simple
  • Отрисовывает шаблон

Yaf_View_Simple::eval

(Yaf >=2.2.0)

Yaf_View_Simple::eval — Отрисовывает шаблон

Описание

public Yaf_View_Simple::eval(string $tpl_content, array $tpl_vars = ?): string

Отрисовывает шаблон строки и возвращает результат.

Список параметров

tpl_content

Строка шаблона

tpl_vars

Возвращаемые значения


Получает назначенную переменную

  • « Yaf_View_Simple::eval
  • Yaf_View_Simple::getScriptPath »
  • PHP Manual
  • Yaf_View_Simple
  • Получает назначенную переменную

Yaf_View_Simple::__get

(Yaf >=1.0.0)

Yaf_View_Simple::__get — Получает назначенную переменную

Описание

public Yaf_View_Simple::__get(string $name = ?): void

Получает назначенную переменную

Замечание:

Параметр может быть пустым с 2.1.11

Список параметров

name

Присвоенное имя переменной

Если не указано, будут возвращены все назначенные переменные

Возвращаемые значения


Получает каталог шаблонов

  • « Yaf_View_Simple::__get
  • Yaf_View_Simple::__isset »
  • PHP Manual
  • Yaf_View_Simple
  • Получает каталог шаблонов

Yaf_View_Simple::getScriptPath

(Yaf >=1.0.0)

Yaf_View_Simple::getScriptPath — Получает каталог шаблонов

Описание

public Yaf_View_Simple::getScriptPath(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение __isset

  • « Yaf_View_Simple::getScriptPath
  • Yaf_View_Simple::render »
  • PHP Manual
  • Yaf_View_Simple
  • Назначение __isset

Yaf_View_Simple::__isset

(Yaf >=1.0.0)

Yaf_View_Simple::__isset — Назначение __isset

Описание

public Yaf_View_Simple::__isset(string $name): void

Список параметров

name

Возвращаемые значения


Отрисовывает шаблон

  • « Yaf_View_Simple::__isset
  • Yaf_View_Simple::__set »
  • PHP Manual
  • Yaf_View_Simple
  • Отрисовывает шаблон

Yaf_View_Simple::render

(Yaf >=1.0.0)

Yaf_View_Simple::render — Отрисовывает шаблон

Описание

public Yaf_View_Simple::render(string $tpl, array $tpl_vars = ?): string

Отрисовывает шаблон и возвращает результат.

Список параметров

tpl

tpl_vars

Возвращаемые значения


Устанавливает значение для движка

  • « Yaf_View_Simple::render
  • Yaf_View_Simple::setScriptPath »
  • PHP Manual
  • Yaf_View_Simple
  • Устанавливает значение для движка

Yaf_View_Simple::__set

(Yaf >=1.0.0)

Yaf_View_Simple::__set — Устанавливает значение для движка

Описание

public Yaf_View_Simple::__set(string $name, mixed $value): void

Альтернативный и более простой способ Yaf_View_Simple::assign().

Список параметров

name

Имя строкового значения.

value

Различное значение.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_View_Simple::__set()exampl

<?php
class IndexController extends Yaf_Controller_Abstract {
public function indexAction() {
$this->getView()->foo = "bar"; // то же, что и assign("foo", "bar");
}
}
?>

Смотрите также

  • Yaf_View_Simple::assignRef() - Назначение assignRef
  • Yaf_View_Interface::assign() - Назначает значение для движка отображения


Устанавливает каталог шаблонов

  • « Yaf_View_Simple::__set
  • Yaf_Loader »
  • PHP Manual
  • Yaf_View_Simple
  • Устанавливает каталог шаблонов

Yaf_View_Simple::setScriptPath

(Yaf >=1.0.0)

Yaf_View_Simple::setScriptPath — Устанавливает каталог шаблонов

Описание

public Yaf_View_Simple::setScriptPath(string $template_dir): bool

Список параметров

template_dir

Возвращаемые значения


Класс Yaf_Loader

(Yaf >=1.0.0)

Введение

Yaf_Loader представляет комплексное решение для автозагрузки для Yaf.

При первом извлечении экземпляра Yaf_Application, Yaf_Loader создаёт экземпляр-одиночку и регистрируется с помощью spl_autoload. Вы извлекаете экземпляр, используя Yaf_Loader::getInstance()

Yaf_Loader попытается загрузить класс только один раз, в случае возникновения ошибки, зависит от yaf.use_spl_auload, если эта конфигурация включена Yaf_Loader::autoload() вернёт false, таким образом предоставляя возможность другой функции автозагрузки. Если выключена (по умолчанию), Yaf_Loader::autoload() вернёт true, а также сработает очень полезное предупреждение (полезно, чтобы выяснить, почему класс не может быть загружен).

Замечание:

Пожалуйста, оставьте yaf.use_spl_autoload выключенным, если в какой-то библиотеке нет собственного механизма автозагрузки и его невозможно переписать.

По умолчанию Yaf_Loader предполагает, что вся библиотека (сценарий, определённый классом) хранится в каталоге глобальной библиотеки, который определён в php.ini (yaf.library).

Если вы хотите с помощью Yaf_Loader выполнить поиск некоторых классов (библиотек) в каталоге локальных классов (который определён в application.ini, по умолчанию это application.directory. "/library"), вы должны зарегистрировать префикс класса, используя Yaf_Loader::registerLocalNameSpace()

Давайте посмотрим несколько примеров (при условии, что APPLICATION_PATH application.directory):

Пример #1 Пример конфигурации

// Предполагаются следующие настройки в php.ini:
yaf.library = "/global_dir"

//Предполагаются следующие настройки в php.ini:
application.library = APPLICATION_PATH "/library"
Предполагается, что зарегистрировано следующее локальное пространство имён:

Пример #2 Зарегистрировать локальное пространство имён

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
public function _initLoader($dispatcher) {
Yaf_Loader::getInstance()->registerLocalNameSpace(array("Foo", "Bar"));
}
?>
Тогда пример автозагрузки:

Пример #3 Пример загрузки класса

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

Пример #4 Пример загрузки класса имён

class \Foo\Bar\Dummy =>
   // APPLICATION_PATH/library/Foo/Bar/Dummy.php

class \FooBar\Bar\Dummy =>
   // /global_dir/FooBar/Bar/Dummy.php

Вы можете заметить, что все папки с первой буквой заглавными, вы можете сделать их строчными, установив yaf.lowcase_path = On в php.ini.

Yaf_Loader также предназначен для загрузки классов MVC, и правило таково:

Пример #5 Пример загрузки класса MVC

Controller Classes =>
// APPLICATION_PATH/controllers/

Model Classes =>
// APPLICATION_PATH/models/

Plugin Classes =>
// APPLICATION_PATH/plugins/
Yaf идентифицирует суффикс класса (это по умолчанию, вы также можете изменить его на префикс, изменив конфигурацию yaf.name_suffix), чтобы решить, является ли он классом MVC:

Пример #6 Классовые различия MVC

Controller Classes =>
    // ***Controller

Model Classes =>
    // ***Model

Plugin Classes =>
    // ***Plugin
несколько примеров:

Пример #7 Пример загрузки MVC

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

Замечание:

Начиная с 2.1.18, Yaf поддерживает автозагрузку контроллеров для стороны пользовательского скрипта (что означает автозагрузку, запускаемую пользовательским скриптом php, например: доступ к статическому свойству контроллера в Bootstrap или плагинах), но автозагрузчик только пытается найти скрипт класса контроллера в папке модуля по умолчанию, которая называется "APPLICATION_PATH/controllers/".

также на каталог будет влиять yaf.lowcase_path.

Обзор классов

class Yaf_Loader {
/* Свойства */
protected $_local_ns;
protected $_library;
protected $_global_library;
static $_instance;
/* Методы */
private __construct()
public autoload(): void
public clearLocalNamespace(): void
public static getInstance(): void
public getLibraryPath(bool $is_global = false): Yaf_Loader
public getLocalNamespace(): void
public getNamespacePath(string $namespaces): string
public getNamespaces(): array
public static import(): void
public isLocalName(): void
public registerLocalNamespace(mixed $prefix): void
public registerNamespace(string|array $namespaces, string $path = ?): bool
public setLibraryPath(string $directory, bool $is_global = false): Yaf_Loader
}

Свойства

_local_ns

_library

По умолчанию это значение равно application.directory . "/library", вы можете изменить это либо в application.ini(application.library), либо вызвать Yaf_Loader::setLibraryPath()

_global_library

_instance

Содержание

  • Yaf_Loader::autoload — Назначение autoload
  • Yaf_Loader::clearLocalNamespace — Назначение clearLocalNamespace
  • Yaf_Loader::__construct — Назначение __construct
  • Yaf_Loader::getInstance — Назначение getInstance
  • Yaf_Loader::getLibraryPath — Получает путь к библиотеке
  • Yaf_Loader::getLocalNamespace — Назначение getLocalNamespace
  • Yaf_Loader::getNamespacePath — Получает путь зарегистрированного пространства имён
  • Yaf_Loader::getLocalNamespace — Получает всю информацию о зарегистрированных пространствах имён
  • Yaf_Loader::import — Назначение import
  • Yaf_Loader::isLocalName — Назначение isLocalName
  • Yaf_Loader::registerLocalNamespace — Регистрирует префикс локального класса
  • Yaf_Loader::registerNamespace — Регистрирует пространство имён с путём поиска
  • Yaf_Loader::setLibraryPath — Изменяет путь к библиотеке


Назначение autoload

  • « Yaf_Loader
  • Yaf_Loader::clearLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Назначение autoload

Yaf_Loader::autoload

(Yaf >=1.0.0)

Yaf_Loader::autoload — Назначение autoload

Описание

public Yaf_Loader::autoload(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение clearLocalNamespace

  • « Yaf_Loader::autoload
  • Yaf_Loader::__construct »
  • PHP Manual
  • Yaf_Loader
  • Назначение clearLocalNamespace

Yaf_Loader::clearLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::clearLocalNamespace — Назначение clearLocalNamespace

Описание

public Yaf_Loader::clearLocalNamespace(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение __construct

  • « Yaf_Loader::clearLocalNamespace
  • Yaf_Loader::getInstance »
  • PHP Manual
  • Yaf_Loader
  • Назначение __construct

Yaf_Loader::__construct

(Yaf >=1.0.0)

Yaf_Loader::__construct — Назначение __construct

Описание

private Yaf_Loader::__construct()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение getInstance

  • « Yaf_Loader::__construct
  • Yaf_Loader::getLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • Назначение getInstance

Yaf_Loader::getInstance

(Yaf >=1.0.0)

Yaf_Loader::getInstance — Назначение getInstance

Описание

public static Yaf_Loader::getInstance(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает путь к библиотеке

  • « Yaf_Loader::getInstance
  • Yaf_Loader::getLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Получает путь к библиотеке

Yaf_Loader::getLibraryPath

(Yaf >=2.1.4)

Yaf_Loader::getLibraryPath — Получает путь к библиотеке

Описание

public Yaf_Loader::getLibraryPath(bool $is_global = false): Yaf_Loader

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение getLocalNamespace

  • « Yaf_Loader::getLibraryPath
  • Yaf_Loader::getNamespacePath »
  • PHP Manual
  • Yaf_Loader
  • Назначение getLocalNamespace

Yaf_Loader::getLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::getLocalNamespace — Назначение getLocalNamespace

Описание

public Yaf_Loader::getLocalNamespace(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает путь зарегистрированного пространства имён

  • « Yaf_Loader::getLocalNamespace
  • Yaf_Loader::getLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Получает путь зарегистрированного пространства имён

Yaf_Loader::getNamespacePath

(Yaf >=3.2.0)

Yaf_Loader::getNamespacePath — Получает путь зарегистрированного пространства имён

Описание

public Yaf_Loader::getNamespacePath(string $namespaces): string

Получает путь зарегистрированного пространства имён

Список параметров

namespace

Строка пространства имён.

Возвращаемые значения

string путь, если пространство имён не зарегистрировано, то вернёт null. Будет возвращена библиотека по умолчанию.

Примеры

Пример #1 Пример использования Yaf_Loader::registerNamespace()

<?php
$loader = Yaf_Loader::getInstance("/var/application/lib");
$loader->registerNamespace("\Vendor\PHP", "/var/lib/php");

$loader->getNamespacePath("\Vendor\PHP"); // '/var/lib/php'
$loader->getNamespacePath("\Vendor\JSP"); // '/var/application/lib'

?>


Получает всю информацию о зарегистрированных пространствах имён

  • « Yaf_Loader::getNamespacePath
  • Yaf_Loader::import »
  • PHP Manual
  • Yaf_Loader
  • Получает всю информацию о зарегистрированных пространствах имён

Yaf_Loader::getLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::getLocalNamespace — Получает всю информацию о зарегистрированных пространствах имён

Описание

public Yaf_Loader::getNamespaces(): array

Получает информацию о зарегистрированных пространствах имён

Список параметров

У этой функции нет параметров.

Возвращаемые значения

array


Назначение import

  • « Yaf_Loader::getLocalNamespace
  • Yaf_Loader::isLocalName »
  • PHP Manual
  • Yaf_Loader
  • Назначение import

Yaf_Loader::import

(Yaf >=1.0.0)

Yaf_Loader::import — Назначение import

Описание

public static Yaf_Loader::import(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение isLocalName

  • « Yaf_Loader::import
  • Yaf_Loader::registerLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Назначение isLocalName

Yaf_Loader::isLocalName

(Yaf >=1.0.0)

Yaf_Loader::isLocalName — Назначение isLocalName

Описание

public Yaf_Loader::isLocalName(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Регистрирует префикс локального класса

  • « Yaf_Loader::isLocalName
  • Yaf_Loader::registerNamespace »
  • PHP Manual
  • Yaf_Loader
  • Регистрирует префикс локального класса

Yaf_Loader::registerLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::registerLocalNamespace — Регистрирует префикс локального класса

Описание

public Yaf_Loader::registerLocalNamespace(mixed $prefix): void

Регистрирует префикс локального класса, Yaf_Loader ищет классы в двух каталогах библиотеки, один из которых настраивается с помощью application.library.directory (в application.ini) который называется локальным каталогом библиотек; другой настраивается с помощью yaf.library (в php.ini), который называется глобальным каталогом библиотеки, так как он может использоваться многими приложениями на одном сервере.

Когда запускается автозагрузка, Yaf_Loader будет определять, в каком каталоге библиотеки следует искать, следует искать, проверяя имя префикса пропущенного имени класса. Если имя префикса зарегистрировано как localnamespack, будет искать в каталоге локальной библиотеки, в противном случае — в каталоге глобальной библиотеки.

Замечание:

Если yaf.library не настроен, то предполагается, что каталог глобальной библиотеки является каталогом локальной библиотеки. В этом случае все автозагрузки будут искать каталог локальной библиотеки. Но если вы хотите, чтобы ваше приложение Yaf было устойчивым, всегда регистрируйте свои собственные классы как локальные.

Список параметров

prefix

Строка или массив префиксов имени класса. Все префиксы класса с этим префиксом будут загружены в путь локальной библиотеки.

Возвращаемые значения

Логический тип (bool)

Примеры

Пример #1 Пример использования Yaf_Loader::registerLocalNamespace()

<?php
$loader = Yaf_Loader::getInstance('/local/library/', '/global/library');
$loader->registerLocalNamespace("Baidu");
$loader->registerLocalNamespace(array("Sina", "Weibo"));

$loader->autoload("Baidu_Name"); // будет искать в '/local/library/'
$loader->autoload("Sina"); // будет искать в '/local/library/'
$loader->autoload("Global_Name");// будет искать в '/global/library/'
$loader->autoload("Foo_Bar"); // будет искать в '/global/library/'

?>


Регистрирует пространство имён с путём поиска

  • « Yaf_Loader::registerLocalNamespace
  • Yaf_Loader::setLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • Регистрирует пространство имён с путём поиска

Yaf_Loader::registerNamespace

(Yaf >=3.2.0)

Yaf_Loader::registerNamespace — Регистрирует пространство имён с путём поиска

Описание

public Yaf_Loader::registerNamespace(string|array $namespaces, string $path = ?): bool

Регистрирует пространство имён с путём поиска, Yaf_Loader ищет классы в этом пространстве имён в пути, оно также может быть настроено с помощью application.library.directory.namespace(в application.ini);

Замечание:

Yaf всё ещё рассматривает, подчёркивание как разделитель папок.

Список параметров

namespace

строка пространства имён или массив пространств имён с путями.

path

строка пути, лучше использовать абсолютный путь для производительности

Возвращаемые значения

bool

Примеры

Пример #1 Пример использования Yaf_Loader::registerNamespace()

<?php
$loader = Yaf_Loader::getInstance();
$loader->registerNamespace("\Vendor\PHP", "/var/lib/php");
$loader->registerNamespace(array(
"\Vendor\ASP" => "/var/lib/asp",
"\Vendor\JSP" => "/usr/lib/vendor/",
));

$loader->autoload("\Vendor\PHP\Dummy"); //load '/var/lib/php/Dummy.php'
$loader->autoload("\Vendor\PHP\Foo_Bar"); //load '/var/lib/php/Foo/Bar.php'
$loader->autoload("\Vendor\JSP\Dummy"); //load '/usr/lib/vendor/Dummy.php'

?>


Изменяет путь к библиотеке

  • « Yaf_Loader::registerNamespace
  • Yaf_Plugin_Abstract »
  • PHP Manual
  • Yaf_Loader
  • Изменяет путь к библиотеке

Yaf_Loader::setLibraryPath

(Yaf >=2.1.4)

Yaf_Loader::setLibraryPath — Изменяет путь к библиотеке

Описание

public Yaf_Loader::setLibraryPath(string $directory, bool $is_global = false): Yaf_Loader

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс 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"

Обзор классов

class 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 — Назначение dispatchLoopShutdown
  • Yaf_Plugin_Abstract::dispatchLoopStartup — Хук перед отправкой цикла
  • Yaf_Plugin_Abstract::postDispatch — Назначение postDispatch
  • Yaf_Plugin_Abstract::preDispatch — Назначение preDispatch
  • Yaf_Plugin_Abstract::preResponse — Назначение preResponse
  • Yaf_Plugin_Abstract::routerShutdown — Назначение routerShutdown
  • Yaf_Plugin_Abstract::routerStartup — Перехватчик RouterStartup


Назначение dispatchLoopShutdown

  • « Yaf_Plugin_Abstract
  • Yaf_Plugin_Abstract::dispatchLoopStartup »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Назначение dispatchLoopShutdown

Yaf_Plugin_Abstract::dispatchLoopShutdown

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopShutdown — Назначение dispatchLoopShutdown

Описание

public Yaf_Plugin_Abstract::dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Это последний перехватчик в системе подключений плагинов Yaf, если пользовательский плагин реализует этот метод, то он будет вызван после завершения цикла диспетчеризации.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения

Смотрите также

  • Yaf_Plugin_Abstract::routerStartup() - Перехватчик RouterStartup
  • Yaf_Plugin_Abstract::routerShutdown() - Назначение routerShutdown
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Хук перед отправкой цикла
  • Yaf_Plugin_Abstract::preDispatch() - Назначение preDispatch
  • Yaf_Plugin_Abstract::postDispatch() - Назначение postDispatch


Хук перед отправкой цикла

  • « Yaf_Plugin_Abstract::dispatchLoopShutdown
  • Yaf_Plugin_Abstract::postDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Хук перед отправкой цикла

Yaf_Plugin_Abstract::dispatchLoopStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopStartup — Хук перед отправкой цикла

Описание

public Yaf_Plugin_Abstract::dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Список параметров

request

response

Возвращаемые значения


Назначение postDispatch

  • « Yaf_Plugin_Abstract::dispatchLoopStartup
  • Yaf_Plugin_Abstract::preDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Назначение postDispatch

Yaf_Plugin_Abstract::postDispatch

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::postDispatch — Назначение postDispatch

Описание

public Yaf_Plugin_Abstract::postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения


Назначение preDispatch

  • « Yaf_Plugin_Abstract::postDispatch
  • Yaf_Plugin_Abstract::preResponse »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Назначение preDispatch

Yaf_Plugin_Abstract::preDispatch

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::preDispatch — Назначение preDispatch

Описание

public Yaf_Plugin_Abstract::preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения


Назначение preResponse

  • « Yaf_Plugin_Abstract::preDispatch
  • Yaf_Plugin_Abstract::routerShutdown »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Назначение preResponse

Yaf_Plugin_Abstract::preResponse

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::preResponse — Назначение preResponse

Описание

public Yaf_Plugin_Abstract::preResponse(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения


Назначение routerShutdown

  • « Yaf_Plugin_Abstract::preResponse
  • Yaf_Plugin_Abstract::routerStartup »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Назначение routerShutdown

Yaf_Plugin_Abstract::routerShutdown

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerShutdown — Назначение routerShutdown

Описание

public Yaf_Plugin_Abstract::routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Этот перехватчик будет запущен после завершения процесса маршрутизации, обычно используется для проверки входа в систему.

Список параметров

request

response

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Plugin_Abstract::routerShutdown()

<?php
class UserInitPlugin extends Yaf_Plugin_Abstract {

public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
$controller = $request->getControllerName();

/**
* Использовать контроллер доступа не нужно для API
*/
if (in_array(strtolower($controller), array(
'api',
))) {
return TRUE;
}

if (Yaf_Session::getInstance()->has("login")) {
return TRUE;
}

/* Ошибка проверки доступа, необходимо войти */
$response->setRedirect("http://yourdomain.com/login/");
return FALSE;
}
}
?>

Смотрите также

  • Yaf_Plugin_Abstract::routerStartup() - Перехватчик RouterStartup
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Хук перед отправкой цикла
  • Yaf_Plugin_Abstract::preDispatch() - Назначение preDispatch
  • Yaf_Plugin_Abstract::postDispatch() - Назначение postDispatch
  • Yaf_Plugin_Abstract::dispatchLoopShutdown() - Назначение dispatchLoopShutdown


Перехватчик RouterStartup

  • « Yaf_Plugin_Abstract::routerShutdown
  • Yaf_Registry »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Перехватчик RouterStartup

Yaf_Plugin_Abstract::routerStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerStartup — Перехватчик RouterStartup

Описание

public Yaf_Plugin_Abstract::routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Это самый ранний перехватчик в системе плагинов Yaf, если пользовательский плагин реализует этот метод, то он будет вызван перед маршрутизацией запроса.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения

Смотрите также

  • Yaf_Plugin_Abstract::routerShutdown() - Назначение routerShutdown
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Хук перед отправкой цикла
  • Yaf_Plugin_Abstract::preDispatch() - Назначение preDispatch
  • Yaf_Plugin_Abstract::postDispatch() - Назначение postDispatch
  • Yaf_Plugin_Abstract::dispatchLoopShutdown() - Назначение dispatchLoopShutdown


Класс Yaf_Registry

(Yaf >=1.0.0)

Введение

Все методы Yaf_Registry определены как статичные, делая их универсально доступными. Это предоставляет возможности прочитать или записать какие-либо данные из любого места в вашем приложении.

Обзор классов

class Yaf_Registry {
/* Свойства */
static $_instance;
protected $_entries;
/* Методы */
private __construct()
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::__construct — Yaf_Registry реализует шаблон проектирования "Одиночка"
  • Yaf_Registry::del — Удаляет элемент из реестра
  • Yaf_Registry::get — Получает элемент из реестра
  • Yaf_Registry::has — Проверяет, существует ли элемент
  • Yaf_Registry::set — Добавляет элемент в реестр


Yaf_Registry реализует шаблон проектирования "Одиночка"

  • « Yaf_Registry
  • Yaf_Registry::del »
  • PHP Manual
  • Yaf_Registry
  • Yaf_Registry реализует шаблон проектирования "Одиночка"

Yaf_Registry::__construct

(Yaf >=1.0.0)

Yaf_Registry::__construct — Yaf_Registry реализует шаблон проектирования "Одиночка"

Описание

private Yaf_Registry::__construct()

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Удаляет элемент из реестра

  • « Yaf_Registry::__construct
  • Yaf_Registry::get »
  • PHP Manual
  • Yaf_Registry
  • Удаляет элемент из реестра

Yaf_Registry::del

(Yaf >=1.0.0)

Yaf_Registry::del — Удаляет элемент из реестра

Описание

public static Yaf_Registry::del(string $name): void

Удаляет элемент из реестра

Список параметров

name

Возвращаемые значения


Получает элемент из реестра

  • « Yaf_Registry::del
  • Yaf_Registry::has »
  • PHP Manual
  • Yaf_Registry
  • Получает элемент из реестра

Yaf_Registry::get

(Yaf >=1.0.0)

Yaf_Registry::get — Получает элемент из реестра

Описание

public static Yaf_Registry::get(string $name): mixed

Получает элемент из реестра

Список параметров

name

Возвращаемые значения


Проверяет, существует ли элемент

  • « Yaf_Registry::get
  • Yaf_Registry::set »
  • PHP Manual
  • Yaf_Registry
  • Проверяет, существует ли элемент

Yaf_Registry::has

(Yaf >=1.0.0)

Yaf_Registry::has — Проверяет, существует ли элемент

Описание

public static Yaf_Registry::has(string $name): bool

Проверяет, существует ли элемент

Список параметров

name

Возвращаемые значения


Добавляет элемент в реестр

  • « Yaf_Registry::has
  • Yaf_Request_Abstract »
  • PHP Manual
  • Yaf_Registry
  • Добавляет элемент в реестр

Yaf_Registry::set

(Yaf >=1.0.0)

Yaf_Registry::set — Добавляет элемент в реестр

Описание

public static Yaf_Registry::set(string $name, string $value): bool

Добавляет элемент в реестр

Список параметров

name

value

Возвращаемые значения


Класс Yaf_Request_Abstract

(Yaf >=1.0.0)

Введение

Обзор классов

class 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 clearParams(): bool
public getActionName(): void
public getBaseUri(): void
public getControllerName(): void
public getEnv(string $name, string $default = ?): void
public getException(): void
public getLanguage(): void
public getMethod(): string
public getModuleName(): void
public getParam(string $name, string $default = ?): mixed
public getParams(): array
public getRequestUri(): void
public getServer(string $name, string $default = ?): void
public isCli(): bool
public isDispatched(): bool
public isGet(): bool
public isHead(): bool
public isOptions(): bool
public isPost(): bool
public isPut(): bool
public isRouted(): bool
public isXmlHttpRequest(): bool
public setActionName(string $action, bool $format_name = true): void
public setBaseUri(string $uir): bool
public setControllerName(string $controller, bool $format_name = true): void
public setDispatched(): void
public setModuleName(string $module, bool $format_name = true): 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::clearParams — Удаляет все параметры
  • Yaf_Request_Abstract::getActionName — Назначение getActionName
  • Yaf_Request_Abstract::getBaseUri — Назначение getBaseUri
  • Yaf_Request_Abstract::getControllerName — Назначение getControllerName
  • Yaf_Request_Abstract::getEnv — Получает переменную ENV
  • Yaf_Request_Abstract::getException — Назначение getException
  • Yaf_Request_Abstract::getLanguage — Получает предпочтительный язык клиента
  • Yaf_Request_Abstract::getMethod — Получает метод запроса
  • Yaf_Request_Abstract::getModuleName — Назначение getModuleName
  • Yaf_Request_Abstract::getParam — Получает параметр вызова
  • Yaf_Request_Abstract::getParams — Получает все параметры вызова
  • Yaf_Request_Abstract::getRequestUri — Назначение getRequestUri
  • Yaf_Request_Abstract::getServer — Получает переменную SERVER
  • Yaf_Request_Abstract::isCli — Определяет, является ли запрос CLI-запросом
  • Yaf_Request_Abstract::isDispatched — Определяет, отправлен ли запрос
  • Yaf_Request_Abstract::isGet — Определяет, является ли запрос GET-запросом
  • Yaf_Request_Abstract::isHead — Определяет, является ли запрос HEAD-запросом
  • Yaf_Request_Abstract::isOptions — Определяет, является ли запрос OPTIONS-запросом
  • Yaf_Request_Abstract::isPost — Определяет, является ли запрос POST-запросом
  • Yaf_Request_Abstract::isPut — Определяет, является ли запрос PUT-запросом
  • Yaf_Request_Abstract::isRouted — Определяет, был ли запрос направлен
  • Yaf_Request_Abstract::isXmlHttpRequest — Определяет, является ли запрос AJAX-запросом
  • Yaf_Request_Abstract::setActionName — Устанавливает имя действия
  • Yaf_Request_Abstract::setBaseUri — Устанавливает базовый URI
  • Yaf_Request_Abstract::setControllerName — Устанавливает имя контроллера
  • Yaf_Request_Abstract::setDispatched — Назначение setDispatched
  • Yaf_Request_Abstract::setModuleName — Устанавливает имя модуля
  • Yaf_Request_Abstract::setParam — Устанавливает параметр вызова для запроса
  • Yaf_Request_Abstract::setRequestUri — Назначение setRequestUri
  • Yaf_Request_Abstract::setRouted — Назначение setRouted


Удаляет все параметры

  • « Yaf_Request_Abstract
  • Yaf_Request_Abstract::getActionName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Удаляет все параметры

Yaf_Request_Abstract::clearParams

(Информация о версии неизвестна, возможно, только в Git)

Yaf_Request_Abstract::clearParams — Удаляет все параметры

Описание

public Yaf_Request_Abstract::clearParams(): bool

Удаляет все параметры, установленные маршрутизатором или Yaf_Request_Abstract::setParam()

Список параметров

У этой функции нет параметров.

Возвращаемые значения

bool

Смотрите также

  • Yaf_Request_Abstract::isHead() - Определяет, является ли запрос HEAD-запросом
  • Yaf_Request_Abstract::isGet() - Определяет, является ли запрос GET-запросом
  • Yaf_Request_Abstract::isPost() - Определяет, является ли запрос POST-запросом
  • Yaf_Request_Abstract::isPut() - Определяет, является ли запрос PUT-запросом
  • Yaf_Request_Abstract::isOptions() - Определяет, является ли запрос OPTIONS-запросом
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Определяет, является ли запрос AJAX-запросом


Назначение getActionName

  • « Yaf_Request_Abstract::clearParams
  • Yaf_Request_Abstract::getBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Назначение getActionName

Yaf_Request_Abstract::getActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getActionName — Назначение getActionName

Описание

public Yaf_Request_Abstract::getActionName(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение getBaseUri

  • « Yaf_Request_Abstract::getActionName
  • Yaf_Request_Abstract::getControllerName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Назначение getBaseUri

Yaf_Request_Abstract::getBaseUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::getBaseUri — Назначение getBaseUri

Описание

public Yaf_Request_Abstract::getBaseUri(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение getControllerName

  • « Yaf_Request_Abstract::getBaseUri
  • Yaf_Request_Abstract::getEnv »
  • PHP Manual
  • Yaf_Request_Abstract
  • Назначение getControllerName

Yaf_Request_Abstract::getControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getControllerName — Назначение getControllerName

Описание

public Yaf_Request_Abstract::getControllerName(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает переменную ENV

  • « Yaf_Request_Abstract::getControllerName
  • Yaf_Request_Abstract::getException »
  • PHP Manual
  • Yaf_Request_Abstract
  • Получает переменную ENV

Yaf_Request_Abstract::getEnv

(Yaf >=1.0.0)

Yaf_Request_Abstract::getEnv — Получает переменную ENV

Описание

public Yaf_Request_Abstract::getEnv(string $name, string $default = ?): void

Получает переменную ENV

Список параметров

name

Имя переменной

default

Если указан этот параметр, он будет возвращён, если переменная не найдена

Возвращаемые значения

Возвращает строку

Смотрите также

  • Yaf_Request_Abstract::getServer() - Получает переменную SERVER
  • Yaf_Request_Abstract::getParam() - Получает параметр вызова


Назначение getException

  • « Yaf_Request_Abstract::getEnv
  • Yaf_Request_Abstract::getLanguage »
  • PHP Manual
  • Yaf_Request_Abstract
  • Назначение getException

Yaf_Request_Abstract::getException

(Yaf >=1.0.0)

Yaf_Request_Abstract::getException — Назначение getException

Описание

public Yaf_Request_Abstract::getException(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает предпочтительный язык клиента

  • « Yaf_Request_Abstract::getException
  • Yaf_Request_Abstract::getMethod »
  • PHP Manual
  • Yaf_Request_Abstract
  • Получает предпочтительный язык клиента

Yaf_Request_Abstract::getLanguage

(Yaf >=1.0.0)

Yaf_Request_Abstract::getLanguage — Получает предпочтительный язык клиента

Описание

public Yaf_Request_Abstract::getLanguage(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку


Получает метод запроса

  • « Yaf_Request_Abstract::getLanguage
  • Yaf_Request_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Получает метод запроса

Yaf_Request_Abstract::getMethod

(Yaf >=1.0.0)

Yaf_Request_Abstract::getMethod — Получает метод запроса

Описание

public Yaf_Request_Abstract::getMethod(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, например, "POST", "GET" и так далее.

Смотрите также

  • Yaf_Request_Abstract::isHead() - Определяет, является ли запрос HEAD-запросом
  • Yaf_Request_Abstract::isCli() - Определяет, является ли запрос CLI-запросом
  • Yaf_Request_Abstract::isPost() - Определяет, является ли запрос POST-запросом
  • Yaf_Request_Abstract::isPut() - Определяет, является ли запрос PUT-запросом
  • Yaf_Request_Abstract::isOptions() - Определяет, является ли запрос OPTIONS-запросом
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Определяет, является ли запрос AJAX-запросом


Назначение getModuleName

  • « Yaf_Request_Abstract::getMethod
  • Yaf_Request_Abstract::getParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • Назначение getModuleName

Yaf_Request_Abstract::getModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getModuleName — Назначение getModuleName

Описание

public Yaf_Request_Abstract::getModuleName(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает параметр вызова

  • « Yaf_Request_Abstract::getModuleName
  • Yaf_Request_Abstract::getParams »
  • PHP Manual
  • Yaf_Request_Abstract
  • Получает параметр вызова

Yaf_Request_Abstract::getParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParam — Получает параметр вызова

Описание

public Yaf_Request_Abstract::getParam(string $name, string $default = ?): mixed

Список параметров

name

default

Возвращаемые значения

Смотрите также

  • Yaf_Request_Abstract::setParam() - Устанавливает параметр вызова для запроса


Получает все параметры вызова

  • « Yaf_Request_Abstract::getParam
  • Yaf_Request_Abstract::getRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Получает все параметры вызова

Yaf_Request_Abstract::getParams

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParams — Получает все параметры вызова

Описание

public Yaf_Request_Abstract::getParams(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Request_Abstract::setParam() - Устанавливает параметр вызова для запроса


Назначение getRequestUri

  • « Yaf_Request_Abstract::getParams
  • Yaf_Request_Abstract::getServer »
  • PHP Manual
  • Yaf_Request_Abstract
  • Назначение getRequestUri

Yaf_Request_Abstract::getRequestUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::getRequestUri — Назначение getRequestUri

Описание

public Yaf_Request_Abstract::getRequestUri(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает переменную SERVER

  • « Yaf_Request_Abstract::getRequestUri
  • Yaf_Request_Abstract::isCli »
  • PHP Manual
  • Yaf_Request_Abstract
  • Получает переменную SERVER

Yaf_Request_Abstract::getServer

(Yaf >=1.0.0)

Yaf_Request_Abstract::getServer — Получает переменную SERVER

Описание

public Yaf_Request_Abstract::getServer(string $name, string $default = ?): void

Получает переменную SERVER

Список параметров

name

Имя переменной

default

Если указан этот параметр, он будет возвращён, если переменная не найдена

Возвращаемые значения

Смотрите также

  • Yaf_Request_Abstract::getParam() - Получает параметр вызова
  • Yaf_Request_Abstract::getEnv() - Получает переменную ENV


Определяет, является ли запрос CLI-запросом

  • « Yaf_Request_Abstract::getServer
  • Yaf_Request_Abstract::isDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • Определяет, является ли запрос CLI-запросом

Yaf_Request_Abstract::isCli

(Yaf >=1.0.0)

Yaf_Request_Abstract::isCli — Определяет, является ли запрос CLI-запросом

Описание

public Yaf_Request_Abstract::isCli(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение (boolean)

Смотрите также

  • Yaf_Request_Abstract::isHead() - Определяет, является ли запрос HEAD-запросом
  • Yaf_Request_Abstract::isGet() - Определяет, является ли запрос GET-запросом
  • Yaf_Request_Abstract::isPost() - Определяет, является ли запрос POST-запросом
  • Yaf_Request_Abstract::isPut() - Определяет, является ли запрос PUT-запросом
  • Yaf_Request_Abstract::isOptions() - Определяет, является ли запрос OPTIONS-запросом
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Определяет, является ли запрос AJAX-запросом


Определяет, отправлен ли запрос

  • « Yaf_Request_Abstract::isCli
  • Yaf_Request_Abstract::isGet »
  • PHP Manual
  • Yaf_Request_Abstract
  • Определяет, отправлен ли запрос

Yaf_Request_Abstract::isDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::isDispatched — Определяет, отправлен ли запрос

Описание

public Yaf_Request_Abstract::isDispatched(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение (boolean)

Смотрите также

  • Yaf_Dispatcher::dispatch() - Отправляет запрос


Определяет, является ли запрос GET-запросом

  • « Yaf_Request_Abstract::isDispatched
  • Yaf_Request_Abstract::isHead »
  • PHP Manual
  • Yaf_Request_Abstract
  • Определяет, является ли запрос GET-запросом

Yaf_Request_Abstract::isGet

(Yaf >=1.0.0)

Yaf_Request_Abstract::isGet — Определяет, является ли запрос GET-запросом

Описание

public Yaf_Request_Abstract::isGet(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение (boolean)

Смотрите также

  • Yaf_Request_Abstract::isHead() - Определяет, является ли запрос HEAD-запросом
  • Yaf_Request_Abstract::isCli() - Определяет, является ли запрос CLI-запросом
  • Yaf_Request_Abstract::isPost() - Определяет, является ли запрос POST-запросом
  • Yaf_Request_Abstract::isPut() - Определяет, является ли запрос PUT-запросом
  • Yaf_Request_Abstract::isOptions() - Определяет, является ли запрос OPTIONS-запросом
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Определяет, является ли запрос AJAX-запросом


Определяет, является ли запрос HEAD-запросом

  • « Yaf_Request_Abstract::isGet
  • Yaf_Request_Abstract::isOptions »
  • PHP Manual
  • Yaf_Request_Abstract
  • Определяет, является ли запрос HEAD-запросом

Yaf_Request_Abstract::isHead

(Yaf >=1.0.0)

Yaf_Request_Abstract::isHead — Определяет, является ли запрос HEAD-запросом

Описание

public Yaf_Request_Abstract::isHead(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение (boolean)

Смотрите также

  • Yaf_Request_Abstract::isGet() - Определяет, является ли запрос GET-запросом
  • Yaf_Request_Abstract::isCli() - Определяет, является ли запрос CLI-запросом
  • Yaf_Request_Abstract::isPost() - Определяет, является ли запрос POST-запросом
  • Yaf_Request_Abstract::isPut() - Определяет, является ли запрос PUT-запросом
  • Yaf_Request_Abstract::isOptions() - Определяет, является ли запрос OPTIONS-запросом
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Определяет, является ли запрос AJAX-запросом


Определяет, является ли запрос OPTIONS-запросом

  • « Yaf_Request_Abstract::isHead
  • Yaf_Request_Abstract::isPost »
  • PHP Manual
  • Yaf_Request_Abstract
  • Определяет, является ли запрос OPTIONS-запросом

Yaf_Request_Abstract::isOptions

(Yaf >=1.0.0)

Yaf_Request_Abstract::isOptions — Определяет, является ли запрос OPTIONS-запросом

Описание

public Yaf_Request_Abstract::isOptions(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение (boolean)


Определяет, является ли запрос POST-запросом

  • « Yaf_Request_Abstract::isOptions
  • Yaf_Request_Abstract::isPut »
  • PHP Manual
  • Yaf_Request_Abstract
  • Определяет, является ли запрос POST-запросом

Yaf_Request_Abstract::isPost

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPost — Определяет, является ли запрос POST-запросом

Описание

public Yaf_Request_Abstract::isPost(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение (boolean)

Смотрите также

  • Yaf_Request_Abstract::isGet() - Определяет, является ли запрос GET-запросом
  • Yaf_Request_Abstract::isCli() - Определяет, является ли запрос CLI-запросом
  • Yaf_Request_Abstract::isHead() - Определяет, является ли запрос HEAD-запросом
  • Yaf_Request_Abstract::isPut() - Определяет, является ли запрос PUT-запросом
  • Yaf_Request_Abstract::isOptions() - Определяет, является ли запрос OPTIONS-запросом
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Определяет, является ли запрос AJAX-запросом


Определяет, является ли запрос PUT-запросом

  • « Yaf_Request_Abstract::isPost
  • Yaf_Request_Abstract::isRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • Определяет, является ли запрос PUT-запросом

Yaf_Request_Abstract::isPut

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPut — Определяет, является ли запрос PUT-запросом

Описание

public Yaf_Request_Abstract::isPut(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение (boolean)

Смотрите также

  • Yaf_Request_Abstract::isHead() - Определяет, является ли запрос HEAD-запросом
  • Yaf_Request_Abstract::isCli() - Определяет, является ли запрос CLI-запросом
  • Yaf_Request_Abstract::isPost() - Определяет, является ли запрос POST-запросом
  • Yaf_Request_Abstract::isGet() - Определяет, является ли запрос GET-запросом
  • Yaf_Request_Abstract::isOptions() - Определяет, является ли запрос OPTIONS-запросом
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Определяет, является ли запрос AJAX-запросом


Определяет, был ли запрос направлен

  • « Yaf_Request_Abstract::isPut
  • Yaf_Request_Abstract::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Abstract
  • Определяет, был ли запрос направлен

Yaf_Request_Abstract::isRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::isRouted — Определяет, был ли запрос направлен

Описание

public Yaf_Request_Abstract::isRouted(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение (boolean)


Определяет, является ли запрос AJAX-запросом

  • « Yaf_Request_Abstract::isRouted
  • Yaf_Request_Abstract::setActionName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Определяет, является ли запрос AJAX-запросом

Yaf_Request_Abstract::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Abstract::isXmlHttpRequest — Определяет, является ли запрос AJAX-запросом

Описание

public Yaf_Request_Abstract::isXmlHttpRequest(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение (boolean)

Смотрите также

  • Yaf_Request_Abstract::isHead() - Определяет, является ли запрос HEAD-запросом
  • Yaf_Request_Abstract::isCli() - Определяет, является ли запрос CLI-запросом
  • Yaf_Request_Abstract::isPost() - Определяет, является ли запрос POST-запросом
  • Yaf_Request_Abstract::isPut() - Определяет, является ли запрос PUT-запросом
  • Yaf_Request_Abstract::isOptions() - Определяет, является ли запрос OPTIONS-запросом
  • Yaf_Request_Abstract::isGet() - Определяет, является ли запрос GET-запросом


Устанавливает имя действия

  • « Yaf_Request_Abstract::isXmlHttpRequest
  • Yaf_Request_Abstract::setBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Устанавливает имя действия

Yaf_Request_Abstract::setActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setActionName — Устанавливает имя действия

Описание

public Yaf_Request_Abstract::setActionName(string $action, bool $format_name = true): void

Устанавливает имя действия для запроса, обычно используется настраиваемым маршрутизатором для установки имени контроллера результата маршрута.

Список параметров

action

string, имя действия, должно быть указано в нижнем регистре, например, "index" или "foo_bar"

format_name

Добавлено в Yaf 3.2.0, по умолчанию Yaf отформатирует имя в нижнем регистре, если для этого параметра установлено значение false, Yaf установит оригинальное имя для запроса.

Возвращаемые значения


Устанавливает базовый URI

  • « Yaf_Request_Abstract::setActionName
  • Yaf_Request_Abstract::setControllerName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Устанавливает базовый URI

Yaf_Request_Abstract::setBaseUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::setBaseUri — Устанавливает базовый URI

Описание

public Yaf_Request_Abstract::setBaseUri(string $uir): bool

Устанавливает базовый URI, базовый URI используется при выполнении маршрутизации, в фазе маршрутизации URI запроса используется для маршрутизации запроса, а базовый URI используется для пропуска ведущей части (базового URI) URI запроса. То есть, если приходит запрос с URI запроса a/b/c, то если вы установите базовый URI на "a/b", на этапе маршрутизации будет использоваться только "/c".

Замечание:

Как правило, вам не нужно его устанавливать, Yaf определит автоматически.

Список параметров

uir

Базовый URI

Возвращаемые значения

Возвращает логическое значение (boolean)


Устанавливает имя контроллера

  • « Yaf_Request_Abstract::setBaseUri
  • Yaf_Request_Abstract::setDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • Устанавливает имя контроллера

Yaf_Request_Abstract::setControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setControllerName — Устанавливает имя контроллера

Описание

public Yaf_Request_Abstract::setControllerName(string $controller, bool $format_name = true): void

Устанавливает имя контроллера для запроса, обычно используется настраиваемым маршрутизатором для установки имени контроллера результата маршрута.

Список параметров

controller

string, имя контроллера, должно быть в CamelCase, например, "Index" или "Foo_Bar"

format_name

Добавлено в Yaf 3.2.0, по умолчанию Yaf отформатирует имя в CamelCase, если для него установлено значение false, Yaf установит оригинальное имя для запроса.

Возвращаемые значения


Назначение setDispatched

  • « Yaf_Request_Abstract::setControllerName
  • Yaf_Request_Abstract::setModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Назначение setDispatched

Yaf_Request_Abstract::setDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::setDispatched — Назначение setDispatched

Описание

public Yaf_Request_Abstract::setDispatched(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Устанавливает имя модуля

  • « Yaf_Request_Abstract::setDispatched
  • Yaf_Request_Abstract::setParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • Устанавливает имя модуля

Yaf_Request_Abstract::setModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setModuleName — Устанавливает имя модуля

Описание

public Yaf_Request_Abstract::setModuleName(string $module, bool $format_name = true): void

Устанавливает имя модуля для запроса, обычно используется настраиваемым маршрутизатором для установки имени модуля результата маршрута.

Список параметров

module

string имя модуля, должно быть в CamelCase, например, "Index" или "Foo_Bar"

format_name

Добавлено в Yaf 3.2.0, по умолчанию Yaf отформатирует имя в CamelCase, если для него установлено значение false, Yaf установит оригинальное имя для запроса.

Возвращаемые значения


Устанавливает параметр вызова для запроса

  • « Yaf_Request_Abstract::setModuleName
  • Yaf_Request_Abstract::setRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Устанавливает параметр вызова для запроса

Yaf_Request_Abstract::setParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::setParam — Устанавливает параметр вызова для запроса

Описание

public Yaf_Request_Abstract::setParam(string $name, string $value = ?): bool

Устанавливает параметр для запроса, который может быть получен с помощью Yaf_Request_Abstract::getParam()

Список параметров

name

value

Возвращаемые значения

Смотрите также

  • Yaf_Request_Abstract::getParam() - Получает параметр вызова
  • Yaf_Request_Abstract::getParams() - Получает все параметры вызова


Назначение setRequestUri

  • « Yaf_Request_Abstract::setParam
  • Yaf_Request_Abstract::setRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • Назначение setRequestUri

Yaf_Request_Abstract::setRequestUri

(Yaf >=2.1.0)

Yaf_Request_Abstract::setRequestUri — Назначение setRequestUri

Описание

public Yaf_Request_Abstract::setRequestUri(string $uir): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

uir

Возвращаемые значения


Назначение setRouted

  • « Yaf_Request_Abstract::setRequestUri
  • Yaf_Request_Http »
  • PHP Manual
  • Yaf_Request_Abstract
  • Назначение setRouted

Yaf_Request_Abstract::setRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::setRouted — Назначение setRouted

Описание

public Yaf_Request_Abstract::setRouted(string $flag = ?): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

flag

Возвращаемые значения


Класс Yaf_Request_Http

(Yaf >=1.0.0)

Введение

Любой запрос от клиента инициализируется как Yaf_Request_Http. Вы можете получить информацию о запросе, например, URI и параметры запроса, используя методы этого класса.

Замечание:

В целях безопасности $_GET/$_POST доступны только для чтения в Yaf, что означает, что если вы установите значение для этих глобальных переменных, вы не сможете получить их с помощью Yaf_Request_Http::getQuery() или Yaf_Request_Http::getPost().

Если возникает необходимость использования такого функционала при модульном тестировании, Yaf может быть собран с помощью --enable-yaf-debug, который позволит Yaf прочитать значение, заданное пользователем через скрипт.

В этом случае Yaf выдаст предупреждение E_STRICT, чтобы напомнить вам об этом: Strict Standards: you are running yaf in debug mode

Обзор классов

class Yaf_Request_Http extends Yaf_Request_Abstract {
/* Свойства */
/* Методы */
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
public getPost(string $name, string $default = ?): mixed
public getQuery(string $name, string $default = ?): mixed
public getRaw(): mixed
public getRequest(): void
public isXmlHttpRequest(): bool
/* Наследуемые методы */
public Yaf_Request_Abstract::clearParams(): bool
public Yaf_Request_Abstract::getActionName(): void
public Yaf_Request_Abstract::getBaseUri(): void
public Yaf_Request_Abstract::getControllerName(): void
public Yaf_Request_Abstract::getEnv(string $name, string $default = ?): void
public Yaf_Request_Abstract::getException(): void
public Yaf_Request_Abstract::getLanguage(): void
public Yaf_Request_Abstract::getMethod(): string
public Yaf_Request_Abstract::getModuleName(): void
public Yaf_Request_Abstract::getParam(string $name, string $default = ?): mixed
public Yaf_Request_Abstract::getParams(): array
public Yaf_Request_Abstract::getRequestUri(): void
public Yaf_Request_Abstract::getServer(string $name, string $default = ?): void
public Yaf_Request_Abstract::isCli(): bool
public Yaf_Request_Abstract::isDispatched(): bool
public Yaf_Request_Abstract::isGet(): bool
public Yaf_Request_Abstract::isHead(): bool
public Yaf_Request_Abstract::isOptions(): bool
public Yaf_Request_Abstract::isPost(): bool
public Yaf_Request_Abstract::isPut(): bool
public Yaf_Request_Abstract::isRouted(): bool
public Yaf_Request_Abstract::isXmlHttpRequest(): bool
public Yaf_Request_Abstract::setActionName(string $action, bool $format_name = true): void
public Yaf_Request_Abstract::setBaseUri(string $uir): bool
public Yaf_Request_Abstract::setControllerName(string $controller, bool $format_name = true): void
public Yaf_Request_Abstract::setDispatched(): void
public Yaf_Request_Abstract::setModuleName(string $module, bool $format_name = true): 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::__construct — Конструктор класса Yaf_Request_Http
  • Yaf_Request_Http::get — Получает переменную от клиента
  • Yaf_Request_Http::getCookie — Получает переменную Cookie
  • Yaf_Request_Http::getFiles — Назначение getFiles
  • Yaf_Request_Http::getPost — Получает переменную POST
  • Yaf_Request_Http::getQuery — Получает параметр запроса
  • Yaf_Request_Http::getRaw — Получает необработанное тело запроса
  • Yaf_Request_Http::getRequest — Назначение getRequest
  • Yaf_Request_Http::isXmlHttpRequest — Определяет, является ли запрос Ajax-запросом


Конструктор класса Yaf_Request_Http

  • « Yaf_Request_Http
  • Yaf_Request_Http::get »
  • PHP Manual
  • Yaf_Request_Http
  • Конструктор класса Yaf_Request_Http

Yaf_Request_Http::__construct

(Yaf >=1.0.0)

Yaf_Request_Http::__construct — Конструктор класса Yaf_Request_Http

Описание

public Yaf_Request_Http::__construct(string $request_uri = ?, string $base_uri = ?)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает переменную от клиента

  • « Yaf_Request_Http::__construct
  • Yaf_Request_Http::getCookie »
  • PHP Manual
  • Yaf_Request_Http
  • Получает переменную от клиента

Yaf_Request_Http::get

(Yaf >=1.0.0)

Yaf_Request_Http::get — Получает переменную от клиента

Описание

public Yaf_Request_Http::get(string $name, string $default = ?): mixed

Получает переменную от клиента, метод будет искать name в параметрах запроса, если имя не найдено, то будет искать в POST, GET, Cookie, Server

Список параметров

name

Имя переменной

default

Если параметр указан, он будет возвращён, в случае если переменная не найдена

Возвращаемые значения

Смотрите также

  • Yaf_Request_Http::getQuery() - Получает параметр запроса
  • Yaf_Request_Http::getPost() - Получает переменную POST
  • Yaf_Request_Http::getCookie() - Получает переменную Cookie
  • Yaf_Request_Http::getRaw() - Получает необработанное тело запроса
  • Yaf_Request_Abstract::getServer() - Получает переменную SERVER
  • Yaf_Request_Abstract::getParam() - Получает параметр вызова


Получает переменную Cookie

  • « Yaf_Request_Http::get
  • Yaf_Request_Http::getFiles »
  • PHP Manual
  • Yaf_Request_Http
  • Получает переменную Cookie

Yaf_Request_Http::getCookie

(Yaf >=1.0.0)

Yaf_Request_Http::getCookie — Получает переменную Cookie

Описание

public Yaf_Request_Http::getCookie(string $name, string $default = ?): mixed

Получает переменную Cookie

Список параметров

name

Имя Cookie

default

Если параметр указан, он будет возвращён, в случае если переменная не найдена

Возвращаемые значения

Смотрите также

  • Yaf_Request_Http::get() - Получает переменную от клиента
  • Yaf_Request_Http::getQuery() - Получает параметр запроса
  • Yaf_Request_Http::getPost() - Получает переменную POST
  • Yaf_Request_Http::getRaw() - Получает необработанное тело запроса
  • Yaf_Request_Abstract::getServer() - Получает переменную SERVER
  • Yaf_Request_Abstract::getParam() - Получает параметр вызова


Назначение getFiles

  • « Yaf_Request_Http::getCookie
  • Yaf_Request_Http::getPost »
  • PHP Manual
  • Yaf_Request_Http
  • Назначение getFiles

Yaf_Request_Http::getFiles

(Yaf >=1.0.0)

Yaf_Request_Http::getFiles — Назначение getFiles

Описание

public Yaf_Request_Http::getFiles(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает переменную POST

  • « Yaf_Request_Http::getFiles
  • Yaf_Request_Http::getQuery »
  • PHP Manual
  • Yaf_Request_Http
  • Получает переменную POST

Yaf_Request_Http::getPost

(Yaf >=1.0.0)

Yaf_Request_Http::getPost — Получает переменную POST

Описание

public Yaf_Request_Http::getPost(string $name, string $default = ?): mixed

Получает переменную POST

Список параметров

name

Имя переменной

default

Если параметр указан, он будет возвращён, в случае если переменная не найдена

Возвращаемые значения

Смотрите также

  • Yaf_Request_Http::get() - Получает переменную от клиента
  • Yaf_Request_Http::getQuery() - Получает параметр запроса
  • Yaf_Request_Http::getCookie() - Получает переменную Cookie
  • Yaf_Request_Http::getRaw() - Получает необработанное тело запроса
  • Yaf_Request_Abstract::getServer() - Получает переменную SERVER
  • Yaf_Request_Abstract::getParam() - Получает параметр вызова


Получает параметр запроса

  • « Yaf_Request_Http::getPost
  • Yaf_Request_Http::getRaw »
  • PHP Manual
  • Yaf_Request_Http
  • Получает параметр запроса

Yaf_Request_Http::getQuery

(Yaf >=1.0.0)

Yaf_Request_Http::getQuery — Получает параметр запроса

Описание

public Yaf_Request_Http::getQuery(string $name, string $default = ?): mixed

Получает переменную GET

Список параметров

name

Имя переменной

default

Если параметр указан, он будет возвращён, в случае если переменная не найдена

Возвращаемые значения

Смотрите также

  • Yaf_Request_Http::get() - Получает переменную от клиента
  • Yaf_Request_Http::getPost() - Получает переменную POST
  • Yaf_Request_Http::getCookie() - Получает переменную Cookie
  • Yaf_Request_Http::getRaw() - Получает необработанное тело запроса
  • Yaf_Request_Abstract::getServer() - Получает переменную SERVER
  • Yaf_Request_Abstract::getParam() - Получает параметр вызова


Получает необработанное тело запроса

  • « Yaf_Request_Http::getQuery
  • Yaf_Request_Http::getRequest »
  • PHP Manual
  • Yaf_Request_Http
  • Получает необработанное тело запроса

Yaf_Request_Http::getRaw

(Yaf >=3.0.7)

Yaf_Request_Http::getRaw — Получает необработанное тело запроса

Описание

public Yaf_Request_Http::getRaw(): mixed

Получает необработанное тело запроса

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку в случае успешного выполнения, FALSE в случае возникновения ошибки.

Смотрите также

  • Yaf_Request_Http::get() - Получает переменную от клиента
  • Yaf_Request_Http::getPost() - Получает переменную POST
  • Yaf_Request_Http::getCookie() - Получает переменную Cookie
  • Yaf_Request_Http::getQuery() - Получает параметр запроса
  • Yaf_Request_Abstract::getServer() - Получает переменную SERVER
  • Yaf_Request_Abstract::getParam() - Получает параметр вызова


Назначение getRequest

  • « Yaf_Request_Http::getRaw
  • Yaf_Request_Http::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Http
  • Назначение getRequest

Yaf_Request_Http::getRequest

(Yaf >=1.0.0)

Yaf_Request_Http::getRequest — Назначение getRequest

Описание

public Yaf_Request_Http::getRequest(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определяет, является ли запрос Ajax-запросом

  • « Yaf_Request_Http::getRequest
  • Yaf_Request_Simple »
  • PHP Manual
  • Yaf_Request_Http
  • Определяет, является ли запрос Ajax-запросом

Yaf_Request_Http::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Http::isXmlHttpRequest — Определяет, является ли запрос Ajax-запросом

Описание

public Yaf_Request_Http::isXmlHttpRequest(): bool

Проверяет запрос, является ли он запросом Ajax.

Замечание:

Метод зависит от заголовка запроса: HTTP_X_REQUESTED_WITH, некоторые библиотеки Javascript не устанавливают этот заголовок при выполнении запроса Ajax

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean


Класс Yaf_Request_Simple

(Yaf >=1.0.0)

Введение

Yaf_Request_Simple обычно используется в целях тестирования. Например, для эмуляции специальных запросов из режима CLI.

Обзор классов

class Yaf_Request_Simple extends Yaf_Request_Abstract {
/* Константы */
const string SCHEME_HTTP = http;
const string SCHEME_HTTPS = https;
/* Свойства */
/* Методы */
public __construct(
string $method = ?,
string $module = ?,
string $controller = ?,
string $action = ?,
array $params = ?
)
public get(): void
public getCookie(): void
public getFiles(): void
public getPost(): void
public getQuery(): void
public getRequest(): void
public isXmlHttpRequest(): void
/* Наследуемые методы */
public Yaf_Request_Abstract::clearParams(): bool
public Yaf_Request_Abstract::getActionName(): void
public Yaf_Request_Abstract::getBaseUri(): void
public Yaf_Request_Abstract::getControllerName(): void
public Yaf_Request_Abstract::getEnv(string $name, string $default = ?): void
public Yaf_Request_Abstract::getException(): void
public Yaf_Request_Abstract::getLanguage(): void
public Yaf_Request_Abstract::getMethod(): string
public Yaf_Request_Abstract::getModuleName(): void
public Yaf_Request_Abstract::getParam(string $name, string $default = ?): mixed
public Yaf_Request_Abstract::getParams(): array
public Yaf_Request_Abstract::getRequestUri(): void
public Yaf_Request_Abstract::getServer(string $name, string $default = ?): void
public Yaf_Request_Abstract::isCli(): bool
public Yaf_Request_Abstract::isDispatched(): bool
public Yaf_Request_Abstract::isGet(): bool
public Yaf_Request_Abstract::isHead(): bool
public Yaf_Request_Abstract::isOptions(): bool
public Yaf_Request_Abstract::isPost(): bool
public Yaf_Request_Abstract::isPut(): bool
public Yaf_Request_Abstract::isRouted(): bool
public Yaf_Request_Abstract::isXmlHttpRequest(): bool
public Yaf_Request_Abstract::setActionName(string $action, bool $format_name = true): void
public Yaf_Request_Abstract::setBaseUri(string $uir): bool
public Yaf_Request_Abstract::setControllerName(string $controller, bool $format_name = true): void
public Yaf_Request_Abstract::setDispatched(): void
public Yaf_Request_Abstract::setModuleName(string $module, bool $format_name = true): 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::__construct — Конструктор класса Yaf_Request_Simple
  • Yaf_Request_Simple::get — Назначение get
  • Yaf_Request_Simple::getCookie — Назначение getCookie
  • Yaf_Request_Simple::getFiles — Назначение getFiles
  • Yaf_Request_Simple::getPost — Назначение getPost
  • Yaf_Request_Simple::getQuery — Назначение getQuery
  • Yaf_Request_Simple::getRequest — Назначение getRequest
  • Yaf_Request_Simple::isXmlHttpRequest — Определяет, является ли запрос AJAX-запросом


Конструктор класса Yaf_Request_Simple

  • « Yaf_Request_Simple
  • Yaf_Request_Simple::get »
  • PHP Manual
  • Yaf_Request_Simple
  • Конструктор класса Yaf_Request_Simple

Yaf_Request_Simple::__construct

(Yaf >=1.0.0)

Yaf_Request_Simple::__construct — Конструктор класса Yaf_Request_Simple

Описание

public Yaf_Request_Simple::__construct(
string $method = ?,
string $module = ?,
string $controller = ?,
string $action = ?,
array $params = ?
)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение get

  • « Yaf_Request_Simple::__construct
  • Yaf_Request_Simple::getCookie »
  • PHP Manual
  • Yaf_Request_Simple
  • Назначение get

Yaf_Request_Simple::get

(Yaf >=1.0.0)

Yaf_Request_Simple::get — Назначение get

Описание

public Yaf_Request_Simple::get(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение getCookie

  • « Yaf_Request_Simple::get
  • Yaf_Request_Simple::getFiles »
  • PHP Manual
  • Yaf_Request_Simple
  • Назначение getCookie

Yaf_Request_Simple::getCookie

(Yaf >=1.0.0)

Yaf_Request_Simple::getCookie — Назначение getCookie

Описание

public Yaf_Request_Simple::getCookie(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение getFiles

  • « Yaf_Request_Simple::getCookie
  • Yaf_Request_Simple::getPost »
  • PHP Manual
  • Yaf_Request_Simple
  • Назначение getFiles

Yaf_Request_Simple::getFiles

(Yaf >=1.0.0)

Yaf_Request_Simple::getFiles — Назначение getFiles

Описание

public Yaf_Request_Simple::getFiles(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение getPost

  • « Yaf_Request_Simple::getFiles
  • Yaf_Request_Simple::getQuery »
  • PHP Manual
  • Yaf_Request_Simple
  • Назначение getPost

Yaf_Request_Simple::getPost

(Yaf >=1.0.0)

Yaf_Request_Simple::getPost — Назначение getPost

Описание

public Yaf_Request_Simple::getPost(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение getQuery

  • « Yaf_Request_Simple::getPost
  • Yaf_Request_Simple::getRequest »
  • PHP Manual
  • Yaf_Request_Simple
  • Назначение getQuery

Yaf_Request_Simple::getQuery

(Yaf >=1.0.0)

Yaf_Request_Simple::getQuery — Назначение getQuery

Описание

public Yaf_Request_Simple::getQuery(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение getRequest

  • « Yaf_Request_Simple::getQuery
  • Yaf_Request_Simple::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Simple
  • Назначение getRequest

Yaf_Request_Simple::getRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::getRequest — Назначение getRequest

Описание

public Yaf_Request_Simple::getRequest(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определяет, является ли запрос AJAX-запросом

  • « Yaf_Request_Simple::getRequest
  • Yaf_Response_Abstract »
  • PHP Manual
  • Yaf_Request_Simple
  • Определяет, является ли запрос AJAX-запросом

Yaf_Request_Simple::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::isXmlHttpRequest — Определяет, является ли запрос AJAX-запросом

Описание

public Yaf_Request_Simple::isXmlHttpRequest(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Всегда возвращает false для Yaf_Request_Simple

Смотрите также

  • Yaf_Request_Abstract::isXmlHTTPRequest() - Определяет, является ли запрос AJAX-запросом
  • Yaf_Request_Http::isXmlHTTPRequest() - Определяет, является ли запрос Ajax-запросом


Класс Yaf_Response_Abstract

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Response_Abstract {
/* Константы */
const string DEFAULT_BODY = "content";
/* Свойства */
protected $_header;
protected $_body;
protected $_sendheader;
/* Методы */
public __construct()
public appendBody(string $content, string $key = ?): bool
public clearBody(string $key = ?): bool
public clearHeaders(): void
public getBody(string $key = ?): mixed
public getHeader(): void
public prependBody(string $content, string $key = ?): bool
public response(): void
protected setAllHeaders(): void
public setBody(string $content, string $key = ?): bool
public setHeader(string $name, string $value, bool $replace = ?): bool
public setRedirect(string $url): bool
private __toString(): string
public __destruct()
}

Свойства

_header

_body

_sendheader

Содержание

  • Yaf_Response_Abstract::appendBody — Добавляет содержимое к телу ответа
  • Yaf_Response_Abstract::clearBody — Сбрасывает все существующее тело ответа
  • Yaf_Response_Abstract::clearHeaders — Сбрасывает все установленные заголовки
  • Yaf_Response_Abstract::__construct — Конструктор класса Yaf_Response_Abstract
  • Yaf_Response_Abstract::__destruct — Деструктор класса Yaf_Response_Abstract
  • Yaf_Response_Abstract::getBody — Получает существующее содержимое
  • Yaf_Response_Abstract::getHeader — Назначение getHeader
  • Yaf_Response_Abstract::prependBody — Назначение prependBody
  • Yaf_Response_Abstract::response — Отправляет ответ
  • Yaf_Response_Abstract::setAllHeaders — Назначение setAllHeaders
  • Yaf_Response_Abstract::setBody — Устанавливает содержимое ответа
  • Yaf_Response_Abstract::setHeader — Устанавливает заголовок ответа
  • Yaf_Response_Abstract::setRedirect — Назначение setRedirect
  • Yaf_Response_Abstract::__toString — Получает все тело в виде строки


Добавляет содержимое к телу ответа

  • « Yaf_Response_Abstract
  • Yaf_Response_Abstract::clearBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • Добавляет содержимое к телу ответа

Yaf_Response_Abstract::appendBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::appendBody — Добавляет содержимое к телу ответа

Описание

public Yaf_Response_Abstract::appendBody(string $content, string $key = ?): bool

Добавляет содержимое в существующий блок содержимого

Список параметров

body

Строка содержимого

key

Ключ контента, вы можете установить контент с ключом, если вы не укажете, то будет использоваться Yaf_Response_Abstract::DEFAULT_BODY

Замечание:

Параметр добавлен с 2.2.0

Возвращаемые значения

bool

Примеры

Пример #1 Пример использования Yaf_Response_Abstract::appendBody()

<?php
$response = new Yaf_Response_Http();

$response->setBody("Привет")->prependBody(", Мир");

echo $response;
?>

Результатом выполнения данного примера будет что-то подобное:

Привет, Мир

Смотрите также

  • Yaf_Config_Ini
  • Yaf_Response_Abstract::getBody() - Получает существующее содержимое
  • Yaf_Response_Abstract::setBody() - Устанавливает содержимое ответа
  • Yaf_Response_Abstract::prependBody() - Назначение prependBody
  • Yaf_Response_Abstract::clearBody() - Сбрасывает все существующее тело ответа


Сбрасывает все существующее тело ответа

  • « Yaf_Response_Abstract::appendBody
  • Yaf_Response_Abstract::clearHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • Сбрасывает все существующее тело ответа

Yaf_Response_Abstract::clearBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearBody — Сбрасывает все существующее тело ответа

Описание

public Yaf_Response_Abstract::clearBody(string $key = ?): bool

Очищает существующее содержимое

Список параметров

key

Ключ содержимого, если вы не укажете, будет очищено все содержимое.

Замечание:

Параметр был добавлен с 2.2.0

Возвращаемые значения

Смотрите также

  • Yaf_Response_Abstract::setBody() - Устанавливает содержимое ответа
  • Yaf_Response_Abstract::appendBody() - Добавляет содержимое к телу ответа
  • Yaf_Response_Abstract::prependBody() - Назначение prependBody
  • Yaf_Response_Abstract::getBody() - Получает существующее содержимое


Сбрасывает все установленные заголовки

  • « Yaf_Response_Abstract::clearBody
  • Yaf_Response_Abstract::__construct »
  • PHP Manual
  • Yaf_Response_Abstract
  • Сбрасывает все установленные заголовки

Yaf_Response_Abstract::clearHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearHeaders — Сбрасывает все установленные заголовки

Описание

public Yaf_Response_Abstract::clearHeaders(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Response_Abstract::getHeader() - Назначение getHeader
  • Yaf_Response_Abstract::setHeader() - Устанавливает заголовок ответа


Конструктор класса Yaf_Response_Abstract

  • « Yaf_Response_Abstract::clearHeaders
  • Yaf_Response_Abstract::__destruct »
  • PHP Manual
  • Yaf_Response_Abstract
  • Конструктор класса Yaf_Response_Abstract

Yaf_Response_Abstract::__construct

(Yaf >=1.0.0)

Yaf_Response_Abstract::__construct — Конструктор класса Yaf_Response_Abstract

Описание

public Yaf_Response_Abstract::__construct()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Деструктор класса Yaf_Response_Abstract

  • « Yaf_Response_Abstract::__construct
  • Yaf_Response_Abstract::getBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • Деструктор класса Yaf_Response_Abstract

Yaf_Response_Abstract::__destruct

(Yaf >=1.0.0)

Yaf_Response_Abstract::__destruct — Деструктор класса Yaf_Response_Abstract

Описание

public Yaf_Response_Abstract::__destruct()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает существующее содержимое

  • « Yaf_Response_Abstract::__destruct
  • Yaf_Response_Abstract::getHeader »
  • PHP Manual
  • Yaf_Response_Abstract
  • Получает существующее содержимое

Yaf_Response_Abstract::getBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::getBody — Получает существующее содержимое

Описание

public Yaf_Response_Abstract::getBody(string $key = ?): mixed

Получает существующее содержимое

Список параметров

key

Ключ содержимого, если вы не укажете, то будет использоваться Yaf_Response_Abstract::DEFAULT_BODY. Если вы передадите null, тогда все содержимое будет возвращено как массив

Замечание:

Параметр был добавлен с 2.2.0

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Response_Abstract::getBody()

<?php
$response = new Yaf_Response_Http();

$response->setBody("Привет")->setBody(", Мир", "footer");

var_dump($response->getBody()); //по умолчанию
var_dump($response->getBody(Yaf_Response_Abstract::DEFAULT_BODY)); //так же, как и выше
var_dump($response->getBody("footer"));
var_dump($response->getBody(NULL)); //получить все
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "Привет"
string(5) "Привет"
string(6) ", Мир"
array(2) {
  ["content"]=>
  string(5) "Привет"
  ["footer"]=>
  string(6) ", Мир"
}

Смотрите также

  • Yaf_Response_Abstract::setBody() - Устанавливает содержимое ответа
  • Yaf_Response_Abstract::appendBody() - Добавляет содержимое к телу ответа
  • Yaf_Response_Abstract::prependBody() - Назначение prependBody
  • Yaf_Response_Abstract::clearBody() - Сбрасывает все существующее тело ответа


Назначение getHeader

  • « Yaf_Response_Abstract::getBody
  • Yaf_Response_Abstract::prependBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • Назначение getHeader

Yaf_Response_Abstract::getHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::getHeader — Назначение getHeader

Описание

public Yaf_Response_Abstract::getHeader(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Response_Abstract::setHeader() - Устанавливает заголовок ответа
  • Yaf_Response_Abstract::cleanHeaders()


Назначение prependBody

  • « Yaf_Response_Abstract::getHeader
  • Yaf_Response_Abstract::response »
  • PHP Manual
  • Yaf_Response_Abstract
  • Назначение prependBody

Yaf_Response_Abstract::prependBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::prependBody — Назначение prependBody

Описание

public Yaf_Response_Abstract::prependBody(string $content, string $key = ?): bool

Добавляет содержимое в существующий блок содержимого

Список параметров

body

Строка содержимого

key

Ключ содержимого, вы можете установить содержимое с ключом, если вы не укажете, то будет использоваться Yaf_Response_Abstract::DEFAULT_BODY

Замечание:

Параметр добавлен с 2.2.0

Возвращаемые значения

bool

Примеры

Пример #1 Пример использования Yaf_Response_Abstract::prependBody()

<?php
$response = new Yaf_Response_Http();

$response->setBody("Мир")->prependBody("Привет ,");

echo $response;
?>

Результатом выполнения данного примера будет что-то подобное:

Привет, Мир

Смотрите также

  • Yaf_Response_Abstract::getBody() - Получает существующее содержимое
  • Yaf_Response_Abstract::setBody() - Устанавливает содержимое ответа
  • Yaf_Response_Abstract::appendBody() - Добавляет содержимое к телу ответа
  • Yaf_Response_Abstract::clearBody() - Сбрасывает все существующее тело ответа


Отправляет ответ

  • « Yaf_Response_Abstract::prependBody
  • Yaf_Response_Abstract::setAllHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • Отправляет ответ

Yaf_Response_Abstract::response

(Yaf >=1.0.0)

Yaf_Response_Abstract::response — Отправляет ответ

Описание

public Yaf_Response_Abstract::response(): void

Отправляет ответ

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Response_Abstract::response()

<?php
$response = new Yaf_Response_Http();

$response->setBody("Привет")->setBody(", Мир", "footer");

$response->response();
?>

Результатом выполнения данного примера будет что-то подобное:

Привет, Мир

Смотрите также

  • Yaf_Response_Abstract::setBody() - Устанавливает содержимое ответа
  • Yaf_Response_Abstract::clearBody() - Сбрасывает все существующее тело ответа


Назначение setAllHeaders

  • « Yaf_Response_Abstract::response
  • Yaf_Response_Abstract::setBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • Назначение setAllHeaders

Yaf_Response_Abstract::setAllHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::setAllHeaders — Назначение setAllHeaders

Описание

protected Yaf_Response_Abstract::setAllHeaders(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Устанавливает содержимое ответа

  • « Yaf_Response_Abstract::setAllHeaders
  • Yaf_Response_Abstract::setHeader »
  • PHP Manual
  • Yaf_Response_Abstract
  • Устанавливает содержимое ответа

Yaf_Response_Abstract::setBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::setBody — Устанавливает содержимое ответа

Описание

public Yaf_Response_Abstract::setBody(string $content, string $key = ?): bool

Устанавливает содержимое ответа

Список параметров

body

Строка содержимого

key

Ключ содержимого, вы можете установить содержимое с ключом, если вы не укажете, то будет использоваться Yaf_Response_Abstract::DEFAULT_BODY

Замечание:

Параметр добавлен с 2.2.0

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Response_Abstract::setBody()

<?php
$response = new Yaf_Response_Http();

$response->setBody("Привет")->setBody(", Мир", "footer");

print_r($response);
echo $response;
?>

Результатом выполнения данного примера будет что-то подобное:

Yaf_Response_Http Object
(
    [_header:protected] => Array
        (
        )

    [_body:protected] => Array
        (
            [content] => Привет
            [footer] => , Мир
        )

    [_sendheader:protected] => 1
    [_response_code:protected] => 200
)
Привет, Мир

Смотрите также

  • Yaf_Response_Abstract::getBody() - Получает существующее содержимое
  • Yaf_Response_Abstract::appendBody() - Добавляет содержимое к телу ответа
  • Yaf_Response_Abstract::prependBody() - Назначение prependBody
  • Yaf_Response_Abstract::clearBody() - Сбрасывает все существующее тело ответа


Устанавливает заголовок ответа

  • « Yaf_Response_Abstract::setBody
  • Yaf_Response_Abstract::setRedirect »
  • PHP Manual
  • Yaf_Response_Abstract
  • Устанавливает заголовок ответа

Yaf_Response_Abstract::setHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::setHeader — Устанавливает заголовок ответа

Описание

public Yaf_Response_Abstract::setHeader(string $name, string $value, bool $replace = ?): bool

Используется для отправки HTTP-заголовка

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Response_Abstract::getHeader() - Назначение getHeader
  • Yaf_Response_Abstract::cleanHeaders()


Назначение setRedirect

  • « Yaf_Response_Abstract::setHeader
  • Yaf_Response_Abstract::__toString »
  • PHP Manual
  • Yaf_Response_Abstract
  • Назначение setRedirect

Yaf_Response_Abstract::setRedirect

(Yaf >=1.0.0)

Yaf_Response_Abstract::setRedirect — Назначение setRedirect

Описание

public Yaf_Response_Abstract::setRedirect(string $url): bool

Список параметров

url

Адрес для перенаправления

Возвращаемые значения


Получает все тело в виде строки

  • « Yaf_Response_Abstract::setRedirect
  • Yaf_Route_Interface »
  • PHP Manual
  • Yaf_Response_Abstract
  • Получает все тело в виде строки

Yaf_Response_Abstract::__toString

(Yaf >=1.0.0)

Yaf_Response_Abstract::__toString — Получает все тело в виде строки

Описание

private Yaf_Response_Abstract::__toString(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Route_Interface

(Yaf >=1.0.0)

Введение

Yaf_Route_Interface используется для задания собственной маршрутизации.

Обзор классов

class Yaf_Route_Interface {
/* Методы */
abstract public assemble(array $info, array $query = ?): string
abstract public route(Yaf_Request_Abstract $request): bool
}

Содержание

  • Yaf_Route_Interface::assemble — Собирает запрос
  • Yaf_Route_Interface::route — Направление запроса


Собирает запрос

  • « Yaf_Route_Interface
  • Yaf_Route_Interface::route »
  • PHP Manual
  • Yaf_Route_Interface
  • Собирает запрос

Yaf_Route_Interface::assemble

(Yaf >=2.3.0)

Yaf_Route_Interface::assemble — Собирает запрос

Описание

abstract public Yaf_Route_Interface::assemble(array $info, array $query = ?): string

Метод возвращает URL в соответствии с информацией аргумента и добавляет строки запроса к URL в соответствии с запросом аргумента.

Маршрут должен реализовывать этот метод в соответствии со своими правилами и выполнять обратный процесс.

Список параметров

info

query

Возвращаемые значения


Направление запроса

  • « Yaf_Route_Interface::assemble
  • Yaf_Route_Map »
  • PHP Manual
  • Yaf_Route_Interface
  • Направление запроса

Yaf_Route_Interface::route

(Yaf >=1.0.0)

Yaf_Route_Interface::route — Направление запроса

Описание

abstract public Yaf_Route_Interface::route(Yaf_Request_Abstract $request): bool

Yaf_Route_Interface::route() - это единственный метод, который должен реализовывать пользовательский маршрут.

Замечание:

начиная с 2.3.0, должен быть реализован ещё один метод, смотрите Yaf_Route_Interface::assemble().

Если метод возвращает true, тогда процесс маршрута будет завершён. В противном случае Yaf_Router вызовет следующий маршрут в стеке маршрутов для запроса маршрута.

Этот метод установит результат маршрута для запроса параметра,
вызвав Yaf_Request_Abstract::setControllerName(),
Yaf_Request_Abstract::setActionName() и
Yaf_Request_Abstract::setModuleName().

Метод должен также вызывать Yaf_Request_Abstract::setRouted(), чтобы запрос наконец-то был перенаправлен.

Список параметров

request

Экземпляр Yaf_Request_Abstract.

Возвращаемые значения


Класс Yaf_Route_Map

(Yaf >=1.0.0)

Введение

Yaf_Route_Map - это встроенный маршрут, он просто преобразует конечную точку URI (ту часть URI, которая идёт после базового URI: смотрите Yaf_Request_Abstract::setBaseUri()) в имя контроллера или имя действия (зависит от параметра, переданного в Yaf_Route_Map::__construct()) в следующем правиле: 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()).

Обзор классов

class Yaf_Route_Map implements Yaf_Route_Interface {
/* Свойства */
protected $_ctl_router;
protected $_delimiter;
/* Методы */
public __construct(string $controller_prefer = false, string $delimiter = "")
public assemble(array $info, array $query = ?): string
public route(Yaf_Request_Abstract $request): bool
}

Свойства

_ctl_router

_delimiter

Содержание

  • Yaf_Route_Map::assemble — Собирает URL
  • Yaf_Route_Map::__construct — Назначение __construct
  • Yaf_Route_Map::route — Назначение route


Собирает URL

  • « Yaf_Route_Map
  • Yaf_Route_Map::__construct »
  • PHP Manual
  • Yaf_Route_Map
  • Собирает URL

Yaf_Route_Map::assemble

(Yaf >=2.3.0)

Yaf_Route_Map::assemble — Собирает URL

Описание

public Yaf_Route_Map::assemble(array $info, array $query = ?): string

Собирает URL.

Список параметров

info

query

Возвращаемые значения

Возвращает строку (string) в случае успешного выполнения или null в случае возникновения ошибки.

Ошибки

Может выбросить Yaf_Exception_TypeError.

Примеры

Пример #1 Пример использования Yaf_Route_Map::assemble()

<?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"


Назначение __construct

  • « Yaf_Route_Map::assemble
  • Yaf_Route_Map::route »
  • PHP Manual
  • Yaf_Route_Map
  • Назначение __construct

Yaf_Route_Map::__construct

(Yaf >=1.0.0)

Yaf_Route_Map::__construct — Назначение __construct

Описание

public Yaf_Route_Map::__construct(string $controller_prefer = false, string $delimiter = "")

Список параметров

controller_prefer

Должен ли результат рассматриваться как контролёр или действие

delimiter

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Route_Map()

<?php
/**
* Добавить карту маршрута в стек маршрутов Yaf_Router
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Map());
?>

Результатом выполнения данного примера будет что-то подобное:

/* для http://yourdomain.com/product/foo/bar
 * результатом маршрута будут следующие значения:
 */
array(
  "controller" => "product_foo_bar",
)

Пример #2 Пример использования Yaf_Route_Map()

<?php
/**
* Добавить карту маршрута в стек маршрутов Yaf_Router
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Map(true, "_"));
?>

Результатом выполнения данного примера будет что-то подобное:

/* для http://yourdomain.com/user/list/_/foo/22
 * результатом маршрута будут следующие значения::
 */
array(
    "action" => "user_list",
)

/**
 * и параметры запроса:
 */
array(
  "foo"   => 22,
)

Пример #3 Пример использования Yaf_Route_Map()

<?php
/**
* Добавьте карту маршрута в стек маршрутов Yaf_Router, вызвав addconfig
*/
$config = array(
"name" => array(
"type" => "map", //маршрут Yaf_Route_Map
"controllerPrefer" => FALSE,
"delimiter" => "#!",
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config));
?>

Смотрите также

  • Yaf_Router::addRoute() - Добавляет новый маршрут в маршрутизатор
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite


Назначение route

  • « Yaf_Route_Map::__construct
  • Yaf_Route_Regex »
  • PHP Manual
  • Yaf_Route_Map
  • Назначение route

Yaf_Route_Map::route

(Yaf >=1.0.0)

Yaf_Route_Map::route — Назначение route

Описание

public Yaf_Route_Map::route(Yaf_Request_Abstract $request): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения


Класс Yaf_Route_Regex

(Yaf >=1.0.0)

Введение

Yaf_Route_Regex - самый гибкий маршрутизатор из всех встроенных маршрутизаторов Yaf.

Обзор классов

class Yaf_Route_Regex extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Свойства */
protected $_route;
protected $_default;
protected $_maps;
protected $_verify;
/* Методы */
public __construct(
string $match,
array $route,
array $map = ?,
array $verify = ?,
string $reverse = ?
)
public assemble(array $info, array $query = ?): ?string
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

Возвращаемые значения

Возвращает строку (string) в случае успешного выполнения или null в случае возникновения ошибки.

Примеры

Пример #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() - Добавляет новый маршрут в маршрутизатор
  • Yaf_Router::addConfig() - Добавляет настроенные маршруты в маршрутизатор
  • 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()

Обзор классов

class Yaf_Route_Rewrite extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Свойства */
protected $_route;
protected $_default;
protected $_verify;
/* Методы */
public __construct(string $match, array $route, array $verify = ?)
public assemble(array $info, array $query = ?): string
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 — Собирает URL
  • Yaf_Route_Rewrite::__construct — Конструктор класса Yaf_Route_Rewrite
  • Yaf_Route_Rewrite::route — Назначение route


Собирает URL

  • « Yaf_Route_Rewrite
  • Yaf_Route_Rewrite::__construct »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Собирает URL

Yaf_Route_Rewrite::assemble

(Yaf >=2.3.0)

Yaf_Route_Rewrite::assemble — Собирает URL

Описание

public Yaf_Route_Rewrite::assemble(array $info, array $query = ?): string

Собирает URL.

Список параметров

info

query

Возвращаемые значения

Возвращает строку (string).

Примеры

Пример #1 Пример использования Yaf_Route_Rewrite::assemble()

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

  • « Yaf_Route_Rewrite::assemble
  • Yaf_Route_Rewrite::route »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Конструктор класса Yaf_Route_Rewrite

Yaf_Route_Rewrite::__construct

(Yaf >=1.0.0)

Yaf_Route_Rewrite::__construct — Конструктор класса Yaf_Route_Rewrite

Описание

public Yaf_Route_Rewrite::__construct(string $match, array $route, array $verify = ?)

Список параметров

match

Шаблон, который будет использоваться для сопоставления URI запроса, если он не совпадает, Yaf_Route_Rewrite вернёт false.

Вы можете использовать: стиль имени для именования совпадающих сегментов и использовать * для соответствия остальным сегментам URL.

route

Когда шаблон совпадения соответствует запросу uri, Yaf_Route_Rewrite будет использовать это, чтобы решить, какой модуль/контроллер/действие является пунктом назначения.

Любой модуль/контроллер/действие в этом массиве не является обязательным, если вы не назначите конкретное значение, оно будет перенаправлено на значение по умолчанию.

verify

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Route_Rewrite()

<?php
/**
* Добавить маршрут перезаписи в стек маршрутов Yaf_Router
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_rewrite(
"/product/:name/:id/*", //запрос на совпадение с ведущим "/product"
array(
'controller' => "product", //маршрут к контроллеру product,
),
)
);
?>

Результатом выполнения данного примера будет что-то подобное:

/* для http://yourdomain.com/product/foo/22/foo/bar
 * результатом маршрута будут следующие значения:
 */
array(
  "controller" => "product",
  "module"     => "index", //(по умолчанию)
  "action"     => "index", //(по умолчанию)
)

/**
 * и параметры запроса:
 */
array(
  "name" => "foo",
  "id"   => 22,
  "foo"  => bar
)

Пример #2 Пример использования Yaf_Route_Rewrite()

<?php
/**
* Добавьте маршрут перезаписи в стек маршрутов Yaf_Router, вызвав addconfig
*/
$config = array(
"name" => array(
"type" => "rewrite", //маршрут Yaf_Route_Rewrite
"match" => "/user-list/:id", //совпадение только по /user/list/?/
"route" => array(
'controller' => "user", //маршрут к контроллеру user,
'action' => "list", //маршрут к действию list
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config));
?>

Результатом выполнения данного примера будет что-то подобное:

/* для http://yourdomain.com/user-list/22
 * результатом маршрута будут следующие значения:
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(по умолчанию)
)

/**
 * и параметры запроса:
 */
array(
  "id"   => 22,
)

Пример #3 Пример использования Yaf_Route_Rewrite(as of 2.3.0)()

<?php
/**
* Добавить переписать маршрут использовать результат поиска как имя м/к/д
*/
$config = array(
"name" => array(
"type" => "rewrite",
"match" => "/user-list/:a/:id", //совпадение только по /user-list/*
"route" => array(
'controller' => "user", //маршрут к контроллеру user,
'action' => ":a", //маршрут к действию :a
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config));
?>

Результатом выполнения данного примера будет что-то подобное:

/* для http://yourdomain.com/user-list/list/22
 * результатом маршрута будут следующие значения:
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(по умолчанию)
)

/**
 * и параметры запроса:
 */
array(
  "id"   => 22,
)

Смотрите также

  • Yaf_Router::addRoute() - Добавляет новый маршрут в маршрутизатор
  • Yaf_Router::addConfig() - Добавляет настроенные маршруты в маршрутизатор
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Map


Назначение route

  • « Yaf_Route_Rewrite::__construct
  • Yaf_Router »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Назначение route

Yaf_Route_Rewrite::route

(Yaf >=1.0.0)

Yaf_Route_Rewrite::route — Назначение route

Описание

public Yaf_Route_Rewrite::route(Yaf_Request_Abstract $request): bool

Список параметров

request

Возвращаемые значения


Класс Yaf_Router

(Yaf >=1.0.0)

Введение

Yaf_Router - это стандартный каркасный маршрутизатор. Маршрутизация - это процесс получения конечной точки URI (той части URI, которая идёт после базового URI: смотрите Yaf_Request_Abstract::setBaseUri()) и разложение её на параметры, чтобы определить, какой модуль, контроллер и действие должны получить запрос. Эти значения модуля, контроллера, действия и других параметров упакованы в объект Yaf_Request_Abstract, который затем обрабатывается Yaf_Dispatcher. Маршрутизация происходит только один раз: при первоначальном получении запроса и до отправки первого контроллера. Yaf_Router предназначен для обеспечения функциональности, подобной mod_rewrite, с использованием чистых структур PHP. Он основан на маршрутизации Ruby on Rails и не требует каких-либо предварительных знаний о перезаписи URL веб-сервера. Он предназначен для работы с одним правилом Apache mod_rewrite (одним из):

Пример #1 Правило перезаписи для Apache

RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php
или (предпочтительнее):

Пример #2 Правило перезаписи для 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]
При использовании Lighttpd используйте следующее правило перезаписи:

Пример #3 Правило перезаписи для Lighttpd

url.rewrite-once = (
  ".*\?(.*)$" => "/index.php?$1",
  ".*\.(js|ico|gif|jpg|png|css|html)$" => "$0",
  "" => "/index.php"
)
При использовании Nginx используйте следующее правило перезаписи:

Пример #4 Правило перезаписи для Nginx

server {
  listen ****;
  server_name  yourdomain.com;
  root   document_root;
  index  index.php index.html;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php/$1 last;
  }
}

Маршрут по умолчанию

Yaf_Router поставляется с предварительно настроенным маршрутом по умолчанию Yaf_Route_Static, который будет соответствовать URI в форме контроллера/действия. Кроме того, имя модуля может быть указано в качестве первого элемента пути, что позволяет использовать URI формы модуля/контроллера/действия. Наконец, он также будет соответствовать любым дополнительным параметрам, добавляемым к URI по умолчанию - controller /action/var1/value1/var2/value2.

Замечание:

Имя модуля должно быть определено в конфигурации с учётом application.module="Index,Foo,Bar", в этом случае только index, foo и bar могут рассматриваться как имя модуля. Если не настроено, есть только один модуль с именем "Index".

Некоторые примеры соответствия таких маршрутов:

Пример #5 Пример использования Yaf_Route_Static(маршрут по умолчанию)

// Предполагая следующую настройку:
$conf = array(
   "application" => array(
      "modules" => "Index,Blog",
   ),
);

Только контроллер:
http://example/news
    controller == news
Только действие (если определено yaf.action_prefer=1 в php.ini)
    action  == news

Неверный модуль отображается на имя контроллера:
http://example/foo
    controller == foo

Модуль + контроллер:
http://example/blog/archive
    module     == blog
    controller == archive

Модуль + контроллер + действие:
http://example/blog/archive/list
    module     == blog
    controller == archive
    action     == list

Модуль + контроллер + действие + параметры:
http://example/blog/archive/list/sort/alpha/date/desc
    module     == blog
    controller == archive
    action     == list
    sort       == alpha
    date       == desc

Обзор классов

class Yaf_Router {
/* Свойства */
protected $_routes;
protected $_current;
/* Методы */
public __construct()
public addConfig(Yaf_Config_Abstract $config): bool
public addRoute(string $name, Yaf_Route_Abstract $route): bool
public getCurrentRoute(): string
public getRoute(string $name): Yaf_Route_Interface
public getRoutes(): mixed
public route(Yaf_Request_Abstract $request): bool
}

Свойства

_routes

стек зарегистрированных маршрутов

_current

после фазы маршрутизации указывается название того, какой маршрут используется для маршрутизации текущего запроса. Вы можете получить его имя с помощью Yaf_Router::getCurrentRoute().

Содержание

  • Yaf_Router::addConfig — Добавляет настроенные маршруты в маршрутизатор
  • Yaf_Router::addRoute — Добавляет новый маршрут в маршрутизатор
  • Yaf_Router::__construct — Конструктор класса Yaf_Router
  • Yaf_Router::getCurrentRoute — Получает имя действующего маршрута
  • Yaf_Router::getRoute — Получает маршрут по имени
  • Yaf_Router::getRoutes — Получает зарегистрированные маршруты
  • Yaf_Router::route — Назначение route


Добавляет настроенные маршруты в маршрутизатор

  • « Yaf_Router
  • Yaf_Router::addRoute »
  • PHP Manual
  • Yaf_Router
  • Добавляет настроенные маршруты в маршрутизатор

Yaf_Router::addConfig

(Yaf >=1.0.0)

Yaf_Router::addConfig — Добавляет настроенные маршруты в маршрутизатор

Описание

public Yaf_Router::addConfig(Yaf_Config_Abstract $config): bool

Добавляет маршруты, определённые конфигурациями, в стек маршрутов Yaf_Router

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр Yaf_Config_Abstract, который должен содержать одну или несколько допустимых конфигураций маршрута

Примеры

Пример #1 Пример использования application.ini()

;порядок очень важен, предыдущий будет назван первым

;запрос на переписывание маршрута /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

;запрос соответствия регулярного выражения /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

;простое соответствие маршрута /**?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

;простое соответствие маршрутизатора /**?r=PATH_INFO
routes.route_name3.type="supervar"
routes.route_name3.varname=r

;карта маршрута соответствует любому запросу к контроллеру
routes.route_name4.type="map"
routes.route_name4.controllerPrefer=TRUE
routes.route_namer.delimiter="#!"

Пример #2 Пример использования Yaf_Dispatcher::autoConfig()

<?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();
/**
* мы можем добавить несколько предопределённых маршрутов в application.ini
*/
$router->addConfig(Yaf_Registry::get("config")->routes);
}
?>

Смотрите также

  • Yaf_Router::addRoute() - Добавляет новый маршрут в маршрутизатор
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Добавляет новый маршрут в маршрутизатор

  • « Yaf_Router::addConfig
  • Yaf_Router::__construct »
  • PHP Manual
  • Yaf_Router
  • Добавляет новый маршрут в маршрутизатор

Yaf_Router::addRoute

(Yaf >=1.0.0)

Yaf_Router::addRoute — Добавляет новый маршрут в маршрутизатор

Описание

public Yaf_Router::addRoute(string $name, Yaf_Route_Abstract $route): bool

По умолчанию, Yaf_Router использует Yaf_Route_Static в качестве маршрута по умолчанию. Вы можете добавить новые маршруты в стек маршрутов маршрутизатора, вызвав этот метод.

Более новый маршрут будет вызван раньше, чем старый (стек маршрутов), и если более новый маршрутизатор вернёт true, процесс маршрутизатора будет завершён. В противном случае будет вызван более старый.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Dispatcher::autoRender()

<?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();
/**
* мы можем добавить несколько предопределённых маршрутов в application.ini
*/
$router->addConfig(Yaf_Registry::get("config")->routes);
/**
* добавьте Rewrite route, затем запрос uri:
* http://example.com/product/list/22/foo
* будет соответствовать этому маршруту, и результат:
*
* [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() - Добавляет настроенные маршруты в маршрутизатор
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Конструктор класса Yaf_Router

  • « Yaf_Router::addRoute
  • Yaf_Router::getCurrentRoute »
  • PHP Manual
  • Yaf_Router
  • Конструктор класса Yaf_Router

Yaf_Router::__construct

(Yaf >=1.0.0)

Yaf_Router::__construct — Конструктор класса Yaf_Router

Описание

public Yaf_Router::__construct()

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает имя действующего маршрута

  • « Yaf_Router::__construct
  • Yaf_Router::getRoute »
  • PHP Manual
  • Yaf_Router
  • Получает имя действующего маршрута

Yaf_Router::getCurrentRoute

(Yaf >=1.0.0)

Yaf_Router::getCurrentRoute — Получает имя действующего маршрута

Описание

public Yaf_Router::getCurrentRoute(): string

Получает имя действующего маршрута.

Замечание:

Вы должны вызывать этот метод после завершения процесса маршрутизации, так как до этого этот метод всегда будет возвращать null.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка, название действующего маршрута.

Примеры

Пример #1 Регистрация некоторых маршрутов в 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);
}

/**
* зарегистрировать плагин
*/
public function __initPlugins(Yaf_Dispatcher $dispatcher) {
$dispatcher->registerPlugin(new DummyPlugin());
}
}
?>

Пример #2 Плагин Dummy.php (в 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());
}
}
?>

Результатом выполнения данного примера будет что-то подобное:

/* для http://yourdomain.com/product/list/1
 * DummyPlugin выведет:
 */
string(7) "rewrite"

/* для http://yourdomain.com/product/info/34
 * DummyPlugin выведет:
 */
string(5) "regex"

/* для другого запроса URI
 * DummyPlugin выведет:
 */
string(8) "_default"

Смотрите также

  • Yaf_Bootstrap_Abstract
  • Yaf_Plugin_Abstract
  • Yaf_Router::addRoute() - Добавляет новый маршрут в маршрутизатор


Получает маршрут по имени

  • « Yaf_Router::getCurrentRoute
  • Yaf_Router::getRoutes »
  • PHP Manual
  • Yaf_Router
  • Получает маршрут по имени

Yaf_Router::getRoute

(Yaf >=1.0.0)

Yaf_Router::getRoute — Получает маршрут по имени

Описание

public Yaf_Router::getRoute(string $name): Yaf_Route_Interface

Получает маршрут по имени, смотрите также Yaf_Router::getCurrentRoute()

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Bootstrap_Abstract
  • Yaf_Plugin_Abstract
  • Yaf_Router::addRoute() - Добавляет новый маршрут в маршрутизатор
  • Yaf_Router::getCurrentRoute() - Получает имя действующего маршрута


Получает зарегистрированные маршруты

  • « Yaf_Router::getRoute
  • Yaf_Router::route »
  • PHP Manual
  • Yaf_Router
  • Получает зарегистрированные маршруты

Yaf_Router::getRoutes

(Yaf >=1.0.0)

Yaf_Router::getRoutes — Получает зарегистрированные маршруты

Описание

public Yaf_Router::getRoutes(): mixed

Получает зарегистрированные маршруты

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение route

  • « Yaf_Router::getRoutes
  • Yaf_Route_Simple »
  • PHP Manual
  • Yaf_Router
  • Назначение route

Yaf_Router::route

(Yaf >=1.0.0)

Yaf_Router::route — Назначение route

Описание

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 в начало стека маршрутизации, иначе никакие другие маршрутизаторы не будут вызваны.

Обзор классов

class Yaf_Route_Simple implements Yaf_Route_Interface {
/* Свойства */
protected $controller;
protected $module;
protected $action;
/* Методы */
public __construct(string $module_name, string $controller_name, string $action_name)
public assemble(array $info, array $query = ?): string
public route(Yaf_Request_Abstract $request): bool
}

Свойства

controller

module

action

Содержание

  • Yaf_Route_Simple::assemble — Собирает URL
  • Yaf_Route_Simple::__construct — Конструктор класса Yaf_Route_Simple
  • Yaf_Route_Simple::route — Направляет запрос


Собирает URL

  • « Yaf_Route_Simple
  • Yaf_Route_Simple::__construct »
  • PHP Manual
  • Yaf_Route_Simple
  • Собирает URL

Yaf_Route_Simple::assemble

(Yaf >=2.3.0)

Yaf_Route_Simple::assemble — Собирает URL

Описание

public Yaf_Route_Simple::assemble(array $info, array $query = ?): string

Собирает URL.

Список параметров

info

query

Возвращаемые значения

Возвращает строку (string).

Ошибки

Выбрасывает Yaf_Exception_TypeError, если ключи параметра info ':c' or ':a' не заданы.

Примеры

Пример #1 Пример использования Yaf_Route_Simple::assemble()

<?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

  • « Yaf_Route_Simple::assemble
  • Yaf_Route_Simple::route »
  • PHP Manual
  • Yaf_Route_Simple
  • Конструктор класса Yaf_Route_Simple

Yaf_Route_Simple::__construct

(Yaf >=1.0.0)

Yaf_Route_Simple::__construct — Конструктор класса Yaf_Route_Simple

Описание

public Yaf_Route_Simple::__construct(string $module_name, string $controller_name, string $action_name)

Yaf_Route_Simple получит информацию о маршруте из строки запроса и параметры конструктора будут использоваться в качестве ключей при поиске информации о маршруте в $_GET.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

module_name

Имя ключа информации о модуле.

controller_name

Имя ключа информации о контроллере.

action_name

Имя ключа информации о действии.

Возвращаемые значения

Всегда возвращает true.

Примеры

Пример #1 Пример использования Yaf_Route_Simple::route()

<?php
$route = new Yaf_Route_Simple("m", "controller", "act");
Yaf_Router::getInstance()->addRoute("simple", $route);
?>

Пример #2 Пример использования Yaf_Route_Simple::route()

Запрос: http://yourdomain.com/path/?controller=a&act=b
=> module = default(index), controller = a, action = b

Запрос: http://yourdomain.com/path
=> module = default(index), controller = default(index), action = default(index)

Смотрите также

  • Yaf_Route_Supervar::route() - Назначение route
  • Yaf_Route_Static::route() - Направляет запрос
  • Yaf_Route_Regex::route() - Цель маршрута
  • Yaf_Route_Rewrite::route() - Назначение route
  • Yaf_Route_Map::route() - Назначение route


Направляет запрос

  • « Yaf_Route_Simple::__construct
  • Yaf_Route_Static »
  • PHP Manual
  • Yaf_Route_Simple
  • Направляет запрос

Yaf_Route_Simple::route

(Yaf >=1.0.0)

Yaf_Route_Simple::route — Направляет запрос

Описание

public Yaf_Route_Simple::route(Yaf_Request_Abstract $request): bool

смотрите Yaf_Route_Simple::__construct()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения

Всегда возвращает true

Смотрите также

  • Yaf_Route_Supervar::route() - Назначение route
  • Yaf_Route_Static::route() - Направляет запрос
  • Yaf_Route_Regex::route() - Цель маршрута
  • Yaf_Route_Rewrite::route() - Назначение route
  • Yaf_Route_Map::route() - Назначение route


Класс Yaf_Route_Static

(Yaf >=1.0.0)

Введение

По умолчанию, Yaf_Router содержит только Yaf_Route_Static.

И Yaf_Route_Static спроектирован таким образом, чтобы покрывать 80% всех возможных потребностей в маршрутизации.

Пожалуйста *ОБРАТИТЕ ВНИМАНИЕ*, что не нужно инстанциировать Yaf_Route_Static, также не нужно добавлять его в стек Yaf_Router, так как он есть в стеке маршрутизации Yaf_Router по умолчанию и всегда будет вызываться последним.

Обзор классов

class 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 — Собирает URL
  • Yaf_Route_Static::match — Назначение match
  • Yaf_Route_Static::route — Направляет запрос


Собирает URL

  • « Yaf_Route_Static
  • Yaf_Route_Static::match »
  • PHP Manual
  • Yaf_Route_Static
  • Собирает URL

Yaf_Route_Static::assemble

(Yaf >=2.3.0)

Yaf_Route_Static::assemble — Собирает URL

Описание

public Yaf_Route_Static::assemble(array $info, array $query = ?): string

Собирает URL.

Список параметров

info

query

Возвращаемые значения

Возвращает строку (string).

Ошибки

Выбрасывает Yaf_Exception_TypeError, если ключи параметра info ':c' and ':a' не заданы.

Примеры

Пример #1 Пример использования Yaf_Route_Static::assemble()

<?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"


Назначение match

  • « Yaf_Route_Static::assemble
  • Yaf_Route_Static::route »
  • PHP Manual
  • Yaf_Route_Static
  • Назначение match

Yaf_Route_Static::match

(Yaf >=1.0.0)

Yaf_Route_Static::match — Назначение match

Описание

public Yaf_Route_Static::match(string $uri): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

uri

Возвращаемые значения


Направляет запрос

  • « Yaf_Route_Static::match
  • Yaf_Route_Supervar »
  • PHP Manual
  • Yaf_Route_Static
  • Направляет запрос

Yaf_Route_Static::route

(Yaf >=1.0.0)

Yaf_Route_Static::route — Направляет запрос

Описание

public Yaf_Route_Static::route(Yaf_Request_Abstract $request): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения

Всегда возвращает true

Примеры

Пример #1 Пример использования Yaf_Route_Static::route()

// при условии, что определён только один модуль:Index
Запрос: http://yourdomain.com/a/b
=> module = index, controller=a, action=b

//при условии, что ap.action_prefer = On
Запрос: http://yourdomain.com/b
=> module = default(index), controller = default(index), action = b

//при условии, что ap.action_prefer = Off
Запрос: http://yourdomain.com/b
=> module = default(index), controller = b, action = default(index)

Запрос: http://yourdomain.com/a/b/foo/bar/test/a/id/4
=> module = default(index), controller = a, action = b, параметры запроса: foo = bar, test = a, id = 4

Смотрите также

  • Yaf_Route_Supervar::route() - Назначение route
  • Yaf_Route_Simple::route() - Направляет запрос
  • Yaf_Route_Regex::route() - Цель маршрута
  • Yaf_Route_Rewrite::route() - Назначение route
  • Yaf_Route_Map::route() - Назначение route


Класс Yaf_Route_Supervar

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Route_Supervar implements Yaf_Route_Interface {
/* Свойства */
protected $_var_name;
/* Методы */
public __construct(string $supervar_name)
public assemble(array $info, array $query = ?): string
public route(Yaf_Request_Abstract $request): bool
}

Свойства

_var_name

Содержание

  • Yaf_Route_Supervar::assemble — Собирает URL
  • Yaf_Route_Supervar::__construct — Назначение __construct
  • Yaf_Route_Supervar::route — Назначение route


Собирает URL

  • « Yaf_Route_Supervar
  • Yaf_Route_Supervar::__construct »
  • PHP Manual
  • Yaf_Route_Supervar
  • Собирает URL

Yaf_Route_Supervar::assemble

(Yaf >=2.3.0)

Yaf_Route_Supervar::assemble — Собирает URL

Описание

public Yaf_Route_Supervar::assemble(array $info, array $query = ?): string

Собирает URL.

Список параметров

info

query

Возвращаемые значения

Возвращает строку (string).

Ошибки

Выбрасывает Yaf_Exception_TypeError, если ключи параметра info ':c' and ':a' не заданы.

Примеры

Пример #1 Пример использования Yaf_Route_Supervar::assemble()

<?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'"


Назначение __construct

  • « Yaf_Route_Supervar::assemble
  • Yaf_Route_Supervar::route »
  • PHP Manual
  • Yaf_Route_Supervar
  • Назначение __construct

Yaf_Route_Supervar::__construct

(Yaf >=1.0.0)

Yaf_Route_Supervar::__construct — Назначение __construct

Описание

public Yaf_Route_Supervar::__construct(string $supervar_name)

Yaf_Route_Supervar похож на Yaf_Route_Static, разница в том, что Yaf_Route_Supervar будет искать информацию о пути в строке запроса, а параметр supervar_name является ключом.

Список параметров

supervar_name

Название ключа.

Возвращаемые значения

Примеры

Пример #1 Пример использования Yaf_Route_Supervar()

<?php
/**
* Добавление маршрута supervar в стек маршрутов Yaf_Router
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute(
"name",
new Yaf_Route_Supervar("r")
);
?>

Результатом выполнения данного примера будет что-то подобное:

/** для запроса: http://yourdomain.com/xx/oo/?r=/ctr/act/var/value
  * будет следующий результат:
  */
  array (
    "module"   => index(default),
    "controller" => ctr,
    "action"     => act,
    "params"     => array(
          "var" => value,
     )
  )

Смотрите также

  • Yaf_Router::addRoute() - Добавляет новый маршрут в маршрутизатор
  • Yaf_Router::addConfig() - Добавляет настроенные маршруты в маршрутизатор
  • Yaf_Route_Static
  • Yaf_Route_Regex
  • Yaf_Route_Simple
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Назначение route

  • « Yaf_Route_Supervar::__construct
  • Yaf_Session »
  • PHP Manual
  • Yaf_Route_Supervar
  • Назначение route

Yaf_Route_Supervar::route

(Yaf >=1.0.0)

Yaf_Route_Supervar::route — Назначение route

Описание

public Yaf_Route_Supervar::route(Yaf_Request_Abstract $request): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения

Если в $_GET есть ключ (который был определён в Yaf_Route_Supervar::__construct()), вернёт true, в противном случае вернёт false.


Класс Yaf_Session

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Session implements Iterator, ArrayAccess, Countable {
/* Свойства */
protected static $_instance;
protected $_session;
protected $_started;
/* Методы */
private __construct()
public count(): void
public current(): void
public del(string $name): void
public __get(string $name): void
public static getInstance(): void
public has(string $name): void
public __isset(string $name): void
public key(): void
public next(): 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
public __set(string $name, string $value): void
public start(): void
public __unset(string $name): void
public valid(): void
}

Свойства

_instance

_session

_started

Содержание

  • Yaf_Session::__construct — Конструктор класса Yaf_Session
  • Yaf_Session::count — Назначение count
  • Yaf_Session::current — Назначение current
  • Yaf_Session::del — Назначение del
  • Yaf_Session::__get — Назначение __get
  • Yaf_Session::getInstance — Назначение getInstance
  • Yaf_Session::has — Назначение has
  • Yaf_Session::__isset — Назначение __isset
  • Yaf_Session::key — Назначение key
  • Yaf_Session::next — Назначение next
  • Yaf_Session::offsetExists — Назначение offsetExists
  • Yaf_Session::offsetGet — Назначение offsetGet
  • Yaf_Session::offsetSet — Назначение offsetSet
  • Yaf_Session::offsetUnset — Назначение offsetUnset
  • Yaf_Session::rewind — Назначение rewind
  • Yaf_Session::__set — Назначение __set
  • Yaf_Session::start — Назначение start
  • Yaf_Session::__unset — Назначение __unset
  • Yaf_Session::valid — Назначение valid


Конструктор класса Yaf_Session

  • « Yaf_Session
  • Yaf_Session::count »
  • PHP Manual
  • Yaf_Session
  • Конструктор класса Yaf_Session

Yaf_Session::__construct

(Yaf >=1.0.0)

Yaf_Session::__construct — Конструктор класса Yaf_Session

Описание

private Yaf_Session::__construct()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение count

  • « Yaf_Session::__construct
  • Yaf_Session::current »
  • PHP Manual
  • Yaf_Session
  • Назначение count

Yaf_Session::count

(Yaf >=1.0.0)

Yaf_Session::count — Назначение count

Описание

public Yaf_Session::count(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение current

  • « Yaf_Session::count
  • Yaf_Session::del »
  • PHP Manual
  • Yaf_Session
  • Назначение current

Yaf_Session::current

(Yaf >=1.0.0)

Yaf_Session::current — Назначение current

Описание

public Yaf_Session::current(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение del

  • « Yaf_Session::current
  • Yaf_Session::__get »
  • PHP Manual
  • Yaf_Session
  • Назначение del

Yaf_Session::del

(Yaf >=1.0.0)

Yaf_Session::del — Назначение del

Описание

public Yaf_Session::del(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение __get

  • « Yaf_Session::del
  • Yaf_Session::getInstance »
  • PHP Manual
  • Yaf_Session
  • Назначение __get

Yaf_Session::__get

(Yaf >=1.0.0)

Yaf_Session::__get — Назначение __get

Описание

public Yaf_Session::__get(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение getInstance

  • « Yaf_Session::__get
  • Yaf_Session::has »
  • PHP Manual
  • Yaf_Session
  • Назначение getInstance

Yaf_Session::getInstance

(Yaf >=1.0.0)

Yaf_Session::getInstance — Назначение getInstance

Описание

public static Yaf_Session::getInstance(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение has

  • « Yaf_Session::getInstance
  • Yaf_Session::__isset »
  • PHP Manual
  • Yaf_Session
  • Назначение has

Yaf_Session::has

(Yaf >=1.0.0)

Yaf_Session::has — Назначение has

Описание

public Yaf_Session::has(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение __isset

  • « Yaf_Session::has
  • Yaf_Session::key »
  • PHP Manual
  • Yaf_Session
  • Назначение __isset

Yaf_Session::__isset

(Yaf >=1.0.0)

Yaf_Session::__isset — Назначение __isset

Описание

public Yaf_Session::__isset(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение key

  • « Yaf_Session::__isset
  • Yaf_Session::next »
  • PHP Manual
  • Yaf_Session
  • Назначение key

Yaf_Session::key

(Yaf >=1.0.0)

Yaf_Session::key — Назначение key

Описание

public Yaf_Session::key(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение next

  • « Yaf_Session::key
  • Yaf_Session::offsetExists »
  • PHP Manual
  • Yaf_Session
  • Назначение next

Yaf_Session::next

(Yaf >=1.0.0)

Yaf_Session::next — Назначение next

Описание

public Yaf_Session::next(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение offsetExists

  • « Yaf_Session::next
  • Yaf_Session::offsetGet »
  • PHP Manual
  • Yaf_Session
  • Назначение offsetExists

Yaf_Session::offsetExists

(Yaf >=1.0.0)

Yaf_Session::offsetExists — Назначение offsetExists

Описание

public Yaf_Session::offsetExists(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение offsetGet

  • « Yaf_Session::offsetExists
  • Yaf_Session::offsetSet »
  • PHP Manual
  • Yaf_Session
  • Назначение offsetGet

Yaf_Session::offsetGet

(Yaf >=1.0.0)

Yaf_Session::offsetGet — Назначение offsetGet

Описание

public Yaf_Session::offsetGet(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение offsetSet

  • « Yaf_Session::offsetGet
  • Yaf_Session::offsetUnset »
  • PHP Manual
  • Yaf_Session
  • Назначение offsetSet

Yaf_Session::offsetSet

(Yaf >=1.0.0)

Yaf_Session::offsetSet — Назначение offsetSet

Описание

public Yaf_Session::offsetSet(string $name, string $value): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Назначение offsetUnset

  • « Yaf_Session::offsetSet
  • Yaf_Session::rewind »
  • PHP Manual
  • Yaf_Session
  • Назначение offsetUnset

Yaf_Session::offsetUnset

(Yaf >=1.0.0)

Yaf_Session::offsetUnset — Назначение offsetUnset

Описание

public Yaf_Session::offsetUnset(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение rewind

  • « Yaf_Session::offsetUnset
  • Yaf_Session::__set »
  • PHP Manual
  • Yaf_Session
  • Назначение rewind

Yaf_Session::rewind

(Yaf >=1.0.0)

Yaf_Session::rewind — Назначение rewind

Описание

public Yaf_Session::rewind(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение __set

  • « Yaf_Session::rewind
  • Yaf_Session::start »
  • PHP Manual
  • Yaf_Session
  • Назначение __set

Yaf_Session::__set

(Yaf >=1.0.0)

Yaf_Session::__set — Назначение __set

Описание

public Yaf_Session::__set(string $name, string $value): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Назначение start

  • « Yaf_Session::__set
  • Yaf_Session::__unset »
  • PHP Manual
  • Yaf_Session
  • Назначение start

Yaf_Session::start

(Yaf >=1.0.0)

Yaf_Session::start — Назначение start

Описание

public Yaf_Session::start(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Назначение __unset

  • « Yaf_Session::start
  • Yaf_Session::valid »
  • PHP Manual
  • Yaf_Session
  • Назначение __unset

Yaf_Session::__unset

(Yaf >=1.0.0)

Yaf_Session::__unset — Назначение __unset

Описание

public Yaf_Session::__unset(string $name): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Назначение valid

  • « Yaf_Session::__unset
  • Yaf_Exception »
  • PHP Manual
  • Yaf_Session
  • Назначение valid

Yaf_Session::valid

(Yaf >=1.0.0)

Yaf_Session::valid — Назначение valid

Описание

public Yaf_Session::valid(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Exception

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Exception extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
public __construct()
public getPrevious(): void
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): 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()

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить предыдущее исключение

  • « 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

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Exception_TypeError

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Exception_TypeError extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::getPrevious(): void
}


Класс Yaf_Exception_StartupError

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Exception_StartupError extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::getPrevious(): void
}


Класс Yaf_Exception_DispatchFailed

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Exception_DispatchFailed extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::getPrevious(): void
}


Класс Yaf_Exception_RouterFailed

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Exception_RouterFailed extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::getPrevious(): void
}


Класс Yaf_Exception_LoadFailed

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Exception_LoadFailed extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::getPrevious(): void
}


Класс Yaf_Exception_LoadFailed_Module

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Exception_LoadFailed_Module extends Yaf_Exception_LoadFailed {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::getPrevious(): void
}


Класс Yaf_Exception_LoadFailed_Controller

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Exception_LoadFailed_Controller extends Yaf_Exception_LoadFailed {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::getPrevious(): void
}


Класс Yaf_Exception_LoadFailed_Action

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Exception_LoadFailed_Action extends Yaf_Exception_LoadFailed {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::getPrevious(): void
}


Класс Yaf_Exception_LoadFailed_View

(Yaf >=1.0.0)

Введение

Обзор классов

class Yaf_Exception_LoadFailed_View extends Yaf_Exception_LoadFailed {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::getPrevious(): 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_VERSION
;использование переменных среды
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 и выше.


Установка

Этот модуль » PECL не поставляется вместе с PHP.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/yaconf.

Бинарные файлы Windows (файлы DLL) для этого модуля PECL доступны на сайте PECL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Yaconf
Имя | По умолчанию | Место изменения | Список изменений
yaconf.check_delay | 300 | PHP_INI_SYSTEM |
yaconf.directory | /tmp/conf/ | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

yaconf.check_delay int

Интервал времени, в течение которого Yaconf будет определять изменение файла ini (по времени изменения директории), если установлен ноль, требуется перезапуск PHP для перезагрузки конфигураций.

yaconf.directory string

Путь к директории, в которой находятся все файлы конфигурации INI.


  • « Типы ресурсов
  • Yaconf »
  • PHP Manual
  • Yaconf
  • Предопределённые константы

Предопределённые константы

Данный модуль не определяет никакие константы.


Класс Yaconf

(PECL yaconf >= 1.0.0)

Введение

Yaconf - контейнер конфигураций, он разбирает конфигурационные файлы, хранит результат в PHP при запуске PHP, результат сохраняется на протяжении всего жизненного цикла PHP.

Обзор классов

class 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 int

Включён ли модуль.

taint.error_level int

Тип ошибки, который будет возвращать модуль при обнаружении подозрительной строки.


  • « Настройка во время выполнения
  • Дополнительные подробности »
  • 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 ...$strings): bool

Делает строку испорченной строку. Используется в целях отладки.

Список параметров

string

strings

Возвращаемые значения

Возвращает true, если преобразование строки выполнено. Всегда возвращает true, если модуль taint не включён.


Исправить строку

  • « taint
  • Структуры данных »
  • PHP Manual
  • Функции Taint
  • Исправить строку

untaint

(PECL taint >=0.1.0)

untaint — Исправить строку

Описание

untaint(string &$string, string ...$strings): bool

Исправляет испорченную строку

Список параметров

string

strings

Возвращаемые значения


Структуры данных

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • Предопределённые константы
  • Примеры
  • Ds\Collection — Интерфейс Collection
    • Ds\Collection::clear — Удаляет все значения
    • Ds\Collection::copy — Возвращает копию коллекции
    • Ds\Collection::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Collection::toArray — Преобразует коллекцию в массив (array)
  • Ds\Hashable — Интерфейс Hashable
    • Ds\Hashable::equals — Определяет, равен ли текущий экземпляр переданному объекту
    • Ds\Hashable::hash — Возвращает скалярное значение для использования в качестве значения хеша
  • Ds\Sequence — Интерфейс 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 — Добавляет значения в начало последовательности
  • Ds\Vector — Класс 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 — Добавляет значения в начало вектора
  • Ds\Deque — Класс 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 — Добавляет значения в начало двухсторонней очереди
  • Ds\Map — Класс 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 — Создаёт новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно
  • Ds\Pair — Класс Pair
    • Ds\Pair::clear — Удаляет все значения
    • Ds\Pair::__construct — Создаёт экземпляр класса
    • Ds\Pair::copy — Возвращает поверхностную копию пары
    • Ds\Pair::isEmpty — Проверяет, является ли пара пустой
    • Ds\Pair::jsonSerialize — Возвращает пару в представлении JSON
    • Ds\Pair::toArray — Преобразует пару в массив (array)
  • Ds\Set — Класс 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 — Создаёт новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно
  • Ds\Stack — Класс 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)
  • Ds\Queue — Класс 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)
  • Ds\PriorityQueue — Класс 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

(PECL ds >= 1.0.0)

Введение

Collection - это базовый интерфейс, который покрывает функциональность общую для всех структур данных в этой библиотеке. Он гарантирует, что все структуры обходимы, счётный и могут быть преобразованы в JSON с помощью функции json_encode().

Обзор интерфейсов

interface Ds\Collection extends Countable, IteratorAggregate, JsonSerializable {
/* Методы */
public clear(): void
public copy(): Ds\Collection
public isEmpty(): bool
public toArray(): array
/* Наследуемые методы */
public Countable::count(): int
public IteratorAggregate::getIterator(): Traversable
public JsonSerializable::jsonSerialize(): mixed
}

Список изменений

Версия | Описание
PECL ds 1.4.0 | Класс Collection теперь реализует интерфейс IteratorAggregate вместо Traversable. (Это изменение появилось в полифиле в версии 1.4.1).

Содержание

  • Ds\Collection::clear — Удаляет все значения
  • Ds\Collection::copy — Возвращает копию коллекции
  • Ds\Collection::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Collection::toArray — Преобразует коллекцию в массив (array)


Удаляет все значения

  • « Ds\Collection
  • Ds\Collection::copy »
  • PHP Manual
  • Ds\Collection
  • Удаляет все значения

Ds\Collection::clear

(PECL ds >= 1.0.0)

Ds\Collection::clear — Удаляет все значения

Описание

public Ds\Collection::clear(): 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
  • Возвращает копию коллекции

Ds\Collection::copy

(PECL ds >= 1.0.0)

Ds\Collection::copy — Возвращает копию коллекции

Описание

public Ds\Collection::copy(): 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
  • Проверяет, пуста ли коллекция

Ds\Collection::isEmpty

(PECL ds >= 1.0.0)

Ds\Collection::isEmpty — Проверяет, пуста ли коллекция

Описание

public Ds\Collection::isEmpty(): 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
  • Ds\Hashable »
  • PHP Manual
  • Ds\Collection
  • Преобразует коллекцию в массив (array)

Ds\Collection::toArray

(PECL ds >= 1.0.0)

Ds\Collection::toArray — Преобразует коллекцию в массив (array)

Описание

public Ds\Collection::toArray(): 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

(PECL ds >= 1.0.0)

Введение

Hashable - это интерфейс, который позволяет использовать объекты в качестве ключей. Это альтернатива функции spl_object_hash(), которая вычисляет хеш объекта в соответствии с его обработчиком: это значит, что два объекта могут быть одинаковы по своему состоянию, но не считаются одинаковыми из-за того, что являются разными экземплярами одного класса.

Функция hash() используется для вычисления скалярного значения, характеризующего хеш объекта и определяющего его положение в хеш-таблице. Хотя это значение необязательно должно быть уникальным, одинаковые объекты должны иметь одно и то же значение хеша.

Функция equals() используется для определения идентичности двух объектов. Она гарантирует, что два объекта являются одним и тем же экземпляром класса.

Обзор интерфейсов

interface Ds\Hashable {
/* Методы */
abstract public equals(object $obj): bool
abstract public hash(): mixed
}

Содержание

  • Ds\Hashable::equals — Определяет, равен ли текущий экземпляр переданному объекту
  • Ds\Hashable::hash — Возвращает скалярное значение для использования в качестве значения хеша


Определяет, равен ли текущий экземпляр переданному объекту

  • « Ds\Hashable
  • Ds\Hashable::hash »
  • PHP Manual
  • Ds\Hashable
  • Определяет, равен ли текущий экземпляр переданному объекту

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
  • Ds\Sequence »
  • PHP Manual
  • Ds\Hashable
  • Возвращает скалярное значение для использования в качестве значения хеша

Ds\Hashable::hash

(PECL ds >= 1.0.0)

Ds\Hashable::hash — Возвращает скалярное значение для использования в качестве значения хеша

Описание

abstract public Ds\Hashable::hash(): 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

(PECL ds >= 1.0.0)

Введение

Последовательность описывает поведение, при котором значения распределены в одном, линейном порядке. В некоторых языках данное поведение описывается как "List". Это похоже на массив, в котором используются целочисленные ключи, за исключением нескольких моментов:

  • Значения всегда проиндексированы по порядку [0, 1, 2, ..., size - 1].
  • Можно обращаться только к значениям индексированным в диапазоне [0, size - 1].

В каких случаях используется:

  • Если вы хотите использовать массив, как список (не обращая внимания на ключи).
  • Более эффективная альтернатива для SplDoublyLinkedList и SplFixedArray.

Обзор интерфейсов

interface Ds\Sequence extends Ds\Collection, ArrayAccess {
/* Методы */
abstract public allocate(int $capacity): void
abstract public apply(callable $callback): void
abstract public capacity(): int
abstract public contains(mixed ...$values): bool
abstract public filter(callable $callback = ?): Ds\Sequence
abstract public find(mixed $value): mixed
abstract public first(): mixed
abstract public get(int $index): mixed
abstract public insert(int $index, mixed ...$values): void
abstract public join(string $glue = ?): string
abstract public last(): mixed
abstract public map(callable $callback): Ds\Sequence
abstract public merge(mixed $values): Ds\Sequence
abstract public pop(): 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
abstract public reversed(): Ds\Sequence
abstract public rotate(int $rotations): void
abstract public set(int $index, mixed $value): void
abstract public shift(): 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(): int|float
abstract public unshift(mixed $values = ?): void
/* Наследуемые методы */
public Ds\Collection::clear(): void
public Ds\Collection::copy(): Ds\Collection
public Ds\Collection::isEmpty(): bool
public Ds\Collection::toArray(): array
public Countable::count(): int
public IteratorAggregate::getIterator(): Traversable
public JsonSerializable::jsonSerialize(): mixed
public ArrayAccess::offsetExists(mixed $offset): bool
public ArrayAccess::offsetGet(mixed $offset): mixed
public ArrayAccess::offsetSet(mixed $offset, mixed $value): void
public ArrayAccess::offsetUnset(mixed $offset): void
}

Список изменений

Версия | Описание
PECL ds 1.3.0 | Теперь класс реализует ArrayAccess.

Содержание

  • 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
  • Ds\Sequence::apply »
  • PHP Manual
  • Ds\Sequence
  • Выделение памяти под указанную вместимость

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
  • Ds\Sequence
  • Обновление всех значений применением к ним переданной 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
  • Возвращает текущую вместимость

Ds\Sequence::capacity

(PECL ds >= 1.0.0)

Ds\Sequence::capacity — Возвращает текущую вместимость

Описание

abstract public Ds\Sequence::capacity(): 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
  • Проверяет, содержатся ли в коллекции заданные значения

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
  • Ds\Sequence
  • Создаёт новую последовательность из элементов, выбранных с помощью заданной 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
  • Поиск индекса по значению

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
  • Возвращает первый элемент коллекции

Ds\Sequence::first

(PECL ds >= 1.0.0)

Ds\Sequence::first — Возвращает первый элемент коллекции

Описание

abstract public Ds\Sequence::first(): 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
  • Возвращает значение по индексу

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
  • Вставляет значения по указанному индексу

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
  • Склеивает все значения в строку

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
  • Возвращает последнее значение коллекции

Ds\Sequence::last

(PECL ds >= 1.0.0)

Ds\Sequence::last — Возвращает последнее значение коллекции

Описание

abstract public Ds\Sequence::last(): 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
  • Ds\Sequence
  • Возвращает результат применения 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
  • Возвращает результат добавления всех заданных значений в коллекцию

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
  • Удаляет и возвращает последнее значение

Ds\Sequence::pop

(PECL ds >= 1.0.0)

Ds\Sequence::pop — Удаляет и возвращает последнее значение

Описание

abstract public Ds\Sequence::pop(): 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
  • Добавляет значения в конец последовательности

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
  • Ds\Sequence
  • Схлопывает коллекцию до одного значения используя 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
  • Удаляет и возвращает значение по индексу

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
  • Переворачивает текущую коллекцию

Ds\Sequence::reverse

(PECL ds >= 1.0.0)

Ds\Sequence::reverse — Переворачивает текущую коллекцию

Описание

abstract public Ds\Sequence::reverse(): 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
  • Возвращает перевёрнутую копию коллекции

Ds\Sequence::reversed

(PECL ds >= 1.0.0)

Ds\Sequence::reversed — Возвращает перевёрнутую копию коллекции

Описание

abstract public Ds\Sequence::reversed(): 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
  • Перематывает последовательность на заданное число значений

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
  • Заменяет значение по указанному индексу

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
  • Удаляет и возвращает первое значение

Ds\Sequence::shift

(PECL ds >= 1.0.0)

Ds\Sequence::shift — Удаляет и возвращает первое значение

Описание

abstract public Ds\Sequence::shift(): 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
  • Возвращает под-коллекцию из заданного диапазона

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
  • Сортирует коллекцию

Ds\Sequence::sort

(PECL ds >= 1.0.0)

Ds\Sequence::sort — Сортирует коллекцию

Описание

abstract public Ds\Sequence::sort(callable $comparator = ?): void

Сортирует коллекцию, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 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
  • Возвращает отсортированную по значению копию коллекции

Ds\Sequence::sorted

(PECL ds >= 1.0.0)

Ds\Sequence::sorted — Возвращает отсортированную по значению копию коллекции

Описание

abstract public Ds\Sequence::sorted(callable $comparator = ?): Ds\Sequence

Возвращает отсортированную копию коллекции, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 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
  • Возвращает сумму всех значений коллекции

Ds\Sequence::sum

(PECL ds >= 1.0.0)

Ds\Sequence::sum — Возвращает сумму всех значений коллекции

Описание

abstract public Ds\Sequence::sum(): int|float

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов 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
  • Ds\Vector »
  • PHP Manual
  • Ds\Sequence
  • Добавляет значения в начало последовательности

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

(PECL ds >= 1.0.0)

Введение

Вектор - это последовательность значений в непрерывном буфере, который растёт и обрезается автоматически. Это наиболее эффективная последовательная структура, поскольку индексы значений прямо отображаются на их индекс в буфере, и фактор роста не влияет на сложность доступа.

Сильные стороны

  • Поддерживает синтаксис массива (квадратные скобки).
  • Использует меньше памяти, чем массив (array) с тем же количеством элементов.
  • Автоматически высвобождает память, когда количество элементов уменьшается.
  • Вместимость не ограничена степенями двойки.
  • get(),
set(),
push() и
pop() имеют сложность O(1).

Слабые стороны

  • shift(),
unshift(),
insert() и
remove() имеют сложность O(n).

Обзор классов

class Ds\Vector implements Ds\Sequence, ArrayAccess {
/* Константы */
const int MIN_CAPACITY = 10;
/* Методы */
public allocate(int $capacity): void
public apply(callable $callback): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Vector
public filter(callable $callback = ?): Ds\Vector
public find(mixed $value): mixed
public first(): mixed
public get(int $index): mixed
public insert(int $index, mixed ...$values): void
public isEmpty(): bool
public join(string $glue = ?): string
public last(): mixed
public map(callable $callback): Ds\Vector
public merge(mixed $values): Ds\Vector
public pop(): mixed
public push(mixed ...$values): void
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(int $index): mixed
public reverse(): void
public reversed(): Ds\Vector
public rotate(int $rotations): void
public set(int $index, mixed $value): void
public shift(): mixed
public slice(int $index, int $length = ?): Ds\Vector
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Vector
public sum(): int|float
public toArray(): array
public unshift(mixed $values = ?): void
}

Предопределённые константы

Ds\Vector::MIN_CAPACITY

Список изменений

Версия | Описание
PECL ds 1.3.0 | Теперь класс реализует ArrayAccess.

Содержание

  • 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
  • Ds\Vector::apply »
  • PHP Manual
  • Ds\Vector
  • Выделяет память под указанную вместимость

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
  • Ds\Vector
  • Обновляет все значения, применяя к ним переданную 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
  • Возвращает текущую вместимость

Ds\Vector::capacity

(PECL ds >= 1.0.0)

Ds\Vector::capacity — Возвращает текущую вместимость

Описание

public Ds\Vector::capacity(): 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
  • Удаляет все значения

Ds\Vector::clear

(PECL ds >= 1.0.0)

Ds\Vector::clear — Удаляет все значения

Описание

public Ds\Vector::clear(): 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
  • Создаёт новый экземпляр

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
  • Проверяет, содержится ли в векторе заданные значения

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
  • Возвращает поверхностную копию вектора

Ds\Vector::copy

(PECL ds >= 1.0.0)

Ds\Vector::copy — Возвращает поверхностную копию вектора

Описание

public Ds\Vector::copy(): 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
  • Возвращает количество элементов вектора

Ds\Vector::count

(PECL ds >= 1.0.0)

Ds\Vector::count — Возвращает количество элементов вектора

Смотрите Countable::count()


Создаёт новый вектор из элементов, выбранных с помощью заданной callback-функции

  • « Ds\Vector::count
  • Ds\Vector::find »
  • PHP Manual
  • Ds\Vector
  • Создаёт новый вектор из элементов, выбранных с помощью заданной 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
  • Поиск индекса по значению

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
  • Возвращает первый элемент вектора

Ds\Vector::first

(PECL ds >= 1.0.0)

Ds\Vector::first — Возвращает первый элемент вектора

Описание

public Ds\Vector::first(): 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
  • Возвращает значение по индексу

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
  • Вставляет значения по указанному индексу

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
  • Проверяет, пуст ли вектор

Ds\Vector::isEmpty

(PECL ds >= 1.0.0)

Ds\Vector::isEmpty — Проверяет, пуст ли вектор

Описание

public Ds\Vector::isEmpty(): 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
  • Склеивает все значения в строку

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
  • Ds\Vector
  • Возвращает вектор в 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
  • Возвращает последнее значение вектора

Ds\Vector::last

(PECL ds >= 1.0.0)

Ds\Vector::last — Возвращает последнее значение вектора

Описание

public Ds\Vector::last(): 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
  • Ds\Vector
  • Возвращает результат применения 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
  • Возвращает результат добавления всех заданных значений в вектор

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
  • Удаляет и возвращает последнее значение

Ds\Vector::pop

(PECL ds >= 1.0.0)

Ds\Vector::pop — Удаляет и возвращает последнее значение

Описание

public Ds\Vector::pop(): 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
  • Добавляет значения в конец вектора

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
  • Ds\Vector
  • Уменьшает вектор до одного значения, используя 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
  • Удаляет и возвращает значение по индексу

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
  • Переворачивает текущий вектор

Ds\Vector::reverse

(PECL ds >= 1.0.0)

Ds\Vector::reverse — Переворачивает текущий вектор

Описание

public Ds\Vector::reverse(): 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
  • Возвращает перевёрнутую копию вектора

Ds\Vector::reversed

(PECL ds >= 1.0.0)

Ds\Vector::reversed — Возвращает перевёрнутую копию вектора

Описание

public Ds\Vector::reversed(): 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
  • Перематывает вектор на заданное число значений

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
  • Заменяет значение по указанному индексу

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
  • Удаляет и возвращает первое значение

Ds\Vector::shift

(PECL ds >= 1.0.0)

Ds\Vector::shift — Удаляет и возвращает первое значение

Описание

public Ds\Vector::shift(): 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
  • Возвращает подвектор из заданного диапазона

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
  • Сортирует вектор

Ds\Vector::sort

(PECL ds >= 1.0.0)

Ds\Vector::sort — Сортирует вектор

Описание

public Ds\Vector::sort(callable $comparator = ?): void

Сортирует вектор, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 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
  • Возвращает отсортированную по значению копию коллекции

Ds\Vector::sorted

(PECL ds >= 1.0.0)

Ds\Vector::sorted — Возвращает отсортированную по значению копию коллекции

Описание

public Ds\Vector::sorted(callable $comparator = ?): Ds\Vector

Возвращает отсортированную копию коллекции, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 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
  • Возвращает сумму всех значений коллекции

Ds\Vector::sum

(PECL ds >= 1.0.0)

Ds\Vector::sum — Возвращает сумму всех значений коллекции

Описание

public Ds\Vector::sum(): int|float

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов 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
  • Ds\Vector
  • Преобразует коллекцию в массив (array)

Ds\Vector::toArray

(PECL ds >= 1.0.0)

Ds\Vector::toArray — Преобразует коллекцию в массив (array)

Описание

public Ds\Vector::toArray(): 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
  • Ds\Deque »
  • PHP Manual
  • Ds\Vector
  • Добавляет значения в начало вектора

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

(PECL ds >= 1.0.0)

Введение

Двухсторонняя очередь - это последовательность значений в непрерывном буфере, который растёт и уменьшаются автоматически. 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).

Обзор классов

class Ds\Deque implements Ds\Sequence, ArrayAccess {
/* Константы */
const int MIN_CAPACITY = 8;
/* Методы */
public allocate(int $capacity): void
public apply(callable $callback): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Deque
public filter(callable $callback = ?): Ds\Deque
public find(mixed $value): mixed
public first(): mixed
public get(int $index): mixed
public insert(int $index, mixed ...$values): void
public isEmpty(): bool
public join(string $glue = ?): string
public last(): mixed
public map(callable $callback): Ds\Deque
public merge(mixed $values): Ds\Deque
public pop(): mixed
public push(mixed ...$values): void
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(int $index): mixed
public reverse(): void
public reversed(): Ds\Deque
public rotate(int $rotations): void
public set(int $index, mixed $value): void
public shift(): mixed
public slice(int $index, int $length = ?): Ds\Deque
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Deque
public sum(): int|float
public toArray(): array
public unshift(mixed $values = ?): void
}

Предопределённые константы

Ds\Deque::MIN_CAPACITY

Список изменений

Версия | Описание
PECL ds 1.3.0 | Теперь класс реализует ArrayAccess.

Содержание

  • 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
  • Ds\Deque::apply »
  • PHP Manual
  • Ds\Deque
  • Выделяет память под указанную вместимость

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
  • Ds\Deque
  • Обновляет все значения, применяя 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
  • Возвращает текущую вместимость

Ds\Deque::capacity

(PECL ds >= 1.0.0)

Ds\Deque::capacity — Возвращает текущую вместимость

Описание

public Ds\Deque::capacity(): 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
  • Удаляет все значения из двухсторонней очереди

Ds\Deque::clear

(PECL ds >= 1.0.0)

Ds\Deque::clear — Удаляет все значения из двухсторонней очереди

Описание

public Ds\Deque::clear(): 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
  • Создаёт новый экземпляр

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
  • Проверяет, содержится ли в двухсторонней очереди заданные значения

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
  • Возвращает поверхностную копию коллекции

Ds\Deque::copy

(PECL ds >= 1.0.0)

Ds\Deque::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Deque::copy(): 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
  • Возвращает количество элементов двухсторонней очереди

Ds\Deque::count

(PECL ds >= 1.0.0)

Ds\Deque::count — Возвращает количество элементов двухсторонней очереди

Смотрите Countable::count()


Создаёт новую двухстороннюю очередь из элементов, выбранных с помощью заданной callback-функции

  • « Ds\Deque::count
  • Ds\Deque::find »
  • PHP Manual
  • Ds\Deque
  • Создаёт новую двухстороннюю очередь из элементов, выбранных с помощью заданной 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
  • Поиск индекса по значению

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
  • Возвращает первый элемент двухсторонней очереди

Ds\Deque::first

(PECL ds >= 1.0.0)

Ds\Deque::first — Возвращает первый элемент двухсторонней очереди

Описание

public Ds\Deque::first(): 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
  • Возвращает значение по индексу

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
  • Вставляет значения по указанному индексу

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
  • Проверяет, пуста ли двухсторонняя очередь

Ds\Deque::isEmpty

(PECL ds >= 1.0.0)

Ds\Deque::isEmpty — Проверяет, пуста ли двухсторонняя очередь

Описание

public Ds\Deque::isEmpty(): 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
  • Склеивает все значения в строку

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
  • Ds\Deque
  • Возвращает коллекцию в 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
  • Возвращает последнее значение двухсторонней очереди

Ds\Deque::last

(PECL ds >= 1.0.0)

Ds\Deque::last — Возвращает последнее значение двухсторонней очереди

Описание

public Ds\Deque::last(): 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
  • Ds\Deque
  • Возвращает результат применения 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
  • Возвращает результат добавления всех заданных значений в двухстороннюю очередь

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
  • Удаляет и возвращает последнее значение

Ds\Deque::pop

(PECL ds >= 1.0.0)

Ds\Deque::pop — Удаляет и возвращает последнее значение

Описание

public Ds\Deque::pop(): 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
  • Добавляет значения в конец двухсторонней очереди

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
  • Ds\Deque
  • Уменьшает коллекцию до одного значения, используя 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
  • Удаляет и возвращает значение по индексу

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
  • Переворачивает текущую двухстороннюю очередь

Ds\Deque::reverse

(PECL ds >= 1.0.0)

Ds\Deque::reverse — Переворачивает текущую двухстороннюю очередь

Описание

public Ds\Deque::reverse(): 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
  • Возвращает перевёрнутую копию двухсторонней очереди

Ds\Deque::reversed

(PECL ds >= 1.0.0)

Ds\Deque::reversed — Возвращает перевёрнутую копию двухсторонней очереди

Описание

public Ds\Deque::reversed(): 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
  • Перематывает двухстороннюю очередь на заданное число значений

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
  • Заменяет значение по указанному индексу

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
  • Удаляет и возвращает первое значение

Ds\Deque::shift

(PECL ds >= 1.0.0)

Ds\Deque::shift — Удаляет и возвращает первое значение

Описание

public Ds\Deque::shift(): 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
  • Возвращает подочередь из заданного диапазона

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
  • Сортирует двухстороннюю очередь

Ds\Deque::sort

(PECL ds >= 1.0.0)

Ds\Deque::sort — Сортирует двухстороннюю очередь

Описание

public Ds\Deque::sort(callable $comparator = ?): void

Сортирует двухстороннюю очередь, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 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
  • Возвращает отсортированную по значению копию двухсторонней очереди

Ds\Deque::sorted

(PECL ds >= 1.0.0)

Ds\Deque::sorted — Возвращает отсортированную по значению копию двухсторонней очереди

Описание

public Ds\Deque::sorted(callable $comparator = ?): Ds\Deque

Возвращает отсортированную копию двухсторонней очереди, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 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
  • Возвращает сумму всех значений двухсторонней очереди

Ds\Deque::sum

(PECL ds >= 1.0.0)

Ds\Deque::sum — Возвращает сумму всех значений двухсторонней очереди

Описание

public Ds\Deque::sum(): int|float

Возвращает сумму всех значений двухсторонней очереди.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений двухсторонней очереди типов 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
  • Ds\Deque
  • Преобразует двухстороннюю очередь в массив (array)

Ds\Deque::toArray

(PECL ds >= 1.0.0)

Ds\Deque::toArray — Преобразует двухстороннюю очередь в массив (array)

Описание

public Ds\Deque::toArray(): 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
  • Ds\Map »
  • PHP Manual
  • Ds\Deque
  • Добавляет значения в начало двухсторонней очереди

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

(PECL ds >= 1.0.0)

Введение

Коллекция пар - это последовательная коллекция, содержащая пары ключ-значение, практически идентичная массиву и используется для тех же целей. Ключи могут быть любого типа, но должны быть уникальными. Если добавить пару с уже существующим ключом, то она будет заменена.

Сильные стороны

  • Ключи и значения могут быть любого типа, включая объекты.
  • Поддерживает синтаксис массива (квадратные скобки).
  • Сохраняется порядок вставки.
  • Скорость и потребление памяти сравнимо с использованием массива.
  • Автоматически освобождает память, когда количество элементов уменьшается.

Слабые стороны

  • Не может быть сконвертирована в массив, если в качестве ключей используются объекты.

Обзор классов

class Ds\Map implements Ds\Collection, ArrayAccess {
/* Константы */
const int MIN_CAPACITY = 16;
/* Методы */
public allocate(int $capacity): void
public apply(callable $callback): void
public capacity(): int
public clear(): void
public copy(): Ds\Map
public diff(Ds\Map $map): Ds\Map
public filter(callable $callback = ?): Ds\Map
public first(): 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(): bool
public keys(): Ds\Set
public ksort(callable $comparator = ?): void
public ksorted(callable $comparator = ?): Ds\Map
public last(): Ds\Pair
public map(callable $callback): Ds\Map
public merge(mixed $values): Ds\Map
public pairs(): 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
public reversed(): 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(): int|float
public toArray(): array
public union(Ds\Map $map): Ds\Map
public values(): Ds\Sequence
public xor(Ds\Map $map): Ds\Map
}

Предопределённые константы

Ds\Map::MIN_CAPACITY

Список изменений

Версия | Описание
PECL ds 1.3.0 | Теперь класс реализует ArrayAccess.

Содержание

  • 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
  • Ds\Map::apply »
  • PHP Manual
  • Ds\Map
  • Выделяет необходимое количество памяти под требуемую вместимость

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
  • Ds\Map
  • Обновление всех значений применением к ним переданной 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
  • Возвращает текущую вместимость

Ds\Map::capacity

(PECL ds >= 1.0.0)

Ds\Map::capacity — Возвращает текущую вместимость

Описание

public Ds\Map::capacity(): 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
  • Удаляет все значения из коллекции

Ds\Map::clear

(PECL ds >= 1.0.0)

Ds\Map::clear — Удаляет все значения из коллекции

Описание

public Ds\Map::clear(): 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
  • Создаёт новый экземпляр

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
  • Возвращает поверхностную копию коллекции

Ds\Map::copy

(PECL ds >= 1.0.0)

Ds\Map::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Map::copy(): 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
  • Возвращает количество элементов коллекции

Ds\Map::count

(PECL ds >= 1.0.0)

Ds\Map::count — Возвращает количество элементов коллекции

Смотрите описание функции Countable::count()


Создаёт новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар

  • « Ds\Map::count
  • Ds\Map::filter »
  • PHP Manual
  • Ds\Map
  • Создаёт новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар

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
  • Ds\Map
  • Создаёт новую коллекцию пар из элементов, выбранных с помощью заданной 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
  • Возвращает первый элемент коллекции

Ds\Map::first

(PECL ds >= 1.0.0)

Ds\Map::first — Возвращает первый элемент коллекции

Описание

public Ds\Map::first(): 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
  • Возвращает значение по ключу

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
  • Проверяет, содержит ли коллекция заданный ключ

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
  • Проверяет, содержит ли коллекция заданное значение

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
  • Создаёт новую коллекцию пар, созданную пересечением с другой коллекцией пар

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
  • Проверяет, пуста ли коллекция

Ds\Map::isEmpty

(PECL ds >= 1.0.0)

Ds\Map::isEmpty — Проверяет, пуста ли коллекция

Описание

public Ds\Map::isEmpty(): 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
  • Ds\Map
  • Возвращает коллекцию в 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
  • Возвращает набор ключей коллекции

Ds\Map::keys

(PECL ds >= 1.0.0)

Ds\Map::keys — Возвращает набор ключей коллекции

Описание

public Ds\Map::keys(): 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
  • Сортирует текущую коллекцию по ключам

Ds\Map::ksort

(PECL ds >= 1.0.0)

Ds\Map::ksort — Сортирует текущую коллекцию по ключам

Описание

public Ds\Map::ksort(callable $comparator = ?): void

Сортирует текущую коллекцию по ключам, опционально используя callback-функцию comparator для сравнения элементов.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 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
  • Возвращает копию коллекции, отсортированной по ключам

Ds\Map::ksorted

(Информация о версии неизвестна, возможно, только в Git)

Ds\Map::ksorted — Возвращает копию коллекции, отсортированной по ключам

Описание

public Ds\Map::ksorted(callable $comparator = ?): Ds\Map

Возвращает копию коллекции, отсортированной по ключам, опционально используя callback-функцию comparator для сравнения элементов.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 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
  • Возвращает последнюю пару коллекции

Ds\Map::last

(PECL ds >= 1.0.0)

Ds\Map::last — Возвращает последнюю пару коллекции

Описание

public Ds\Map::last(): 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
  • Ds\Map
  • Возвращает результат применения 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
  • Возвращает результат добавления всех заданных элементов в коллекцию

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
  • Возвращает последовательность, содержащую все пары коллекции

Ds\Map::pairs

(PECL ds >= 1.0.0)

Ds\Map::pairs — Возвращает последовательность, содержащую все пары коллекции

Описание

public Ds\Map::pairs(): 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
  • Установка значения по заданному ключу

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
  • Ds\Map
  • Связывает с коллекцией все пары ключ-значение из объекта класса 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
  • Ds\Map
  • Уменьшает коллекцию до одного значения, используя 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
  • Удаляет и возвращает значение по ключу

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
  • Переворачивает текущую коллекцию

Ds\Map::reverse

(PECL ds >= 1.0.0)

Ds\Map::reverse — Переворачивает текущую коллекцию

Описание

public Ds\Map::reverse(): 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
  • Возвращает перевёрнутую копию коллекции

Ds\Map::reversed

(PECL ds >= 1.0.0)

Ds\Map::reversed — Возвращает перевёрнутую копию коллекции

Описание

public Ds\Map::reversed(): 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
  • Возвращает пару по индексу позиции

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
  • Возвращает подмножество коллекции из заданного диапазона

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
  • Сортирует коллекцию по значениям

Ds\Map::sort

(PECL ds >= 1.0.0)

Ds\Map::sort — Сортирует коллекцию по значениям

Описание

public Ds\Map::sort(callable $comparator = ?): void

Сортирует коллекцию по значениям, необязательно используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 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
  • Возвращает отсортированную по значению копию коллекции

Ds\Map::sorted

(PECL ds >= 1.0.0)

Ds\Map::sorted — Возвращает отсортированную по значению копию коллекции

Описание

public Ds\Map::sorted(callable $comparator = ?): Ds\Map

Возвращает отсортированную по значению копию коллекции, необязательно используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 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
  • Возвращает сумму всех значений коллекции

Ds\Map::sum

(Информация о версии неизвестна, возможно, только в Git)

Ds\Map::sum — Возвращает сумму всех значений коллекции

Описание

public Ds\Map::sum(): int|float

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов 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
  • Ds\Map
  • Преобразует коллекцию в array

Ds\Map::toArray

(PECL ds >= 1.0.0)

Ds\Map::toArray — Преобразует коллекцию в array

Описание

public Ds\Map::toArray(): 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
  • Создаёт новую коллекцию пар из элементов двух коллекций

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
  • Возвращает последовательность значений коллекции

Ds\Map::values

(PECL ds >= 1.0.0)

Ds\Map::values — Возвращает последовательность значений коллекции

Описание

public Ds\Map::values(): 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\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Создаёт новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно

  • « Ds\Map::values
  • Ds\Pair »
  • PHP Manual
  • Ds\Map
  • Создаёт новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно

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

(PECL ds >= 1.0.0)

Введение

Пары используются классом Ds\Map для хранения пар ключ-значение.

Обзор классов

class Ds\Pair implements JsonSerializable {
/* Методы */
public __construct(mixed $key = ?, mixed $value = ?)
public clear(): void
public copy(): Ds\Pair
public isEmpty(): bool
public toArray(): array
}

Содержание

  • Ds\Pair::clear — Удаляет все значения
  • Ds\Pair::__construct — Создаёт экземпляр класса
  • Ds\Pair::copy — Возвращает поверхностную копию пары
  • Ds\Pair::isEmpty — Проверяет, является ли пара пустой
  • Ds\Pair::jsonSerialize — Возвращает пару в представлении JSON
  • Ds\Pair::toArray — Преобразует пару в массив (array)


Удаляет все значения

  • « Ds\Pair
  • Ds\Pair::__construct »
  • PHP Manual
  • Ds\Pair
  • Удаляет все значения

Ds\Pair::clear

(Информация о версии неизвестна, возможно, только в Git)

Ds\Pair::clear — Удаляет все значения

Описание

public Ds\Pair::clear(): 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
  • Создаёт экземпляр класса

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
  • Возвращает поверхностную копию пары

Ds\Pair::copy

(Информация о версии неизвестна, возможно, только в Git)

Ds\Pair::copy — Возвращает поверхностную копию пары

Описание

public Ds\Pair::copy(): 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
  • Проверяет, является ли пара пустой

Ds\Pair::isEmpty

(Информация о версии неизвестна, возможно, только в Git)

Ds\Pair::isEmpty — Проверяет, является ли пара пустой

Описание

public Ds\Pair::isEmpty(): 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
  • Ds\Pair
  • Возвращает пару в представлении JSON

Ds\Pair::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Pair::jsonSerialize — Возвращает пару в представлении JSON

Смотрите функцию JsonSerializable::jsonSerialize()

Замечание:

Вы не должны вызывать этот метод напрямую.


Преобразует пару в массив (array)

  • « Ds\Pair::jsonSerialize
  • Ds\Set »
  • PHP Manual
  • Ds\Pair
  • Преобразует пару в массив (array)

Ds\Pair::toArray

(PECL ds >= 1.0.0)

Ds\Pair::toArray — Преобразует пару в массив (array)

Описание

public Ds\Pair::toArray(): 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

(PECL ds >= 1.0.0)

Введение

Set - это последовательность уникальных значений. Реализация использует ту же хеш-таблицу, что и Ds\Map, в которой значения используются в качестве ключей, а связанные значения игнорируются.

Сильные стороны

  • Значения могут быть любого типа, включая объекты.
  • Поддерживает синтаксис массива (квадратные скобки).
  • Сохраняется порядок вставки.
  • Автоматически высвобождает память, когда количество элементов значительно уменьшается.
  • add(),
remove() и
contains() имеют сложность O(1).

Слабые стороны

  • Не поддерживает
      push(),
      pop(),
      insert(),
      shift() и
      unshift().
  • get() имеет сложность O(n), если есть удалённые значения в буфере, до значения, к которому происходит доступ. Иначе O(1).

Обзор классов

class Ds\Set implements Ds\Collection, ArrayAccess {
/* Константы */
const int MIN_CAPACITY = 16;
/* Методы */
public add(mixed ...$values): void
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Set
public diff(Ds\Set $set): Ds\Set
public filter(callable $callback = ?): Ds\Set
public first(): mixed
public get(int $index): mixed
public intersect(Ds\Set $set): Ds\Set
public isEmpty(): bool
public join(string $glue = ?): string
public last(): mixed
public merge(mixed $values): Ds\Set
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(mixed ...$values): void
public reverse(): void
public reversed(): Ds\Set
public slice(int $index, int $length = ?): Ds\Set
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Set
public sum(): int|float
public toArray(): array
public union(Ds\Set $set): Ds\Set
public xor(Ds\Set $set): Ds\Set
}

Предопределённые константы

Ds\Set::MIN_CAPACITY

Список изменений

Версия | Описание
PECL ds 1.3.0 | Теперь класс реализует ArrayAccess.

Содержание

  • 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
  • Ds\Set::allocate »
  • PHP Manual
  • Ds\Set
  • Добавляет значения в набор

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
  • Выделяет память под указанную вместимость

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
  • Возвращает текущую вместимость

Ds\Set::capacity

(PECL ds >= 1.0.0)

Ds\Set::capacity — Возвращает текущую вместимость

Описание

public Ds\Set::capacity(): int

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Set::capacity()

<?php
$set = new \Ds\Set();
var_dump($set->capacity());

$set->add(...range(1, 50));
var_dump($set->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(16)
int(64)


Удаляет все значения из коллекции

  • « Ds\Set::capacity
  • Ds\Set::__construct »
  • PHP Manual
  • Ds\Set
  • Удаляет все значения из коллекции

Ds\Set::clear

(PECL ds >= 1.0.0)

Ds\Set::clear — Удаляет все значения из коллекции

Описание

public Ds\Set::clear(): 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
  • Создаёт новый экземпляр класса

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
  • Проверяет, содержится ли в коллекции заданные значения

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
  • Возвращает поверхностную копию коллекции

Ds\Set::copy

(PECL ds >= 1.0.0)

Ds\Set::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Set::copy(): 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
  • Возвращает количество элементов коллекции

Ds\Set::count

(PECL ds >= 1.0.0)

Ds\Set::count — Возвращает количество элементов коллекции

Смотрите описание функции Countable::count()


Создаёт новый набор с элементами, которых нет в другом наборе

  • « Ds\Set::count
  • Ds\Set::filter »
  • PHP Manual
  • Ds\Set
  • Создаёт новый набор с элементами, которых нет в другом наборе

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
  • Ds\Set
  • Создаёт новый список из элементов, выбранных с помощью заданной 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
  • Возвращает первый элемент коллекции

Ds\Set::first

(PECL ds >= 1.0.0)

Ds\Set::first — Возвращает первый элемент коллекции

Описание

public Ds\Set::first(): 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
  • Возвращает значение по индексу

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
  • Создаёт новый набор, созданный пересечением с другим набором

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
  • Проверяет, пуста ли коллекция

Ds\Set::isEmpty

(PECL ds >= 1.0.0)

Ds\Set::isEmpty — Проверяет, пуста ли коллекция

Описание

public Ds\Set::isEmpty(): 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
  • Склеивает все значения в строку

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
  • Ds\Set
  • Возвращает коллекцию в 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
  • Возвращает последнее значение коллекции

Ds\Set::last

(PECL ds >= 1.0.0)

Ds\Set::last — Возвращает последнее значение коллекции

Описание

public Ds\Set::last(): mixed

Возвращает последнее значение коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний элемент коллекции.

Ошибки

Выбрасывает исключение 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
  • Возвращает результат добавления всех заданных значений в набор

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
  • Ds\Set
  • Уменьшает коллекцию до одного значения, используя 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
  • Удаляет все заданные значения из набора

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
  • Переворачивает текущую коллекцию

Ds\Set::reverse

(PECL ds >= 1.0.0)

Ds\Set::reverse — Переворачивает текущую коллекцию

Описание

public Ds\Set::reverse(): 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
  • Возвращает перевёрнутую копию коллекции

Ds\Set::reversed

(PECL ds >= 1.0.0)

Ds\Set::reversed — Возвращает перевёрнутую копию коллекции

Описание

public Ds\Set::reversed(): 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
  • Возвращает поднабор из заданного диапазона

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
  • Сортирует коллекцию

Ds\Set::sort

(PECL ds >= 1.0.0)

Ds\Set::sort — Сортирует коллекцию

Описание

public Ds\Set::sort(callable $comparator = ?): void

Сортирует коллекцию, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 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
  • Возвращает отсортированную по значению копию коллекции

Ds\Set::sorted

(PECL ds >= 1.0.0)

Ds\Set::sorted — Возвращает отсортированную по значению копию коллекции

Описание

public Ds\Set::sorted(callable $comparator = ?): Ds\Set

Возвращает отсортированную копию коллекции, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 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
  • Возвращает сумму всех значений коллекции

Ds\Set::sum

(PECL ds >= 1.0.0)

Ds\Set::sum — Возвращает сумму всех значений коллекции

Описание

public Ds\Set::sum(): int|float

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов 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
  • Ds\Set
  • Преобразует коллекцию в массив (array)

Ds\Set::toArray

(PECL ds >= 1.0.0)

Ds\Set::toArray — Преобразует коллекцию в массив (array)

Описание

public Ds\Set::toArray(): 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
  • Создаёт новый набор из элементов текущего и переданного наборов

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
  • Ds\Stack »
  • PHP Manual
  • Ds\Set
  • Создаёт новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно

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

(PECL ds >= 1.0.0)

Введение

Стек - это коллекция типа "Последний вошёл, первый вышел" (Last In, First Out или LIFO), которая позволяет работать только с самым верхним (последним) значением. Итерация происходит от конца к началу с удалением взятого элемента.

Внутри себя использует класс Ds\Vector.

Обзор классов

class Ds\Stack implements Ds\Collection, ArrayAccess {
/* Методы */
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public copy(): Ds\Stack
public isEmpty(): bool
public peek(): mixed
public pop(): mixed
public push(mixed ...$values): void
public toArray(): array
}

Список изменений

Версия | Описание
PECL ds 1.3.0 | Теперь класс реализует ArrayAccess.

Содержание

  • 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
  • Ds\Stack::capacity »
  • PHP Manual
  • Ds\Stack
  • Выделяет память под указанную вместимость

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
  • Возвращает текущую вместимость

Ds\Stack::capacity

(PECL ds >= 1.0.0)

Ds\Stack::capacity — Возвращает текущую вместимость

Описание

public Ds\Stack::capacity(): int

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.


Удаляет все значения из коллекции

  • « Ds\Stack::capacity
  • Ds\Stack::__construct »
  • PHP Manual
  • Ds\Stack
  • Удаляет все значения из коллекции

Ds\Stack::clear

(PECL ds >= 1.0.0)

Ds\Stack::clear — Удаляет все значения из коллекции

Описание

public Ds\Stack::clear(): 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
  • Создаёт новый экземпляр класса

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
  • Возвращает поверхностную копию коллекции

Ds\Stack::copy

(PECL ds >= 1.0.0)

Ds\Stack::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Stack::copy(): 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
  • Возвращает количество элементов коллекции

Ds\Stack::count

(PECL ds >= 1.0.0)

Ds\Stack::count — Возвращает количество элементов коллекции

Смотрите описание функции Countable::count()


Проверяет, пуста ли коллекция

  • « Ds\Stack::count
  • Ds\Stack::jsonSerialize »
  • PHP Manual
  • Ds\Stack
  • Проверяет, пуста ли коллекция

Ds\Stack::isEmpty

(PECL ds >= 1.0.0)

Ds\Stack::isEmpty — Проверяет, пуста ли коллекция

Описание

public Ds\Stack::isEmpty(): 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
  • Ds\Stack
  • Возвращает коллекцию в 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
  • Возвращает значение с вершины стека

Ds\Stack::peek

(PECL ds >= 1.0.0)

Ds\Stack::peek — Возвращает значение с вершины стека

Описание

public Ds\Stack::peek(): 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
  • Удаляет и возвращает значение с вершины стека

Ds\Stack::pop

(PECL ds >= 1.0.0)

Ds\Stack::pop — Удаляет и возвращает значение с вершины стека

Описание

public Ds\Stack::pop(): 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
  • Добавляет значения в стек

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
  • Ds\Queue »
  • PHP Manual
  • Ds\Stack
  • Преобразует коллекцию в массив (array)

Ds\Stack::toArray

(PECL ds >= 1.0.0)

Ds\Stack::toArray — Преобразует коллекцию в массив (array)

Описание

public Ds\Stack::toArray(): 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

(PECL ds >= 1.0.0)

Введение

Очередь - это коллекция типа "Первый вошёл, первый вышел" (First In, First Out или FIFO), которая позволяет работать только с самым первым значением. Итерация происходит от начала к концу с удалением взятого элемента.

Обзор классов

class Ds\Queue implements Ds\Collection, ArrayAccess {
/* Константы */
const int MIN_CAPACITY = 8;
/* Методы */
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public copy(): Ds\Queue
public isEmpty(): bool
public peek(): mixed
public pop(): mixed
public push(mixed ...$values): void
public toArray(): array
}

Предопределённые константы

Ds\Queue::MIN_CAPACITY

Список изменений

Версия | Описание
PECL ds 1.3.0 | Теперь класс реализует ArrayAccess.

Содержание

  • 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
  • Ds\Queue::capacity »
  • PHP Manual
  • Ds\Queue
  • Выделяет память под указанную вместимость

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
  • Возвращает текущую вместимость

Ds\Queue::capacity

(PECL ds >= 1.0.0)

Ds\Queue::capacity — Возвращает текущую вместимость

Описание

public Ds\Queue::capacity(): 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
  • Удаляет все значения

Ds\Queue::clear

(PECL ds >= 1.0.0)

Ds\Queue::clear — Удаляет все значения

Описание

public Ds\Queue::clear(): 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
  • Создаёт новый экземпляр

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
  • Возвращает поверхностную копию очереди

Ds\Queue::copy

(PECL ds >= 1.0.0)

Ds\Queue::copy — Возвращает поверхностную копию очереди

Описание

public Ds\Queue::copy(): 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
  • Возвращает количество элементов очереди

Ds\Queue::count

(PECL ds >= 1.0.0)

Ds\Queue::count — Возвращает количество элементов очереди

Смотрите Countable::count()


Проверяет, пуста ли коллекция

  • « Ds\Queue::count
  • Ds\Queue::jsonSerialize »
  • PHP Manual
  • Ds\Queue
  • Проверяет, пуста ли коллекция

Ds\Queue::isEmpty

(PECL ds >= 1.0.0)

Ds\Queue::isEmpty — Проверяет, пуста ли коллекция

Описание

public Ds\Queue::isEmpty(): 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
  • Ds\Queue
  • Возвращает коллекцию в 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
  • Возвращает значение из начала очереди

Ds\Queue::peek

(PECL ds >= 1.0.0)

Ds\Queue::peek — Возвращает значение из начала очереди

Описание

public Ds\Queue::peek(): 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
  • Удаляет и возвращает значение из начала очереди

Ds\Queue::pop

(PECL ds >= 1.0.0)

Ds\Queue::pop — Удаляет и возвращает значение из начала очереди

Описание

public Ds\Queue::pop(): 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
  • Добавляет значения в очередь

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
  • Ds\PriorityQueue »
  • PHP Manual
  • Ds\Queue
  • Преобразует коллекцию в массив (array)

Ds\Queue::toArray

(PECL ds >= 1.0.0)

Ds\Queue::toArray — Преобразует коллекцию в массив (array)

Описание

public Ds\Queue::toArray(): 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

(PECL ds >= 1.0.0)

Введение

Очередь с приоритетом очень похожа на обычную очередь. Значения добавляются в очередь с заданным приоритетом, и значения с более высоким приоритетом всегда будут находиться ближе к началу.

Реализована с использованием максимальной кучи.

Замечание:

Порядок FIFO сохраняется у значений с одинаковым приоритетом.

Замечание:

Итерация через очередь происходит с удалением взятого элемента. Эквивалентно использованию оператора pop, пока очередь не станет пустой.

Обзор классов

class Ds\PriorityQueue implements Ds\Collection {
/* Константы */
const int MIN_CAPACITY = 8;
/* Методы */
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public copy(): Ds\PriorityQueue
public isEmpty(): bool
public peek(): mixed
public pop(): mixed
public push(mixed $value, int $priority): void
public toArray(): 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
  • Ds\PriorityQueue::capacity »
  • PHP Manual
  • Ds\PriorityQueue
  • Выделяет память под указанную вместимость

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
  • Возвращает текущую вместимость

Ds\PriorityQueue::capacity

(PECL ds >= 1.0.0)

Ds\PriorityQueue::capacity — Возвращает текущую вместимость

Описание

public Ds\PriorityQueue::capacity(): 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
  • Удаляет все значения

Ds\PriorityQueue::clear

(PECL ds >= 1.0.0)

Ds\PriorityQueue::clear — Удаляет все значения

Описание

public Ds\PriorityQueue::clear(): 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
  • Создаёт новый экземпляр

Ds\PriorityQueue::__construct

(PECL ds >= 1.0.0)

Ds\PriorityQueue::__construct — Создаёт новый экземпляр

Описание

public Ds\PriorityQueue::__construct()

Создаёт новый экземпляр.

Примеры

Пример #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
  • Возвращает поверхностную копию очереди

Ds\PriorityQueue::copy

(PECL ds >= 1.0.0)

Ds\PriorityQueue::copy — Возвращает поверхностную копию очереди

Описание

public Ds\PriorityQueue::copy(): 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
  • Возвращает количество элементов в очереди

Ds\PriorityQueue::count

(PECL ds >= 1.0.0)

Ds\PriorityQueue::count — Возвращает количество элементов в очереди

Смотрите Countable::count()


Проверяет, пуста ли коллекция

  • « Ds\PriorityQueue::count
  • Ds\PriorityQueue::jsonSerialize »
  • PHP Manual
  • Ds\PriorityQueue
  • Проверяет, пуста ли коллекция

Ds\PriorityQueue::isEmpty

(PECL ds >= 1.0.0)

Ds\PriorityQueue::isEmpty — Проверяет, пуста ли коллекция

Описание

public Ds\PriorityQueue::isEmpty(): 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
  • Ds\PriorityQueue
  • Возвращает коллекцию в 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
  • Возвращает значение из начала очереди

Ds\PriorityQueue::peek

(PECL ds >= 1.0.0)

Ds\PriorityQueue::peek — Возвращает значение из начала очереди

Описание

public Ds\PriorityQueue::peek(): 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
  • Удаляет и возвращает значение с наивысшим приоритетом

Ds\PriorityQueue::pop

(PECL ds >= 1.0.0)

Ds\PriorityQueue::pop — Удаляет и возвращает значение с наивысшим приоритетом

Описание

public Ds\PriorityQueue::pop(): 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
  • Добавляет значение в очередь

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
  • var_representation »
  • PHP Manual
  • Ds\PriorityQueue
  • Преобразует очередь в массив (array)

Ds\PriorityQueue::toArray

(PECL ds >= 1.0.0)

Ds\PriorityQueue::toArray — Преобразует очередь в массив (array)

Описание

public Ds\PriorityQueue::toArray(): 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"
}


var_representation

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • Предопределённые константы
  • Функции var_representation
    • var_representation — Возвращает короткое, читаемое, разборчивое строковое представление переменной


Введение

Модуль var_presentation предоставляет компактную альтернативу var_export(), которая должным образом экранирует управляющие символы.


  • « Введение
  • Требования »
  • PHP Manual
  • var_representation
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


Установка

Этот модуль » PECL не поставляется вместе с PHP.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/var_representation.

Бинарные файлы Windows (файлы DLL) для этого модуля PECL доступны на сайте PECL.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

VAR_REPRESENTATION_SINGLE_LINE (int)
var_representation() - флаг, указывающий, что символы новой строки не должны использоваться для пробелов в представлениях переменных.
VAR_REPRESENTATION_UNESCAPED (int)
var_representation() - флаг, указывающий, что строки должны быть закодированы как строки в одинарных кавычках с неэкранированными управляющими символами.


Функции var_representation

Содержание

  • var_representation — Возвращает короткое, читаемое, разборчивое строковое представление переменной


Возвращает короткое, читаемое, разборчивое строковое представление переменной

  • « Функции var_representation
  • Другие службы »
  • PHP Manual
  • Функции var_representation
  • Возвращает короткое, читаемое, разборчивое строковое представление переменной

var_representation

(PECL var_representation >= 0.1.0)

var_representation — Возвращает короткое, читаемое, разборчивое строковое представление переменной

Описание

var_representation(mixed $value, int $flags = 0): string

var_representation() (модуль PECL var_representation) возвращает строку со структурированной информацией о данной переменной. Функция похожа на var_export() с различиями в отступах, экранировании строк и представлениях массива.

Список параметров

value

Переменная, для которой создаётся представление.

flags

Битовая маска, состоящая из: VAR_REPRESENTATION_SINGLE_LINE, VAR_REPRESENTATION_UNESCAPED. Поведение этих констант описано на странице константы var_representation.

Возвращаемые значения

Возвращает представление переменной.

Примеры

Пример #1 Пример использования var_representation()

<?php
$a = [1, 2, ['key' => 'value']];
echo var_representation($a), "\n";
echo var_representation($a, VAR_REPRESENTATION_SINGLE_LINE), "\n";
?>

Результат выполнения данного примера:

[
  1,
  2,
  [
    'key' => 'value',
  ],
]
[1, 2, ['key' => 'value']]

Пример #2 Экранирование управляющих символов

<?php
echo var_representation("Content-Length: 123\r\n");

Результат выполнения данного примера:

"Content-Length: 123\r\n"

Пример #3 Экспорт stdClass

<?php
$person = new stdClass;
$person->name = 'ElePHPant ElePHPantsdotter';
$person->website = 'https://php.net/elephpant.php';

echo var_representation($person);

Результат выполнения данного примера:

(object) [
  'name' => 'ElePHPant ElePHPantsdotter',
  'website' => 'https://php.net/elephpant.php',
]

Пример #4 Экспортирование классов

<?php
class A { public $var; }
$a = new A;
$a->var = 5;
echo var_representation($a);
?>

Результат выполнения данного примера:

\A::__set_state([
  'var' => 5,
])

Пример #5 Пример использования __set_state()

<?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_representation($a) . ';'); // $b = \A::__set_state([
// 'var1' => 5,
// 'var2' => 'foo',
// ]);
var_dump($b);
?>

Результат выполнения данного примера:

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Смотрите также

  • var_export() - Выводит или возвращает интерпретируемое строковое представление переменной


Другие службы

  • cURL — Клиентская библиотека работы с URL
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции cURL
    • CurlHandle — Класс CurlHandle
    • CurlMultiHandle — Класс CurlMultiHandle
    • CurlShareHandle — Класс CurlShareHandle
    • CURLFile — Класс CURLFile
    • CURLStringFile — Класс CURLStringFile
  • 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
  • FTP
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции FTP
    • FTP\Connection — Класс FTP\Connection
  • Gearman
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • GearmanClient — Класс GearmanClient
    • GearmanJob — Класс GearmanJob
    • GearmanTask — Класс GearmanTask
    • GearmanWorker — Класс GearmanWorker
    • GearmanException — Класс GearmanException
  • LDAP — Облегчённый протокол доступа к каталогам (LDAP)
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Использование вызовов PHP LDAP
    • Управляющие объекты LDAP
    • Примеры
    • Функции LDAP
    • LDAP\Connection — Класс LDAP\Connection
    • LDAP\Result — Класс LDAP\Result
    • LDAP\ResultEntry — Класс LDAP\ResultEntry
  • Memcache
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Memcache — Класс Memcache
    • Функции Memcache
  • Memcached
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Время хранения объекта
    • Функции обратного вызова
    • Поддержка сессий
    • Memcached — Класс Memcached
    • MemcachedException — Класс MemcachedException
  • mqseries
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции mqseries
  • Сеть
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Сетевые функции
  • RRD — RRDtool
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции RRD
    • RRDCreator — Класс RRDCreator
    • RRDGraph — Класс RRDGraph
    • RRDUpdater — Класс RRDUpdater
  • ScoutAPM
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции Scoutapm
  • SNMP
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции SNMP
    • SNMP — Класс SNMP
    • SNMPException — Класс SNMPException
  • Сокеты
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Ошибки сокетов
    • Функции сокета
    • Socket — Класс Socket
    • AddressInfo — Класс AddressInfo
  • 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
  • Обмен сообщениями 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


Клиентская библиотека работы с URL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
    • Простой пример использования curl
  • Функции cURL
    • curl_close — Завершает сеанс cURL
    • curl_copy_handle — Копирует дескриптор cURL вместе со всеми его настройками
    • curl_errno — Возвращает код последней ошибки
    • curl_error — Возвращает строку с описанием последней ошибки текущего сеанса
    • curl_escape — Кодирует заданную строку как URL
    • curl_exec — Выполняет запрос cURL
    • 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_upkeep — Выполняет любые проверки работоспособности соединений
    • curl_version — Возвращает версию cURL
  • CurlHandle — Класс CurlHandle
  • CurlMultiHandle — Класс CurlMultiHandle
  • CurlShareHandle — Класс CurlShareHandle
  • CURLFile — Класс CURLFile
    • CURLFile::__construct — Создаёт объект CURLFile
    • CURLFile::getFilename — Возвращает имя файла на сервере
    • CURLFile::getMimeType — Возвращает MIME-тип файла
    • CURLFile::getPostFilename — Возвращает имя файла, отправляемого POST-запросом
    • CURLFile::setMimeType — Устанавливает MIME-тип
    • CURLFile::setPostFilename — Устанавливает имя файла для отправки методом POST
  • CURLStringFile — Класс CURLStringFile
    • CURLStringFile::__construct — Создаёт объект CURLStringFile


Введение

В 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 или новее. Начиная с PHP 7.3.0, требуется версия 7.15.5 или новее. Начиная с PHP 8.0.0, требуется версия 7.29.0 или новее.


Установка

Для использования cURL необходимо собрать PHP с опцией --with-curl[=DIR], где DIR - имя каталога, содержащего подкаталоги lib и include. Каталог include должен содержать подкаталог curl с файлами easy.h и curl.h. В каталоге lib должен быть файл libcurl.a.

Замечание: Замечание для пользователей 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_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

curl.cainfo string

Значение по умолчанию для директивы CURLOPT_CAINFO. Данное значение должно быть указано в виде абсолютного пути.


Типы ресурсов

До PHP 8.0.0 модуль определял три типа ресурсов: дескриптор curl, дескриптор curl_multi и дескриптор curl_share.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

Описания и примеры работы с этими константами изложены в документации функций curl_setopt(), curl_multi_setopt() и curl_getinfo().

CURLOPT_AUTOREFERER (int)
CURLOPT_COOKIESESSION (int)
CURLOPT_DOH_URL (int)
Указывает URL-адрес сервера DNS поверх HTTPS. Доступно начиная с PHP 8.1.0 и cURL 7.62.0.
CURLOPT_DOH_SSL_VERIFYHOST (int)
Сопоставляет имена полей SSL-сертификата сервера DNS поверх HTTPS с именем хоста. Доступно начиная с PHP 8.2.0 и cURL 7.76.0.
CURLOPT_DOH_SSL_VERIFYPEER (int)
Проверяет подлинность SSL-сертификата сервера DNS поверх HTTPS. Доступно начиная с PHP 8.2.0 и cURL 7.76.0.
CURLOPT_DOH_SSL_VERIFYSTATUS (int)
Сообщает cURL, чтобы он проверил статус сертификата сервера DNS поверх HTTPS используя модуль TLS "Certificate Status Request" (OCSP-сшивание). Доступно начиная с PHP 8.2.0 и cURL 7.76.0.
CURLOPT_DNS_USE_GLOBAL_CACHE (int)
CURLOPT_DNS_CACHE_TIMEOUT (int)
CURLOPT_FTP_SSL (int)
CURLFTP_CREATE_DIR (int)
Доступно с PHP 7.0.7 и cURL 7.19.3.
CURLFTP_CREATE_DIR_NONE (int)
Доступно с PHP 7.0.7 и cURL 7.19.3.
CURLFTP_CREATE_DIR_RETRY (int)
Доступно с PHP 7.0.7 и cURL 7.19.3
CURLFTPSSL_TRY (int)
CURLFTPSSL_ALL (int)
CURLFTPSSL_CONTROL (int)
CURLFTPSSL_NONE (int)
CURLFTPMETHOD_DEFAULT (int)
Доступно начиная с PHP 8.2.0 и cURL 7.15.3.
CURLOPT_PRIVATE (int)
CURLOPT_FTPSSLAUTH (int)
CURLOPT_PORT (int)
CURLOPT_FILE (int)
CURLOPT_INFILE (int)
CURLOPT_INFILESIZE (int)
CURLOPT_ISSUERCERT_BLOB (int)
Сертификат SSL эмитента из большого двоичного объекта памяти. Доступно начиная с PHP 8.1.0 и cURL 7.71.0.
CURLOPT_URL (int)
CURLOPT_PROXY (int)
CURLOPT_PROXY_ISSUERCERT (int)
Имя файла сертификата SSL эмитента прокси. Доступно начиная с PHP 8.1.0 и cURL 7.71.0.
CURLOPT_PROXY_ISSUERCERT_BLOB (int)
SSL-сертификат эмитента прокси из большого двоичного объекта памяти. Доступно начиная с PHP 8.1.0 и cURL 7.71.0.
CURLOPT_PROXY_SSLCERT_BLOB (int)
Сертификат клиента прокси SSL из большого двоичного объекта памяти. Доступно начиная с PHP 8.1.0 и cURL 7.71.0.
CURLOPT_PROXY_SSLKEY_BLOB (int)
Закрытый ключ для сертификата прокси из большого двоичного объекта памяти. Доступно начиная с PHP 8.1.0 и cURL 7.71.0.
CURLOPT_VERBOSE (int)
CURLOPT_ALTSVC (int)
Доступно начиная с PHP 8.2.0 и cURL 7.64.1.
CURLOPT_ALTSVC_CTRL (int)
Доступно начиная с PHP 8.2.0 и cURL 7.64.1.
CURLALTSVC_H1 (int)
Доступно начиная с PHP 8.2.0 и cURL 7.64.1.
CURLALTSVC_H2 (int)
Доступно начиная с PHP 8.2.0 и cURL 7.64.1.
CURLALTSVC_H3 (int)
Доступно начиная с PHP 8.2.0 и cURL 7.64.1.
CURLALTSVC_READONLYFILE (int)
Доступно начиная с PHP 8.2.0 и cURL 7.64.1.
CURLOPT_HEADER (int)
CURLOPT_HTTPHEADER (int)
CURLOPT_NOPROGRESS (int)
CURLOPT_NOBODY (int)
CURLOPT_FAILONERROR (int)
CURLOPT_UPLOAD (int)
CURLOPT_UPLOAD_BUFFERSIZE (int)
Доступно начиная с PHP 8.2.0 и cURL 7.62.0.
CURLOPT_POST (int)
CURLOPT_FTPLISTONLY (int)
CURLOPT_FTPAPPEND (int)
CURLOPT_FTP_CREATE_MISSING_DIRS (int)
CURLOPT_NETRC (int)
CURLOPT_FOLLOWLOCATION (int)
Эта опция недоступна, если разрешён open_basedir.
CURLOPT_FTPASCII (int)
CURLOPT_PUT (int)
CURLOPT_MUTE (int)
Удалено в cURL 7.15.5; вместо неё используйте константу CURLOPT_RETURNTRANSFER.
CURLOPT_USERPWD (int)
CURLOPT_PROXYUSERPWD (int)
CURLOPT_RANGE (int)
CURLOPT_TIMEOUT (int)
CURLOPT_TIMEOUT_MS (int)
CURLOPT_TCP_NODELAY (int)
CURLOPT_POSTFIELDS (int)
CURLOPT_PROGRESSFUNCTION (int)
CURLOPT_REFERER (int)
CURLOPT_USERAGENT (int)
CURLOPT_FTPPORT (int)
CURLOPT_FTP_USE_EPSV (int)
CURLOPT_LOW_SPEED_LIMIT (int)
CURLOPT_LOW_SPEED_TIME (int)
CURLOPT_RESUME_FROM (int)
CURLOPT_COOKIE (int)
CURLOPT_COOKIELIST (int)
Доступно с cURL 7.14.1.
CURLOPT_SSLCERT (int)
CURLOPT_SSLCERT_BLOB (int)
Сертификат клиента SSL из большого двоичного объекта памяти. Доступно начиная с PHP 8.1.0 и cURL 7.71.0.
CURLOPT_SSLCERTPASSWD (int)
CURLOPT_SSLKEY_BLOB (int)
Закрытый ключ для сертификата клиента из большого двоичного объекта памяти. Доступно начиная с PHP 8.1.0 и cURL 7.71.0.
CURLOPT_WRITEHEADER (int)
CURLOPT_SSL_VERIFYHOST (int)
CURLOPT_COOKIEFILE (int)
CURLOPT_SSLVERSION (int)
CURL_SSLVERSION_DEFAULT (int)
CURL_SSLVERSION_TLSv1 (int)
CURL_SSLVERSION_SSLv2 (int)
CURL_SSLVERSION_SSLv3 (int)
CURL_SSLVERSION_TLSv1_0 (int)
CURL_SSLVERSION_TLSv1_1 (int)
CURL_SSLVERSION_TLSv1_2 (int)
CURL_SSLVERSION_TLSv1_3 (int)
CURLOPT_TIMECONDITION (int)
CURLOPT_TIMEVALUE (int)
CURLOPT_CUSTOMREQUEST (int)
CURLOPT_STDERR (int)
CURLOPT_TRANSFERTEXT (int)
CURLOPT_RETURNTRANSFER (int)
CURLOPT_QUOTE (int)
CURLOPT_POSTQUOTE (int)
CURLOPT_INTERFACE (int)
CURLOPT_KRB4LEVEL (int)
CURLOPT_HTTPPROXYTUNNEL (int)
CURLOPT_FILETIME (int)
CURLOPT_WRITEFUNCTION (int)
CURLOPT_READFUNCTION (int)
CURLOPT_PASSWDFUNCTION (int)
Удалено в PHP 7.3.0.
CURLOPT_HEADERFUNCTION (int)
CURLOPT_MAXAGE_CONN (int)
Доступно начиная с PHP 8.2.0 и cURL 7.65.0.
CURLOPT_MAXFILESIZE_LARGE (int)
Доступно начиная с PHP 8.2.0 и cURL 7.11.0.
CURLOPT_MAXLIFETIME_CONN (int)
Доступно начиная с PHP 8.2.0 и cURL 7.80.0.
CURLOPT_MAXREDIRS (int)
CURLOPT_MAXCONNECTS (int)
CURLOPT_FRESH_CONNECT (int)
CURLOPT_FORBID_REUSE (int)
CURLOPT_RANDOM_FILE (int)
CURLOPT_EGDSOCKET (int)
CURLOPT_CONNECTTIMEOUT_MS (int)
CURLOPT_SSL_VERIFYPEER (int)
CURLOPT_CAINFO (int)
CURLOPT_CAINFO_BLOB (int)
Доступно начиная с PHP 8.2.0 и cURL 7.77.0.
CURLOPT_CAPATH (int)
CURLOPT_COOKIEJAR (int)
CURLOPT_SSL_CIPHER_LIST (int)
CURLOPT_SSL_EC_CURVES (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLOPT_BINARYTRANSFER (int)
CURLOPT_NOSIGNAL (int)
CURLOPT_PROXYTYPE (int)
Доступно начиная с cURL 7.10.
CURLOPT_BUFFERSIZE (int)
CURLOPT_HTTPGET (int)
CURLOPT_HTTP_VERSION (int)
CURLOPT_HSTS (int)
Доступно начиная с PHP 8.2.0 и cURL 7.74.0.
CURLOPT_HSTS_CTRL (int)
Доступно начиная с PHP 8.2.0 и cURL 7.74.0.
CURLHSTS_ENABLE (int)
Доступно начиная с PHP 8.2.0 и cURL 7.74.0.
CURLHSTS_READONLYFILE (int)
Доступно начиная с PHP 8.2.0 и cURL 7.74.0.
CURLOPT_SSLKEY (int)
CURLOPT_SSLKEYTYPE (int)
CURLOPT_SSLKEYPASSWD (int)
CURLOPT_SSLENGINE (int)
CURLOPT_SSLENGINE_DEFAULT (int)
CURLOPT_SSLCERTTYPE (int)
CURLOPT_CRLF (int)
CURLOPT_ENCODING (int)
CURLOPT_PROXYPORT (int)
CURLOPT_UNRESTRICTED_AUTH (int)
CURLOPT_FTP_USE_EPRT (int)
CURLOPT_HTTP200ALIASES (int)
CURLOPT_HTTPAUTH (int)
CURLOPT_AWS_SIGV4 (int)
Доступно начиная с PHP 8.2.0 и cURL 7.75.0.
CURLAUTH_BASIC (int)
CURLAUTH_DIGEST (int)
CURLAUTH_GSSNEGOTIATE (int)
CURLAUTH_NEGOTIATE (int)
Доступно начиная с PHP 7.0.7 и cURL 7.38.0.
CURLAUTH_NTLM (int)
CURLAUTH_NTLM_WB (int)
Доступно начиная с PHP 7.0.7 и cURL 7.22.0.
CURLAUTH_ANY (int)
CURLAUTH_ANYSAFE (int)
CURLAUTH_AWS_SIGV4 (int)
Доступно начиная с PHP 8.2.0 и cURL 7.75.0.
CURLOPT_PROXYAUTH (int)
CURLOPT_MAIL_RCPT_ALLLOWFAILS (int)
Доступно начиная с PHP 8.2.0 и cURL 7.69.0.
CURLOPT_UPKEEP_INTERVAL_MS (int)
Доступно начиная с PHP 8.2.0 и cURL 7.62.0.
CURLOPT_MAX_RECV_SPEED_LARGE (int)
Доступно начиная с cURL 7.15.5.
CURLOPT_MAX_SEND_SPEED_LARGE (int)
Доступно начиная с cURL 7.15.5.
CURLOPT_HEADEROPT (int)
Доступно начиная с PHP 7.0.7 и cURL 7.37.0.
CURLOPT_PROXYHEADER (int)
CURLOPT_CONNECTTIMEOUT_MS (int)
Доступно начиная с PHP 7.0.7 и cURL 7.37.0.
CURLINFO_PRIVATE (int)
CURLINFO_EFFECTIVE_URL (int)
CURLINFO_HTTP_CODE (int)
С cURL 7.10.8 это устаревший псевдоним опции CURLINFO_RESPONSE_CODE
CURLINFO_PROXY_ERROR (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_BAD_ADDRESS_TYPE (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_BAD_VERSION (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_CLOSED (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_GSSAPI (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_GSSAPI_PERMSG (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_GSSAPI_PROTECTION (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_IDENTD_DIFFER (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_IDENTD (int)
Доступно начиная с 8.2.0 и cURL 7.73.0.
CURLPX_LONG_HOSTNAME (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_LONG_PASSWD (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_LONG_USER (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_NO_AUTH (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_OK (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_RECV_ADDRESS (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_RECV_AUTH (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_RECV_CONNECT (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_RECV_REQACK (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_REPLY_COMMAND_NOT_SUPPORTED (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_REPLY_CONNECTION_REFUSED (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_REPLY_GENERAL_SERVER_FAILURE (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_REPLY_HOST_UNREACHABLE (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_REPLY_NETWORK_UNREACHABLE (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_REPLY_NOT_ALLOWED (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_REPLY_TTL_EXPIRED (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_REPLY_UNASSIGNED (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_REQUEST_FAILED (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_RESOLVE_HOST (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_SEND_AUTH (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_SEND_CONNECT (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_SEND_REQUEST (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_UNKNOWN_FAIL (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_UNKNOWN_MODE (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLPX_USER_REJECTED (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLINFO_REFERER (int)
Доступно начиная с PHP 8.2.0 и cURL 7.76.0.
CURLINFO_RESPONSE_CODE (int)
Доступно с cURL 7.10.8
CURLINFO_RETRY_AFTER (int)
Доступно начиная с PHP 8.2.0 и cURL 7.66.0.
CURLINFO_HEADER_OUT (int)
CURLINFO_HEADER_SIZE (int)
CURLINFO_REQUEST_SIZE (int)
CURLINFO_TOTAL_TIME (int)
CURLINFO_NAMELOOKUP_TIME (int)
CURLINFO_CONNECT_TIME (int)
CURLINFO_PRETRANSFER_TIME (int)
CURLINFO_SIZE_UPLOAD (int)
CURLINFO_SIZE_DOWNLOAD (int)
CURLINFO_SPEED_DOWNLOAD (int)
CURLINFO_SPEED_UPLOAD (int)
CURLINFO_FILETIME (int)
CURLINFO_SSL_VERIFYRESULT (int)
CURLINFO_CONTENT_LENGTH_DOWNLOAD (int)
CURLINFO_CONTENT_LENGTH_UPLOAD (int)
CURLINFO_STARTTRANSFER_TIME (int)
CURLINFO_CONTENT_TYPE (int)
CURLINFO_REDIRECT_TIME (int)
CURLINFO_REDIRECT_COUNT (int)
CURLINFO_REDIRECT_URL (int)
CURLINFO_PRIMARY_IP (int)
CURLINFO_PRIMARY_PORT (int)
CURLINFO_LOCAL_IP (int)
CURLINFO_LOCAL_PORT (int)
CURL_PUSH_OK (int)
Доступно с PHP 7.1.0 и cURL 7.44.0.
CURL_PUSH_DENY (int)
Доступно с PHP 7.1.0 и cURL 7.44.0.
CURL_REDIR_POST_301 (int)
Доступно с PHP 7.0.7 и cURL 7.18.2.
CURL_REDIR_POST_302 (int)
Доступно с PHP 7.0.7 и cURL 7.18.2.
CURL_REDIR_POST_303 (int)
Доступно с PHP 7.0.7 и cURL 7.25.1.
CURL_REDIR_POST_ALL (int)
Доступно с PHP 7.0.7 и cURL 7.18.2.
CURL_TIMECOND_NONE (int)
CURL_TIMECOND_IFMODSINCE (int)
CURL_TIMECOND_IFUNMODSINCE (int)
CURL_TIMECOND_LASTMOD (int)
CURL_VERSION_ALTSVC (int)
Доступно с PHP 7.3.6 и cURL 7.64.1.
CURL_VERSION_ASYNCHDNS (int)
Асинхронное разрешение DNS. Доступно с PHP 7.3.0 и cURL 7.10.7.
CURL_VERSION_BROTLI (int)
Доступно с PHP 7.3.0 и cURL 7.57.0.
CURL_VERSION_CONV (int)
Поддерживаются преобразования символов. Доступно с PHP 7.3.0 и cURL 7.15.4.
CURL_VERSION_CURLDEBUG (int)
Поддерживается отслеживание отладки памяти. Доступно с PHP 7.3.6 и cURL 7.19.6.
CURL_VERSION_DEBUG (int)
Собран с возможностью отладки. Доступно с PHP 7.3.0 и cURL 7.10.6.
CURL_VERSION_GSASL (int)
Доступно начиная с PHP 8.2.0 и cURL 7.76.0.
CURL_VERSION_GSSAPI (int)
Собран на основе библиотеки GSS-API. Доступно с PHP 7.3.0 и cURL 7.38.0.
CURL_VERSION_GSSNEGOTIATE (int)
Поддерживается согласование аутентификации. Доступно с PHP 7.3.0 и cURL 7.10.6 (объявлено устаревшим с 7.38.0).
CURL_VERSION_HSTS (int)
Доступно начиная с PHP 8.2.0 и cURL 7.74.0.
CURL_VERSION_IDN (int)
Поддерживаются международные доменные имена. Доступно с PHP 7.3.0 и cURL 7.12.0.
CURL_VERSION_MULTI_SSL (int)
Доступно с PHP 7.3.0 и cURL 7.56.0.
CURL_VERSION_NTLM (int)
Поддерживается аутентификация NTLM. Доступно с PHP 7.3.0 и cURL 7.10.6.
CURL_VERSION_NTLM_WB (int)
Поддерживается делегирование NTLM помощнику winbind. Доступно с PHP 7.3.0 и cURL 7.22.0.
CURL_VERSION_IPV6 (int)
С поддержкой IPv6.
CURL_VERSION_KERBEROS4 (int)
Поддерживается проверка подлинности Kerberos V4.
CURL_VERSION_KERBEROS5 (int)
Поддерживается проверка подлинности Kerberos V5. Доступно с PHP 7.0.7 и cURL 7.40.0.
CURL_VERSION_HTTP2 (int)
Встроенная поддержка HTTP2. Доступно с cURL 7.33.0.
CURL_VERSION_HTTP3 (int)
Доступно начиная с PHP 8.2.0 и cURL 7.66.0.
CURL_VERSION_LARGEFILE (int)
Поддерживает файлы размером более 2 ГБ. Доступно с cURL 7.33.0.
CURL_VERSION_PSL (int)
Список общедоступных суффиксов Mozilla, используемый для проверки домена cookie. Доступно с PHP 7.3.6 и cURL 7.47.0.
CURL_VERSION_SPNEGO (int)
Поддерживается аутентификация SPNEGO. Доступно с PHP 7.3.0 и cURL 7.10.8.
CURL_VERSION_SSPI (int)
Встроенная поддержка Windows SSPI. Доступно с PHP 7.3.0 и cURL 7.13.2.
CURL_VERSION_SSL (int)
Присутствуют опции SSL.
CURL_VERSION_TLSAUTH_SRP (int)
Поддерживается аутентификация TLS-SRP. Доступно с PHP 7.3.0 и cURL 7.21.4.
CURL_VERSION_UNICODE (int)
Доступно начиная с PHP 8.2.0 и cURL 7.72.0.
CURL_VERSION_UNIX_SOCKETS (int)
Поддержка сокетов домена Unix. Доступно с PHP 7.0.7 и cURL 7.40.0.
CURL_VERSION_ZSTD (int)
Доступно начиная с PHP 8.2.0 и cURL 7.72.0.
CURL_VERSION_LIBZ (int)
Поддерживаются возможности libz.
CURLVERSION_NOW (int)
CURLE_OK (int)
CURLE_UNSUPPORTED_PROTOCOL (int)
CURLE_FAILED_INIT (int)
CURLE_URL_MALFORMAT (int)
CURLE_URL_MALFORMAT_USER (int)
CURLE_COULDNT_RESOLVE_PROXY (int)
CURLE_COULDNT_RESOLVE_HOST (int)
CURLE_COULDNT_CONNECT (int)
CURLE_FTP_WEIRD_SERVER_REPLY (int)
CURLE_FTP_ACCESS_DENIED (int)
CURLE_FTP_USER_PASSWORD_INCORRECT (int)
CURLE_FTP_WEIRD_PASS_REPLY (int)
CURLE_FTP_WEIRD_USER_REPLY (int)
CURLE_FTP_WEIRD_PASV_REPLY (int)
CURLE_FTP_WEIRD_227_FORMAT (int)
CURLE_FTP_CANT_GET_HOST (int)
CURLE_FTP_CANT_RECONNECT (int)
CURLE_FTP_COULDNT_SET_BINARY (int)
CURLE_PARTIAL_FILE (int)
CURLE_PROXY (int)
Доступно начиная с PHP 8.2.0 и cURL 7.73.0.
CURLE_FTP_COULDNT_RETR_FILE (int)
CURLE_FTP_WRITE_ERROR (int)
CURLE_FTP_QUOTE_ERROR (int)
CURLE_HTTP_NOT_FOUND (int)
CURLE_WRITE_ERROR (int)
CURLE_MALFORMAT_USER (int)
CURLE_FTP_COULDNT_STOR_FILE (int)
CURLE_READ_ERROR (int)
CURLE_OUT_OF_MEMORY (int)
CURLE_OPERATION_TIMEOUTED (int)
CURLE_FTP_COULDNT_SET_ASCII (int)
CURLE_FTP_PORT_FAILED (int)
CURLE_FTP_COULDNT_USE_REST (int)
CURLE_FTP_COULDNT_GET_SIZE (int)
CURLE_HTTP_RANGE_ERROR (int)
CURLE_HTTP_POST_ERROR (int)
CURLE_SSL_CONNECT_ERROR (int)
CURLE_FTP_BAD_DOWNLOAD_RESUME (int)
CURLE_FILE_COULDNT_READ_FILE (int)
CURLE_LDAP_CANNOT_BIND (int)
CURLE_LDAP_SEARCH_FAILED (int)
CURLE_LIBRARY_NOT_FOUND (int)
CURLE_FUNCTION_NOT_FOUND (int)
CURLE_ABORTED_BY_CALLBACK (int)
CURLE_BAD_FUNCTION_ARGUMENT (int)
CURLE_BAD_CALLING_ORDER (int)
CURLE_HTTP_PORT_FAILED (int)
CURLE_BAD_PASSWORD_ENTERED (int)
CURLE_TOO_MANY_REDIRECTS (int)
CURLE_UNKNOWN_TELNET_OPTION (int)
CURLE_TELNET_OPTION_SYNTAX (int)
CURLE_OBSOLETE (int)
CURLE_SSL_PEER_CERTIFICATE (int)
CURLE_GOT_NOTHING (int)
CURLE_SSL_ENGINE_NOTFOUND (int)
CURLE_SSL_ENGINE_SETFAILED (int)
CURLE_SEND_ERROR (int)
CURLE_RECV_ERROR (int)
CURLE_SHARE_IN_USE (int)
CURLE_SSL_CERTPROBLEM (int)
CURLE_SSL_CIPHER (int)
CURLE_SSL_CACERT (int)
CURLE_BAD_CONTENT_ENCODING (int)
CURLE_LDAP_INVALID_URL (int)
CURLE_FILESIZE_EXCEEDED (int)
CURLE_FTP_SSL_FAILED (int)
CURLE_SSH (int)
Доступно с cURL 7.16.1.
CURLFTPAUTH_DEFAULT (int)
CURLFTPAUTH_SSL (int)
CURLFTPAUTH_TLS (int)
CURLPROXY_HTTP (int)
Доступно с cURL 7.10.
CURLPROXY_HTTP_1_0 (int)
Доступно с PHP 7.0.7 и cURL 7.19.3.
CURLPROXY_SOCKS4 (int)
Доступно с cURL 7.10.
CURLPROXY_SOCKS5 (int)
Доступно с cURL 7.10.
CURL_NETRC_OPTIONAL (int)
CURL_NETRC_IGNORED (int)
CURL_NETRC_REQUIRED (int)
CURL_HTTP_VERSION_NONE (int)
CURL_HTTP_VERSION_1_0 (int)
CURL_HTTP_VERSION_1_1 (int)
CURL_HTTP_VERSION_2 (int)
Доступно с PHP 7.0.7 и cURL 7.43.0.
CURL_HTTP_VERSION_2_0 (int)
Доступно с cURL 7.33.0.
CURL_HTTP_VERSION_2TLS (int)
Доступно с PHP 7.0.7 и cURL 7.47.0.
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (int)
Доступно с PHP 7.0.7 и cURL 7.49.0.
CURLM_CALL_MULTI_PERFORM (int)
CURLM_OK (int)
CURLM_BAD_HANDLE (int)
CURLM_BAD_EASY_HANDLE (int)
CURLM_OUT_OF_MEMORY (int)
CURLM_INTERNAL_ERROR (int)
CURLMSG_DONE (int)
CURLOPT_KEYPASSWD (int)
CURLOPT_SSH_AUTH_TYPES (int)
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 (int)
CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (int)
Доступно начиная с PHP 8.2.0 и cURL 7.80.0.
CURLOPT_SSH_PRIVATE_KEYFILE (int)
CURLOPT_SSH_PUBLIC_KEYFILE (int)
CURLOPT_SSL_OPTIONS (int)
Доступно с cURL 7.25.0
CURLSSLOPT_ALLOW_BEAST (int)
Доступно с cURL 7.25.0.
CURLSSLOPT_NO_REVOKE (int)
Доступно с PHP 7.0.7 и cURL 7.44.0.
CURLSSLOPT_AUTO_CLIENT_CERT (int)
Доступно начиная с PHP 8.2.0 и cURL 7.77.0.
CURLSSLOPT_NATIVE_CA (int)
Доступно начиная с PHP 8.2.0 и cURL 7.71.0.
CURLSSLOPT_NO_PARTIALCHAIN (int)
Доступно начиная с PHP 8.2.0 и cURL 7.68.0.
CURLSSLOPT_REVOKE_BEST_EFFORT (int)
Доступно начиная с PHP 8.2.0 и cURL 7.70.0.
CURLOPT_USERNAME (int)
Доступно с cURL 7.19.1.
CURLOPT_SASL_AUTHZID (int)
Доступно начиная с PHP 8.2.0 и cURL 7.66.0.
CURLOPT_SASL_IR (int)
Доступно с PHP 7.0.7 и cURL 7.31.0.
CURLOPT_DNS_INTERFACE (int)
Доступно с PHP 7.0.7 и cURL 7.33.0.
CURLOPT_DNS_LOCAL_IP4 (int)
Доступно с PHP 7.0.7 и cURL 7.33.0.
CURLOPT_DNS_LOCAL_IP6 (int)
Доступно с PHP 7.0.7 и cURL 7.33.0.
CURLOPT_XOAUTH2_BEARER (int)
Доступно с PHP 7.0.7 и cURL 7.33.0.
CURLOPT_LOGIN_OPTIONS (int)
Доступно с PHP 7.0.7 и cURL 7.34.0.
CURLOPT_EXPECT_100_TIMEOUT_MS (int)
Доступно с PHP 7.0.7 и cURL 7.36.0.
CURLOPT_SSL_ENABLE_ALPN (int)
Доступно с PHP 7.0.7 и cURL 7.36.0.
CURLOPT_SSL_ENABLE_NPN (int)
Доступно с PHP 7.0.7 и cURL 7.36.0.
CURLOPT_PINNEDPUBLICKEY (int)
Доступно с PHP 7.0.7 и cURL 7.39.0.
CURLOPT_UNIX_SOCKET_PATH (int)
Доступно с PHP 7.0.7 и cURL 7.40.0.
CURLOPT_SSL_VERIFYSTATUS (int)
Доступно с PHP 7.0.7 и cURL 7.41.0.
CURLOPT_PATH_AS_IS (int)
Доступно с PHP 7.0.7 и cURL 7.42.0.
CURLOPT_SSL_FALSESTART (int)
Доступно с PHP 7.0.7 и cURL 7.42.0.
CURLOPT_PIPEWAIT (int)
Доступно с PHP 7.0.7 и cURL 7.43.0.
CURLOPT_PROXY_SERVICE_NAME (int)
Доступно с PHP 7.0.7 и cURL 7.43.0.
CURLOPT_SERVICE_NAME (int)
Доступно с PHP 7.0.7 и cURL 7.43.0.
CURLOPT_DEFAULT_PROTOCOL (int)
Доступно с PHP 7.0.7 и cURL 7.45.0.
CURLOPT_STREAM_WEIGHT (int)
Доступно с PHP 7.0.7 и cURL 7.46.0.
CURLOPT_TFTP_NO_OPTIONS (int)
Доступно с PHP 7.0.7 и cURL 7.48.0.
CURLOPT_CONNECT_TO (int)
Доступно с PHP 7.0.7 и cURL 7.49.0.
CURLOPT_TCP_FASTOPEN (int)
Доступно с PHP 7.0.7 и cURL 7.49.0.
CURLOPT_TCP_KEEPALIVE (int)
Доступно с cURL 7.25.0.
CURLOPT_TCP_KEEPIDLE (int)
Доступно с cURL 7.25.0.
CURLOPT_TCP_KEEPINTVL (int)
Доступно с cURL 7.25.0.
CURLMOPT_PIPELINING (int)
Доступно с cURL 7.16.0.
CURLMOPT_MAXCONNECTS (int)
Доступно с cURL 7.16.3.
CURLMOPT_MAX_CONCURRENT_STREAMS (int)
Доступно начиная с PHP 8.2.0 и cURL 7.67.0.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE (int)
Доступно с PHP 7.0.7 и cURL 7.30.0.
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE (int)
Доступно с PHP 7.0.7 и cURL 7.30.0.
CURLMOPT_MAX_HOST_CONNECTIONS (int)
Доступно с PHP 7.0.7 и cURL 7.30.0.
CURLMOPT_MAX_PIPELINE_LENGTH (int)
Доступно с PHP 7.0.7 и cURL 7.30.0.
CURLMOPT_MAX_TOTAL_CONNECTIONS (int)
Доступно с PHP 7.0.7 и cURL 7.30.0.
CURLMOPT_PUSHFUNCTION (int)
Доступно с PHP 7.1.0 и cURL 7.44.0.
CURLSSH_AUTH_AGENT (int)
Доступно с PHP 7.0.7 и cURL 7.28.0.
CURLSSH_AUTH_ANY (int)
CURLSSH_AUTH_DEFAULT (int)
CURLSSH_AUTH_HOST (int)
CURLSSH_AUTH_KEYBOARD (int)
CURLSSH_AUTH_NONE (int)
CURLSSH_AUTH_PASSWORD (int)
CURLSSH_AUTH_PUBLICKEY (int)
CURLPAUSE_ALL (int)
Доступно с cURL 7.18.0.
CURLPAUSE_CONT (int)
Доступно с cURL 7.18.0.
CURLPAUSE_RECV (int)
Доступно с cURL 7.18.0.
CURLPAUSE_RECV_CONT (int)
Доступно с cURL 7.18.0.
CURLPAUSE_SEND (int)
Доступно с cURL 7.18.0.
CURLPAUSE_SEND_CONT (int)
Доступно с cURL 7.18.0.
CURLPIPE_NOTHING (int)
Доступно с cURL 7.43.0.
CURLPIPE_HTTP1 (int)
Доступно с cURL 7.43.0.
CURLPIPE_MULTIPLEX (int)
Доступно с cURL 7.43.0.
CURLPROXY_SOCKS4A (int)
Доступно с cURL 7.18.0.
CURLPROXY_SOCKS5_HOSTNAME (int)
Доступно с cURL 7.18.0.
CURLHEADER_SEPARATE (int)
Доступно с PHP 7.0.7 и cURL 7.37.0.
CURLHEADER_UNIFIED (int)
Доступно с PHP 7.0.7 и cURL 7.37.0.
CURLPROTO_SMB (int)
Доступно с PHP 7.0.7 и cURL 7.40.0.
CURLPROTO_SMBS (int)
Доступно с PHP 7.0.7 и cURL 7.40.0.
CURLPROTO_MQTT (int)
Доступно начиная с PHP 8.2.0 и cURL 7.71.0.
CURLOPT_REQUEST_TARGET (int)
Доступно с PHP 7.3.0 и cURL 7.55.0.
CURLAUTH_GSSAPI (int)
Доступно с версии PHP 7.3.0 и cURL 7.54.1.
CURLE_WEIRD_SERVER_REPLY (int)
Доступно с версии PHP 7.3.0 и cURL 7.51.0.
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.55.0.
CURLINFO_CONTENT_LENGTH_UPLOAD_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.55.0.
CURLINFO_HTTP_VERSION (int)
Доступно с версии PHP 7.3.0 и cURL 7.50.0.
CURLINFO_PROTOCOL (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLINFO_PROXY_SSL_VERIFYRESULT (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLINFO_SCHEME (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLINFO_SIZE_DOWNLOAD_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.50.0.
CURLINFO_SIZE_UPLOAD_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.50.0.
CURLINFO_SPEED_DOWNLOAD_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.50.0.
CURLINFO_SPEED_UPLOAD_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.50.0.
CURL_MAX_READ_SIZE (int)
Доступно с версии PHP 7.3.0 и cURL 7.53.0.
CURLOPT_ABSTRACT_UNIX_SOCKET (int)
Доступно с версии PHP 7.3.0 и cURL 7.53.0.
CURLOPT_KEEP_SENDING_ON_ERROR (int)
Доступно с версии PHP 7.3.0 и cURL 7.51.0.
CURLOPT_PRE_PROXY (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_CAINFO (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_CAINFO_BLOB (int)
Доступно начиная с PHP 8.2.0 и cURL 7.77.0.
CURLOPT_PROXY_CAPATH (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_CRLFILE (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_KEYPASSWD (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_PINNEDPUBLICKEY (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_SSLCERT (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_SSLCERTTYPE (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_SSL_CIPHER_LIST (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_SSLKEY (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_SSLKEYTYPE (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_SSL_OPTIONS (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_SSL_VERIFYHOST (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_SSL_VERIFYPEER (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_SSLVERSION (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_PASSWORD (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_TYPE (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_USERNAME (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLOPT_SOCKS5_AUTH (int)
Доступно с версии PHP 7.3.0 и cURL 7.55.0.
CURLOPT_SUPPRESS_CONNECT_HEADERS (int)
Доступно с версии PHP 7.3.0 и cURL 7.54.0.
CURLPROXY_HTTPS (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURL_SSLVERSION_MAX_DEFAULT (int)
Доступно с версии PHP 7.3.0 и cURL 7.54.0.
CURL_SSLVERSION_MAX_NONE (int)
Доступно с версии PHP 7.3.0 и cURL 7.54.0.
CURL_SSLVERSION_MAX_TLSv1_0 (int)
Доступно с версии PHP 7.3.0 и cURL 7.54.0.
CURL_SSLVERSION_MAX_TLSv1_1 (int)
Доступно с версии PHP 7.3.0 и cURL 7.54.0.
CURL_SSLVERSION_MAX_TLSv1_2 (int)
Доступно с версии PHP 7.3.0 и cURL 7.54.0.
CURL_SSLVERSION_MAX_TLSv1_3 (int)
Доступно с версии PHP 7.3.0 и cURL 7.54.0.
CURL_SSLVERSION_TLSv1_3 (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURL_VERSION_HTTPS_PROXY (int)
Доступно с версии PHP 7.3.0 и cURL 7.52.0.
CURLAUTH_BEARER (int)
Доступно с версии PHP 7.3.0 и cURL 7.61.0.
CURLINFO_APPCONNECT_TIME_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.61.0.
CURLINFO_CONNECT_TIME_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.61.0.
CURLINFO_FILETIME_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.59.0.
CURLINFO_NAMELOOKUP_TIME_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.61.0.
CURLINFO_PRETRANSFER_TIME_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.61.0.
CURLINFO_REDIRECT_TIME_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.61.0.
CURLINFO_STARTTRANSFER_TIME_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.61.0.
CURLINFO_TOTAL_TIME_T (int)
Доступно с версии PHP 7.3.0 и cURL 7.61.0.
CURL_LOCK_DATA_CONNECT (int)
Доступно с версии PHP 7.3.0 и cURL 7.10.0.
CURL_LOCK_DATA_PSL (int)
Доступно с версии PHP 7.3.0 и cURL 7.61.0.
CURLOPT_DISALLOW_USERNAME_IN_URL (int)
Доступно с версии PHP 7.3.0 и cURL 7.61.0.
CURLOPT_DNS_SHUFFLE_ADDRESSES (int)
Доступно с версии PHP 7.3.0 и cURL 7.60.0.
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS (int)
Доступно с версии PHP 7.3.0 и cURL 7.59.0.
CURLOPT_HAPROXYPROTOCOL (int)
Доступно с версии PHP 7.3.0 и cURL 7.60.0.
CURLOPT_PROXY_TLS13_CIPHERS (int)
Доступно с версии PHP 7.3.0 и cURL 7.61.0.
CURLOPT_SSH_COMPRESSION (int)
Доступно с версии PHP 7.3.0 и cURL 7.56.0.
CURLOPT_TIMEVALUE_LARGE (int)
Доступно с версии PHP 7.3.0 и cURL 7.59.0.
CURLOPT_TLS13_CIPHERS (int)
Доступно с версии PHP 7.3.0 и cURL 7.61.0.
CURLSSH_AUTH_GSSAPI (int)
Доступно с версии PHP 7.3.0 и cURL 7.58.0.
CURLOPT_HTTP09_ALLOWED (int)
Доступно с версии 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_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_upkeep — Выполняет любые проверки работоспособности соединений
  • curl_version — Возвращает версию cURL


Завершает сеанс cURL

  • « Функции cURL
  • curl_copy_handle »
  • PHP Manual
  • Функции cURL
  • Завершает сеанс cURL

curl_close

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_close — Завершает сеанс cURL

Описание

curl_close(CurlHandle $handle): void

Замечание:

Использование функции больше не имеет смысла. До PHP 8.0.0 она использовалась для закрытия ресурса.

Завершает сеанс cURL и освобождает все ресурсы. Дескриптор handle также уничтожается.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

curl_copy_handle — Копирует дескриптор cURL вместе со всеми его настройками

Описание

curl_copy_handle(CurlHandle $handle): CurlHandle|false

Копирует дескриптор cURL, сохраняя его настройки.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает новый дескриптор cURL или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).
8.0.0 | В случае успешного выполнения возвращает экземпляр CurlHandle; раньше возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

curl_errno — Возвращает код последней ошибки

Описание

curl_errno(CurlHandle $handle): int

Возвращает код ошибки последней операции cURL.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает номер ошибки или 0 (ноль), если ошибки не произошло.

Список изменений

Версия | Описание
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

curl_error — Возвращает строку с описанием последней ошибки текущего сеанса

Описание

curl_error(CurlHandle $handle): string

Возвращает понятное сообщение об ошибке для последней операции cURL.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает сообщение об ошибке или '' (пустую строку), если ошибки не произошло.

Список изменений

Версия | Описание
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

curl_escape — Кодирует заданную строку как URL

Описание

curl_escape(CurlHandle $handle, string $string): string|false

Кодирует строку согласно » RFC 3986.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

string

Строка для кодирования.

Возвращаемые значения

Возвращает экранированную строку или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).

Примеры

Пример #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_getinfo »
  • PHP Manual
  • Функции cURL
  • Выполняет запрос cURL

curl_exec

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_exec — Выполняет запрос cURL

Описание

curl_exec(CurlHandle $handle): string|bool

Выполняет запрос cURL.

Эта функция должна вызываться после инициализации сеанса и установки всех необходимых параметров.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Однако, если установлена опция CURLOPT_RETURNTRANSFER, при успешном завершении будет возвращён результат, а при неудаче - false.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Замечание:

Обратите внимание, что коды состояния ответа, указывающие на ошибки (например, 404 Not found), не рассматриваются как неудача. Функция curl_getinfo() может использоваться для проверки таких ошибок.

Список изменений

Версия | Описание
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).

Примеры

Пример #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


Возвращает информацию об определённой операции

  • « curl_exec
  • curl_init »
  • PHP Manual
  • Функции cURL
  • Возвращает информацию об определённой операции

curl_getinfo

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

curl_getinfo — Возвращает информацию об определённой операции

Описание

curl_getinfo(CurlHandle $handle, ?int $option = null): mixed

Возвращает информацию о последней операции.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

option

Одна из перечисленных констант:

  • CURLINFO_EFFECTIVE_URL - Последний использованный URL
  • CURLINFO_HTTP_CODE - Последний код ответа. Начиная с 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_REFERER - Заголовок реферера
  • CURLINFO_REQUEST_SIZE - Суммарный размер всех отправленных запросов, в настоящее время используется только для HTTP-запросов
  • CURLINFO_RETRY_AFTER - Информация из заголовка Retry-After: или ноль, если корректного заголовка не было.
  • 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_PROXY_ERROR - Подробный (SOCKS) код ошибки прокси, когда последняя передача вернула ошибку CURLE_PROXY. Возвращаемое значение будет ровно одним из значений CURLPX_*. Код ошибки будет CURLPX_OK, если код ответа не был доступен.
  • 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-Length:. -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-соединение и т. д.

Возвращаемые значения

Если параметр option указан, то возвращается его значение. Иначе возвращается ассоциативный массив со следующими элементами (которые соответствуют значениям аргумента option) или 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.

Список изменений

Версия | Описание
8.2.0 | Добавлены константы CURLINFO_PROXY_ERROR, CURLINFO_REFERER, CURLINFO_RETRY_AFTER.
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).
8.0.0 | option is nullable now; previously, the default was 0.
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.

Примеры

Пример #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() с параметром option

<?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, PHP 8)

curl_init — Инициализирует сеанс cURL

Описание

curl_init(?string $url = null): CurlHandle|false

Инициализирует новый сеанс cURL и возвращает дескриптор, который используется с функциями curl_setopt(), curl_exec() и curl_close().

Список параметров

url

Если указан, опция CURLOPT_URL будет автоматически установлена в значение этого аргумента. Вы можете вручную установить эту опцию с помощью функции curl_setopt().

Замечание:

Протокол file становится недоступным в cURL, если задана опция open_basedir.

Возвращаемые значения

Возвращает дескриптор cURL в случае успешного выполнения, и false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения возвращает экземпляр CurlHandle; раньше, возвращался ресурс (resource).
8.0.0 | url теперь допускает значение null.

Примеры

Пример #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, PHP 8)

curl_multi_add_handle — Добавляет обычный cURL-дескриптор к набору cURL-дескрипторов

Описание

curl_multi_add_handle(CurlMultiHandle $multi_handle, CurlHandle $handle): int

Добавляет дескриптор handle к набору дескрипторов multi_handle

Список параметров

multi_handle

Мультидескриптор cURL, полученный из curl_multi_init().

handle

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает 0 при успехе, или один из кодов ошибок CURLM_XXX.

Список изменений

Версия | Описание
8.0.0 | multi_handle теперь ожидает экземпляр; раньше, ожидался ресурс (resource).
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

curl_multi_close — Закрывает набор cURL-дескрипторов

Описание

curl_multi_close(CurlMultiHandle $multi_handle): void

Замечание:

Использование функции больше не имеет смысла. До PHP 8.0.0 она использовалась для закрытия ресурса.

Закрывает набор дескрипторов cURL.

Список параметров

multi_handle

Мультидескриптор cURL, полученный из curl_multi_init().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | multi_handle теперь ожидает экземпляр; раньше, ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

curl_multi_errno — Возвращает код последней ошибки множественного curl

Описание

curl_multi_errno(CurlMultiHandle $multi_handle): int

Возвращает код последней ошибки множественного curl в виде целого числа.

Список параметров

multi_handle

Мультидескриптор cURL, полученный из curl_multi_init().

Возвращаемые значения

Возвращает код последней ошибки множественного curl в виде целого числа.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает false в случае возникновения ошибки.
8.0.0 | multi_handle теперь ожидает экземпляр; раньше, ожидался ресурс (resource).

Смотрите также

  • curl_errno() - Возвращает код последней ошибки


Запускает подсоединения текущего дескриптора cURL

  • « curl_multi_errno
  • curl_multi_getcontent »
  • PHP Manual
  • Функции cURL
  • Запускает подсоединения текущего дескриптора cURL

curl_multi_exec

(PHP 5, PHP 7, PHP 8)

curl_multi_exec — Запускает подсоединения текущего дескриптора cURL

Описание

curl_multi_exec(CurlMultiHandle $multi_handle, int &$still_running): int

Обрабатывает каждый дескриптор в стеке. Этот метод может быть вызван вне зависимости от необходимости дескриптора читать или записывать данные.

Список параметров

multi_handle

Мультидескриптор cURL, полученный из curl_multi_init().

still_running

Ссылка на флаг, указывающий, идут ли ещё какие-либо действия.

Возвращаемые значения

Код cURL, указанный в предопределённых константах cURL.

Замечание:

Здесь возвращаются ошибки, относящиеся только ко всему стеку. Проблемы всё ещё могут произойти на индивидуальных запросах, даже когда эта функция возвращает CURLM_OK.

Список изменений

Версия | Описание
8.0.0 | multi_handle теперь ожидает экземпляр; раньше, ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

curl_multi_getcontent — Возвращает результат операции, если была установлена опция CURLOPT_RETURNTRANSFER

Описание

curl_multi_getcontent(CurlHandle $handle): ?string

Если для определённого дескриптора была установлена опция CURLOPT_RETURNTRANSFER, то эта функция вернёт содержимое этого cURL-дескриптора в виде строки.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает содержимое cURL-дескриптора, если была использована опция CURLOPT_RETURNTRANSFER или null, если опция не была задана.

Список изменений

Версия | Описание
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).

Смотрите также

  • curl_multi_init() - Создаёт набор cURL-дескрипторов


Возвращает информацию о текущих операциях

  • « curl_multi_getcontent
  • curl_multi_init »
  • PHP Manual
  • Функции cURL
  • Возвращает информацию о текущих операциях

curl_multi_info_read

(PHP 5, PHP 7, PHP 8)

curl_multi_info_read — Возвращает информацию о текущих операциях

Описание

curl_multi_info_read(CurlMultiHandle $multi_handle, int &$queued_messages = null): array|false

Опрашивает набор дескрипторов о наличии сообщений или информации от индивидуальных передач. Сообщения могут включать такую информацию как код ошибки передачи или просто факт завершения передачи.

Повторяющиеся вызовы этой функции будут каждый раз возвращать новый результат, пока не будет возвращено false в качестве сигнала окончания сообщений. Целое число, содержащееся в queued_messages, указывает количество оставшихся сообщений после вызова данной функции.

Внимание

Данные, на которые указывает возвращаемый ресурс, будут затёрты вызовом curl_multi_remove_handle().

Список параметров

multi_handle

Мультидескриптор cURL, полученный из curl_multi_init().

queued_messages

Количество оставшихся сообщений в очереди

Возвращаемые значения

В случае успешного выполнения возвращает ассоциативный массив сообщений или false в случае возникновения ошибки.

Содержимое возвращаемого массива
Ключ: | Значение:
msg | Константа CURLMSG_DONE. Остальные возвращаемые значения пока недоступны.
result | Одна из констант CURLE_*. Если всё хорошо, результатом будет константа CURLE_OK.
handle | Ресурс типа curl, указывающий на дескриптор, к которому он относится.

Список изменений

Версия | Описание
8.0.0 | multi_handle теперь ожидает экземпляр; раньше, ожидался ресурс (resource).

Примеры

Пример #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);
}
while (false !== ($info = curl_multi_info_read($mh))) {
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)

Смотрите также

  • curl_multi_init() - Создаёт набор cURL-дескрипторов


Создаёт набор cURL-дескрипторов

  • « curl_multi_info_read
  • curl_multi_remove_handle »
  • PHP Manual
  • Функции cURL
  • Создаёт набор cURL-дескрипторов

curl_multi_init

(PHP 5, PHP 7, PHP 8)

curl_multi_init — Создаёт набор cURL-дескрипторов

Описание

curl_multi_init(): CurlMultiHandle

Позволяет асинхронную обработку множества cURL-дескрипторов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает набор cURL-дескрипторов.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения возвращает экземпляр CurlMultiHandle; раньше, возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

curl_multi_remove_handle — Удаляет cURL дескриптор из набора cURL дескрипторов

Описание

curl_multi_remove_handle(CurlMultiHandle $multi_handle, CurlHandle $handle): int

Удаляет указанный дескриптор handle из указанного набора дескрипторов multi_handle. После того, как дескриптор handle удалён, его можно снова совершенно легально использовать в функции curl_exec(). Удаление дескриптора handle во время использования также остановит текущую передачу, идущую на этом дескрипторе.

Список параметров

multi_handle

Мультидескриптор cURL, полученный из curl_multi_init().

handle

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

В случае успешного выполнения возвращает 0 или одну из констант CURLM_XXX, где XXX - код ошибки.

Список изменений

Версия | Описание
8.0.0 | multi_handle теперь ожидает экземпляр; раньше, ожидался ресурс (resource).
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8)

curl_multi_select — Ждёт активности на любом curl_multi соединении

Описание

curl_multi_select(CurlMultiHandle $multi_handle, float $timeout = 1.0): int

Блокирует выполнение скрипта, пока какое-либо из соединений curl_multi не станет активным.

Список параметров

multi_handle

Мультидескриптор cURL, полученный из curl_multi_init().

timeout

Время в секундах для ожидания ответа.

Возвращаемые значения

В случае успешного выполнения возвращает количество дескрипторов, содержащихся в наборах дескрипторов. Может вернуть 0, если не было активности ни на одном дескрипторе. В случае неудачи эта функция вернёт -1 В случае возникновения ошибки выборки (из нижележащего системного вызова выборки).

Список изменений

Версия | Описание
8.0.0 | multi_handle теперь ожидает экземпляр; раньше, ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8)

curl_multi_setopt — Устанавливает опции множественного дескриптора cURL

Описание

curl_multi_setopt(CurlMultiHandle $multi_handle, int $option, mixed $value): bool

Устанавливает опции множественного дескриптора cURL.

Список параметров

multi_handle

Мультидескриптор cURL, полученный из curl_multi_init().

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_CONCURRENT_STREAMS | Устанавливает максимальное количество одновременных потоков для соединений, которые cURL должен поддерживать при соединениях по протоколу HTTP/2. Диапазон допустимых значений — от 1 до 2147483647 (2^31 - 1). Переданное для этой опции значение будет основано с учётом других свойств системных ресурсов. Значение по умолчанию — 100.
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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.2.0 | Добавлена константа CURLMOPT_MAX_CONCURRENT_STREAMS.
8.0.0 | multi_handle теперь ожидает экземпляр; раньше, ожидался ресурс (resource).
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, PHP 8)

curl_multi_strerror — Возвращает строку, описывающую ошибку

Описание

curl_multi_strerror(int $error_code): ?string

Возвращает текст сообщения об ошибке, соответствующей заданному коду ошибки CURLM.

Список параметров

error_code

Одна и констант » кодов ошибок 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, PHP 8)

curl_pause — Приостановить и возобновить соединение

Описание

curl_pause(CurlHandle $handle, int $flags): int

Приостанавливает или снимает с паузы сессию cURL. Сессия может быть приостановлена во время выполнения передачи данных в направлении чтения, записи или в обоих направлениях путём вызова этой функции из callback-функции, зарегистрированной с помощью curl_setopt().

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

flags

Одна из констант CURLPAUSE_*.

Возвращаемые значения

Возвращает один из кодов возврата (CURLE_OK если ошибок нет).

Список изменений

Версия | Описание
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).


Сбросить все настройки обработчика сессии libcurl

  • « curl_pause
  • curl_setopt_array »
  • PHP Manual
  • Функции cURL
  • Сбросить все настройки обработчика сессии libcurl

curl_reset

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_reset — Сбросить все настройки обработчика сессии libcurl

Описание

curl_reset(CurlHandle $handle): void

Эта функция переинициализирует все настройки заданного обработчика сессии cURL значениями по умолчанию.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

curl_setopt_array — Устанавливает несколько параметров для сеанса cURL

Описание

curl_setopt_array(CurlHandle $handle, array $options): bool

Устанавливает несколько параметров для сеанса cURL. Эта функция полезна при установке большого количества cURL-параметров без необходимости постоянно вызывать curl_setopt().

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

options

Массив (array), определяющий устанавливаемые параметры и их значения. Ключи должны быть корректными константами для функции curl_setopt() или их целочисленными эквивалентами.

Возвращаемые значения

Возвращает true, если все параметры были успешно установлены. Если не удалось успешно установить какой-либо параметр, немедленно возвращается значение false, а последующие параметры в массиве options будут проигнорированы.

Список изменений

Версия | Описание
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).

Примеры

Пример #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);
?>

Примечания

Замечание:

Как и при работе с 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, PHP 8)

curl_setopt — Устанавливает параметр для сеанса CURL

Описание

curl_setopt(CurlHandle $handle, int $option, mixed $value): bool

Устанавливает параметр для указанного сеанса cURL.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

option

Устанавливаемый параметр CURLOPT_XXX.

value

Значение параметра option.

Для следующих значений параметра option, параметр value должен быть типа bool:

Параметр | Устанавливаемое значение value | Замечания
CURLOPT_AUTOREFERER | true для автоматической установки поля Referer: в запросах, перенаправленных заголовком Location:.
CURLOPT_COOKIESESSION | true для указания текущему сеансу начать новую «сессию» cookies. Это заставит модуль libcurl проигнорировать все «сессионные» cookies из предыдущего сеанса, которые он собирается загрузить. По умолчанию модуль libcurl всегда сохраняет и загружает все cookies, вне зависимости от того, являются ли они «сессионными» или нет. «Сессионные» cookies — это cookies без срока истечения, которые должны существовать только для текущей «сессии».
CURLOPT_CERTINFO | true для вывода информации о сертификате SSL в поток STDERR при безопасных соединениях. | Добавлена в cURL 7.19.1. Для корректной работы требует включённой опции CURLOPT_VERBOSE.
CURLOPT_CONNECT_ONLY | true сообщает библиотеке, чтобы она провела необходимые аутентификацию прокси и настройку соединения, но не передавала данные. Эта опция реализована для HTTP, SMTP и POP3. | Добавлена в 7.15.2.
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-адреса. Это может привести к тому, что протокол 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: ", отправленному сервером в своём ответе. Смотрите также 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 для отключения алгоритма Нейгла, который пытается уменьшить количество мелких пакетов в сети. | Доступна для версий собранных с libcurl 7.11.2 или новее.
CURLOPT_FTPASCII | Псевдоним CURLOPT_TRANSFERTEXT. Используйте его вместо этого.
CURLOPT_FTPLISTONLY | true для возврата только списка имён из FTP-директории.
CURLOPT_HEADER | true для включения заголовков в вывод.
CURLINFO_HEADER_OUT | true для отслеживания строки запроса дескриптора. | Префикс CURLINFO_ используется специально.
CURLOPT_HTTP09_ALLOWED | Определяет, разрешить ли ответы HTTP/0.9. С версии модуля libcurl 7.66.0 значение по умолчанию — false; ранее по умолчанию было логическое true. | Доступна с PHP 7.3.15 и 7.4.3, соответственно, если собрано с модулем libcurl >= 7.64.0
CURLOPT_HTTPGET | true для сброса метода HTTP-запроса на метод GET. Так как GET используется по умолчанию, этот параметр необходим только в случае, если метод запроса был ранее изменён.
CURLOPT_HTTPPROXYTUNNEL | true для туннелирования через указанный HTTP-прокси.
CURLOPT_HTTP_CONTENT_DECODING | false для получения необработанного тела HTTP-ответа. | Доступно, если собран с 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_SASL_IR | true для разрешения отправки инициирующего ответа в первом пакете. | Добавлено в cURL 7.31.10. Доступно с PHP 7.0.7.
CURLOPT_SSL_ENABLE_ALPN | false для отключения ALPN в SSL-рукопожатии (если на бекенде SSL libcurl собран с её поддержкой), это можно использовать при соединении http2. | Добавлено в cURL 7.36.0. Доступно с PHP 7.0.7.
CURLOPT_SSL_ENABLE_NPN | false для отключения ALPN в SSL-рукопожатии (если на бэкенде 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_SAFE_UPLOAD | Всегда true, это отключает поддержку префикса @ для загрузки файлов в CURLOPT_POSTFIELDS и означает, что значения, начинающиеся с @, могут быть безопасно переданы в качестве полей. Вместо этого для загрузки файлов можно использовать объект CURLFile.
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 должен быть типа int:

Параметр | Устанавливаемое значение value | Замечания
CURLOPT_BUFFERSIZE | Размер буфера, используемого при каждом чтении. Однако, нет никакой гарантии что данный запрос будет завершён. | Добавлен в версии cURL 7.10.
CURLOPT_CONNECTTIMEOUT | Количество секунд ожидания при попытке соединения. Используйте 0 для бесконечного ожидания.
CURLOPT_CONNECTTIMEOUT_MS | Количество миллисекунд ожидания при попытке соединения. Используйте 0 для бесконечного ожидания. Если библиотека libcurl скомпилирована с использованием стандартного системного преобразователя имён, то соединение будет по-прежнему использовать полносекундное ожидание в качестве времени ожидания с минимально допустимым временем ожидания в 1 секунду. | Добавлен в версии cURL 7.16.2.
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), CURL_HTTP_VERSION_2 (псевдоним CURL_HTTP_VERSION_2_0), CURL_HTTP_VERSION_2TLS (попытаться соединиться только по протоколу HTTP/2.0 через TLS (HTTPS)) или CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (выполнять HTTP-запросы без TLS по протоколу HTTP/2.0 без возврата к HTTP/1.1).
CURLOPT_HTTPAUTH

Методы HTTP-аутентификации. Параметры: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_AWS_SIGV4, CURLAUTH_ANY и CURLAUTH_ANYSAFE.

Можно использовать побитовый оператор | (или) для комбинации нескольких методов вместе. В этом случае cURL опросит сервер на предмет поддерживаемых методов авторизации и выберет лучший из них.

CURLAUTH_ANY устанавливает все биты. cURL автоматически выберет тот, который посчитает самым безопасным.

CURLAUTH_ANYSAFE устанавливает все биты кроме CURLAUTH_BASIC. cURL автоматически выберет тот, который посчитает самым безопасным.

CURLOPT_INFILESIZE | Ожидаемый размер файла в байтах при загрузке файла на удалённый сервер. Учтите, что использование этой опции не остановит дальнейшую посылку данных, превышающих это значение, так как посылаемые данные зависят от результата CURLOPT_READFUNCTION.
CURLOPT_LOW_SPEED_LIMIT | Верхний порог скорости передачи данных, в байтах в секунду. Проверка происходит в течение CURLOPT_LOW_SPEED_TIME секунд, после чего PHP считает передачу слишком медленной и прерывает её.
CURLOPT_LOW_SPEED_TIME | Максимальное количество секунд, в течение которых скорость передачи не должна превышать значение опции CURLOPT_LOW_SPEED_LIMIT, иначе PHP пометит передачу как слишком медленную и прекратит её.
CURLOPT_MAIL_RCPT_ALLLOWFAILS | Разрешить ошибки для команды RCPT TO для некоторых получателей. | При отправке данных нескольким получателям cURL прерывает SMTP-диалог, если хотя бы для одного из получателей на команду RCPT TO была получена ошибка. Этот параметр сообщает cURL, чтобы он игнорировал ошибки и продолжал с оставшимися доступными получателями. Если все получатели вызвали ошибку команды RCPT TO и этот флаг установлен, cURL прервёт SMTP-диалог и вернёт ошибку, полученную от последней команды RCPT TO.
CURLOPT_MAXAGE_CONN | Максимальное время ожидания, в течение которого разрешено повторно использовать существующее соединение. По умолчанию максимальный срок установлен на 118 секунд.
CURLOPT_MAXFILESIZE_LARGE | Максимальный разрешённый размер файла в байтах для скачивания. Если размер запрошенного файла окажется больше этого значения, передача не начнётся и вернётся значение константы CURLE_FILESIZE_EXCEEDED. Размер файла не всегда известен до начала скачивания, и на скачивание таких таких файлов этот параметр не повлияет, даже если в итоге размер файла превышает установленный предел.
CURLOPT_MAXLIFETIME_CONN | Максимальное время в секундах с момента установления соединения, в течение которого разрешено рассматривать существующее соединение для повторной передачи. Если соединение будет найдено в кеше, который старше этого значения, оно не будет рассмотрено для повторной передачи и будет закрыто как только все незавершенные передачи будут завершены. По умолчанию — 0 секунд, что означает, что параметр выключен и все соединения доступны для повторной передачи.
CURLOPT_MAXCONNECTS | Максимальное количество постоянных соединений. При достижении лимита, самое старое соединение в кеше закрывается, чтобы предотвратить увеличение числа открытых соединений.
CURLOPT_MAXREDIRS | Максимальное количество принимаемых перенаправлений. Используйте этот параметр вместе с параметром CURLOPT_FOLLOWLOCATION. Значение по умолчанию 20 установлено для предотвращения бесконечных перенаправлений. Значение -1 разрешает бесконечные перенаправления, а 0 отклоняет все перенаправления.
CURLOPT_PORT | Альтернативный порт соединения.
CURLOPT_POSTREDIR | Битовая маска, содержащая 1 (301 Moved Permanently), 2 (302 Found) и 4 (303 See Other), чтобы задавать должен ли метод HTTP POST обрабатываться при включённой опции CURLOPT_FOLLOWLOCATION, если произошёл указанный тип перенаправления. | Добавлено в cURL 7.19.1.
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_MQTT, 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 разрешает аутентификацию по constant пользователя/пароля.

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-бэкендов, где такое поведение присутствует. CURLSSLOPT_AUTO_CLIENT_CERT: автоматически находить и использовать сертификат клиента для аутентификации по запросу сервера. Эта опция поддерживается только модулем поставщика служб безопасности Schannel (собственный SSL-модуль Windows). CURLSSLOPT_NATIVE_CA: использовать собственное хранилище доверенных центров сертификации (Certificate authority, CA) операционной системы для проверки сертификата. Работает только в Windows с установленной сборкой библиотеки OpenSSL. Это экспериментальная опция и её поведение может измениться в будущем. CURLSSLOPT_NO_PARTIALCHAIN: не принимать цепочки «частных» сертификатов, что cURL в других случаях делает по умолчанию. Эта опция поддерживается только для библиотеки OpenSSL и приведёт к ошибке проверки сертификата, если цепочка заканчивается на промежуточном, а не на корневом сертификате. CURLSSLOPT_REVOKE_BEST_EFFORT: игнорировать проверку на предмет того, отозван ли сертификат, в случае отсутствия или отключения точек распространения для тех SSL-бэкендов, где такое поведение присутствует. Эта опция поддерживается только модулем поставщика служб безопасности Schannel (собственный SSL-модуль Windows). Если указана вместе с опцией CURLSSLOPT_NO_REVOKE, последняя будет в приоритете. | Добавлено в cURL 7.25.0. Доступно с PHP 7.0.7.
CURLOPT_SSL_VERIFYHOST | Используйте 2, чтобы убедиться, что поле общего имени или поле альтернативного имени субъекта в сертификате узла SSL соответствует указанному имени хоста. Используйте 0, чтобы не проверять имена. 1 не следует использовать. В боевом окружении значение этого параметра должно быть 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) или CURL_SSLVERSION_TLSv1_3 (7). Максимальная версия TLS может быть установлена с помощью одной из констант CURL_SSLVERSION_MAX_*. Также можно ИЛИ одну из констант CURL_SSLVERSION_* с одной из констант CURL_SSLVERSION_MAX_*. CURL_SSLVERSION_MAX_DEFAULT(максимальная версия, поддерживаемая библиотекой), CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1, CURL_SSLVERSION_MAX_TLSv1_2, or CURL_SSLVERSION_MAX_TLSv1_3.

Замечание:

Рекомендуется не устанавливать эту опцию и оставить значение по умолчанию. Установка в 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_1, 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_TCP_KEEPALIVE | Если установлено значение 1, будут отправлены пробные сообщения поддержки активности TCP. Задержку и частоту этих проб можно контролировать с помощью параметров CURLOPT_TCP_KEEPIDLE и CURLOPT_TCP_KEEPINTVL, если операционная система их поддерживает. Если установлено значение 0 (по умолчанию), пробные сообщения проверки активности отключены. | Добавлено в cURL 7.25.0.
CURLOPT_TCP_KEEPIDLE | Устанавливает задержку в секундах, в течение которой операционная система будет ждать, пока соединение находится в режиме ожидания, перед отправкой проб проверки активности, если включено CURLOPT_TCP_KEEPALIVE. Не все операционные системы поддерживают эту опцию. По умолчанию установлено значение 60. | Добавлено в cURL 7.25.0.
CURLOPT_TCP_KEEPINTVL | Устанавливает интервал в секундах, в течение которого операционная система будет ожидать между отправкой проб проверки активности, если включено CURLOPT_TCP_KEEPALIVE. Не все операционные системы поддерживают эту опцию. По умолчанию установлено значение 60. | Добавлено в cURL 7.25.0.
CURLOPT_TIMECONDITION | Способ трактовки параметра CURLOPT_TIMEVALUE. Используйте CURL_TIMECOND_IFMODSINCE для возвращения страницы, только если она была изменена со времени, указанного в параметре CURLOPT_TIMEVALUE. Если страница не была изменена, вернётся заголовок "304 Not Modified", подразумевая, что параметр CURLOPT_HEADER установлен в true. Используйте CURL_TIMECOND_IFUNMODSINCE для обратного эффекта. Используйте CURL_TIMECOND_NONE, чтобы игнорировать CURLOPT_TIMEVALUE и всегда возвращать страницу. По умолчанию используется CURL_TIMECOND_NONE. | До cURL 7.46.0 значение по умолчанию было CURL_TIMECOND_IFMODSINCE.
CURLOPT_TIMEOUT | Максимально позволенное количество секунд для выполнения cURL-функций.
CURLOPT_TIMEOUT_MS | Максимально позволенное количество миллисекунд для выполнения cURL-функций. Если libcurl собрана с использованием обычного системного распознавателя имён, то этот промежуток соединения всё ещё будет использовать секундное округление времени ожидания, с минимально разрешённым временем ожидания в одну секунду. | Добавлен в версии cURL 7.16.2.
CURLOPT_TIMEVALUE | Количество секунд, начиная с 1 января 1970 года. Это время будет использовано параметром CURLOPT_TIMECONDITION.
CURLOPT_TIMEVALUE_LARGE | Время в секундах с 1 января 1970 года. Время будет использовано CURLOPT_TIMECONDITION. По умолчанию ноль. Разница между этой опцией и CURLOPT_TIMEVALUE заключается в типе аргумента. В системах, где 'long' имеет размер всего 32 бита, этот параметр нужно указывать для установки дат после 2038 года. | Добавлено в cURL 7.59.0. Доступно с PHP 7.3.0.
CURLOPT_UPKEEP_INTERVAL_MS | В некоторые протоколы встроен механизмы «поддержания соединения». Эти механизмы обычно отправляют небольшой объем трафика через существующие соединения, чтобы держать их открытыми. Эта опция определяет интервал, в течение которого будет поддерживаться соединение. Действующий и единственный протокол с механизмом поддержания соединения — это HTTP/2. Когда интервал поддержания соединения истекает, протокол HTTP/2 отправляет в соединение кадр PING. Значение по умолчанию - 60 секунд.
CURLOPT_UPLOAD_BUFFERSIZE | Предпочтительный размер буфера загрузки cURL в байтах. Размер буфера загрузки по умолчанию — 64 килобайта. Максимально можно установить 2 мегабайта. Минимально — 16 килобайтов.
CURLOPT_MAX_RECV_SPEED_LARGE | Если скорость скачки превысит это значение (указанное в байтах в секунду) в среднем в течение всей передачи, то скачка будет приостановлена для поддержания средней скорости меньше либо равной данному параметру. По умолчанию скорость не ограничивается. | Добавлен в версии cURL 7.15.5.
CURLOPT_MAX_SEND_SPEED_LARGE | Если загрузка на сервер превысит это значение (указанное в байтах в секунду) в среднем в течение всей передачи, то загрузка будет приостановлена для поддержания средней скорости меньше либо равной данному параметру. По умолчанию скорость не ограничивается. | Добавлен в версии cURL 7.15.5.
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 | Сообщить дескриптору cURL, какой метод доступа к файлу на сервере FTP использовать. Возможные значения: CURLFTPMETHOD_DEFAULT, CURLFTPMETHOD_MULTICWD, CURLFTPMETHOD_NOCWD и CURLFTPMETHOD_SINGLECWD. | Добавлено в cURL 7.15.1.

Для следующих значений параметра option, параметр value должен быть типа string:

Параметр | Устанавливаемое значение value | Замечания
CURLOPT_ABSTRACT_UNIX_SOCKET | Позволяет использовать абстрактный доменный сокет Unix вместо установления TCP-соединения с хостом и устанавливает путь к указанной строке (string). Эта опция использует ту же семантику, что и CURLOPT_UNIX_SOCKET_PATH. Эти два параметра совместно используют одно и то же хранилище, поэтому для каждого дескриптора можно установить только один из них. | Доступно с PHP 7.3.0 и cURL 7.53.0
CURLOPT_ALTSVC | Передать дескриптору cURL имя файла, который будет работать в качестве файла Alt-Svc-кеша для чтения существующих кешированных данных и, возможно, также записи их обратно после передачи, за исключением случаев, когда для опции CURLOPT_ALTSVC_CTRL установлено значение CURLALTSVC_READONLYFILE.
CURLOPT_ALTSVC_CTRL | Заполните битовую маску правильными значениями, чтобы проинструктировать дескриптор cURL, как обрабатывать кеш Alt-Svc при передаче. Дескриптор cURL принимает заголовки Alt-Svc только через HTTPS. Запрос к альтернативному источнику выполнится только если источник правильно настроен на обмен данными по протоколу HTTPS. Установка любого бита включит движок alt-svc. Доступны следующие опции: CURLALTSVC_H1, CURLALTSVC_H2, CURLALTSVC_H3 и CURLALTSVC_READONLYFILE.
CURLOPT_AWS_SIGV4

Обеспечивает аутентификацию подписи в заголовке HTTP(S) по протоколу AWS V4.

Эта опция переопределит любые другие типы аутентификации, которые были установлены опцией CURLOPT_HTTPAUTH. Этот метод нельзя комбинировать с другими типами аутентификации.

CURLOPT_CAINFO | Имя файла, содержащего один или более сертификатов, с которыми будут сверяться узлы. Этот параметр имеет смысл только при использовании совместно с CURLOPT_SSL_VERIFYPEER. | Может потребоваться абсолютный путь.
CURLOPT_CAINFO_BLOB | Название PEM-файла, содержащего один или несколько сертификатов для проверки узла. Эта опция переопределяет опцию CURLOPT_CAINFO. | Доступна начиная с PHP 8.2.0 и cURL 7.77.0.
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_COOKIELIST | Строка cookie (т.е. одна строка в формате Netscape/Mozilla или обычный заголовок Set-Cookie в стиле HTTP) добавляет этот единственный cookie во внутреннее хранилище cookie. "ALL" удаляет все файлы cookie, хранящиеся в памяти. "SESS" удаляет все файлы cookie сессии, хранящиеся в памяти. "FLUSH" записывает все известные файлы cookie в файл, указанный в CURLOPT_COOKIEJAR. "RELOAD" загружает все файлы cookie из файлов, указанных в CURLOPT_COOKIEFILE. | Доступно с cURL 7.14.1.
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_HSTS

Имя файла кеша HSTS (HTTP Strict Transport Security).

CURLOPT_HSTS_CTRL

Управляет поведением механизма HSTS (HTTP Strict Transport Security). Заполните битовую маску правильным набором значений, чтобы проинструктировать дескриптор cURL, как обрабатывать хосты HSTS при передаче с этим дескриптором. Константа CURLHSTS_ENABLE включает запоминаемый (in-memory) кеш HSTS. Если файл кеша HSTS определён, установка значения CURLHSTS_READONLYFILE сделает файл доступным только для чтения.

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-запросе. Этот параметр может быть передан как в качестве url-закодированной строки, наподобие 'para1=val1&para2=val2&...', так и в виде массива, ключами которого будут имена полей, а значениями — их содержимое. Если value является массивом, заголовок Content-Type будет установлен в значение multipart/form-data. Файлы можно отправлять с использованием CURLFile или CURLStringFile, в этом случае value должен быть массивом.
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.43.0 для HTTP-прокси и в cURL 7.49.0 для SOCKS5-прокси. Доступно, начиная с PHP 7.0.7.
CURLOPT_PROXY_CAINFO | Путь к прокси-серверу центра сертификации. Задайте путь в виде строки (string) с именем файла, содержащего один или несколько сертификатов для проверки прокси с помощью HTTPS. Этот параметр предназначен для подключения к прокси-серверу HTTPS, а не к серверу HTTPS. По умолчанию задан системный путь, где предполагается хранить пакет cacert libcurl. | Доступно с PHP 7.3.0 и libcurl >= cURL 7.52.0.
CURLOPT_PROXY_CAINFO_BLOB | Имя файла PEM, содержащего один или несколько сертификатов для проверки HTTPS-прокси. Эту опция касается подключения к HTTPS-прокси, а не к HTTPS-серверу. По умолчанию установлен системный путь, по которому предполагается хранить набор сертификатов удостоверяющих центров модуля libcurl. | Доступно начиная с PHP 8.2.0 и libcurl >= cURL 7.77.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_SASL_AUTHZID | Идентификатор авторизации (authzid) для передачи. Эту опцию можно применять только для механизма аутентификации PLAIN SASL, где это необязательно. Если идентификатор авторизации не задан, только идентификатор аутентификации (authcid), как определено в имени пользователя, будет отправлен на сервер (вместе с паролем). Сервер получит идентификатор авторизации (authzid) из идентификатора аутентификации (authcid), если идентификатор авторизации не был указан, и затем он будет использовать внутренне.
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_HOST_PUBLIC_KEY_SHA256 | Закодированный в Base64 по алгоритму SHA256 хеш публичного ключа удалённого хоста. Передача завершится ошибкой, если заданный хеш не соответствует хешу удалённого хоста.
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_SSL_EC_CURVES | Разделённый двоеточием список основанных на эллиптических кривых алгоритмов. Например, X25519:P-521 — это допустимый список из двух эллиптических кривых. Эта опция определят клиентские алгоритмы обмена во время SSL-рукопожатия, если дескриптор cURL на SSL-бэкенде собран с поддержкой этой опции.
CURLOPT_SSLCERT | Имя файла с корректно отформатированным PEM-сертификатом.
CURLOPT_SSLCERTPASSWD | Пароль, необходимый для использования сертификата CURLOPT_SSLCERT.
CURLOPT_SSLCERTTYPE | Формат сертификата. Поддерживаются форматы "PEM" (по умолчанию), "DER" и "ENG". Начиная с OpenSSL 0.9.3, "P12" (для файлов, закодированных в PKCS#12) | Добавлен в версии 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. | Доступен с PHP 7.3.0 и libcurl >= cURL 7.61.0. Доступен, когда собран с библиотекой 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.
CURLOPT_PASSWORD | Пароль для аутентификации. | Добавлено в cURL 7.19.1.
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.

Для следующих значений параметра 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, вторым параметром является строка с запросом пароля, третьим параметром является максимальная длина пароля. Должна возвратить строку, содержащую пароль. | Удалено, начиная с PHP 7.3.0.
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, а вторым параметром является строка с записываемыми данными. Данные должны быть сохранены с помощью данной функции. Она должна возвратить точное количество записанных байт, иначе закачка будет прервана с ошибкой.
CURLOPT_XFERINFOFUNCTION | Callback-функция, принимающая два параметра. Имеет схожее назначение с константой CURLOPT_PROGRESSFUNCTION, но является более современным и предпочтительным вариантом от cURL. | Добавлена в версии 7.32.0. Доступна, начиная с PHP 8.2.0.

Другие значения:

Параметр | Устанавливаемое значение value
CURLOPT_SHARE | Результат выполнения функции curl_share_init(). Позволяет обработчику cURL использовать данные из общего обработчика.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).
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.

Примеры

Пример #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);
?>

Примечания

Замечание:

Передача массива в CURLOPT_POSTFIELDS закодирует данные в виде multipart/form-data, тогда как передача URL-кодированной строки закодирует данные в виде application/x-www-form-urlencoded.

Смотрите также

  • curl_setopt_array() - Устанавливает несколько параметров для сеанса cURL
  • CURLFile
  • CURLStringFile


Закрыть разделяемый обработчик cURL

  • « curl_setopt
  • curl_share_errno »
  • PHP Manual
  • Функции cURL
  • Закрыть разделяемый обработчик cURL

curl_share_close

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_close — Закрыть разделяемый обработчик cURL

Описание

curl_share_close(CurlShareHandle $share_handle): void

Замечание:

Использование функции больше не имеет смысла. До PHP 8.0.0 она использовалась для закрытия ресурса.

Закрывает разделяемый обработчик cURL и высвобождает все его ресурсы.

Список параметров

share_handle

Разделяемый обработчик cURL, возвращаемый curl_share_init().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | share_handle expects a CurlShareHandle instance now; previously, a resource was expected.

Примеры

Пример #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, PHP 8)

curl_share_errno — Возвращает код последней ошибки разделяемого обработчика curl

Описание

curl_share_errno(CurlShareHandle $share_handle): int

Возвращает код последней ошибки разделяемого обработчика curl в виде целого числа.

Список параметров

share_handle

Разделяемый обработчик cURL, возвращаемый curl_share_init().

Возвращаемые значения

Возвращает код последней ошибки разделяемого обработчика curl в виде целого числа.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает false в случае возникновения ошибки.
8.0.0 | share_handle expects a CurlShareHandle instance now; previously, a resource was expected.

Смотрите также

  • curl_errno() - Возвращает код последней ошибки


Инициализация разделяемого обработчика cURL

  • « curl_share_errno
  • curl_share_setopt »
  • PHP Manual
  • Функции cURL
  • Инициализация разделяемого обработчика cURL

curl_share_init

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_init — Инициализация разделяемого обработчика cURL

Описание

curl_share_init(): CurlShareHandle

Позволяет разным обработчикам cURL делиться данными друг с другом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает разделяемый обработчик cURL.

Список изменений

Версия | Описание
8.0.0 | Функция возвращает экземпляр CurlShareHandle; раньше, возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

curl_share_setopt — Установить опции разделяемого обработчика cURL

Описание

curl_share_setopt(CurlShareHandle $share_handle, int $option, mixed $value): bool

Устанавливает опции разделяемого обработчика cURL.

Список параметров

share_handle

Разделяемый обработчик 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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | share_handle expects a CurlShareHandle instance now; previously, a resource was expected.

Примеры

Пример #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, PHP 8)

curl_share_strerror — Возвращает описание для заданного кода ошибки

Описание

curl_share_strerror(int $error_code): ?string

Возвращает описание для заданного кода ошибки.

Список параметров

error_code

Одна из констант: » Коды ошибок 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, PHP 8)

curl_strerror — Получить текстовое описание для кода ошибки

Описание

curl_strerror(int $error_code): ?string

Возвращает текстовое описание заданного кода ошибки.

Список параметров

error_code

Одна из констант » кодов ошибок 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_upkeep »
  • PHP Manual
  • Функции cURL
  • Декодирует закодированную URL-строку

curl_unescape

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_unescape — Декодирует закодированную URL-строку

Описание

curl_unescape(CurlHandle $handle, string $string): string|false

Эта функция декодирует закодированную URL-строку.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

string

Закодированная строка.

Возвращаемые значения

Возвращает декодированную строку или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | handle теперь ожидает экземпляр CurlHandle; раньше, ожидался ресурс (resource).

Примеры

Пример #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_unescape
  • curl_version »
  • PHP Manual
  • Функции cURL
  • Выполняет любые проверки работоспособности соединений

curl_upkeep

(PHP 8 >= 8.2.0)

curl_upkeep — Выполняет любые проверки работоспособности соединений

Описание

curl_upkeep(CurlHandle $handle): bool

Доступен при сборке с libcurl >= 7.62.0.

Некоторые протоколы поддерживают механизмы "поддержания соединения". Эти механизмы обычно передают небольшой объем трафика по существующим соединениям, чтобы сохранить их. Это может предотвратить закрытие соединений, например, из-за слишком усердных файерволов.

В настоящее время функция поддержания соединения доступна только для соединений HTTP/2. Для поддержания соединения обычно отправляется небольшой объем трафика. HTTP/2 поддерживает соединение, отправляя фрагмент HTTP/2 PING.

Список параметров

handle

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования curl_upkeep()

<?php
$url = "https://example.com";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_2_0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_UPKEEP_INTERVAL_MS, 200);
if (curl_exec($ch)) {
usleep(300);
var_dump(curl_upkeep($ch));
}
curl_close($ch);
?>

Смотрите также

  • curl_init() - Инициализирует сеанс cURL


Возвращает версию cURL

  • « curl_upkeep
  • CurlHandle »
  • PHP Manual
  • Функции cURL
  • Возвращает версию cURL

curl_version

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_version — Возвращает версию cURL

Описание

curl_version(): array|false

Возвращает информацию о версии cURL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив со следующими элементами:

Ключ | Описание значения
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

Список изменений

Версия | Описание
8.0.0 | Необязательный параметр age удалён.
7.4.0 | Необязательный параметр age объявлен устаревшим; если передано значение, оно игнорируется.

Примеры

Пример #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;
}
?>


Класс CurlHandle

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы curl в PHP 8.0.0.

Обзор классов

final class CurlHandle {
}


Класс CurlMultiHandle

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы curl_multi в PHP 8.0.0.

Обзор классов

final class CurlMultiHandle {
}


Класс CurlShareHandle

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы curl_share в PHP 8.0.0.

Обзор классов

final class CurlShareHandle {
}


Класс CURLFile

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Введение

Этот класс или CURLStringFile могут быть использованы для загрузки файла с помощью опции CURLOPT_POSTFIELDS.

Десериализация экземпляров CURLFile не допускается. Начиная с PHP 7.4.0, сериализация запрещена в первую очередь.

Обзор классов

class CURLFile {
/* Свойства */
public string $name = "";
public string $mime = "";
public string $postname = "";
/* Методы */
public __construct(string $filename, ?string $mime_type = null, ?string $posted_filename = null)
public getFilename(): string
public getMimeType(): string
public getPostFilename(): string
public setMimeType(string $mime_type): void
public setPostFilename(string $posted_filename): void
}

Свойства

name

Путь к файлу, который будет отправлен

mime

MIME-тип файла (по умолчанию application/octet-stream)

postname

Имя файла при отправке методом POST (по умолчанию name)

Смотрите также

  • curl_setopt()
  • CURLStringFile

Содержание

  • CURLFile::__construct — Создаёт объект CURLFile
  • CURLFile::getFilename — Возвращает имя файла на сервере
  • CURLFile::getMimeType — Возвращает MIME-тип файла
  • CURLFile::getPostFilename — Возвращает имя файла, отправляемого POST-запросом
  • CURLFile::setMimeType — Устанавливает MIME-тип
  • CURLFile::setPostFilename — Устанавливает имя файла для отправки методом POST


Создаёт объект CURLFile

  • « CURLFile
  • CURLFile::getFilename »
  • PHP Manual
  • CURLFile
  • Создаёт объект CURLFile

CURLFile::__construct

curl_file_create

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::__construct -- curl_file_create — Создаёт объект CURLFile

Описание

Объектно-ориентированный стиль

public CURLFile::__construct(string $filename, ?string $mime_type = null, ?string $posted_filename = null)

Процедурный стиль

curl_file_create(string $filename, ?string $mime_type = null, ?string $posted_filename = null): CURLFile

Создаёт объект CURLFile, используемый для загрузки файла с использованием опции CURLOPT_POSTFIELDS.

Список параметров

filename

Путь к файлу, который будет загружен

mime_type

Mime-тип файла.

posted_filename

Имя файла при отправке методом POST.

Возвращаемые значения

Возвращает объект типа CURLFile.

Список изменений

Версия | Описание
8.0.0 | mime_type и posted_filename теперь допускают значение null; раньше значением по умолчанию был 0.

Примеры

Пример #1 Пример использования CURLFile::__construct()

Объектно-ориентированный стиль

<?php
/* http://example.com/upload.php:
<?php var_dump($_FILES); ?>
*/

// Создаём дескриптор cURL
$ch = curl_init('http://example.com/upload.php');

// Создаём объект CURLFile
$cfile = new CURLFile('cats.jpg','image/jpeg','test_name');

// Устанавливаем данные для POST
$data = array('test_file' => $cfile);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Запускаем дескриптор на выполнение
curl_exec($ch);
?>

Процедурный стиль

<?php
/* http://example.com/upload.php:
<?php var_dump($_FILES); ?>
*/

// Создаём дескриптор cURL
$ch = curl_init('http://example.com/upload.php');

// Создаём объект CURLFile
$cfile = curl_file_create('cats.jpg','image/jpeg','test_name');

// Устанавливаем данные для POST
$data = array('test_file' => $cfile);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Запускаем дескриптор на выполнение
curl_exec($ch);
?>

Результат выполнения данного примера:

array(1) {
  ["test_file"]=>
  array(5) {
    ["name"]=>
    string(9) "test_name"
    ["type"]=>
    string(10) "image/jpeg"
    ["tmp_name"]=>
    string(14) "/tmp/phpPC9Kbx"
    ["error"]=>
    int(0)
    ["size"]=>
    int(46334)
  }
}

Пример #2 Пример использования CURLFile::__construct() для загрузки нескольких файлов

Объектно-ориентированный стиль

<?php
$request = curl_init('http://www.example.com/upload.php');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_SAFE_UPLOAD, true);
curl_setopt($request, CURLOPT_POSTFIELDS, [
'blob[0]' => new CURLFile(realpath('first-file.jpg'), 'image/jpeg'),
'blob[1]' => new CURLFile(realpath('second-file.txt'), 'text/plain'),
'blob[2]' => new CURLFile(realpath('third-file.exe'), 'application/octet-stream'),
]);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);

echo curl_exec($request);

var_dump(curl_getinfo($request));

curl_close($request);

Процедурный стиль

<?php
// procedural
$request = curl_init('http://www.example.com/upload.php');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_SAFE_UPLOAD, true);
curl_setopt($request, CURLOPT_POSTFIELDS, [
'blob[0]' => curl_file_create(realpath('first-file.jpg'), 'image/jpeg'),
'blob[1]' => curl_file_create(realpath('second-file.txt'), 'text/plain'),
'blob[2]' => curl_file_create(realpath('third-file.exe'), 'application/octet-stream'),
]);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);

echo curl_exec($request);

var_dump(curl_getinfo($request));

curl_close($request);

Результат выполнения данного примера:

array(26) {
  ["url"]=>
  string(31) "http://www.example.com/upload.php"
  ["content_type"]=>
  string(24) "text/html; CHARSET=Windows-1251"
  ["http_code"]=>
  int(200)
  ["header_size"]=>
  int(198)
  ["request_size"]=>
  int(196)
  ["filetime"]=>
  int(-1)
  ["ssl_verify_result"]=>
  int(0)
  ["redirect_count"]=>
  int(0)
  ["total_time"]=>
  float(0.060062)
  ["namelookup_time"]=>
  float(0.028575)
  ["connect_time"]=>
  float(0.029011)
  ["pretransfer_time"]=>
  float(0.029121)
  ["size_upload"]=>
  float(3230730)
  ["size_download"]=>
  float(811)
  ["speed_download"]=>
  float(13516)
  ["speed_upload"]=>
  float(53845500)
  ["download_content_length"]=>
  float(811)
  ["upload_content_length"]=>
  float(3230730)
  ["starttransfer_time"]=>
  float(0.030355)
  ["redirect_time"]=>
  float(0)
  ["redirect_url"]=>
  string(0) ""
  ["primary_ip"]=>
  string(13) "0.0.0.0"
  ["certinfo"]=>
  array(0) {
  }
  ["primary_port"]=>
  int(80)
  ["local_ip"]=>
  string(12) "0.0.0.0"
  ["local_port"]=>
  int(34856)
}

Смотрите также

  • curl_setopt() - Устанавливает параметр для сеанса CURL


Возвращает имя файла на сервере

  • « CURLFile::__construct
  • CURLFile::getMimeType »
  • PHP Manual
  • CURLFile
  • Возвращает имя файла на сервере

CURLFile::getFilename

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::getFilename — Возвращает имя файла на сервере

Описание

public CURLFile::getFilename(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла.


Возвращает MIME-тип файла

  • « CURLFile::getFilename
  • CURLFile::getPostFilename »
  • PHP Manual
  • CURLFile
  • Возвращает MIME-тип файла

CURLFile::getMimeType

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::getMimeType — Возвращает MIME-тип файла

Описание

public CURLFile::getMimeType(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает MIME-тип файла.


Возвращает имя файла, отправляемого POST-запросом

  • « CURLFile::getMimeType
  • CURLFile::setMimeType »
  • PHP Manual
  • CURLFile
  • Возвращает имя файла, отправляемого POST-запросом

CURLFile::getPostFilename

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::getPostFilename — Возвращает имя файла, отправляемого POST-запросом

Описание

public CURLFile::getPostFilename(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла, отправляемого POST-запросом.


Устанавливает MIME-тип

  • « CURLFile::getPostFilename
  • CURLFile::setPostFilename »
  • PHP Manual
  • CURLFile
  • Устанавливает MIME-тип

CURLFile::setMimeType

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::setMimeType — Устанавливает MIME-тип

Описание

public CURLFile::setMimeType(string $mime_type): void

Список параметров

mime_type

MIME-тип для отправки.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Устанавливает имя файла для отправки методом POST

  • « CURLFile::setMimeType
  • CURLStringFile »
  • PHP Manual
  • CURLFile
  • Устанавливает имя файла для отправки методом POST

CURLFile::setPostFilename

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::setPostFilename — Устанавливает имя файла для отправки методом POST

Описание

public CURLFile::setPostFilename(string $posted_filename): void

Список параметров

posted_filename

Имя файла для отправки методом POST

Возвращаемые значения

Функция не возвращает значения после выполнения.


Класс CURLStringFile

(PHP 8 >= 8.1.0)

Введение

Класс CURLStringFile позволяет загружать файл прямо из переменной. Он похож на CURLFile, но работает с содержимым файла, а не с его именем. Этот класс или CURLFile следует использовать для загрузки содержимого файла с помощью CURLOPT_POSTFIELDS.

Обзор классов

class CURLStringFile {
/* Свойства */
public string $data;
public string $postname;
public string $mime;
/* Методы */
public __construct(string $data, string $postname, string $mime = "application/octet-stream")
}

Свойства

data

Содержимое для загрузки.

postname

Имя файла, который будет использоваться в загружаемых данных.

mime

MIME-тип файла (по умолчанию application/octet-stream).

Смотрите также

  • curl_setopt()
  • CURLFile

Содержание

  • CURLStringFile::__construct — Создаёт объект CURLStringFile


Создаёт объект CURLStringFile

  • « CURLStringFile
  • Event »
  • PHP Manual
  • CURLStringFile
  • Создаёт объект CURLStringFile

CURLStringFile::__construct

(PHP 8 >= 8.1.0)

CURLStringFile::__construct — Создаёт объект CURLStringFile

Описание

public CURLStringFile::__construct(string $data, string $postname, string $mime = "application/octet-stream")

Создаёт объект CURLStringFile, который используется для загрузки файла с помощью CURLOPT_POSTFIELDS.

Список параметров

data

Содержимое для загрузки.

postname

Имя файла, который будет использоваться в загружаемых данных.

mime

MIME-тип файла (по умолчанию application/octet-stream).

Примеры

Пример #1 Пример использования CURLStringFile::__construct()

<?php
/* http://example.com/upload.php:
<?php
var_dump($_FILES);
var_dump(file_get_contents($_FILES['test_string']['tmp_name']));
?>
*/

// Создание дескриптора cURL
$ch = curl_init('http://example.com/upload.php');

// Создание объекта CURLStringFile
$cstringfile = new CURLStringFile('тестовое содержимое для загрузки','test.txt','text/plain');

// Назначение данных для POST-запроса
$data = array('test_string' => $cstringfile);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Выполнение дескриптора
curl_exec($ch);
?>

Результат выполнения данного примера:

array(1) {
  ["test_string"]=>
  array(5) {
    ["name"]=>
    string(8) "test.txt"
    ["type"]=>
    string(10) "text/plain"
    ["tmp_name"]=>
    string(14) "/tmp/phpTtaoCz"
    ["error"]=>
    int(0)
    ["size"]=>
    int(20)
  }
}
string(20) "test upload contents"

Смотрите также

  • curl_setopt() - Устанавливает параметр для сеанса CURL


Event

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Примеры
  • Флаги событий
  • О постоянных(persistent) событиях
  • Callback-функции
  • Создание событий для сигналов
  • Event — Класс Event
    • Event::add — Перевести событие в состояние ожидания
    • Event::addSignal — Псевдоним Event::add
    • Event::addTimer — Псевдоним Event::add
    • Event::__construct — Конструктор объекта Event
    • Event::del — Перевести событие в пассивное состояние
    • Event::delSignal — Псевдоним Event::del
    • Event::delTimer — Псевдоним Event::del
    • 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 — Предотвращает вызовы, которые изменяют буфер событий в случае успешного выполнения
    • EventBuffer::lock — Получает блокировку буфера
    • EventBuffer::prepend — Записывает данные в начало буфера
    • EventBuffer::prependBuffer — Перемещает все данные из исходного буфера в начало текущего буфера
    • EventBuffer::pullup — Линеаризует данные в буфере и возвращает их содержимое в виде строки
    • EventBuffer::read — Читает данные из evbuffer и истощает прочитанные байты
    • EventBuffer::readFrom — Читает данные из файла в конец буфера
    • EventBuffer::readLine — Извлекает строку из начала буфера
    • EventBuffer::search — Сканирует буфер на наличие строки
    • EventBuffer::searchEol — Сканирует буфер на наличие конца строки
    • EventBuffer::substr — Обрезает часть данных буфера
    • EventBuffer::unfreeze — Повторно включает вызовы, которые изменяют буфер событий
    • EventBuffer::unlock — Снимает блокировку, установленную EventBuffer::lock
    • EventBuffer::write — Записывает содержимое буфера в файл или сокет
  • EventBufferEvent — Класс EventBufferEvent
    • EventBufferEvent::close — Закрывает дескриптор файла, связанный с текущим событием буфера
    • EventBufferEvent::connect — Подключает файловый дескриптор события буфера к указанному адресу или сокету UNIX
    • EventBufferEvent::connectHost — Подключается по имени хоста с возможностью асинхронного разрешения DNS
    • EventBufferEvent::__construct — Создаёт объект EventBufferEvent
    • EventBufferEvent::createPair — Создаёт два буферных события, связанных друг с другом
    • EventBufferEvent::disable — Отключает чтение, запись или и то, и другое в событии буфера
    • EventBufferEvent::enable — Включает чтение, запись или и то, и другое в событии буфера
    • EventBufferEvent::free — Освобождает событие буфера
    • EventBufferEvent::getDnsErrorString — Возвращает строку, описывающую последнюю неудачную попытку поиска DNS
    • EventBufferEvent::getEnabled — Возвращает битовую маску событий, которые в данный момент активированы для буферного события
    • EventBufferEvent::getInput — Возвращает базовый входной буфер, связанный с текущим буферным событием
    • EventBufferEvent::getOutput — Возвращает базовый выходной буфер, связанный с текущим буферным событием
    • EventBufferEvent::read — Читает данные буфера
    • EventBufferEvent::readBuffer — Сливает все содержимое буфера ввода и помещает его в буфер
    • EventBufferEvent::setCallbacks — Назначает callback-функции для чтения, записи и события (состояния)
    • EventBufferEvent::setPriority — Присваивает приоритет bufferevent
    • EventBufferEvent::setTimeouts — Устанавливает время ожидания чтения и записи для события буфера
    • EventBufferEvent::setWatermark — Регулирует водяные знаки чтения и/или записи
    • EventBufferEvent::sslError — Возвращает последнюю ошибку OpenSSL, сообщённую буферному событию
    • EventBufferEvent::sslFilter — Создаёт новое событие буфера SSL для отправки своих данных через другое событие буфера
    • 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::setFlags — Устанавливает один или несколько флагов для настройки возможной инициализации EventBase
    • 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 class Event {
/* Константы */
const int ET = 32;
const int PERSIST = 16;
const int READ = 2;
const int WRITE = 4;
const int SIGNAL = 8;
const int TIMEOUT = 1;
/* Свойства */
public readonly bool $pending;
/* Методы */
public add( float $timeout = ?): bool
public __construct(
EventBase $base ,
mixed $fd ,
int $what ,
callable $cb ,
mixed $arg = NULL
)
public del(): bool
public free(): void
public static getSupportedMethods(): 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::add
  • Event::addTimer — Псевдоним Event::add
  • Event::__construct — Конструктор объекта Event
  • Event::del — Перевести событие в пассивное состояние
  • Event::delSignal — Псевдоним Event::del
  • Event::delTimer — Псевдоним Event::del
  • 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 event >= 1.2.6-beta)

Event::add — Перевести событие в состояние ожидания

Описание

public Event::add( float $timeout = ?): bool

Переводит событие в состояние ожидания. Не ожидающие события никогда не сработают и не вызовут callback-функцию. В сочетании с Event::del(), событие может быть перезапланированно пользователем в любое время.

Если метод Event::add() вызван для уже ожидающего события, libevent оставит его в состоянии ожидания и перезапланирует его в соответствии с заданным временем ожидания (если оно задано). Если время ожидания не задано, то Event::add() не возымеет какого-либо эффекта.

Список параметров

timeout

Время ожидания в секундах.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Добавление пользовательского сигнала

<?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->add();
}
public function eventSighandler($no, $c) {
echo "Пойманный сигнал $no\n";
$this->base->exit();
}
}
$base = new EventBase();
$c = new MyEventSignal($base);
$base->loop();
?>

Результатом выполнения данного примера будет что-то подобное:

Пойманный сигнал 15

Пример #2 Добавление таймера

<?php
$base = new EventBase();
$n = 2;
$e = Event::timer($base, function($n) use (&$e) {
echo "Прошло секунд: $n\n";
$e->delTimer();
}, $n);
$e->add($n);
$base->loop();
?>

Результатом выполнения данного примера будет что-то подобное:

Прошло секунд: 2

Смотрите также

  • Event::add()
  • Event::del() - Перевести событие в пассивное состояние
  • Event::signal() - Создать объект события сигнала
  • Event::timer() - Создать объект события таймера


Псевдоним Event::add

  • « Event::add
  • Event::addTimer »
  • PHP Manual
  • Event
  • Псевдоним Event::add

Event::addSignal

(PECL event >= 1.2.6-beta)

Event::addSignal — Псевдоним Event::add()

Описание

Метод является псевдонимом: Event::add()


Псевдоним Event::add

  • « Event::addSignal
  • Event::__construct »
  • PHP Manual
  • Event
  • Псевдоним Event::add

Event::addTimer

(PECL event >= 1.2.6-beta)

Event::addTimer — Псевдоним Event::add()

Описание

Метод является псевдонимом: Event::add()


Конструктор объекта 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 event >= 1.2.6-beta)

Event::del — Перевести событие в пассивное состояние

Описание

public Event::del(): bool

Удаляет событие из набора отслеживаемых событий, т.е. переводит его в состояние не-ожидания.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • Event::add() - Перевести событие в состояние ожидания


Псевдоним Event::del

  • « Event::del
  • Event::delTimer »
  • PHP Manual
  • Event
  • Псевдоним Event::del

Event::delSignal

(PECL event >= 1.2.6-beta)

Event::delSignal — Псевдоним Event::del()

Описание

Метод является псевдонимом: Event::del()


Псевдоним Event::del

  • « Event::delSignal
  • Event::free »
  • PHP Manual
  • Event
  • Псевдоним Event::del

Event::delTimer

(PECL event >= 1.2.6-beta)

Event::delTimer — Псевдоним Event::del()

Описание

Метод является псевдонимом: Event::del()


Перевести событие в пассивное состояние и высвободить все выделенные для него ресурсы

  • « Event::delTimer
  • Event::getSupportedMethods »
  • PHP Manual
  • Event
  • Перевести событие в пассивное состояние и высвободить все выделенные для него ресурсы

Event::free

(PECL event >= 1.2.6-beta)

Event::free — Перевести событие в пассивное состояние и высвободить все выделенные для него ресурсы

Описание

public Event::free(): 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(): 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 event >= 1.2.6-beta)

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 class EventBase {
/* Константы */
const int LOOP_ONCE = 1;
const int LOOP_NONBLOCK = 2;
const int NOLOCK = 1;
const int STARTUP_IOCP = 4;
const int NO_CACHE_TIME = 8;
const int EPOLL_USE_CHANGELIST = 16;
/* Методы */
public __construct( EventConfig $cfg = ?)
public dispatch(): void
public exit( float $timeout = ?): bool
public free(): void
public getFeatures(): int
public getMethod(): string
public getTimeOfDayCached(): float
public gotExit(): bool
public gotStop(): bool
public loop( int $flags = ?): bool
public priorityInit( int $n_priorities ): bool
public reInit(): bool
public stop(): 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

Ожидает, пока события станут активными, и запускает их 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

Освобождает ресурсы, выделенные 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(): int

Возвращает битовую маску поддерживаемых функций

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает битовую маску поддерживаемых функций. Смотрите константы EventConfig::FEATURE_* .

Примеры

Пример #1 Пример использования EventBase::getFeatures()

<?php
// Avoiding "select" method
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
echo "Метод 'select' будет игнорироваться\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(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка, представляющая используемый метод события (backend).

Примеры

Пример #1 Пример использования EventBase::getMethod()

<?php
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
echo "Метод 'select' будет игнорироваться\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(): 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(): 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(): 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(): 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(): bool

Сообщает event_base прекратить отправку событий

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • EventBase::exit() - Прекращает отправку событий
  • EventBase::gotStop() - Проверяет, был ли цикл обработки событий завершён


Класс EventBuffer

(PECL event >= 1.5.0)

Введение

EventBuffer представляет событийный буфер библиотеки Libevent - вспомогательный функционал для буферизированного ввода/вывода.

Буферы событий обычно полезны для организации "буферной" части буферизированного сетевого ввода/вывода.

Обзор классов

class EventBuffer {
/* Константы */
const int EOL_ANY = 0;
const int EOL_CRLF = 1;
const int EOL_CRLF_STRICT = 2;
const int EOL_LF = 3;
const int PTR_SET = 0;
const int 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()
public copyout( string &$data , int $max_bytes ): int
public drain( int $len ): bool
public enableLocking(): void
public expand( int $len ): bool
public freeze( bool $at_front ): bool
public lock(): 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(): 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 — Предотвращает вызовы, которые изменяют буфер событий в случае успешного выполнения
  • EventBuffer::lock — Получает блокировку буфера
  • EventBuffer::prepend — Записывает данные в начало буфера
  • EventBuffer::prependBuffer — Перемещает все данные из исходного буфера в начало текущего буфера
  • EventBuffer::pullup — Линеаризует данные в буфере и возвращает их содержимое в виде строки
  • EventBuffer::read — Читает данные из evbuffer и истощает прочитанные байты
  • EventBuffer::readFrom — Читает данные из файла в конец буфера
  • EventBuffer::readLine — Извлекает строку из начала буфера
  • EventBuffer::search — Сканирует буфер на наличие строки
  • EventBuffer::searchEol — Сканирует буфер на наличие конца строки
  • EventBuffer::substr — Обрезает часть данных буфера
  • EventBuffer::unfreeze — Повторно включает вызовы, которые изменяют буфер событий
  • EventBuffer::unlock — Снимает блокировку, установленную EventBuffer::lock
  • EventBuffer::write — Записывает содержимое буфера в файл или сокет


Добавляет данные в конец буфера событий

  • « 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

Возвращаемые значения

Возвращает количество прочитанных байтов.

Список изменений

Версия | Описание
PECL event 1.6.0 | Переименован EventBuffer::appendFrom()(старое имя метода) в EventBuffer::appendFrom().

Смотрите также

  • EventBuffer::copyout() - Копирует указанное количество байтов с начала буфера
  • EventBuffer::drain() - Удаляет указанное количество байтов с начала буфера, никуда не копируя
  • EventBuffer::pullup() - Линеаризует данные в буфере и возвращает их содержимое в виде строки
  • EventBuffer::readLine() - Извлекает строку из начала буфера
  • EventBuffer::read() - Читает данные из evbuffer и истощает прочитанные байты


Создаёт объект EventBuffer

  • « EventBuffer::appendFrom
  • EventBuffer::copyout »
  • PHP Manual
  • EventBuffer
  • Создаёт объект EventBuffer

EventBuffer::__construct

(PECL event >= 1.2.6-beta)

EventBuffer::__construct — Создаёт объект EventBuffer

Описание

public EventBuffer::__construct()

Создаёт объект 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() - Читает данные из evbuffer и истощает прочитанные байты
  • 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() - Читает данные из evbuffer и истощает прочитанные байты
  • EventBuffer::appendFrom() - Перемещает указанное количество байтов из исходного буфера в конец текущего буфера


Описание

  • « EventBuffer::drain
  • EventBuffer::expand »
  • PHP Manual
  • EventBuffer
  • Описание

EventBuffer::enableLocking

(PECL event >= 1.2.6-beta)

EventBuffer::enableLocking —

Описание

public EventBuffer::enableLocking(): 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 в случае возникновения ошибки.


Предотвращает вызовы, которые изменяют буфер событий в случае успешного выполнения

  • « EventBuffer::expand
  • EventBuffer::lock »
  • PHP Manual
  • EventBuffer
  • Предотвращает вызовы, которые изменяют буфер событий в случае успешного выполнения

EventBuffer::freeze

(PECL event >= 1.2.6-beta)

EventBuffer::freeze — Предотвращает вызовы, которые изменяют буфер событий в случае успешного выполнения

Описание

public EventBuffer::freeze( bool $at_front ): bool

Предотвращает вызовы, которые изменяют буфер событий в случае успешного выполнения

Список параметров

at_front

Отключить ли изменения в начале или конце буфера.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • EventBuffer::unfreeze() - Повторно включает вызовы, которые изменяют буфер событий


Получает блокировку буфера

  • « EventBuffer::freeze
  • EventBuffer::prepend »
  • PHP Manual
  • EventBuffer
  • Получает блокировку буфера

EventBuffer::lock

(PECL event >= 1.2.6-beta)

EventBuffer::lock — Получает блокировку буфера

Описание

public EventBuffer::lock(): void

Получает блокировку буфера. Может использоваться в паре с EventBuffer::unlock(), чтобы сделать набор операций атомарным, то есть потокобезопасным. Обратите внимание, что нет необходимости блокировать буферы для отдельных операций. Когда блокировка включена (смотрите EventBuffer::enableLocking()), отдельные операции над буферами событий уже являются атомарными.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • EventBuffer::unlock() - Снимает блокировку, установленную EventBuffer::lock


Записывает данные в начало буфера

  • « EventBuffer::lock
  • EventBuffer::prependBuffer »
  • PHP Manual
  • EventBuffer
  • Записывает данные в начало буфера

EventBuffer::prepend

(PECL event >= 1.2.6-beta)

EventBuffer::prepend — Записывает данные в начало буфера

Описание

public EventBuffer::prepend( string $data ): bool

Записывает данные в начало буфера.

Список параметров

data

Строка, которая будет добавлена в начало буфера.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • EventBuffer::prependBuffer() - Перемещает все данные из исходного буфера в начало текущего буфера
  • EventBuffer::add() - Добавляет данные в конец буфера событий
  • EventBuffer::addBuffer() - Перемещает все данные из буфера экземпляру EventBuffer


Перемещает все данные из исходного буфера в начало текущего буфера

  • « EventBuffer::prepend
  • EventBuffer::pullup »
  • PHP Manual
  • EventBuffer
  • Перемещает все данные из исходного буфера в начало текущего буфера

EventBuffer::prependBuffer

(PECL event >= 1.2.6-beta)

EventBuffer::prependBuffer — Перемещает все данные из исходного буфера в начало текущего буфера

Описание

public EventBuffer::prependBuffer( EventBuffer $buf ): bool

Ведёт себя как EventBuffer::addBuffer() , за исключением того, что он перемещает данные в начало буфера.

Список параметров

buf

Исходный буфер.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • EventBuffer::add() - Добавляет данные в конец буфера событий
  • EventBuffer::addBuffer() - Перемещает все данные из буфера экземпляру EventBuffer
  • EventBuffer::prepend() - Записывает данные в начало буфера


Линеаризует данные в буфере и возвращает их содержимое в виде строки

  • « EventBuffer::prependBuffer
  • EventBuffer::read »
  • PHP Manual
  • EventBuffer
  • Линеаризует данные в буфере и возвращает их содержимое в виде строки

EventBuffer::pullup

(PECL event >= 1.2.6-beta)

EventBuffer::pullup — Линеаризует данные в буфере и возвращает их содержимое в виде строки

Описание

public EventBuffer::pullup( int $size ): string

"Линеаризует" первые size байты буфера, копируя или перемещая их по мере необходимости, чтобы гарантировать, что все они являются смежными и занимают один и тот же кусок памяти. Если размер отрицателен, функция линеаризует весь буфер.

Внимание

Вызов EventBuffer::pullup() с большим размером может быть довольно медленным, поскольку потенциально может потребоваться копирование всего содержимого буфера.

Список параметров

size

Количество байтов должно быть непрерывным в буфере.

Возвращаемые значения

Если size больше, чем количество байтов в буфере, функция возвращает null. В противном случае возвращает строку EventBuffer::pullup().

Смотрите также

  • EventBuffer::copyout() - Копирует указанное количество байтов с начала буфера
  • EventBuffer::drain() - Удаляет указанное количество байтов с начала буфера, никуда не копируя
  • EventBuffer::read() - Читает данные из evbuffer и истощает прочитанные байты
  • EventBuffer::readLine() - Извлекает строку из начала буфера
  • EventBuffer::appendFrom() - Перемещает указанное количество байтов из исходного буфера в конец текущего буфера


Читает данные из evbuffer и истощает прочитанные байты

  • « EventBuffer::pullup
  • EventBuffer::readFrom »
  • PHP Manual
  • EventBuffer
  • Читает данные из evbuffer и истощает прочитанные байты

EventBuffer::read

(PECL event >= 1.6.0)

EventBuffer::read — Читает данные из evbuffer и истощает прочитанные байты

Описание

public EventBuffer::read( int $max_bytes ): string

Прочитайте первые max_bytes из буфера и истощите прочитанные байты. Если запрошено больше max_bytes, чем доступно в буфере, он извлекает столько байтов, сколько доступно.

Список параметров

max_bytes

Максимальное количество байтов для чтения из буфера.

Возвращаемые значения

Возвращает прочитанную строку или false в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL event 1.6.0 | Переименован из EventBuffer::read() (старое имя метода) в EventBuffer::read(). EventBuffer::read() теперь принимает только аргумент max_bytes; возвращает строку вместо целого числа.

Смотрите также

  • EventBuffer::copyout() - Копирует указанное количество байтов с начала буфера
  • EventBuffer::drain() - Удаляет указанное количество байтов с начала буфера, никуда не копируя
  • EventBuffer::pullup() - Линеаризует данные в буфере и возвращает их содержимое в виде строки
  • EventBuffer::readLine() - Извлекает строку из начала буфера
  • EventBuffer::appendFrom() - Перемещает указанное количество байтов из исходного буфера в конец текущего буфера


Читает данные из файла в конец буфера

  • « EventBuffer::read
  • EventBuffer::readLine »
  • PHP Manual
  • EventBuffer
  • Читает данные из файла в конец буфера

EventBuffer::readFrom

(PECL event >= 1.7.0)

EventBuffer::readFrom — Читает данные из файла в конец буфера

Описание

public EventBuffer::read( mixed $fd , int $howmuch ): int

Читает данные из файла, указанного в fd в конец буфера.

Список параметров

fd

Ресурс сокета, поток или числовой дескриптор файла.

howmuch

Максимальное количество байтов для чтения.

Возвращаемые значения

Возвращает количество прочитанных байтов или false в случае возникновения ошибки.

Смотрите также

  • EventBuffer::copyout() - Копирует указанное количество байтов с начала буфера
  • EventBuffer::drain() - Удаляет указанное количество байтов с начала буфера, никуда не копируя
  • EventBuffer::pullup() - Линеаризует данные в буфере и возвращает их содержимое в виде строки
  • EventBuffer::readLine() - Извлекает строку из начала буфера
  • EventBuffer::appendFrom() - Перемещает указанное количество байтов из исходного буфера в конец текущего буфера


Извлекает строку из начала буфера

  • « EventBuffer::readFrom
  • EventBuffer::search »
  • PHP Manual
  • EventBuffer
  • Извлекает строку из начала буфера

EventBuffer::readLine

(PECL event >= 1.2.6-beta)

EventBuffer::readLine — Извлекает строку из начала буфера

Описание

public EventBuffer::readLine( int $eol_style ): string

Извлекает строку из начала буфера и возвращает её во вновь выделенной строке. Если нет целой строки для чтения, функция возвращает null. Терминатор строки не включается в скопированную строку.

Список параметров

eol_style

Одна из EventBuffer:EOL_* констант .

Возвращаемые значения

В случае успешного выполнения возвращает строку, прочитанную из буфера, в противном случае возвращает null.

Смотрите также

  • EventBuffer::copyout() - Копирует указанное количество байтов с начала буфера
  • EventBuffer::drain() - Удаляет указанное количество байтов с начала буфера, никуда не копируя
  • EventBuffer::pullup() - Линеаризует данные в буфере и возвращает их содержимое в виде строки
  • EventBuffer::read() - Читает данные из evbuffer и истощает прочитанные байты
  • EventBuffer::appendFrom() - Перемещает указанное количество байтов из исходного буфера в конец текущего буфера


Сканирует буфер на наличие строки

  • « EventBuffer::readLine
  • EventBuffer::searchEol »
  • PHP Manual
  • EventBuffer
  • Сканирует буфер на наличие строки

EventBuffer::search

(PECL event >= 1.2.6-beta)

EventBuffer::search — Сканирует буфер на наличие строки

Описание

public EventBuffer::search( string $what , int $start = -1 , int $end = -1 ): mixed

Сканирует буфер на наличие строки what. Возвращает числовую позицию строки или false, если строка не была найдена.

Если указан аргумент start, он указывает на позицию, с которой должен начинаться поиск; в противном случае поиск выполняется с начала строки. Если указан аргумент end, поиск выполняется между начальной и конечной позициями буфера.

Список параметров

what

Строка для поиска.

start

Позиция начала поиска.

end

Позиция окончания поиска.

Возвращаемые значения

Возвращает числовую позицию первого вхождения строки в буфере или false, если строка не найдена.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Пример использования EventBuffer::search()

<?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() - Сканирует буфер на наличие конца строки


Сканирует буфер на наличие конца строки

  • « EventBuffer::search
  • EventBuffer::substr »
  • PHP Manual
  • EventBuffer
  • Сканирует буфер на наличие конца строки

EventBuffer::searchEol

(PECL event >= 1.5.0)

EventBuffer::searchEol — Сканирует буфер на наличие конца строки

Описание

public EventBuffer::searchEol( int $start = -1 , int $eol_style = EventBuffer::EOL_ANY ): mixed

Сканирует буфер на наличие конца строки, указанного параметром eol_style. Возвращает числовую позицию строки или false, если строка не была найдена.

Если указан аргумент start, он представляет позицию, с которой должен начинаться поиск; в противном случае поиск выполняется с начала строки. Если указан аргумент end, поиск выполняется между начальной и конечной позициями буфера.

Список параметров

start

Start search position.

eol_style

Одна из EventBuffer:EOL_* констант .

Возвращаемые значения

Возвращает числовую позицию первого вхождения символа конца строки в буфере или false, если не найдено.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Смотрите также

  • EventBuffer::search() - Сканирует буфер на наличие строки


Обрезает часть данных буфера

  • « EventBuffer::searchEol
  • EventBuffer::unfreeze »
  • PHP Manual
  • EventBuffer
  • Обрезает часть данных буфера

EventBuffer::substr

(PECL event >= 1.6.0)

EventBuffer::substr — Обрезает часть данных буфера

Описание

public EventBuffer::substr( int $start , int $length = ?): string

Обрезает до length байтов данных буфера, начиная с позиции start.

Список параметров

start

Начальная позиция данных, подлежащих обрезанию.

length

Максимальное количество байтов для обрезания.

Возвращаемые значения

Возвращает данные, вычтенные в виде строки (string) в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • EventBuffer::read() - Читает данные из evbuffer и истощает прочитанные байты


Повторно включает вызовы, которые изменяют буфер событий

  • « EventBuffer::substr
  • EventBuffer::unlock »
  • PHP Manual
  • EventBuffer
  • Повторно включает вызовы, которые изменяют буфер событий

EventBuffer::unfreeze

(PECL event >= 1.2.6-beta)

EventBuffer::unfreeze — Повторно включает вызовы, которые изменяют буфер событий

Описание

public EventBuffer::unfreeze( bool $at_front ): bool

Повторно включает вызовы, которые изменяют буфер событий.

Список параметров

at_front

Определяет включить события в начале или в конце буфера.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • EventBuffer::freeze() - Предотвращает вызовы, которые изменяют буфер событий в случае успешного выполнения


Снимает блокировку, установленную 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(): bool

Снимает блокировку, установленную EventBuffer::lock() .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • EventBuffer::lock() - Получает блокировку буфера


Записывает содержимое буфера в файл или сокет

  • « EventBuffer::unlock
  • EventBufferEvent »
  • PHP Manual
  • EventBuffer
  • Записывает содержимое буфера в файл или сокет

EventBuffer::write

(PECL event >= 1.6.0)

EventBuffer::write — Записывает содержимое буфера в файл или сокет

Описание

public EventBuffer::write( mixed $fd , int $howmuch = ?): int

Записывает содержимое буфера в дескриптор файла. Буфер будет очищен после успешной записи байтов.

Список параметров

fd

Ресурс сокета, потоковый или числовой дескриптор файла, связанный обычно с сокетом.

howmuch

Максимальное количество байтов для записи.

Возвращаемые значения

Возвращает количество записанных байтов или false в случае возникновения ошибки.

Смотрите также

  • EventBuffer::read() - Читает данные из evbuffer и истощает прочитанные байты


Класс EventBufferEvent

(PECL event >= 1.2.6-beta)

Введение

Представляет буферизированное событие Libevent.

Обычно приложению необходимо произвести буферизацию некоторого количества данных в дополнение к тому, чтоб просто реагировать на события. Когда мы, к примеру, хотим записывать данные, обычный алгоритм выглядит так:

  1. Решаем, что нам надо записать данные в соединение; складываем данные в буфер

  2. Ожидаем, когда соединение станет доступным для записи

  3. Записываем столько данных, сколько можем

  4. Запоминаем, сколько данных записали и, если остались недозаписанные данные, ждём, когда соединение снова станет доступно для записи.

Это шаблон буферизированного вводы/вывода настолько распространён, что Libevent предоставляет встроенный механизм для него. "Буферизированное событие" состоит из транспорта (например сокета), буфера чтения и буфера записи. В отличие от стандартных событий, которые используют функцию обратного вызова когда транспорт становится доступен для чтения или записи, буферизованное событие вызывает функцию обратного вызова тогда, когда прочитает или запишет достаточное количество данных.

Обзор классов

final class EventBufferEvent {
/* Константы */
const int READING = 1;
const int WRITING = 2;
const int EOF = 16;
const int ERROR = 32;
const int TIMEOUT = 64;
const int CONNECTED = 128;
const int OPT_CLOSE_ON_FREE = 1;
const int OPT_THREADSAFE = 2;
const int OPT_DEFER_CALLBACKS = 4;
const int OPT_UNLOCK_CALLBACKS = 8;
const int SSL_OPEN = 0;
const int SSL_CONNECTING = 1;
const int SSL_ACCEPTING = 2;
/* Свойства */
public int $fd;
public int $priority;
public readonly EventBuffer $input;
public readonly EventBuffer $output;
/* Методы */
public close(): 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 ,
mixed $arg = null
)
public static createPair( EventBase $base , int $options = 0 ): array
public disable( int $events ): bool
public enable( int $events ): bool
public free(): void
public getDnsErrorString(): string
public getEnabled(): int
public getInput(): EventBuffer
public getOutput(): EventBuffer
public read( int $size ): string
public readBuffer( EventBuffer $buf ): bool
public setCallbacks(
callable $readcb ,
callable $writecb ,
callable $eventcb ,
mixed $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(): string
public static sslFilter(
EventBase $base ,
EventBufferEvent $underlying ,
EventSslContext $ctx ,
int $state ,
int $options = 0
): EventBufferEvent
public sslGetCipherInfo(): string
public sslGetCipherName(): string
public sslGetCipherVersion(): string
public sslGetProtocol(): string
public sslRenegotiate(): 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 — Закрывает дескриптор файла, связанный с текущим событием буфера
  • EventBufferEvent::connect — Подключает файловый дескриптор события буфера к указанному адресу или сокету UNIX
  • EventBufferEvent::connectHost — Подключается по имени хоста с возможностью асинхронного разрешения DNS
  • EventBufferEvent::__construct — Создаёт объект EventBufferEvent
  • EventBufferEvent::createPair — Создаёт два буферных события, связанных друг с другом
  • EventBufferEvent::disable — Отключает чтение, запись или и то, и другое в событии буфера
  • EventBufferEvent::enable — Включает чтение, запись или и то, и другое в событии буфера
  • EventBufferEvent::free — Освобождает событие буфера
  • EventBufferEvent::getDnsErrorString — Возвращает строку, описывающую последнюю неудачную попытку поиска DNS
  • EventBufferEvent::getEnabled — Возвращает битовую маску событий, которые в данный момент активированы для буферного события
  • EventBufferEvent::getInput — Возвращает базовый входной буфер, связанный с текущим буферным событием
  • EventBufferEvent::getOutput — Возвращает базовый выходной буфер, связанный с текущим буферным событием
  • EventBufferEvent::read — Читает данные буфера
  • EventBufferEvent::readBuffer — Сливает все содержимое буфера ввода и помещает его в буфер
  • EventBufferEvent::setCallbacks — Назначает callback-функции для чтения, записи и события (состояния)
  • EventBufferEvent::setPriority — Присваивает приоритет bufferevent
  • EventBufferEvent::setTimeouts — Устанавливает время ожидания чтения и записи для события буфера
  • EventBufferEvent::setWatermark — Регулирует водяные знаки чтения и/или записи
  • EventBufferEvent::sslError — Возвращает последнюю ошибку OpenSSL, сообщённую буферному событию
  • EventBufferEvent::sslFilter — Создаёт новое событие буфера SSL для отправки своих данных через другое событие буфера
  • EventBufferEvent::sslGetCipherInfo — Возвращает текстовое описание шифра
  • EventBufferEvent::sslGetCipherName — Возвращает текущее имя шифра соединения SSL
  • EventBufferEvent::sslGetCipherVersion — Возвращает версию шифра, используемого текущим SSL-соединением
  • EventBufferEvent::sslGetProtocol — Возвращает имя протокола, используемого для текущего соединения SSL
  • EventBufferEvent::sslRenegotiate — Сообщает буферному событию начать пересмотр SSL
  • EventBufferEvent::sslSocket — Создаёт новое буферное событие SSL для отправки своих данных через SSL в сокет
  • EventBufferEvent::write — Добавляет данные в буфер вывода буферного события
  • EventBufferEvent::writeBuffer — Добавляет содержимое всего буфера в буфер вывода буферного события


Закрывает дескриптор файла, связанный с текущим событием буфера

  • « EventBufferEvent
  • EventBufferEvent::connect »
  • PHP Manual
  • EventBufferEvent
  • Закрывает дескриптор файла, связанный с текущим событием буфера

EventBufferEvent::close

(PECL event >= 1.10.0)

EventBufferEvent::close — Закрывает дескриптор файла, связанный с текущим событием буфера

Описание

public EventBufferEvent::close(): void

Закрывает дескриптор файла, связанный с текущим событием буфера.

Метод может использоваться в тех случаях, когда опция EventBufferEvent::OPT_CLOSE_ON_FREE не подходит.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Подключает файловый дескриптор события буфера к указанному адресу или сокету UNIX

  • « EventBufferEvent::close
  • EventBufferEvent::connectHost »
  • PHP Manual
  • EventBufferEvent
  • Подключает файловый дескриптор события буфера к указанному адресу или сокету UNIX

EventBufferEvent::connect

(PECL event >= 1.2.6-beta)

EventBufferEvent::connect — Подключает файловый дескриптор события буфера к указанному адресу или сокету UNIX

Описание

public EventBufferEvent::connect( string $addr ): bool

Подключает файловый дескриптор события буфера к указанному адресу (опционально с портом) или сокету UNIX.

Если сокет не назначен событию буфера, функция выделяет новый сокет и делает его внутренним неблокирующим.

Чтобы разрешить DNS-имена (асинхронно), используйте метод EventBufferEvent::connectHost().

Список параметров

addr

Должен содержать IP-адрес с необязательным номером порта или путь к сокету домена UNIX. Допустимые форматы:

[IPv6Address]:port
[IPv6Address]
IPv6Address
IPv4Address:port
IPv4Address
unix:path
Имейте в виду, что префикс 'unix:' в настоящее время не чувствителен к регистру.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования EventBufferEvent::connect()

<?php
/*
* 1. Подключение к 127.0.0.1 и порту 80
* by means of EventBufferEvent::connect().
*
* 2. Запрос /index.cphp с помощью HTTP/1.0
* используя выходной буфер.
*
* 3. Асинхронно прочитайте ответ и распечатайте его стандартным выводом.
*/

/* Чтение callback-функции */
function readcb($bev, $base) {
$input = $bev->getInput();

while (($n = $input->remove($buf, 1024)) > 0) {
echo $buf;
}
}

/* Событие callback-функции */
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 "шаг 1\n";
$bev = new EventBufferEvent($base, /* используйте внутренний сокет */ NULL,
EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS);
if (!$bev) {
exit("Не удалось создать сокет bufferevent\n");
}

echo "шаг 2\n";
$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

echo "шаг 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();

Результатом выполнения данного примера будет что-то подобное:

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 Подключитесь к сокету домена UNIX, который предположительно обслуживается сервером, прочитайте ответ сервера и выведите его на консоль

<?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("Получено %ld байтов\n", $in->length);
printf("----- данные ----\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 "Ошибка 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("Путь к сокету не указан\n");
}
$sock_path = $argv[1];

$base = new EventBase();
$cl = new MyUnixSocketClient($base, $sock_path);
$cl->dispatch();
?>

Результатом выполнения данного примера будет что-то подобное:

Получено 5 байтов
----- данные ----
5:  test

Смотрите также

  • EventBufferEvent::connectHost() - Подключается по имени хоста с возможностью асинхронного разрешения DNS


Подключается по имени хоста с возможностью асинхронного разрешения DNS

  • « EventBufferEvent::connect
  • EventBufferEvent::__construct »
  • PHP Manual
  • EventBufferEvent
  • Подключается по имени хоста с возможностью асинхронного разрешения DNS

EventBufferEvent::connectHost

(PECL event >= 1.2.6-beta)

EventBufferEvent::connectHost — Подключается по имени хоста с возможностью асинхронного разрешения DNS

Описание

public EventBufferEvent::connectHost(
EventDnsBase $dns_base ,
string $hostname ,
int $port ,
int $family = EventUtil::AF_UNSPEC
): bool

Разрешает имя хоста DNS-имени, ища адреса типа family (константы EventUtil::AF_*). Если разрешение имени не удалось произвести, вызывает callback-функцию события с событием ошибки. В случае успешного выполнения совершает попытку подключения так же, как EventBufferEvent::connect().

Параметр dns_base не является обязательным. Он может иметь значение null или ссылаться на объект, созданный с помощью EventDnsBase::__construct(). Для асинхронного разрешения имени хоста необходимо передать действительный базовый ресурс DNS-события. В противном случае разрешение имени хоста будет заблокировано.

Замечание:

EventDnsBase доступен, только если Event настроен с --with-event-extra (библиотека event_extra, поддержка функций протокола libevent, включая HTTP, DNS и RPC).

Замечание:

EventBufferEvent::connectHost() требует libevent-2.0.3-alpha или выше.

Список параметров

dns_base

Объект EventDnsBase в случае, если DNS нужно разрешить асинхронно. null в противном случае.

hostname

Имя хоста для подключения. Распознаваемые форматы:

www.example.com (hostname)
 1.2.3.4 (ipv4address)
 ::1 (ipv6address)
[::1] ([ipv6address])

port

Номер порта.

family

Семейство адресов. EventUtil::AF_UNSPEC, EventUtil::AF_INET или EventUtil::AF_INET6. Обратитесь к списку констант EventUtil.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования EventBufferEvent::connectHost()

<?php
/* 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;
}
}

/* Callback-функция события */
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();

$dns_base = new EventDnsBase($base, TRUE); // Использование асинхронного разрешения DNS
if (!$dns_base) {
exit("Не удалось запустить базу DNS\n");
}

$bev = new EventBufferEvent($base, /* использование внутреннего сокета */ NULL,
EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
"readcb", /* writecb */ NULL, "eventcb", $base
);
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();
?>

Результатом выполнения данного примера будет что-то подобное:

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() - Подключает файловый дескриптор события буфера к указанному адресу или сокету UNIX


Создаёт объект EventBufferEvent

  • « EventBufferEvent::connectHost
  • EventBufferEvent::createPair »
  • PHP Manual
  • EventBufferEvent
  • Создаёт объект EventBufferEvent

EventBufferEvent::__construct

(PECL event >= 1.2.6-beta)

EventBufferEvent::__construct — Создаёт объект EventBufferEvent

Описание

public EventBufferEvent::__construct(
EventBase $base ,
mixed $socket = null ,
int $options = 0 ,
callable $readcb = null ,
callable $writecb = null ,
callable $eventcb = null ,
mixed $arg = null
)

Создаёт событие буфера для сокета, потока или файлового дескриптора. Передача null в socket означает, что сокет должен быть создан позже, например, с помощью EventBufferEvent::connect().

Список параметров

base

База события, которая должна быть связана с новым буферным событием.

socket

Может быть создан в виде потока (не обязательно с помощью модуля sockets).

options

Одна из констант EventBufferEvent::OPT_* или 0.

readcb

Callback-функция чтения. Обратитесь к разделу О callback-функциях событийного буфера.

writecb

Callback-функция записи. Обратитесь к разделу О callback-функциях событийного буфера.

eventcb

Callback-функция события изменения статуса. Обратитесь к разделу О callback-функциях событийного буфера.

arg

Переменная, которая будет передана всем callback-функциям.

Возвращаемые значения

Возвращает ресурс события буфера, связанный при необходимости с ресурсом сокета.

Смотрите также

  • EventBufferEvent::sslFilter() - Создаёт новое событие буфера SSL для отправки своих данных через другое событие буфера
  • EventBufferEvent::sslSocket() - Создаёт новое буферное событие SSL для отправки своих данных через SSL в сокет


Создаёт два буферных события, связанных друг с другом

  • « EventBufferEvent::__construct
  • EventBufferEvent::disable »
  • PHP Manual
  • EventBufferEvent
  • Создаёт два буферных события, связанных друг с другом

EventBufferEvent::createPair

(PECL event >= 1.2.6-beta)

EventBufferEvent::createPair — Создаёт два буферных события, связанных друг с другом

Описание

public static EventBufferEvent::createPair( EventBase $base , int $options = 0 ): array

Возвращает массив из двух объектов EventBufferEvent, связанных друг с другом. Поддерживаются все обычные параметры, за исключением EventBufferEvent::OPT_CLOSE_ON_FREE, который не действует, и EventBufferEvent::OPT_DEFER_CALLBACKS, который всегда включён.

Список параметров

base

Связанная база событий.

options

Константы EventBufferEvent::OPT_* в сочетании с побитовым ИЛИ (OR).

Возвращаемые значения

Возвращает массив из двух объектов EventBufferEvent, связанных друг с другом.

Список изменений

Версия | Описание
PECL event 1.9.0 | Метод стал статическим.


Отключает чтение, запись или и то, и другое в событии буфера

  • « EventBufferEvent::createPair
  • EventBufferEvent::enable »
  • PHP Manual
  • EventBufferEvent
  • Отключает чтение, запись или и то, и другое в событии буфера

EventBufferEvent::disable

(PECL event >= 1.2.6-beta)

EventBufferEvent::disable — Отключает чтение, запись или и то, и другое в событии буфера

Описание

public EventBufferEvent::disable( int $events ): bool

Отключает события Event::READ, Event::WRITE, или Event::READ | Event::WRITE в событии буфера.

Список параметров

events

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • EventBufferEvent::enable() - Включает чтение, запись или и то, и другое в событии буфера


Включает чтение, запись или и то, и другое в событии буфера

  • « EventBufferEvent::disable
  • EventBufferEvent::free »
  • PHP Manual
  • EventBufferEvent
  • Включает чтение, запись или и то, и другое в событии буфера

EventBufferEvent::enable

(PECL event >= 1.2.6-beta)

EventBufferEvent::enable — Включает чтение, запись или и то, и другое в событии буфера

Описание

public EventBufferEvent::enable( int $events ): bool

Включает события Event::READ, Event::WRITE, или Event::READ | Event::WRITE в событии буфера.

Список параметров

events

Event::READ, Event::WRITE, или Event::READ | Event::WRITE в событии буфера.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • EventBufferEvent::disable() - Отключает чтение, запись или и то, и другое в событии буфера


Освобождает событие буфера

  • « EventBufferEvent::enable
  • EventBufferEvent::getDnsErrorString »
  • PHP Manual
  • EventBufferEvent
  • Освобождает событие буфера

EventBufferEvent::free

(PECL event >= 1.2.6-beta)

EventBufferEvent::free — Освобождает событие буфера

Описание

public EventBufferEvent::free(): void

Освобождает ресурсы, выделенные буферным событием.

Обычно нет необходимости вызывать этот метод, поскольку обычно это делается во внутренних деструкторах объекта. Однако иногда скрипты выполняются долго и создают множество экземпляров, а иногда интенсивно используют память, поэтому необходимо как можно скорее освободить ресурсы. В таких случаях EventBufferEvent::free() может использоваться для защиты скрипта от достижения memory_limit.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Возвращает строку, описывающую последнюю неудачную попытку поиска DNS

  • « EventBufferEvent::free
  • EventBufferEvent::getEnabled »
  • PHP Manual
  • EventBufferEvent
  • Возвращает строку, описывающую последнюю неудачную попытку поиска DNS

EventBufferEvent::getDnsErrorString

(PECL event >= 1.2.6-beta)

EventBufferEvent::getDnsErrorString — Возвращает строку, описывающую последнюю неудачную попытку поиска DNS

Описание

public EventBufferEvent::getDnsErrorString(): string

Возвращает строку, описывающую последнюю неудачную попытку поиска DNS, сделанную EventBufferEvent::connectHost(), или пустую строку, если ошибка DNS не обнаружена.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, описывающую ошибку поиска DNS, или пустую строку, если ошибки не произошло.

Смотрите также

  • EventBufferEvent::connectHost() - Подключается по имени хоста с возможностью асинхронного разрешения DNS


Возвращает битовую маску событий, которые в данный момент активированы для буферного события

  • « EventBufferEvent::getDnsErrorString
  • EventBufferEvent::getInput »
  • PHP Manual
  • EventBufferEvent
  • Возвращает битовую маску событий, которые в данный момент активированы для буферного события

EventBufferEvent::getEnabled

(PECL event >= 1.2.6-beta)

EventBufferEvent::getEnabled — Возвращает битовую маску событий, которые в данный момент активированы для буферного события

Описание

public EventBufferEvent::getEnabled(): int

Возвращает битовую маску событий, которые в данный момент активированы для буферного события.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число, представляющее битовую маску событий, которые в данный момент активированы для буферного события.

Смотрите также

  • EventBufferEvent::enable() - Включает чтение, запись или и то, и другое в событии буфера
  • EventBufferEvent::disable() - Отключает чтение, запись или и то, и другое в событии буфера


Возвращает базовый входной буфер, связанный с текущим буферным событием

  • « EventBufferEvent::getEnabled
  • EventBufferEvent::getOutput »
  • PHP Manual
  • EventBufferEvent
  • Возвращает базовый входной буфер, связанный с текущим буферным событием

EventBufferEvent::getInput

(PECL event >= 1.2.6-beta)

EventBufferEvent::getInput — Возвращает базовый входной буфер, связанный с текущим буферным событием

Описание

public EventBufferEvent::getInput(): EventBuffer

Возвращает базовый входной буфер, связанный с текущим буферным событием. Входной буфер - это хранилище данных для чтения.

Обратите внимание, что есть также input свойство класса EventBufferEvent.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр класса EventBuffer входного буфера, связанного с текущим буферным событием.

Примеры

Пример #1 Callback-функция чтения буфера

<?php
function readcb($bev, $base) {
$input = $bev->input; //$bev->getInput();

while (($n = $input->remove($buf, 1024)) > 0) {
echo $buf;
}
}
?>

Смотрите также

  • EventBufferEvent::getOutput() - Возвращает базовый выходной буфер, связанный с текущим буферным событием


Возвращает базовый выходной буфер, связанный с текущим буферным событием

  • « EventBufferEvent::getInput
  • EventBufferEvent::read »
  • PHP Manual
  • EventBufferEvent
  • Возвращает базовый выходной буфер, связанный с текущим буферным событием

EventBufferEvent::getOutput

(PECL event >= 1.2.6-beta)

EventBufferEvent::getOutput — Возвращает базовый выходной буфер, связанный с текущим буферным событием

Описание

public EventBufferEvent::getOutput(): EventBuffer

Возвращает базовый выходной буфер, связанный с текущим буферным событием. Выходной буфер является хранилищем данных для записи.

Обратите внимание, что есть также output свойство класса EventBufferEvent.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр EventBuffer выходного буфера, связанного с текущим буферным событием.

Примеры

Пример #1 Пример использования EventBufferEvent::getOutput()

<?php
$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // Использовать асинхронное разрешение DNS
if (!$dns_base) {
exit("Не удалось инициализировать базу DNS\n");
}

$bev = new EventBufferEvent($base, /* использовать внутренний сокет */ NULL,
EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
"readcb", /* writecb */ NULL, "eventcb", $base
);
if (!$bev) {
exit("Не удалось создать сокет bufferevent\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("Не удалось добавить запрос в выходной буфер\n");
}

/* ... */
?>

Смотрите также

  • EventBufferEvent::getInput() - Возвращает базовый входной буфер, связанный с текущим буферным событием


Читает данные буфера

  • « EventBufferEvent::getOutput
  • EventBufferEvent::readBuffer »
  • PHP Manual
  • EventBufferEvent
  • Читает данные буфера

EventBufferEvent::read

(PECL event >= 1.2.6-beta)

EventBufferEvent::read — Читает данные буфера

Описание

public EventBufferEvent::read( int $size ): string

Удаляет до size байтов из входного буфера. Возвращает строку данных, прочитанную из входного буфера.

Список параметров

size

Максимальное количество байтов для чтения

Возвращаемые значения

Возвращает строку данных, прочитанную из входного буфера.

Смотрите также

  • EventBufferEvent::readBuffer() - Сливает все содержимое буфера ввода и помещает его в буфер


Сливает все содержимое буфера ввода и помещает его в буфер

  • « EventBufferEvent::read
  • EventBufferEvent::setCallbacks »
  • PHP Manual
  • EventBufferEvent
  • Сливает все содержимое буфера ввода и помещает его в буфер

EventBufferEvent::readBuffer

(PECL event >= 1.2.6-beta)

EventBufferEvent::readBuffer — Сливает все содержимое буфера ввода и помещает его в буфер

Описание

public EventBufferEvent::readBuffer( EventBuffer $buf ): bool

Сливает все содержимое буфера ввода и помещает его в buf .

Список параметров

buf

Целевой буфер

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • EventBufferEvent::read() - Читает данные буфера


Назначает callback-функции для чтения, записи и события (состояния)

  • « EventBufferEvent::readBuffer
  • EventBufferEvent::setPriority »
  • PHP Manual
  • EventBufferEvent
  • Назначает callback-функции для чтения, записи и события (состояния)

EventBufferEvent::setCallbacks

(PECL event >= 1.2.6-beta)

EventBufferEvent::setCallbacks — Назначает callback-функции для чтения, записи и события (состояния)

Описание

public EventBufferEvent::setCallbacks(
callable $readcb ,
callable $writecb ,
callable $eventcb ,
mixed $arg = ?
): void

Назначает callback-функции для чтения, записи и события (состояния).

Список параметров

readcb

Callback-функция чтения. Смотрите подробнее О callback-функциях буферов .

writecb

Callback-функция записи. Смотрите подробнее О callback-функциях буферов .

eventcb

Callback-функция события изменения статуса. Смотрите подробнее О callback-функциях буферов .

arg

Переменная, которая будет передана всем callback-функциям.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • EventBufferEvent::__construct() - Создаёт объект EventBufferEvent


Присваивает приоритет bufferevent

  • « EventBufferEvent::setCallbacks
  • EventBufferEvent::setTimeouts »
  • PHP Manual
  • EventBufferEvent
  • Присваивает приоритет bufferevent

EventBufferEvent::setPriority

(PECL event >= 1.2.6-beta)

EventBufferEvent::setPriority — Присваивает приоритет bufferevent

Описание

public EventBufferEvent::setPriority( int $priority ): bool

Присваивает приоритет bufferevent

Внимание

Поддерживается только для событий буфера сокета

Список параметров

priority

Значение приоритета.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Устанавливает время ожидания чтения и записи для события буфера

  • « EventBufferEvent::setPriority
  • EventBufferEvent::setWatermark »
  • PHP Manual
  • EventBufferEvent
  • Устанавливает время ожидания чтения и записи для события буфера

EventBufferEvent::setTimeouts

(PECL event >= 1.2.6-beta)

EventBufferEvent::setTimeouts — Устанавливает время ожидания чтения и записи для события буфера

Описание

public EventBufferEvent::setTimeouts( float $timeout_read , float $timeout_write ): bool

Устанавливает время ожидания чтения и записи для события буфер

Список параметров

timeout_read

Время ожидания чтения

timeout_write

Время ожидания записи

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Регулирует водяные знаки чтения и/или записи

  • « EventBufferEvent::setTimeouts
  • EventBufferEvent::sslError »
  • PHP Manual
  • EventBufferEvent
  • Регулирует водяные знаки чтения и/или записи

EventBufferEvent::setWatermark

(PECL event >= 1.2.6-beta)

EventBufferEvent::setWatermark — Регулирует водяные знаки чтения и/или записи

Описание

public EventBufferEvent::setWatermark( int $events , int $lowmark , int $highmark ): void

Регулирует водяные знаки чтения, водяные знаки записи или и то, и другое для одного события буфера.

Водяной знак события буфера - это значение, определяющее количество байтов, которые должны быть прочитаны или записаны перед вызовом callback-функции. По умолчанию каждое событие чтения/записи запускает вызов callback-функции. Обратитесь к » Fast portable non-blocking network programming with Libevent: Callbacks and watermarks.

Список параметров

events

Битовая маска Event::READ, Event::WRITE или обоих.

lowmark

Минимальное значение водяного знака.

highmark

Максимальное значение водяного знака. 0 означает "без ограничений".

Возвращаемые значения

Функция не возвращает значения после выполнения.


Возвращает последнюю ошибку OpenSSL, сообщённую буферному событию

  • « EventBufferEvent::setWatermark
  • EventBufferEvent::sslFilter »
  • PHP Manual
  • EventBufferEvent
  • Возвращает последнюю ошибку OpenSSL, сообщённую буферному событию

EventBufferEvent::sslError

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslError — Возвращает последнюю ошибку OpenSSL, сообщённую буферному событию

Описание

public EventBufferEvent::sslError(): 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


Создаёт новое событие буфера SSL для отправки своих данных через другое событие буфера

  • « EventBufferEvent::sslError
  • EventBufferEvent::sslGetCipherInfo »
  • PHP Manual
  • EventBufferEvent
  • Создаёт новое событие буфера SSL для отправки своих данных через другое событие буфера

EventBufferEvent::sslFilter

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslFilter — Создаёт новое событие буфера SSL для отправки своих данных через другое событие буфера

Описание

public static EventBufferEvent::sslFilter(
EventBase $base ,
EventBufferEvent $underlying ,
EventSslContext $ctx ,
int $state ,
int $options = 0
): EventBufferEvent

Создаёт новое событие буфера SSL для отправки своих данных через другое событие буфера

Замечание:

Функция доступна только в том случае, если Event скомпилирован с поддержкой OpenSSL.

Список параметров

base

Связанная база событий.

underlying

Событие буфера сокета, чтобы использовать для этого SSL.

ctx

Объект класса EventSslContext.

state

Текущее состояние SSL-соединения: EventBufferEvent::SSL_OPEN , EventBufferEvent::SSL_ACCEPTING или EventBufferEvent::SSL_CONNECTING .

options

Один или несколько параметров буфера.

Возвращаемые значения

Возвращает новый SSL EventBufferEvent объект.

Примеры

Пример #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(): 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(): 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(): 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(): 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

Сообщает буферному событию начать пересмотр 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() - Создаёт новое событие буфера SSL для отправки своих данных через другое событие буфера


Добавляет данные в буфер вывода буферного события

  • « 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 class EventConfig {
/* Константы */
const int FEATURE_ET = 1;
const int FEATURE_O1 = 2;
const int FEATURE_FDS = 4;
/* Методы */
public avoidMethod( string $method ): bool
public __construct()
public requireFeatures( int $feature ): bool
public setFlags( int $flags ): 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::setFlags — Устанавливает один или несколько флагов для настройки возможной инициализации EventBase
  • 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()

Создаёт объект 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::setFlags »
  • PHP Manual
  • EventConfig
  • Ввести требуемые приложением свойства метода события

EventConfig::requireFeatures

(PECL event >= 1.2.6-beta)

EventConfig::requireFeatures — Ввести требуемые приложением свойства метода события

Описание

public EventConfig::requireFeatures( int $feature ): bool

Вводит требуемую приложением функциональность метода события

Список параметров

feature

Битовая маска требуемых свойств. Смотрите константы EventConfig::FEATURE_*

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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() - Возвращает битовую маску поддерживаемых функций


Устанавливает один или несколько флагов для настройки возможной инициализации EventBase

  • « EventConfig::requireFeatures
  • EventConfig::setMaxDispatchInterval »
  • PHP Manual
  • EventConfig
  • Устанавливает один или несколько флагов для настройки возможной инициализации EventBase

EventConfig::setFlags

(PECL event >= 2.0.2-alpha)

EventConfig::setFlags — Устанавливает один или несколько флагов для настройки возможной инициализации EventBase

Описание

public EventConfig::setFlags( int $flags ): bool

Устанавливает один или несколько флагов для настройки того, какие части возможной EventBase будут инициализированы и как они будут работать.

Список параметров

flags

Одна из констант EventBase::LOOP_*. Смотрите константы EventBase.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • EventBase::getFeatures() - Возвращает битовую маску поддерживаемых функций


Предотвратить инверсию приоритетов

  • « EventConfig::setFlags
  • EventDnsBase »
  • PHP Manual
  • EventConfig
  • Предотвратить инверсию приоритетов

EventConfig::setMaxDispatchInterval

(PECL event >= 2.1.0-alpha)

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 class EventDnsBase {
/* Константы */
const int OPTION_SEARCH = 1;
const int OPTION_NAMESERVERS = 2;
const int OPTION_MISC = 4;
const int OPTION_HOSTSFILE = 8;
const int OPTIONS_ALL = 15;
/* Методы */
public addNameserverIp( string $ip ): bool
public addSearch( string $domain ): void
public clearSearch(): void
public __construct( EventBase $base , bool $initialize )
public countNameservers(): 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

Удаляет все текущие суффиксы поиска из базы 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(): 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 class 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.

Список изменений

Версия | Описание
PECL event 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-соединение.

Обзор классов

class EventHttpConnection {
/* Методы */
public __construct(
EventBase $base ,
EventDnsBase $dns_base ,
string $address ,
int $port ,
EventSslContext $ctx = null
)
public getBase(): 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.

Список изменений

Версия | Описание
PECL event 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(): 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-запрос.

Обзор классов

class EventHttpRequest {
/* Константы */
const int CMD_GET = 1;
const int CMD_POST = 2;
const int CMD_HEAD = 4;
const int CMD_PUT = 8;
const int CMD_DELETE = 16;
const int CMD_OPTIONS = 32;
const int CMD_TRACE = 64;
const int CMD_CONNECT = 128;
const int CMD_PATCH = 256;
const int INPUT_HEADER = 1;
const int OUTPUT_HEADER = 2;
/* Методы */
public addHeader( string $key , string $value , int $type ): bool
public cancel(): void
public clearHeaders(): void
public closeConnection(): void
public __construct( callable $callback , mixed $data = null )
public findHeader( string $key , string $type ): void
public free(): void
public closeConnection(): EventBufferEvent
public getCommand(): void
public closeConnection(): EventHttpConnection
public getHost(): string
public getInputBuffer(): EventBuffer
public getInputHeaders(): array
public getOutputBuffer(): EventBuffer
public getOutputHeaders(): void
public getResponseCode(): int
public getUri(): 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
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

Отменяет ожидающий 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

Удаляет все выходные заголовки из списка заголовков запроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • 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

Закрывает связанное 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

Освобождает объект и удаляет связанные события.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Возвращает объект EventBufferEvent

  • « EventHttpRequest::free
  • EventHttpRequest::getCommand »
  • PHP Manual
  • EventHttpRequest
  • Возвращает объект EventBufferEvent

EventHttpRequest::getBufferEvent

(PECL event >= 1.8.0)

EventHttpRequest::getBufferEvent — Возвращает объект EventBufferEvent

Описание

public EventHttpRequest::closeConnection(): 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

Возвращает команду запроса, одну из констант 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(): 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(): 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(): EventBuffer

Возвращает входной буфер.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает входной буфер.

Смотрите также

  • EventHttpRequest::getOutputBuffer() - Возвращает выходной буфер запроса


Возвращает ассоциативный массив входных заголовков

  • « EventHttpRequest::getInputBuffer
  • EventHttpRequest::getOutputBuffer »
  • PHP Manual
  • EventHttpRequest
  • Возвращает ассоциативный массив входных заголовков

EventHttpRequest::getInputHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::getInputHeaders — Возвращает ассоциативный массив входных заголовков

Описание

public EventHttpRequest::getInputHeaders(): array

Возвращает ассоциативный массив входных заголовков.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив входных заголовков.

Смотрите также

  • EventHttpRequest::getOutputHeaders() - Возвращает ассоциативный массив выходных заголовков


Возвращает выходной буфер запроса

  • « EventHttpRequest::getInputHeaders
  • EventHttpRequest::getOutputHeaders »
  • PHP Manual
  • EventHttpRequest
  • Возвращает выходной буфер запроса

EventHttpRequest::getOutputBuffer

(PECL event >= 1.4.0-beta)

EventHttpRequest::getOutputBuffer — Возвращает выходной буфер запроса

Описание

public EventHttpRequest::getOutputBuffer(): EventBuffer

Возвращает выходной буфер запроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает выходной буфер запроса.

Смотрите также

  • EventHttpRequest::getInputBuffer() - Возвращает входной буфер


Возвращает ассоциативный массив выходных заголовков

  • « EventHttpRequest::getOutputBuffer
  • EventHttpRequest::getResponseCode »
  • PHP Manual
  • EventHttpRequest
  • Возвращает ассоциативный массив выходных заголовков

EventHttpRequest::getOutputHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::getOutputHeaders — Возвращает ассоциативный массив выходных заголовков

Описание

public EventHttpRequest::getOutputHeaders(): void

Возвращает ассоциативный массив выходных заголовков.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • EventHttpRequest::getInputHeaders() - Возвращает ассоциативный массив входных заголовков


Возвращает код ответа

  • « EventHttpRequest::getOutputHeaders
  • EventHttpRequest::getUri »
  • PHP Manual
  • EventHttpRequest
  • Возвращает код ответа

EventHttpRequest::getResponseCode

(PECL event >= 1.4.0-beta)

EventHttpRequest::getResponseCode — Возвращает код ответа

Описание

public EventHttpRequest::getResponseCode(): 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(): 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

Заполняет фрагментарный ответ, освобождая запрос соответствующим образом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • 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 class EventListener {
/* Константы */
const int OPT_LEAVE_SOCKETS_BLOCKING = 1;
const int OPT_CLOSE_ON_FREE = 2;
const int OPT_CLOSE_ON_EXEC = 4;
const int OPT_REUSEABLE = 8;
const int OPT_THREADSAFE = 16;
/* Свойства */
public readonly int $fd;
/* Методы */
public __construct(
EventBase $base ,
callable $cb ,
mixed $data ,
int $flags ,
int $backlog ,
mixed $target
)
public disable(): bool
public enable(): bool
public getBase(): 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, представляющий слушатель события соединения.

Список изменений

Версия | Описание
PECL event 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(): 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(): 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

Возвращает базу событий, связанную со слушателем событий.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает базу событий, связанную со слушателем событий.


Получает текущий адрес, к которому привязан сокет слушателя

  • « 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 class EventSslContext {
/* Константы */
const int SSLv2_CLIENT_METHOD = 1;
const int SSLv3_CLIENT_METHOD = 2;
const int SSLv23_CLIENT_METHOD = 3;
const int TLS_CLIENT_METHOD = 4;
const int SSLv2_SERVER_METHOD = 5;
const int SSLv3_SERVER_METHOD = 6;
const int SSLv23_SERVER_METHOD = 7;
const int TLS_SERVER_METHOD = 8;
const int OPT_LOCAL_CERT = 1;
const int OPT_LOCAL_PK = 2;
const int OPT_PASSPHRASE = 3;
const int OPT_CA_FILE = 4;
const int OPT_CA_PATH = 5;
const int OPT_ALLOW_SELF_SIGNED = 6;
const int OPT_VERIFY_PEER = 7;
const int OPT_VERIFY_DEPTH = 8;
const int 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 class EventUtil {
/* Константы */
const int AF_INET = 2;
const int AF_INET6 = 10;
const int AF_UNSPEC = 0;
const int LIBEVENT_VERSION_NUMBER = 33559808;
const int SO_DEBUG = 1;
const int SO_REUSEADDR = 2;
const int SO_KEEPALIVE = 9;
const int SO_DONTROUTE = 5;
const int SO_LINGER = 13;
const int SO_BROADCAST = 6;
const int SO_OOBINLINE = 10;
const int SO_SNDBUF = 7;
const int SO_RCVBUF = 8;
const int SO_SNDLOWAT = 19;
const int SO_RCVLOWAT = 18;
const int SO_SNDTIMEO = 21;
const int SO_RCVTIMEO = 20;
const int SO_TYPE = 3;
const int SO_ERROR = 4;
const int SOL_SOCKET = 1;
const int SOL_TCP = 6;
const int SOL_UDP = 17;
const int IPPROTO_IP = 0;
const int IPPROTO_IPV6 = 41;
/* Методы */
abstract public __construct()
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
}

Предопределённые константы

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()

Класс 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
  • FTP »
  • PHP Manual
  • EventUtil
  • Сгенерировать энтропию с помощью RAND_poll() из OpenSSL

EventUtil::sslRandPoll

(PECL event >= 1.2.6-beta)

EventUtil::sslRandPoll — Сгенерировать энтропию с помощью RAND_poll() из OpenSSL

Описание

public static EventUtil::sslRandPoll(): void

Генерирует энтропию с помощью RAND_poll() из OpenSSL. (смотрите соответствующую документацию).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


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\Connection — Класс FTP\Connection


Введение

Функции этого модуля обеспечивают доступ к серверам по протоколу FTP (File Transfer Protocol), определённому в » http://www.faqs.org/rfcs/rfc959. Модуль позволяет выполнять множество довольно сложных операций. Если требуется лишь прочитать или записать файл на сервере FTP, можно воспользоваться ftp:// обёрткой и функциями для работы с файловой системой, которые более просты в использовании.


Установка

Для использования FTP функций вы должны указать директиву --enable-ftp во время установки PHP.

Для Windows модуль всегда собран как разделяемый (shared) и должен быть включён в php.ini.


Типы ресурсов

До PHP 8.1.0, модуль использовал один тип ресурса - идентификатор соединения с FTP-сервером, возвращаемый функцией ftp_connect() или ftp_ssl_connect().


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

FTP_ASCII (int)

FTP_AUTOSEEK (int)

Смотрите описание функции ftp_set_option().

FTP_AUTORESUME (int)

Автоматическое определение позиции старта и возобновления запросов PUT и GET (работает только если разрешён FTP_AUTOSEEK)

FTP_FAILED (int)

Асинхронная передача не удалась.

FTP_FINISHED (int)

Асинхронная передача завершена.

FTP_MOREDATA (int)

Асинхронная передача всё ещё активна.

FTP_TEXT (int)

Синоним для FTP_ASCII

FTP_BINARY (int)

FTP_IMAGE (int)

Синоним для FTP_BINARY.

FTP_TIMEOUT_SEC (int)

Смотрите описание функции ftp_set_option().

FTP_USEPASVADDRESS (int)

Смотрите описание к функции ftp_set_option() для получения информации.


  • « Предопределённые константы
  • Простое использование »
  • PHP Manual
  • FTP
  • Примеры

Примеры

Содержание

  • Простое использование


Простое использование

Пример #1 Пример использования FTP-функций

<?php
// установка соединения
$ftp = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// проверка соединения
if ((!$ftp) || (!$login_result)) {
echo "Не удалось установить соединение с FTP-сервером!";
echo "Попытка подключения к серверу $ftp_server была произведена под именем $ftp_user_name";
exit;
} else {
echo "Установлено соединение с FTP сервером $ftp_server под именем $ftp_user_name";
}

// закачивание файла
$upload = ftp_put($ftp, $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, PHP 8)

ftp_alloc — Резервирует место на диске для закачиваемого файла

Описание

ftp_alloc(FTP\Connection $ftp, int $size, string &$response = null): bool

Посылает команду ALLO FTP-серверу для резервирования места под загружаемый файл.

Замечание:

Многие FTP-серверы не поддерживают эту команду. Такие серверы возвращают код неудачи (false), что означает отсутствие поддержки этой команды, или код успешного выполнения (true), означающий, что в резервировании нет необходимости и клиенту следует продолжать, будто операция была выполнена успешно. По этой причине эту функцию следует использовать с серверами, которые требуют обязательного резервирования.

Список параметров

ftp

An FTP\Connection instance.

size

Количество резервируемых байт.

response

Текстовое представление ответа сервера будет возвращено по ссылке в аргумент response, если он указан.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_alloc()

<?php

$file = "/home/user/myfile";

/* соединение с сервером */
$ftp = ftp_connect('ftp.example.com');
$login_result = ftp_login($ftp, 'anonymous', 'user@example.com');

if (ftp_alloc($ftp, filesize($file), $result)) {
echo "Место на сервере успешно зарезервировано. Отправляю $file.\n";
ftp_put($conn_id, '/incoming/myfile', $file, FTP_BINARY);
} else {
echo "Не удалось зарезервировать место на сервере. Ответ сервера: $result\n";
}

ftp_close($ftp);

?>

Смотрите также

  • ftp_put() - Загружает файл на FTP-сервер
  • ftp_fput() - Загружает предварительно открытый файл на FTP-сервер


Добавляет содержимое файла в конец другого файла на FTP-сервере

  • « ftp_alloc
  • ftp_cdup »
  • PHP Manual
  • Функции FTP
  • Добавляет содержимое файла в конец другого файла на FTP-сервере

ftp_append

(PHP 7 >= 7.2.0, PHP 8)

ftp_append — Добавляет содержимое файла в конец другого файла на FTP-сервере

Описание

ftp_append(
FTP\Connection $ftp,
string $remote_filename,
string $local_filename,
int $mode = FTP_BINARY
): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ftp

An FTP\Connection instance.

remote_filename

local_filename

mode

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).


Переходит в родительскую директорию

  • « ftp_append
  • ftp_chdir »
  • PHP Manual
  • Функции FTP
  • Переходит в родительскую директорию

ftp_cdup

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_cdup — Переходит в родительскую директорию

Описание

ftp_cdup(FTP\Connection $ftp): bool

Переходит в родительскую директорию.

Список параметров

ftp

An FTP\Connection instance.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования функции ftp_cdup()

<?php
// установка соединения
$ftp = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// изменение текущей директории на html
ftp_chdir($ftp, 'html');

echo ftp_pwd($ftp); // /html

// возврат в родительскую директорию
if (ftp_cdup($ftp)) {
echo "команда cdup выполнена успешно\n";
} else {
echo "команда cdup завершилась неудачей\n";
}

echo ftp_pwd($ftp); // /

ftp_close($ftp);
?>

Смотрите также

  • ftp_chdir() - Изменяет текущую директорию на FTP-сервере
  • ftp_pwd() - Возвращает имя текущей директории


Изменяет текущую директорию на FTP-сервере

  • « ftp_cdup
  • ftp_chmod »
  • PHP Manual
  • Функции FTP
  • Изменяет текущую директорию на FTP-сервере

ftp_chdir

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_chdir — Изменяет текущую директорию на FTP-сервере

Описание

ftp_chdir(FTP\Connection $ftp, string $directory): bool

Меняет текущую директорию на заданную аргументом.

Список параметров

ftp

An FTP\Connection instance.

directory

Целевая директория.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Если изменение директории завершилось неудачей, PHP вызовет предупреждение.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_chdir()

<?php

// установка соединения
$ftp = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// проверка соединения
if ((!$ftp) || (!$login_result)) {
die("Не удалось подключиться к FTP-серверу!");
}

echo "Текущая директория: " . ftp_pwd($ftp) . "\n";

// пытаемся сменить текущую директорию на somedir
if (ftp_chdir($ftp, "somedir")) {
echo "Новая текущая директория: " . ftp_pwd($ftp) . "\n";
} else {
echo "Не удалось сменить директорию\n";
}

// закрытие соединения
ftp_close($ftp);
?>

Смотрите также

  • ftp_cdup() - Переходит в родительскую директорию
  • ftp_pwd() - Возвращает имя текущей директории


Устанавливает права доступа к файлу

  • « ftp_chdir
  • ftp_close »
  • PHP Manual
  • Функции FTP
  • Устанавливает права доступа к файлу

ftp_chmod

(PHP 5, PHP 7, PHP 8)

ftp_chmod — Устанавливает права доступа к файлу

Описание

ftp_chmod(FTP\Connection $ftp, int $permissions, string $filename): int|false

Устанавливает права доступа к указанному удалённому файлу в значение permissions.

Список параметров

ftp

An FTP\Connection instance.

permissions

Новые права доступа, указанные в виде восьмеричного значения.

filename

Удалённый файл.

Возвращаемые значения

Возвращает новые права доступа к файлу в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_chmod()

<?php
$file = 'public_html/index.php';

// установка соединения
$ftp = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// попытка изменить права доступа к файлу $file на 644
if (ftp_chmod($ftp, 0644, $file) !== false) {
echo "Права доступа к файлу $file успешно изменены на 644\n";
} else {
echo "Не удалось изменить права доступа к файлу $file\n";
}

// закрытие соединения
ftp_close($ftp);
?>

Смотрите также

  • chmod() - Изменяет режим доступа к файлу


Закрывает соединение с FTP-сервером

  • « ftp_chmod
  • ftp_connect »
  • PHP Manual
  • Функции FTP
  • Закрывает соединение с FTP-сервером

ftp_close

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ftp_close — Закрывает соединение с FTP-сервером

Описание

ftp_close(FTP\Connection $ftp): bool

ftp_close() закрывает указанный идентификатор соединения с сервером и освобождает resource.

Замечание:

После вызова этой функции, соединение больше не может быть использовано, и при необходимости должно быть установлено заново при помощи функции ftp_connect().

Список параметров

ftp

An FTP\Connection instance.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_close()

<?php

// установка соединения
$ftp = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// вывод текущей директории
echo ftp_pwd($ftp); // /

// закрытие соединения
ftp_close($ftp);
?>

Смотрите также

  • ftp_connect() - Устанавливает соединение с FTP-сервером


Устанавливает соединение с FTP-сервером

  • « ftp_close
  • ftp_delete »
  • PHP Manual
  • Функции FTP
  • Устанавливает соединение с FTP-сервером

ftp_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_connect — Устанавливает соединение с FTP-сервером

Описание

ftp_connect(string $hostname, int $port = 21, int $timeout = 90): FTP\Connection|false

ftp_connect() устанавливает FTP-соединение с указанным сервером hostname.

Список параметров

hostname

Адрес FTP-сервера. Этот аргумент не должен содержать слешей в конце и префикса ftp:// в начале.

port

Этот аргумент указывает альтернативный порт для подключения. Если он опущен или установлен в ноль, то будет использован FTP порт по умолчанию - 21.

timeout

Этот аргумент указывает время ожидания в секундах для всех последующих сетевых операций. Если опущен, используется значение по умолчанию - 90 секунд. Время ожидания может быть изменено и получено в любой момент при помощи функций ftp_set_option() и ftp_get_option() соответственно.

Возвращаемые значения

Возвращает FTP\Connection в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр FTP\Connection; ранее возвращался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_connect()

<?php

$ftp_server = "ftp.example.com";

// устанавливает соединение или выходит
$ftp = 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, PHP 8)

ftp_delete — Удаляет файл на FTP-сервере

Описание

ftp_delete(FTP\Connection $ftp, string $filename): bool

ftp_delete() удаляет файл, заданный аргументом filename, с FTP-сервера.

Список параметров

ftp

An FTP\Connection instance.

filename

Удаляемый файл.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_delete()

<?php
$file = 'public_html/old.txt';

// установка соединения
$ftp = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// попытка удалить файл
if (ftp_delete($ftp, $file)) {
echo "Файл $file удалён\n";
} else {
echo "Не удалось удалить $file\n";
}

// закрытие соединения
ftp_close($ftp);
?>


Запрашивает выполнение команды на FTP-сервере

  • « ftp_delete
  • ftp_fget »
  • PHP Manual
  • Функции FTP
  • Запрашивает выполнение команды на FTP-сервере

ftp_exec

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

ftp_exec — Запрашивает выполнение команды на FTP-сервере

Описание

ftp_exec(FTP\Connection $ftp, string $command): bool

Посылает команду SITE EXEC command на FTP-сервер.

Список параметров

ftp

An FTP\Connection instance.

command

Команда для выполнения.

Возвращаемые значения

Возвращает true в случае успешного выполнения команды (сервер отправляет код ответа: 200); в противном случае возвращает false.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_exec()

<?php
// инициализация переменных
$command = 'ls -al >files.txt';

// устанавливаем соединение
$ftp = ftp_connect($ftp_server);

// вход с именем пользователя и пароля
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// выполняем команду
if (ftp_exec($ftp, $command)) {
echo "Команда $command выполнена успешно\n";
} else {
echo "Не удалось выполнить $command\n";
}

// закрываем соединение
ftp_close($ftp);

?>

Смотрите также

  • ftp_raw() - Отправляет произвольную команду FTP-серверу


Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле

  • « ftp_exec
  • ftp_fput »
  • PHP Manual
  • Функции FTP
  • Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле

ftp_fget

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_fget — Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле

Описание

ftp_fget(
FTP\Connection $ftp,
resource $stream,
string $remote_filename,
int $mode = FTP_BINARY,
int $offset = 0
): bool

ftp_fget() загружает файл remote_filename с FTP-сервера и записывает его в переданный файловый дескриптор.

Список параметров

ftp

An FTP\Connection instance.

stream

Открытый файловый дескриптор, в который будут сохранены данные.

remote_filename

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

offset

Позиция начала загрузки в удалённом файле.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #1 Пример использования ftp_fget()

<?php

// путь к удалённому файлу
$remote_file = 'somefile.txt';
$local_file = 'localfile.txt';

// открываем файл для записи
$handle = fopen($local_file, 'w');

// установка соединения
$ftp = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// пытаемся скачать файл и сохранить его в $handle
if (ftp_fget($ftp, $handle, $remote_file, FTP_ASCII, 0)) {
echo "Произведена запись в $local_file\n";
} else {
echo "При скачивании $remote_file в $local_file произошла проблема\n";
}

// закрытие соединения и локального файла
ftp_close($ftp);
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, PHP 8)

ftp_fput — Загружает предварительно открытый файл на FTP-сервер

Описание

ftp_fput(
FTP\Connection $ftp,
string $remote_filename,
resource $stream,
int $mode = FTP_BINARY,
int $offset = 0
): bool

ftp_fput() загружает данные из файлового дескриптора в удалённый файл на FTP-сервере.

Список параметров

ftp

An FTP\Connection instance.

remote_filename

Путь к удалённому файлу.

stream

Открытый файловый дескриптор локального файла. Чтение прекращается при достижении конца файла.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

offset

Позиция начала загрузки в удалённом файле.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #1 Пример использования ftp_fput()

<?php

// открыть файл для чтения
$file = 'somefile.txt';
$fp = fopen($file, 'r');

// установка соединения
$ftp = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// попытка загрузки файла
if (ftp_fput($ftp, $file, $fp, FTP_ASCII)) {
echo "Файл $file успешно загружен\n";
} else {
echo "При загрузке $file произошла проблема\n";
}

// закрываем соединение и дескриптор файла
ftp_close($ftp);
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, PHP 8)

ftp_get_option — Получает текущие параметры FTP-соединения

Описание

ftp_get_option(FTP\Connection $ftp, int $option): int|bool

Эта функция возвращает значение запрошенной опции option для указанного FTP-соединения.

Список параметров

ftp

An FTP\Connection instance.

option

На текущий момент, поддерживаются следующие опции:

Поддерживаемые текущие опции FTP
FTP_TIMEOUT_SEC | Возвращает текущее время ожидания, используемое в сетевых операциях.
FTP_AUTOSEEK | Возвращает true, если эта опция включена, иначе false.

Возвращаемые значения

Возвращает значение в случае успешного выполнения, или false, если указанная опция option не поддерживается. В последнем случае также вызывается предупреждение.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_get_option()

<?php
// Получаем время ожидания соединения
$timeout = ftp_get_option($ftp, 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, PHP 8)

ftp_get — Скачивает файл с FTP-сервера

Описание

ftp_get(
FTP\Connection $ftp,
string $local_filename,
string $remote_filename,
int $mode = FTP_BINARY,
int $offset = 0
): bool

ftp_get() загружает удалённый файл с FTP-сервера и сохраняет его локально.

Список параметров

ftp

An FTP\Connection instance.

local_filename

Путь к локальному файлу (файл будет перезаписан, если уже существует).

remote_filename

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

offset

Позиция начала загрузки в удалённом файле.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).
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, PHP 8)

ftp_login — Выполняет вход на FTP-сервер

Описание

ftp_login(FTP\Connection $ftp, string $username, string $password): bool

Выполняет вход на FTP сервер.

Список параметров

ftp

An FTP\Connection instance.

username

Имя пользователя (USER).

password

Пароль (PASS).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Если войти на сервер не удалось, PHP выведет предупреждение.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_login()

<?php

$ftp_server = "ftp.example.com";
$ftp_user = "foo";
$ftp_pass = "bar";

// установить соединение или выйти
$ftp = ftp_connect($ftp_server) or die("Не удалось установить соединение с $ftp_server");

// попытка входа
if (@ftp_login($ftp, $ftp_user, $ftp_pass)) {
echo "Произведён вход на $ftp_server под именем $ftp_user\n";
} else {
echo "Не удалось войти под именем $ftp_user\n";
}

// закрыть соединение
ftp_close($ftp);
?>


Возвращает время последней модификации файла

  • « ftp_login
  • ftp_mkdir »
  • PHP Manual
  • Функции FTP
  • Возвращает время последней модификации файла

ftp_mdtm

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_mdtm — Возвращает время последней модификации файла

Описание

ftp_mdtm(FTP\Connection $ftp, string $filename): int

ftp_mdtm() возвращает время последней модификации удалённого файла.

Замечание:

Не все серверы поддерживают эту функцию!

Замечание:

ftp_mdtm() не работает с директориями.

Список параметров

ftp

An FTP\Connection instance.

filename

Файл, время модификации которого надо получить.

Возвращаемые значения

Возвращает время последней модификации виде локальной временной метки Unix или -1 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_mdtm()

<?php

$file = 'somefile.txt';

// установка соединения
$ftp = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// получение времени модификации файла
$buff = ftp_mdtm($ftp, $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($ftp);

?>


Создаёт директорию

  • « ftp_mdtm
  • ftp_mlsd »
  • PHP Manual
  • Функции FTP
  • Создаёт директорию

ftp_mkdir

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_mkdir — Создаёт директорию

Описание

ftp_mkdir(FTP\Connection $ftp, string $directory): string|false

Создаёт директорию directory на FTP-сервере.

Список параметров

ftp

An FTP\Connection instance.

directory

Имя создаваемой директории.

Возвращаемые значения

Возвращает имя только что созданной директории в случае успешного выполнения или false в противном случае.

Ошибки

Выдаёт ошибку уровня E_WARNING, если каталог уже существует или соответствующие права доступа препятствуют созданию каталога.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_mkdir()

<?php

$dir = 'www';

// установка соединения
$ftp = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// попытка создания директории $dir
if (ftp_mkdir($ftp, $dir)) {
echo "Создана директория $dir\n";
} else {
echo "Не удалось создать директорию $dir\n";
}

// закрытие соединения
ftp_close($ftp);
?>

Смотрите также

  • ftp_rmdir() - Удаляет директорию


Возвращает список файлов в заданной директории

  • « ftp_mkdir
  • ftp_nb_continue »
  • PHP Manual
  • Функции FTP
  • Возвращает список файлов в заданной директории

ftp_mlsd

(PHP 7 >= 7.2.0, PHP 8)

ftp_mlsd — Возвращает список файлов в заданной директории

Описание

ftp_mlsd(FTP\Connection $ftp, string $directory): array|false

Список параметров

ftp

An FTP\Connection instance.

directory

Директория, список файлов которой будет возвращён.

Возвращаемые значения

Возвращает массив массивов с информацией о файлах из указанной директории в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_mlsd()

<?php

// установить основное соединение
$ftp = ftp_connect($ftp_server);

// авторизоваться на сервере, используя имя пользователя и пароль
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// получить содержимое текущей директории
$contents = ftp_mlsd($ftp, ".");

// вывод $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, PHP 8)

ftp_nb_continue — Продолжает асинхронную операцию

Описание

ftp_nb_continue(FTP\Connection $ftp): int

Продолжает отправку или получение файла в асинхронном режиме.

Список параметров

ftp

An FTP\Connection instance.

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_nb_continue()

<?php

// Начало скачивания
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Продолжение скачивания ...
$ret = ftp_nb_continue($ftp);
}
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, PHP 8)

ftp_nb_fget — Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в предварительно открытом файле

Описание

ftp_nb_fget(
FTP\Connection $ftp,
resource $stream,
string $remote_filename,
int $mode = FTP_BINARY,
int $offset = 0
): int

ftp_nb_fget() скачивает удалённый файл с FTP-сервера.

Разница между этой функцией и ftp_fget() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл скачивается.

Список параметров

ftp

An FTP\Connection instance.

stream

Открытый файловый дескриптор для сохранения данных.

remote_filename

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

offset

Позиция начала загрузки в удалённом файле.

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #1 Пример использования ftp_nb_fget()

<?php

// открыть файл для записи
$file = 'index.php';
$fp = fopen($file, 'w');

$ftp = ftp_connect($ftp_server);

$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Начало скачивания
$ret = ftp_nb_fget($ftp, $fp, $file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// производим какие-то действия ...
echo ".";

// продолжение скачивания ...
$ret = ftp_nb_continue($ftp);
}
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, PHP 8)

ftp_nb_fput — Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме

Описание

ftp_nb_fput(
FTP\Connection $ftp,
string $remote_filename,
resource $stream,
int $mode = FTP_BINARY,
int $offset = 0
): int

ftp_nb_fput() закачивает данные из дескриптора файла в удалённый файл на FTP-сервере.

Разница между этой функцией и ftp_fput() заключается в том, что эта функция загружает файл асинхронно, так что ваша программа может совершать другие операции, пока файл закачивается.

Список параметров

ftp

An FTP\Connection instance.

remote_filename

Путь к удалённому файлу.

stream

Открытый файловый дескриптор локального файла. Чтение прекращается при достижении конца файла.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

offset

Позиция начала загрузки в удалённом файле.

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #1 Пример использования ftp_nb_fput()

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$ftp = ftp_connect($ftp_server);

$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Начало загрузки
$ret = ftp_nb_fput($ftp, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// производим какие-то действия ...
echo ".";

// продолжение загрузки ...
$ret = ftp_nb_continue($ftp);
}
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, PHP 8)

ftp_nb_get — Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл

Описание

ftp_nb_get(
FTP\Connection $ftp,
string $local_filename,
string $remote_filename,
int $mode = FTP_BINARY,
int $offset = 0
): int|false

ftp_nb_get() скачивает удалённый файл с FTP-сервера и сохраняет его в локальный файл.

Разница между этой функцией и ftp_get() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл скачивается.

Список параметров

ftp

An FTP\Connection instance.

local_filename

Путь к локальному файлу (файл будет перезаписан, если уже существует).

remote_filename

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

offset

Позиция начала загрузки в удалённом файле.

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA или false в случае, если невозможно открыть локальный файл.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #1 Пример использования ftp_nb_get()

<?php

// Начало скачивания
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Производим какие-то действия ...
echo ".";

// Продолжение скачивания ...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "При скачивании файла произошла ошибка...";
exit(1);
}
?>

Пример #2 Возобновление скачивания файла с помощью ftp_nb_get()

<?php

// Начало скачивания
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY,
filesize("test"));
// ИЛИ: $ret = ftp_nb_get($ftp, "test", "README",
// FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

// Производим какие-то действия ...
echo ".";

// Продолжение скачивания ...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "При скачивании файла произошла ошибка...";
exit(1);
}
?>

Пример #3 Скачивание файла начиная с позиции 100 в новый файл с помощью ftp_nb_get()

<?php

// Запрет FTP_AUTOSEEK
ftp_set_option($ftp, FTP_AUTOSEEK, false);

// Начало скачивания
$ret = ftp_nb_get($ftp, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

/* ... */

// Продолжение скачивания ...
$ret = ftp_nb_continue($ftp);
}
?>

В последнем примере, 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, PHP 8)

ftp_nb_put — Загружает файл на FTP-сервер в асинхронном режиме

Описание

ftp_nb_put(
FTP\Connection $ftp,
string $remote_filename,
string $local_filename,
int $mode = FTP_BINARY,
int $offset = 0
): int|false

ftp_nb_put() загружает локальный файл на FTP-сервер.

Отличие этой функции от ftp_put() состоит в том, что загрузка файла происходит в асинхронном режиме, что позволяет программе выполнять другие операции во время загрузки.

Список параметров

ftp

An FTP\Connection instance.

remote_filename

Путь к файлу на сервере.

local_file

Путь к локальному файлу.

mode

Режим передачи. Может принимать значения FTP_ASCII или FTP_BINARY.

offset

Позиция в удалённом файле, в которую начинается загрузка

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA или false в случае невозможности открыть локальный файл.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #1 Пример использования ftp_nb_put()

<?php

// Начало загрузки
$ret = ftp_nb_put($ftp, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Производим какие-то действия ...
echo ".";

// Продолжение загрузки ...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "При загрузке файла произошла ошибка...";
exit(1);
}
?>

Пример #2 Возобновление загрузки файла с помощью ftp_nb_put()

<?php

// Начало загрузки
$ret = ftp_nb_put($ftp, "test.remote", "test.local",
FTP_BINARY, ftp_size("test.remote"));
// ИЛИ: $ret = ftp_nb_put($ftp, "test.remote", "test.local",
// FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

// Производим какие-то действия ...
echo ".";

// Продолжение загрузки ...
$ret = ftp_nb_continue($ftp);
}
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, PHP 8)

ftp_nlist — Возвращает список файлов в заданной директории

Описание

ftp_nlist(FTP\Connection $ftp, string $directory): array|false

Список параметров

ftp

An FTP\Connection instance.

directory

Имя директории для получения списка файлов. Этот параметр также может включать аргументы, например ftp_nlist($conn_id, "-la /your/dir");. Обратите внимание, что этот параметр не проходит экранирование спецсимволов, так что могут возникнуть проблемы с именами, содержащими пробелы и прочие подобные символы.

Возвращаемые значения

Возвращает массив имён файлов в директории или false при возникновении ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_nlist()

<?php

// установка соединения
$ftp = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// получить содержимое текущей директории
$contents = ftp_nlist($v, ".");

// вывод $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, PHP 8)

ftp_pasv — Включает или выключает пассивный режим

Описание

ftp_pasv(FTP\Connection $ftp, bool $enable): bool

ftp_pasv() включает или выключает пассивный режим. В пассивном режиме передача данных инициируется клиентом, а не сервером. Данный режим может понадобиться в случае, если клиент находится за брандмауэром.

Обратите внимание, что ftp_pasv() может быть вызвана только после успешной авторизации, иначе она завершится с ошибкой.

Список параметров

ftp

An FTP\Connection instance.

enable

Если true, пассивный режим будет включён, иначе выключен.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #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, PHP 8)

ftp_put — Загружает файл на FTP-сервер

Описание

ftp_put(
FTP\Connection $ftp,
string $remote_filename,
string $local_filename,
int $mode = FTP_BINARY,
int $offset = 0
): bool

ftp_put() загружает локальный файл на FTP-сервер.

Список параметров

ftp

An FTP\Connection instance.

remote_filename

Путь к файлу на FTP-сервере.

local_filename

Путь к локальному файлу.

mode

Задаёт режим передачи. Может принимать значения FTP_ASCII или FTP_BINARY.

offset

Задаёт позицию в удалённом файле, в которую начнётся загрузка

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).
7.3.0 | Теперь параметр mode опционален. Раньше он был обязательным.

Примеры

Пример #1 Пример использования ftp_put()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// установка соединения
$ftp = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// загрузка файла
if (ftp_put($ftp, $remote_file, $file, FTP_ASCII)) {
echo "$file успешно загружен на сервер\n";
} else {
echo "Не удалось загрузить $file на сервер\n";
}

// закрытие соединения
ftp_close($ftp);
?>

Смотрите также

  • 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, PHP 8)

ftp_pwd — Возвращает имя текущей директории

Описание

ftp_pwd(FTP\Connection $ftp): string|false

Список параметров

ftp

An FTP\Connection instance.

Возвращаемые значения

Возвращает имя текущей директории или false при возникновении ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_pwd()

<?php

// установка соединения
$ftp = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// смена текущей директории на public_html
ftp_chdir($ftp, 'public_html');

// вывод имени текущей директории
echo ftp_pwd($ftp); // /public_html

// закрытие соединения
ftp_close($ftp);
?>

Смотрите также

  • ftp_chdir() - Изменяет текущую директорию на FTP-сервере
  • ftp_cdup() - Переходит в родительскую директорию


Псевдоним ftp_close

  • « ftp_pwd
  • ftp_raw »
  • PHP Manual
  • Функции FTP
  • Псевдоним ftp_close

ftp_quit

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_quit — Псевдоним ftp_close()

Описание

Функция является псевдонимом: ftp_close().


Отправляет произвольную команду FTP-серверу

  • « ftp_quit
  • ftp_rawlist »
  • PHP Manual
  • Функции FTP
  • Отправляет произвольную команду FTP-серверу

ftp_raw

(PHP 5, PHP 7, PHP 8)

ftp_raw — Отправляет произвольную команду FTP-серверу

Описание

ftp_raw(FTP\Connection $ftp, string $command): ?array

Отправляет произвольную команду command FTP-серверу.

Список параметров

ftp

An FTP\Connection instance.

command

Команда.

Возвращаемые значения

Возвращает ответ сервера в виде массива строк или null в случае возникновения ошибки. Функция ftp_raw() не интерпретирует ответ сервера и не определяет, успешно ли выполнена команда.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Использование ftp_raw() для входа на FTP-сервер

<?php
$ftp = ftp_connect("ftp.example.com");

/* То же самое, что:
ftp_login($ftp, "joeblow", "secret"); */
ftp_raw($ftp, "USER joeblow");
ftp_raw($ftp, "PASS secret");
?>

Смотрите также

  • ftp_exec() - Запрашивает выполнение команды на FTP-сервере


Возвращает подробный список файлов в заданной директории

  • « ftp_raw
  • ftp_rename »
  • PHP Manual
  • Функции FTP
  • Возвращает подробный список файлов в заданной директории

ftp_rawlist

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_rawlist — Возвращает подробный список файлов в заданной директории

Описание

ftp_rawlist(FTP\Connection $ftp, string $directory, bool $recursive = false): array|false

ftp_rawlist() отправляет FTP-серверу команду LIST и возвращает результат в виде массива.

Список параметров

ftp

An FTP\Connection instance.

directory

Имя директории на сервере. Может включать аргументы для команды LIST.

recursive

Если передано значение true, серверу будет отправлена команда LIST -R.

Возвращаемые значения

Возвращает массив, каждый элемент которого содержит одну строку ответа сервера. Возвращает false, если переданная директория directory не валидна.

Ответ сервера никак не обрабатывается. Для определения того, как следует интерпретировать результат, можно использовать результат работы функции ftp_systype().

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_rawlist()

<?php

// установка соединения
$ftp = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// получение списка файлов директории /
$buff = ftp_rawlist($ftp, '/');

// закрытие соединения
ftp_close($ftp);

// вывод буфера
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, PHP 8)

ftp_rename — Переименовывает файл или директорию на FTP-сервере

Описание

ftp_rename(FTP\Connection $ftp, string $from, string $to): bool

ftp_rename() переименовывает файл или директорию на FTP-сервере.

Список параметров

ftp

An FTP\Connection instance.

from

Старое имя файла/директории.

to

Новое имя.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.. В случае возникновения ошибки (например при попытке переименовать несуществующий файл) будет вызвана ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_rename()

<?php
$old_file = 'somefile.txt.bak';
$new_file = 'somefile.txt';

// установка соединения
$ftp = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// попытка переименовать $olf_file в $new_file
if (ftp_rename($ftp, $old_file, $new_file)) {
echo "Файл $old_file переименован в $new_file\n";
} else {
echo "Не удалось переименовать $old_file в $new_file\n";
}

// закрытие соединения
ftp_close($ftp);
?>


Удаляет директорию

  • « ftp_rename
  • ftp_set_option »
  • PHP Manual
  • Функции FTP
  • Удаляет директорию

ftp_rmdir

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_rmdir — Удаляет директорию

Описание

ftp_rmdir(FTP\Connection $ftp, string $directory): bool

Удаляет директорию directory.

Список параметров

ftp

An FTP\Connection instance.

directory

Имя директории. Параметр должен содержать относительный или абсолютный путь к пустой директории.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_rmdir()

<?php

$dir = 'www/';

// установка соединения
$ftp = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// попытка удаления директории $dir
if (ftp_rmdir($ftp, $dir)) {
echo "Директория $dir удалена\n";
} else {
echo "Не удалось удалить директорию $dir\n";
}

ftp_close($ftp);

?>

Смотрите также

  • ftp_mkdir() - Создаёт директорию


Устанавливает параметры соединения с FTP-сервером

  • « ftp_rmdir
  • ftp_site »
  • PHP Manual
  • Функции FTP
  • Устанавливает параметры соединения с FTP-сервером

ftp_set_option

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ftp_set_option — Устанавливает параметры соединения с FTP-сервером

Описание

ftp_set_option(FTP\Connection $ftp, int $option, int|bool $value): bool

Эта функция устанавливает параметры соединения с FTP-сервером.

Список параметров

ftp

An FTP\Connection instance.

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, будет выведено предупреждение.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_set_option()

<?php
// установка времени ожидания в 10 секунд
ftp_set_option($ftp, 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, PHP 8)

ftp_site — Отправляет серверу команду SITE

Описание

ftp_site(FTP\Connection $ftp, string $command): bool

ftp_site() отправляет указанную команду SITE FTP-серверу.

Команды SITE не стандартизированы и зависят от FTP-сервера. Они могут быть полезны для изменения прав доступа к файлам или смены владельца или группы.

Список параметров

ftp

An FTP\Connection instance.

command

Команда SITE. Обратите внимание, что этот параметр не проходит экранирование спецсимволов, так что могут возникнуть проблемы с именами, содержащими пробелы и прочие подобные символы.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Отправка команды SITE FTP-серверу

<?php
// Соединение с FTP-сервером
$ftp = ftp_connect('ftp.example.com');
if (!$conn) die('Не удалось подключиться к ftp.example.com');

// Вход под именем "user" с паролем "pass"
if (!ftp_login($ftp, 'user', 'pass')) die('Не удалось войти на ftp.example.com');

// Отправка "SITE CHMOD 0600 /home/user/privatefile" FTP-серверу
if (ftp_site($ftp, '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, PHP 8)

ftp_size — Возвращает размер указанного файла

Описание

ftp_size(FTP\Connection $ftp, string $filename): int

ftp_size() возвращает размер заданного файла в байтах.

Замечание:

Не все FTP-серверы поддерживают эту возможность.

Список параметров

ftp

An FTP\Connection instance.

filename

Имя файла на сервере.

Возвращаемые значения

Возвращает размер файла или -1 при возникновении ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_size()

<?php

$file = 'somefile.txt';

// установка соединения
$ftp = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// получение размера файла $file
$res = ftp_size($ftp, $file);

if ($res != -1) {
echo "Размер файла $file: $res байт";
} else {
echo "Не удалось определить размер файла $file";
}

// закрытие соединения
ftp_close($ftp);

?>

Смотрите также

  • 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, PHP 8)

ftp_ssl_connect — Устанавливает соединение с FTP-сервером через SSL

Описание

ftp_ssl_connect(string $hostname, int $port = 21, int $timeout = 90): FTP\Connection|false

ftp_ssl_connect() устанавливает явное SSL соединение с FTP-сервером, заданным аргументом hostname. Это означает, что ftp_ssl_connect() будет успешным даже если сервер не настроен для SSL-FTP, или его сертификат недействителен. Только когда будет вызвана функция ftp_login(), клиент пошлёт необходимую команду AUTH FTP, так что в указанных случаях ftp_login() завершится ошибкой.

Замечание: Почему эта функция может быть не определена

До PHP 7.0.0 ftp_ssl_connect() была доступна только если PHP был собран с поддержкой OpenSSL; это означает, что в Windows эта функция не была определена в официальных сборках PHP. Чтобы использовать эту функцию под Windows, вам придётся собрать PHP самостоятельно для включения поддержки OpenSSL.

Замечание:

ftp_ssl_connect() не предназначена для использования по протоколу sFTP. Для использования sFTP из PHP смотрите функцию ssh2_sftp().

Список параметров

hostname

Адрес FTP-сервера. Этот параметр не должен содержать слеши в конце и префикс ftp:// в начале.

port

Задаёт порт, на котором устанавливается соединение. Если равен нулю или опущен, по умолчанию используется стандартный для протокола FTP - порт 21.

timeout

Задаёт время ожидания для всех операций с этим соединением. По умолчанию время ожидания устанавливается в 90 секунд. Получить и установить значение времени ожидания можно также с помощью функций ftp_set_option() и ftp_get_option().

Возвращаемые значения

Возвращает FTP\Connection в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр FTP\Connection; ранее возвращался ресурс (resource).

Примеры

Пример #1 Пример использования функции ftp_ssl_connect()

<?php

// установка ssl-соединения
$ftp = ftp_ssl_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

if (!$login_result) {
// В этом случае PHP уже выбросил сообщение уровня E_WARNING
die("can't login");
}

echo ftp_pwd($ftp); // /

// закрытие ssl-соединения
ftp_close($ftp);
?>

Смотрите также

  • ftp_connect() - Устанавливает соединение с FTP-сервером


Возвращает тип операционной системы FTP-сервера

  • « ftp_ssl_connect
  • FTP\Connection »
  • PHP Manual
  • Функции FTP
  • Возвращает тип операционной системы FTP-сервера

ftp_systype

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_systype — Возвращает тип операционной системы FTP-сервера

Описание

ftp_systype(FTP\Connection $ftp): string|false

Возвращает тип операционной системы FTP-сервера.

Список параметров

ftp

An FTP\Connection instance.

Возвращаемые значения

Возвращает тип операционной системы FTP-сервера или false при возникновении ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ftp теперь ожидает экземпляр FTP\Connection; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример использования ftp_systype()

<?php

// установка соединения
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'user', 'password');

// получение типа системы
if ($type = ftp_systype($ftp)) {
echo "example.com использует $type\n";
} else {
echo "Не удалось определить тип системы";
}

?>

Результатом выполнения данного примера будет что-то подобное:

example.com использует UNIX


Класс FTP\Connection

(PHP 8 >= 8.1.0)

Введение

Полностью непрозрачный класс, заменяющий ресурс ftp в PHP 8.1.0.

Обзор классов

final class FTP\Connection {
}


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 — Получение значения времени ожидания операций ввода/вывода
    • GearmanClient::wait — Ожидает активности ввода-вывода для всех подключений на клиенте
  • 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 (int)
Операция была завершена успешно.
GEARMAN_IO_WAIT (int)
В режиме без блокировок событие ожидает установку блокировки.
GEARMAN_ERRNO (int)
Системная ошибка. Чтобы получить код ошибки, воспользуйтесь функцией GearmanClient::errno() или GearmanWorker::errno().
GEARMAN_NO_ACTIVE_FDS (int)
На момент вызова GearmanClient::wait() или GearmanWorker() не было активных подключений.
GEARMAN_UNEXPECTED_PACKET (int)
Означает, что что-то пошло совсем не так, как должно было. Применимо только к GearmanWorker.
GEARMAN_GETADDRINFO (int)
Неудачная операция разрешения имён DNS (неверный порт, хост и т.п.).
GEARMAN_NO_SERVERS (int)
Перед отправкой задания или задачи не был вызван метод GearmanClient::addServer().
GEARMAN_LOST_CONNECTION (int)
Во время обработки запроса прервалось соединение.
GEARMAN_MEMORY_ALLOCATION_FAILURE (int)
Не удалось выделить память (недостаточно памяти).
GEARMAN_SERVER_ERROR (int)
На сервере Gearman произошёл сбой, и сервер не смог обработать запрос.
GEARMAN_WORK_DATA (int)
Код возврата уведомления, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Выполняющий задание обработчик (worker) посылает этот код, когда ему требуется обновить данные на клиенте, передать часть результатов работы или сбросить данные во время выполнения долгих заданий.
GEARMAN_WORK_WARNING (int)
Код возврата уведомления, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Обновляет клиент с отправкой предупреждением. Поведение те же, что и в случае GEARMAN_WORK_DATA, однако этот код следует интерпретировать как предупреждение вместо обычных данных ответа.
GEARMAN_WORK_STATUS (int)
Код возврата уведомления, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Обработчик задания посылает этот код, чтобы обновить статус долго выполняемого задания. Используйте GearmanClient::doStatus() для получения процента завершения работы.
GEARMAN_WORK_EXCEPTION (int)
Код возврата уведомления, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Указывает, что выполнение задания завершилось неудачей с заданным исключением.
GEARMAN_WORK_FAIL (int)
Код возврата уведомления, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Указывает, что задание выполнить не удалось.
GEARMAN_COULD_NOT_CONNECT (int)
Не удалось подключиться к серверу.
GEARMAN_INVALID_FUNCTION_NAME (int)
Это значение возвращается при попытке зарегистрировать NULL в качестве имени функции или при использовании callback-интерфейса без указания callback-функций.
GEARMAN_INVALID_WORKER_FUNCTION (int)
Попытка зарегистрировать в обработчике функцию, передавая NULL в качестве callback-функции.
GEARMAN_NO_REGISTERED_FUNCTIONS (int)
Когда обработчик получил задание для функции, которая в нем не зарегистрирована.
GEARMAN_NO_JOBS (int)
Для неблокирующего обработчика, когда GearmanWorker::work() не имеет активных заданий.
GEARMAN_ECHO_DATA_CORRUPTION (int)
Указывает, что после вызова GearmanClient::echo() или GearmanWorker::echo() возвращённые данные не соответствуют переданным.
GEARMAN_NEED_WORKLOAD_FN (int)
Когда клиент выбрал потоковый режим передачи данных для обработки, но не задал callback-функцию для обработки данных из этого потока.
GEARMAN_PAUSE (int)
При работе в неблокирующем режиме, это значение может вернуть callback-функция, чтобы приостановить обработку задания и выйти из метода GearmanClient::runTasks(). Чтобы продолжить работу, следует ещё раз вызвать метод GearmanClient::runTasks().
GEARMAN_UNKNOWN_STATE (int)
Внутренняя ошибка клиента/обработчика.
GEARMAN_SEND_BUFFER_TOO_SMALL (int)
Внутренняя ошибка: попытка передать больше данных, чем помещается в один чанк. Размеры буфера жёстко заданы и не подлежат изменению.
GEARMAN_TIMEOUT (int)
Превышено время ожидания, заданный клиентом/обработчиком.

Настройки GearmanClient:

GEARMAN_CLIENT_GENERATE_UNIQUE (int)
Создавать уникальный идентификатор (UUID) для каждой задачи.
GEARMAN_CLIENT_NON_BLOCKING (int)
Запускать клиента в неблокирующем режиме.
GEARMAN_CLIENT_UNBUFFERED_RESULT (int)
Позволять клиенту читать данные и посылать их обратно в чанках вместо буферизации данных целиком средствами библиотеки.
GEARMAN_CLIENT_FREE_TASKS (int)
Автоматически уничтожать объекты задач после их выполнения. Эта настройка используется по умолчанию, чтобы предотвратить утечки памяти.

Настройки GearmanWorker:

GEARMAN_WORKER_NON_BLOCKING (int)
Запускать обработчик заданий в неблокирующем режиме.
GEARMAN_WORKER_GRAB_UNIQ (int)
Возвращать клиенту уникальный идентификатор в дополнение к дескриптору задания.

Базовая конфигурация Gearman:

GEARMAN_DEFAULT_TCP_HOST (string)
GEARMAN_DEFAULT_TCP_PORT (int)
GEARMAN_DEFAULT_SOCKET_TIMEOUT (int)
GEARMAN_DEFAULT_SOCKET_SEND_SIZE (int)
GEARMAN_DEFAULT_SOCKET_RECV_SIZE (int)
GEARMAN_MAX_ERROR_SIZE (int)
GEARMAN_PACKET_HEADER_SIZE (int)
GEARMAN_JOB_HANDLE_SIZE (int)
GEARMAN_OPTION_SIZE (int)
GEARMAN_UNIQUE_SIZE (int)
GEARMAN_MAX_COMMAND_ARGS (int)
GEARMAN_ARGS_BUFFER_SIZE (int)
GEARMAN_SEND_BUFFER_SIZE (int)
GEARMAN_RECV_BUFFER_SIZE (int)
GEARMAN_WORKER_WAIT_TIMEOUT (int)


Примеры

Содержание

  • Базовое использование
  • Базовый клиент и обработчик 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 и передаваемые данные являются непрозрачными для сервера заданий.

Обзор классов

class GearmanClient {
/* Методы */
public __construct()
public addOptions(int $option): bool
public addServer(string $host = null, int $port = 0, bool $setupExceptionHandler = true): bool
public addServers(string $servers = null, bool $setupExceptionHandler = true): bool
public addTask(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskHigh(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskHighBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskLow(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskLowBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskStatus(string $job_handle, mixed $context = null): GearmanTask|false
public clearCallbacks(): bool
public context(): string
public doBackground(string $function, string $workload, ?string $unique = null): string
public doHigh(string $function, string $workload, ?string $unique = null): string
public doHighBackground(string $function, string $workload, ?string $unique = null): string
public doJobHandle(): string
public doLow(string $function, string $workload, ?string $unique = null): string
public doLowBackground(string $function, string $workload, ?string $unique = null): string
public doNormal(string $function, string $workload, ?string $unique = null): string
public doStatus(): array
public error(): string|false
public getErrno(): int
public jobStatus(string $job_handle): array
public ping(string $workload): bool
public removeOptions(int $option): bool
public returnCode(): int
public runTasks(): bool
public setCompleteCallback(callable $function): bool
public setContext(string $data): bool
public setCreatedCallback(callable $function): bool
public setDataCallback(callable $function): bool
public setExceptionCallback(callable $function): bool
public setFailCallback(callable $function): bool
public setOptions(int $option): bool
public setStatusCallback(callable $function): bool
public setTimeout(int $timeout): bool
public setWarningCallback(callable $function): bool
public setWorkloadCallback(callable $function): bool
public timeout(): int
public wait(): bool
}

Содержание

  • 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::wait — Ожидает активности ввода-вывода для всех подключений на клиенте


Добавить клиентские опции

  • « GearmanClient
  • GearmanClient::addServer »
  • PHP Manual
  • GearmanClient
  • Добавить клиентские опции

GearmanClient::addOptions

(PECL gearman >= 0.6.0)

GearmanClient::addOptions — Добавить клиентские опции

Описание

public GearmanClient::addOptions(int $option): bool

Добавляет одну или несколько опций к уже установленным.

Список параметров

option

Опции для добавления. Одна из следующих констант или их комбинация с помощью двоичного оператора 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 = null, int $port = 0, bool $setupExceptionHandler = true): 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 = null, bool $setupExceptionHandler = true): 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|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

Добавляет задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Обратите внимание, что должно быть достаточное количество обработчиков для одновременного выполнения всех задач.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique_key

Уникальный 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|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

Добавляет фоновую задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique_key

Уникальный 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|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

Добавляет высокоприоритетную задачу для параллельной работы с другими задачами. Вызовите этот метод для всех высокоприоритетных задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с высоким приоритетом будут выбраны из очереди раньше задач с нормальным или низким приоритетом.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique_key

Уникальный 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|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

Добавляет высокоприоритетную фоновую задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с высоким приоритетом будут выбраны из очереди раньше задач с нормальным или низким приоритетом.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique_key

Уникальный 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|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

Добавляет низкоприоритетную задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с низким приоритетом будут выбраны из очереди после задач с нормальным или высоким приоритетом.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique_key

Уникальный 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|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

Добавляет низкоприоритетную фоновую задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с низким приоритетом будут выбраны из очереди после задач с нормальным или высоким приоритетом.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique_key

Уникальный 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, mixed $context = null): GearmanTask|false

Используется для запроса информации о состоянии с сервера Gearman, который будет вызывать указанный callback-функцию статуса (заданную через GearmanClient::setStatusCallback()).

Список параметров

job_handle

Дескриптор задания для получения статуса задачи

context

Данные, которые будут переданы обратному вызову. Обычно ссылка на массив или объект

Возвращаемые значения

Объект GearmanTask или false в случае возникновения ошибки.

Примеры

Пример #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(): 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(): 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()

Создаёт экземпляр GearmanClient, представляющий клиента, который соединяется с сервером заданий и отправляет задачи для выполнения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект GearmanClient.

Смотрите также

  • GearmanClient::clone() - Создать копию объекта GearmanClient


Возвращает контекст приложения

  • « GearmanClient::__construct
  • GearmanClient::data »
  • PHP Manual
  • GearmanClient
  • Возвращает контекст приложения

GearmanClient::context

(PECL gearman >= 0.6.0)

GearmanClient::context — Возвращает контекст приложения

Описание

public GearmanClient::context(): 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(): 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, string $workload, ?string $unique = null): string

Запускает выполнение задачи в фоновом режиме, возвращая дескриптор задания, который может быть использован для запроса состояния выполняющейся задачи.

Список параметров

function

Зарегистрированная функция, вызываемая рабочим процессом

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, string $workload, ?string $unique = null): string

Запускает на выполнение одиночную высокоприоритетную задачу и возвращает строку, содержащую результат. Функция зависит от GearmanClient и GearmanWorker, поскольку необходимо обеспечить единый формат результата. Высокоприоритетные задачи имеют преимущество над нормальными и низкоприоритетными задачам в очереди заданий.

Список параметров

function

Зарегистрированная функция, вызываемая рабочим процессом

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, string $workload, ?string $unique = null): string

Запускает на выполнение с высоким приоритетом задачу в фоновом режиме, возвращая дескриптор задания, который может быть в дальнейшем использован для запроса состояния выполняющейся задачи. Задачи высокого приоритета имеют преимущество над нормальными и низкоприоритетными задачам в очереди заданий.

Список параметров

function

Зарегистрированная функция, вызываемая рабочим процессом

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(): 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, string $workload, ?string $unique = null): string

Запускает на выполнение задачу с низким приоритетом и возвращает строку, содержащую результат. Функция зависит от GearmanClient и GearmanWorker, поскольку необходимо обеспечить единый формат результата. Высокоприоритетные задачи имеют преимущество над обычными и низкоприоритетными задачам в очереди заданий. Задачи нормального и высокого приоритета имеют преимущество над низкоприоритетными задачами в очереди заданий.

Список параметров

function

Зарегистрированная функция, вызываемая рабочим процессом

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, string $workload, ?string $unique = null): string

Запускает на выполнение с низким приоритетом задачу в фоновом режиме, возвращая дескриптор задания, который может быть использован для запроса состояния выполняющейся задачи. Задачи нормального и высокого приоритета имеют преимущество над низкоприоритетными задачам в очереди заданий.

Список параметров

function

Зарегистрированная функция, вызываемая рабочим процессом

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, string $workload, ?string $unique = null): string

Выполняет одиночное задание и возвращает строковое представление результата. Формат возвращаемого результата определяют объекты GearmanClient и GearmanWorker.

Список параметров

function

Зарегистрированная функция, вызываемая рабочим процессом

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(): 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(): string|false

Возвращает строку ошибки для последней обнаруженной ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Удобочитаемая строка ошибки или false, если сообщение об ошибке отсутствует.

Смотрите также

  • 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(): 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 — Получение статуса выполнения фонового задания

Описание

Объектно-ориентированный стиль (метод):

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 $option): bool

Удаляет одну или несколько клиентских опций.

Список параметров

option

Опции, которые должны быть удалены.

Возвращаемые значения

Всегда возвращает true.


Получить последний код возврата Gearman

  • « GearmanClient::removeOptions
  • GearmanClient::runTasks »
  • PHP Manual
  • GearmanClient
  • Получить последний код возврата Gearman

GearmanClient::returnCode

(PECL gearman >= 0.5.0)

GearmanClient::returnCode — Получить последний код возврата Gearman

Описание

public GearmanClient::returnCode(): int

Возвращает последний код возврата Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый код возврата Gearman.


Запустить список задач в параллельном режиме

  • « GearmanClient::returnCode
  • GearmanClient::setClientCallback »
  • PHP Manual
  • GearmanClient
  • Запустить список задач в параллельном режиме

GearmanClient::runTasks

(PECL gearman >= 0.5.0)

GearmanClient::runTasks — Запустить список задач в параллельном режиме

Описание

public GearmanClient::runTasks(): 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 $function): bool

Используется для установки функции, которая будет вызвана, когда GearmanTask будет выполнен, или когда обработчик вызовет GearmanJob::sendComplete(), в зависимости от того, что случится раньше.

Эта callback-функция запускается только когда GearmanTask запущен с использованием GearmanClient::runTasks(). Это не используется для индивидуальной работы.

Список параметров

function

Функция, которая должна быть вызвана.

Возвращаемые значения

Возвращает 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 $data): bool

Устанавливает произвольную строку для предоставления контекста приложения, которая может быть позже получена с помощью GearmanClient::context().

Список параметров

data

Произвольные данные контекста

Возвращаемые значения

Всегда возвращает true.

Смотрите также

  • GearmanClient::context() - Возвращает контекст приложения


Установить функцию обратного вызова, когда задача ставится в очередь

  • « GearmanClient::setContext
  • GearmanClient::setData »
  • PHP Manual
  • GearmanClient
  • Установить функцию обратного вызова, когда задача ставится в очередь

GearmanClient::setCreatedCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCreatedCallback — Установить функцию обратного вызова, когда задача ставится в очередь

Описание

public GearmanClient::setCreatedCallback(callable $function): bool

Устанавливает функцию, которая будет вызвана, когда задача получена и поставлена в очередь сервером задач Gearman. Функция обратного вызова должна принимать единственный параметр - объект GearmanTask.

Список параметров

function

Функция, которая должна быть вызвана.

Возвращаемые значения

Возвращает 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 $function): bool

Задаёт callback-функцию, которая будет обрабатывать данные задания. Эта функция должна принимать один аргумент типа GearmanTask.

Список параметров

function

Функция или метод для обратного вызова.

Возвращаемые значения

Возвращает 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 $function): bool

Задаёт функцию, которая будет вызываться, когда обработчик задания отправит исключение.

Список параметров

function

Функция для перехвата исключения, выброшенного обработчиком заданий.

Возвращаемые значения

Возвращает 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 $function): bool

Задаёт функцию обратного вызова для обработки ситуации, когда задание выполнить не удалось. Принимает один аргумент типа GearmanTask.

Список параметров

function

Функция для вызова.

Возвращаемые значения

Возвращает 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 $option): bool

Устанавливает одну или несколько настроек клиента.

Список параметров

option

Задаваемые настройки

Возвращаемые значения

Всегда возвращает true.


Задание callback-функции, собирающей информацию о состоянии обработчика заданий

  • « GearmanClient::setOptions
  • GearmanClient::setTimeout »
  • PHP Manual
  • GearmanClient
  • Задание callback-функции, собирающей информацию о состоянии обработчика заданий

GearmanClient::setStatusCallback

(PECL gearman >= 0.5.0)

GearmanClient::setStatusCallback — Задание callback-функции, собирающей информацию о состоянии обработчика заданий

Описание

public GearmanClient::setStatusCallback(callable $function): bool

Задаёт callback-функцию, которая будет принимать и обрабатывать информацию о состоянии задания, передаваемую обработчиком заданий. Функция должна принимать один аргумент типа GearmanTask.

Список параметров

function

Функция для вызова

Возвращаемые значения

Возвращает 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 $function): bool

Задаёт функцию, которая будет вызываться, когда обработчик заданий пришлёт предупреждение. Функция должна принимать один аргумент типа GearmanTask.

Список параметров

function

Функция для обратного вызова

Возвращаемые значения

Возвращает 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 $function): bool

Задаёт функцию, которая будет вызываться, когда обработчику задания необходимо передать промежуточные результаты клиенту до завершения всей обработки. Обработчику заданий может потребоваться такая пересылка, если нужно передать клиенту какие-либо обновления, частично отправить результаты обработки или освободить память во время выполнения долгих заданий. Функция должна принимать один аргумент типа GearmanTask.

Список параметров

function

Callback-функция.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задаёт callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Установка функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Установка callback-функции для обработки ситуации, когда задание не удалось выполнить
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWarningCallback() - Установка callback-функции, обслуживающей предупреждения обработчика заданий


Получение значения времени ожидания операций ввода/вывода

  • « GearmanClient::setWorkloadCallback
  • GearmanClient::wait »
  • PHP Manual
  • GearmanClient
  • Получение значения времени ожидания операций ввода/вывода

GearmanClient::timeout

(PECL gearman >= 0.6.0)

GearmanClient::timeout — Получение значения времени ожидания операций ввода/вывода

Описание

public GearmanClient::timeout(): int

Возвращает время ожидания операций ввода/вывода в миллисекундах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Время ожидания в миллисекундах. Отрицательное значение означает отсутствие ограничения.

Смотрите также

  • GearmanClient::setTimeout() - Установка времени ожидания для операций ввода/вывода


Ожидает активности ввода-вывода для всех подключений на клиенте

  • « GearmanClient::timeout
  • GearmanJob »
  • PHP Manual
  • GearmanClient
  • Ожидает активности ввода-вывода для всех подключений на клиенте

GearmanClient::wait

(PECL gearman >= 0.6.0)

GearmanClient::wait — Ожидает активности ввода-вывода для всех подключений на клиенте

Описание

public GearmanClient::wait(): bool

Ожидает активности от любого из подключённых серверов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true в случае успешного выполнения, false в случае возникновения ошибки.

Смотрите также

  • GearmanWorker::wait() - Ожидание запроса с одного из сервера задач


Класс GearmanJob

(PECL gearman >= 0.5.0)

Введение

Обзор классов

class GearmanJob {
/* Методы */
public functionName(): false|string
public handle(): false|string
public returnCode(): int
public sendComplete(string $result): bool
public sendData(string $data): bool
public sendException(string $exception): bool
public sendFail(): bool
public sendStatus(int $numerator, int $denominator): bool
public sendWarning(string $warning): bool
public setReturn(int $gearman_return_t): bool
public unique(): false|string
public workload(): string
public workloadSize(): 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()

Создаёт объект класса 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(): 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(): false|string

Возвращает имя функции, обрабатывающей данные, то есть функции, которая будет вызвана для выполнения задания.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя функции или false, если задание ещё не инициализировано.

Смотрите также

  • GearmanTask::function() - Получить имя связанной функции (устаревший метод)


Получение дескриптора объекта задания

  • « GearmanJob::functionName
  • GearmanJob::returnCode »
  • PHP Manual
  • GearmanJob
  • Получение дескриптора объекта задания

GearmanJob::handle

(PECL gearman >= 0.5.0)

GearmanJob::handle — Получение дескриптора объекта задания

Описание

public GearmanJob::handle(): false|string

Возвращает дескриптор задания, присвоенный сервером.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Дескриптор задания или false, если задание ещё не инициализировано.

Смотрите также

  • GearmanTask::jobHandle() - Получить дескриптор задания


Получение последнего кода возврата

  • « GearmanJob::handle
  • GearmanJob::sendComplete »
  • PHP Manual
  • GearmanJob
  • Получение последнего кода возврата

GearmanJob::returnCode

(PECL gearman >= 0.5.0)

GearmanJob::returnCode — Получение последнего кода возврата

Описание

public GearmanJob::returnCode(): 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(): 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(): false|string

Возвращает уникальный идентификатор задания, присвоенный клиентом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Уникальный идентификатор или false, если задание ещё не инициализировано.

Смотрите также

  • 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(): string

Возвращает данные, переданные для обработки. Это сериализованные данные, с которыми будет работать обработчик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованные данные.

Смотрите также

  • GearmanClient::do() - Выполняет одну задачу и возвращает результат [Устаревший метод]
  • GearmanJob::workloadSize() - Получение размера обрабатываемых данных


Получение размера обрабатываемых данных

  • « GearmanJob::workload
  • GearmanTask »
  • PHP Manual
  • GearmanJob
  • Получение размера обрабатываемых данных

GearmanJob::workloadSize

(PECL gearman >= 0.5.0)

GearmanJob::workloadSize — Получение размера обрабатываемых данных

Описание

public GearmanJob::workloadSize(): int

Возвращает размер данных, которые должен переработать обработчик заданий, в байтах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Размер в байтах.

Смотрите также

  • GearmanJob::workload() - Получение данных для обработки


Класс GearmanTask

(PECL gearman >= 0.5.0)

Введение

Обзор классов

class GearmanTask {
/* Методы */
public __construct()
public data(): false|string
public dataSize(): int|false
public functionName(): false|string
public isKnown(): bool
public isRunning(): bool
public jobHandle(): false|string
public recvData(int $data_len): false|array
public returnCode(): int
public sendWorkload(string $data): int|false
public taskDenominator(): false|int
public taskNumerator(): false|int
public unique(): false|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()

Создаёт объект GearmanTask, представляющий задачу на обработку, которая в дальнейшем будет отправлена на сервер.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса GearmanTask.


Создаёт задачу (устаревший метод)

  • « GearmanTask::__construct
  • GearmanTask::data »
  • PHP Manual
  • GearmanTask
  • Создаёт задачу (устаревший метод)

GearmanTask::create

(PECL gearman <= 0.5.0)

GearmanTask::create — Создаёт задачу (устаревший метод)

Описание

public GearmanTask::create(): GearmanTask|false

Возвращает новый объект класса 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(): false|string

Получает данные, возвращаемые обработчиком по завершении работы задачи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованные данные или false, если обработчик не предоставил данных.

Смотрите также

  • GearmanTask::dataSize() - Получить размер возвращаемых данных


Получить размер возвращаемых данных

  • « GearmanTask::data
  • GearmanTask::function »
  • PHP Manual
  • GearmanTask
  • Получить размер возвращаемых данных

GearmanTask::dataSize

(PECL gearman >= 0.5.0)

GearmanTask::dataSize — Получить размер возвращаемых данных

Описание

public GearmanTask::dataSize(): int|false

Возвращает размер данных задачи, которые вернул обработчик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Размер данных или false, если данных предоставлено не было.

Смотрите также

  • GearmanTask::data() - Получить данные, возвращённые для задачи


Получить имя связанной функции (устаревший метод)

  • « GearmanTask::dataSize
  • GearmanTask::functionName »
  • PHP Manual
  • GearmanTask
  • Получить имя связанной функции (устаревший метод)

GearmanTask::function

(PECL gearman <= 0.5.0)

GearmanTask::function — Получить имя связанной функции (устаревший метод)

Описание

public GearmanTask::function(): 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(): false|string

Возвращает имя функции, с которой связана задача. Эту функцию вызывает обработчик в процессе работы с данными.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя функции или false, если задача ещё не создана.


Определение, известно ли серверу об этой задачи

  • « GearmanTask::functionName
  • GearmanTask::isRunning »
  • PHP Manual
  • GearmanTask
  • Определение, известно ли серверу об этой задачи

GearmanTask::isKnown

(PECL gearman >= 0.5.0)

GearmanTask::isKnown — Определение, известно ли серверу об этой задачи

Описание

public GearmanTask::isKnown(): bool

Определяет, известно ли серверу заданий об этой задачи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если задача известна, false в противном случае.


Проверяет, выполняется ли задача в данный момент

  • « GearmanTask::isKnown
  • GearmanTask::jobHandle »
  • PHP Manual
  • GearmanTask
  • Проверяет, выполняется ли задача в данный момент

GearmanTask::isRunning

(PECL gearman >= 0.5.0)

GearmanTask::isRunning — Проверяет, выполняется ли задача в данный момент

Описание

public GearmanTask::isRunning(): 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(): false|string

Возвращает дескриптор задания для этой задачи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описатель объекта работы или false, если задача ещё не создана.

Смотрите также

  • GearmanClient::doJobHandle() - Получить дескриптор выполняющейся задачи


Чтение данных работы или результата задачи в буфер

  • « GearmanTask::jobHandle
  • GearmanTask::returnCode »
  • PHP Manual
  • GearmanTask
  • Чтение данных работы или результата задачи в буфер

GearmanTask::recvData

(PECL gearman >= 0.5.0)

GearmanTask::recvData — Чтение данных работы или результата задачи в буфер

Описание

public GearmanTask::recvData(int $data_len): false|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(): 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|false

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

data

Передаваемые обработчику данные.

Возвращаемые значения

Размер переданных данных или false в случае неудачи.

Смотрите также

  • GearmanTask::recvData() - Чтение данных работы или результата задачи в буфер


Получить знаменатель процента выполненной работы

  • « GearmanTask::sendWorkload
  • GearmanTask::taskNumerator »
  • PHP Manual
  • GearmanTask
  • Получить знаменатель процента выполненной работы

GearmanTask::taskDenominator

(PECL gearman >= 0.5.0)

GearmanTask::taskDenominator — Получить знаменатель процента выполненной работы

Описание

public GearmanTask::taskDenominator(): false|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(): false|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(): false|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(): string

Возвращает уникальный идентификатор этой задачи. Этот идентификатор присваивает GearmanClient, в отличие от идентификатора объекта задания, который устанавливает сервер задач.

Замечание:

Этот метод был заменён на GearmanTask::unique() в версии 0.6.0 модуля Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Уникальный идентификатор или false, если идентификатор не назначен.

Смотрите также

  • GearmanClient::do() - Выполняет одну задачу и возвращает результат [Устаревший метод]
  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме


Класс GearmanWorker

(PECL gearman >= 0.5.0)

Введение

Обзор классов

class GearmanWorker {
/* Методы */
public __construct()
public addFunction(
string $function_name,
callable $function,
mixed $context = null,
int $timeout = 0
): bool
public addOptions(int $option): true
public addServer(string $host = null, int $port = 0, bool $setupExceptionHandler = true): bool
public addServers(string $servers = null, bool $setupExceptionHandler = true): bool
public error(): string|false
public getErrno(): int
public options(): int
public register(string $function_name, int $timeout = 0): bool
public removeOptions(int $option): true
public returnCode(): int
public setId(string $id): bool
public setOptions(int $option): true
public setTimeout(int $timeout): true
public timeout(): int
public unregister(string $function_name): bool
public unregisterAll(): bool
public wait(): bool
public work(): 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 = null,
int $timeout = 0
): 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): true

Добавляет одну или несколько настроек к ранее установленным.

Список параметров

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 = null, int $port = 0, bool $setupExceptionHandler = true): 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 = null, bool $setupExceptionHandler = true): 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

Создаёт копию обработчика.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса GearmanWorker.


Создание объекта GearmanWorker

  • « GearmanWorker::clone
  • GearmanWorker::echo »
  • PHP Manual
  • GearmanWorker
  • Создание объекта GearmanWorker

GearmanWorker::__construct

(PECL gearman >= 0.5.0)

GearmanWorker::__construct — Создание объекта GearmanWorker

Описание

public GearmanWorker::__construct()

Создаёт объект 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(): string|false

Возвращает строку с сообщением о последней обнаруженной ошибке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка с описанием ошибки или false, если сообщение об ошибке отсутствует.

Смотрите также

  • GearmanWorker::getErrno() - Получение номера ошибки


Получение номера ошибки

  • « GearmanWorker::error
  • GearmanWorker::options »
  • PHP Manual
  • GearmanWorker
  • Получение номера ошибки

GearmanWorker::getErrno

(PECL gearman >= 0.5.0)

GearmanWorker::getErrno — Получение номера ошибки

Описание

public GearmanWorker::getErrno(): int

Возвращает номер ошибки, когда какой-либо метод вернул значение GEARMAN_ERRNO.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый номер ошибки.

Смотрите также

  • GearmanWorker::error() - Получение последней обнаруженной ошибки


Получение настроек обработчика

  • « GearmanWorker::getErrno
  • GearmanWorker::register »
  • PHP Manual
  • GearmanWorker
  • Получение настроек обработчика

GearmanWorker::options

(PECL gearman >= 0.6.0)

GearmanWorker::options — Получение настроек обработчика

Описание

public GearmanWorker::options(): 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 = 0): 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): true

Удаляет одну или несколько настроек обработчика.

Список параметров

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(): 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): true

Устанавливает значения одной или нескольких настроек.

Список параметров

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): true

Устанавливает время ожидания активности на сокете.

Список параметров

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(): 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(): 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(): 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(): 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)

Введение

Обзор классов

/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Облегчённый протокол доступа к каталогам (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_wallet — Connect to an LDAP server
    • ldap_connect — Подключиться к серверу LDAP
    • ldap_control_paged_result_response — Получить указатель на текущую страницу результирующего набора LDAP
    • ldap_control_paged_result — Послать серверу LDAP данные для использования постраничного извлечения результата
    • ldap_count_entries — Посчитать число записей в результатах поиска
    • ldap_count_references — Подсчитывает количество ссылок в результатах поиска
    • 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_sync — Performs an extended operation
    • 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\Connection — Класс LDAP\Connection
  • LDAP\Result — Класс LDAP\Result
  • LDAP\ResultEntry — Класс LDAP\ResultEntry


Введение

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 int

Максимальное количество LDAP соединений на процесс.


Типы ресурсов

До PHP 8.1.0, большинство LDAP функций работает с возвращаемыми ресурсами (например, ldap_connect() возвращает положительный идентификатор ссылки LDAP, требуемый большинством функций LDAP).


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

LDAP_DEREF_NEVER (int)
Правило разыменования псевдонимов - Never.
LDAP_DEREF_SEARCHING (int)
Правило разыменования псевдонимов - Searching.
LDAP_DEREF_FINDING (int)
Правило разыменования псевдонимов - Finding.
LDAP_DEREF_ALWAYS (int)
Правило разыменования псевдонимов - Always.
LDAP_OPT_DEREF (int)
Определяет альтернативные правила для следующих псевдонимов на сервере.
LDAP_OPT_SIZELIMIT (int)

Определяет максимальное количество записей, которые могут быть возвращены при операции поиска.

Замечание: Предел фактического размера для операций также ограничен максимальным количеством возвращаемых записей, которое задаётся конфигурацией сервера. Меньшее из этих двух параметров является фактическим ограничением размера.

LDAP_OPT_TIMELIMIT (int)
Определяет количество секунд для ожидания результатов поиска.

Замечание: Предел фактического времени выполнения для операций также ограничен максимальным временем, которое задаётся конфигурацией сервера. Меньшее из этих двух параметров является фактическим ограничением времени выполнения.

LDAP_OPT_NETWORK_TIMEOUT (int)
Опция для ldap_set_option разрешает настройку сетевого времени ожидания. (Доступна с PHP 5.3.0)
LDAP_OPT_PROTOCOL_VERSION (int)
Определяет используемый протокол LDAP (V2 или V3).
LDAP_OPT_ERROR_NUMBER (int)
Последний код ошибки сессии.
LDAP_OPT_REFERRALS (int)
Определяет, следовать ли автоматически рефералам, возвращённым сервером LDAP.
LDAP_OPT_RESTART (int)
Определяет, следует ли неявно перезапустить соединение.
LDAP_OPT_HOST_NAME (int)
Устанавливает/получает разделённые пробелами хосты при попытке подключения.
LDAP_OPT_ERROR_STRING (int)
Псевдоним для LDAP_OPT_DIAGNOSTIC_MESSAGE.
LDAP_OPT_DIAGNOSTIC_MESSAGE (int)
Последнее сообщение об ошибке в сессии.
LDAP_OPT_MATCHED_DN (int)
Устанавливает/получает проверяемые DN связанные с соединением.
LDAP_OPT_SERVER_CONTROLS (int)
Определяет список серверных элементов управления по умолчанию, который должен быть отправлен с каждым запросом.
LDAP_OPT_CLIENT_CONTROLS (int)
Определяет список клиентских элементов управления по умолчанию, которые должны обрабатываться с каждым запросом.
LDAP_OPT_DEBUG_LEVEL (int)
Определяет поразрядный уровень для отладочных трассировок.
LDAP_OPT_X_KEEPALIVE_IDLE (int)
Определяет число секунд, в течение которого соединение должно быть неактивным, прежде чем начнут посылаться пакеты keepalive.
LDAP_OPT_X_KEEPALIVE_PROBES (int)
Определяет максимальное количество пакетов keepalive, которое должно быть послано, прежде чем соединение будет разорвано.
LDAP_OPT_X_KEEPALIVE_INTERVAL (int)
Определяет интервал в секундах между посылками keepalive.
LDAP_OPT_X_TLS_CACERTDIR (int)
Определяет путь к директории, в которой лежат сертификаты CA.
LDAP_OPT_X_TLS_CACERTFILE (int)
Определяет полный путь к файлу сертификата CA.
LDAP_OPT_X_TLS_CERTFILE (int)
Определяет полный путь к файлу сертификата.
LDAP_OPT_X_TLS_CIPHER_SUITE (int)
Задаёт допустимый набор шифров.
LDAP_OPT_X_TLS_CRLCHECK (int)
Определяет стратегию оценки 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 (int)
Определяет полный путь к файлу CRL.

Замечание: Эта опция корректна только для GnuTLS.

LDAP_OPT_X_TLS_DHFILE (int)
Определяет полный путь к файлу, содержащему параметры Протокола Диффи-Хеллмана.

Замечание: Эта опция игнорируется GnuTLS и Mozilla NSS.

LDAP_OPT_X_TLS_KEYFILE (int)
Определяет полный путь к файлу ключа сертификата.
LDAP_OPT_X_TLS_PROTOCOL_MIN (int)
Определяет минимальную версию протокола. Одна из констант: 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 (int)
Устанавливает/получает случайный файл когда один из системных файлов по умолчанию не доступен.
LDAP_OPT_X_TLS_REQUIRE_CERT (int)
Определяет стратегию проверки сертификата. Одна из констант: 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 (int)
Режим аутентификации SSL - аутентификация не требуется (Только для Oracle LDAP)
GSLC_SSL_ONEWAY_AUTH (int)
Режим аутентификации SSL - требуется только серверная аутентификация (Только для Oracle LDAP)
GSLC_SSL_TWOWAY_AUTH (int)
Режим аутентификации SSL - требуется как серверная, так и клиентская аутентификация (Только для Oracle LDAP)
LDAP_EXOP_START_TLS (int)
Константа расширенной операции - 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 (bool)
Если управляющий объект должен быть помечен как критичный. Запрос завершится ошибкой, если подобный управляющий объект не поддерживается сервером, либо если его невозможно применить. Обратите внимание, что некоторые объекты всегда должны быть помечены как критичные, как описано в соответствующем 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 Привязка с информацией policy

<?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 "Код ошибки Policy: ".$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 (strlen($cookie) > 0);
?>


Функции 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_wallet — Connect to an LDAP server
  • ldap_connect — Подключиться к серверу LDAP
  • ldap_control_paged_result_response — Получить указатель на текущую страницу результирующего набора LDAP
  • ldap_control_paged_result — Послать серверу LDAP данные для использования постраничного извлечения результата
  • ldap_count_entries — Посчитать число записей в результатах поиска
  • ldap_count_references — Подсчитывает количество ссылок в результатах поиска
  • 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_sync — Performs an extended operation
  • 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, PHP 8)

ldap_8859_to_t61 — Переводит символы из кодировки ISO-8859 в t61

Описание

ldap_8859_to_t61(string $value): string|false

Переводит символы из кодировки ISO-8859 в t61.

Эта функция полезна, если необходимо работать с устаревшим сервером LDAPv2.

Список параметров

value

Текст, которые должен быть переведён.

Возвращаемые значения

Возвращает кодированный в t61 параметр value или false в случае возникновения ошибки.

Смотрите также

  • 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, PHP 8)

ldap_add_ext — Добавить записи в каталог LDAP

Описание

ldap_add_ext(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): LDAP\Result|false

Делает то же самое, что и ldap_add(), но возвращает экземпляр LDAP\Result для разбора с помощью ldap_parse_result().

Список параметров

Смотрите ldap_add()

Возвращаемые значения

Возвращает экземпляр LDAP\Result или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Возвращает экземпляр LDAP\Result; ранее возвращался ресурс (resource).
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • 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, PHP 8)

ldap_add — Добавить запись в LDAP директорию

Описание

ldap_add(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): bool

Добавляет запись в LDAP-директорию.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

dn

Отличительное имя LDAP-объекта.

entry

Массив, который определяет информацию о записи. Значения в записи индексируются индивидуальными атрибутами. В случае множественных значений для атрибута, они индексируются с использованием целых чисел, начиная с 0.

<?php
$entry["attribute1"] = "value";
$entry["attribute2"][0] = "value1";
$entry["attribute2"][1] = "value2";
?>

controls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Примеры

Пример #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, PHP 8)

ldap_bind_ext — Привязать к директории LDAP

Описание

ldap_bind_ext(
LDAP\Connection $ldap,
?string $dn = null,
?string $password = null,
?array $controls = null
): LDAP\Result|false

Делает то же самое, что и ldap_bind(), но возвращает экземпляр LDAP\Result для разбора с помощью ldap_parse_result().

Список параметров

Смотрите ldap_bind()

Возвращаемые значения

Возвращает экземпляр LDAP\Result или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Возвращает экземпляр LDAP\Result; ранее возвращался ресурс (resource).
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].

Смотрите также

  • ldap_bind() - Привязать к LDAP директории
  • ldap_parse_result() - Извлечь информацию из результата


Привязать к LDAP директории

  • « ldap_bind_ext
  • ldap_close »
  • PHP Manual
  • Функции LDAP
  • Привязать к LDAP директории

ldap_bind

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_bind — Привязать к LDAP директории

Описание

ldap_bind(LDAP\Connection $ldap, ?string $dn = null, ?string $password = null): bool

Связывает LDAP-директорию с указанным RDN и паролем.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

dn

password

Если password не определён, то будет попытка анонимной привязки. Также для анонимной привязки можно оставить пустым dn, как определено в https://tools.ietf.org/html/rfc2251#section-4.2.2

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .

Примеры

Пример #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, PHP 8)

ldap_close — Псевдоним ldap_unbind()

Описание

Функция является псевдонимом: ldap_unbind().


Сравнить значение атрибута, найденного в записи определённой DN

  • « ldap_close
  • ldap_connect_wallet »
  • PHP Manual
  • Функции LDAP
  • Сравнить значение атрибута, найденного в записи определённой DN

ldap_compare

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

ldap_compare — Сравнить значение атрибута, найденного в записи определённой DN

Описание

ldap_compare(
LDAP\Connection $ldap,
string $dn,
string $attribute,
string $value,
?array $controls = null
): bool|int

Сравнивает значение (value) атрибута (attribute) со значением того же атрибута в записи LDAP-директории.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

dn

Отличительное имя LDAP-объекта.

attribute

Имя атрибута.

value

Сравниваемое значение.

controls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает true если value совпадают в противном случае false. Возвращает -1 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Примеры

Следующий пример демонстрирует, как проверить, совпадает ли данный пароль с тем, который определён в указанной записи 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) значений!


Connect to an LDAP server

  • « ldap_compare
  • ldap_connect »
  • PHP Manual
  • Функции LDAP
  • Connect to an LDAP server

ldap_connect_wallet

(PHP 8 >= 8.3.0)

ldap_connect_wallet — Connect to an LDAP server

Описание

ldap_connect_wallet(
?string $uri = null,
string $wallet,
string $password,
int $auth_mode = GSLC_SSL_NO_AUTH
): LDAP\Connection|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

uri

wallet

password

auth_mode

Возвращаемые значения

Смотрите также

  • ldap_connect() - Подключиться к серверу LDAP


Подключиться к серверу LDAP

  • « ldap_connect_wallet
  • ldap_control_paged_result_response »
  • PHP Manual
  • Функции LDAP
  • Подключиться к серверу LDAP

ldap_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_connect — Подключиться к серверу LDAP

Описание

ldap_connect(?string $uri = null): LDAP\Connection|false
Внимание

Следующий синтаксис всё ещё поддерживается для обеспечения обратной совместимости (кроме использования именованных аргументов), но он объявлен устаревшим и больше не должен использоваться!

ldap_connect(?string $host = null, int $port = 389): LDAP\Connection|false

Создаёт LDAP\Connection и проверяет правдоподобность заданного uri.

Замечание: Эта функция НЕ открывает соединение. Она проверяет, правдоподобны ли заданные параметры и могут ли они использоваться для подключения, когда в нем возникнет нужна.

Список параметров

host

Полный LDAP URI вида ldap://hostname:port или ldaps://hostname:port.

Также вы можете указать несколько LDAP-URI, разделённых пробелом.

Обратите внимание, что hostname:port - это неподдерживаемый LDAP URI, так как отсутствует схема.

uri

Имя сервера для соединения.

port

Порт для соединения.

Возвращаемые значения

Возвращает экземпляр LDAP\Connection, если LDAP URI правдоподобен. Она производит синтаксический разбор и проверку переданных параметров, но соединения с сервером не происходит. Если проверка синтаксиса провалилась - возвращается false. ldap_connect() будет всегда возвращать экземпляр LDAP\Connection, поскольку она фактически не соединяется, а только инициализирует параметры соединения. Фактическое подключение происходит при последующих вызовах ldap_* функций, обычно при вызове ldap_bind().

Если никакие параметры не будут определены, тогда будет возвращён экземпляр LDAP\Connection открытого соединения.

Список изменений

Версия | Описание
8.1.0 | Возвращает экземпляр LDAP\Connection; ранее возвращался ресурс (resource).

Примеры

Пример #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 и УДАЛЕНА в PHP 8.0.0. Вместо неё следует использовать параметр controls в ldap_search(). Смотрите также Управляющие объекты LDAP для получения дополнительной информации.

Описание

ldap_control_paged_result_response(
resource $link,
resource $result,
string &$cookie = ?,
int &$estimated = ?
): bool

Получить указатель на текущую страницу результирующего набора LDAP.

Список параметров

link

Ресурс LDAP, возвращаемый функцией ldap_connect().

result

cookie

Непрозрачная структура полученная с сервера.

estimated

Предполагаемое количество записей для извлечения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция была удалена.
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 и УДАЛЕНА в PHP 8.0.0. Вместо неё следует использовать параметр controls в ldap_search(). Смотрите также Управляющие объекты LDAP для получения дополнительной информации.

Описание

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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция была удалена.
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_count_references »
  • PHP Manual
  • Функции LDAP
  • Посчитать число записей в результатах поиска

ldap_count_entries

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_count_entries — Посчитать число записей в результатах поиска

Описание

ldap_count_entries(LDAP\Connection $ldap, LDAP\Result $result): int

Возвращает число записей, сохранённых в результате предыдущей операции поиска.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

result

Экземпляр LDAP\Result, возвращаемый ldap_list() или ldap_search().

Возвращаемые значения

Возвращает число записей в результате или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр result теперь ожидает экземпляр LDAP\Result; ранее ожидался ресурс (resource) ldap result.

Примеры

Пример #1 Пример использования функции ldap_count_entries()

Получение числа записей в результате.

// $ds допустимый экземпляр LDAP\Connection

$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_ext »
  • PHP Manual
  • Функции LDAP
  • Подсчитывает количество ссылок в результатах поиска

ldap_count_references

(PHP 8)

ldap_count_references — Подсчитывает количество ссылок в результатах поиска

Описание

ldap_count_references(LDAP\Connection $ldap, LDAP\Result $result): int

Подсчитывает количество ссылок в результатах поиска.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

result

Экземпляр LDAP\Result, возвращаемый ldap_list() или ldap_search().

Возвращаемые значения

Возвращает количество ссылок в результате поиска.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр result теперь ожидает экземпляр LDAP\Result; ранее ожидался ресурс (resource) ldap result.

Смотрите также

  • ldap_connect() - Подключиться к серверу LDAP


Удалить запись из директории

  • « ldap_count_references
  • ldap_delete »
  • PHP Manual
  • Функции LDAP
  • Удалить запись из директории

ldap_delete_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_delete_ext — Удалить запись из директории

Описание

ldap_delete_ext(LDAP\Connection $ldap, string $dn, ?array $controls = null): LDAP\Result|false

Делает то же самое, что и ldap_delete(), но возвращает экземпляр LDAP\Result для разбора с помощью ldap_parse_result().

Список параметров

Смотрите ldap_delete()

Возвращаемые значения

Возвращает экземпляр LDAP\Result или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Возвращает экземпляр LDAP\Result; ранее возвращался ресурс (resource).
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].

Смотрите также

  • ldap_delete() - Удаляет запись из директории LDAP
  • ldap_parse_result() - Извлечь информацию из результата


Удаляет запись из директории LDAP

  • « ldap_delete_ext
  • ldap_dn2ufn »
  • PHP Manual
  • Функции LDAP
  • Удаляет запись из директории LDAP

ldap_delete

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_delete — Удаляет запись из директории LDAP

Описание

ldap_delete(LDAP\Connection $ldap, string $dn, ?array $controls = null): bool

Удаление конкретной записи из директории LDAP.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

dn

Уникальное имя LDAP-записи.

controls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Смотрите также

  • ldap_delete_ext() - Удалить запись из директории
  • ldap_add() - Добавить запись в LDAP директорию


Преобразовать DN в удобный для пользователя формат именования

  • « ldap_delete
  • ldap_err2str »
  • PHP Manual
  • Функции LDAP
  • Преобразовать DN в удобный для пользователя формат именования

ldap_dn2ufn

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_dn2ufn — Преобразовать DN в удобный для пользователя формат именования

Описание

ldap_dn2ufn(string $dn): string|false

Переключает указанный dn в более удобную для пользователя форму, снимая изоляцию с имён типов.

Список параметров

dn

Отличительное имя объекта LDAP.

Возвращаемые значения

Возвращает удобное для пользователя имя или false в случае возникновения ошибки.


Преобразовать код ошибки LDAP в строковое сообщение об ошибке

  • « ldap_dn2ufn
  • ldap_errno »
  • PHP Manual
  • Функции LDAP
  • Преобразовать код ошибки LDAP в строковое сообщение об ошибке

ldap_err2str

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

ldap_errno — Возвратить номер ошибки LDAP последней команды

Описание

ldap_errno(LDAP\Connection $ldap): int

Возвращает стандартизированный код ошибки, возвращённый последней командой LDAP. Это число может быть преобразовано в текстовое сообщение об ошибке, используя ldap_err2str().

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

Возвращаемые значения

Возвращает код ошибки LDAP последней команды для этой ссылки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .

Примеры

Если вы не снизите достаточно уровень предупреждений в 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, PHP 8)

ldap_error — Возвратить сообщение об ошибке LDAP последней команды

Описание

ldap_error(LDAP\Connection $ldap): string

Возвращает строковое сообщение об ошибке, объясняя ошибку, сгенерированную последней командой LDAP для данного идентификатора соединения ldap. В то время как LDAP errno числа стандартизированы, различные библиотеки возвращают отличающийся или даже локализованные текстовые сообщения об ошибках. Никогда не проверяйте на определённый текст сообщения об ошибке, всегда используйте кодами ошибок для проверки.

Если вы не снизите достаточно уровень предупреждений в php.ini, или префикс ваших LDAP-команд не будет с символом @ для подавления вывода предупреждений, генерируемые ошибки будут также отображаться в вашем HTML выводе.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

Возвращаемые значения

Возвращает сообщение ошибки в виде строки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .

Смотрите также

  • 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, PHP 8)

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 допустимый экземпляр LDAP\Connection

// $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, PHP 8)

ldap_exop_passwd — Обёртка для расширенной операции PASSWD

Описание

ldap_exop_passwd(
LDAP\Connection $ldap,
string $user = "",
string $old_password = "",
string $new_password = "",
array &$controls = null
): string|bool

Выполняет расширенную операцию PASSWD.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

user

Уникальное имя (DN) пользователя, для которого меняется пароль.

old_password

Старый пароль. В зависимости от конфигурации может быть опущен.

new_password

Новый пароль. Может быть опущен, либо задан пустым для автогенерации пароля.

controls

Если задано, то с запросом будет передан запрос парольной политики и это поле будет заполнено массивом управляющих констант LDAP, возвращённым запросом.

Возвращаемые значения

Возвращает новый пароль, если параметр new_password не задан, либо задан пустым. Иначе возвращает true или false, в зависимости от успешности выполнения.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Примеры

Пример #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_sync »
  • PHP Manual
  • Функции LDAP
  • Обёртка для расширенной операции Refresh

ldap_exop_refresh

(PHP 7 >= 7.3.0, PHP 8)

ldap_exop_refresh — Обёртка для расширенной операции Refresh

Описание

ldap_exop_refresh(LDAP\Connection $ldap, string $dn, int $ttl): int|false

Выполняет расширенную операцию Performs и возвращает результат.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

dn

Уникальное имя (DN) записи для которой выполняется операция.

ttl

Время в секундах (от 1 до 31557600) существования записи в каталоге, запрошенное клиентом. По истечении этого времени она будет автоматически удалена.

Возвращаемые значения

Из RFC: Поле responseTtl содержит время в секундах считаемое сервером временем жизни записи. Оно не может быть меньше запрошенного клиентом, но может быть больше. Однако, чтобы позволить серверам поддерживать каталог в относительно консистентном состоянии и для предотвращения злоупотребления клиентами постоянным продлением, серверу дозволено уменьшать запрошенное клиентом значение до, но не меньше чем, 86400 секунд (один день). В случае возникновения ошибки вернёт false.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .

Смотрите также

  • ldap_exop() - Выполняет расширенную операцию


Performs an extended operation

  • « ldap_exop_refresh
  • ldap_exop_whoami »
  • PHP Manual
  • Функции LDAP
  • Performs an extended operation

ldap_exop_sync

(PHP 8 >= 8.3.0)

ldap_exop_sync — Performs an extended operation

Описание

ldap_exop_sync(
LDAP\Connection $ldap,
string $request_oid,
string $request_data = null,
array $controls = null,
string &$response_data = null,
string &$response_oid = null
): LDAP\Result|bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

request_oid

request_data

controls

response_data

response_oid

Возвращаемые значения

Смотрите также

  • ldap_exop() - Выполняет расширенную операцию


Обёртка для расширенной операции WHOAMI

  • « ldap_exop_sync
  • ldap_exop »
  • PHP Manual
  • Функции LDAP
  • Обёртка для расширенной операции WHOAMI

ldap_exop_whoami

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop_whoami — Обёртка для расширенной операции WHOAMI

Описание

ldap_exop_whoami(LDAP\Connection $ldap): string|false

Выполняет расширенную операцию WHOAMI и возвращает данные.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

Возвращаемые значения

Данные, возвращённые сервером, либо false.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .

Смотрите также

  • ldap_exop() - Выполняет расширенную операцию


Выполняет расширенную операцию

  • « ldap_exop_whoami
  • ldap_explode_dn »
  • PHP Manual
  • Функции LDAP
  • Выполняет расширенную операцию

ldap_exop

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop — Выполняет расширенную операцию

Описание

ldap_exop(
LDAP\Connection $ldap,
string $request_oid,
string $request_data = null,
array $controls = null,
string &$response_data = ?,
string &$response_oid = ?
): mixed

Выполняет расширенную операцию для заданного соединения ldap с OID операции request_oid и данными request_data.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

request_oid

Идентификатор расширенной операции OID. Можно использовать одну из констант LDAP_EXOP_START_TLS, LDAP_EXOP_MODIFY_PASSWD, LDAP_EXOP_REFRESH, LDAP_EXOP_WHO_AM_I, LDAP_EXOP_TURN или строку с OID необходимой операции.

request_data

Данные для запроса расширенной операции. Может быть null для операций типа LDAP_EXOP_WHO_AM_I. Может потребоваться закодировать BER.

controls

Массив управляющих констант LDAP для посылки в запросе.

response_data

Если задано, то будет заполнено данными, полученными в результате выполнения операции. Если не задано, то для получения данных можно использовать ldap_parse_exop для полученного объекта.

retoid

Если задано, то будет заполнено OID ответа. Обычно совпадает с OID запроса.

Возвращаемые значения

Если используется с response_data, то возвращает true или false. Если используется без response_data, то возвращает идентификатор ресурса или false.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
7.3.0 | Добавлена поддержка controls

Примеры

Пример #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, $response_data);
// Вывод: string(31) "dn:cn=root, o=My Company, c=US"
var_dump($response_data);

// То же самое, но с параметром $response_data
$success = ldap_exop($ds, LDAP_EXOP_WHO_AM_I, NULL, NULL, $response_data, $retoid);
if ($success) {
var_dump($response_data);
}

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, PHP 8)

ldap_explode_dn — Разделить DN на его составные части

Описание

ldap_explode_dn(string $dn, int $with_attrib): array|false

Разделяет 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, PHP 8)

ldap_first_attribute — Вернуть первый атрибут

Описание

ldap_first_attribute(LDAP\Connection $ldap, LDAP\ResultEntry $entry): string|false

Получает первый атрибут в данной записи. Остающиеся атрибуты получаются последовательным вызовом ldap_next_attribute().

Подобно чтению записей, атрибуты также читаются один за другим из отдельного элемента.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

entry

Экземпляр LDAP\ResultEntry.

Возвращаемые значения

Возвращает первый атрибут в записи, в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр entry теперь ожидает экземпляр LDAP\ResultEntry; ранее ожидался ресурс (resource) ldap result entry.
8.0.0 | Неиспользуемый третий параметр ber_identifier больше не принимается.

Смотрите также

  • ldap_next_attribute() - Получить следующий атрибут из результата
  • ldap_get_attributes() - Получает атрибуты из записи в результатах поиска


Возвратить первый идентификатор результата

  • « ldap_first_attribute
  • ldap_first_reference »
  • PHP Manual
  • Функции LDAP
  • Возвратить первый идентификатор результата

ldap_first_entry

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_first_entry — Возвратить первый идентификатор результата

Описание

ldap_first_entry(LDAP\Connection $ldap, LDAP\Result $result): LDAP\ResultEntry|false

Возвращает идентификатор для первой записи в результате. Этот идентификатор затем используется в функции ldap_next_entry(), для последовательного получения записей из результата.

Записи в LDAP результате считываются последовательно используя функции ldap_first_entry() и ldap_next_entry().

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

result

Экземпляр LDAP\Result, возвращаемый ldap_list() или ldap_search().

Возвращаемые значения

Возвращает экземпляр LDAP\ResultEntry или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр result теперь ожидает экземпляр LDAP\Result; ранее ожидался ресурс (resource) ldap result.
8.1.0 | Возвращает экземпляр LDAP\ResultEntry; ранее возвращался ресурс (resource).

Смотрите также

  • ldap_get_entries() - Получает все записи результата


Возвращает первую справку

  • « ldap_first_entry
  • ldap_free_result »
  • PHP Manual
  • Функции LDAP
  • Возвращает первую справку

ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_first_reference — Возвращает первую справку

Описание

ldap_first_reference(LDAP\Connection $ldap, LDAP\Result $result): LDAP\ResultEntry|false
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.


Освободить память результата

  • « ldap_first_reference
  • ldap_get_attributes »
  • PHP Manual
  • Функции LDAP
  • Освободить память результата

ldap_free_result

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_free_result — Освободить память результата

Описание

ldap_free_result(LDAP\Result $result): bool

Освобождает память, внутренне выделенную для хранения результата. Вся память результата будет автоматически освобождена, когда сценарий завершится.

Обычно вся память, выделенная для результата LDAP, освобождается в конце сценария. В случае, если сценарий делает последовательные операции поиска, которые возвращают большие наборы результатов, ldap_free_result() может быть вызвана, чтобы сохранить небольшое использование памяти по время выполнения сценария.

Список параметров

result

Экземпляр LDAP\Result, возвращаемый ldap_list() или ldap_search().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр result теперь ожидает экземпляр LDAP\Result; ранее ожидался ресурс (resource) ldap result.


Получает атрибуты из записи в результатах поиска

  • « ldap_free_result
  • ldap_get_dn »
  • PHP Manual
  • Функции LDAP
  • Получает атрибуты из записи в результатах поиска

ldap_get_attributes

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_attributes — Получает атрибуты из записи в результатах поиска

Описание

ldap_get_attributes(LDAP\Connection $ldap, LDAP\ResultEntry $entry): 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)-ое значение атрибута

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

entry

Экземпляр LDAP\ResultEntry.

Возвращаемые значения

Возвращает полную информацию записи в многомерный массив.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр entry теперь ожидает экземпляр LDAP\ResultEntry; ранее ожидался ресурс (resource) ldap result entry.

Примеры

Пример #1 Показывает список атрибутов, соответствующие определённой записи директории

<?php
// $ds допустимый экземпляр LDAP\Connection

// $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, PHP 8)

ldap_get_dn — Получить DN результирующей записи

Описание

ldap_get_dn(LDAP\Connection $ldap, LDAP\ResultEntry $entry): string|false

Обнаружить DN записи в результате.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

entry

Экземпляр LDAP\ResultEntry.

Возвращаемые значения

Возвращает DN записи результата и false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр entry теперь ожидает экземпляр LDAP\ResultEntry; ранее ожидался ресурс (resource) ldap result entry.


Получает все записи результата

  • « ldap_get_dn
  • ldap_get_option »
  • PHP Manual
  • Функции LDAP
  • Получает все записи результата

ldap_get_entries

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_entries — Получает все записи результата

Описание

ldap_get_entries(LDAP\Connection $ldap, LDAP\Result $result): array|false

Читает множественные записи из заданного результата, и затем читает атрибуты и множественные значения.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

result

Экземпляр LDAP\Result, возвращаемый ldap_list() или ldap_search().

Возвращаемые значения

Возвращает полную информацию о результате в виде многомерного массива в случае успешного выполнения, и 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-ой записи

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр result теперь ожидает экземпляр LDAP\Result; ранее ожидался ресурс (resource) ldap result.

Смотрите также

  • 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, PHP 8)

ldap_get_option — Получить текущее значение данной опции

Описание

ldap_get_option(LDAP\Connection $ldap, int $option, array|string|int &$value = null): bool

Устанавливает value в значение указанной опции.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

option

Опция option может быть одной из:

Опция | Тип | Начиная с версии
LDAP_OPT_DEREF | int
LDAP_OPT_SIZELIMIT | int
LDAP_OPT_TIMELIMIT | int
LDAP_OPT_NETWORK_TIMEOUT | int
LDAP_OPT_PROTOCOL_VERSION | int
LDAP_OPT_ERROR_NUMBER | int
LDAP_OPT_DIAGNOSTIC_MESSAGE | string
LDAP_OPT_REFERRALS | int
LDAP_OPT_RESTART | int
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 | int | 7.1
LDAP_OPT_X_TLS_CRL_NONE | int | 7.1
LDAP_OPT_X_TLS_CRL_PEER | int | 7.1
LDAP_OPT_X_TLS_CRL_ALL | int | 7.1
LDAP_OPT_X_TLS_CRLFILE | string | 7.1
LDAP_OPT_X_TLS_DHFILE | string | 7.1
LDAP_OPT_X_TLS_KEYFILE | string | 7.1
LDAP_OPT_X_TLS_PACKAGE | string | 7.1
LDAP_OPT_X_TLS_PROTOCOL_MIN | int | 7.1
LDAP_OPT_X_TLS_RANDOM_FILE | string | 7.1
LDAP_OPT_X_TLS_REQUIRE_CERT | int

value

Будет установлен в значение опции.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .

Примеры

Пример #1 Проверка версии протокола

<?php
// $ds допустимый экземпляр LDAP\Connection
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, PHP 8)

ldap_get_values_len — Получить все бинарные значения из записи результата

Описание

ldap_get_values_len(LDAP\Connection $ldap, LDAP\ResultEntry $entry, string $attribute): array|false

Читает все значения атрибута в записи результата.

Эта функция используется точно также как и ldap_get_values() за исключением того, что обрабатывает двоичные данные, а не строковые.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

entry

Экземпляр LDAP\ResultEntry.

attribute

Возвращаемые значения

Возвращает массив значений для атрибута в случае успешного выполнения и false в случае возникновения ошибки. Отдельные значения доступны по целочисленному индексу в массиве. Первый индекс 0. Число значений может быть найдено по индексу "count" в результирующем массиве.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр entry теперь ожидает экземпляр LDAP\ResultEntry; ранее ожидался ресурс (resource) ldap result entry.

Смотрите также

  • ldap_get_values() - Получает все значения из записи результата


Получает все значения из записи результата

  • « ldap_get_values_len
  • ldap_list »
  • PHP Manual
  • Функции LDAP
  • Получает все значения из записи результата

ldap_get_values

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_values — Получает все значения из записи результата

Описание

ldap_get_values(LDAP\Connection $ldap, LDAP\ResultEntry $entry, string $attribute): array|false

Читает все значения атрибута в записи результата.

Эта функция требует entry, а следовательно, перед ней должны быть запущена одна из функций ldap поиска и один из результатов их вызова для получения отдельной записи.

В создаваемом приложении необходимо будет использовать сложные конструкции для поиска определённых атрибутов (таких как "фамилия" или "почта") или необходимо будет использовать функцию ldap_get_attributes(), чтобы разобрать, какие атрибуты существуют для данной записи.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

entry

Экземпляр LDAP\ResultEntry.

attribute

Возвращаемые значения

Возвращает массив значений для атрибута в случае успешного выполнения или false в случае возникновения ошибки. Число значений может быть найдено по индексу "count" в результирующем массиве. Отдельные значения могут быть доступны по целочисленным индексам в массиве. Первый индекс 0.

LDAP позволяет хранить больше чем одну запись для атрибута, таким образом, можно, например, сохранить много адресов электронной почты для записи каталога одного человека, все маркированные атрибутом "mail"

     return_value["count"] = число значений атрибута
     return_value[0] = первое значение атрибута
     return_value[i] = i-ое значение атрибута

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр entry теперь ожидает экземпляр LDAP\ResultEntry; ранее ожидался ресурс (resource) ldap result entry.

Примеры

Пример #1 Список всех значений атрибута "mail" для записи каталога

<?php
// $ds допустимый экземпляр LDAP\Connection

// $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, PHP 8)

ldap_list — Одноуровневый поиск

Описание

ldap_list(
LDAP\Connection|array $ldap,
array|string $base,
array|string $filter,
array $attributes = [],
int $attributes_only = 0,
int $sizelimit = -1,
int $timelimit = -1,
int $deref = LDAP_DEREF_NEVER,
?array $controls = null
): LDAP\Result|array|false

Выполняет поиск для указанного filter в директории в рамках LDAP_SCOPE_ONELEVEL.

LDAP_SCOPE_ONELEVEL означает, что поиск должен возвратить только информацию, которая является следующим уровнем ниже base, заданного при вызове. (Эквивалент вводу "ls" и получения списка файлов и папок в текущем рабочем каталоге.)

Также можно выполнять параллельный поиск. В этом случае первым аргументом должен быть массив экземпляров LDAP\Connection, а не один экземпляр. Если поиск не должен использовать один и тот же базовый DN и фильтр, в качестве аргументов можно передать массив базовых DN и/или массив фильтров. Количество элементов в массивах должно совпадать с количеством экземпляров LDAP\Connection, поскольку первые записи массивов используются для одного поиска, вторые — для другого и так далее. При параллельном поиске возвращается массив экземпляров LDAP\Result, за исключением возникновения ошибки, когда возвращается значение false.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

base

Базовое DN для каталога.

filter

attributes

Массив необходимых атрибутов, например, array("mail", "sn", "cn"). Обратите внимание, что "dn" возвращается всегда, независимо от того, какие типы атрибутов требуются.

Использование этого параметра намного более эффективно чем действие по умолчанию (которое должно возвратить все атрибуты и их присвоенные значения). Поэтому использование этого параметра нужно считать хорошей практикой.

attributes_only

Должен быть равен 1, только если требуются типы атрибута. Если установлено 0, то, по умолчанию, выбираются и типы атрибутов и значения атрибута.

sizelimit

Позволяет ограничить количество выбранных записей. Установка этого параметра как 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку sizelimit на стороне сервера. Хотя его можно установить ниже.

Некоторые хосты серверов каталогов будут сконфигурированы так, чтобы возвратить не больше, чем предварительно установленное число записей. Если это произойдёт, то сервер укажет, что возвратил только частичный набор результатов. Это также происходит, если Вы используете этот параметр, чтобы ограничить количество выбранных записей.

timelimit

Устанавливает число секунд, ограничивающее процесс поиска. Установка этого параметра как 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку timelimit на стороне сервера. Хотя его можно установить ниже.

deref

Определяет, как псевдонимы должны быть обработаны во время поиска. Может быть одним из следующих:

  • LDAP_DEREF_NEVER - (по умолчанию) псевдонимы никогда не разыменовываться.
  • LDAP_DEREF_SEARCHING - псевдонимы должны быть разыменованы во время поиска, но не при определении местоположения базового объекта поиска.
  • LDAP_DEREF_FINDING - псевдонимы должны быть разыменованы при определении местоположения базового объекта, но не во время поиска.
  • LDAP_DEREF_ALWAYS - псевдонимы должны всегда разыменовываться всегда.

controls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает экземпляр LDAP\Result, массив экземпляров LDAP\Result или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Возвращает экземпляр LDAP\Result; ранее возвращался ресурс (resource).
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Примеры

Пример #1 Выводит список всех организационных единиц организации

<?php
// $ds допустимый экземпляр LDAP\Connection

$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, PHP 8)

ldap_mod_add_ext — Добавить значения атрибута к текущим атрибутам

Описание

ldap_mod_add_ext(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): LDAP\Result|false

Делает то же самое, что и ldap_mod_add(), но возвращает экземпляр LDAP\Result для разбора с помощью ldap_parse_result().

Список параметров

Смотрите ldap_mod_add()

Возвращаемые значения

Возвращает экземпляр LDAP\Result или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Возвращает экземпляр LDAP\Result; ранее возвращался ресурс (resource).
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Смотрите также

  • 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, PHP 8)

ldap_mod_add — Добавить значения атрибута к текущим атрибутам

Описание

ldap_mod_add(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): bool

Добавляет один или более атрибутов к указанному dn. Для добавления полноценного нового объекта используйте ldap_add().

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

dn

Отличительное имя LDAP-объекта.

entry

Ассоциативный массив со списком добавляемых значений атрибутов. Если какой-либо атрибут ещё не существует, то он будет добавлен. Если атрибут уже существует, то вы можете только добавить к нему значение, если он поддерживает множественные значения.

controls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • 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, PHP 8)

ldap_mod_del_ext — Удалить значения атрибутов из текущих атрибутов

Описание

ldap_mod_del_ext(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): LDAP\Result|false

Делает то же самое, что и ldap_mod_del(), но возвращает экземпляр LDAP\Result для разбора с помощью ldap_parse_result().

Список параметров

Смотрите ldap_mod_del()

Возвращаемые значения

Возвращает экземпляр LDAP\Result или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Возвращает экземпляр LDAP\Result; ранее возвращался ресурс (resource).
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Смотрите также

  • 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, PHP 8)

ldap_mod_del — Удалить значения атрибута из текущих атрибутов

Описание

ldap_mod_del(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): bool

Удаляет один или более атрибутов из указанного dn. Удаление объектов осуществляется функцией ldap_delete().

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

dn

Отличительное имя LDAP-объекта.

entry

controls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Смотрите также

  • 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, PHP 8)

ldap_mod_replace_ext — Заменить значения атрибута на новые

Описание

ldap_mod_replace_ext(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): LDAP\Result|false

Делает то же самое, что и ldap_mod_replace(), но возвращает экземпляр LDAP\Result для разбора с помощью ldap_parse_result().

Список параметров

Смотрите ldap_mod_replace()

Возвращаемые значения

Возвращает экземпляр LDAP\Result или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Возвращает экземпляр LDAP\Result; ранее возвращался ресурс (resource).
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Смотрите также

  • 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, PHP 8)

ldap_mod_replace — Заменить значения атрибутов на новые

Описание

ldap_mod_replace(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): bool

Заменяет один или более атрибутов из указанного dn. Также её можно использовать для удаления или добавления атрибутов.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

dn

Отличительное имя LDAP-объекта.

entry

Ассоциативный массив со списком заменяемых атрибутов. Если задать пустой массив, то атрибут будет удалён. Если какой либо атрибут отсутствует, то он будет добавлен.

controls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • 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, PHP 8)

ldap_modify_batch — Формирования и запуск пакетного изменения записи LDAP

Описание

ldap_modify_batch(
LDAP\Connection $ldap,
string $dn,
array $modifications_info,
?array $controls = null
): bool

Модифицирует существующую запись в каталоге LDAP. Допустимо детальное описание модификации.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

dn

Характерное имя объекта LDAP.

modifications_info

Массив, описывающий необходимую модификацию. Каждая запись этого массива представляет собой ассоциативный массив с двумя или тремя ключами: 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_*, перечисленных выше.

controls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Примеры

Пример #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, PHP 8)

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, PHP 8)

ldap_next_attribute — Получить следующий атрибут из результата

Описание

ldap_next_attribute(LDAP\Connection $ldap, LDAP\ResultEntry $entry): string|false

Возвращает атрибуты записи. Первый вызов ldap_next_attribute() производится с параметром entry, который возвращается ldap_first_attribute().

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

entry

Экземпляр LDAP\ResultEntry.

Возвращаемые значения

Возвращает следующий атрибут записи в случае успешного выполнения и false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр entry теперь ожидает экземпляр LDAP\ResultEntry; ранее ожидался ресурс (resource) ldap result entry.
8.0.0 | Неиспользуемый третий параметр ber_identifier больше не принимается.

Смотрите также

  • ldap_get_attributes() - Получает атрибуты из записи в результатах поиска


Получить следующую запись результата

  • « ldap_next_attribute
  • ldap_next_reference »
  • PHP Manual
  • Функции LDAP
  • Получить следующую запись результата

ldap_next_entry

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_next_entry — Получить следующую запись результата

Описание

ldap_next_entry(LDAP\Connection $ldap, LDAP\ResultEntry $entry): LDAP\ResultEntry|false

Получить записи, хранящиеся в результате. Последующие вызовы ldap_next_entry()
возвращают по одной записи, пока не останется больше записей.
Первый вызов ldap_next_entry() производится
после вызова ldap_first_entry() с параметром
entry, который был возвращён ldap_first_entry().

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

entry

Экземпляр LDAP\ResultEntry.

Возвращаемые значения

Возвращает экземпляр LDAP\ResultEntry для следующей записи в результате, содержимое которого начинают читаться, запуская ldap_first_entry(). Если нет больше записей в результате, тогда возвращается false.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр entry теперь ожидает экземпляр LDAP\ResultEntry; ранее ожидался ресурс (resource) ldap result entry.
8.1.0 | Возвращает экземпляр LDAP\Result; ранее возвращался ресурс (resource).

Смотрите также

  • ldap_get_entries() - Получает все записи результата


Возвращает следующую справку

  • « ldap_next_entry
  • ldap_parse_exop »
  • PHP Manual
  • Функции LDAP
  • Возвращает следующую справку

ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_next_reference — Возвращает следующую справку

Описание

ldap_next_reference(LDAP\Connection $ldap, LDAP\ResultEntry $entry): LDAP\ResultEntry|false
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.


Разбор результирующего объекта выполнения расширенной операции LDAP

  • « ldap_next_reference
  • ldap_parse_reference »
  • PHP Manual
  • Функции LDAP
  • Разбор результирующего объекта выполнения расширенной операции LDAP

ldap_parse_exop

(PHP 7 >= 7.2.0, PHP 8)

ldap_parse_exop — Разбор результирующего объекта выполнения расширенной операции LDAP

Описание

ldap_parse_exop(
LDAP\Connection $ldap,
LDAP\Result $result,
string &$response_data = null,
string &$response_oid = null
): bool

Разбирает result, полученный после выполнения расширенной операции LDAP

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

result

Экземпляр LDAP\Result, возвращаемый ldap_list() или ldap_search().

response_data

Будет заполнен разобранными данными.

response_oid

Будет заполнен возвращённым OID.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр result теперь ожидает экземпляр LDAP\Result; ранее ожидался ресурс (resource) ldap result.

Смотрите также

  • ldap_exop() - Выполняет расширенную операцию


Извлекает информацию из справочника

  • « ldap_parse_exop
  • ldap_parse_result »
  • PHP Manual
  • Функции LDAP
  • Извлекает информацию из справочника

ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_parse_reference — Извлекает информацию из справочника

Описание

ldap_parse_reference(LDAP\Connection $ldap, LDAP\ResultEntry $entry, array &$referrals): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.


Извлечь информацию из результата

  • « ldap_parse_reference
  • ldap_read »
  • PHP Manual
  • Функции LDAP
  • Извлечь информацию из результата

ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_parse_result — Извлечь информацию из результата

Описание

ldap_parse_result(
LDAP\Connection $ldap,
LDAP\Result $result,
int &$error_code,
string &$matched_dn = null,
string &$error_message = null,
array &$referrals = null,
array &$controls = null
): bool

Обрабатывает результат поиска LDAP.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

result

Экземпляр LDAP\Result, возвращаемый ldap_list() или ldap_search().

error_code

Ссылка на переменную, которой присваивается код ошибки LDAP, или 0, если нет ошибки.

matched_dn

Ссылка на переменную, которой присваивается найденный DN, если он определяется в запросе, иначе присваивается null.

error_message

Ссылка на переменную, которой присваивается сообщение об LDAP-ошибке, или пустая строка, если нет ошибки.

referrals

Ссылка на переменную, которой присваивается массив (array) со всеми отсылками (referral) в виде строк, или пустой массив, если они не были возвращены.

controls

Массив (array) LDAP Controls, которые были отправлены вместо с ответом.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Параметр result теперь ожидает экземпляр LDAP\Result; ранее ожидался ресурс (resource) ldap result.
7.3.0 | Добавлена поддержка параметра controls

Примеры

Пример #1 Пример использования ldap_parse_result()

<?php
$result = ldap_search($ldap, "cn=userref,dc=my-domain,dc=com", "(cn=user*)");
$errcode = $dn = $errmsg = $refs = null;
if (ldap_parse_result($ldap, $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, PHP 8)

ldap_read — Читает запись

Описание

ldap_read(
LDAP\Connection|array $ldap,
array|string $base,
array|string $filter,
array $attributes = [],
int $attributes_only = 0,
int $sizelimit = -1,
int $timelimit = -1,
int $deref = LDAP_DEREF_NEVER,
?array $controls = null
): LDAP\Result|array|false

Выполняет поиск для указанного filter в директории в рамках LDAP_SCOPE_BASE. Эквивалентно чтению записи из директории.

Также можно выполнять параллельный поиск. В этом случае первым аргументом должен быть массив экземпляров LDAP\Connection, а не один экземпляр. Если поиск не должен использовать один и тот же базовый DN и фильтр, в качестве аргументов можно передать массив базовых DN и/или массив фильтров. Количество элементов в массивах должно совпадать с количеством экземпляров LDAP\Connection, поскольку первые записи массивов используются для одного поиска, вторые — для другого и так далее. При параллельном поиске возвращается массив экземпляров LDAP\Result, за исключением возникновения ошибки, когда возвращается значение false.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

base

Базовое DN для каталога.

filter

Пустой фильтр не допустим. Если необходимо получить абсолютно всю информацию для этой записи, используйте фильтр objectClass=*. Если известно какие типы записи используются на сервере каталогов, то можно использовать соответствующий фильтр, такой как objectClass=inetOrgPerson.

attributes

Массив необходимых атрибутов, например, array("mail", "sn", "cn"). Обратите внимание, что "dn" всегда возвращается, независимо от того, какие типы атрибутов требуются.

Использование этого параметра намного более эффективно чем действие по умолчанию (которое возвращает все атрибуты и их присвоенные значения). Поэтому использование этого параметра нужно считать хорошей практикой.

attributes_only

Должен быть равен 1, только если требуются типы атрибута. Если равен 0, то, по умолчанию, выбираются и типы атрибутов и значения.

sizelimit

Позволяет ограничить количество выбранных записей. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку sizelimit на стороне сервера. Хотя его можно установить ниже.

Некоторые хосты серверов каталогов будут сконфигурированы так, чтобы возвратить не больше, чем предварительно установленное число записей. Если это произойдёт, то сервер укажет, что только возвратил частичный набор результатов. Это также происходит, если используется этот параметр, чтобы ограничить количество выбранных записей.

timelimit

Устанавливает число секунд, ограничивающее процесс поиска. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку timelimit на стороне сервера. Хотя его можно установить ниже.

deref

Определяет то, как псевдонимы должны быть обработаны во время поиска. Может быть одним из следующих:

  • LDAP_DEREF_NEVER - (по умолчанию) псевдонимы никогда не разыменовываются.
  • LDAP_DEREF_SEARCHING - псевдонимы должны быть разыменованы во время поиска, но не при определении местоположения базового объекта поиска.
  • LDAP_DEREF_FINDING - псевдонимы должны быть разыменованы при определении местоположения базового объекта, но не во время поиска.
  • LDAP_DEREF_ALWAYS - псевдонимы должны всегда разыменовываться.

controls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает экземпляр LDAP\Result, массив экземпляров LDAP\Result или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Возвращает экземпляр LDAP\Result; ранее возвращался ресурс (resource).
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
4.0.5 | Была добавлена поддержка параллельного поиска. Для более подробной информации смотрите ldap_search().
7.3.0 | Добавлена поддержка параметра controls


Модифицировать название записи

  • « ldap_read
  • ldap_rename »
  • PHP Manual
  • Функции LDAP
  • Модифицировать название записи

ldap_rename_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_rename_ext — Модифицировать название записи

Описание

ldap_rename_ext(
LDAP\Connection $ldap,
string $dn,
string $new_rdn,
string $new_parent,
bool $delete_old_rdn,
?array $controls = null
): LDAP\Result|false

Делает то же самое, что и ldap_rename(), но возвращает экземпляр LDAP\Result для разбора с помощью ldap_parse_result().

Список параметров

Смотрите ldap_rename()

Возвращаемые значения

Возвращает экземпляр LDAP\Result или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Возвращает экземпляр LDAP\Result; ранее возвращался ресурс (resource).
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Смотрите также

  • 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, PHP 8)

ldap_rename — Изменить имя записи

Описание

ldap_rename(
LDAP\Connection $ldap,
string $dn,
string $new_rdn,
string $new_parent,
bool $delete_old_rdn,
?array $controls = null
): bool

Переименование/перемещение записи, определённой dn.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

dn

Отличительное имя LDAP-объекта.

new_rdn

Новое RDN.

new_parent

Новая родительская/превосходящая запись.

delete_old_rdn

Если true, старые значения RDN удаляются, иначе старые значения RDN сохраняются как неуникальные значения записи.

controls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Примечания

Замечание:

Эта функция в настоящее время работает только с 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, PHP 8)

ldap_sasl_bind — Привязать к LDAP директории, используя SASL

Описание

ldap_sasl_bind(
LDAP\Connection $ldap,
?string $dn = null,
?string $password = null,
?string $mech = null,
?string $realm = null,
?string $authc_id = null,
?string $authz_id = null,
?string $props = null
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 | dn, password, mech, realm, authc_id, authz_id and props теперь допускают значение null.

Примечания

Замечание: Требование
ldap_sasl_bind() требует SASL поддержки (sasl.h). Проверьте, что вы использовали --with-ldap-sasl при конфигурировании PHP, в противном случае эта функция будет не определена.


Поиск по LDAP дереву

  • « ldap_sasl_bind
  • ldap_set_option »
  • PHP Manual
  • Функции LDAP
  • Поиск по LDAP дереву

ldap_search

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_search — Поиск по LDAP дереву

Описание

ldap_search(
LDAP\Connection|array $ldap,
array|string $base,
array|string $filter,
array $attributes = [],
int $attributes_only = 0,
int $sizelimit = -1,
int $timelimit = -1,
int $deref = LDAP_DEREF_NEVER,
?array $controls = null
): LDAP\Result|array|false

Выполняет поиск для указанного фильтра в директории с границами LDAP_SCOPE_SUBTREE. Эквивалентно поиску по всему каталогу.

Также можно выполнять параллельный поиск. В этом случае первым аргументом должен быть массив экземпляров LDAP\Connection, а не один экземпляр. Если поиск не должен использовать один и тот же базовый DN и фильтр, в качестве аргументов можно передать массив базовых DN и/или массив фильтров. Количество элементов в массивах должно совпадать с количеством экземпляров LDAP\Connection, поскольку первые записи массивов используются для одного поиска, вторые — для другого и так далее. При параллельном поиске возвращается массив экземпляров LDAP\Result, за исключением возникновения ошибки, когда возвращается значение false.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

base

Базовое DN для каталога.

filter

Поисковый фильтр может быть простым или расширенным, используя булевы операторы в формате, описанном в документации LDAP (смотрите » Netscape Directory SDK или » RFC4515 для полной информации о фильтрах).

attributes

Массив необходимых атрибутов, например, array("mail", "sn", "cn"). Обратите внимание, что "dn" всегда возвращается, независимо от того, какие типы атрибутов требуются.

Использование этого параметра намного более эффективно, чем действие по умолчанию (которое должно возвратить все атрибуты и присвоенные им значения). Поэтому использование этого параметра считается хорошей практикой.

attributes_only

Должен быть равен 1, если требуются только типы атрибута. Если равен 0, то, по умолчанию, выбираются и типы атрибутов и значения.

sizelimit

Позволяет ограничить количество выбранных записей. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку sizelimit на стороне сервера. Хотя его можно установить ниже.

Некоторые хосты серверов каталогов будут сконфигурированы так, чтобы возвратить не больше, чем предварительно установленное число записей. Если это произойдёт, то сервер укажет, что возвратил только частичный набор результатов. Это также происходит, если Вы используете этот параметр чтобы ограничить количество выбранных записей.

timelimit

Устанавливает число секунд, ограничивающее процесс поиска. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку timelimit на стороне сервера. Хотя его можно установить ниже.

deref

Определяет как псевдонимы должны быть обработаны во время поиска. Может быть одним из следующих:

  • LDAP_DEREF_NEVER - (по умолчанию) псевдонимы никогда не разыменовываются.
  • LDAP_DEREF_SEARCHING - псевдонимы должны быть разыменованы во время поиска, но не при определении местоположения базового объекта поиска.
  • LDAP_DEREF_FINDING - псевдонимы должны быть разыменованы при определении местоположения базового объекта, но не во время поиска.
  • LDAP_DEREF_ALWAYS - псевдонимы должны разыменовываться всегда.

controls

Массив управляющих констант LDAP для отправки в запросе.

Возвращаемые значения

Возвращает экземпляр LDAP\Result, массив экземпляров LDAP\Result или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 | Возвращает экземпляр LDAP\Result; ранее возвращался ресурс (resource).
8.0.0 | controls теперь допускает значение null; ранее значение по умолчанию было [].
7.3.0 | Добавлена поддержка параметра controls

Примеры

Пример ниже получает организационную единицу, фамилию, имя и адрес электронной почты для всех людей в "My Company", где фамилия или имя содержат подстроку $person. Этот пример использует логический фильтр, чтобы сказать серверу, что нужно искать информацию больше, чем в одном атрибуте.

Пример #1 LDAP поиск

<?php
// $ds допустимый экземпляр LDAP\Connection

// $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, PHP 8)

ldap_set_option — Установить значение данной опции

Описание

ldap_set_option(?LDAP\Connection $ldap, int $option, array|string|int|bool $value): bool

Устанавливает значение указанной опции в value.

Список параметров

ldap

Либо экземпляр LDAP\Connection, возвращаемый функцией ldap_connect() для установки опции для этого соединения, либо null для установки опции глобально.

option

Опция option может быть одной из:

Опция | Тип | Доступна с
LDAP_OPT_DEREF | int
LDAP_OPT_SIZELIMIT | int
LDAP_OPT_TIMELIMIT | int
LDAP_OPT_NETWORK_TIMEOUT | int
LDAP_OPT_PROTOCOL_VERSION | int
LDAP_OPT_ERROR_NUMBER | int
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 | int | 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 | int | PHP 7.1.0
LDAP_OPT_X_TLS_RANDOM_FILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_REQUIRE_CERT | int | 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. Смотрите также второй пример, расположенный ниже.

value

Новое значение для указанной option (опции).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .

Примеры

Пример #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, PHP 8)

ldap_set_rebind_proc — Установить функцию обратного вызова для повторного связывания при ссылочном поиске

Описание

ldap_set_rebind_proc(LDAP\Connection $ldap, ?callable $callback): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.0.0 | callback теперь допускает значение null.


Сортирует записи 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

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.0.0 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

ldap_sort(resource $link, resource $result, string $sortfilter): bool

Сортирует результат запроса LDAP, возвращаемый функцией ldap_search().

Так как эта функция сортирует результат на клиентской стороне, вы можете получить не те результаты, которые ожидали в случае, если был превышен лимит sizelimit на стороне сервера либо указанный в ldap_search().

Список параметров

link

Ресурс LDAP, возвращаемый функцией ldap_connect().

result

Дескриптор результата поиска, возвращаемый функцией ldap_search().

sortfilter

Атрибут, используемый в качестве ключа при сортировке.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | Функция была удалена.

Примеры

Сортировка результата поиска.

Пример #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, PHP 8)

ldap_start_tls — Запускает TLS

Описание

ldap_start_tls(LDAP\Connection $ldap): 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, PHP 8)

ldap_t61_to_8859 — Переводит символы из кодировки t61 в ISO-8859

Описание

ldap_t61_to_8859(string $value): string|false
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.


Разорвать привязку к директории LDAP

  • « ldap_t61_to_8859
  • LDAP\Connection »
  • PHP Manual
  • Функции LDAP
  • Разорвать привязку к директории LDAP

ldap_unbind

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_unbind — Разорвать привязку к директории LDAP

Описание

ldap_unbind(LDAP\Connection $ldap): bool

Разрывает привязку к LDAP-директории.

Список параметров

ldap

Экземпляр LDAP\Connection, возвращаемый функцией ldap_connect().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .

Смотрите также

  • ldap_bind() - Привязать к LDAP директории


Класс LDAP\Connection

(PHP 8 >= 8.1.0)

Введение

Полностью непрозрачный класс, заменяющий ресурс ldap в PHP 8.1.0.

Обзор классов

final class LDAP\Connection {
}


Класс LDAP\Result

(PHP 8 >= 8.1.0)

Введение

Полностью непрозрачный класс, заменяющий ресурс ldap result в PHP 8.1.0.

Обзор классов

class LDAP\Result {
}


Класс LDAP\ResultEntry

(PHP 8 >= 8.1.0)

Введение

Полностью непрозрачный класс, заменяющий ресурс ldap result entry в PHP 8.1.0.

Обзор классов

final class LDAP\ResultEntry {
}


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.
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
Параметры конфигурации сессии, влияющие на поведение Memcache
Имя | По умолчанию | Место изменения | Список изменений
session.save_handler | "files" | PHP_INI_ALL | Поддерживается, начиная с memcache 2.1.2
session.save_path | "" | PHP_INI_ALL | Поддерживается, начиная с memcache 2.1.2
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

memcache.allow_failover bool

Разрешение прозрачного переключения (failover) на другие сервера при возникновении ошибок.

memcache.max_failover_attempts int

Устанавливает число попыток чтения и записи данных. Используется только в сочетании с memcache.allow_failover.

memcache.chunk_size int

Устанавливает размер передаваемых блоков данных. Использование малых значений приводит к повышению сетевой активности. В случае неожиданного замедления работы попробуйте увеличить значение до 32768.

memcache.default_port string

Устанавливает номер TCP-порта по умолчанию для подключения к серверу memcached, если явно не указан иной.

memcache.hash_strategy string

Контролирует стратегию функций отображения ключей на сервера. Установите этот параметр в consistent для включения последовательного хеширования, которое не требует переназначения ключей кеша при добавлении и удалении серверов из пула. Установка же этого параметра в standard приводит к использованию старой стратегии.

memcache.hash_function string

Устанавливает хеш-функцию для отображения ключей на сервера. При значении crc32 будет использоваться стандартный CRC32 хеш, а при fnv - FNV-1a.

memcache.protocol string

memcache.redundancy int

memcache.session_redundancy int

memcache.compress_threshold int

memcache.lock_timeout int

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 - это идентификатор ссылки для подключения к кеш-серверу.


Предопределённые константы

Константы Memcache
Имя | Описание
MEMCACHE_COMPRESSED (int) | Используется для включения сжатия данных "на лету" для следующих методов: Memcache::set(), Memcache::add() и Memcache::replace().
MEMCACHE_HAVE_SESSION (int) | 1, если соединение с Memcache установлено, иначе 0.
MEMCACHE_USER1 (int) | Используется для включения пользовательского флага приложения для Memcache::set(), Memcache::add() и Memcache::replace().
MEMCACHE_USER2 (int) | Используется для включения пользовательского флага приложения для Memcache::set(), Memcache::add() и Memcache::replace().
MEMCACHE_USER3 (int) | Используется для включения пользовательского флага приложения для Memcache::set(), Memcache::add() и Memcache::replace().
MEMCACHE_USER4 (int) | Используется для включения пользовательского флага приложения для 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.

Обзор классов

class 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(): bool
connect(string $host, int $port = ?, int $timeout = ?): bool
decrement(string $key, int $value = 1): int|false
delete(string $key, int $timeout = 0): bool
flush(): 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|false
getVersion(): string|false
increment(string $key, int $value = 1): int|false
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

Возвращаемые значения

Возвращает 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);

?>

Примечания

Внимание

Когда значение port не указано, этот метод использует значение, указанное в ini-директиве PHP memcache.default_port. Если это значение было изменено где-нибудь ещё в вашем приложении, то это может дать непредсказуемые результаты. По этой причине лучше всегда явно указывать порт при вызове метода.

Смотрите также

  • 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(): 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 секунды - вы можете потерять все преимущества от кеширование, если ваше соединение очень медленное.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::connect()

<?php

/* процедурное API */

$memcache_obj = memcache_connect('memcache_host', 11211);

/* объектно-ориентированное API */

$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);

?>

Примечания

Внимание

Если порт port не задан, этот метод использует значение по умолчанию, заданное в ini-настройке memcache.default_port. Если это значение изменится где-нибудь в вашем приложении - это может привести к неожиданным результатам. По этой причине имеет смысл всегда указать порт явно при вызове метода.

Смотрите также

  • 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|false

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 секунд. Не используйте этот параметр.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
Неизвестно | Не рекомендуется использование параметра timeout. Поведение будет различаться в разных версиях memcache, однако его установка в 0 безопасна. Другие значения этого параметра могу привести к ошибкам при удалении элемента.

Примеры

Пример #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(): 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|false

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(): string|false

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|false

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

Позволяет пользователю задать 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 | On | PHP_INI_ALL | Доступно с memcached 0.1.0.
memcached.sess_consistent_hash | On | PHP_INI_ALL | Доступно с memcached 2.1.0. Значение по умолчанию — On, начиная с memcached 3.0.0.
memcached.sess_binary | Off | PHP_INI_ALL | Доступно с memcached 2.0.0. Заменено на memcached.sess_binary_protocol в memcached 3.0.0.
memcached.sess_lock_wait | 150000 | PHP_INI_ALL | Доступно с memcached 0.1.0. Удалено в memcached 3.0.0.
memcached.sess_prefix | memc.sess.key. | PHP_INI_ALL | Доступно с memcached 0.1.0.
memcached.sess_number_of_replicas | 0 | PHP_INI_ALL | Доступно с memcached 2.1.0.
memcached.sess_randomize_replica_read | Off | PHP_INI_ALL | Доступно с memcached 2.1.0.
memcached.sess_remove_failed | On | PHP_INI_ALL | Доступно с memcached 2.1.0. Заменено на memcached.sess_remove_failed_servers в memcached 3.0.0.
memcached.compression_type | fastlz | PHP_INI_ALL | Доступно с memcached 0.1.0.
memcached.compression_factor | 1.3 | PHP_INI_ALL | Доступно с memcached 0.1.0.
memcached.compression_threshold | 2000 | PHP_INI_ALL | Доступно с memcached 0.1.0.
memcached.serializer | igbinary | PHP_INI_ALL | Доступно с memcached 0.1.0.
memcached.use_sasl | Off | PHP_INI_SYSTEM | Доступно с memcached 2.2.0. Удалено в memcached 3.0.0.
memcached.default_binary_protocol | Off | PHP_INI_ALL | Доступно с memcached 3.0.0.
memcached.default_connect_timeout | 0 | PHP_INI_ALL | Доступно с memcached 3.0.0.
memcached.default_consistent_hash | Off | PHP_INI_ALL | Доступно с memcached 3.0.0.
memcached.sess_binary_protocol | On | PHP_INI_ALL | Доступно с memcached 3.0.0. Заменено на memcached.sess_binary.
memcached.sess_connect_timeout | 1000 | PHP_INI_ALL | Доступно с memcached 2.2.0.
memcached.sess_consistent_hash_type | ketama | PHP_INI_ALL | Доступно с memcached 3.1.0.
memcached.sess_lock_expire | 0 | PHP_INI_ALL | Доступно с memcached 2.2.0.
memcached.sess_lock_retries | 5 | PHP_INI_ALL | Доступно с memcached 3.0.0.
memcached.sess_lock_wait_max | 150 | PHP_INI_ALL | Доступно с memcached 3.0.0. Значение по умолчанию 150 с memcached 3.1.0 (предыдущее значение 2000).
memcached.sess_lock_wait_min | 150 | PHP_INI_ALL | Доступно с memcached 3.0.0. Значение по умолчанию 150 с memcached 3.1.0 (предыдущее значение 1000).
memcached.sess_persistent | Off | PHP_INI_ALL | Доступно с memcached 3.0.0.
memcached.sess_remove_failed_servers | Off | PHP_INI_ALL | Доступно с memcached 3.0.0. Заменено на memcached.sess_remove_failed.
memcached.sess_server_failure_limit | 0 | PHP_INI_ALL | Доступно с memcached 3.0.0.
memcached.sess_sasl_password | null | PHP_INI_ALL | Доступно с memcached 2.2.0.
memcached.sess_sasl_username | null | PHP_INI_ALL | Доступно с memcached 2.2.0.
memcached.store_retry_count | 0 | PHP_INI_ALL | Доступно с memcached 2.2.0. Значение по умолчанию 0 с memcached 3.2.0 (предыдущее значение 2).

Краткое разъяснение конфигурационных директив.

memcached.sess_locking bool

Использовать блокировку сессий. Допустимые значения: On, Off. По умолчанию — On.

memcached.sess_consistent_hash bool

Если установлено значение On, то для обработки сессий будет использовано согласованное хеширование (libketama). При использовании согласованного хеширования можно добавлять или удалять узлы кеширования без больших потерь кешированных ключей. По умолчанию — On.

memcached.sess_binary bool

Использовать бинарный режим сессии. Реплики модуля libmemcached работают только если включён этот режим. По умолчанию — Off.

memcached.sess_lock_wait int

Время ожидания повторной синхронизации сессии в микросекундах. При установке этого значения нужно быть осторожным. Допустимы целочисленные значения. Если установлено значене 0, то будет использовано значение по умолчанию. Отрицательные значения уменьшают блокировку попытки блокировки. По умолчанию — 150000.

memcached.sess_prefix string

Префикс ключа сессии. Строка длиной не более 219 байтов. По умолчанию — memc.sess.key.

memcached.sess_number_of_replicas int

Записывать данные на ряд дополнительных серверов memcached. Это «высокая доступность для бедняков», как её называет модуль libmemcached. Если это значение положительное и активирован режим sessions_remove_failed_servers, когда сервер memcached выходит из строя, сессия будет по-прежнему доступна из реплики. Однако, если отказавший сервер memcache снова становится доступным, он будет читать сессию оттуда, которая может иметь старые данные или вообще не иметь данных. По умолчанию — 0.

memcached.sess_randomize_replica_read bool

Случайное чтение реплики memcached сессией.

memcached.sess_remove_failed int

Разрешить автоматическое удаление недоступных серверов memcached.

memcached.compression_type string

Настройка типа сжатия, корректные значения: fastlz, zlib. По умолчанию — fastlz.

memcached.compression_factor float

Коэффициент сжатия. Хранить значения сжатыми только если коэффициент сжатия превышает заданный. Храним сжатым, если: plain_len > comp_len * factor. По умолчанию — 1.3 (экономия места 23 %).

memcached.compression_threshold int

Порог сжатия. Не сжимать сериализованные значения меньше указанного размера. По умолчанию 2000 байтов.

memcached.serializer string

Устанавливает сериализатор по умолчанию для новых объектов memcached. Допустимые значения: php, igbinary, json, json_array, msgpack.

json

Стандартное для PHP кодирование в формат JSON. Этот сериализатор быстрый и компактный, но работает только с данными в кодировке UTF-8, и не полностью реализует сериализацию. Подробнее об этом рассказано в описании модуля JSON. Доступно с memcached 0.2.0.

json_array

Тот же json, но декодируется в массивы. Доступно с memcached 2.0.0.

php

Стандартный сериализатор PHP.

igbinary

Бинарный сериализатор. Доступно с memcached 0.1.4

msgpack

Межъязыковой двоичный сериализатор. Доступно с memcached 2.2.0.

По умолчанию igbinary, если доступен, затем igbinary, если доступен, иначе PHP.

memcached.use_sasl bool

Использовать аутентификацию SASL при соединении. Допустимые значения: On, Off. По умолчанию — Off.

memcached.default_binary_protocol bool

Устанавливает протокол memcached по умолчанию для новых подключений. (Чтобы настроить протокол memcached для соединений, используемых сессиями, вместо нее используют директиву memcached.sess_binary_protocol.) Если установлено значение On, по умолчанию будет использован двоичный протокол memcached. Если установлено значение Off, будет использован текстовый протокол memcached. По умолчанию — Off.

memcached.default_connect_timeout int

Устанавливает время ожидания соединения memcached по умолчанию для новых соединений. (Чтобы настроить время ожидания соединения memcached для сессий, вместо этого используют memcached.sess_connect_timeout.) В неблокирующем режиме это изменяет значение времени ожидания во время подключения к сокету в миллисекундах. Указание -1 означает бесконечное время ожидания. Указание 0 означает использование времени ожидания соединения по умолчанию для библиотеки memcached. По умолчанию — 0.

memcached.default_consistent_hash bool

Устанавливает значение по умолчанию для согласованного хеширования для новых подключений. (Чтобы настроить согласованное хеширование для сессий, вместо этого используют memcached.sess_consistent_hash.) Если установлено значение On, для обработки сессии используется согласованное хеширование (libketama). Когда используется согласованное хеширование, можно добавлять или удалять узлы кеша, не беспокоясь о том, что существующие ключи по умолчанию отключены.

memcached.sess_binary_protocol bool

Использовать двоичный протокол memcached для сессий memcached (вместо текстового протокола). Реплики модуля libmemcached работают, только если включён двоичный режим. Однако некоторые прокси (например, twemproxy) будут работать, только если двоичный протокол отключён. По умолчанию — On с libmemcached 1.0.18 или новее. До libmemcached 1.0.18 значение по умолчанию Off.

Замечание: В более старых версиях php-memcached эта директива была выключена и называлась memcached.sess_binary.

memcached.sess_connect_timeout int

Значение времени ожидания соединения memcached. В неблокирующем режиме это изменяет значение времени ожидания во время соединения сокета в миллисекундах. Указание -1 означает бесконечное время ожидания.

memcached.sess_consistent_hash_type string

Тип согласованного хеширования сессии Memcached. Если установлено значение ketama (по умолчанию для php-memcached 3.x), для обработки сессии используется согласованное хеширование модуля libketama, если установлено значение ketama_weighted (по умолчанию для php-memcached 2.x), для обработки сессии используется взвешенное согласованное хеширование (модуль libketama). По умолчанию — ketama.

memcached.sess_lock_expire int

Время в секундах до того, как должна сработать блокировка. Установка значения 0 приводит к поведению по умолчанию — будет использована PHP-директива max_execution_time. По умолчанию — 0.

memcached.sess_lock_retries int

Количество попыток повторной блокировки блокировки сессии, не включая первую попытку. По умолчанию — 5.

memcached.sess_lock_wait_max int

Максимальное время ожидания в миллисекундах между попытками блокировки сессии. По умолчанию — 150.

memcached.sess_lock_wait_min int

Минимальное время ожидания в миллисекундах между попытками блокировки сессии. Это значение удваивается при каждой попытке блокировки до тех пор, пока не будет достигнуто значение, заданное директивой memcached.sess_lock_wait_max, очередные попытки будут занимать время достигнутого значения. По умолчанию — 150.

memcached.sess_persistent bool

Следует ли повторно использовать соединения memcached, соответствующие значению (значениям) директивы session.save_path после завершения выполнения скрипта. Эту директиву не используют, если определённые настройки (например, настройки SASL, sess_binary_protocol) будут переопределены между запросами. По умолчанию — Off.

memcached.sess_remove_failed_servers bool

Разрешить автоматическое удаление отказавшего сервера memcached. По умолчанию — Off.

Замечание: В предыдущих версиях эта директива называлась memcached.sess_remove_failed.

memcached.sess_server_failure_limit int

Установка большего, чем установленное по умолчанию, значения разрешит удаление сервера после заданного количества непрерывных сбоев подключения. По умолчанию — 0.

memcached.sess_sasl_password string

Пароль сессии SASL. Для включения SASL необходимо указать имя пользователя и пароль.

memcached.sess_sasl_username string

Имя пользователя сессии SASL. Для включения SASL необходимо указать имя пользователя и пароль.

memcached.store_retry_count int

Количество повторных попыток для неудачных команд сохранения. Этот механизм прозрачно переключает на вторичные серверы при сбое операций set/increment/decrement/setMulti на желаемом сервере в среде c множеством серверов. По умолчанию — 2.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

Memcached::OPT_COMPRESSION

Разрешает или запрещает сжатие данных. Если разрешено, то записи длиннее определённого порога (обычно 100 байт) будут прозрачно сжиматься при сохранении и разжиматься при извлечении.

Тип: bool, по умолчанию: true.

Memcached::OPT_SERIALIZER

Задаёт сериализатор для сериализации не скалярных значений. Корректными значениями являются Memcached::SERIALIZER_PHP и Memcached::SERIALIZER_IGBINARY. Последний допустим, только если memcached собран с опцией --enable-memcached-igbinary и загружен модуль igbinary.

Тип: int, по умолчанию: Memcached::SERIALIZER_PHP.

Memcached::SERIALIZER_PHP

Сериализатор PHP по умолчанию.

Memcached::SERIALIZER_IGBINARY

Сериализатор » igbinary. Вместо текстового представления он сохраняет данные в компактном бинарном формате, что даёт выигрыш в размере и скорости работы.

Memcached::SERIALIZER_JSON

Сериализатор JSON.

Memcached::OPT_PREFIX_KEY

Используется для создания "домена" для ваших ключей. Заданное здесь значение будет использоваться в качестве префикса для всех ключей. Значение не может быть длиннее 128 символов и, соответственно, максимальная длина ключей будет уменьшена. Префикс применяется только для обычных ключей, но не для серверных ключей.

Тип: string, по умолчанию: "".

Memcached::OPT_HASH

Задаёт алгоритм хеширования для ключей. Можно задавать константами Memcached::HASH_*. Каждый алгоритм хеширования имеет свои достоинства и недостатки. Используйте значение по умолчанию, если не уверены или вам всё равно.

Тип: int, по умолчанию: 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

Задаёт способ распределения ключей по серверам. В данный момент поддерживаются методы модульного и консистентного хеширования. Консистентное хеширование даёт лучшее распределение и позволяет добавлять сервера в кластер с минимальными потерями кеша.

Тип: int, по умолчанию: Memcached::DISTRIBUTION_MODULA.

Memcached::DISTRIBUTION_MODULA

Модульный алгоритм распределения ключей.

Memcached::DISTRIBUTION_CONSISTENT

Алгоритм распределения ключей "Консистентное хеширование" (базируется на libketama).

Memcached::OPT_LIBKETAMA_COMPATIBLE

Включает или отключает совместимость с поведением типа libketama. Если включено, то алгоритм хеширования ключей устанавливается в MD5 и распределение ключей в режим консистентного хеширования на базе весов. Это полезно потому, что другие клиенты с поведением типа libketama (Python, Ruby и т.д.) с такими же настройками сервера смогут получить прозрачный доступ к ключам.

Замечание:

Крайне рекомендуется включить эту опцию если вы хотите использовать консистентное хеширование. Кроме того, она может быть включена по умолчанию в следующих релизах.

Тип: bool, по умолчанию: false.

Memcached::OPT_BUFFER_WRITES

Включает или отключает буферизованный ввод/вывод. Включение буферизации приводит к буферизации команд хранилищу вместо моментальной отправки. Любое действие по извлечению данных приведёт к немедленной отправке буфера на удалённый сервер. Выход или закрытие соединения также приводит к немедленной отправке буфера.

Тип: bool, по умолчанию: false.

Memcached::OPT_BINARY_PROTOCOL

Включает использование бинарного протокола. Учтите, что на уже открытом соединении включить данную опцию не получится.

Тип: bool, по умолчанию: false.

Memcached::OPT_NO_BLOCK

Включает или отключает асинхронный ввод/вывод. Это самый быстрый транспорт для функций хранения.

Тип: bool, по умолчанию: false.

Memcached::OPT_NOREPLY

Включает или отключает игнорирование результата функций хранения (set, add, replace, append, prepend, delete, increment, decrement и т.д.). Функции хранения будут отправлены, не тратя время на ожидание ответа (ответа не будет). Этот параметр не влияет на команды извлечения, такие как Memcached::get().

Тип: bool, по умолчанию: false.

Memcached::OPT_TCP_NODELAY

Включает или отключает опцию no-delay для сокетов соединения (в некоторых случаях может дать прирост скорости).

Тип: bool, по умолчанию: false.

Memcached::OPT_SOCKET_SEND_SIZE

Максимальный размер буфера отправки для сокета в байтах.

Тип: int, по умолчанию: зависит от настроек платформы/ядра.

Memcached::OPT_SOCKET_RECV_SIZE

Максимальный размер буфера приёма для сокета в байтах.

Тип: int, по умолчанию: зависит от настроек платформы/ядра.

Memcached::OPT_CONNECT_TIMEOUT

В неблокирующем режиме задаёт время ожидания соединения для сокета в миллисекундах.

Тип: int, по умолчанию: 1000.

Memcached::OPT_RETRY_TIMEOUT

Задержка в секундах перед попыткой повторного соединения после ошибки.

Тип: int, по умолчанию: 0.

Memcached::OPT_SEND_TIMEOUT

Время ожидания отправки для сокета в микросекундах. В случаях, когда вы не можете использовать неблокирующий ввод/вывод это поможет вам сохранить время ожидания при отсылке данных.

Тип: int, по умолчанию: 0.

Memcached::OPT_RECV_TIMEOUT

Время ожидания чтения для сокета в микросекундах. В случаях, когда вы не можете использовать неблокирующий ввод/вывод это поможет вам сохранить время ожидания при чтении данных.

Тип: int, по умолчанию: 0.

Memcached::OPT_POLL_TIMEOUT

Период опроса сокета в миллисекундах.

Тип: int, по умолчанию: 1000.

Memcached::OPT_CACHE_LOOKUPS

Разрешает или запрещает кешировать результаты запросов к DNS.

Тип: bool, по умолчанию: false.

Memcached::OPT_SERVER_FAILURE_LIMIT

Задаёт максимальное количество неудачных попыток соединиться с сервером. После достижения этого предела сервер будет удалён.

Тип: int, по умолчанию: 0.

Memcached::HAVE_IGBINARY

Указывает, доступна ли поддержка сериализатора igbinary.

Тип: bool.

Memcached::HAVE_JSON

Указывает, доступна ли поддержка сериализатора JSON.

Тип: bool.

Memcached::HAVE_MSGPACK

Указывает, доступна ли поддержка сериализатора msgpack.

Type: bool.

Доступно с Memcached 3.0.0.

Memcached::HAVE_SESSION

Type: bool.

Доступно с Memcached 3.0.0.

Memcached::HAVE_SASL

Type: bool.

Доступно с 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
  • Функции обратного вызова

Функции обратного вызова

Содержание

  • Функции обратного вызова для результирующего набора
  • Функции обратного вызова сквозного чтения кеша


Функции обратного вызова для результирующего набора

callable для результирующего набора вызываются методами 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.

Обзор классов

class Memcached {
/* Методы */
public __construct(?string $persistent_id = null, ?callable $callback = null, ?string $connection_str = null)
public add(string $key, mixed $value, int $expiration = 0): bool
public addByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): 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(
string|int|float $cas_token,
string $key,
mixed $value,
int $expiration = 0
): bool
public casByKey(
string|int|float $cas_token,
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool
public decrement(
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false
public decrementByKey(
string $server_key,
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false
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): array
public fetch(): array|false
public fetchAll(): array|false
public flush(int $delay = 0): bool
public get(string $key, ?callable $cache_cb = null, int $get_flags = 0): mixed
public getAllKeys(): array|false
public getByKey(
string $server_key,
string $key,
?callable $cache_cb = null,
int $get_flags = 0
): mixed
public getDelayed(array $keys, bool $with_cas = false, ?callable $value_cb = null): bool
public getDelayedByKey(
string $server_key,
array $keys,
bool $with_cas = false,
?callable $value_cb = null
): bool
public getMulti(array $keys, int $get_flags = 0): array|false
public getMultiByKey(string $server_key, array $keys, int $get_flags = 0): array|false
public getOption(int $option): mixed
public getResultCode(): int
public getResultMessage(): string
public getServerByKey(string $server_key): array|false
public getServerList(): array
public getStats(?string $type = null): array|false
public getVersion(): array|false
public increment(
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false
public incrementByKey(
string $server_key,
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false
public isPersistent(): bool
public isPristine(): bool
public prepend(string $key, string $value): ?bool
public prependByKey(string $server_key, string $key, string $value): ?bool
public quit(): bool
public replace(string $key, mixed $value, int $expiration = 0): bool
public replaceByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool
public resetServerList(): bool
public set(string $key, mixed $value, int $expiration = 0): bool
public setByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool
public setMulti(array $items, int $expiration = 0): bool
public setMultiByKey(string $server_key, array $items, int $expiration = 0): bool
public setOption(int $option, mixed $value): bool
public setOptions(array $options): bool
public setSaslAuthData(string $username, string $password): bool
public touch(string $key, int $expiration = 0): bool
public touchByKey(string $server_key, string $key, int $expiration = 0): 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 = 0): 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 = 0
): 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 в случае возникновения ошибки. Возвращает null, если сжатие включено.

Ошибки

Возвращает null и выдаёт ошибку уровня E_WARNING, если сжатие включено.

Примеры

Пример #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 в случае возникновения ошибки. Возвращает null, если сжатие включено.

Ошибки

Возвращает null и выдаёт ошибку уровня E_WARNING, если сжатие включено.

Смотрите также

  • Memcached::append() - Добавляет данные к существующей записи
  • Memcached::prepend() - Добавляет данные в начало существующей записи


Сравнивает и устанавливает значение для записи

  • « Memcached::appendByKey
  • Memcached::casByKey »
  • PHP Manual
  • Memcached
  • Сравнивает и устанавливает значение для записи

Memcached::cas

(PECL memcached >= 0.1.0)

Memcached::cas — Сравнивает и устанавливает значение для записи

Описание

public Memcached::cas(
string|int|float $cas_token,
string $key,
mixed $value,
int $expiration = 0
): 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(
string|int|float $cas_token,
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): 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 = null, ?callable $callback = null, ?string $connection_str = null)

Создаёт экземпляр класса Memcached, осуществляющий соединение с сервером memcache.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

persistent_id

По умолчанию экземпляр класса Memcached уничтожается в конце запроса. Для создания экземпляра, который сохраняется между запросами, необходимо использовать persistent_id, чтобы указать уникальный идентификатор для экземпляра. Все экземпляры класса, созданные с использованием одного и тот же идентификатора persistent_id будут использовать общее соединение.

callback

connection_str

Примеры

Пример #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|false

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|false

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

Удаляет запись с ключом key с сервера.

Список параметров

key

Ключ удаляемой записи.

time

Время к течение которого сервер ожидает удаления записи.

Замечание: Начиная с версии memcached 1.3.0 (выпущена в 2009 году), функция больше не поддерживается. Передача ненулевого параметра time приведёт к возникновению ошибки при удалении. Метод Memcached::getResultCode() вернёт MEMCACHED_INVALID_ARGUMENTS.

Возвращаемые значения

Возвращает 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

Период времени, в течение которого сервер ожидает удаления записи.

Замечание: Начиная с версии memcached 1.3.0 (выпущена в 2009 году), функция больше не поддерживается. Передача ненулевого параметра time приведёт к возникновению ошибки при удалении. Метод Memcached::getResultCode() вернёт MEMCACHED_INVALID_ARGUMENTS.

Возвращаемые значения

Возвращает 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

Удаляет записи, переданные в массиве keys с сервера.

Список параметров

keys

Ключ удаляемой записи.

time

Время к течение которого сервер ожидает удаления записи.

Замечание: Начиная с версии memcached 1.3.0 (выпущена в 2009 году), функция больше не поддерживается. Передача ненулевого параметра time приведёт к возникновению ошибки при удалении. Метод Memcached::getResultCode() вернёт MEMCACHED_INVALID_ARGUMENTS.

Возвращаемые значения

Возвращает массив с индексами 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): array

Memcached::deleteMultiByKey() работает аналогично Memcached::deleteMulti(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом keys на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хеширования по ключу самого элемента, мы хешируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

keys

Ключ удаляемой записи.

time

Время к течение которого сервер ожидает удаления записи.

Замечание: Начиная с версии memcached 1.3.0 (выпущена в 2009 году), функция больше не поддерживается. Передача ненулевого параметра time приведёт к возникновению ошибки при удалении. Метод Memcached::getResultCode() вернёт MEMCACHED_INVALID_ARGUMENTS.

Возвращаемые значения

Возвращает массив, проиндексированный ключами keys. Каждый элемент равен true, если соответствующий ключ был удалён или одной из констант Memcached::RES_*, если при удалении возникла ошибка.

Метод Memcached::getResultCode() вернёт код результата для последней выполненной операции удаления, то есть операции удаления для последнего элемента keys.

Смотрите также

  • 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(): array|false

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(): array|false

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 = null, int $get_flags = 0): mixed

Memcached::get() возвращает запись, которая ранее была сохранена под ключом key. Если элемент не найден и для параметра get_flags задано Memcached::GET_EXTENDED, то она также возвратит значение токена CAS для этой записи. Обратитесь к документации по Memcached::cas() для получения информации об использовании CAS токена. Чтение при помощи кеширующих callback-функций может быть использовано с помощью параметра cache_cb.

Список параметров

key

Ключ получаемой записи.

cache_cb

Функция обратного вызова для кешируемого чтения или null.

get_flags

Флаги, определяющие возвращаемый результат. Если задана константа Memcached::GET_EXTENDED, функция также возвратит токен CAS.

Возвращаемые значения

Возвращает значение хранимое в кеше или false в противном случае. Если в get_flags установлена константа, Memcached::GET_EXTENDED, возвращается массив, содержащий значение и токен CAS вместо единственного значения. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если переданный ключ не существует.

Список изменений

Версия | Описание
PECL memcached 3.0.0 | Удалён параметр &cas_token. Вместо него добавлен параметр get_flags, в который можно передать значение Memcached::GET_EXTENDED для того, чтобы был возвращён токен CAS.

Примеры

Пример #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 */
/* ... */
}
}
?>

Смотрите также

  • 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(): array|false

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 = null,
int $get_flags = 0
): mixed

Memcached::getByKey() работает аналогично Memcached::get(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хеширования по ключу самого элемента, мы хешируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ получаемой записи.

cache_cb

Callback-функция для кешируемого чтения или null

get_flags

Флаги определяющие возвращаемый результат. Если содержит Memcached::GET_EXTENDED, то будет возвращён токен CAS.

Возвращаемые значения

Возвращает значение хранимое в кеше или false в противном случае. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если переданный ключ не существует.

Список изменений

Версия | Описание
PECL memcached 3.0.0 | Удалён параметр &cas_token. Вместо него добавлен параметр get_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 = false, ?callable $value_cb = null): 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 = false,
?callable $value_cb = null
): 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 $get_flags = 0): array|false

Memcached::getMulti() работает аналогично методу Memcached::get(), но вместо одной записи получает несколько, ключи которых были переданы в массиве keys.

Замечание:

До версии 3.0 использовался второй аргумент &cas_tokens. Он заполнялся значениями токена CAS для найденных записей. Параметр &cas_tokens был удалён в версии 3.0. Он был заменён новым флагом Memcached::GET_EXTENDED, который указывается в параметре get_flags.

Параметр get_flags может использоваться для указания дополнительных настроек для метода Memcached::getMulti(). На данный момент поддерживаются, только следующие настройки: Memcached::GET_PRESERVE_ORDER гарантирует что записи будут возвращены в том же порядке, что и были запрошены. Memcached::GET_EXTENDED ведёт к тому, что также будут извлечены токены CAS.

Список параметров

keys

Массив ключей для запроса.

get_flags

Флаги для операции получения записей.

Возвращаемые значения

Возвращает массив найденных записей или false в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Список изменений

Версия | Описание
PECL memcached 3.0.0 | Удалён параметр &cas_tokens. Добавлена константа Memcached::GET_EXTENDED для возврата токенов CAS.

Примеры

Пример #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

Смотрите также

  • 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 $get_flags = 0): array|false

Memcached::getMultiByKey() работает аналогично Memcached::getMulti(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хеширования по ключу самого элемента, мы хешируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

keys

Массив с ключами для получения записей.

get_flags

Флаги для операции получения записей.

Возвращаемые значения

Возвращает массив найденных записей или false в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Список изменений

Версия | Описание
PECL memcached 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(): 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(): 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|false

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(): 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(?string $type = null): array|false

Memcached::getStats() возвращает массив, содержащий статистику всех доступных memcache серверов. Ознакомьтесь также со спецификацией » memcache протокола для получения полной информации об этой статистике.

Список параметров

type

Тип статистики, которую необходимо получить.

Возвращаемые значения

Список массивов со статистикой по каждому серверу, где каждый элемент - отдельный сервер или false в случае возникновения ошибки.

Примеры

Пример #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(): array|false

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|false

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|false

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(): 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(): 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 в случае возникновения ошибки. Возвращает null, если сжатие включено.

Ошибки

Возвращает null и выдаёт ошибку уровня E_WARNING, если сжатие включено.

Примеры

Пример #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 в случае возникновения ошибки. Возвращает null, если сжатие включено.

Ошибки

Возвращает null и выдаёт ошибку уровня E_WARNING, если сжатие включено.

Смотрите также

  • Memcached::prepend() - Добавляет данные в начало существующей записи
  • Memcached::append() - Добавляет данные к существующей записи


Закрывает все открытые соединения

  • « Memcached::prependByKey
  • Memcached::replace »
  • PHP Manual
  • Memcached
  • Закрывает все открытые соединения

Memcached::quit

(PECL memcached >= 2.0.0)

Memcached::quit — Закрывает все открытые соединения

Описание

public Memcached::quit(): 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 = 0): 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 = 0
): 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(): 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 = 0): 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 = 0
): 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 = 0): 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 = 0): 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, а некоторые указаны в модуле.

Список параметров

option

Одна из констант Memcached::OPT_*. Изучите раздел константы Memcached для получения более полной информации.

value

Значение, которое необходимо установить.

Замечание:

Параметры, перечисленные ниже, требуют значений, указанных с помощью констант.

  • 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): bool

Memcached::setSaslAuthData() устанавливает имя пользователя и пароль, которые должны быть использованы для SASL аутентификации с серверами memcache.

Данный метод доступен только в случае, если модуль memcached собран с поддержкой SASL. Обратитесь к разделу установка Memcached, чтобы узнать, как это сделать.

Список параметров

username

Имя пользователя для аутентификации.

password

Пароль для аутентификации.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Устанавливает новый срок хранения для записи

  • « Memcached::setSaslAuthData
  • Memcached::touchByKey »
  • PHP Manual
  • Memcached
  • Устанавливает новый срок хранения для записи

Memcached::touch

(PECL memcached >= 2.0.0)

Memcached::touch — Устанавливает новый срок хранения для записи

Описание

public Memcached::touch(string $key, int $expiration = 0): 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 = 0): 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)

Введение

Обзор классов

class MemcachedException extends RuntimeException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): 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.


Установка

Этот модуль » 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 — Закрывает соединение с системным журналом
    • 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-адрес
    • net_get_interfaces — Получает сетевые интерфейсы
    • 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 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 — Закрывает соединение с системным журналом
  • 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-адрес
  • net_get_interfaces — Получает сетевые интерфейсы
  • 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, PHP 8)

checkdnsrr — Проверяет записи DNS, соответствующие переданному имени узла Интернета или IP-адресу

Описание

checkdnsrr(string $hostname, string $type = "MX"): bool

Ищет записи DNS типа type, соответствующие hostname.

Список параметров

hostname

Параметр hostname может быть IP-адресом в виде четырёх десятичных чисел, разделённых точками, или именем узла.

type

Параметр type может быть одним из: A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT или ANY.

Возвращаемые значения

Возвращает true, если были найдены записи; возвращает false, если записей не было найдено или произошла ошибка.

Примечания

Замечание:

Для совместимости с более ранними версиями PHP под Windows, где не было реализации этой функции, используйте класс » PEAR » Net_DNS.

Смотрите также

  • dns_get_record() - Получение ресурсных записей DNS хоста
  • getmxrr() - Получает записи MX, соответствующие переданному доменному имени хоста
  • gethostbyaddr() - Получает доменное имя хоста, соответствующее переданному IP-адресу
  • gethostbyname() - Получает IPv4-адрес, соответствующий переданному имени хоста
  • gethostbynamel() - Получает список IPv4-адресов, соответствующих переданному доменному имени хоста
  • страница руководства named(8)


Закрывает соединение с системным журналом

  • « checkdnsrr
  • dns_check_record »
  • PHP Manual
  • Сетевые функции
  • Закрывает соединение с системным журналом

closelog

(PHP 4, PHP 5, PHP 7, PHP 8)

closelog — Закрывает соединение с системным журналом

Описание

closelog(): true

Функция closelog() закрывает дескриптор, используемый для записи в системный журнал. Использование closelog() не является обязательным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция всегда возвращает true.

Смотрите также

  • syslog() - Генерирует сообщение для системного журнала
  • openlog() - Открывает соединение к системному журналу


Псевдоним checkdnsrr

  • « closelog
  • dns_get_mx »
  • PHP Manual
  • Сетевые функции
  • Псевдоним checkdnsrr

dns_check_record

(PHP 5, PHP 7, PHP 8)

dns_check_record — Псевдоним checkdnsrr()

Описание

Функция является псевдонимом: checkdnsrr().


Псевдоним getmxrr

  • « dns_check_record
  • dns_get_record »
  • PHP Manual
  • Сетевые функции
  • Псевдоним getmxrr

dns_get_mx

(PHP 5, PHP 7, PHP 8)

dns_get_mx — Псевдоним getmxrr()

Описание

Функция является псевдонимом: getmxrr().


Получение ресурсных записей DNS хоста

  • « dns_get_mx
  • fsockopen »
  • PHP Manual
  • Сетевые функции
  • Получение ресурсных записей DNS хоста

dns_get_record

(PHP 5, PHP 7, PHP 8)

dns_get_record — Получение ресурсных записей DNS хоста

Описание

dns_get_record(
string $hostname,
int $type = DNS_ANY,
array &$authoritative_name_servers = null,
array &$additional_records = null,
bool $raw = false
): array|false

Производит выборку 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 вернёт все записи надёжнее.

Замечание:

Windows: DNS_CAA не поддерживается. Поддержка DNS_A6 не реализована.

authoritative_name_servers

Передаётся по ссылке и, если передан, будет заполняться ресурсными записями для удостоверяющих серверов имён (Authoritative Name Servers).

additional_records

Передаётся по ссылке и, если передан, будет заполняться дополнительными записями (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 | 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.

Примеры

Пример #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() возвращает массив additional_records с соответствующими записями. Массив authoritative_name_servers будет содержать список удостоверяющих 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
        )

)

Смотрите также

  • dns_get_mx() - Псевдоним getmxrr
  • dns_check_record() - Псевдоним checkdnsrr


Открывает соединение с интернет-сокетом или доменным сокетом Unix

  • « dns_get_record
  • gethostbyaddr »
  • PHP Manual
  • Сетевые функции
  • Открывает соединение с интернет-сокетом или доменным сокетом Unix

fsockopen

(PHP 4, PHP 5, PHP 7, PHP 8)

fsockopen — Открывает соединение с интернет-сокетом или доменным сокетом Unix

Описание

fsockopen(
string $hostname,
int $port = -1,
int &$error_code = null,
string &$error_message = null,
?float $timeout = null
): resource|false

Устанавливает соединение с сокетом ресурса hostname.

PHP поддерживает целевые ресурсы в интернете и Unix-доменах в том виде, как они описаны в Список поддерживаемых транспортных протоколов. Список поддерживаемых транспортов можно получить с помощью функции stream_get_transports().

По умолчанию сокет будет открыт в блокирующем режиме. Переключить его в неблокирующих режим можно функцией stream_set_blocking().

stream_socket_client() выполняет аналогичную функцию, но предоставляет более широкий выбор настроек соединения, включающий установку неблокирующего режима и возможность предоставления потокового контекста.

Список параметров

hostname

Если установлена поддержка OpenSSL, можно использовать SSL- или TLS-протоколы соединений поверх TCP/IP при подключении к удалённому хосту. Для этого перед hostname нужно добавить префикс ssl:// или tls://.

port

Номер порта. Его можно не указывать, передав -1 для тех протоколов, которые не используют порты, например unix://.

error_code

Если этот параметр предоставить, то в случае возникновения ошибки системного вызова функции connect() он будет принимать номер этой ошибки.

Если значение параметра error_code равно 0, а функция вернула false, значит ошибка произошла до вызова connect(). В большинстве случаев это свидетельствует о проблемах при инициализации сокета.

error_message

Сообщение об ошибке в виде строки.

timeout

Время ожидания соединения в секундах. Если null, используется настройка php.ini default_socket_timeout.

Замечание:

Если требуется установить время ожидания чтения/записи данных через сокет, используйте функцию stream_set_timeout(), т.к. параметр timeout функции fsockopen() ограничивает только время процесса установки соединения с сокетом.

Возвращаемые значения

fsockopen() возвращает файловый указатель, который можно использовать с функциями, работающие с файлами (такие как fgets(), fgetss(), fwrite(), fclose() и feof()). Если вызов завершится неудачно, функция вернёт false.

Ошибки

Вызывает ошибку уровня E_WARNING, если hostname не является допустимым доменом.

Список изменений

Версия | Описание
8.0.0 | timeout теперь допускает значение null.

Примеры

Пример #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, PHP 8)

gethostbyaddr — Получает доменное имя хоста, соответствующее переданному IP-адресу

Описание

gethostbyaddr(string $ip): string|false

Возвращает доменное имя хоста по адресу ip.

Список параметров

ip

IP-адрес хоста

Возвращаемые значения

Возвращает имя хоста в случае успешного выполнения, исходный ip в случае возникновения ошибки, или 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, PHP 8)

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, PHP 8)

gethostbynamel — Получает список IPv4-адресов, соответствующих переданному доменному имени хоста

Описание

gethostbynamel(string $hostname): array|false

Возвращает список 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, PHP 8)

gethostname — Получает имя хоста

Описание

gethostname(): string|false

Функция gethostname() получает стандартное имя хоста для локального компьютера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку с именем хоста либо false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования gethostname()

<?php
echo gethostname(); // может вывести например: sandie
?>

Смотрите также

  • gethostbyname() - Получает IPv4-адрес, соответствующий переданному имени хоста
  • gethostbyaddr() - Получает доменное имя хоста, соответствующее переданному IP-адресу
  • php_uname() - Возвращает информацию об операционной системе, на которой запущен PHP


Получает записи MX, соответствующие переданному доменному имени хоста

  • « gethostname
  • getprotobyname »
  • PHP Manual
  • Сетевые функции
  • Получает записи MX, соответствующие переданному доменному имени хоста

getmxrr

(PHP 4, PHP 5, PHP 7, PHP 8)

getmxrr — Получает записи MX, соответствующие переданному доменному имени хоста

Описание

getmxrr(string $hostname, array &$hosts, array &$weights = null): bool

Ищет в DNS записи MX, соответствующие hostname.

Список параметров

hostname

Имя хоста

hosts

Список найденных записей MX, помещённый в массив hosts.

weights

Если передан массив weights, то он будет заполнен полученной информацией о приоритетах.

Возвращаемые значения

Возвращает true, если были найдены записи; возвращает false, если записей не было найдено или произошла ошибка.

Примечания

Замечание:

Эта функция не должна использоваться для проверки адреса. Возвращаются только почтовые сервера, найденные в 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, PHP 8)

getprotobyname — Получает номер протокола по имени

Описание

getprotobyname(string $protocol): int|false

Функция getprotobyname() возвращает номер протокола по имени, указанном в параметре protocol согласно /etc/protocols.

Список параметров

protocol

Имя протокола.

Возвращаемые значения

Возвращает номер протокола или 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, PHP 8)

getprotobynumber — Получает имя протокола по номеру

Описание

getprotobynumber(int $protocol): string|false

Функция getprotobynumber() возвращает имя протокола по номеру, указанному в параметре protocol согласно /etc/protocols.

Список параметров

protocol

Номер протокола.

Возвращаемые значения

Возвращает имя протокола в виде строки или false в случае возникновения ошибки.

Смотрите также

  • getprotobyname() - Получает номер протокола по имени


Получает номер порта, связанного с интернет-службой и протоколом

  • « getprotobynumber
  • getservbyport »
  • PHP Manual
  • Сетевые функции
  • Получает номер порта, связанного с интернет-службой и протоколом

getservbyname

(PHP 4, PHP 5, PHP 7, PHP 8)

getservbyname — Получает номер порта, связанного с интернет-службой и протоколом

Описание

getservbyname(string $service, string $protocol): int|false

Функция 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, PHP 8)

getservbyport — Получает интернет-службу, соответствующую заданному порту и протоколу

Описание

getservbyport(int $port, string $protocol): string|false

Функция getservbyport() возвращает Интернет-службу, соответствующую заданному в параметре port порту для определённого протокола protocol согласно /etc/services.

Список параметров

port

Номер порта.

protocol

Параметр protocol может быть "tcp" or "udp" (в нижнем регистре).

Возвращаемые значения

Возвращает имя Интернет-службы в виде строки или false в случае возникновения ошибки.

Смотрите также

  • getservbyname() - Получает номер порта, связанного с интернет-службой и протоколом


Вызывает функцию заголовка

  • « getservbyport
  • header_remove »
  • PHP Manual
  • Сетевые функции
  • Вызывает функцию заголовка

header_register_callback

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

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, PHP 8)

header_remove — Удаляет ранее установленные заголовки

Описание

header_remove(?string $name = null): void

Удаляет предварительно установленный функцией header() HTTP-заголовок.

Список параметров

name

Имя удаляемого заголовка. Если null, удаляются все ранее установленные заголовки.

Замечание: Это регистронезависимый параметр.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | name теперь допускает значение null.

Примеры

Пример #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, PHP 8)

header — Отправка HTTP-заголовка

Описание

header(string $header, bool $replace = true, int $response_code = 0): 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
// Этот пример иллюстрирует особый случай "HTTP/".
// Лучшие альтернативы в типичных случаях использования включают:
// 1. header($_SERVER["SERVER_PROTOCOL"] . " 404 Not Found");
// (чтобы переопределить сообщения о состоянии http для клиентов, которые все еще используют HTTP/1.0)
// 2. http_response_code(404); (для использования сообщения по умолчанию)
header("HTTP/1.1 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);
?>

response_code

Принудительно задаёт код ответа HTTP. Следует учитывать, что это будет работать, только если строка header не является пустой.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Если не удалось запланировать отправку заголовка, header() выдаёт ошибку уровня E_WARNING.

Примеры

Пример #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-заголовки.

Замечание:

Спецификация 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() - Удаляет ранее установленные заголовки
  • headers_list() - Возвращает список переданных заголовков (или готовых к отправке)
  • Раздел документации HTTP-аутентификации


Возвращает список переданных заголовков (или готовых к отправке)

  • « header
  • headers_sent »
  • PHP Manual
  • Сетевые функции
  • Возвращает список переданных заголовков (или готовых к отправке)

headers_list

(PHP 5, PHP 7, PHP 8)

headers_list — Возвращает список переданных заголовков (или готовых к отправке)

Описание

headers_list(): array

Функция headers_list() возвращает список заголовков, передаваемых браузеру / клиенту. Для того, чтобы определить переданы ли уже заголовки, используйте функцию headers_sent().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает нумерованный массив заголовков.

Примеры

Пример #1 Пример использования headers_list()

<?php

/* Функция setcookie() добавит заголовок сама по себе */
setcookie('foo', 'bar');

/* Определение пользовательского заголовка
Это будет проигнорировано большинством клиентов */
header("Example-Test: foo");

/* Передача простого текстового контента */
header('Content-Type: text/plain; CHARSET=Windows-1251');

/* Какие заголовки будут отправлены? */
var_dump(headers_list());

?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  string(19) "Set-Cookie: foo=bar"
  [1]=>
  string(17) "Example-Test: foo"
  [2]=>
  string(39) "Content-Type: text/plain; CHARSET=Windows-1251"
}

Примечания

Замечание:

Доступ к заголовкам и их вывод будет осуществляться только в случае, если в используемом вами 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, PHP 8)

headers_sent — Проверяет, были ли отправлены заголовки

Описание

headers_sent(string &$filename = null, int &$line = null): bool

Проверяет, были ли отправлены заголовки.

Нельзя отправить дополнительные строки заголовков, используя функцию header(), если заголовки уже отправлены. Используя эту функцию, можно предупредить ошибки, связанные с HTTP-заголовками. Другим вариантом является использование буферизации вывода.

Список параметров

filename

Если заданы дополнительные параметры filename и line, то функция headers_sent() поместит имя исходного файла PHP и номер строки, с которой начинается вывод в переменные filename и line.

Замечание:

Если вывод начался до выполнения исходного файла PHP (например, из-за ошибки запуска), параметр filename будет установлен как пустая строка.

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, PHP 8)

http_response_code — Получает или устанавливает код ответа HTTP

Описание

http_response_code(int $response_code = 0): int|bool

Получает или задаёт коды ответов 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, PHP 8)

inet_ntop — Конвертирует упакованный интернет-адрес в читаемый формат

Описание

inet_ntop(string $ip): string|false

Эта функция конвертирует 32-битный IPv4 или 128-битный IPv6-адрес (если PHP был собран с поддержкой IPv6) в соответствующее строковое представление адреса.

Список параметров

ip

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;
?>

Смотрите также

  • 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, PHP 8)

inet_pton — Конвертирует читаемый IP-адрес в его упакованное представление in_addr

Описание

inet_pton(string $ip): string|false

Эта функция конвертирует читаемый IPv4- или IPv6-адрес (если PHP был собран с поддержкой IPv6) в адрес, соответствующий 32-битной или 128-битной бинарной структуре.

Список параметров

ip

Читаемый IPv4- или IPv6-адрес.

Возвращаемые значения

Возвращает представление in_addr заданного в параметре ip адреса, или false если задан синтаксически неверный ip (к примеру, IPv4-адрес без точек или IPv6-адрес без двоеточий).

Примеры

Пример #1 Пример использования inet_pton()

<?php
$in_addr = inet_pton('127.0.0.1');

$in6_addr = inet_pton('::1');
?>

Смотрите также

  • ip2long() - Конвертирует строку, содержащую IPv4-адрес в целое число
  • long2ip() - Конвертирует целое число в IPv4-адрес
  • inet_ntop() - Конвертирует упакованный интернет-адрес в читаемый формат


Конвертирует строку, содержащую IPv4-адрес в целое число

  • « inet_pton
  • long2ip »
  • PHP Manual
  • Сетевые функции
  • Конвертирует строку, содержащую IPv4-адрес в целое число

ip2long

(PHP 4, PHP 5, PHP 7, PHP 8)

ip2long — Конвертирует строку, содержащую IPv4-адрес в целое число

Описание

ip2long(string $ip): int|false

Функция ip2long() преобразует IPv4-адрес сети Интернет из стандартного формата (строка с точками) в целое число.

Функция ip2long() также будет работать с неполными IP-адресами. Смотрите » http://ps-2.kev009.com/wisclibrary/aix52/usr/share/man/info/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm для более подробной информации.

Список параметров

ip

Адрес в стандартном формате.

Возвращаемые значения

Возвращает целое число или false, если параметр ip содержит ошибку.

Примеры

Пример #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 int является знаковым, и на 32-битных системах многие IP-адреса будут представлены в виде отрицательных чисел, необходимо использовать "%u" в функции sprintf() или printf() для получения IP-адреса в строковом беззнаковом виде.

Замечание:

Функция ip2long() возвратит -1 для IP 255.255.255.255 в 32-битных системах из-за целочисленного переполнения.

Смотрите также

  • long2ip() - Конвертирует целое число в IPv4-адрес
  • sprintf() - Возвращает отформатированную строку


Конвертирует целое число в IPv4-адрес

  • « ip2long
  • net_get_interfaces »
  • PHP Manual
  • Сетевые функции
  • Конвертирует целое число в IPv4-адрес

long2ip

(PHP 4, PHP 5, PHP 7, PHP 8)

long2ip — Конвертирует целое число в IPv4-адрес

Описание

long2ip(int $ip): string|false

Функция long2ip() преобразует из представления в виде целого числа интернет-адреса в формат с точками (то есть aaa.bbb.ccc.ddd).

Список параметров

ip

Правильное представление адреса в виде целого числа.

Возвращаемые значения

Возвращает IP-адрес Интернета в виде строки или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | Тип параметра ip изменён с типа string на тип int.

Примечания

Замечание:

На 32-битных архитектурах преобразование строки (string) с числами в целочисленное (int) значение будет некорректно для чисел, больших PHP_INT_MAX.

Смотрите также

  • ip2long() - Конвертирует строку, содержащую IPv4-адрес в целое число


Получает сетевые интерфейсы

  • « long2ip
  • openlog »
  • PHP Manual
  • Сетевые функции
  • Получает сетевые интерфейсы

net_get_interfaces

(PHP 7 >= 7.3, PHP 8)

net_get_interfaces — Получает сетевые интерфейсы

Описание

net_get_interfaces(): array|false

Возвращает перечисление сетевых интерфейсов (адаптеров) на локальном компьютере.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив (array), где ключ - это имя интерфейса, а значение - ассоциативный массив атрибутов интерфейса, или false в случае возникновения ошибки.

Каждый ассоциативный массив интерфейса содержит:

Interface attributes
Имя | Описание
description | Необязательное строковое значение для описания интерфейса. Только Windows.
mac | Необязательное строковое значение для MAC-адреса интерфейса. Только Windows.
mtu | Целочисленное значение для максимальной единицы передачи (MTU) интерфейса. Только Windows.
unicast | Массив ассоциативных массивов, смотрите ниже атрибуты одноадресной рассылки.
up | Логический статус (включён/выключен) интерфейса.

Одноадресные атрибуты
Имя | Описание
flags | Целочисленное значение.
family | Целочисленное значение.
address | Строковое значение адреса в IPv4 или IPv6.
netmask | Строковое значение маски сети в IPv4 или IPv6.

Ошибки

Выдаёт ошибку уровня E_WARNING в случае возникновения ошибки при получении информации об интерфейсе.


Открывает соединение к системному журналу

  • « net_get_interfaces
  • pfsockopen »
  • PHP Manual
  • Сетевые функции
  • Открывает соединение к системному журналу

openlog

(PHP 4, PHP 5, PHP 7, PHP 8)

openlog — Открывает соединение к системному журналу

Описание

openlog(string $prefix, int $flags, int $facility): bool

Функция openlog() открывает соединение к системному журналу для программы.

Использование openlog() не является обязательным. Эта функция при необходимости будет вызвана функцией syslog() автоматически, при этом параметр prefix будет по умолчанию равен false.

Список параметров

prefix

Строка prefix добавляется к каждому сообщению.

flags

Аргумент flags используется для указания используемых опций журналирования при создании записи журнала.

Опции 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, PHP 8)

pfsockopen — Открывает постоянное соединение с интернет-сокетом или доменным сокетом Unix

Описание

pfsockopen(
string $hostname,
int $port = -1,
int &$error_code = null,
string &$error_message = null,
?float $timeout = null
): resource|false

Эта функция является полным аналогом функции fsockopen() с той лишь разницей, что соединение не закрывается после завершения работы скрипта. Это версия функции fsockopen() с возможностью постоянного подключения.

Список параметров

Для получения информации о параметре, смотрите документацию по fsockopen().

Возвращаемые значения

pfsockopen() возвращает файловый указатель, который можно использовать с функциями, работающие с файлами (такие как fgets(), fgetss(), fwrite(), fclose() и feof()) или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | timeout теперь допускает значение null.

Смотрите также

  • fsockopen() - Открывает соединение с интернет-сокетом или доменным сокетом Unix


Отправляет cookie

  • « pfsockopen
  • setrawcookie »
  • PHP Manual
  • Сетевые функции
  • Отправляет cookie

setcookie

(PHP 4, PHP 5, PHP 7, PHP 8)

setcookie — Отправляет cookie

Описание

setcookie(
string $name,
string $value = "",
int $expires_or_options = 0,
string $path = "",
string $domain = "",
bool $secure = false,
bool $httponly = false
): bool

Альтернативная сигнатура доступна с PHP 7.3.0 (именованные параметры не поддерживаются):

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_or_options

Время, когда срок действия cookie истекает. Это метка времени Unix, то есть количество секунд с начала эпохи. Один из способов установить значение - добавить количество секунд до истечения срока действия cookie к результату вызова функции time(). Например, time()+60*60*24*30 установит, что срок действия cookie истекает через 30 дней. Другой вариант - использовать функцию mktime(). Если задать 0 или пропустить аргумент, срок действия cookie истечёт с окончанием сессии (при закрытии браузера).

Замечание:

Можно заметить, что expires_or_options принимает в качестве значения метку времени 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-атак (несмотря на то, что поддерживается не всеми браузерами). Стоит однако отметить, что вокруг этой возможности часто возникают споры о её эффективности и целесообразности. Может принимать значения true или false.

options

Ассоциативный массив (array), который может иметь любой из ключей: expires, path, domain, secure, httponly и samesite. При наличии любого другого ключа возникнет ошибка уровня E_WARNING. Значения имеют тот же смысл, как описано в параметрах с соответствующим именем. Значение элемента samesite должно быть либо None, либо Lax, либо Strict. Если какая-либо из допустимых опций не указана, её значения по умолчанию совпадают с значениями по умолчанию для явных параметров. Если элемент samesite не указан, cookie-атрибут SameSite не установлен.

Возвращаемые значения

Если перед вызовом функции клиенту уже передавался какой-либо вывод (теги, пустые строки, пробелы, текст и т.п.), setcookie() потерпит неудачу и вернёт false. Если setcookie() успешно отработает, то вернёт true. Это, однако, не означает, что клиентское приложение (браузер) правильно приняло и обработало cookie.

Список изменений

Версия | Описание
8.2.0 | Формат даты отправляемых файлов cookie теперь 'D, d M Y H:i:s \G\M\T'; ранее он был 'D, d-M-Y H:i:s T'.
7.3.0 | Добавлена альтернативная подпись, поддерживающая массив опций options. Эта подпись поддерживает также настройку cookie-атрибута SameSite.

Примеры

Ниже представлено несколько примеров, как отправлять 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(). Посмотреть содержимое наших тестовых 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

Замечание: Использование разделительных символов, таких как [ и ] как часть имени файла cookie, не соответствует RFC 6265, раздел 4, но предполагается, что оно поддерживается пользовательскими агентами в соответствии с RFC 6265, раздел 5.

Примечания

Замечание:

Чтобы иметь возможность отправлять вывод скрипта до вызова этой функции, можно воспользоваться буферизацией. В этом случае весь вывод скрипта помещается в буфер на сервере и остаётся там, пока вы явно не отправите его браузеру. Управление буферизацией осуществляется функциями ob_start() и ob_end_flush() в скрипте, либо можно задать директиву output_buffering в файле php.ini или конфигурационных файлах сервера.

Общие замечания:

  • Cookie станут видимыми только после перезагрузки страницы, для которой они должны быть видны. Для проверки, правильно ли cookie установились, проверьте их при следующей загрузке страницы до истечения срока их действия. Срок действия cookie задаётся в параметре expires_or_options. Удобно проверять существование cookie простым вызовом print_r($_COOKIE);.
  • При удалении cookie должны быть заданы те же параметры, что и при установке. Если в качестве значения задать пустую строку, а остальные параметры задать соответственно предыдущему вызову, установившему 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, PHP 8)

setrawcookie — Отправляет cookie без URL-кодирования значения

Описание

setrawcookie(
string $name,
string $value = ?,
int $expires_or_options = 0,
string $path = ?,
string $domain = ?,
bool $secure = false,
bool $httponly = false
): bool

Альтернативная сигнатура доступна с PHP 7.3.0 (именованные параметры не поддерживаются):

setrawcookie(string $name, string $value = ?, array $options = []): bool

Функция setrawcookie() является полным аналогом функции setcookie(), за исключением того, что значение cookie не будет автоматически закодировано при отправке браузеру.

Список параметров

Для получения информации по параметру, смотрите документацию по функции setcookie().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | Добавлена альтернативная подпись, поддерживающая массив опций options. Эта подпись поддерживает также настройку cookie-атрибута SameSite.

Смотрите также

  • 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, PHP 8)

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, PHP 8)

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, PHP 8)

socket_set_timeout — Псевдоним stream_set_timeout()

Описание

Функция является псевдонимом: stream_set_timeout().


Генерирует сообщение для системного журнала

  • « socket_set_timeout
  • RRD »
  • PHP Manual
  • Сетевые функции
  • Генерирует сообщение для системного журнала

syslog

(PHP 4, PHP 5, PHP 7, PHP 8)

syslog — Генерирует сообщение для системного журнала

Описание

syslog(int $priority, string $message): true

Функция 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

Отсылаемое сообщение.

Возвращаемые значения

Функция всегда возвращает true.

Примеры

Пример #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 служба syslog эмулируется, используя журнал событий (Event Log).

Замечание:

Использование значений с LOG_LOCAL0 по LOG_LOCAL7 для параметра facility в функции openlog() недоступно в Windows.

Смотрите также

  • openlog() - Открывает соединение к системному журналу
  • closelog() - Закрывает соединение с системным журналом
  • syslog.filter Настройка INI (начиная с PHP 7.3)


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 — Добавляет RRA - архив значений данных для каждого источника данных
    • RRDCreator::addDataSource — Добавляет определение источника данных для базы данных RRD
    • RRDCreator::__construct — Создаёт новый экземпляр RRDCreator
    • RRDCreator::save — Сохраняет базу данных RRD в файл
  • RRDGraph — Класс RRDGraph
    • RRDGraph::__construct — Создаёт новый экземпляр RRDGraph
    • RRDGraph::save — Сохраняет результат запроса в изображение
    • RRDGraph::saveVerbose — Сохраняет запрос к базе данных RRD в изображение и возвращает подробную информацию о сгенерированном графике
    • RRDGraph::setOptions — Устанавливает параметры для экспорта графика rrd
  • 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, более новые или старые версии могут не работать.

Внимание

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(): 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, которые будут изменены. Смотрите страницу руководства по 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(): 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

Закрыть любые незавершённые подключения к демону кеширования rrd.

Функция автоматически вызывается при завершении всего PHP-процесса. Это зависит от используемого SAPI. Например, она вызывается автоматически в конце скрипта командной строки.

Зависит от пользователя, хочет ли он вызвать функцию в конце каждого запроса или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Класс RRDCreator

(PECL rrd >= 0.9.0)

Введение

Класс для создания файлов базы данных RRD.

Обзор классов

class RRDCreator {
/* Методы */
public __construct(string $path, string $startTime = ?, int $step = 0)
public addArchive(string $description): void
public addDataSource(string $description): void
public save(): bool
}

Содержание

  • RRDCreator::addArchive — Добавляет RRA - архив значений данных для каждого источника данных
  • RRDCreator::addDataSource — Добавляет определение источника данных для базы данных RRD
  • RRDCreator::__construct — Создаёт новый экземпляр RRDCreator
  • RRDCreator::save — Сохраняет базу данных RRD в файл


Добавляет RRA - архив значений данных для каждого источника данных

  • « RRDCreator
  • RRDCreator::addDataSource »
  • PHP Manual
  • RRDCreator
  • Добавляет RRA - архив значений данных для каждого источника данных

RRDCreator::addArchive

(PECL rrd >= 0.9.0)

RRDCreator::addArchive — Добавляет RRA - архив значений данных для каждого источника данных

Описание

public RRDCreator::addArchive(string $description): void

Добавляет определение RRA по описанию архива. Архив состоит из ряда значений данных или статистики для каждого из определённых источников данных (ИД). Источники данных определяются методом RRDCreator::addDataSource(). Необходимо вызывать этот метод для каждого запрошенного архива.

Список параметров

description

Определение архива - RRA. Имеет тот же формат, что и определение RRA в команде rrd create. Смотрите страницу руководства по rrd create для получения более подробной информации.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Добавляет определение источника данных для базы данных RRD

  • « RRDCreator::addArchive
  • RRDCreator::__construct »
  • PHP Manual
  • RRDCreator
  • Добавляет определение источника данных для базы данных RRD

RRDCreator::addDataSource

(PECL rrd >= 0.9.0)

RRDCreator::addDataSource — Добавляет определение источника данных для базы данных RRD

Описание

public RRDCreator::addDataSource(string $description): void

RRD может принимать ввод от нескольких источников данных (ИД), например, из входящего и исходящего трафика. Этот метод добавляет источник данных по описанию. Необходимо вызывать этот метод для каждого источника данных.

Список параметров

description

Определение источника данных - ИД. Имеет тот же формат, что и определение ИД в команде rrd create. Смотрите страницу руководства по rrd create для получения более подробной информации.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Создаёт новый экземпляр RRDCreator

  • « RRDCreator::addDataSource
  • RRDCreator::save »
  • PHP Manual
  • RRDCreator
  • Создаёт новый экземпляр RRDCreator

RRDCreator::__construct

(PECL rrd >= 0.9.0)

RRDCreator::__construct — Создаёт новый экземпляр RRDCreator

Описание

public RRDCreator::__construct(string $path, string $startTime = ?, int $step = 0)

Создаёт новый экземпляр RRDCreator.

Список параметров

path

Путь к созданному файлу базы данных RRD.

startTime

Время для первого значения в базе данных RRD. Параметр поддерживает все форматы, которые поддерживаются вызовом rrd create.

intstep

Базовый интервал в секундах, с которым данные будут загружаться в базу данных RRD.


Сохраняет базу данных RRD в файл

  • « RRDCreator::__construct
  • RRDGraph »
  • PHP Manual
  • RRDCreator
  • Сохраняет базу данных RRD в файл

RRDCreator::save

(PECL rrd >= 0.9.0)

RRDCreator::save — Сохраняет базу данных RRD в файл

Описание

public RRDCreator::save(): bool

Сохраняет базу данных RRD в файл, имя которого определяется RRDCreator::__construct().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Класс RRDGraph

(PECL rrd >= 0.9.0)

Введение

Класс для экспорта данных из файла базы данных RRD в изображение.

Обзор классов

class RRDGraph {
/* Методы */
public __construct(string $path)
public save(): array
public saveVerbose(): array
public setOptions(array $options): void
}

Содержание

  • RRDGraph::__construct — Создаёт новый экземпляр RRDGraph
  • RRDGraph::save — Сохраняет результат запроса в изображение
  • RRDGraph::saveVerbose — Сохраняет запрос к базе данных RRD в изображение и возвращает подробную информацию о сгенерированном графике
  • RRDGraph::setOptions — Устанавливает параметры для экспорта графика rrd


Создаёт новый экземпляр RRDGraph

  • « RRDGraph
  • RRDGraph::save »
  • PHP Manual
  • RRDGraph
  • Создаёт новый экземпляр RRDGraph

RRDGraph::__construct

(PECL rrd >= 0.9.0)

RRDGraph::__construct — Создаёт новый экземпляр RRDGraph

Описание

public RRDGraph::__construct(string $path)

Создаёт новый экземпляр RRDGraph. Экземпляр отвечает за отображение результата запроса к базе данных RRD в виде изображения.

Список параметров

path

Полный путь до создаваемого изображения.


Сохраняет результат запроса в изображение

  • « RRDGraph::__construct
  • RRDGraph::saveVerbose »
  • PHP Manual
  • RRDGraph
  • Сохраняет результат запроса в изображение

RRDGraph::save

(PECL rrd >= 0.9.0)

RRDGraph::save — Сохраняет результат запроса в изображение

Описание

public RRDGraph::save(): array

Сохраняет результат запроса к базе данных RRD в изображение, определённое в методе RRDGraph::__construct().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращается массив с информацией о сгенерированном изображении или false в случае возникновения ошибки.


Сохраняет запрос к базе данных RRD в изображение и возвращает подробную информацию о сгенерированном графике

  • « RRDGraph::save
  • RRDGraph::setOptions »
  • PHP Manual
  • RRDGraph
  • Сохраняет запрос к базе данных RRD в изображение и возвращает подробную информацию о сгенерированном графике

RRDGraph::saveVerbose

(PECL rrd >= 0.9.0)

RRDGraph::saveVerbose — Сохраняет запрос к базе данных RRD в изображение и возвращает подробную информацию о сгенерированном графике

Описание

public RRDGraph::saveVerbose(): array

Сохраняет запрос к базе данных RRD в файл изображения, определённый методом RRDGraph::__construct() и возвращает подробную информацию о сгенерированном графике, если в качестве имени файла изображения используется "-", данные изображения также возвращаются в массиве результатов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с подробной информацией о сгенерированном изображении, опционально с данными изображения или false в случае возникновения ошибки.


Устанавливает параметры для экспорта графика rrd

  • « RRDGraph::saveVerbose
  • RRDUpdater »
  • PHP Manual
  • RRDGraph
  • Устанавливает параметры для экспорта графика rrd

RRDGraph::setOptions

(PECL rrd >= 0.9.0)

RRDGraph::setOptions — Устанавливает параметры для экспорта графика rrd

Описание

public RRDGraph::setOptions(array $options): void

Список параметров

options

Список параметров для генерации изображения из файла базы данных RRD. Это может быть список строк или список строк с ключами для лучшей читаемости. Прочтите справочные страницы rrd graph для получения списка доступных параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования RRDGraph::setOptions()

<?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 Установка нескольких вариантов цветов

<?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"
));
?>

Не используйте синтаксис ключ-значение для одинаковых опций rrd. Выглядит более читабельно, но не работает.

<?php
$graphObj->setOptions(array(
"--color" => "BACK#00000000",
"--color" => "GRID#00000000",
"--color" => "MGRID#00000000"
));
?>

Пример выше означает то же самое.

<?php
$graphObj->setOptions(array(
"--color" => "MGRID#00000000"
));
?>


Класс RRDUpdater

(PECL rrd >= 0.9.0)

Введение

Класс для обновления файла базы данных RDD.

Обзор классов

class 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
  • ScoutAPM »
  • 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");
?>


ScoutAPM

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределённые константы
  • Функции Scoutapm
    • scoutapm_get_calls — Возвращает список вызовов, которые произошли
    • scoutapm_list_instrumented_functions — Список функций, которые scoutapm будет использовать


Введение

Замечание: Для Windows-платформ этот модуль недоступен.

Модуль ScoutAPM для PHP предоставляет дополнительные возможности для мониторинга приложений по сравнению с использованием базовой библиотеки пользовательского пространства PHP.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

  • PHP >= 7.1.0
  • Windows в настоящее время не поддерживается


Установка

Модуль доступен на PECL. Запустите:

$ sudo pecl install scoutapm
Возможно, вам потребуется добавить Scout в php.ini, например:
extension=scoutapm.so


  • « Настройка во время выполнения
  • Функции Scoutapm »
  • PHP Manual
  • ScoutAPM
  • Предопределённые константы

Предопределённые константы

Данный модуль не определяет никакие константы.


Функции Scoutapm

Содержание

  • scoutapm_get_calls — Возвращает список вызовов, которые произошли
  • scoutapm_list_instrumented_functions — Список функций, которые scoutapm будет использовать


Возвращает список вызовов, которые произошли

  • « Функции Scoutapm
  • scoutapm_list_instrumented_functions »
  • PHP Manual
  • Функции Scoutapm
  • Возвращает список вызовов, которые произошли

scoutapm_get_calls

(PECL scoutapm >= 1.0.0)

scoutapm_get_calls — Возвращает список вызовов, которые произошли

Описание

scoutapm_get_calls(): array

Возвращает список всех вызовов использованных функций с момента последнего вызова scoutapm_get_calls(). Список очищается каждый раз при вызове функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

scoutapm_get_calls() возвращает массив, содержащий список всех записанных вызовов использованных функций.

Примеры

Пример #1 Получение использованных функций

<?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
                )

        )

)


Список функций, которые scoutapm будет использовать

  • « scoutapm_get_calls
  • SNMP »
  • PHP Manual
  • Функции Scoutapm
  • Список функций, которые scoutapm будет использовать

scoutapm_list_instrumented_functions

(PECL scoutapm >= 1.0.2)

scoutapm_list_instrumented_functions — Список функций, которые scoutapm будет использовать

Описание

scoutapm_list_instrumented_functions(): array

Возвращает список функций, которые модуль будет использовать

Список параметров

У этой функции нет параметров.

Возвращаемые значения

scoutapm_list_instrumented_functions() возвращает массив, содержащий список всех функций, которые модуль scoutapm может использовать в текущей установке.

Примеры

Пример #1 Получение списка функций, которые scoutapm может использовать

<?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 — Получает текущее значение параметра quick_print библиотеки NET-SNMP
    • snmp_get_valueretrieval — Возвращает метод, как будут возвращены значения SNMP
    • snmp_read_mib — Читает и анализирует файл MIB в активном дереве MIB
    • snmp_set_enum_print — Возвращает все значения, которые являются перечислениями, с их значением перечисления вместо необработанного целого числа
    • snmp_set_oid_numeric_print — Псевдоним snmp_set_oid_output_format
    • snmp_set_oid_output_format — Устанавливает выходной формат OID
    • snmp_set_quick_print — Устанавливает значение enable в библиотеке NET-SNMP
    • snmp_set_valueretrieval — Определяет метод возврата значений SNMP
    • snmp2_get — Получает объект SNMP
    • snmp2_getnext — Получает объект SNMP, который следует за данным идентификатором объекта
    • snmp2_real_walk — Возвращает все объекты, включая их идентификатор
    • snmp2_set — Устанавливает значение объекта SNMP
    • snmp2_walk — Получает все объекты SNMP из агента
    • snmp3_get — Получает объект SNMP
    • snmp3_getnext — Получает объект SNMP, который следует за указанным идентификатором объекта
    • snmp3_real_walk — Возвращает все объекты, включая их идентификатор в указанном объекте
    • snmp3_set — Устанавливает значение объекта SNMP
    • snmp3_walk — Получает все объекты SNMP из агента
    • snmpget — Получает объект SNMP
    • snmpgetnext — Получает объект SNMP, который следует за данным идентификатором объекта
    • snmprealwalk — Возвращает все объекты, включая их идентификатор
    • snmpset — Устанавливает значение объекта SNMP
    • snmpwalk — Получает все объекты SNMP из агента
    • snmpwalkoid — Запрос дерева информации о сетевом объекте
  • SNMP — Класс SNMP
    • SNMP::close — Закрывает сессию SNMP
    • SNMP::__construct — Создаёт экземпляр SNMP, представляющий сессию удалённого агента SNMP
    • SNMP::get — Получает объект SNMP
    • SNMP::getErrno — Получает код последней ошибки
    • SNMP::getError — Получает последнее сообщение об ошибке
    • SNMP::getnext — Получить объект SNMP, который следует за данным идентификатором объекта
    • SNMP::set — Устанавливает значение объекта SNMP
    • SNMP::setSecurity — Настраивает связанные с безопасностью параметры сессии SNMPv3
    • SNMP::walk — Получает поддерево объекта SNMP
  • SNMPException — Класс SNMPException


Введение

Модуль SNMP предоставляет простой и удобный набор инструментов для управления удалёнными устройствами через Simple Network Management Protocol (простой протокол управления сетями).

Так как данный модуль является обёрткой над библиотекой Net-SNMP, все основные концепции идентичны и функции PHP меняют их поведение в зависимости от конфигурации Net-SNMP и переменных среды.

Больше информации о Net-SNMP можно найти по адресу » http://www.net-snmp.org/.


Требования

Чтобы использовать функции SNMP в Unix необходимо установить пакет » Net-SNMP. Функции SNMPv3 доступны только тогда, когда установлен пакет » OpenSSL.

Для установки на Unix-системах необходим пакет Net-SNMP версии 5.3+, а для установки на Windows-системах необходим пакет Net-SNMP версии 5.4+.


Установка

Пакет » Net-SNMP для Windows содержит файлы для поддержки SNMP в директории mibs. Эту директорию необходимо добавить в переменные окружения Windows с именем MIBDIRS и значением равным полному пути до директории mibs: например, c:\usr\mibs.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

Для snmp_set_oid_output_format()
SNMP_OID_OUTPUT_SUFFIX (int)
SNMP_OID_OUTPUT_MODULE (int)
SNMP_OID_OUTPUT_FULL (int)
SNMP_OID_OUTPUT_NUMERIC (int)
SNMP_OID_OUTPUT_UCD (int)
SNMP_OID_OUTPUT_NONE (int)
Для snmp_set_valueretrieval()
SNMP_VALUE_LIBRARY (int)
SNMP_VALUE_PLAIN (int)
SNMP_VALUE_OBJECT (int)
Возвращаемый типы SNMP, если SNMP_VALUE_OBJECT используется в snmp_set_valueretrieval()
SNMP_BIT_STR (int)
SNMP_OCTET_STR (int)
SNMP_OPAQUE (int)
SNMP_NULL (int)
SNMP_OBJECT_ID (int)
SNMP_IPADDRESS (int)
SNMP_COUNTER (int)
SNMP_UNSIGNED (int)
SNMP_TIMETICKS (int)
SNMP_UINTEGER (int)
SNMP_INTEGER (int)
SNMP_COUNTER64 (int)


Функции SNMP

Содержание

  • snmp_get_quick_print — Получает текущее значение параметра quick_print библиотеки NET-SNMP
  • snmp_get_valueretrieval — Возвращает метод, как будут возвращены значения SNMP
  • snmp_read_mib — Читает и анализирует файл MIB в активном дереве MIB
  • snmp_set_enum_print — Возвращает все значения, которые являются перечислениями, с их значением перечисления вместо необработанного целого числа
  • snmp_set_oid_numeric_print — Псевдоним snmp_set_oid_output_format
  • snmp_set_oid_output_format — Устанавливает выходной формат OID
  • snmp_set_quick_print — Устанавливает значение enable в библиотеке NET-SNMP
  • snmp_set_valueretrieval — Определяет метод возврата значений SNMP
  • snmp2_get — Получает объект SNMP
  • snmp2_getnext — Получает объект SNMP, который следует за данным идентификатором объекта
  • snmp2_real_walk — Возвращает все объекты, включая их идентификатор
  • snmp2_set — Устанавливает значение объекта SNMP
  • snmp2_walk — Получает все объекты SNMP из агента
  • snmp3_get — Получает объект SNMP
  • snmp3_getnext — Получает объект SNMP, который следует за указанным идентификатором объекта
  • snmp3_real_walk — Возвращает все объекты, включая их идентификатор в указанном объекте
  • snmp3_set — Устанавливает значение объекта SNMP
  • snmp3_walk — Получает все объекты SNMP из агента
  • snmpget — Получает объект SNMP
  • snmpgetnext — Получает объект SNMP, который следует за данным идентификатором объекта
  • snmprealwalk — Возвращает все объекты, включая их идентификатор
  • snmpset — Устанавливает значение объекта SNMP
  • snmpwalk — Получает все объекты SNMP из агента
  • snmpwalkoid — Запрос дерева информации о сетевом объекте


Получает текущее значение параметра quick_print библиотеки NET-SNMP

  • « Функции SNMP
  • snmp_get_valueretrieval »
  • PHP Manual
  • Функции SNMP
  • Получает текущее значение параметра quick_print библиотеки NET-SNMP

snmp_get_quick_print

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp_get_quick_print — Получает текущее значение параметра quick_print библиотеки NET-SNMP

Описание

snmp_get_quick_print(): bool

Возвращает текущее значение, хранящееся в библиотеке NET-SNMP для quick_print. quick_print по умолчанию отключён.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если quick_print включён или false в противном случае.

Примеры

Пример #1 Пример использования snmp_get_quick_print()

<?php
$quickprint = snmp_get_quick_print();
?>

Смотрите также

  • snmp_set_quick_print() - Устанавливает значение enable в библиотеке NET-SNMP для полного описания того, что делает quick_print.


Возвращает метод, как будут возвращены значения SNMP

  • « snmp_get_quick_print
  • snmp_read_mib »
  • PHP Manual
  • Функции SNMP
  • Возвращает метод, как будут возвращены значения SNMP

snmp_get_valueretrieval

(PHP 4 >= 4.3.3, PHP 5, PHP 7, PHP 8)

snmp_get_valueretrieval — Возвращает метод, как будут возвращены значения SNMP

Описание

snmp_get_valueretrieval(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объединение констант (SNMP_VALUE_LIBRARY или SNMP_VALUE_PLAIN) с возможным набором SNMP_VALUE_OBJECT.

Примеры

Пример #1 Пример использования 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() - Определяет метод возврата значений SNMP
  • Предопределённые константы


Читает и анализирует файл MIB в активном дереве MIB

  • « snmp_get_valueretrieval
  • snmp_set_enum_print »
  • PHP Manual
  • Функции SNMP
  • Читает и анализирует файл MIB в активном дереве MIB

snmp_read_mib

(PHP 5, PHP 7, PHP 8)

snmp_read_mib — Читает и анализирует файл MIB в активном дереве MIB

Описание

snmp_read_mib(string $filename): bool

Функция используется для загрузки дополнительных, например, специфичных для поставщика, MIB, чтобы можно было использовать удобочитаемые OID, таких как VENDOR-MIB::foo.1, вместо подверженных ошибкам числовых OID.

Порядок, в котором загружаются MIB, имеет значение, поскольку базовая библиотека Net-SNMP будет печатать предупреждения, если указанные объекты не могут быть разрешены.

Список параметров

filename

Имя файла MIB.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования 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') );
?>

Приведённый выше пример составлен, но результаты будут выглядеть так:

Array
(
    [iso.3.6.1.2.1.2.3.4.5.0] => Gauge32: 6
)
Array
(
    [FOO-BAR-MIB::someTable.0] => Gauge32: 6
)


Возвращает все значения, которые являются перечислениями, с их значением перечисления вместо необработанного целого числа

  • « snmp_read_mib
  • snmp_set_oid_numeric_print »
  • PHP Manual
  • Функции SNMP
  • Возвращает все значения, которые являются перечислениями, с их значением перечисления вместо необработанного целого числа

snmp_set_enum_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

snmp_set_enum_print — Возвращает все значения, которые являются перечислениями, с их значением перечисления вместо необработанного целого числа

Описание

snmp_set_enum_print(bool $enable): true

Функция переключает, если snmpwalk/snmpget и т.д. должны автоматически искать значения перечисления в MIB и возвращать их вместе с их удобочитаемой строкой.

Список параметров

enable

Поскольку значение интерпретируется библиотекой Net-SNMP как логическое значение, оно может быть только "0" or "1".

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #1 Пример использования 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";
?>

Пример выше должен вернуть:

 INTEGER: up(1)
 INTEGER: 1


Псевдоним snmp_set_oid_output_format

  • « snmp_set_enum_print
  • snmp_set_oid_output_format »
  • PHP Manual
  • Функции SNMP
  • Псевдоним snmp_set_oid_output_format

snmp_set_oid_numeric_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

snmp_set_oid_numeric_print — Псевдоним snmp_set_oid_output_format()

Описание

Функция является псевдонимом: snmp_set_oid_output_format().

Смотрите также

  • snmp_set_oid_output_format() - Устанавливает выходной формат OID


Устанавливает выходной формат OID

  • « snmp_set_oid_numeric_print
  • snmp_set_quick_print »
  • PHP Manual
  • Функции SNMP
  • Устанавливает выходной формат OID

snmp_set_oid_output_format

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

snmp_set_oid_output_format — Устанавливает выходной формат OID

Описание

snmp_set_oid_output_format(int $format): true

snmp_set_oid_output_format() устанавливает полный или числовой формат вывода.

Список параметров

format
OID .1.3.6.1.2.1.1.3.0 представление для различных значений 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

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #1 Пример использования snmprealwalk()

<?php

snmp_read_mib("/usr/share/mibs/netsnmp/NET-SNMP-TC");

// default or SNMP_OID_OUTPUT_MODULE
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') );
?>

Пример выше должен вернуть:

 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
 )


Устанавливает значение enable в библиотеке NET-SNMP

  • « snmp_set_oid_output_format
  • snmp_set_valueretrieval »
  • PHP Manual
  • Функции SNMP
  • Устанавливает значение enable в библиотеке NET-SNMP

snmp_set_quick_print

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp_set_quick_print — Устанавливает значение enable в библиотеке NET-SNMP

Описание

snmp_set_quick_print(bool $enable): true

Устанавливает значение enable в библиотеке NET-SNMP. Если установлено (1), библиотека SNMP будет возвращать "быстро выводимые" значения. Это означает, что выведется только значение. Если enable выключен (по умолчанию), библиотека NET-SNMP выводит дополнительную информацию, включая тип значения (например, IpAddress или OID). Кроме того, если quick_print выключен, библиотека выводит дополнительные шестнадцатеричные значения для всех строк из трёх или менее символов.

По умолчанию библиотека NET-SNMP возвращает подробные значения, quick_print используется для возврата только значения.

В настоящее время строки по-прежнему возвращаются с дополнительными кавычками, это будет исправлено в более поздних версиях.

Список параметров

enable

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Настройка quick_print часто используется при использовании возвращаемой информации, а не при её отображении.

Пример #1 Пример использования 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() - Получает текущее значение параметра quick_print библиотеки NET-SNMP


Определяет метод возврата значений SNMP

  • « snmp_set_quick_print
  • snmp2_get »
  • PHP Manual
  • Функции SNMP
  • Определяет метод возврата значений SNMP

snmp_set_valueretrieval

(PHP 4 >= 4.3.3, PHP 5, PHP 7, PHP 8)

snmp_set_valueretrieval — Определяет метод возврата значений SNMP

Описание

snmp_set_valueretrieval(int $method): true

Список параметров

method
Типы
SNMP_VALUE_LIBRARY | Возвращаемые значения будут такими же, как возвращаемые библиотекой Net-SNMP.
SNMP_VALUE_PLAIN | Возвращаемые значения будут простыми значениями без информации о типах SNMP.
SNMP_VALUE_OBJECT | Возвращаемые значения будут объектами со свойствами value and type, где последнее является одной из констант SNMP_OCTET_STR, SNMP_COUNTER и т.д. Способ возврата value зависит от того, какая из констант SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN установлена.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #1 Пример использования 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, смотрите константы
// [value] => lo
// )

snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_PLAIN);
$ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
// stdClass Object
// (
// [type] => 4 <-- SNMP_OCTET_STR, смотрите константы
// [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, смотрите константы
// [value] => STRING: lo
// )

?>

Смотрите также

  • snmp_get_valueretrieval() - Возвращает метод, как будут возвращены значения SNMP
  • Предопределённые константы


Получает объект SNMP

  • « snmp_set_valueretrieval
  • snmp2_getnext »
  • PHP Manual
  • Функции SNMP
  • Получает объект SNMP

snmp2_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

snmp2_get — Получает объект SNMP

Описание

snmp2_get(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

Функция snmp2_get() используется для чтения значения объекта SNMP, указанного в object_id.

Список параметров

hostname

Агент SNMP.

community

Read-сообщество.

object_id

Объект SNMP.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает значение объекта SNMP в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования snmp2_get()

<?php
$syscontact = snmp2_get("127.0.0.1", "public", "system.SysContact.0");
?>

Смотрите также

  • snmp2_set() - Устанавливает значение объекта SNMP


Получает объект SNMP, который следует за данным идентификатором объекта

  • « snmp2_get
  • snmp2_real_walk »
  • PHP Manual
  • Функции SNMP
  • Получает объект SNMP, который следует за данным идентификатором объекта

snmp2_getnext

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_getnext — Получает объект SNMP, который следует за данным идентификатором объекта

Описание

snmp2_getnext(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

Функция snmp2_get_next() используется для чтения значения объекта SNMP, который следует за указанным object_id.

Список параметров

hostname

Имя хоста агента (сервера) SNMP.

community

Read-сообщество.

object_id

Идентификатор объекта SNMP, который предшествует желаемому.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает значение объекта SNMP в случае успешного выполнения или false в случае возникновения ошибки. В случае возникновения ошибки выводится ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования snmp2_get_next()

<?php
$nameOfSecondInterface = snmp2_get_next('localhost', 'public', 'IF-MIB::ifName.1');
?>

Смотрите также

  • snmp2_get() - Получает объект SNMP
  • snmp2_walk() - Получает все объекты SNMP из агента


Возвращает все объекты, включая их идентификатор

  • « snmp2_getnext
  • snmp2_set »
  • PHP Manual
  • Функции SNMP
  • Возвращает все объекты, включая их идентификатор

snmp2_real_walk

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_real_walk — Возвращает все объекты, включая их идентификатор

Описание

snmp2_real_walk(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

Функция snmp2_real_walk() используется для обхода объектов SNMP, начиная с object_id и возвращает не только их значения, но и идентификаторы объектов.

Список параметров

hostname

Имя хоста агента (сервера) SNMP.

community

Read-сообщество.

object_id

Идентификатор объекта SNMP, который предшествует желаемому.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает ассоциативный массив идентификаторов объектов SNMP и их значений в случае успешного выполнения или false в случае возникновения ошибки. В случае возникновения ошибки выводит ошибку уровня E_WARNING.

Примеры

Пример #1 Пример использования snmp2_real_walk()

<?php
print_r(snmp2_real_walk("localhost", "public", "IF-MIB::ifName"));
?>

Вышеупомянутый пример выведет что-то вроде:

    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() - Получает все объекты SNMP из агента


Устанавливает значение объекта SNMP

  • « snmp2_real_walk
  • snmp2_walk »
  • PHP Manual
  • Функции SNMP
  • Устанавливает значение объекта SNMP

snmp2_set

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_set — Устанавливает значение объекта SNMP

Описание

snmp2_set(
string $hostname,
string $community,
array|string $object_id,
array|string $type,
array|string $value,
int $timeout = -1,
int $retries = -1
): bool

snmp2_set() используется для установки значения объекта SNMP, указанного в object_id.

Список параметров

hostname

Имя хоста агента (сервера) SNMP.

community

Write-сообщество.

object_id

Идентификатор объекта SNMP.

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

Новое значение.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Если хост SNMP отклоняет тип данных, выводится ошибка уровня E_WARNING вроде "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length.". Если указан неизвестный или недопустимый OID, вероятно, выведется предупреждение "Could not add variable".

Примеры

Пример #1 Пример использования snmp2_set()

<?php
snmp2_set("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Пример #2 Пример использования snmp2_set() для установки BITS идентификатору объекта SNMP

<?php
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// или
snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>

Смотрите также

  • snmp2_get() - Получает объект SNMP


Получает все объекты SNMP из агента

  • « snmp2_set
  • snmp3_get »
  • PHP Manual
  • Функции SNMP
  • Получает все объекты SNMP из агента

snmp2_walk

(PHP >= 5.2.0, PHP 7, PHP 8)

snmp2_walk — Получает все объекты SNMP из агента

Описание

snmp2_walk(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

Функция snmp2_walk() используется для чтения всех значений из агента SNMP, указанного в hostname.

Список параметров

hostname

Агент SNMP (сервер).

community

Read-сообщество.

object_id

Если null, object_id берётся в качестве корня дерева объектов SNMP и все объекты этого дерева возвращаются в виде массива.

Если указан object_id, возвращаются все объекты SNMP ниже этого object_id.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает массив значений объекта SNMP, начиная с object_id в качестве корня или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования snmp2_walk()

<?php
$a = snmp2_walk("127.0.0.1", "public", "");

foreach ($a as $val) {
echo "$val\n";
}

?>

Вызов функции вернёт все объекты SNMP из агента SNMP, работающего на localhost. Можно перемещаться по значениям с помощью цикла.

Смотрите также

  • snmp2_real_walk() - Возвращает все объекты, включая их идентификатор


Получает объект SNMP

  • « snmp2_walk
  • snmp3_getnext »
  • PHP Manual
  • Функции SNMP
  • Получает объект SNMP

snmp3_get

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_get — Получает объект SNMP

Описание

snmp3_get(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

Функция snmp3_get() используется для чтения значения объекта SNMP, указанного в object_id.

Список параметров

hostname

Имя хоста агента (сервера) SNMP.

security_name

Имя безопасности, обычно какое-то имя пользователя.

security_level

Уровень безопасности (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Протокол аутентификации ("MD5", "SHA", "SHA256" или "SHA512").

auth_passphrase

Пароль для аутентификации.

privacy_protocol

Протокол конфиденциальности (DES или AES).

privacy_passphrase

Пароль конфиденциальности.

object_id

Идентификатор объекта SNMP.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает значение объекта SNMP в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр auth_protocol теперь принимает "SHA256" и "SHA512", если поддерживается libnetsnmp.

Примеры

Пример #1 Пример использования snmp3_get()

<?php
$nameOfSecondInterface = snmp3_get('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName.2');
?>

Смотрите также

  • snmp3_set() - Устанавливает значение объекта SNMP


Получает объект SNMP, который следует за указанным идентификатором объекта

  • « snmp3_get
  • snmp3_real_walk »
  • PHP Manual
  • Функции SNMP
  • Получает объект SNMP, который следует за указанным идентификатором объекта

snmp3_getnext

(PHP 5, PHP 7, PHP 8)

snmp3_getnext — Получает объект SNMP, который следует за указанным идентификатором объекта

Описание

snmp3_getnext(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

Функция snmp3_getnext() используется для чтения значения объекта SNMP, который следует за указанным object_id.

Список параметров

hostname

Имя хоста агента (сервера) SNMP.

security_name

Имя безопасности, обычно какое-то имя пользователя.

security_level

Уровень безопасности (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Протокол аутентификации ("MD5", "SHA", "SHA256" или "SHA512").

auth_passphrase

Пароль для аутентификации.

privacy_protocol

Протокол конфиденциальности (DES или AES).

privacy_passphrase

Пароль конфиденциальности.

object_id

Идентификатор объекта SNMP.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает значение объекта SNMP в случае успешного выполнения или false в случае возникновения ошибки. В случае ошибки выводит ошибку уровня E_WARNING.

Список изменений

Версия | Описание
8.1.0 | Параметр auth_protocol теперь принимает "SHA256" и "SHA512", если поддерживается libnetsnmp.

Примеры

Пример #1 Пример использования snmp3_getnext()

<?php
$nameOfSecondInterface = snmp3_getnext('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName.1');
?>

Смотрите также

  • snmp3_get() - Получает объект SNMP
  • snmp3_walk() - Получает все объекты SNMP из агента


Возвращает все объекты, включая их идентификатор в указанном объекте

  • « snmp3_getnext
  • snmp3_set »
  • PHP Manual
  • Функции SNMP
  • Возвращает все объекты, включая их идентификатор в указанном объекте

snmp3_real_walk

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_real_walk — Возвращает все объекты, включая их идентификатор в указанном объекте

Описание

snmp3_real_walk(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

Функция snmp3_real_walk() используется для обхода объектов SNMP, начиная с object_id и возвращает не только их значения, но и идентификаторы объектов.

Список параметров

hostname

Имя хоста агента (сервера) SNMP.

security_name

Имя безопасности, обычно какое-то имя пользователя.

security_level

Уровень безопасности (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Протокол аутентификации ("MD5", "SHA", "SHA256" или "SHA512").

auth_passphrase

Пароль аутентификации.

privacy_protocol

Протокол конфиденциальности (DES or AES).

privacy_passphrase

Пароль конфиденциальности.

object_id

Идентификатор объекта SNMP.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает ассоциативный массив идентификаторов объектов SNMP и их значений в случае успешного выполнения или false в случае возникновения ошибки. В случае ошибки выводит ошибку уровня E_WARNING.

Список изменений

Версия | Описание
8.1.0 | Параметр auth_protocol теперь принимает "SHA256" и "SHA512", если поддерживается libnetsnmp.

Примеры

Пример #1 Пример использования snmp3_real_walk()

<?php
var_export(snmp3_real_walk('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName'));
?>

Пример выше выведет что-то вроде:

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() - Получает все объекты SNMP из агента


Устанавливает значение объекта SNMP

  • « snmp3_real_walk
  • snmp3_walk »
  • PHP Manual
  • Функции SNMP
  • Устанавливает значение объекта SNMP

snmp3_set

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_set — Устанавливает значение объекта SNMP

Описание

snmp3_set(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
array|string $type,
array|string $value,
int $timeout = -1,
int $retries = -1
): bool

Функция snmp3_set() используется для установки значения объекта SNMP, указанного в object_id.

Даже если уровень безопасности не использует протокол авторизации или пароль, необходимо указать корректные значения.

Список параметров

hostname

Имя хоста агента (сервера) SNMP.

security_name

Имя безопасности, обычно какое-то имя пользователя.

security_level

Уровень безопасности (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Протокол аутентификации (MD5 или SHA).

auth_passphrase

Пароль для аутентификации.

privacy_protocol

Протокол конфиденциальности (DES или AES).

privacy_passphrase

Пароль конфиденциальности.

object_id

Идентификатор объекта SNMP.

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

Новое значение.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Если хост SNMP отклоняет тип данных, выводится ошибка уровня E_WARNING вроде "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length.". Если указан неизвестный или недопустимый OID, вероятно, выведется предупреждение "Could not add variable".

Примеры

Пример #1 Пример использования snmp3_set()

<?php
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifAlias.3', 's', "foo");
?>

Пример #2 Пример использования snmp3_set() для установки BITS идентификатору объекта SNMP

<?php
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// или
snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'x', 'F0');
?>


Получает все объекты SNMP из агента

  • « snmp3_set
  • snmpget »
  • PHP Manual
  • Функции SNMP
  • Получает все объекты SNMP из агента

snmp3_walk

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp3_walk — Получает все объекты SNMP из агента

Описание

snmp3_walk(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

Функция snmp3_walk() используется для чтения всех значений из агента SNMP, указанного в hostname.

Даже если уровень безопасности не использует протокол авторизации или пароль, необходимо указать корректные значения.

Список параметров

hostname

Имя хоста агента (сервера) SNMP.

security_name

Имя безопасности, обычно какое-то имя пользователя.

security_level

Уровень безопасности (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Протокол аутентификации ("MD5", "SHA", "SHA256" или "SHA512").

auth_passphrase

Пароль для аутентификации.

privacy_protocol

Протокол конфиденциальности (DES или AES).

privacy_passphrase

Пароль конфиденциальности.

object_id

Если null, object_id берётся в качестве корня дерева объектов SNMP и все объекты этого дерева возвращаются в виде массива.

Если указан object_id, возвращаются все объекты SNMP ниже этого object_id.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает массив значений объекта SNMP, начиная с object_id в качестве корня или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Параметр auth_protocol теперь принимает "SHA256" и "SHA512", если поддерживается libnetsnmp.

Примеры

Пример #1 Пример использования snmp3_walk()

<?php
$ret = snmp3_walk('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName');
var_export($ret);
?>

Вызов функции вернёт все объекты SNMP из агента SNMP, запущенного на localhost:

array (
  0 => 'STRING: lo',
  1 => 'STRING: eth0',
  2 => 'STRING: eth2',
  3 => 'STRING: sit0',
  4 => 'STRING: sixxs',
)

Смотрите также

  • snmp3_real_walk() - Возвращает все объекты, включая их идентификатор в указанном объекте


Получает объект SNMP

  • « snmp3_walk
  • snmpgetnext »
  • PHP Manual
  • Функции SNMP
  • Получает объект SNMP

snmpget

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpget — Получает объект SNMP

Описание

snmpget(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

Функция snmpget() используется для чтения значения объекта SNMP, указанного в object_id.

Список параметров

hostname

Агент SNMP.

community

Read-сообщество.

object_id

Объект SNMP.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает значение объекта SNMP в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования snmpget()

<?php
$syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0");
?>

Смотрите также

  • snmpset() - Устанавливает значение объекта SNMP


Получает объект SNMP, который следует за данным идентификатором объекта

  • « snmpget
  • snmprealwalk »
  • PHP Manual
  • Функции SNMP
  • Получает объект SNMP, который следует за данным идентификатором объекта

snmpgetnext

(PHP 5, PHP 7, PHP 8)

snmpgetnext — Получает объект SNMP, который следует за данным идентификатором объекта

Описание

snmpgetnext(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

Функция snmpgetnext() используется для чтения значения объекта SNMP, который следует за указанным object_id.

Список параметров

hostname

Имя хоста агента (сервера) SNMP.

community

Read-сообщество.

object_id

Идентификатор объекта SNMP, который предшествует желаемому.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает значение объекта SNMP в случае успешного выполнения или false в случае возникновения ошибки. В случае возникновения ошибки выводится ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования snmpgetnext()

<?php
$nameOfSecondInterface = snmpgetnetxt('localhost', 'public', 'IF-MIB::ifName.1');
?>

Смотрите также

  • snmpget() - Получает объект SNMP
  • snmpwalk() - Получает все объекты SNMP из агента


Возвращает все объекты, включая их идентификатор

  • « snmpgetnext
  • snmpset »
  • PHP Manual
  • Функции SNMP
  • Возвращает все объекты, включая их идентификатор

snmprealwalk

(PHP 4, PHP 5, PHP 7, PHP 8)

snmprealwalk — Возвращает все объекты, включая их идентификатор

Описание

snmprealwalk(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

Функция snmprealwalk() используется для обхода объектов SNMP, начиная с object_id и возвращает не только их значения, но и их идентификаторы объектов.

Список параметров

hostname

Имя хоста агента (сервера) SNMP.

community

Read-сообщество.

object_id

Идентификатор объекта SNMP, который предшествует желаемому.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает ассоциативный массив идентификаторов объектов SNMP и их значений в случае успешного выполнения или false в случае возникновения ошибки. В случае возникновения ошибки выводит ошибку уровня E_WARNING.

Примеры

Пример #1 Пример использования snmprealwalk()

<?php
print_r(snmprealwalk("localhost", "public", "IF-MIB::ifName"));
?>

Вышеупомянутый пример выведет что-то вроде:

    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() - Получает все объекты SNMP из агента


Устанавливает значение объекта SNMP

  • « snmprealwalk
  • snmpwalk »
  • PHP Manual
  • Функции SNMP
  • Устанавливает значение объекта SNMP

snmpset

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpset — Устанавливает значение объекта SNMP

Описание

snmpset(
string $hostname,
string $community,
array|string $object_id,
array|string $type,
array|string $value,
int $timeout = -1,
int $retries = -1
): bool

snmpset() используется для установки значения объекта SNMP, указанного в параметре object_id.

Список параметров

hostname

Имя хоста агента (сервера) SNMP.

community

Write-сообщество.

object_id

Идентификатор объекта SNMP.

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

Новое значение.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Если хост SNMP отклоняет тип данных, выводится ошибка уровня E_WARNING вроде "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length.". Если указан неизвестный или недопустимый OID, вероятно, выведется предупреждение "Could not add variable".

Примеры

Пример #1 Пример использования snmpset()

<?php
snmpset("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Пример #2 Пример использования snmpset() для установки BITS идентификатору объекта SNMP

<?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() - Получает объект SNMP


Получает все объекты SNMP из агента

  • « snmpset
  • snmpwalkoid »
  • PHP Manual
  • Функции SNMP
  • Получает все объекты SNMP из агента

snmpwalk

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpwalk — Получает все объекты SNMP из агента

Описание

snmpwalk(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

Функция snmpwalk() используется для чтения всех значений из агента SNMP, указанного в hostname.

Список параметров

hostname

Агент SNMP (сервер).

community

Read-сообщество.

object_id

Если null, object_id берётся в качестве корня дерева объектов SNMP и все объекты этого дерева возвращаются в виде массива.

Если указан object_id, возвращаются все объекты SNMP ниже этого object_id.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает массив значений объекта SNMP, начиная с object_id в качестве корня или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования snmpwalk()

<?php
$a = snmpwalk("127.0.0.1", "public", "");

foreach ($a as $val) {
echo "$val\n";
}

?>

Вызов функции вернёт все объекты SNMP из агента SNMP, работающего на localhost. Можно перемещаться по значениям с помощью цикла.

Смотрите также

  • snmprealwalk() - Возвращает все объекты, включая их идентификатор


Запрос дерева информации о сетевом объекте

  • « snmpwalk
  • SNMP »
  • PHP Manual
  • Функции SNMP
  • Запрос дерева информации о сетевом объекте

snmpwalkoid

(PHP 4, PHP 5, PHP 7, PHP 8)

snmpwalkoid — Запрос дерева информации о сетевом объекте

Описание

snmpwalkoid(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

Функция snmpwalkoid() используется для чтения всех идентификаторов объектов и их соответствующих значений из агента SNMP, указанного в hostname.

Функции snmpwalkoid() и snmpwalk() существует по историческим причинам. Обе функции предусмотрены для обратной совместимости. Вместо этого используйте функцию snmprealwalk().

Список параметров

hostname

Агент SNMP.

community

Read-сообщество.

object_id

Если null, object_id берётся в качестве корня дерева объектов SNMP и все объекты этого дерева возвращаются в виде массива.

Если указан object_id, возвращаются все объекты SNMP ниже этого object_id.

timeout

Время ожидания в микросекундах.

retries

Количество повторных попыток при истечении времени ожидания.

Возвращаемые значения

Возвращает ассоциативный массив с идентификаторами объектов и соответствующими им значениями объектов, начиная с object_id в качестве корня или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования snmpwalkoid()

<?php
$a = snmpwalkoid("127.0.0.1", "public", "");
for (reset($a); $i = key($a); next($a)) {
echo "$i: $a[$i]<br />\n";
}
?>

Вызов функции вернёт все объекты SNMP из агента SNMP, работающего на localhost. Можно перемещаться по значениям с помощью цикла.

Смотрите также

  • snmpwalk() - Получает все объекты SNMP из агента


Класс SNMP

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Введение

Представляет сессию SNMP.

Обзор классов

class SNMP {
/* Константы */
public const int VERSION_1;
public const int VERSION_2c;
public const int VERSION_2C;
public const int VERSION_3;
public const int ERRNO_NOERROR;
public const int ERRNO_ANY;
public const int ERRNO_GENERIC;
public const int ERRNO_TIMEOUT;
public const int ERRNO_ERROR_IN_REPLY;
public const int ERRNO_OID_NOT_INCREASING;
public const int ERRNO_OID_PARSING_ERROR;
public const int ERRNO_MULTIPLE_SET_QUERIES;
/* Свойства */
public readonly array $info;
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 __construct(
int $version,
string $hostname,
string $community,
int $timeout = -1,
int $retries = -1
)
public close(): bool
public get(array|string $objectId, bool $preserveKeys = false): mixed
public getErrno(): int
public getError(): string
public getnext(array|string $objectId): mixed
public set(array|string $objectId, array|string $type, array|string $value): bool
public setSecurity(
string $securityLevel,
string $authProtocol = "",
string $authPassphrase = "",
string $privacyProtocol = "",
string $privacyPassphrase = "",
string $contextName = "",
string $contextEngineId = ""
): bool
public walk(
array|string $objectId,
bool $suffixAsKey = false,
int $maxRepetitions = -1,
int $nonRepeaters = -1
): array|false
}

Свойства

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 не разрешён (по умолчанию), библиотека NET-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 — Закрывает сессию SNMP
  • SNMP::__construct — Создаёт экземпляр SNMP, представляющий сессию удалённого агента SNMP
  • SNMP::get — Получает объект SNMP
  • SNMP::getErrno — Получает код последней ошибки
  • SNMP::getError — Получает последнее сообщение об ошибке
  • SNMP::getnext — Получить объект SNMP, который следует за данным идентификатором объекта
  • SNMP::set — Устанавливает значение объекта SNMP
  • SNMP::setSecurity — Настраивает связанные с безопасностью параметры сессии SNMPv3
  • SNMP::walk — Получает поддерево объекта SNMP


Закрывает сессию SNMP

  • « SNMP
  • SNMP::__construct »
  • PHP Manual
  • SNMP
  • Закрывает сессию SNMP

SNMP::close

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::close — Закрывает сессию SNMP

Описание

public SNMP::close(): bool

Освобождает ранее выделенный объект сессии SNMP.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SNMP::close()

<?php
$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
# ...
# получить, что-то сделать и т.д.
# ...
$session->close();
?>

Смотрите также

  • SNMP::__construct() - Создаёт экземпляр SNMP, представляющий сессию удалённого агента SNMP


Создаёт экземпляр SNMP, представляющий сессию удалённого агента SNMP

  • « SNMP::close
  • SNMP::get »
  • PHP Manual
  • SNMP
  • Создаёт экземпляр SNMP, представляющий сессию удалённого агента SNMP

SNMP::__construct

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::__construct — Создаёт экземпляр SNMP, представляющий сессию удалённого агента SNMP

Описание

public SNMP::__construct(
int $version,
string $hostname,
string $community,
int $timeout = -1,
int $retries = -1
)

Описание функции

Список параметров

version

SNMP protocol version:
SNMP::VERSION_1,
SNMP::VERSION_2C,
SNMP::VERSION_3.

hostname

Агент SNMP. hostname может иметь суффикс с необязательным портом агента SNMP после двоеточия. Адреса IPv6 должны быть заключены в квадратные скобки, если используются с портом. Если для hostname используется полное доменное имя, оно будет обработано библиотекой php-snmp, а не механизмом Net-SNMP. Использование IPv6-адресов при указании полного доменного имени может быть принудительно заключено в квадратные скобки. Вот несколько примеров:

IPv4 с портом по умолчанию | 127.0.0.1
IPv6 с портом по умолчанию | ::1 or [::1]
IPv4 с конкретным портом | 127.0.0.1:1161
IPv6 с конкретным портом | [::1]:1161
FQDN с портом по умолчанию | host.domain
FQDN с конкретным портом | host.domain:1161
FQDN с портом по умолчанию, принудительное использование IPv6-адреса | [host.domain]
FQDN с конкретным портом, принудительное использование IPv6-адреса | [host.domain]:1161

community

Назначение community зависит от версии SNMP:

SNMP::VERSION_1 | SNMP community
SNMP::VERSION_2C | SNMP community
SNMP::VERSION_3 | SNMPv3 securityName
timeout

Количество микросекунд до первого времени ожидания.

retries

Количество повторных попыток в случае превышения времени ожидания.

Ошибки

SNMP::__construct() выбрасывает исключение, когда количество или типы параметров неверны или указана неизвестная версия протокола SNMP.

Примеры

Пример #1 Получение 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() - Закрывает сессию SNMP


Получает объект SNMP

  • « SNMP::__construct
  • SNMP::getErrno »
  • PHP Manual
  • SNMP
  • Получает объект SNMP

SNMP::get

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::get — Получает объект SNMP

Описание

public SNMP::get(array|string $objectId, bool $preserveKeys = false): mixed

Получает объект SNMP, указанный в objectId, с помощью запроса GET.

Список параметров

Если objectId является строкой, то SNMP::get() вернёт объект SNMP в виде строки. Если objectId является массивом, все запрошенные объекты SNMP будут возвращены как ассоциативный массив идентификаторов объектов SNMP и их значений.

objectId

Объект SNMP (OID) или объекты

preserveKeys

Когда objectId является массивом и для параметра preserveKeys установлено значение true ключи в результатах будут взяты точно так же, как в objectId, в противном случае свойство SNMP::oid_output_format используется для определения формы ключей.

Возвращаемые значения

Возвращает запрошенные объекты SNMP в виде строки или массива в зависимости от типа objectId или false в случае возникновения ошибки.

Ошибки

Данный метод по умолчанию не генерирует исключения. Чтобы включить генерацию исключения SNMPException при возникновении некоторых ошибок данной библиотеки, необходимо установить параметр exceptions_enabled класса SNMP в соответствующее значение. Подробнее смотрите в объяснении параметра SNMP::$exceptions_enabled.

Примеры

Пример #1 Одиночный объект SNMP

Одиночный объект SNMP может быть запрошен двумя способами: как строковое возвращаемое строковое значение или как одноэлементный массив с ассоциативным массивом в качестве вывода.

<?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 Множественные объекты SNMP

$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() - Получает код последней ошибки
  • SNMP::getError() - Получает последнее сообщение об ошибке


Получает код последней ошибки

  • « SNMP::get
  • SNMP::getError »
  • PHP Manual
  • SNMP
  • Получает код последней ошибки

SNMP::getErrno

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::getErrno — Получает код последней ошибки

Описание

public SNMP::getErrno(): int

Возвращает код ошибки из последнего запроса SNMP.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает одно из значений кода ошибки SNMP, описанных в главе о константах.

Примеры

Пример #1 Пример использования SNMP::getErrno()

<?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() - Получает последнее сообщение об ошибке


Получает последнее сообщение об ошибке

  • « SNMP::getErrno
  • SNMP::getnext »
  • PHP Manual
  • SNMP
  • Получает последнее сообщение об ошибке

SNMP::getError

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::getError — Получает последнее сообщение об ошибке

Описание

public SNMP::getError(): string

Возвращает строку с ошибкой из последнего запроса SNMP.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка, описывающая ошибку последнего запроса SNMP.

Примеры

Пример #1 Пример использования SNMP::getError()

<?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() - Получает код последней ошибки


Получить объект SNMP, который следует за данным идентификатором объекта

  • « SNMP::getError
  • SNMP::set »
  • PHP Manual
  • SNMP
  • Получить объект SNMP, который следует за данным идентификатором объекта

SNMP::getnext

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::getnext — Получить объект SNMP, который следует за данным идентификатором объекта

Описание

public SNMP::getnext(array|string $objectId): mixed

Получите объект SNMP, следующий за указанным objectId.

Список параметров

Если objectId является строкой, тогда SNMP::getnext() вернёт объект SNMP в виде строки. Если objectId является массивом, все запрошенные объекты SNMP будут возвращены как ассоциативный массив идентификаторов объектов SNMP и их значений.

objectId

Объект SNMP (OID) или объекты

Возвращаемые значения

Возвращает запрошенные объекты SNMP в виде строки или массива в зависимости от типа objectId или false в случае возникновения ошибки.

Ошибки

Данный метод по умолчанию не генерирует исключения. Чтобы включить генерацию исключения SNMPException при возникновении некоторых ошибок данной библиотеки, необходимо установить параметр exceptions_enabled класса SNMP в соответствующее значение. Подробнее смотрите в объяснении параметра SNMP::$exceptions_enabled.

Примеры

Пример #1 Одиночный объект SNMP

Одиночный объект SNMP может быть запрошен двумя способами: как строковое возвращаемое строковое значение или как одноэлементный массив с ассоциативным массивом в качестве вывода.

<?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 Множественные объекты SNMP

<?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() - Получает код последней ошибки
  • SNMP::getError() - Получает последнее сообщение об ошибке


Устанавливает значение объекта SNMP

  • « SNMP::getnext
  • SNMP::setSecurity »
  • PHP Manual
  • SNMP
  • Устанавливает значение объекта SNMP

SNMP::set

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::set — Устанавливает значение объекта SNMP

Описание

public SNMP::set(array|string $objectId, array|string $type, array|string $value): bool

Запрашивает удалённый агент SNMP, устанавливающий значение одного или нескольких объектов SNMP, указанных в objectId.

Список параметров

Если objectId - это строка (string), оба type и value также должны быть строками (string). Если objectId - массив (array), value должен быть массивом равного размера, содержащим соответствующие значения, type может быть либо строкой (string) (это значение будет использоваться для всех пар objectId-value) или массив равного размера с каждым значением OID. Когда используются комбинации любых других параметров, может отображаться ряд сообщений E_WARNING с подробным описанием.

objectId

Идентификатор объекта SNMP

Когда количество OID в массиве object_id больше, чем max_oids, метод набора свойств объекта должен будет использовать несколько запросов для выполнения запрошенных обновлений значений. В этом случае проверки типа и значения выполняются для каждого фрагмента, поэтому второй или последующие запросы могут завершиться ошибкой из-за неправильного типа или значения запрошенного OID. Чтобы сообщить об этом, появляется предупреждение, когда количество OID в массиве object_id превышает 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

Новое значение.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Данный метод по умолчанию не генерирует исключения. Чтобы включить генерацию исключения SNMPException при возникновении некоторых ошибок данной библиотеки, необходимо установить параметр exceptions_enabled класса SNMP в соответствующее значение. Подробнее смотрите в объяснении параметра SNMP::$exceptions_enabled.

Примеры

Пример #1 Установить одиночный идентификатор объекта SNMP

<?php
$session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
$session->set('SNMPv2-MIB::sysContact.0', 's', "Nobody");
?>

Пример #2 Установить несколько значений с помощью одного вызова SNMP::set()

<?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"));
// или
$session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), 's', array("Nobody", "Nowhere"));
?>

Пример #3 Использование SNMP::set() для установки идентификатора объекта BITS SNMP

<?php
$session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
$session->set('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// или
$session->set('FOO-MIB::bar.42', 'x', 'F0');
?>

Смотрите также

  • SNMP::get() - Получает объект SNMP


Настраивает связанные с безопасностью параметры сессии SNMPv3

  • « SNMP::set
  • SNMP::walk »
  • PHP Manual
  • SNMP
  • Настраивает связанные с безопасностью параметры сессии SNMPv3

SNMP::setSecurity

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::setSecurity — Настраивает связанные с безопасностью параметры сессии SNMPv3

Описание

public SNMP::setSecurity(
string $securityLevel,
string $authProtocol = "",
string $authPassphrase = "",
string $privacyProtocol = "",
string $privacyPassphrase = "",
string $contextName = "",
string $contextEngineId = ""
): bool

setSecurity настраивает связанные с безопасностью параметры сессии, используемые в протоколе SNMP версии 3

Список параметров

securityLevel

уровень безопасности (noAuthNoPriv|authNoPriv|authPriv)

authProtocol

протокол аутентификации (MD5 или SHA)

authPassphrase

пароль аутентификации

privacyProtocol

протокол конфиденциальности (DES или AES)

privacyPassphrase

пароль конфиденциальности

contextName

имя контекста

contextEngineId

контекст EngineID

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SNMP::setSecurity()

<?php
$session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
$session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '', 'aeeeff');
?>

Смотрите также

  • SNMP::__construct() - Создаёт экземпляр SNMP, представляющий сессию удалённого агента SNMP


Получает поддерево объекта SNMP

  • « SNMP::setSecurity
  • SNMPException »
  • PHP Manual
  • SNMP
  • Получает поддерево объекта SNMP

SNMP::walk

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::walk — Получает поддерево объекта SNMP

Описание

public SNMP::walk(
array|string $objectId,
bool $suffixAsKey = false,
int $maxRepetitions = -1,
int $nonRepeaters = -1
): array|false

SNMP::walk() используется для чтения поддерева SNMP с корнем в указанном objectId.

Список параметров

objectId

Корень извлекаемого поддерева

suffixAsKey

По умолчанию для ключей в выходном массиве используется полная нотация OID. Если установлено значение true, префикс поддерева будет удалён из ключей, останется только суффикс object_id.

nonRepeaters

Определяет количество предоставленных переменных, которые не следует повторять. По умолчанию используется значение из объекта SNMP.

maxRepetitions

Определяет максимальное количество итераций по повторяющимся переменным. По умолчанию используется значение из объекта SNMP.

Возвращаемые значения

Возвращает ассоциативный массив идентификаторов объектов SNMP и их значений в случае успешного выполнения или false в случае возникновения ошибки. Когда возникает ошибка SNMP, SNMP::getErrno() и SNMP::getError() могут использоваться для получения номера ошибки (специфично для модуля SNMP, смотрите константы класса) и сообщение об ошибке соответственно.

Ошибки

Данный метод по умолчанию не генерирует исключения. Чтобы включить генерацию исключения SNMPException при возникновении некоторых ошибок данной библиотеки, необходимо установить параметр exceptions_enabled класса SNMP в соответствующее значение. Подробнее смотрите в объяснении параметра SNMP::$exceptions_enabled.

Примеры

Пример #1 Пример использования SNMP::walk()

<?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 Пример использования suffixAsKey

suffixAsKey может использоваться при объединении нескольких поддеревьев SNMP в одно. В этом примере имена интерфейсов сопоставляются с их типом.

<?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() - Получает код последней ошибки
  • SNMP::getError() - Получает последнее сообщение об ошибке


Класс SNMPException

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Введение

Представляет класс исключения, выбрасываемого SNMP. Вы не должны выбрасывать исключения SNMPException самостоятельно. Более подробно об исключениях в PHP читайте в разделе Исключения.

Обзор классов

class SNMPException extends RuntimeException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Свойства

code

Код ошибки библиотеки SNMP. Для его извлечения используйте Exception::getCode().


Сокеты

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
  • Ошибки сокетов
  • Функции сокета
    • socket_accept — Принимает соединение на сокете
    • socket_addrinfo_bind — Создать и привязать к сокету из указанного addrinfo
    • socket_addrinfo_connect — Создать и подключиться к сокету из указанного addrinfo
    • socket_addrinfo_explain — Получить информацию о addrinfo
    • socket_addrinfo_lookup — Получить массив с содержимым getaddrinfo про указанное имя хоста
    • socket_atmark — Determines whether socket is at out-of-band mark
    • socket_bind — Привязывает имя к сокету
    • socket_clear_error — Очищает ошибку на сокете или последний код ошибки
    • socket_close — Закрывает экземпляр Socket
    • 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 — Класс Socket
  • AddressInfo — Класс AddressInfo


Введение

Модуль socket реализует низкоуровневый интерфейс для функций связи сокетов, основанными на популярных сокетах BSD, обеспечивая возможность действовать как сервер сокетов, так и клиент.

Для более общего клиентского интерфейса сокетов смотрите
stream_socket_client(),
stream_socket_server(),
fsockopen() и
pfsockopen().

При использовании этих функций, важно помнить, что хотя многие из них имеют имена, похожие на их аналоги в C, они часто имеют другой интерфейс использования. Пожалуйста, прочитайте их описания для того, чтобы избежать путаницы.

Незнакомые с программированием сокетов могут найти много полезной информации в соответствующих man-страницах Unix, также в Интернете есть много обучающей информации по программированию сокетов на C, большая часть из которой может быть применена с небольшими изменениями к программированию сокетов на PHP. Хорошим началом может быть » FAQ по Unix-сокетам.


Установка

Сокетные функции, описанные здесь, являются частью модуля PHP, который может быть включён во время компиляции при помощи указания опции --enable-sockets команде configure.


Типы ресурсов

До PHP 8.0.0,
socket_accept(), socket_import_stream(),
socket_addrinfo_connect(), socket_addrinfo_bind(),
socket_create_listen(), socket_wsaprotocol_info_import() и
socket_create() возвращали ресурсы сокетов.

До PHP 8.0, socket_addrinfo_lookup() возвращала массив ресурсов AddressInfo.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

AF_UNIX (int)
AF_INET (int)
AF_INET6 (int)
Константа доступна, только если PHP скомпилирован с поддержкой IPv6.
AF_DIVERT (int)
Константа доступна с PHP 8.3.0 (только на FreeBSD)
SOCK_STREAM (int)
SOCK_DGRAM (int)
SOCK_RAW (int)
SOCK_SEQPACKET (int)
SOCK_RDM (int)
MSG_OOB (int)
MSG_WAITALL (int)
MSG_PEEK (int)
MSG_DONTROUTE (int)
MSG_EOR (int)
Константа недоступна на Windows-платформах.
MSG_EOF (int)
Константа недоступна на Windows-платформах.
MSG_ZEROCOPY (int)
Константа доступна с PHP 8.2.0.
SO_DEBUG (int)
SO_REUSEADDR (int)
SO_REUSEPORT (int)
Эта константа доступна только на платформах, которые поддерживают опцию SO_REUSEPORT сокета: сюда входят Linux, macOS и *BSD, но не входит Windows.
SO_KEEPALIVE (int)
SO_DONTROUTE (int)
SO_LINGER (int)
SO_BROADCAST (int)
SO_OOBINLINE (int)
SO_SNDBUF (int)
SO_RCVBUF (int)
SO_SNDLOWAT (int)
SO_RCVLOWAT (int)
SO_SNDTIMEO (int)
SO_RCVTIMEO (int)
SO_TYPE (int)
SO_ERROR (int)
SO_ZEROCOPY (int)
Константа доступна с PHP 8.2.0.
TCP_NODELAY (int)
Константа используется для отключения TCP-алгоритма Нагла.
TCP_KEEPCNT (int)
Константа доступна с PHP 8.2.0.
TCP_KEEPIDLE (int)
Константа доступна с PHP 8.2.0.
TCP_KEEPINTVL (int)
Константа доступна с PHP 8.2.0.
TCP_KEEPALIVE (int)
Константа доступна с PHP 8.2.0.
TCP_NOTSENT_LOWAT (int)
Константа доступна с PHP 8.2.0.
SO_MARK (int)
Константа доступна с PHP 8.1.0
SO_USER_COOKIE (int)
Константа доступна с PHP 8.1.0
SO_RTABLE (int)
Константа доступна с PHP 8.2.0.
SO_ACCEPTFILTER (int)
Константа доступна с PHP 8.1.0
SO_DONTTRUNC (int)
Константа доступна с PHP 8.1.0
SO_WANTMORE (int)
Константа доступна с PHP 8.1.0
SO_INCOMING_CPU (int)
Константа доступна с PHP 8.2.0.
SO_MEMINFO (int)
Константа доступна с PHP 8.2.0.
SO_BPF_EXTENSIONS (int)
Константа доступна, начиная с PHP 8.2.0.
SO_SETFIB (int)
Константа доступна, начиная с PHP 8.2.0.
SO_ATTACH_REUSEPORT_CBPF (int)
Константа доступна с PHP 8.3.0 (только на Linux)
SO_DETACH_BPF (int)
Константа доступна с PHP 8.3.0 (только на Linux)
SO_DETACH_FILTER (int)
Константа доступна с PHP 8.3.0 (только на Linux)
SO_RERROR (int)
Константа доступна с PHP 8.3.0 (только на NetBSD)
SO_ZEROIZE (int)
Константа доступна с PHP 8.3.0 (только на OpenBSD)
SO_SPLICE (int)
Константа доступна с PHP 8.3.0 (только на OpenBSD)
SO_REUSEPORT_LB (int)
Константа доступна с PHP 8.3.0 (только на FreeBSD)
SOL_FILTER (int)
Константа доступна, начиная с PHP 8.2.0.
SOL_UDPLITE (int)
Константа доступна с PHP 8.3.0
UDPLITE_RECV_CSCOV (int)
Константа доступна с PHP 8.3.0
UDPLITE_SEND_CSCOV (int)
Константа доступна с PHP 8.3.0
TCP_DEFER_ACCEPT (int)
Константа доступна с PHP 8.1.0
TCP_CONGESTION (int)
Константа доступна, начиная с PHP 8.2.0.
TCP_QUICKACK (int)
Константа доступна с PHP 8.3.0 (только на Linux)
TCP_REPAIR (int)
Константа доступна с PHP 8.3.0 (только на Linux)
IP_DONTFRAG (int)
Константа доступна с PHP 8.3.0 (только на FreeBSD)
IP_MTU_DISCOVER (int)
Константа доступна с PHP 8.3.0 (только на Linux)
IP_PMTUDISC_DO (int)
Константа доступна с PHP 8.3.0 (только на Linux)
IP_PMTUDISC_DONT (int)
Константа доступна с PHP 8.3.0 (только на Linux)
IP_PMTUDISC_WANT (int)
Константа доступна с PHP 8.3.0 (только на Linux)
IP_PMTUDISC_PROBE (int)
Константа доступна с PHP 8.3.0 (только на Linux)
IP_PMTUDISC_INTERFACE (int)
Константа доступна с PHP 8.3.0 (только на Linux)
IP_PMTUDISC_OMIT (int)
Константа доступна с PHP 8.3.0 (только на Linux)
IP_BIND_ADDRESS_NO_PORT (int)
Константа доступна с PHP 8.3.0 (только на Linux)
SOL_SOCKET (int)
PHP_NORMAL_READ (int)
PHP_BINARY_READ (int)
SOL_TCP (int)
SOL_UDP (int)

Следующие константы определены только в Windows и Unix-подобных системах. Каждая константа определена только, если её эквивалент доступен в системе.

SOCKET_EINTR (int)
Прерванный системный вызов.
SOCKET_EBADF (int)
Неверный номер дескриптора файла.
SOCKET_EACCES (int)
Доступ запрещён.
SOCKET_EFAULT (int)
Неверный адрес.
SOCKET_EINVAL (int)
Неверный аргумент.
SOCKET_EMFILE (int)
Слишком много открытых файлов.
SOCKET_ENAMETOOLONG (int)
Слишком длинное имя файла.
SOCKET_ENOTEMPTY (int)
Каталог не пуст.
SOCKET_ELOOP (int)
Обнаружено слишком много символических ссылок.
SOCKET_EWOULDBLOCK (int)
Операция будет блокирована.
SOCKET_EREMOTE (int)
Объект является удалённым.
SOCKET_EUSERS (int)
Слишком много пользователей.
SOCKET_ENOTSOCK (int)
Socket operation on non-socket.
SOCKET_EDESTADDRREQ (int)
Destination address required.
SOCKET_EMSGSIZE (int)
Сообщение слишком длинное.
SOCKET_EPROTOTYPE (int)
Protocol wrong type for socket.
SOCKET_EPROTONOSUPPORT (int)
Протокол не поддерживается.
SOCKET_ESOCKTNOSUPPORT (int)
Тип сокета не поддерживается.
SOCKET_EOPNOTSUPP (int)
Операция не поддерживается на конечной точке транспорта.
SOCKET_EPFNOSUPPORT (int)
Семейство протоколов не поддерживается.
SOCKET_EAFNOSUPPORT (int)
Семейство адресов не поддерживается протоколом.
SOCKET_EADDRNOTAVAIL (int)
Не удаётся назначить требуемый адрес.
SOCKET_ENETDOWN (int)
Сеть не работает.
SOCKET_ENETUNREACH (int)
Сеть недоступна.
SOCKET_ENETRESET (int)
Сеть сбросила соединение из-за переустановки соединения.
SOCKET_ECONNABORTED (int)
Приложение вызвало разрыв соединения.
SOCKET_ECONNRESET (int)
Соединение сброшено узлом.
SOCKET_ENOBUFS (int)
Нет доступного буферного пространства.
SOCKET_EISCONN (int)
Конечная точка транспорта уже подсоединена.
SOCKET_ENOTCONN (int)
Конечная точка транспорта не подсоединена.
SOCKET_ESHUTDOWN (int)
Не удаётся отправить данные из-за отключения конечной точки транспорта.
SOCKET_ETIMEDOUT (int)
Истекло время соединения.
SOCKET_ECONNREFUSED (int)
Отказ в соединении.
SOCKET_EHOSTDOWN (int)
Хост выключен.
SOCKET_EHOSTUNREACH (int)
Нет маршрута до хоста.
SOCKET_EALREADY (int)
Операция уже в прогрессе.
SOCKET_EINPROGRESS (int)
Операция сейчас в прогрессе.

Следующие константы определены только в Windows.

SOCKET_ENOPROTOOPT (int)
SOCKET_EADDRINUSE (int)
SOCKET_ETOOMYREFS (int)
SOCKET_EPROCLIM (int)
SOCKET_EDUOT (int)
SOCKET_ESTALE (int)
SOCKET_EDISCON (int)
SOCKET_SYSNOTREADY (int)
SOCKET_VERNOTSUPPORTED (int)
SOCKET_NOTINITIALISED (int)
SOCKET_HOST_NOT_FOUND (int)
SOCKET_TRY_AGAIN (int)
SOCKET_NO_RECOVERY (int)
SOCKET_NO_DATA (int)
SOCKET_NO_ADDRESS (int)

Следующие константы доступны только на UNIX-платформах. Каждая константа определена, только если её эквивалент доступен на платформе.

SOCKET_EPERM (int)
Операция не допускается.
SOCKET_ENOENT (int)
Нет такого файла или каталога.
SOCKET_EIO (int)
Ошибка ввода-вывода.
SOCKET_ENXIO (int)
Нет такого устройства или адреса.
SOCKET_E2BIG (int)
Список аргументов слишком длинный.
SOCKET_EAGAIN (int)
Попытайтесь ещё раз.
SOCKET_ENOMEM (int)
Переполнение доступной памяти.
SOCKET_ENOTBLK (int)
Требуется блочное устройство.
SOCKET_EBUSY (int)
Устройство или ресурс занято.
SOCKET_EEXIST (int)
Файл существует.
SOCKET_EXDEV (int)
Ссылка на кросс-устройство.
SOCKET_ENODEV (int)
Нет такого устройства.
SOCKET_ENOTDIR (int)
Это не каталог.
SOCKET_EISDIR (int)
Это каталог.
SOCKET_ENFILE (int)
Переполнение файловой таблицы.
SOCKET_ENOTTY (int)
Не печатающее устройство.
SOCKET_ENOSPC (int)
Не осталось места на устройстве.
SOCKET_ESPIPE (int)
Недопустимый запрос.
SOCKET_EROFS (int)
Файловая система доступна только для чтения.
SOCKET_EMLINK (int)
Слишком много ссылок.
SOCKET_EPIPE (int)
Оборванный канал.
SOCKET_ENOLCK (int)
Не доступна блокировка записи.
SOCKET_ENOSYS (int)
Функция не реализована.
SOCKET_ENOMSG (int)
Нет сообщения желаемого типа.
SOCKET_EIDRM (int)
Идентификатор удалён.
SOCKET_ECHRNG (int)
Тип канала выходит за пределы диапазона.
SOCKET_EL2NSYNC (int)
Уровень 2 не синхронизирован.
SOCKET_EL3HLT (int)
Уровень 3 остановлен.
SOCKET_EL3RST (int)
Уровень 3 сброшен.
SOCKET_ELNRNG (int)
Номер ссылки выходит за пределы диапазона.
SOCKET_EUNATCH (int)
Драйвер протокола не подключён.
SOCKET_ENOCSI (int)
CSI-структура недоступна.
SOCKET_EL2HLT (int)
Уровень 2 остановлен.
SOCKET_EBADE (int)
Недопустимый коммутатор.
SOCKET_EBADR (int)
Недопустимый дескриптор запроса.
SOCKET_EXFULL (int)
Коммутатор заполнен.
SOCKET_ENOANO (int)
Не anode.
SOCKET_EBADRQC (int)
Недопустимый код запроса.
SOCKET_EBADSLT (int)
Недопустимый слот.
SOCKET_ENOSTR (int)
Устройство не является потоковым.
SOCKET_ENODATA (int)
Нет доступных данных.
SOCKET_ETIME (int)
Таймер истёк.
SOCKET_ENOSR (int)
Кончились потоковые ресурсы.
SOCKET_ENONET (int)
Машина не подключена к сети.
SOCKET_ENOLINK (int)
Ссылка была разорвана.
SOCKET_EADV (int)
Ошибка объявления (advertise).
SOCKET_ESRMNT (int)
Ошибка Srmount.
SOCKET_ECOMM (int)
Ошибка связи при отправке.
SOCKET_EPROTO (int)
Ошибка протокола.
SOCKET_EMULTIHOP (int)
Попытка перескочить на недоступный ресурс (multihop).
SOCKET_EBADMSG (int)
Не является сообщением с данными.
SOCKET_ENOTUNIQ (int)
Имя не уникальное в сети.
SOCKET_EBADFD (int)
Файловый указатель в неверном состоянии.
SOCKET_EREMCHG (int)
Удалённый адрес изменился.
SOCKET_ERESTART (int)
Прерванный системный вызов должен быть перезапущен.
SOCKET_ESTRPIPE (int)
Ошибка канала потока.
SOCKET_EPROTOOPT (int)
Протокол недоступен.
SOCKET_ADDRINUSE (int)
Адрес уже в использовании.
SOCKET_ETOOMANYREFS (int)
Слишком много ссылок: не могу соединить.
SOCKET_EISNAM (int)
Именованный тип файла.
SOCKET_EREMOTEIO (int)
Ошибка удалённого ввода-вывода.
SOCKET_EDQUOT (int)
Квота превышена.
SOCKET_ENOMEDIUM (int)
Носитель не найден.
SOCKET_EMEDIUMTYPE (int)
Неверный тип носителя.
SCM_RIGHTS (int)
Отправить или получить набор дескрипторов открытых файлов из другого процесса.
SCM_CREDENTIALS (int)
SCM_CREDS (int)
Константа доступна, начиная с PHP 8.2.0.
SCM_CREDS2 (int)
Константа доступна, начиная с PHP 8.2.0.
LOCAL_CREDS (int)
Константа доступна, начиная с PHP 8.2.0.
LOCAL_CREDS_PERSISTENT (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_OFF (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_PROTOCOL (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_PKTTYPE (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_IFINDEX (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_NLATTR (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_NLATTR_NEST (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_MARK (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_QUEUE (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_HATYPE (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_RXHASH (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_CPU (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_ALU_XOR_X (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_VLAN_TAG (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_VLAN_TAG_PRESENT (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_PAY_OFFSET (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_RANDOM (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_VLAN_TPID (int)
Константа доступна, начиная с PHP 8.2.0.
SKF_AD_MAX (int)
Константа доступна, начиная с PHP 8.2.0.


Примеры

Пример #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_atmark — Determines whether socket is at out-of-band mark
  • socket_bind — Привязывает имя к сокету
  • socket_clear_error — Очищает ошибку на сокете или последний код ошибки
  • socket_close — Закрывает экземпляр Socket
  • 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, PHP 8)

socket_accept — Принимает соединение на сокете

Описание

socket_accept(Socket $socket): Socket|false

После того, как сокет socket был создан при помощи функции socket_create(), привязан к имени при помощи функции socket_bind(), и ему было указано слушать соединения при помощи функции socket_listen(), эта функция будет принимать входящие соединения на этом сокете. Как только произошло удачное соединение, возвращается экземпляр Socket, который может быть использован для связи. Если в очереди сокета есть несколько соединений, будет использовано первое из них. Если нет ожидающих соединений, то функция socket_accept() будет блокировать выполнение скрипта до тех пор, пока не появится соединение. Если сокет socket был сделан неблокирующим при помощи функции socket_set_blocking() или socket_set_nonblock(), будет возвращено false.

Экземпляр Socket, полученный при помощи функции socket_accept() не может быть использован для принятия новых соединений. Однако изначальный слушающий сокет socket, остаётся открытым и может быть использован повторно.

Список параметров

socket

Экземпляр Socket, созданный при помощи функции socket_create().

Возвращаемые значения

В случае успешного выполнения возвращает экземпляр Socket или false в случае возникновения ошибки. Код ошибки может быть получен при помощи вызова функции socket_last_error(). Этот код ошибки может быть передан функции socket_strerror() для получения текстового описания ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр Socket; ранее возвращался ресурс (resource).

Смотрите также

  • 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, PHP 8)

socket_addrinfo_bind — Создать и привязать к сокету из указанного addrinfo

Описание

socket_addrinfo_bind(AddressInfo $address): Socket|false

Создать экземпляр Socket и привязать его с предоставленным AddressInfo. Возвращаемое значение этой функции может использоваться с socket_listen().

Список параметров

address

Экземпляр AddressInfo, созданный с помощью socket_addrinfo_lookup().

Возвращаемые значения

Возвращает экземпляр Socket в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр Socket; ранее возвращался ресурс (resource).
8.0.0 | address теперь экземпляр класса AddressInfo; ранее был ресурсом (resource).

Смотрите также

  • 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, PHP 8)

socket_addrinfo_connect — Создать и подключиться к сокету из указанного addrinfo

Описание

socket_addrinfo_connect(AddressInfo $address): Socket|false

Создать экземпляр Socket и подключить его к предоставленному экземпляру AddressInfo. Возвращаемое значение этой функции может использоваться с остальными функциями сокета.

Список параметров

address

Экземпляр AddressInfo, созданный с помощью socket_addrinfo_lookup()

Возвращаемые значения

Возвращает экземпляр Socket в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр Socket; ранее возвращался ресурс (resource).
8.0.0 | address теперь экземпляр класса AddressInfo; ранее был ресурсом (resource).

Смотрите также

  • 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, PHP 8)

socket_addrinfo_explain — Получить информацию о addrinfo

Описание

socket_addrinfo_explain(AddressInfo $address): array

Функция socket_addrinfo_explain() предоставляет доступ к базовой структуре addrinfo.

Список параметров

address

Экземпляр AddressInfo, созданный с помощью socket_addrinfo_lookup()

Возвращаемые значения

Возвращает массив, содержащий поля в структуре addrinfo.

Список изменений

Версия | Описание
8.0.0 | address теперь экземпляр класса AddressInfo; ранее был ресурсом (resource).

Смотрите также

  • socket_addrinfo_bind() - Создать и привязать к сокету из указанного addrinfo
  • socket_addrinfo_connect() - Создать и подключиться к сокету из указанного addrinfo
  • socket_addrinfo_lookup() - Получить массив с содержимым getaddrinfo про указанное имя хоста


Получить массив с содержимым getaddrinfo про указанное имя хоста

  • « socket_addrinfo_explain
  • socket_atmark »
  • PHP Manual
  • Функции сокета
  • Получить массив с содержимым getaddrinfo про указанное имя хоста

socket_addrinfo_lookup

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_lookup — Получить массив с содержимым getaddrinfo про указанное имя хоста

Описание

socket_addrinfo_lookup(string $host, ?string $service = null, array $hints = []): array|false

Поиск различных способов подключения к хосту (host). Возвращаемый массив содержит набор экземпляров AddressInfo, которые можно привязать с помощью socket_addrinfo_bind().

Список параметров

host

Имя хоста для поиска.

service

Сервис для подключения. Если значение является числовой строкой, оно обозначает порт. В противном случае - это имя сетевой службы, которое сопоставляется с портом операционной системы.

hints

Подсказки предоставляют критерии выбора возвращаемых адресов. Вы можете указать подсказки, как определено getaddrinfo.

Возвращаемые значения

Возвращает массив экземпляров AddressInfo, которые можно использовать с другими функциями socket_addrinfo. В случае возникновения ошибки возвращает false.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает массив экземпляров AddressInfo; ранее возвращался ресурс (resource).
8.0.0 | service теперь допускает значение null.

Смотрите также

  • socket_addrinfo_bind() - Создать и привязать к сокету из указанного addrinfo
  • socket_addrinfo_connect() - Создать и подключиться к сокету из указанного addrinfo
  • socket_addrinfo_explain() - Получить информацию о addrinfo


Determines whether socket is at out-of-band mark

  • « socket_addrinfo_lookup
  • socket_bind »
  • PHP Manual
  • Функции сокета
  • Determines whether socket is at out-of-band mark

socket_atmark

(PHP 8 >= 8.3.0, PHP 8)

socket_atmark — Determines whether socket is at out-of-band mark

Описание

socket_atmark(Socket $socket): bool

Determines whether socket is at out-of-band mark.

Список параметров

socket

A Socket instance created with socket_create().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Using socket_atmark() to set the source address

<?php
// Create a new socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
var_dump(socket_atmark($sock));
// Close
socket_close($sock);
?>

Смотрите также

  • socket_connect() - Начинает соединение с сокетом
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)


Привязывает имя к сокету

  • « socket_atmark
  • socket_clear_error »
  • PHP Manual
  • Функции сокета
  • Привязывает имя к сокету

socket_bind

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_bind — Привязывает имя к сокету

Описание

socket_bind(Socket $socket, string $address, int $port = 0): bool

Привязывает имя, указанное в параметре address, к сокету, описанному в параметре socket. Это должно быть сделано до того, как соединение установлено при помощи функции socket_connect() или socket_listen().

Список параметров

socket

Экземпляр 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() для получения текстового описания ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Примеры

Пример #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, PHP 8)

socket_clear_error — Очищает ошибку на сокете или последний код ошибки

Описание

socket_clear_error(?Socket $socket = null): void

Эта функция очищает код ошибки на указанном сокете или последнюю глобальную ошибку сокета, если сокет не указан.

Эта функция позволяет принудительно сбросить значение кода ошибки для сокета или последний глобальный код ошибки модуля. Это может быть полезно для определения внутри части приложения, произошла ошибка или нет.

Список параметров

socket

Экземпляр Socket, созданный при помощи функции socket_create().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).
8.0.0 | socket теперь допускает значение null.

Смотрите также

  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Закрывает экземпляр Socket

  • « socket_clear_error
  • socket_cmsg_space »
  • PHP Manual
  • Функции сокета
  • Закрывает экземпляр Socket

socket_close

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_close — Закрывает экземпляр Socket

Описание

socket_close(Socket $socket): void

Функция socket_close() закрывает экземпляр Socket, указанный параметром socket.

Список параметров

socket

Экземпляр Socket, созданный при помощи функций socket_create() или socket_accept().

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Смотрите также

  • socket_bind() - Привязывает имя к сокету
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Вычислить размер буфера сообщения

  • « socket_close
  • socket_connect »
  • PHP Manual
  • Функции сокета
  • Вычислить размер буфера сообщения

socket_cmsg_space

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

socket_cmsg_space — Вычислить размер буфера сообщения

Описание

socket_cmsg_space(int $level, int $type, int $num = 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, PHP 8)

socket_connect — Начинает соединение с сокетом

Описание

socket_connect(Socket $socket, string $address, ?int $port = null): bool

Инициализирует соединение с адресом address, используя экземпляр Socket socket, который должен быть экземпляром Socket, созданным при помощи функции socket_create().

Список параметров

socket

Экземпляр Socket, созданный с помощью socket_create().

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.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).
8.0.0 | port теперь допускает значение null.

Смотрите также

  • 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, PHP 8)

socket_create_listen — Открывает сокет на указанном порту для принятия соединений

Описание

socket_create_listen(int $port, int $backlog = 128): Socket|false

socket_create_listen() создаёт новый экземпляр Socket типа AF_INET, слушающий на всех локальных интерфейсах указанный порт в ожидании новых соединений.

Эта функция предназначена для упрощения задачи создания нового сокета, который только слушает порт для получения новых соединений.

Список параметров

port

Порт, который нужно слушать на всех интерфейсах.

backlog

Параметр backlog определяет максимальную длину, до которой может вырасти очередь ожидающих соединений. SOMAXCONN может быть передан как параметр backlog, смотрите socket_listen() для более полной информации.

Возвращаемые значения

socket_create_listen() возвращает новый экземпляр Socket в случае успешного выполнения или false в случае возникновения ошибки. Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр Socket; ранее возвращался ресурс (resource).

Примечания

Замечание:

Если вы хотите создать сокет, который будет прослушивать только определённый интерфейс, вам нужно использовать функции 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, PHP 8)

socket_create_pair — Создаёт пару неразличимых сокетов и сохраняет их в массиве

Описание

socket_create_pair(
int $domain,
int $type,
int $protocol,
array &$pair
): bool

socket_create_pair() создаёт два соединённых и неразличимых сокета, и сохраняет их в массиве pair. Эта функция обычно используется IPC (межпроцессном взаимодействии).

Список параметров

domain

Параметр domain определяет семейство протоколов, которое будет использоваться сокетом. Смотрите их полный список в описании функции socket_create().

type

Параметр type указывает тип коммуникации, которая будет использоваться сокетом. Смотрите их полный список в описании функции socket_create().

protocol

Параметр protocol устанавливает определённый протокол в указанном семействе протоколов domain, который будет использоваться при связи с полученными сокетами. Соответствующее значение может быть получено по имени при помощи функции getprotobyname(). Если требуемый протокол TCP или UDP, то соответствующие константы SOL_TCP и SOL_UDP также могут быть использованы.

Смотрите полный список поддерживаемых протоколов в описании функции socket_create().

pair

Ссылка на массив, в который будут вставлены два экземпляра Socket.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | pair является ссылкой на массив экземпляров Socket; ранее являлся ссылкой на массив ресурсов (resource).

Примеры

Пример #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, PHP 8)

socket_create — Создаёт сокет (конечную точку для обмена информацией)

Описание

socket_create(int $domain, int $type, int $protocol): Socket|false

Создаёт и возвращает экземпляр Socket, также называемый как конечная точка обмена информацией. Типичное сетевое соединение состоит из двух сокетов, один из которых выполняет роль клиента, а другой выполняет роль сервера.

Список параметров

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() возвращает экземпляр Socket в случае успешного выполнения, или false в случае возникновения ошибки. Код ошибки может быть получен при помощи вызова функции socket_last_error(). Эта ошибка может быть передана функции socket_strerror() для получения текстового описания ошибки.

Ошибки

Если указан неверный параметр domain или type, функция socket_create() будет использовать по умолчанию значение AF_INET и SOCK_STREAM соответственно, и дополнительно к этому выдаст сообщение E_WARNING.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр Socket; ранее возвращался ресурс (resource).

Смотрите также

  • 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, PHP 8)

socket_export_stream — Экспортировать сокет в поток, инкапсулирующий сокет

Описание

socket_export_stream(Socket $socket): resource|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

socket

Возвращаемые значения

Возвращает ресурс или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).


Получает опции потока для сокета

  • « socket_export_stream
  • socket_getopt »
  • PHP Manual
  • Функции сокета
  • Получает опции потока для сокета

socket_get_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

socket_get_option — Получает опции потока для сокета

Описание

socket_get_option(Socket $socket, int $level, int $option): array|int|false

Функция socket_get_option() извлекает значение для опции, указанной параметром option для заданного socket.

Список параметров

socket

Экземпляр Socket, созданный с помощью socket_create() или socket_accept().

level

Параметр level указывает уровень протокола, на котором находится опция. Например, для получения опций на уровне сокета, должен использовать параметр level, равный SOL_SOCKET. Другие уровни, такие как TCP, можно использовать, указав номер протокола этого уровня. Номера протоколов можно найти с помощью функции getprotobyname().

option
Доступные опции сокета
Опция | Описание | Тип
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 | Присоединяется к многоадресной группе. | массив (array) с ключами "group", указав строку (string) с многоадресным адресом IPv4 или IPv6 и "interface", указав либо номер интерфейса (тип int), либо строку (string) с именем интерфейса, например "eth0". 0 можно указать, чтобы сообщить, что интерфейс должен быть выбран с использованием правил маршрутизации. (может использоваться только в socket_set_option())
MCAST_LEAVE_GROUP | Оставляет многоадресную группу. | массив (array). Смотрите MCAST_JOIN_GROUP для получения дополнительной информации. (может использоваться только в socket_set_option())
MCAST_BLOCK_SOURCE | Блокирует пакеты, поступающие из определённого источника в определённую группу многоадресной передачи, которые должны быть предварительно соединены. | массив (array) с такими же ключами, как у MCAST_JOIN_GROUP, плюс один дополнительный ключ, source, который представляет строку (string), указывающую адрес IPv4 или IPv6 источника, который должен быть заблокирован. (может использоваться только в socket_set_option())
MCAST_UNBLOCK_SOURCE | Разблокирует (начинает приём снова) пакеты, поступающие с определённого исходного адреса в определённую группу многоадресной передачи, которая должна предварительно соединена. | массив (array) с таким же форматом, как у MCAST_BLOCK_SOURCE. (может использоваться только в socket_set_option())
MCAST_JOIN_SOURCE_GROUP | Получать пакеты, предназначенные для конкретной группы многоадресной передачи, исходный адрес которого совпадает определённому значению. | массив (array) с тем же самым форматом, что у MCAST_BLOCK_SOURCE. (может использоваться только в socket_set_option())
MCAST_LEAVE_SOURCE_GROUP | Остановить приём пакетов, предназначенных для конкретной группы многоадресной передачи, исходный адрес которого совпадает определённому значению. | массив (array) с тем же самым форматом, что у MCAST_BLOCK_SOURCE. (может использоваться только в socket_set_option())
IP_MULTICAST_IF | Исходящий интерфейс для многоадресных пакетов IPv4. | Любое целое число (int), указывающее номер интерфейса или строку (string) с именем интерфейса, например, eth0. Значение 0 может использоваться для указания, что таблица маршрутизации используется для выбора интерфейса. Функция socket_get_option() возвращает индекс интерфейса. Обратите внимание, что в отличие от C API, эта опция НЕ принимает IP-адрес. Это устраняет разницу в интерфейсе между IP_MULTICAST_IF и IPV6_MULTICAST_IF.
IPV6_MULTICAST_IF | Исходящий интерфейс для многоадресных пакетов IPv6. | То же, что и IP_MULTICAST_IF.
IP_MULTICAST_LOOP | Политика петли групповой передачи для пакетов IPv4 включает или отключает передачу исходящих многоадресных рассылок, которые должны быть предварительно присоединены. Эффект, однако, различается, в зависимости от применения в Unix или Windows: в первом случае на пути получения, а во втором - на пути отправки. | целое число (int) (либо 0, либо 1). Для socket_set_option() любое значение будет принято и преобразовано в тип boolean, согласно обычным правилам PHP.
IPV6_MULTICAST_LOOP | Аналогично IP_MULTICAST_LOOP, но для IPv6. | int. See IP_MULTICAST_LOOP.
IP_MULTICAST_TTL | Время ожидания исходящих пакетов IPv4 для многоадресной передачи. Это должно быть значение между 0 (не оставлять интерфейс) и 255. Значение по умолчанию - 1 (достигается только локальная сеть). | целое число (int) между 0 и 255.
IPV6_MULTICAST_HOPS | Аналогично IP_MULTICAST_TTL, но для пакетов IPv6. Значение -1 также принимается, что означает использование маршрута по умолчанию. | целое число (int) между 0 и 255.
SO_MARK | Устанавливает идентификатор сокета для фильтрации пакетов в Linux. | int
SO_ACCEPTFILTER | Добавляет фильтр приёма на прослушиваемый сокет (FreeBSD/NetBSD). Модуль ядра фильтра приёма должен быть предварительно загружен в FreeBSD (например, accf_http). | Строка (string) имя фильтра (длина не более 15).
SO_USER_COOKIE | Устанавливает идентификатор сокета для фильтрации пакетов в FreeBSD. | int
SO_RTABLE | Устанавливает идентификатор сокета для фильтрации пакетов в OpenBSD. | int
SO_DONTTRUNC | Сохраняет непрочитанные данные. | int
SO_WANTMORE | Подсказывает, когда будет доступно больше данных. | int
TCP_DEFER_ACCEPT | Не уведомляет слушающий сокет, пока данные не будут готовы. | int
SO_INCOMING_CPU | Получает/устанавливает сродство к процессору для сокета. | int
SO_MEMINFO | Получает meminfo сокета. | int
SO_BPF_EXTENSIONS | Получает поддерживаемые ядром модули BPF для присоединения к сокету. | int
SO_SETFIB | Устанавливает таблицу маршрутизации (FIB) сокета (только FreeBSD). | int
SOL_FILTER | Фильтры, приписываемые сокету (только для Solaris/Illumos). | int
TCP_KEEPCNT | Устанавливает максимальное количество зондов keepalive, которые TCP должен отправить перед разрывом соединения. | int
TCP_KEEPIDLE | Устанавливает время, в течение которого соединение должно простаивать. | int
TCP_KEEPINTVL | Устанавливает время между отдельными зондами keepalive. | int
TCP_KEEPALIVE | Устанавливает время, в течение которого соединение должно простаивать (только для macOS). | int
TCP_NOTSENT_LOWAT | Устанавливает предельное количество неотправленных данных в очереди на запись потоком сокета (только для Linux). | int

Возвращаемые значения

Возвращает значение заданной опции или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Примеры

Пример #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, PHP 8)

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, PHP 8)

socket_getpeername — Запрашивает удалённую сторону указанного сокета, в результате может быть возвращён хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

Описание

socket_getpeername(Socket $socket, string &$address, int &$port = null): bool

Запрашивает удалённую сторону указанного сокета, в результате может быть возвращён хост/порт или путь в файловой системе Unix, в зависимости от типа сокета.

Список параметров

socket

Экземпляр 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, в этом случае код последней ошибки сокета НЕ будет обновлён.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Примечания

Замечание:

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, PHP 8)

socket_getsockname — Запрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

Описание

socket_getsockname(Socket $socket, string &$address, int &$port = null): bool

Замечание: Функция socket_getsockname() не должна использоваться с сокетами AF_UNIX, созданными при помощи функции socket_connect(). Только сокеты, созданные функцией socket_accept() и первичные серверные сокеты после вызова socket_bind(), позволяют получить осмысленный ответ при вызове этой функции.

Список параметров

socket

Экземпляр 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

Если указан, то будет содержать соответствующий порт.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. socket_getsockname() может также возвращать false, если тип сокета не является одним из AF_INET, AF_INET6, или AF_UNIX, в этом случае код последней ошибки сокета не обновляется.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Смотрите также

  • 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, PHP 8)

socket_import_stream — Импортировать поток

Описание

socket_import_stream(resource $stream): Socket|false

Импортирует поток, который инкапсулирует сокет в ресурс модуля сокета.

Список параметров

stream

Ресурс поток для импорта.

Возвращаемые значения

Возвращает false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр Socket; ранее возвращался ресурс (resource).

Примеры

Пример #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, PHP 8)

socket_last_error — Возвращает последнюю ошибку на сокете

Описание

socket_last_error(?Socket $socket = null): int

Если экземпляр Socket передан этой функции, то возвращается последняя ошибка, которая произошла на этом конкретном сокете. Если socket не указан, возвращается код ошибки последней неудавшейся функции сокетов. Последнее особенно полезно для таких функций, как socket_create(), которая не возвращает сокет в случае неудачи и socket_select(), которая может закончиться неудачно по причинам, не связанным непосредственно с каким-либо конкретным сокетом. Код ошибки подходит для передачи функции socket_strerror(), которая возвращает строку, описывающую указанный код ошибки.

Если ошибок нет или они были очищены функцией socket_clear_error(), функция вернёт 0.

Список параметров

socket

Экземпляр Socket, созданный при помощи функции socket_create().

Возвращаемые значения

Эта функция возвращает код ошибки сокета.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).
8.0.0 | socket теперь допускает значение null.

Примеры

Пример #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, PHP 8)

socket_listen — Прослушивает входящие соединения на сокете

Описание

socket_listen(Socket $socket, int $backlog = 0): bool

После того, как сокет socket был создан при помощи функции socket_create() и привязан к имени при помощи функции socket_bind(), ему можно указать слушать входящие соединения на сокете socket.

Функция socket_listen() применима только к сокетам типа SOCK_STREAM или SOCK_SEQPACKET.

Список параметров

socket

Экземпляр Socket, созданный при помощи функций socket_create() или socket_addrinfo_bind().

backlog

Максимум backlog входящих соединений будет помещено в очередь на обработку. Если запрос на соединение придёт, когда очередь заполнена, клиент может получить ошибку ECONNREFUSED, или, если базовый протокол позволяет повторную передачу, запрос будет повторён.

Замечание:

Максимальное значение параметра backlog очень сильно зависит используемой платформы. В Linux очень большое значение будет молча обрезано до SOMAXCONN. В win32, если передано SOMAXCONN, базовый провайдер сервиса, ответственного за сокет, установит этот параметр максимальным разумным значением. Нет стандартного способа узнать актуальное значение "backlog" для этой платформы.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Смотрите также

  • 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, PHP 8)

socket_read — Читает строку максимальную длину байт из сокета

Описание

socket_read(Socket $socket, int $length, int $mode = PHP_BINARY_READ): string|false

Функция socket_read() читает данные из экземпляра Socket socket, созданного при помощи функций socket_create() или socket_accept().

Список параметров

socket

Экземпляр Socket, созданный при помощи функций socket_create() или socket_accept().

length

Максимальное количество байт для чтения определено параметром length. Как вариант вы можете использовать \r, \n, или \0 для окончания чтения (в зависимости от параметра mode, смотрите ниже).

mode

Необязательный параметр mode - это именованная константа:

  • PHP_BINARY_READ (По умолчанию) - используется системная функция recv(). Безопасно для чтения бинарных данных.
  • PHP_NORMAL_READ - чтение останавливается на \n или \r.

Возвращаемые значения

socket_read() возвращает данные в виде строки в случае успешного выполнения, или false в случае возникновения ошибки (включая случай, когда удалённый хост закрыл соединение). Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Замечание:

socket_read() возвращает строку нулевой длины (""), когда больше нет данных для чтения.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Смотрите также

  • 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, PHP 8)

socket_recv — Получает данные из подсоединённого сокета

Описание

socket_recv(
Socket $socket,
?string &$data,
int $length,
int $flags
): int|false

Функция socket_recv() получает length байт данных в буфер data из сокета socket. функция socket_recv() может быть использована для получения данных из подсоединённых сокетов. Дополнительно к этому, один или более флагов могут быть указаны для изменения поведения функции.

Параметр data передаётся по ссылке, так что он должен быть указан в виде переменной в списке аргументов. Данные, прочитанные из сокета socket функцией socket_recv(), будут возвращены в параметре data.

Список параметров

socket

Параметр socket должен быть экземпляром Socket, предварительно созданным при помощи функции socket_create().

data

Полученные данные будут переданы в переменную, указанную в параметре data. Если происходит ошибка, если соединение сброшено, или если данные недоступны, параметр data будет установлен в null.

length

До length байт будет получено с удалённого хоста.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, соединённых при помощи двоичного оператора OR (|).

Possible values for flags
Флаг | Описание
MSG_OOB | Обрабатывать внеполосные (out-of-band) данные.
MSG_PEEK | Получать данные с начала очереди получения без удаления их из очереди.
MSG_WAITALL | Функция будет блокировать выполнение скрипта до тех пор, пока как минимум length байт не будет получено. Однако, в том случае, если получен сигнал или удалённый хост отсоединился, функция может вернуть меньше данных.
MSG_DONTWAIT | Если этот флаг установлен, то функция вернётся даже в том случае, если бы она обычно блокировала выполнение скрипта.

Возвращаемые значения

socket_recv() возвращает количество полученных байтов или false в случае возникновения ошибки. Фактический код ошибки может быть получен при помощи функции socket_last_error(). Этот код ошибки может быть передан функции socket_strerror() для получения текстового описания ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Примеры

Пример #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, PHP 8)

socket_recvfrom — Получает данные из сокета, независимо от того, подсоединён он или нет

Описание

socket_recvfrom(
Socket $socket,
string &$data,
int $length,
int $flags,
string &$address,
int &$port = null
): int|false

Функция socket_recvfrom() получает length байт данных в data из адреса address на порту port (если сокет не типа AF_UNIX) используя сокет socket. Функция socket_recvfrom() может быть использована для извлечения данных как из подключённых, так и из не подключённых сокетов. Дополнительно, один или более флагов могут быть указаны для того, чтобы изменить поведение функции.

Параметры address и port должны быть переданы по ссылке. Если сокет не ориентирован на соединение, address должен быть установлен как адрес интернет-протокола удалённого хоста, либо как путь к сокету UNIX. Если сокет не ориентирован на соединение, address должен быть null. Дополнительно, port должен содержать порт удалённого хоста для не подключённых сокетов типа AF_INET и AF_INET6.

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Список параметров

socket

Параметр socket должен быть экземпляром Socket, предварительно созданным при помощи функции socket_create().

data

Полученные данные будут переданы в переменную, указанную при помощи параметра data.

length

С удалённого хоста будет получено до length байт.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, объединённых при помощи двоичного оператора OR (|) operator.

Возможные значения для параметра flags
Флаг | Описание
MSG_OOB | Обрабатывать внеполосные (out-of-band) данные.
MSG_PEEK | Получать данные из начала очереди, не удаляя их.
MSG_WAITALL | Блокировать выполнение скрипта до тех пор, пока как минимум length не будет получено. Однако, если будет получен сигнал или удалённый хост отсоединится, функция может возвратить меньше данных.
MSG_DONTWAIT | Если этот флаг установлен, функция возвратится даже если обычно она будет блокировать выполнение скрипта.
address

Если сокет типа AF_UNIX, address - это путь к файлу. В ином случае, для неподсоединённых сокетов, параметр address - это IP-адрес, удалённого хоста, или null, если сокет ориентирован по соединение.

port

Этот аргумент применим только к сокетам AF_INET и AF_INET6, и указывает удалённый порт, из которого будут получены данные. Если сокет ориентирован по соединение, port будет null.

Возвращаемые значения

socket_recvfrom() возвращает количество полученных байт или false, если произошла ошибка. Фактический код ошибки может быть получен при помощи вызова функции socket_last_error(). Этот код ошибки может быть передан функции socket_strerror() для получения текстового описания ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Примеры

Пример #1 Пример использования socket_recvfrom()

<?php

$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, PHP 8)

socket_recvmsg — Прочитать сообщение

Описание

socket_recvmsg(Socket $socket, array &$message, int $flags = 0): int|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

socket

message

flags

Возвращаемые значения

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Смотрите также

  • socket_sendmsg() - Отправить сообщение
  • socket_cmsg_space() - Вычислить размер буфера сообщения


Запускает системный вызов select() для заданных массивов сокетов с указанным временем ожидания

  • « socket_recvmsg
  • socket_send »
  • PHP Manual
  • Функции сокета
  • Запускает системный вызов select() для заданных массивов сокетов с указанным временем ожидания

socket_select

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_select — Запускает системный вызов select() для заданных массивов сокетов с указанным временем ожидания

Описание

socket_select(
?array &$read,
?array &$write,
?array &$except,
?int $seconds,
int $microseconds = 0
): int|false

socket_select() принимает массивы сокетов и ждёт их изменения статуса. Те, кто знаком с сокетами BSD, обнаружат, что массивы сокетов на самом деле являются так называемыми наборами дескрипторов файлов. Наблюдаются три независимых массива ресурсов сокетов.

Список параметров

read

Сокеты, перечисленные в массиве read будут наблюдаться для просмотра, есть ли доступные символы для чтения ( точнее, чтобы видеть, не будет ли чтение блокироваться, в частности, сокет уже достиг конца файла, и в этом случае socket_read() вернёт строку с нулевой длиной).

write

Сокеты, перечисленные в массиве write будут наблюдаться для просмотра, не будет ли запись блокироваться.

except

Сокеты, перечисленные в массиве except будут наблюдаться для исключений.

seconds

seconds и microseconds вместе образуют параметр timeout. Параметр timeout - максимальный промежуток времени до возврата socket_select(). seconds может быть нулём, заставляя socket_select() к немедленному возврату. Это полезно для опроса. Если seconds равен null (нет времени ожидания), socket_select() может блокироваться бесконечно.

microseconds

Внимание

При завершении массивы изменяются для обозначения, какой сокет на самом деле изменил статус.

Не требуется передавать каждый массив в 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, PHP 8)

socket_send — Отправляет данные в подсоединённый сокет

Описание

socket_send(
Socket $socket,
string $data,
int $length,
int $flags
): int|false

Функция socket_send() отправляет length байт в сокет socket из буфера data.

Список параметров

socket

Экземпляр Socket, созданный при помощи функции socket_create() или socket_accept().

data

Буфер, содержащий данные, которые будут отправлены на удалённый хост.

length

Число байт, которое будет отправлено на удалённый хост из буфера data.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, соединённых при помощи двоичного оператора OR (|).

Возможные значения для параметра flags
MSG_OOB | Отправить данные OOB (out-of-band, внеполосные).
MSG_EOR | Указывает на метку записи. Отправляемые данные завершают запись.
MSG_EOF | Закрывает отправляющую сторону сокета и добавляет соответствующее оповещение об этом на конце отправляемых данных. Отправляемые данные завершают транзакцию.
MSG_DONTROUTE | Не использовать роутинг, использовать прямой интерфейс.

Возвращаемые значения

socket_send() возвращает количество отправленных байтов или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Смотрите также

  • socket_sendto() - Отправляет сообщение в сокет, независимо от того, подсоединён он или нет


Отправить сообщение

  • « socket_send
  • socket_sendto »
  • PHP Manual
  • Функции сокета
  • Отправить сообщение

socket_sendmsg

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

socket_sendmsg — Отправить сообщение

Описание

socket_sendmsg(Socket $socket, array $message, int $flags = 0): int|false

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

socket

message

flags

Возвращаемые значения

Возвращает количество отправленных байтов или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Смотрите также

  • socket_recvmsg() - Прочитать сообщение
  • socket_cmsg_space() - Вычислить размер буфера сообщения


Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

  • « socket_sendmsg
  • socket_set_block »
  • PHP Manual
  • Функции сокета
  • Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

socket_sendto

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

Описание

socket_sendto(
Socket $socket,
string $data,
int $length,
int $flags,
string $address,
?int $port = null
): int|false

Функция socket_sendto() отправляет length байт из буфера buf через сокет socket к порту port на адресе address.

Список параметров

socket

Экземпляр Socket, созданный при помощи socket_create().

data

Отправляемые данные будут взяты из буфера data.

length

length байт из буфера data будет отправлено.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, соединённых при помощи двоичного оператора OR (|).

Возможные значения флагов flags
MSG_OOB | Отправить данные OOB (out-of-band, внеполосные).
MSG_EOR | Указывает на метку записи. Отправленные данные завершают запись.
MSG_EOF | Закрывает отправляющую сторону сокета и добавляет соответствующее оповещение об этом в конец отправляемых данных. Отправленные данные завершают транзакцию.
MSG_DONTROUTE | Не использовать маршрутизацию, использовать прямой интерфейс.

address

IP-адрес удалённого хоста.

port

port - это номер удалённого порта, по которому будут отправлены данные.

Возвращаемые значения

Функция socket_sendto() возвращает количество байт, отправленных на удалённый хост, или false, если произошла ошибка.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).
8.0.0 | port теперь допускает значение null.

Примеры

Пример #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, PHP 8)

socket_set_block — Устанавливает блокирующий режим на сокете

Описание

socket_set_block(Socket $socket): bool

Функция socket_set_block() убирает флаг O_NONBLOCK с сокета, указанного в параметре socket.

Когда операция (например, получение, отправка, соединение, принятие соединения, ...) выполняется на блокирующем сокете, скрипт будет приостанавливать своё выполнение до тех пор, пока он не получит сигнал или возможность выполнить операцию.

Список параметров

socket

Экземпляр Socket, созданный при помощи функции socket_create() или socket_accept().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Примеры

Пример #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, PHP 8)

socket_set_nonblock — Устанавливает неблокирующий режим для файлового дескриптора fd

Описание

socket_set_nonblock(Socket $socket): bool

Функция socket_set_nonblock() устанавливает флаг O_NONBLOCK на сокете, указанном в параметре socket.

Когда операция (например, получение, отправка, соединение, принятие соединения, ...) выполняется на неблокирующем сокете, скрипт не будет приостанавливать своё исполнение до получения сигнала или возможности выполнить операцию. Если выполняемая операция должна привести к блокированию выполнения скрипта, то вместо этого вызываемая функция возвратит ошибку.

Список параметров

socket

Экземпляр Socket, созданный при помощи функции socket_create() или socket_accept().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Примеры

Пример #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, PHP 8)

socket_set_option — Устанавливает опции для сокета

Описание

socket_set_option(
Socket $socket,
int $level,
int $option,
array|string|int $value
): bool

Функция socket_set_option() устанавливает опцию указанную в параметре option, на уровне протокола level, в значение, указанное параметром value для сокета socket.

Список параметров

socket

Экземпляр Socket, созданный при помощи функции socket_create() или socket_accept().

level

Параметр level указывает уровень протокола, на котором используется опция. Например, чтобы установить опции на уровне сокета, параметр level должен быть установлен в SOL_SOCKET. Другие уровни, такие как TCP, можно использовать, указав номер протокола этого уровня. Номер протоколов можно найти с помощью функции getprotobyname().

option

Возможные опции для сокета те же самые, как и для функции socket_get_option().

value

Значение опции.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Примеры

Пример #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, PHP 8)

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, PHP 8)

socket_shutdown — Завершает работу сокета на получение и/или отправку данных

Описание

socket_shutdown(Socket $socket, int $mode = 2): bool

Функция socket_shutdown() позволяет вам остановить передачу поступающих, исходящих или всех данных (по умолчанию) через сокет socket

Замечание:

Ассоциированный буфер, или буферы, могут быть освобождены, а могут и нет.

Список параметров

socket

Экземпляр Socket, созданный при помощи функции socket_create().

mode

Значение параметра mode может быть одним из следующих:

возможные значения для параметра mode
0 | Завершает чтение из сокета
1 | Завершает запись в сокет
2 | Завершает чтение и запись в сокет

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).


Возвращает строку, описывающую ошибку сокета

  • « socket_shutdown
  • socket_write »
  • PHP Manual
  • Функции сокета
  • Возвращает строку, описывающую ошибку сокета

socket_strerror

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_strerror — Возвращает строку, описывающую ошибку сокета

Описание

socket_strerror(int $error_code): string

socket_strerror() получает в качестве параметра error_code код ошибки сокета, возвращаемый функцией socket_last_error() и возвращает соответствующий текст с разъяснением.

Замечание:

Хотя сообщения об ошибках, создаваемые модулем socket, на английском языке, системные сообщения, получаемые этой функцией, будут появляться в зависимости от текущей локали (LC_MESSAGES).

Список параметров

error_code

Допустимый код ошибки сокета, скорее всего, возвращённый функцией socket_last_error().

Возвращаемые значения

Возвращает сообщение об ошибке, связанное с параметром error_code.

Примеры

Пример #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, PHP 8)

socket_write — Запись в сокет

Описание

socket_write(Socket $socket, string $data, ?int $length = null): int|false

Функция socket_write() записывает в сокет socket данные из указанного буфера data.

Список параметров

socket

data

Буфер, который будет записан.

length

Необязательный параметр length может указывать другое число байт, записываемых в сокет. Если это число больше, чем длина буфера, оно будет молча урезано до длины буфера.

Возвращаемые значения

Возвращает количество байт, успешно записанных в сокет или false в случае возникновения ошибки. Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Замечание:

Совершенно нормально для функции socket_write() возвращать ноль, что означает, что ни одного байта не было записано. Пожалуйста, используйте оператор === для проверки значения на false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).
8.0.0 | length теперь допускает значение null.

Примечания

Замечание:

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, PHP 8)

socket_wsaprotocol_info_export — Экспорт структуры WSAPROTOCOL_INFO

Описание

socket_wsaprotocol_info_export(Socket $socket, int $process_id): string|false

Экспортирует структуру WSAPROTOCOL_INFO в разделяемую память и возвращает идентификатор, который можно использовать в socket_wsaprotocol_info_import(). Этот идентификатор пригоден только для использования в процессе с PID, указанным в process_id.

Замечание: Функция доступна только в Windows.

Список параметров

socket

Экземпляр Socket.

process_id

Идентификатор процесса, который будет импортировать сокет.

Возвращаемые значения

Возвращает идентификатор, который можно использовать для импорта или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | socket теперь экземпляр класса Socket; ранее был ресурсом (resource).

Смотрите также

  • 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, PHP 8)

socket_wsaprotocol_info_import — Импортирует сокет из другого процесса

Описание

socket_wsaprotocol_info_import(string $info_id): Socket|false

Импортирует сокет, который был экспортирован в другом процессе.

Замечание: Функция доступна только в Windows.

Список параметров

info_id

Идентификатор, полученный при вызове socket_wsaprotocol_info_export().

Возвращаемые значения

Возвращает экземпляр Socket в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В случае успешного выполнения функция возвращает экземпляр Socket; ранее возвращался ресурс (resource).

Смотрите также

  • socket_wsaprotocol_info_export() - Экспорт структуры WSAPROTOCOL_INFO


Высвобождает экспортированную структуру WSAPROTOCOL_INFO

  • « socket_wsaprotocol_info_import
  • Socket »
  • PHP Manual
  • Функции сокета
  • Высвобождает экспортированную структуру WSAPROTOCOL_INFO

socket_wsaprotocol_info_release

(PHP 7 >= 7.3.0, PHP 8)

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


Класс Socket

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы Socket в PHP 8.0.0.

Обзор классов

final class Socket {
}


Класс AddressInfo

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы AddressInfo в PHP 8.0.0.

Обзор классов

final class AddressInfo {
}


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_forward_accept — Принимает соединение, созданное слушателем
    • ssh2_forward_listen — Связывает порт на удалённом сервере и прослушивает соединения
    • ssh2_methods_negotiated — Возвращает список согласованных методов
    • ssh2_poll — Опрашивает каналы/слушателей/потоки на предмет событий
    • ssh2_publickey_add — Добавляет авторизованный открытый ключ
    • ssh2_publickey_init — Инициализирует подсистему открытого ключа
    • ssh2_publickey_list — Список уже авторизованных открытых ключей
    • ssh2_publickey_remove — Удаляет авторизованный открытый ключ
    • ssh2_scp_recv — Запрос файла через SCP
    • ssh2_scp_send — Отправка файла через SCP
    • ssh2_send_eof — Отправляет EOF в поток
    • 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.

Бинарные файлы Windows (файлы DLL) для этого модуля PECL доступны на сайте PECL.


Типы ресурсов

Модуль определяет следующие типы ресурсов:

  • Сессия SSH2
  • Слушатель SSH2
  • SSH2 SFTP
  • Подсистема открытого ключа SSH2 (с ssh2 0.10)


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

SSH2_FINGERPRINT_MD5 (int)
Флаг для получения идентификатора сервера в виде хеш-суммы MD5 функцией ssh2_fingerprint().
SSH2_FINGERPRINT_SHA1 (int)
Флаг для получения идентификатора сервера в виде хеш-суммы SHA1 функцией ssh2_fingerprint().
SSH2_FINGERPRINT_HEX (int)
Флаг для получения идентификатора сервера функцией ssh2_fingerprint() в виде строки шестнадцатеричных символов.
SSH2_FINGERPRINT_RAW (int)
Флаг для получения идентификатора сервера функцией ssh2_fingerprint() в виде неотформатированной строки восьмибитных символов.
SSH2_TERM_UNIT_CHARS (int)
Флаг для функции ssh2_shell(), определяющий, что параметры width и height задаются в виде количества символов.
SSH2_TERM_UNIT_PIXELS (int)
Флаг для функции ssh2_shell(), определяющий, что параметры width и height задаются в пикселях.
SSH2_DEFAULT_TERM_WIDTH (int)
Принятое по умолчанию значение ширины окна терминала, принимаемое функцией ssh2_shell().
SSH2_DEFAULT_TERM_HEIGHT (int)
Принятое по умолчанию значение высоты окна терминала, принимаемое функцией ssh2_shell().
SSH2_DEFAULT_TERM_UNIT (int)
Принятая по умолчанию единица измерения значений ширины и высоты окна терминала, принимаемых функцией ssh2_shell().
SSH2_STREAM_STDIO (int)
Флаг функции ssh2_fetch_stream(), запрашивающей субканал STDIO.
SSH2_STREAM_STDERR (int)
Флаг функции ssh2_fetch_stream(), запрашивающей субканал STDERR.
SSH2_DEFAULT_TERMINAL (string)
Принятый по умолчанию тип терминала (например, vt102, ansi, xterm, vanilla), запрашиваемый функцией ssh2_shell().
SSH2_POLLIN (int)
SSH2_POLLEXT (int)
SSH2_POLLOUT (int)
SSH2_POLLERR (int)
SSH2_POLLHUP (int)
SSH2_POLLNVAL (int)
SSH2_POLL_SESSION_CLOSED (int)
SSH2_POLL_CHANNEL_CLOSED (int)
SSH2_POLL_LISTENER_CLOSED (int)


Функции 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_forward_accept — Принимает соединение, созданное слушателем
  • ssh2_forward_listen — Связывает порт на удалённом сервере и прослушивает соединения
  • ssh2_methods_negotiated — Возвращает список согласованных методов
  • ssh2_poll — Опрашивает каналы/слушателей/потоки на предмет событий
  • ssh2_publickey_add — Добавляет авторизованный открытый ключ
  • ssh2_publickey_init — Инициализирует подсистему открытого ключа
  • ssh2_publickey_list — Список уже авторизованных открытых ключей
  • ssh2_publickey_remove — Удаляет авторизованный открытый ключ
  • ssh2_scp_recv — Запрос файла через SCP
  • ssh2_scp_send — Отправка файла через SCP
  • ssh2_send_eof — Отправляет EOF в поток
  • 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|false

Устанавливает соединение с сервером по 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|false

Запуск команды на удалённом сервере и выделение для неё канала.

Список параметров

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_forward_accept »
  • 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_forward_listen »
  • PHP Manual
  • Функции SSH2
  • Принимает соединение, созданное слушателем

ssh2_forward_accept

(PECL ssh2 >= 0.9.0)

ssh2_forward_accept — Принимает соединение, созданное слушателем

Описание

ssh2_forward_accept(resource $listener): resource|false

Принимает соединение, созданное слушателем.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

desc

Ресурс SSH2 Listener, полученный в результате вызова ssh2_forward_listen().

Возвращаемые значения

Возвращает ресурс потока или false в случае возникновения ошибки.


Связывает порт на удалённом сервере и прослушивает соединения

  • « ssh2_forward_accept
  • ssh2_methods_negotiated »
  • PHP Manual
  • Функции SSH2
  • Связывает порт на удалённом сервере и прослушивает соединения

ssh2_forward_listen

(PECL ssh2 >= 0.9.0)

ssh2_forward_listen — Связывает порт на удалённом сервере и прослушивает соединения

Описание

ssh2_forward_listen(
resource $session,
int $port,
string $host = ?,
int $max_connections = 16
): resource|false

Связывает порт на удалённом сервере и прослушивает соединения.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

session

Ресурс SSH Session, полученный в результате вызова ssh2_connect().

port

Порт удалённого сервера.

host

max_connections

Возвращаемые значения

Возвращает SSH2 Listener или false в случае возникновения ошибки.

Смотрите также

  • ssh2_forward_accept() - Принимает соединение, созданное слушателем


Возвращает список согласованных методов

  • « ssh2_forward_listen
  • ssh2_poll »
  • 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_add »
  • PHP Manual
  • Функции SSH2
  • Опрашивает каналы/слушателей/потоки на предмет событий

ssh2_poll

(PECL ssh2 >= 0.9.0)

ssh2_poll — Опрашивает каналы/слушателей/потоки на предмет событий

Описание

ssh2_poll(array &$desc, int $timeout = 30): int

Опрашивает каналы/слушателей/потоки на предмет событий и возвращает количество дескрипторов, которые вернули ненулевые повторения.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

desc

Индексированный массив подмассивов с ключами 'resource' и 'events'. Значение ресурса - это (канал) поток или ресурс SSH2 Listener. Значением события являются флаги SSH2_POLL*, объединённые побитовым ИЛИ. Каждый подмассив будет заполнен элементом 'revents' при возврате, значения которого представляют собой флаги SSH2_POLL*, объединённые побитовым ИЛИ совместно с произошедшими событиями.

timeout

Время ожидания в секундах.

Возвращаемые значения

Возвращает количество дескрипторов, которые вернули ненулевые повторения.


Добавляет авторизованный открытый ключ

  • « ssh2_poll
  • 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|false

Запрашивает подсистему открытого ключа из уже открытого соединения 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_send_eof »
  • 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() - Копирует файл


Отправляет EOF в поток

  • « ssh2_scp_send
  • ssh2_sftp_chmod »
  • PHP Manual
  • Функции SSH2
  • Отправляет EOF в поток

ssh2_send_eof

(PECL ssh2 >= 1.3)

ssh2_send_eof — Отправляет EOF в поток

Описание

ssh2_send_eof(resource $channel): bool

Отправляет EOF в поток; обычно используется для закрытия стандартного ввода, сохраняя при этом вывод и ошибку. Например, можно отправить удалённому процессу некоторые данные через стандартный ввод, закрыть его, чтобы начать обработку, и по-прежнему иметь возможность считывать результаты без создания дополнительных файлов.

Список параметров

channel

Поток SSH; можно получить с помощью таких функций, как ssh2_fetch_stream() или ssh2_connect().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ssh2_fetch_stream() - Получение расширенного потока данных


Изменение прав доступа

  • « ssh2_send_eof
  • 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:// и возвращает такие же значения.

Список параметров

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

Маска прав доступа. Фактический режим зависит от текущей umask.

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:// и возвращает такие же значения.

Список параметров

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|false

Запрашивает подсистему 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 $termtype = "vanilla",
?array $env = null,
int $width = 80,
int $height = 25,
int $width_height_type = SSH2_TERM_UNIT_CHARS
): resource|false

Открывает терминал к удалённому серверу и выделяет ему поток.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

termtype

Тип терминала termtype. Должен соответствовать одному из перечисленных в серверном файле /etc/termcap.

env

env может содержать ассоциативный массив пар имя/значение, представляющий переменные окружения, которые надо выставить в терминале.

width

Ширина виртуального терминала.

height

Высота виртуального терминала.

width_height_type

width_height_type должен быть SSH2_TERM_UNIT_CHARS или SSH2_TERM_UNIT_PIXELS.

Возвращаемые значения

Возвращает ресурс (resource) потока в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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


Требования

» 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 int

Секундная часть времени ожидания подключения по умолчанию.

stomp.default_connection_timeout_usec int

Микросекундная часть времени ожидания подключения по умолчанию.

stomp.default_read_timeout_sec int

Секундная часть времени ожидания операции чтения по умолчанию.

stomp.default_read_timeout_usec int

Микросекундная часть времени ожидания операции чтения по умолчанию.


Типы ресурсов

Существует только один тип ресурсов, используемый в модуле 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(): 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(): 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).

Обзор классов

class Stomp {
/* Методы */
public __construct(
string $broker = ini_get("stomp.default_broker_uri"),
string $username = ?,
string $password = ?,
array $headers = ?
)
public abort(string $transaction_id, array $headers = ?): bool
stomp_abort(resource $link, string $transaction_id, array $headers = ?): bool
public ack(mixed $msg, array $headers = ?): bool
stomp_ack(resource $link, mixed $msg, array $headers = ?): bool
public begin(string $transaction_id, array $headers = ?): bool
stomp_begin(resource $link, string $transaction_id, array $headers = ?): bool
public commit(string $transaction_id, array $headers = ?): bool
stomp_commit(resource $link, string $transaction_id, array $headers = ?): bool
stomp_connect(
string $broker = ini_get("stomp.default_broker_uri"),
string $username = ?,
string $password = ?,
array $headers = ?
): resource
stomp_close(resource $link): bool
public error(): string
stomp_error(resource $link): string
public getReadTimeout(): array
stomp_get_read_timeout(resource $link): array
public getSessionId(): string|false
stomp_get_session_id(resource $link): string|false
public hasFrame(): bool
stomp_has_frame(resource $link): bool
public readFrame(string $class_name = "stompFrame"): stompframe
stomp_read_frame(resource $link): array
public send(string $destination, mixed $msg, array $headers = ?): bool
stomp_send(
resource $link,
string $destination,
mixed $msg,
array $headers = ?
): bool
public setReadTimeout(int $seconds, int $microseconds = ?): void
stomp_set_read_timeout(resource $link, int $seconds, int $microseconds = ?): void
public subscribe(string $destination, array $headers = ?): bool
stomp_subscribe(resource $link, string $destination, array $headers = ?): bool
public unsubscribe(string $destination, array $headers = ?): bool
stomp_unsubscribe(resource $link, string $destination, array $headers = ?): bool
public __destruct()
}

Содержание

  • 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 в случае возникновения ошибки.

Примеры

Пример #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 асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет превышено время ожидания сообщения.


Подтверждает получение сообщения

  • « 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 в случае возникновения ошибки.

Примеры

Пример #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 асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет превышено время ожидания сообщения.


Создаёт транзакцию

  • « 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_commit() или stomp_abort().

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет превышено время ожидания сообщения.


Выполняет текущую транзакцию

  • « 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 в случае возникновения ошибки.

Примеры

Пример #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 асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет превышено время ожидания сообщения.


Открывает соединение

  • « 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).

Возвращаемые значения

Замечание:

Также может быть указан заголовок транзакции, означающий что приём сообщения должен являться частью именованной транзакции.

Список изменений

Версия | Описание
PECL stomp 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()

Процедурный стиль:

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(): 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(): 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(): string|false

Процедурный стиль:

stomp_get_session_id(resource $link): string|false

Возвращает идентификатор текущей сессии 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(): 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_ack().

Примечания

Замечание:

Также может быть указан заголовок транзакции, означающий что приём сообщения должен являться частью именованной транзакции.

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет превышено время ожидания сообщения.


Устанавливает предельное время ожидания операции чтения

  • « 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_ack().

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет превышено время ожидания сообщения.


Удаляет существующую подписку

  • « 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_ack().

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет превышено время ожидания сообщения.


Класс StompFrame

(PECL stomp >= 0.1.0)

Введение

Представляет сообщение, которое было отправлено или получено от Stomp-совместимого брокера сообщений (Message Broker).

Обзор классов

class 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.

Обзор классов

class StompException extends Exception {
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
/* Методы */
public getDetails(): string
}

Содержание

  • StompException::getDetails — Возвращает сведения об исключении


Возвращает сведения об исключении

  • « StompException
  • SVM »
  • PHP Manual
  • StompException
  • Возвращает сведения об исключении

StompException::getDetails

(PECL stomp >= 0.1.0)

StompException::getDetails — Возвращает сведения об исключении

Описание

public StompException::getDetails(): 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)

Введение

Обзор классов

class SVM {
/* Константы */
const int C_SVC = 0;
const int NU_SVC = 1;
const int ONE_CLASS = 2;
const int EPSILON_SVR = 3;
const int NU_SVR = 4;
const int KERNEL_LINEAR = 0;
const int KERNEL_POLY = 1;
const int KERNEL_RBF = 2;
const int KERNEL_SIGMOID = 3;
const int KERNEL_PRECOMPUTED = 4;
const int OPT_TYPE = 101;
const int OPT_KERNEL_TYPE = 102;
const int OPT_DEGREE = 103;
const int OPT_SHRINKING = 104;
const int OPT_PROPABILITY = 105;
const int OPT_GAMMA = 201;
const int OPT_NU = 202;
const int OPT_EPS = 203;
const int OPT_P = 204;
const int OPT_COEF_ZERO = 205;
const int OPT_C = 206;
const int OPT_CACHE_SIZE = 207;
/* Методы */
public __construct()
public svm::crossvalidate(array $problem, int $number_of_folds): float
public getOptions(): 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()

Создаёт новый объект 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(): 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 - это конечный результат процесса обучения. Он может быть использован для классификации ранее неизвестных данных.

Обзор классов

class SVMModel {
/* Методы */
public __construct(string $filename = ?)
public checkProbabilityModel(): bool
public getLabels(): array
public getNrClass(): int
public getSvmType(): int
public getSvrProbability(): 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(): 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(): array

Возвращает массив меток (классов), на которых была обучена модель. Для регрессивной и одноклассовой модели возвращается пустой массив.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив меток

Смотрите также

  • SVMModel::getNrClass() - Возвращает количество классов, для которых обучалась модель


Возвращает количество классов, для которых обучалась модель

  • « SVMModel::getLabels
  • SVMModel::getSvmType »
  • PHP Manual
  • SVMModel
  • Возвращает количество классов, для которых обучалась модель

SVMModel::getNrClass

(PECL svm >= 0.1.5)

SVMModel::getNrClass — Возвращает количество классов, для которых обучалась модель

Описание

public SVMModel::getNrClass(): int

Возвращает количество классов, для которых обучалась модель. Для одноклассовой и регрессивной моделей вернёт 2.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число


Получить тип SVM, с которым обучалась модель

  • « SVMModel::getNrClass
  • SVMModel::getSvrProbability »
  • PHP Manual
  • SVMModel
  • Получить тип SVM, с которым обучалась модель

SVMModel::getSvmType

(PECL svm >= 0.1.5)

SVMModel::getSvmType — Получить тип SVM, с которым обучалась модель

Описание

public SVMModel::getSvmType(): int

Возвращает целое число, представляющее одну из констант класса SVM. Например SVM::C_SVC.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число


Получить величину сигмы для регрессионного типа

  • « SVMModel::getSvmType
  • SVMModel::load »
  • PHP Manual
  • SVMModel
  • Получить величину сигмы для регрессионного типа

SVMModel::getSvrProbability

(PECL svm >= 0.1.5)

SVMModel::getSvrProbability — Получить величину сигмы для регрессионного типа

Описание

public SVMModel::getSvrProbability(): 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 — Отменяет транзакцию
    • 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 — Копирует файл или директорию
    • svn_fs_delete — Удаляет файл или директорию
    • svn_fs_dir_entries — Перечисляет элементы директории по заданному пути; возвращает хеш имён директорий и типов файлов
    • svn_fs_file_contents — Возвращает поток для доступа к содержимому файла из данной файловой системы
    • svn_fs_file_length — Возвращает длину файла из данной файловой системы
    • svn_fs_is_dir — Определяет находится ли директория по данному пути
    • svn_fs_is_file — Определяет если находится ли файл по данному пути
    • svn_fs_make_dir — Создаёт новую пустую директорию
    • svn_fs_make_file — Создаёт новый пустой файл
    • 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 (int)
Магическое число (-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 — Отменяет транзакцию
  • 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 — Копирует файл или директорию
  • svn_fs_delete — Удаляет файл или директорию
  • svn_fs_dir_entries — Перечисляет элементы директории по заданному пути; возвращает хеш имён директорий и типов файлов
  • svn_fs_file_contents — Возвращает поток для доступа к содержимому файла из данной файловой системы
  • svn_fs_file_length — Возвращает длину файла из данной файловой системы
  • svn_fs_is_dir — Определяет находится ли директория по данному пути
  • svn_fs_is_file — Определяет если находится ли файл по данному пути
  • svn_fs_make_dir — Создаёт новую пустую директорию
  • svn_fs_make_file — Создаёт новый пустой файл
  • 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 в случае возникновения ошибки.

Примеры

Пример #1 svn_add() example

В рабочей директории, где svn status возвращает:

$ svn status
?      foobar.txt

...данный код:

<?php
svn_add('foobar.txt');
?>

...пометит файл foobar.txt как запланированный на добавление в репозиторий.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • » 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

Строковое значение устанавливаемого параметра по ключу. Формат значений может меняться в зависимости от параметра.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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');
?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • 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 в случае возникновения ошибки.

Примеры

Пример #1 Простой пример использования функции svn_cat()

Этот пример показывает как получить содержимое файла ревизии 28:

<?php
$contents = svn_cat('http://www.example.com/svnroot/calc/gui.c', 28)
?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • 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 в случае возникновения ошибки.

Примеры

Пример #1 Простой пример

Этот пример показывает, как получить директорию из репозитория в папку calc:

<?php
svn_checkout('http://www.example.com/svnroot/calc/trunk', dirname(__FILE__) . '/calc');
?>

Выражение dirname(__FILE__) используется для преобразования из относительного пути к calc в абсолютный путь. Если calc существует, то можно использовать realpath() для получения абсолютного пути.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • 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 в случае возникновения ошибки.

Примеры

Пример #1 Простой пример

Этот пример показывает, как очистить рабочую копию в директории help-me:

<?php
svn_cleanup(realpath('help-me'));
?>

В связи со странным поведением относительных путей в SVN, необходим вызов функции realpath().

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • 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(): string

Возвращает версию клиентских библиотек SVN

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Номер версии, обычно в формате x.y.z.

Примеры

Пример #1 Простой пример

<?php
echo svn_client_version();
?>

Результатом выполнения данного примера будет что-то подобное:

1.3.1

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Отправляет изменения из рабочей директории в репозиторий

  • « 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.

Примеры

Пример #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'
)

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • 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.

Примеры

Пример #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);
}
?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • » 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() - Импорт пути без версии в репозитории


Отменяет транзакцию

  • « svn_export
  • svn_fs_apply_text »
  • PHP Manual
  • Функции SVN
  • Отменяет транзакцию

svn_fs_abort_txn

(PECL svn >= 0.2.0)

svn_fs_abort_txn — Отменяет транзакцию

Описание

svn_fs_abort_txn(resource $txn): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Отменяет транзакцию.

Список параметров

txn

Возвращаемые значения

Возвращает 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 без уведомления. Используйте эту функцию на свой страх и риск.


Копирует файл или директорию

  • « svn_fs_contents_changed
  • svn_fs_delete »
  • PHP Manual
  • Функции SVN
  • Копирует файл или директорию

svn_fs_copy

(PECL svn >= 0.2.0)

svn_fs_copy — Копирует файл или директорию

Описание

svn_fs_copy(
resource $from_root,
string $from_path,
resource $to_root,
string $to_path
): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Копирует файл или директорию.

Список параметров

from_root

from_path

to_root

to_path

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Удаляет файл или директорию

  • « svn_fs_copy
  • svn_fs_dir_entries »
  • PHP Manual
  • Функции SVN
  • Удаляет файл или директорию

svn_fs_delete

(PECL svn >= 0.2.0)

svn_fs_delete — Удаляет файл или директорию

Описание

svn_fs_delete(resource $root, string $path): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Удаляет файл или директорию.

Список параметров

root

path

Возвращаемые значения

Возвращает 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 без уведомления. Используйте эту функцию на свой страх и риск.


Определяет находится ли директория по данному пути

  • « svn_fs_file_length
  • svn_fs_is_file »
  • PHP Manual
  • Функции SVN
  • Определяет находится ли директория по данному пути

svn_fs_is_dir

(PECL svn >= 0.2.0)

svn_fs_is_dir — Определяет находится ли директория по данному пути

Описание

svn_fs_is_dir(resource $root, string $path): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Определяет находится ли директория по данному пути.

Список параметров

root

path

Возвращаемые значения

Возвращает true, если по данному пути находится директория, в противном случае возвращает false.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Определяет если находится ли файл по данному пути

  • « svn_fs_is_dir
  • svn_fs_make_dir »
  • PHP Manual
  • Функции SVN
  • Определяет если находится ли файл по данному пути

svn_fs_is_file

(PECL svn >= 0.2.0)

svn_fs_is_file — Определяет если находится ли файл по данному пути

Описание

svn_fs_is_file(resource $root, string $path): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Определяет если находится ли файл по данному пути.

Список параметров

root

path

Возвращаемые значения

Возвращает true, если по данному пути находится файл, в против случае возвращает false.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создаёт новую пустую директорию

  • « svn_fs_is_file
  • svn_fs_make_file »
  • PHP Manual
  • Функции SVN
  • Создаёт новую пустую директорию

svn_fs_make_dir

(PECL svn >= 0.2.0)

svn_fs_make_dir — Создаёт новую пустую директорию

Описание

svn_fs_make_dir(resource $root, string $path): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Создаёт новую пустую директорию.

Список параметров

root

path

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создаёт новый пустой файл

  • « svn_fs_make_dir
  • svn_fs_node_created_rev »
  • PHP Manual
  • Функции SVN
  • Создаёт новый пустой файл

svn_fs_make_file

(PECL svn >= 0.2.0)

svn_fs_make_file — Создаёт новый пустой файл

Описание

svn_fs_make_file(resource $root, string $path): bool
Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Создаёт новый пустой файл

Список параметров

root

path

Возвращаемые значения

Возвращает 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 в случае возникновения ошибки.

Примеры

Пример #1 Простой пример

Данный пример иллюстрирует базовое использование данной функции. Импорт директории с именем new-files в репозиторий с адресом http://www.example.com/svnroot/incoming/abc выглядит следующим образом:

<?php
svn_import(realpath('new-files'), 'http://www.example.com/svnroot/incoming/abc', false);
?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • 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 | Элемент был заменён

Если изменений элемента нет, возвращается пустой массив.

Примеры

Пример #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'
                    )
            )
    )
)

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • » 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] => ...

Примеры

Пример #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
        )
)

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • » 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 о последней актуальной версии текста.

Примеры

Пример #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
    )
)

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • 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 в случае возникновения ошибки.

Примеры

Пример #1 Базовый пример

Нижеприведённый пример иллюстрирует базовое применение данной функции:

<?php
echo svn_update(realpath('working-copy'));
?>

Результатом выполнения данного примера будет что-то подобное:

234

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • 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 (int)
VARNISH_STATUS_UNKNOWN (int)
VARNISH_STATUS_UNIMPL (int)
VARNISH_STATUS_TOOFEW (int)
VARNISH_STATUS_TOOMANY (int)
VARNISH_STATUS_PARAM (int)
VARNISH_STATUS_AUTH (int)
VARNISH_STATUS_OK (int)
VARNISH_STATUS_CANT (int)
VARNISH_STATUS_COMMS (int)
VARNISH_STATUS_CLOSE (int)
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 (int)
VARNISH_COMPAT_3 (int)


Примеры

Содержание

  • Простое использование 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)

Введение

Обзор классов

class VarnishAdmin {
/* Методы */
public auth(): bool
public ban(string $vcl_regex): int
public banUrl(string $vcl_regex): int
public clearPanic(): int
public connect(): bool
public __construct(array $args = ?)
public disconnect(): bool
public getPanic(): string
public getParams(): array
public isRunning(): bool
public setCompat(int $compat): void
public setHost(string $host): void
public setIdent(string $ident): void
public setParam(string $name, string|int $value): int
public setPort(int $port): void
public setSecret(string $secret): void
public setTimeout(int $timeout): void
public start(): int
public stop(): 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(): 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(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает статус команды varnish.


Подключение к интерфейсу администрирования экземпляра varnish

  • « VarnishAdmin::clearPanic
  • VarnishAdmin::__construct »
  • PHP Manual
  • VarnishAdmin
  • Подключение к интерфейсу администрирования экземпляра varnish

VarnishAdmin::connect

(PECL varnish >= 0.3)

VarnishAdmin::connect — Подключение к интерфейсу администрирования экземпляра varnish

Описание

public VarnishAdmin::connect(): 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(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Получить последнее критическое сообщение на экземпляре varnish

  • « VarnishAdmin::disconnect
  • VarnishAdmin::getParams »
  • PHP Manual
  • VarnishAdmin
  • Получить последнее критическое сообщение на экземпляре varnish

VarnishAdmin::getPanic

(PECL varnish >= 0.4)

VarnishAdmin::getPanic — Получить последнее критическое сообщение на экземпляре varnish

Описание

public VarnishAdmin::getPanic(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает последнее критическое сообщение на текущем экземпляре varnish.


Получить параметры конфигурации текущего экземпляра varnish

  • « VarnishAdmin::getPanic
  • VarnishAdmin::isRunning »
  • PHP Manual
  • VarnishAdmin
  • Получить параметры конфигурации текущего экземпляра varnish

VarnishAdmin::getParams

(PECL varnish >= 0.4)

VarnishAdmin::getParams — Получить параметры конфигурации текущего экземпляра varnish

Описание

public VarnishAdmin::getParams(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с параметрами конфигурации varnish.


Проверить, выполняется в настоящий момент подчинённый процесс varnish

  • « VarnishAdmin::getParams
  • VarnishAdmin::setCompat »
  • PHP Manual
  • VarnishAdmin
  • Проверить, выполняется в настоящий момент подчинённый процесс varnish

VarnishAdmin::isRunning

(PECL varnish >= 0.3)

VarnishAdmin::isRunning — Проверить, выполняется в настоящий момент подчинённый процесс varnish

Описание

public VarnishAdmin::isRunning(): 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|int $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(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает статус команды varnish.


Остановить рабочий процесс varnish

  • « VarnishAdmin::start
  • VarnishStat »
  • PHP Manual
  • VarnishAdmin
  • Остановить рабочий процесс varnish

VarnishAdmin::stop

(PECL varnish >= 0.3)

VarnishAdmin::stop — Остановить рабочий процесс varnish

Описание

public VarnishAdmin::stop(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает статус команды varnish.


Класс VarnishStat

(PECL varnish >= 0.3)

Введение

Обзор классов

class VarnishStat {
/* Методы */
public __construct(array $args = ?)
public getSnapshot(): 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(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив со снимком статистики varnish. Ключи массива идентичны ключам в команде varnishstat.


Класс VarnishLog

(PECL varnish >= 0.6)

Введение

Обзор классов

class VarnishLog {
/* Constants */
const int TAG_Debug = 0;
const int TAG_Error = 1;
const int TAG_CLI = 2;
const int TAG_StatSess = 3;
const int TAG_ReqEnd = 4;
const int TAG_SessionOpen = 5;
const int TAG_SessionClose = 6;
const int TAG_BackendOpen = 7;
const int TAG_BackendXID = 8;
const int TAG_BackendReuse = 9;
const int TAG_BackendClose = 10;
const int TAG_HttpGarbage = 11;
const int TAG_Backend = 12;
const int TAG_Length = 13;
const int TAG_FetchError = 14;
const int TAG_RxRequest = 15;
const int TAG_RxResponse = 16;
const int TAG_RxStatus = 17;
const int TAG_RxURL = 18;
const int TAG_RxProtocol = 19;
const int TAG_RxHeader = 20;
const int TAG_TxRequest = 21;
const int TAG_TxResponse = 22;
const int TAG_TxStatus = 23;
const int TAG_TxURL = 24;
const int TAG_TxProtocol = 25;
const int TAG_TxHeader = 26;
const int TAG_ObjRequest = 27;
const int TAG_ObjResponse = 28;
const int TAG_ObjStatus = 29;
const int TAG_ObjURL = 30;
const int TAG_ObjProtocol = 31;
const int TAG_ObjHeader = 32;
const int TAG_LostHeader = 33;
const int TAG_TTL = 34;
const int TAG_Fetch_Body = 35;
const int TAG_VCL_acl = 36;
const int TAG_VCL_call = 37;
const int TAG_VCL_trace = 38;
const int TAG_VCL_return = 39;
const int TAG_VCL_error = 40;
const int TAG_ReqStart = 41;
const int TAG_Hit = 42;
const int TAG_HitPass = 43;
const int TAG_ExpBan = 44;
const int TAG_ExpKill = 45;
const int TAG_WorkThread = 46;
const int TAG_ESI_xmlerror = 47;
const int TAG_Hash = 48;
const int TAG_Backend_health = 49;
const int TAG_VCL_Log = 50;
const int TAG_Gzip = 51;
/* Методы */
public __construct(array $args = ?)
public getLine(): 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(): 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 — Вызывает парсер CCL
    • yaz_close — Закрывает соединение YAZ
    • yaz_connect — Подготавливает соединение с сервером Z39.50
    • yaz_database — Определяет базы данных в сеансе
    • yaz_element — Указывает имя набора элементов для поиска
    • yaz_errno — Возвращает номер ошибки
    • yaz_error — Возвращает описание ошибки
    • yaz_es_result — Проверяет результат Extended Service
    • yaz_es — Подготавливает Extended Service Request
    • yaz_get_option — Возвращает значение параметра для подключения
    • yaz_hits — Возвращает количество совпадений для последнего поиска
    • yaz_itemorder — Подготавливает запрос к Z39.50 Item Order с пакетом ILL-Request
    • yaz_present — Готовится к поиску (Z39.50 присутствует)
    • yaz_range — Определяет диапазон записей для извлечения
    • 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. Это связано с тем фактом, что они оба используют одни и те же внутренние символы. Замечание: Версии 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 — Вызывает парсер CCL
  • yaz_close — Закрывает соединение YAZ
  • yaz_connect — Подготавливает соединение с сервером Z39.50
  • yaz_database — Определяет базы данных в сеансе
  • yaz_element — Указывает имя набора элементов для поиска
  • yaz_errno — Возвращает номер ошибки
  • yaz_error — Возвращает описание ошибки
  • yaz_es_result — Проверяет результат Extended Service
  • yaz_es — Подготавливает Extended Service Request
  • yaz_get_option — Возвращает значение параметра для подключения
  • yaz_hits — Возвращает количество совпадений для последнего поиска
  • yaz_itemorder — Подготавливает запрос к Z39.50 Item Order с пакетом ILL-Request
  • yaz_present — Готовится к поиску (Z39.50 присутствует)
  • yaz_range — Определяет диапазон записей для извлечения
  • 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() - Возвращает описание ошибки
  • yaz_errno() - Возвращает номер ошибки


Конфигурирует 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() - Вызывает парсер CCL


Вызывает парсер CCL

  • « yaz_ccl_conf
  • yaz_close »
  • PHP Manual
  • Функции YAZ
  • Вызывает парсер CCL

yaz_ccl_parse

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_parse — Вызывает парсер CCL

Описание

yaz_ccl_parse(resource $id, string $query, array &$result): bool

Функция вызывает синтаксический анализатор CCL. Он преобразует данный запрос CCL FIND в запрос RPN, который можно передать функции yaz_search() для выполнения поиска.

Чтобы определить набор допустимых полей CCL, вызовите yaz_ccl_conf() перед этой функцией.

Список параметров

id

Ресурс соединения, возвращённый yaz_connect().

query

Запрос CCL FIND.

result

Если функция была выполнена успешно, это будет массив, содержащий корректный запрос RPN в ключе rpn.

После сбоя в этом массиве устанавливаются три индекса, указывающие причину возникновения ошибки:

  • errorcode - код ошибки CCL (целое число)

  • errorstring - строка ошибки CCL

  • errorpos - приблизительная позиция в запросе ошибки (целое число - позиция символа)

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Разбор CCL

Мы попробуем поискать с помощью CCL. В приведённом ниже примере $ccl является запросом CCL.

<?php

yaz_ccl_conf($id, $fields); // смотрите пример для yaz_ccl_conf
if (!yaz_ccl_parse($id, $ccl, &$cclresult)) {
echo 'Ошибка: ' . $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


Определяет базы данных в сеансе

  • « yaz_connect
  • yaz_element »
  • PHP Manual
  • Функции YAZ
  • Определяет базы данных в сеансе

yaz_database

(PHP 4 >= 4.0.6, PECL yaz >= 0.9.0)

yaz_database — Определяет базы данных в сеансе

Описание

yaz_database(resource $id, string $databases): bool

Функция позволяет изменять базы данных в течение сеанса, указав одну или несколько баз данных, которые будут использоваться при поиске, поиске и т.д. - переопределение баз данных, указанных в вызове yaz_connect().

Список параметров

id

Ресурс соединения, возвращённый yaz_connect().

databases

Строка, содержащая одну или несколько баз данных. Несколько баз данных, разделённые знаком плюс +.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Указывает имя набора элементов для поиска

  • « yaz_database
  • yaz_errno »
  • PHP Manual
  • Функции YAZ
  • Указывает имя набора элементов для поиска

yaz_element

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_element — Указывает имя набора элементов для поиска

Описание

yaz_element(resource $id, string $elementset): bool

Функция устанавливает имя набора элементов для поиска.

Вызовите эту функцию перед yaz_search() или yaz_present(), чтобы указать имя набора элементов для извлекаемых записей.

Замечание:

Если кажется, что не происходит никакого эффекта, смотрите описание опции piggybacking в yaz_connect().

Список параметров

id

Ресурс соединения, возвращённый yaz_connect().

elementset

Большинство серверов поддерживают F (для полных записей) и B (для кратких записей).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Возвращает номер ошибки

  • « yaz_element
  • yaz_error »
  • PHP Manual
  • Функции YAZ
  • Возвращает номер ошибки

yaz_errno

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_errno — Возвращает номер ошибки

Описание

yaz_errno(resource $id): int

Возвращает номер ошибки для сервера (последний запрос) с идентификатором id.

yaz_errno() должен вызываться после сетевой активности для каждого сервера (после возврата yaz_wait()), чтобы определить успешное выполнение или ошибку последней операции (например, поиска).

Список параметров

id

Ресурс подключения, возвращаемый yaz_connect().

Возвращаемые значения

Возвращает код ошибки. Код ошибки - это либо диагностический код Z39.50 (обычно диагностика Bib-1), либо код ошибки на стороне клиента, который генерируется самим PHP/YAZ, например "Connect failed", "Init Rejected" и т.д.

Смотрите также

  • yaz_error() - Возвращает описание ошибки
  • yaz_addinfo() - Возвращает дополнительную информацию в случае возникновения ошибки


Возвращает описание ошибки

  • « yaz_errno
  • yaz_es_result »
  • PHP Manual
  • Функции YAZ
  • Возвращает описание ошибки

yaz_error

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_error — Возвращает описание ошибки

Описание

yaz_error(resource $id): string

yaz_error() возвращает текстовое сообщение на английском языке, соответствующее последнему номеру ошибки, возвращённому yaz_errno().

Список параметров

id

Ресурс подключения, возвращаемый yaz_connect().

Возвращаемые значения

Возвращает текстовое сообщение об ошибке для сервера (последний запрос), с идентификатором id. Если последняя операция прошла успешно, возвращается пустая строка.

Смотрите также

  • yaz_errno() - Возвращает номер ошибки
  • yaz_addinfo() - Возвращает дополнительную информацию в случае возникновения ошибки


Проверяет результат Extended Service

  • « yaz_error
  • yaz_es »
  • PHP Manual
  • Функции YAZ
  • Проверяет результат Extended Service

yaz_es_result

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_es_result — Проверяет результат Extended Service

Описание

yaz_es_result(resource $id): array

Функция проверяет последний возвращённый сервером результат Extended Service. Extended Service инициируется либо с помощью yaz_item_order(), либо с помощью yaz_es().

Список параметров

id

Идентификатор подключения, возвращаемый yaz_connect().

Возвращаемые значения

Возвращает массив с элементом targetReference для ссылки на операцию Extended Service (сгенерированной и возвращённой с сервера).

Смотрите также

  • yaz_es() - Подготавливает Extended Service Request


Подготавливает Extended Service Request

  • « yaz_es_result
  • yaz_get_option »
  • PHP Manual
  • Функции YAZ
  • Подготавливает Extended Service Request

yaz_es

(PECL yaz >= 0.9.0)

yaz_es — Подготавливает Extended Service Request

Описание

yaz_es( resource $id , string $type , array $args ): void

Функция подготавливает Extended Service Request. Extended Services - это семейство различных средств Z39.50, таких как обновление записей, порядок элементов, администрирование баз данных и т.д.

Замечание:

Многие серверы Z39.50 не поддерживают Extended Services.

yaz_es() создаёт пакеты Extended Service Request и помещает их в очередь операций. Используйте yaz_wait() для отправки запроса(ов) на сервер. После завершения yaz_wait(), результата операций Extended Service следует ожидать с помощью вызова yaz_es_result().

Список параметров

id

Ресурс подключения, возвращаемый yaz_connect().

type

Строка, представляющая тип Extended Service: itemorder (Item Order), create (Create Database), drop (Drop Database), commit (Commit Operation), update (Update Record), xmlupdate (XML Update). Каждый тип указан в следующем разделе.

args

Массив с Extended Service и параметрами для конкретных пакетов. Параметры идентичны тем, которые предлагаются в C API ZOOM C. Смотрите 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() - Проверяет результат Extended Service


Возвращает значение параметра для подключения

  • « yaz_es
  • yaz_hits »
  • PHP Manual
  • Функции YAZ
  • Возвращает значение параметра для подключения

yaz_get_option

(PECL yaz >= 0.9.0)

yaz_get_option — Возвращает значение параметра для подключения

Описание

yaz_get_option(resource $id, string $name): string

Возвращает значение параметра, указанного в name.

Список параметров

id

Ресурс подключения, возвращаемый yaz_connect().

name

Название параметра.

Возвращаемые значения

Возвращает значение указанной опции или пустую строку, если опция не была установлена.

Смотрите также

  • Описание yaz_set_option() - Устанавливает параметры для соединения для просмотра доступных параметров


Возвращает количество совпадений для последнего поиска

  • « yaz_get_option
  • yaz_itemorder »
  • PHP Manual
  • Функции YAZ
  • Возвращает количество совпадений для последнего поиска

yaz_hits

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_hits — Возвращает количество совпадений для последнего поиска

Описание

yaz_hits(resource $id, array &$searchresult = ?): int

yaz_hits() возвращает количество совпадений для последнего поиска.

Список параметров

id

Ресурс подключения, возвращаемый yaz_connect().

searchresult

Массив результатов для детальной информации о результатах поиска.

Возвращаемые значения

Возвращает количество совпадений для последнего поиска или 0, если поиск не производился.

Массив результатов поиска (если предоставлен) содержит информацию, возвращаемую сервером Z39.50 в части ответа на поисковый запрос в формате SearchResult-1. Формат SearchResult-1 может использоваться для получения информации о количестве совпадений для различных частей запроса (подзапроса). В частности, можно получить количество совпадений для отдельных условий поиска в запросе. Информация для первого подзапроса находится в $array[0], второго подзапроса - в $array[1] и т.д.

searchresult members
Элемент | Описание
id | Подзапрос ID2 (строка)
count | Количество результатов / совпадений (целое число)
subquery.term | Условие подзапроса (строка)
interpretation.term | Интерпретированное условие подзапроса (строка)
recommendation.term | Рекомендуемое условие подзапроса (строка)

Замечание:

Для работы SearchResult требуется PECL YAZ 1.0.5 или новее и YAZ 2.1.9 или новее.

Замечание:

Очень немногие реализации Z39.50 поддерживают функцию SearchResult.


Подготавливает запрос к Z39.50 Item Order с пакетом ILL-Request

  • « yaz_hits
  • yaz_present »
  • PHP Manual
  • Функции YAZ
  • Подготавливает запрос к Z39.50 Item Order с пакетом ILL-Request

yaz_itemorder

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_itemorder — Подготавливает запрос к Z39.50 Item Order с пакетом ILL-Request

Описание

yaz_itemorder(resource $id, array $args): void

Функция подготавливает запрос Extended Services с использованием профиля для использования Item Order Extended Service для Transport ILL (Profile/1). Смотрите » это и » спецификацию.

Список параметров

id

Ресурс подключения, возвращаемый yaz_connect().

args

Должен быть ассоциативным массивом с информацией об отправляемом запросе Item Order. Ключ хеша - это имя соответствующего пути тега ASN.1. Например, у ISBN под Item-ID будет ключ item-id,ISBN.

Параметры ILL-запроса:

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

Есть также несколько параметров, которые являются частью пакетов запроса Extended Services и пакета ItemOrder:

package-name
user-id
contact-name
contact-phone
contact-email
itemorder-item

Возвращаемые значения

Функция не возвращает значения после выполнения.


Готовится к поиску (Z39.50 присутствует)

  • « yaz_itemorder
  • yaz_range »
  • PHP Manual
  • Функции YAZ
  • Готовится к поиску (Z39.50 присутствует)

yaz_present

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_present — Готовится к поиску (Z39.50 присутствует)

Описание

yaz_present(resource $id): bool

Функция подготавливает для возвращения записи после успешного поиска.

Функция yaz_range() должна быть вызвана до этой функции, чтобы указать диапазон записей, которые необходимо извлечь.

Список параметров

id

Ресурс соединения, возвращённый yaz_connect().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Определяет диапазон записей для извлечения

  • « yaz_present
  • yaz_record »
  • PHP Manual
  • Функции YAZ
  • Определяет диапазон записей для извлечения

yaz_range

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_range — Определяет диапазон записей для извлечения

Описание

yaz_range(resource $id, int $start, int $number): void

Определяет диапазон записей для извлечения.

Функция должна быть вызвана перед yaz_search() или yaz_present().

Список параметров

id

Ресурс соединения, возвращённый yaz_connect().

start

Определяет позицию первой записи, которую нужно получить. Номера записей идут от 1 до yaz_hits().

number

Определяет диапазон записей для извлечения.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Возвращает запись

  • « 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;

?>


Возвращает результат запроса сканирования

  • « 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
  • Обмен сообщениями 0MQ »
  • 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 в случае возникновения ошибки.


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

(PECL zmq >= 0.5.0)

Введение

Обзор классов

class ZMQ {
/* Константы */
const int SOCKET_PAIR;
const int SOCKET_PUB;
const int SOCKET_SUB;
const int SOCKET_REQ;
const int SOCKET_REP;
const int SOCKET_XREQ;
const int SOCKET_XREP;
const int SOCKET_PUSH;
const int SOCKET_PULL;
const int SOCKET_ROUTER;
const int SOCKET_DEALER;
const int SOCKET_XPUB;
const int SOCKET_XSUB;
const int SOCKET_STREAM;
const int SOCKOPT_HWM;
const int SOCKOPT_SNDHWM;
const int SOCKOPT_RCVHWM;
const int SOCKOPT_AFFINITY;
const int SOCKOPT_IDENTITY;
const int SOCKOPT_SUBSCRIBE;
const int SOCKOPT_UNSUBSCRIBE;
const int SOCKOPT_RATE;
const int SOCKOPT_RECOVERY_IVL;
const int SOCKOPT_RECONNECT_IVL;
const int SOCKOPT_RECONNECT_IVL_MAX;
const int SOCKOPT_MCAST_LOOP;
const int SOCKOPT_SNDBUF;
const int SOCKOPT_RCVBUF;
const int SOCKOPT_RCVMORE;
const int SOCKOPT_TYPE;
const int SOCKOPT_LINGER;
const int SOCKOPT_BACKLOG;
const int SOCKOPT_MAXMSGSIZE;
const int SOCKOPT_SNDTIMEO;
const int SOCKOPT_RCVTIMEO;
const int SOCKOPT_IPV4ONLY;
const int SOCKOPT_LAST_ENDPOINT;
const int SOCKOPT_TCP_KEEPALIVE_IDLE;
const int SOCKOPT_TCP_KEEPALIVE_CNT;
const int SOCKOPT_TCP_KEEPALIVE_INTVL;
const int SOCKOPT_TCP_ACCEPT_FILTER;
const int SOCKOPT_TCP_ACCEPT_FILTER;
const int SOCKOPT_DELAY_ATTACH_ON_CONNECT;
const int SOCKOPT_XPUB_VERBOSE;
const int SOCKOPT_ROUTER_RAW;
const int SOCKOPT_IPV6;
const int CTXOPT_MAX_SOCKETS;
const int POLL_IN;
const int POLL_OUT;
const int MODE_NOBLOCK;
const int MODE_DONTWAIT;
const int MODE_SNDMORE;
const int ERR_INTERNAL;
const int ERR_EAGAIN;
const int ERR_ENOTSUP;
const int ERR_EFSM;
const int ERR_ETERM;
/* Методы */
private __construct()
}

Предопределённые константы

Типы констант 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 или выше (Значение: int).

ZMQ::SOCKOPT_HWM

Верхняя граница для входящих и исходящих сообщений жёстко ограничена максимальным количеством сообщений, которые OMQ может держать в памяти для одного клиента, связанного с соответствующим сокетом. Установка данной опции для сокета будет влиять только на соединения, установленные после её установки. В ZeroMQ 3.x это является обёрткой для одновременной установки SNDHWM и RCVHWM. (Значение: int).

ZMQ::SOCKOPT_SNDHWM

Опция ZMQ_SNDHWM должна устанавливать верхнюю границу для исходящих сообщений на конкретном сокете. Доступно, если собрано с ZeroMQ 3.x или выше (Значение: int).

ZMQ::SOCKOPT_RCVHWM

Опция SOCKOPT_RCVHWM должна устанавливать верхнюю границу для входящих сообщений на конкретном сокете. Доступно, если собрано с ZeroMQ 3.x или выше (Значение: int).

ZMQ::SOCKOPT_AFFINITY

Установить сходство потока ввода / вывода (Значение: int)

ZMQ::SOCKOPT_IDENTITY

Установить идентификатор сокета (Значение: string)

ZMQ::SOCKOPT_SUBSCRIBE

Установить фильтр сообщений. Корректно для сокета подписчика (Значение: string)

ZMQ::SOCKOPT_UNSUBSCRIBE

Удалить фильтр сообщений. Корректно для сокета подписчика (Значение: string)

ZMQ::SOCKOPT_RATE

Установить скорость для сокетов групповой рассылки (pgm) (Значение: int >= 0)

ZMQ::SOCKOPT_RECOVERY_IVL

Установить интервал восстановления для сокетов групповой рассылки (Значение: int >= 0)

ZMQ::SOCKOPT_RECONNECT_IVL

Установить начальный интервал пересоединения (Значение: int >= 0)

ZMQ::SOCKOPT_RECONNECT_IVL_MAX

Установить максимальный интервал пересоединения (Значение: int >= 0)

ZMQ::SOCKOPT_MCAST_LOOP

Контроль закольцовки групповой рассылки (Значение: int >= 0)

ZMQ::SOCKOPT_SNDBUF

Установить размер буфера передачи ядра (Значение: int >= 0)

ZMQ::SOCKOPT_RCVBUF

Установить размер буфера приёма ядра (Значение: int >= 0)

ZMQ::SOCKOPT_RCVMORE

Получить многосоставные сообщения (Значение: int)

ZMQ::SOCKOPT_TYPE

Получить тип сокета. Корректно для getSockOpt (Значение: int)

ZMQ::SOCKOPT_LINGER

Линейное значение сокета. Определяет, как долго сокет блокирует попытки очистки сообщений после его закрытия. (Значение: int)

ZMQ::SOCKOPT_BACKLOG

Опция SOCKOPT_BACKLOG устанавливает максимальную длину очереди клиентского соединения для указанного сокета. Работает только с транспортом ориентированным на соединение. (Значение: int)

ZMQ::SOCKOPT_MAXMSGSIZE

Ограничивает максимальный размер входящего сообщения. -1 означает, что ограничений нет. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: int)

ZMQ::SOCKOPT_SNDTIMEO

Устанавливает время ожидания операции отправки на сокете. -1 означает отсутствие ограничений. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: int)

ZMQ::SOCKOPT_RCVTIMEO

Устанавливает время ожидания операции приёма на сокете. -1 означает отсутствие ограничений. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: int)

ZMQ::SOCKOPT_IPV4ONLY

Если равно 1, то запрещает IPV6. Доступно, если собрано с ZeroMQ 3.x (Значение: int)

ZMQ::SOCKOPT_LAST_ENDPOINT

Извлекает последнего присоединившегося клиента. Для использования с * wildcard-портами. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: string)

ZMQ::SOCKOPT_TCP_KEEPALIVE_IDLE

Время простоя для отправки TCP-keepalive. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: int)

ZMQ::SOCKOPT_TCP_KEEPALIVE_CNT

Подсчитать время для TCP-keepalive. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: int)

ZMQ::SOCKOPT_TCP_KEEPALIVE_INTVL

Интервал для TCP-keepalive. Доступно, если собрано с ZeroMQ 3.x и выше (Значение: int)

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 и выше (Значение: int)

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

Описание

private ZMQ::__construct()

Приватный конструктор для предотвращения прямой инициализации. Этот класс содержит константы для модуля ZMQ.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс ZMQContext

(PECL zmq >= 0.5.0)

Введение

Обзор классов

class ZMQContext {
/* Методы */
public __construct(int $io_threads = 1, bool $is_persistent = true)
public getOpt(string $key): mixed
public getSocket(int $type, string $persistent_id = null, callable $on_new_socket = null): ZMQSocket
public isPersistent(): 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

Описание

public ZMQContext::__construct(int $io_threads = 1, bool $is_persistent = true)

Создаёт новый контекст ZMQ. Контекст используется для инициализации сокетов. Для инициализации постоянных сокетов требуется постоянный контекст.

Список параметров

io_threads

Число потоков ввода/вывода в контексте.

is_persistent

Определяет, будет ли контекст постоянным. Постоянный контекст сохраняется на протяжении множества запросов и требуется для постоянных соединений.

Ошибки

Выбрасывает ZMQContextException в случае сбоя инициализации контекста.

Примеры

Пример #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();
?>


Получить опцию контекста

  • « 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 или int в зависимости от 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, callable $on_new_socket = null): ZMQSocket

Метод для создания сокета из контекста. Если контекст не является постоянным, то параметр persistent_id будет проигнорирован и сокет будет непостоянным. Функция, заданная в on_new_socket будет вызвана только если будет создана новая, лежащая в основе, структура сокета.

Список параметров

type

Константа ZMQ::SOCKET_*, задающая тип сокета.

persistent_id

Если задан параметр persistent_id, то сокет будет сохраняться между запросами.

on_new_socket

Callback-функция, которая будет вызвана при создании новой структуры сокета. Функция не будет вызвана, если используется постоянный контекст. Функция принимает в качестве аргументов ZMQSocket и persistent_id.

Возвращаемые значения

Возвращает объект ZMQSocket.

Ошибки

Выбрасывает ZMQSocketException в случае возникновения ошибки.

Примеры

Пример #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";
?>


Является ли контекст постоянным

  • « ZMQContext::getSocket
  • ZMQContext::setOpt »
  • PHP Manual
  • ZMQContext
  • Является ли контекст постоянным

ZMQContext::isPersistent

(PECL zmq >= 0.5.0)

ZMQContext::isPersistent — Является ли контекст постоянным

Описание

public ZMQContext::isPersistent(): 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

(PECL zmq >= 0.5.0)

Введение

Обзор классов

class ZMQSocket {
/* Методы */
public bind(string $dsn, bool $force = false): ZMQSocket
public connect(string $dsn, bool $force = false): ZMQSocket
public __construct(
ZMQContext $context,
int $type,
string $persistent_id = null,
callable $on_new_socket = null
)
public disconnect(string $dsn): ZMQSocket
public getEndpoints(): array
public getPersistentId(): string
public getSocketType(): int
public getSockOpt(string $key): mixed
public isPersistent(): 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

Попытается подключится даже если сокет уже подключён к указанной конечной точке.

Возвращаемые значения

Возвращает текущий объект.

Ошибки

Выбрасывает ZMQSocketException в случае возникновения ошибки.

Примеры

Пример #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>";
?>


Конструктор класса ZMQSocket

  • « ZMQSocket::connect
  • ZMQSocket::disconnect »
  • PHP Manual
  • ZMQSocket
  • Конструктор класса ZMQSocket

ZMQSocket::__construct

(PECL zmq >= 0.5.0)

ZMQSocket::__construct — Конструктор класса ZMQSocket

Описание

public ZMQSocket::__construct(
ZMQContext $context,
int $type,
string $persistent_id = null,
callable $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-функция, которая будет вызвана при создании нового сокета. Эта функция не вызывается в случае повторного использования постоянного соединения.

callback(ZMQSocket $socket, string $persistent_id = null)

Ошибки

Выбрасывает ZMQSocketException в случае возникновения ошибки.

Примеры

Пример #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";
?>


Отключить сокет

  • « 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(): array

Возвращает список конечных точек с которыми соединён или связан сокет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с элементами 'bind' и 'connect'.


Получить идентификатор постоянного сокета

  • « ZMQSocket::getEndpoints
  • ZMQSocket::getSocketType »
  • PHP Manual
  • ZMQSocket
  • Получить идентификатор постоянного сокета

ZMQSocket::getPersistentId

(PECL zmq >= 0.5.0)

ZMQSocket::getPersistentId — Получить идентификатор постоянного сокета

Описание

public ZMQSocket::getPersistentId(): string

Возвращает идентификатор постоянного сокета.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор сокета в виде строки, либо null, если сокет не постоянный.


Получить тип сокета

  • « ZMQSocket::getPersistentId
  • ZMQSocket::getSockOpt »
  • PHP Manual
  • ZMQSocket
  • Получить тип сокета

ZMQSocket::getSocketType

(PECL zmq >= 0.5.0)

ZMQSocket::getSocketType — Получить тип сокета

Описание

public ZMQSocket::getSocketType(): 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, либо int, в зависимости от значения параметра key. В случае возникновения ошибки выбрасывает исключение ZMQSocketException.


Определить, является ли сокет постоянным

  • « ZMQSocket::getSockOpt
  • ZMQSocket::recv »
  • PHP Manual
  • ZMQSocket
  • Определить, является ли сокет постоянным

ZMQSocket::isPersistent

(PECL zmq >= 0.5.0)

ZMQSocket::isPersistent — Определить, является ли сокет постоянным

Описание

public ZMQSocket::isPersistent(): bool

Проверяет, является ли сокет постоянным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение типа bool.


Получить сообщение

  • « 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_*.

Возвращаемые значения

Возвращает сообщение. Если используется режим ZMQ::MODE_DONTWAIT и операция заблокирована, то будет возвращено false.

Ошибки

Выбрасывает ZMQSocketException в случае возникновения ошибки.

Примеры

Пример #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)
Получен ответ: Я сообщение!


Получить сообщение, состоящее из нескольких частей

  • « 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

(PECL zmq >= 0.5.0)

Введение

Обзор классов

class ZMQPoll {
/* Методы */
public add(mixed $entry, int $type): string
public clear(): ZMQPoll
public count(): int
public getLastErrors(): 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(): ZMQPoll

Удаляет все элементы из пула опроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий объект.


Количество элементов в пуле опроса

  • « ZMQPoll::clear
  • ZMQPoll::getLastErrors »
  • PHP Manual
  • ZMQPoll
  • Количество элементов в пуле опроса

ZMQPoll::count

(PECL zmq >= 0.5.0)

ZMQPoll::count — Количество элементов в пуле опроса

Описание

public ZMQPoll::count(): int

Количество элементов в пуле опроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение (int), равное количеству элементов в пуле опроса.


Возвращает ошибки последнего опроса

  • « ZMQPoll::count
  • ZMQPoll::poll »
  • PHP Manual
  • ZMQPoll
  • Возвращает ошибки последнего опроса

ZMQPoll::getLastErrors

(PECL zmq >= 0.5.0)

ZMQPoll::getLastErrors — Возвращает ошибки последнего опроса

Описание

public ZMQPoll::getLastErrors(): 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, время ожидания задаётся в миллисекундах, а не в микросекундах, как раньше.

Возвращаемые значения

Возвращает количество элементов, для которых происходила какая либо активность.

Ошибки

Выбрасывает ZMQPollException в случае возникновения ошибки.

Примеры

Пример #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";
}
}
}
}
?>


Удалить элемент из пула опроса

  • « 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

(PECL zmq >= 0.5.0)

Введение

Обзор классов

class ZMQDevice {
/* Методы */
public __construct(ZMQSocket $frontend, ZMQSocket $backend, ZMQSocket $listener = ?)
public getIdleTimeout(): ZMQDevice
public getTimerTimeout(): ZMQDevice
public run(): 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 — Создаёт новое устройство

Описание

public 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(): ZMQDevice

Возвращает значение времени ожидания callback-функции бездействия. Добавлено в версии модуля 1.1.0.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение времени ожидания callback-функции бездействия.


Получить время ожидания таймера

  • « ZMQDevice::getIdleTimeout
  • ZMQDevice::run »
  • PHP Manual
  • ZMQDevice
  • Получить время ожидания таймера

ZMQDevice::getTimerTimeout

(Информация о версии неизвестна, возможно, только в Git)

ZMQDevice::getTimerTimeout — Получить время ожидания таймера

Описание

public ZMQDevice::getTimerTimeout(): ZMQDevice

Возвращает значение времени ожидания callback-функции таймера. Добавлено в версии модуля 1.1.0.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод возвращает значение времени ожидания таймера.


Запуск нового устройства

  • « ZMQDevice::getTimerTimeout
  • ZMQDevice::setIdleCallback »
  • PHP Manual
  • ZMQDevice
  • Запуск нового устройства

ZMQDevice::run

(Информация о версии неизвестна, возможно, только в Git)

ZMQDevice::run — Запуск нового устройства

Описание

public ZMQDevice::run(): 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 — Указывает учётные данные приложения
    • Zookeeper::close — Закрывает обработчик zookeeper и освобождает любые ресурсы
    • Zookeeper::connect — Создаёт дескриптор для общения с zookeeper
    • Zookeeper::__construct — Создаёт дескриптор для общения с zookeeper
    • Zookeeper::create — Создаёт синхронно узел
    • Zookeeper::delete — Удаляет синхронно узел в zookeeper
    • Zookeeper::exists — Синхронно проверяет наличие узла в zookeeper
    • Zookeeper::get — Синхронно получает данные, связанные с узлом
    • Zookeeper::getAcl — Синхронно получает ACL, связанный с узлом
    • Zookeeper::getChildren — Выводит список потомков узла синхронно
    • Zookeeper::getClientId — Возвращает идентификатор сессии клиента, действителен только в том случае, если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE)
    • Zookeeper::getConfig — Получает экземпляр ZookeeperConfig
    • Zookeeper::getRecvTimeout — Возвращает время ожидания для сессии, действительный, только если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE). Это значение может измениться после повторного подключения к серверу
    • Zookeeper::getState — Получает состояние соединения zookeeper
    • Zookeeper::isRecoverable — Проверяет, можно ли восстановить текущее состояние подключения ZooKeeper
    • Zookeeper::set — Устанавливает данные, связанные с узлом
    • Zookeeper::setAcl — Устанавливает ACL, связанный с узлом синхронно
    • Zookeeper::setDebugLevel — Устанавливает уровень логирования для библиотеки
    • Zookeeper::setDeterministicConnOrder — Включение/отключение рандомизации порядка конечных точек кворума
    • Zookeeper::setLogStream — Устанавливает поток, который будет использоваться библиотекой для логирования
    • Zookeeper::setWatcher — Устанавливает функцию наблюдателя
  • ZookeeperConfig — Класс ZookeeperConfig
    • ZookeeperConfig::add — Добавляет серверы в ансамбль
    • ZookeeperConfig::get — Синхронно получает последнюю подтверждённую конфигурацию кластера ZooKeeper, о которой известно серверу, к которому подключён клиент
    • ZookeeperConfig::remove — Удаляет серверы из ансамбля
    • ZookeeperConfig::set — Изменяет состав ансамбля ZK и роли его участников
  • 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.


Установка

Этот модуль » 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 int

Время ожидания по умолчанию для всех сессий ZooKeeper.

zookeeper.session_lock int

Разрешает блокировку сессий PHP.

zookeeper.sess_lock_wait int

Время ожидания повтора при взаимной блокировке сессии 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

Функция 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() - Указывает учётные данные приложения
  • Zookeeper::connect() - Создаёт дескриптор для общения с zookeeper
  • Zookeeper::__construct() - Создаёт дескриптор для общения с zookeeper
  • Zookeeper::exists() - Синхронно проверяет наличие узла в zookeeper
  • Zookeeper::get() - Синхронно получает данные, связанные с узлом
  • Zookeeper::getChildren() - Выводит список потомков узла синхронно
  • Zookeeper::setWatcher() - Устанавливает функцию наблюдателя


Класс Zookeeper

(PECL zookeeper >= 0.1.0)

Введение

Представляет сессию ZooKeeper.

Обзор классов

class 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
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(): int
public getConfig(): ZookeeperConfig
public getRecvTimeout(): int
public getState(): int
public isRecoverable(): 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 int PERM_READ = 1;
const int PERM_WRITE = 2;
const int PERM_CREATE = 4;
const int PERM_DELETE = 8;
const int PERM_ADMIN = 16;
const int PERM_ALL = 31;
const int EPHEMERAL = 1;
const int SEQUENCE = 2;
const int LOG_LEVEL_ERROR = 1;
const int LOG_LEVEL_WARN = 2;
const int LOG_LEVEL_INFO = 3;
const int LOG_LEVEL_DEBUG = 4;
const int EXPIRED_SESSION_STATE = -112;
const int AUTH_FAILED_STATE = -113;
const int CONNECTING_STATE = 1;
const int ASSOCIATING_STATE = 2;
const int CONNECTED_STATE = 3;
const int READONLY_STATE = 5;
const int NOTCONNECTED_STATE = 999;
const int CREATED_EVENT = 1;
const int DELETED_EVENT = 2;
const int CHANGED_EVENT = 3;
const int CHILD_EVENT = 4;
const int SESSION_EVENT = -1;
const int NOTWATCHING_EVENT = -2;
const int SYSTEMERROR = -1;
const int RUNTIMEINCONSISTENCY = -2;
const int DATAINCONSISTENCY = -3;
const int CONNECTIONLOSS = -4;
const int MARSHALLINGERROR = -5;
const int UNIMPLEMENTED = -6;
const int OPERATIONTIMEOUT = -7;
const int BADARGUMENTS = -8;
const int INVALIDSTATE = -9;
const int NEWCONFIGNOQUORUM = -13;
const int RECONFIGINPROGRESS = -14;
const int OK = 0;
const int APIERROR = -100;
const int NONODE = -101;
const int NOAUTH = -102;
const int BADVERSION = -103;
const int NOCHILDRENFOREPHEMERALS = -108;
const int NODEEXISTS = -110;
const int NOTEMPTY = -111;
const int SESSIONEXPIRED = -112;
const int INVALIDCALLBACK = -113;
const int INVALIDACL = -114;
const int AUTHFAILED = -115;
const int CLOSING = -116;
const int NOTHING = -117;
const int SESSIONMOVED = -118;
const int NOTREADONLY = -119;
const int EPHEMERALONLOCALSESSION = -120;
const int NOWATCHER = -121;
const int 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 — Указывает учётные данные приложения
  • Zookeeper::close — Закрывает обработчик zookeeper и освобождает любые ресурсы
  • Zookeeper::connect — Создаёт дескриптор для общения с zookeeper
  • Zookeeper::__construct — Создаёт дескриптор для общения с zookeeper
  • Zookeeper::create — Создаёт синхронно узел
  • Zookeeper::delete — Удаляет синхронно узел в zookeeper
  • Zookeeper::exists — Синхронно проверяет наличие узла в zookeeper
  • Zookeeper::get — Синхронно получает данные, связанные с узлом
  • Zookeeper::getAcl — Синхронно получает ACL, связанный с узлом
  • Zookeeper::getChildren — Выводит список потомков узла синхронно
  • Zookeeper::getClientId — Возвращает идентификатор сессии клиента, действителен только в том случае, если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE)
  • Zookeeper::getConfig — Получает экземпляр ZookeeperConfig
  • Zookeeper::getRecvTimeout — Возвращает время ожидания для сессии, действительный, только если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE). Это значение может измениться после повторного подключения к серверу
  • Zookeeper::getState — Получает состояние соединения zookeeper
  • Zookeeper::isRecoverable — Проверяет, можно ли восстановить текущее состояние подключения ZooKeeper
  • Zookeeper::set — Устанавливает данные, связанные с узлом
  • Zookeeper::setAcl — Устанавливает ACL, связанный с узлом синхронно
  • Zookeeper::setDebugLevel — Устанавливает уровень логирования для библиотеки
  • Zookeeper::setDeterministicConnOrder — Включение/отключение рандомизации порядка конечных точек кворума
  • Zookeeper::setLogStream — Устанавливает поток, который будет использоваться библиотекой для логирования
  • Zookeeper::setWatcher — Устанавливает функцию наблюдателя


Указывает учётные данные приложения

  • « Zookeeper
  • Zookeeper::close »
  • PHP Manual
  • Zookeeper
  • Указывает учётные данные приложения

Zookeeper::addAuth

(PECL zookeeper >= 0.1.0)

Zookeeper::addAuth — Указывает учётные данные приложения

Описание

public Zookeeper::addAuth(string $scheme, string $cert, callable $completion_cb = null): bool

Приложение вызывает эту функцию, чтобы указать свои учётные данные для целей аутентификации. Сервер будет использовать провайдера безопасности, указанного в параметре схемы, для аутентификации клиентского соединения. Если запрос аутентификации не удался: - соединение с сервером будет разорвано. - наблюдатель вызывается со значением ZOO_AUTH_FAILED_STATE в качестве параметра состояния.

Список параметров

scheme

Идентификатор схемы аутентификации. Встроенная поддержка: "digest" аутентификации на основе пароля

cert

Учётные данные приложения. Фактическое значение зависит от схемы.

completion_cb

Подпрограмма, чтобы вызвать, когда запрос завершается. Один из следующих кодов результата может быть передан в callback-функцию завершения: - Операция ZOK успешно завершена - ZAUTHFAILED аутентификация не удалась

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Метод выдаёт PHP-сообщение об ошибке/предупреждение, когда количество параметров или типы неверны или операция завершается неудачно.

Предостережение

Начиная с версии 0.3.0, метод генерирует исключение ZookeeperException и его производные.

Примеры

Пример #1 Пример использования Zookeeper::addAuth()

Добавление аутентификации перед запросом значения узла.

<?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 'Ошибка';
?>

Результат выполнения данного примера:

nodevalue

Смотрите также

  • Zookeeper::create() - Создаёт синхронно узел
  • Zookeeper::setAcl() - Устанавливает ACL, связанный с узлом синхронно
  • Zookeeper::getAcl() - Синхронно получает ACL, связанный с узлом
  • Состояния ZooKeeper
  • ZookeeperException


Закрывает обработчик zookeeper и освобождает любые ресурсы

  • « Zookeeper::addAuth
  • Zookeeper::connect »
  • PHP Manual
  • Zookeeper
  • Закрывает обработчик zookeeper и освобождает любые ресурсы

Zookeeper::close

(PECL zookeeper >= 0.5.0)

Zookeeper::close — Закрывает обработчик zookeeper и освобождает любые ресурсы

Описание

public Zookeeper::close(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Метод генерирует ZookeeperException и его производные при закрытии неинициализированного экземпляра.

Смотрите также

  • Zookeeper::__construct() - Создаёт дескриптор для общения с zookeeper
  • Zookeeper::connect() - Создаёт дескриптор для общения с zookeeper
  • ZookeeperException


Создаёт дескриптор для общения с zookeeper

  • « Zookeeper::close
  • Zookeeper::__construct »
  • PHP Manual
  • Zookeeper
  • Создаёт дескриптор для общения с zookeeper

Zookeeper::connect

(PECL zookeeper >= 0.2.0)

Zookeeper::connect — Создаёт дескриптор для общения с zookeeper

Описание

public Zookeeper::connect(string $host, callable $watcher_cb = null, int $recv_timeout = 10000): void

Метод создаёт новый дескриптор и сеанс zookeeper, который соответствует этому дескриптору. Установление сеанса асинхронное, поэтому сеанс не следует считать установленным до тех пор, пока не будет получено событие состояния ZOO_CONNECTED_STATE.

Список параметров

host

Разделённые запятыми пары host:port, каждая из которых соответствует zk-серверу. Например, "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"

watcher_cb

Callback-функция глобального наблюдателя. Когда инициируются уведомления, эта функция будет вызвана.

recv_timeout

Время ожидания для сеанса, действителен, только если соединения в данный момент подключены (т.е. состояние последнего наблюдателя ZOO_CONNECTED_STATE).

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Метод выдаёт PHP сообщение об ошибке/предупреждение, когда количество параметров или их типы неверны или не удалось инициализировать экземпляр.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает исключение ZookeeperException и его производные.

Смотрите также

  • Zookeeper::__construct() - Создаёт дескриптор для общения с zookeeper
  • ZookeeperException


Создаёт дескриптор для общения с zookeeper

  • « Zookeeper::connect
  • Zookeeper::create »
  • PHP Manual
  • Zookeeper
  • Создаёт дескриптор для общения с zookeeper

Zookeeper::__construct

(PECL zookeeper >= 0.1.0)

Zookeeper::__construct — Создаёт дескриптор для общения с zookeeper

Описание

public Zookeeper::__construct(string $host = '', callable $watcher_cb = null, int $recv_timeout = 10000)

Метод создаёт новый дескриптор и сеанс zookeeper, который соответствует этому дескриптору. Установление сеанса асинхронное, поэтому сеанс не следует считать установленным до тех пор, пока не будет получено событие состояния ZOO_CONNECTED_STATE.

Список параметров

host

Разделённые запятыми пары host:port, каждая из которых соответствует zk-серверу. Например, "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"

watcher_cb

Callback-функция глобального наблюдателя. Когда инициируются уведомления, эта функция будет вызвана.

recv_timeout

Время ожидания для сеанса, действителен, только если соединения в данный момент подключены (т.е. состояние последнего наблюдателя ZOO_CONNECTED_STATE).

Ошибки

Метод выдаёт PHP сообщение об ошибке/предупреждение, когда количество параметров или их типы неверны или не удалось инициализировать экземпляр.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает исключение ZookeeperException и его производные.

Смотрите также

  • Zookeeper::connect() - Создаёт дескриптор для общения с zookeeper
  • ZookeeperException


Создаёт синхронно узел

  • « Zookeeper::__construct
  • Zookeeper::delete »
  • PHP Manual
  • Zookeeper
  • Создаёт синхронно узел

Zookeeper::create

(PECL zookeeper >= 0.1.0)

Zookeeper::create — Создаёт синхронно узел

Описание

public Zookeeper::create(
string $path,
string $value,
array $acls,
int $flags = null
): string

Метод создаст узел в ZooKeeper. Узел может быть создан только в том случае, если он ещё не существует. Флаги создания влияют на создание узлов. Если установлен флаг ZOO_EPHEMERAL, узел автоматически удаляется, если сеанс клиента завершается. Если установлен флаг ZOO_SEQUENCE, к имени пути добавляется уникальный монотонно увеличивающийся порядковый номер.

Список параметров

path

Название узла. Выражается как имя файла с косой чертой, разделяющей предков узла.

value

Данные для хранения в узле.

acls

Начальный ACL узла. ACL не должен быть нулевым или пустым.

flags

Может быть 0 для обычного создания или с указанием флагов создания.

Возвращаемые значения

Возвращает путь нового узла (он может отличаться от указанного пути из-за флага ZOO_SEQUENCE) в случае успешного выполнения и false в случае возникновения ошибки.

Ошибки

Метод выдаёт PHP сообщение об ошибке/предупреждение, когда количество параметров или их типы неверны или не удалось создать узел.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает исключение ZookeeperException и его производные.

Примеры

Пример #1 Пример использования Zookeeper::create()

Создание нового узла.

<?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 'Ошибка';
?>

Результат выполнения данного примера:

/path/to/newnode

Смотрите также

  • Zookeeper::delete() - Удаляет синхронно узел в zookeeper
  • Zookeeper::getChildren() - Выводит список потомков узла синхронно
  • Разрешения ZooKeeper
  • ZookeeperException


Удаляет синхронно узел в zookeeper

  • « Zookeeper::create
  • Zookeeper::exists »
  • PHP Manual
  • Zookeeper
  • Удаляет синхронно узел в zookeeper

Zookeeper::delete

(PECL zookeeper >= 0.2.0)

Zookeeper::delete — Удаляет синхронно узел в zookeeper

Описание

public Zookeeper::delete(string $path, int $version = -1): bool

Список параметров

path

Название узла. Выражается как имя файла с косой чертой, разделяющей предков узла.

version

Ожидаемая версия узла. Функция завершится ошибкой, если фактическая версия узла не соответствует ожидаемой версии. Если используется -1, проверка версии не будет выполняться.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Метод выдаёт PHP сообщение об ошибке/предупреждение, когда количество параметров или их типы неверны или не удалось удалить узел.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает исключение ZookeeperException и его производные.

Примеры

Пример #1 Пример использования Zookeeper::delete()

Удаление существующего узла.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$r = $zookeeper->delete($path);
if ($r)
echo 'Успешное выполнение';
else
echo 'Ошибка';
?>

Результат выполнения данного примера:

Успешное выполнение

Смотрите также

  • Zookeeper::create() - Создаёт синхронно узел
  • Zookeeper::getChildren() - Выводит список потомков узла синхронно
  • ZookeeperException


Синхронно проверяет наличие узла в zookeeper

  • « Zookeeper::delete
  • Zookeeper::get »
  • PHP Manual
  • Zookeeper
  • Синхронно проверяет наличие узла в zookeeper

Zookeeper::exists

(PECL zookeeper >= 0.1.0)

Zookeeper::exists — Синхронно проверяет наличие узла в zookeeper

Описание

public Zookeeper::exists(string $path, callable $watcher_cb = null): array

Список параметров

path

Название узла. Выражается как имя файла с косой чертой, разделяющей предков узла.

watcher_cb

Если не ноль, на сервере будет установлено наблюдение, чтобы уведомить клиента, если узел изменяется. Наблюдение будет установлено, даже если узел не существует.

Возвращаемые значения

Возвращает значение stat для пути, если данный узел существует, в противном случае возвращает false.

Ошибки

Метод выдаёт PHP сообщение об ошибке/предупреждение, когда количество параметров или их типы неверны или не удалось проверить наличие узла.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает исключение ZookeeperException и его производные.

Примеры

Пример #1 Пример использования Zookeeper::exists()

Проверка наличия узла.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$r = $zookeeper->exists($path);
if ($r)
echo 'Существет';
else
echo 'Не определено или ошибка';
?>

Результат выполнения данного примера:

Существет

Смотрите также

  • Zookeeper::get() - Синхронно получает данные, связанные с узлом
  • ZookeeperException


Синхронно получает данные, связанные с узлом

  • « Zookeeper::exists
  • Zookeeper::getAcl »
  • PHP Manual
  • Zookeeper
  • Синхронно получает данные, связанные с узлом

Zookeeper::get

(PECL zookeeper >= 0.1.0)

Zookeeper::get — Синхронно получает данные, связанные с узлом

Описание

public Zookeeper::get(
string $path,
callable $watcher_cb = null,
array &$stat = null,
int $max_size = 0
): string

Список параметров

path

Имя узла. Выражается как имя файла с косой чертой, разделяющей предков узла.

watcher_cb

Если ненулевое значение, на сервере будет установлено наблюдение, чтобы уведомить клиента об изменении узла.

stat

Если не NULL, при возврате будет сохранено значение stat для пути.

max_size

Максимальный размер данных. Если используется 0, метод вернёт все данные.

Возвращаемые значения

Возвращает данные в случае успешного выполнения и false в случае возникновения ошибки.

Ошибки

Метод выдаёт ошибку/предупреждение PHP, когда количество параметров или типы неверны или не получается получить значение от узла.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает ZookeeperException и его производные.

Примеры

Пример #1 Пример использования Zookeeper::get()

Получение значения от узла.

<?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 'Ошибка';
?>

Результат выполнения данного примера:

nodevalue

Пример #2 Пример использования stat Zookeeper::get()

Получение информации о статистике узла.

<?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() - Устанавливает данные, связанные с узлом
  • ZookeeperException


Синхронно получает ACL, связанный с узлом

  • « Zookeeper::get
  • Zookeeper::getChildren »
  • PHP Manual
  • Zookeeper
  • Синхронно получает ACL, связанный с узлом

Zookeeper::getAcl

(PECL zookeeper >= 0.1.0)

Zookeeper::getAcl — Синхронно получает ACL, связанный с узлом

Описание

public Zookeeper::getAcl(string $path): array

Список параметров

path

Имя узла. Выражается как имя файла с косой чертой, разделяющей предков узла.

Возвращаемые значения

Возвращает массив acl в случае успешного выполнения и false в случае возникновения ошибки.

Ошибки

Метод выдаёт ошибку/предупреждение PHP, когда количество параметров или типы неверны или не получается получить ACL узла.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает ZookeeperException и его производные.

Примеры

Пример #1 Пример использования Zookeeper::getAcl()

Получение ACL узла.

<?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 'Ошибка';
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  array(3) {
    ["perms"]=>
    int(31)
    ["scheme"]=>
    string(5) "world"
    ["id"]=>
    string(6) "anyone"
  }
}

Смотрите также

  • Zookeeper::create() - Создаёт синхронно узел
  • Zookeeper::setAcl() - Устанавливает ACL, связанный с узлом синхронно
  • Разрешения ZooKeeper
  • ZookeeperException


Выводит список потомков узла синхронно

  • « Zookeeper::getAcl
  • Zookeeper::getClientId »
  • PHP Manual
  • Zookeeper
  • Выводит список потомков узла синхронно

Zookeeper::getChildren

(PECL zookeeper >= 0.1.0)

Zookeeper::getChildren — Выводит список потомков узла синхронно

Описание

public Zookeeper::getChildren(string $path, callable $watcher_cb = null): array

Список параметров

path

Имя узла. Выражается как имя файла с косой чертой, разделяющей предков узла.

watcher_cb

Если ненулевое значение, на сервере будет установлено наблюдение, чтобы уведомить клиента об изменении узла.

Возвращаемые значения

Возвращает массив с дочерними путями в случае успешного выполнения и false в случае возникновения ошибки.

Ошибки

Метод выдаёт ошибку/предупреждение PHP, когда количество параметров или типы неверны или не получается перечислить дочерние элементы узла.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает ZookeeperException и его производные.

Примеры

Пример #1 Пример использования Zookeeper::getChildren()

Перечисляет дочерние элементы узла.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/zookeeper';
$r = $zookeeper->getchildren($path);
if ($r)
var_dump($r);
else
echo 'Ошибка';
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  string(6) "config"
}

Смотрите также

  • Zookeeper::create() - Создаёт синхронно узел
  • Zookeeper::delete() - Удаляет синхронно узел в zookeeper
  • ZookeeperException


Возвращает идентификатор сессии клиента, действителен только в том случае, если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE)

  • « Zookeeper::getChildren
  • Zookeeper::getConfig »
  • PHP Manual
  • Zookeeper
  • Возвращает идентификатор сессии клиента, действителен только в том случае, если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE)

Zookeeper::getClientId

(PECL zookeeper >= 0.1.0)

Zookeeper::getClientId — Возвращает идентификатор сессии клиента, действителен только в том случае, если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE)

Описание

public Zookeeper::getClientId(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор клиентской сессии в случае успешного выполнения и false в случае возникновения ошибки.

Ошибки

Метод выдаёт ошибку/предупреждение PHP, когда не может получить идентификатор сеанса клиента.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает ZookeeperException и его производные.

Смотрите также

  • Zookeeper::__construct() - Создаёт дескриптор для общения с zookeeper
  • Zookeeper::connect() - Создаёт дескриптор для общения с zookeeper
  • Zookeeper::getState() - Получает состояние соединения zookeeper
  • Состояния ZooKeeper
  • ZookeeperException


Получает экземпляр ZookeeperConfig

  • « Zookeeper::getClientId
  • Zookeeper::getRecvTimeout »
  • PHP Manual
  • Zookeeper
  • Получает экземпляр ZookeeperConfig

Zookeeper::getConfig

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

Zookeeper::getConfig — Получает экземпляр ZookeeperConfig

Описание

public Zookeeper::getConfig(): ZookeeperConfig

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр ZookeeperConfig.

Смотрите также

  • ZookeeperConfig


Возвращает время ожидания для сессии, действительный, только если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE). Это значение может измениться после повторного подключения к серверу

  • « Zookeeper::getConfig
  • Zookeeper::getState »
  • PHP Manual
  • Zookeeper
  • Возвращает время ожидания для сессии, действительный, только если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE). Это значение может измениться после повторного подключения к серверу

Zookeeper::getRecvTimeout

(PECL zookeeper >= 0.1.0)

Zookeeper::getRecvTimeout — Возвращает время ожидания для сессии, действительный, только если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE). Это значение может измениться после повторного подключения к серверу

Описание

public Zookeeper::getRecvTimeout(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время ожидания для сессии в случае успешного выполнения и false в случае возникновения ошибки.

Ошибки

Метод выдаёт ошибку/предупреждение PHP в случае сбоя операции.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает ZookeeperException и его производные.

Смотрите также

  • Zookeeper::__construct() - Создаёт дескриптор для общения с zookeeper
  • Zookeeper::connect() - Создаёт дескриптор для общения с zookeeper
  • ZookeeperException


Получает состояние соединения zookeeper

  • « Zookeeper::getRecvTimeout
  • Zookeeper::isRecoverable »
  • PHP Manual
  • Zookeeper
  • Получает состояние соединения zookeeper

Zookeeper::getState

(PECL zookeeper >= 0.1.0)

Zookeeper::getState — Получает состояние соединения zookeeper

Описание

public Zookeeper::getState(): int

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает состояние соединения zookeeper в случае успешного выполнения и false в случае возникновения ошибки.

Ошибки

Метод выдаёт PHP сообщение об ошибке/предупреждение, когда ему не удаётся получить состояние соединения zookeeper.

Предостережение

Начиная с версии 0.3.0, этот метод генерирует исключение ZookeeperException и его производные.

Смотрите также

  • Zookeeper::__construct() - Создаёт дескриптор для общения с zookeeper
  • Zookeeper::connect() - Создаёт дескриптор для общения с zookeeper
  • Zookeeper::getClientId() - Возвращает идентификатор сессии клиента, действителен только в том случае, если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE)
  • Состояния ZooKeeper
  • ZookeeperException


Проверяет, можно ли восстановить текущее состояние подключения ZooKeeper

  • « Zookeeper::getState
  • Zookeeper::set »
  • PHP Manual
  • Zookeeper
  • Проверяет, можно ли восстановить текущее состояние подключения ZooKeeper

Zookeeper::isRecoverable

(PECL zookeeper >= 0.1.0)

Zookeeper::isRecoverable — Проверяет, можно ли восстановить текущее состояние подключения ZooKeeper

Описание

public Zookeeper::isRecoverable(): bool

Приложение должно закрыть дескриптор и попытаться переподключиться.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true/false в случае успешного выполнения и false в случае возникновения ошибки.

Ошибки

Метод выдаёт ошибку/предупреждение PHP в случае сбоя операции.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает ZookeeperException и его производные.

Смотрите также

  • Zookeeper::__construct() - Создаёт дескриптор для общения с zookeeper
  • Zookeeper::connect() - Создаёт дескриптор для общения с zookeeper
  • Zookeeper::getClientId() - Возвращает идентификатор сессии клиента, действителен только в том случае, если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE)
  • Состояния ZooKeeper
  • ZookeeperException


Устанавливает данные, связанные с узлом

  • « Zookeeper::isRecoverable
  • Zookeeper::setAcl »
  • PHP Manual
  • Zookeeper
  • Устанавливает данные, связанные с узлом

Zookeeper::set

(PECL zookeeper >= 0.1.0)

Zookeeper::set — Устанавливает данные, связанные с узлом

Описание

public Zookeeper::set(
string $path,
string $value,
int $version = -1,
array &$stat = null
): bool

Список параметров

path

Имя узла. Выражается как имя файла с косой чертой, разделяющей предков узла.

value

Данные, которые будут храниться в узле.

version

Ожидаемая версия узла. Функция завершится ошибкой, если фактическая версия узла не соответствует ожидаемой. Если используется -1, проверка версии выполняться не будет.

stat

Если не NULL, при возврате будет сохранено значение stat для пути.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Метод выдаёт ошибку/предупреждение PHP, когда количество параметров или типы неверны или не получается сохранить значение в узле.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает ZookeeperException и его производные.

Примеры

Пример #1 Пример использования Zookeeper::set()

Сохранение значения в узел.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$r = $zookeeper->set($path, $value);
if ($r)
echo 'Значение сохранено';
else
echo 'Ошибкак';
?>

Результат выполнения данного примера:

SUCCESS

Смотрите также

  • Zookeeper::create() - Создаёт синхронно узел
  • Zookeeper::get() - Синхронно получает данные, связанные с узлом
  • ZookeeperException


Устанавливает ACL, связанный с узлом синхронно

  • « Zookeeper::set
  • Zookeeper::setDebugLevel »
  • PHP Manual
  • Zookeeper
  • Устанавливает ACL, связанный с узлом синхронно

Zookeeper::setAcl

(PECL zookeeper >= 0.1.0)

Zookeeper::setAcl — Устанавливает ACL, связанный с узлом синхронно

Описание

public Zookeeper::setAcl(string $path, int $version, array $acl): bool

Список параметров

path

Имя узла. Выражается как имя файла с косой чертой, разделяющей предков узла.

version

Ожидаемая версия пути.

acl

ACL, который нужно установить.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Метод выдаёт ошибку/предупреждение PHP, когда количество параметров или типы неверны или не получается установить ACL для узла.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает ZookeeperException и его производные.

Примеры

Пример #1 Пример использования Zookeeper::setAcl()

Установите ACL для узла.

<?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 'Ошибка';
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  array(3) {
    ["perms"]=>
    int(31)
    ["scheme"]=>
    string(5) "world"
    ["id"]=>
    string(6) "anyone"
  }
}

Смотрите также

  • Zookeeper::create() - Создаёт синхронно узел
  • Zookeeper::getAcl() - Синхронно получает ACL, связанный с узлом
  • Разрешения ZooKeeper
  • ZookeeperException


Устанавливает уровень логирования для библиотеки

  • « Zookeeper::setAcl
  • Zookeeper::setDeterministicConnOrder »
  • PHP Manual
  • Zookeeper
  • Устанавливает уровень логирования для библиотеки

Zookeeper::setDebugLevel

(PECL zookeeper >= 0.1.0)

Zookeeper::setDebugLevel — Устанавливает уровень логирования для библиотеки

Описание

public static Zookeeper::setDebugLevel(int $logLevel): bool

Список параметров

logLevel

Константы уровня логирования ZooKeeper.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Метод выдаёт PHP-сообщение об ошибке/предупреждение, когда число параметров или типы неверны или не удаётся установить уровень логирования.

Предостережение

Начиная с версии 0.3.0, этот метод генерирует исключение ZookeeperException и его производные.

Примеры

Пример #1 Пример использования Zookeeper::setDebugLevel()

Установка уровня логирования

<?php
$r = Zookeeper::setDebugLevel(Zookeeper::LOG_LEVEL_WARN);
if ($r)
echo 'Успешно';
else
echo 'Ошибка';
?>
?>

Результат выполнения данного примера:

SUCCESS

Смотрите также

  • Уровень логирования ZooKeeper
  • ZookeeperException


Включение/отключение рандомизации порядка конечных точек кворума

  • « Zookeeper::setDebugLevel
  • Zookeeper::setLogStream »
  • PHP Manual
  • Zookeeper
  • Включение/отключение рандомизации порядка конечных точек кворума

Zookeeper::setDeterministicConnOrder

(PECL zookeeper >= 0.1.0)

Zookeeper::setDeterministicConnOrder — Включение/отключение рандомизации порядка конечных точек кворума

Описание

public static Zookeeper::setDeterministicConnOrder(bool $yesOrNo): bool

Если передано значение true, клиент будет подключаться к одноранговым узлам кворума в порядке, указанном в вызове zookeeper_init(). Значение false заставляет zookeeper_init() переставлять одноранговые конечные точки, что хорошо для более равномерного распределения клиентских соединений между одноранговыми узлами кворума. Клиент C ZooKeeper по умолчанию использует false.

Список параметров

yesOrNo

Отключить/включить рандомизацию порядка конечных точек кворума.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Метод выдаёт ошибку/предупреждение PHP, когда количество параметров или типы неверны, или операция не выполняется.

Предостережение

Начиная с версии 0.3.0, метод выбрасывает ZookeeperException и его производные.

Смотрите также

  • Zookeeper::__construct() - Создаёт дескриптор для общения с zookeeper
  • Zookeeper::connect() - Создаёт дескриптор для общения с zookeeper
  • ZookeeperException


Устанавливает поток, который будет использоваться библиотекой для логирования

  • « Zookeeper::setDeterministicConnOrder
  • Zookeeper::setWatcher »
  • PHP Manual
  • Zookeeper
  • Устанавливает поток, который будет использоваться библиотекой для логирования

Zookeeper::setLogStream

(PECL zookeeper >= 0.1.0)

Zookeeper::setLogStream — Устанавливает поток, который будет использоваться библиотекой для логирования

Описание

public Zookeeper::setLogStream(resource $stream): bool

Библиотека zookeeper использует stderr в качестве потока логирования по умолчанию. Приложение должно убедиться, что поток доступен для записи. Передача в NULL сбрасывает поток к его значению по умолчанию (stderr).

Список параметров

stream

Поток, который будет использоваться библиотекой для логирования.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Метод выдаёт PHP-сообщение об ошибке/предупреждение, когда количество параметров или типы неверны или операция завершается неудачно.

Предостережение

Начиная с версии 0.3.0, метод генерирует исключение ZookeeperException и его производные.

Смотрите также

  • Zookeeper::setDebugLevel() - Устанавливает уровень логирования для библиотеки
  • ZookeeperException


Устанавливает функцию наблюдателя

  • « Zookeeper::setLogStream
  • ZookeeperConfig »
  • PHP Manual
  • Zookeeper
  • Устанавливает функцию наблюдателя

Zookeeper::setWatcher

(PECL zookeeper >= 0.1.0)

Zookeeper::setWatcher — Устанавливает функцию наблюдателя

Описание

public Zookeeper::setWatcher(callable $watcher_cb): bool

Список параметров

watcher_cb

На сервере будет установлен наблюдатель для уведомления клиента в случае изменения узла.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Метод выдаёт PHP-сообщение об ошибке/предупреждение, когда число параметров или их типы неверны или не удаётся установить наблюдателя.

Предостережение

Начиная с версии 0.3.0, метод генерирует исключение ZookeeperException и его производные.

Смотрите также

  • Zookeeper::exists() - Синхронно проверяет наличие узла в zookeeper
  • Zookeeper::get() - Синхронно получает данные, связанные с узлом
  • ZookeeperException


Класс ZookeeperConfig

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

Введение

Класс обработки ZooKeeper Config.

Обзор классов

class 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 — Добавляет серверы в ансамбль
  • ZookeeperConfig::get — Синхронно получает последнюю подтверждённую конфигурацию кластера ZooKeeper, о которой известно серверу, к которому подключён клиент
  • ZookeeperConfig::remove — Удаляет серверы из ансамбля
  • ZookeeperConfig::set — Изменяет состав ансамбля ZK и роли его участников


Добавляет серверы в ансамбль

  • « ZookeeperConfig
  • ZookeeperConfig::get »
  • PHP Manual
  • ZookeeperConfig
  • Добавляет серверы в ансамбль

ZookeeperConfig::add

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::add — Добавляет серверы в ансамбль

Описание

public ZookeeperConfig::add(string $members, int $version = -1, array &$stat = null): void

Список параметров

members

Разделённый запятыми список серверов для добавления в ансамбль. Каждый из них имеет строку конфигурации для добавляемого сервера (как показано в файле конфигурации), только для основных кворумов.

version

Ожидаемая версия узла. Функция завершится с ошибкой, если фактическая версия узла не соответствует ожидаемой версии. Если используется -1, проверка версии не будет выполняться.

stat

Если не NULL, будет содержать значение stat для пути при возврате.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Метод генерирует ZookeeperException и его производные, когда число параметров или типы неверны или не удаётся сохранить значение в узле.

Примеры

Пример #1 Пример использования ZookeeperConfig::add()

Добавление серверов.

<?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 'Ошибка';
?>

Результат выполнения данного примера:

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() - Синхронно получает последнюю подтверждённую конфигурацию кластера ZooKeeper, о которой известно серверу, к которому подключён клиент
  • ZookeeperConfig::set() - Изменяет состав ансамбля ZK и роли его участников
  • ZookeeperConfig::remove() - Удаляет серверы из ансамбля
  • ZookeeperException


Синхронно получает последнюю подтверждённую конфигурацию кластера ZooKeeper, о которой известно серверу, к которому подключён клиент

  • « ZookeeperConfig::add
  • ZookeeperConfig::remove »
  • PHP Manual
  • ZookeeperConfig
  • Синхронно получает последнюю подтверждённую конфигурацию кластера ZooKeeper, о которой известно серверу, к которому подключён клиент

ZookeeperConfig::get

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::get — Синхронно получает последнюю подтверждённую конфигурацию кластера ZooKeeper, о которой известно серверу, к которому подключён клиент

Описание

public ZookeeperConfig::get(callable $watcher_cb = null, array &$stat = null): string

Список параметров

watcher_cb

Если не ноль, на сервере будет установлен наблюдатель, чтобы уведомлять клиента, когда узел изменяется.

stat

Если не NULL, будет содержать значение stat для пути при возврате.

Возвращаемые значения

Возвращает строку конфигурации в случае успешного выполнения и false в случае возникновении ошибки.

Ошибки

Метод генерирует ZookeeperException и его производные, когда количество параметров или типы неверны или не удаётся получить конфигурацию.

Примеры

Пример #1 Пример использования ZookeeperConfig::get()

Получение конфигурации.

<?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 'Ошибка';
?>

Результат выполнения данного примера:

server.1=localhost:2888:3888:participant;0.0.0.0:2181
version=0xca01e881a2

Смотрите также

  • ZookeeperConfig::set() - Изменяет состав ансамбля ZK и роли его участников
  • ZookeeperConfig::add() - Добавляет серверы в ансамбль
  • ZookeeperConfig::remove() - Удаляет серверы из ансамбля
  • ZookeeperException


Удаляет серверы из ансамбля

  • « ZookeeperConfig::get
  • ZookeeperConfig::set »
  • PHP Manual
  • ZookeeperConfig
  • Удаляет серверы из ансамбля

ZookeeperConfig::remove

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::remove — Удаляет серверы из ансамбля

Описание

public ZookeeperConfig::remove(string $id_list, int $version = -1, array &$stat = null): void

Список параметров

id_list

Разделённый запятыми список идентификаторов серверов, которые необходимо удалить из ансамбля. У каждого есть идентификатор удаляемого сервера, только для основных кворумов.

version

Ожидаемая версия узла. Функция завершится ошибкой, если фактическая версия узла не соответствует ожидаемой версии. Если используется -1, проверка версии не будет выполняться.

stat

Если не NULL, будет содержать значение stat для пути при возврате.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Метод генерирует ZookeeperException и его производные, когда число параметров или типы неверны или не удаётся сохранить значение в узле.

Примеры

Пример #1 Пример использования ZookeeperConfig::remove()

Удаление серверов.

<?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 'Ошибка';
?>

Результат выполнения данного примера:

server.1=localhost:2888:3888:participant;0.0.0.0:2181
version=0xca01e881a2

Смотрите также

  • ZookeeperConfig::get() - Синхронно получает последнюю подтверждённую конфигурацию кластера ZooKeeper, о которой известно серверу, к которому подключён клиент
  • ZookeeperConfig::add() - Добавляет серверы в ансамбль
  • ZookeeperConfig::set() - Изменяет состав ансамбля ZK и роли его участников
  • ZookeeperException


Изменяет состав ансамбля ZK и роли его участников

  • « ZookeeperConfig::remove
  • ZookeeperException »
  • PHP Manual
  • ZookeeperConfig
  • Изменяет состав ансамбля ZK и роли его участников

ZookeeperConfig::set

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::set — Изменяет состав ансамбля ZK и роли его участников

Описание

public ZookeeperConfig::set(string $members, int $version = -1, array &$stat = null): void

Список параметров

members

Разделённый запятыми список новых членов ансамбля (например, содержимое файла конфигурации) - для использования только с неинкрементной реконфигурацией.

version

Ожидаемая версия узла. Функция завершится ошибкой, если фактическая версия узла не соответствует ожидаемой версии. Если используется -1, проверка версии не будет выполняться.

stat

Если не NULL, будет содержать значение stat для пути при возврате.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Метод генерирует ZookeeperException и его производные, когда число параметров или типы неверны или не удаётся сохранить значение в узле.

Примеры

Пример #1 Пример использования ZookeeperConfig::set()

Реконфигурация.

<?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() - Синхронно получает последнюю подтверждённую конфигурацию кластера ZooKeeper, о которой известно серверу, к которому подключён клиент
  • ZookeeperConfig::add() - Добавляет серверы в ансамбль
  • ZookeeperConfig::remove() - Удаляет серверы из ансамбля
  • ZookeeperException


Класс ZookeeperException

(PECL zookeeper >= 0.3.0)

Введение

Класс исключений ZooKeeper.

Обзор классов

class ZookeeperException extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс ZookeeperAuthenticationException

(PECL zookeeper >= 0.3.0)

Введение

Класс обработки исключений аутентификации ZooKeeper.

Обзор классов

class ZookeeperAuthenticationException extends ZookeeperException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс ZookeeperConnectionException

(PECL zookeeper >= 0.3.0)

Введение

Класс обработки исключений соединения ZooKeeper.

Обзор классов

class ZookeeperConnectionException extends ZookeeperException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс ZookeeperMarshallingException

(PECL zookeeper >= 0.3.0)

Введение

Класс обработки исключений ZooKeeper (во время процесса маршалинга/демаршалинга данных).

Обзор классов

class ZookeeperMarshallingException extends ZookeeperException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс ZookeeperNoNodeException

(PECL zookeeper >= 0.3.0)

Введение

Класс обработки исключений ZooKeeper (в случае отсутствия узла).

Обзор классов

class ZookeeperNoNodeException extends ZookeeperException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс ZookeeperOperationTimeoutException

(PECL zookeeper >= 0.3.0)

Введение

Класс обработки исключений превышения времени ожидания окончания операции.

Обзор классов

class ZookeeperOperationTimeoutException extends ZookeeperException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс ZookeeperSessionException

(PECL zookeeper >= 0.3.0)

Введение

Класс обработки исключений сессии ZooKeeper.

Обзор классов

class ZookeeperSessionException extends ZookeeperException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Модули для работы с поисковыми системами

  • Solr — Apache Solr
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции Solr
    • Примеры
    • SolrUtils — Класс SolrUtils
    • SolrInputDocument — Класс SolrInputDocument
    • SolrDocument — Класс SolrDocument
    • SolrDocumentField — Класс SolrDocumentField
    • SolrObject — Класс SolrObject
    • SolrClient — Класс SolrClient
    • SolrResponse — Класс SolrResponse
    • SolrQueryResponse — Класс SolrQueryResponse
    • SolrUpdateResponse — Класс SolrUpdateResponse
    • SolrPingResponse — Класс SolrPingResponse
    • SolrGenericResponse — Класс SolrGenericResponse
    • SolrParams — Класс SolrParams
    • SolrModifiableParams — Класс SolrModifiableParams
    • SolrQuery — Класс SolrQuery
    • SolrDisMaxQuery — Класс SolrDisMaxQuery
    • SolrCollapseFunction — Класс SolrCollapseFunction
    • SolrException — Класс SolrException
    • SolrClientException — Класс SolrClientException
    • SolrServerException — Класс SolrServerException
    • SolrIllegalArgumentException — Класс SolrIllegalArgumentException
    • SolrIllegalOperationException — Класс SolrIllegalOperationException
    • SolrMissingMandatoryParameterException — Класс SolrMissingMandatoryParameterException


Apache Solr

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции Solr
    • solr_get_version — Возвращает текущую версию модуля Apache Solr
  • Примеры
  • SolrUtils — Класс SolrUtils
    • SolrUtils::digestXmlResponse — Преобразует XML-строку ответа в SolrObject
    • SolrUtils::escapeQueryChars — Экранирует строку запроса Lucene
    • SolrUtils::getSolrVersion — Возвращает текущую версию модуля Solr
    • SolrUtils::queryPhrase — Подготавливает фразу из неэкранированной строки запроса Lucene
  • SolrInputDocument — Класс SolrInputDocument
    • SolrInputDocument::addChildDocument — Добавляет дочерний документ для блочной индексации
    • SolrInputDocument::addChildDocuments — Добавляет массив дочерних документов
    • SolrInputDocument::addField — Добавляет поле в документ
    • SolrInputDocument::clear — Сбрасывает входной документ
    • SolrInputDocument::__clone — Создаёт копию SolrDocument
    • SolrInputDocument::__construct — Конструктор
    • SolrInputDocument::deleteField — Удаляет поле из документа
    • SolrInputDocument::__destruct — Деструктор
    • SolrInputDocument::fieldExists — Проверяет, существует ли поле
    • SolrInputDocument::getBoost — Получает текущее значение повышения для документа
    • SolrInputDocument::getChildDocuments — Возвращает массив дочерних документов (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount — Возвращает количество дочерних документов
    • SolrInputDocument::getField — Получает поле по имени
    • SolrInputDocument::getFieldBoost — Получает значение повышения для определённого поля
    • SolrInputDocument::getFieldCount — Возвращает количество полей в документе
    • SolrInputDocument::getFieldNames — Возвращает массив, содержащий все поля в документе
    • SolrInputDocument::hasChildDocuments — Возвращает true, если у документа есть дочерние документы
    • SolrInputDocument::merge — Объединяет один входной документ в другой
    • SolrInputDocument::reset — Псевдоним SolrInputDocument::clear
    • SolrInputDocument::setBoost — Устанавливает значение повышения для документа
    • SolrInputDocument::setFieldBoost — Устанавливает значение повышения индекса времени для поля
    • SolrInputDocument::sort — Сортирует поля в документе
    • SolrInputDocument::toArray — Возвращает представление массива входного документа
  • SolrDocument — Класс SolrDocument
    • SolrDocument::addField — Добавляет поле в документ
    • SolrDocument::clear — Удаляет все поля в документе
    • SolrDocument::__clone — Создаёт копию объекта SolrDocument
    • SolrDocument::__construct — Конструктор
    • SolrDocument::current — Получает текущее поле
    • SolrDocument::deleteField — Удаляет поле из документа
    • SolrDocument::__destruct — Деструктор
    • SolrDocument::fieldExists — Проверяет, существует ли поле в документе
    • SolrDocument::__get — Доступ к полю как свойству
    • SolrDocument::getChildDocuments — Возвращает массив дочерних документов (SolrDocument)
    • SolrDocument::getChildDocumentsCount — Возвращает количество дочерних документов
    • SolrDocument::getField — Получает поле по имени
    • SolrDocument::getFieldCount — Возвращает количество полей в этом документе
    • SolrDocument::getFieldNames — Возвращает массив имён полей в документе
    • SolrDocument::getInputDocument — Возвращает SolrInputDocument эквивалент объекта
    • SolrDocument::hasChildDocuments — Проверяет, есть ли у документа дочерние документы
    • SolrDocument::__isset — Проверяет, существует ли поле
    • SolrDocument::key — Получает текущий ключ
    • SolrDocument::merge — Сливает источник в текущий SolrDocument
    • SolrDocument::next — Перемещает внутренний указатель на следующее поле
    • SolrDocument::offsetExists — Проверяет, существует ли конкретное поле
    • SolrDocument::offsetGet — Получает поле
    • SolrDocument::offsetSet — Добавляет поле в документ
    • SolrDocument::offsetUnset — Удаляет поле
    • SolrDocument::reset — Псевдоним SolrDocument::clear
    • SolrDocument::rewind — Сбрасывает внутренний указатель на начало
    • SolrDocument::serialize — Используется для пользовательской сериализации
    • SolrDocument::__set — Добавляет ещё одно поле в документ
    • SolrDocument::sort — Сортирует поля в документе
    • SolrDocument::toArray — Возвращает представление массива документа
    • SolrDocument::unserialize — Пользовательская сериализация объектов SolrDocument
    • SolrDocument::__unset — Удаляет поле из документа
    • SolrDocument::valid — Проверяет, является ли текущая позиция внутренне корректной
  • SolrDocumentField — Класс SolrDocumentField
    • SolrDocumentField::__construct — Конструктор
    • SolrDocumentField::__destruct — Деструктор
  • SolrObject — Класс SolrObject
    • SolrObject::__construct — Создаёт объект Solr
    • SolrObject::__destruct — Деструктор
    • SolrObject::getPropertyNames — Возвращает массив всех имён свойств
    • SolrObject::offsetExists — Проверяет, существует ли свойство
    • SolrObject::offsetGet — Используется для получения свойства
    • SolrObject::offsetSet — Устанавливает значение свойства
    • SolrObject::offsetUnset — Сбрасывает значение свойства
  • SolrClient — Класс SolrClient
    • SolrClient::addDocument — Добавляет документ в индекс
    • SolrClient::addDocuments — Добавляет коллекцию экземпляров SolrInputDocument в индекс
    • SolrClient::commit — Завершает все добавления/удаления, сделанные в индексе
    • SolrClient::__construct — Конструктор объекта SolrClient
    • SolrClient::deleteById — Удаляет по идентификатору
    • SolrClient::deleteByIds — Удаляет по идентификаторам
    • SolrClient::deleteByQueries — Удаляет все документы, соответствующие любому из запросов
    • SolrClient::deleteByQuery — Удаляет все документы, соответствующие заданному запросу
    • SolrClient::__destruct — Деструктор SolrClient
    • SolrClient::getById — Получает документ по идентификатору. Использует Solr Realtime Get (RTG)
    • SolrClient::getByIds — Получает документы по их идентификаторам. Использует Solr Realtime Get (RTG)
    • SolrClient::getDebug — Возвращает данные отладки для последней попытки подключения
    • SolrClient::getOptions — Возвращает внутренние параметры клиента
    • SolrClient::optimize — Дефрагментирует индекс
    • SolrClient::ping — Проверяет, работает ли сервер Solr
    • SolrClient::query — Отправляет запрос на сервер
    • SolrClient::request — Отправляет необработанный запрос на обновление
    • SolrClient::rollback — Откатывает все добавления/удаления, сделанные в индекс с момента последней фиксации
    • SolrClient::setResponseWriter — Устанавливает писатель ответа, используемый для подготовки ответа от Solr
    • SolrClient::setServlet — Изменяет указанный тип сервлета на новое значение
    • SolrClient::system — Получает информацию о сервере Solr
    • SolrClient::threads — Проверяет статус тем
  • SolrResponse — Класс SolrResponse
    • SolrResponse::getDigestedResponse — Возвращает ответ XML как сериализованные данные PHP
    • SolrResponse::getHttpStatus — Возвращает HTTP-статус ответа
    • SolrResponse::getHttpStatusMessage — Возвращает более подробную информацию о статусе HTTP
    • SolrResponse::getRawRequest — Возвращает необработанный запрос, отправленный на сервер Solr
    • SolrResponse::getRawRequestHeaders — Возвращает необработанные заголовки запроса, отправленные на сервер Solr
    • SolrResponse::getRawResponse — Возвращает необработанный ответ с сервера
    • SolrResponse::getRawResponseHeaders — Возвращает необработанные заголовки ответа с сервера
    • SolrResponse::getRequestUrl — Возвращает полный URL-адрес, на который был отправлен запрос
    • SolrResponse::getResponse — Возвращает SolrObject, представляющий ответ XML от сервера
    • SolrResponse::setParseMode — Устанавливает режим разбора
    • SolrResponse::success — Был ли запрос успешным?
  • SolrQueryResponse — Класс SolrQueryResponse
    • SolrQueryResponse::__construct — Конструктор
    • SolrQueryResponse::__destruct — Деструктор
  • SolrUpdateResponse — Класс SolrUpdateResponse
    • SolrUpdateResponse::__construct — Конструктор
    • SolrUpdateResponse::__destruct — Деструктор
  • SolrPingResponse — Класс SolrPingResponse
    • SolrPingResponse::__construct — Конструктор
    • SolrPingResponse::__destruct — Деструктор
    • SolrPingResponse::getResponse — Возвращает ответ от сервера
  • SolrGenericResponse — Класс SolrGenericResponse
    • SolrGenericResponse::__construct — Конструктор
    • SolrGenericResponse::__destruct — Деструктор
  • SolrParams — Класс SolrParams
    • SolrParams::add — Псевдоним SolrParams::addParam
    • SolrParams::addParam — Добавляет параметр к объекту
    • SolrParams::get — Псевдоним SolrParams::getParam
    • SolrParams::getParam — Возвращает значение параметра
    • SolrParams::getParams — Возвращает массив параметров, не в URL-закодированном виде
    • SolrParams::getPreparedParams — Возвращает массив параметров в URL-закодированном виде
    • SolrParams::serialize — Используется для пользовательской сериализации
    • SolrParams::set — Псевдоним SolrParams::setParam
    • SolrParams::setParam — Устанавливает параметр на указанное значение
    • SolrParams::toString — Возвращает все параметры объекта в виде пар имя-значение
    • SolrParams::unserialize — Используется для пользовательской сериализации
  • SolrModifiableParams — Класс SolrModifiableParams
    • SolrModifiableParams::__construct — Конструктор
    • SolrModifiableParams::__destruct — Деструктор
  • SolrQuery — Класс SolrQuery
    • SolrQuery::addExpandFilterQuery — Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу
    • SolrQuery::addExpandSortField — Упорядочивает документы в расширенных группах (параметр expand.sort)
    • SolrQuery::addFacetDateField — Карты для facet.date
    • SolrQuery::addFacetDateOther — Добавляет ещё один параметр facet.date.other
    • SolrQuery::addFacetField — Добавляет другое поле к фасету
    • SolrQuery::addFacetQuery — Добавляет фасетный запрос
    • SolrQuery::addField — Указывает, какие поля возвращать в результате
    • SolrQuery::addFilterQuery — Определяет запрос фильтра
    • SolrQuery::addGroupField — Добавляет поле, которое будет использоваться для группировки результатов
    • SolrQuery::addGroupFunction — Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
    • SolrQuery::addGroupQuery — Позволяет группировать документы, соответствующие данному запросу
    • SolrQuery::addGroupSortField — Добавляет поле сортировки группы (параметр group.sort)
    • SolrQuery::addHighlightField — Соответствует hl.fl
    • SolrQuery::addMltField — Устанавливает поле для использования для подобия
    • SolrQuery::addMltQueryField — Соответствует mlt.qf
    • SolrQuery::addSortField — Используется для управления сортировкой результатов
    • SolrQuery::addStatsFacet — Запрашивает возврат вспомогательных результатов для значений в данном фасете
    • SolrQuery::addStatsField — Соответствует параметру stats.field
    • SolrQuery::collapse — Сворачивает набор результатов до одного документа на группу
    • SolrQuery::__construct — Конструктор
    • SolrQuery::__destruct — Деструктор
    • SolrQuery::getExpand — Возвращает true, если включено расширение группы
    • SolrQuery::getExpandFilterQueries — Возвращает запросы расширенного фильтра
    • SolrQuery::getExpandQuery — Возвращает параметр расширенного запроса expand.q
    • SolrQuery::getExpandRows — Возвращает количество строк, отображаемых в каждой группе (expand.rows)
    • SolrQuery::getExpandSortFields — Возвращает массив полей
    • SolrQuery::getFacet — Возвращает значение параметра фасета
    • SolrQuery::getFacetDateEnd — Возвращает значение параметра facet.date.end
    • SolrQuery::getFacetDateFields — Возвращает все поля facet.date
    • SolrQuery::getFacetDateGap — Возвращает значение параметра facet.date.gap
    • SolrQuery::getFacetDateHardEnd — Возвращает значение параметра facet.date.hardend
    • SolrQuery::getFacetDateOther — Возвращает значение параметра facet.date.other
    • SolrQuery::getFacetDateStart — Возвращает нижнюю границу первого диапазона дат для всех аспектов даты в этом поле
    • SolrQuery::getFacetFields — Возвращает все поля фасетов
    • SolrQuery::getFacetLimit — Возвращает максимальное количество счётчиков ограничений, которое должно быть возвращено для полей фасета
    • SolrQuery::getFacetMethod — Возвращает значение параметра facet.method
    • SolrQuery::getFacetMinCount — Возвращает минимальное количество полей аспектов, которые должны быть включены в ответ
    • SolrQuery::getFacetMissing — Возвращает текущее состояние параметра facet.missing
    • SolrQuery::getFacetOffset — Возвращает смещение в списке ограничений, которые будут использоваться для постраничной навигации
    • SolrQuery::getFacetPrefix — Возвращает префикс фасета
    • SolrQuery::getFacetQueries — Возвращает все фасетные запросы
    • SolrQuery::getFacetSort — Возвращает тип сортировки фасета
    • SolrQuery::getFields — Возвращает список полей, которые будут возвращены в ответе
    • SolrQuery::getFilterQueries — Возвращает массив запросов фильтра
    • SolrQuery::getGroup — Возвращает true, если группировка включена
    • SolrQuery::getGroupCachePercent — Возвращает процентное значение группового кеша
    • SolrQuery::getGroupFacet — Возвращает значение параметра group.facet
    • SolrQuery::getGroupFields — Возвращает групповые поля (значения параметра group.field)
    • SolrQuery::getGroupFormat — Возвращает значение group.format
    • SolrQuery::getGroupFunctions — Возвращает групповые функции (значения параметров group.func)
    • SolrQuery::getGroupLimit — Возвращает значение group.limit
    • SolrQuery::getGroupMain — Возвращает значение group.main
    • SolrQuery::getGroupNGroups — Возвращает значение group.ngroups
    • SolrQuery::getGroupOffset — Возвращает значение group.offset
    • SolrQuery::getGroupQueries — Возвращает все значения параметра group.query
    • SolrQuery::getGroupSortFields — Возвращает значение group.sort
    • SolrQuery::getGroupTruncate — Возвращает значение group.truncate
    • SolrQuery::getHighlight — Возвращает состояние параметра hl
    • SolrQuery::getHighlightAlternateField — Возвращает выделенное поле для использования в качестве резервной копии или по умолчанию
    • SolrQuery::getHighlightFields — Возвращает все поля, для которых Solr должен генерировать выделенные фрагменты
    • SolrQuery::getHighlightFormatter — Возвращает средство форматирования для выделенного вывода
    • SolrQuery::getHighlightFragmenter — Возвращает генератор фрагментов текста для выделенного текста
    • SolrQuery::getHighlightFragsize — Возвращает количество символов фрагментов для выделения
    • SolrQuery::getHighlightHighlightMultiTerm — Возвращает, следует ли включать выделение для запросов диапазона/подстановочных знаков/нечётких/префиксов
    • SolrQuery::getHighlightMaxAlternateFieldLength — Возвращает максимальное количество символов поля для возврата
    • SolrQuery::getHighlightMaxAnalyzedChars — Возвращает максимальное количество символов в документе для поиска подходящих фрагментов
    • SolrQuery::getHighlightMergeContiguous — Возвращает, свернуть ли смежные фрагменты в один фрагмент
    • SolrQuery::getHighlightRegexMaxAnalyzedChars — Возвращает максимальное количество символов из поля при использовании фрагментатора регулярного выражения
    • SolrQuery::getHighlightRegexPattern — Возвращает регулярное выражение для фрагментации
    • SolrQuery::getHighlightRegexSlop — Возвращает коэффициент отклонения от идеального размера фрагмента
    • SolrQuery::getHighlightRequireFieldMatch — Возвращает, если поле будет выделено только в том случае, если запрос соответствует этому конкретному полю
    • SolrQuery::getHighlightSimplePost — Возвращает текст, который появляется после выделенного выражения
    • SolrQuery::getHighlightSimplePre — Возвращает текст, который появляется перед выделенным выражением
    • SolrQuery::getHighlightSnippets — Возвращает максимальное количество выделенных фрагментов для создания для каждого поля
    • SolrQuery::getHighlightUsePhraseHighlighter — Возвращает состояние параметра hl.usePhraseHighlighter
    • SolrQuery::getMlt — Возвращает, должны ли быть включены результаты MoreLikeThis
    • SolrQuery::getMltBoost — Возвращает, будет ли запрос усилен релевантностью интересующего выражения
    • SolrQuery::getMltCount — Возвращает количество похожих документов, возвращаемых для каждого результата
    • SolrQuery::getMltFields — Возвращает все поля, которые нужно использовать для сравнения
    • SolrQuery::getMltMaxNumQueryTerms — Возвращает максимальное количество условий запроса, которые будут включены в любой сгенерированный запрос
    • SolrQuery::getMltMaxNumTokens — Возвращает максимальное количество токенов для анализа в каждом поле документа, которое не хранится с поддержкой TermVector
    • SolrQuery::getMltMaxWordLength — Возвращает максимальную длину слова, выше которой слова будут игнорироваться
    • SolrQuery::getMltMinDocFrequency — Возвращает пороговую частоту, с которой будут игнорироваться слова, которых нет, по крайней мере, в таком количестве документов
    • SolrQuery::getMltMinTermFrequency — Возвращает частоту, ниже которой выражения будут игнорироваться в исходном документе
    • SolrQuery::getMltMinWordLength — Возвращает минимальную длину слова, ниже которой слова будут игнорироваться
    • SolrQuery::getMltQueryFields — Возвращает поля запроса и их повышения
    • SolrQuery::getQuery — Возвращает основной запрос
    • SolrQuery::getRows — Возвращает максимальное количество документов
    • SolrQuery::getSortFields — Возвращает все поля сортировки
    • SolrQuery::getStart — Возвращает смещение в полном наборе результатов
    • SolrQuery::getStats — Возвращает, включена ли статистика
    • SolrQuery::getStatsFacets — Возвращает все фасеты статистики, которые были установлены
    • SolrQuery::getStatsFields — Возвращает все поля статистики
    • SolrQuery::getTerms — Возвращает, включён ли TermsComponent
    • SolrQuery::getTermsField — Возвращает поле, из которого извлекаются выражения
    • SolrQuery::getTermsIncludeLowerBound — Возвращает, нужно ли включать выражение нижней границы в набор результатов
    • SolrQuery::getTermsIncludeUpperBound — Возвращает, нужно ли включать выражение верхней границы в набор результатов
    • SolrQuery::getTermsLimit — Возвращает максимальное количество выражений, которые должна вернуть Solr
    • SolrQuery::getTermsLowerBound — Возвращает выражение для начала
    • SolrQuery::getTermsMaxCount — Возвращает максимальную частоту документа
    • SolrQuery::getTermsMinCount — Возвращает минимальную частоту возврата документов для включения
    • SolrQuery::getTermsPrefix — Возвращает префикс выражения
    • SolrQuery::getTermsReturnRaw — Следует ли возвращать необработанные символы
    • SolrQuery::getTermsSort — Возвращает целое число, указывающее, как сортируются выражения
    • SolrQuery::getTermsUpperBound — Возвращает выражение для остановки
    • SolrQuery::getTimeAllowed — Возвращает время в миллисекундах, разрешённое для завершения запроса
    • SolrQuery::removeExpandFilterQuery — Удаляет запрос расширенного фильтра
    • SolrQuery::removeExpandSortField — Удаляет расширенное поле сортировки из параметра expand.sort
    • SolrQuery::removeFacetDateField — Удаляет одно из полей даты фасета
    • SolrQuery::removeFacetDateOther — Удаляет один из параметров facet.date.other
    • SolrQuery::removeFacetField — Удаляет один из параметров facet.date
    • SolrQuery::removeFacetQuery — Удаляет один из параметров facet.query
    • SolrQuery::removeField — Удаляет поле из списка полей
    • SolrQuery::removeFilterQuery — Удаляет запрос фильтра
    • SolrQuery::removeHighlightField — Удаляет одно из полей, используемых для выделения
    • SolrQuery::removeMltField — Удаляет одно из полей moreLikeThis
    • SolrQuery::removeMltQueryField — Удаляет одно из полей запроса moreLikeThis
    • SolrQuery::removeSortField — Удаляет одно из полей сортировки
    • SolrQuery::removeStatsFacet — Удаляет один из параметров stats.facet
    • SolrQuery::removeStatsField — Удаляет один из параметров stats.field
    • SolrQuery::setEchoHandler — Переключает параметр echoHandler
    • SolrQuery::setEchoParams — Определяет, какие параметры включать в ответ
    • SolrQuery::setExpand — Включает/отключает компонент Expand
    • SolrQuery::setExpandQuery — Устанавливает параметр expand.q
    • SolrQuery::setExpandRows — Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5
    • SolrQuery::setExplainOther — Устанавливает общий параметр запроса explainOther
    • SolrQuery::setFacet — Соответствует параметру фасета. Включает или отключает фасетирование
    • SolrQuery::setFacetDateEnd — Соответствует facet.date.end
    • SolrQuery::setFacetDateGap — Соответствует facet.date.gap
    • SolrQuery::setFacetDateHardEnd — Соответствует facet.date.hardend
    • SolrQuery::setFacetDateStart — Соответствует facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency — Устанавливает минимальную частоту документа, используемую для определения количества выражений
    • SolrQuery::setFacetLimit — Соответствует facet.limit
    • SolrQuery::setFacetMethod — Задаёт тип алгоритма, который следует использовать при фасетировании поля
    • SolrQuery::setFacetMinCount — Соответствует facet.mincount
    • SolrQuery::setFacetMissing — Соответствует facet.missing
    • SolrQuery::setFacetOffset — Устанавливает смещение в список ограничений для разбивки на страницы
    • SolrQuery::setFacetPrefix — Определяет строковый префикс, с помощью которого ограничиваются выражения, на которых выполняется фасет
    • SolrQuery::setFacetSort — Определяет порядок ограничений поля фасета
    • SolrQuery::setGroup — Включает/отключает группировку результатов (параметр group)
    • SolrQuery::setGroupCachePercent — Включает кеширование для группировки результатов
    • SolrQuery::setGroupFacet — Устанавливает параметр group.facet
    • SolrQuery::setGroupFormat — Устанавливает формат группы, структуру результата (параметр group.format)
    • SolrQuery::setGroupLimit — Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
    • SolrQuery::setGroupMain — Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
    • SolrQuery::setGroupNGroups — Если true, Solr включает в результаты количество групп, которые соответствуют запросу
    • SolrQuery::setGroupOffset — Устанавливает параметр group.offset
    • SolrQuery::setGroupTruncate — Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
    • SolrQuery::setHighlight — Включает или отключает выделение
    • SolrQuery::setHighlightAlternateField — Задаёт поле резервного копирования для использования
    • SolrQuery::setHighlightFormatter — Задаёт средство форматирования для вывода выделения
    • SolrQuery::setHighlightFragmenter — Устанавливает генератор текстовых фрагментов для выделенного текста
    • SolrQuery::setHighlightFragsize — Размер фрагментов, которые следует учитывать при выделении
    • SolrQuery::setHighlightHighlightMultiTerm — Использовать SpanScorer для выделения выражений
    • SolrQuery::setHighlightMaxAlternateFieldLength — Устанавливает максимальное количество символов поля для возврата
    • SolrQuery::setHighlightMaxAnalyzedChars — Задаёт количество символов в документе для поиска подходящих фрагментов
    • SolrQuery::setHighlightMergeContiguous — Свёртывать ли смежные фрагменты в один фрагмент
    • SolrQuery::setHighlightRegexMaxAnalyzedChars — Задаёт максимальное количество символов для анализа
    • SolrQuery::setHighlightRegexPattern — Задаёт регулярное выражение для фрагментации
    • SolrQuery::setHighlightRegexSlop — Устанавливает коэффициент, на который фрагментатор регулярного выражения может отклониться от идеального размера фрагмента
    • SolrQuery::setHighlightRequireFieldMatch — Требовать сопоставления полей при выделении
    • SolrQuery::setHighlightSimplePost — Устанавливает текст, который появляется после выделенного выражения
    • SolrQuery::setHighlightSimplePre — Устанавливает текст, который появляется перед выделенным выражением
    • SolrQuery::setHighlightSnippets — Устанавливает максимальное количество выделенных фрагментов для создания для каждого поля
    • SolrQuery::setHighlightUsePhraseHighlighter — Следует ли выделять выражения только тогда, когда они появляются во фразе запроса
    • SolrQuery::setMlt — Включает или отключает moreLikeThis
    • SolrQuery::setMltBoost — Устанавливает, будет ли запрос усилен релевантностью интересного выражения
    • SolrQuery::setMltCount — Устанавливает количество похожих документов, возвращаемых для каждого результата
    • SolrQuery::setMltMaxNumQueryTerms — Устанавливает максимальное количество включаемых выражений запроса
    • SolrQuery::setMltMaxNumTokens — Задаёт максимальное количество токенов для анализа
    • SolrQuery::setMltMaxWordLength — Устанавливает максимальную длину слова
    • SolrQuery::setMltMinDocFrequency — Устанавливает частоту mltMinDoc
    • SolrQuery::setMltMinTermFrequency — Устанавливает частоту, ниже которой выражения будут игнорироваться в исходной документации
    • SolrQuery::setMltMinWordLength — Устанавливает минимальную длину слова
    • SolrQuery::setOmitHeader — Исключает заголовок из возвращаемых результатов
    • SolrQuery::setQuery — Устанавливает поисковый запрос
    • SolrQuery::setRows — Задаёт максимальное количество строк, возвращаемых в результате
    • SolrQuery::setShowDebugInfo — Флаг для отображения отладочной информации
    • SolrQuery::setStart — Определяет количество пропускаемых строк
    • SolrQuery::setStats — Включает или отключает компонент Stats
    • SolrQuery::setTerms — Включает или отключает TermsComponent
    • SolrQuery::setTermsField — Устанавливает имя поля, из которого нужно получить выражение
    • SolrQuery::setTermsIncludeLowerBound — Включает нижнюю границу выражения в набор результатов
    • SolrQuery::setTermsIncludeUpperBound — Включает верхнюю границу выражения в набор результатов
    • SolrQuery::setTermsLimit — Устанавливает максимальное количество возвращаемых выражений
    • SolrQuery::setTermsLowerBound — Определяет выражение, с которого нужно начинать
    • SolrQuery::setTermsMaxCount — Устанавливает максимальную частоту документов
    • SolrQuery::setTermsMinCount — Устанавливает минимальную частоту документов
    • SolrQuery::setTermsPrefix — Ограничивает совпадения выражениями, начинающимися с префикса
    • SolrQuery::setTermsReturnRaw — Вернуть необработанные символы проиндексированного выражения
    • SolrQuery::setTermsSort — Определяет, как сортировать возвращённые условия
    • SolrQuery::setTermsUpperBound — Устанавливает условие для остановки
    • SolrQuery::setTimeAllowed — Время, отведённое на поиск
  • SolrDisMaxQuery — Класс SolrDisMaxQuery
    • SolrDisMaxQuery::addBigramPhraseField — Добавляет поле фразовой биграммы (параметр pf2)
    • SolrDisMaxQuery::addBoostQuery — Добавляет поле повышения запроса со значением и необязательным усилением (параметр bq)
    • SolrDisMaxQuery::addPhraseField — Добавляет поле фразы (параметр pf)
    • SolrDisMaxQuery::addQueryField — Добавляет поле запроса с необязательным повышением (параметр qf)
    • SolrDisMaxQuery::addTrigramPhraseField — Добавляет поле триграммы (параметр pf3)
    • SolrDisMaxQuery::addUserField — Добавляет поле в параметр пользовательских полей (uf)
    • SolrDisMaxQuery::__construct — Конструктор класса
    • SolrDisMaxQuery::removeBigramPhraseField — Удаляет поле биграммы фразы (параметр pf2)
    • SolrDisMaxQuery::removeBoostQuery — Удаляет частичное повышение запроса по имени поля (bq)
    • SolrDisMaxQuery::removePhraseField — Удаляет поле фразы (параметра)
    • SolrDisMaxQuery::removeQueryField — Удаляет поле запроса (параметр qf)
    • SolrDisMaxQuery::removeTrigramPhraseField — Удаляет поле триграммы (параметр pf3)
    • SolrDisMaxQuery::removeUserField — Удаляет поле из параметра пользовательских полей (uf)
    • SolrDisMaxQuery::setBigramPhraseFields — Устанавливает поля биграммы фразы и их усиления (и отклонения) с помощью параметра pf2
    • SolrDisMaxQuery::setBigramPhraseSlop — Устанавливает коэффициент отклонения биграммы фразы (параметр ps2)
    • SolrDisMaxQuery::setBoostFunction — Устанавливает функцию усиления (параметр bf)
    • SolrDisMaxQuery::setBoostQuery — Непосредственно устанавливает параметр запроса усиления (bq)
    • SolrDisMaxQuery::setMinimumMatch — Устанавливает минимальное соответствие "Should" (mm)
    • SolrDisMaxQuery::setPhraseFields — Устанавливает поля фразы и их усиления (и отклонения) с помощью параметра pf2
    • SolrDisMaxQuery::setPhraseSlop — Устанавливает коэффициент отклонения по умолчанию для запросов фраз (параметр ps)
    • SolrDisMaxQuery::setQueryAlt — Устанавливает альтернативный запрос (параметр q.alt)
    • SolrDisMaxQuery::setQueryPhraseSlop — Определяет коэффициент отклонения, разрешённый для фразовых запросов, явно включённых в строку запроса пользователя (параметр qf)
    • SolrDisMaxQuery::setTieBreaker — Устанавливает параметр Tie Breaker (параметр tie)
    • SolrDisMaxQuery::setTrigramPhraseFields — Непосредственно устанавливает поля триграммы фразы (параметр pf3)
    • SolrDisMaxQuery::setTrigramPhraseSlop — Устанавливает коэффициент отклонения триграммы фразы (параметр ps3)
    • SolrDisMaxQuery::setUserFields — Устанавливает параметр пользовательских полей (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser — Переключает QueryParser на DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser — Переключает QueryParser на EDisMax
  • SolrCollapseFunction — Класс SolrCollapseFunction
    • SolrCollapseFunction::__construct — Конструктор класса
    • SolrCollapseFunction::getField — Возвращает свёрнутое поле
    • SolrCollapseFunction::getHint — Возвращает подсказку сворачивания
    • SolrCollapseFunction::getMax — Возвращает максимальное значение
    • SolrCollapseFunction::getMin — Возвращает минимальное значение
    • SolrCollapseFunction::getNullPolicy — Возвращает NULL-политику
    • SolrCollapseFunction::getSize — Возвращает параметр размера
    • SolrCollapseFunction::setField — Устанавливает поле для свёртывания
    • SolrCollapseFunction::setHint — Устанавливает подсказку сворачивания
    • SolrCollapseFunction::setMax — Выбирает заголовки группы по максимальному значению числового поля или запроса функции
    • SolrCollapseFunction::setMin — Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю
    • SolrCollapseFunction::setNullPolicy — Устанавливает NULL-политику
    • SolrCollapseFunction::setSize — Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю
    • SolrCollapseFunction::__toString — Возвращает строку, представляющую построенную функцию свёртывания
  • SolrException — Класс SolrException
    • SolrException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение
  • SolrClientException — Класс SolrClientException
    • SolrClientException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение
  • SolrServerException — Класс SolrServerException
    • SolrServerException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение
  • SolrIllegalArgumentException — Класс SolrIllegalArgumentException
    • SolrIllegalArgumentException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение
  • SolrIllegalOperationException — Класс SolrIllegalOperationException
    • SolrIllegalOperationException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение
  • SolrMissingMandatoryParameterException — Класс SolrMissingMandatoryParameterException


Введение

Модуль 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.

Она также содержит инструменты, которые позволяют создавать сложные запросы к серверу при поиске документов.


Требования

Модуль libxml и curl также должны быть включены, чтобы модуль Apache Solr был доступен.

Требуется libxml2 2.6.31 или новее.

Требуется libcurl 7.18.0 или новее.

Указанные выше версии библиотеки требуются и попытки взломать код для его компиляции категорически не рекомендуется. Это, возможно, завершится с ошибками, которые может быть трудно отладить


Установка

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/solr.

Для получения помощи и поддержки посетите группу модулей Google. » Модуль Apache Solr PHP

Бинарные файлы Windows (файлы DLL) для этого модуля PECL доступны на сайте PECL.

Замечание:

Модуль solr может быть скомпилирован в режиме отладки, передав флаг --enable-solr-debug для настройки

При сборке вручную не забудьте включить в сборку поддержку curl и libxml.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

SOLR_MAJOR_VERSION (int)
SOLR_MINOR_VERSION (int)
SOLR_PATCH_VERSION (int)
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(): string

Функция возвращает текущую версию модуля в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку в случае успешного выполнения и false в случае возникновения ошибки.

Ошибки

Функция не выбрасывает ошибок или исключений.

Примеры

Пример #1 Пример использования solr_get_version()

<?php

$solr_version = solr_get_version();

print $solr_version;

?>

Результатом выполнения данного примера будет что-то подобное:

0.9.6

Смотрите также

  • SolrUtils::getSolrVersion() - Возвращает текущую версию модуля Solr


Примеры

Примеры использования модуля Apache Solr в PHP

Пример #1 Содержимое файла BootStrap

<?php

/* Доменное имя сервера Solr */
define('SOLR_SERVER_HOSTNAME', 'solr.example.com');

/* Следует ли запускать в безопасном режиме */
define('SOLR_SECURE', true);

/* HTTP-порт для подключения */
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8443 : 8983));

/* Имя пользователя для базовой аутентификации HTTP */
define('SOLR_SERVER_USERNAME', 'admin');

/* Пароль базовой аутентификации HTTP */
define('SOLR_SERVER_PASSWORD', 'changeit');

/* Время ожидания HTTP-соединения */
/* Это максимальное время в секундах, разрешённое для операции передачи данных http. Значение по умолчанию - 30 секунд */
define('SOLR_SERVER_TIMEOUT', 10);

/* Имя файла для закрытого ключа в формате PEM + закрытый сертификат (объединены в указанном порядке) */
define('SOLR_SSL_CERT', 'certs/combo.pem');

/* Имя файла только для частного сертификата в формате PEM */
define('SOLR_SSL_CERT_ONLY', 'certs/solr.crt');

/* Имя файла для закрытого ключа в формате PEM */
define('SOLR_SSL_KEY', 'certs/solr.key');

/* Пароль для файла закрытого ключа в формате PEM */
define('SOLR_SSL_KEYPASSWORD', 'StrongAndSecurePassword');

/* Имя файла, содержащего один или несколько сертификатов CA для проверки однорангового узла */
define('SOLR_SSL_CAINFO', 'certs/cacert.crt');

/* Имя каталога, содержащего несколько сертификатов CA для проверки однорангового узла */
define('SOLR_SSL_CAPATH', 'certs/');

?>

Пример #2 Добавление документа в индекс

<?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 Слияние одного документа с другим

<?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 Поиск документов - ответы SolrObject

<?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 Поиск документов - ответы SolrDocument

<?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

<?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 - использование префикса

<?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 - указание минимальной частоты

<?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);

/* Возвращать только термины, начинающиеся с $prefix */
$prefix = 'c';

/* Возвращать только термины с частотой 2 или более */
$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

<?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 - с необязательным переопределением поля для 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

<?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 Подключение к серверу с поддержкой SSL

<?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 Сворачивание 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) 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
        )

)


Класс SolrUtils

(PECL solr >= 0.9.2)

Введение

Содержит служебные методы для получения текущей версии модуля и подготовки фраз запроса.

Также содержит метод для экранирования строк запроса и анализа ответов XML.

Обзор классов

abstract class SolrUtils {
/* Методы */
public static digestXmlResponse(string $xmlresponse, int $parse_mode = 0): SolrObject
public static escapeQueryChars(string $str): string|false
public static getSolrVersion(): string
public static queryPhrase(string $str): string
}

Содержание

  • SolrUtils::digestXmlResponse — Преобразует XML-строку ответа в SolrObject
  • SolrUtils::escapeQueryChars — Экранирует строку запроса Lucene
  • SolrUtils::getSolrVersion — Возвращает текущую версию модуля Solr
  • SolrUtils::queryPhrase — Подготавливает фразу из неэкранированной строки запроса Lucene


Преобразует XML-строку ответа в SolrObject

  • « SolrUtils
  • SolrUtils::escapeQueryChars »
  • PHP Manual
  • SolrUtils
  • Преобразует XML-строку ответа в SolrObject

SolrUtils::digestXmlResponse

(PECL solr >= 0.9.2)

SolrUtils::digestXmlResponse — Преобразует XML-строку ответа в SolrObject

Описание

public static SolrUtils::digestXmlResponse(string $xmlresponse, int $parse_mode = 0): SolrObject

Метод преобразует XML-строку ответа с сервера Apache Solr в SolrObject. В случае возникновения ошибки выбрасывает исключение SolrException.

Список параметров

xmlresponse

Строка ответа XML от сервера Solr.

parse_mode

Используйте SolrResponse::PARSE_SOLR_OBJ или SolrResponse::PARSE_SOLR_DOC

Возвращаемые значения

Возвращает SolrObject, представляющий ответ XML.

Если для параметра parse_mode установлено значение SolrResponse::PARSE_SOLR_OBJ, документы Solr будут анализироваться как экземпляры SolrObject.

Если установлено значение SolrResponse::PARSE_SOLR_DOC, они будут проанализированы как экземпляры SolrDocument.


Экранирует строку запроса Lucene

  • « SolrUtils::digestXmlResponse
  • SolrUtils::getSolrVersion »
  • PHP Manual
  • SolrUtils
  • Экранирует строку запроса Lucene

SolrUtils::escapeQueryChars

(PECL solr >= 0.9.2)

SolrUtils::escapeQueryChars — Экранирует строку запроса Lucene

Описание

public static SolrUtils::escapeQueryChars(string $str): string|false

Lucene поддерживает экранирование специальных символов, которые являются частью синтаксиса запроса.

Текущий список специальных символов:

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /

Эти символы являются частью синтаксиса запроса и должны быть экранированы

Список параметров

str

Строка запроса, которую нужно экранировать.

Возвращаемые значения

Возвращает экранированную строку или false в случае возникновения ошибки.


Возвращает текущую версию модуля Solr

  • « SolrUtils::escapeQueryChars
  • SolrUtils::queryPhrase »
  • PHP Manual
  • SolrUtils
  • Возвращает текущую версию модуля Solr

SolrUtils::getSolrVersion

(PECL solr >= 0.9.2)

SolrUtils::getSolrVersion — Возвращает текущую версию модуля Solr

Описание

public static SolrUtils::getSolrVersion(): string

Возвращает текущую версию Solr.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая версия модуля Apache Solr.


Подготавливает фразу из неэкранированной строки запроса Lucene

  • « SolrUtils::getSolrVersion
  • SolrInputDocument »
  • PHP Manual
  • SolrUtils
  • Подготавливает фразу из неэкранированной строки запроса Lucene

SolrUtils::queryPhrase

(PECL solr >= 0.9.2)

SolrUtils::queryPhrase — Подготавливает фразу из неэкранированной строки запроса Lucene

Описание

public static SolrUtils::queryPhrase(string $str): string

Подготавливает фразу из неэкранированной строки запроса Lucene.

Список параметров

str

Строка запроса Lucene.

Возвращаемые значения

Возвращает строку запроса, заключённую в двойные кавычки.


Класс SolrInputDocument

(PECL solr >= 0.9.2)

Введение

Этот класс представляет документ Solr, который будет отправлен в индекс Solr.

Обзор классов

final class SolrInputDocument {
/* Константы */
const int SORT_DEFAULT = 1;
const int SORT_ASC = 1;
const int SORT_DESC = 2;
const int SORT_FIELD_NAME = 1;
const int SORT_FIELD_VALUE_COUNT = 2;
const int SORT_FIELD_BOOST_VALUE = 4;
/* Методы */
public __construct()
public addChildDocument(SolrInputDocument $child): void
public addChildDocuments(array &$docs): void
public addField(string $fieldName, string $fieldValue, float $fieldBoostValue = 0.0): bool
public clear(): bool
public __clone(): void
public deleteField(string $fieldName): bool
public fieldExists(string $fieldName): bool
public getBoost(): float
public getChildDocuments(): array
public getChildDocumentsCount(): int
public getField(string $fieldName): SolrDocumentField
public getFieldBoost(string $fieldName): float
public getFieldCount(): int|false
public getFieldNames(): array
public hasChildDocuments(): bool
public merge(SolrInputDocument $sourceDoc, bool $overwrite = true): bool
public reset(): 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(): array
public __destruct()
}

Предопределённые константы

Константы класса SolrInputDocument

SolrInputDocument::SORT_DEFAULT

Сортирует поля в порядке возрастания.

SolrInputDocument::SORT_ASC

Сортирует поля в порядке возрастания.

SolrInputDocument::SORT_DESC

Сортирует поля в порядке убывания.

SolrInputDocument::SORT_FIELD_NAME

Сортирует поля по имени

SolrInputDocument::SORT_FIELD_VALUE_COUNT

Сортирует поля по количеству значений.

SolrInputDocument::SORT_FIELD_BOOST_VALUE

Сортирует поля по значению повышения.

Содержание

  • SolrInputDocument::addChildDocument — Добавляет дочерний документ для блочной индексации
  • SolrInputDocument::addChildDocuments — Добавляет массив дочерних документов
  • SolrInputDocument::addField — Добавляет поле в документ
  • SolrInputDocument::clear — Сбрасывает входной документ
  • SolrInputDocument::__clone — Создаёт копию SolrDocument
  • SolrInputDocument::__construct — Конструктор
  • SolrInputDocument::deleteField — Удаляет поле из документа
  • SolrInputDocument::__destruct — Деструктор
  • SolrInputDocument::fieldExists — Проверяет, существует ли поле
  • SolrInputDocument::getBoost — Получает текущее значение повышения для документа
  • SolrInputDocument::getChildDocuments — Возвращает массив дочерних документов (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount — Возвращает количество дочерних документов
  • SolrInputDocument::getField — Получает поле по имени
  • SolrInputDocument::getFieldBoost — Получает значение повышения для определённого поля
  • SolrInputDocument::getFieldCount — Возвращает количество полей в документе
  • SolrInputDocument::getFieldNames — Возвращает массив, содержащий все поля в документе
  • SolrInputDocument::hasChildDocuments — Возвращает true, если у документа есть дочерние документы
  • SolrInputDocument::merge — Объединяет один входной документ в другой
  • SolrInputDocument::reset — Псевдоним SolrInputDocument::clear
  • SolrInputDocument::setBoost — Устанавливает значение повышения для документа
  • SolrInputDocument::setFieldBoost — Устанавливает значение повышения индекса времени для поля
  • SolrInputDocument::sort — Сортирует поля в документе
  • SolrInputDocument::toArray — Возвращает представление массива входного документа


Добавляет дочерний документ для блочной индексации

  • « SolrInputDocument
  • SolrInputDocument::addChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Добавляет дочерний документ для блочной индексации

SolrInputDocument::addChildDocument

(PECL solr >= 2.3.0)

SolrInputDocument::addChildDocument — Добавляет дочерний документ для блочной индексации

Описание

public SolrInputDocument::addChildDocument(SolrInputDocument $child): void

Добавляет дочерний документ для создания блока документов с вложенными документами.

Список параметров

child

Объект SolrInputDocument.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение SolrIllegalArgumentException в случае возникновения ошибки.

Выбрасывает исключение SolrException в случае возникновения внутренней ошибки.

Примеры

Пример #1 Пример использования SolrInputDocument::addChildDocument()

<?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);

// добавить дочерние документы
$product->addChildDocument($small);
$product->addChildDocument($medium);
$product->addChildDocument($large);

// добавить блок документа продукта в индекс
$updateResponse = $client->addDocument(
$product,
true, // перезаписать, если документ существует
10000 // зафиксировать в течение 10 секунд
);

print_r($updateResponse->getResponse());

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 5
        )
)

Смотрите также

  • SolrInputDocument::addChildDocuments() - Добавляет массив дочерних документов
  • SolrInputDocument::hasChildDocuments() - Возвращает true, если у документа есть дочерние документы
  • SolrInputDocument::getChildDocuments() - Возвращает массив дочерних документов (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Возвращает количество дочерних документов


Добавляет массив дочерних документов

  • « SolrInputDocument::addChildDocument
  • SolrInputDocument::addField »
  • PHP Manual
  • SolrInputDocument
  • Добавляет массив дочерних документов

SolrInputDocument::addChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::addChildDocuments — Добавляет массив дочерних документов

Описание

public SolrInputDocument::addChildDocuments(array &$docs): void

Добавляет массив дочерних документов в текущий входной документ.

Список параметров

docs

Массив (array) объектов SolrInputDocument.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение SolrIllegalArgumentException в случае возникновения ошибки.

Выбрасывает исключение SolrException в случае возникновения внутренней ошибки.

Примеры

Пример #1 Пример использования SolrInputDocument::addChildDocuments()

<?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);

// добавить дочерние документы
$skus = [$small, $medium, $large];
$product->addChildDocuments($skus);

// добавить блок документа продукта в индекс
$updateResponse = $client->addDocument(
$product,
true, // перезаписать, если документ существует
10000 // зафиксировать в течение 10 секунд
);

print_r($updateResponse->getResponse());

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 5
        )
)

Смотрите также

  • SolrInputDocument::addChildDocument() - Добавляет дочерний документ для блочной индексации
  • SolrInputDocument::hasChildDocuments() - Возвращает true, если у документа есть дочерние документы
  • SolrInputDocument::getChildDocuments() - Возвращает массив дочерних документов (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Возвращает количество дочерних документов


Добавляет поле в документ

  • « SolrInputDocument::addChildDocuments
  • SolrInputDocument::clear »
  • PHP Manual
  • SolrInputDocument
  • Добавляет поле в документ

SolrInputDocument::addField

(PECL solr >= 0.9.2)

SolrInputDocument::addField — Добавляет поле в документ

Описание

public SolrInputDocument::addField(string $fieldName, string $fieldValue, float $fieldBoostValue = 0.0): bool

Для многозначных полей, если указано допустимое значение повышения, указанное значение будет умножено на текущее значение повышения для этого поля.

Список параметров

fieldName

Название поля

fieldValue

Значение поля.

fieldBoostValue

Индекс увеличения времени поля. Хотя он не может быть отрицательным, вы всё равно можете передавать значения меньше 1.0, но они должны быть больше нуля.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Сбрасывает входной документ

  • « SolrInputDocument::addField
  • SolrInputDocument::__clone »
  • PHP Manual
  • SolrInputDocument
  • Сбрасывает входной документ

SolrInputDocument::clear

(PECL solr >= 0.9.2)

SolrInputDocument::clear — Сбрасывает входной документ

Описание

public SolrInputDocument::clear(): bool

Сбрасывает документ, удаляя все поля, и сбрасывает увеличение документа до нуля.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Создаёт копию SolrDocument

  • « SolrInputDocument::clear
  • SolrInputDocument::__construct »
  • PHP Manual
  • SolrInputDocument
  • Создаёт копию SolrDocument

SolrInputDocument::__clone

(PECL solr >= 0.9.2)

SolrInputDocument::__clone — Создаёт копию SolrDocument

Описание

public SolrInputDocument::__clone(): void

Не следует вызывать напрямую. Он используется для создания глубокой копии SolrInputDocument.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Создаёт новый экземпляр SolrInputDocument.


Конструктор

  • « SolrInputDocument::__clone
  • SolrInputDocument::deleteField »
  • PHP Manual
  • SolrInputDocument
  • Конструктор

SolrInputDocument::__construct

(PECL solr >= 0.9.2)

SolrInputDocument::__construct — Конструктор

Описание

public SolrInputDocument::__construct()

Конструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None.


Удаляет поле из документа

  • « SolrInputDocument::__construct
  • SolrInputDocument::__destruct »
  • PHP Manual
  • SolrInputDocument
  • Удаляет поле из документа

SolrInputDocument::deleteField

(PECL solr >= 0.9.2)

SolrInputDocument::deleteField — Удаляет поле из документа

Описание

public SolrInputDocument::deleteField(string $fieldName): bool

Удаляет поле из документа.

Список параметров

fieldName

Название поля.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Деструктор

  • « SolrInputDocument::deleteField
  • SolrInputDocument::fieldExists »
  • PHP Manual
  • SolrInputDocument
  • Деструктор

SolrInputDocument::__destruct

(PECL solr >= 0.9.2)

SolrInputDocument::__destruct — Деструктор

Описание

public SolrInputDocument::__destruct()

Деструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ничего.


Проверяет, существует ли поле

  • « SolrInputDocument::__destruct
  • SolrInputDocument::getBoost »
  • PHP Manual
  • SolrInputDocument
  • Проверяет, существует ли поле

SolrInputDocument::fieldExists

(PECL solr >= 0.9.2)

SolrInputDocument::fieldExists — Проверяет, существует ли поле

Описание

public SolrInputDocument::fieldExists(string $fieldName): bool

Проверяет, существует ли поле

Список параметров

fieldName

Название поля.

Возвращаемые значения

Возвращает true в случае, если поле найдено и false, если нет.


Получает текущее значение повышения для документа

  • « SolrInputDocument::fieldExists
  • SolrInputDocument::getChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Получает текущее значение повышения для документа

SolrInputDocument::getBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getBoost — Получает текущее значение повышения для документа

Описание

public SolrInputDocument::getBoost(): float

Получает текущее значение повышения для документа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает значение повышения в случае успешного выполнения и false в случае возникновения ошибки.


Возвращает массив дочерних документов (SolrInputDocument)

  • « SolrInputDocument::getBoost
  • SolrInputDocument::getChildDocumentsCount »
  • PHP Manual
  • SolrInputDocument
  • Возвращает массив дочерних документов (SolrInputDocument)

SolrInputDocument::getChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::getChildDocuments — Возвращает массив дочерних документов (SolrInputDocument)

Описание

public SolrInputDocument::getChildDocuments(): array

Возвращает массив дочерних документов (SolrInputDocument)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrInputDocument::addChildDocument() - Добавляет дочерний документ для блочной индексации
  • SolrInputDocument::addChildDocuments() - Добавляет массив дочерних документов
  • SolrInputDocument::hasChildDocuments() - Возвращает true, если у документа есть дочерние документы
  • SolrInputDocument::getChildDocumentsCount() - Возвращает количество дочерних документов


Возвращает количество дочерних документов

  • « SolrInputDocument::getChildDocuments
  • SolrInputDocument::getField »
  • PHP Manual
  • SolrInputDocument
  • Возвращает количество дочерних документов

SolrInputDocument::getChildDocumentsCount

(PECL solr >= 2.3.0)

SolrInputDocument::getChildDocumentsCount — Возвращает количество дочерних документов

Описание

public SolrInputDocument::getChildDocumentsCount(): int

Возвращает количество дочерних документов

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrInputDocument::addChildDocument() - Добавляет дочерний документ для блочной индексации
  • SolrInputDocument::addChildDocuments() - Добавляет массив дочерних документов
  • SolrInputDocument::hasChildDocuments() - Возвращает true, если у документа есть дочерние документы
  • SolrInputDocument::getChildDocuments() - Возвращает массив дочерних документов (SolrInputDocument)


Получает поле по имени

  • « SolrInputDocument::getChildDocumentsCount
  • SolrInputDocument::getFieldBoost »
  • PHP Manual
  • SolrInputDocument
  • Получает поле по имени

SolrInputDocument::getField

(PECL solr >= 0.9.2)

SolrInputDocument::getField — Получает поле по имени

Описание

public SolrInputDocument::getField(string $fieldName): SolrDocumentField

Получает поле в документе.

Список параметров

fieldName

Название поля.

Возвращаемые значения

Возвращает объект SolrDocumentField в случае успешного выполнения и false в случае возникновения ошибки.


Получает значение повышения для определённого поля

  • « SolrInputDocument::getField
  • SolrInputDocument::getFieldCount »
  • PHP Manual
  • SolrInputDocument
  • Получает значение повышения для определённого поля

SolrInputDocument::getFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldBoost — Получает значение повышения для определённого поля

Описание

public SolrInputDocument::getFieldBoost(string $fieldName): float

Получает значение повышения для определённого поля.

Список параметров

fieldName

Название поля.

Возвращаемые значения

Возвращает значение повышения для поля или false в случае возникновения ошибки.


Возвращает количество полей в документе

  • « SolrInputDocument::getFieldBoost
  • SolrInputDocument::getFieldNames »
  • PHP Manual
  • SolrInputDocument
  • Возвращает количество полей в документе

SolrInputDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldCount — Возвращает количество полей в документе

Описание

public SolrInputDocument::getFieldCount(): int|false

Возвращает количество полей в документе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число в случае успешного выполнения или false в случае возникновения ошибки.


Возвращает массив, содержащий все поля в документе

  • « SolrInputDocument::getFieldCount
  • SolrInputDocument::hasChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Возвращает массив, содержащий все поля в документе

SolrInputDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldNames — Возвращает массив, содержащий все поля в документе

Описание

public SolrInputDocument::getFieldNames(): array

Возвращает массив, содержащий все поля в документе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив в случае успешного выполнения и false в случае возникновения ошибки.


Возвращает true, если у документа есть дочерние документы

  • « SolrInputDocument::getFieldNames
  • SolrInputDocument::merge »
  • PHP Manual
  • SolrInputDocument
  • Возвращает true, если у документа есть дочерние документы

SolrInputDocument::hasChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::hasChildDocuments — Возвращает true, если у документа есть дочерние документы

Описание

public SolrInputDocument::hasChildDocuments(): bool

Проверяет, есть ли у документа дочерние документы

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrInputDocument::addChildDocument() - Добавляет дочерний документ для блочной индексации
  • SolrInputDocument::addChildDocuments() - Добавляет массив дочерних документов
  • SolrInputDocument::getChildDocuments() - Возвращает массив дочерних документов (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Возвращает количество дочерних документов


Объединяет один входной документ в другой

  • « SolrInputDocument::hasChildDocuments
  • SolrInputDocument::reset »
  • PHP Manual
  • SolrInputDocument
  • Объединяет один входной документ в другой

SolrInputDocument::merge

(PECL solr >= 0.9.2)

SolrInputDocument::merge — Объединяет один входной документ в другой

Описание

public SolrInputDocument::merge(SolrInputDocument $sourceDoc, bool $overwrite = true): bool

Объединяет один входной документ в другой.

Список параметров

sourceDoc

Исходный документ.

overwrite

Если указано true, соответствующие поля в целевом документе будут перезаписаны.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. В будущем это будет изменено, чтобы возвращать количество полей в новом документе.


Псевдоним SolrInputDocument::clear

  • « SolrInputDocument::merge
  • SolrInputDocument::setBoost »
  • PHP Manual
  • SolrInputDocument
  • Псевдоним SolrInputDocument::clear

SolrInputDocument::reset

(PECL solr >= 0.9.2)

SolrInputDocument::reset — Псевдоним SolrInputDocument::clear()

Описание

public SolrInputDocument::reset(): bool

Псевдоним SolrInputDocument::clear

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Устанавливает значение повышения для документа

  • « SolrInputDocument::reset
  • SolrInputDocument::setFieldBoost »
  • PHP Manual
  • SolrInputDocument
  • Устанавливает значение повышения для документа

SolrInputDocument::setBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setBoost — Устанавливает значение повышения для документа

Описание

public SolrInputDocument::setBoost(float $documentBoostValue): bool

Устанавливает значение повышения для документа.

Список параметров

documentBoostValue

Значение индекса времени для документа.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Устанавливает значение повышения индекса времени для поля

  • « SolrInputDocument::setBoost
  • SolrInputDocument::sort »
  • PHP Manual
  • SolrInputDocument
  • Устанавливает значение повышения индекса времени для поля

SolrInputDocument::setFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setFieldBoost — Устанавливает значение повышения индекса времени для поля

Описание

public SolrInputDocument::setFieldBoost(string $fieldName, float $fieldBoostValue): bool

Устанавливает значение индекса времени для поля. Заменяет текущее значение повышения для этого поля.

Список параметров

fieldName

Название поля.

fieldBoostValue

Индекс времени повышения значения.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Сортирует поля в документе

  • « SolrInputDocument::setFieldBoost
  • SolrInputDocument::toArray »
  • PHP Manual
  • SolrInputDocument
  • Сортирует поля в документе

SolrInputDocument::sort

(PECL solr >= 0.9.2)

SolrInputDocument::sort — Сортирует поля в документе

Описание

public SolrInputDocument::sort(int $sortOrderBy, int $sortDirection = SolrInputDocument::SORT_ASC): bool

Поля упорядочены в соответствии с указанными критериями и направлением сортировки.

   Поля могут быть отсортированы по значениям повышения, именам полей и количеству значений.

   Параметр $order_by должен быть одним из :

   * SolrInputDocument::SORT_FIELD_NAME
   * SolrInputDocument::SORT_FIELD_BOOST_VALUE
   * SolrInputDocument::SORT_FIELD_VALUE_COUNT

   Направление сортировки может быть одним из :

   * SolrInputDocument::SORT_DEFAULT
   * SolrInputDocument::SORT_ASC
   * SolrInputDocument::SORT_DESC

Список параметров

sortOrderBy

Критерий сортировки

sortDirection

Направление сортировки

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Возвращает представление массива входного документа

  • « SolrInputDocument::sort
  • SolrDocument »
  • PHP Manual
  • SolrInputDocument
  • Возвращает представление массива входного документа

SolrInputDocument::toArray

(PECL solr >= 0.9.2)

SolrInputDocument::toArray — Возвращает представление массива входного документа

Описание

public SolrInputDocument::toArray(): array

Возвращает представление массива входного документа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий поля. Возвращает false в случае возникновения ошибки.


Класс SolrDocument

(PECL solr >= 0.9.2)

Введение

Представляет документ Solr, полученный из ответа на запрос.

Обзор классов

final class SolrDocument implements ArrayAccess, Iterator, Serializable {
/* Константы */
const int SORT_DEFAULT = 1;
const int SORT_ASC = 1;
const int SORT_DESC = 2;
const int SORT_FIELD_NAME = 1;
const int SORT_FIELD_VALUE_COUNT = 2;
const int SORT_FIELD_BOOST_VALUE = 4;
/* Методы */
public __construct()
public addField(string $fieldName, string $fieldValue): bool
public clear(): bool
public __clone(): void
public current(): SolrDocumentField
public deleteField(string $fieldName): bool
public fieldExists(string $fieldName): bool
public __get(string $fieldName): SolrDocumentField
public getChildDocuments(): array
public getChildDocumentsCount(): int
public getField(string $fieldName): SolrDocumentField
public getFieldCount(): int
public getFieldNames(): array
public getInputDocument(): SolrInputDocument
public hasChildDocuments(): bool
public __isset(string $fieldName): bool
public key(): string
public merge(SolrDocument $sourceDoc, bool $overwrite = true): bool
public next(): 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(): bool
public rewind(): void
public serialize(): string
public __set(string $fieldName, string $fieldValue): bool
public sort(int $sortOrderBy, int $sortDirection = SolrDocument::SORT_ASC): bool
public toArray(): array
public unserialize(string $serialized): void
public __unset(string $fieldName): bool
public valid(): bool
public __destruct()
}

Предопределённые константы

SolrDocument::SORT_DEFAULT

Режим по умолчанию для сортировки полей в документе.

SolrDocument::SORT_ASC

Сортирует поля в порядке возрастания

SolrDocument::SORT_DESC

Сортирует поля в порядке убывания

SolrDocument::SORT_FIELD_NAME

Сортирует поля по имени поля.

SolrDocument::SORT_FIELD_VALUE_COUNT

Сортирует поля по количеству значений в каждом поле.

SolrDocument::SORT_FIELD_BOOST_VALUE

Сортирует поля по значению усиления.

Содержание

  • SolrDocument::addField — Добавляет поле в документ
  • SolrDocument::clear — Удаляет все поля в документе
  • SolrDocument::__clone — Создаёт копию объекта SolrDocument
  • SolrDocument::__construct — Конструктор
  • SolrDocument::current — Получает текущее поле
  • SolrDocument::deleteField — Удаляет поле из документа
  • SolrDocument::__destruct — Деструктор
  • SolrDocument::fieldExists — Проверяет, существует ли поле в документе
  • SolrDocument::__get — Доступ к полю как свойству
  • SolrDocument::getChildDocuments — Возвращает массив дочерних документов (SolrDocument)
  • SolrDocument::getChildDocumentsCount — Возвращает количество дочерних документов
  • SolrDocument::getField — Получает поле по имени
  • SolrDocument::getFieldCount — Возвращает количество полей в этом документе
  • SolrDocument::getFieldNames — Возвращает массив имён полей в документе
  • SolrDocument::getInputDocument — Возвращает SolrInputDocument эквивалент объекта
  • SolrDocument::hasChildDocuments — Проверяет, есть ли у документа дочерние документы
  • SolrDocument::__isset — Проверяет, существует ли поле
  • SolrDocument::key — Получает текущий ключ
  • SolrDocument::merge — Сливает источник в текущий SolrDocument
  • SolrDocument::next — Перемещает внутренний указатель на следующее поле
  • SolrDocument::offsetExists — Проверяет, существует ли конкретное поле
  • SolrDocument::offsetGet — Получает поле
  • SolrDocument::offsetSet — Добавляет поле в документ
  • SolrDocument::offsetUnset — Удаляет поле
  • SolrDocument::reset — Псевдоним SolrDocument::clear
  • SolrDocument::rewind — Сбрасывает внутренний указатель на начало
  • SolrDocument::serialize — Используется для пользовательской сериализации
  • SolrDocument::__set — Добавляет ещё одно поле в документ
  • SolrDocument::sort — Сортирует поля в документе
  • SolrDocument::toArray — Возвращает представление массива документа
  • SolrDocument::unserialize — Пользовательская сериализация объектов SolrDocument
  • SolrDocument::__unset — Удаляет поле из документа
  • SolrDocument::valid — Проверяет, является ли текущая позиция внутренне корректной


Добавляет поле в документ

  • « SolrDocument
  • SolrDocument::clear »
  • PHP Manual
  • SolrDocument
  • Добавляет поле в документ

SolrDocument::addField

(PECL solr >= 0.9.2)

SolrDocument::addField — Добавляет поле в документ

Описание

public SolrDocument::addField(string $fieldName, string $fieldValue): bool

Метод добавляет поле к экземпляру SolrDocument.

Список параметров

fieldName

Название поля

fieldValue

Значение поля.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Удаляет все поля в документе

  • « SolrDocument::addField
  • SolrDocument::__clone »
  • PHP Manual
  • SolrDocument
  • Удаляет все поля в документе

SolrDocument::clear

(PECL solr >= 0.9.2)

SolrDocument::clear — Удаляет все поля в документе

Описание

public SolrDocument::clear(): bool

Сбрасывает текущий объект. Сбрасывает все поля и сбрасывает увеличение документа до нуля.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Создаёт копию объекта SolrDocument

  • « SolrDocument::clear
  • SolrDocument::__construct »
  • PHP Manual
  • SolrDocument
  • Создаёт копию объекта SolrDocument

SolrDocument::__clone

(PECL solr >= 0.9.2)

SolrDocument::__clone — Создаёт копию объекта SolrDocument

Описание

public SolrDocument::__clone(): void

Создаёт копию объекта SolrDocument. Не вызываться напрямую.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ничего.


Конструктор

  • « SolrDocument::__clone
  • SolrDocument::current »
  • PHP Manual
  • SolrDocument
  • Конструктор

SolrDocument::__construct

(PECL solr >= 0.9.2)

SolrDocument::__construct — Конструктор

Описание

public SolrDocument::__construct()

Конструктор класса SolrDocument

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает текущее поле

  • « SolrDocument::__construct
  • SolrDocument::deleteField »
  • PHP Manual
  • SolrDocument
  • Получает текущее поле

SolrDocument::current

(PECL solr >= 0.9.2)

SolrDocument::current — Получает текущее поле

Описание

public SolrDocument::current(): SolrDocumentField

Получает текущее поле

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает поле


Удаляет поле из документа

  • « SolrDocument::current
  • SolrDocument::__destruct »
  • PHP Manual
  • SolrDocument
  • Удаляет поле из документа

SolrDocument::deleteField

(PECL solr >= 0.9.2)

SolrDocument::deleteField — Удаляет поле из документа

Описание

public SolrDocument::deleteField(string $fieldName): bool

Удаляет поле из документа.

Список параметров

fieldName

Название поля

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Деструктор

  • « SolrDocument::deleteField
  • SolrDocument::fieldExists »
  • PHP Manual
  • SolrDocument
  • Деструктор

SolrDocument::__destruct

(PECL solr >= 0.9.2)

SolrDocument::__destruct — Деструктор

Описание

public SolrDocument::__destruct()

Деструктор класса SolrDocument.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверяет, существует ли поле в документе

  • « SolrDocument::__destruct
  • SolrDocument::__get »
  • PHP Manual
  • SolrDocument
  • Проверяет, существует ли поле в документе

SolrDocument::fieldExists

(PECL solr >= 0.9.2)

SolrDocument::fieldExists — Проверяет, существует ли поле в документе

Описание

public SolrDocument::fieldExists(string $fieldName): bool

Проверяет, является ли запрошенное поле корректным именем поля в документе.

Список параметров

fieldName

Название поля

Возвращаемые значения

Возвращает true в случае если поле присутствует и false если это не так.


Доступ к полю как свойству

  • « SolrDocument::fieldExists
  • SolrDocument::getChildDocuments »
  • PHP Manual
  • SolrDocument
  • Доступ к полю как свойству

SolrDocument::__get

(PECL solr >= 0.9.2)

SolrDocument::__get — Доступ к полю как свойству

Описание

public SolrDocument::__get(string $fieldName): SolrDocumentField

Магический метод для доступа к полю как свойству.

Список параметров

fieldName

Название поля

Возвращаемые значения

Возвращает экземпляр SolrDocumentField.


Возвращает массив дочерних документов (SolrDocument)

  • « SolrDocument::__get
  • SolrDocument::getChildDocumentsCount »
  • PHP Manual
  • SolrDocument
  • Возвращает массив дочерних документов (SolrDocument)

SolrDocument::getChildDocuments

(PECL solr >= 2.3.0)

SolrDocument::getChildDocuments — Возвращает массив дочерних документов (SolrDocument)

Описание

public SolrDocument::getChildDocuments(): array

Возвращает массив дочерних документов (SolrDocument)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrDocument::hasChildDocuments() - Проверяет, есть ли у документа дочерние документы
  • SolrDocument::getChildDocumentsCount() - Возвращает количество дочерних документов


Возвращает количество дочерних документов

  • « SolrDocument::getChildDocuments
  • SolrDocument::getField »
  • PHP Manual
  • SolrDocument
  • Возвращает количество дочерних документов

SolrDocument::getChildDocumentsCount

(PECL solr >= 2.3.0)

SolrDocument::getChildDocumentsCount — Возвращает количество дочерних документов

Описание

public SolrDocument::getChildDocumentsCount(): int

Возвращает количество дочерних документов

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrDocument::hasChildDocuments() - Проверяет, есть ли у документа дочерние документы
  • SolrDocument::getChildDocuments() - Возвращает массив дочерних документов (SolrDocument)


Получает поле по имени

  • « SolrDocument::getChildDocumentsCount
  • SolrDocument::getFieldCount »
  • PHP Manual
  • SolrDocument
  • Получает поле по имени

SolrDocument::getField

(PECL solr >= 0.9.2)

SolrDocument::getField — Получает поле по имени

Описание

public SolrDocument::getField(string $fieldName): SolrDocumentField

Получает поле по имени.

Список параметров

fieldName

Название поля.

Возвращаемые значения

Возвращает SolrDocumentField в случае успешного выполнения и false в случае возникновения ошибки.


Возвращает количество полей в этом документе

  • « SolrDocument::getField
  • SolrDocument::getFieldNames »
  • PHP Manual
  • SolrDocument
  • Возвращает количество полей в этом документе

SolrDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrDocument::getFieldCount — Возвращает количество полей в этом документе

Описание

public SolrDocument::getFieldCount(): int

Возвращает количество полей в этом документе. Многозначные поля учитываются только один раз.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число в случае успешного выполнения и false в случае возникновения ошибки.


Возвращает массив имён полей в документе

  • « SolrDocument::getFieldCount
  • SolrDocument::getInputDocument »
  • PHP Manual
  • SolrDocument
  • Возвращает массив имён полей в документе

SolrDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrDocument::getFieldNames — Возвращает массив имён полей в документе

Описание

public SolrDocument::getFieldNames(): array

Возвращает массив имён полей в документе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий имена полей в этом документе.


Возвращает SolrInputDocument эквивалент объекта

  • « SolrDocument::getFieldNames
  • SolrDocument::hasChildDocuments »
  • PHP Manual
  • SolrDocument
  • Возвращает SolrInputDocument эквивалент объекта

SolrDocument::getInputDocument

(PECL solr >= 0.9.2)

SolrDocument::getInputDocument — Возвращает SolrInputDocument эквивалент объекта

Описание

public SolrDocument::getInputDocument(): SolrInputDocument

Возвращает SolrInputDocument эквивалент объекта. Это полезно, если вы хотите повторно отправить/обновить документ, полученный из запроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает SolrInputDocument в случае успешного выполнения и null в случае возникновения ошибки.


Проверяет, есть ли у документа дочерние документы

  • « SolrDocument::getInputDocument
  • SolrDocument::__isset »
  • PHP Manual
  • SolrDocument
  • Проверяет, есть ли у документа дочерние документы

SolrDocument::hasChildDocuments

(PECL solr >= 2.3.0)

SolrDocument::hasChildDocuments — Проверяет, есть ли у документа дочерние документы

Описание

public SolrDocument::hasChildDocuments(): bool

Проверяет, есть ли у документа дочерние документы

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrDocument::getChildDocuments() - Возвращает массив дочерних документов (SolrDocument)
  • SolrDocument::getChildDocumentsCount() - Возвращает количество дочерних документов


Проверяет, существует ли поле

  • « SolrDocument::hasChildDocuments
  • SolrDocument::key »
  • PHP Manual
  • SolrDocument
  • Проверяет, существует ли поле

SolrDocument::__isset

(PECL solr >= 0.9.2)

SolrDocument::__isset — Проверяет, существует ли поле

Описание

public SolrDocument::__isset(string $fieldName): bool

Проверяет, существует ли поле

Список параметров

fieldName

Название поля.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Получает текущий ключ

  • « SolrDocument::__isset
  • SolrDocument::merge »
  • PHP Manual
  • SolrDocument
  • Получает текущий ключ

SolrDocument::key

(PECL solr >= 0.9.2)

SolrDocument::key — Получает текущий ключ

Описание

public SolrDocument::key(): string

Получает текущий ключ.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий ключ.


Сливает источник в текущий SolrDocument

  • « SolrDocument::key
  • SolrDocument::next »
  • PHP Manual
  • SolrDocument
  • Сливает источник в текущий SolrDocument

SolrDocument::merge

(PECL solr >= 0.9.2)

SolrDocument::merge — Сливает источник в текущий SolrDocument

Описание

public SolrDocument::merge(SolrDocument $sourceDoc, bool $overwrite = true): bool

Сливает источник в текущий SolrDocument.

Список параметров

sourceDoc

Исходный документ.

overwrite

Если указано true, тогда поля с тем же именем в целевом документе будут перезаписаны.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Перемещает внутренний указатель на следующее поле

  • « SolrDocument::merge
  • SolrDocument::offsetExists »
  • PHP Manual
  • SolrDocument
  • Перемещает внутренний указатель на следующее поле

SolrDocument::next

(PECL solr >= 0.9.2)

SolrDocument::next — Перемещает внутренний указатель на следующее поле

Описание

public SolrDocument::next(): void

Перемещает внутренний указатель на следующее поле.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод не имеет возвращаемого значения.


Проверяет, существует ли конкретное поле

  • « SolrDocument::next
  • SolrDocument::offsetGet »
  • PHP Manual
  • SolrDocument
  • Проверяет, существует ли конкретное поле

SolrDocument::offsetExists

(PECL solr >= 0.9.2)

SolrDocument::offsetExists — Проверяет, существует ли конкретное поле

Описание

public SolrDocument::offsetExists(string $fieldName): bool

Проверяет, существует ли определённое поле. Используется, когда объект обрабатывается как массив.

Список параметров

fieldName

Название поля.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Получает поле

  • « SolrDocument::offsetExists
  • SolrDocument::offsetSet »
  • PHP Manual
  • SolrDocument
  • Получает поле

SolrDocument::offsetGet

(PECL solr >= 0.9.2)

SolrDocument::offsetGet — Получает поле

Описание

public SolrDocument::offsetGet(string $fieldName): SolrDocumentField

Используется для извлечения поля, когда объект рассматривается как массив.

Список параметров

fieldName

Название поля.

Возвращаемые значения

Возвращает объект SolrDocumentFiel.


Добавляет поле в документ

  • « SolrDocument::offsetGet
  • SolrDocument::offsetUnset »
  • PHP Manual
  • SolrDocument
  • Добавляет поле в документ

SolrDocument::offsetSet

(PECL solr >= 0.9.2)

SolrDocument::offsetSet — Добавляет поле в документ

Описание

public SolrDocument::offsetSet(string $fieldName, string $fieldValue): void

Используется, когда объект обрабатывается как массив для добавления поля в документ.

Список параметров

fieldName

Название поля.

fieldValue

Значение для этого поля.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Удаляет поле

  • « SolrDocument::offsetSet
  • SolrDocument::reset »
  • PHP Manual
  • SolrDocument
  • Удаляет поле

SolrDocument::offsetUnset

(PECL solr >= 0.9.2)

SolrDocument::offsetUnset — Удаляет поле

Описание

public SolrDocument::offsetUnset(string $fieldName): void

Удаляет поле из документа.

Список параметров

fieldName

Название поля.

Возвращаемые значения

Нет возвращаемого значения.


Псевдоним SolrDocument::clear

  • « SolrDocument::offsetUnset
  • SolrDocument::rewind »
  • PHP Manual
  • SolrDocument
  • Псевдоним SolrDocument::clear

SolrDocument::reset

(PECL solr >= 0.9.2)

SolrDocument::reset — Псевдоним SolrDocument::clear()

Описание

public SolrDocument::reset(): bool

Псевдоним SolrDocument::clear()

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Сбрасывает внутренний указатель на начало

  • « SolrDocument::reset
  • SolrDocument::serialize »
  • PHP Manual
  • SolrDocument
  • Сбрасывает внутренний указатель на начало

SolrDocument::rewind

(PECL solr >= 0.9.2)

SolrDocument::rewind — Сбрасывает внутренний указатель на начало

Описание

public SolrDocument::rewind(): void

Сбрасывает внутренний указатель на начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод не имеет возвращаемого значения.


Используется для пользовательской сериализации

  • « SolrDocument::rewind
  • SolrDocument::__set »
  • PHP Manual
  • SolrDocument
  • Используется для пользовательской сериализации

SolrDocument::serialize

(PECL solr >= 0.9.2)

SolrDocument::serialize — Используется для пользовательской сериализации

Описание

public SolrDocument::serialize(): string

Используется для пользовательской сериализации.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, представляющую сериализованный документ Solr.


Добавляет ещё одно поле в документ

  • « SolrDocument::serialize
  • SolrDocument::sort »
  • PHP Manual
  • SolrDocument
  • Добавляет ещё одно поле в документ

SolrDocument::__set

(PECL solr >= 0.9.2)

SolrDocument::__set — Добавляет ещё одно поле в документ

Описание

public SolrDocument::__set(string $fieldName, string $fieldValue): bool

Добавляет ещё одно поле в документ. Используется для установки полей в качестве новых свойств.

Список параметров

fieldName

Название поля.

fieldValue

Значение поля.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Сортирует поля в документе

  • « SolrDocument::__set
  • SolrDocument::toArray »
  • PHP Manual
  • SolrDocument
  • Сортирует поля в документе

SolrDocument::sort

(PECL solr >= 0.9.2)

SolrDocument::sort — Сортирует поля в документе

Описание

public SolrDocument::sort(int $sortOrderBy, int $sortDirection = SolrDocument::SORT_ASC): bool

Поля упорядочены в соответствии с указанными критериями и направлением сортировки.

   Поля могут быть отсортированы по значениям повышения, именам полей и количеству значений.

   Параметр sortOrderBy должен быть одним из :

   * SolrDocument::SORT_FIELD_NAME
   * SolrDocument::SORT_FIELD_BOOST_VALUE
   * SolrDocument::SORT_FIELD_VALUE_COUNT

   Направление sortDirection может быть одним из :

   * SolrDocument::SORT_DEFAULT
   * SolrDocument::SORT_ASC
   * SolrDocument::SORT_DESC

   Способ по умолчанию - сортировка в порядке возрастания.

Список параметров

sortOrderBy

Критерий сортировки.

sortDirection

Направление сортировки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Возвращает представление массива документа

  • « SolrDocument::sort
  • SolrDocument::unserialize »
  • PHP Manual
  • SolrDocument
  • Возвращает представление массива документа

SolrDocument::toArray

(PECL solr >= 0.9.2)

SolrDocument::toArray — Возвращает представление массива документа

Описание

public SolrDocument::toArray(): array

Возвращает представление массива документа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает представление массива документа.

Примеры

Пример #1 Пример использования SolrDocument::toArray()

<?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
                        )

                )

        )

)


Пользовательская сериализация объектов SolrDocument

  • « SolrDocument::toArray
  • SolrDocument::__unset »
  • PHP Manual
  • SolrDocument
  • Пользовательская сериализация объектов SolrDocument

SolrDocument::unserialize

(PECL solr >= 0.9.2)

SolrDocument::unserialize — Пользовательская сериализация объектов SolrDocument

Описание

public SolrDocument::unserialize(string $serialized): void

Пользовательская сериализация объектов SolrDocument

Список параметров

serialized

XML-представление документа.

Возвращаемые значения

Ничего.


Удаляет поле из документа

  • « SolrDocument::unserialize
  • SolrDocument::valid »
  • PHP Manual
  • SolrDocument
  • Удаляет поле из документа

SolrDocument::__unset

(PECL solr >= 0.9.2)

SolrDocument::__unset — Удаляет поле из документа

Описание

public SolrDocument::__unset(string $fieldName): bool

Удаляет поле из документа, когда к полю обращаются как к свойству объекта.

Список параметров

fieldName

Название поля.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Проверяет, является ли текущая позиция внутренне корректной

  • « SolrDocument::__unset
  • SolrDocumentField »
  • PHP Manual
  • SolrDocument
  • Проверяет, является ли текущая позиция внутренне корректной

SolrDocument::valid

(PECL solr >= 0.9.2)

SolrDocument::valid — Проверяет, является ли текущая позиция внутренне корректной

Описание

public SolrDocument::valid(): bool

Проверяет, является ли текущая позиция внутренне корректной. Используется во время операций foreach.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения и false, если текущая позиция больше не действительна.


Класс SolrDocumentField

(PECL solr >= 0.9.2)

Введение

Представляет поле в документе Solr. Все его свойства доступны только для чтения.

Обзор классов

final class SolrDocumentField {
/* Свойства */
public readonly string $name;
public readonly float $boost;
public readonly array $values;
/* Методы */
public __construct()
public __destruct()
}

Свойства

name

Название поля.

boost

Значение повышения для поля

values

Массив значений для этого поля

Содержание

  • SolrDocumentField::__construct — Конструктор
  • SolrDocumentField::__destruct — Деструктор


Конструктор

  • « SolrDocumentField
  • SolrDocumentField::__destruct »
  • PHP Manual
  • SolrDocumentField
  • Конструктор

SolrDocumentField::__construct

(PECL solr >= 0.9.2)

SolrDocumentField::__construct — Конструктор

Описание

public SolrDocumentField::__construct()

Конструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет.


Деструктор

  • « SolrDocumentField::__construct
  • SolrObject »
  • PHP Manual
  • SolrDocumentField
  • Деструктор

SolrDocumentField::__destruct

(PECL solr >= 0.9.2)

SolrDocumentField::__destruct — Деструктор

Описание

public SolrDocumentField::__destruct()

Деструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет.


Класс SolrObject

(PECL solr >= 0.9.2)

Введение

Объект, свойства которого можно также получить с помощью синтаксиса массива. Все его свойства доступны только для чтения.

Обзор классов

final class SolrObject implements ArrayAccess {
/* Методы */
public __construct()
public getPropertyNames(): 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
public __destruct()
}

Содержание

  • SolrObject::__construct — Создаёт объект Solr
  • SolrObject::__destruct — Деструктор
  • SolrObject::getPropertyNames — Возвращает массив всех имён свойств
  • SolrObject::offsetExists — Проверяет, существует ли свойство
  • SolrObject::offsetGet — Используется для получения свойства
  • SolrObject::offsetSet — Устанавливает значение свойства
  • SolrObject::offsetUnset — Сбрасывает значение свойства


Создаёт объект Solr

  • « SolrObject
  • SolrObject::__destruct »
  • PHP Manual
  • SolrObject
  • Создаёт объект Solr

SolrObject::__construct

(PECL solr >= 0.9.2)

SolrObject::__construct — Создаёт объект Solr

Описание

public SolrObject::__construct()

Создаёт объект Solr.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ничего не возвращает

Примеры

Пример #1 Пример использования SolrObject::__construct()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...


Деструктор

  • « SolrObject::__construct
  • SolrObject::getPropertyNames »
  • PHP Manual
  • SolrObject
  • Деструктор

SolrObject::__destruct

(PECL solr >= 0.9.2)

SolrObject::__destruct — Деструктор

Описание

public SolrObject::__destruct()

Пример использования

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ничего не возвращает.


Возвращает массив всех имён свойств

  • « SolrObject::__destruct
  • SolrObject::offsetExists »
  • PHP Manual
  • SolrObject
  • Возвращает массив всех имён свойств

SolrObject::getPropertyNames

(PECL solr >= 0.9.2)

SolrObject::getPropertyNames — Возвращает массив всех имён свойств

Описание

public SolrObject::getPropertyNames(): array

Возвращает массив всех имён свойств.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив.


Проверяет, существует ли свойство

  • « SolrObject::getPropertyNames
  • SolrObject::offsetGet »
  • PHP Manual
  • SolrObject
  • Проверяет, существует ли свойство

SolrObject::offsetExists

(PECL solr >= 0.9.2)

SolrObject::offsetExists — Проверяет, существует ли свойство

Описание

public SolrObject::offsetExists(string $property_name): bool

Проверяет, существует ли свойство. Используется, когда объект обрабатывается как массив.

Список параметров

property_name

Название свойства.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Используется для получения свойства

  • « SolrObject::offsetExists
  • SolrObject::offsetSet »
  • PHP Manual
  • SolrObject
  • Используется для получения свойства

SolrObject::offsetGet

(PECL solr >= 0.9.2)

SolrObject::offsetGet — Используется для получения свойства

Описание

public SolrObject::offsetGet(string $property_name): mixed

Используется для получения свойства. Используется, когда объект обрабатывается как массив.

Список параметров

property_name

Имя свойства.

Возвращаемые значения

Возвращает значение свойства.


Устанавливает значение свойства

  • « SolrObject::offsetGet
  • SolrObject::offsetUnset »
  • PHP Manual
  • SolrObject
  • Устанавливает значение свойства

SolrObject::offsetSet

(PECL solr >= 0.9.2)

SolrObject::offsetSet — Устанавливает значение свойства

Описание

public SolrObject::offsetSet(string $property_name, string $property_value): void

Устанавливает значение свойства. Используется, когда объект обрабатывается как массив. Этот объект доступен только для чтения. Этого никогда не следует делать.

Список параметров

property_name

Имя свойства.

property_value

Новое значение.

Возвращаемые значения

Ничего не возвращает.


Сбрасывает значение свойства

  • « SolrObject::offsetSet
  • SolrClient »
  • PHP Manual
  • SolrObject
  • Сбрасывает значение свойства

SolrObject::offsetUnset

(PECL solr >= 0.9.2)

SolrObject::offsetUnset — Сбрасывает значение свойства

Описание

public SolrObject::offsetUnset(string $property_name): void

Сбрасывает значение свойства. Используется, когда объект обрабатывается как массив. Этот объект доступен только для чтения. Этого никогда не следует делать.

Список параметров

property_name

Имя свойства.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SolrObject::offsetUnset()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...


Класс SolrClient

(PECL solr >= 0.9.2)

Введение

Используется для отправки запросов на сервер Solr. В настоящее время клонирование и сериализация экземпляров SolrClient не поддерживается.

Обзор классов

final class SolrClient {
/* Константы */
const int SEARCH_SERVLET_TYPE = 1;
const int UPDATE_SERVLET_TYPE = 2;
const int THREADS_SERVLET_TYPE = 4;
const int PING_SERVLET_TYPE = 8;
const int TERMS_SERVLET_TYPE = 16;
const int 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 __construct(array $clientOptions)
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 deleteById(string $id): SolrUpdateResponse
public deleteByIds(array $ids): SolrUpdateResponse
public deleteByQueries(array $queries): SolrUpdateResponse
public deleteByQuery(string $query): SolrUpdateResponse
public getById(string $id): SolrQueryResponse
public getByIds(array $ids): SolrQueryResponse
public getDebug(): string
public getOptions(): array
public optimize(int $maxSegments = 1, bool $softCommit = true, bool $waitSearcher = true): SolrUpdateResponse
public ping(): SolrPingResponse
public query(SolrParams $query): SolrQueryResponse
public request(string $raw_request): SolrUpdateResponse
public rollback(): SolrUpdateResponse
public setResponseWriter(string $responseWriter): void
public setServlet(int $type, string $value): bool
public system(): void
public threads(): void
public __destruct()
}

Предопределённые константы

SolrClient::SEARCH_SERVLET_TYPE

Используется при обновлении сервлета поиска.

SolrClient::UPDATE_SERVLET_TYPE

Используется при обновлении сервлета обновления.

SolrClient::THREADS_SERVLET_TYPE

Используется при обновлении сервлета потоков.

SolrClient::PING_SERVLET_TYPE

Используется при обновлении сервлета ping.

SolrClient::TERMS_SERVLET_TYPE

Используется при обновлении терминов сервлет.

SolrClient::SYSTEM_SERVLET_TYPE

Используется при получении системной информации из системного сервлета.

SolrClient::DEFAULT_SEARCH_SERVLET

Это начальное значение для поискового сервлета.

SolrClient::DEFAULT_UPDATE_SERVLET

Это начальное значение для сервлета обновления.

SolrClient::DEFAULT_THREADS_SERVLET

Это начальное значение для сервлета потоков.

SolrClient::DEFAULT_PING_SERVLET

Это начальное значение для сервлета ping.

SolrClient::DEFAULT_TERMS_SERVLET

Это начальное значение для терминов сервлет, используемых для TermsComponent

SolrClient::DEFAULT_SYSTEM_SERVLET

Это начальное значение для системного сервлета, используемого для получения информации о сервере Solr.

Содержание

  • SolrClient::addDocument — Добавляет документ в индекс
  • SolrClient::addDocuments — Добавляет коллекцию экземпляров SolrInputDocument в индекс
  • SolrClient::commit — Завершает все добавления/удаления, сделанные в индексе
  • SolrClient::__construct — Конструктор объекта SolrClient
  • SolrClient::deleteById — Удаляет по идентификатору
  • SolrClient::deleteByIds — Удаляет по идентификаторам
  • SolrClient::deleteByQueries — Удаляет все документы, соответствующие любому из запросов
  • SolrClient::deleteByQuery — Удаляет все документы, соответствующие заданному запросу
  • SolrClient::__destruct — Деструктор SolrClient
  • SolrClient::getById — Получает документ по идентификатору. Использует Solr Realtime Get (RTG)
  • SolrClient::getByIds — Получает документы по их идентификаторам. Использует Solr Realtime Get (RTG)
  • SolrClient::getDebug — Возвращает данные отладки для последней попытки подключения
  • SolrClient::getOptions — Возвращает внутренние параметры клиента
  • SolrClient::optimize — Дефрагментирует индекс
  • SolrClient::ping — Проверяет, работает ли сервер Solr
  • SolrClient::query — Отправляет запрос на сервер
  • SolrClient::request — Отправляет необработанный запрос на обновление
  • SolrClient::rollback — Откатывает все добавления/удаления, сделанные в индекс с момента последней фиксации
  • SolrClient::setResponseWriter — Устанавливает писатель ответа, используемый для подготовки ответа от Solr
  • SolrClient::setServlet — Изменяет указанный тип сервлета на новое значение
  • SolrClient::system — Получает информацию о сервере Solr
  • SolrClient::threads — Проверяет статус тем


Добавляет документ в индекс

  • « SolrClient
  • SolrClient::addDocuments »
  • PHP Manual
  • SolrClient
  • Добавляет документ в индекс

SolrClient::addDocument

(PECL solr >= 0.9.2)

SolrClient::addDocument — Добавляет документ в индекс

Описание

public SolrClient::addDocument(SolrInputDocument $doc, bool $overwrite = true, int $commitWithin = 0): SolrUpdateResponse

Метод добавляет документ в индекс.

Список параметров

doc

Экземпляр SolrInputDocument.

overwrite

Следует ли перезаписывать существующий документ или нет. Если указано false, будут разрешены дубликаты (несколько документов с одинаковым ID).

Внимание

В PECL Solr < 2.0 $allowDups использовался вместо $overwrite, который выполняет те же функции с полностью противоположным флагом bool.

$allowDups = false тоже самое, что и $overwrite = true

commitWithin

Количество миллисекунд для автоматической фиксации документа. Доступно, начиная с Solr 1.4. По умолчанию (0) означает отключено.

Если значение указано, остаётся контроль над тем, когда делать фиксацию для самого Solr, оптимизируя количество коммитов до минимума, при этом соблюдая требования к задержке обновления, и Solr автоматически выполнит фиксацию, когда наступит самое старое добавление в буфер.

Возвращаемые значения

Возвращает объект SolrUpdateResponse или выбрасывает исключение в случае возникновения ошибки.

Ошибки

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.

Примеры

Пример #1 Пример использования SolrClient::addDocument()

<?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);

// вам нужно будет зафиксировать изменения, которые будут записаны, если вы не использовали $commitWithin
$client->commit();

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Пример #2 Пример использования SolrClient::addDocument() #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');

// Нет необходимости вызывать commit(), потому что передаётся $commitWithin, поэтому Solr Server будет автоматически фиксировать в течение 10 секунд
$updateResponse = $client->addDocument($doc, false, 10000);

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Смотрите также

  • SolrClient::addDocuments() - Добавляет коллекцию экземпляров SolrInputDocument в индекс
  • SolrClient::commit() - Завершает все добавления/удаления, сделанные в индексе


Добавляет коллекцию экземпляров SolrInputDocument в индекс

  • « SolrClient::addDocument
  • SolrClient::commit »
  • PHP Manual
  • SolrClient
  • Добавляет коллекцию экземпляров SolrInputDocument в индекс

SolrClient::addDocuments

(PECL solr >= 0.9.2)

SolrClient::addDocuments — Добавляет коллекцию экземпляров SolrInputDocument в индекс

Описание

public SolrClient::addDocuments(array $docs, bool $overwrite = true, int $commitWithin = 0): void

Добавляет коллекцию документов в индекс.

Список параметров

docs

Массив, содержащий коллекцию экземпляров SolrInputDocument. Этот массив должен быть реальной переменной.

overwrite

Стоит ли перезаписывать существующие документы или нет. Если указано значение false, будут разрешены дубликаты (несколько документов с одинаковым ID).

Внимание

В PECL Solr < 2.0 $allowDups использовался вместо $overwrite, который выполняет те же функции с полностью противоположным флагом bool.

$allowDups = false тоже самое, что и $overwrite = true

commitWithin

Количество миллисекунд для автоматической фиксации документа. Доступно, начиная с Solr 1.4. По умолчанию (0) означает отключено.

Если значение указано, остаётся контроль над тем, когда делать фиксацию для самого Solr, оптимизируя количество коммитов до минимума, при этом соблюдая требования к задержке обновления, и Solr автоматически выполнит фиксацию, когда наступит самое старое добавление в буфер.

Возвращаемые значения

Возвращает объект SolrUpdateResponse или выбрасывает исключение в случае возникновения ошибки.

Ошибки

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.

Примеры

Пример #1 Пример использования SolrClient::addDocuments()

<?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);

// никакие изменения не будут записаны на диск, если не будет передан $commitWithin или не будет вызван SolrClient::commit

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

)

Смотрите также

  • SolrClient::addDocument() - Добавляет документ в индекс
  • SolrClient::commit() - Завершает все добавления/удаления, сделанные в индексе


Завершает все добавления/удаления, сделанные в индексе

  • « SolrClient::addDocuments
  • SolrClient::__construct »
  • PHP Manual
  • SolrClient
  • Завершает все добавления/удаления, сделанные в индексе

SolrClient::commit

(PECL solr >= 0.9.2)

SolrClient::commit — Завершает все добавления/удаления, сделанные в индексе

Описание

public SolrClient::commit(bool $softCommit = false, bool $waitSearcher = true, bool $expungeDeletes = false): SolrUpdateResponse

Метод завершает все добавления/удаления, сделанные в индексе.

Список параметров

softCommit

Обновляет 'view' индекса более производительно, но без гарантий 'on-disk'. (Solr4.0+)

Мягкая фиксация выполняется намного быстрее, поскольку она делает видимыми только изменения индекса, а не файлы индекса fsync и не записывает новый дескриптор индекса. В случае сбоя JVM или потери питания изменения, произошедшие после последней жёсткой фиксации, будут потеряны. Коллекции поиска, которые имеют требования к работе в режиме, близком к реальному времени (которые хотят, чтобы изменения индекса были быстро видны для поиска), захотят чаще выполнять мягкую фиксацию, а жёсткую фиксацию реже.

waitSearcher

Блокировать до тех пор, пока не откроется новая поисковая система и не будет зарегистрирована как основная поисковая система, сделав изменения видимыми.

expungeDeletes

Объединить сегменты с удалениями. (Solr1.4 +)

Возвращаемые значения

Возвращает объект SolrUpdateResponse или выбрасывает исключение в случае возникновения ошибки.

Ошибки

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.

Список изменений

Версия | Описание
PECL solr 1.1.0, 2.0.0 | Удалён $maxSegments
PECL solr 2.0.0b | Изменения API: SolrClient::commit ([ int $maxSegments = 0 [, bool $softCommit = false [, bool $waitSearcher = true[, bool $expungeDeletes = false ]]] )
PECL solr 0.9.2 | Сигнатура: SolrClient::commit ([ int $maxSegments = 1 [, bool $waitFlush = true [, bool $waitSearcher = true ]]] ). $waitFlush: Блокировать, пока изменения индекса не будут сброшены на диск.

Примечания

Внимание

PECL Solr >= 2.0 поддерживает только Solr Server >= 4.0

Смотрите также

  • SolrClient::optimize() - Дефрагментирует индекс
  • SolrClient::rollback() - Откатывает все добавления/удаления, сделанные в индекс с момента последней фиксации


Конструктор объекта SolrClient

  • « SolrClient::commit
  • SolrClient::deleteById »
  • PHP Manual
  • SolrClient
  • Конструктор объекта SolrClient

SolrClient::__construct

(PECL solr >= 0.9.2)

SolrClient::__construct — Конструктор объекта SolrClient

Описание

public SolrClient::__construct(array $clientOptions)

Конструктор объекта SolrClient

Список параметров

clientOptions

Массив, содержащий один из следующих ключей:

- secure          (Логическое значение, указывающее, следует ли подключаться в безопасном режиме)
 - hostname        (Имя хоста для сервера Solr)
 - port            (Номер порта)
 - path            (Путь к Solr)
 - wt              (Имя автора ответа, например xml, json)
 - login           (Имя пользователя, используемое для HTTP-аутентификации, если есть)
 - password        (Пароль HTTP-аутентификации)
 - proxy_host      (Имя хоста для прокси-сервера, если есть)
 - proxy_port      (Порт прокси)
 - proxy_login     (Имя пользователя прокси)
 - proxy_password  (Пароль прокси)
 - timeout         (Максимальное время в секундах, разрешённое для операции передачи данных http. По умолчанию 30 секунд)
 - ssl_cert        (Имя файла в формате PEM, содержащем закрытый ключ + закрытый сертификат (объединённые в этом порядке))
 - ssl_key         (Имя файла только для файла закрытого ключа в формате PEM)
 - ssl_keypassword (Пароль для закрытого ключа)
 - ssl_cainfo      (Имя файла, содержащего один или несколько сертификатов CA для проверки однорангового узла)
 - ssl_capath      (Имя каталога, содержащего несколько сертификатов CA для проверки однорангового узла)

 Обратите внимание: если файл ssl_cert содержит только частный сертификат, вам необходимо указать отдельный файл ssl_key.

 Параметр ssl_keypassword необходим, если установлены параметры ssl_cert или ssl_key.

Ошибки

Выбрасывает SolrIllegalArgumentException в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SolrClient::__construct()

<?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() - Возвращает внутренние параметры клиента


Удаляет по идентификатору

  • « SolrClient::__construct
  • SolrClient::deleteByIds »
  • PHP Manual
  • SolrClient
  • Удаляет по идентификатору

SolrClient::deleteById

(PECL solr >= 0.9.2)

SolrClient::deleteById — Удаляет по идентификатору

Описание

public SolrClient::deleteById(string $id): SolrUpdateResponse

Удаляет документ с указанным идентификатором. Где ID - значение поля uniqueKey, объявленного в схеме.

Список параметров

id

Значение поля uniqueKey, объявленное в схеме

Возвращаемые значения

Возвращает объект SolrUpdateResponse или выбрасывает исключение в случае возникновения ошибки.

Ошибки

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.

Смотрите также

  • SolrClient::deleteByIds() - Удаляет по идентификаторам
  • SolrClient::deleteByQuery() - Удаляет все документы, соответствующие заданному запросу
  • SolrClient::deleteByQueries() - Удаляет все документы, соответствующие любому из запросов


Удаляет по идентификаторам

  • « SolrClient::deleteById
  • SolrClient::deleteByQueries »
  • PHP Manual
  • SolrClient
  • Удаляет по идентификаторам

SolrClient::deleteByIds

(PECL solr >= 0.9.2)

SolrClient::deleteByIds — Удаляет по идентификаторам

Описание

public SolrClient::deleteByIds(array $ids): SolrUpdateResponse

Удаляет набор документов с указанным набором идентификаторов.

Список параметров

ids

Массив идентификаторов, представляющих поле uniqueKey, объявленное в схеме для каждого удаляемого документа. Должна быть фактическая переменная php.

Возвращаемые значения

Возвращает объект SolrUpdateResponse или выбрасывает исключение в случае возникновения ошибки.

Ошибки

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.

Смотрите также

  • SolrClient::deleteById() - Удаляет по идентификатору
  • SolrClient::deleteByQuery() - Удаляет все документы, соответствующие заданному запросу
  • SolrClient::deleteByQueries() - Удаляет все документы, соответствующие любому из запросов


Удаляет все документы, соответствующие любому из запросов

  • « SolrClient::deleteByIds
  • SolrClient::deleteByQuery »
  • PHP Manual
  • SolrClient
  • Удаляет все документы, соответствующие любому из запросов

SolrClient::deleteByQueries

(PECL solr >= 0.9.2)

SolrClient::deleteByQueries — Удаляет все документы, соответствующие любому из запросов

Описание

public SolrClient::deleteByQueries(array $queries): SolrUpdateResponse

Удаляет все документы, соответствующие любому из запросов

Список параметров

queries

Массив запросов. Это должна быть фактическая переменная php.

Возвращаемые значения

Возвращает SolrUpdateResponse в случае успешного выполнения и выбрасывает SolrClientException в случае возникновения ошибки.

Ошибки

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.

Смотрите также

  • SolrClient::deleteById() - Удаляет по идентификатору
  • SolrClient::deleteByIds() - Удаляет по идентификаторам
  • SolrClient::deleteByQuery() - Удаляет все документы, соответствующие заданному запросу


Удаляет все документы, соответствующие заданному запросу

  • « SolrClient::deleteByQueries
  • SolrClient::__destruct »
  • PHP Manual
  • SolrClient
  • Удаляет все документы, соответствующие заданному запросу

SolrClient::deleteByQuery

(PECL solr >= 0.9.2)

SolrClient::deleteByQuery — Удаляет все документы, соответствующие заданному запросу

Описание

public SolrClient::deleteByQuery(string $query): SolrUpdateResponse

Удаляет все документы, соответствующие заданному запросу.

Список параметров

query

Запрос

Возвращаемые значения

Возвращает объект SolrUpdateResponse или выбрасывает исключение в случае возникновения ошибки.

Ошибки

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.

Примеры

Пример #1 Пример использования SolrQuery::deleteByQuery()

<?php

$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

//Это сотрёт весь индекс
$client->deleteByQuery("*:*");
$client->commit();

?>

Смотрите также

  • SolrClient::deleteById() - Удаляет по идентификатору
  • SolrClient::deleteByIds() - Удаляет по идентификаторам
  • SolrClient::deleteByQueries() - Удаляет все документы, соответствующие любому из запросов


Деструктор SolrClient

  • « SolrClient::deleteByQuery
  • SolrClient::getById »
  • PHP Manual
  • SolrClient
  • Деструктор SolrClient

SolrClient::__destruct

(PECL solr >= 0.9.2)

SolrClient::__destruct — Деструктор SolrClient

Описание

public SolrClient::__destruct()

Деструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Деструктор SolrClient

Смотрите также

  • SolrClient::__construct() - Конструктор объекта SolrClient


Получает документ по идентификатору. Использует Solr Realtime Get (RTG)

  • « SolrClient::__destruct
  • SolrClient::getByIds »
  • PHP Manual
  • SolrClient
  • Получает документ по идентификатору. Использует Solr Realtime Get (RTG)

SolrClient::getById

(PECL solr >= 2.2.0)

SolrClient::getById — Получает документ по идентификатору. Использует Solr Realtime Get (RTG)

Описание

public SolrClient::getById(string $id): SolrQueryResponse

Получает документ по идентификатору. Использует Solr Realtime Get (RTG)

Список параметров

id

ID документа

Возвращаемые значения

SolrQueryResponse

Примеры

Пример #1 Пример использования 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
        )

)

Смотрите также

  • SolrClient::getByIds() - Получает документы по их идентификаторам. Использует Solr Realtime Get (RTG)


Получает документы по их идентификаторам. Использует Solr Realtime Get (RTG)

  • « SolrClient::getById
  • SolrClient::getDebug »
  • PHP Manual
  • SolrClient
  • Получает документы по их идентификаторам. Использует Solr Realtime Get (RTG)

SolrClient::getByIds

(PECL solr >= 2.2.0)

SolrClient::getByIds — Получает документы по их идентификаторам. Использует Solr Realtime Get (RTG)

Описание

public SolrClient::getByIds(array $ids): SolrQueryResponse

Получает документы по их идентификаторам. Использует Solr Realtime Get (RTG)

Список параметров

ids

ID документов

Возвращаемые значения

SolrQueryResponse

Примеры

Пример #1 Пример использования SolrClient::getByIds()

<?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() - Получает документ по идентификатору. Использует Solr Realtime Get (RTG)


Возвращает данные отладки для последней попытки подключения

  • « SolrClient::getByIds
  • SolrClient::getOptions »
  • PHP Manual
  • SolrClient
  • Возвращает данные отладки для последней попытки подключения

SolrClient::getDebug

(PECL solr >= 0.9.7)

SolrClient::getDebug — Возвращает данные отладки для последней попытки подключения

Описание

public SolrClient::getDebug(): string

Возвращает данные отладки для последней попытки подключения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если нечего возвращать.


Возвращает внутренние параметры клиента

  • « SolrClient::getDebug
  • SolrClient::optimize »
  • PHP Manual
  • SolrClient
  • Возвращает внутренние параметры клиента

SolrClient::getOptions

(PECL solr >= 0.9.6)

SolrClient::getOptions — Возвращает внутренние параметры клиента

Описание

public SolrClient::getOptions(): array

Возвращает внутренние параметры клиента. Очень полезно для отладки. Возвращаемые значения доступны только для чтения и могут быть установлены только при создании экземпляра объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий все параметры для объекта SolrClient, установленные внутри.

Смотрите также

  • SolrClient::__construct() - Конструктор объекта SolrClient


Дефрагментирует индекс

  • « SolrClient::getOptions
  • SolrClient::ping »
  • PHP Manual
  • SolrClient
  • Дефрагментирует индекс

SolrClient::optimize

(PECL solr >= 0.9.2)

SolrClient::optimize — Дефрагментирует индекс

Описание

public SolrClient::optimize(int $maxSegments = 1, bool $softCommit = true, bool $waitSearcher = true): SolrUpdateResponse

Дефрагментирует индекс для ускорения поиска.

Список параметров

maxSegments

Оптимизируется до максимального количества сегментов. Начиная с Solr 1.3

softCommit

Обновляет 'view' индекса более производительно, но без гарантий 'on-disk'. (Solr4.0+)

waitSearcher

Блокировать до тех пор, пока не откроется новая поисковая система и не будет зарегистрирована как основная поисковая система, сделав изменения видимыми.

Возвращаемые значения

Возвращает SolrUpdateResponse в случае успешного выполнения или выбрасывает исключение в случае возникновения ошибки.

Ошибки

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.

Примечания

Внимание

PECL Solr >= 2.0 поддерживает только Solr Server >= 4.0

До PECL Solr 2.0 метод использовался для приёма аргументов "int $maxSegments, bool $waitFlush, bool $waitSearcher".

Смотрите также

  • SolrClient::commit() - Завершает все добавления/удаления, сделанные в индексе
  • SolrClient::rollback() - Откатывает все добавления/удаления, сделанные в индекс с момента последней фиксации


Проверяет, работает ли сервер Solr

  • « SolrClient::optimize
  • SolrClient::query »
  • PHP Manual
  • SolrClient
  • Проверяет, работает ли сервер Solr

SolrClient::ping

(PECL solr >= 0.9.2)

SolrClient::ping — Проверяет, работает ли сервер Solr

Описание

public SolrClient::ping(): SolrPingResponse

Проверяет, доступен ли ещё сервер Solr. Отправляет запрос HEAD на сервер Apache Solr.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект SolrPingResponse в случае успешного выполнения или выбрасывает исключение в случае возникновения ошибки.

Ошибки

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.

Примеры

Пример #1 Пример использования SolrClient::ping()

<?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();

?>

Результатом выполнения данного примера будет что-то подобное:


Отправляет запрос на сервер

  • « SolrClient::ping
  • SolrClient::request »
  • PHP Manual
  • SolrClient
  • Отправляет запрос на сервер

SolrClient::query

(PECL solr >= 0.9.2)

SolrClient::query — Отправляет запрос на сервер

Описание

public SolrClient::query(SolrParams $query): SolrQueryResponse

Отправляет запрос на сервер.

Список параметров

query

Объект SolrParams. Для сложных запросов рекомендуется использовать SolrQuery.

Возвращаемые значения

Возвращает объект SolrQueryResponse в случае успешного выполнения или выбрасывает исключение в случае возникновения ошибки.

Ошибки

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.

Примеры

Пример #1 Пример использования SolrClient::query()

<?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)
                                )

                        )

                )

        )

)


Отправляет необработанный запрос на обновление

  • « SolrClient::query
  • SolrClient::rollback »
  • PHP Manual
  • SolrClient
  • Отправляет необработанный запрос на обновление

SolrClient::request

(PECL solr >= 0.9.2)

SolrClient::request — Отправляет необработанный запрос на обновление

Описание

public SolrClient::request(string $raw_request): SolrUpdateResponse

Отправляет на сервер необработанный запрос на обновление XML

Список параметров

raw_request

Строка XML с необработанным запросом к серверу.

Возвращаемые значения

Возвращает SolrUpdateResponse в случае успешного выполнения. Выбрасывает исключение в случае возникновения ошибки.

Ошибки

Выбрасывает SolrIllegalArgumentException, если raw_request является пустой строкой.

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.

Примеры

Пример #1 Пример использования SolrClient::request()

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:

...


Откатывает все добавления/удаления, сделанные в индекс с момента последней фиксации

  • « SolrClient::request
  • SolrClient::setResponseWriter »
  • PHP Manual
  • SolrClient
  • Откатывает все добавления/удаления, сделанные в индекс с момента последней фиксации

SolrClient::rollback

(PECL solr >= 0.9.2)

SolrClient::rollback — Откатывает все добавления/удаления, сделанные в индекс с момента последней фиксации

Описание

public SolrClient::rollback(): SolrUpdateResponse

Откатывает все добавления/удаления, сделанные в индекс с момента последней фиксации. Он не вызывает никаких прослушивателей событий и не создаёт нового поисковика.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает SolrUpdateResponse в случае успешного выполнения или выбрасывает исключение SolrClientException в случае возникновения ошибки.

Смотрите также

  • SolrClient::commit() - Завершает все добавления/удаления, сделанные в индексе
  • SolrClient::optimize() - Дефрагментирует индекс


Устанавливает писатель ответа, используемый для подготовки ответа от Solr

  • « SolrClient::rollback
  • SolrClient::setServlet »
  • PHP Manual
  • SolrClient
  • Устанавливает писатель ответа, используемый для подготовки ответа от Solr

SolrClient::setResponseWriter

(PECL solr >= 0.9.11)

SolrClient::setResponseWriter — Устанавливает писатель ответа, используемый для подготовки ответа от Solr

Описание

public SolrClient::setResponseWriter(string $responseWriter): void

Устанавливает писатель ответа, используемый для подготовки ответа от Solr

Список параметров

responseWriter

Одно из следующих значений:

  • json
  • phps
  • xml

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SolrClient::setResponseWriter()

<?php

// Это мой собственный класс для объектов
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 для независимых объектов, 1 для совмещённых

try
{

$response = $client->query($query);

$resp = $response->getResponse();

print_r($response);

print_r($resp);

} catch (Exception $e) {

print_r($e);

}

?>


Изменяет указанный тип сервлета на новое значение

  • « SolrClient::setResponseWriter
  • SolrClient::system »
  • PHP Manual
  • SolrClient
  • Изменяет указанный тип сервлета на новое значение

SolrClient::setServlet

(PECL solr >= 0.9.2)

SolrClient::setServlet — Изменяет указанный тип сервлета на новое значение

Описание

public SolrClient::setServlet(int $type, string $value): bool

Изменяет указанный тип сервлета на новое значение

Список параметров

type

Одно из следующих значений:

- SolrClient::SEARCH_SERVLET_TYPE
 - SolrClient::UPDATE_SERVLET_TYPE
 - SolrClient::THREADS_SERVLET_TYPE
 - SolrClient::PING_SERVLET_TYPE
 - SolrClient::TERMS_SERVLET_TYPE

value

Новое значение для сервлета

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Получает информацию о сервере Solr

  • « SolrClient::setServlet
  • SolrClient::threads »
  • PHP Manual
  • SolrClient
  • Получает информацию о сервере Solr

SolrClient::system

(PECL solr >= 2.0.0)

SolrClient::system — Получает информацию о сервере Solr

Описание

public SolrClient::system(): void

Получает информацию о сервере Solr

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект SolrGenericResponse в случае успешного выполнения.

Ошибки

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.


Проверяет статус тем

  • « SolrClient::system
  • SolrResponse »
  • PHP Manual
  • SolrClient
  • Проверяет статус тем

SolrClient::threads

(PECL solr >= 0.9.2)

SolrClient::threads — Проверяет статус тем

Описание

public SolrClient::threads(): void

Проверяет статус тем

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект SolrGenericResponse.

Ошибки

Выбрасывает SolrClientException, если клиент отказал или возникла проблема с подключением.

Выбрасывает SolrServerException, если сервер Solr не смог обработать запрос.


Класс SolrResponse

(PECL solr >= 0.9.2)

Введение

Представляет ответ от сервера Solr.

Обзор классов

abstract class SolrResponse {
/* Константы */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Свойства */
protected int $http_status;
protected int $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(): string
public getHttpStatus(): int
public getHttpStatusMessage(): string
public getRawRequest(): string
public getRawRequestHeaders(): string
public getRawResponse(): string
public getRawResponseHeaders(): string
public getRequestUrl(): string
public getResponse(): SolrObject
public setParseMode(int $parser_mode = 0): bool
public success(): bool
}

Свойства

http_status

HTTP-статус ответа.

parser_mode

Следует ли анализировать документы solr как экземпляры SolrObject или SolrDocument.

success

Была ли ошибка при запросе

http_status_message

Подробное сообщение о статусе http

http_request_url

URL запроса

http_raw_request_headers

Строка необработанных заголовков, отправленных во время запроса.

http_raw_request

Необработанный запрос, отправленный на сервер

http_raw_response_headers

Заголовки ответа от сервера Solr.

http_raw_response

Ответное сообщение от сервера.

http_digested_response

Ответ в сериализованном формате PHP.

Предопределённые константы

Константы класса SolrResponse

SolrResponse::PARSE_SOLR_OBJ

Документы следует анализировать как экземпляры SolrObject.

SolrResponse::PARSE_SOLR_DOC

Документы следует анализировать как экземпляры SolrDocument.

Содержание

  • SolrResponse::getDigestedResponse — Возвращает ответ XML как сериализованные данные PHP
  • SolrResponse::getHttpStatus — Возвращает HTTP-статус ответа
  • SolrResponse::getHttpStatusMessage — Возвращает более подробную информацию о статусе HTTP
  • SolrResponse::getRawRequest — Возвращает необработанный запрос, отправленный на сервер Solr
  • SolrResponse::getRawRequestHeaders — Возвращает необработанные заголовки запроса, отправленные на сервер Solr
  • SolrResponse::getRawResponse — Возвращает необработанный ответ с сервера
  • SolrResponse::getRawResponseHeaders — Возвращает необработанные заголовки ответа с сервера
  • SolrResponse::getRequestUrl — Возвращает полный URL-адрес, на который был отправлен запрос
  • SolrResponse::getResponse — Возвращает SolrObject, представляющий ответ XML от сервера
  • SolrResponse::setParseMode — Устанавливает режим разбора
  • SolrResponse::success — Был ли запрос успешным?


Возвращает ответ XML как сериализованные данные PHP

  • « SolrResponse
  • SolrResponse::getHttpStatus »
  • PHP Manual
  • SolrResponse
  • Возвращает ответ XML как сериализованные данные PHP

SolrResponse::getDigestedResponse

(PECL solr >= 0.9.2)

SolrResponse::getDigestedResponse — Возвращает ответ XML как сериализованные данные PHP

Описание

public SolrResponse::getDigestedResponse(): string

Возвращает ответ XML как сериализованные данные PHP

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ответ XML как сериализованные данные PHP


Возвращает HTTP-статус ответа

  • « SolrResponse::getDigestedResponse
  • SolrResponse::getHttpStatusMessage »
  • PHP Manual
  • SolrResponse
  • Возвращает HTTP-статус ответа

SolrResponse::getHttpStatus

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatus — Возвращает HTTP-статус ответа

Описание

public SolrResponse::getHttpStatus(): int

Возвращает HTTP-статус ответа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает HTTP-статус ответа.


Возвращает более подробную информацию о статусе HTTP

  • « SolrResponse::getHttpStatus
  • SolrResponse::getRawRequest »
  • PHP Manual
  • SolrResponse
  • Возвращает более подробную информацию о статусе HTTP

SolrResponse::getHttpStatusMessage

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatusMessage — Возвращает более подробную информацию о статусе HTTP

Описание

public SolrResponse::getHttpStatusMessage(): string

Возвращает более подробную информацию о статусе HTTP.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает более подробную информацию о статусе HTTP


Возвращает необработанный запрос, отправленный на сервер Solr

  • « SolrResponse::getHttpStatusMessage
  • SolrResponse::getRawRequestHeaders »
  • PHP Manual
  • SolrResponse
  • Возвращает необработанный запрос, отправленный на сервер Solr

SolrResponse::getRawRequest

(PECL solr >= 0.9.2)

SolrResponse::getRawRequest — Возвращает необработанный запрос, отправленный на сервер Solr

Описание

public SolrResponse::getRawRequest(): string

Возвращает необработанный запрос, отправленный на сервер Solr.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает необработанный запрос, отправленный на сервер Solr


Возвращает необработанные заголовки запроса, отправленные на сервер Solr

  • « SolrResponse::getRawRequest
  • SolrResponse::getRawResponse »
  • PHP Manual
  • SolrResponse
  • Возвращает необработанные заголовки запроса, отправленные на сервер Solr

SolrResponse::getRawRequestHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawRequestHeaders — Возвращает необработанные заголовки запроса, отправленные на сервер Solr

Описание

public SolrResponse::getRawRequestHeaders(): string

Возвращает необработанные заголовки запроса, отправленные на сервер Solr.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает необработанные заголовки запроса, отправленные на сервер Solr


Возвращает необработанный ответ с сервера

  • « SolrResponse::getRawRequestHeaders
  • SolrResponse::getRawResponseHeaders »
  • PHP Manual
  • SolrResponse
  • Возвращает необработанный ответ с сервера

SolrResponse::getRawResponse

(PECL solr >= 0.9.2)

SolrResponse::getRawResponse — Возвращает необработанный ответ с сервера

Описание

public SolrResponse::getRawResponse(): string

Возвращает необработанный ответ с сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает необработанный ответ с сервера.


Возвращает необработанные заголовки ответа с сервера

  • « SolrResponse::getRawResponse
  • SolrResponse::getRequestUrl »
  • PHP Manual
  • SolrResponse
  • Возвращает необработанные заголовки ответа с сервера

SolrResponse::getRawResponseHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawResponseHeaders — Возвращает необработанные заголовки ответа с сервера

Описание

public SolrResponse::getRawResponseHeaders(): string

Возвращает необработанные заголовки ответа с сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает необработанные заголовки ответа с сервера.


Возвращает полный URL-адрес, на который был отправлен запрос

  • « SolrResponse::getRawResponseHeaders
  • SolrResponse::getResponse »
  • PHP Manual
  • SolrResponse
  • Возвращает полный URL-адрес, на который был отправлен запрос

SolrResponse::getRequestUrl

(PECL solr >= 0.9.2)

SolrResponse::getRequestUrl — Возвращает полный URL-адрес, на который был отправлен запрос

Описание

public SolrResponse::getRequestUrl(): string

Возвращает полный URL-адрес, на который был отправлен запрос.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает полный URL-адрес, на который был отправлен запрос


Возвращает SolrObject, представляющий ответ XML от сервера

  • « SolrResponse::getRequestUrl
  • SolrResponse::setParseMode »
  • PHP Manual
  • SolrResponse
  • Возвращает SolrObject, представляющий ответ XML от сервера

SolrResponse::getResponse

(PECL solr >= 0.9.2)

SolrResponse::getResponse — Возвращает SolrObject, представляющий ответ XML от сервера

Описание

public SolrResponse::getResponse(): SolrObject

Возвращает SolrObject, представляющий ответ XML от сервера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает SolrObject, представляющий ответ XML от сервера


Устанавливает режим разбора

  • « SolrResponse::getResponse
  • SolrResponse::success »
  • PHP Manual
  • SolrResponse
  • Устанавливает режим разбора

SolrResponse::setParseMode

(PECL solr >= 0.9.2)

SolrResponse::setParseMode — Устанавливает режим разбора

Описание

public SolrResponse::setParseMode(int $parser_mode = 0): bool

Устанавливает режим разбора.

Список параметров

parser_mode

SolrResponse::PARSE_SOLR_DOC анализирует документы в экземплярах SolrDocument. SolrResponse::PARSE_SOLR_OBJ разбирает документ на SolrObjects.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Был ли запрос успешным?

  • « SolrResponse::setParseMode
  • SolrQueryResponse »
  • PHP Manual
  • SolrResponse
  • Был ли запрос успешным?

SolrResponse::success

(PECL solr >= 0.9.2)

SolrResponse::success — Был ли запрос успешным?

Описание

public SolrResponse::success(): bool

Используется для проверки успешности запроса к серверу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае если запрос выполнен успешно и false, если нет.


Класс SolrQueryResponse

(PECL solr >= 0.9.2)

Введение

Представляет ответ на запрос запроса.

Обзор классов

final class SolrQueryResponse extends SolrResponse {
/* Константы */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Наследуемые свойства */
const int SolrResponse::PARSE_SOLR_OBJ = 0;
const int SolrResponse::PARSE_SOLR_DOC = 1;
protected int $http_status;
protected int $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()
public __destruct()
/* Наследуемые методы */
public SolrResponse::getDigestedResponse(): string
public SolrResponse::getHttpStatus(): int
public SolrResponse::getHttpStatusMessage(): string
public SolrResponse::getRawRequest(): string
public SolrResponse::getRawRequestHeaders(): string
public SolrResponse::getRawResponse(): string
public SolrResponse::getRawResponseHeaders(): string
public SolrResponse::getRequestUrl(): string
public SolrResponse::getResponse(): SolrObject
public SolrResponse::setParseMode(int $parser_mode = 0): bool
public SolrResponse::success(): bool
}

Предопределённые константы

Константы класса SolrResponse

SolrQueryResponse::PARSE_SOLR_OBJ

Документы следует анализировать как экземпляры SolrObject.

SolrQueryResponse::PARSE_SOLR_DOC

Документы следует анализировать как экземпляры SolrDocument.

Содержание

  • SolrQueryResponse::__construct — Конструктор
  • SolrQueryResponse::__destruct — Деструктор


Конструктор

  • « SolrQueryResponse
  • SolrQueryResponse::__destruct »
  • PHP Manual
  • SolrQueryResponse
  • Конструктор

SolrQueryResponse::__construct

(PECL solr >= 0.9.2)

SolrQueryResponse::__construct — Конструктор

Описание

public SolrQueryResponse::__construct()

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Деструктор

  • « SolrQueryResponse::__construct
  • SolrUpdateResponse »
  • PHP Manual
  • SolrQueryResponse
  • Деструктор

SolrQueryResponse::__destruct

(PECL solr >= 0.9.2)

SolrQueryResponse::__destruct — Деструктор

Описание

public SolrQueryResponse::__destruct()

Деструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Класс SolrUpdateResponse

(PECL solr >= 0.9.2)

Введение

Представляет ответ на запрос на обновление.

Обзор классов

final class SolrUpdateResponse extends SolrResponse {
/* Константы */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Наследуемые свойства */
const int SolrResponse::PARSE_SOLR_OBJ = 0;
const int SolrResponse::PARSE_SOLR_DOC = 1;
protected int $http_status;
protected int $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()
public __destruct()
/* Наследуемые методы */
public SolrResponse::getDigestedResponse(): string
public SolrResponse::getHttpStatus(): int
public SolrResponse::getHttpStatusMessage(): string
public SolrResponse::getRawRequest(): string
public SolrResponse::getRawRequestHeaders(): string
public SolrResponse::getRawResponse(): string
public SolrResponse::getRawResponseHeaders(): string
public SolrResponse::getRequestUrl(): string
public SolrResponse::getResponse(): SolrObject
public SolrResponse::setParseMode(int $parser_mode = 0): bool
public SolrResponse::success(): bool
}

Предопределённые константы

Константы класса SolrUpdateResponse

SolrUpdateResponse::PARSE_SOLR_OBJ

Документы следует анализировать как экземпляры SolrObject

SolrUpdateResponse::PARSE_SOLR_DOC

Документы следует анализировать как экземпляры SolrDocument

Содержание

  • SolrUpdateResponse::__construct — Конструктор
  • SolrUpdateResponse::__destruct — Деструктор


Конструктор

  • « SolrUpdateResponse
  • SolrUpdateResponse::__destruct »
  • PHP Manual
  • SolrUpdateResponse
  • Конструктор

SolrUpdateResponse::__construct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__construct — Конструктор

Описание

public SolrUpdateResponse::__construct()

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Деструктор

  • « SolrUpdateResponse::__construct
  • SolrPingResponse »
  • PHP Manual
  • SolrUpdateResponse
  • Деструктор

SolrUpdateResponse::__destruct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__destruct — Деструктор

Описание

public SolrUpdateResponse::__destruct()

Деструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Класс SolrPingResponse

(PECL solr >= 0.9.2)

Введение

Представляет ответ на запрос ping к серверу

Обзор классов

final class SolrPingResponse extends SolrResponse {
/* Константы */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Свойства */
/* Методы */
public __construct()
public getResponse(): string
public __destruct()
/* Наследуемые методы */
public SolrResponse::getDigestedResponse(): string
public SolrResponse::getHttpStatus(): int
public SolrResponse::getHttpStatusMessage(): string
public SolrResponse::getRawRequest(): string
public SolrResponse::getRawRequestHeaders(): string
public SolrResponse::getRawResponse(): string
public SolrResponse::getRawResponseHeaders(): string
public SolrResponse::getRequestUrl(): string
public SolrResponse::getResponse(): SolrObject
public SolrResponse::setParseMode(int $parser_mode = 0): bool
public SolrResponse::success(): bool
}

Свойства

http_status

HTTP-статус ответа.

parser_mode

Следует ли анализировать документы solr как экземпляры SolrObject или SolrDocument.

success

Была ли ошибка при запросе

http_status_message

Подробное сообщение о статусе http

http_request_url

URL запроса

http_raw_request_headers

Строка необработанных заголовков, отправленных во время запроса

http_raw_request

Необработанный запрос, отправленный на сервер

http_raw_response_headers

Заголовки ответа от сервера Solr

http_raw_response

Ответное сообщение от сервера

http_digested_response

Ответ в сериализованном формате PHP.

Предопределённые константы

Константы класса SolrPingResponse

SolrPingResponse::PARSE_SOLR_OBJ

Документы следует анализировать как экземпляры SolrObject.

SolrPingResponse::PARSE_SOLR_DOC

Документы следует анализировать как экземпляры SolrDocument.

Содержание

  • SolrPingResponse::__construct — Конструктор
  • SolrPingResponse::__destruct — Деструктор
  • SolrPingResponse::getResponse — Возвращает ответ от сервера


Конструктор

  • « SolrPingResponse
  • SolrPingResponse::__destruct »
  • PHP Manual
  • SolrPingResponse
  • Конструктор

SolrPingResponse::__construct

(PECL solr >= 0.9.2)

SolrPingResponse::__construct — Конструктор

Описание

public SolrPingResponse::__construct()

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ничего не возвращает


Деструктор

  • « SolrPingResponse::__construct
  • SolrPingResponse::getResponse »
  • PHP Manual
  • SolrPingResponse
  • Деструктор

SolrPingResponse::__destruct

(PECL solr >= 0.9.2)

SolrPingResponse::__destruct — Деструктор

Описание

public SolrPingResponse::__destruct()

Деструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ничего не возвращает


Возвращает ответ от сервера

  • « SolrPingResponse::__destruct
  • SolrGenericResponse »
  • PHP Manual
  • SolrPingResponse
  • Возвращает ответ от сервера

SolrPingResponse::getResponse

(PECL solr >= 0.9.2)

SolrPingResponse::getResponse — Возвращает ответ от сервера

Описание

public SolrPingResponse::getResponse(): string

Возвращает ответ от сервера. Он должен быть пустым, потому что является HEAD-запросом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает пустую строку.


Класс SolrGenericResponse

(PECL solr >= 0.9.2)

Введение

Представляет ответ от сервера solr.

Обзор классов

final class SolrGenericResponse extends SolrResponse {
/* Константы */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Наследуемые свойства */
const int SolrResponse::PARSE_SOLR_OBJ = 0;
const int SolrResponse::PARSE_SOLR_DOC = 1;
protected int $http_status;
protected int $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()
public __destruct()
/* Наследуемые методы */
public SolrResponse::getDigestedResponse(): string
public SolrResponse::getHttpStatus(): int
public SolrResponse::getHttpStatusMessage(): string
public SolrResponse::getRawRequest(): string
public SolrResponse::getRawRequestHeaders(): string
public SolrResponse::getRawResponse(): string
public SolrResponse::getRawResponseHeaders(): string
public SolrResponse::getRequestUrl(): string
public SolrResponse::getResponse(): SolrObject
public SolrResponse::setParseMode(int $parser_mode = 0): bool
public SolrResponse::success(): bool
}

Предопределённые константы

Константы класса SolrGenericResponse

SolrGenericResponse::PARSE_SOLR_OBJ

Документы следует анализировать как экземпляры SolrObject.

SolrGenericResponse::PARSE_SOLR_DOC

Документы следует анализировать как экземпляры SolrDocument.

Содержание

  • SolrGenericResponse::__construct — Конструктор
  • SolrGenericResponse::__destruct — Деструктор


Конструктор

  • « SolrGenericResponse
  • SolrGenericResponse::__destruct »
  • PHP Manual
  • SolrGenericResponse
  • Конструктор

SolrGenericResponse::__construct

(PECL solr >= 0.9.2)

SolrGenericResponse::__construct — Конструктор

Описание

public SolrGenericResponse::__construct()

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Деструктор

  • « SolrGenericResponse::__construct
  • SolrParams »
  • PHP Manual
  • SolrGenericResponse
  • Деструктор

SolrGenericResponse::__destruct

(PECL solr >= 0.9.2)

SolrGenericResponse::__destruct — Деструктор

Описание

public SolrGenericResponse::__destruct()

Деструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Класс SolrParams

(PECL solr >= 0.9.2)

Введение

Представляет коллекцию пар "имя-значение", отправляемую на сервер Solr во время запроса.

Обзор классов

abstract class 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(): array
final public getPreparedParams(): array
final public serialize(): 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 — Псевдоним SolrParams::addParam
  • SolrParams::addParam — Добавляет параметр к объекту
  • SolrParams::get — Псевдоним SolrParams::getParam
  • SolrParams::getParam — Возвращает значение параметра
  • SolrParams::getParams — Возвращает массив параметров, не в URL-закодированном виде
  • SolrParams::getPreparedParams — Возвращает массив параметров в URL-закодированном виде
  • SolrParams::serialize — Используется для пользовательской сериализации
  • SolrParams::set — Псевдоним SolrParams::setParam
  • SolrParams::setParam — Устанавливает параметр на указанное значение
  • SolrParams::toString — Возвращает все параметры объекта в виде пар имя-значение
  • SolrParams::unserialize — Используется для пользовательской сериализации


Псевдоним SolrParams::addParam

  • « SolrParams
  • SolrParams::addParam »
  • PHP Manual
  • SolrParams
  • Псевдоним SolrParams::addParam

SolrParams::add

(PECL solr >= 0.9.2)

SolrParams::add — Псевдоним SolrParams::addParam()

Описание

final public SolrParams::add(string $name, string $value): SolrParams

Псевдоним SolrParams::addParam

Список параметров

name

Имя параметра

value

Значение параметра

Возвращаемые значения

Возвращает экземпляр SolrParams в случае успешного выполнения


Добавляет параметр к объекту

  • « SolrParams::add
  • SolrParams::get »
  • PHP Manual
  • SolrParams
  • Добавляет параметр к объекту

SolrParams::addParam

(PECL solr >= 0.9.2)

SolrParams::addParam — Добавляет параметр к объекту

Описание

public SolrParams::addParam(string $name, string $value): SolrParams

Добавляет параметр к объекту. Используется для параметров, которые можно указывать несколько раз.

Список параметров

name

Имя параметра

value

Значение параметра

Возвращаемые значения

В случае успешного выполнения возвращает объект SolrParam и false в случае возникновения ошибки.


Псевдоним SolrParams::getParam

  • « SolrParams::addParam
  • SolrParams::getParam »
  • PHP Manual
  • SolrParams
  • Псевдоним SolrParams::getParam

SolrParams::get

(PECL solr >= 0.9.2)

SolrParams::get — Псевдоним SolrParams::getParam()

Описание

final public SolrParams::get(string $param_name): mixed

Псевдоним SolrParams::getParam

Список параметров

param_name

Имя параметра

Возвращаемые значения

Возвращает массив или строку в зависимости от типа параметра


Возвращает значение параметра

  • « SolrParams::get
  • SolrParams::getParams »
  • PHP Manual
  • SolrParams
  • Возвращает значение параметра

SolrParams::getParam

(PECL solr >= 0.9.2)

SolrParams::getParam — Возвращает значение параметра

Описание

final public SolrParams::getParam(string $param_name = ?): mixed

Возвращает значение параметра с именем param_name

Список параметров

param_name

Имя параметра

Возвращаемые значения

Возвращает массив или строку в зависимости от типа параметра


Возвращает массив параметров, не в URL-закодированном виде

  • « SolrParams::getParam
  • SolrParams::getPreparedParams »
  • PHP Manual
  • SolrParams
  • Возвращает массив параметров, не в URL-закодированном виде

SolrParams::getParams

(PECL solr >= 0.9.2)

SolrParams::getParams — Возвращает массив параметров, не в URL-закодированном виде

Описание

final public SolrParams::getParams(): array

Возвращает массив параметров, не в URL-закодированном виде

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив параметров, не в URL-закодированном виде


Возвращает массив параметров в URL-закодированном виде

  • « SolrParams::getParams
  • SolrParams::serialize »
  • PHP Manual
  • SolrParams
  • Возвращает массив параметров в URL-закодированном виде

SolrParams::getPreparedParams

(PECL solr >= 0.9.2)

SolrParams::getPreparedParams — Возвращает массив параметров в URL-закодированном виде

Описание

final public SolrParams::getPreparedParams(): array

Возвращает массив параметров в URL-закодированном виде

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив параметров в URL-закодированном виде


Используется для пользовательской сериализации

  • « SolrParams::getPreparedParams
  • SolrParams::set »
  • PHP Manual
  • SolrParams
  • Используется для пользовательской сериализации

SolrParams::serialize

(PECL solr >= 0.9.2)

SolrParams::serialize — Используется для пользовательской сериализации

Описание

final public SolrParams::serialize(): string

Используется для пользовательской сериализации

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Используется для пользовательской сериализации


Псевдоним SolrParams::setParam

  • « SolrParams::serialize
  • SolrParams::setParam »
  • PHP Manual
  • SolrParams
  • Псевдоним SolrParams::setParam

SolrParams::set

(PECL solr >= 0.9.2)

SolrParams::set — Псевдоним SolrParams::setParam()

Описание

final public SolrParams::set(string $name, string $value): void

Псевдоним SolrParams::setParam

Список параметров

name

Имя параметра

value

Значение параметра

Возвращаемые значения

Возвращает экземпляр SolrParams в случае успешного выполнения


Устанавливает параметр на указанное значение

  • « SolrParams::set
  • SolrParams::toString »
  • PHP Manual
  • SolrParams
  • Устанавливает параметр на указанное значение

SolrParams::setParam

(PECL solr >= 0.9.2)

SolrParams::setParam — Устанавливает параметр на указанное значение

Описание

public SolrParams::setParam(string $name, string $value): SolrParams

Устанавливает для параметра запроса указанное значение. Используется для параметров, которые можно указать только один раз. Последующие вызовы с тем же именем параметра переопределят существующее значение

Список параметров

name

Имя параметра

value

Значение параметра

Возвращаемые значения

Возвращает экземпляр SolrParams в случае успешного выполнения и false в случае указанного значения

Примеры

Пример #1 Пример использования SolrParams::setParam()

<?php

$param = new SolrParams();

$param->setParam('q', 'solr')->setParam('rows', 2);

?>

Результатом выполнения данного примера будет что-то подобное:


Возвращает все параметры объекта в виде пар имя-значение

  • « SolrParams::setParam
  • SolrParams::unserialize »
  • PHP Manual
  • SolrParams
  • Возвращает все параметры объекта в виде пар имя-значение

SolrParams::toString

(PECL solr >= 0.9.2)

SolrParams::toString — Возвращает все параметры объекта в виде пар имя-значение

Описание

final public SolrParams::toString(bool $url_encode = false): string

Возвращает все параметры объекта в виде пар имя-значение

Список параметров

url_encode

Следует ли возвращать значения в URL-закодированном виде

Возвращаемые значения

В случае успешного выполнения возвращает строку и false в случае возникновения ошибки.


Используется для пользовательской сериализации

  • « SolrParams::toString
  • SolrModifiableParams »
  • PHP Manual
  • SolrParams
  • Используется для пользовательской сериализации

SolrParams::unserialize

(PECL solr >= 0.9.2)

SolrParams::unserialize — Используется для пользовательской сериализации

Описание

final public SolrParams::unserialize(string $serialized): void

Используется для пользовательской сериализации

Список параметров

serialized

Сериализованное представление объекта

Возвращаемые значения

Ничего не возвращает


Класс SolrModifiableParams

(PECL solr >= 0.9.2)

Введение

Представляет коллекцию пар "имя-значение", отправляемую на сервер Solr во время запроса.

Обзор классов

class SolrModifiableParams extends SolrParams implements Serializable {
/* Методы */
public __construct()
public __destruct()
/* Наследуемые методы */
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(): array
final public SolrParams::getPreparedParams(): array
final public SolrParams::serialize(): 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()

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Деструктор

  • « SolrModifiableParams::__construct
  • SolrQuery »
  • PHP Manual
  • SolrModifiableParams
  • Деструктор

SolrModifiableParams::__destruct

(PECL solr >= 0.9.2)

SolrModifiableParams::__destruct — Деструктор

Описание

public SolrModifiableParams::__destruct()

Деструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Класс SolrQuery

(PECL solr >= 0.9.2)

Введение

Представляет коллекцию пар имя-значение, отправленную на сервер Solr во время запроса.

Обзор классов

class SolrQuery extends SolrModifiableParams implements Serializable {
/* Константы */
const int ORDER_ASC = 0;
const int ORDER_DESC = 1;
const int FACET_SORT_INDEX = 0;
const int FACET_SORT_COUNT = 1;
const int TERMS_SORT_INDEX = 0;
const int TERMS_SORT_COUNT = 1;
/* Свойства */
/* Методы */
public __construct(string $q = ?)
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 getExpand(): bool
public getExpandFilterQueries(): array
public getExpandQuery(): array
public getExpandRows(): int
public getExpandSortFields(): array
public getFacet(): bool
public getFacetDateEnd(string $field_override = ?): string
public getFacetDateFields(): 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(): 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(): array
public getFacetSort(string $field_override = ?): int
public getFields(): array
public getFilterQueries(): array
public getGroup(): bool
public getGroupCachePercent(): int
public getGroupFacet(): bool
public getGroupFields(): array
public getGroupFormat(): string
public getGroupFunctions(): array
public getGroupLimit(): int
public getGroupMain(): bool
public getGroupNGroups(): bool
public getGroupOffset(): int
public getGroupQueries(): array
public getGroupSortFields(): array
public getGroupTruncate(): bool
public getHighlight(): bool
public getHighlightAlternateField(string $field_override = ?): string
public getHighlightFields(): array
public getHighlightFormatter(string $field_override = ?): string
public getHighlightFragmenter(string $field_override = ?): string
public getHighlightFragsize(string $field_override = ?): int
public getHighlightHighlightMultiTerm(): bool
public getHighlightMaxAlternateFieldLength(string $field_override = ?): int
public getHighlightMaxAnalyzedChars(): int
public getHighlightMergeContiguous(string $field_override = ?): bool
public getHighlightRegexMaxAnalyzedChars(): int
public getHighlightRegexPattern(): string
public getHighlightRegexSlop(): float
public getHighlightRequireFieldMatch(): bool
public getHighlightSimplePost(string $field_override = ?): string
public getHighlightSimplePre(string $field_override = ?): string
public getHighlightSnippets(string $field_override = ?): int
public getHighlightUsePhraseHighlighter(): bool
public getMlt(): bool
public getMltBoost(): bool
public getMltCount(): int
public getMltFields(): array
public getMltMaxNumQueryTerms(): int
public getMltMaxNumTokens(): int
public getMltMaxWordLength(): int
public getMltMinDocFrequency(): int
public getMltMinTermFrequency(): int
public getMltMinWordLength(): int
public getMltQueryFields(): array
public getQuery(): string
public getRows(): int
public getSortFields(): array
public getStart(): int
public getStats(): bool
public getStatsFacets(): array
public getStatsFields(): array
public getTerms(): bool
public getTermsField(): string
public getTermsIncludeLowerBound(): bool
public getTermsIncludeUpperBound(): bool
public getTermsLimit(): int
public getTermsLowerBound(): string
public getTermsMaxCount(): int
public getTermsMinCount(): int
public getTermsPrefix(): string
public getTermsReturnRaw(): bool
public getTermsSort(): int
public getTermsUpperBound(): string
public getTimeAllowed(): 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 __destruct()
/* Наследуемые методы */
public SolrModifiableParams::__construct()
public SolrModifiableParams::__destruct()
}

Предопределённые константы

SolrQuery::ORDER_ASC

Используется для указания того, что сортировка должна быть в порядке возрастания

SolrQuery::ORDER_DESC

Используется для указания, что сортировка должна быть в порядке убывания

SolrQuery::FACET_SORT_INDEX

Используется для указания сортировки фасета по индексу

SolrQuery::FACET_SORT_COUNT

Используется для указания того, что фасет должен сортировать по количеству

SolrQuery::TERMS_SORT_INDEX

Используется в TermsComponent

SolrQuery::TERMS_SORT_COUNT

Используется в TermsComponent

Содержание

  • SolrQuery::addExpandFilterQuery — Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу
  • SolrQuery::addExpandSortField — Упорядочивает документы в расширенных группах (параметр expand.sort)
  • SolrQuery::addFacetDateField — Карты для facet.date
  • SolrQuery::addFacetDateOther — Добавляет ещё один параметр facet.date.other
  • SolrQuery::addFacetField — Добавляет другое поле к фасету
  • SolrQuery::addFacetQuery — Добавляет фасетный запрос
  • SolrQuery::addField — Указывает, какие поля возвращать в результате
  • SolrQuery::addFilterQuery — Определяет запрос фильтра
  • SolrQuery::addGroupField — Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupFunction — Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupQuery — Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::addGroupSortField — Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::addHighlightField — Соответствует hl.fl
  • SolrQuery::addMltField — Устанавливает поле для использования для подобия
  • SolrQuery::addMltQueryField — Соответствует mlt.qf
  • SolrQuery::addSortField — Используется для управления сортировкой результатов
  • SolrQuery::addStatsFacet — Запрашивает возврат вспомогательных результатов для значений в данном фасете
  • SolrQuery::addStatsField — Соответствует параметру stats.field
  • SolrQuery::collapse — Сворачивает набор результатов до одного документа на группу
  • SolrQuery::__construct — Конструктор
  • SolrQuery::__destruct — Деструктор
  • SolrQuery::getExpand — Возвращает true, если включено расширение группы
  • SolrQuery::getExpandFilterQueries — Возвращает запросы расширенного фильтра
  • SolrQuery::getExpandQuery — Возвращает параметр расширенного запроса expand.q
  • SolrQuery::getExpandRows — Возвращает количество строк, отображаемых в каждой группе (expand.rows)
  • SolrQuery::getExpandSortFields — Возвращает массив полей
  • SolrQuery::getFacet — Возвращает значение параметра фасета
  • SolrQuery::getFacetDateEnd — Возвращает значение параметра facet.date.end
  • SolrQuery::getFacetDateFields — Возвращает все поля facet.date
  • SolrQuery::getFacetDateGap — Возвращает значение параметра facet.date.gap
  • SolrQuery::getFacetDateHardEnd — Возвращает значение параметра facet.date.hardend
  • SolrQuery::getFacetDateOther — Возвращает значение параметра facet.date.other
  • SolrQuery::getFacetDateStart — Возвращает нижнюю границу первого диапазона дат для всех аспектов даты в этом поле
  • SolrQuery::getFacetFields — Возвращает все поля фасетов
  • SolrQuery::getFacetLimit — Возвращает максимальное количество счётчиков ограничений, которое должно быть возвращено для полей фасета
  • SolrQuery::getFacetMethod — Возвращает значение параметра facet.method
  • SolrQuery::getFacetMinCount — Возвращает минимальное количество полей аспектов, которые должны быть включены в ответ
  • SolrQuery::getFacetMissing — Возвращает текущее состояние параметра facet.missing
  • SolrQuery::getFacetOffset — Возвращает смещение в списке ограничений, которые будут использоваться для постраничной навигации
  • SolrQuery::getFacetPrefix — Возвращает префикс фасета
  • SolrQuery::getFacetQueries — Возвращает все фасетные запросы
  • SolrQuery::getFacetSort — Возвращает тип сортировки фасета
  • SolrQuery::getFields — Возвращает список полей, которые будут возвращены в ответе
  • SolrQuery::getFilterQueries — Возвращает массив запросов фильтра
  • SolrQuery::getGroup — Возвращает true, если группировка включена
  • SolrQuery::getGroupCachePercent — Возвращает процентное значение группового кеша
  • SolrQuery::getGroupFacet — Возвращает значение параметра group.facet
  • SolrQuery::getGroupFields — Возвращает групповые поля (значения параметра group.field)
  • SolrQuery::getGroupFormat — Возвращает значение group.format
  • SolrQuery::getGroupFunctions — Возвращает групповые функции (значения параметров group.func)
  • SolrQuery::getGroupLimit — Возвращает значение group.limit
  • SolrQuery::getGroupMain — Возвращает значение group.main
  • SolrQuery::getGroupNGroups — Возвращает значение group.ngroups
  • SolrQuery::getGroupOffset — Возвращает значение group.offset
  • SolrQuery::getGroupQueries — Возвращает все значения параметра group.query
  • SolrQuery::getGroupSortFields — Возвращает значение group.sort
  • SolrQuery::getGroupTruncate — Возвращает значение group.truncate
  • SolrQuery::getHighlight — Возвращает состояние параметра hl
  • SolrQuery::getHighlightAlternateField — Возвращает выделенное поле для использования в качестве резервной копии или по умолчанию
  • SolrQuery::getHighlightFields — Возвращает все поля, для которых Solr должен генерировать выделенные фрагменты
  • SolrQuery::getHighlightFormatter — Возвращает средство форматирования для выделенного вывода
  • SolrQuery::getHighlightFragmenter — Возвращает генератор фрагментов текста для выделенного текста
  • SolrQuery::getHighlightFragsize — Возвращает количество символов фрагментов для выделения
  • SolrQuery::getHighlightHighlightMultiTerm — Возвращает, следует ли включать выделение для запросов диапазона/подстановочных знаков/нечётких/префиксов
  • SolrQuery::getHighlightMaxAlternateFieldLength — Возвращает максимальное количество символов поля для возврата
  • SolrQuery::getHighlightMaxAnalyzedChars — Возвращает максимальное количество символов в документе для поиска подходящих фрагментов
  • SolrQuery::getHighlightMergeContiguous — Возвращает, свернуть ли смежные фрагменты в один фрагмент
  • SolrQuery::getHighlightRegexMaxAnalyzedChars — Возвращает максимальное количество символов из поля при использовании фрагментатора регулярного выражения
  • SolrQuery::getHighlightRegexPattern — Возвращает регулярное выражение для фрагментации
  • SolrQuery::getHighlightRegexSlop — Возвращает коэффициент отклонения от идеального размера фрагмента
  • SolrQuery::getHighlightRequireFieldMatch — Возвращает, если поле будет выделено только в том случае, если запрос соответствует этому конкретному полю
  • SolrQuery::getHighlightSimplePost — Возвращает текст, который появляется после выделенного выражения
  • SolrQuery::getHighlightSimplePre — Возвращает текст, который появляется перед выделенным выражением
  • SolrQuery::getHighlightSnippets — Возвращает максимальное количество выделенных фрагментов для создания для каждого поля
  • SolrQuery::getHighlightUsePhraseHighlighter — Возвращает состояние параметра hl.usePhraseHighlighter
  • SolrQuery::getMlt — Возвращает, должны ли быть включены результаты MoreLikeThis
  • SolrQuery::getMltBoost — Возвращает, будет ли запрос усилен релевантностью интересующего выражения
  • SolrQuery::getMltCount — Возвращает количество похожих документов, возвращаемых для каждого результата
  • SolrQuery::getMltFields — Возвращает все поля, которые нужно использовать для сравнения
  • SolrQuery::getMltMaxNumQueryTerms — Возвращает максимальное количество условий запроса, которые будут включены в любой сгенерированный запрос
  • SolrQuery::getMltMaxNumTokens — Возвращает максимальное количество токенов для анализа в каждом поле документа, которое не хранится с поддержкой TermVector
  • SolrQuery::getMltMaxWordLength — Возвращает максимальную длину слова, выше которой слова будут игнорироваться
  • SolrQuery::getMltMinDocFrequency — Возвращает пороговую частоту, с которой будут игнорироваться слова, которых нет, по крайней мере, в таком количестве документов
  • SolrQuery::getMltMinTermFrequency — Возвращает частоту, ниже которой выражения будут игнорироваться в исходном документе
  • SolrQuery::getMltMinWordLength — Возвращает минимальную длину слова, ниже которой слова будут игнорироваться
  • SolrQuery::getMltQueryFields — Возвращает поля запроса и их повышения
  • SolrQuery::getQuery — Возвращает основной запрос
  • SolrQuery::getRows — Возвращает максимальное количество документов
  • SolrQuery::getSortFields — Возвращает все поля сортировки
  • SolrQuery::getStart — Возвращает смещение в полном наборе результатов
  • SolrQuery::getStats — Возвращает, включена ли статистика
  • SolrQuery::getStatsFacets — Возвращает все фасеты статистики, которые были установлены
  • SolrQuery::getStatsFields — Возвращает все поля статистики
  • SolrQuery::getTerms — Возвращает, включён ли TermsComponent
  • SolrQuery::getTermsField — Возвращает поле, из которого извлекаются выражения
  • SolrQuery::getTermsIncludeLowerBound — Возвращает, нужно ли включать выражение нижней границы в набор результатов
  • SolrQuery::getTermsIncludeUpperBound — Возвращает, нужно ли включать выражение верхней границы в набор результатов
  • SolrQuery::getTermsLimit — Возвращает максимальное количество выражений, которые должна вернуть Solr
  • SolrQuery::getTermsLowerBound — Возвращает выражение для начала
  • SolrQuery::getTermsMaxCount — Возвращает максимальную частоту документа
  • SolrQuery::getTermsMinCount — Возвращает минимальную частоту возврата документов для включения
  • SolrQuery::getTermsPrefix — Возвращает префикс выражения
  • SolrQuery::getTermsReturnRaw — Следует ли возвращать необработанные символы
  • SolrQuery::getTermsSort — Возвращает целое число, указывающее, как сортируются выражения
  • SolrQuery::getTermsUpperBound — Возвращает выражение для остановки
  • SolrQuery::getTimeAllowed — Возвращает время в миллисекундах, разрешённое для завершения запроса
  • SolrQuery::removeExpandFilterQuery — Удаляет запрос расширенного фильтра
  • SolrQuery::removeExpandSortField — Удаляет расширенное поле сортировки из параметра expand.sort
  • SolrQuery::removeFacetDateField — Удаляет одно из полей даты фасета
  • SolrQuery::removeFacetDateOther — Удаляет один из параметров facet.date.other
  • SolrQuery::removeFacetField — Удаляет один из параметров facet.date
  • SolrQuery::removeFacetQuery — Удаляет один из параметров facet.query
  • SolrQuery::removeField — Удаляет поле из списка полей
  • SolrQuery::removeFilterQuery — Удаляет запрос фильтра
  • SolrQuery::removeHighlightField — Удаляет одно из полей, используемых для выделения
  • SolrQuery::removeMltField — Удаляет одно из полей moreLikeThis
  • SolrQuery::removeMltQueryField — Удаляет одно из полей запроса moreLikeThis
  • SolrQuery::removeSortField — Удаляет одно из полей сортировки
  • SolrQuery::removeStatsFacet — Удаляет один из параметров stats.facet
  • SolrQuery::removeStatsField — Удаляет один из параметров stats.field
  • SolrQuery::setEchoHandler — Переключает параметр echoHandler
  • SolrQuery::setEchoParams — Определяет, какие параметры включать в ответ
  • SolrQuery::setExpand — Включает/отключает компонент Expand
  • SolrQuery::setExpandQuery — Устанавливает параметр expand.q
  • SolrQuery::setExpandRows — Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5
  • SolrQuery::setExplainOther — Устанавливает общий параметр запроса explainOther
  • SolrQuery::setFacet — Соответствует параметру фасета. Включает или отключает фасетирование
  • SolrQuery::setFacetDateEnd — Соответствует facet.date.end
  • SolrQuery::setFacetDateGap — Соответствует facet.date.gap
  • SolrQuery::setFacetDateHardEnd — Соответствует facet.date.hardend
  • SolrQuery::setFacetDateStart — Соответствует facet.date.start
  • SolrQuery::setFacetEnumCacheMinDefaultFrequency — Устанавливает минимальную частоту документа, используемую для определения количества выражений
  • SolrQuery::setFacetLimit — Соответствует facet.limit
  • SolrQuery::setFacetMethod — Задаёт тип алгоритма, который следует использовать при фасетировании поля
  • SolrQuery::setFacetMinCount — Соответствует facet.mincount
  • SolrQuery::setFacetMissing — Соответствует facet.missing
  • SolrQuery::setFacetOffset — Устанавливает смещение в список ограничений для разбивки на страницы
  • SolrQuery::setFacetPrefix — Определяет строковый префикс, с помощью которого ограничиваются выражения, на которых выполняется фасет
  • SolrQuery::setFacetSort — Определяет порядок ограничений поля фасета
  • SolrQuery::setGroup — Включает/отключает группировку результатов (параметр group)
  • SolrQuery::setGroupCachePercent — Включает кеширование для группировки результатов
  • SolrQuery::setGroupFacet — Устанавливает параметр group.facet
  • SolrQuery::setGroupFormat — Устанавливает формат группы, структуру результата (параметр group.format)
  • SolrQuery::setGroupLimit — Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
  • SolrQuery::setGroupMain — Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupNGroups — Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupOffset — Устанавливает параметр group.offset
  • SolrQuery::setGroupTruncate — Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setHighlight — Включает или отключает выделение
  • SolrQuery::setHighlightAlternateField — Задаёт поле резервного копирования для использования
  • SolrQuery::setHighlightFormatter — Задаёт средство форматирования для вывода выделения
  • SolrQuery::setHighlightFragmenter — Устанавливает генератор текстовых фрагментов для выделенного текста
  • SolrQuery::setHighlightFragsize — Размер фрагментов, которые следует учитывать при выделении
  • SolrQuery::setHighlightHighlightMultiTerm — Использовать SpanScorer для выделения выражений
  • SolrQuery::setHighlightMaxAlternateFieldLength — Устанавливает максимальное количество символов поля для возврата
  • SolrQuery::setHighlightMaxAnalyzedChars — Задаёт количество символов в документе для поиска подходящих фрагментов
  • SolrQuery::setHighlightMergeContiguous — Свёртывать ли смежные фрагменты в один фрагмент
  • SolrQuery::setHighlightRegexMaxAnalyzedChars — Задаёт максимальное количество символов для анализа
  • SolrQuery::setHighlightRegexPattern — Задаёт регулярное выражение для фрагментации
  • SolrQuery::setHighlightRegexSlop — Устанавливает коэффициент, на который фрагментатор регулярного выражения может отклониться от идеального размера фрагмента
  • SolrQuery::setHighlightRequireFieldMatch — Требовать сопоставления полей при выделении
  • SolrQuery::setHighlightSimplePost — Устанавливает текст, который появляется после выделенного выражения
  • SolrQuery::setHighlightSimplePre — Устанавливает текст, который появляется перед выделенным выражением
  • SolrQuery::setHighlightSnippets — Устанавливает максимальное количество выделенных фрагментов для создания для каждого поля
  • SolrQuery::setHighlightUsePhraseHighlighter — Следует ли выделять выражения только тогда, когда они появляются во фразе запроса
  • SolrQuery::setMlt — Включает или отключает moreLikeThis
  • SolrQuery::setMltBoost — Устанавливает, будет ли запрос усилен релевантностью интересного выражения
  • SolrQuery::setMltCount — Устанавливает количество похожих документов, возвращаемых для каждого результата
  • SolrQuery::setMltMaxNumQueryTerms — Устанавливает максимальное количество включаемых выражений запроса
  • SolrQuery::setMltMaxNumTokens — Задаёт максимальное количество токенов для анализа
  • SolrQuery::setMltMaxWordLength — Устанавливает максимальную длину слова
  • SolrQuery::setMltMinDocFrequency — Устанавливает частоту mltMinDoc
  • SolrQuery::setMltMinTermFrequency — Устанавливает частоту, ниже которой выражения будут игнорироваться в исходной документации
  • SolrQuery::setMltMinWordLength — Устанавливает минимальную длину слова
  • SolrQuery::setOmitHeader — Исключает заголовок из возвращаемых результатов
  • SolrQuery::setQuery — Устанавливает поисковый запрос
  • SolrQuery::setRows — Задаёт максимальное количество строк, возвращаемых в результате
  • SolrQuery::setShowDebugInfo — Флаг для отображения отладочной информации
  • SolrQuery::setStart — Определяет количество пропускаемых строк
  • SolrQuery::setStats — Включает или отключает компонент Stats
  • SolrQuery::setTerms — Включает или отключает TermsComponent
  • SolrQuery::setTermsField — Устанавливает имя поля, из которого нужно получить выражение
  • SolrQuery::setTermsIncludeLowerBound — Включает нижнюю границу выражения в набор результатов
  • SolrQuery::setTermsIncludeUpperBound — Включает верхнюю границу выражения в набор результатов
  • SolrQuery::setTermsLimit — Устанавливает максимальное количество возвращаемых выражений
  • SolrQuery::setTermsLowerBound — Определяет выражение, с которого нужно начинать
  • SolrQuery::setTermsMaxCount — Устанавливает максимальную частоту документов
  • SolrQuery::setTermsMinCount — Устанавливает минимальную частоту документов
  • SolrQuery::setTermsPrefix — Ограничивает совпадения выражениями, начинающимися с префикса
  • SolrQuery::setTermsReturnRaw — Вернуть необработанные символы проиндексированного выражения
  • SolrQuery::setTermsSort — Определяет, как сортировать возвращённые условия
  • SolrQuery::setTermsUpperBound — Устанавливает условие для остановки
  • SolrQuery::setTimeAllowed — Время, отведённое на поиск


Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу

  • « SolrQuery
  • SolrQuery::addExpandSortField »
  • PHP Manual
  • SolrQuery
  • Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу

SolrQuery::addExpandFilterQuery

(PECL solr >= 2.2.0)

SolrQuery::addExpandFilterQuery — Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу

Описание

public SolrQuery::addExpandFilterQuery(string $fq): SolrQuery

Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу.

Список параметров

fq

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Включает/отключает компонент Expand
  • SolrQuery::addExpandSortField() - Упорядочивает документы в расширенных группах (параметр expand.sort)
  • SolrQuery::removeExpandSortField() - Удаляет расширенное поле сортировки из параметра expand.sort
  • SolrQuery::setExpandRows() - Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5
  • SolrQuery::setExpandQuery() - Устанавливает параметр expand.q
  • SolrQuery::removeExpandFilterQuery() - Удаляет запрос расширенного фильтра


Упорядочивает документы в расширенных группах (параметр expand.sort)

  • « SolrQuery::addExpandFilterQuery
  • SolrQuery::addFacetDateField »
  • PHP Manual
  • SolrQuery
  • Упорядочивает документы в расширенных группах (параметр expand.sort)

SolrQuery::addExpandSortField

(PECL solr >= 2.2.0)

SolrQuery::addExpandSortField — Упорядочивает документы в расширенных группах (параметр expand.sort)

Описание

public SolrQuery::addExpandSortField(string $field, string $order = ?): SolrQuery

Упорядочивает документы в расширенных группах (параметр expand.sort).

Список параметров

field

Имя поля

order

Порядок ASC/DESC, используя константы SolrQuery::ORDER_*.

По умолчанию: SolrQuery::ORDER_DESC

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Включает/отключает компонент Expand
  • SolrQuery::removeExpandSortField() - Удаляет расширенное поле сортировки из параметра expand.sort
  • SolrQuery::setExpandRows() - Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5
  • SolrQuery::setExpandQuery() - Устанавливает параметр expand.q
  • SolrQuery::addExpandFilterQuery() - Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу
  • SolrQuery::removeExpandFilterQuery() - Удаляет запрос расширенного фильтра


Карты для facet.date

  • « SolrQuery::addExpandSortField
  • SolrQuery::addFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Карты для facet.date

SolrQuery::addFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateField — Карты для facet.date

Описание

public SolrQuery::addFacetDateField(string $dateField): SolrQuery

Метод позволяет указать поле, которое должно рассматриваться как фасет.

Может использоваться несколько раз с разными именами полей для указания нескольких полей фасетов

Список параметров

dateField

Название поля даты.

Возвращаемые значения

Возвращает объект SolrQuery.


Добавляет ещё один параметр facet.date.other

  • « SolrQuery::addFacetDateField
  • SolrQuery::addFacetField »
  • PHP Manual
  • SolrQuery
  • Добавляет ещё один параметр facet.date.other

SolrQuery::addFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateOther — Добавляет ещё один параметр facet.date.other

Описание

public SolrQuery::addFacetDateOther(string $value, string $field_override = ?): SolrQuery

Устанавливает параметр facet.date.other. Принимает необязательное переопределение поля

Список параметров

value

Значение для использования.

field_override

Имя поля для переопределения.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Добавляет другое поле к фасету

  • « SolrQuery::addFacetDateOther
  • SolrQuery::addFacetQuery »
  • PHP Manual
  • SolrQuery
  • Добавляет другое поле к фасету

SolrQuery::addFacetField

(PECL solr >= 0.9.2)

SolrQuery::addFacetField — Добавляет другое поле к фасету

Описание

public SolrQuery::addFacetField(string $field): SolrQuery

Добавляет другое поле к фасету

Список параметров

field

Название поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.

Примеры

Пример #1 Пример использования SolrQuery::addFacetField()

<?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
        )

)


Добавляет фасетный запрос

  • « SolrQuery::addFacetField
  • SolrQuery::addField »
  • PHP Manual
  • SolrQuery
  • Добавляет фасетный запрос

SolrQuery::addFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::addFacetQuery — Добавляет фасетный запрос

Описание

public SolrQuery::addFacetQuery(string $facetQuery): SolrQuery

Добавляет фасетный запрос

Список параметров

facetQuery

Фасетный запрос

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.

Примеры

Пример #1 Пример использования SolrQuery::addFacetField()

<?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
)


Указывает, какие поля возвращать в результате

  • « SolrQuery::addFacetQuery
  • SolrQuery::addFilterQuery »
  • PHP Manual
  • SolrQuery
  • Указывает, какие поля возвращать в результате

SolrQuery::addField

(PECL solr >= 0.9.2)

SolrQuery::addField — Указывает, какие поля возвращать в результате

Описание

public SolrQuery::addField(string $field): SolrQuery

Метод используется для указания набора полей для возврата, тем самым ограничивая объем данных, возвращаемых в ответе.

Он должен вызываться несколько раз, по одному разу для каждого имени поля.

Список параметров

field

Название поля

Возвращаемые значения

Возвращает текущий объект SolrQuery


Определяет запрос фильтра

  • « SolrQuery::addField
  • SolrQuery::addGroupField »
  • PHP Manual
  • SolrQuery
  • Определяет запрос фильтра

SolrQuery::addFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::addFilterQuery — Определяет запрос фильтра

Описание

public SolrQuery::addFilterQuery(string $fq): SolrQuery

Определяет запрос фильтра

Список параметров

fq

Фильтр запроса

Возвращаемые значения

Возвращает текущий объект SolrQuery.

Примеры

Пример #1 Пример использования SolrQuery::addFilterQuery()

<?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


Добавляет поле, которое будет использоваться для группировки результатов

  • « SolrQuery::addFilterQuery
  • SolrQuery::addGroupFunction »
  • PHP Manual
  • SolrQuery
  • Добавляет поле, которое будет использоваться для группировки результатов

SolrQuery::addGroupField

(PECL solr >= 2.2.0)

SolrQuery::addGroupField — Добавляет поле, которое будет использоваться для группировки результатов

Описание

public SolrQuery::addGroupField(string $value): SolrQuery

Имя поля, по которому группируются результаты. Поле должно быть однозначным и либо индексироваться, либо иметь тип поля, который имеет источник значения и работает в запросе функции, например, ExternalFileField. Это также должно быть строковое поле, такое как StrField или TextField Использует параметр group.field

Список параметров

value

Имя поля.

Возвращаемые значения

Возвращает экземпляр SolrQuery.

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)
  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet
  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset
  • SolrQuery::setGroupLimit() - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)
  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)

  • « SolrQuery::addGroupField
  • SolrQuery::addGroupQuery »
  • PHP Manual
  • SolrQuery
  • Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)

SolrQuery::addGroupFunction

(PECL solr >= 2.2.0)

SolrQuery::addGroupFunction — Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)

Описание

public SolrQuery::addGroupFunction(string $value): SolrQuery

Добавляет функцию группировки (параметр group.func) Позволяет группировать результаты на основе уникальных значений запроса функции.

Список параметров

value

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)
  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet
  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset
  • SolrQuery::setGroupLimit() - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)
  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Позволяет группировать документы, соответствующие данному запросу

  • « SolrQuery::addGroupFunction
  • SolrQuery::addGroupSortField »
  • PHP Manual
  • SolrQuery
  • Позволяет группировать документы, соответствующие данному запросу

SolrQuery::addGroupQuery

(PECL solr >= 2.2.0)

SolrQuery::addGroupQuery — Позволяет группировать документы, соответствующие данному запросу

Описание

public SolrQuery::addGroupQuery(string $value): SolrQuery

Позволяет группировать документы, соответствующие данному запросу. Добавляет запрос в параметр group.query

Список параметров

value

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)
  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet
  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset
  • SolrQuery::setGroupLimit() - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)
  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Добавляет поле сортировки группы (параметр group.sort)

  • « SolrQuery::addGroupQuery
  • SolrQuery::addHighlightField »
  • PHP Manual
  • SolrQuery
  • Добавляет поле сортировки группы (параметр group.sort)

SolrQuery::addGroupSortField

(PECL solr >= 2.2.0)

SolrQuery::addGroupSortField — Добавляет поле сортировки группы (параметр group.sort)

Описание

public SolrQuery::addGroupSortField(string $field, int $order = ?): SolrQuery

Позволяет сортировать групповые документы, используя поле сортировки группы (параметр group.sort).

Список параметров

field

Название поля

order

Направление сортировки ASC/DESC, используйте константы SolrQuery::ORDER_*

Возвращаемые значения

Примеры

Пример #1 Пример использования SolrQuery::addGroupSortField()

<?php

$solrQuery = new SolrQuery('*:*');
$solrQuery
->setGroup(true)
->addGroupSortField('price', SolrQuery::ORDER_ASC);

echo $solrQuery;
?>

Результатом выполнения данного примера будет что-то подобное:

q=*:*&group=true&group.sort=price asc

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)
  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet
  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset
  • SolrQuery::setGroupLimit() - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)
  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Соответствует hl.fl

  • « SolrQuery::addGroupSortField
  • SolrQuery::addMltField »
  • PHP Manual
  • SolrQuery
  • Соответствует hl.fl

SolrQuery::addHighlightField

(PECL solr >= 0.9.2)

SolrQuery::addHighlightField — Соответствует hl.fl

Описание

public SolrQuery::addHighlightField(string $field): SolrQuery

Соответствует hl.fl. Используется, чтобы указать, что выделенные фрагменты должны быть созданы для определённого поля.

Список параметров

field

Название поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает поле для использования для подобия

  • « SolrQuery::addHighlightField
  • SolrQuery::addMltQueryField »
  • PHP Manual
  • SolrQuery
  • Устанавливает поле для использования для подобия

SolrQuery::addMltField

(PECL solr >= 0.9.2)

SolrQuery::addMltField — Устанавливает поле для использования для подобия

Описание

public SolrQuery::addMltField(string $field): SolrQuery

Соответствует mlt.fl. Указывает, что поле должно использоваться для подобия.

Список параметров

field

Название поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Соответствует mlt.qf

  • « SolrQuery::addMltField
  • SolrQuery::addSortField »
  • PHP Manual
  • SolrQuery
  • Соответствует mlt.qf

SolrQuery::addMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::addMltQueryField — Соответствует mlt.qf

Описание

public SolrQuery::addMltQueryField(string $field, float $boost): SolrQuery

Соответствует mlt.qf. Используется для указания полей запроса и их повышения.

Список параметров

field

Название поля

boost

Значение повышения

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Используется для управления сортировкой результатов

  • « SolrQuery::addMltQueryField
  • SolrQuery::addStatsFacet »
  • PHP Manual
  • SolrQuery
  • Используется для управления сортировкой результатов

SolrQuery::addSortField

(PECL solr >= 0.9.2)

SolrQuery::addSortField — Используется для управления сортировкой результатов

Описание

public SolrQuery::addSortField(string $field, int $order = SolrQuery::ORDER_DESC): SolrQuery

Используется для управления сортировкой результатов.

Список параметров

field

Название поля

order

Направление сортировки. Должно быть либо SolrQuery::ORDER_ASC, либо SolrQuery::ORDER_DESC.

Возвращаемые значения

Возвращает текущий объект SolrQuery.


Запрашивает возврат вспомогательных результатов для значений в данном фасете

  • « SolrQuery::addSortField
  • SolrQuery::addStatsField »
  • PHP Manual
  • SolrQuery
  • Запрашивает возврат вспомогательных результатов для значений в данном фасете

SolrQuery::addStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::addStatsFacet — Запрашивает возврат вспомогательных результатов для значений в данном фасете

Описание

public SolrQuery::addStatsFacet(string $field): SolrQuery

Запрашивает возврат вспомогательных результатов для значений в данном фасете. Соответствует полю stats.facet

Список параметров

field

Название поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Соответствует параметру stats.field

  • « SolrQuery::addStatsFacet
  • SolrQuery::collapse »
  • PHP Manual
  • SolrQuery
  • Соответствует параметру stats.field

SolrQuery::addStatsField

(PECL solr >= 0.9.2)

SolrQuery::addStatsField — Соответствует параметру stats.field

Описание

public SolrQuery::addStatsField(string $field): SolrQuery

Соответствует параметру stats.field. Метод добавляет ещё один параметр stats.field.

Список параметров

field

Название поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Сворачивает набор результатов до одного документа на группу

  • « SolrQuery::addStatsField
  • SolrQuery::__construct »
  • PHP Manual
  • SolrQuery
  • Сворачивает набор результатов до одного документа на группу

SolrQuery::collapse

(Информация о версии неизвестна, возможно, только в Git)

SolrQuery::collapse — Сворачивает набор результатов до одного документа на группу

Описание

public SolrQuery::collapse(SolrCollapseFunction $collapseFunction): SolrQuery

Сворачивает набор результатов в один документ для каждой группы, прежде чем он пересылает набор результатов остальным компонентам поиска.

Таким образом, все последующие компоненты (фасетирование, выделение и т.д.) будут работать со свёрнутым набором результатов.

Список параметров

collapseFunction

Возвращаемые значения

Возвращает текущий объект SolrQuery

Примеры

Пример #1 Пример использования SolrQuery::collapse()

<?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
                        )

                )

        )

)


Конструктор

  • « SolrQuery::collapse
  • SolrQuery::__destruct »
  • PHP Manual
  • SolrQuery
  • Конструктор

SolrQuery::__construct

(PECL solr >= 0.9.2)

SolrQuery::__construct — Конструктор

Описание

public SolrQuery::__construct(string $q = ?)

Конструктор.

Список параметров

q

Дополнительный поисковый запрос

Возвращаемые значения

Ничего

Ошибки

Выбрасывает SolrIllegalArgumentException в случае передачи недопустимого параметра.

Список изменений

Версия | Описание
PECL solr 2.0.0 | Если q был недопустимым, выбрасывается исключение SolrIllegalArgumentException. Ранее выдавалась ошибка.


Деструктор

  • « SolrQuery::__construct
  • SolrQuery::getExpand »
  • PHP Manual
  • SolrQuery
  • Деструктор

SolrQuery::__destruct

(PECL solr >= 0.9.2)

SolrQuery::__destruct — Деструктор

Описание

public SolrQuery::__destruct()

Деструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ничего.


Возвращает true, если включено расширение группы

  • « SolrQuery::__destruct
  • SolrQuery::getExpandFilterQueries »
  • PHP Manual
  • SolrQuery
  • Возвращает true, если включено расширение группы

SolrQuery::getExpand

(PECL solr >= 2.2.0)

SolrQuery::getExpand — Возвращает true, если включено расширение группы

Описание

public SolrQuery::getExpand(): bool

Возвращает true, если включено расширение группы

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает включено ли расширение группы или нет.


Возвращает запросы расширенного фильтра

  • « SolrQuery::getExpand
  • SolrQuery::getExpandQuery »
  • PHP Manual
  • SolrQuery
  • Возвращает запросы расширенного фильтра

SolrQuery::getExpandFilterQueries

(PECL solr >= 2.2.0)

SolrQuery::getExpandFilterQueries — Возвращает запросы расширенного фильтра

Описание

public SolrQuery::getExpandFilterQueries(): array

Возвращает запросы расширенного фильтра

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает запросы расширенного фильтра.


Возвращает параметр расширенного запроса expand.q

  • « SolrQuery::getExpandFilterQueries
  • SolrQuery::getExpandRows »
  • PHP Manual
  • SolrQuery
  • Возвращает параметр расширенного запроса expand.q

SolrQuery::getExpandQuery

(PECL solr >= 2.2.0)

SolrQuery::getExpandQuery — Возвращает параметр расширенного запроса expand.q

Описание

public SolrQuery::getExpandQuery(): array

Возвращает параметр расширенного запроса expand.q

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает расширенный запрос.


Возвращает количество строк, отображаемых в каждой группе (expand.rows)

  • « SolrQuery::getExpandQuery
  • SolrQuery::getExpandSortFields »
  • PHP Manual
  • SolrQuery
  • Возвращает количество строк, отображаемых в каждой группе (expand.rows)

SolrQuery::getExpandRows

(PECL solr >= 2.2.0)

SolrQuery::getExpandRows — Возвращает количество строк, отображаемых в каждой группе (expand.rows)

Описание

public SolrQuery::getExpandRows(): int

Возвращает количество строк, отображаемых в каждой группе (expand.rows)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество строк.


Возвращает массив полей

  • « SolrQuery::getExpandRows
  • SolrQuery::getFacet »
  • PHP Manual
  • SolrQuery
  • Возвращает массив полей

SolrQuery::getExpandSortFields

(PECL solr >= 2.2.0)

SolrQuery::getExpandSortFields — Возвращает массив полей

Описание

public SolrQuery::getExpandSortFields(): array

Возвращает массив полей

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив полей.


Возвращает значение параметра фасета

  • « SolrQuery::getExpandSortFields
  • SolrQuery::getFacetDateEnd »
  • PHP Manual
  • SolrQuery
  • Возвращает значение параметра фасета

SolrQuery::getFacet

(PECL solr >= 0.9.2)

SolrQuery::getFacet — Возвращает значение параметра фасета

Описание

public SolrQuery::getFacet(): bool

Возвращает значение параметра фасета.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает логическое значение и null, если значение не установлено


Возвращает значение параметра facet.date.end

  • « SolrQuery::getFacet
  • SolrQuery::getFacetDateFields »
  • PHP Manual
  • SolrQuery
  • Возвращает значение параметра facet.date.end

SolrQuery::getFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateEnd — Возвращает значение параметра facet.date.end

Описание

public SolrQuery::getFacetDateEnd(string $field_override = ?): string

Возвращает значение параметра facet.date.end. Метод принимает необязательное переопределение поля.

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если значение не задано


Возвращает все поля facet.date

  • « SolrQuery::getFacetDateEnd
  • SolrQuery::getFacetDateGap »
  • PHP Manual
  • SolrQuery
  • Возвращает все поля facet.date

SolrQuery::getFacetDateFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateFields — Возвращает все поля facet.date

Описание

public SolrQuery::getFacetDateFields(): array

Возвращает все поля facet.date

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает все поля facet.date в виде массива или null, если ничего не задано


Возвращает значение параметра facet.date.gap

  • « SolrQuery::getFacetDateFields
  • SolrQuery::getFacetDateHardEnd »
  • PHP Manual
  • SolrQuery
  • Возвращает значение параметра facet.date.gap

SolrQuery::getFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateGap — Возвращает значение параметра facet.date.gap

Описание

public SolrQuery::getFacetDateGap(string $field_override = ?): string

Возвращает значение параметра facet.date.gap. Он принимает необязательное переопределение поля

Список параметров

field_override

Имя поля.

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если значение не задано


Возвращает значение параметра facet.date.hardend

  • « SolrQuery::getFacetDateGap
  • SolrQuery::getFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Возвращает значение параметра facet.date.hardend

SolrQuery::getFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateHardEnd — Возвращает значение параметра facet.date.hardend

Описание

public SolrQuery::getFacetDateHardEnd(string $field_override = ?): string

Возвращает значение параметра facet.date.hardend. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля.

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если значение не задано


Возвращает значение параметра facet.date.other

  • « SolrQuery::getFacetDateHardEnd
  • SolrQuery::getFacetDateStart »
  • PHP Manual
  • SolrQuery
  • Возвращает значение параметра facet.date.other

SolrQuery::getFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateOther — Возвращает значение параметра facet.date.other

Описание

public SolrQuery::getFacetDateOther(string $field_override = ?): array

Возвращает значение параметра facet.date.other. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля.

Возвращаемые значения

Возвращает массив (array) в случае успешного выполнения и null, если значение не задано


Возвращает нижнюю границу первого диапазона дат для всех аспектов даты в этом поле

  • « SolrQuery::getFacetDateOther
  • SolrQuery::getFacetFields »
  • PHP Manual
  • SolrQuery
  • Возвращает нижнюю границу первого диапазона дат для всех аспектов даты в этом поле

SolrQuery::getFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateStart — Возвращает нижнюю границу первого диапазона дат для всех аспектов даты в этом поле

Описание

public SolrQuery::getFacetDateStart(string $field_override = ?): string

Возвращает нижнюю границу первого диапазона дат для всех аспектов даты в этом поле. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если значение не задано


Возвращает все поля фасетов

  • « SolrQuery::getFacetDateStart
  • SolrQuery::getFacetLimit »
  • PHP Manual
  • SolrQuery
  • Возвращает все поля фасетов

SolrQuery::getFacetFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetFields — Возвращает все поля фасетов

Описание

public SolrQuery::getFacetFields(): array

Возвращает все поля фасетов

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив всех полей и null, если ничего не задано


Возвращает максимальное количество счётчиков ограничений, которое должно быть возвращено для полей фасета

  • « SolrQuery::getFacetFields
  • SolrQuery::getFacetMethod »
  • PHP Manual
  • SolrQuery
  • Возвращает максимальное количество счётчиков ограничений, которое должно быть возвращено для полей фасета

SolrQuery::getFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::getFacetLimit — Возвращает максимальное количество счётчиков ограничений, которое должно быть возвращено для полей фасета

Описание

public SolrQuery::getFacetLimit(string $field_override = ?): int

Возвращает максимальное количество счётчиков ограничений, которое должно быть возвращено для полей фасета. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля, которое нужно переопределить

Возвращаемые значения

Возвращает целое число в случае успешного выполнения и null, если значение не задано


Возвращает значение параметра facet.method

  • « SolrQuery::getFacetLimit
  • SolrQuery::getFacetMinCount »
  • PHP Manual
  • SolrQuery
  • Возвращает значение параметра facet.method

SolrQuery::getFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::getFacetMethod — Возвращает значение параметра facet.method

Описание

public SolrQuery::getFacetMethod(string $field_override = ?): string

Возвращает значение параметра facet.method. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если значение не задано


Возвращает минимальное количество полей аспектов, которые должны быть включены в ответ

  • « SolrQuery::getFacetMethod
  • SolrQuery::getFacetMissing »
  • PHP Manual
  • SolrQuery
  • Возвращает минимальное количество полей аспектов, которые должны быть включены в ответ

SolrQuery::getFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::getFacetMinCount — Возвращает минимальное количество полей аспектов, которые должны быть включены в ответ

Описание

public SolrQuery::getFacetMinCount(string $field_override = ?): int

Возвращает минимальное количество полей аспектов, которые должны быть включены в ответ. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает целое число в случае успешного выполнения и null, если значение не задано


Возвращает текущее состояние параметра facet.missing

  • « SolrQuery::getFacetMinCount
  • SolrQuery::getFacetOffset »
  • PHP Manual
  • SolrQuery
  • Возвращает текущее состояние параметра facet.missing

SolrQuery::getFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::getFacetMissing — Возвращает текущее состояние параметра facet.missing

Описание

public SolrQuery::getFacetMissing(string $field_override = ?): bool

Возвращает текущее состояние параметра facet.missing. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает логическое значение в случае успешного выполнения и null, если значение не задано


Возвращает смещение в списке ограничений, которые будут использоваться для постраничной навигации

  • « SolrQuery::getFacetMissing
  • SolrQuery::getFacetPrefix »
  • PHP Manual
  • SolrQuery
  • Возвращает смещение в списке ограничений, которые будут использоваться для постраничной навигации

SolrQuery::getFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::getFacetOffset — Возвращает смещение в списке ограничений, которые будут использоваться для постраничной навигации

Описание

public SolrQuery::getFacetOffset(string $field_override = ?): int

Возвращает смещение в списке ограничений, которые будут использоваться для постраничной навигации. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля, которое требуется переопределить.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если смещение не установлено


Возвращает префикс фасета

  • « SolrQuery::getFacetOffset
  • SolrQuery::getFacetQueries »
  • PHP Manual
  • SolrQuery
  • Возвращает префикс фасета

SolrQuery::getFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::getFacetPrefix — Возвращает префикс фасета

Описание

public SolrQuery::getFacetPrefix(string $field_override = ?): string

Возвращает префикс фасета

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если значение не задано


Возвращает все фасетные запросы

  • « SolrQuery::getFacetPrefix
  • SolrQuery::getFacetSort »
  • PHP Manual
  • SolrQuery
  • Возвращает все фасетные запросы

SolrQuery::getFacetQueries

(PECL solr >= 0.9.2)

SolrQuery::getFacetQueries — Возвращает все фасетные запросы

Описание

public SolrQuery::getFacetQueries(): array

Возвращает все фасетные запросы

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив в случае успешного выполнения и null, если значение не задано


Возвращает тип сортировки фасета

  • « SolrQuery::getFacetQueries
  • SolrQuery::getFields »
  • PHP Manual
  • SolrQuery
  • Возвращает тип сортировки фасета

SolrQuery::getFacetSort

(PECL solr >= 0.9.2)

SolrQuery::getFacetSort — Возвращает тип сортировки фасета

Описание

public SolrQuery::getFacetSort(string $field_override = ?): int

Возвращает целое число (SolrQuery::FACET_SORT_INDEX или SolrQuery::FACET_SORT_COUNT)

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает целое число (SolrQuery::FACET_SORT_INDEX или SolrQuery::FACET_SORT_COUNT) в случае успешного выполнения и null, если значение не задано


Возвращает список полей, которые будут возвращены в ответе

  • « SolrQuery::getFacetSort
  • SolrQuery::getFilterQueries »
  • PHP Manual
  • SolrQuery
  • Возвращает список полей, которые будут возвращены в ответе

SolrQuery::getFields

(PECL solr >= 0.9.2)

SolrQuery::getFields — Возвращает список полей, которые будут возвращены в ответе

Описание

public SolrQuery::getFields(): array

Возвращает список полей, которые будут возвращены в ответе

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив в случае успешного выполнения и null, если значение не задано


Возвращает массив запросов фильтра

  • « SolrQuery::getFields
  • SolrQuery::getGroup »
  • PHP Manual
  • SolrQuery
  • Возвращает массив запросов фильтра

SolrQuery::getFilterQueries

(PECL solr >= 0.9.2)

SolrQuery::getFilterQueries — Возвращает массив запросов фильтра

Описание

public SolrQuery::getFilterQueries(): array

Возвращает массив запросов фильтра. Это запросы, которые можно использовать для ограничения расширенного набора документов, которые могут быть возвращены, не влияя на оценку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив в случае успешного выполнения и null, если значение не задано


Возвращает true, если группировка включена

  • « SolrQuery::getFilterQueries
  • SolrQuery::getGroupCachePercent »
  • PHP Manual
  • SolrQuery
  • Возвращает true, если группировка включена

SolrQuery::getGroup

(PECL solr >= 2.2.0)

SolrQuery::getGroup — Возвращает true, если группировка включена

Описание

public SolrQuery::getGroup(): bool

Возвращает true, если группировка включена

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)


Возвращает процентное значение группового кеша

  • « SolrQuery::getGroup
  • SolrQuery::getGroupFacet »
  • PHP Manual
  • SolrQuery
  • Возвращает процентное значение группового кеша

SolrQuery::getGroupCachePercent

(PECL solr >= 2.2.0)

SolrQuery::getGroupCachePercent — Возвращает процентное значение группового кеша

Описание

public SolrQuery::getGroupCachePercent(): int

Возвращает процентное значение группового кеша

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Возвращает значение параметра group.facet

  • « SolrQuery::getGroupCachePercent
  • SolrQuery::getGroupFields »
  • PHP Manual
  • SolrQuery
  • Возвращает значение параметра group.facet

SolrQuery::getGroupFacet

(PECL solr >= 2.2.0)

SolrQuery::getGroupFacet — Возвращает значение параметра group.facet

Описание

public SolrQuery::getGroupFacet(): bool

Возвращает значение параметра group.facet

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet


Возвращает групповые поля (значения параметра group.field)

  • « SolrQuery::getGroupFacet
  • SolrQuery::getGroupFormat »
  • PHP Manual
  • SolrQuery
  • Возвращает групповые поля (значения параметра group.field)

SolrQuery::getGroupFields

(PECL solr >= 2.2.0)

SolrQuery::getGroupFields — Возвращает групповые поля (значения параметра group.field)

Описание

public SolrQuery::getGroupFields(): array

Возвращает групповые поля (значения параметра group.field)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов


Возвращает значение group.format

  • « SolrQuery::getGroupFields
  • SolrQuery::getGroupFunctions »
  • PHP Manual
  • SolrQuery
  • Возвращает значение group.format

SolrQuery::getGroupFormat

(PECL solr >= 2.2.0)

SolrQuery::getGroupFormat — Возвращает значение group.format

Описание

public SolrQuery::getGroupFormat(): string

Возвращает значение group.format

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)


Возвращает групповые функции (значения параметров group.func)

  • « SolrQuery::getGroupFormat
  • SolrQuery::getGroupLimit »
  • PHP Manual
  • SolrQuery
  • Возвращает групповые функции (значения параметров group.func)

SolrQuery::getGroupFunctions

(PECL solr >= 2.2.0)

SolrQuery::getGroupFunctions — Возвращает групповые функции (значения параметров group.func)

Описание

public SolrQuery::getGroupFunctions(): array

Возвращает групповые функции (значения параметров group.func)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)


Возвращает значение group.limit

  • « SolrQuery::getGroupFunctions
  • SolrQuery::getGroupMain »
  • PHP Manual
  • SolrQuery
  • Возвращает значение group.limit

SolrQuery::getGroupLimit

(PECL solr >= 2.2.0)

SolrQuery::getGroupLimit — Возвращает значение group.limit

Описание

public SolrQuery::getGroupLimit(): int

Возвращает значение group.limit.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupLimit() - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1


Возвращает значение group.main

  • « SolrQuery::getGroupLimit
  • SolrQuery::getGroupNGroups »
  • PHP Manual
  • SolrQuery
  • Возвращает значение group.main

SolrQuery::getGroupMain

(PECL solr >= 2.2.0)

SolrQuery::getGroupMain — Возвращает значение group.main

Описание

public SolrQuery::getGroupMain(): bool

Возвращает значение group.main

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple


Возвращает значение group.ngroups

  • « SolrQuery::getGroupMain
  • SolrQuery::getGroupOffset »
  • PHP Manual
  • SolrQuery
  • Возвращает значение group.ngroups

SolrQuery::getGroupNGroups

(PECL solr >= 2.2.0)

SolrQuery::getGroupNGroups — Возвращает значение group.ngroups

Описание

public SolrQuery::getGroupNGroups(): bool

Возвращает значение group.ngroups

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу


Возвращает значение group.offset

  • « SolrQuery::getGroupNGroups
  • SolrQuery::getGroupQueries »
  • PHP Manual
  • SolrQuery
  • Возвращает значение group.offset

SolrQuery::getGroupOffset

(PECL solr >= 2.2.0)

SolrQuery::getGroupOffset — Возвращает значение group.offset

Описание

public SolrQuery::getGroupOffset(): int

Возвращает значение group.offset.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset


Возвращает все значения параметра group.query

  • « SolrQuery::getGroupOffset
  • SolrQuery::getGroupSortFields »
  • PHP Manual
  • SolrQuery
  • Возвращает все значения параметра group.query

SolrQuery::getGroupQueries

(PECL solr >= 2.2.0)

SolrQuery::getGroupQueries — Возвращает все значения параметра group.query

Описание

public SolrQuery::getGroupQueries(): array

Возвращает все значения параметра group.query

Список параметров

У этой функции нет параметров.

Возвращаемые значения

array

Смотрите также

  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу


Возвращает значение group.sort

  • « SolrQuery::getGroupQueries
  • SolrQuery::getGroupTruncate »
  • PHP Manual
  • SolrQuery
  • Возвращает значение group.sort

SolrQuery::getGroupSortFields

(PECL solr >= 2.2.0)

SolrQuery::getGroupSortFields — Возвращает значение group.sort

Описание

public SolrQuery::getGroupSortFields(): array

Возвращает значение group.sort

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)


Возвращает значение group.truncate

  • « SolrQuery::getGroupSortFields
  • SolrQuery::getHighlight »
  • PHP Manual
  • SolrQuery
  • Возвращает значение group.truncate

SolrQuery::getGroupTruncate

(PECL solr >= 2.2.0)

SolrQuery::getGroupTruncate — Возвращает значение group.truncate

Описание

public SolrQuery::getGroupTruncate(): bool

Возвращает значение group.truncate

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу


Возвращает состояние параметра hl

  • « SolrQuery::getGroupTruncate
  • SolrQuery::getHighlightAlternateField »
  • PHP Manual
  • SolrQuery
  • Возвращает состояние параметра hl

SolrQuery::getHighlight

(PECL solr >= 0.9.2)

SolrQuery::getHighlight — Возвращает состояние параметра hl

Описание

public SolrQuery::getHighlight(): bool

Возвращает логическое значение, указывающее, следует ли включать выделенные фрагменты в ответе на запрос.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение в случае успешного выполнения и null, если значение не задано


Возвращает выделенное поле для использования в качестве резервной копии или по умолчанию

  • « SolrQuery::getHighlight
  • SolrQuery::getHighlightFields »
  • PHP Manual
  • SolrQuery
  • Возвращает выделенное поле для использования в качестве резервной копии или по умолчанию

SolrQuery::getHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::getHighlightAlternateField — Возвращает выделенное поле для использования в качестве резервной копии или по умолчанию

Описание

public SolrQuery::getHighlightAlternateField(string $field_override = ?): string

Возвращает выделенное поле для использования в качестве резервной копии или по умолчанию. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если значение не задано


Возвращает все поля, для которых Solr должен генерировать выделенные фрагменты

  • « SolrQuery::getHighlightAlternateField
  • SolrQuery::getHighlightFormatter »
  • PHP Manual
  • SolrQuery
  • Возвращает все поля, для которых Solr должен генерировать выделенные фрагменты

SolrQuery::getHighlightFields

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFields — Возвращает все поля, для которых Solr должен генерировать выделенные фрагменты

Описание

public SolrQuery::getHighlightFields(): array

Возвращает все поля, для которых Solr должен генерировать выделенные фрагменты.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив в случае успешного выполнения и null, если значение не задано


Возвращает средство форматирования для выделенного вывода

  • « SolrQuery::getHighlightFields
  • SolrQuery::getHighlightFragmenter »
  • PHP Manual
  • SolrQuery
  • Возвращает средство форматирования для выделенного вывода

SolrQuery::getHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFormatter — Возвращает средство форматирования для выделенного вывода

Описание

public SolrQuery::getHighlightFormatter(string $field_override = ?): string

Возвращает средство форматирования для выделенного вывода

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если значение не задано


Возвращает генератор фрагментов текста для выделенного текста

  • « SolrQuery::getHighlightFormatter
  • SolrQuery::getHighlightFragsize »
  • PHP Manual
  • SolrQuery
  • Возвращает генератор фрагментов текста для выделенного текста

SolrQuery::getHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragmenter — Возвращает генератор фрагментов текста для выделенного текста

Описание

public SolrQuery::getHighlightFragmenter(string $field_override = ?): string

Возвращает генератор фрагментов текста для выделенного текста. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если значение не задано


Возвращает количество символов фрагментов для выделения

  • « SolrQuery::getHighlightFragmenter
  • SolrQuery::getHighlightHighlightMultiTerm »
  • PHP Manual
  • SolrQuery
  • Возвращает количество символов фрагментов для выделения

SolrQuery::getHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragsize — Возвращает количество символов фрагментов для выделения

Описание

public SolrQuery::getHighlightFragsize(string $field_override = ?): int

Возвращает количество символов фрагментов для выделения. Ноль подразумевает отсутствие фрагментации. Следует использовать все поле.

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает целое число в случае успешного выполнения и null, если значение не задано


Возвращает, следует ли включать выделение для запросов диапазона/подстановочных знаков/нечётких/префиксов

  • « SolrQuery::getHighlightFragsize
  • SolrQuery::getHighlightMaxAlternateFieldLength »
  • PHP Manual
  • SolrQuery
  • Возвращает, следует ли включать выделение для запросов диапазона/подстановочных знаков/нечётких/префиксов

SolrQuery::getHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::getHighlightHighlightMultiTerm — Возвращает, следует ли включать выделение для запросов диапазона/подстановочных знаков/нечётких/префиксов

Описание

public SolrQuery::getHighlightHighlightMultiTerm(): bool

Возвращает, следует ли включать выделение для запросов диапазона/подстановочных знаков/нечётких/префиксов

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение в случае успешного выполнения и null, если значение не задано


Возвращает максимальное количество символов поля для возврата

  • « SolrQuery::getHighlightHighlightMultiTerm
  • SolrQuery::getHighlightMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Возвращает максимальное количество символов поля для возврата

SolrQuery::getHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAlternateFieldLength — Возвращает максимальное количество символов поля для возврата

Описание

public SolrQuery::getHighlightMaxAlternateFieldLength(string $field_override = ?): int

Возвращает максимальное количество символов поля для возврата

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает целое число в случае успешного выполнения и null, если значение не задано


Возвращает максимальное количество символов в документе для поиска подходящих фрагментов

  • « SolrQuery::getHighlightMaxAlternateFieldLength
  • SolrQuery::getHighlightMergeContiguous »
  • PHP Manual
  • SolrQuery
  • Возвращает максимальное количество символов в документе для поиска подходящих фрагментов

SolrQuery::getHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAnalyzedChars — Возвращает максимальное количество символов в документе для поиска подходящих фрагментов

Описание

public SolrQuery::getHighlightMaxAnalyzedChars(): int

Возвращает максимальное количество символов в документе для поиска подходящих фрагментов

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число в случае успешного выполнения и null, если значение не задано


Возвращает, свернуть ли смежные фрагменты в один фрагмент

  • « SolrQuery::getHighlightMaxAnalyzedChars
  • SolrQuery::getHighlightRegexMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Возвращает, свернуть ли смежные фрагменты в один фрагмент

SolrQuery::getHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMergeContiguous — Возвращает, свернуть ли смежные фрагменты в один фрагмент

Описание

public SolrQuery::getHighlightMergeContiguous(string $field_override = ?): bool

Возвращает, свернуть ли смежные фрагменты в один фрагмент. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает логическое значение в случае успешного выполнения и null, если значение не задано


Возвращает максимальное количество символов из поля при использовании фрагментатора регулярного выражения

  • « SolrQuery::getHighlightMergeContiguous
  • SolrQuery::getHighlightRegexPattern »
  • PHP Manual
  • SolrQuery
  • Возвращает максимальное количество символов из поля при использовании фрагментатора регулярного выражения

SolrQuery::getHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexMaxAnalyzedChars — Возвращает максимальное количество символов из поля при использовании фрагментатора регулярного выражения

Описание

public SolrQuery::getHighlightRegexMaxAnalyzedChars(): int

Возвращает максимальное количество символов из поля при использовании фрагментатора регулярного выражения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число в случае успешного выполнения и null, если значение не задано


Возвращает регулярное выражение для фрагментации

  • « SolrQuery::getHighlightRegexMaxAnalyzedChars
  • SolrQuery::getHighlightRegexSlop »
  • PHP Manual
  • SolrQuery
  • Возвращает регулярное выражение для фрагментации

SolrQuery::getHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexPattern — Возвращает регулярное выражение для фрагментации

Описание

public SolrQuery::getHighlightRegexPattern(): string

Возвращает регулярное выражение для фрагментации

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если значение не задано


Возвращает коэффициент отклонения от идеального размера фрагмента

  • « SolrQuery::getHighlightRegexPattern
  • SolrQuery::getHighlightRequireFieldMatch »
  • PHP Manual
  • SolrQuery
  • Возвращает коэффициент отклонения от идеального размера фрагмента

SolrQuery::getHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexSlop — Возвращает коэффициент отклонения от идеального размера фрагмента

Описание

public SolrQuery::getHighlightRegexSlop(): float

Возвращает коэффициент, на который фрагментатор регулярного выражения может отклониться от идеального размера фрагмента для соответствия регулярному выражению.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число с плавающей точкой (float) в случае успешного выполнения и null, если значение не задано.


Возвращает, если поле будет выделено только в том случае, если запрос соответствует этому конкретному полю

  • « SolrQuery::getHighlightRegexSlop
  • SolrQuery::getHighlightSimplePost »
  • PHP Manual
  • SolrQuery
  • Возвращает, если поле будет выделено только в том случае, если запрос соответствует этому конкретному полю

SolrQuery::getHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRequireFieldMatch — Возвращает, если поле будет выделено только в том случае, если запрос соответствует этому конкретному полю

Описание

public SolrQuery::getHighlightRequireFieldMatch(): bool

Возвращает, если поле будет выделено только в том случае, если запрос соответствует этому конкретному полю.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает логическое значение в случае успешного выполнения и null, если значение не задано


Возвращает текст, который появляется после выделенного выражения

  • « SolrQuery::getHighlightRequireFieldMatch
  • SolrQuery::getHighlightSimplePre »
  • PHP Manual
  • SolrQuery
  • Возвращает текст, который появляется после выделенного выражения

SolrQuery::getHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePost — Возвращает текст, который появляется после выделенного выражения

Описание

public SolrQuery::getHighlightSimplePost(string $field_override = ?): string

Возвращает текст, который появляется после выделенного выражения. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если значение не задано


Возвращает текст, который появляется перед выделенным выражением

  • « SolrQuery::getHighlightSimplePost
  • SolrQuery::getHighlightSnippets »
  • PHP Manual
  • SolrQuery
  • Возвращает текст, который появляется перед выделенным выражением

SolrQuery::getHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePre — Возвращает текст, который появляется перед выделенным выражением

Описание

public SolrQuery::getHighlightSimplePre(string $field_override = ?): string

Возвращает текст, который появляется перед выделенным выражением. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает строку в случае успешного выполнения и null, если значение не задано


Возвращает максимальное количество выделенных фрагментов для создания для каждого поля

  • « SolrQuery::getHighlightSimplePre
  • SolrQuery::getHighlightUsePhraseHighlighter »
  • PHP Manual
  • SolrQuery
  • Возвращает максимальное количество выделенных фрагментов для создания для каждого поля

SolrQuery::getHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSnippets — Возвращает максимальное количество выделенных фрагментов для создания для каждого поля

Описание

public SolrQuery::getHighlightSnippets(string $field_override = ?): int

Возвращает максимальное количество выделенных фрагментов для создания для каждого поля. Принимает необязательное переопределение поля

Список параметров

field_override

Имя поля

Возвращаемые значения

Возвращает целое число в случае успешного выполнения и null, если значение не установлено.


Возвращает состояние параметра hl.usePhraseHighlighter

  • « SolrQuery::getHighlightSnippets
  • SolrQuery::getMlt »
  • PHP Manual
  • SolrQuery
  • Возвращает состояние параметра hl.usePhraseHighlighter

SolrQuery::getHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightUsePhraseHighlighter — Возвращает состояние параметра hl.usePhraseHighlighter

Описание

public SolrQuery::getHighlightUsePhraseHighlighter(): bool

Возвращает, следует ли использовать SpanScorer для выделения фразовых выражений, только когда они появляются во фразе запроса в документе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает логическое значение и null, если значение не установлено.


Возвращает, должны ли быть включены результаты MoreLikeThis

  • « SolrQuery::getHighlightUsePhraseHighlighter
  • SolrQuery::getMltBoost »
  • PHP Manual
  • SolrQuery
  • Возвращает, должны ли быть включены результаты MoreLikeThis

SolrQuery::getMlt

(PECL solr >= 0.9.2)

SolrQuery::getMlt — Возвращает, должны ли быть включены результаты MoreLikeThis

Описание

public SolrQuery::getMlt(): bool

Возвращает, должны ли быть включены результаты MoreLikeThis

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает логическое значение и null, если значение не установлено.


Возвращает, будет ли запрос усилен релевантностью интересующего выражения

  • « SolrQuery::getMlt
  • SolrQuery::getMltCount »
  • PHP Manual
  • SolrQuery
  • Возвращает, будет ли запрос усилен релевантностью интересующего выражения

SolrQuery::getMltBoost

(PECL solr >= 0.9.2)

SolrQuery::getMltBoost — Возвращает, будет ли запрос усилен релевантностью интересующего выражения

Описание

public SolrQuery::getMltBoost(): bool

Возвращает, будет ли запрос усилен релевантностью интересующего выражения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает логическое значение и null, если значение не установлено.


Возвращает количество похожих документов, возвращаемых для каждого результата

  • « SolrQuery::getMltBoost
  • SolrQuery::getMltFields »
  • PHP Manual
  • SolrQuery
  • Возвращает количество похожих документов, возвращаемых для каждого результата

SolrQuery::getMltCount

(PECL solr >= 0.9.2)

SolrQuery::getMltCount — Возвращает количество похожих документов, возвращаемых для каждого результата

Описание

public SolrQuery::getMltCount(): int

Возвращает количество похожих документов, возвращаемых для каждого результата.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает все поля, которые нужно использовать для сравнения

  • « SolrQuery::getMltCount
  • SolrQuery::getMltMaxNumQueryTerms »
  • PHP Manual
  • SolrQuery
  • Возвращает все поля, которые нужно использовать для сравнения

SolrQuery::getMltFields

(PECL solr >= 0.9.2)

SolrQuery::getMltFields — Возвращает все поля, которые нужно использовать для сравнения

Описание

public SolrQuery::getMltFields(): array

Возвращает все поля, которые нужно использовать для сравнения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает массив и null, если значение не установлено.


Возвращает максимальное количество условий запроса, которые будут включены в любой сгенерированный запрос

  • « SolrQuery::getMltFields
  • SolrQuery::getMltMaxNumTokens »
  • PHP Manual
  • SolrQuery
  • Возвращает максимальное количество условий запроса, которые будут включены в любой сгенерированный запрос

SolrQuery::getMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumQueryTerms — Возвращает максимальное количество условий запроса, которые будут включены в любой сгенерированный запрос

Описание

public SolrQuery::getMltMaxNumQueryTerms(): int

Возвращает максимальное количество условий запроса, которые будут включены в любой сгенерированный запрос.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает максимальное количество токенов для анализа в каждом поле документа, которое не хранится с поддержкой TermVector

  • « SolrQuery::getMltMaxNumQueryTerms
  • SolrQuery::getMltMaxWordLength »
  • PHP Manual
  • SolrQuery
  • Возвращает максимальное количество токенов для анализа в каждом поле документа, которое не хранится с поддержкой TermVector

SolrQuery::getMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumTokens — Возвращает максимальное количество токенов для анализа в каждом поле документа, которое не хранится с поддержкой TermVector

Описание

public SolrQuery::getMltMaxNumTokens(): int

Возвращает максимальное количество токенов для анализа в каждом поле документа, которое не хранится с поддержкой TermVector.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает максимальную длину слова, выше которой слова будут игнорироваться

  • « SolrQuery::getMltMaxNumTokens
  • SolrQuery::getMltMinDocFrequency »
  • PHP Manual
  • SolrQuery
  • Возвращает максимальную длину слова, выше которой слова будут игнорироваться

SolrQuery::getMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxWordLength — Возвращает максимальную длину слова, выше которой слова будут игнорироваться

Описание

public SolrQuery::getMltMaxWordLength(): int

Возвращает максимальную длину слова, выше которой слова будут игнорироваться.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает пороговую частоту, с которой будут игнорироваться слова, которых нет, по крайней мере, в таком количестве документов

  • « SolrQuery::getMltMaxWordLength
  • SolrQuery::getMltMinTermFrequency »
  • PHP Manual
  • SolrQuery
  • Возвращает пороговую частоту, с которой будут игнорироваться слова, которых нет, по крайней мере, в таком количестве документов

SolrQuery::getMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinDocFrequency — Возвращает пороговую частоту, с которой будут игнорироваться слова, которых нет, по крайней мере, в таком количестве документов

Описание

public SolrQuery::getMltMinDocFrequency(): int

Возвращает пороговую частоту, с которой будут игнорироваться слова, которых нет, по крайней мере, в таком количестве документов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает частоту, ниже которой выражения будут игнорироваться в исходном документе

  • « SolrQuery::getMltMinDocFrequency
  • SolrQuery::getMltMinWordLength »
  • PHP Manual
  • SolrQuery
  • Возвращает частоту, ниже которой выражения будут игнорироваться в исходном документе

SolrQuery::getMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinTermFrequency — Возвращает частоту, ниже которой выражения будут игнорироваться в исходном документе

Описание

public SolrQuery::getMltMinTermFrequency(): int

Возвращает частоту, ниже которой выражения будут игнорироваться в исходном документе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает минимальную длину слова, ниже которой слова будут игнорироваться

  • « SolrQuery::getMltMinTermFrequency
  • SolrQuery::getMltQueryFields »
  • PHP Manual
  • SolrQuery
  • Возвращает минимальную длину слова, ниже которой слова будут игнорироваться

SolrQuery::getMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMinWordLength — Возвращает минимальную длину слова, ниже которой слова будут игнорироваться

Описание

public SolrQuery::getMltMinWordLength(): int

Возвращает минимальную длину слова, ниже которой слова будут игнорироваться.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает поля запроса и их повышения

  • « SolrQuery::getMltMinWordLength
  • SolrQuery::getQuery »
  • PHP Manual
  • SolrQuery
  • Возвращает поля запроса и их повышения

SolrQuery::getMltQueryFields

(PECL solr >= 0.9.2)

SolrQuery::getMltQueryFields — Возвращает поля запроса и их повышения

Описание

public SolrQuery::getMltQueryFields(): array

Возвращает поля запроса и их повышения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает массив и null, если значение не установлено.


Возвращает основной запрос

  • « SolrQuery::getMltQueryFields
  • SolrQuery::getRows »
  • PHP Manual
  • SolrQuery
  • Возвращает основной запрос

SolrQuery::getQuery

(PECL solr >= 0.9.2)

SolrQuery::getQuery — Возвращает основной запрос

Описание

public SolrQuery::getQuery(): string

Возвращает основной запрос

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает строку и null, если значение не установлено.


Возвращает максимальное количество документов

  • « SolrQuery::getQuery
  • SolrQuery::getSortFields »
  • PHP Manual
  • SolrQuery
  • Возвращает максимальное количество документов

SolrQuery::getRows

(PECL solr >= 0.9.2)

SolrQuery::getRows — Возвращает максимальное количество документов

Описание

public SolrQuery::getRows(): int

Возвращает максимальное количество документов из полного набора результатов, возвращаемых клиенту для каждого запроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает все поля сортировки

  • « SolrQuery::getRows
  • SolrQuery::getStart »
  • PHP Manual
  • SolrQuery
  • Возвращает все поля сортировки

SolrQuery::getSortFields

(PECL solr >= 0.9.2)

SolrQuery::getSortFields — Возвращает все поля сортировки

Описание

public SolrQuery::getSortFields(): array

Возвращает все поля сортировки

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает массив и null, если ни один из параметров не был установлен.


Возвращает смещение в полном наборе результатов

  • « SolrQuery::getSortFields
  • SolrQuery::getStats »
  • PHP Manual
  • SolrQuery
  • Возвращает смещение в полном наборе результатов

SolrQuery::getStart

(PECL solr >= 0.9.2)

SolrQuery::getStart — Возвращает смещение в полном наборе результатов

Описание

public SolrQuery::getStart(): int

Возвращает смещение в полном наборе результатов для запросов, с которых должен начинаться набор возвращённых документов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает, включена ли статистика

  • « SolrQuery::getStart
  • SolrQuery::getStatsFacets »
  • PHP Manual
  • SolrQuery
  • Возвращает, включена ли статистика

SolrQuery::getStats

(PECL solr >= 0.9.2)

SolrQuery::getStats — Возвращает, включена ли статистика

Описание

public SolrQuery::getStats(): bool

Возвращает, включена ли статистика.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает логическое значение и null, если значение не установлено.


Возвращает все фасеты статистики, которые были установлены

  • « SolrQuery::getStats
  • SolrQuery::getStatsFields »
  • PHP Manual
  • SolrQuery
  • Возвращает все фасеты статистики, которые были установлены

SolrQuery::getStatsFacets

(PECL solr >= 0.9.2)

SolrQuery::getStatsFacets — Возвращает все фасеты статистики, которые были установлены

Описание

public SolrQuery::getStatsFacets(): array

Возвращает все фасеты статистики, которые были установлены

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает массив и null, если значение не установлено.


Возвращает все поля статистики

  • « SolrQuery::getStatsFacets
  • SolrQuery::getTerms »
  • PHP Manual
  • SolrQuery
  • Возвращает все поля статистики

SolrQuery::getStatsFields

(PECL solr >= 0.9.2)

SolrQuery::getStatsFields — Возвращает все поля статистики

Описание

public SolrQuery::getStatsFields(): array

Возвращает все поля статистики

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает массив и null, если значение не установлено.


Возвращает, включён ли TermsComponent

  • « SolrQuery::getStatsFields
  • SolrQuery::getTermsField »
  • PHP Manual
  • SolrQuery
  • Возвращает, включён ли TermsComponent

SolrQuery::getTerms

(PECL solr >= 0.9.2)

SolrQuery::getTerms — Возвращает, включён ли TermsComponent

Описание

public SolrQuery::getTerms(): bool

Возвращает, включён ли TermsComponent

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает логическое значение и null, если значение не установлено.


Возвращает поле, из которого извлекаются выражения

  • « SolrQuery::getTerms
  • SolrQuery::getTermsIncludeLowerBound »
  • PHP Manual
  • SolrQuery
  • Возвращает поле, из которого извлекаются выражения

SolrQuery::getTermsField

(PECL solr >= 0.9.2)

SolrQuery::getTermsField — Возвращает поле, из которого извлекаются выражения

Описание

public SolrQuery::getTermsField(): string

Возвращает поле, из которого извлекаются выражения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает строку и null, если значение не установлено.


Возвращает, нужно ли включать выражение нижней границы в набор результатов

  • « SolrQuery::getTermsField
  • SolrQuery::getTermsIncludeUpperBound »
  • PHP Manual
  • SolrQuery
  • Возвращает, нужно ли включать выражение нижней границы в набор результатов

SolrQuery::getTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeLowerBound — Возвращает, нужно ли включать выражение нижней границы в набор результатов

Описание

public SolrQuery::getTermsIncludeLowerBound(): bool

Возвращает, нужно ли включать выражение нижней границы в набор результатов

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает логическое значение и null, если значение не установлено.


Возвращает, нужно ли включать выражение верхней границы в набор результатов

  • « SolrQuery::getTermsIncludeLowerBound
  • SolrQuery::getTermsLimit »
  • PHP Manual
  • SolrQuery
  • Возвращает, нужно ли включать выражение верхней границы в набор результатов

SolrQuery::getTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeUpperBound — Возвращает, нужно ли включать выражение верхней границы в набор результатов

Описание

public SolrQuery::getTermsIncludeUpperBound(): bool

Возвращает, нужно ли включать выражение верхней границы в набор результатов

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает логическое значение и null, если значение не установлено.


Возвращает максимальное количество выражений, которые должна вернуть Solr

  • « SolrQuery::getTermsIncludeUpperBound
  • SolrQuery::getTermsLowerBound »
  • PHP Manual
  • SolrQuery
  • Возвращает максимальное количество выражений, которые должна вернуть Solr

SolrQuery::getTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::getTermsLimit — Возвращает максимальное количество выражений, которые должна вернуть Solr

Описание

public SolrQuery::getTermsLimit(): int

Возвращает максимальное количество выражений, которые должна вернуть Solr.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает выражение для начала

  • « SolrQuery::getTermsLimit
  • SolrQuery::getTermsMaxCount »
  • PHP Manual
  • SolrQuery
  • Возвращает выражение для начала

SolrQuery::getTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsLowerBound — Возвращает выражение для начала

Описание

public SolrQuery::getTermsLowerBound(): string

Возвращает выражение для начала

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает строку и null, если значение не установлено.


Возвращает максимальную частоту документа

  • « SolrQuery::getTermsLowerBound
  • SolrQuery::getTermsMinCount »
  • PHP Manual
  • SolrQuery
  • Возвращает максимальную частоту документа

SolrQuery::getTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMaxCount — Возвращает максимальную частоту документа

Описание

public SolrQuery::getTermsMaxCount(): int

Возвращает максимальную частоту документа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает минимальную частоту возврата документов для включения

  • « SolrQuery::getTermsMaxCount
  • SolrQuery::getTermsPrefix »
  • PHP Manual
  • SolrQuery
  • Возвращает минимальную частоту возврата документов для включения

SolrQuery::getTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMinCount — Возвращает минимальную частоту возврата документов для включения

Описание

public SolrQuery::getTermsMinCount(): int

Возвращает минимальную частоту возврата документов для включения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает префикс выражения

  • « SolrQuery::getTermsMinCount
  • SolrQuery::getTermsReturnRaw »
  • PHP Manual
  • SolrQuery
  • Возвращает префикс выражения

SolrQuery::getTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::getTermsPrefix — Возвращает префикс выражения

Описание

public SolrQuery::getTermsPrefix(): string

Возвращает префикс, которым должны быть ограничены совпадающие выражения. Ограничит совпадения только выражениями, начинающимися с префикса

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает строку и null, если значение не установлено.


Следует ли возвращать необработанные символы

  • « SolrQuery::getTermsPrefix
  • SolrQuery::getTermsSort »
  • PHP Manual
  • SolrQuery
  • Следует ли возвращать необработанные символы

SolrQuery::getTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::getTermsReturnRaw — Следует ли возвращать необработанные символы

Описание

public SolrQuery::getTermsReturnRaw(): bool

Возвращает логическое значение, указывающее, следует ли возвращать необработанные символы проиндексированного выражения, независимо от того, человекочитаемое ли оно.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает логическое значение и null, если значение не установлено.


Возвращает целое число, указывающее, как сортируются выражения

  • « SolrQuery::getTermsReturnRaw
  • SolrQuery::getTermsUpperBound »
  • PHP Manual
  • SolrQuery
  • Возвращает целое число, указывающее, как сортируются выражения

SolrQuery::getTermsSort

(PECL solr >= 0.9.2)

SolrQuery::getTermsSort — Возвращает целое число, указывающее, как сортируются выражения

Описание

public SolrQuery::getTermsSort(): int

SolrQuery::TERMS_SORT_INDEX указывает, что выражения возвращаются в порядке индекса. SolrQuery::TERMS_SORT_COUNT подразумевает, что выражения сортируются по частоте выражения (сначала наивысшее количество)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает целое число и null, если значение не установлено.


Возвращает выражение для остановки

  • « SolrQuery::getTermsSort
  • SolrQuery::getTimeAllowed »
  • PHP Manual
  • SolrQuery
  • Возвращает выражение для остановки

SolrQuery::getTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsUpperBound — Возвращает выражение для остановки

Описание

public SolrQuery::getTermsUpperBound(): string

Возвращает выражение для остановки

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает строку и null, если значение не установлено.


Возвращает время в миллисекундах, разрешённое для завершения запроса

  • « SolrQuery::getTermsUpperBound
  • SolrQuery::removeExpandFilterQuery »
  • PHP Manual
  • SolrQuery
  • Возвращает время в миллисекундах, разрешённое для завершения запроса

SolrQuery::getTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::getTimeAllowed — Возвращает время в миллисекундах, разрешённое для завершения запроса

Описание

public SolrQuery::getTimeAllowed(): int

Возвращает время в миллисекундах, разрешённое для завершения запроса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает и целое число в случае успешного выполнения и null, если разрешённое время не установлено.


Удаляет запрос расширенного фильтра

  • « SolrQuery::getTimeAllowed
  • SolrQuery::removeExpandSortField »
  • PHP Manual
  • SolrQuery
  • Удаляет запрос расширенного фильтра

SolrQuery::removeExpandFilterQuery

(PECL solr >= 2.2.0)

SolrQuery::removeExpandFilterQuery — Удаляет запрос расширенного фильтра

Описание

public SolrQuery::removeExpandFilterQuery(string $fq): SolrQuery

Удаляет запрос расширенного фильтра.

Список параметров

fq

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Включает/отключает компонент Expand
  • SolrQuery::addExpandSortField() - Упорядочивает документы в расширенных группах (параметр expand.sort)
  • SolrQuery::removeExpandSortField() - Удаляет расширенное поле сортировки из параметра expand.sort
  • SolrQuery::setExpandRows() - Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5
  • SolrQuery::setExpandQuery() - Устанавливает параметр expand.q
  • SolrQuery::addExpandFilterQuery() - Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу


Удаляет расширенное поле сортировки из параметра expand.sort

  • « SolrQuery::removeExpandFilterQuery
  • SolrQuery::removeFacetDateField »
  • PHP Manual
  • SolrQuery
  • Удаляет расширенное поле сортировки из параметра expand.sort

SolrQuery::removeExpandSortField

(PECL solr >= 2.2.0)

SolrQuery::removeExpandSortField — Удаляет расширенное поле сортировки из параметра expand.sort

Описание

public SolrQuery::removeExpandSortField(string $field): SolrQuery

Удаляет расширенное поле сортировки из параметра expand.sort.

Список параметров

field

Имя поля

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Включает/отключает компонент Expand
  • SolrQuery::addExpandSortField() - Упорядочивает документы в расширенных группах (параметр expand.sort)
  • SolrQuery::setExpandRows() - Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5
  • SolrQuery::setExpandQuery() - Устанавливает параметр expand.q
  • SolrQuery::addExpandFilterQuery() - Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу
  • SolrQuery::removeExpandFilterQuery() - Удаляет запрос расширенного фильтра


Удаляет одно из полей даты фасета

  • « SolrQuery::removeExpandSortField
  • SolrQuery::removeFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Удаляет одно из полей даты фасета

SolrQuery::removeFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateField — Удаляет одно из полей даты фасета

Описание

public SolrQuery::removeFacetDateField(string $field): SolrQuery

Название поля

Список параметров

field

Имя поля даты, которое нужно удалить

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Удаляет один из параметров facet.date.other

  • « SolrQuery::removeFacetDateField
  • SolrQuery::removeFacetField »
  • PHP Manual
  • SolrQuery
  • Удаляет один из параметров facet.date.other

SolrQuery::removeFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateOther — Удаляет один из параметров facet.date.other

Описание

public SolrQuery::removeFacetDateOther(string $value, string $field_override = ?): SolrQuery

Удаляет один из параметров facet.date.other

Список параметров

value

Значение

field_override

Имя поля.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Удаляет один из параметров facet.date

  • « SolrQuery::removeFacetDateOther
  • SolrQuery::removeFacetQuery »
  • PHP Manual
  • SolrQuery
  • Удаляет один из параметров facet.date

SolrQuery::removeFacetField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetField — Удаляет один из параметров facet.date

Описание

public SolrQuery::removeFacetField(string $field): SolrQuery

Удаляет один из параметров facet.date

Список параметров

field

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Удаляет один из параметров facet.query

  • « SolrQuery::removeFacetField
  • SolrQuery::removeField »
  • PHP Manual
  • SolrQuery
  • Удаляет один из параметров facet.query

SolrQuery::removeFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFacetQuery — Удаляет один из параметров facet.query

Описание

public SolrQuery::removeFacetQuery(string $value): SolrQuery

Удаляет один из параметров facet.query.

Список параметров

value

Значение

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Удаляет поле из списка полей

  • « SolrQuery::removeFacetQuery
  • SolrQuery::removeFilterQuery »
  • PHP Manual
  • SolrQuery
  • Удаляет поле из списка полей

SolrQuery::removeField

(PECL solr >= 0.9.2)

SolrQuery::removeField — Удаляет поле из списка полей

Описание

public SolrQuery::removeField(string $field): SolrQuery

Удаляет поле из списка полей

Список параметров

field

Имя поля.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Удаляет запрос фильтра

  • « SolrQuery::removeField
  • SolrQuery::removeHighlightField »
  • PHP Manual
  • SolrQuery
  • Удаляет запрос фильтра

SolrQuery::removeFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFilterQuery — Удаляет запрос фильтра

Описание

public SolrQuery::removeFilterQuery(string $fq): SolrQuery

Удаляет запрос фильтра.

Список параметров

fq

Фильтр запроса для удаления

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Удаляет одно из полей, используемых для выделения

  • « SolrQuery::removeFilterQuery
  • SolrQuery::removeMltField »
  • PHP Manual
  • SolrQuery
  • Удаляет одно из полей, используемых для выделения

SolrQuery::removeHighlightField

(PECL solr >= 0.9.2)

SolrQuery::removeHighlightField — Удаляет одно из полей, используемых для выделения

Описание

public SolrQuery::removeHighlightField(string $field): SolrQuery

Удаляет одно из полей, используемых для выделения.

Список параметров

field

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Удаляет одно из полей moreLikeThis

  • « SolrQuery::removeHighlightField
  • SolrQuery::removeMltQueryField »
  • PHP Manual
  • SolrQuery
  • Удаляет одно из полей moreLikeThis

SolrQuery::removeMltField

(PECL solr >= 0.9.2)

SolrQuery::removeMltField — Удаляет одно из полей moreLikeThis

Описание

public SolrQuery::removeMltField(string $field): SolrQuery

Удаляет одно из полей moreLikeThis.

Список параметров

field

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Удаляет одно из полей запроса moreLikeThis

  • « SolrQuery::removeMltField
  • SolrQuery::removeSortField »
  • PHP Manual
  • SolrQuery
  • Удаляет одно из полей запроса moreLikeThis

SolrQuery::removeMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::removeMltQueryField — Удаляет одно из полей запроса moreLikeThis

Описание

public SolrQuery::removeMltQueryField(string $queryField): SolrQuery

Удаляет одно из полей запроса moreLikeThis.

Список параметров

queryField

Поле запроса

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Удаляет одно из полей сортировки

  • « SolrQuery::removeMltQueryField
  • SolrQuery::removeStatsFacet »
  • PHP Manual
  • SolrQuery
  • Удаляет одно из полей сортировки

SolrQuery::removeSortField

(PECL solr >= 0.9.2)

SolrQuery::removeSortField — Удаляет одно из полей сортировки

Описание

public SolrQuery::removeSortField(string $field): SolrQuery

Удаляет одно из полей сортировки

Список параметров

field

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Удаляет один из параметров stats.facet

  • « SolrQuery::removeSortField
  • SolrQuery::removeStatsField »
  • PHP Manual
  • SolrQuery
  • Удаляет один из параметров stats.facet

SolrQuery::removeStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::removeStatsFacet — Удаляет один из параметров stats.facet

Описание

public SolrQuery::removeStatsFacet(string $value): SolrQuery

Удаляет один из параметров stats.facet

Список параметров

value

Значение

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Удаляет один из параметров stats.field

  • « SolrQuery::removeStatsFacet
  • SolrQuery::setEchoHandler »
  • PHP Manual
  • SolrQuery
  • Удаляет один из параметров stats.field

SolrQuery::removeStatsField

(PECL solr >= 0.9.2)

SolrQuery::removeStatsField — Удаляет один из параметров stats.field

Описание

public SolrQuery::removeStatsField(string $field): SolrQuery

Удаляет один из параметров stats.field

Список параметров

field

Имя поля.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Переключает параметр echoHandler

  • « SolrQuery::removeStatsField
  • SolrQuery::setEchoParams »
  • PHP Manual
  • SolrQuery
  • Переключает параметр echoHandler

SolrQuery::setEchoHandler

(PECL solr >= 0.9.2)

SolrQuery::setEchoHandler — Переключает параметр echoHandler

Описание

public SolrQuery::setEchoHandler(bool $flag): SolrQuery

Если установлено значение true, Solr помещает имя дескриптора, используемого в ответе, клиенту для целей отладки.

Список параметров

flag

true или false

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Определяет, какие параметры включать в ответ

  • « SolrQuery::setEchoHandler
  • SolrQuery::setExpand »
  • PHP Manual
  • SolrQuery
  • Определяет, какие параметры включать в ответ

SolrQuery::setEchoParams

(PECL solr >= 0.9.2)

SolrQuery::setEchoParams — Определяет, какие параметры включать в ответ

Описание

public SolrQuery::setEchoParams(string $type): SolrQuery

Указывает Solr, какие параметры запроса должны быть включены в ответ для целей отладки, допустимые значения:

- none - не включать никаких параметров запроса для отладки
- explicit - включить в запрос параметры, явно указанные клиентом
- all - включить все параметры, задействованные в этом запросе, либо явно указанные клиентом, либо неявные из-за конфигурации обработчика запросов.

Список параметров

type

Тип включаемых параметров

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Включает/отключает компонент Expand

  • « SolrQuery::setEchoParams
  • SolrQuery::setExpandQuery »
  • PHP Manual
  • SolrQuery
  • Включает/отключает компонент Expand

SolrQuery::setExpand

(PECL solr >= 2.2.0)

SolrQuery::setExpand — Включает/отключает компонент Expand

Описание

public SolrQuery::setExpand(bool $value): SolrQuery

Включает/отключает компонент Expand.

Список параметров

value

Логический флаг (да или нет)

Возвращаемые значения

SolrQuery

Примеры

Пример #1 Пример использования SolrQuery::setExpand()

<?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() - Упорядочивает документы в расширенных группах (параметр expand.sort)
  • SolrQuery::removeExpandSortField() - Удаляет расширенное поле сортировки из параметра expand.sort
  • SolrQuery::setExpandRows() - Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5
  • SolrQuery::setExpandQuery() - Устанавливает параметр expand.q
  • SolrQuery::addExpandFilterQuery() - Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу
  • SolrQuery::removeExpandFilterQuery() - Удаляет запрос расширенного фильтра


Устанавливает параметр expand.q

  • « SolrQuery::setExpand
  • SolrQuery::setExpandRows »
  • PHP Manual
  • SolrQuery
  • Устанавливает параметр expand.q

SolrQuery::setExpandQuery

(PECL solr >= 2.2.0)

SolrQuery::setExpandQuery — Устанавливает параметр expand.q

Описание

public SolrQuery::setExpandQuery(string $q): SolrQuery

Устанавливает параметр expand.q

Переопределяет основной параметр q, определяет, какие документы включить в основную группу.

Список параметров

q

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Включает/отключает компонент Expand
  • SolrQuery::addExpandSortField() - Упорядочивает документы в расширенных группах (параметр expand.sort)
  • SolrQuery::removeExpandSortField() - Удаляет расширенное поле сортировки из параметра expand.sort
  • SolrQuery::setExpandRows() - Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5
  • SolrQuery::addExpandFilterQuery() - Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу
  • SolrQuery::removeExpandFilterQuery() - Удаляет запрос расширенного фильтра


Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5

  • « SolrQuery::setExpandQuery
  • SolrQuery::setExplainOther »
  • PHP Manual
  • SolrQuery
  • Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5

SolrQuery::setExpandRows

(PECL solr >= 2.2.0)

SolrQuery::setExpandRows — Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5

Описание

public SolrQuery::setExpandRows(int $value): SolrQuery

Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5

Список параметров

value

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Включает/отключает компонент Expand
  • SolrQuery::addExpandSortField() - Упорядочивает документы в расширенных группах (параметр expand.sort)
  • SolrQuery::removeExpandSortField() - Удаляет расширенное поле сортировки из параметра expand.sort
  • SolrQuery::setExpandQuery() - Устанавливает параметр expand.q
  • SolrQuery::addExpandFilterQuery() - Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу
  • SolrQuery::removeExpandFilterQuery() - Удаляет запрос расширенного фильтра


Устанавливает общий параметр запроса explainOther

  • « SolrQuery::setExpandRows
  • SolrQuery::setFacet »
  • PHP Manual
  • SolrQuery
  • Устанавливает общий параметр запроса explainOther

SolrQuery::setExplainOther

(PECL solr >= 0.9.2)

SolrQuery::setExplainOther — Устанавливает общий параметр запроса explainOther

Описание

public SolrQuery::setExplainOther(string $query): SolrQuery

Устанавливает общий параметр запроса explainOther

Список параметров

query

Запрос Lucene для идентификации набора документов

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Соответствует параметру фасета. Включает или отключает фасетирование

  • « SolrQuery::setExplainOther
  • SolrQuery::setFacetDateEnd »
  • PHP Manual
  • SolrQuery
  • Соответствует параметру фасета. Включает или отключает фасетирование

SolrQuery::setFacet

(PECL solr >= 0.9.2)

SolrQuery::setFacet — Соответствует параметру фасета. Включает или отключает фасетирование

Описание

public SolrQuery::setFacet(bool $flag): SolrQuery

Включает или отключает фасетирование.

Список параметров

value

true включает, а false отключает.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Соответствует facet.date.end

  • « SolrQuery::setFacet
  • SolrQuery::setFacetDateGap »
  • PHP Manual
  • SolrQuery
  • Соответствует facet.date.end

SolrQuery::setFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateEnd — Соответствует facet.date.end

Описание

public SolrQuery::setFacetDateEnd(string $value, string $field_override = ?): SolrQuery

Соответствует facet.date.end

Список параметров

value

Смотрите facet.date.end

field_override

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Соответствует facet.date.gap

  • « SolrQuery::setFacetDateEnd
  • SolrQuery::setFacetDateHardEnd »
  • PHP Manual
  • SolrQuery
  • Соответствует facet.date.gap

SolrQuery::setFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateGap — Соответствует facet.date.gap

Описание

public SolrQuery::setFacetDateGap(string $value, string $field_override = ?): SolrQuery

Соответствует facet.date.gap

Список параметров

value

Смотрите facet.date.gap

field_override

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Соответствует facet.date.hardend

  • « SolrQuery::setFacetDateGap
  • SolrQuery::setFacetDateStart »
  • PHP Manual
  • SolrQuery
  • Соответствует facet.date.hardend

SolrQuery::setFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateHardEnd — Соответствует facet.date.hardend

Описание

public SolrQuery::setFacetDateHardEnd(bool $value, string $field_override = ?): SolrQuery

Соответствует facet.date.hardend

Список параметров

value

Смотрите facet.date.hardend

field_override

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Соответствует facet.date.start

  • « SolrQuery::setFacetDateHardEnd
  • SolrQuery::setFacetEnumCacheMinDefaultFrequency »
  • PHP Manual
  • SolrQuery
  • Соответствует facet.date.start

SolrQuery::setFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateStart — Соответствует facet.date.start

Описание

public SolrQuery::setFacetDateStart(string $value, string $field_override = ?): SolrQuery

Соответствует facet.date.start

Список параметров

value

Смотрите facet.date.start

field_override

Имя поля.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает минимальную частоту документа, используемую для определения количества выражений

  • « SolrQuery::setFacetDateStart
  • SolrQuery::setFacetLimit »
  • PHP Manual
  • SolrQuery
  • Устанавливает минимальную частоту документа, используемую для определения количества выражений

SolrQuery::setFacetEnumCacheMinDefaultFrequency

(PECL solr >= 0.9.2)

SolrQuery::setFacetEnumCacheMinDefaultFrequency — Устанавливает минимальную частоту документа, используемую для определения количества выражений

Описание

public SolrQuery::setFacetEnumCacheMinDefaultFrequency(int $frequency, string $field_override = ?): SolrQuery

Устанавливает минимальную частоту документа, используемую для определения количества выражений

Список параметров

value

Минимальная частота

field_override

Имя поля.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Соответствует facet.limit

  • « SolrQuery::setFacetEnumCacheMinDefaultFrequency
  • SolrQuery::setFacetMethod »
  • PHP Manual
  • SolrQuery
  • Соответствует facet.limit

SolrQuery::setFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::setFacetLimit — Соответствует facet.limit

Описание

public SolrQuery::setFacetLimit(int $limit, string $field_override = ?): SolrQuery

Соответствует facet.limit. Устанавливает максимальное количество ограничений, которые должны быть возвращены для полей фасета.

Список параметров

limit

Максимальное количество ограничений

field_override

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Задаёт тип алгоритма, который следует использовать при фасетировании поля

  • « SolrQuery::setFacetLimit
  • SolrQuery::setFacetMinCount »
  • PHP Manual
  • SolrQuery
  • Задаёт тип алгоритма, который следует использовать при фасетировании поля

SolrQuery::setFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::setFacetMethod — Задаёт тип алгоритма, который следует использовать при фасетировании поля

Описание

public SolrQuery::setFacetMethod(string $method, string $field_override = ?): SolrQuery

Задаёт тип алгоритма, который следует использовать при фасетировании поля. Метод допускает переопределение необязательного поля.

Список параметров

method

Используемый метод.

field_override

Имя поля.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Соответствует facet.mincount

  • « SolrQuery::setFacetMethod
  • SolrQuery::setFacetMissing »
  • PHP Manual
  • SolrQuery
  • Соответствует facet.mincount

SolrQuery::setFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::setFacetMinCount — Соответствует facet.mincount

Описание

public SolrQuery::setFacetMinCount(int $mincount, string $field_override = ?): SolrQuery

Устанавливает минимальное количество полей фасетов, которые должны быть включены в ответ

Список параметров

mincount

Минимальное количество

field_override

Имя поля.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Соответствует facet.missing

  • « SolrQuery::setFacetMinCount
  • SolrQuery::setFacetOffset »
  • PHP Manual
  • SolrQuery
  • Соответствует facet.missing

SolrQuery::setFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::setFacetMissing — Соответствует facet.missing

Описание

public SolrQuery::setFacetMissing(bool $flag, string $field_override = ?): SolrQuery

Используется для обозначения того, что в дополнение к основанным на выражениях ограничениям поля фасета должно быть вычислено количество всех результатов сопоставления, которые не имеют значения для поля.

Список параметров

flag

true включает эту функцию, false отключает её.

field_override

Имя поля.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает смещение в список ограничений для разбивки на страницы

  • « SolrQuery::setFacetMissing
  • SolrQuery::setFacetPrefix »
  • PHP Manual
  • SolrQuery
  • Устанавливает смещение в список ограничений для разбивки на страницы

SolrQuery::setFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::setFacetOffset — Устанавливает смещение в список ограничений для разбивки на страницы

Описание

public SolrQuery::setFacetOffset(int $offset, string $field_override = ?): SolrQuery

Устанавливает смещение в список ограничений для разбивки на страницы.

Список параметров

offset

Смещение

field_override

Имя поля.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Определяет строковый префикс, с помощью которого ограничиваются выражения, на которых выполняется фасет

  • « SolrQuery::setFacetOffset
  • SolrQuery::setFacetSort »
  • PHP Manual
  • SolrQuery
  • Определяет строковый префикс, с помощью которого ограничиваются выражения, на которых выполняется фасет

SolrQuery::setFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::setFacetPrefix — Определяет строковый префикс, с помощью которого ограничиваются выражения, на которых выполняется фасет

Описание

public SolrQuery::setFacetPrefix(string $prefix, string $field_override = ?): SolrQuery

Определяет строковый префикс, с помощью которого ограничиваются выражения, на которых выполняется фасет.

Список параметров

prefix

Строковый префикс

field_override

Имя поля.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Определяет порядок ограничений поля фасета

  • « SolrQuery::setFacetPrefix
  • SolrQuery::setGroup »
  • PHP Manual
  • SolrQuery
  • Определяет порядок ограничений поля фасета

SolrQuery::setFacetSort

(PECL solr >= 0.9.2)

SolrQuery::setFacetSort — Определяет порядок ограничений поля фасета

Описание

public SolrQuery::setFacetSort(int $facetSort, string $field_override = ?): SolrQuery

Определяет порядок ограничений поля фасета

Список параметров

facetSort

Используйте SolrQuery::FACET_SORT_INDEX для сортировки по порядку индекса или SolrQuery::FACET_SORT_COUNT для сортировки по количеству.

field_override

Имя поля.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Включает/отключает группировку результатов (параметр group)

  • « SolrQuery::setFacetSort
  • SolrQuery::setGroupCachePercent »
  • PHP Manual
  • SolrQuery
  • Включает/отключает группировку результатов (параметр group)

SolrQuery::setGroup

(PECL solr >= 2.2.0)

SolrQuery::setGroup — Включает/отключает группировку результатов (параметр group)

Описание

public SolrQuery::setGroup(bool $value): SolrQuery

Включает/отключает группировку результатов (параметр group)

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::getGroup() - Возвращает true, если группировка включена
  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet
  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset
  • SolrQuery::setGroupLimit() - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)
  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Включает кеширование для группировки результатов

  • « SolrQuery::setGroup
  • SolrQuery::setGroupFacet »
  • PHP Manual
  • SolrQuery
  • Включает кеширование для группировки результатов

SolrQuery::setGroupCachePercent

(PECL solr >= 2.2.0)

SolrQuery::setGroupCachePercent — Включает кеширование для группировки результатов

Описание

public SolrQuery::setGroupCachePercent(int $percent): SolrQuery

Установка для этого параметра числа больше 0 включает кеширование для группировки результатов. Группа результатов выполняет два поиска; эта опция кеширует второй поиск. Значение сервера по умолчанию - 0. Тестирование показало, что групповое кеширование улучшает только время поиска с логическими запросами, запросами с подстановочными знаками и нечёткими запросами. Для простых запросов, таких как выражение или запросы "сопоставить все", групповое кеширование снижает производительность. Параметр group.cache.percent

Список параметров

percent

Возвращаемые значения

Ошибки

Выбрасывает SolrIllegalArgumentException в случае передачи неверного параметра.

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)
  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet
  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset
  • SolrQuery::setGroupLimit() - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)


Устанавливает параметр group.facet

  • « SolrQuery::setGroupCachePercent
  • SolrQuery::setGroupFormat »
  • PHP Manual
  • SolrQuery
  • Устанавливает параметр group.facet

SolrQuery::setGroupFacet

(PECL solr >= 2.2.0)

SolrQuery::setGroupFacet — Устанавливает параметр group.facet

Описание

public SolrQuery::setGroupFacet(bool $value): SolrQuery

Определяет, нужно ли вычислять сгруппированные фасеты для фасетов поля, указанных в параметрах facet.field. Сгруппированные фасеты вычисляются на основе первой указанной группы.

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)
  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset
  • SolrQuery::setGroupLimit() - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)
  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Устанавливает формат группы, структуру результата (параметр group.format)

  • « SolrQuery::setGroupFacet
  • SolrQuery::setGroupLimit »
  • PHP Manual
  • SolrQuery
  • Устанавливает формат группы, структуру результата (параметр group.format)

SolrQuery::setGroupFormat

(PECL solr >= 2.2.0)

SolrQuery::setGroupFormat — Устанавливает формат группы, структуру результата (параметр group.format)

Описание

public SolrQuery::setGroupFormat(string $value): SolrQuery

Устанавливает параметр group.format. Если для этого параметра установлено значение simple, сгруппированные документы представляются в одном плоском списке, а параметры start и rows влияют на количество документов, а не на группы. Допустимые значения: grouped/simple

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)
  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet
  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset
  • SolrQuery::setGroupLimit() - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1

  • « SolrQuery::setGroupFormat
  • SolrQuery::setGroupMain »
  • PHP Manual
  • SolrQuery
  • Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1

SolrQuery::setGroupLimit

(PECL solr >= 2.2.0)

SolrQuery::setGroupLimit — Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1

Описание

public SolrQuery::setGroupLimit(int $value): SolrQuery

Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1.

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)
  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet
  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset
  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)
  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple

  • « SolrQuery::setGroupLimit
  • SolrQuery::setGroupNGroups »
  • PHP Manual
  • SolrQuery
  • Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple

SolrQuery::setGroupMain

(PECL solr >= 2.2.0)

SolrQuery::setGroupMain — Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple

Описание

public SolrQuery::setGroupMain(string $value): SolrQuery

Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple.

Список параметров

value

Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе.

Возвращаемые значения

Возвращает экземпляр SolrQuery.

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)
  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet
  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset
  • SolrQuery::setGroupMain()
  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)
  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Если true, Solr включает в результаты количество групп, которые соответствуют запросу

  • « SolrQuery::setGroupMain
  • SolrQuery::setGroupOffset »
  • PHP Manual
  • SolrQuery
  • Если true, Solr включает в результаты количество групп, которые соответствуют запросу

SolrQuery::setGroupNGroups

(PECL solr >= 2.2.0)

SolrQuery::setGroupNGroups — Если true, Solr включает в результаты количество групп, которые соответствуют запросу

Описание

public SolrQuery::setGroupNGroups(bool $value): SolrQuery

Если true, Solr включает в результаты количество групп, которые соответствуют запросу.

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)
  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet
  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset
  • SolrQuery::setGroupLimit() - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)
  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Устанавливает параметр group.offset

  • « SolrQuery::setGroupNGroups
  • SolrQuery::setGroupTruncate »
  • PHP Manual
  • SolrQuery
  • Устанавливает параметр group.offset

SolrQuery::setGroupOffset

(PECL solr >= 2.2.0)

SolrQuery::setGroupOffset — Устанавливает параметр group.offset

Описание

public SolrQuery::setGroupOffset(int $value): SolrQuery

Устанавливает параметр group.offset

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)
  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet
  • SolrQuery::setGroupLimit() - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupTruncate() - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)
  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу

  • « SolrQuery::setGroupOffset
  • SolrQuery::setHighlight »
  • PHP Manual
  • SolrQuery
  • Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу

SolrQuery::setGroupTruncate

(PECL solr >= 2.2.0)

SolrQuery::setGroupTruncate — Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу

Описание

public SolrQuery::setGroupTruncate(bool $value): SolrQuery

Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу. Значение сервера по умолчанию - false. Параметр group.truncate

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Включает/отключает группировку результатов (параметр group)
  • SolrQuery::addGroupField() - Добавляет поле, которое будет использоваться для группировки результатов
  • SolrQuery::addGroupFunction() - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
  • SolrQuery::addGroupQuery() - Позволяет группировать документы, соответствующие данному запросу
  • SolrQuery::addGroupSortField() - Добавляет поле сортировки группы (параметр group.sort)
  • SolrQuery::setGroupFacet() - Устанавливает параметр group.facet
  • SolrQuery::setGroupOffset() - Устанавливает параметр group.offset
  • SolrQuery::setGroupLimit() - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
  • SolrQuery::setGroupMain() - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
  • SolrQuery::setGroupNGroups() - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
  • SolrQuery::setGroupFormat() - Устанавливает формат группы, структуру результата (параметр group.format)
  • SolrQuery::setGroupCachePercent() - Включает кеширование для группировки результатов


Включает или отключает выделение

  • « SolrQuery::setGroupTruncate
  • SolrQuery::setHighlightAlternateField »
  • PHP Manual
  • SolrQuery
  • Включает или отключает выделение

SolrQuery::setHighlight

(PECL solr >= 0.9.2)

SolrQuery::setHighlight — Включает или отключает выделение

Описание

public SolrQuery::setHighlight(bool $flag): SolrQuery

Установив значение true позволяет создавать выделенные фрагменты в ответе на запрос.

Установив значение false отключает выделение

Список параметров

flag

Включает или отключает выделение

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Задаёт поле резервного копирования для использования

  • « SolrQuery::setHighlight
  • SolrQuery::setHighlightFormatter »
  • PHP Manual
  • SolrQuery
  • Задаёт поле резервного копирования для использования

SolrQuery::setHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::setHighlightAlternateField — Задаёт поле резервного копирования для использования

Описание

public SolrQuery::setHighlightAlternateField(string $field, string $field_override = ?): SolrQuery

Если фрагмент не может быть создан из-за отсутствия подходящих выражений, можно указать поле для использования в качестве резервной копии или сводки по умолчанию.

Список параметров

field

Имя резервного поля

field_override

Имя поля, для которого мы переопределяем этот параметр.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Задаёт средство форматирования для вывода выделения

  • « SolrQuery::setHighlightAlternateField
  • SolrQuery::setHighlightFragmenter »
  • PHP Manual
  • SolrQuery
  • Задаёт средство форматирования для вывода выделения

SolrQuery::setHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFormatter — Задаёт средство форматирования для вывода выделения

Описание

public SolrQuery::setHighlightFormatter(string $formatter, string $field_override = ?): SolrQuery

Задаёт средство форматирования для вывода выделения

Список параметров

formatter

В настоящее время единственное допустимое значение - "simple"

field_override

Имя поля

Возвращаемые значения

Возвращает экземпляр SolrQuery.


Устанавливает генератор текстовых фрагментов для выделенного текста

  • « SolrQuery::setHighlightFormatter
  • SolrQuery::setHighlightFragsize »
  • PHP Manual
  • SolrQuery
  • Устанавливает генератор текстовых фрагментов для выделенного текста

SolrQuery::setHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragmenter — Устанавливает генератор текстовых фрагментов для выделенного текста

Описание

public SolrQuery::setHighlightFragmenter(string $fragmenter, string $field_override = ?): SolrQuery

Задаёт генератор текстового фрагмента для выделенного текста.

Список параметров

fragmenter

Стандартный фрагментер - разрыв. Другой вариант - регулярное выражение, которое пытается создать фрагменты, похожие на определённое регулярное выражение.

field_override

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Размер фрагментов, которые следует учитывать при выделении

  • « SolrQuery::setHighlightFragmenter
  • SolrQuery::setHighlightHighlightMultiTerm »
  • PHP Manual
  • SolrQuery
  • Размер фрагментов, которые следует учитывать при выделении

SolrQuery::setHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragsize — Размер фрагментов, которые следует учитывать при выделении

Описание

public SolrQuery::setHighlightFragsize(int $size, string $field_override = ?): SolrQuery

Устанавливает размер в символах фрагментов для выделения. "0" указывает, что следует использовать все значение поля (без фрагментации).

Список параметров

size

Размер в символах фрагментов, которые следует учитывать при выделении

field_override

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Использовать SpanScorer для выделения выражений

  • « SolrQuery::setHighlightFragsize
  • SolrQuery::setHighlightMaxAlternateFieldLength »
  • PHP Manual
  • SolrQuery
  • Использовать SpanScorer для выделения выражений

SolrQuery::setHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::setHighlightHighlightMultiTerm — Использовать SpanScorer для выделения выражений

Описание

public SolrQuery::setHighlightHighlightMultiTerm(bool $flag): SolrQuery

Использовать SpanScorer для выделения фразовых выражений, только когда они появляются во фразе запроса в документе.

Список параметров

flag

Следует ли использовать SpanScorer для выделения фразовых выражений только тогда, когда они появляются во фразе запроса в документе.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает максимальное количество символов поля для возврата

  • « SolrQuery::setHighlightHighlightMultiTerm
  • SolrQuery::setHighlightMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Устанавливает максимальное количество символов поля для возврата

SolrQuery::setHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAlternateFieldLength — Устанавливает максимальное количество символов поля для возврата

Описание

public SolrQuery::setHighlightMaxAlternateFieldLength(int $fieldLength, string $field_override = ?): SolrQuery

Если SolrQuery::setHighlightAlternateField() было передано значение true, этот параметр указывает максимальное количество символов поля для возврата

Любое значение меньше или равное 0 означает неограниченное.

Список параметров

fieldLength

Длина поля

field_override

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Задаёт количество символов в документе для поиска подходящих фрагментов

  • « SolrQuery::setHighlightMaxAlternateFieldLength
  • SolrQuery::setHighlightMergeContiguous »
  • PHP Manual
  • SolrQuery
  • Задаёт количество символов в документе для поиска подходящих фрагментов

SolrQuery::setHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAnalyzedChars — Задаёт количество символов в документе для поиска подходящих фрагментов

Описание

public SolrQuery::setHighlightMaxAnalyzedChars(int $value): SolrQuery

Задаёт количество символов в документе для поиска подходящих фрагментов

Список параметров

value

Количество символов в документе для поиска подходящих фрагментов

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Свёртывать ли смежные фрагменты в один фрагмент

  • « SolrQuery::setHighlightMaxAnalyzedChars
  • SolrQuery::setHighlightRegexMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Свёртывать ли смежные фрагменты в один фрагмент

SolrQuery::setHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMergeContiguous — Свёртывать ли смежные фрагменты в один фрагмент

Описание

public SolrQuery::setHighlightMergeContiguous(bool $flag, string $field_override = ?): SolrQuery

Свёртывать ли смежные фрагменты в один фрагмент

Список параметров

value

Свёртывать ли смежные фрагменты в один фрагмент

field_override

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Задаёт максимальное количество символов для анализа

  • « SolrQuery::setHighlightMergeContiguous
  • SolrQuery::setHighlightRegexPattern »
  • PHP Manual
  • SolrQuery
  • Задаёт максимальное количество символов для анализа

SolrQuery::setHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexMaxAnalyzedChars — Задаёт максимальное количество символов для анализа

Описание

public SolrQuery::setHighlightRegexMaxAnalyzedChars(int $maxAnalyzedChars): SolrQuery

Задаёт максимальное количество символов для анализа из поля при использовании фрагментера регулярного выражения

Список параметров

maxAnalyzedChars

Максимальное количество символов для анализа из поля при использовании фрагментера регулярного выражения

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Задаёт регулярное выражение для фрагментации

  • « SolrQuery::setHighlightRegexMaxAnalyzedChars
  • SolrQuery::setHighlightRegexSlop »
  • PHP Manual
  • SolrQuery
  • Задаёт регулярное выражение для фрагментации

SolrQuery::setHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexPattern — Задаёт регулярное выражение для фрагментации

Описание

public SolrQuery::setHighlightRegexPattern(string $value): SolrQuery

Задаёт регулярное выражение для фрагментации. Можно использовать для извлечения предложений

Список параметров

value

Регулярное выражение для фрагментации. Можно использовать для извлечения предложений

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает коэффициент, на который фрагментатор регулярного выражения может отклониться от идеального размера фрагмента

  • « SolrQuery::setHighlightRegexPattern
  • SolrQuery::setHighlightRequireFieldMatch »
  • PHP Manual
  • SolrQuery
  • Устанавливает коэффициент, на который фрагментатор регулярного выражения может отклониться от идеального размера фрагмента

SolrQuery::setHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexSlop — Устанавливает коэффициент, на который фрагментатор регулярного выражения может отклониться от идеального размера фрагмента

Описание

public SolrQuery::setHighlightRegexSlop(float $factor): SolrQuery

Коэффициент, на который фрагментатор регулярного выражения может отклониться от идеального размера фрагмента (указанного в SolrQuery::setHighlightFragsize) для соответствия регулярному выражению.

Список параметров

factor

Коэффициент, на который фрагментатор регулярного выражения может отклониться от идеального размера фрагмента

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Требовать сопоставления полей при выделении

  • « SolrQuery::setHighlightRegexSlop
  • SolrQuery::setHighlightSimplePost »
  • PHP Manual
  • SolrQuery
  • Требовать сопоставления полей при выделении

SolrQuery::setHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRequireFieldMatch — Требовать сопоставления полей при выделении

Описание

public SolrQuery::setHighlightRequireFieldMatch(bool $flag): SolrQuery

Если true, тогда поле будет выделено только в том случае, если запрос соответствует этому конкретному полю.

Будет работать, только если для SolrQuery::setHighlightUsePhraseHighlighter() установлено значение true

Список параметров

flag

true или false

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает текст, который появляется после выделенного выражения

  • « SolrQuery::setHighlightRequireFieldMatch
  • SolrQuery::setHighlightSimplePre »
  • PHP Manual
  • SolrQuery
  • Устанавливает текст, который появляется после выделенного выражения

SolrQuery::setHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePost — Устанавливает текст, который появляется после выделенного выражения

Описание

public SolrQuery::setHighlightSimplePost(string $simplePost, string $field_override = ?): SolrQuery

Устанавливает текст, который появляется после выделенного выражения

Список параметров

simplePost

Устанавливает текст, который появляется после выделенного выражения

По умолчанию </em>

field_override

Имя поля

Возвращаемые значения

Возвращает экземпляр SolrQuery.


Устанавливает текст, который появляется перед выделенным выражением

  • « SolrQuery::setHighlightSimplePost
  • SolrQuery::setHighlightSnippets »
  • PHP Manual
  • SolrQuery
  • Устанавливает текст, который появляется перед выделенным выражением

SolrQuery::setHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePre — Устанавливает текст, который появляется перед выделенным выражением

Описание

public SolrQuery::setHighlightSimplePre(string $simplePre, string $field_override = ?): SolrQuery

Устанавливает текст, который появляется перед выделенным выражением

По умолчанию <em>

Список параметров

simplePre

Текст, который появляется перед выделенным выражением

field_override

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает максимальное количество выделенных фрагментов для создания для каждого поля

  • « SolrQuery::setHighlightSimplePre
  • SolrQuery::setHighlightUsePhraseHighlighter »
  • PHP Manual
  • SolrQuery
  • Устанавливает максимальное количество выделенных фрагментов для создания для каждого поля

SolrQuery::setHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSnippets — Устанавливает максимальное количество выделенных фрагментов для создания для каждого поля

Описание

public SolrQuery::setHighlightSnippets(int $value, string $field_override = ?): SolrQuery

Устанавливает максимальное количество выделенных фрагментов для создания для каждого поля

Список параметров

value

Максимальное количество выделенных фрагментов для создания для каждого поля

field_override

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Следует ли выделять выражения только тогда, когда они появляются во фразе запроса

  • « SolrQuery::setHighlightSnippets
  • SolrQuery::setMlt »
  • PHP Manual
  • SolrQuery
  • Следует ли выделять выражения только тогда, когда они появляются во фразе запроса

SolrQuery::setHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightUsePhraseHighlighter — Следует ли выделять выражения только тогда, когда они появляются во фразе запроса

Описание

public SolrQuery::setHighlightUsePhraseHighlighter(bool $flag): SolrQuery

Устанавливает, следует ли использовать SpanScorer для выделения выражений только тогда, когда они появляются во фразе запроса в документе.

Список параметров

value

Устанавливает, следует ли использовать SpanScorer для выделения выражений только тогда, когда они появляются во фразе запроса в документе.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Включает или отключает moreLikeThis

  • « SolrQuery::setHighlightUsePhraseHighlighter
  • SolrQuery::setMltBoost »
  • PHP Manual
  • SolrQuery
  • Включает или отключает moreLikeThis

SolrQuery::setMlt

(PECL solr >= 0.9.2)

SolrQuery::setMlt — Включает или отключает moreLikeThis

Описание

public SolrQuery::setMlt(bool $flag): SolrQuery

Включает или отключает moreLikeThis

Список параметров

flag

true включает и false выключает.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает, будет ли запрос усилен релевантностью интересного выражения

  • « SolrQuery::setMlt
  • SolrQuery::setMltCount »
  • PHP Manual
  • SolrQuery
  • Устанавливает, будет ли запрос усилен релевантностью интересного выражения

SolrQuery::setMltBoost

(PECL solr >= 0.9.2)

SolrQuery::setMltBoost — Устанавливает, будет ли запрос усилен релевантностью интересного выражения

Описание

public SolrQuery::setMltBoost(bool $flag): SolrQuery

Устанавливает, будет ли запрос усилен релевантностью интересного выражения

Список параметров

value

Установите true или false

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает количество похожих документов, возвращаемых для каждого результата

  • « SolrQuery::setMltBoost
  • SolrQuery::setMltMaxNumQueryTerms »
  • PHP Manual
  • SolrQuery
  • Устанавливает количество похожих документов, возвращаемых для каждого результата

SolrQuery::setMltCount

(PECL solr >= 0.9.2)

SolrQuery::setMltCount — Устанавливает количество похожих документов, возвращаемых для каждого результата

Описание

public SolrQuery::setMltCount(int $count): SolrQuery

Устанавливает количество похожих документов, возвращаемых для каждого результата

Список параметров

count

Количество похожих документов, возвращаемых для каждого результата

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает максимальное количество включаемых выражений запроса

  • « SolrQuery::setMltCount
  • SolrQuery::setMltMaxNumTokens »
  • PHP Manual
  • SolrQuery
  • Устанавливает максимальное количество включаемых выражений запроса

SolrQuery::setMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumQueryTerms — Устанавливает максимальное количество включаемых выражений запроса

Описание

public SolrQuery::setMltMaxNumQueryTerms(int $value): SolrQuery

Устанавливает максимальное количество выражений запроса, которые будут включены в любой сгенерированный запрос.

Список параметров

value

Максимальное количество выражений запроса, которые будут включены в любой сгенерированный запрос

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Задаёт максимальное количество токенов для анализа

  • « SolrQuery::setMltMaxNumQueryTerms
  • SolrQuery::setMltMaxWordLength »
  • PHP Manual
  • SolrQuery
  • Задаёт максимальное количество токенов для анализа

SolrQuery::setMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumTokens — Задаёт максимальное количество токенов для анализа

Описание

public SolrQuery::setMltMaxNumTokens(int $value): SolrQuery

Задаёт максимальное количество токенов для анализа в каждом примере поля документа, которое не хранится с поддержкой TermVector.

Список параметров

value

Максимальное количество токенов для анализа

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает максимальную длину слова

  • « SolrQuery::setMltMaxNumTokens
  • SolrQuery::setMltMinDocFrequency »
  • PHP Manual
  • SolrQuery
  • Устанавливает максимальную длину слова

SolrQuery::setMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxWordLength — Устанавливает максимальную длину слова

Описание

public SolrQuery::setMltMaxWordLength(int $maxWordLength): SolrQuery

Устанавливает максимальную длину слова, выше которой слова будут игнорироваться.

Список параметров

maxWordLength

Максимальная длина слова, выше которой слова будут игнорироваться.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает частоту mltMinDoc

  • « SolrQuery::setMltMaxWordLength
  • SolrQuery::setMltMinTermFrequency »
  • PHP Manual
  • SolrQuery
  • Устанавливает частоту mltMinDoc

SolrQuery::setMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinDocFrequency — Устанавливает частоту mltMinDoc

Описание

public SolrQuery::setMltMinDocFrequency(int $minDocFrequency): SolrQuery

Частота, с которой будут игнорироваться слова, которых нет, по крайней мере, в таком количестве документов.

Список параметров

minDocFrequency

Частота, с которой будут игнорироваться слова, которых нет, по крайней мере, в таком количестве документов.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает частоту, ниже которой выражения будут игнорироваться в исходной документации

  • « SolrQuery::setMltMinDocFrequency
  • SolrQuery::setMltMinWordLength »
  • PHP Manual
  • SolrQuery
  • Устанавливает частоту, ниже которой выражения будут игнорироваться в исходной документации

SolrQuery::setMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinTermFrequency — Устанавливает частоту, ниже которой выражения будут игнорироваться в исходной документации

Описание

public SolrQuery::setMltMinTermFrequency(int $minTermFrequency): SolrQuery

Устанавливает частоту, ниже которой выражения будут игнорироваться в исходной документации

Список параметров

minTermFrequency

Частота, ниже которой выражения будут игнорироваться в исходной документации.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает минимальную длину слова

  • « SolrQuery::setMltMinTermFrequency
  • SolrQuery::setOmitHeader »
  • PHP Manual
  • SolrQuery
  • Устанавливает минимальную длину слова

SolrQuery::setMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMinWordLength — Устанавливает минимальную длину слова

Описание

public SolrQuery::setMltMinWordLength(int $minWordLength): SolrQuery

Устанавливает минимальную длину слова, ниже которой слова будут игнорироваться.

Список параметров

minWordLength

Минимальная длина слова, ниже которой слова будут игнорироваться

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Исключает заголовок из возвращаемых результатов

  • « SolrQuery::setMltMinWordLength
  • SolrQuery::setQuery »
  • PHP Manual
  • SolrQuery
  • Исключает заголовок из возвращаемых результатов

SolrQuery::setOmitHeader

(PECL solr >= 0.9.2)

SolrQuery::setOmitHeader — Исключает заголовок из возвращаемых результатов

Описание

public SolrQuery::setOmitHeader(bool $flag): SolrQuery

Исключает заголовок из возвращаемых результатов

Список параметров

flag

true исключает заголовок из результата.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает поисковый запрос

  • « SolrQuery::setOmitHeader
  • SolrQuery::setRows »
  • PHP Manual
  • SolrQuery
  • Устанавливает поисковый запрос

SolrQuery::setQuery

(PECL solr >= 0.9.2)

SolrQuery::setQuery — Устанавливает поисковый запрос

Описание

public SolrQuery::setQuery(string $query): SolrQuery

Устанавливает поисковый запрос

Список параметров

query

Поисковый запрос

Возвращаемые значения

Возвращает текущий объект SolrQuery.


Задаёт максимальное количество строк, возвращаемых в результате

  • « SolrQuery::setQuery
  • SolrQuery::setShowDebugInfo »
  • PHP Manual
  • SolrQuery
  • Задаёт максимальное количество строк, возвращаемых в результате

SolrQuery::setRows

(PECL solr >= 0.9.2)

SolrQuery::setRows — Задаёт максимальное количество строк, возвращаемых в результате

Описание

public SolrQuery::setRows(int $rows): SolrQuery

Задаёт максимальное количество строк, возвращаемых в результате

Список параметров

rows

Максимальное количество возвращаемых строк

Возвращаемые значения

Возвращает текущий объект SolrQuery.


Флаг для отображения отладочной информации

  • « SolrQuery::setRows
  • SolrQuery::setStart »
  • PHP Manual
  • SolrQuery
  • Флаг для отображения отладочной информации

SolrQuery::setShowDebugInfo

(PECL solr >= 0.9.2)

SolrQuery::setShowDebugInfo — Флаг для отображения отладочной информации

Описание

public SolrQuery::setShowDebugInfo(bool $flag): SolrQuery

Показывать ли отладочную информацию

Список параметров

flag

Показывать ли отладочную информацию. true или false

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Определяет количество пропускаемых строк

  • « SolrQuery::setShowDebugInfo
  • SolrQuery::setStats »
  • PHP Manual
  • SolrQuery
  • Определяет количество пропускаемых строк

SolrQuery::setStart

(PECL solr >= 0.9.2)

SolrQuery::setStart — Определяет количество пропускаемых строк

Описание

public SolrQuery::setStart(int $start): SolrQuery

Определяет количество пропускаемых строк. Полезно в разбивке на страницы результатов.

Список параметров

start

Количество пропущенных строк.

Возвращаемые значения

Возвращает текущий объект SolrQuery.


Включает или отключает компонент Stats

  • « SolrQuery::setStart
  • SolrQuery::setTerms »
  • PHP Manual
  • SolrQuery
  • Включает или отключает компонент Stats

SolrQuery::setStats

(PECL solr >= 0.9.2)

SolrQuery::setStats — Включает или отключает компонент Stats

Описание

public SolrQuery::setStats(bool $flag): SolrQuery

Включает или отключает компонент Stats.

Список параметров

flag

true включает компонент Stats, а false отключает.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Включает или отключает TermsComponent

  • « SolrQuery::setStats
  • SolrQuery::setTermsField »
  • PHP Manual
  • SolrQuery
  • Включает или отключает TermsComponent

SolrQuery::setTerms

(PECL solr >= 0.9.2)

SolrQuery::setTerms — Включает или отключает TermsComponent

Описание

public SolrQuery::setTerms(bool $flag): SolrQuery

Включает или отключает TermsComponent

Список параметров

flag

true включает. false отключает

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает имя поля, из которого нужно получить выражение

  • « SolrQuery::setTerms
  • SolrQuery::setTermsIncludeLowerBound »
  • PHP Manual
  • SolrQuery
  • Устанавливает имя поля, из которого нужно получить выражение

SolrQuery::setTermsField

(PECL solr >= 0.9.2)

SolrQuery::setTermsField — Устанавливает имя поля, из которого нужно получить выражение

Описание

public SolrQuery::setTermsField(string $fieldname): SolrQuery

Устанавливает имя поля, из которого нужно получить выражение

Список параметров

fieldname

Имя поля

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Включает нижнюю границу выражения в набор результатов

  • « SolrQuery::setTermsField
  • SolrQuery::setTermsIncludeUpperBound »
  • PHP Manual
  • SolrQuery
  • Включает нижнюю границу выражения в набор результатов

SolrQuery::setTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeLowerBound — Включает нижнюю границу выражения в набор результатов

Описание

public SolrQuery::setTermsIncludeLowerBound(bool $flag): SolrQuery

Включает нижнюю границу выражения в набор результатов

Список параметров

flag

Включает нижнюю границу выражения в набор результатов

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Включает верхнюю границу выражения в набор результатов

  • « SolrQuery::setTermsIncludeLowerBound
  • SolrQuery::setTermsLimit »
  • PHP Manual
  • SolrQuery
  • Включает верхнюю границу выражения в набор результатов

SolrQuery::setTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeUpperBound — Включает верхнюю границу выражения в набор результатов

Описание

public SolrQuery::setTermsIncludeUpperBound(bool $flag): SolrQuery

Включает верхнюю границу выражения в набор результатов

Список параметров

flag

true or false

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает максимальное количество возвращаемых выражений

  • « SolrQuery::setTermsIncludeUpperBound
  • SolrQuery::setTermsLowerBound »
  • PHP Manual
  • SolrQuery
  • Устанавливает максимальное количество возвращаемых выражений

SolrQuery::setTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::setTermsLimit — Устанавливает максимальное количество возвращаемых выражений

Описание

public SolrQuery::setTermsLimit(int $limit): SolrQuery

Устанавливает максимальное количество возвращаемых выражений

Список параметров

limit

Максимальное количество возвращаемых терминов. Все выражения будут возвращены, если лимит отрицательный.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Определяет выражение, с которого нужно начинать

  • « SolrQuery::setTermsLimit
  • SolrQuery::setTermsMaxCount »
  • PHP Manual
  • SolrQuery
  • Определяет выражение, с которого нужно начинать

SolrQuery::setTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsLowerBound — Определяет выражение, с которого нужно начинать

Описание

public SolrQuery::setTermsLowerBound(string $lowerBound): SolrQuery

Определяет выражение, с которого нужно начинать

Список параметров

lowerBound

Нижняя граница выражения

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает максимальную частоту документов

  • « SolrQuery::setTermsLowerBound
  • SolrQuery::setTermsMinCount »
  • PHP Manual
  • SolrQuery
  • Устанавливает максимальную частоту документов

SolrQuery::setTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMaxCount — Устанавливает максимальную частоту документов

Описание

public SolrQuery::setTermsMaxCount(int $frequency): SolrQuery

Устанавливает максимальную частоту документов.

Список параметров

frequency

Максимальная частота

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает минимальную частоту документов

  • « SolrQuery::setTermsMaxCount
  • SolrQuery::setTermsPrefix »
  • PHP Manual
  • SolrQuery
  • Устанавливает минимальную частоту документов

SolrQuery::setTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMinCount — Устанавливает минимальную частоту документов

Описание

public SolrQuery::setTermsMinCount(int $frequency): SolrQuery

Устанавливает минимальную частоту возврата документов для включения

Список параметров

frequency

Минимальная частота

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Ограничивает совпадения выражениями, начинающимися с префикса

  • « SolrQuery::setTermsMinCount
  • SolrQuery::setTermsReturnRaw »
  • PHP Manual
  • SolrQuery
  • Ограничивает совпадения выражениями, начинающимися с префикса

SolrQuery::setTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::setTermsPrefix — Ограничивает совпадения выражениями, начинающимися с префикса

Описание

public SolrQuery::setTermsPrefix(string $prefix): SolrQuery

Ограничивает совпадения выражениями, начинающимися с префикса

Список параметров

prefix

Ограничивает совпадения выражениями, начинающимися с префикса

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Вернуть необработанные символы проиндексированного выражения

  • « SolrQuery::setTermsPrefix
  • SolrQuery::setTermsSort »
  • PHP Manual
  • SolrQuery
  • Вернуть необработанные символы проиндексированного выражения

SolrQuery::setTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::setTermsReturnRaw — Вернуть необработанные символы проиндексированного выражения

Описание

public SolrQuery::setTermsReturnRaw(bool $flag): SolrQuery

Если true, возвращает необработанные символы проиндексированного выражения, независимо от того, человекочитаемые ли они.

Список параметров

value

true or false

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Определяет, как сортировать возвращённые условия

  • « SolrQuery::setTermsReturnRaw
  • SolrQuery::setTermsUpperBound »
  • PHP Manual
  • SolrQuery
  • Определяет, как сортировать возвращённые условия

SolrQuery::setTermsSort

(PECL solr >= 0.9.2)

SolrQuery::setTermsSort — Определяет, как сортировать возвращённые условия

Описание

public SolrQuery::setTermsSort(int $sortType): SolrQuery

Если SolrQuery::TERMS_SORT_COUNT, сортирует термины по частоте (наибольшее количество сначала). Если SolrQuery::TERMS_SORT_INDEX, возвращает условия в порядке индекса

Список параметров

sortType

SolrQuery::TERMS_SORT_INDEX или SolrQuery::TERMS_SORT_COUNT

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Устанавливает условие для остановки

  • « SolrQuery::setTermsSort
  • SolrQuery::setTimeAllowed »
  • PHP Manual
  • SolrQuery
  • Устанавливает условие для остановки

SolrQuery::setTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsUpperBound — Устанавливает условие для остановки

Описание

public SolrQuery::setTermsUpperBound(string $upperBound): SolrQuery

Устанавливает условие для остановки

Список параметров

upperBound

Условие для остановки

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Время, отведённое на поиск

  • « SolrQuery::setTermsUpperBound
  • SolrDisMaxQuery »
  • PHP Manual
  • SolrQuery
  • Время, отведённое на поиск

SolrQuery::setTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::setTimeAllowed — Время, отведённое на поиск

Описание

public SolrQuery::setTimeAllowed(int $timeAllowed): SolrQuery

Время, отведённое для завершения поиска. Это значение относится только к поиску, а не к запросам в целом. Время в миллисекундах. Значения, меньшие или равные нулю, не предполагают ограничения по времени. Частичные результаты могут быть возвращены, если они есть.

Список параметров

timeAllowed

Время, отведённое для завершения поиска.

Возвращаемые значения

Возвращает текущий объект SolrQuery, если используется возвращаемое значение.


Класс SolrDisMaxQuery

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

class SolrDisMaxQuery extends SolrQuery implements Serializable {
/* Наследуемые свойства */
const int SolrQuery::ORDER_ASC = 0;
const int SolrQuery::ORDER_DESC = 1;
const int SolrQuery::FACET_SORT_INDEX = 0;
const int SolrQuery::FACET_SORT_COUNT = 1;
const int SolrQuery::TERMS_SORT_INDEX = 0;
const int SolrQuery::TERMS_SORT_COUNT = 1;
/* Методы */
public __construct(string $q = ?)
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 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(): SolrDisMaxQuery
public useEDisMaxQueryParser(): 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::getExpand(): bool
public SolrQuery::getExpandFilterQueries(): array
public SolrQuery::getExpandQuery(): array
public SolrQuery::getExpandRows(): int
public SolrQuery::getExpandSortFields(): array
public SolrQuery::getFacet(): bool
public SolrQuery::getFacetDateEnd(string $field_override = ?): string
public SolrQuery::getFacetDateFields(): 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(): 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(): array
public SolrQuery::getFacetSort(string $field_override = ?): int
public SolrQuery::getFields(): array
public SolrQuery::getFilterQueries(): array
public SolrQuery::getGroup(): bool
public SolrQuery::getGroupCachePercent(): int
public SolrQuery::getGroupFacet(): bool
public SolrQuery::getGroupFields(): array
public SolrQuery::getGroupFormat(): string
public SolrQuery::getGroupFunctions(): array
public SolrQuery::getGroupLimit(): int
public SolrQuery::getGroupMain(): bool
public SolrQuery::getGroupNGroups(): bool
public SolrQuery::getGroupOffset(): int
public SolrQuery::getGroupQueries(): array
public SolrQuery::getGroupSortFields(): array
public SolrQuery::getGroupTruncate(): bool
public SolrQuery::getHighlight(): bool
public SolrQuery::getHighlightAlternateField(string $field_override = ?): string
public SolrQuery::getHighlightFields(): 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(): bool
public SolrQuery::getHighlightMaxAlternateFieldLength(string $field_override = ?): int
public SolrQuery::getHighlightMaxAnalyzedChars(): int
public SolrQuery::getHighlightMergeContiguous(string $field_override = ?): bool
public SolrQuery::getHighlightRegexMaxAnalyzedChars(): int
public SolrQuery::getHighlightRegexPattern(): string
public SolrQuery::getHighlightRegexSlop(): float
public SolrQuery::getHighlightRequireFieldMatch(): 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(): bool
public SolrQuery::getMlt(): bool
public SolrQuery::getMltBoost(): bool
public SolrQuery::getMltCount(): int
public SolrQuery::getMltFields(): array
public SolrQuery::getMltMaxNumQueryTerms(): int
public SolrQuery::getMltMaxNumTokens(): int
public SolrQuery::getMltMaxWordLength(): int
public SolrQuery::getMltMinDocFrequency(): int
public SolrQuery::getMltMinTermFrequency(): int
public SolrQuery::getMltMinWordLength(): int
public SolrQuery::getMltQueryFields(): array
public SolrQuery::getQuery(): string
public SolrQuery::getRows(): int
public SolrQuery::getSortFields(): array
public SolrQuery::getStart(): int
public SolrQuery::getStats(): bool
public SolrQuery::getStatsFacets(): array
public SolrQuery::getStatsFields(): array
public SolrQuery::getTerms(): bool
public SolrQuery::getTermsField(): string
public SolrQuery::getTermsIncludeLowerBound(): bool
public SolrQuery::getTermsIncludeUpperBound(): bool
public SolrQuery::getTermsLimit(): int
public SolrQuery::getTermsLowerBound(): string
public SolrQuery::getTermsMaxCount(): int
public SolrQuery::getTermsMinCount(): int
public SolrQuery::getTermsPrefix(): string
public SolrQuery::getTermsReturnRaw(): bool
public SolrQuery::getTermsSort(): int
public SolrQuery::getTermsUpperBound(): string
public SolrQuery::getTimeAllowed(): 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

Используется для указания того, что сортировка должна быть в возрастающем порядке (дублировать для упрощения миграции)

SolrDisMaxQuery::ORDER_DESC

Используется для указания, что сортировка должна быть в порядке убывания (дублируется для упрощения миграции)

SolrDisMaxQuery::FACET_SORT_INDEX

Используется для указания сортировки фасета по индексу (дублируется для упрощения миграции)

SolrDisMaxQuery::FACET_SORT_COUNT

Используется для указания сортировки фасета по количеству (дублируется для упрощения миграции)

SolrDisMaxQuery::TERMS_SORT_INDEX

Используется в TermsComponent (дублируется для упрощения миграции)

SolrDisMaxQuery::TERMS_SORT_COUNT

Используется в TermsComponent (дублируется для упрощения миграции)

Содержание

  • SolrDisMaxQuery::addBigramPhraseField — Добавляет поле фразовой биграммы (параметр pf2)
  • SolrDisMaxQuery::addBoostQuery — Добавляет поле повышения запроса со значением и необязательным усилением (параметр bq)
  • SolrDisMaxQuery::addPhraseField — Добавляет поле фразы (параметр pf)
  • SolrDisMaxQuery::addQueryField — Добавляет поле запроса с необязательным повышением (параметр qf)
  • SolrDisMaxQuery::addTrigramPhraseField — Добавляет поле триграммы (параметр pf3)
  • SolrDisMaxQuery::addUserField — Добавляет поле в параметр пользовательских полей (uf)
  • SolrDisMaxQuery::__construct — Конструктор класса
  • SolrDisMaxQuery::removeBigramPhraseField — Удаляет поле биграммы фразы (параметр pf2)
  • SolrDisMaxQuery::removeBoostQuery — Удаляет частичное повышение запроса по имени поля (bq)
  • SolrDisMaxQuery::removePhraseField — Удаляет поле фразы (параметра)
  • SolrDisMaxQuery::removeQueryField — Удаляет поле запроса (параметр qf)
  • SolrDisMaxQuery::removeTrigramPhraseField — Удаляет поле триграммы (параметр pf3)
  • SolrDisMaxQuery::removeUserField — Удаляет поле из параметра пользовательских полей (uf)
  • SolrDisMaxQuery::setBigramPhraseFields — Устанавливает поля биграммы фразы и их усиления (и отклонения) с помощью параметра pf2
  • SolrDisMaxQuery::setBigramPhraseSlop — Устанавливает коэффициент отклонения биграммы фразы (параметр ps2)
  • SolrDisMaxQuery::setBoostFunction — Устанавливает функцию усиления (параметр bf)
  • SolrDisMaxQuery::setBoostQuery — Непосредственно устанавливает параметр запроса усиления (bq)
  • SolrDisMaxQuery::setMinimumMatch — Устанавливает минимальное соответствие "Should" (mm)
  • SolrDisMaxQuery::setPhraseFields — Устанавливает поля фразы и их усиления (и отклонения) с помощью параметра pf2
  • SolrDisMaxQuery::setPhraseSlop — Устанавливает коэффициент отклонения по умолчанию для запросов фраз (параметр ps)
  • SolrDisMaxQuery::setQueryAlt — Устанавливает альтернативный запрос (параметр q.alt)
  • SolrDisMaxQuery::setQueryPhraseSlop — Определяет коэффициент отклонения, разрешённый для фразовых запросов, явно включённых в строку запроса пользователя (параметр qf)
  • SolrDisMaxQuery::setTieBreaker — Устанавливает параметр Tie Breaker (параметр tie)
  • SolrDisMaxQuery::setTrigramPhraseFields — Непосредственно устанавливает поля триграммы фразы (параметр pf3)
  • SolrDisMaxQuery::setTrigramPhraseSlop — Устанавливает коэффициент отклонения триграммы фразы (параметр ps3)
  • SolrDisMaxQuery::setUserFields — Устанавливает параметр пользовательских полей (uf)
  • SolrDisMaxQuery::useDisMaxQueryParser — Переключает QueryParser на DisMax Query Parser
  • SolrDisMaxQuery::useEDisMaxQueryParser — Переключает QueryParser на EDisMax


Добавляет поле фразовой биграммы (параметр pf2)

  • « SolrDisMaxQuery
  • SolrDisMaxQuery::addBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Добавляет поле фразовой биграммы (параметр pf2)

SolrDisMaxQuery::addBigramPhraseField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::addBigramPhraseField — Добавляет поле фразовой биграммы (параметр pf2)

Описание

public SolrDisMaxQuery::addBigramPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery

Добавляет поле фразовой биграммы (параметр pf2) Выходной формат: field~slop^boost ИЛИ field^boost Slop не является обязательным

Список параметров

field

boost

slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::addBigramPhraseField()

<?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() - Удаляет поле биграммы фразы (параметр pf2)
  • SolrDisMaxQuery::setBigramPhraseFields() - Устанавливает поля биграммы фразы и их усиления (и отклонения) с помощью параметра pf2
  • SolrDisMaxQuery::setBigramPhraseSlop() - Устанавливает коэффициент отклонения биграммы фразы (параметр ps2)


Добавляет поле повышения запроса со значением и необязательным усилением (параметр bq)

  • « SolrDisMaxQuery::addBigramPhraseField
  • SolrDisMaxQuery::addPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Добавляет поле повышения запроса со значением и необязательным усилением (параметр bq)

SolrDisMaxQuery::addBoostQuery

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::addBoostQuery — Добавляет поле повышения запроса со значением и необязательным усилением (параметр bq)

Описание

public SolrDisMaxQuery::addBoostQuery(string $field, string $value, string $boost = ?): SolrDisMaxQuery

Добавляет поле повышения запроса со значением [и повышение] (параметр bq)

Список параметров

field

value

boost

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::addBoostQuery()

<?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() - Удаляет частичное повышение запроса по имени поля (bq)
  • SolrDisMaxQuery::setBoostQuery() - Непосредственно устанавливает параметр запроса усиления (bq)


Добавляет поле фразы (параметр pf)

  • « SolrDisMaxQuery::addBoostQuery
  • SolrDisMaxQuery::addQueryField »
  • PHP Manual
  • SolrDisMaxQuery
  • Добавляет поле фразы (параметр pf)

SolrDisMaxQuery::addPhraseField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::addPhraseField — Добавляет поле фразы (параметр pf)

Описание

public SolrDisMaxQuery::addPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery

Добавляет поле фразы (параметр pf)

Список параметров

field

field name

boost

slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::addPhraseField()

<?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() - Удаляет поле фразы (параметра)
  • SolrDisMaxQuery::setPhraseFields() - Устанавливает поля фразы и их усиления (и отклонения) с помощью параметра pf2


Добавляет поле запроса с необязательным повышением (параметр qf)

  • « SolrDisMaxQuery::addPhraseField
  • SolrDisMaxQuery::addTrigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Добавляет поле запроса с необязательным повышением (параметр qf)

SolrDisMaxQuery::addQueryField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::addQueryField — Добавляет поле запроса с необязательным повышением (параметр qf)

Описание

public SolrDisMaxQuery::addQueryField(string $field, string $boost = ?): SolrDisMaxQuery

Добавляет поле запроса с необязательным повышением

Список параметров

field

Имя поля

boost

Повышение значения. Добавляет документы с соответствующими выражениями.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::addQueryField()

<?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() - Удаляет поле запроса (параметр qf)


Добавляет поле триграммы (параметр pf3)

  • « SolrDisMaxQuery::addQueryField
  • SolrDisMaxQuery::addUserField »
  • PHP Manual
  • SolrDisMaxQuery
  • Добавляет поле триграммы (параметр pf3)

SolrDisMaxQuery::addTrigramPhraseField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::addTrigramPhraseField — Добавляет поле триграммы (параметр pf3)

Описание

public SolrDisMaxQuery::addTrigramPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery

Добавляет поле триграммы (параметр pf3)

Список параметров

field

Имя поля

boost

Поле Boost

slop

Поле Slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::addTrigramPhraseField()

<?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() - Удаляет поле триграммы (параметр pf3)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Непосредственно устанавливает поля триграммы фразы (параметр pf3)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Устанавливает коэффициент отклонения триграммы фразы (параметр ps3)


Добавляет поле в параметр пользовательских полей (uf)

  • « SolrDisMaxQuery::addTrigramPhraseField
  • SolrDisMaxQuery::__construct »
  • PHP Manual
  • SolrDisMaxQuery
  • Добавляет поле в параметр пользовательских полей (uf)

SolrDisMaxQuery::addUserField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::addUserField — Добавляет поле в параметр пользовательских полей (uf)

Описание

public SolrDisMaxQuery::addUserField(string $field): SolrDisMaxQuery

Добавляет поле в параметр пользовательских полей (uf)

Список параметров

field

Имя поля

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::addUserField()

<?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() - Удаляет поле из параметра пользовательских полей (uf)
  • SolrDisMaxQuery::setUserFields() - Устанавливает параметр пользовательских полей (uf)


Конструктор класса

  • « SolrDisMaxQuery::addUserField
  • SolrDisMaxQuery::removeBigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Конструктор класса

SolrDisMaxQuery::__construct

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::__construct — Конструктор класса

Описание

public SolrDisMaxQuery::__construct(string $q = ?)

Конструктор класса инициализирует объект и устанавливает параметр q, если он указан

Список параметров

q

Поисковый запрос (параметр q)

Возвращаемые значения

Ошибки

Выбрасывает SolrIllegalArgumentException в случае передачи неверного параметра.

Примеры

Пример #1 Пример использования SolrDisMaxQuery::__construct()

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
echo $dismaxQuery;

?>

Результат выполнения данного примера:

q=lucene&defType=edismax


Удаляет поле биграммы фразы (параметр pf2)

  • « SolrDisMaxQuery::__construct
  • SolrDisMaxQuery::removeBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Удаляет поле биграммы фразы (параметр pf2)

SolrDisMaxQuery::removeBigramPhraseField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::removeBigramPhraseField — Удаляет поле биграммы фразы (параметр pf2)

Описание

public SolrDisMaxQuery::removeBigramPhraseField(string $field): SolrDisMaxQuery

Удаляет поле фразы биграммы (параметр pf2), которое было ранее добавлено с помощью SolrDisMaxQuery::addBigramPhraseField()

Список параметров

field

Имя поля

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::removeBigramPhraseField()

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
->addBigramPhraseField('cat', 2, 5.1)
->addBigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;

// удалить cat из 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() - Добавляет поле фразовой биграммы (параметр pf2)
  • SolrDisMaxQuery::setBigramPhraseFields() - Устанавливает поля биграммы фразы и их усиления (и отклонения) с помощью параметра pf2
  • SolrDisMaxQuery::setBigramPhraseSlop() - Устанавливает коэффициент отклонения биграммы фразы (параметр ps2)


Удаляет частичное повышение запроса по имени поля (bq)

  • « SolrDisMaxQuery::removeBigramPhraseField
  • SolrDisMaxQuery::removePhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Удаляет частичное повышение запроса по имени поля (bq)

SolrDisMaxQuery::removeBoostQuery

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::removeBoostQuery — Удаляет частичное повышение запроса по имени поля (bq)

Описание

public SolrDisMaxQuery::removeBoostQuery(string $field): SolrDisMaxQuery

Удаляет частичный запрос повышения из существующего запроса, только если было выполнено SolrDisMaxQuery::addBoostQuery().

Список параметров

field

Имя поля

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::removeBoostQuery()

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
->addBoostQuery('cat', 'electronics', 5.1)
->addBoostQuery('cat', 'hard drive')
;
echo $dismaxQuery.PHP_EOL;
// теперь удалите часть запроса с полем '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() - Добавляет поле повышения запроса со значением и необязательным усилением (параметр bq)
  • SolrDisMaxQuery::setBoostQuery() - Непосредственно устанавливает параметр запроса усиления (bq)


Удаляет поле фразы (параметра)

  • « SolrDisMaxQuery::removeBoostQuery
  • SolrDisMaxQuery::removeQueryField »
  • PHP Manual
  • SolrDisMaxQuery
  • Удаляет поле фразы (параметра)

SolrDisMaxQuery::removePhraseField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::removePhraseField — Удаляет поле фразы (параметра)

Описание

public SolrDisMaxQuery::removePhraseField(string $field): SolrDisMaxQuery

Удаляет поле фразы (параметра), которое было ранее добавлено с помощью SolrDisMaxQuery::addPhraseField

Список параметров

field

Имя поля

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::removePhraseField()

<?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() - Добавляет поле фразы (параметр pf)
  • SolrDisMaxQuery::setPhraseFields() - Устанавливает поля фразы и их усиления (и отклонения) с помощью параметра pf2


Удаляет поле запроса (параметр qf)

  • « SolrDisMaxQuery::removePhraseField
  • SolrDisMaxQuery::removeTrigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Удаляет поле запроса (параметр qf)

SolrDisMaxQuery::removeQueryField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::removeQueryField — Удаляет поле запроса (параметр qf)

Описание

public SolrDisMaxQuery::removeQueryField(string $field): SolrDisMaxQuery

Удаляет поле запроса (параметр qf) из списка полей, добавленных с помощью SolrDisMaxQuery::addQueryField()

qf: При создании DisjunctionMaxQueries из пользовательского запроса он указывает поля для поиска и увеличивает их количество.

Список параметров

field

Имя поля

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::removeQueryField()

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addQueryField('first', 3)
->addQueryField('second', 0.2)
->addQueryField('cat');
echo $dismaxQuery . PHP_EOL;
// удалите поле '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() - Добавляет поле запроса с необязательным повышением (параметр qf)


Удаляет поле триграммы (параметр pf3)

  • « SolrDisMaxQuery::removeQueryField
  • SolrDisMaxQuery::removeUserField »
  • PHP Manual
  • SolrDisMaxQuery
  • Удаляет поле триграммы (параметр pf3)

SolrDisMaxQuery::removeTrigramPhraseField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::removeTrigramPhraseField — Удаляет поле триграммы (параметр pf3)

Описание

public SolrDisMaxQuery::removeTrigramPhraseField(string $field): SolrDisMaxQuery

Удаляет поле триграммы (параметр pf3)

Список параметров

field

Имя поля

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::removeTrigramPhraseField()

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addTrigramPhraseField('cat', 2, 5.1)
->addTrigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;
// удаление
$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() - Добавляет поле триграммы (параметр pf3)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Непосредственно устанавливает поля триграммы фразы (параметр pf3)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Устанавливает коэффициент отклонения триграммы фразы (параметр ps3)


Удаляет поле из параметра пользовательских полей (uf)

  • « SolrDisMaxQuery::removeTrigramPhraseField
  • SolrDisMaxQuery::setBigramPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Удаляет поле из параметра пользовательских полей (uf)

SolrDisMaxQuery::removeUserField

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::removeUserField — Удаляет поле из параметра пользовательских полей (uf)

Описание

public SolrDisMaxQuery::removeUserField(string $field): SolrDisMaxQuery

Удаляет поле из параметра пользовательских полей (uf)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

field

Имя поля

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::removeUserField()

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addUserField('cat')
->addUserField('text')
->addUserField('*_dt')
;
echo $dismaxQuery.PHP_EOL;

// удалить поле '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() - Добавляет поле в параметр пользовательских полей (uf)
  • SolrDisMaxQuery::setUserFields() - Устанавливает параметр пользовательских полей (uf)


Устанавливает поля биграммы фразы и их усиления (и отклонения) с помощью параметра pf2

  • « SolrDisMaxQuery::removeUserField
  • SolrDisMaxQuery::setBigramPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Устанавливает поля биграммы фразы и их усиления (и отклонения) с помощью параметра pf2

SolrDisMaxQuery::setBigramPhraseFields

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setBigramPhraseFields — Устанавливает поля биграммы фразы и их усиления (и отклонения) с помощью параметра pf2

Описание

public SolrDisMaxQuery::setBigramPhraseFields(string $fields): SolrDisMaxQuery

Устанавливает поля биграммы фразы и их усиления (и отклонения) с помощью параметра pf2.

Список параметров

fields

Усиления полей (отклонения).

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setBigramPhraseFields()

<?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() - Устанавливает коэффициент отклонения биграммы фразы (параметр ps2)
  • SolrDisMaxQuery::addBigramPhraseFields()
  • SolrDisMaxQuery::removeBigramPhraseField() - Удаляет поле биграммы фразы (параметр pf2)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Непосредственно устанавливает поля триграммы фразы (параметр pf3)


Устанавливает коэффициент отклонения биграммы фразы (параметр ps2)

  • « SolrDisMaxQuery::setBigramPhraseFields
  • SolrDisMaxQuery::setBoostFunction »
  • PHP Manual
  • SolrDisMaxQuery
  • Устанавливает коэффициент отклонения биграммы фразы (параметр ps2)

SolrDisMaxQuery::setBigramPhraseSlop

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setBigramPhraseSlop — Устанавливает коэффициент отклонения биграммы фразы (параметр ps2)

Описание

public SolrDisMaxQuery::setBigramPhraseSlop(string $slop): SolrDisMaxQuery

Устанавливает коэффициент отклонения биграммы фразы (параметр ps2). Коэффициент отклонения по умолчанию для полей биграммы фразы.

Список параметров

slop

Коэффициент отклонения.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setBigramPhraseSlop()

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$dismaxQuery->setBigramPhraseSlop(5);
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&ps2=5


Устанавливает функцию усиления (параметр bf)

  • « SolrDisMaxQuery::setBigramPhraseSlop
  • SolrDisMaxQuery::setBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Устанавливает функцию усиления (параметр bf)

SolrDisMaxQuery::setBoostFunction

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setBoostFunction — Устанавливает функцию усиления (параметр bf)

Описание

public SolrDisMaxQuery::setBoostFunction(string $function): SolrDisMaxQuery

Устанавливает функцию усиления (параметр bf)

Функции (с необязательными усилениями), которые будут включены в запрос пользователя, чтобы повлиять на оценку. Можно использовать любую функцию, изначально поддерживаемую Solr, вместе со значением повышения, например.:

recip(rord(myfield),1,2,3)^1.5

Список параметров

function

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setBoostFunction()

<?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)


Непосредственно устанавливает параметр запроса усиления (bq)

  • « SolrDisMaxQuery::setBoostFunction
  • SolrDisMaxQuery::setMinimumMatch »
  • PHP Manual
  • SolrDisMaxQuery
  • Непосредственно устанавливает параметр запроса усиления (bq)

SolrDisMaxQuery::setBoostQuery

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setBoostQuery — Непосредственно устанавливает параметр запроса усиления (bq)

Описание

public SolrDisMaxQuery::setBoostQuery(string $q): SolrDisMaxQuery

Устанавливает параметр запроса усиления (bq).

Список параметров

q

Запрос.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setBoostQuery()

<?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() - Добавляет поле повышения запроса со значением и необязательным усилением (параметр bq)
  • SolrDisMaxQuery::removeBoostQuery() - Удаляет частичное повышение запроса по имени поля (bq)


Устанавливает минимальное соответствие "Should" (mm)

  • « SolrDisMaxQuery::setBoostQuery
  • SolrDisMaxQuery::setPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Устанавливает минимальное соответствие "Should" (mm)

SolrDisMaxQuery::setMinimumMatch

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setMinimumMatch — Устанавливает минимальное соответствие "Should" (mm)

Описание

public SolrDisMaxQuery::setMinimumMatch(string $value): SolrDisMaxQuery

Устанавливает параметр минимального соответствия "Should" (mm). Если оператор запроса по умолчанию - AND (И), тогда mm = 100%, если оператор запроса по умолчанию (q.op) - OR (ИЛИ), то mm = 0%.

Список параметров

value

Минимальное значение соответствия/выражение.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setMinimumMatch()

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
// 75% предложений запроса должны соответствовать
$dismaxQuery->setMinimumMatch("75%");
echo $dismaxQuery . PHP_EOL;
?>

Результат выполнения данного примера:

q=lucene&defType=edismax&mm=75%


Устанавливает поля фразы и их усиления (и отклонения) с помощью параметра pf2

  • « SolrDisMaxQuery::setMinimumMatch
  • SolrDisMaxQuery::setPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Устанавливает поля фразы и их усиления (и отклонения) с помощью параметра pf2

SolrDisMaxQuery::setPhraseFields

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setPhraseFields — Устанавливает поля фразы и их усиления (и отклонения) с помощью параметра pf2

Описание

public SolrDisMaxQuery::setPhraseFields(string $fields): SolrDisMaxQuery

Устанавливает поля фразы и их усиления (и отклонения) с помощью параметра pf2.

Список параметров

fields

Поля, усиления (отклонения).

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setPhraseFields()

<?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() - Удаляет поле фразы (параметра)


Устанавливает коэффициент отклонения по умолчанию для запросов фраз (параметр ps)

  • « SolrDisMaxQuery::setPhraseFields
  • SolrDisMaxQuery::setQueryAlt »
  • PHP Manual
  • SolrDisMaxQuery
  • Устанавливает коэффициент отклонения по умолчанию для запросов фраз (параметр ps)

SolrDisMaxQuery::setPhraseSlop

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setPhraseSlop — Устанавливает коэффициент отклонения по умолчанию для запросов фраз (параметр ps)

Описание

public SolrDisMaxQuery::setPhraseSlop(string $slop): SolrDisMaxQuery

Устанавливает коэффициент отклонения по умолчанию для фразовых запросов, построенных с полями "pf", "pf2" and/or "pf3" (влияет на усиление). Параметр "ps".

Список параметров

slop

Коэффициент отклонения по умолчанию.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setPhraseSlop()

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$dismaxQuery->setPhraseSlop(4);
echo $dismaxQuery.PHP_EOL;

?>

Результат выполнения данного примера:

q=lucene&defType=edismax&ps=4


Устанавливает альтернативный запрос (параметр q.alt)

  • « SolrDisMaxQuery::setPhraseSlop
  • SolrDisMaxQuery::setQueryPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Устанавливает альтернативный запрос (параметр q.alt)

SolrDisMaxQuery::setQueryAlt

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setQueryAlt — Устанавливает альтернативный запрос (параметр q.alt)

Описание

public SolrDisMaxQuery::setQueryAlt(string $q): SolrDisMaxQuery

Устанавливает альтернативный запрос (параметр q.alt).

Когда основной параметр q не указан или пуст. Используется параметр q.alt.

Список параметров

q

Строка запроса.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setQueryAlt()

<?php

$dismaxQuery = new DisMaxQuery();
$dismaxQuery->setQueryAlt('*:*');

?>

Результатом выполнения данного примера будет что-то подобное:

defType=edismax&q.alt=*:*&q=


Определяет коэффициент отклонения, разрешённый для фразовых запросов, явно включённых в строку запроса пользователя (параметр qf)

  • « SolrDisMaxQuery::setQueryAlt
  • SolrDisMaxQuery::setTieBreaker »
  • PHP Manual
  • SolrDisMaxQuery
  • Определяет коэффициент отклонения, разрешённый для фразовых запросов, явно включённых в строку запроса пользователя (параметр qf)

SolrDisMaxQuery::setQueryPhraseSlop

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setQueryPhraseSlop — Определяет коэффициент отклонения, разрешённый для фразовых запросов, явно включённых в строку запроса пользователя (параметр qf)

Описание

public SolrDisMaxQuery::setQueryPhraseSlop(string $slop): SolrDisMaxQuery

Определяет коэффициент отклонения, разрешённый для фразовых запросов, явно включённых в строку запроса пользователя (параметр qf).

Коэффициент отклонения относится к количеству позиций, на которые необходимо переместить один токен по отношению к другому токену, чтобы соответствовать фразе, указанной в запросе.

Список параметров

slop

Коэффициент отклонения.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setQueryPhraseSlop()

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->setQueryPhraseSlop(3);
echo $dismaxQuery;
?>

Результатом выполнения данного примера будет что-то подобное:

defType=edismax&qs=3


Устанавливает параметр Tie Breaker (параметр tie)

  • « SolrDisMaxQuery::setQueryPhraseSlop
  • SolrDisMaxQuery::setTrigramPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Устанавливает параметр Tie Breaker (параметр tie)

SolrDisMaxQuery::setTieBreaker

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setTieBreaker — Устанавливает параметр Tie Breaker (параметр tie)

Описание

public SolrDisMaxQuery::setTieBreaker(string $tieBreaker): SolrDisMaxQuery

Устанавливает параметр Tie Breaker (параметр tie).

Список параметров

tieBreaker

Параметр tie указывает значение с плавающей точкой (которое должно быть намного меньше 1) для использования в качестве разрешения конфликтов в запросах DisMax.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setTieBreaker()

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->setTieBreaker(0.1);

echo $dismaxQuery;
?>

Результат выполнения данного примера:

defType=edismax&tie=0.1


Непосредственно устанавливает поля триграммы фразы (параметр pf3)

  • « SolrDisMaxQuery::setTieBreaker
  • SolrDisMaxQuery::setTrigramPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Непосредственно устанавливает поля триграммы фразы (параметр pf3)

SolrDisMaxQuery::setTrigramPhraseFields

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setTrigramPhraseFields — Непосредственно устанавливает поля триграммы фразы (параметр pf3)

Описание

public SolrDisMaxQuery::setTrigramPhraseFields(string $fields): SolrDisMaxQuery

Непосредственно устанавливает поля триграммы фразы (параметр pf3).

Список параметров

fields

Поля триграммы фразы.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setTrigramPhraseFields()

<?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() - Добавляет поле триграммы (параметр pf3)
  • SolrDisMaxQuery::removeTrigramPhraseField() - Удаляет поле триграммы (параметр pf3)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Устанавливает коэффициент отклонения триграммы фразы (параметр ps3)


Устанавливает коэффициент отклонения триграммы фразы (параметр ps3)

  • « SolrDisMaxQuery::setTrigramPhraseFields
  • SolrDisMaxQuery::setUserFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Устанавливает коэффициент отклонения триграммы фразы (параметр ps3)

SolrDisMaxQuery::setTrigramPhraseSlop

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setTrigramPhraseSlop — Устанавливает коэффициент отклонения триграммы фразы (параметр ps3)

Описание

public SolrDisMaxQuery::setTrigramPhraseSlop(string $slop): SolrDisMaxQuery

Устанавливает коэффициент отклонения триграммы фразы (параметр ps3).

Список параметров

slop

Коэффициент отклонения.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setTrigramPhraseSlop()

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setTrigramPhraseSlop(2);
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&ps3=2

Смотрите также

  • SolrDisMaxQuery::addTrigramPhraseField() - Добавляет поле триграммы (параметр pf3)
  • SolrDisMaxQuery::removeTrigramPhraseField() - Удаляет поле триграммы (параметр pf3)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Непосредственно устанавливает поля триграммы фразы (параметр pf3)


Устанавливает параметр пользовательских полей (uf)

  • « SolrDisMaxQuery::setTrigramPhraseSlop
  • SolrDisMaxQuery::useDisMaxQueryParser »
  • PHP Manual
  • SolrDisMaxQuery
  • Устанавливает параметр пользовательских полей (uf)

SolrDisMaxQuery::setUserFields

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::setUserFields — Устанавливает параметр пользовательских полей (uf)

Описание

public SolrDisMaxQuery::setUserFields(string $fields): SolrDisMaxQuery

Устанавливает параметр пользовательских полей (uf)

Пользовательские поля: указывает, какие поля схемы конечный пользователь может запрашивать.

Список параметров

fields

Имена полей, указанные через пробел

Параметр поддерживает подстановочные знаки.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::setUserFields()

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setUserFields('field1 field2 *_txt');
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&uf=field1 field2 *_txt

Смотрите также

  • SolrDisMaxQuery::addUserField() - Добавляет поле в параметр пользовательских полей (uf)
  • SolrDisMaxQuery::removeUserField() - Удаляет поле из параметра пользовательских полей (uf)


Переключает QueryParser на DisMax Query Parser

  • « SolrDisMaxQuery::setUserFields
  • SolrDisMaxQuery::useEDisMaxQueryParser »
  • PHP Manual
  • SolrDisMaxQuery
  • Переключает QueryParser на DisMax Query Parser

SolrDisMaxQuery::useDisMaxQueryParser

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::useDisMaxQueryParser — Переключает QueryParser на DisMax Query Parser

Описание

public SolrDisMaxQuery::useDisMaxQueryParser(): SolrDisMaxQuery

Переключает QueryParser на DisMax Query Parser

Список параметров

У этой функции нет параметров.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::useDisMaxQueryParser()

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->useDisMaxQueryParser();
echo $dismaxQuery;
?>

Результатом выполнения данного примера будет что-то подобное:

defType=dismax

Смотрите также

  • SolrDisMaxQuery::useDisMaxQueryParser()


Переключает QueryParser на EDisMax

  • « SolrDisMaxQuery::useDisMaxQueryParser
  • SolrCollapseFunction »
  • PHP Manual
  • SolrDisMaxQuery
  • Переключает QueryParser на EDisMax

SolrDisMaxQuery::useEDisMaxQueryParser

(Информация о версии неизвестна, возможно, только в Git)

SolrDisMaxQuery::useEDisMaxQueryParser — Переключает QueryParser на EDisMax

Описание

public SolrDisMaxQuery::useEDisMaxQueryParser(): SolrDisMaxQuery

Переключает QueryParser на EDisMax. По умолчанию построитель запросов использует edismax, если он был переключён с помощью SolrDisMaxQuery::useDisMaxQueryParser(), его можно переключить обратно с помощью этого метода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 Пример использования SolrDisMaxQuery::useEDisMaxQueryParser()

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->useEDisMaxQueryParser();
echo $dismaxQuery;

?>

Результатом выполнения данного примера будет что-то подобное:

defType=edismax


Класс SolrCollapseFunction

(PECL solr >= 2.2.0)

Введение

Обзор классов

class SolrCollapseFunction {
/* Константы */
const string NULLPOLICY_IGNORE = ignore;
const string NULLPOLICY_EXPAND = expand;
const string NULLPOLICY_COLLAPSE = collapse;
/* Методы */
public __construct(string $field = ?)
public getField(): string
public getHint(): string
public getMax(): string
public getMin(): string
public getNullPolicy(): string
public getSize(): 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(): string
}

Предопределённые константы

SolrCollapseFunction::NULLPOLICY_IGNORE

SolrCollapseFunction::NULLPOLICY_EXPAND

SolrCollapseFunction::NULLPOLICY_COLLAPSE

Содержание

  • SolrCollapseFunction::__construct — Конструктор класса
  • SolrCollapseFunction::getField — Возвращает свёрнутое поле
  • SolrCollapseFunction::getHint — Возвращает подсказку сворачивания
  • SolrCollapseFunction::getMax — Возвращает максимальное значение
  • SolrCollapseFunction::getMin — Возвращает минимальное значение
  • SolrCollapseFunction::getNullPolicy — Возвращает NULL-политику
  • SolrCollapseFunction::getSize — Возвращает параметр размера
  • SolrCollapseFunction::setField — Устанавливает поле для свёртывания
  • SolrCollapseFunction::setHint — Устанавливает подсказку сворачивания
  • SolrCollapseFunction::setMax — Выбирает заголовки группы по максимальному значению числового поля или запроса функции
  • SolrCollapseFunction::setMin — Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю
  • SolrCollapseFunction::setNullPolicy — Устанавливает NULL-политику
  • SolrCollapseFunction::setSize — Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю
  • SolrCollapseFunction::__toString — Возвращает строку, представляющую построенную функцию свёртывания


Конструктор класса

  • « SolrCollapseFunction
  • SolrCollapseFunction::getField »
  • PHP Manual
  • SolrCollapseFunction
  • Конструктор класса

SolrCollapseFunction::__construct

(PECL solr >= 2.2.0)

SolrCollapseFunction::__construct — Конструктор класса

Описание

public SolrCollapseFunction::__construct(string $field = ?)

Конструктор класса Collapse Function

Список параметров

field

Имя поля для свёртывания.

Чтобы свернуть результат. Тип поля должен быть однозначным: строка, целое число или число с плавающей точкой.

Примеры

Пример #1 Пример использования SolrCollapseFunction::__construct()

<?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() - Сворачивает набор результатов до одного документа на группу


Возвращает свёрнутое поле

  • « SolrCollapseFunction::__construct
  • SolrCollapseFunction::getHint »
  • PHP Manual
  • SolrCollapseFunction
  • Возвращает свёрнутое поле

SolrCollapseFunction::getField

(PECL solr >= 2.2.0)

SolrCollapseFunction::getField — Возвращает свёрнутое поле

Описание

public SolrCollapseFunction::getField(): string

Возвращает свёрнутое поле.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setField() - Устанавливает поле для свёртывания


Возвращает подсказку сворачивания

  • « SolrCollapseFunction::getField
  • SolrCollapseFunction::getMax »
  • PHP Manual
  • SolrCollapseFunction
  • Возвращает подсказку сворачивания

SolrCollapseFunction::getHint

(PECL solr >= 2.2.0)

SolrCollapseFunction::getHint — Возвращает подсказку сворачивания

Описание

public SolrCollapseFunction::getHint(): string

Возвращает подсказку сворачивания

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setHint() - Устанавливает подсказку сворачивания


Возвращает максимальное значение

  • « SolrCollapseFunction::getHint
  • SolrCollapseFunction::getMin »
  • PHP Manual
  • SolrCollapseFunction
  • Возвращает максимальное значение

SolrCollapseFunction::getMax

(PECL solr >= 2.2.0)

SolrCollapseFunction::getMax — Возвращает максимальное значение

Описание

public SolrCollapseFunction::getMax(): string

Возвращает максимальное значение числового поля или запроса функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setMax() - Выбирает заголовки группы по максимальному значению числового поля или запроса функции


Возвращает минимальное значение

  • « SolrCollapseFunction::getMax
  • SolrCollapseFunction::getNullPolicy »
  • PHP Manual
  • SolrCollapseFunction
  • Возвращает минимальное значение

SolrCollapseFunction::getMin

(PECL solr >= 2.2.0)

SolrCollapseFunction::getMin — Возвращает минимальное значение

Описание

public SolrCollapseFunction::getMin(): string

Возвращает минимальное значение числового поля или запроса функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setMin() - Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю


Возвращает NULL-политику

  • « SolrCollapseFunction::getMin
  • SolrCollapseFunction::getSize »
  • PHP Manual
  • SolrCollapseFunction
  • Возвращает NULL-политику

SolrCollapseFunction::getNullPolicy

(PECL solr >= 2.2.0)

SolrCollapseFunction::getNullPolicy — Возвращает NULL-политику

Описание

public SolrCollapseFunction::getNullPolicy(): string

Возвращает используемую NULL-политику или null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setNullPolicy() - Устанавливает NULL-политику


Возвращает параметр размера

  • « SolrCollapseFunction::getNullPolicy
  • SolrCollapseFunction::setField »
  • PHP Manual
  • SolrCollapseFunction
  • Возвращает параметр размера

SolrCollapseFunction::getSize

(PECL solr >= 2.2.0)

SolrCollapseFunction::getSize — Возвращает параметр размера

Описание

public SolrCollapseFunction::getSize(): int

Возвращает начальный размер свёртываемых структур данных только при свёртывании по числовому полю.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setSize() - Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю


Устанавливает поле для свёртывания

  • « SolrCollapseFunction::getSize
  • SolrCollapseFunction::setHint »
  • PHP Manual
  • SolrCollapseFunction
  • Устанавливает поле для свёртывания

SolrCollapseFunction::setField

(PECL solr >= 2.2.0)

SolrCollapseFunction::setField — Устанавливает поле для свёртывания

Описание

public SolrCollapseFunction::setField(string $fieldName): SolrCollapseFunction

Имя поля для свёртывания. Чтобы свернуть результат. Тип поля должен быть однозначным: строка, целое число или число с плавающей точкой.

Список параметров

fieldName

Возвращаемые значения

SolrCollapseFunction


Устанавливает подсказку сворачивания

  • « SolrCollapseFunction::setField
  • SolrCollapseFunction::setMax »
  • PHP Manual
  • SolrCollapseFunction
  • Устанавливает подсказку сворачивания

SolrCollapseFunction::setHint

(PECL solr >= 2.2.0)

SolrCollapseFunction::setHint — Устанавливает подсказку сворачивания

Описание

public SolrCollapseFunction::setHint(string $hint): SolrCollapseFunction

Устанавливает подсказку сворачивания

Список параметров

hint

В настоящее время доступна только одна подсказка "top_fc", обозначающая FieldCache верхнего уровня.

Возвращаемые значения

SolrCollapseFunction

Примеры

Пример #1 Пример использования SolrCollapseFunction::setHint()

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Выбирает заголовки группы по максимальному значению числового поля или запроса функции

  • « SolrCollapseFunction::setHint
  • SolrCollapseFunction::setMin »
  • PHP Manual
  • SolrCollapseFunction
  • Выбирает заголовки группы по максимальному значению числового поля или запроса функции

SolrCollapseFunction::setMax

(PECL solr >= 2.2.0)

SolrCollapseFunction::setMax — Выбирает заголовки группы по максимальному значению числового поля или запроса функции

Описание

public SolrCollapseFunction::setMax(string $max): SolrCollapseFunction

Выбирает заголовки группы по максимальному значению числового поля или запроса функции.

Список параметров

max

Возвращаемые значения

SolrCollapseFunction

Примеры

Пример #1 Пример использования SolrCollapseFunction::setMax()

<?php

$func = new SolrCollapseFunction('field_name');

$func->setMax('sum(cscore(),field(some_field))');

$query = new SolrQuery('*:*');

$query->collapse($func);

?>


Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю

  • « SolrCollapseFunction::setMax
  • SolrCollapseFunction::setNullPolicy »
  • PHP Manual
  • SolrCollapseFunction
  • Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю

SolrCollapseFunction::setMin

(PECL solr >= 2.2.0)

SolrCollapseFunction::setMin — Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю

Описание

public SolrCollapseFunction::setMin(string $min): SolrCollapseFunction

Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю

Список параметров

min

Возвращаемые значения

SolrCollapseFunction


Устанавливает NULL-политику

  • « SolrCollapseFunction::setMin
  • SolrCollapseFunction::setSize »
  • PHP Manual
  • SolrCollapseFunction
  • Устанавливает NULL-политику

SolrCollapseFunction::setNullPolicy

(PECL solr >= 2.2.0)

SolrCollapseFunction::setNullPolicy — Устанавливает NULL-политику

Описание

public SolrCollapseFunction::setNullPolicy(string $nullPolicy): SolrCollapseFunction

Устанавливает NULL-политику. Должна быть передана одна из 3 политик, определённых как константы класса. Принимает политики ignore (игнорирования), expand (развёртывания) или collapse (свёртывания).

Список параметров

nullPolicy

Возвращаемые значения

SolrCollapseFunction


Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю

  • « SolrCollapseFunction::setNullPolicy
  • SolrCollapseFunction::__toString »
  • PHP Manual
  • SolrCollapseFunction
  • Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю

SolrCollapseFunction::setSize

(PECL solr >= 2.2.0)

SolrCollapseFunction::setSize — Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю

Описание

public SolrCollapseFunction::setSize(int $size): SolrCollapseFunction

Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю

Список параметров

size

Возвращаемые значения

SolrCollapseFunction


Возвращает строку, представляющую построенную функцию свёртывания

  • « SolrCollapseFunction::setSize
  • SolrException »
  • PHP Manual
  • SolrCollapseFunction
  • Возвращает строку, представляющую построенную функцию свёртывания

SolrCollapseFunction::__toString

(PECL solr >= 2.2.0)

SolrCollapseFunction::__toString — Возвращает строку, представляющую построенную функцию свёртывания

Описание

public SolrCollapseFunction::__toString(): string

Возвращает строку, представляющую построенную функцию свёртывания

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс SolrException

(PECL solr >= 0.9.2)

Введение

Базовый класс для всех исключений, выбрасываемых классами модуля Solr.

Обзор классов

class SolrException extends Exception {
/* Свойства */
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
public getInternalInfo(): array
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): 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(): array

Возвращает внутреннюю информацию о том, где было выброшено исключение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий внутреннюю информацию о том, где была вызвана ошибка. Используется только для отладки разработчиками модулей.


Класс SolrClientException

(PECL solr >= 0.9.2)

Введение

Исключение, выбрасываемое в случае возникновения ошибки при выполнении запроса к серверу от клиента.

Обзор классов

class SolrClientException extends SolrException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Методы */
public getInternalInfo(): array
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}

Содержание

  • SolrClientException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение


Возвращает внутреннюю информацию о том, где было выброшено исключение

  • « SolrClientException
  • SolrServerException »
  • PHP Manual
  • SolrClientException
  • Возвращает внутреннюю информацию о том, где было выброшено исключение

SolrClientException::getInternalInfo

(PECL solr >= 0.9.2)

SolrClientException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение

Описание

public SolrClientException::getInternalInfo(): array

Возвращает внутреннюю информацию о том, где было выброшено исключение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий внутреннюю информацию о том, где была вызвана ошибка. Используется только для отладки разработчиками модулей.


Класс SolrServerException

(PECL Solr >= 1.1.0, >=2.0.0)

Введение

Исключение, возникающее в случае возникновении ошибки на самом сервере Solr.

Обзор классов

class SolrServerException extends SolrException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Методы */
public getInternalInfo(): array
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}

Содержание

  • SolrServerException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение


Возвращает внутреннюю информацию о том, где было выброшено исключение

  • « SolrServerException
  • SolrIllegalArgumentException »
  • PHP Manual
  • SolrServerException
  • Возвращает внутреннюю информацию о том, где было выброшено исключение

SolrServerException::getInternalInfo

(PECL solr >= 1.1.0, >=2.0.0)

SolrServerException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение

Описание

public SolrServerException::getInternalInfo(): array

Возвращает внутреннюю информацию о том, где было выброшено исключение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий информацию о том, где было выброшено исключение. Используется только разработчиками модулей для отладки.


Класс SolrIllegalArgumentException

(PECL solr >= 0.9.2)

Введение

Выбрасывается, когда методу передаётся недопустимый или некорректный аргумент.

Обзор классов

class SolrIllegalArgumentException extends SolrException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Методы */
public getInternalInfo(): array
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}

Содержание

  • SolrIllegalArgumentException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение


Возвращает внутреннюю информацию о том, где было выброшено исключение

  • « SolrIllegalArgumentException
  • SolrIllegalOperationException »
  • PHP Manual
  • SolrIllegalArgumentException
  • Возвращает внутреннюю информацию о том, где было выброшено исключение

SolrIllegalArgumentException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalArgumentException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение

Описание

public SolrIllegalArgumentException::getInternalInfo(): array

Возвращает внутреннюю информацию о том, где было выброшено исключение.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий внутреннюю информацию о том, где была вызвана ошибка. Используется только для отладки разработчиками модулей.


Класс SolrIllegalOperationException

(PECL solr >= 0.9.2)

Введение

Выбрасывает, когда с объектом выполняется недопустимая или неподдерживаемая операция.

Обзор классов

class SolrIllegalOperationException extends SolrException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Методы */
public getInternalInfo(): array
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}

Содержание

  • SolrIllegalOperationException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение


Возвращает внутреннюю информацию о том, где было выброшено исключение

  • « SolrIllegalOperationException
  • SolrMissingMandatoryParameterException »
  • PHP Manual
  • SolrIllegalOperationException
  • Возвращает внутреннюю информацию о том, где было выброшено исключение

SolrIllegalOperationException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalOperationException::getInternalInfo — Возвращает внутреннюю информацию о том, где было выброшено исключение

Описание

public SolrIllegalOperationException::getInternalInfo(): array

Возвращает внутреннюю информацию о том, где было выброшено исключение.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий внутреннюю информацию о том, где была вызвана ошибка. Используется только для отладки разработчиками модулей.


Класс SolrMissingMandatoryParameterException

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

class SolrMissingMandatoryParameterException extends SolrException {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}


Модули для работы с серверами

  • Apache
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции Apache
  • Менеджер процессов FastCGI
    • Введение
    • Установка и настройка
    • Наблюдаемость
    • Функции FPM


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_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 bool

Включает или выключает интерпретатор PHP. Эта директива в действительности очень полезна в модуле Apache PHP. Она используется сайтами, которым необходимо разрешить или запретить интерпретатор PHP на основе директорий или виртуальных хостов. Устанавливая engine off по необходимости в файле httpd.conf, можно разрешить или запретить интерпретатор PHP.

child_terminate bool

Эта настройка управляет тем, могут ли скрипты PHP требовать окончания дочерних процессов по завершении запроса. Смотрите также apache_child_terminate().

last_modified bool

Посылает скриптам PHP дату модификации как заголовок Last-Modified для этого запроса.

xbithack bool

Исполнение файлов с битом запускаемого как 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_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, PHP 8)

apache_child_terminate — Завершить процесс Apache по окончании текущего запроса

Описание

apache_child_terminate(): void

apache_child_terminate() регистрирует процесс Apache, обслуживающий текущий запрос PHP с тем, чтобы завершить его по окончании выполнения PHP-скрипта. Эта функция может быть использована для завершения процесса, для работы которого понадобилось значительное количество оперативной памяти, не возвращённой операционной системе по завершении работы PHP-скрипта.

Работает на веб-серверах Apache и FastCGI.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примечания

Замечание: Для 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, PHP 8)

apache_get_modules — Возвращает список загруженных модулей сервера Apache

Описание

apache_get_modules(): 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, PHP 8)

apache_get_version — Возвращает версию Apache

Описание

apache_get_version(): string|false

Возвращает версию 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, PHP 8)

apache_getenv — Возвращает переменную окружения подпроцесса сервера Apache

Описание

apache_getenv(string $variable, bool $walk_to_top = false): string|false

Возвращает переменную окружения сервера Apache, указанную параметром variable.

Список параметров

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, PHP 8)

apache_lookup_uri — Осуществить частичный запрос на указанный URI и вернуть все полученные сведения

Описание

apache_lookup_uri(string $filename): object|false

Эта функция осуществляет частичный запрос на указанный URI. Этого достаточно для получения всей важной информации о переданном функции ресурсе.

Эта функция поддерживается только если PHP установлен в качестве модуля Apache в веб-серверах.

Список параметров

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

Возвращает false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

apache_note — Возвращает и устанавливает уведомления к запросу Apache

Описание

apache_note(string $note_name, ?string $note_value = null): string|false

Эта функция является обёрткой для table_get и table_set. С её помощью можно редактировать таблицу уведомлений (apache notes table), которая создаётся во время передачи запроса. Таблица уведомлений позволяет модулям Apache обмениваться данными.

Основное назначение apache_note() - передавать информацию из одного модуля в другой внутри одного запроса.

Список параметров

note_name

Название уведомления.

note_value

Значение уведомления.

Возвращаемые значения

Если note_value опущен или null, функция возвращает текущее значение уведомления note_name. В противном случае, она устанавливает значение уведомления note_name в note_value и возвращает предыдущее значение note_name. Если значение уведомления не может быть получено, будет возвращено false.

Список изменений

Версия | Описание
8.0.0 | note_value теперь допускает значение null.

Примеры

Пример #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_response_headers »
  • PHP Manual
  • Функции Apache
  • Получает список всех заголовков HTTP-запроса

apache_request_headers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

apache_request_headers — Получает список всех заголовков HTTP-запроса

Описание

apache_request_headers(): array

Получает список всех заголовков HTTP текущего запроса. Работает на веб-серверах Apache и FastCGI.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив, содержащий все HTTP-заголовки текущего запроса, или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.3.0 | Эта функция стала доступна в SAPI FPM.

Примеры

Пример #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


Возвращает список всех HTTP-заголовков ответа Apache

  • « apache_request_headers
  • apache_setenv »
  • PHP Manual
  • Функции Apache
  • Возвращает список всех HTTP-заголовков ответа Apache

apache_response_headers

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

apache_response_headers — Возвращает список всех HTTP-заголовков ответа Apache

Описание

apache_response_headers(): array|false

Возвращает список всех HTTP-заголовков. Работает на веб-серверах Apache и FastCGI.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив HTTP-заголовков ответа Apache в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

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, PHP 8)

getallheaders — Возвращает все заголовки HTTP-запроса

Описание

getallheaders(): array

Возвращает все заголовки для текущего HTTP-запроса.

Эта функция является псевдонимом функции apache_request_headers(). Пожалуйста, обратитесь к описанию функции apache_request_headers() для получения детальной информации о её работе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив, содержащий все HTTP-заголовки для данного запроса или false в случае возникновения ошибок.

Список изменений

Версия | Описание
7.3.0 | Эта функция стала доступна в SAPI FPM.

Примеры

Пример #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, PHP 8)

virtual — Выполняет подзапрос Apache

Описание

virtual(string $uri): bool

Функция virtual() специфична для сервера Apache и является эквивалентом конструкции <!--#include virtual...-->, используемой в mod_include. Данная функция выполняет подзапрос Apache. Это бывает полезным в тех случаях, когда необходимо включить в свой скрипт результат выполнения других CGI-скриптов или файлов .shtml, а также добавления всего, что должно быть обработано Apache. Обратите внимание, что CGI-скрипты должны отдавать корректные CGI-заголовки. Как минимум, CGI-скрипт должен создавать заголовок Content-Type.

Перед тем, как осуществится выполнение подзапроса, все буферы сбрасываются и выдаются в браузер, при этом отсылаются заголовки, помещённые в буфер.

Эта функция поддерживается только если PHP установлен в качестве модуля Apache в веб-серверах.

Список параметров

uri

Имя файла, для которого будет выполнен подзапрос.

Возвращаемые значения

Результат выполнения подзапроса в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример использования смотрите в функции apache_note().

Примечания

Внимание

Строка запроса может быть передана вызываемому файлу, однако значение переменной $_GET будет скопировано из родительского скрипта, лишь $_SERVER['QUERY_STRING'] будет содержать переданную строку запроса. Строка запроса может быть передана только при использовании Apache 2. Запрошенный файл не будет отражён в журнале доступа (access log) Apache.

Замечание:

Переменные окружения, установленные в запрошенном файле, не видимы из вызвавшего его скрипта.

Замечание:

Эта функция может быть использована в PHP-скрипте, но, обычно, более правильным будет выбрать include или require.

Смотрите также

  • apache_note() - Возвращает и устанавливает уведомления к запросу Apache


Менеджер процессов FastCGI

  • Введение
  • Установка и настройка
  • Наблюдаемость
    • Страница состояния
  • Функции FPM
    • fastcgi_finish_request — Сбрасывает все запрошенные данные клиенту
    • fpm_get_status — Возвращает текущее состояние пула FPM


Введение

FPM (FastCGI Process Manager, менеджер процессов FastCGI) является альтернативной реализацией PHP FastCGI с несколькими дополнительными возможностями обычно используемыми для высоконагруженных сайтов.

SAPI встроен в PHP.


Установка и настройка

Информация об установке и настройке FPM доступна в разделе установка и настройка документации PHP.


  • « Установка и настройка
  • Страница состояния »
  • PHP Manual
  • Менеджер процессов FastCGI
  • Наблюдаемость

Наблюдаемость

Содержание

  • Страница состояния


Страница состояния

На этой странице представлена информация о настройке и содержании страницы состояния FPM. Смотрите также описание функции fpm_get_status().

Настройка

Страница состояния FPM может быть включена путём установки параметра конфигурации pm.status_path в пуле FPM конфигурации.

Предостережение

В целях безопасности страница состояния FPM должна быть ограничена внутренними запросами или известными IP-адресами клиентов так как страница показывает URL запроса и информацию о доступных ресурсах.

В зависимости от конфигурации веб-сервера может потребоваться настроить веб-сервер так, чтобы разрешать запросы непосредственно к этому пути, минуя любые PHP скрипты. Пример конфигурации для Apache с FPM, слушающим на UDS и pm.status_path, установленным на /fpm-status будет выглядеть следующим образом:

<LocationMatch "/fpm-status">
 Order Allow,Deny
 Allow from 127.0.0.1
 ProxyPass "unix:/var/run/php-fpm.sock|fcgi://localhost/fpm-status"
</LocationMatch>

После перезагрузки или перезапуска как FPM, так и веб-сервера страница состояния будет доступна из браузера (при условии, что запрос поступает с разрешённого IP-адреса, если было настроено ограничение IP-адресов).

Параметры запроса

Формат вывода страницы состояния может быть изменён путём указания одного из следующих параметров запроса:

  • html
  • json
  • openmetrics
  • xml

Дополнительная информация также может быть возвращена с помощью параметра запроса full.

Примеры URL-адресов страниц состояния:

  • https://localhost/fpm-status - Краткий вывод в текстовом формате по умолчанию
  • https://localhost/fpm-status?full - Полный вывод в текстовом формате по умолчанию
  • https://localhost/fpm-status?json - Краткий вывод в формате JSON
  • https://localhost/fpm-status?html&full - Полный вывод в формате HTML

Отображаемая информация

Значения даты/времени используют формат временной метки UNIX в JSON и XML, в противном случае они используют формат, приводящий к следующему примеру даты: "03/Jun/2021:07:21:46 +0100".

Основная информация - Всегда отображается на странице состояния
Параметр | Описание
pool | Имя пула процессов FPM.
proccess manager | Тип менеджера процесса - static (статический), dynamic (динамический) или ondemand (по требованию).
start time | Дата/время последнего запуска пула процессов.
start since | Время в секундах с момента последнего запуска пула процессов.
accepted conn | Общее количество принятых соединений.
listen queue | Количество запросов (backlog), ожидающих свободного процесса.
max listen queue | Максимальное количество запросов в очереди на прослушивание в любой момент времени.
listen queue len | Максимально допустимый размер очереди прослушивания.
idle processes | Количество процессов, которые в настоящее время простаивают (ожидают запросов).
active processes | Количество процессов, которые в настоящее время обрабатывают запросы.
total processes | Текущее общее количество процессов.
max active processes | Максимальное количество одновременно активных процессов.
max children reached | Было ли достигнуто максимальное количество процессов? Если да, то отображаемое значение будет 1, иначе значение будет 0.
slow requests | Общее количество запросов, которые достигли настроенного request_slowlog_timeout.
Информация о каждом процессе - отображается только в режиме вывода full
Параметр | Описание
pid | Системный PID процесса.
state | Состояние процесса - Idle, Running, ...
start time | Дата/время начала процесса.
start since | Количество секунд с момента начала процесса.
requests | Общее количество обслуженных запросов.
request duration | Общее время в секундах, затраченное на обслуживание запросов.
request method | Метод HTTP последнего обслуженного запроса.
request uri | URI последнего обслуженного запроса (после обработки веб-сервером он всегда может быть равен /index.php, если вы используете шаблонный редирект фронт-контроллера).
content length | Длина тела запроса, в байтах, последнего запроса.
user | HTTP-пользователь (PHP_AUTH_USER) последнего запроса.
script | Полный путь к скрипту, выполненному последним запросом. Это будет '-', если не применимо (например, запросы страницы состояния).
last request cpu | Процент использования cpu последнего запроса. Это значение будет равно 0, если процесс не находится в состоянии Idle, потому что вычисление производится, когда обработка запроса завершена.
last request memory | Максимальный объем памяти, потреблённый последним запросом. Это значение будет равно 0, если процесс не простаивает, так как вычисление производится после завершения обработки запроса.

Замечание:

Все значения специфичны для пула и сбрасываются при перезапуске FPM.

Замечание:

В выводе формата OpenMetrics используются различные типы параметров, чтобы лучше соответствовать формату OpenMetrics. Параметры и описания их значений включены в выходные данные формата OpenMetrics.

Список изменений

Версия | Описание
8.1.0 | Добавлен формат OpenMetrics.


Функции FPM

Содержание

  • fastcgi_finish_request — Сбрасывает все запрошенные данные клиенту
  • fpm_get_status — Возвращает текущее состояние пула FPM


Сбрасывает все запрошенные данные клиенту

  • « Функции FPM
  • fpm_get_status »
  • PHP Manual
  • Функции FPM
  • Сбрасывает все запрошенные данные клиенту

fastcgi_finish_request

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

fastcgi_finish_request — Сбрасывает все запрошенные данные клиенту

Описание

fastcgi_finish_request(): bool

Эта функция сбрасывает все запрошенные данные клиенту и завершает обработку запроса. Это позволяет выполнять длительные задачи без поддержания связи с клиентом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Возвращает текущее состояние пула FPM

  • « fastcgi_finish_request
  • Модули для работы с сессиями »
  • PHP Manual
  • Функции FPM
  • Возвращает текущее состояние пула FPM

fpm_get_status

(PHP 7 >= 7.3, PHP 8)

fpm_get_status — Возвращает текущее состояние пула FPM

Описание

fpm_get_status(): array|false

Функция возвращает полный текущий статус пула FPM в виде ассоциативного массива. Она всегда возвращает полный статус, включая информацию о состоянии каждого процесса. Смотрите руководство по странице состояния FPM для более подробной информации.

Обратите внимание, что функция будет определена только в том случае, если для обслуживания скрипта используется FPM.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция возвращает ассоциативный массив, содержащий полный статус пула FPM или false в случае возникновения ошибки.


Модули для работы с сессиями

  • Сессии — Управление сессиями
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Отслеживание прогресса загрузки файлов с помощью сессий
    • Безопасность сессий
    • Функции для работы с сессиями
    • SessionHandler — Класс SessionHandler
    • SessionHandlerInterface — Класс SessionHandlerInterface
    • SessionIdInterface — Интерфейс SessionIdInterface
    • SessionUpdateTimestampHandlerInterface — Интерфейс SessionUpdateTimestampHandlerInterface


Управление сессиями

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
    • Основы использования
    • Передача идентификатора сессии
    • Пользовательские обработчики сессии
  • Отслеживание прогресса загрузки файлов с помощью сессий
  • Безопасность сессий
    • Базовые принципы управления сессиями
    • 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_module_name — Возвращает и/или устанавливает модуль текущей сессии
    • session_name — Получить или установить имя текущей сессии
    • session_regenerate_id — Генерирует и обновляет идентификатор текущей сессии
    • session_register_shutdown — Функция завершения сессии
    • session_reset — Реинициализирует сессию оригинальными значениями
    • session_save_path — Получает и/или устанавливает путь сохранения сессии
    • session_set_cookie_params — Устанавливает параметры сессионной cookie
    • session_set_save_handler — Устанавливает пользовательские обработчики хранения сессии
    • session_start — Стартует новую сессию, либо возобновляет существующую
    • session_status — Возвращает состояние текущей сессии
    • 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
    • SessionUpdateTimestampHandlerInterface::updateTimestamp — Обновить метку времени
    • SessionUpdateTimestampHandlerInterface::validateId — Проверить идентификатор


Введение

Поддержка сессий в 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 такие ограничения отсутствуют.

Замечание:

При работе с сессиями обратите внимание, что запись в сессии не создаётся до тех пор, пока переменная не будет зарегистрирована в суперглобальном массиве $_SESSION. Это правило действует вне зависимости от того, была ли сессия запущена с использованием функции session_start().


Требования

Для сборки этого модуля не требуются внешние библиотеки.

Замечание:

При желании можно использовать квотирование разделяемой памяти (mm), разработанное Ralf S. Engelschall, для хранения сессии. Для этого необходимо скачать и установить » mm. Данная опция не доступна для платформ на базе ОС Windows. Следует также обратить внимание, что модуль хранения данных сессии при использовании mm не гарантирует блокировку информации сессии при параллельных запросах. Возможно, в таком случае целесообразно использование файловой системы в разделяемой памяти (Например, TMPFS в Solaris/Linux или /dev/md для BSD), чтобы хранить сессии в файлах, блокируемых при обращении к ним. Поскольку данные сессии хранятся в разделяемой памяти, перезапуск веб-сервера приведёт к их удалению.


Установка

Модуль включён по умолчанию. Он может быть отключён во время выполнения с помощью следующей опции: --disable-session

Чтобы использовать квотирование разделяемой памяти (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 | "0" | PHP_INI_ALL | До PHP 7.2.0 значение по умолчанию было "".
session.cookie_httponly | "0" | PHP_INI_ALL | До PHP 7.2.0 значение по умолчанию было "".
session.cookie_samesite | "" | PHP_INI_ALL | Доступна с PHP 7.3.0.
session.use_strict_mode | "0" | PHP_INI_ALL |
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 |
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR |
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR |
session.upload_progress.freq | "1%" | PHP_INI_PERDIR |
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR |
session.lazy_write | "1" | PHP_INI_ALL |
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
Для подробного описания констант 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, если вы абсолютно уверены, что ваш сайт достаточно велик, чтобы требовать это.

session.name string
session.name определяет название сессии, используемое как название cookies. Может содержать только цифры и буквы. По умолчанию равно PHPSESSID. Смотрите также session_name().
session.auto_start bool
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 и php_binary. Старые обработчики сериализации не могут хранить ни числовые, ни строковые индексы, содержащие специальные символы (| и !) в $_SESSION. Используйте php_serialize, чтобы обойти ошибки числовых и строковых индексов при завершении скрипта. Значение по умолчанию php.
session.gc_probability int
session.gc_probability в сочетании с session.gc_divisor определяет вероятность запуска функции сборщика мусора (gc, garbage collection). По умолчанию равен 1. Смотрите подробнее в session.gc_divisor.
session.gc_divisor int
session.gc_divisor в сочетании с session.gc_probability определяет вероятность запуска функции сборщика мусора (gc, garbage collection) при каждой инициализации сессии. Вероятность рассчитывается как gc_probability/gc_divisor, то есть 1/100 означает, что функция gc запускается в одном случае из ста, или 1% при каждом запросе. session.gc_divisor по умолчанию имеет значение 100.
session.gc_maxlifetime int
session.gc_maxlifetime задаёт отсрочку времени в секундах, после которой данные будут рассматриваться как "мусор" и потенциально будут удалены. Сбор мусора может произойти в течение старта сессии (в зависимости от значений session.gc_probability и session.gc_divisor). По умолчанию значение 1440 (24 минуты).

Замечание: Если разные скрипты имеют разные значения 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. Указание ненулевого значения в session.entropy_length предписывает PHP использовать в качестве источника энтропии Windows Random API.

Замечание: Удалено в PHP 7.1.0. session.entropy_file имеет значение по умолчанию равное /dev/urandom или /dev/arandom, если они доступны.

session.entropy_length int
session.entropy_length определяет количество байт, которые будут прочитаны из вышеуказанного файла. По умолчанию 32. Удалено в PHP 7.1.0.
session.use_strict_mode bool
session.use_strict_mode определяет будет ли модуль использовать режим строгого идентификатора (ID). Если от браузера получен неопределённый ID, то браузеру будет отправлен новый ID. Таким образом приложения защищаются от фиксации сессии с помощью строгого режима. По умолчанию 0 (отключено).

Замечание: Включение session.use_strict_mode является обязательным для общей безопасности сессии. Всем сайтам рекомендуется её включать. Смотрите примеры session_create_id().

Внимание

Если пользовательский обработчик сессии, зарегистрированный с помощью session_set_save_handler(), не реализует SessionUpdateTimestampHandlerInterface::validateId() и не предоставляет callback-функцию validate_sid, соответственно, режим строгого идентификатора сессии будет отключён, независимо от значения этой директивы. Особо обратите внимание, что SessionHandler не реализует SessionHandler::validateId().

session.use_cookies bool
session.use_cookies определяет, будет ли модуль использовать cookies для хранения идентификатора сессии на стороне клиента. По умолчанию 1 (включено).
session.use_only_cookies bool
session.use_only_cookies определяет, будет ли модуль использовать только cookies для хранения идентификатора сессии на стороне клиента. Включение этого параметра предотвращает атаки с использованием идентификатора сессии, размещённого в URL. Значение по умолчанию 1 (включено).
session.cookie_lifetime int
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 bool
session.cookie_secure указывает, должны ли cookies передаваться только через защищённое соединение. По умолчанию off. Смотрите также session_get_cookie_params() и session_set_cookie_params().
session.cookie_httponly bool
Отметка, согласно которой доступ к 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 int
session.cache_expire указывает время жизни кешированных страниц сессий в минутах, это никак не влияет на ограничитель nocache. По умолчанию 180. Смотрите также session_cache_expire().
session.use_trans_sid bool
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.sid_length int
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 int
session.sid_bits_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).

Возможно указать любой из алгоритмов, предусмотренных модулем hash (если он доступен), например, sha512 или whirlpool. Полный список алгоритмов может быть получен с помощью функции hash_algos().

Замечание: Удалена в PHP 7.1.0.

session.hash_bits_per_character int
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 bool
Включает отслеживание прогресса загрузки файлов и заполнение соответствующей переменной в массиве $_SESSION. По умолчанию 1, включено.
session.upload_progress.cleanup bool
Чистка информации о прогрессе загрузки файлов по завершении обработки 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 int
Минимальная задержка между обновлениями, в секундах. По умолчанию "1" (одна секунда).
session.lazy_write bool
Если session.lazy_write установлен в 1, то данные сессии будут перезаписываться только при их изменении. По умолчанию 1, включено.

Прогресс загрузки файлов не будет обрабатываться, если не включена опция session.upload_progress.enabled и не установлена переменная $_POST[ini_get("session.upload_progress.name")]. Подробнее об этом смотрите в главе "Отслеживание прогресса загрузки файлов с помощью сессий".


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

SID (string)
Константа, содержащая либо имя сессии и идентификатор в виде "name=ID" либо пустую строку, если идентификатор сессии был установлен в соответствующие cookies сессии. Это тот же идентификатор, что возвращает функция session_id().
PHP_SESSION_DISABLED (int)
Возвращаемое значение функцией session_status() в случае, если сессии отключены.
PHP_SESSION_NONE (int)
Возвращаемое значение функцией session_status() в случае, если сессии включены, но нет созданных сессий.
PHP_SESSION_ACTIVE (int)
Возвращаемое значение функцией 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.

Внимание

Вы не можете использовать ссылки в сессионных переменных, так как не существует реального способа восстановления ссылки к другой переменной.

Замечание:

Сессии, использующие файлы (по умолчанию в 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(), чтобы создать набор пользовательских функций хранилища. Обработчики сессий можно создать, используя класс 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 может отслеживать прогресс загрузки отдельных файлов при включённой опции 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 использует адаптивное управление сессиями по умолчанию. Адаптивное управление сессиями несёт дополнительные риски.

Если 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. (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. session.use_strict_mode=On обязателен для общей безопасности идентификаторов сессий! Все сайты должны использовать session.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, если "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.save_path=[общедоступный каталог для чтения]

    Если установлено в общедоступный каталог для чтения всем, такой как /tmp (по умолчанию), другие пользователи на сервере могут захватить сеансы, получив список файлов в этом каталоге.


Функции для работы с сессиями

Содержание

  • 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_module_name — Возвращает и/или устанавливает модуль текущей сессии
  • session_name — Получить или установить имя текущей сессии
  • session_regenerate_id — Генерирует и обновляет идентификатор текущей сессии
  • session_register_shutdown — Функция завершения сессии
  • session_reset — Реинициализирует сессию оригинальными значениями
  • session_save_path — Получает и/или устанавливает путь сохранения сессии
  • session_set_cookie_params — Устанавливает параметры сессионной cookie
  • session_set_save_handler — Устанавливает пользовательские обработчики хранения сессии
  • session_start — Стартует новую сессию, либо возобновляет существующую
  • session_status — Возвращает состояние текущей сессии
  • session_unset — Удалить все переменные сессии
  • session_write_close — Записывает данные сессии и завершает её


Отменяет изменения в массиве сессии и завершает её

  • « Функции для работы с сессиями
  • session_cache_expire »
  • PHP Manual
  • Функции для работы с сессиями
  • Отменяет изменения в массиве сессии и завершает её

session_abort

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

session_abort — Отменяет изменения в массиве сессии и завершает её

Описание

session_abort(): 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, PHP 8)

session_cache_expire — Получает и/или устанавливает срок действия текущего кеша

Описание

session_cache_expire(?int $value = null): int|false

session_cache_expire() возвращает текущее значение настройки session.cache_expire.

Срок действия сбрасывается до значения по умолчанию (180), хранящегося в session.cache_expire во время запроса. Таким образом, нужно вызывать session_cache_expire() для каждого запроса (и до вызова session_start()).

Список параметров

value

Если value задан и не равен null, текущее время жизни заменяется на value.

Замечание: Настройка value имеет значение только, если для session.cache_limiter установлено значение, отличное от nocache.

Возвращаемые значения

Возвращает текущую настройку session.cache_expire. Возвращаемое значение должно рассматриваться в минутах, по умолчанию - 180. В случае, если изменить значение не удалось, возвращается false.

Список изменений

Версия | Описание
8.0.0 | value может принимать значение null.

Примеры

Пример #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, PHP 8)

session_cache_limiter — Получить и/или установить текущий режим кеширования

Описание

session_cache_limiter(?string $value = null): string|false

session_cache_limiter() возвращает имя текущего режима кеширования.

Режим кеширования определяет, какие HTTP-заголовки управления кешем посылать клиенту. Эти заголовки определяют, какими правилами кеширования контента должны руководствоваться клиент и промежуточные прокси. Установка ограничителя в значение nocache запрещает любое кеширование. Значение public разрешает кеширование как на стороне клиента, так и на прокси-серверах. private запрещает кеширование прокси-серверам, но разрешает клиенту.

Если в режиме private послать заголовок Expire, то это может привести некоторые браузеры, включая Mozilla, в замешательство. Вы можете обойти эту проблему, используя режим private_no_expire. В этом режиме заголовок Expire никогда не будет послан.

Установка режима кеширования в '' отключает автоматическую отправку кеш-заголовков.

Во время начала запроса режим кеширования сбрасывается до значения по умолчанию, хранящегося в session.cache_limiter. Таким образом, вам необходимо вызывать session_cache_limiter() для каждого запроса (перед тем, как вызвана функция session_start()).

Список параметров

value

Если value указан и не равен null, имя текущего режима кеширования изменяется на новое значение.

Возможные значения
Значение Посылаемый заголовок
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

Возвращаемые значения

Возвращает имя текущего режима кеширования. В случае, если изменить значение не удалось, возвращается false.

Список изменений

Версия | Описание
8.0.0 | value может принимать значение null.

Примеры

Пример #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, PHP 8)

session_commit — Псевдоним session_write_close()

Описание

Функция является псевдонимом: session_write_close().


Создаёт новый идентификатор сессии

  • « session_commit
  • session_decode »
  • PHP Manual
  • Функции для работы с сессиями
  • Создаёт новый идентификатор сессии

session_create_id

(PHP 7 >= 7.1.0, PHP 8)

session_create_id — Создаёт новый идентификатор сессии

Описание

session_create_id(string $prefix = ""): string|false

session_create_id() используется для создания нового идентификатора текущей сессии. Возвращает идентификатор сессии, который не подвержен коллизиям.

При неактивной сессии проверка на коллизии не осуществляется.

Идентификатор сессии создаётся в соответствии с настройками php.ini.

Важно использовать тот же идентификатор пользователя на вашем веб-сервере, что и для скрипта задачи сборщика мусора. В противном случае, у вас могут возникнуть проблемы доступа, особенно с дескриптором сохранения файлов.

Список параметров

prefix

Если указан параметр prefix, то новый идентификатор сессии будет с префиксом prefix. Не все символы возможно использовать в идентификаторе сессии. Допускается использовать только символы из диапазона: a-z A-Z 0-9 , (запятая) и - (минус).

Возвращаемые значения

session_create_id() возвращает новый, не подверженный коллизиям, идентификатор текущей сессии. Если используется при неактивной сессии, проверка на коллизии пропускается. В случае неудачи возвращается false.

Примеры

Пример #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, PHP 8)

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, PHP 8)

session_destroy — Уничтожает все данные сессии

Описание

session_destroy(): 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.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, PHP 8)

session_encode — Кодирует данные текущей сессии в формате строки сессии

Описание

session_encode(): string|false

session_encode() возвращает сериализованную строку, содержащую данные текущей сессии, хранящиеся в суперглобальном массиве $ _SESSION.

По умолчанию используется внутренний метод сериализации PHP и результат будет отличаться от формата, возвращаемого функцией serialize(). Метод сериализации может быть установлен с помощью session.serialize_handler.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сериализованные данные текущей сессии или false в случае возникновения ошибки.

Примечания

Внимание

Необходимо вызвать функцию session_start() перед использованием session_encode().

Смотрите также

  • session_decode() - Декодирует данные сессии из закодированной строки сессии
  • session.serialize_handler


Выполняет сборку мусора данных сессии

  • « session_encode
  • session_get_cookie_params »
  • PHP Manual
  • Функции для работы с сессиями
  • Выполняет сборку мусора данных сессии

session_gc

(PHP 7 >= 7.1.0, PHP 8)

session_gc — Выполняет сборку мусора данных сессии

Описание

session_gc(): int|false

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, PHP 8)

session_get_cookie_params — Возвращает параметры cookie сессии

Описание

session_get_cookie_params(): array

Возвращает параметры cookie сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с информацией о cookie текущей сессии, который содержит следующие элементы:

  • "lifetime" - время жизни cookie в секундах.
  • "path" - путь, где размещена хранимая информация.
  • "domain" - домен cookie.
  • "secure" - cookie должны передаваться только через безопасные соединения.
  • "httponly" - cookie могут быть доступны только по протоколу HTTP.
  • "samesite" - управляет междоменной отправкой cookie.

Список изменений

Версия | Описание
7.3.0 | Добавлен элемент "samesite" в возвращаемый массив.

Смотрите также

  • 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_module_name »
  • PHP Manual
  • Функции для работы с сессиями
  • Получает и/или устанавливает идентификатор текущей сессии

session_id

(PHP 4, PHP 5, PHP 7, PHP 8)

session_id — Получает и/или устанавливает идентификатор текущей сессии

Описание

session_id(?string $id = null): string|false

session_id() используется для получения или установки идентификатора текущей сессии.

Константа SID также может быть использована для получения текущего имени и идентификатора сессии в виде строки, подходящей для добавления в URL-адреса. Смотрите также Работа с сессиями.

Список параметров

id

Если указан параметр id и он не равен null, то он заменит идентификатор текущий сессии. Для этого session_id() следует вызывать до session_start(). В зависимости от обработчика сессии, не все символы возможно использовать в идентификаторе сессии. Например, файловый обработчик сессии поддерживает только символы из диапазона a-z A-Z 0-9 , (запятая) и - (минус)!

Замечание: При использовании сессионных cookie, указание id для session_id() приводит к тому, что при вызове session_start() всегда будут отправлены новые cookie, независимо от того, совпадает ли идентификатор текущей сессии с вновь установленным.

Возвращаемые значения

session_id() возвращает идентификатор текущей сессии или пустую строку (""), если нет текущей сессии (идентификатор текущей сессии не существует). В случае неудачи возвращает false.

Список изменений

Версия | Описание
8.0.0 | id теперь может быть null.

Смотрите также

  • session_regenerate_id() - Генерирует и обновляет идентификатор текущей сессии
  • session_start() - Стартует новую сессию, либо возобновляет существующую
  • session_set_save_handler() - Устанавливает пользовательские обработчики хранения сессии
  • session.save_handler


Возвращает и/или устанавливает модуль текущей сессии

  • « session_id
  • session_name »
  • PHP Manual
  • Функции для работы с сессиями
  • Возвращает и/или устанавливает модуль текущей сессии

session_module_name

(PHP 4, PHP 5, PHP 7, PHP 8)

session_module_name — Возвращает и/или устанавливает модуль текущей сессии

Описание

session_module_name(?string $module = null): string|false

session_module_name() возвращает название текущего модуля сессии, которое также известен как session.save_handler.

Список параметров

module

Если указан параметр module и не равен null, данный модуль будет использован вместо текущего. Передача значения "user" в этот параметр запрещена. Вместо этого должна вызываться функция session_set_save_handler() для установки пользовательского обработчика.

Возвращаемые значения

Возвращает название текущего модуля сессии или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | module теперь может быть null.
7.2.0 | В данный момент запрещено устанавливать имя модуля на значение "user". Ранее это игнорировалось.


Получить или установить имя текущей сессии

  • « session_module_name
  • session_regenerate_id »
  • PHP Manual
  • Функции для работы с сессиями
  • Получить или установить имя текущей сессии

session_name

(PHP 4, PHP 5, PHP 7, PHP 8)

session_name — Получить или установить имя текущей сессии

Описание

session_name(?string $name = null): string|false

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 и он не равен null, имя текущей сессии поменяется на него.

Внимание

Имя сессии не может состоять только из цифр, по крайней мере, одна буква должна присутствовать. В противном случае каждый раз будет генерироваться новый идентификатор.

Возвращаемые значения

Возвращает имя текущей сессии. Если задан параметр name, имя текущей сессии поменяется и будет возвращено старое или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | module теперь может быть null.
7.2.0 | session_name() проверяет статус сессии, ранее она проверяла только статус cookie. Поэтому старая версия session_name() позволяла вызывать session_name() после session_start(), что могло привести к сбою PHP и неправильному поведению.

Примеры

Пример #1 Пример использования session_name()

<?php

/* устанавливает имя сессии равным WebsiteID */

$previous_name = session_name("WebsiteID");

echo "Предыдущее имя сессии: $previous_name<br />";
?>

Смотрите также

  • Параметр конфигурации session.name


Генерирует и обновляет идентификатор текущей сессии

  • « session_name
  • session_register_shutdown »
  • PHP Manual
  • Функции для работы с сессиями
  • Генерирует и обновляет идентификатор текущей сессии

session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

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 в случае возникновения ошибки.

Примеры

Пример #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(); // 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_reset »
  • PHP Manual
  • Функции для работы с сессиями
  • Функция завершения сессии

session_register_shutdown

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

session_register_shutdown — Функция завершения сессии

Описание

session_register_shutdown(): void

Регистрирует функцию session_write_close() в качестве функции завершения сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

При неудачной регистрации завершающей функции генерирует ошибку уровня E_WARNING.


Реинициализирует сессию оригинальными значениями

  • « session_register_shutdown
  • session_save_path »
  • PHP Manual
  • Функции для работы с сессиями
  • Реинициализирует сессию оригинальными значениями

session_reset

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

session_reset — Реинициализирует сессию оригинальными значениями

Описание

session_reset(): 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, PHP 8)

session_save_path — Получает и/или устанавливает путь сохранения сессии

Описание

session_save_path(?string $path = null): string|false

session_save_path() возвращает путь текущей директории, которая используется для сохранения данных сессии.

Список параметров

path

Путь для данных сессии. Если указан и не равен null, то путь, куда сохраняются данные, будет изменён. Для этой цели session_save_path() следует вызывать перед session_start().

Замечание:

В некоторых операционных системах вы можете указать путь в файловой системе, которая эффективно обрабатывает большое число небольших файлов. Например, в Linux файловая система reiserfs может обеспечить лучшую производительность, чем ext2fs.

Возвращаемые значения

Возвращает путь текущей директории, используемой для хранения данных сессии или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | path теперь может быть null.

Смотрите также

  • session.save_path


Устанавливает параметры сессионной cookie

  • « session_save_path
  • session_set_save_handler »
  • PHP Manual
  • Функции для работы с сессиями
  • Устанавливает параметры сессионной cookie

session_set_cookie_params

(PHP 4, PHP 5, PHP 7, PHP 8)

session_set_cookie_params — Устанавливает параметры сессионной cookie

Описание

session_set_cookie_params(
int $lifetime_or_options,
?string $path = null,
?string $domain = null,
?bool $secure = null,
?bool $httponly = null
): bool

Альтернативная сигнатура доступна с PHP 7.3.0:

session_set_cookie_params(array $lifetime_or_options): bool
session_set_cookie_params(array $options): bool

Устанавливает параметры cookie, определённые в файле php.ini. Эффект этой функции сохраняется только на время выполнения скрипта. Таким образом, нужно вызывать session_set_cookie_params() для каждого запроса и перед каждым вызовом session_start().

Данная функция обновляет текущие ini-значения соответствующих ключей конфигурации PHP ini, которые можно получить с помощью ini_get().

Список параметров

lifetime_or_options

Если использовать первую сигнатуры, время жизни сессионной куки, заданное в секундах.

Если использовать вторую сигнатуру, то ассоциативный массив (array), который может иметь любое из ключей lifetime, path, domain, secure, httponly и samesite. Значения имеют тот же смысл, как описано в параметрах с соответствующим именем. Значение элемента samesite должно быть либо Lax, либо Strict. Если какая-либо из допустимых опций не указана, её значения по умолчанию совпадают с значениями по умолчанию для явных параметров. Если элемент samesite не указан, cookie-атрибут SameSite не установлен.

path

Путь в домене, где cookie будет работать. Используйте одну косую черту ('/') для всех путей в домене.

domain

Домен cookie, например 'www.php.net'. Чтобы сделать cookies видимыми для всех поддоменов, перед именем домена нужно поставить точку, например '.php.net'.

secure

Если true, то cookies будут передаваться только через защищённые соединения.

httponly

Если установлено true, то PHP попытается отправить флаг httponly при настройке сессионной cookie.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | path, domain, secure и httponly теперь могут быть null.
7.3.0 | Добавлена альтернативная подпись, поддерживающая массив опций lifetime_or_options. Эта подпись поддерживает также настройку cookie-атрибута SameSite.
7.2.0 | Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. Ранее возвращала тип void.

Смотрите также

  • 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, PHP 8)

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

Также возможно зарегистрировать следующий прототип:

session_set_save_handler(object $sessionhandler, bool $register_shutdown = true): bool

session_set_save_handler() устанавливает пользовательские обработчики хранения сессии, которые используются для сохранения и получения данных, связанных с сессией. Это особенно полезно, когда предпочтительным является метод хранения, отличный от тех, которые предоставляются сессиями PHP, например, хранение данных сессии в локальной базе данных.

Список параметров

Данная функция имеет два определения (прототипа).

sessionhandler

Экземпляр класса, реализующий интерфейс SessionHandlerInterface и необязательные SessionIdInterface и/или SessionUpdateTimestampHandlerInterface, такой как SessionHandler, для регистрации в качестве обработчика сессии.

register_shutdown

Зарегистрировать session_write_close() как функцию register_shutdown_function().

или
open

Callback-функция со следующей сигнатурой:

open(string $savePath, string $sessionName): bool

Callback-функция open работает как конструктор в классах и выполняется при открытии сессии. Это первая callback-функция, которая выполняется, когда сессия стартует автоматически либо вручную через session_start(). Возвращаемое значение true в случае успешного выполнения, false в случае неудачи.

close

Callback-функция со следующей сигнатурой:

close(): bool

Callback-функция close работает как деструктор в классах и выполняется после того, как была вызвана callback-функция write. Она также вызывается при вызове session_write_close(). Возвращаемое значение должно быть true в случае успешного выполнения, false в случае неудачи.

read

Callback-функция со следующей сигнатурой:

read(string $sessionId): string

Callback-функция read должна всегда возвращать кодированную (сериализованную) строку сессии или пустую строку, если нет данных для чтения.

Эта callback-функция вызывается внутренним механизмом PHP при старте сессии или при вызове session_start(). Перед тем, как будет вызвана эта callback-функция, PHP вызовет callback-функцию open.

Возвращаемое значение данной callback-функции должно быть в точно таком же сериализованном формате, который изначально передавался для хранения в callback-функцию write. Возвращаемое значение будет автоматически десериализовано PHP и использовано для заполнения суперглобальной переменной $_SESSION. Даже если данные похожи на результат serialize(), стоит помнить, что это другой формат сериализации, который определён ini-директивой session.serialize_handler.

write

Callback-функция со следующей сигнатурой:

write(string $sessionId, string $data): bool

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

Callback-функция со следующей сигнатурой:

destroy(string $sessionId): bool

Данная callback-функция вызывается, когда сессия уничтожается с помощью session_destroy() или при вызове session_regenerate_id() с параметром destroy, установленным в true. Возвращаемое значение должно быть true в случае успешного выполнения, false в случае неудачи.

gc

Callback-функция со следующей сигнатурой:

gc(int $lifetime): bool

Callback-функция сборщика мусора периодически вызывается PHP для очистки данных старых сессий. Частота контролируется директивами session.gc_probability и session.gc_divisor. Значение lifetime, которое передаётся в данную callback-функцию может быть установлено в session.gc_maxlifetime. Возвращаемое значение должно быть true в случае успешного выполнения, false в случае неудачи.

create_sid

Callback-функция со следующей сигнатурой:

create_sid(): string

Данная callback-функция выполняется, когда требуется новый идентификатор сессии. Не предусматривает параметров, а возвращаемое значение должно быть строкой, которая является допустимым идентификатором сессии для вашего обработчика.

validate_sid

Callback-функция со следующей сигнатурой:

validate_sid(string $key): bool

Callback-функция выполняется, когда должна быть запущена сессия, предоставляется идентификатор сессии и включается session.use_strict_mode. key - это идентификатор сессии для проверки. Идентификатор сессии действителен, если сессия с таким идентификатором уже существует. Возвращаемое значение должно быть true в случае успешного выполнения или false в случае возникновения ошибки.

update_timestamp

Callback-функция со следующей сигнатурой:

update_timestamp(string $key, string $val): bool

Callback-функция выполняется при сессии. key - это идентификатор сессии, val - это данные сессии. Возвращаемое значение должно быть true в случае успешного выполнения или false в случае возникновения ошибки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пользовательский обработчик сессии: полный код смотрите в описании SessionHandlerInterface.

Здесь только продемонстрирован вызов 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

Примечания

Внимание

Обработчики write и close вызываются после деструктора объекта и поэтому не могут использовать его контекст или бросать исключения. Исключения не могут быть обработаны, так как не будут пойманы, не будет отражена трассировка стека исключения и выполнение просто прекратится неожиданно. Однако при этом, деструкторы объекта могут использовать сессии.

Можно вызвать session_write_close() из деструктора, чтобы решить эту проблему "курицы и яйца", но самый надёжный способ - это регистрировать функцию завершения, как описано выше.

Внимание

Текущий рабочий каталог изменяется некоторыми SAPI, если сессия закрывается при завершении скрипта. Завершить сессию можно раньше с помощью session_write_close().

Смотрите также

  • Директива session.save_handler
  • Директива session.serialize_handler
  • register_shutdown_function() - Регистрирует функцию, которая выполнится при завершении работы скрипта
  • session_register_shutdown() - Функция завершения сессии
  • Обратитесь к » save_handler.inc для полного набора рекомендаций по реализации


Стартует новую сессию, либо возобновляет существующую

  • « session_set_save_handler
  • session_status »
  • PHP Manual
  • Функции для работы с сессиями
  • Стартует новую сессию, либо возобновляет существующую

session_start

(PHP 4, PHP 5, PHP 7, PHP 8)

session_start — Стартует новую сессию, либо возобновляет существующую

Описание

session_start(array $options = []): 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, когда она не смогла запустить сессию.

Примеры

Простой пример сессии

Пример #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_unset »
  • PHP Manual
  • Функции для работы с сессиями
  • Возвращает состояние текущей сессии

session_status

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

session_status — Возвращает состояние текущей сессии

Описание

session_status(): int

Функция session_status() возвращает состояние текущей сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

  • PHP_SESSION_DISABLED, если механизм сессий отключён.
  • PHP_SESSION_NONE, если механизм сессий включён, но сессия не создана.
  • PHP_SESSION_ACTIVE, если механизм сессий включён и сессия создана.

Смотрите также

  • session_start() - Стартует новую сессию, либо возобновляет существующую


Удалить все переменные сессии

  • « session_status
  • session_write_close »
  • PHP Manual
  • Функции для работы с сессиями
  • Удалить все переменные сессии

session_unset

(PHP 4, PHP 5, PHP 7, PHP 8)

session_unset — Удалить все переменные сессии

Описание

session_unset(): bool

Функция session_unset() удаляет все зарегистрированные переменные текущей сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Теперь возвращаемый тип этой функции bool. Раньше был тип void.

Примечания

Замечание:

При использовании $_SESSION для удаления переменных сессии, то используйте функцию unset(). Например, unset($_SESSION['varname']);.

Предостережение

НЕ удаляйте весь массив $_SESSION с помощью unset($_SESSION), так как это приведёт к невозможности регистрации новых переменных через суперглобальный массив $_SESSION

Замечание:

Использование функции session_unset() идентично $_SESSION = [].

Предостережение

Функция работает только в том случае, если сессия активна. Она не очистит массив $_SESSION, если сессия ещё не запущена или уже уничтожена. Используйте $_SESSION = [] для удаления всех переменных сессии, даже если сессия не активна.


Записывает данные сессии и завершает её

  • « session_unset
  • SessionHandler »
  • PHP Manual
  • Функции для работы с сессиями
  • Записывает данные сессии и завершает её

session_write_close

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

session_write_close — Записывает данные сессии и завершает её

Описание

session_write_close(): bool

Завершает текущую сессию и сохраняет её данные.

Данные сессии обычно сохраняются после завершения выполнения скрипта без необходимости вызова session_write_close(). Поскольку данные сессии заблокированы для предотвращения одновременной конкурирующей записи, только один скрипт может работать с сессией в любой момент времени. Из-за этой блокировки, при использовании фреймов вместе с сессиями, фреймы будут загружаться по очереди один за одним. Можно уменьшить время загрузки всех фреймов путём завершения сессии сразу, как только будут выполнены все необходимые изменения переменных сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Теперь возвращаемый тип этой функции bool. Раньше был тип void.

Смотрите также

  • session_register_shutdown() - Функция завершения сессии


Класс SessionHandler

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Введение

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().

Обратите внимание, что callback-методы этого класса предназначены для внутреннего вызова PHP и не предназначены для вызова из кода пользовательского пространства. Возвращаемые значения одинаково обрабатываются внутри PHP. Дополнительную информацию о работе с сессией можно узнать из описания функции session_set_save_handler().

Обзор классов

class SessionHandler implements SessionHandlerInterface, SessionIdInterface {
/* Методы */
public close(): bool
public create_sid(): string
public destroy(string $id): bool
public gc(int $max_lifetime): int|false
public open(string $path, string $name): bool
public read(string $id): string|false
public write(string $id, string $data): bool
}
Внимание

Этот класс предназначен для расширения текущего внутреннего обработчика сессии PHP. При этом, если вам нужно написать собственный обработчик, то необходимо написать собственную реализацию интерфейса SessionHandlerInterface вместо расширения класса SessionHandler.

Пример #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) {
// Генерация криптографически безопасной случайной соли с помощью функции random_bytes()
$salt = random_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, PHP 8)

SessionHandler::close — Закрывает сессию

Описание

public SessionHandler::close(): 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, PHP 8)

SessionHandler::create_sid — Возвращает новый идентификатор сессии

Описание

public SessionHandler::create_sid(): string

Генерирует и возвращает новый идентификатор сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Идентификатор сессии допустимый для обработчика сессии по умолчанию.

Смотрите также

  • session_id() - Получает и/или устанавливает идентификатор текущей сессии
  • session_create_id() - Создаёт новый идентификатор сессии


Уничтожает сессию

  • « SessionHandler::create_sid
  • SessionHandler::gc »
  • PHP Manual
  • SessionHandler
  • Уничтожает сессию

SessionHandler::destroy

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::destroy — Уничтожает сессию

Описание

public SessionHandler::destroy(string $id): bool

Уничтожает сессию. Вызывается изнутри PHP посредством функции session_regenerate_id() (подразумевается, что параметр $destroy установлен в true, функции session_destroy() или когда вызов session_decode() неудачен.

Этот метод является обёрткой для внутреннего обработчика PHP, определённого в настройке ini-файла session.save_handler, который устанавливается до обработчика вызовом session_set_save_handler().

Если этот класс расширяется путём наследования, то вызов родительского метода destroy выполнит код обёртки, а следовательно код внутреннего обработчика. Это позволяет методу быть переопределённым, перехваченным или отфильтрованным.

Для дополнительной информации смотрите руководство по функции SessionHandlerInterface::destroy().

Список параметров

id

Идентификатор уничтожаемой сессии.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно true в случае успешного выполнения, false в случае возникновения ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Очищает старые сессии

  • « SessionHandler::destroy
  • SessionHandler::open »
  • PHP Manual
  • SessionHandler
  • Очищает старые сессии

SessionHandler::gc

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::gc — Очищает старые сессии

Описание

public SessionHandler::gc(int $max_lifetime): int|false

Очищает сессии с истёкшим сроком жизни. Вызывается случайным образом изнутри PHP когда сессия стартует или когда вызвана функция session_start(). Частота, с которой она вызывается, основана на значении параметров конфигурации session.gc_divisor и session.gc_probability.

Этот метод обёртывает внутренний обработчик сессии определённый в настройке ini-файла session.save_handler который устанавливается перед тем, как определяется данный обработчик в функции session_set_save_handler().

Если этот класс расширяется путём наследования, вызов родительского метода gc выполнит код обёртки для этого метода, а также внутренний обработчик. Это позволит методу быть переопределённым, или перехваченным и отфильтрованным.

Для дополнительной информации о том, что ожидается от реализации этого метода смотрите документацию по методу SessionHandlerInterface::gc().

Список параметров

max_lifetime

Сессии, которые не были обновлены в течение последних max_lifetime секунд удаляются.

Возвращаемые значения

В случае успешного выполнения возвращает количество удалённых сессий или false в случае возникновения ошибки. Обратите внимание, что это значение возвращается внутрь PHP для обработки.

Список изменений

Версия | Описание
7.1.0 | До этой версии, в случае успешного выполнения эта функция возвращала true.


Инициализирует сессию

  • « SessionHandler::gc
  • SessionHandler::read »
  • PHP Manual
  • SessionHandler
  • Инициализирует сессию

SessionHandler::open

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::open — Инициализирует сессию

Описание

public SessionHandler::open(string $path, string $name): bool

Создаёт новую сессию или повторно инициализирует существующую. Вызывается изнутри PHP когда сессия стартует автоматически или посредством вызова функции session_start().

Этот метод является обёрткой для внутреннего обработчика PHP определённого в настройке ini-файла session.save_handler, который устанавливается до определения обработчика вызовом функции session_set_save_handler().

Если этот класс расширяется путём наследования, вызов родительского метода open выполнит код обёртки для этого метода, а также внутренний обработчик. Это позволит методу быть переопределённым, или перехваченным и отфильтрованным.

Для дополнительной информации о том, что ожидается от реализации этого метода смотрите документацию по методу SessionHandlerInterface::open().

Список параметров

path

Путь по которому сохраняется/восстанавливается сессия.

name

Название сессии.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно true в случае успешного выполнения, false в случае возникновения ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.

Смотрите также

  • Опция конфигурации session.auto-start


Считывает данные сессии

  • « SessionHandler::open
  • SessionHandler::write »
  • PHP Manual
  • SessionHandler
  • Считывает данные сессии

SessionHandler::read

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::read — Считывает данные сессии

Описание

public SessionHandler::read(string $id): string|false

Считывает данные сессии из хранилища и возвращает результат обратно в PHP для внутренней обработки. Этот метод вызывается автоматически когда PHP стартует сессию (либо автоматически или напрямую вызовом session_start() с последующим вызовом SessionHandler::open().

Этот метод является обёрткой внутреннего обработчика PHP, определённого в параметре ini-файла session.save_handler который устанавливается до того, как будет определён обработчик сессии вызовом session_set_save_handler().

Если этот класс расширен путём наследования, вызов родительского метода read вызовет обёртку для этого метода и, соответственно, вызов внутреннего обработчика. Это позволяет методу быть перегруженным, и/или перехваченные и отфильтрованным (например для расшифровки, значения параметра $data, которое возвращает родительский метод read).

Для дополнительной информации смотрите документацию по методу SessionHandlerInterface::read().

Список параметров

id

Идентификатор сессии, из которой необходимо считать данные.

Возвращаемые значения

Возвращает зашифрованную строку считанных данных. Если ничего не считано, возвращается false. Обратите внимание, что это значение возвращается в PHP для внутренней обработки.

Смотрите также

  • Директива настройки session.serialize_handler.


Записывает данные сессии

  • « SessionHandler::read
  • SessionHandlerInterface »
  • PHP Manual
  • SessionHandler
  • Записывает данные сессии

SessionHandler::write

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::write — Записывает данные сессии

Описание

public SessionHandler::write(string $id, string $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().

Список параметров

id

Идентификатор сессии.

data

Зашифрованные данные сессии. Эти данные являются результатом того, что PHP внутренне шифрует суперглобальную переменную $_SESSION в сериализированную строку и передаёт её в качестве параметра. Обратите внимание, что сессии используют альтернативный метод сериализации.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно true в случае успешного выполнения, false в случае возникновения ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.

Смотрите также

  • Директива настройки конфигурации session.serialize_handler.


Класс SessionHandlerInterface

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Введение

SessionHandlerInterface - это интерфейс, который определяет минимальный прототип для создания пользовательского обработчика сессии. Для предоставления пользовательского обработчика сессии функции session_set_save_handler(), используя её ООП реализацию, класс должен реализовывать этот интерфейс.

Обратите внимание, что callback-методы этого класса созданы для внутренних вызовов PHP и не предназначены для вызовов из вашего кода.

Обзор интерфейсов

interface SessionHandlerInterface {
/* Методы */
public close(): bool
public destroy(string $id): bool
public gc(int $max_lifetime): int|false
public open(string $path, string $name): bool
public read(string $id): string|false
public write(string $id, string $data): bool
}

Пример #1 Пример использования SessionHandlerInterface

Следующий пример реализует файловую сессию таким же образом, как это реализовано во внутреннем обработчике сессии PHP. Этот пример может быть легко расширен для обеспечения хранения сессий в предпочитаемой вами базе данных.

Обратите внимание, что мы используем объектно-ориентированные прототипы с функцией session_set_save_handler() и регистрируем функцию завершения (shutdown) используя один из параметров этой функции. Это действие рекомендуется производить в большинстве случаев, когда объекты регистрируются в качестве обработчиков сессии.

Предостережение

Для краткости в этом примере не добавлена проверка входных данных. Обратите внимание, что параметр $id предоставляется пользователем и обязательно должен проверяться для исключения возможных атак, использующих, например, проблемы обхода пути. Так что ни в коем случае не используйте этот код в промышленной эксплуатации, не добавив соответствующие проверки.

<?php
class MySessionHandler implements SessionHandlerInterface
{
private $savePath;
public function open($savePath, $sessionName): bool
{
$this->savePath = $savePath;
if (!is_dir($this->savePath)) {
mkdir($this->savePath, 0777);
}
return true;
}
public function close(): bool
{
return true;
}
#[\ReturnTypeWillChange]
public function read($id)
{
return (string)@file_get_contents("$this->savePath/sess_$id");
}
public function write($id, $data): bool
{
return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
}
public function destroy($id): bool
{
$file = "$this->savePath/sess_$id";
if (file_exists($file)) {
unlink($file);
}
return true;
}
#[\ReturnTypeWillChange]
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, PHP 8)

SessionHandlerInterface::close — Закрывает сессию

Описание

public SessionHandlerInterface::close(): bool

Закрывает текущую сессию. Эта функция автоматически выполняется при закрытии сессии или явно через session_write_close().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно true в случае успешного выполнения, false в случае возникновения ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Уничтожает сессию

  • « SessionHandlerInterface::close
  • SessionHandlerInterface::gc »
  • PHP Manual
  • SessionHandlerInterface
  • Уничтожает сессию

SessionHandlerInterface::destroy

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::destroy — Уничтожает сессию

Описание

public SessionHandlerInterface::destroy(string $id): bool

Уничтожает сессию. Вызывается функциями session_regenerate_id() (с $destroy = true), session_destroy() и при неудачном завершении функции session_decode().

Список параметров

id

Идентификатор сессии уничтожается.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно true в случае успешного выполнения, false в случае возникновения ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Очищает старые сессии

  • « SessionHandlerInterface::destroy
  • SessionHandlerInterface::open »
  • PHP Manual
  • SessionHandlerInterface
  • Очищает старые сессии

SessionHandlerInterface::gc

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::gc — Очищает старые сессии

Описание

public SessionHandlerInterface::gc(int $max_lifetime): int|false

Очищает сессии с истёкшим сроком жизни. Вызывается функцией session_start(), и основывается на опциях session.gc_divisor, session.gc_probability и session.gc_maxlifetime.

Список параметров

max_lifetime

Сессии, которые не обновлялись в течение max_lifetime секунд, будут удалены.

Возвращаемые значения

Возвращает количество удалённых сессий в случае успешного выполнения или false в случае возникновения ошибки. Обратите внимание, что это значение возвращается внутри PHP для обработки.

Список изменений

Версия | Описание
7.1.0 | До этой версии, функция возвращала true в случае успешного выполнения.


Инициализирует сессию

  • « SessionHandlerInterface::gc
  • SessionHandlerInterface::read »
  • PHP Manual
  • SessionHandlerInterface
  • Инициализирует сессию

SessionHandlerInterface::open

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::open — Инициализирует сессию

Описание

public SessionHandlerInterface::open(string $path, string $name): bool

Повторно инициализирует существующую сессию или создаёт новую. Вызывается когда сессия стартует или когда вызвана функция session_start().

Список параметров

path

Путь, по которому сохраняется/восстанавливается сессия.

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, PHP 8)

SessionHandlerInterface::read — Читает данные сессии

Описание

public SessionHandlerInterface::read(string $id): string|false

Читает данные сессии из хранилища сессий и возвращает результат. Вызывается сразу после старта сессии или когда вызвана session_start(). Обратите внимание, что перед вызовом этого метода будет вызвана функция SessionHandlerInterface::open().

Этот метод вызывается PHP когда стартует сессия. Этот метод должен получить данные сессии из хранилища по указанному её идентификатору. Строка, возвращаемая этим методом, должна иметь тот же сериализованный формат, что и исходная, которая передавалась функции SessionHandlerInterface::write(). Если запись не найдена, возвращается false.

Данные, возвращаемые этим методом, будут расшифрованы внутри PHP, используя метод десериализации, указанный в session.serialize_handler. Полученные данные будут использованы для заполнения суперглобального массива $_SESSION.

Обратите внимание, что схема сериализации данных не такая, как в функции unserialize(), и получить доступ к данным можно с помощью функции session_decode().

Список параметров

id

Идентификатор сессии.

Возвращаемые значения

Возвращает закодированную строку прочитанных данных. Если ничего не прочитано, возвращается false. Обратите внимание, что это значение передаётся для обработки внутри PHP.

Смотрите также

  • INI-директива session.serialize_handler


Записать данные сессии

  • « SessionHandlerInterface::read
  • SessionIdInterface »
  • PHP Manual
  • SessionHandlerInterface
  • Записать данные сессии

SessionHandlerInterface::write

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::write — Записать данные сессии

Описание

public SessionHandlerInterface::write(string $id, string $data): bool

Записывает данные сессии в хранилище сессий. Вызывается функцией session_write_close(), когда неудачно завершается функция session_register_shutdown() или во время нормального завершения работы. Внимание: SessionHandlerInterface::close() вызывается сразу же после этой функции.

PHP вызывает этот метод, когда сессия готова для сохранения и закрытия. Кодируются данные сессии из суперглобального массива $_SESSION в сериализованную строку и передаются вместе с идентификатором сессии данному методу для хранения. Используемый метод сериализации указан в опции session.serialize_handler.

Обратите внимание, что этот метод обычно вызывается PHP после закрытия буферов вывода, если явно не вызывается session_write_close().

Список параметров

id

Идентификатор сессии.

data

Закодированные данные сессии. Эти данные являются результатом внутреннего кодирования PHP суперглобального массива $_SESSION в сериализованную строку и передачи её в качестве этого параметра. Обратите внимание, что сессии используют альтернативный метод сериализации.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно true в случае успешного выполнения, false в случае возникновения ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.

Смотрите также

  • Директива конфигурации session.serialize_handler


Интерфейс SessionIdInterface

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

Введение

SessionIdInterface - это интерфейс, который определяет необязательные методы для создания пользовательского обработчика сессии. Для предоставления пользовательского обработчика сессии функции session_set_save_handler(), используя её ООП реализацию, класс должен реализовывать этот интерфейс.

Обратите внимание, что callback-методы этого класса созданы для внутренних вызовов PHP и не предназначены для вызовов из вашего кода.

Обзор интерфейсов

interface SessionIdInterface {
/* Методы */
public create_sid(): string
}

Содержание

  • SessionIdInterface::create_sid — Создать идентификатор сессии


Создать идентификатор сессии

  • « SessionIdInterface
  • SessionUpdateTimestampHandlerInterface »
  • PHP Manual
  • SessionIdInterface
  • Создать идентификатор сессии

SessionIdInterface::create_sid

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

SessionIdInterface::create_sid — Создать идентификатор сессии

Описание

public SessionIdInterface::create_sid(): string

Создаёт новый идентификатор сессии. Функция автоматически выполняется, когда необходимо создать новый идентификатор сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Новый идентификатор сессии. Обратите внимание, что это значение возвращается внутри PHP для обработки.

Смотрите также

  • SessionHandler::create_sid() - Возвращает новый идентификатор сессии


Интерфейс SessionUpdateTimestampHandlerInterface

(PHP 7, PHP 8)

Введение

SessionUpdateTimestampHandlerInterface - это интерфейс, который определяет дополнительные методы для создания пользовательского обработчика сессии. Для предоставления пользовательского обработчика сессии функции session_set_save_handler(), используя её ООП реализацию, класс должен реализовывать этот интерфейс.

Обратите внимание, что callback-методы этого класса созданы для внутренних вызовов PHP и не предназначены для вызовов из вашего кода.

Обзор классов

interface SessionUpdateTimestampHandlerInterface {
/* Методы */
public updateTimestamp(string $id, string $data): bool
public validateId(string $id): bool
}

Содержание

  • SessionUpdateTimestampHandlerInterface::updateTimestamp — Обновить метку времени
  • SessionUpdateTimestampHandlerInterface::validateId — Проверить идентификатор


Обновить метку времени

  • « SessionUpdateTimestampHandlerInterface
  • SessionUpdateTimestampHandlerInterface::validateId »
  • PHP Manual
  • SessionUpdateTimestampHandlerInterface
  • Обновить метку времени

SessionUpdateTimestampHandlerInterface::updateTimestamp

(PHP 7, PHP 8)

SessionUpdateTimestampHandlerInterface::updateTimestamp — Обновить метку времени

Описание

public SessionUpdateTimestampHandlerInterface::updateTimestamp(string $id, string $data): bool

Обновляет метку времени последнего изменения сеанса. Функция автоматически выполняется при обновлении сеанса.

Список параметров

id

Идентификатор сессии.

data

Данные сессии.

Возвращаемые значения

Возвращает true, если метка времени обновлена, false в противном случае. Обратите внимание, что это значение возвращается внутри PHP для обработки.


Проверить идентификатор

  • « SessionUpdateTimestampHandlerInterface::updateTimestamp
  • Обработка текста »
  • PHP Manual
  • SessionUpdateTimestampHandlerInterface
  • Проверить идентификатор

SessionUpdateTimestampHandlerInterface::validateId

(PHP 7, PHP 8)

SessionUpdateTimestampHandlerInterface::validateId — Проверить идентификатор

Описание

public SessionUpdateTimestampHandlerInterface::validateId(string $id): bool

Проверяет данный идентификатор сессии. Идентификатор сессии действителен, если сессия с таким идентификатором уже существует. Функция автоматически выполняется при запуске сессии, указывается идентификатор сессии и включается session.use_strict_mode.

Список параметров

id

Идентификатор сессии.

Возвращаемые значения

Возвращает true для корректного идентификатора, false в противном случае. Обратите внимание, что это значение возвращается внутри PHP для обработки.


Обработка текста

  • 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 — Разбор и лексирование
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Сопоставление с шаблоном — Сопоставление с шаблоном Parle
    • Примеры
    • Parle\Lexer — Класс Parle\Lexer
    • Parle\RLexer — Класс Parle\RLexer
    • Parle\Parser — Класс Parle\Parser
    • Parle\RParser — Класс Parle\RParser
    • Parle\Stack — Класс Parle\Stack
    • Parle\Token — Класс Parle\Token
    • Parle\ErrorInfo — Класс Parle\ErrorInfo
    • Parle\LexerException — Класс Parle\LexerException
    • Parle\ParserException — Класс Parle\ParserException
  • PCRE — Функции для работы с регулярными выражениями (Perl-совместимые)
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Регулярные выражения PCRE
    • Функции PCRE
  • ssdeep — Нечёткое хеширование ssdeep
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции ssdeep
  • Строки
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции для работы со строками
    • Список изменений


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
  • 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 — Посещение
    • CommonMark\Interfaces\IVisitor::leave — Посещение
  • 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 class 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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Heading наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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()
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
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()
public CommonMark\Node\Heading::__construct(int $level)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.


Paragraph наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


BlockQuote наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


BulletList наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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()
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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Содержание

  • CommonMark\Node\BulletList::__construct — Конструктор класса BulletList


Конструктор класса BulletList

  • « CommonMark\Node\BulletList
  • CommonMark\Node\OrderedList »
  • PHP Manual
  • CommonMark\Node\BulletList
  • Конструктор класса BulletList

CommonMark\Node\BulletList::__construct

(cmark >= 1.0.0)

CommonMark\Node\BulletList::__construct — Конструктор класса BulletList

Описание

public CommonMark\Node\BulletList::__construct()
public CommonMark\Node\BulletList::__construct(int $tight)
public CommonMark\Node\BulletList::__construct(int $tight, int $delimiter)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.


OrderedList наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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()
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
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()
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 class 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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Text наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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()
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
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()
public CommonMark\Node\Text::__construct(string $literal)

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

literal


Strong наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Emphasis наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


ThematicBreak наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


SoftBreak наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


LineBreak наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Code наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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()
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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


CodeBlock наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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()
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
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 class 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()
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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


HTMLInline наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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()
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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Image наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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()
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
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()
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 class 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()
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
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()
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 class 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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


CustomInline наследует CommonMark\Node

(cmark >= 1.0.0)

Обзор классов

final class 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
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Абстрактный класс CommonMark\Node

(cmark >= 1.0.0)

Введение

Представляет абстрактный узел, не предназначенный для непосредственного использования программистом.

Обзор классов

final abstract class 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
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

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


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 class CommonMark\Interfaces\IVisitor {
/* Константы */
const int Done;
const int Enter;
const int Leave;
/* Методы */
abstract public enter(IVisitable $visitable): int|IVisitable|null
abstract public leave(IVisitable $visitable): int|IVisitable|null
}

Содержание

  • CommonMark\Interfaces\IVisitor::enter — Посещение
  • CommonMark\Interfaces\IVisitor::leave — Посещение


Посещение

  • « CommonMark\Interfaces\IVisitor
  • CommonMark\Interfaces\IVisitor::leave »
  • PHP Manual
  • CommonMark\Interfaces\IVisitor
  • Посещение

CommonMark\Interfaces\IVisitor::enter

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitor::enter — Посещение

Описание

abstract public CommonMark\Interfaces\IVisitor::enter(IVisitable $visitable): int|IVisitable|null

Список параметров

visitable

Текущий входимый CommonMark\Interfaces\IVisitable.

Возвращаемые значения

Возврат CommonMark\Interfaces\IVisitor::Done приведёт к выходу вспомогательного итератора.

Возврат CommonMark\Interfaces\IVisitor::Enter сбросит вспомогательный итератор при входе в текущий IVisitable.

Возврат CommonMark\Interfaces\IVisitor::Leave сбросит вспомогательный итератор при выходе из текущего IVisitable.

Возврат IVisitable сбросит вспомогательный итератор при входе в данный IVisitable.

Если ничего не возвращается, вспомогательный итератор продолжит работу.

Смотрите также

  • CommonMark\Interfaces\IVisitable::accept


Посещение

  • « CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitable »
  • PHP Manual
  • CommonMark\Interfaces\IVisitor
  • Посещение

CommonMark\Interfaces\IVisitor::leave

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitor::leave — Посещение

Описание

abstract public CommonMark\Interfaces\IVisitor::leave(IVisitable $visitable): int|IVisitable|null

Список параметров

visitable

Текущий покидаемый CommonMark\Interfaces\IVisitable.

Возвращаемые значения

Возврат CommonMark\Interfaces\IVisitor::Done приведёт к выходу вспомогательного итератора.

Возврат CommonMark\Interfaces\IVisitor::Enter сбросит вспомогательный итератор при входе в текущий IVisitable.

Возврат CommonMark\Interfaces\IVisitor::Leave сбросит вспомогательный итератор при выходе из текущего IVisitable.

Возврат IVisitable сбросит вспомогательный итератор при выходе из данного IVisitable.

Если ничего не возвращается, вспомогательный итератор продолжит работу.

Смотрите также

  • CommonMark\Interfaces\IVisitable::accept


Интерфейс CommonMark\Interfaces\IVisitable

(cmark >= 1.0.0)

Введение

Обзор классов

final class 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 class CommonMark\Parser {
/* Конструктор */
public __construct(int $options = ?)
/* Методы */
public parse(string $buffer): void
public finish(): 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 (int)
CommonMark\Parser\Normalize (int)
CommonMark\Parser\ValidateUTF8 (int)
CommonMark\Parser\Smart (int)


Разбор

  • « 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(): 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 или внутреннее представление значений.

Обзор классов

class 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 (int)
CommonMark\Parser\Normalize (int)
CommonMark\Parser\ValidateUTF8 (int)
CommonMark\Parser\Smart (int)

Возвращаемые значения

Вернёт корневой (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 (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)
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 (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)

Возвращаемые значения


Отображение

  • « 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 (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)
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 (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)
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 (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)

Возвращаемые значения


Разбор и лексирование

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • Предопределённые константы
  • Сопоставление с шаблоном — Сопоставление с шаблоном Parle
    • Представления символов
    • Классы символов
    • Классы символов Unicode
    • Чередование и повторение
    • Якоря
    • Группировка
  • Примеры
    • Примеры использования лексера
    • Пример использования парсера
  • Parle\Lexer — Класс Parle\Lexer
    • Parle\Lexer::advance — Обрабатывает следующее правило лексера
    • Parle\Lexer::build — Завершает набор правил лексера
    • Parle\Lexer::callout — Определяет callback-функцию токена
    • Parle\Lexer::consume — Передаёт данные на обработку
    • Parle\Lexer::dump — Выводит состояние устройства
    • Parle\Lexer::getToken — Получает текущий токен
    • Parle\Lexer::insertMacro — Вставляет макрос регулярного выражения
    • Parle\Lexer::push — Добавляет правило лексера
    • Parle\Lexer::reset — Сбрасывает лексер
  • Parle\RLexer — Класс Parle\RLexer
    • Parle\RLexer::advance — Обработка следующего правила лексера
    • Parle\RLexer::build — Завершает набор правил лексера
    • Parle\RLexer::callout — Определяет callback-функцию токена
    • Parle\RLexer::consume — Передаёт данные для обработки
    • Parle\RLexer::dump — Выгружает состояние устройства
    • Parle\RLexer::getToken — v
    • Parle\RLexer::insertMacro — Вставляет макрос регулярного выражения
    • Parle\RLexer::push — Добавляет правило лексера
    • Parle\RLexer::pushState — Продвигает новое начальное состояние
    • Parle\RLexer::reset — Сбрасывает лексер
  • Parle\Parser — Класс Parle\Parser
    • Parle\Parser::advance — Обрабатывает следующее правило парсера
    • Parle\Parser::build — Завершает грамматические правила
    • Parle\Parser::consume — Потребляет данные для обработки
    • Parle\Parser::dump — Выводит грамматику
    • Parle\Parser::errorInfo — Получает информацию об ошибке
    • Parle\Parser::left — Объявляет токен с левой ассоциативностью
    • Parle\Parser::nonassoc — Объявляет токен без ассоциативности
    • Parle\Parser::precedence — Объявляет правило приоритета
    • Parle\Parser::push — Добавляет грамматическое правило
    • Parle\Parser::reset — Сбрасывает состояние парсера
    • Parle\Parser::right — Объявляет токен с правой ассоциативностью
    • Parle\Parser::sigil — Извлекает часть совпадения по правилу
    • Parle\Parser::sigilCount — Получает количество элементов в совпадающем правиле
    • Parle\Parser::sigilName — Получает имя правила или токена
    • Parle\Parser::token — Объявляет токен
    • Parle\Parser::tokenId — Получает идентификатор токена
    • Parle\Parser::trace — Следит за работой парсера
    • Parle\Parser::validate — Проверяет входные данные
  • Parle\RParser — Класс Parle\RParser
    • Parle\RParser::advance — Обработка следующего правила парсера
    • Parle\RParser::build — Завершает грамматические правила
    • Parle\RParser::consume — Использовать данные для обработки
    • Parle\RParser::dump — Выводит грамматику
    • Parle\RParser::errorInfo — Получает информацию об ошибке
    • Parle\RParser::left — Объявляет токен с левой ассоциативностью
    • Parle\RParser::nonassoc — Объявляет токен без ассоциативности
    • Parle\RParser::precedence — Объявляет правило приоритета
    • Parle\RParser::push — Добавляет грамматическое правило
    • Parle\RParser::reset — Сбрасывает состояние парсера
    • Parle\RParser::right — Объявляет токен с правой ассоциативностью
    • Parle\RParser::sigil — Извлекает совпадающую часть по правилу
    • Parle\RParser::sigilCount — Получает количество элементов в совпадающем правиле
    • Parle\RParser::sigilName — Получает имя правила или токена
    • Parle\RParser::token — Объявляет токен
    • Parle\RParser::tokenId — Получает идентификатор токена
    • Parle\RParser::trace — Следит за работой парсера
    • Parle\RParser::validate — Проверяет входные данные
  • Parle\Stack — Класс Parle\Stack
    • Parle\Stack::pop — Извлекает предмет из стека
    • Parle\Stack::push — Помещает элемент в стек
  • Parle\Token — Класс Parle\Token
  • Parle\ErrorInfo — Класс Parle\ErrorInfo
  • Parle\LexerException — Класс Parle\LexerException
  • Parle\ParserException — Класс Parle\ParserException


Введение

Модуль parle предоставляет средства лексического анализа и синтаксического анализа общего назначения. Реализация основана на библиотеках » Бена Хансона и требует для работы компилятор с поддержкой » C++14. Лексический анализатор основан на сопоставлении регулярных выражений, синтаксический анализатор - LALR (1). Лексеры и парсеры генерируются на лету и могут использоваться сразу после их завершения. Parle занимается синтаксическим анализом и лексированием, соответствующее представление и обработка структур данных является задачей разработчика. Модуль пока не поддерживает сериализацию и генерацию кода.

Лексический анализ - это процесс разделения последовательности символов на список лексем. Список лексем можно затем использовать для синтаксического анализа с точки зрения формальной грамматики. Эти операции также известны как лексирование и синтаксический анализ. Эта документация не преследует цель предоставить исчерпывающую информацию о лексировании и синтаксическом анализе. Хорошая информация по этому поводу доступна на многочисленных ресурсах в сети. Включены несколько примеров использования, чтобы показать функциональность. Модуль полезен для программистов PHP, желающих изучить или использовать синтаксический анализ и лексирование. Состояния и анализ грамматики не нужно реализовывать вручную, эти сложные задачи решаются с помощью parle. Благодаря этому разработка может быть сосредоточена на решении актуальной проблемы.

Обычный вариант использования parle - это когда формат данных слишком сложен для обработки регулярным выражением, совпадающим с PCRE. При этом широкое практическое применение. Будь то конкретный формат данных, модификация поведения существующих функций, даже собственный язык программирования и т.д. Полезны вспомогательные методы, такие как Parle\Lexer::dump() для проверки сгенерированного состояния или Parle\Parser::dump() для проверки сгенерированной грамматики. Метод Parle\Parser::trace() также можно использовать для отслеживания операции синтаксического анализа.


  • « Введение
  • Требования »
  • PHP Manual
  • Parle
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


Требования

Поддерживается PHP 7.4 или выше. Требуется компилятор с поддержкой C++14. Успешная сборка модуля была произведена по крайней мере с clang 5.0, GCC 5.0 и Visual Studio 2015.


Установка

Этот модуль » PECL не поставляется вместе с PHP.

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/parle.

DLL для модуля PECL доступна по ссылке » http://windows.php.net/downloads/pecl/releases/parle/.

Доступные параметры
Опция | Описание
--enable-parle | Включить модуль parle.
--enable-parle-utf32 | Включить внутреннюю поддержку UTF-32. Доступно начиная с версии 0.7.2.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

Parle\INTERNAL_UTF32 bool
Определяет, скомпилирована ли внутренняя поддержка UTF-32. Доступно начиная с версии 0.7.2.


Сопоставление с шаблоном Parle

Содержание

  • Представления символов
  • Классы символов
  • Классы символов Unicode
  • Чередование и повторение
  • Якоря
  • Группировка

Parle поддерживает сопоставление регулярных выражений аналогично flex. Также поддерживаются следующие наборы символов POSIX: [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] и [:xdigit:].

Классы символов Unicode в настоящее время не включены по умолчанию, передайте --enable-parle-utf32, чтобы сделать их доступными. Конкретная кодировка может быть отображена с помощью правильно построенного регулярного выражения. Например, чтобы соответствовать символу евро, закодированному в UTF-8, можно использовать регулярное выражение [\xe2][\x82][\xac]. Шаблон для строки в кодировке UTF-8 может быть [ -\x7f]{+}[\x80-\xbf]{+}[\xc2-\xdf]{+}[\xe0-\xef]{+}[\xf0-\xff]+.


Представления символов

Представления символов
Последовательность | Описание
\a | Символ оповещения, сигнал.
\b | Символ возврата "Backspace".
\e | Символ ESC, \x1b.
\n | Новая строка.
\r | Возврат каретки.
\f | Разрыв страницы, \x0c.
\t | Горизонтальная табуляция, \x09.
\v | Вертикальная табуляция, \x0b.
\oct | Символ, заданный трёхзначным восьмеричным кодом.
\xhex | Символ, заданный шестнадцатеричным кодом.
\cchar | Именованный управляющий символ.


Классы символов

Классы символов
Последовательность | Описание
[...] | Одиночный символ, указанный или содержащийся в указанном диапазоне. Диапазоны можно комбинировать с операторами {+} и {-}. Например, [a-z]{+}[0-9] то же, что и [0-9a-z], а [a-z]{-}[aeiou] то же, что и [b-df-hj-np-tv-z].
[^...] | Одиночный символ не указан и не содержится в указанном диапазоне.
. | Любой символ, по умолчанию [^\n].
\d | Любая десятичная цифра, [0-9].
\D | Любой символ, кроме десятичной цифры, [^0-9].
\s | Любой пробельный символ, [ \t\n\r\f\v].
\S | Любой непробельный символ, [^ \t\n\r\f\v].
\w | Любой символ, образующий "слово", [a-zA-Z0-9_].
\W | Любой символ, не образующий "слово", [^a-zA-Z0-9_].


Классы символов Unicode

Классы символов Unicode
Последовательность | Описание
\p{C} | Прочие.
\p{Cc} | Прочие, контрольные.
\p{Cf} | Прочие, форматирование.
\p{Co} | Прочие, для приватного использования.
\p{Cs} | Прочие, суррогаты.
\p{L} | Буквы.
\p{LC} | Буквы, регистр.
\p{Ll} | Буквы, в нижнем регистре.
\p{Lm} | Буквы, модификаторы.
\p{Lo} | Буквы, прочее.
\p{Lt} | Буквы, заглавные буквы.
\p{Lu} | Буквы, в верхнем регистре.
\p{M} | Отметки.
\p{Mc} | Отметки, двоеточия.
\p{Me} | Отметки, вложения.
\p{Mn} | Отметки, апострофы.
\p{N} | Числа.
\p{Nd} | Числа, десятичная цифра.
\p{Nl} | Числа, цифры обозначаемые буквами (римские).
\p{No} | Числа, прочие.
\p{P} | Знаки пунктуации.
\p{Pc} | Знаки пунктуации, соединители.
\p{Pd} | Знаки пунктуации, тире.
\p{Pe} | Знаки пунктуации, закрывающие скобки.
\p{Pf} | Знаки пунктуации, закрывающие кавычки.
\p{Pi} | Знаки пунктуации, открывающие кавычки.
\p{Po} | Знаки пунктуации, прочее.
\p{Ps} | Знаки пунктуации, открывающие скобки.
\p{S} | Символы.
\p{Sc} | Символы, валюты.
\p{Sk} | Символы, модификаторы.
\p{Sm} | Символы, математические.
\p{So} | Символы, прочие.
\p{Z} | Разделители.
\p{Zl} | Разделители, линия.
\p{Zp} | Разделители, параграф.
\p{Zs} | Разделители, пробел.

Эти классы символов доступны только в том случае, если во время компиляции была передана опция --enable-parle-utf32.


Чередование и повторение

Чередование и повторение
Последовательность | Жадный квантификатор | Описание
...|... | - | Попробуйте чередовать дочерние шаблоны.
* | да | Совпадение 0 или более раз.
+ | да | Совпадение 1 или более раз.
? | да | Совпадение 0 или 1 раз.
{n} | нет | Совпадение ровно n раз.
{n,} | да | Совпадение не менее n раз.
{n,m} | да | Совпадение не менее n раз, но не более m раз.
*? | нет | Match 0 or more times.
+? | нет | Match 1 or more times.
?? | нет | Совпадение 0 или 1 раз.
{n,}? | нет | Совпадение не менее n раз.
{n,m}? | нет | Совпадение не менее n раз, но не более m раз.
{MACRO} | - | Включить макрос регулярного выражения в текущее регулярное выражение.


Якоря

Якоря
Последовательность | Описание
^ | Начало строки или после новой строки.
$ | Конец строки или перед новой строкой.


Группировка

Группировка
Последовательность | Описание
(...) Сгруппировать регулярное выражение, чтобы переопределить приоритет оператора по умолчанию.
(?r-s:pattern) Применить опцию r и опустите опцию s при интерпретации шаблона. Параметры могут быть нулём или более символов i, s или x.
Опции
Опция | Описание
i | Без учёта регистра.
-i | С учётом регистра..
s | Изменяет значение ".", чтобы соответствовать любому символу.
-s | изменяет значение ".", чтобы соответствовать любому символу кроме "\n".
x | Игнорирует комментарии и пробелы в шаблонах. Пробелы игнорируются, если они не экранированы обратной косой чертой, не содержатся в "" или не появляются внутри диапазона символов.
Эти параметры могут применяться глобально на уровне правил путём передачи комбинации битовых флагов в лексер.
(?# comment ) | Пропускает всё, что находится внутри (). Первый встреченный символ ) завершает шаблон. Комментарий не может содержать символ а ). Комментарий может занимать строки.


  • « Группировка
  • Примеры использования лексера »
  • PHP Manual
  • Parle
  • Примеры

Примеры

Содержание

  • Примеры использования лексера
  • Пример использования парсера


Примеры использования лексера

Пример #1 Токенизация списка целых чисел через запятую

<?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("Неизвестный токен '{$tok->value}' по смещению {$lex->marker}.");
}

echo "ТОКЕН: ", $tokenIdToName[$tok->id], PHP_EOL;
} while (Token::EOI != $tok->id);

Пример #2 Токенизировать оператор присваивания

<?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);


Пример использования парсера

Пример #1 Простой калькулятор

<?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"); /* Индекс производства не используется. */

$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("Не удалось проверить ввод");
}

$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 Разобрать слова из предложения

<?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);


Класс Parle\Lexer

(PECL parle >= 0.5.1)

Введение

Класс лексера с одним состоянием. Лексемы можно определять на лету. Если конкретный экземпляр лексера предназначен для использования с Parle\Parser, идентификаторы токенов должны быть взяты оттуда. В противном случае могут быть предоставлены произвольные идентификаторы токенов. Лексер может дать определённое преимущество в производительности по сравнению с Parle\RLexer, если не требуется несколько состояний. Обратите внимание, что Parle\RParser несовместим с этим лексером.

Обзор классов

class Parle\Lexer {
/* Константы */
const int ICASE = 1;
const int DOT_NOT_LF = 2;
const int DOT_NOT_CRLF = 4;
const int SKIP_WS = 8;
const int MATCH_ZERO_LEN = 16;
/* Свойства */
public bool $bol = false;
public int $flags = 0;
public int $state = 0;
public int $marker = 0;
public int $cursor = 0;
/* Методы */
public advance(): void
public build(): void
public callout(int $id, callable $callback): void
public consume(string $data): void
public dump(): void
public getToken(): 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

Флаг начала ввода.

flags

Флаги лексера.

state

Текущее состояние лексера, доступно только для чтения.

marker

Позиция последнего совпадения токена, доступно только для чтения.

cursor

Текущее смещение ввода, доступно только для чтения.

Содержание

  • Parle\Lexer::advance — Обрабатывает следующее правило лексера
  • Parle\Lexer::build — Завершает набор правил лексера
  • Parle\Lexer::callout — Определяет callback-функцию токена
  • Parle\Lexer::consume — Передаёт данные на обработку
  • Parle\Lexer::dump — Выводит состояние устройства
  • Parle\Lexer::getToken — Получает текущий токен
  • Parle\Lexer::insertMacro — Вставляет макрос регулярного выражения
  • Parle\Lexer::push — Добавляет правило лексера
  • Parle\Lexer::reset — Сбрасывает лексер


Обрабатывает следующее правило лексера

  • « Parle\Lexer
  • Parle\Lexer::build »
  • PHP Manual
  • Parle\Lexer
  • Обрабатывает следующее правило лексера

Parle\Lexer::advance

(PECL parle >= 0.5.1)

Parle\Lexer::advance — Обрабатывает следующее правило лексера

Описание

public Parle\Lexer::advance(): void

Обрабатывает следующее правило и подготавливает полученные данные токена.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Завершает набор правил лексера

  • « Parle\Lexer::advance
  • Parle\Lexer::callout »
  • PHP Manual
  • Parle\Lexer
  • Завершает набор правил лексера

Parle\Lexer::build

(PECL parle >= 0.5.1)

Parle\Lexer::build — Завершает набор правил лексера

Описание

public Parle\Lexer::build(): void

Правила, ранее добавленные с помощью Parle\Lexer::push(), завершаются. Этот вызов метода должен быть выполнен после того, как были применены все необходимые правила. Набор правил доступен только для чтения. Можно начинать лексирование.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Определяет callback-функцию токена

  • « Parle\Lexer::build
  • Parle\Lexer::consume »
  • PHP Manual
  • Parle\Lexer
  • Определяет callback-функцию токена

Parle\Lexer::callout

(PECL parle >= 0.7.2)

Parle\Lexer::callout — Определяет callback-функцию токена

Описание

public Parle\Lexer::callout(int $id, callable $callback): void

Определяет callback-функцию, которая будет вызываться, когда лексер встречает определённый токен.

Список параметров

id

Идентификатор токена.

callback

Callable для вызова. Вызываемый объект не получает аргументов, а его возвращаемое значение игнорируется.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Передаёт данные на обработку

  • « Parle\Lexer::callout
  • Parle\Lexer::dump »
  • PHP Manual
  • Parle\Lexer
  • Передаёт данные на обработку

Parle\Lexer::consume

(PECL parle >= 0.5.1)

Parle\Lexer::consume — Передаёт данные на обработку

Описание

public Parle\Lexer::consume(string $data): void

Обрабатывает данные для лексирования.

Список параметров

data

Данные для лексирования.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Выводит состояние устройства

  • « Parle\Lexer::consume
  • Parle\Lexer::getToken »
  • PHP Manual
  • Parle\Lexer
  • Выводит состояние устройства

Parle\Lexer::dump

(PECL parle >= 0.5.1)

Parle\Lexer::dump — Выводит состояние устройства

Описание

public Parle\Lexer::dump(): void

Выводит текущее состояние устройства в стандартный вывод.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Получает текущий токен

  • « Parle\Lexer::dump
  • Parle\Lexer::insertMacro »
  • PHP Manual
  • Parle\Lexer
  • Получает текущий токен

Parle\Lexer::getToken

(PECL parle >= 0.5.1)

Parle\Lexer::getToken — Получает текущий токен

Описание

public Parle\Lexer::getToken(): Parle\Token

Получает текущий токен.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр Parle\Token.


Вставляет макрос регулярного выражения

  • « Parle\Lexer::getToken
  • Parle\Lexer::push »
  • PHP Manual
  • Parle\Lexer
  • Вставляет макрос регулярного выражения

Parle\Lexer::insertMacro

(PECL parle >= 0.5.1)

Parle\Lexer::insertMacro — Вставляет макрос регулярного выражения

Описание

public Parle\Lexer::insertMacro(string $name, string $regex): void

Вставляет макрос регулярного выражения, который позже можно использовать как ярлык и включить в другие регулярные выражения.

Список параметров

name

Имя макроса.

regex

Регулярное выражение.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Добавляет правило лексера

  • « Parle\Lexer::insertMacro
  • Parle\Lexer::reset »
  • PHP Manual
  • Parle\Lexer
  • Добавляет правило лексера

Parle\Lexer::push

(PECL parle >= 0.5.1)

Parle\Lexer::push — Добавляет правило лексера

Описание

public Parle\Lexer::push(string $regex, int $id): void

Выдвигает шаблон для распознавания лексемы.

Список параметров

regex

Регулярное выражение, используемое для сопоставления токенов.

id

Идентификатор токена. Если экземпляр лексера предназначен для автономного использования, может быть произвольным числом. Если экземпляр лексера будет передан синтаксическому анализатору, должен быть идентификатор, возвращаемый Parle\Parser::tokenid().

Возвращаемые значения

Функция не возвращает значения после выполнения.


Сбрасывает лексер

  • « Parle\Lexer::push
  • Parle\RLexer »
  • PHP Manual
  • Parle\Lexer
  • Сбрасывает лексер

Parle\Lexer::reset

(PECL parle >= 0.7.1)

Parle\Lexer::reset — Сбрасывает лексер

Описание

public Parle\Lexer::reset(int $pos): void

Сбрасывает лексер, опционально предоставляя желаемое смещение.

Список параметров

pos

Позиция для сброса.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Класс Parle\RLexer

(PECL parle >= 0.5.1)

Введение

Класс лексера с несколькими состояниями. Лексемы можно определять на лету. Если конкретный экземпляр лексера предназначен для использования с Parle\RParser, идентификаторы токенов должны быть взяты оттуда. В противном случае могут быть предоставлены произвольные идентификаторы токенов. Обратите внимание, что Parle\Parser несовместим с этим лексером.

Обзор классов

class Parle\RLexer {
/* Константы */
const int ICASE = 1;
const int DOT_NOT_LF = 2;
const int DOT_NOT_CRLF = 4;
const int SKIP_WS = 8;
const int MATCH_ZERO_LEN = 16;
/* Свойства */
public bool $bol = false;
public int $flags = 0;
public int $state = 0;
public int $marker = 0;
public int $cursor = 0;
/* Методы */
public advance(): void
public build(): void
public callout(int $id, callable $callback): void
public consume(string $data): void
public dump(): void
public getToken(): 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

Флаг начала ввода.

flags

Флаги лексера.

state

Текущее состояние лексера, только для чтения.

marker

Позиция последнего совпадения токена, только для чтения.

cursor

Текущее смещение ввода, только для чтения.

Содержание

  • Parle\RLexer::advance — Обработка следующего правила лексера
  • Parle\RLexer::build — Завершает набор правил лексера
  • Parle\RLexer::callout — Определяет callback-функцию токена
  • Parle\RLexer::consume — Передаёт данные для обработки
  • Parle\RLexer::dump — Выгружает состояние устройства
  • Parle\RLexer::getToken — v
  • Parle\RLexer::insertMacro — Вставляет макрос регулярного выражения
  • Parle\RLexer::push — Добавляет правило лексера
  • Parle\RLexer::pushState — Продвигает новое начальное состояние
  • Parle\RLexer::reset — Сбрасывает лексер


Обработка следующего правила лексера

  • « Parle\RLexer
  • Parle\RLexer::build »
  • PHP Manual
  • Parle\RLexer
  • Обработка следующего правила лексера

Parle\RLexer::advance

(PECL parle >= 0.5.1)

Parle\RLexer::advance — Обработка следующего правила лексера

Описание

public Parle\RLexer::advance(): void

Обрабатывает следующее правило и подготавливает полученные данные токена.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Завершает набор правил лексера

  • « Parle\RLexer::advance
  • Parle\RLexer::callout »
  • PHP Manual
  • Parle\RLexer
  • Завершает набор правил лексера

Parle\RLexer::build

(PECL parle >= 0.5.1)

Parle\RLexer::build — Завершает набор правил лексера

Описание

public Parle\RLexer::build(): void

Правила, ранее добавленные с помощью Parle\RLexer::push(), завершаются. Вызов метода должен быть выполнен после того, как все необходимые правила были переданы. Набор правил становится только для чтения. Лексер готов к запуску.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Определяет callback-функцию токена

  • « Parle\RLexer::build
  • Parle\RLexer::consume »
  • PHP Manual
  • Parle\RLexer
  • Определяет callback-функцию токена

Parle\RLexer::callout

(PECL parle >= 0.7.2)

Parle\RLexer::callout — Определяет callback-функцию токена

Описание

public Parle\RLexer::callout(int $id, callable $callback): void

Определяет callback-функцию, которая будет вызываться, когда лексер встречает определённый токен.

Список параметров

id

Token id.

callback

Callable-функция. Вызываемый объект не получает аргументов, а его возвращаемое значение игнорируется.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Передаёт данные для обработки

  • « Parle\RLexer::callout
  • Parle\RLexer::dump »
  • PHP Manual
  • Parle\RLexer
  • Передаёт данные для обработки

Parle\RLexer::consume

(PECL parle >= 0.5.1)

Parle\RLexer::consume — Передаёт данные для обработки

Описание

public Parle\RLexer::consume(string $data): void

Потребляет данные для лексинга.

Список параметров

data

Данные для лексирования.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Выгружает состояние устройства

  • « Parle\RLexer::consume
  • Parle\RLexer::getToken »
  • PHP Manual
  • Parle\RLexer
  • Выгружает состояние устройства

Parle\RLexer::dump

(PECL parle >= 0.5.1)

Parle\RLexer::dump — Выгружает состояние устройства

Описание

public Parle\RLexer::dump(): void

Выгружает текущее состояние устройства на стандартный вывод.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


v

  • « Parle\RLexer::dump
  • Parle\RLexer::insertMacro »
  • PHP Manual
  • Parle\RLexer
  • v

Parle\RLexer::getToken

(PECL parle >= 0.5.1)

Parle\RLexer::getToken — v

Описание

public Parle\RLexer::getToken(): Parle\Token

Получает текущий токен.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр Parle\Token.


Вставляет макрос регулярного выражения

  • « Parle\RLexer::getToken
  • Parle\RLexer::push »
  • PHP Manual
  • Parle\RLexer
  • Вставляет макрос регулярного выражения

Parle\RLexer::insertMacro

(PECL parle >= 0.5.1)

Parle\RLexer::insertMacro — Вставляет макрос регулярного выражения

Описание

public Parle\RLexer::insertMacro(string $name, string $regex): void

Вставляет макрос регулярного выражения, который впоследствии можно использовать в качестве ярлыка и включать в другие регулярные выражения.

Список параметров

name

Имя макроса

regex

Регулярное выражение.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Добавляет правило лексера

  • « Parle\RLexer::insertMacro
  • Parle\RLexer::pushState »
  • PHP Manual
  • Parle\RLexer
  • Добавляет правило лексера

Parle\RLexer::push

(PECL parle >= 0.5.1)

Parle\RLexer::push — Добавляет правило лексера

Описание

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

Добавляет шаблон для распознавания лексемы.

"Начальное состояние" и "состояние выхода" можно указать с помощью подходящей сигнатуры.

Список параметров

regex

Регулярное выражение, используемое для сопоставления токенов.

id

Идентификатор токена. Если экземпляр лексера предназначен для автономного использования, это может быть произвольное число. Если экземпляр лексера будет передан синтаксическому анализатору, это должен быть идентификатор, возвращаемый Parle\RParser::tokenid().

state

Название состояния. Если в качестве начального состояния используется '*', то правило применяется ко всем состояниям лексера.

newState

Новое название состояния после применения правила.

Если в качестве состояния выхода указано '.', то состояние лексера не изменяется, когда правило совпадает. Состояние выхода с '>' перед именем означает добавление. Используйте сигнатуру без идентификатора либо для продолжения, либо для начала сопоставления, когда требуется продолжение или рекурсия.

Если в качестве состояния выхода указано '<', это означает извлечение. В этом случае сигнатура, содержащая идентификатор, может использоваться для идентификации совпадения. Обратите внимание, что даже в том случае, если указан идентификатор, правило завершится первым, когда будут выполнены все предыдущие добавления.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Продвигает новое начальное состояние

  • « Parle\RLexer::push
  • Parle\RLexer::reset »
  • PHP Manual
  • Parle\RLexer
  • Продвигает новое начальное состояние

Parle\RLexer::pushState

(PECL parle >= 0.5.1)

Parle\RLexer::pushState — Продвигает новое начальное состояние

Описание

public Parle\RLexer::pushState(string $state): int

Этот тип лексера может иметь более одного состояния устройства. Это позволяет вам использовать разные токены в зависимости от контекста, что позволяет выполнять простой синтаксический анализ. После отправки состояния его можно использовать с подходящим вариантом сигнатуры Parle\RLexer::push().

Список параметров

state

Название состояния

Возвращаемые значения


Сбрасывает лексер

  • « Parle\RLexer::pushState
  • Parle\Parser »
  • PHP Manual
  • Parle\RLexer
  • Сбрасывает лексер

Parle\RLexer::reset

(PECL parle >= 0.7.1)

Parle\RLexer::reset — Сбрасывает лексер

Описание

public Parle\RLexer::reset(int $pos): void

Сброс лексинга, при желании предоставляя желаемое смещение.

Список параметров

pos

Позиция сбрасывания.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Класс Parle\Parser

(PECL parle >= 0.5.1)

Введение

Класс парсера. Правила можно определять на лету. После завершения требуется экземпляр Parle\Lexer для доставки потока токенов.

Обзор классов

class Parle\Parser {
/* Константы */
const int ACTION_ERROR = 0;
const int ACTION_SHIFT = 1;
const int ACTION_REDUCE = 2;
const int ACTION_GOTO = 3;
const int ACTION_ACCEPT = 4;
const int ERROR_SYNTAX = 0;
const int ERROR_NON_ASSOCIATIVE = 1;
const int ERROR_UNKNOWN_TOKEN = 2;
/* Свойства */
public int $action = 0;
public int $reduceId = 0;
/* Методы */
public advance(): void
public build(): void
public consume(string $data, Parle\Lexer $lexer): void
public dump(): void
public errorInfo(): 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 sigilCount(): int
public sigilName(int $idx): string
public token(string $tok): void
public tokenId(string $tok): int
public trace(): 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

Текущее действие синтаксического анализатора, которое соответствует одной из констант класса действия, только для чтения.

reduceId

Идентификатор правила грамматики, только что обработанный в действии сокращения. Значение соответствует токену или производственному идентификатору. Только для чтения.

Содержание

  • Parle\Parser::advance — Обрабатывает следующее правило парсера
  • Parle\Parser::build — Завершает грамматические правила
  • Parle\Parser::consume — Потребляет данные для обработки
  • Parle\Parser::dump — Выводит грамматику
  • Parle\Parser::errorInfo — Получает информацию об ошибке
  • Parle\Parser::left — Объявляет токен с левой ассоциативностью
  • Parle\Parser::nonassoc — Объявляет токен без ассоциативности
  • Parle\Parser::precedence — Объявляет правило приоритета
  • Parle\Parser::push — Добавляет грамматическое правило
  • Parle\Parser::reset — Сбрасывает состояние парсера
  • Parle\Parser::right — Объявляет токен с правой ассоциативностью
  • Parle\Parser::sigil — Извлекает часть совпадения по правилу
  • Parle\Parser::sigilCount — Получает количество элементов в совпадающем правиле
  • Parle\Parser::sigilName — Получает имя правила или токена
  • Parle\Parser::token — Объявляет токен
  • Parle\Parser::tokenId — Получает идентификатор токена
  • Parle\Parser::trace — Следит за работой парсера
  • Parle\Parser::validate — Проверяет входные данные


Обрабатывает следующее правило парсера

  • « Parle\Parser
  • Parle\Parser::build »
  • PHP Manual
  • Parle\Parser
  • Обрабатывает следующее правило парсера

Parle\Parser::advance

(PECL parle >= 0.5.1)

Parle\Parser::advance — Обрабатывает следующее правило парсера

Описание

public Parle\Parser::advance(): void

Обрабатывает следующее правило парсера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Завершает грамматические правила

  • « Parle\Parser::advance
  • Parle\Parser::consume »
  • PHP Manual
  • Parle\Parser
  • Завершает грамматические правила

Parle\Parser::build

(PECL parle >= 0.5.1)

Parle\Parser::build — Завершает грамматические правила

Описание

public Parle\Parser::build(): void

Все ранее добавленные токены и грамматические правила завершаются. Набор правил становится доступным только для чтения, и анализатор готов к запуску.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Потребляет данные для обработки

  • « Parle\Parser::build
  • Parle\Parser::dump »
  • PHP Manual
  • Parle\Parser
  • Потребляет данные для обработки

Parle\Parser::consume

(PECL parle >= 0.5.1)

Parle\Parser::consume — Потребляет данные для обработки

Описание

public Parle\Parser::consume(string $data, Parle\Lexer $lexer): void

Потребляет данные для обработки.

Список параметров

data

Данные, которые необходимо обработать.

lexer

Объект лексера, содержащий правила лексирования, подготовленные для конкретной грамматики.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Выводит грамматику

  • « Parle\Parser::consume
  • Parle\Parser::errorInfo »
  • PHP Manual
  • Parle\Parser
  • Выводит грамматику

Parle\Parser::dump

(PECL parle >= 0.5.1)

Parle\Parser::dump — Выводит грамматику

Описание

public Parle\Parser::dump(): void

Выводит текущую грамматику в стандартный вывод.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Получает информацию об ошибке

  • « Parle\Parser::dump
  • Parle\Parser::left »
  • PHP Manual
  • Parle\Parser
  • Получает информацию об ошибке

Parle\Parser::errorInfo

(PECL parle >= 0.5.1)

Parle\Parser::errorInfo — Получает информацию об ошибке

Описание

public Parle\Parser::errorInfo(): Parle\ErrorInfo

Получает информацию об ошибке в случае, если Parle\Parser::action() вернул действие в случае возникновения ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр Parle\ErrorInfo.


Объявляет токен с левой ассоциативностью

  • « Parle\Parser::errorInfo
  • Parle\Parser::nonassoc »
  • PHP Manual
  • Parle\Parser
  • Объявляет токен с левой ассоциативностью

Parle\Parser::left

(PECL parle >= 0.5.1)

Parle\Parser::left — Объявляет токен с левой ассоциативностью

Описание

public Parle\Parser::left(string $tok): void

Объявляет токен с левой ассоциативностью.

Список параметров

tok

Имя токена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Объявляет токен без ассоциативности

  • « Parle\Parser::left
  • Parle\Parser::precedence »
  • PHP Manual
  • Parle\Parser
  • Объявляет токен без ассоциативности

Parle\Parser::nonassoc

(PECL parle >= 0.5.1)

Parle\Parser::nonassoc — Объявляет токен без ассоциативности

Описание

public Parle\Parser::nonassoc(string $tok): void

Объявляет терминал, который не может появляться более одного раза в строке.

Список параметров

tok

Имя токена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Объявляет правило приоритета

  • « Parle\Parser::nonassoc
  • Parle\Parser::push »
  • PHP Manual
  • Parle\Parser
  • Объявляет правило приоритета

Parle\Parser::precedence

(PECL parle >= 0.5.1)

Parle\Parser::precedence — Объявляет правило приоритета

Описание

public Parle\Parser::precedence(string $tok): void

Объявляет правило приоритета для фиктивного терминального символа. Правило может быть позже использовано в специальных правилах грамматики.

Список параметров

tok

Имя токена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Добавляет грамматическое правило

  • « Parle\Parser::precedence
  • Parle\Parser::reset »
  • PHP Manual
  • Parle\Parser
  • Добавляет грамматическое правило

Parle\Parser::push

(PECL parle >= 0.5.1)

Parle\Parser::push — Добавляет грамматическое правило

Описание

public Parle\Parser::push(string $name, string $rule): int

Добавляет грамматическое правило. Возвращённый производственный идентификатор может быть использован позже в процессе синтаксического анализа, чтобы идентифицировать соответствие правилу.

Список параметров

name

Имя правила.

rule

Правило, которое будет добавлено. Синтаксис совместим с Bison.

Возвращаемые значения

Возвращает целое число (int), представляющее индекс правила.


Сбрасывает состояние парсера

  • « Parle\Parser::push
  • Parle\Parser::right »
  • PHP Manual
  • Parle\Parser
  • Сбрасывает состояние парсера

Parle\Parser::reset

(PECL parle >= 0.7.1)

Parle\Parser::reset — Сбрасывает состояние парсера

Описание

public Parle\Parser::reset(int $tokenId = ?): void

Сбрасывает состояние парсера с использованием заданного идентификатора токена.

Список параметров

tokenId

Идентификатор токена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Объявляет токен с правой ассоциативностью

  • « Parle\Parser::reset
  • Parle\Parser::sigil »
  • PHP Manual
  • Parle\Parser
  • Объявляет токен с правой ассоциативностью

Parle\Parser::right

(PECL parle >= 0.5.1)

Parle\Parser::right — Объявляет токен с правой ассоциативностью

Описание

public Parle\Parser::right(string $tok): void

Объявляет токен с правой ассоциативностью.

Список параметров

tok

Имя токена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Извлекает часть совпадения по правилу

  • « Parle\Parser::right
  • Parle\Parser::sigilCount »
  • PHP Manual
  • Parle\Parser
  • Извлекает часть совпадения по правилу

Parle\Parser::sigil

(PECL parle >= 0.5.1)

Parle\Parser::sigil — Извлекает часть совпадения по правилу

Описание

public Parle\Parser::sigil(int $idx): string

Возвращает часть совпадения по правилу. Метод эквивалентен функциональности псевдопеременных в Bison.

Список параметров

idx

Индекс совпадения, отсчитываемый от нуля.

Возвращаемые значения

Возвращает строку (string) с совпадающей частью.


Получает количество элементов в совпадающем правиле

  • « Parle\Parser::sigil
  • Parle\Parser::sigilName »
  • PHP Manual
  • Parle\Parser
  • Получает количество элементов в совпадающем правиле

Parle\Parser::sigilCount

(PECL parle >= 0.8.4)

Parle\Parser::sigilCount — Получает количество элементов в совпадающем правиле

Описание

public Parle\Parser::sigilCount(): int

Получает количество элементов в совпадающем правиле.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число (int).


Получает имя правила или токена

  • « Parle\Parser::sigilCount
  • Parle\Parser::token »
  • PHP Manual
  • Parle\Parser
  • Получает имя правила или токена

Parle\Parser::sigilName

(PECL parle >= 0.8.4)

Parle\Parser::sigilName — Получает имя правила или токена

Описание

public Parle\Parser::sigilName(int $idx): string

Получение частичного имени правила или имени токена, соответствующего индексу.

Список параметров

idx

Индекс соответствия, отсчёт начинается с нуля

Возвращаемые значения

Возвращает строку (string) с найденной частью.


Объявляет токен

  • « Parle\Parser::sigilName
  • Parle\Parser::tokenId »
  • PHP Manual
  • Parle\Parser
  • Объявляет токен

Parle\Parser::token

(PECL parle >= 0.5.1)

Parle\Parser::token — Объявляет токен

Описание

public Parle\Parser::token(string $tok): void

Объявляет терминал, который будет использоваться в грамматике.

Список параметров

tok

Имя токена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Получает идентификатор токена

  • « Parle\Parser::token
  • Parle\Parser::trace »
  • PHP Manual
  • Parle\Parser
  • Получает идентификатор токена

Parle\Parser::tokenId

(PECL parle >= 0.5.1)

Parle\Parser::tokenId — Получает идентификатор токена

Описание

public Parle\Parser::tokenId(string $tok): int

Получает идентификатор указанного токена.

Список параметров

tok

Имя токена, используемое в Parle\Parser::token().

Возвращаемые значения

Возвращает целое число (int) представляющее идентификатор токена.


Следит за работой парсера

  • « Parle\Parser::tokenId
  • Parle\Parser::validate »
  • PHP Manual
  • Parle\Parser
  • Следит за работой парсера

Parle\Parser::trace

(PECL parle >= 0.5.1)

Parle\Parser::trace — Следит за работой парсера

Описание

public Parle\Parser::trace(): string

Получает описание текущей работы парсера. Может быть полезно для изучения парсера и оптимизации грамматики.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string) с информацией о трассировке.


Проверяет входные данные

  • « Parle\Parser::trace
  • Parle\RParser »
  • PHP Manual
  • Parle\Parser
  • Проверяет входные данные

Parle\Parser::validate

(PECL parle >= 0.5.1)

Parle\Parser::validate — Проверяет входные данные

Описание

public Parle\Parser::validate(string $data, Parle\Lexer $lexer): bool

Проверяет входную строку. Строка анализируется внутри, поэтому метод полезен для быстрой проверки ввода.

Список параметров

data

Строка для проверки.

lexer

Объект лексера, содержащий правила лексирования, подготовленные для конкретной грамматики.

Возвращаемые значения

Возвращает логическое значение(bool) в зависимости от того, соответствуют ли входные данные заданным правилам или нет.


Класс Parle\RParser

(PECL parle >= 0.7.0)

Введение

Класс парсера. Правила могут быть определены на лету. После завершения необходимо создать экземпляр Parle\RLexer для доставки потока токенов.

Обзор классов

class Parle\RParser {
/* Константы */
const int ACTION_ERROR = 0;
const int ACTION_SHIFT = 1;
const int ACTION_REDUCE = 2;
const int ACTION_GOTO = 3;
const int ACTION_ACCEPT = 4;
const int ERROR_SYNTAX = 0;
const int ERROR_NON_ASSOCIATIVE = 1;
const int ERROR_UNKNOWN_TOKEN = 2;
/* Свойства */
public int $action = 0;
public int $reduceId = 0;
/* Методы */
public advance(): void
public build(): void
public consume(string $data, Parle\RLexer $rlexer): void
public dump(): void
public errorInfo(): 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 sigilCount(): int
public sigilName(int $idx): string
public token(string $tok): void
public tokenId(string $tok): int
public trace(): 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

Текущее действие парсера, которое соответствует одной из констант класса действия, только для чтения.

reduceId

Идентификатор правила грамматики, только что обработанный в действии сокращения. Значение соответствует токену или производственному идентификатору. Только для чтения.

Содержание

  • Parle\RParser::advance — Обработка следующего правила парсера
  • Parle\RParser::build — Завершает грамматические правила
  • Parle\RParser::consume — Использовать данные для обработки
  • Parle\RParser::dump — Выводит грамматику
  • Parle\RParser::errorInfo — Получает информацию об ошибке
  • Parle\RParser::left — Объявляет токен с левой ассоциативностью
  • Parle\RParser::nonassoc — Объявляет токен без ассоциативности
  • Parle\RParser::precedence — Объявляет правило приоритета
  • Parle\RParser::push — Добавляет грамматическое правило
  • Parle\RParser::reset — Сбрасывает состояние парсера
  • Parle\RParser::right — Объявляет токен с правой ассоциативностью
  • Parle\RParser::sigil — Извлекает совпадающую часть по правилу
  • Parle\RParser::sigilCount — Получает количество элементов в совпадающем правиле
  • Parle\RParser::sigilName — Получает имя правила или токена
  • Parle\RParser::token — Объявляет токен
  • Parle\RParser::tokenId — Получает идентификатор токена
  • Parle\RParser::trace — Следит за работой парсера
  • Parle\RParser::validate — Проверяет входные данные


Обработка следующего правила парсера

  • « Parle\RParser
  • Parle\RParser::build »
  • PHP Manual
  • Parle\RParser
  • Обработка следующего правила парсера

Parle\RParser::advance

(PECL parle >= 0.7.0)

Parle\RParser::advance — Обработка следующего правила парсера

Описание

public Parle\RParser::advance(): void

Обработка следующего правила парсера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Завершает грамматические правила

  • « Parle\RParser::advance
  • Parle\RParser::consume »
  • PHP Manual
  • Parle\RParser
  • Завершает грамматические правила

Parle\RParser::build

(PECL parle >= 0.7.0)

Parle\RParser::build — Завершает грамматические правила

Описание

public Parle\RParser::build(): void

Все ранее добавленные токены и правила грамматики будут доработаны. Набор правил становится доступным только для чтения, и анализатор готов к запуску.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Использовать данные для обработки

  • « Parle\RParser::build
  • Parle\RParser::dump »
  • PHP Manual
  • Parle\RParser
  • Использовать данные для обработки

Parle\RParser::consume

(PECL parle >= 0.7.0)

Parle\RParser::consume — Использовать данные для обработки

Описание

public Parle\RParser::consume(string $data, Parle\RLexer $rlexer): void

Использовать данные для обработки.

Список параметров

data

Данные для обработки.

lexer

Объект лексера, содержащий правила лексинга, подготовленные для конкретной грамматики.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Выводит грамматику

  • « Parle\RParser::consume
  • Parle\RParser::errorInfo »
  • PHP Manual
  • Parle\RParser
  • Выводит грамматику

Parle\RParser::dump

(PECL parle >= 0.7.0)

Parle\RParser::dump — Выводит грамматику

Описание

public Parle\RParser::dump(): void

Выводит текущую грамматику в стандартный вывод.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Получает информацию об ошибке

  • « Parle\RParser::dump
  • Parle\RParser::left »
  • PHP Manual
  • Parle\RParser
  • Получает информацию об ошибке

Parle\RParser::errorInfo

(PECL parle >= 0.7.0)

Parle\RParser::errorInfo — Получает информацию об ошибке

Описание

public Parle\RParser::errorInfo(): Parle\ErrorInfo

Получает информацию об ошибке в случае, если Parle\RParser::action() вернул действие в случае возникновения ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр Parle\ErrorInfo.


Объявляет токен с левой ассоциативностью

  • « Parle\RParser::errorInfo
  • Parle\RParser::nonassoc »
  • PHP Manual
  • Parle\RParser
  • Объявляет токен с левой ассоциативностью

Parle\RParser::left

(PECL parle >= 0.7.0)

Parle\RParser::left — Объявляет токен с левой ассоциативностью

Описание

public Parle\RParser::left(string $tok): void

Объявляет терминал с левой ассоциативностью.

Список параметров

tok

Имя токена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Объявляет токен без ассоциативности

  • « Parle\RParser::left
  • Parle\RParser::precedence »
  • PHP Manual
  • Parle\RParser
  • Объявляет токен без ассоциативности

Parle\RParser::nonassoc

(PECL parle >= 0.7.0)

Parle\RParser::nonassoc — Объявляет токен без ассоциативности

Описание

public Parle\RParser::nonassoc(string $tok): void

Объявляет терминал, который не может появляться более одного раза в строке.

Список параметров

tok

Имя токена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Объявляет правило приоритета

  • « Parle\RParser::nonassoc
  • Parle\RParser::push »
  • PHP Manual
  • Parle\RParser
  • Объявляет правило приоритета

Parle\RParser::precedence

(PECL parle >= 0.7.0)

Parle\RParser::precedence — Объявляет правило приоритета

Описание

public Parle\RParser::precedence(string $tok): void

Объявляет правило приоритета для фиктивного терминального символа. Это правило может быть позже использовано в конкретных правилах грамматики.

Список параметров

tok

Имя токена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Добавляет грамматическое правило

  • « Parle\RParser::precedence
  • Parle\RParser::reset »
  • PHP Manual
  • Parle\RParser
  • Добавляет грамматическое правило

Parle\RParser::push

(PECL parle >= 0.7.0)

Parle\RParser::push — Добавляет грамматическое правило

Описание

public Parle\RParser::push(string $name, string $rule): int

Добавляет грамматическое правило. Возвращённый идентификатор может быть использован позже в процессе синтаксического анализа, чтобы идентифицировать соответствие правилу.

Список параметров

name

Имя правила.

rule

Правило, которое будет добавлено. Синтаксис совместим с Bison.

Возвращаемые значения

Возвращает целое число (int), представляющее индекс правила.


Сбрасывает состояние парсера

  • « Parle\RParser::push
  • Parle\RParser::right »
  • PHP Manual
  • Parle\RParser
  • Сбрасывает состояние парсера

Parle\RParser::reset

(PECL parle >= 0.7.1)

Parle\RParser::reset — Сбрасывает состояние парсера

Описание

public Parle\RParser::reset(int $tokenId = ?): void

Сбрасывает состояние парсера с использованием заданного идентификатора токена.

Список параметров

tokenId

Идентификатор токена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Объявляет токен с правой ассоциативностью

  • « Parle\RParser::reset
  • Parle\RParser::sigil »
  • PHP Manual
  • Parle\RParser
  • Объявляет токен с правой ассоциативностью

Parle\RParser::right

(PECL parle >= 0.7.0)

Parle\RParser::right — Объявляет токен с правой ассоциативностью

Описание

public Parle\RParser::right(string $tok): void

Объявляет токен с правой ассоциативностью.

Список параметров

tok

Имя токена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Извлекает совпадающую часть по правилу

  • « Parle\RParser::right
  • Parle\RParser::sigilCount »
  • PHP Manual
  • Parle\RParser
  • Извлекает совпадающую часть по правилу

Parle\RParser::sigil

(PECL parle >= 0.7.0)

Parle\RParser::sigil — Извлекает совпадающую часть по правилу

Описание

public Parle\RParser::sigil(int $idx = ?): string

Возвращает часть совпадения по правилу. Метод эквивалентен функциональности псевдопеременных в Bison.

Список параметров

idx

Индекс совпадения, отсчитываемый от нуля.

Возвращаемые значения

Возвращает строку (string) с совпадающей частью.


Получает количество элементов в совпадающем правиле

  • « Parle\RParser::sigil
  • Parle\RParser::sigilName »
  • PHP Manual
  • Parle\RParser
  • Получает количество элементов в совпадающем правиле

Parle\RParser::sigilCount

(PECL parle >= 0.8.4)

Parle\RParser::sigilCount — Получает количество элементов в совпадающем правиле

Описание

public Parle\RParser::sigilCount(): int

Получает количество элементов в совпадающем правиле.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целое число (int).


Получает имя правила или токена

  • « Parle\RParser::sigilCount
  • Parle\RParser::token »
  • PHP Manual
  • Parle\RParser
  • Получает имя правила или токена

Parle\RParser::sigilName

(PECL parle >= 0.8.4)

Parle\RParser::sigilName — Получает имя правила или токена

Описание

public Parle\RParser::sigilName(int $idx): string

Получение частичного имени правила или имени токена, соответствующего индексу.

Список параметров

idx

Индекс соответствия, отсчёт начинается с нуля

Возвращаемые значения

Возвращает строку (string) с найденной частью.


Объявляет токен

  • « Parle\RParser::sigilName
  • Parle\RParser::tokenId »
  • PHP Manual
  • Parle\RParser
  • Объявляет токен

Parle\RParser::token

(PECL parle >= 0.7.0)

Parle\RParser::token — Объявляет токен

Описание

public Parle\RParser::token(string $tok): void

Объявляет терминал, который будет использоваться в грамматике.

Список параметров

tok

Имя токена.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Получает идентификатор токена

  • « Parle\RParser::token
  • Parle\RParser::trace »
  • PHP Manual
  • Parle\RParser
  • Получает идентификатор токена

Parle\RParser::tokenId

(PECL parle >= 0.7.0)

Parle\RParser::tokenId — Получает идентификатор токена

Описание

public Parle\RParser::tokenId(string $tok): int

Получает идентификатор заданного токена.

Список параметров

tok

Имя токена, используемое в Parle\RParser::token().

Возвращаемые значения

Возвращает целое число (int), представляющее идентификатор токена.


Следит за работой парсера

  • « Parle\RParser::tokenId
  • Parle\RParser::validate »
  • PHP Manual
  • Parle\RParser
  • Следит за работой парсера

Parle\RParser::trace

(PECL parle >= 0.7.0)

Parle\RParser::trace — Следит за работой парсера

Описание

public Parle\RParser::trace(): string

Получает описание текущей работы парсера. Может быть полезно для изучения синтаксического анализатора и оптимизации грамматики.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string) с информацией о трассировке.


Проверяет входные данные

  • « Parle\RParser::trace
  • Parle\Stack »
  • PHP Manual
  • Parle\RParser
  • Проверяет входные данные

Parle\RParser::validate

(PECL parle >= 0.7.0)

Parle\RParser::validate — Проверяет входные данные

Описание

public Parle\RParser::validate(string $data, Parle\RLexer $lexer): bool

Проверяет входную строку. Строка анализируется внутренним механизмом, поэтому метод полезен для быстрой проверки входных данных.

Список параметров

data

Строка для проверки.

lexer

Объект лексера, содержащий правила лексирования, подготовленные для конкретной грамматики.

Возвращаемые значения

Возвращает логическое значение (bool) определяющее, соответствуют ли входные данные заданным правилам или нет.


Класс Parle\Stack

(PECL parle >= 0.7.0)

Введение

Parle\Stack — это стек LIFO. Элементы добавляются и удаляются только с одного конца.

Обзор классов

class Parle\Stack {
/* Свойства */
public bool $empty = true;
public int $size = 0;
public mixed $top;
/* Методы */
public pop(): void
public push(mixed $item): void
}

Свойства

empty

Является ли стек пустым, только для чтения.

size

Размер стека, только для чтения.

top

Элемент в начале стека.

Содержание

  • Parle\Stack::pop — Извлекает предмет из стека
  • Parle\Stack::push — Помещает элемент в стек


Извлекает предмет из стека

  • « Parle\Stack
  • Parle\Stack::push »
  • PHP Manual
  • Parle\Stack
  • Извлекает предмет из стека

Parle\Stack::pop

(PECL parle >= 0.5.1)

Parle\Stack::pop — Извлекает предмет из стека

Описание

public Parle\Stack::pop(): void

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Помещает элемент в стек

  • « Parle\Stack::pop
  • Parle\Token »
  • PHP Manual
  • Parle\Stack
  • Помещает элемент в стек

Parle\Stack::push

(PECL parle >= 0.5.1)

Parle\Stack::push — Помещает элемент в стек

Описание

public Parle\Stack::push(mixed $item): void

Список параметров

item

Переменная, которую необходимо поместить в стек

Возвращаемые значения

Функция не возвращает значения после выполнения.


Класс Parle\Token

(PECL parle >= 0.5.2)

Введение

Класс представляет токен. Лексер возвращает экземпляры этого класса.

Обзор классов

class Parle\Token {
/* Constants */
const int EOI = 0;
const int UNKNOWN = -1;
const int SKIP = -2;
/* Свойства */
public int $id;
public string $value;
/* Методы */
}

Свойства

id

Идентификатор токена.

value

Значение токена.

Предопределённые константы

Parle\Token::EOI

Конец входного идентификатора токена.

Parle\Token::UNKNOWN

Неизвестный идентификатор токена.

Parle\Token::SKIP

Пропустить идентификатор токена.


Класс Parle\ErrorInfo

(PECL parle >= 0.5.2)

Введение

Класс представляет подробную информацию об ошибке, предоставленной Parle\Parser::errorInfo()

Обзор классов

class Parle\ErrorInfo {
/* Свойства */
public int $id;
public int $position;
public mixed $token;
/* Методы */
}

Свойства

id

Идентификатор ошибки.

position

Позиция, где произошла ошибка.

token

Если применимо - Parle\Token, связанный с ошибкой, в противном случае null.


Класс Parle\LexerException

(PECL parle >= 0.5.1)

Введение

Обзор классов

class Parle\LexerException extends Exception implements Throwable {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Класс Parle\ParserException

(PECL parle >= 0.5.1)

Введение

Обзор классов

class Parle\ParserException extends Exception implements Throwable {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Функции для работы с регулярными выражениями (Perl-совместимые)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
  • Регулярные выражения PCRE
    • Описание синтаксиса Perl-совместимых регулярных выражений — Синтаксис регулярных выражений
    • Описывает возможные модификаторы шаблонов Perl-совместимых регулярных выражений (PCRE) — Модификаторы шаблонов
    • Отличия от Perl
  • Функции PCRE
    • preg_filter — Производит поиск и замену по регулярному выражению
    • preg_grep — Возвращает массив вхождений, которые соответствуют шаблону
    • preg_last_error_msg — Возвращает сообщение об ошибке последней запущенной функции PCRE
    • preg_last_error — Возвращает код ошибки выполнения последнего регулярного выражения PCRE
    • preg_match_all — Выполняет глобальный поиск шаблона в строке
    • preg_match — Выполняет проверку на соответствие регулярному выражению
    • preg_quote — Экранирует символы в регулярных выражениях
    • preg_replace_callback_array — Выполняет поиск и замену по регулярному выражению с использованием функций обратного вызова
    • preg_replace_callback — Выполняет поиск по регулярному выражению и замену с использованием callback-функции
    • preg_replace — Выполняет поиск и замену по регулярному выражению
    • preg_split — Разбивает строку по регулярному выражению


Введение

Синтаксис шаблонов, используемых в функциях этого раздела, во многом похож на синтаксис, используемый в Perl. Выражение должно быть заключено в разделители, например, прямые слеши '/'. Разделителем могут выступать произвольные символы, кроме буквенно-цифровых, обратного слеша '\' и нулевого байта. Если символ разделителя встречается в шаблоне, его необходимо экранировать. В качестве разделителя доступны комбинации, используемые в Perl: (), {}, [] и <>. Подробней об этом рассказано в разделе Синтаксис регулярных выражений.

После закрывающего разделителя можно указывать различные модификаторы, влияющие на работу регулярных выражений. Детальная информация доступна в разделе Модификаторы шаблонов.

Замечание:

Этот модуль хранит глобальный (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. Рекомендуется использовать PCRE 8.10 и выше; с PHP 7.3.0 требуется PCRE2.

По умолчанию поддерживается JIT-компиляция PCRE. Её можно отключить с помощью опции --without-pcre-jit начиная с PHP 7.0.12.

Версия PHP для Windows имеет встроенную поддержку данного модуля. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных модулей.

PCRE - активный проект, и по мере того, как он меняется, меняется и функциональность PHP, которая полагается на него. Возможно, некоторые части документации PHP устарели в том плане, что они не покрывают новейшие возможности, которые предоставляет PCRE. Список изменений можно найти в » списке изменений библиотеки PCRE, а также в следующей прилагаемой здесь истории PCRE:

История обновлений поставляемой библиотеки PCRE
PHP Версия | Обновлённая PCRE Версия | Замечания
8.2.0 | 10.40 |
8.1.0 | 10.39 |
7.4.12, 8.0.0 | 10.35 |
7.4.6 | 10.34 |
7.4.0 | 10.33 |
7.3.0 | 10.32 |
7.2.0 | 8.41 |
7.0.3 | 8.38 | Смотрите 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 | 8.37 | Смотрите CVE-2015-2325, CVE-2015-2326


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации PCRE
Имя | По умолчанию | Место изменения | Список изменений
pcre.backtrack_limit | "1000000" | PHP_INI_ALL |
pcre.recursion_limit | "100000" | PHP_INI_ALL |
pcre.jit | "1" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

pcre.backtrack_limit int

Лимит обратных ссылок PCRE. Для PHP < 5.3.7 значение по умолчанию 100000.

pcre.recursion_limit int

Лимит на рекурсию. Не забывайте о том, что если вы установите достаточно высокое значение, то PCRE может превысить размер стека (установленный операционной системой) и в конце концов вызовет падение PHP.

pcre.jit bool

Будет ли использоваться 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


Синтаксис регулярных выражений

Содержание

  • Вступление
  • Разделители
  • Метасимволы
  • Экранирующие последовательности
  • Свойства 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
любой горизонтальный пробельный символ
\H
любой символ, не являющийся горизонтальным пробельным символом
\s
любой пробельный символ
\S
любой непробельный символ
\v
любой вертикальный пробельный символ
\V
любой символ, не являющийся вертикальным пробельным символом
\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$ совпадёт с один или более символов, составляющих "слово",за которыми следуют символы .$. и якорь в конце строки. Обратите внимание, что это не меняет поведения разделителей; например, шаблон #\Q#\E#$ некорректен, потому что второй # отмечает конец шаблона, а \E# интерпретируется как недопустимые модификаторы.

Последовательность \K может быть использована для сброса начала совпадения. Например, шаблон 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. Начиная с 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. Также существуют два альтернативных синтаксиса: (?<name>pattern) и (?'name'pattern).

Иногда бывает необходимо иметь несколько совпадений, исключающих друг друга. Обычно, каждое такое совпадение получает свой собственный номер, даже если шаблон позволяет совпасть только одному из них. Синтаксис (?| позволяет обойти это поведение и убрать дублирующиеся номера. Рассмотрим следующее регулярное выражение, сопоставленное со строкой Sunday:

(?:(Sat)ur|(Sun))day

Здесь Sun сохраняется в ссылке 2, тогда как ссылка 1 пуста. В результате сопоставления Saturday в обратной ссылке 1 появляется Sat, в то время как обратная ссылка 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. "Упреждающая обратная ссылка" может иметь смысл, если используется повторение и более поздняя подмаска участвует в ранней итерации. Смотрите раздел escape-последовательности для получения дополнительных сведений об обработке цифр, следующих за обратным слешем.

Обратная ссылка сопоставляется с частью строки, захваченной соответствующей подмаской, но не с самой подмаской. Таким образом шаблон (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"... При каждой итерации подмаски обратная ссылка соответствует той части строки, которая была захвачена при предыдущей итерации. Чтобы такая конструкция работала, шаблон должен быть построен так, чтобы при первой итерации сопоставление с обратной ссылкой не производилось. Этого можно достичь, используя альтернативы (как в предыдущем примере), либо квантификаторы с минимумом, равным нулю.

Управляющая последовательность \g может быть использована для абсолютных и относительных ссылок на подмаски. После этой последовательности должно быть указано беззнаковое или отрицательное число, при желании заключённое в фигурные скобки. Последовательности \1, \g1 и \g{1} эквивалентны друг другу. Использование этого шаблона с беззнаковым числом поможет избежать двусмысленности, присущей числам после обратного слеша. Это также помогает отличить обратные ссылки от символов в восьмеричном формате, а также упрощает запись числового литерала сразу после обратной ссылки, например, \g{2}1.

Использование отрицательных чисел с \g полезно при использовании относительных ссылок. Например, (foo)(bar)\g{-1} соответствует "foobarbar", а (foo)(bar)\g{-2} соответствует "foobarfoo". Это также может быть полезно в длинных шаблонах, в качестве альтернативы отслеживания числа подмасок, на которые можно ссылаться в последующей части шаблона.

Указать обратную ссылку на именованную подмаску можно с помощью (?P=name), \k<name>, \k'name', \k{name}, \g{name}, \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, неэкранированный символ '#' вне символьного класса также означает начало блока комментария, который длится до конца текущей строки.

Пример #1 Использование комментариев в шаблоне PCRE

<?php

$subject = 'test';

/* (?# можно использовать для добавления комментариев без включения PCRE_EXTENDED */
$match = preg_match('/te(?# this is a comment)st/', $subject);
var_dump($match);

/* Пробелы и # рассматриваются как часть шаблона, если не включён PCRE_EXTENDED. */
$match = preg_match('/te #~~~~
st/', $subject);
var_dump($match);

/* Когда PCRE_EXTENDED включён, все пробелы и всё, что следует за неэкранированным # в той же строке, игнорируется. */
$match = preg_match('/te #~~~~
st/x', $subject);
var_dump($match);

Результат выполнения данного примера:

int(1)
int(0)
int(1)


Рекурсивные шаблоны

Рассмотрим задачу поиска соответствия со строкой, находящихся внутри неограниченного количества круглых скобок. Без использования рекурсии лучшее, что можно сделать - написать шаблон, который будет решать задачу для некоторой ограниченной глубины вложенности, так как обработать неограниченную глубину не предоставляется возможным. В 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, и позволяет размещать комментарий в сложных шаблонах. Замечание: это касается только символьных данных. Пробельные символы не фигурируют в служебных символьных последовательностях, к примеру, в последовательности '(?(', открывающей условную подмаску.
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 последовательности рассматриваются недопустимыми.
n (PCRE_NO_AUTO_CAPTURE)
Модификатор делает простые группы (xyz) не захватываемыми. Перехватываются только именованные группы подобные (?<name>xyz). Это влияет только на то, какие группы перехватываются, по-прежнему можно использовать нумерованные ссылки на подшаблоны и массив совпадений по-прежнему будет содержать нумерованные результаты.


Отличия от 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, жадность квантификаторов повторения инвертирована. То есть по умолчанию они не жадные, пока за ними не будет знак вопроса.


Функции PCRE

Содержание

  • preg_filter — Производит поиск и замену по регулярному выражению
  • preg_grep — Возвращает массив вхождений, которые соответствуют шаблону
  • preg_last_error_msg — Возвращает сообщение об ошибке последней запущенной функции PCRE
  • 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, PHP 8)

preg_filter — Производит поиск и замену по регулярному выражению

Описание

preg_filter(
string|array $pattern,
string|array $replacement,
string|array $subject,
int $limit = -1,
int &$count = null
): string|array|null

Функция preg_filter() идентична функции preg_replace() за исключением того, что возвращает только те значения (возможно, преобразованные), в которых найдено совпадение. Подробнее о работе функции читайте в документации к preg_replace().

Список параметров

Параметры описаны в документации для функции preg_replace().

Возвращаемые значения

Возвращает массив (array), если аргумент subject имеет тип array или строка (string) в противном случае.

Если совпадений не найдено или возникла ошибка, возвращается пустой массив (array), когда subject имеет тип array или null в противном случае.

Ошибки

Если переданный шаблон регулярного выражения не компилируется в допустимое регулярное выражение, выдаётся ошибка уровня E_WARNING.

Примеры

Пример #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_msg »
  • PHP Manual
  • Функции PCRE
  • Возвращает массив вхождений, которые соответствуют шаблону

preg_grep

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_grep — Возвращает массив вхождений, которые соответствуют шаблону

Описание

preg_grep(string $pattern, array $array, int $flags = 0): array|false

Возвращает массив, состоящий из элементов входящего массива array, которые соответствуют заданному шаблону pattern.

Список параметров

pattern

Искомый шаблон в виде строки.

array

Входящий массив.

flags

В случае, если установлен в PREG_GREP_INVERT, функция preg_grep() возвращает те элементы массива, которые не соответствуют заданному шаблону pattern.

Возвращаемые значения

Возвращает массив, индексированный ключами из массива array или false в случае возникновения ошибки.

Ошибки

Если переданный шаблон регулярного выражения не компилируется в допустимое регулярное выражение, выдаётся ошибка уровня E_WARNING.

Примеры

Пример #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_last_error »
  • PHP Manual
  • Функции PCRE
  • Возвращает сообщение об ошибке последней запущенной функции PCRE

preg_last_error_msg

(PHP 8)

preg_last_error_msg — Возвращает сообщение об ошибке последней запущенной функции PCRE

Описание

preg_last_error_msg(): string

Возвращает сообщение об ошибке последней запущенной функции PCRE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращает сообщение об ошибке. Если ошибки не было, возвращает строку "No error".

Примеры

Пример #1 Пример использования preg_last_error_msg()

<?php

preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');

if (preg_last_error() !== PREG_NO_ERROR) {
echo preg_last_error_msg();
}

?>

Результат выполнения данного примера:

Backtrack limit exhausted

Смотрите также

  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Возвращает код ошибки выполнения последнего регулярного выражения PCRE

  • « preg_last_error_msg
  • preg_match_all »
  • PHP Manual
  • Функции PCRE
  • Возвращает код ошибки выполнения последнего регулярного выражения PCRE

preg_last_error

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

preg_last_error — Возвращает код ошибки выполнения последнего регулярного выражения PCRE

Описание

preg_last_error(): int

Возвращает код ошибки выполнения последнего регулярного выражения PCRE.

Пример #1 Пример использования preg_last_error()

<?php

preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');

if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Был исчерпан лимит обратных ссылок!';
}

?>

Результат выполнения данного примера:

Был исчерпан лимит обратных ссылок!

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает одну из следующих констант (описанных на отдельной странице.):

  • 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
  • PREG_JIT_STACKLIMIT_ERROR

Смотрите также

  • preg_last_error_msg() - Возвращает сообщение об ошибке последней запущенной функции PCRE


Выполняет глобальный поиск шаблона в строке

  • « preg_last_error
  • preg_match »
  • PHP Manual
  • Функции PCRE
  • Выполняет глобальный поиск шаблона в строке

preg_match_all

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_match_all — Выполняет глобальный поиск шаблона в строке

Описание

preg_match_all(
string $pattern,
string $subject,
array &$matches = null,
int $flags = 0,
int $offset = 0
): int|false

Ищет в строке 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 в случае возникновения ошибки.

Ошибки

Если переданный шаблон регулярного выражения не компилируется в допустимое регулярное выражение, выдаётся ошибка уровня E_WARNING.

Список изменений

Версия | Описание
7.2.0 | Теперь для параметра $flags поддерживается константа PREG_UNMATCHED_AS_NULL.

Примеры

Пример #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);

/* Альтернативный вариант */
// 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, PHP 8)

preg_match — Выполняет проверку на соответствие регулярному выражению

Описание

preg_match(
string $pattern,
string $subject,
array &$matches = null,
int $flags = 0,
int $offset = 0
): int|false

Ищет в заданном тексте 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. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Ошибки

Если переданный шаблон регулярного выражения не компилируется в допустимое регулярное выражение, выдаётся ошибка уровня E_WARNING.

Список изменений

Версия | Описание
7.2.0 | Теперь константа PREG_UNMATCHED_AS_NULL поддерживается для параметра $flags.

Примеры

Пример #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);

/* Альтернативный вариант */
// 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_last_error_msg() - Возвращает сообщение об ошибке последней запущенной функции PCRE


Экранирует символы в регулярных выражениях

  • « preg_match
  • preg_replace_callback_array »
  • PHP Manual
  • Функции PCRE
  • Экранирует символы в регулярных выражениях

preg_quote

(PHP 4, PHP 5, PHP 7, PHP 8)

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 | Символ # теперь экранируется
7.2.0 | delimiter теперь допускает значение null.

Примеры

Пример #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, PHP 8)

preg_replace_callback_array — Выполняет поиск и замену по регулярному выражению с использованием функций обратного вызова

Описание

preg_replace_callback_array(
array $pattern,
string|array $subject,
int $limit = -1,
int &$count = null,
int $flags = 0
): string|array|null

Поведение этой функции похоже на preg_replace_callback(), за исключением того, что для каждого шаблона используется своя функция обратного вызова.

Список параметров

pattern

Ассоциативный массив, связывающий шаблоны регулярного выражения (ключи) и callable (значения).

subject

Строка, в которой будет производиться поиск и замена.

limit

Максимальное количество замен для каждого шаблона в строке subject. По умолчанию -1 (без ограничений).

count

Если задан, то в указанную переменную будет записано количество произведённых замен.

flags

flags может быть комбинацией флагов PREG_OFFSET_CAPTURE и PREG_UNMATCHED_AS_NULL, которые влияют на формат массива совпадений. Смотрите описание в preg_match() для более подробной информации.

Возвращаемые значения

preg_replace_callback_array() возвращает массив, если параметр subject является массивом и строку, если строкой. В случае возникновения ошибки возвращается null

Если совпадения найдены, будет возвращена новая строка, а если нет, то исходная subject.

Ошибки

Если переданный шаблон регулярного выражения не компилируется в допустимое регулярное выражение, выдаётся ошибка уровня E_WARNING.

Список изменений

Версия | Описание
7.4.0 | Добавлен параметр flags.

Примеры

Пример #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-функции

  • « preg_replace_callback_array
  • preg_replace »
  • PHP Manual
  • Функции PCRE
  • Выполняет поиск по регулярному выражению и замену с использованием callback-функции

preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

preg_replace_callback — Выполняет поиск по регулярному выражению и замену с использованием callback-функции

Описание

preg_replace_callback(
string|array $pattern,
callable $callback,
string|array $subject,
int $limit = -1,
int &$count = null,
int $flags = 0
): string|array|null

Поведение этой функции во многом напоминает 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

Если указана, то эта переменная будет заполнена количеством произведённых замен.

flags

flags может быть комбинацией флагов PREG_OFFSET_CAPTURE и PREG_UNMATCHED_AS_NULL, которые влияют на формат массива совпадений. Смотрите описание в preg_match() для более подробной информации.

Возвращаемые значения

preg_replace_callback() возвращает массив, если параметр subject является массивом, иначе возвращается строка. В случае ошибок возвращается null

Если найдены совпадения, будет возвращена результирующая строка, иначе subject вернётся неизмененным.

Ошибки

Если переданный шаблон регулярного выражения не компилируется в допустимое регулярное выражение, выдаётся ошибка уровня E_WARNING.

Список изменений

Версия | Описание
7.4.0 | Добавлен параметр flags.

Примеры

Пример #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
  • Анонимные функции


Выполняет поиск и замену по регулярному выражению

  • « preg_replace_callback
  • preg_split »
  • PHP Manual
  • Функции PCRE
  • Выполняет поиск и замену по регулярному выражению

preg_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_replace — Выполняет поиск и замену по регулярному выражению

Описание

preg_replace(
string|array $pattern,
string|array $replacement,
string|array $subject,
int $limit = -1,
int &$count = null
): string|array|null

Выполняет поиск совпадений в строке subject с шаблоном pattern и заменяет их на replacement.

Для соответствия точной строке, а не шаблону, вместо этой функции используйте функцию str_replace() или str_ireplace().

Список параметров

pattern

Искомый шаблон. Может быть как строкой, так и массивом строк.

Также доступны некоторые модификаторы PCRE.

replacement

Строка или массив строк для замены. Если этот параметр является строкой, а pattern является массивом, все шаблоны будут заменены этой строкой. Если и pattern и replacement являются массивами, каждый элемент pattern будет заменён соответствующим элементом из replacement. Если массив replacement содержит меньше элементов, чем массив pattern, то все лишние шаблоны из pattern будут заменены пустыми строками.

replacement может содержать ссылки вида \n, либо $n, причём последний вариант предпочтительней. Каждая такая ссылка будет заменена на подстроку, соответствующую n-ой подмаске. n может принимать значения от 0 до 99, причём ссылка \0 (либо $0) соответствует вхождению всего шаблона. Подмаски нумеруются слева направо, начиная с единицы. Обратите внимание, что обратные слеши в строке (string) литералы могут требовать экранирования.

При замене по шаблону с использованием ссылок на подмаски может возникнуть ситуация, когда непосредственно за маской следует цифра (например, установка цифры сразу после совпавшей маски). В таком случае нельзя использовать знакомую нотацию вида \1 для ссылки на подмаски. Запись, например, \11, смутит preg_replace(), так как она не сможет понять, хотите ли вы использовать ссылку \1, за которой следует цифра 1 или же вы хотите просто использовать ссылку \11, за которой ничего не следует. Это недоразумение можно устранить, если воспользоваться конструкцией ${1}1, использующей изолированную ссылку $1, и следующую за ней цифру 1.

При использовании устаревшего модификатора e эта функция экранирует некоторые символы (а именно ', ", \ и NULL) в строках, замещающих обратные ссылки. Это сделано для удостоверения корректности синтаксиса при использовании обратных ссылок внутри одинарных или двойных кавычек (например, 'strlen(\'$1\')+strlen("$2")'). Убедитесь, что вы владеете синтаксисом обработки строк PHP для того, чтобы точно осознавать, как будет выглядеть интерпретированная строка.

subject

Строка или массив строк для поиска и замены.

Если subject является массивом, то поиск с заменой осуществляется для каждого элемента массива subject, а возвращаемое значение также будет являться массивом.

Если параметр subject является ассоциативным массивом, ключи будут сохранены в возвращаемом значении.

limit

Максимально возможное количество замен каждого шаблона для каждой строки subject. По умолчанию равно -1 (без ограничений).

count

Если указана, то эта переменная будет заполнена количеством произведённых замен.

Возвращаемые значения

preg_replace() возвращает массив, если параметр subject является массивом, иначе возвращается строка.

Если найдены совпадения, возвращается новая версия subject, иначе subject возвращается нетронутым, в случае ошибки возвращается null.

Ошибки

Использование модификатора "\e" является ошибкой; в этом случае выдаётся ошибка уровня E_WARNING;.

Если переданный шаблон регулярного выражения не компилируется в допустимое регулярное выражение, выдаётся ошибка уровня E_WARNING.

Примеры

Пример #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().

Замечание:

Если и pattern и replacement являются массивами, правила соответствия будут действовать последовательно. То есть, вторая пара pattern/replacement будет работать со строкой, полученной в результате первой пары pattern/replacement, а не с исходной строкой. Если вы хотите имитировать замену, действующую параллельно, например, поменять местами два значения, замените один шаблон промежуточным заполнителем, а затем в последующей паре замените этот промежуточный заполнитель требуемой заменой.

<?php
$p = array('/a/', '/b/', '/c/');
$r = array('b', 'c', 'd');
print_r(preg_replace($p, $r, 'a'));
// prints d
?>

Смотрите также

  • Регулярные выражения PCRE
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_filter() - Производит поиск и замену по регулярному выражению
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • preg_replace_callback() - Выполняет поиск по регулярному выражению и замену с использованием callback-функции
  • preg_split() - Разбивает строку по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE
  • str_replace() - Заменяет все вхождения строки поиска на строку замены


Разбивает строку по регулярному выражению

  • « preg_replace
  • ssdeep »
  • PHP Manual
  • Функции PCRE
  • Разбивает строку по регулярному выражению

preg_split

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_split — Разбивает строку по регулярному выражению

Описание

preg_split(
string $pattern,
string $subject,
int $limit = -1,
int $flags = 0
): array|false

Разбивает строку по регулярному выражению.

Список параметров

pattern

Строка, содержащая искомый шаблон.

subject

Входная строка.

limit

Если указан, функция возвращает не более, чем limit подстрок. Оставшаяся часть строки будет возвращена в последней подстроке. Специальное значение limit, равное -1 или 0, подразумевает отсутствие ограничения.

flags

flags может быть любой комбинацией следующих флагов (объединённых с помощью побитового оператора |):

PREG_SPLIT_NO_EMPTY
Если указан этот флаг, функция preg_split() вернёт только непустые подстроки.
PREG_SPLIT_DELIM_CAPTURE
Если указан этот флаг, выражение, заключённое в круглые скобки в разделяющем шаблоне, также извлекается из заданной строки и возвращается функцией.
PREG_SPLIT_OFFSET_CAPTURE

Если указан этот флаг, для каждой найденной подстроки будет указана её позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемого массива: каждый элемент будет содержать массив, содержащий в индексе с номером 0 найденную подстроку, а смещение этой подстроки в параметре subject - в индексе 1.

Возвращаемые значения

Возвращает массив, состоящий из подстрок заданной строки subject, которая разбита по границам, соответствующим шаблону pattern или false в случае возникновения ошибки.

Ошибки

Если переданный шаблон регулярного выражения не компилируется в допустимое регулярное выражение, выдаётся ошибка уровня E_WARNING.

Примеры

Пример #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


Нечёткое хеширование 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
    • 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_contains — Определяет, содержит ли строка заданную подстроку
    • str_decrement — Уменьшает на единицу буквенно-цифровую строку
    • str_ends_with — Проверяет, заканчивается ли строка заданной подстрокой
    • str_getcsv — Выполняет разбор CSV-строки в массив
    • str_increment — Увеличивает на единицу буквенно-цифровую строку
    • str_ireplace — Регистронезависимый вариант функции str_replace
    • str_pad — Дополняет строку другой строкой до заданной длины
    • str_repeat — Возвращает повторяющуюся строку
    • str_replace — Заменяет все вхождения строки поиска на строку замены
    • str_rot13 — Выполняет преобразование ROT13 над строкой
    • str_shuffle — Переставляет символы в строке случайным образом
    • str_split — Преобразует строку в массив
    • str_starts_with — Проверяет, начинается ли строка с заданной подстроки
    • 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 — Преобразует в верхний регистр первый символ каждого слова в строке
    • utf8_decode — Преобразует строку из UTF-8 в ISO-8859-1, заменяя недопустимые или непредставимые символы
    • utf8_encode — Преобразует строку из ISO-8859-1 в UTF-8
    • vfprintf — Записывает отформатированную строку в поток
    • vprintf — Выводит отформатированную строку
    • vsprintf — Возвращает отформатированную строку
    • wordwrap — Переносит строку по указанному количеству символов
  • Список изменений


Введение

Эти функции предназначены для выполнения различных манипуляций со строками. Более специализированные функции смотрите в разделах, посвящённых регулярным выражениям и обработке URL.

Для получения общей информации о работе со строками, особенно об использовании одиночных, двойных кавычек и экранировании символов, смотрите главу Строки в разделе Типы .


Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Начиная с PHP 8.1.0, функция crypt() может быть собрана на основе системной крипто библиотеки, с помощью опции конфигурации --with-external-libcrypt.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

CRYPT_SALT_LENGTH (int)
CRYPT_STD_DES (int)
Указывает, поддерживаются ли стандартные хеши на основе DES в функции crypt(). Всегда 1.
CRYPT_EXT_DES (int)
Указывает, поддерживаются ли расширенные хеши на основе DES в функции crypt(). Всегда 1.
CRYPT_MD5 (int)
Указывает, поддерживаются ли хеши MD5 в функции crypt(). Всегда 1.
CRYPT_BLOWFISH (int)
Указывает, поддерживаются ли хеши Blowfish в функции crypt(). Всегда 1.
CRYPT_SHA256 (int)
Указывает, поддерживаются ли хеши SHA-256 в функции crypt(). Всегда 1.
CRYPT_SHA512 (int)
Указывает, поддерживаются ли хеши SHA-512 в функции crypt(). Всегда 1.
HTML_SPECIALCHARS ((int))
HTML_ENTITIES ((int))
ENT_COMPAT ((int))
ENT_QUOTES ((int))
ENT_NOQUOTES ((int))
ENT_IGNORE ((int))
ENT_SUBSTITUTE ((int))
ENT_DISALLOWED ((int))
ENT_HTML401 ((int))
ENT_XML1 ((int))
ENT_XHTML ((int))
ENT_HTML5 ((int))
CHAR_MAX ((int))
LC_CTYPE ((int))
LC_NUMERIC ((int))
LC_TIME ((int))
LC_COLLATE ((int))
LC_MONETARY ((int))
LC_ALL ((int))
LC_MESSAGES ((int))
STR_PAD_LEFT ((int))
STR_PAD_RIGHT ((int))
STR_PAD_BOTH ((int))


Функции для работы со строками

Смотрите также

Для получения информации о более сложной обработке строк обратитесь к функциями Perl-совместимых регулярных выражений. Для работы с многобайтовыми кодировками посмотрите на функции по работе с многобайтовыми кодировками.

Содержание

  • addcslashes — Экранирует строку слешами в стиле языка C
  • addslashes — Экранирует строку с помощью слешей
  • bin2hex — Преобразует бинарные данные в шестнадцатеричное представление
  • chop — Псевдоним rtrim
  • chr — Генерирует односимвольную строку по заданному числу
  • chunk_split — Разбивает строку на фрагменты
  • convert_cyr_string — Преобразует строку из одной кириллической кодировки в другую
  • convert_uudecode — Декодирует строку из формата uuencode в обычный вид
  • convert_uuencode — Кодирует строку в формат uuencode
  • count_chars — Возвращает информацию о символах, входящих в строку
  • crc32 — Вычисляет полином CRC32 для строки
  • crypt — Необратимое хеширование строки
  • echo — Выводит одну или более строк
  • explode — Разбивает строку с помощью разделителя
  • fprintf — Записывает отформатированную строку в поток
  • get_html_translation_table — Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
  • hebrev — Преобразует текст на иврите из логической кодировки в визуальную
  • hebrevc — Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки
  • 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_contains — Определяет, содержит ли строка заданную подстроку
  • str_decrement — Уменьшает на единицу буквенно-цифровую строку
  • str_ends_with — Проверяет, заканчивается ли строка заданной подстрокой
  • str_getcsv — Выполняет разбор CSV-строки в массив
  • str_increment — Увеличивает на единицу буквенно-цифровую строку
  • str_ireplace — Регистронезависимый вариант функции str_replace
  • str_pad — Дополняет строку другой строкой до заданной длины
  • str_repeat — Возвращает повторяющуюся строку
  • str_replace — Заменяет все вхождения строки поиска на строку замены
  • str_rot13 — Выполняет преобразование ROT13 над строкой
  • str_shuffle — Переставляет символы в строке случайным образом
  • str_split — Преобразует строку в массив
  • str_starts_with — Проверяет, начинается ли строка с заданной подстроки
  • 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 — Преобразует в верхний регистр первый символ каждого слова в строке
  • utf8_decode — Преобразует строку из UTF-8 в ISO-8859-1, заменяя недопустимые или непредставимые символы
  • utf8_encode — Преобразует строку из ISO-8859-1 в UTF-8
  • vfprintf — Записывает отформатированную строку в поток
  • vprintf — Выводит отформатированную строку
  • vsprintf — Возвращает отформатированную строку
  • wordwrap — Переносит строку по указанному количеству символов


Экранирует строку слешами в стиле языка C

  • « Функции для работы со строками
  • addslashes »
  • PHP Manual
  • Функции для работы со строками
  • Экранирует строку слешами в стиле языка C

addcslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

addcslashes — Экранирует строку слешами в стиле языка C

Описание

addcslashes(string $string, string $characters): string

Возвращает строку, экранированную обратными слешами перед символами, указанными в параметре characters.

Список параметров

string

Экранируемая строка.

characters

Список экранируемых символов. Если characters содержит символы \n, \r и т.п., они будут преобразованы в стиле C, тогда как другие нецифробуквенные символы с ASCII-кодами ниже 32 и выше 126 будут преобразованы в восьмеричное представление.

Следует быть внимательным при указании диапазона символов в аргументе characters. Проверяйте, какие символы входят в этот диапазон.

<?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() для создания кода в этих языках с использованием этих символов в characters.

Возвращаемые значения

Возвращает экранированную строку.

Примеры

characters, например, "\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, PHP 8)

addslashes — Экранирует строку с помощью слешей

Описание

addslashes(string $string): string

Возвращает строку с обратным слешем перед символами, которые нужно экранировать. Экранируются следующие символы:

  • одинарная кавычка (')
  • двойная кавычка (")
  • обратный слеш (\)
  • NUL (байт null)

Небольшой пример использования функции addslashes() для экранирования вышеперечисленных символов:

<?php
$str = "O'Reilly?";
eval("echo '" . addslashes($str) . "';");
?>

Иногда функцию addslashes() некорректно пытаются использовать для предотвращения SQL-инъекций. Не делайте так. Вместо неё используйте подготовленные запросы или функции экранирования соответствующих модулей работы с базами данных.

Список параметров

string

Экранируемая строка.

Возвращаемые значения

Возвращает экранируемую строку.

Примеры

Пример #1 Пример использования addslashes()

<?php
$str = "Ваше имя O'Reilly?";

// выводит: Ваше имя O\'Reilly?
echo addslashes($str);
?>

Смотрите также

  • stripcslashes() - Удаляет экранирование символов, произведённое функцией addcslashes
  • stripslashes() - Удаляет экранирование символов
  • addcslashes() - Экранирует строку слешами в стиле языка C
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • quotemeta() - Экранирует специальные символы
  • get_magic_quotes_gpc() - Получение текущего значения настройки конфигурации magic_quotes_gpc


Преобразует бинарные данные в шестнадцатеричное представление

  • « addslashes
  • chop »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует бинарные данные в шестнадцатеричное представление

bin2hex

(PHP 4, PHP 5, PHP 7, PHP 8)

bin2hex — Преобразует бинарные данные в шестнадцатеричное представление

Описание

bin2hex(string $string): string

Возвращает ASCII-строку, содержащую шестнадцатеричное представление аргумента string. Преобразование производится побайтно, начиная с верхнего полубайта.

Список параметров

string

Строка.

Возвращаемые значения

Возвращает шестнадцатеричное представление указанной строки.

Примеры

Пример #1 Пример использования bin2hex()

<?php

$hex = bin2hex('Hello world!');

var_dump($hex);
var_dump(hex2bin($hex));
?>

Результат выполнения данного примера:

string(24) "48656c6c6f20776f726c6421"
string(12) "Hello world!"

Смотрите также

  • hex2bin() - Преобразует шестнадцатеричные данные в двоичные
  • pack() - Упаковать данные в бинарную строку


Псевдоним rtrim

  • « bin2hex
  • chr »
  • PHP Manual
  • Функции для работы со строками
  • Псевдоним rtrim

chop

(PHP 4, PHP 5, PHP 7, PHP 8)

chop — Псевдоним rtrim()

Описание

Функция является псевдонимом: rtrim().

Примечания

Замечание:

Действие chop() отличается от одноимённой функции chop() языка Perl, удаляющей последний символ строки.


Генерирует односимвольную строку по заданному числу

  • « chop
  • chunk_split »
  • PHP Manual
  • Функции для работы со строками
  • Генерирует односимвольную строку по заданному числу

chr

(PHP 4, PHP 5, PHP 7, PHP 8)

chr — Генерирует односимвольную строку по заданному числу

Описание

chr(int $codepoint): string

Возвращает строку из одного символа, код которого задан аргументом codepoint, который интерпретируется как беззнаковое целое (unsigned integer).

Может использоваться для создания строки из одного символа однобайтовой кодировки, например, такой как ASCII, ISO-8859 или Windows 1252, путём указания позиции этого символа в таблице кодировки. Данная функция не подходит для генерации односимвольной строки в многобайтовых кодировках, таких как UTF-8 или UTF-16.

Эта функция дополняет функцию ord().

Список параметров

codepoint

Целое число от 0 до 255.

Значения за пределом диапазона (0..255) должны быть побитово сложены (побитовое И) с 255, что соответствует такому алгоритму:

while ($bytevalue < 0) {
$bytevalue += 256;
}
$bytevalue %= 256;

Возвращаемые значения

Строка из одного символа, содержащая заданный байт.

Список изменений

Версия | Описание
7.4.0 | Функция больше не принимает неподдерживаемые значения codepoint и преобразует их в 0.

Примеры

Пример #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
$str = chr(240) . chr(159) . chr(144) . chr(152);
echo $str;
?>

Результат выполнения данного примера:

??

Смотрите также

  • Описание формата %c функции sprintf()
  • ord()
  • » Таблица ASCII-кодов
  • mb_chr()
  • IntlChar::chr()


Разбивает строку на фрагменты

  • « chr
  • convert_cyr_string »
  • PHP Manual
  • Функции для работы со строками
  • Разбивает строку на фрагменты

chunk_split

(PHP 4, PHP 5, PHP 7, PHP 8)

chunk_split — Разбивает строку на фрагменты

Описание

chunk_split(string $string, int $length = 76, string $separator = "\r\n"): string

Функция используется для разбиения строки на фрагменты, например, для приведения результата функции base64_encode() в соответствие с требованиями RFC 2045. Она вставляет строку separator после каждых length символов.

Список параметров

string

Разбиваемая строка.

length

Длина фрагмента.

separator

Последовательность символов, используемая в качестве конца строки.

Возвращаемые значения

Возвращает преобразованную строку.

Примеры

Пример #1 Пример использования chunk_split()

<?php
// форматирование данных в соответствии с RFC 2045
$new_string = chunk_split(base64_encode($data));
?>

Смотрите также

  • str_split() - Преобразует строку в массив
  • explode() - Разбивает строку с помощью разделителя
  • wordwrap() - Переносит строку по указанному количеству символов
  • » RFC 2045


Преобразует строку из одной кириллической кодировки в другую

  • « chunk_split
  • convert_uudecode »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует строку из одной кириллической кодировки в другую

convert_cyr_string

(PHP 4, PHP 5, PHP 7)

convert_cyr_string — Преобразует строку из одной кириллической кодировки в другую

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.3.0 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

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, PHP 8)

convert_uudecode — Декодирует строку из формата uuencode в обычный вид

Описание

convert_uudecode(string $string): string|false

convert_uudecode() декодирует строку из формата uuencode в обычный вид.

Замечание: convert_uudecode() не принимает ни начальной (begin), ни конечной (end) строки, которая является частью файлов (files) uuencoded.

Список параметров

string

Данные в формате 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, PHP 8)

convert_uuencode — Кодирует строку в формат uuencode

Описание

convert_uuencode(string $string): string

convert_uuencode() кодирует строку с помощью алгоритма uuencode.

Кодирование uuencode переводит строки (включая бинарные символы) в последовательности печатных (7-битных) ASCII-символов, что позволяет безопасно обмениваться данными через сеть. Закодированные данные примерно на 35% больше оригинала.

Замечание: convert_uudecode() не принимает ни начальной (begin), ни конечной (end) строки, которая является частью файлов (files) uuencoded.

Список параметров

string

Кодируемые данные.

Возвращаемые значения

Возвращает закодированные данные в формате uuencode.

Список изменений

Версия | Описание
8.0.0 | До этой версии при попытке преобразовать пустую строку возвращалось 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, PHP 8)

count_chars — Возвращает информацию о символах, входящих в строку

Описание

count_chars(string $string, int $mode = 0): array|string

Подсчитывает количество вхождений каждого из символов с ASCII-кодами в диапазоне (0..255) в строке string и возвращает эту информацию в различных форматах.

Список параметров

string

Исследуемая строка.

mode

Смотрите возвращаемые значения.

Возвращаемые значения

В зависимости от параметра mode, count_chars() возвращает одно из следующих значений:

  • 0 - массив, индексами которого являются ASCII-коды, а значениями - число вхождений соответствующего символа.
  • 1 - то же, что и для 0, но информация о символах с нулевым числом вхождений не включается в массив.
  • 2 - то же, что и для 0, но в массив включается информация только о символах с нулевым числом вхождений.
  • 3 - строка, содержащая все уникальные символы в исследуемой строке.
  • 4 - строка, состоящая из символов, которые не входят в исходную строку.

Список изменений

Версия | Описание
8.0.0 | До этой версии функция возвращала false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

crc32 — Вычисляет полином CRC32 для строки

Описание

crc32(string $string): int

Функция вычисляет циклический избыточный код 32-битных полиномов (CRC32) для строки string. Это обычно используется для контроля целостности передаваемых данных.

Внимание

В 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).

Список параметров

string

Данные.

Возвращаемые значения

Возвращает контрольную сумму crc32 строки string в виде целого числа.

Примеры

Пример #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, PHP 8)

crypt — Необратимое хеширование строки

Внимание

Эта функция (пока) небезопасна для обработки данных в двоичной форме!

Описание

crypt(string $string, string $salt): string

crypt() возвращает хешированную строку,
полученную с помощью стандартного алгоритма UNIX, основанного
на DES или другого алгоритма.
Функция password_verify() совместима с crypt().
Следовательно, хеши паролей, созданные crypt(),
могут быть использованы в password_verify().

До версии PHP 8.0.0 параметр salt был необязательным. Однако функция crypt() создаёт слабый хеш без параметра salt, а без него выдаёт ошибку уровня E_NOTICE. Убедитесь, что используете достаточно сложную соль для лучшей безопасности.

Функция password_hash() использует сложный хеш, генерирует сложную соль и применяет правильно количество раундов хеширования автоматически. password_hash() является простой обёрткой над crypt() и совместима с существующими хешами паролей. Поэтому приветствуется использование password_hash().

Вид хеширования определяется переданным аргументом salt (соль). Если соль не указана, будет автоматически сгенерирована стандартная случайная двухсимвольная (DES) или двенадцатисимвольная (MD5) соль, в зависимости от доступности алгоритма MD5 в crypt(). Предопределённая константа CRYPT_SALT_LENGTH позволяет определить максимально доступную длину соли в соответствии с используемыми алгоритмами.

Стандартная функция crypt() на основе DES возвращает соль в качестве первых двух символов возвращаемой строки. Кроме того, она использует только первые восемь символов строки string, поэтому более длинные строки, начинающиеся с тех же восьми символов, сгенерируют один и тот же результат (при использовании одинаковой соли).

Поддерживаются следующие типы хешей:

  • CRYPT_STD_DES - Стандартное DES-шифрование с двухсимвольной солью из алфавита "./0-9A-Za-z""./0-9A-Za-z". Использование других символов в соли повлечёт за собой отказ работы crypt().
  • CRYPT_EXT_DES - Расширенное DES-шифрование. "Соль" является 9-символьной строкой, состоящая из символа подчёркивания, за которым следуют 4 символа счётчика итерации и 4 символа соли. Каждая из этих 4-символьных строк кодирует 24 бита, наименьший символ первым. Значения от 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(). Хеши "$2x$" потенциально слабые; Хэши "$2a$" совместимы и смягчают эту слабость. Для новых хэшей следует использовать "$2y$".
  • 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. Любое значение вне этого диапазона будет усечено до ближайшего лимита.

Список параметров

string

Хешируемая строка.

Предостережение

При использовании алгоритма CRYPT_BLOWFISH, параметр string обрезается до 72 байт.

salt

Параметр с солью, на которой будет основано хеширование. Если не указан, поведение определяется по наличию реализованных алгоритмов в системе и может привести к неожиданным результатам.

Возвращаемые значения

Возвращает хешированную строку или строку короче 13 символов, гарантированно отличающуюся от соли в случае возникновения ошибки.

Внимание

При валидации паролей должны использоваться функции сравнения строк, устойчивые к атаке по времени, для сравнения вывода функции crypt() с известным хешом. В PHP для этих целей есть функция hash_equals().

Список изменений

Версия | Описание
8.0.0 | salt больше не является необязательным.

Примеры

Пример #1 Пример использования crypt()

<?php
// соль будет сгенерирована автоматически; не рекомендуется
$user_input = 'rasmuslerdorf';
$hashed_password = '$6$rounds=1000000$NJy4rIPjpOaU$0ACEYGg/aKCY3v8O8AfyiO7CTfZQ8/W231Qfh2tRLmfdvFD6XfHk12u6hMr9cYIA4hnpjLNSTRtUwYr9km9Ij/';

// Проверка существующего хеша crypt() способом, совместимым с программами, не использующими PHP.
if (hash_equals($hashed_password, crypt($user_input, $hashed_password))) {
echo "Пароль верен!";
}
?>

Пример #2 Использование crypt() с различными видами хешей

<?php
/* Приведённая соль является только примером. Не используйте эту же соль в вашем коде.
Вы должны сгенерировать уникальную и правильную соль для каждого пароля.
*/
echo 'Стандартный DES: ',
crypt('rasmuslerdorf', 'rl'),
"\n";
echo 'Расширенный DES: ',
crypt('rasmuslerdorf', '_J9..rasm'),
"\n";
echo 'MD5: ',
crypt('rasmuslerdorf', '$1$rasmusle$'),
"\n";
echo 'Blowfish: ',
crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$'),
"\n";
echo 'SHA-256: ',
crypt('rasmuslerdorf', '$5$rounds=5000$usesomesillystringforsalt$'),
"\n";
echo 'SHA-512: ',
crypt('rasmuslerdorf', '$6$rounds=5000$usesomesillystringforsalt$'),
"\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Стандартный DES: rl.3StKT.4T8M
Расширенный DES: _J9..rasmBYk8r9AiWNc
MD5:          $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish:     $2y$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() - Создаёт хеш пароля
  • Страница руководства Unix по вашей функции crypt


Выводит одну или более строк

  • « crypt
  • explode »
  • PHP Manual
  • Функции для работы со строками
  • Выводит одну или более строк

echo

(PHP 4, PHP 5, PHP 7, PHP 8)

echo — Выводит одну или более строк

Описание

echo(string ...$expressions): void

Выводит одно или несколько выражений без дополнительных символов новой строки или пробелов.

На самом деле, echo - это не функция, а языковая конструкция. Её аргументы - это список выражений, следующих за ключевым словом echo, разделённых запятыми и не ограниченных круглыми скобками. В отличие от некоторых других языковых конструкций, echo не имеет никакого возвращаемого значения, поэтому её нельзя использовать в контексте выражения.

echo имеет также краткую форму, представляющую собой знак равенства, следующий непосредственно за открывающим тегом. Этот сокращённый синтаксис работает даже с отключённым параметром конфигурации short_open_tag.

У меня есть <?=$foo?> foo.

Единственное отличие от print в том, что echo принимает несколько аргументов и не имеет возвращаемого значения.

Список параметров

expressions

Одно или несколько строковых выражений для вывода, разделённых запятыми. Нестроковые значения будут преобразованы в строки, даже если включена директива strict_types.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Примеры использования echo

<?php
echo "echo не требует скобок.";

// Строки можно передавать по отдельности как несколько аргументов или
// объединять вместе и передавать как один аргумент.
echo 'Эта ', 'строка ', 'сформирована ', 'из ', 'нескольких параметров.', "\n";
echo 'Эта ' . 'строка ' . 'сформирована ' . 'с ' . 'помощью конкатенации.' . "\n";

// Новая строка или пробел не добавляются; пример ниже выведет "приветмир" в одну строку
echo "привет";
echo "мир";

// То же, что и выше
echo "привет", "мир";

echo "Эта строка занимает
несколько строк. Новые строки также
будут выведены";

echo "Эта строка занимает\nнесколько строк. Новые строки также\nбудут выведены.";

// Аргументом может быть любое выражение, производящее строку
$foo = "пример";
echo "пример - это $foo"; // пример - это пример

$fruits = ["лимон", "апельсин", "банан"];
echo implode(" и ", $fruits); // лимон и апельсин и банан

// Нестроковые выражения приводятся к строковым, даже если используется declare(strict_types=1)
echo 6 * 7; // 42

// Поскольку echo не работает как выражение, следующий код некорректен.
($some_var) ? echo 'true' : echo 'false';

// Однако следующие примеры будут работать:
($some_var) ? print 'true' : print 'false'; // print также является конструкцией, но
// это допустимое выражение, возвращающее 1,
// поэтому его можно использовать в этом контексте..

echo $some_var ? 'true': 'false'; // сначала выполняется выражение, результат которого передаётся в echo
?>

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций или именованных аргументов.

Замечание: Использование с круглыми скобками

Заключение одного аргумента в echo в круглые скобки не вызовет синтаксической ошибки и создаст синтаксис, который выглядит как обычный вызов функции. Однако это может ввести в заблуждение, потому что круглые скобки на самом деле являются частью выводимого выражения, а не частью самого синтаксиса echo.

<?php
echo "привет";
// выведет "привет"

echo("привет");
// также выведет "привет", потому что ("привет") является корректным выражением

echo(1 + 2) * 3;
// выведет "9"; круглые скобки приводят к тому, что сначала вычисляется 1+2, а затем 3*3
// оператор echo видит всё выражение как один аргумент

echo "привет", " мир";
// выведет "привет мир"

echo("привет"), (" мир");
// выведет "привет мир"; круглые скобки являются частью каждого выражения

echo("привет", " мир");
// Выбросит ошибку синтаксического анализа, потому что ("привет", "мир") не является корректным выражением.
?>

Подсказка

Передача нескольких аргументов в echo может избежать осложнений, связанных с приоритетом оператора конкатенации в PHP. Например, оператор конкатенации имеет более высокий приоритет, чем тернарный оператор, а до PHP 8.0.0 имел тот же приоритет, что и сложение и вычитание:

<?php
// Ниже выражение 'Привет, ' . isset($name) вычисляется первым
// и всегда имеет значение true, поэтому аргумент для echo всегда равен $name
echo 'Привет, ' . isset($name) ? $name : 'Джон Доу' . '!';

// Предполагаемое поведение требует дополнительных скобок
echo 'Привет, ' . (isset($name) ? $name : 'Джон Доу') . '!';

// В PHP до 8.0.0 ниже выведется "2", а не "Сумма: 3".
echo 'Сумма: ' . 1 + 2;

// Опять же, добавление круглых скобок обеспечивает предполагаемый порядок выполнения.
echo 'Сумма: ' . (1 + 2);

Если передано несколько аргументов, скобки не требуются для обеспечения приоритета, потому что каждое выражение является отдельным:

<?php
echo "Привет, ", isset($name) ? $name : "Джон Доу", "!";

echo "Сумма: ", 1 + 2;

Смотрите также

  • print - Выводит строку
  • printf() - Выводит отформатированную строку
  • flush() - Сброс системного буфера вывода
  • Способы работы со строками


Разбивает строку с помощью разделителя

  • « echo
  • fprintf »
  • PHP Manual
  • Функции для работы со строками
  • Разбивает строку с помощью разделителя

explode

(PHP 4, PHP 5, PHP 7, PHP 8)

explode — Разбивает строку с помощью разделителя

Описание

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array

Возвращает массив строк, полученных разбиением строки string с использованием separator в качестве разделителя.

Список параметров

separator

Разделитель.

string

Входная строка.

limit

Если аргумент limit является положительным, возвращаемый массив будет содержать максимум limit элементов, при этом последний элемент будет содержать остаток строки string.

Если параметр limit отрицателен, то будут возвращены все компоненты, кроме последних -limit.

Если limit равен нулю, то он расценивается как 1.

Замечание:

До PHP 8.0 функция implode() принимала параметры в любом порядке. Функция explode() никогда этого не поддерживала: убедитесь в том, что separator указан перед аргументом string.

Возвращаемые значения

Возвращает массив (array) строк (string), созданный делением параметра string по границам, указанным параметром separator.

Если separator является пустой строкой (""), explode() выбрасывает ValueError. Если separator не содержится в string, и используется отрицательный limit, то будет возвращён пустой массив (array), иначе будет возвращён массив, содержащий string. Если значения separator появляются в начале или в конце string, указанные значения будут добавлены как пустое значение массива (array), либо в первой, либо в последней позиции возвращённого массива (array) соответственно.

Список изменений

Версия | Описание
8.0.0 | explode() теперь выбрасывает TypeError, если параметр separator является пустой строкой (""). Ранее вместо исключения explode() возвращала false.

Примеры

Пример #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));

// отрицательный лимит
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, PHP 8)

fprintf — Записывает отформатированную строку в поток

Описание

fprintf(resource $stream, string $format, mixed ...$values): int

Записывает строку, созданную с использованием строки формата format, в поток, дескриптор которого передаётся в параметре stream.

Список параметров

stream

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Либо целое число, указывающее, сколько символов (минимум) должно получиться в результате преобразования, либо *. Если используется *, то ширина предоставляется как дополнительное целое значение, предшествующее значению, отформатированному спецификатором.

Точность

Точка ., с последующим целым числом, либо *, значение которого зависит от спецификатора:

  • Для спецификаторов e, E, f и F: задаёт количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g,G, h и H: задаёт максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задаёт ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0. Если используется *, точность предоставляется как дополнительное целое значение, предшествующее значению, отформатированному спецификатором.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учётом локали).
F | Аргумент считается за число с плавающей точкой (без учёта локали).
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 — если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и f.
h | Аналогично спецификатору g, но использует F. Доступен с PHP 8.0.0.
H | Аналогично спецификатору g, но использует E и F. Доступен с PHP 8.0.0.
o | Аргумент рассматривается как целое число и печатается в восьмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззнаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Возвращаемые значения

Возвращает длину записанной строки.

Ошибки

Начиная с PHP 8.0.0, если количество аргументов равно нулю, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если [width] меньше нуля или больше PHP_INT_MAX, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если [precision] меньше нуля или больше PHP_INT_MAX, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если аргументов задано меньше, чем требуется, выбрасывается исключение ArgumentCountError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает false в случае возникновения ошибки.
8.0.0 | Выбрасывает исключение ValueError, если количество аргументов равно нулю; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ValueError, если [width] меньше нуля или больше PHP_INT_MAX; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ValueError, если [precision] меньше нуля или больше PHP_INT_MAX; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ArgumentCountError, если аргументов задано меньше, чем требуется; ранее функция выдавала ошибку уровня E_WARNING.

Примеры

Пример #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() - Форматирует временную метку Unix


Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities

  • « fprintf
  • hebrev »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities

get_html_translation_table

(PHP 4, PHP 5, PHP 7, PHP 8)

get_html_translation_table — Возвращает таблицу преобразований, используемую функциями htmlspecialchars() и htmlentities()

Описание

get_html_translation_table(int $table = HTML_SPECIALCHARS, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | 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_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Доступные константы в параметре flags
Имя константы | Описание
ENT_COMPAT | Таблица будет содержать сущности для двойных кавычек, но не будет для одинарных.
ENT_QUOTES | Таблица будет содержать сущности как для двойных кавычек, так и для одинарных.
ENT_NOQUOTES | Таблица не будет содержать сущности ни для двойных кавычек, ни для одинарных.
ENT_SUBSTITUTE | Заменяет некорректные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки, вместо возврата пустой строки.
ENT_HTML401 | Таблица для HTML 4.01.
ENT_XML1 | Таблица для XML 1.
ENT_XHTML | Таблица для XHTML.
ENT_HTML5 | Таблица для HTML 5.

encoding

Используемая кодировка. Если не указана, то значением по умолчанию для этого аргумента является UTF-8.

Поддерживаются следующие кодировки:

Поддерживаемые кодировки
Кодировка | Псевдонимы | Описание
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()) в указанном порядке. Не рекомендуется к использованию.

Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.

Возвращаемые значения

Возвращает таблицу преобразований в виде массива с оригинальными символами в качестве ключей и сущностями в качестве значений.

Список изменений

Версия | Описание
8.1.0 | Значение по умолчанию параметра flags изменено с ENT_COMPAT на ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Примеры

Пример #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, PHP 8)

hebrev — Преобразует текст на иврите из логической кодировки в визуальную

Описание

hebrev(string $string, int $max_chars_per_line = 0): string

Преобразует текст на иврите из логической кодировки в визуальную.

Эта функция пытается избежать разрывов слов.

Список параметров

string

Входная строка на иврите.

max_chars_per_line

Этот необязательный параметр указывает максимально возвращаемое число символов на строку.

Возвращаемые значения

Возвращает строку в визуальной кодировке.

Смотрите также

  • hebrevc() - Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки


Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки

  • « hebrev
  • hex2bin »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки

hebrevc

(PHP 4, PHP 5, PHP 7)

hebrevc — Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

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, PHP 8)

hex2bin — Преобразует шестнадцатеричные данные в двоичные

Описание

hex2bin(string $string): string|false

Декодирует строку данных из шестнадцатеричного представления.

Предостережение

Эта функция НЕ конвертирует шестнадцатеричные числа в двоичные. Если нужно именно это, используйте функцию base_convert().

Список параметров

string

Шестнадцатеричное представление данных.

Возвращаемые значения

Возвращает двоичное представление данных или false в случае возникновения ошибки.

Ошибки

Если во входной шестнадцатеричной строке окажется нечётное число байт или она не является правильной шестнадцатеричной строкой, будет выдано предупреждение E_WARNING.

Примеры

Пример #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, PHP 8)

html_entity_decode — Преобразует HTML-сущности в соответствующие им символы

Описание

html_entity_decode(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, ?string $encoding = null): string

html_entity_decode() является противоположностью функции htmlentities(). Она преобразует HTML-сущности в строке string в соответствующие им символы.

Если быть точнее, то эта функция преобразует все сущности (в том числе все числовые сущности), которые а) обязательно верны для выбранного типа документа - то есть, для XML эта функция не преобразует именованные сущности, которые могут быть определены в каком-нибудь DTD - и б) их символы находятся в кодировке, соответствующей выбранной и разрешены в выбранном типе документа. Все другие сущности остаются без изменений.

Список параметров

string

Входная строка.

flags

Битовая маска, состоящая из одного или более флагов, которые указывают, как обращаться с кавычками и какой тип документа использовать. По умолчанию маска принимает значение ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Константы flags
Имя константы | Описание
ENT_COMPAT | Преобразуются двойные кавычки, одинарные остаются без изменений.
ENT_QUOTES | Преобразуются и двойные, и одинарные кавычки.
ENT_NOQUOTES | Оставить как двойные, так и одинарные кавычки без изменений.
ENT_SUBSTITUTE | Заменяет некорректные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки, вместо возврата пустой строки.
ENT_HTML401 | Обрабатывать код как HTML 4.01.
ENT_XML1 | Обрабатывать код как XML 1.
ENT_XHTML | Обрабатывать код как XHTML.
ENT_HTML5 | Обрабатывать код как HTML 5.

encoding

Необязательный аргумент, определяющий кодировку, используемую при конвертации символов.

Если не указан, то значение по умолчанию для encoding зависит от конфигурационной опции default_charset.

Хотя этот аргумент является технически необязательным, настоятельно рекомендуется указать правильное значение для вашего кода, опция конфигурации 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()) в указанном порядке. Не рекомендуется к использованию.

Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.

Возвращаемые значения

Возвращает раскодированную строку.

Список изменений

Версия | Описание
8.1.0 | Значение по умолчанию параметра flags изменено с ENT_COMPAT на ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
8.0.0 | encoding теперь допускает значение null.

Примеры

Пример #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, PHP 8)

htmlentities — Преобразует все возможные символы в соответствующие HTML-сущности

Описание

htmlentities(
string $string,
int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
?string $encoding = null,
bool $double_encode = true
): string

Эта функция идентична htmlspecialchars() за исключением того, что htmlentities() преобразует все символы в соответствующие HTML-сущности (для тех символов, для которых HTML-сущности существуют). Функция get_html_translation_table() может быть использована для возврата используемой таблицы перевода в зависимости от предоставленных констант в параметре flags.

Если же вы хотите раскодировать строку (наоборот), используйте html_entity_decode().

Список параметров

string

Входная строка.

flags

Битовая маска из нижеуказанных флагов, определяющих режим обработки кавычек, некорректных кодовых последовательностей и используемый тип документа. По умолчанию используется ENT_QUOTES | ENT_SUBSTITUTE | 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 зависит от конфигурационной опции default_charset.

Хотя этот аргумент является технически необязательным, настоятельно рекомендуется указать правильное значение для вашего кода, опция конфигурации 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.

Список изменений

Версия | Описание
8.1.0 | Значение по умолчанию параметра flags изменено с ENT_COMPAT на ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
8.0.0 | encoding теперь допускает значение null.

Примеры

Пример #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, PHP 8)

htmlspecialchars_decode — Преобразует специальные HTML-сущности обратно в соответствующие символы

Описание

htmlspecialchars_decode(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401): string

Эта функция является антиподом htmlspecialchars(). Она преобразует специальные HTML-сущности обратно в соответствующие символы.

Конвертируемые сущности: &amp;, &quot; (когда ENT_NOQUOTES не установлена), &#039; (когда ENT_QUOTES установлена), &lt; и &gt;.

Список параметров

string

Строка, которую надо преобразовать.

flags

Битовая маска из одного или нескольких следующих флагов, которые указывают как обрабатывать кавычки и какие типы документов использовать. Значением по умолчанию является ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Доступные константы, используемые в качестве параметра flags
Имя константы | Описание
ENT_COMPAT | Преобразует двойные кавычки и пропускает одинарные.
ENT_QUOTES | Преобразует и двойные, и одинарные кавычки.
ENT_NOQUOTES | Не преобразует ни двойные, ни одинарные кавычки.
ENT_SUBSTITUTE | Заменяет некорректные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки, вместо возврата пустой строки.
ENT_HTML401 | Обрабатывать код как HTML 4.01.
ENT_XML1 | Обрабатывать код как XML 1.
ENT_XHTML | Обрабатывать код как XHTML.
ENT_HTML5 | Обрабатывать код как HTML 5.

Возвращаемые значения

Возвращает преобразованную строку.

Список изменений

Версия | Описание
8.1.0 | Значение по умолчанию параметра flags изменено с ENT_COMPAT на ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Примеры

Пример #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, PHP 8)

htmlspecialchars — Преобразует специальные символы в HTML-сущности

Описание

htmlspecialchars(
string $string,
int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
?string $encoding = null,
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_QUOTES | ENT_SUBSTITUTE | 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 зависит от конфигурационной опции default_charset.

Хотя этот аргумент является технически необязательным, настоятельно рекомендуется указать правильное значение для вашего кода, опция конфигурации 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 не установлены.

Список изменений

Версия | Описание
8.1.0 | Значение по умолчанию параметра flags изменено с ENT_COMPAT на ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

Примеры

Пример #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, PHP 8)

implode — Объединяет элементы массива в строку

Описание

implode(string $separator, array $array): string

Альтернативная сигнатура (не поддерживается с именованными аргументами):

implode(array $array): string

Устаревшая сигнатура (устарела с PHP 7.4.0, удалена в PHP 8.0.0):

implode(array $array, string $separator): string

Объединяет элементы массива с помощью строки separator.

Список параметров

separator

Необязательный. По умолчанию равен пустой строке.

array

Массив объединяемых строк.

Возвращаемые значения

Возвращает строку, содержащую строковое представление всех элементов массива в указанном порядке, с разделителем между каждым элементом.

Список изменений

Версия | Описание
8.0.0 | Передача separator после array больше не поддерживается.
7.4.0 | Передача separator после array (т.е. использование недокументированного порядка параметров) устарела.

Примеры

Пример #1 Пример использования implode()

<?php

$array = ['имя', 'почта', 'телефон'];
var_dump(implode(",", $array)); // string(32) "имя,почта,телефон"

// Пустая строка при использовании пустого массива:
var_dump(implode('привет', [])); // string(0) ""

// Параметр separator не обязателен:
var_dump(implode(['a', 'b', 'c'])); // string(3) "abc"

?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • explode() - Разбивает строку с помощью разделителя
  • preg_split() - Разбивает строку по регулярному выражению
  • http_build_query() - Генерирует URL-кодированную строку запроса


Псевдоним implode

  • « implode
  • lcfirst »
  • PHP Manual
  • Функции для работы со строками
  • Псевдоним implode

join

(PHP 4, PHP 5, PHP 7, PHP 8)

join — Псевдоним implode()

Описание

Функция является псевдонимом: implode().


Преобразует первый символ строки в нижний регистр

  • « join
  • levenshtein »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует первый символ строки в нижний регистр

lcfirst

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

lcfirst — Преобразует первый символ строки в нижний регистр

Описание

lcfirst(string $string): string

Возвращает строку string, первый символ которой был преобразован в нижний регистр, если этот символ является ASCII-символом в диапазоне от "A" (0x41) до "Z" (0x5a).

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает результирующую строку.

Список изменений

Версия | Описание
8.2.0 | Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale(). Будут преобразованы только символы ASCII.

Примеры

Пример #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, PHP 8)

levenshtein — Вычисляет расстояние Левенштейна между двумя строками

Описание

levenshtein(
string $string1,
string $string2,
int $insertion_cost = 1,
int $replacement_cost = 1,
int $deletion_cost = 1
): int

Расстояние Левенштейна - это минимальное количество вставок, замен и удалений символов, необходимое для преобразования string1 в string2. Сложность алгоритма равна O(m*n), где n и m - длины строк string1 и string2 (неплохо по сравнению с similar_text(), имеющей сложность O(max(n,m)**3), но всё же довольно много).

Если insertion_cost, replacement_cost и/или deletion_cost не равны 1, алгоритм адаптируется для выбора самых дешёвых преобразований. Например. если $insertion_cost + $deletion_cost < $replacement_cost, замены не будут выполняться, вместо этого будут выполняться вставки и удаления.

Список параметров

string1

Одна из строк, для которых вычисляется расстояние Левенштейна.

string2

Одна из строк, для которых вычисляется расстояние Левенштейна.

insertion_cost

Определяет стоимость вставки.

replacement_cost

Определяет стоимость замены.

deletion_cost

Определяет стоимость удаления.

Возвращаемые значения

Эта функция возвращает расстояние Левенштейна между двумя строками.

Список изменений

Версия | Описание
8.0.0 | До этой версии levenshtein() нужно было вызывать с двумя или пятью аргументами.
8.0.0 | До этой версии, levenshtein() возвращала значение -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, PHP 8)

localeconv — Возвращает информацию о форматировании чисел

Описание

localeconv(): 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, PHP 8)

ltrim — Удаляет пробелы (или другие символы) из начала строки

Описание

ltrim(string $string, string $characters = " \n\r\t\v\x00"): string

Удаляет пробелы (или другие символы) из начала строки.

Список параметров

string

Входная строка.

characters

С помощью параметра characters можно также указать удаляемые символы. Просто перечислите все символы, которые вы хотите удалить. Можно указать конструкцию .. для обозначения диапазона символов.

Возвращаемые значения

Эта функция возвращает строку string с удалёнными из начала строки пробелами. Если второй параметр не передан, ltrim() удаляет следующие символы:

  • " " (ASCII 32 (0x20)), обычный пробел.
  • "\t" (ASCII 9 (0x09)), символ табуляции.
  • "\n" (ASCII 10 (0x0A)), символ перевода строки.
  • "\r" (ASCII 13 (0x0D)), символ возврата каретки.
  • "\0" (ASCII 0 (0x00)), NUL-байт.
  • "\v" (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, PHP 8)

md5_file — Возвращает MD5-хеш файла

Описание

md5_file(string $filename, bool $binary = false): string|false

Вычисляет MD5-хеш файла, имя которого задано аргументом filename, используя » алгоритм MD5 RSA Data Security, Inc. и возвращает этот хеш. Хеш представляет собой 32-значное шестнадцатеричное число.

Список параметров

filename

Имя файла

binary

Если имеет значение true, то возвращается бинарная строка из 16 символов.

Возвращаемые значения

Возвращает строку в случае успешного выполнения, иначе false.

Примеры

Пример #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, PHP 8)

md5 — Возвращает MD5-хеш строки

Внимание

Не рекомендуется использовать эту функцию для обеспечения безопасности хранения паролей ввиду высокой скорости работы данного алгоритма. Более подробно читайте в разделе Ответы на часто задаваемые вопросы по хешированию паролей.

Описание

md5(string $string, bool $binary = false): string

Вычисляет MD5-хеш строки string, используя » алгоритм MD5 RSA Data Security, Inc. и возвращает этот хеш.

Список параметров

string

Строка.

binary

Если необязательный аргумент binary имеет значение 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, PHP 8)

metaphone — Возвращает ключ metaphone для строки

Описание

metaphone(string $string, int $max_phonemes = 0): string

Возвращает ключ metaphone для строки string.

Подобно функции soundex(), metaphone возвращает одинаковое значение для слов, имеющих сходное произношение. Эта функция более точна, чем soundex(), так как учитывает основные правила произношения английского языка. Длина возвращаемой строки не фиксирована.

Функция metaphone была написана Lawrence Philips <lphilips at verity dot com> и описана в книге ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

Список параметров

string

Входная строка.

max_phonemes

Этот параметр выставляет ограничение в max_phonemes символов на длину возвращаемого ключа metaphone. Однако результирующие фонемы всегда транскрибируются полностью, поэтому длина результирующей строки может быть немного больше, чем phonemes. Значение по умолчанию 0 означает отсутствие ограничений.

Возвращаемые значения

Возвращает ключ metaphone в виде строки.

Список изменений

Версия | Описание
8.0.0 | Функция возвращала false в случае возникновения ошибки.

Примеры

Пример #1 Простой пример использования metaphone()

<?php
var_dump(metaphone('programming'));
var_dump(metaphone('programmer'));
?>

Результат выполнения данного примера:

string(7) "PRKRMNK"
string(6) "PRKRMR"

Пример #2 Использование параметра max_phonemes

<?php
var_dump(metaphone('programming', 5));
var_dump(metaphone('programmer', 5));
?>

Результат выполнения данного примера:

string(5) "PRKRM"
string(5) "PRKRM"

Пример #3 Использование параметра max_phonemes

В этом примере metaphone() предлагается создать строку из пяти символов, но для этого потребуется разделить последнюю фонему ('x' предполагается преобразовать в 'KS'), поэтому функция возвращает строку из шести символов.

<?php
var_dump(metaphone('Asterix', 5));
?>

Результат выполнения данного примера:

string(6) "ASTRKS"


Форматирует число как денежную величину

  • « metaphone
  • nl_langinfo »
  • PHP Manual
  • Функции для работы со строками
  • Форматирует число как денежную величину

money_format

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

money_format — Форматирует число как денежную величину

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

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.

Список изменений

Версия | Описание
7.4.0 | Функция устарела. Вместо неё используйте NumberFormatter::formatCurrency().

Примеры

Пример #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% скидки)

?>

Примечания

Замечание:

Функция money_format() определена только если в системе присутствует функция strfmon. Например, в Windows она отсутствует, поэтому money_format() не определена в Windows.

Замечание:

На работу этой функции влияет установка категории LC_MONETARY текущей локали. Перед использованием этой функции установите нужную локаль с помощью setlocale().

Смотрите также

  • setlocale() - Устанавливает настройки локали
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • sprintf() - Возвращает отформатированную строку
  • printf() - Выводит отформатированную строку
  • number_format() - Форматирует число с разделением групп


Возвращает информацию о языке и локали

  • « money_format
  • nl2br »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает информацию о языке и локали

nl_langinfo

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

nl_langinfo — Возвращает информацию о языке и локали

Описание

nl_langinfo(int $item): string|false

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 передан неправильно.

Примеры

Пример #1 Пример использования nl_langinfo()

<?php

var_dump(nl_langinfo(CODESET));
var_dump(nl_langinfo(YESEXPR));
?>

Результатом выполнения данного примера будет что-то подобное:

string(14) "ANSI_X3.4-1968"
string(5) "^[yY]"

Примечания

Замечание: Для Windows-платформ эта функция не реализована.

Смотрите также

  • setlocale() - Устанавливает настройки локали
  • localeconv() - Возвращает информацию о форматировании чисел


Вставляет HTML-код разрыва строки перед каждым переводом строки

  • « nl_langinfo
  • number_format »
  • PHP Manual
  • Функции для работы со строками
  • Вставляет HTML-код разрыва строки перед каждым переводом строки

nl2br

(PHP 4, PHP 5, PHP 7, PHP 8)

nl2br — Вставляет HTML-код разрыва строки перед каждым переводом строки

Описание

nl2br(string $string, bool $use_xhtml = true): string

Возвращает строку string, в которой перед каждым переводом строки (\r\n, \n\r, \n и \r) вставлен <br /> или <br>.

Список параметров

string

Входная строка.

use_xhtml

Использовать ли совместимые с XHTML переводы строк или нет.

Возвращаемые значения

Возвращает изменённую строку.

Примеры

Пример #1 Пример использования nl2br()

<?php
echo nl2br("foo - это вам не\n bar");
?>

Результат выполнения данного примера:

foo - это вам не<br />
 bar

Пример #2 Генерирование корректной HTML-вёрстки с помощью параметра use_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 />

Смотрите также

  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • wordwrap() - Переносит строку по указанному количеству символов
  • str_replace() - Заменяет все вхождения строки поиска на строку замены


Форматирует число с разделением групп

  • « nl2br
  • ord »
  • PHP Manual
  • Функции для работы со строками
  • Форматирует число с разделением групп

number_format

(PHP 4, PHP 5, PHP 7, PHP 8)

number_format — Форматирует число с разделением групп

Описание

number_format(
float $num,
int $decimals = 0,
?string $decimal_separator = ".",
?string $thousands_separator = ","
): string

Форматирует число сгруппированными тысячными и, возможно, десятичными цифрами, используя математическое правило округления.

Список параметров

num

Форматируемое число.

decimals

Устанавливает число знаков после запятой. Если 0, decimal_separator опускается в возвращаемом значении.

decimal_separator

Устанавливает разделитель дробной части.

thousands_separator

Устанавливает разделитель тысяч.

Возвращаемые значения

Отформатированное число num.

Список изменений

Версия | Описание
8.0.0 | До этой версии функция number_format() принимала один, два или четыре параметра (но не три).
7.2.0 | number_format() была изменена, чтобы не возвращать -0, ранее -0 могло быть возвращено в случаях, когда num был -0.01.

Примеры

Пример #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, PHP 8)

ord — Конвертирует первый байт строки в число от 0 до 255

Описание

ord(string $character): int

Интерпретирует бинарное значение первого байта строки character как беззнаковое целое.

Если строка создана в однобайтовой кодировке, такой как ASCII, ISO-8859 или Windows 1252, результат функции будет эквивалентен позиции символа в соответствующей таблице кодировки. В любом случае, эта функция ничего не знает про кодировки и не сможет вернуть кодовую точку первого символа строки, закодированной в многобайтовой кодировке, такой как UTF-8 или UTF-16.

Эта функция дополняет функцию chr().

Список параметров

character

Символ.

Возвращаемые значения

Целое число от 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() - Получает кодовую точку символа Unicode
  • IntlChar::ord() - Получить код символ Unicode


Разбирает строку в переменные

  • « ord
  • print »
  • PHP Manual
  • Функции для работы со строками
  • Разбирает строку в переменные

parse_str

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_str — Разбирает строку в переменные

Описание

parse_str(string $string, array &$result): void

Разбирает строку string, которая должна иметь формат строки запроса URL и присваивает значения переменным в текущем контексте (или заносит в массив, если задан параметр result).

Список параметров

string

Входная строка.

result

Если указан второй параметр result, то вместо присвоения переменных в текущем контексте они будут сохранены в этом параметре в качестве элементов массива.

Внимание

Использовать эту функцию без параметра result крайне НЕ РЕКОМЕНДУЕТСЯ. Подобное использование объявлено УСТАРЕВШИМ с PHP 7.2. Начиная с PHP 8.0.0, параметр result является обязательным.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | result больше не является необязательным.
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.

Смотрите также

  • parse_url() - Разбирает URL и возвращает его компоненты
  • pathinfo() - Возвращает информацию о пути к файлу
  • http_build_query() - Генерирует URL-кодированную строку запроса
  • urldecode() - Декодирование URL-кодированной строки


Выводит строку

  • « parse_str
  • printf »
  • PHP Manual
  • Функции для работы со строками
  • Выводит строку

print

(PHP 4, PHP 5, PHP 7, PHP 8)

print — Выводит строку

Описание

print(string $expression): int

Выводит expression.

print - это не функция, а языковая конструкция. Его аргумент - это выражение после ключевого слова print, не ограниченное круглыми скобками.

Главное отличие от echo в том, что print принимает только один аргумент и всегда возвращает 1.

Список параметров

expression

Выражение для вывода. Нестроковые значения будут преобразованы в строки, даже если включена директива strict_types.

Возвращаемые значения

Всегда возвращает 1.

Примеры

Пример #1 Примеры использования print

<?php
print "print не требует скобок.";

// Новая строка или пробел не добавляются; ниже выводит "приветмир" в одну строку
print "привет";
print "мир";

print "Эта строка занимает
несколько строк. Новые строки
также будут выведены";

print "Эта строка занимает\nнесколько строк. Новые строки\nтакже будут выведены";

// Аргументом может быть любое выражение, производящее строку
$foo = "пример";
print "пример - это $foo"; // пример - это пример

$fruits = ["лимон", "апельсин", "банан"];
print implode(" и ", $fruits); // лимон и апельсин и банан

// Нестроковые выражения приводятся к строковым, даже если используется declare(strict_types=1)
print 6 * 7; // 42

// Поскольку print имеет возвращаемое значение, его можно использовать в выражениях
// Следующие выходные данные "привет мир"
if ( print "привет" ) {
echo " мир";
}

// следующее выражение выведет "true"
( 1 === 1 ) ? print 'true' : print 'false';
?>

Примечания

Замечание: Использование с круглыми скобками

Заключение аргумента print в круглые скобки не вызовет синтаксической ошибки и создаст синтаксис, который выглядит как обычный вызов функции. Однако это может ввести в заблуждение, поскольку круглые скобки на самом деле являются частью выводимого выражения, а не частью самого синтаксиса print.

<?php
print "привет";
// выведет "привет"

print("привет");
// также выведет "привет", потому что ("привет") - корректное выражение

print(1 + 2) * 3;
// выведет "9"; круглые скобки приводят к тому, что сначала вычисляется 1+2, а затем 3*3
// оператор print видит все выражение как один аргумент

if ( print("привет") && false ) {
print " - внутри if";
}
else {
print " - внутри else";
}
// выведет " - внутри if"
// сначала вычисляется выражение ("привет") && false, давая false
// это приводится к пустой строке "" и выводится
// конструкция print затем возвращает 1, поэтому выполняется код в блоке if
?>

При использовании print в более крупном выражении может потребоваться размещение ключевого слова и его аргумента в круглых скобках для получения желаемого результата:

<?php
if ( (print "привет") && false ) {
print " - внутри if";
}
else {
print " - внутри else";
}
// выведет "привет - внутри else"
// в отличие от предыдущего примера, выражение (print "привет") вычисляется первым
// после вывода "привет" print возвращает 1
// поскольку 1 && false ложно, выполняется код в блоке else

print "привет " && print "мир";
// выведет "мир1"; print "мир" выполняется в первую очередь,
// тогда выражение "привет" && 1 передается в левую часть print

(print "привет ") && (print "мир");
// выведет "привет мир"; круглые скобки заставляют выражения print
// выполнятьтся перед &&
?>

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций или именованных аргументов.

Смотрите также

  • echo - Выводит одну или более строк
  • printf() - Выводит отформатированную строку
  • flush() - Сброс системного буфера вывода
  • Способы работы со строками


Выводит отформатированную строку

  • « print
  • quoted_printable_decode »
  • PHP Manual
  • Функции для работы со строками
  • Выводит отформатированную строку

printf

(PHP 4, PHP 5, PHP 7, PHP 8)

printf — Выводит отформатированную строку

Описание

printf(string $format, mixed ...$values): int

Выводит строку, отформатированную в соответствии с аргументом format.

Список параметров

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Либо целое число, указывающее, сколько символов (минимум) должно получиться в результате преобразования, либо *. Если используется *, то ширина предоставляется как дополнительное целое значение, предшествующее значению, отформатированному спецификатором.

Точность

Точка ., с последующим целым числом, либо *, значение которого зависит от спецификатора:

  • Для спецификаторов e, E, f и F: задаёт количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g,G, h и H: задаёт максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задаёт ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0. Если используется *, точность предоставляется как дополнительное целое значение, предшествующее значению, отформатированному спецификатором.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учётом локали).
F | Аргумент считается за число с плавающей точкой (без учёта локали).
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 — если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и f.
h | Аналогично спецификатору g, но использует F. Доступен с PHP 8.0.0.
H | Аналогично спецификатору g, но использует E и F. Доступен с PHP 8.0.0.
o | Аргумент рассматривается как целое число и печатается в восьмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззнаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Возвращаемые значения

Возвращает длину выводимой строки.

Ошибки

Начиная с PHP 8.0.0, если количество аргументов равно нулю, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если [width] меньше нуля или больше PHP_INT_MAX, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если [precision] меньше нуля или больше PHP_INT_MAX, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если аргументов задано меньше, чем требуется, выбрасывается исключение ArgumentCountError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает false в случае возникновения ошибки.
8.0.0 | Выбрасывает исключение ValueError, если количество аргументов равно нулю; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ValueError, если [width] меньше нуля или больше PHP_INT_MAX; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ValueError, если [precision] меньше нуля или больше PHP_INT_MAX; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ArgumentCountError, если аргументов задано меньше, чем требуется; ранее функция выдавала ошибку уровня E_WARNING.

Примеры

Пример #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("[%'#*s]\n", 10, $s); // укажите ширину отступа в качестве дополнительного аргумента
printf("[%10.9s]\n", $t); // выравнивание вправо с отсечкой в 9 символов
printf("[%-10.9s]\n", $t); // выравнивание влево с отсечкой в 9 символов
?>

Результат выполнения данного примера:

[monkey]
[    monkey]
[monkey    ]
[0000monkey]
[####monkey]
[####monkey]
[ many monk]
[many monk ]

Смотрите также

  • print - Выводит строку
  • sprintf() - Возвращает отформатированную строку
  • fprintf() - Записывает отформатированную строку в поток
  • vprintf() - Выводит отформатированную строку
  • vsprintf() - Возвращает отформатированную строку
  • vfprintf() - Записывает отформатированную строку в поток
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • number_format() - Форматирует число с разделением групп
  • date() - Форматирует временную метку Unix
  • flush() - Сброс системного буфера вывода


Преобразует строку, закодированную методом quoted-printable в 8-битную строку

  • « printf
  • quoted_printable_encode »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует строку, закодированную методом quoted-printable в 8-битную строку

quoted_printable_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

quoted_printable_decode — Преобразует строку, закодированную методом quoted-printable в 8-битную строку

Описание

quoted_printable_decode(string $string): string

Эта функция возвращает 8-битную бинарную строку, соответствующую указанной строке в кодировке quoted-printable (в соответствии с разделом 6.7 » RFC2045, а не разделом 4.5.2 » RFC2821, то есть дополнительные точки не будут вырезаны из начала строки).

Эта функция подобна функции imap_qprint(), но не требует для своей работы модуля IMAP.

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает 8-битную бинарную строку.

Примеры

Пример #1 Пример использования quoted_printable_decode()

<?php

$encoded = quoted_printable_encode('Mochten Sie ein paar Apfel?');

var_dump($encoded);
var_dump(quoted_printable_decode($encoded));
?>

Результат выполнения данного примера:

string(37) "M=C3=B6chten Sie ein paar =C3=84pfel?"
string(29) "Mochten Sie ein paar Apfel?"

Смотрите также

  • 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, PHP 8)

quoted_printable_encode — Преобразует 8-битную строку с помощью метода quoted-printable

Описание

quoted_printable_encode(string $string): string

Возвращает строку, закодированную в формат quoted-printable в соответствии с разделом 6.7 » RFC2045.

Эта функция подобна функции imap_8bit(), за исключением того, что не требует для своей работы модуля IMAP.

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает закодированную строку.

Примеры

Пример #1 Пример использования quoted_printable_encode()

<?php

$encoded = quoted_printable_encode('Mochten Sie ein paar Apfel?');

var_dump($encoded);
var_dump(quoted_printable_decode($encoded));
?>

Результат выполнения данного примера:

string(37) "M=C3=B6chten Sie ein paar =C3=84pfel?"
string(29) "Mochten Sie ein paar Apfel?"

Смотрите также

  • quoted_printable_decode() - Преобразует строку, закодированную методом quoted-printable в 8-битную строку
  • iconv_mime_encode() - Создаёт поле MIME-заголовка


Экранирует специальные символы

  • « quoted_printable_encode
  • rtrim »
  • PHP Manual
  • Функции для работы со строками
  • Экранирует специальные символы

quotemeta

(PHP 4, PHP 5, PHP 7, PHP 8)

quotemeta — Экранирует специальные символы

Описание

quotemeta(string $string): string

Возвращает модифицированную строку, в которой перед каждым символом из следующего списка:

. \ + * ? [ ^ ] ( $ )
вставлен обратный слеш (\).

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает экранированную строку или false, если в качестве параметра string была указана пустая строка.

Примеры

Пример #1 Пример использования quotemeta()

<?php

var_dump(quotemeta('PHP is a popular scripting language. Fast, flexible, and pragmatic.'));
?>

Результат выполнения данного примера:

string(69) "PHP is a popular scripting language\. Fast, flexible, and pragmatic\."

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • addslashes() - Экранирует строку с помощью слешей
  • addcslashes() - Экранирует строку слешами в стиле языка C
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • nl2br() - Вставляет HTML-код разрыва строки перед каждым переводом строки
  • stripslashes() - Удаляет экранирование символов
  • stripcslashes() - Удаляет экранирование символов, произведённое функцией addcslashes
  • preg_quote() - Экранирует символы в регулярных выражениях


Удаляет пробелы (или другие символы) из конца строки

  • « quotemeta
  • setlocale »
  • PHP Manual
  • Функции для работы со строками
  • Удаляет пробелы (или другие символы) из конца строки

rtrim

(PHP 4, PHP 5, PHP 7, PHP 8)

rtrim — Удаляет пробелы (или другие символы) из конца строки

Описание

rtrim(string $string, string $characters = " \n\r\t\v\x00"): string

Эта функция возвращает строку string с удалёнными из конца строки пробельными (или другими) символами.

Если второй параметр не передан, rtrim() удаляет следующие символы:

  • " " (ASCII 32 (0x20)), обычный пробел.
  • "\t" (ASCII 9 (0x09)), символ табуляции.
  • "\n" (ASCII 10 (0x0A)), символ перевода строки.
  • "\r" (ASCII 13 (0x0D)), символ возврата каретки.
  • "\0" (ASCII 0 (0x00)), NULL-байт.
  • "\v" (ASCII 11 (0x0B)), вертикальная табуляция.

Список параметров

string

Входная строка.

characters

С помощью параметра characters можно также указать удаляемые символы. Просто перечислите все символы, которые вы хотите удалить. Можно указать конструкцию .. для обозначения диапазона символов.

Возвращаемые значения

Возвращает модифицированную строку.

Примеры

Пример #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, PHP 8)

setlocale — Устанавливает настройки локали

Описание

setlocale(int $category, string $locales, string ...$rest): string|false

Альтернативная сигнатура (не поддерживается с именованными аргументами):

setlocale(int $category, array $locale_array): string|false

Устанавливает настройки локали.

Внимание

Информация о локали модифицируется во всем процессе, а не по каждому потоку отдельно. Если вы используете PHP на многопоточном сервере, вы можете обнаружить неожиданные изменения в настройках локали во время выполнения скриптов, никогда и не вызывавших setlocale(). Это происходит из-за того, что другие скрипты, запущенные в параллельных потоках данного процесса, в то же самое время поменяли настройки локали для всего процесса с помощью setlocale(). В Windows информация о локали поддерживается для каждого потока, начиная с PHP 7.0.5.

Список параметров

category

Параметр category - это именованная константа, определяющая категорию функций, на которые будет влиять установка локали:

  • LC_ALL - все нижеперечисленное
  • LC_COLLATE - функции сравнения строк, смотрите strcoll()
  • LC_CTYPE - функции преобразования и классификации строк, например ctype_alpha()
  • LC_MONETARY - для функции localeconv()
  • LC_NUMERIC - задаёт символ десятичного разделения (смотрите также localeconv())
  • LC_TIME - форматирование даты/времени функцией strftime()
  • LC_MESSAGES - для системных сообщений (доступна, если PHP был скомпилирован с поддержкой libintl)

locales

Если в качестве locales передана пустая строка "" или null, имена локалей будут взяты из одноимённых переменных окружения или переменной с именем "LANG".

Если в качестве locales передан "0", локаль изменена не будет, а будет возвращено текущее значение.

Если в качестве locales передан массив, или после этого аргумента следуют дополнительные аргументы, функция будет использовать элементы массива или аргументы по порядку в качестве имён локали до тех пор, пока установка локали не будет успешной. Это удобно, если одна и та же локаль имеет разное имя в различных системах, или для создания запасного варианта при отсутствии какой-либо локали в системе.

rest

Необязательные аргументы в виде строк или массивов для установки настроек локали до первой успешной попытки.

locale_array

Каждый элемент массива пытается установить новую локаль до первой успешной попытки. Это полезно, если локаль известна под разными именами в разных системах или для обеспечения запасного варианта для возможно недоступного языкового стандарта.

Замечание:

На Windows setlocale(LC_ALL, '') устанавливает имена локалей из системных региональных/языковых настроек (доступных через Панель Управления).

Возвращаемые значения

Возвращает имя вновь установленной локали или false, если система не поддерживает установку локали, указанная локаль не существует или передано недопустимое имя категории.

Недопустимое имя категории также вызывает предупреждение. Имена локалей и категорий описаны в » RFC 1766 и » ISO 639. Разные системы имеют различные схемы именования локалей.

Замечание:

Возвращаемое функцией setlocale() значение зависит от системы, на которой запущен PHP. Она возвращает точно то же значение, что и системная функция setlocale.

Примеры

Пример #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 найдут полезной информацию о значениях locales на сайте Microsoft MSDN. Поддерживаемые языки перечислены в » документации по языковым строкам, а значения стран/регионов в » документации по строкам стран/регионов.


Возвращает SHA1-хеш файла

  • « setlocale
  • sha1 »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает SHA1-хеш файла

sha1_file

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

sha1_file — Возвращает SHA1-хеш файла

Описание

sha1_file(string $filename, bool $binary = false): string|false

Вычисляет SHA1-хеш файла, имя которого задано аргументом filename, используя алгоритм » US Secure Hash Algorithm 1 и возвращает этот хеш. Хеш - 40-символьное шестнадцатеричное число.

Список параметров

filename

Имя хешируемого файла.

binary

Если установлен в 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;
}
?>

Смотрите также

  • 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, PHP 8)

sha1 — Возвращает SHA1-хеш строки

Внимание

Не рекомендуется использовать эту функцию для обеспечения безопасности хранения паролей ввиду высокой скорости работы данного алгоритма. Более подробно читайте в разделе Ответы на часто задаваемые вопросы по хешированию паролей.

Описание

sha1(string $string, bool $binary = false): string

Возвращает SHA1-хеш строки string, вычисленный по алгоритму » US Secure Hash Algorithm 1.

Список параметров

string

Входная строка.

binary

Если необязательный аргумент binary имеет значение 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, PHP 8)

similar_text — Вычисляет степень похожести двух строк

Описание

similar_text(string $string1, string $string2, float &$percent = null): int

Вычисляет степень похожести двух строк по алгоритму, описанному в Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1). Эта реализация алгоритма не использует стека, использованного в оригинале, вместо этого применяются рекурсивные вызовы, что в некоторых случаях может ускорить процесс. Следует отметить, что сложность алгоритма составляет O(N**3), где N - длина более длинной из двух строк.

Список параметров

string1

Первая строка.

string2

Вторая строка.

Замечание:

Изменение порядка string1 и string2 может привести к другому результату; см, пример ниже.

percent

При передаче по ссылке третьего аргумента, similar_text() присваивает ему степень похожести двух строк в процентах, деля результат similar_text() на среднее число длин заданных строк 100 раз.

Возвращаемые значения

Возвращается количество совпадающих символов в двух строках.

Количество совпадающих символов вычисляется путём нахождения самой длинной первой общей подстроки, а затем делает это для префиксов и суффиксов рекурсивно. Добавляются длины всех найденных общих подстрок.

Примеры

Пример #1 Пример использования similar_text() с заменой аргументов

В этом примере показано, что изменение порядка аргументов string1 и string2 может дать разные результаты.

<?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, PHP 8)

soundex — Возвращает ключ soundex для строки

Описание

soundex(string $string): string

Возвращает ключ soundex для строки string.

Двум словам, имеющим схожее произношение, соответствует один и тот же ключ soundex. Это свойство может быть использовано, например, при поиске по базе данных, когда известно произношение слова и неизвестно его написание.

Данная реализация функции soundex описана Дональдом Кнутом (Donald Knuth) в книге "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), стр. 391-392.

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает ключ soundex в виде строки (string). Возвращает ключ soundex в виде строки (string) с четырьмя символами. Если в string содержится хотя бы одна буква, возвращаемая строка начинается с буквы. В противном случае возвращается "0000".

Список изменений

Версия | Описание
8.0.0 | До этой версии при вызове функции с пустой строкой возвращалось 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, PHP 8)

sprintf — Возвращает отформатированную строку

Описание

sprintf(string $format, mixed ...$values): string

Возвращает строку, созданную с использованием строки формата format.

Список параметров

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Либо целое число, указывающее, сколько символов (минимум) должно получиться в результате преобразования, либо *. Если используется *, то ширина предоставляется как дополнительное целое значение, предшествующее значению, отформатированному спецификатором.

Точность

Точка ., с последующим целым числом, либо *, значение которого зависит от спецификатора:

  • Для спецификаторов e, E, f и F: задаёт количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g,G, h и H: задаёт максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задаёт ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0. Если используется *, точность предоставляется как дополнительное целое значение, предшествующее значению, отформатированному спецификатором.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учётом локали).
F | Аргумент считается за число с плавающей точкой (без учёта локали).
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 — если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и f.
h | Аналогично спецификатору g, но использует F. Доступен с PHP 8.0.0.
H | Аналогично спецификатору g, но использует E и F. Доступен с PHP 8.0.0.
o | Аргумент рассматривается как целое число и печатается в восьмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззнаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Возвращаемые значения

Возвращает строку, отформатированную в соответствии с форматом format.

Ошибки

Начиная с PHP 8.0.0, если количество аргументов равно нулю, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если [width] меньше нуля или больше PHP_INT_MAX, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если [precision] меньше нуля или больше PHP_INT_MAX, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если аргументов задано меньше, чем требуется, выбрасывается исключение ArgumentCountError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает false в случае возникновения ошибки.
8.0.0 | Выбрасывает исключение ValueError, если количество аргументов равно нулю; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ValueError, если [width] меньше нуля или больше PHP_INT_MAX; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ValueError, если [precision] меньше нуля или больше PHP_INT_MAX; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ArgumentCountError, если аргументов задано меньше, чем требуется; ранее функция выдавала ошибку уровня E_WARNING.

Примеры

Пример #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() - Форматирует временную метку Unix


Разбирает строку в соответствии с заданным форматом

  • « sprintf
  • str_contains »
  • PHP Manual
  • Функции для работы со строками
  • Разбирает строку в соответствии с заданным форматом

sscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

sscanf — Разбирает строку в соответствии с заданным форматом

Описание

sscanf(string $string, string $format, mixed &...$vars): array|int|null

Функция sscanf() похожа на функцию printf(), но используется не для вывода, а для ввода данных. sscanf() интерпретирует строку string в соответствии с форматом format.

Любые пробельные символы в строке формата соответствуют любым пробельным символам во входной строке. Это значит, что, например, символ табуляции (\t) в строке формата соответствует символу пробела во входной строке.

Список параметров

string

Обрабатываемая строка (string).

format

Интерпретируемый формат для параметра string, который описан в документации функции sprintf() со следующими отличиями:

  • Функция не ориентирована на локализацию.
  • Не поддерживаются значения F, g, G и b.
  • D обозначает десятичное число.
  • i обозначает целое число с определением системы счисления.
  • n обозначает количество символов, обработанных на данный момент.
  • s останавливает чтение на любом символе пробела.
  • * вместо argnum$ подавляет присвоение данной спецификации преобразования.

vars

Необязательные переменные, передаваемые по ссылке, которым будут присвоены считанные значения.

Возвращаемые значения

Если переданы только эти два аргумента, будет возвращён массив. В противном случае, считанные из строки значения будут присвоены переменным, переданным через дополнительные аргументы, и будет возвращено количество присвоенных значений. Дополнительные аргументы должны передаваться по ссылке.

Если ожидается больше подстрок в параметре format, чем доступно в параметре str, то будет возвращено значение null.

Примеры

Пример #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() - Форматирует временную метку Unix


Определяет, содержит ли строка заданную подстроку

  • « sscanf
  • str_decrement »
  • PHP Manual
  • Функции для работы со строками
  • Определяет, содержит ли строка заданную подстроку

str_contains

(PHP 8)

str_contains — Определяет, содержит ли строка заданную подстроку

Описание

str_contains(string $haystack, string $needle): bool

Выполняет проверку с учётом регистра, указывающую, содержится ли needle в haystack.

Список параметров

haystack

Строка для поиска.

needle

Подстрока для поиска в haystack.

Возвращаемые значения

Возвращает true, если needle содержится в haystack, false в противном случае.

Примеры

Пример #1 Пример использования пустой строки ''

<?php
if (str_contains('абв', '')) {
echo "Проверка существования пустой строки всегда возвращает true";
}
?>

Результат выполнения данного примера:

Проверка существования пустой строки всегда возвращает true

Пример #2 Демонстрация чувствительности к регистру

<?php
$string = 'ленивая лиса перепрыгнула через забор';

if (str_contains($string, 'ленивая')) {
echo "Строка 'ленивая' найдена в проверяемой строке\n";
}

if (str_contains($string, 'Ленивая')) {
echo 'Строка "Ленивая" найдена в проверяемой строке';
} else {
echo '"Ленивая" не найдена потому что регистр не совпадает';
}

?>

Результат выполнения данного примера:

Строка 'ленивая' найдена в проверяемой строке
"Ленивая" не найдена потому что регистр не совпадает

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • str_ends_with() - Проверяет, заканчивается ли строка заданной подстрокой
  • str_starts_with() - Проверяет, начинается ли строка с заданной подстроки
  • stripos() - Возвращает позицию первого вхождения подстроки без учёта регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • strripos() - Возвращает позицию последнего вхождения подстроки без учёта регистра
  • strstr() - Находит первое вхождение подстроки
  • strpbrk() - Ищет в строке любой символ из заданного набора
  • substr() - Возвращает подстроку
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Уменьшает на единицу буквенно-цифровую строку

  • « str_contains
  • str_ends_with »
  • PHP Manual
  • Функции для работы со строками
  • Уменьшает на единицу буквенно-цифровую строку

str_decrement

(PHP 8 >= 8.3.0)

str_decrement — Уменьшает на единицу буквенно-цифровую строку

Описание

str_decrement(string $string): string

Возвращает уменьшенную буквенно-цифровую строку string, состоящую из символов в кодировке ASCII.

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает уменьшенную буквенно-цифровую строку, состоящую из ASCII-символов.

Ошибки

Будет выброшено исключение ValueError, если входная строка string пустая.

Будет выброшено исключение ValueError, если входная строка string состоит не из ASCII-символов.

Будет выброшено исключение ValueError, если входная строка string не может быть уменьшена. Например, "A" или "0".

Примеры

Пример #1 Базовый пример использования str_decrement()

<?php
$str = 'ABC';
var_dump(str_decrement($str));
?>

Результат выполнения данного примера:

string(3) "ABB"

Пример #2 Пример использования str_decrement() с переносом (уменьшением высшего разряда или разрядности)

<?php
$str = 'ZA';
var_dump(str_decrement($str));

$str = 'AA';
var_dump(str_decrement($str));
?>

Результат выполнения данного примера:

string(2) "YZ"
string(1) "Z"

Смотрите также

  • str_increment() - Увеличивает на единицу буквенно-цифровую строку


Проверяет, заканчивается ли строка заданной подстрокой

  • « str_decrement
  • str_getcsv »
  • PHP Manual
  • Функции для работы со строками
  • Проверяет, заканчивается ли строка заданной подстрокой

str_ends_with

(PHP 8)

str_ends_with — Проверяет, заканчивается ли строка заданной подстрокой

Описание

str_ends_with(string $haystack, string $needle): bool

Выполняет проверку с учётом регистра, указывающую, заканчивается ли haystack подстрокой needle.

Список параметров

haystack

Строка для поиска.

needle

Подстрока для поиска в haystack.

Возвращаемые значения

Возвращает true, если haystack заканчивается подстрокой needle, false в противном случае.

Примеры

Пример #1 Использование пустой строки ''

<?php
if (str_ends_with('абв', '')) {
echo "Все строки заканчиваются пустой строкой";
}
?>

Результат выполнения данного примера:

Все строки заканчиваются пустой строкой

Пример #2 Демонстрация чувствительности к регистру

<?php
$string = 'ленивая лиса перепрыгнула через забор';

if (str_ends_with($string, 'забор')) {
echo "Строка заканчивается на 'забор'\n";
}

if (str_ends_with($string, 'Забор')) {
echo 'Строка заканчивается на "Забор"';
} else {
echo '"Забор" не найден, потому что регистр не соответствует';
}

?>

Результат выполнения данного примера:

Строка заканчивается на 'забор'
"Забор" не найден, потому что регистр не соответствует

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • str_contains() - Определяет, содержит ли строка заданную подстроку
  • str_starts_with() - Проверяет, начинается ли строка с заданной подстроки
  • stripos() - Возвращает позицию первого вхождения подстроки без учёта регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • strripos() - Возвращает позицию последнего вхождения подстроки без учёта регистра
  • strstr() - Находит первое вхождение подстроки
  • strpbrk() - Ищет в строке любой символ из заданного набора
  • substr() - Возвращает подстроку
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Выполняет разбор CSV-строки в массив

  • « str_ends_with
  • str_increment »
  • PHP Manual
  • Функции для работы со строками
  • Выполняет разбор CSV-строки в массив

str_getcsv

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

str_getcsv — Выполняет разбор CSV-строки в массив

Описание

str_getcsv(
string $string,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\"
): array

Данная функция выполняет разбор строки в формате CSV и возвращает массив с полученными из строки полями.

Замечание:

Эта функция принимает во внимание настройки локали. К примеру, если LC_CTYPE установлена в en_US.UTF-8, то строки в однобайтовой кодировке будут неправильно прочитаны этой функцией.

Список параметров

string

Обрабатываемая строка.

separator

Устанавливает разделитель поля (только один однобайтовый символ).

enclosure

Устанавливает символ ограничителя поля (только один однобайтовый символ).

escape

Устанавливает экранирующий символ (не более одного однобайтового символа). По умолчанию равен обратному слешу (\). Пустая строка ("") отключает проприетарный механизм экранирования.

Замечание: Обычно символ enclosure экранируется внутри поля путём его удваивания; однако, символ escape в качестве альтернативы. Поэтому значения по умолчанию этих параметров "" и \" имеют одинаковое значение. Помимо разрешения экранировать символ enclosure символ escape не имеет особого смысла; он даже не предназначен для самого экранирования.

Возвращаемые значения

Возвращает индексированный массив, содержащий полученные из строки поля.

Список изменений

Версия | Описание
7.4.0 | Теперь пустой параметр escape будет интерпретироваться как требование отключения проприетарного механизма экранирования. Ранее пустая строка обозначала использование символа экранирования по умолчанию.

Примеры

Пример #1 Пример использования str_getcsv()

<?php

$string = 'PHP,Java,Python,Kotlin,Swift';
$data = str_getcsv($string);

var_dump($data);
?>

Результат выполнения данного примера:

array(5) {
  [0]=>
  string(3) "PHP"
  [1]=>
  string(4) "Java"
  [2]=>
  string(6) "Python"
  [3]=>
  string(6) "Kotlin"
  [4]=>
  string(5) "Swift"
}

Пример #2 Пример использования str_getcsv() с пустой строкой

Предостережение

При использовании пустой строки функция возвращает значение [null] вместо пустого массива.

<?php

$string = '';
$data = str_getcsv($string);

var_dump($data);
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  NULL
}

Смотрите также

  • fgetcsv() - Читает строку из файла и производит разбор данных CSV


Увеличивает на единицу буквенно-цифровую строку

  • « str_getcsv
  • str_ireplace »
  • PHP Manual
  • Функции для работы со строками
  • Увеличивает на единицу буквенно-цифровую строку

str_increment

(PHP 8 >= 8.3.0)

str_increment — Увеличивает на единицу буквенно-цифровую строку

Описание

str_increment(string $string): string

Возвращает увеличенную буквенно-цифровую строку string, состоящую из символов в кодировке ASCII.

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает увеличенную буквенно-цифровую строку, состоящую из ASCII-символов.

Ошибки

Будет выброшено исключение ValueError, если входная строка string пустая.

Будет выброшено исключение ValueError, если входная строка string состоит не из ASCII-символов.

Примеры

Пример #1 Базовый пример использования str_increment()

<?php
$str = 'ABC';
var_dump(str_increment($str));
?>

Результат выполнения данного примера:

string(3) "ABD"

Пример #2 Пример использования str_increment() с переносом (увеличением высшего разряда или разрядности)

<?php
$str = 'DZ';
var_dump(str_increment($str));

$str = 'ZZ';
var_dump(str_increment($str));
?>

Результат выполнения данного примера:

string(2) "EA"
string(3) "AAA"

Смотрите также

  • str_decrement() - Уменьшает на единицу буквенно-цифровую строку


Регистронезависимый вариант функции str_replace

  • « str_increment
  • str_pad »
  • PHP Manual
  • Функции для работы со строками
  • Регистронезависимый вариант функции str_replace

str_ireplace

(PHP 5, PHP 7, PHP 8)

str_ireplace — Регистронезависимый вариант функции str_replace()

Описание

str_ireplace(
array|string $search,
array|string $replace,
string|array $subject,
int &$count = null
): string|array

Эта функция возвращает строку или массив, в котором все вхождения 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

Если передан, то будет установлен в количество произведённых замен.

Возвращаемые значения

Возвращает строку или массив с заменёнными значениями.

Список изменений

Версия | Описание
8.2.0 | Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale(). Будут преобразованы только символы ASCII. Байты не ASCII-кодировке будут сравниваться по значению байта.

Примеры

Пример #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, PHP 8)

str_pad — Дополняет строку другой строкой до заданной длины

Описание

str_pad(
string $string,
int $length,
string $pad_string = " ",
int $pad_type = STR_PAD_RIGHT
): string

Эта функция возвращает строку string, дополненную слева, справа или с обеих сторон до заданной длины. Если необязательный аргумент pad_string не передан, то string будет дополнен пробелами, иначе он будет дополнен символами из pad_string до нужной длины.

Список параметров

string

Входная строка.

length

Желаемая длина итоговой дополненной строки. Если значение length отрицательно, меньше или равно длине входной строки, то дополнения не происходит и возвращается исходная строка string.

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"
?>

Смотрите также

  • mb_str_pad() - Дополняет мультибайтовую строку другой мультибайтовой строкой до заданной длины


Возвращает повторяющуюся строку

  • « str_pad
  • str_replace »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает повторяющуюся строку

str_repeat

(PHP 4, PHP 5, PHP 7, PHP 8)

str_repeat — Возвращает повторяющуюся строку

Описание

str_repeat(string $string, int $times): string

Возвращает строку string, повторенную times раз.

Список параметров

string

Повторяемая строка.

times

Количество раз, которые нужно повторить строку string.

times должен быть больше или равен нулю. Если times равен нулю, возвращается пустая строка.

Возвращаемые значения

Возвращает повторяющуюся строку.

Примеры

Пример #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, PHP 8)

str_replace — Заменяет все вхождения строки поиска на строку замены

Описание

str_replace(
array|string $search,
array|string $replace,
string|array $subject,
int &$count = null
): string|array

Эта функция возвращает строку или массив, в котором все вхождения 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, PHP 8)

str_rot13 — Выполняет преобразование ROT13 над строкой

Описание

str_rot13(string $string): string

Выполняет над строкой string преобразование ROT13 и возвращает полученную строку.

Преобразование ROT13 заключается в простом сдвиге каждой латинской буквы на 13 позиций в алфавите, остальные символы не изменяются. Обратное преобразование выполняется той же функцией, так как передача закодированной строки в качестве аргумента вернёт её оригинальную версию.

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает версию 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, PHP 8)

str_shuffle — Переставляет символы в строке случайным образом

Описание

str_shuffle(string $string): string

str_shuffle() перемешивает символы в строке. Выбирается одна возможная перестановка из всех возможных.

Предостережение

Функция не создаёт криптографически защищённые значения и не должна использоваться для криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для разгадывания.

Если требуется криптографически безопасная случайная последовательность, Random\Randomizer может использоваться с движком Random\Engine\Secure. Для простых случаев использования функции random_int() и random_bytes() предоставляют удобный и безопасный API, поддерживаемый CSPRNG операционной системы.

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает перемешанную строку.

Список изменений

Версия | Описание
7.1.0 | Внутренний алгоритм получения случайных чисел изменён с функции rand библиотеки libc на генератор на базе » Вихря Мерсена.

Примеры

Пример #1 Пример использования str_shuffle()

<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// выведет что-то вроде этого: bfdaec
echo $shuffled;
?>

Смотрите также

  • Random\Randomizer::shuffleBytes() - Получает байтовую перестановку строки
  • Random\Randomizer::shuffleArray() - Получает перестановку массива


Преобразует строку в массив

  • « str_shuffle
  • str_starts_with »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует строку в массив

str_split

(PHP 5, PHP 7, PHP 8)

str_split — Преобразует строку в массив

Описание

str_split(string $string, int $length = 1): array

Преобразует строку в массив.

Список параметров

string

Входная строка.

length

Максимальная длина фрагмента.

Возвращаемые значения

Если указан необязательный параметр length, возвращаемый массив будет разбит на фрагменты, каждый из которых будет иметь длину length, за исключением последнего фрагмента, который может быть короче, если строка делится неравномерно. По умолчанию параметр length равен 1, то есть размер каждого фрагмента будет один байт.

Ошибки

Если параметр length меньше 1, будет выброшена ошибка ValueError.

Список изменений

Версия | Описание
8.2.0 | Если параметр string не задан, теперь возвращается пустой массив (array). Ранее возвращался массив (array), содержащий одну пустую строку
8.0.0 | Теперь если параметр length меньше 1, будет выброшена ошибка ValueError; ранее, вместо этого выдавалась ошибка уровня E_WARNING, а функция возвращала false.

Примеры

Пример #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() производит разбивку по байтам, а не по символам, в случае использования строк в многобайтных кодировках. Используйте функцию mb_str_split(), чтобы разбить строку на кодовые точки.

Смотрите также

  • mb_str_split() - Если задана многобайтовая строка возвращает массив символов
  • chunk_split() - Разбивает строку на фрагменты
  • preg_split() - Разбивает строку по регулярному выражению
  • explode() - Разбивает строку с помощью разделителя
  • count_chars() - Возвращает информацию о символах, входящих в строку
  • str_word_count() - Возвращает информацию о словах, входящих в строку
  • for


Проверяет, начинается ли строка с заданной подстроки

  • « str_split
  • str_word_count »
  • PHP Manual
  • Функции для работы со строками
  • Проверяет, начинается ли строка с заданной подстроки

str_starts_with

(PHP 8)

str_starts_with — Проверяет, начинается ли строка с заданной подстроки

Описание

str_starts_with(string $haystack, string $needle): bool

Выполняет проверку с учётом регистра, указывающую, начинается ли haystack с подстроки needle.

Список параметров

haystack

Строка для поиска.

needle

Подстрока для поиска в haystack.

Возвращаемые значения

Возвращает true, если haystack начинается с needle, false в противном случае.

Примеры

Пример #1 Использование пустой строки ''

<?php
if (str_starts_with('абв', '')) {
echo "Все строки начинаются с пустой строки";
}
?>

Результат выполнения данного примера:

Все строки начинаются с пустой строки

Пример #2 Демонстрация чувствительности к регистру

<?php
$string = 'Ленивая лиса перепрыгнула через забор';

if (str_starts_with($string, 'Ленивая')) {
echo "Строка начинается с 'Ленивая'\n";
}

if (str_starts_with($string, 'ленивая')) {
echo 'Строка начинается с 'ленивая'';
} else {
echo '"ленивая" не найдена, потому что регистр не соответствует';
}

?>

Результат выполнения данного примера:

Строка начинается с 'Ленивая'
"ленивая" не найдена, потому что регистр не соответствует

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • str_contains() - Определяет, содержит ли строка заданную подстроку
  • str_ends_with() - Проверяет, заканчивается ли строка заданной подстрокой
  • stripos() - Возвращает позицию первого вхождения подстроки без учёта регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • strripos() - Возвращает позицию последнего вхождения подстроки без учёта регистра
  • strstr() - Находит первое вхождение подстроки
  • strpbrk() - Ищет в строке любой символ из заданного набора
  • substr() - Возвращает подстроку
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Возвращает информацию о словах, входящих в строку

  • « str_starts_with
  • strcasecmp »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает информацию о словах, входящих в строку

str_word_count

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

str_word_count — Возвращает информацию о словах, входящих в строку

Описание

str_word_count(string $string, int $format = 0, ?string $characters = null): array|int

Подсчитывает количество слов, входящих в строку string. Если необязательный аргумент format не передан, возвращается целое число, равное количеству слов. В случае, если указан аргумент format, возвращается массив, содержимое которого зависит от значения format. Ниже описаны допустимые значения аргумента format и соответствующие им возвращаемые значения.

Для этой функции "слово" обозначает строку с алфавитными символами, зависящую от локали, которая также может содержать символы "'" и "-", но не может начинаться с них. Обратите внимание, что многобайтовые языковые стандарты не поддерживаются.

Список параметров

string

Строка

format

Указывает возвращаемое значение данной функции. На данный момент поддерживаются следующие значения:

  • 0 - возвращает количество найденных слов
  • 1 - возвращается массив, содержащий все слова, входящие в строку string
  • 2 - возвращается массив, индексами которого являются позиции в строке string, а значениями - соответствующие слова.

characters

Список дополнительных символов, которые будут рассматриваться как "слово"

Возвращаемые значения

Возвращает массив или целое число, в зависимости от указанного параметра format.

Список изменений

Версия | Описание
8.0.0 | characters теперь допускает значение null.

Примеры

Пример #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() - Разбивает строку по регулярному выражению
  • count_chars() - Возвращает информацию о символах, входящих в строку
  • substr_count() - Возвращает число вхождений подстроки


Бинарно-безопасное сравнение строк без учёта регистра

  • « str_word_count
  • strchr »
  • PHP Manual
  • Функции для работы со строками
  • Бинарно-безопасное сравнение строк без учёта регистра

strcasecmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strcasecmp — Бинарно-безопасное сравнение строк без учёта регистра

Описание

strcasecmp(string $string1, string $string2): int

Бинарно-безопасное сравнение строк без учёта регистра. Сравнение не зависит от локали; только буквы ASCII сравниваются без учёта регистра.

Список параметров

string1

Первая строка

string2

Вторая строка

Возвращаемые значения

Возвращает -1, если string1 меньше string2, 1, если string1 больше string2, и 0, если строки равны.

Список изменений

Версия | Описание
8.2.0 | Функция теперь возвращает -1 или 1; ранее она возвращала отрицательное или положительное число.

Примеры

Пример #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, PHP 8)

strchr — Псевдоним strstr()

Описание

Функция является псевдонимом: strstr().


Бинарно-безопасное сравнение строк

  • « strchr
  • strcoll »
  • PHP Manual
  • Функции для работы со строками
  • Бинарно-безопасное сравнение строк

strcmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strcmp — Бинарно-безопасное сравнение строк

Описание

strcmp(string $string1, string $string2): int

Эта функция учитывает регистр символов.

Список параметров

string1

Первая строка.

string2

Вторая строка.

Возвращаемые значения

Возвращает -1, если string1 меньше string2, 1, если string1 больше string2, и 0, если строки равны.

Список изменений

Версия | Описание
8.2.0 | Функция теперь возвращает -1 или 1; ранее она возвращала отрицательное или положительное число.

Примеры

Пример #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, PHP 8)

strcoll — Сравнение строк с учётом текущей локали

Описание

strcoll(string $string1, string $string2): int

Обратите внимание, что эта функция учитывает регистр символов, и в отличие от strcmp(), не безопасна для обработки данных в двоичной форме.

strcoll() при сравнении использует установки текущей локали. Если установлена локаль C или POSIX, эта функция аналогична strcmp().

Список параметров

string1

Первая строка.

string2

Вторая строка.

Возвращаемые значения

Возвращает отрицательное число, если string1 меньше string2, положительное число, если string1 больше string2, и 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, PHP 8)

strcspn — Возвращает длину участка в начале строки, не соответствующего маске

Описание

strcspn(
string $string,
string $characters,
int $offset = 0,
?int $length = null
): int

Возвращает длину участка в начале строки string, который не содержит ни одного символа из строки characters.

Если параметры offset и length не указаны, то все содержимое string будет исследовано. Если же эти параметры указаны, то эффект будет таким же, как при вызове strcspn(substr($string, $offset, $length), $characters) (смотрите substr для дополнительной информации).

Список параметров

string

Строка для исследования.

characters

Строка, содержащая каждый из запрещённых символов.

offset

Позиция в строке string, с которой начинается поиск.

Если offset указан и не является отрицательным значением, тогда strcspn() начнёт обследование строки string с позиции, указанной в offset. Например: в строке 'abcdef', символ в позиции 0 это 'a', символ в позиции 2 это 'c', и так далее.

Если offset указан, но является отрицательным числом, то strspn() начнёт обследование строки string с позиции, указанной в параметре offset, начиная с конца строки string.

length

Длина фрагмента из string для обследования.

Если параметр length указан и не является отрицательным значением, тогда будет обследовано length символов из string, отсчитывая от стартовой позиции.

Если length передан и значение отрицательное, то будут проверяться символы, начиная со стартовой позиции и до length с конца string.

Возвращаемые значения

Возвращает длину начального фрагмента строки string, которая состоит полностью из символов, не включённых в параметр characters.

Замечание:

Когда параметр offset указан, возвращаемая длина определяется, начиная с этой позиции, а не с начала строки string.

Список изменений

Версия | Описание
8.0.0 | length теперь допускает значение null.

Примеры

Пример #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, PHP 8)

strip_tags — Удаляет теги HTML и PHP из строки

Описание

strip_tags(string $string, array|string|null $allowed_tags = null): string

Функция пытается возвратить строку, из которой удалены все NULL-байты, HTML- и PHP-теги из заданной строки (string). Для удаления тегов используется тот же механизм, что и в функции fgetss().

Список параметров

string

Входная строка.

allowed_tags

Второй необязательный параметр может быть использован для указания тегов, которые не нужно удалять. Они указываются как строка (string) или как массив (array) с PHP 7.4.0. Смотрите пример ниже относительно формата этого параметра.

Замечание:

Комментарии HTML и PHP-теги также будут удалены. Это жёстко задано в коде и не может быть изменено с помощью параметра allowed_tags.

Замечание:

Самозакрывающиеся (такие как <br/>) теги XHTML игнорируются и только не самозакрывающиеся теги должны быть использованы в allowed_tags. К примеру, для разрешения как <br>, так и <br/> нужно сделать следующее:

<?php
strip_tags($input, '<br>');
?>

Возвращаемые значения

Возвращает строку без тегов.

Список изменений

Версия | Описание
8.0.0 | allowed_tags теперь допускает значение null.
7.4.0 | allowed_tags теперь альтернативно принимает массив (array).

Примеры

Пример #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>');

// Начиная с PHP 7.4.0, строка выше может быть записана как:
// echo strip_tags($text, ['p', 'a']);
?>

Результат выполнения данного примера:

Параграф. Ещё текст
<p>Параграф.</p> <a href="#fragment">Ещё текст</a>

Примечания

Внимание

Эта функция не должна использоваться для предотвращения XSS-атак. Используйте более подходящие функции для этой задачи, такие как htmlspecialchars() или другие механизмы, в зависимости от контекста вывода.

Внимание

Из-за того, что strip_tags() не проверяет валидность HTML, то частичные или сломанные теги могут послужить удалением большего количества текста или данных, чем ожидалось.

Внимание

Эта функция не изменяет атрибуты тегов, разрешённых с помощью allowed_tags, включая такие атрибуты как style и onmouseover, которые могут быть использованы озорными пользователями при отправке текста, отображаемого также и другим пользователям.

Замечание:

Имена тегов в HTML превышающие 1023 байта будут рассматриваться как невалидные независимо от параметра allowed_tags.

Смотрите также

  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности


Удаляет экранирование символов, произведённое функцией addcslashes

  • « strip_tags
  • stripos »
  • PHP Manual
  • Функции для работы со строками
  • Удаляет экранирование символов, произведённое функцией addcslashes

stripcslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

stripcslashes — Удаляет экранирование символов, произведённое функцией addcslashes()

Описание

stripcslashes(string $string): string

Удаляет экранирующие обратные слеши. Распознает экранирование в стиле C (\n, \r ..., восьмеричное и шестнадцатеричное представление).

Список параметров

string

Строка, у которой нужно убрать экранирование.

Возвращаемые значения

Возвращает неэкранированную строку.

Примеры

Пример #1 Пример использования stripcslashes()

<?php

var_dump(stripcslashes('I\'d have a coffee.\nNot a problem.') === "I'd have a coffee.
Not a problem."); // true
?>

Смотрите также

  • addcslashes() - Экранирует строку слешами в стиле языка C


Возвращает позицию первого вхождения подстроки без учёта регистра

  • « stripcslashes
  • stripslashes »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает позицию первого вхождения подстроки без учёта регистра

stripos

(PHP 5, PHP 7, PHP 8)

stripos — Возвращает позицию первого вхождения подстроки без учёта регистра

Описание

stripos(string $haystack, string $needle, int $offset = 0): int|false

Ищет позицию первого вхождения подстроки needle в строке haystack.

В отличие от strpos(), эта функция не учитывает регистр символов.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Строка для поиска.

До PHP 8.0.0, если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведён к строке, либо должен быть выполнен явный вызов chr().

offset

Если этот параметр указан, то поиск будет начат с указанного количества символов с начала строки. Если задано отрицательное значение, отсчёт позиции начала поиска будет произведён с конца строки.

Возвращаемые значения

Возвращает позицию, в которой находится искомая строка, относительно начала строки haystack (независимо от смещения (offset)). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.

Возвращает false, если искомая строка не найдена.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.2.0 | Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale(). Будут преобразованы только символы ASCII. Байты не ASCII-кодировке будут сравниваться по значению байта.
8.0.0 | Параметр needle теперь допускает пустую строку.
8.0.0 | Передача целого числа (int) в needle больше не поддерживается.
7.3.0 | Передача целого числа (int) в needle объявлена устаревшей.
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() - Регистронезависимый поиск позиции первого вхождения одной строки в другую
  • str_contains() - Определяет, содержит ли строка заданную подстроку
  • str_ends_with() - Проверяет, заканчивается ли строка заданной подстрокой
  • str_starts_with() - Проверяет, начинается ли строка с заданной подстроки
  • strpos() - Возвращает позицию первого вхождения подстроки
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • strripos() - Возвращает позицию последнего вхождения подстроки без учёта регистра
  • stristr() - Регистронезависимый вариант функции strstr
  • substr() - Возвращает подстроку
  • str_ireplace() - Регистронезависимый вариант функции str_replace


Удаляет экранирование символов

  • « stripos
  • stristr »
  • PHP Manual
  • Функции для работы со строками
  • Удаляет экранирование символов

stripslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

stripslashes — Удаляет экранирование символов

Описание

stripslashes(string $string): string

Удаляет экранирующие символы.

Функцию stripslashes() можно использовать, если экранирование символов не требуется. Например, данные не вставляются в базу данных, а просто выводятся в браузер.

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает строку с вырезанными обратными слешами. (\' становится ' и т.п.) Двойные обратные слеши (\\) становятся одинарными (\).

Примеры

Пример #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, PHP 8)

stristr — Регистронезависимый вариант функции strstr()

Описание

stristr(string $haystack, string $needle, bool $before_needle = false): string|false

Возвращает всю строку haystack начиная с первого вхождения needle включительно.

Список параметров

haystack

Строка, в которой производится поиск

needle

Строка для поиска.

До PHP 8.0.0, если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведён к строке, либо должен быть выполнен явный вызов chr().

before_needle

Если установлен в true, stristr() возвращает часть строки haystack до первого вхождения needle (не включая needle).

needle и haystack обрабатываются без учёта регистра.

Возвращаемые значения

Возвращает указанную подстроку. Если подстрока needle не найдена, возвращается false.

Список изменений

Версия | Описание
8.2.0 | Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale(). Будут преобразованы только символы ASCII. Байты не ASCII-кодировке будут сравниваться по значению байта.
8.0.0 | Параметр needle теперь допускает пустую строку.
8.0.0 | Передача целого числа (int) в needle больше не поддерживается.
7.3.0 | Передача целого числа (int) в needle объявлена устаревшей.

Примеры

Пример #1 Пример использования stristr()

<?php
$email = 'USER@EXAMPLE.com';
echo stristr($email, 'e'); // выводит ER@EXAMPLE.com
echo stristr($email, 'e', true); // выводит 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, PHP 8)

strlen — Возвращает длину строки

Описание

strlen(string $string): int

Возвращает длину строки string.

Список параметров

string

Строка (string), для которой измеряется длина.

Возвращаемые значения

Функция возвращает длину строки string в байтах.

Примеры

Пример #1 Пример использования strlen()

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

Примечания

Замечание:

Функция strlen() возвратит количество байт, а не число символов в строке.

Смотрите также

  • count() - Подсчитывает количество элементов массива или Countable объекте
  • grapheme_strlen() - Получает длину строки в единицах графемы
  • iconv_strlen() - Возвращает количество символов в строке
  • mb_strlen() - Получает длину строки


Сравнение строк без учёта регистра с использованием алгоритма "natural order"

  • « strlen
  • strnatcmp »
  • PHP Manual
  • Функции для работы со строками
  • Сравнение строк без учёта регистра с использованием алгоритма "natural order"

strnatcasecmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strnatcasecmp — Сравнение строк без учёта регистра с использованием алгоритма "natural order"

Описание

strnatcasecmp(string $string1, string $string2): int

Эта функция реализует алгоритм сравнения, упорядочивающий алфавитно-цифровые строки подобно тому, как это сделал бы человек. Эта функция подобна strnatcmp(), за исключением того, что сравнение происходит без учёта регистра символов. Для получения дополнительной информации смотрите » Natural Order String Comparison.

Список параметров

string1

Первая строка.

string2

Вторая строка.

Возвращаемые значения

Возвращает -1, если string1 меньше string2, 1, если string1 больше string2, и 0, если строки равны.

Список изменений

Версия | Описание
8.2.0 | Функция теперь возвращает -1 или 1; ранее она возвращала отрицательное или положительное число.

Примеры

Пример #1 Пример использования strnatcasecmp()

<?php

var_dump(strnatcasecmp('Apple', 'Banana'));
var_dump(strnatcasecmp('Banana', 'Apple'));
var_dump(strnatcasecmp('apple', 'Apple'));
?>

Результат выполнения данного примера:

int(-1)
int(1)
int(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, PHP 8)

strnatcmp — Сравнение строк с использованием алгоритма "natural order"

Описание

strnatcmp(string $string1, string $string2): int

Эта функция реализует алгоритм сравнения, упорядочивающий алфавитно-цифровые строки подобно тому, как это сделал бы человек, такой алгоритм называется "natural ordering". Сравнение происходит с учётом регистра.

Список параметров

string1

Первая строка.

string2

Вторая строка.

Возвращаемые значения

Возвращает -1, если string1 меньше string2, 1, если string1 больше string2, и 0, если строки равны.

Список изменений

Версия | Описание
8.2.0 | Функция теперь возвращает -1 или 1; ранее она возвращала отрицательное или положительное число.

Примеры

Пример, показывающий отличие этого алгоритма от обычных функций сравнения (используемых в 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, PHP 8)

strncasecmp — Бинарно-безопасное сравнение первых n символов строк без учёта регистра

Описание

strncasecmp(string $string1, string $string2, int $length): int

Эта функция похожа на strcasecmp(), за исключением того, что можно указать максимальное количество символов в обеих строках, которые будут участвовать в сравнении.

Список параметров

string1

Первая строка.

string2

Вторая строка.

length

Количество символов, участвующих в сравнении.

Возвращаемые значения

Возвращает -1, если string1 меньше string2, 1, если string1 больше string2, и 0, если строки равны.

Список изменений

Версия | Описание
8.2.0 | Функция теперь возвращает -1 или 1; ранее она возвращала отрицательное или положительное число.

Примеры

Пример #1 Пример использования strncasecmp()

<?php

$var1 = 'Hello John';
$var2 = 'hello Doe';
if (strncasecmp($var1, $var2, 5) === 0) {
echo 'Первые 5 символов $var1 и $var2 равны при сравнении строк без учёта регистра';
}
?>

Смотрите также

  • strncmp() - Бинарно-безопасное сравнение первых n символов строк
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • substr_compare() - Бинарно-безопасное сравнение 2 строк со смещением, с учётом или без учёта регистра
  • strcasecmp() - Бинарно-безопасное сравнение строк без учёта регистра
  • stristr() - Регистронезависимый вариант функции strstr
  • substr() - Возвращает подстроку


Бинарно-безопасное сравнение первых n символов строк

  • « strncasecmp
  • strpbrk »
  • PHP Manual
  • Функции для работы со строками
  • Бинарно-безопасное сравнение первых n символов строк

strncmp

(PHP 4, PHP 5, PHP 7, PHP 8)

strncmp — Бинарно-безопасное сравнение первых n символов строк

Описание

strncmp(string $string1, string $string2, int $length): int

Эта функция похожа на strcmp(), за исключением того, что можно указать максимальное количество символов в обеих строках, которые будут участвовать в сравнении.

Эта функция учитывает регистр символов.

Список параметров

string1

Первая строка.

string2

Вторая строка.

length

Количество символов, используемых в сравнении.

Возвращаемые значения

Возвращает -1, если string1 меньше string2, 1, если string1 больше string2, и 0, если строки равны.

Список изменений

Версия | Описание
8.2.0 | Функция теперь возвращает -1 или 1; ранее она возвращала отрицательное или положительное число.

Примеры

Пример #1 strncmp() example

<?php

$var1 = 'Hello John';
$var2 = 'Hello Doe';
if (strncmp($var1, $var2, 5) === 0) {
echo 'Первые 5 символов $var1 и $var2 равны при сравнении строк с учётом регистра';
}
?>

Смотрите также

  • strncasecmp() - Бинарно-безопасное сравнение первых n символов строк без учёта регистра
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • substr_compare() - Бинарно-безопасное сравнение 2 строк со смещением, с учётом или без учёта регистра
  • strcmp() - Бинарно-безопасное сравнение строк
  • strstr() - Находит первое вхождение подстроки
  • substr() - Возвращает подстроку


Ищет в строке любой символ из заданного набора

  • « strncmp
  • strpos »
  • PHP Manual
  • Функции для работы со строками
  • Ищет в строке любой символ из заданного набора

strpbrk

(PHP 5, PHP 7, PHP 8)

strpbrk — Ищет в строке любой символ из заданного набора

Описание

strpbrk(string $string, string $characters): string|false

strpbrk() ищет в строке string символы из набора characters.

Список параметров

string

Строка, в которой производится поиск characters.

characters

Данный параметр чувствителен к регистру.

Возвращаемые значения

Возвращает строку, начиная с найденного символа, или 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, PHP 8)

strpos — Возвращает позицию первого вхождения подстроки

Описание

strpos(string $haystack, string $needle, int $offset = 0): int|false

Ищет позицию первого вхождения подстроки needle в строку haystack.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Строка для поиска.

До PHP 8.0.0, если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведён к строке, либо должен быть выполнен явный вызов chr().

offset

Если этот параметр указан, то поиск будет начат с указанного количества символов с начала строки. Если задано отрицательное значение, отсчёт позиции начала поиска будет произведён с конца строки.

Возвращаемые значения

Возвращает позицию, в которой находится искомая строка, относительно начала строки haystack (независимо от смещения (offset)). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.

Возвращает false, если искомая строка не найдена.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.0.0 | Параметр needle теперь допускает пустую строку.
8.0.0 | Передача целого числа (int) в needle больше не поддерживается.
7.3.0 | Передача целого числа (int) в needle объявлена устаревшей.
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() - Возвращает позицию первого вхождения подстроки без учёта регистра
  • str_contains() - Определяет, содержит ли строка заданную подстроку
  • str_ends_with() - Проверяет, заканчивается ли строка заданной подстрокой
  • str_starts_with() - Проверяет, начинается ли строка с заданной подстроки
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • strripos() - Возвращает позицию последнего вхождения подстроки без учёта регистра
  • strstr() - Находит первое вхождение подстроки
  • strpbrk() - Ищет в строке любой символ из заданного набора
  • substr() - Возвращает подстроку
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Находит последнее вхождение символа в строке

  • « strpos
  • strrev »
  • PHP Manual
  • Функции для работы со строками
  • Находит последнее вхождение символа в строке

strrchr

(PHP 4, PHP 5, PHP 7, PHP 8)

strrchr — Находит последнее вхождение символа в строке

Описание

strrchr(string $haystack, string $needle, bool $before_needle = false): string|false

Возвращает подстроку строки haystack, начиная с последнего вхождения needle до конца строки.

Список параметров

haystack

Строка, в которой производится поиск

needle

Если needle состоит более чем из одного символа, используется только первый символ. Это поведение отличается от strstr().

До PHP 8.0.0, если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведён к строке, либо должен быть выполнен явный вызов chr().

before_needle

Если true, то функция strrchr() возвращает часть параметра haystack перед последним вхождением параметра needle (без учёта needle).

Возвращаемые значения

Функция возвращает фрагмент строки, или false, если подстрока needle не найдена.

Список изменений

Версия | Описание
8.3.0 | Добавлен параметр before_needle.
8.0.0 | Параметр needle теперь допускает пустую строку.
8.0.0 | Передача целого числа (int) в needle больше не поддерживается.
7.3.0 | Передача целого числа (int) в needle объявлена устаревшей.

Примеры

Пример #1 Пример использования strrchr()

<?php
$ext = strrchr('somefile.txt', '.');
echo "Расширение файла: $ext \n";
$ext = $ext ? strtolower(substr($ext, 1)) : '';
echo "Расширение файла: $ext";
?>

Результатом выполнения данного примера будет что-то подобное:

Расширение файла: .txt
Расширение файла: txt

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strstr() - Находит первое вхождение подстроки
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке


Переворачивает строку задом наперёд

  • « strrchr
  • strripos »
  • PHP Manual
  • Функции для работы со строками
  • Переворачивает строку задом наперёд

strrev

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

strripos — Возвращает позицию последнего вхождения подстроки без учёта регистра

Описание

strripos(string $haystack, string $needle, int $offset = 0): int|false

Ищет позицию последнего вхождения подстроки needle в строку haystack.

В отличие от strrpos(), strripos() не учитывает регистр символов.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Строка для поиска.

До PHP 8.0.0, если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведён к строке, либо должен быть выполнен явный вызов chr().

offset

Если равно или больше ноля, то поиск будет идти слева направо и, при этом, будут пропущены первые offset байт строки haystack.

Если меньше ноля, то поиск будет идти справа налево. При этом будут отброшены offset байт с конца haystack и найдено первое найденное вхождение needle.

Замечание:

Фактически это будет последнее вхождение needle без учёта offset последних байт.

Возвращаемые значения

Возвращает номер позиции последнего вхождения needle относительно начала строки haystack (независимо от направления поиска и смещения (offset)).

Замечание: Позиция в строке строки отсчитывается от 0, а не от 1.

Возвращает false, если искомая строка не найдена.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.2.0 | Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale(). Будут преобразованы только символы ASCII. Байты не ASCII-кодировке будут сравниваться по значению байта.
8.0.0 | Параметр needle теперь допускает пустую строку.
8.0.0 | Передача целого числа (int) в needle больше не поддерживается.
7.3.0 | Передача целого числа (int) в needle объявлена устаревшей.

Примеры

Пример #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, PHP 8)

strrpos — Возвращает позицию последнего вхождения подстроки в строке

Описание

strrpos(string $haystack, string $needle, int $offset = 0): int|false

Ищет позицию последнего вхождения подстроки needle в строку haystack.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Строка для поиска.

До PHP 8.0.0, если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведён к строке, либо должен быть выполнен явный вызов chr().

offset

Если равно или больше ноля, то поиск будет идти слева направо и, при этом, будут пропущены первые offset байт строки haystack.

Если меньше ноля, то поиск начинается с offset байта справа, а не с начала haystack. Поиск выполняется справа налево, ищется первое вхождение needle от выбранного байта.

Замечание:

Фактически это будет последнее вхождение needle без учёта offset последних байт.

Возвращаемые значения

Возвращает номер позиции последнего вхождения needle относительно начала строки haystack (независимо от направления поиска и смещения (offset)).

Замечание: Позиция в строке строки отсчитывается от 0, а не от 1.

Возвращает false, если искомая строка не найдена.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.0.0 | Параметр needle теперь допускает пустую строку.
8.0.0 | Передача целого числа (int) в needle больше не поддерживается.
7.3.0 | Передача целого числа (int) в needle объявлена устаревшей.

Примеры

Пример #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, PHP 8)

strspn — Возвращает длину участка в начале строки, полностью соответствующего маске

Описание

strspn(
string $string,
string $characters,
int $offset = 0,
?int $length = null
): int

Возвращает длину участка от начала строки string, содержащий только символы из characters.

Если параметры offset и length не указаны, то будет исследована вся строка string. Если они указаны, то эффект будет аналогичен вызову strspn(substr($string, $offset, $length), $characters) (подробнее смотрите функцию substr).

Строка кода:

<?php
$var = strspn("42 - ответ на 128 вопрос.", "1234567890");
?>
присвоит 2 переменной $var, так как "42" - это начальный участок строки string, состоящий только из символов "1234567890".

Список параметров

string

Исследуемая строка.

characters

Список из разрешённых символов.

offset

Позиция начала поиска в subject.

Если offset указан и неотрицателен, то strspn() начнёт искать в строке string, начиная с позиции offset. К примеру, в строке 'abcdef', символом с позицией 0 является 'a', символом с позицией 2 является 'c' и т.д.

Если offset указан и отрицателен, то strspn() начнёт поиск в строке string с позиции, отстоящей на offset символов с конца string.

length

Длина исследуемого фрагмента string.

Если length указан и неотрицателен, то строка string будет исследована в течение length после стартовой позиции.

Если length указан и отрицателен, то строка string будет исследована начиная со стартовой позиции до позиции, отстоящей на length символов с конца string.

Возвращаемые значения

Возвращает длину первого участка string, состоящего целиком из символов в characters.

Замечание:

Когда offset указан, возвращаемая длина строки определяется, начиная с этой позиции, а не с начала строки string.

Список изменений

Версия | Описание
8.0.0 | length теперь допускает значение null.

Примеры

Пример #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, PHP 8)

strstr — Находит первое вхождение подстроки

Описание

strstr(string $haystack, string $needle, bool $before_needle = false): string|false

Возвращает подстроку строки haystack, начиная с первого вхождения needle (и включая его) и до конца строки haystack.

Замечание:

Эта функция учитывает регистр символов. Для поиска без учёта регистра используйте stristr().

Замечание:

Если нужно лишь определить, встречается ли подстрока needle в haystack, используйте более быструю и менее ресурсоёмкую функцию strpos().

Список параметров

haystack

Входная строка.

needle

Строка для поиска.

До PHP 8.0.0, если параметр needle не является строкой, он преобразуется в целое число и трактуется как код символа. Это поведение устарело с PHP 7.3.0, и полагаться на него крайне не рекомендуется. В зависимости от предполагаемого поведения, параметр needle должен быть либо явно приведён к строке, либо должен быть выполнен явный вызов chr().

before_needle

Если установлен в true, strstr() возвращает часть строки haystack до первого вхождения needle (исключая needle).

Возвращаемые значения

Возвращает часть строки или false, если needle не найдена.

Список изменений

Версия | Описание
8.0.0 | Параметр needle теперь допускает пустую строку.
8.0.0 | Передача целого числа (int) в needle больше не поддерживается.
7.3.0 | Передача целого числа (int) в needle объявлена устаревшей.

Примеры

Пример #1 Пример использования strstr()

<?php
$email = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // выводит @example.com

$user = strstr($email, '@', true);
echo $user; // выводит name
?>

Смотрите также

  • stristr() - Регистронезависимый вариант функции strstr
  • strrchr() - Находит последнее вхождение символа в строке
  • strpos() - Возвращает позицию первого вхождения подстроки
  • strpbrk() - Ищет в строке любой символ из заданного набора
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Разбивает строку на токены

  • « strstr
  • strtolower »
  • PHP Manual
  • Функции для работы со строками
  • Разбивает строку на токены

strtok

(PHP 4, PHP 5, PHP 7, PHP 8)

strtok — Разбивает строку на токены

Описание

strtok(string $string, string $token): string|false

Альтернативная сигнатура (не поддерживается с именованными аргументами):

strtok(string $token): string|false

strtok() разбивает строку string на подстроки (токены), используя в качестве разделителей символы из token. Например, строку "This is an example string" можно разбить на отдельные слова, используя пробел в качестве разделителя (token).

Заметьте, что исходная строка (string) передаётся только при первом вызове этой функции. Последующим вызовам передаются только разделители (token), так как эта функция сохраняет исходную строку и запоминает позицию в этой строке между вызовами. Для работы с новой строкой (string) нужно снова вызвать функцию с двумя аргументами. Обратите внимание, что в параметре token можно использовать несколько разделителей. Строка будет делиться по любому найденному символу, присутствующему в параметре (token).

Замечание:

Функция ведёт себя немного иначе, чем можно было бы ожидать, знакомясь с explode(). Во-первых, последовательность из двух или более смежных символов token в анализируемой строке считается одним разделителем. Также игнорируется token, расположенный в начале или конце строки. Например, если используется строка ";aaa;;bbb;", последовательные вызовы strtok() с ";" в качестве token вернут строки "aaa" и "bbb", а затем false. В результате строка будет разделена только на два элемента, а explode(";", $string) вернёт массив из 5 элементов.

Список параметров

string

Строка (string), разбиваемая на подстроки (токены).

token

Разделитель строки string.

Возвращаемые значения

Токен в виде строки (string) или false, если токенов больше нет.

Примеры

Пример #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)

Пример #3 Различие между strtok() и explode()

<?php
$string = ";aaa;;bbb;";

$parts = [];
$tok = strtok($string, ";");
while ($tok !== false) {
$parts[] = $tok;
$tok = strtok(";");
}
echo json_encode($parts),"\n";

$parts = explode(";", $string);
echo json_encode($parts),"\n";

Результат выполнения данного примера:

["aaa","bbb"]
["","aaa","","bbb",""]

Примечания

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Смотрите также

  • explode() - Разбивает строку с помощью разделителя


Преобразует строку в нижний регистр

  • « strtok
  • strtoupper »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует строку в нижний регистр

strtolower

(PHP 4, PHP 5, PHP 7, PHP 8)

strtolower — Преобразует строку в нижний регистр

Описание

strtolower(string $string): string

Возвращает строку string, в которой все буквенные символы ASCII переведены в нижний регистр.

Байты в диапазоне от "A" (0x41) до "Z" (0x5a) будут преобразованы в соответствующую строчную букву путём добавления 32 к каждому значению байта.

Функцию можно использовать для преобразования символов ASCII в строках, закодированных в UTF-8, поскольку многобайтовые символы UTF-8 будут проигнорированы. Для преобразования многобайтовых не ASCII символов используйте функцию mb_strtolower().

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает строку в нижнем регистре.

Список изменений

Версия | Описание
8.2.0 | Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale(). Будут преобразованы только символы ASCII.

Примеры

Пример #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, PHP 8)

strtoupper — Преобразует строку в верхний регистр

Описание

strtoupper(string $string): string

Возвращает строку string, в которой все буквенные символы ASCII переведены в верхний регистр.

Байты в диапазоне от "a" (0x61) до "z" (0x7a) будут преобразованы в соответствующую заглавную букву путём вычитания 32 из каждого значения байта.

Функцию можно использовать для преобразования символов ASCII в строках, закодированных в UTF-8, поскольку многобайтовые символы UTF-8 будут проигнорированы. Для преобразования многобайтовых не ASCII символов используйте функцию mb_strtoupper().

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает строку в верхнем регистре.

Список изменений

Версия | Описание
8.2.0 | Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale(). Будут преобразованы только символы ASCII.

Примеры

Пример #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, PHP 8)

strtr — Преобразует заданные символы или заменяет подстроки

Описание

strtr(string $string, string $from, string $to): string

Альтернативная сигнатура (не поддерживается с именованными аргументами):

strtr(string $string, array $replace_pairs): string

Если указаны три аргумента, эта функция возвращает копию string, в которой все вхождения каждого символа (однобайтного) из from были заменены на соответствующий символ в параметре to, то есть каждое вхождение из $from[$n] заменяется на $to[$n], где $n - это корректное смещение строки в обоих аргументах.

Если длины строк from и to отличаются, "лишние" символы в более длинной строке не используются. Длина возвращаемого значения будет такой же, как и длина string.

strtr() может вызываться с двумя аргументами. В этом случае from должен быть массивом (array), в форме array('from' => 'to', ...). Функция возвратит строку, в которой все ключи массива будут заменены их элементами. strtr() в первую очередь заменяет более длинные ключи, причём одна и та же строка поиска используется только один раз.

В этом случае, ключи и значения могут иметь любую длину, за исключением того, что ключи не должны быть пустыми. Кроме того, длина возвращаемого значения может отличаться от string. Однако, стоит учесть тот факт, что эта функция максимально эффективна в том случае, если все ключи имеют одинаковый размер.

Список параметров

string

Заменяемая строка (string).

from

Строка (string), которая будет заменена на строку to.

to

Строка (string), заменяющая строку from.

replace_pairs

Параметр replace_pairs может быть использован вместо to и from, в этом случае он является массивом (array) и имеет форму array('from' => 'to', ...).

Если replace_pairs содержит ключ, который является пустой строкой (string) (""), элемент игнорируется; начиная с PHP 8.0.0 в этом случае вызывается E_WARNING.

Возвращаемые значения

Возвращает строку (string) с произведёнными в ней заменами.

Примеры

Пример #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, PHP 8)

substr_compare — Бинарно-безопасное сравнение 2 строк со смещением, с учётом или без учёта регистра

Описание

substr_compare(
string $haystack,
string $needle,
int $offset,
?int $length = null,
bool $case_insensitive = false
): int

substr_compare() сравнивает строку haystack (начиная с позиции offset) со строкой needle. В сравнении участвуют максимум length символов.

Список параметров

haystack

Основная сравниваемая строка.

needle

Следующая сравниваемая строка.

offset

Стартовая позиция сравнения. Если отрицательна, то обозначает смещение с конца строки.

length

Длина сравнения. По умолчанию используется максимальная из длин needle и haystack минус offset.

case_insensitive

Если case_insensitive имеет значение true, сравнение выполняется без учёта регистра.

Возвращаемые значения

Возвращает -1, если string1 меньше string2, 1, если string1 больше string2, и 0, если строки равны. Если offset больше (до PHP 7.2.18, 7.3.5) или равен длине haystack или length передан и меньше 0, substr_compare() выводит предупреждение и возвращает false.

Список изменений

Версия | Описание
8.2.0 | Функция теперь возвращает -1 или 1; ранее она возвращала отрицательное или положительное число.
8.0.0 | length теперь допускает значение null.
7.2.18, 7.3.5 | offset теперь может быть равным haystack.

Примеры

Пример #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, PHP 8)

substr_count — Возвращает число вхождений подстроки

Описание

substr_count(
string $haystack,
string $needle,
int $offset = 0,
?int $length = null
): int

substr_count() возвращает число вхождений подстроки needle в строку haystack. Заметьте, что параметр needle чувствителен к регистру.

Замечание:

Эта функция не подсчитывает перекрывающиеся подстроки. Смотрите пример ниже!

Список параметров

haystack

Строка, в которой ведётся поиск

needle

Искомая подстрока

offset

Смещение начала отсчёта. Если задано отрицательное значение, отсчёт позиции будет произведён с конца строки.

length

Максимальная длина строки, в которой будет производится поиск подстроки после указанного смещения. Если сумма смещения и максимальной длины будет больше длины haystack, то будет выведено предупреждение. Отрицательное значение будет отсчитываться с конца haystack.

Возвращаемые значения

Эта функция возвращает целое число (int).

Список изменений

Версия | Описание
8.0.0 | length теперь допускает значение null.
7.1.0 | Добавлена поддержка отрицательных значений offset и length. length теперь также может быть 0.

Примеры

Пример #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, PHP 8)

substr_replace — Заменяет часть строки

Описание

substr_replace(
array|string $string,
array|string $replace,
array|int $offset,
array|int|null $length = null
): string|array

substr_replace() заменяет часть строки string, начинающуюся с символа с порядковым номером offset и (необязательной) длиной length, строкой replace и возвращает результат.

Список параметров

string

Входная строка.

Также можно указать массив строк, в этом случае замены будут происходить с каждой предоставленной строкой. В этом случае параметры replace, offset и length могут быть как скалярными значениями - в этом случае эти значения будут применены к каждой строке, так и массивами - в этом случае соответствующие элементы массивов будут применены к каждой предоставленной строке.

replace

Строка замены.

offset

Если offset положителен, замена начинается с символа с порядковым номером offset строки string.

Если offset отрицателен, замена начинается с символа с порядковым номером offset, считая от конца строки string.

length

Если аргумент положителен, то он представляет собой длину заменяемой подстроки в строке string. Если этот аргумент отрицательный, он определяет количество символов от конца строки string, на которых заканчивается замена. Этот аргумент необязателен и по умолчанию равен strlen(string);, то есть замена до конца строки string. Разумеется, если length равен нулю, то это эквивалентно вставке replace в string на указанной позиции offset.

Возвращаемые значения

Возвращает результирующую строку. Если string является массивом, то возвращает массив.

Список изменений

Версия | Описание
8.0.0 | length теперь допускает значение null.

Примеры

Пример #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, PHP 8)

substr — Возвращает подстроку

Описание

substr(string $string, int $offset, ?int $length = null): string

Возвращает подстроку строки string, начинающейся с offset символа по счету и длиной length символов.

Список параметров

string

Входная строка.

offset

Если offset неотрицателен, возвращаемая подстрока начинается с позиции offset от начала строки, считая от нуля. Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 2 - символ 'c', и т.д.

Если offset отрицательный, возвращаемая подстрока начинается с позиции, отстоящей на offset символов от конца строки string.

Если string меньше offset символов, будет возвращена пустая строка.

Пример #1 Использование отрицательного параметра offset

<?php
$rest = substr("abcdef", -1); // возвращает "f"
$rest = substr("abcdef", -2); // возвращает "ef"
$rest = substr("abcdef", -3, 1); // возвращает "d"
?>

length

Если length положительный, возвращаемая строка будет не длиннее length символов, начиная с параметра offset (в зависимости от длины string).

Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string (после того как будет вычислена стартовая позиция, если offset отрицателен). Если при этом позиция начала подстроки, определяемая аргументом offset, находится в отброшенной части строки или за ней, возвращается пустая строка.

Если параметр length задан и равен 0, будет возвращена пустая строка.

Если параметр length опущен или null, то будет возвращена подстрока, начинающаяся с позиции, указанной параметром offset и длящейся до конца строки.

Пример #2 Использование отрицательного параметра length

<?php
$rest = substr("abcdef", 0, -1); // возвращает "abcde"
$rest = substr("abcdef", 2, -1); // возвращает "cde"
$rest = substr("abcdef", 4, -4); // возвращает ""; до PHP 8.0.0 возвращалось false
$rest = substr("abcdef", -3, -1); // возвращает "de"
?>

Возвращаемые значения

Возвращает извлечённую часть параметра string или пустую строку.

Список изменений

Версия | Описание
8.0.0 | Параметр length теперь допускает значение null. Если значение параметра length явно задано как null, функция возвращает подстроку, заканчивающуюся в конце строки; ранее возвращалась пустая строка.
8.0.0 | Функция возвращает пустую строку там, где раньше возвращала false.

Примеры

Пример #3 Базовое использование substr()

<?php
echo substr('abcdef', 1); // bcdef
echo substr("abcdef", 1, null); // bcdef; до PHP 8.0.0 возвращалась пустая строка
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;
?>

Результат выполнения данного примера:

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) ''
6) ''
7) '1200'

Пример #5 Недопустимый диапазон символов

Если запрашивается недопустимый диапазон символов, substr() возвращает пустую строку, начиная с PHP 8.0.0; ранее возвращалось false.

<?php
var_dump(substr('a', 2));
?>

Результат выполнения данного примера в PHP 8:

string(0) ""

Результат выполнения данного примера в PHP 7:

bool(false)

Смотрите также

  • strrchr() - Находит последнее вхождение символа в строке
  • substr_replace() - Заменяет часть строки
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • trim() - Удаляет пробелы (или другие символы) из начала и конца строки
  • mb_substr() - Возвращает часть строки
  • wordwrap() - Переносит строку по указанному количеству символов
  • Посимвольный доступ и изменение строки


Удаляет пробелы (или другие символы) из начала и конца строки

  • « substr
  • ucfirst »
  • PHP Manual
  • Функции для работы со строками
  • Удаляет пробелы (или другие символы) из начала и конца строки

trim

(PHP 4, PHP 5, PHP 7, PHP 8)

trim — Удаляет пробелы (или другие символы) из начала и конца строки

Описание

trim(string $string, string $characters = " \n\r\t\v\x00"): string

Эта функция возвращает строку string с удалёнными из начала и конца строки пробелами. Если второй параметр не передан, trim() удаляет следующие символы:

  • " " (ASCII 32 (0x20)), обычный пробел.
  • "\t" (ASCII 9 (0x09)), символ табуляции.
  • "\n" (ASCII 10 (0x0A)), символ перевода строки.
  • "\r" (ASCII 13 (0x0D)), символ возврата каретки.
  • "\0" (ASCII 0 (0x00)), NUL-байт.
  • "\v" (ASCII 11 (0x0B)), вертикальная табуляция.

Список параметров

string

Обрезаемая строка (string).

characters

Можно также задать список символов для удаления с помощью необязательного аргумента characters. Просто перечислите все символы, которые вы хотите удалить. Можно указать конструкцию .. для обозначения диапазона символов.

Возвращаемые значения

Обрезаемая строка.

Примеры

Пример #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, PHP 8)

ucfirst — Преобразует первый символ строки в верхний регистр

Описание

ucfirst(string $string): string

Возвращает строку string, в которой первый символ переведён в верхний регистр, если этот символ является символом ASCII в диапазоне от "a" (0x61) до "z" (0x7a).

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает результирующую строку.

Список изменений

Версия | Описание
8.2.0 | Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale(). Будут преобразованы только символы ASCII.

Примеры

Пример #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() - Преобразует в верхний регистр первый символ каждого слова в строке
  • mb_convert_case() - Производит смену регистра символов в строке


Преобразует в верхний регистр первый символ каждого слова в строке

  • « ucfirst
  • utf8_decode »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует в верхний регистр первый символ каждого слова в строке

ucwords

(PHP 4, PHP 5, PHP 7, PHP 8)

ucwords — Преобразует в верхний регистр первый символ каждого слова в строке

Описание

ucwords(string $string, string $separators = " \t\r\n\f\v"): string

Возвращает строку string, в которой первый символ каждого слова переведён в верхний регистр, если этот символ является символом ASCII между "a" (0x61) и "z" (0x7a).

Для этой функции слово - это строка символов, не перечисленных в separators. По умолчанию это: пробел, горизонтальная табуляция, возврат каретки, перевод строки, разрыв страницы и вертикальная табуляция.

Чтобы сделать аналогичное преобразование многобайтовых строк, используйте функцию mb_convert_case() с режимом MB_CASE_TITLE.

Список параметров

string

Входная строка.

separators

Необязательный параметр separators содержит символы разделителей слов.

Возвращаемые значения

Возвращает модифицированную строку.

Список изменений

Версия | Описание
8.2.0 | Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale(). Будут преобразованы только символы ASCII.

Примеры

Пример #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!
?>

Пример #3 Пример использования ucwords() с дополнительными разделителями

<?php
$foo = "mike o'hara";
$bar = ucwords($foo); // Mike O'hara

$baz = ucwords($foo, " \t\r\n\f\v'"); // Mike O'Hara
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strtoupper() - Преобразует строку в верхний регистр
  • strtolower() - Преобразует строку в нижний регистр
  • ucfirst() - Преобразует первый символ строки в верхний регистр
  • mb_convert_case() - Производит смену регистра символов в строке


Преобразует строку из UTF-8 в ISO-8859-1, заменяя недопустимые или непредставимые символы

  • « ucwords
  • utf8_encode »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует строку из UTF-8 в ISO-8859-1, заменяя недопустимые или непредставимые символы

utf8_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_decode — Преобразует строку из UTF-8 в ISO-8859-1, заменяя недопустимые или непредставимые символы

Внимание

Функция объявлена УСТАРЕВШЕЙ, начиная с PHP 8.2.0. Использовать эту функцию крайне не рекомендуется.

Описание

utf8_decode(string $string): string

Функция преобразует строку string из кодировки 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.

Список параметров

string

Строка, закодированная в UTF-8.

Возвращаемые значения

Возвращает данные string, переведённые в ISO-8859-1.

Список изменений

Версия | Описание
8.2.0 | Функция объявлена устаревшей.
7.2.0 | Функция была перенесена из модуля XML в ядро PHP. В предыдущих версиях она была доступна только при установленном модуле XML.

Примеры

Пример #1 Простой пример

<?php
// Преобразование строки 'Zoe' из UTF-8 в ISO 8859-1
$utf8_string = "\x5A\x6F\xC3\xAB";
$iso8859_1_string = utf8_decode($utf8_string);
echo bin2hex($iso8859_1_string), "\n";

// Неправильные последовательности UTF-8 заменяются на '?'
$invalid_utf8_string = "\xC3";
$iso8859_1_string = utf8_decode($invalid_utf8_string);
var_dump($iso8859_1_string);

// Символы, не существующие в ISO 8859-1, такие как
// '€' (Знак евро) также заменяются на '?'
$utf8_string = "\xE2\x82\xAC";
$iso8859_1_string = utf8_decode($utf8_string);
var_dump($iso8859_1_string);
?>

Результат выполнения данного примера:

5a6feb
string(1) "?"
string(1) "?"

Примечания

Замечание: Устаревание и альтернативы

Функция устарела, начиная с PHP 8.2.0 и будет удалена в будущей версии. Существующие варианты использования должны быть проверены и заменены подходящими альтернативами.

Аналогичной функциональности можно достичь с помощью функции mb_convert_encoding(), которая поддерживает ISO-8859-1 и многие другие кодировки символов.

<?php
$utf8_string = "\xC3\xAB"; // 'e' (e с диерезисом) в UTF-8
$iso8859_1_string = mb_convert_encoding($utf8_string, 'ISO-8859-1', 'UTF-8');
echo bin2hex($iso8859_1_string), "\n";

$utf8_string = "\xCE\xBB"; // '?' (Греческая строчная лямбда) в UTF-8
$iso8859_7_string = mb_convert_encoding($utf8_string, 'ISO-8859-7', 'UTF-8');
echo bin2hex($iso8859_7_string), "\n";

$utf8_string = "\xE2\x82\xAC"; // '€' (Символ евро) в UTF-8 (отсутствует в ISO-8859-1)
$windows_1252_string = mb_convert_encoding($utf8_string, 'Windows-1252', 'UTF-8');
echo bin2hex($windows_1252_string), "\n";
?>

Результат выполнения данного примера:

eb
eb
80

Другие опции, которые могут быть доступны в зависимости от установленных модулей: UConverter::transcode() и iconv().

Все следующие варианты дают один и тот же результат:

<?php
$utf8_string = "\x5A\x6F\xC3\xAB"; // 'Zoe' в UTF-8
$iso8859_1_string = utf8_decode($utf8_string);
echo bin2hex($iso8859_1_string), "\n";

$iso8859_1_string = mb_convert_encoding($utf8_string, 'ISO-8859-1', 'UTF-8');
echo bin2hex($iso8859_1_string), "\n";

$iso8859_1_string = iconv('UTF-8', 'ISO-8859-1', $utf8_string);
echo bin2hex($iso8859_1_string), "\n";

$iso8859_1_string = UConverter::transcode($utf8_string, 'ISO-8859-1', 'UTF8');
echo bin2hex($iso8859_1_string), "\n";
?>

Результат выполнения данного примера:

5a6feb
5a6feb
5a6feb
5a6feb
Указание '?' в качестве опции 'to_subst' в методе UConverter::transcode() даёт тот же результат, что и функция utf8_decode() для строк, которые являются недопустимыми или не могут быть представлены в ISO 8859-1.
<?php
$utf8_string = "\xE2\x82\xAC"; // € (Символ евро) отсутствует в ISO-8859-1
$iso8859_1_string = UConverter::transcode(
$utf8_string, 'ISO-8859-1', 'UTF-8', ['to_subst' => '?']
);
var_dump($iso8859_1_string);
?>

Результат выполнения данного примера:

sring(1) "?"

Смотрите также

  • utf8_encode() - Преобразует строку из ISO-8859-1 в UTF-8
  • mb_convert_encoding() - Преобразует строку из одной кодировки символов в другую
  • UConverter::transcode() - Преобразует строку из одной кодировки символов в другую
  • iconv() - Преобразует строку из одной кодировки символов в другую


Преобразует строку из ISO-8859-1 в UTF-8

  • « utf8_decode
  • vfprintf »
  • PHP Manual
  • Функции для работы со строками
  • Преобразует строку из ISO-8859-1 в UTF-8

utf8_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_encode — Преобразует строку из ISO-8859-1 в UTF-8

Внимание

Функция объявлена УСТАРЕВШЕЙ, начиная с PHP 8.2.0. Использовать эту функцию крайне не рекомендуется.

Описание

utf8_encode(string $string): string

Функция преобразует строку string из кодировки ISO-8859-1 в кодировку UTF-8.

Замечание:

Функция не пытается угадать текущую кодировку предоставленной строки, а предполагает, что она закодирована в ISO-8859-1 (также известная как "Latin 1") и преобразует её в UTF-8. Поскольку каждая последовательность байтов является корректной строкой ISO-8859-1, это никогда не приводит к ошибке, но не приведёт к получению полезной строки, если предполагалась другая кодировка.

Многие веб-страницы, отмеченные как использующие кодировку ISO-8859-1, на самом деле используют схожую кодировку Windows-1252, и веб-браузеры интерпретируют страницы ISO-8859-1 как Windows-1252. Однако Windows-1252 содержит дополнительные печатные символы, такие как знак Евро (€) и фигурные кавычки (" ") вместо управляющих кодов ISO-8859-1. Эта функция не конвертирует такие символы Windows-1252 корректно. Используйте другую функцию, если нужна конвертация из Windows-1252.

Список параметров

string

Строка ISO-8859-1.

Возвращаемые значения

Возвращает строку string, преобразованную в кодировку в UTF-8.

Список изменений

Версия | Описание
8.2.0 | This function has been deprecated.
7.2.0 | Функция была перенесена из модуля XML в ядро PHP. В предыдущих версиях она была доступна только при установленном модуле XML.

Примеры

Пример #1 Простой пример

<?php
// Преобразование строки 'Zoe' из ISO 8859-1 в UTF-8
$iso8859_1_string = "\x5A\x6F\xEB";
$utf8_string = utf8_encode($iso8859_1_string);
echo bin2hex($utf8_string), "\n";
?>

Результат выполнения данного примера:

5a6fc3ab

Примечания

Замечание: Устаревание и альтернативы

Функция устарела, начиная с PHP 8.2.0 и будет удалена в будущей версии. Существующие варианты использования должны быть проверены и заменены подходящими альтернативами.

Аналогичной функциональности можно достичь с помощью функции mb_convert_encoding(), которая поддерживает ISO-8859-1 и многие другие кодировки символов.

<?php
$iso8859_1_string = "\xEB"; // 'e' (e с диерезисом) в UTF-8
$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";

$iso8859_7_string = "\xEB"; // та же строка в ISO-8859-7 представляет собой '?' (греческая строчная лямбда)
$utf8_string = mb_convert_encoding($iso8859_7_string, 'UTF-8', 'ISO-8859-7');
echo bin2hex($utf8_string), "\n";

$windows_1252_string = "\x80"; // '€' (Знак евро) в Windows-1252, но не в ISO-8859-1
$utf8_string = mb_convert_encoding($windows_1252_string, 'UTF-8', 'Windows-1252');
echo bin2hex($utf8_string), "\n";
?>

Результат выполнения данного примера:

c3ab
cebb
e282ac

Другие опции, которые могут быть доступны в зависимости от установленных модулей: UConverter::transcode() и iconv().

Все следующие варианты дают один и тот же результат:

<?php
$iso8859_1_string = "\x5A\x6F\xEB"; // 'Zoe' в ISO-8859-1

$utf8_string = utf8_encode($iso8859_1_string);
echo bin2hex($utf8_string), "\n";

$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";

$utf8_string = UConverter::transcode($iso8859_1_string, 'UTF8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";

$utf8_string = iconv('ISO-8859-1', 'UTF-8', $iso8859_1_string);
echo bin2hex($utf8_string), "\n";
?>

Результат выполнения данного примера:

5a6fc3ab
5a6fc3ab
5a6fc3ab
5a6fc3ab

Смотрите также

  • utf8_decode() - Преобразует строку из UTF-8 в ISO-8859-1, заменяя недопустимые или непредставимые символы
  • mb_convert_encoding() - Преобразует строку из одной кодировки символов в другую
  • UConverter::transcode() - Преобразует строку из одной кодировки символов в другую
  • iconv() - Преобразует строку из одной кодировки символов в другую


Записывает отформатированную строку в поток

  • « utf8_encode
  • vprintf »
  • PHP Manual
  • Функции для работы со строками
  • Записывает отформатированную строку в поток

vfprintf

(PHP 5, PHP 7, PHP 8)

vfprintf — Записывает отформатированную строку в поток

Описание

vfprintf(resource $stream, string $format, array $values): int

Записывает строку, отформатированную в соответствии с параметром format в поток stream.

Данная функция похожа на fprintf(), но принимает не переменное число аргументов, а массив.

Список параметров

stream

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Либо целое число, указывающее, сколько символов (минимум) должно получиться в результате преобразования, либо *. Если используется *, то ширина предоставляется как дополнительное целое значение, предшествующее значению, отформатированному спецификатором.

Точность

Точка ., с последующим целым числом, либо *, значение которого зависит от спецификатора:

  • Для спецификаторов e, E, f и F: задаёт количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g,G, h и H: задаёт максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задаёт ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0. Если используется *, точность предоставляется как дополнительное целое значение, предшествующее значению, отформатированному спецификатором.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учётом локали).
F | Аргумент считается за число с плавающей точкой (без учёта локали).
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 — если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и f.
h | Аналогично спецификатору g, но использует F. Доступен с PHP 8.0.0.
H | Аналогично спецификатору g, но использует E и F. Доступен с PHP 8.0.0.
o | Аргумент рассматривается как целое число и печатается в восьмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззнаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Возвращаемые значения

Возвращает длину выведенной строки.

Ошибки

Начиная с PHP 8.0.0, если количество аргументов равно нулю, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если [width] меньше нуля или больше PHP_INT_MAX, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если [precision] меньше нуля или больше PHP_INT_MAX, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если аргументов задано меньше, чем требуется, выбрасывается исключение ArgumentCountError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает false в случае возникновения ошибки.
8.0.0 | Выбрасывает исключение ValueError, если количество аргументов равно нулю; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ValueError, если [width] меньше нуля или больше PHP_INT_MAX; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ValueError, если [precision] меньше нуля или больше PHP_INT_MAX; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ArgumentCountError, если аргументов задано меньше, чем требуется; ранее функция выдавала ошибку уровня E_WARNING.

Примеры

Пример #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() - Форматирует временную метку Unix


Выводит отформатированную строку

  • « vfprintf
  • vsprintf »
  • PHP Manual
  • Функции для работы со строками
  • Выводит отформатированную строку

vprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

vprintf — Выводит отформатированную строку

Описание

vprintf(string $format, array $values): int

Выводит значения массива, отформатированные в соответствии с аргументом format, описанном в документации функции sprintf().

Работает как printf(), но принимает не переменное число аргументов, а массив.

Список параметров

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Либо целое число, указывающее, сколько символов (минимум) должно получиться в результате преобразования, либо *. Если используется *, то ширина предоставляется как дополнительное целое значение, предшествующее значению, отформатированному спецификатором.

Точность

Точка ., с последующим целым числом, либо *, значение которого зависит от спецификатора:

  • Для спецификаторов e, E, f и F: задаёт количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g,G, h и H: задаёт максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задаёт ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0. Если используется *, точность предоставляется как дополнительное целое значение, предшествующее значению, отформатированному спецификатором.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учётом локали).
F | Аргумент считается за число с плавающей точкой (без учёта локали).
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 — если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и f.
h | Аналогично спецификатору g, но использует F. Доступен с PHP 8.0.0.
H | Аналогично спецификатору g, но использует E и F. Доступен с PHP 8.0.0.
o | Аргумент рассматривается как целое число и печатается в восьмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззнаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Возвращаемые значения

Возвращает длину выведенной строки.

Ошибки

Начиная с PHP 8.0.0, если количество аргументов равно нулю, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если [width] меньше нуля или больше PHP_INT_MAX, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если [precision] меньше нуля или больше PHP_INT_MAX, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если аргументов задано меньше, чем требуется, выбрасывается исключение ArgumentCountError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает false в случае возникновения ошибки.
8.0.0 | Выбрасывает исключение ValueError, если количество аргументов равно нулю; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ValueError, если [width] меньше нуля или больше PHP_INT_MAX; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ValueError, если [precision] меньше нуля или больше PHP_INT_MAX; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ArgumentCountError, если аргументов задано меньше, чем требуется; ранее функция выдавала ошибку уровня E_WARNING.

Примеры

Пример #1 vprintf(): дополнение нулями целых чисел

<?php
vprintf("%04d-%02d-%02d", explode('-', '1988-8-1'));
?>

Результат выполнения данного примера:

1988-08-01

Смотрите также

  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку
  • fprintf() - Записывает отформатированную строку в поток
  • vsprintf() - Возвращает отформатированную строку
  • vfprintf() - Записывает отформатированную строку в поток
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • number_format() - Форматирует число с разделением групп
  • date() - Форматирует временную метку Unix


Возвращает отформатированную строку

  • « vprintf
  • wordwrap »
  • PHP Manual
  • Функции для работы со строками
  • Возвращает отформатированную строку

vsprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

vsprintf — Возвращает отформатированную строку

Описание

vsprintf(string $format, array $values): string

Работает как sprintf(), но принимает не переменное число аргументов, а массив.

Список параметров

format

Строка формата состоит из нуля или более директив: обычные символы (за исключением %), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.

Спецификаторы преобразования имеют следующий формат: %[argnum$][flags][width][.precision]specifier.

Argnum

Целое число, за которым следует знак доллара $, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.

Флаги
Флаг | Описание
- Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю.
+ Печатает плюс + у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.
(space) | Дополняет результат пробелами. Это поведение по умолчанию.
0 | Дополняет числа нулями (только слева). Со спецификатором s также может дополнять нулями справа.
'(char) | Дополняет результат символом (char).

Ширина

Либо целое число, указывающее, сколько символов (минимум) должно получиться в результате преобразования, либо *. Если используется *, то ширина предоставляется как дополнительное целое значение, предшествующее значению, отформатированному спецификатором.

Точность

Точка ., с последующим целым числом, либо *, значение которого зависит от спецификатора:

  • Для спецификаторов e, E, f и F: задаёт количество цифр после десятичной запятой (по умолчанию 6).
  • Для спецификаторов g,G, h и H: задаёт максимальное значение печатаемых значащих цифр.
  • Для спецификатора s: задаёт ограничение максимального количества символов в строке, которые будут выведены.

Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0. Если используется *, точность предоставляется как дополнительное целое значение, предшествующее значению, отформатированному спецификатором.

Спецификаторы
Спецификатор | Описание
% Символ процента. Аргументы не требуются.
b | Аргумент рассматривается как целое число и печатается в бинарном представлении.
c | Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d | Аргумент рассматривается как целое число и печатается как целое число со знаком.
e | Аргумент считается за число в научной нотации (т.е. 1.2e+2).
E | Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f | Аргумент считается за число с плавающей точкой (с учётом локали).
F | Аргумент считается за число с плавающей точкой (без учёта локали).
g

Общий формат.

Пусть P равно точности, если она не равно нулю, 6 — если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:

Если P > X ? ?4, преобразование будет в стиле "f" и точность будет P ? (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P ? 1.

G | Аналогично спецификатору g, но использует E и f.
h | Аналогично спецификатору g, но использует F. Доступен с PHP 8.0.0.
H | Аналогично спецификатору g, но использует E и F. Доступен с PHP 8.0.0.
o | Аргумент рассматривается как целое число и печатается в восьмеричном представлении.
s | Аргумент рассматривается и печатается как строка.
u | Аргумент рассматривается как целое число и печатается как беззнаковое целое число.
x | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X | Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).

Внимание

Спецификатор c игнорирует значения ширины и дополнения

Внимание

Попытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.

Переменные будут приведены к подходящему для спецификатора типу:

Обработка типов
Тип | Спецификатор
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Возвращаемые значения

Возвращает значения массива в виде строки, отформатированной в соответствии с параметром format.

Ошибки

Начиная с PHP 8.0.0, если количество аргументов равно нулю, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если [width] меньше нуля или больше PHP_INT_MAX, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если [precision] меньше нуля или больше PHP_INT_MAX, выбрасывается исключение ValueError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Начиная с PHP 8.0.0, если аргументов задано меньше, чем требуется, выбрасывается исключение ArgumentCountError. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает false в случае возникновения ошибки.
8.0.0 | Выбрасывает исключение ValueError, если количество аргументов равно нулю; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ValueError, если [width] меньше нуля или больше PHP_INT_MAX; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ValueError, если [precision] меньше нуля или больше PHP_INT_MAX; ранее функция выдавала ошибку уровня E_WARNING.
8.0.0 | Выбрасывает исключение ArgumentCountError, если аргументов задано меньше, чем требуется; ранее функция выдавала ошибку уровня E_WARNING.

Примеры

Пример #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() - Форматирует временную метку Unix


Переносит строку по указанному количеству символов

  • « vsprintf
  • Список изменений »
  • PHP Manual
  • Функции для работы со строками
  • Переносит строку по указанному количеству символов

wordwrap

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

wordwrap — Переносит строку по указанному количеству символов

Описание

wordwrap(
string $string,
int $width = 75,
string $break = "\n",
bool $cut_long_words = false
): string

Переносит строку по указанному количеству символов.

Список параметров

string

Входная строка.

width

Количество символов, по которым строка будет перенесена.

break

Символ переноса строки можно указать с помощью необязательного параметра break.

cut_long_words

Если параметр cut_long_words установлен в 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() - Разбивает строку на фрагменты


Модули, относящиеся к переменным и типам

  • Массивы
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Сортировка массивов
    • Функции для работы с массивами
  • Классы и объекты — Информация о классе и объекте
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции работы с классами и объектами
  • Ctype — Функции определения типа символов
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции Ctype
  • Filter — Фильтрация данных
    • Введение
    • Установка и настройка
    • Типы фильтров
    • Предопределённые константы
    • Примеры
    • Функции фильтрации данных
  • Управление функциями
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Функции управления функциями
  • Quickhash
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • QuickHashIntSet — Класс QuickHashIntSet
    • QuickHashIntHash — Класс QuickHashIntHash
    • QuickHashStringIntHash — Класс QuickHashStringIntHash
    • QuickHashIntStringHash — Класс QuickHashIntStringHash
  • Reflection
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Расширение
    • Reflection — Класс Reflection
    • ReflectionClass — Класс ReflectionClass
    • ReflectionClassConstant — Класс ReflectionClassConstant
    • ReflectionEnum — Класс ReflectionEnum
    • ReflectionEnumUnitCase — Класс ReflectionEnumUnitCase
    • ReflectionEnumBackedCase — Класс ReflectionEnumBackedCase
    • ReflectionZendExtension — Класс ReflectionZendExtension
    • ReflectionExtension — Класс ReflectionExtension
    • ReflectionFunction — Класс ReflectionFunction
    • ReflectionFunctionAbstract — Класс ReflectionFunctionAbstract
    • ReflectionMethod — Класс ReflectionMethod
    • ReflectionNamedType — Класс ReflectionNamedType
    • ReflectionObject — Класс ReflectionObject
    • ReflectionParameter — Класс ReflectionParameter
    • ReflectionProperty — Класс ReflectionProperty
    • ReflectionType — Класс ReflectionType
    • ReflectionUnionType — Класс ReflectionUnionType
    • ReflectionGenerator — Класс ReflectionGenerator
    • ReflectionFiber — Класс ReflectionFiber
    • ReflectionIntersectionType — Класс ReflectionIntersectionType
    • ReflectionReference — Класс ReflectionReference
    • ReflectionAttribute — Класс ReflectionAttribute
    • 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_is_list — Проверяет, является ли данный array списком
    • 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 — Подсчитывает количество элементов массива или Countable объекте
    • 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 (int)
CASE_LOWER используется с array_change_key_case() для конвертации ключей массива в нижний регистр. Это действие по умолчанию для array_change_key_case(). Начиная с PHP 8.2.0, конвертируются только символы ASCII.
CASE_UPPER (int)
CASE_UPPER используется c array_change_key_case() для конвертации ключей массива в верхний регистр. Начиная с PHP 8.2.0, конвертируются только символы ASCII.

Флаги, изменяющие порядок сортировки:

SORT_ASC (int)
SORT_ASC используется с array_multisort() для сортировки в порядке возрастания.
SORT_DESC (int)
SORT_DESC используется с array_multisort() для сортировки в порядке убывания.

Флаги сортировки, используемые различными функциями:

SORT_REGULAR (int)
SORT_REGULAR используется для обычного сравнения элементов массива.
SORT_NUMERIC (int)
SORT_NUMERIC используется для сравнения элементов как цифр.
SORT_STRING (int)
SORT_STRING используется для сравнения элементов как строк.
SORT_LOCALE_STRING (int)
SORT_LOCALE_STRING используется для сравнения элементов как строк на базе текущей локали.
SORT_NATURAL (int)
SORT_NATURAL используется для сравнения элементов как строк, используя естественное упорядочивание, такое как natsort().
SORT_FLAG_CASE (int)
SORT_FLAG_CASE может быть объединена (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для регистронезависимой сортировки строк. Начиная с PHP 8.2.0, будет выполняться только сложение регистров ASCII.

Опции фильтрации:

ARRAY_FILTER_USE_KEY (int)
ARRAY_FILTER_USE_KEY используется в array_filter() для передачи каждого ключа в виде первого аргумента в заданную функцию.
ARRAY_FILTER_USE_BOTH (int)
ARRAY_FILTER_USE_BOTH используется в array_filter() для передачи и значения и ключа в заданную функцию.

COUNT_NORMAL (int)
COUNT_RECURSIVE (int)
EXTR_OVERWRITE (int)
EXTR_SKIP (int)
EXTR_PREFIX_SAME (int)
EXTR_PREFIX_ALL (int)
EXTR_PREFIX_INVALID (int)
EXTR_PREFIX_IF_EXISTS (int)
EXTR_IF_EXISTS (int)
EXTR_REFS (int)


Сортировка массивов

В PHP есть несколько функций для сортировки массивов, на этой странице даётся их общее описание.

Основные различия между функциями:

  • В одних функциях массивы (array) сортируются по ключам элементов, в других по значениям: $array['ключ'] = 'значение';
  • В каких-то функциях связь между ключами и значениями после сортировки сохраняется, в каких-то нет. Это может приводить к тому, что ключи будут сбрасываться в числовые значения (0, 1, 2, ...).
  • Различия в порядке сортировки: алфавитный, возрастающий, убывающий, числовой, естественный, случайный или определённый пользователем
  • Примечание: Все функции сортировки модифицируют переданный массив, а не возвращают отсортированную копию
  • Если какая-либо из этих функций сортировки оценивает два элемента как равные, они сохраняют свой исходный порядок. До PHP 8.0.0 их порядок не был определён (сортировка была нестабильной).

Свойства функций сортировки
Имя функции | Сортирует по | Сохраняет связь ключ - значение | Порядок сортировки | Похожие функции
array_multisort() | значению | строковые (string) ключи да, числовые (int) - нет | первый массив или настройки сортировки | array_walk()
asort() | значению | да | по возрастанию | arsort()
arsort() | значению | да | по убыванию | asort()
krsort() | ключу | да | по убыванию | ksort()
ksort() | ключу | да | по возрастанию | krsort()
natcasesort() | значению | да | естественный, нечувствительный к регистру | natsort()
natsort() | значению | да | естественный | natcasesort()
rsort() | значению | нет | по убыванию | sort()
shuffle() | значению | нет | случайный | array_rand()
sort() | значению | нет | по возрастанию | rsort()
uasort() | значению | да | определяется пользователем | uksort()
uksort() | ключу | да | определяется пользователем | uasort()
usort() | значению | нет | определяется пользователем | uasort()


Функции для работы с массивами

Смотрите также

Смотрите также is_array(), explode(),
implode(),
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_is_list — Проверяет, является ли данный array списком
  • 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 — Подсчитывает количество элементов массива или Countable объекте
  • 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, PHP 8)

array_change_key_case — Меняет регистр всех ключей в массиве

Описание

array_change_key_case(array $array, int $case = CASE_LOWER): array

Возвращает массив array, все ключи которого преобразованы в нижний или верхний регистр. Числовые ключи останутся нетронутыми.

Список параметров

array

Обрабатываемый массив

case

Либо CASE_UPPER, либо CASE_LOWER (используется по умолчанию)

Возвращаемые значения

Возвращает массив с ключами, преобразованными в верхний или нижний регистр.

Примеры

Пример #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, PHP 8)

array_chunk — Разбивает массив на части

Описание

array_chunk(array $array, int $length, bool $preserve_keys = false): array

Разбивает массив на несколько массивов размером в length элементов. Последний массив из полученных может содержать меньшее количество значений, чем указано в length.

Список параметров

array

Обрабатываемый массив

length

Размер каждой части

preserve_keys

Если установлено в true, ключи оригинального массива будут сохранены. По умолчанию установлено в false, что переиндексирует каждую часть с числовыми ключами

Возвращаемые значения

Возвращает многомерный массив с числовыми индексами, начинающимися с нуля, каждый элемент которого содержит length элементов из оригинального массива.

Ошибки

Если параметр length меньше 1, будет выброшено исключение ValueError.

Список изменений

Версия | Описание
8.0.0 | Если параметр length меньше 1, будет выброшено исключение ValueError; ранее, вместо этого выдавалась ошибка уровня 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, PHP 8)

array_column — Возвращает массив из значений одного столбца входного массива

Описание

array_column(array $array, int|string|null $column_key, int|string|null $index_key = null): array

array_column() возвращает массив из значений столбца массива array с ключом column_key. Опционально можно указать index_key, чтобы индексировать возвращаемый массив значениями из столбца с ключом index_key входного массива.

Список параметров

array

Многомерный массив или массив объектов, из которого будет производиться выборка значений. Если задан массив объектов, то можно выбирать любые его общедоступные свойства. Для выборки закрытых или защищённых свойств, объект должен реализовывать магические методы __get() и __isset().

column_key

Ключ столбца, значения которого нужно вернуть. Может содержать как числовой, так и строковый ключ для ассоциативных массивов. А также может принимать значение null, тогда возвращаются не значения определённого столбца, а весь массив (полезно использовать вместе с index_key, чтобы переиндексировать массив).

index_key

Ключ столбца, значения которого будут использоваться в качестве ключей возвращаемого массива. Может быть как целочисленным ключом, так и строковым. Тип значения приводится, как обычно для ключей массива (однако до PHP 8.0.0 объекты, поддерживающие преобразование к строке, также разрешены).

Возвращаемые значения

Возвращает массив из значений одного столбца входного массива (набора записей).

Список изменений

Версия | Описание
8.0.0 | Объекты в столбцах, обозначенные параметром index_key, больше не будут преобразованы в строку и вместо этого будут выдавать TypeError.

Примеры

Пример #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(), то вернётся пустой массив.


Создаёт новый массив, используя один массив в качестве ключей, а другой для его значений

  • « array_column
  • array_count_values »
  • PHP Manual
  • Функции для работы с массивами
  • Создаёт новый массив, используя один массив в качестве ключей, а другой для его значений

array_combine

(PHP 5, PHP 7, PHP 8)

array_combine — Создаёт новый массив, используя один массив в качестве ключей, а другой для его значений

Описание

array_combine(array $keys, array $values): array

Создаёт массив (array), используя значения массива keys в качестве ключей и значения массива values в качестве соответствующих значений.

Список параметров

keys

Массив ключей. Некорректные значения для ключей будут преобразованы в строку (string).

values

Массив значений

Возвращаемые значения

Возвращает скомбинированный массив (array).

Ошибки

Начиная с PHP 8.0.0, выдаётся ошибка ValueError, если количество элементов в keys и values не совпадает. До PHP 8.0.0 вместо этого выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Функция array_combine() теперь выбрасывает ошибку ValueError, если количество элементов в массивах не совпадает; ранее функция возвращала значение 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_map() - Применяет callback-функцию ко всем элементам указанных массивов


Подсчитывает количество вхождений каждого отдельного значения в массиве

  • « array_combine
  • array_diff_assoc »
  • PHP Manual
  • Функции для работы с массивами
  • Подсчитывает количество вхождений каждого отдельного значения в массиве

array_count_values

(PHP 4, PHP 5, PHP 7, PHP 8)

array_count_values — Подсчитывает количество вхождений каждого отдельного значения в массиве

Описание

array_count_values(array $array): array

Функция array_count_values() возвращает массив, ключами которого являются значения массива array (которые должны быть целыми числами (int) или строками (string)), а значениями - количество повторений значений array.

Список параметров

array

Массив подсчитываемых значений

Возвращаемые значения

Возвращает ассоциативный массив со значениями array в качестве ключей и их количества в качестве значений.

Ошибки

Генерирует ошибку уровня E_WARNING для каждого элемента, не являющегося строкой (string) или целым числом (int).

Примеры

Пример #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() - Подсчитывает количество элементов массива или Countable объекте
  • 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, PHP 8)

array_diff_assoc — Вычисляет расхождение массивов с дополнительной проверкой индекса

Описание

array_diff_assoc(array $array, array ...$arrays): array

Сравнивает значения массива array со значениями массивов arrays и возвращает разницу. В этой функции, в отличие от функции array_diff(), ключи массива также участвуют в сравнении.

Список параметров

array

Исходный массив

arrays

Массивы для сравнения

Возвращаемые значения

Возвращает массив (array), содержащий значения массива array, которых нет в других сравниваемых массивах.

Список изменений

Версия | Описание
8.0.0 | Функция теперь может быть вызвана только с одним параметром. Раньше требовалось не менее двух параметров.

Примеры

Пример #1 Пример использования array_diff_assoc()

В этом примере пара "a" => "green" содержится в обоих массивах, и поэтому её нет в выводе функции. Но пара 0 => "red" содержится в выводе функции, потому что значению "red" в первом массиве автоматически присваивается ключ 0, а во втором массиве тому же значению будет присвоен ключ 1, поскольку ключ 0 уже занят значением yellow.

<?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, PHP 8)

array_diff_key — Вычисляет расхождение массивов, сравнивая ключи

Описание

array_diff_key(array $array, array ...$arrays): array

Сравнивает ключи array с ключами arrays и возвращает разницу. Эта функция схожа с array_diff() за исключением того, что сравниваются ключи, а не значения.

Список параметров

array

Исходный массив

arrays

Массивы для сравнения

Возвращаемые значения

Возвращает массив (array), содержащий все элементы array с ключами, которых нет во всех последующих массивах.

Список изменений

Версия | Описание
8.0.0 | Функция теперь может быть вызвана только с одним параметром. Раньше требовалось не менее двух параметров.

Примеры

Пример #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, PHP 8)

array_diff_uassoc — Вычисляет расхождение массивов с дополнительной проверкой индекса через пользовательскую callback-функцию

Описание

array_diff_uassoc(array $array, array ...$arrays, callable $key_compare_func): array

Сравнивает значения массива array cо значениями массивов arrays и возвращает разницу. В этой функции, в отличие от функции array_diff(), ключи массива также участвуют в сравнении.

В отличие от функции array_diff_assoc(), в этой функции ключи сравнивает пользовательская callback-функция, а не встроенная.

Список параметров

array

Исходный массив

arrays

Массивы, с которыми идёт сравнение

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Возвращает массив (array), содержащий все элементы массива array, которых нет в других сравниваемых массивах.

Примеры

Пример #1 Пример использования array_diff_uassoc()

В этом примере пара "a" => "green" существует в обоих содержится в обоих массивах, и поэтому её нет в выводе функции. Но пара 0 => "red" содержится в выводе функции, потому что значению "red" в первом массиве автоматически присваивается ключ 0, а во втором массиве тому же значению будет присвоен ключ 1, поскольку ключ 0 уже занят значением yellow.

<?php
function key_compare_func($a, $b)
{
if ($a === $b) {
return 0;
}
return $a <=> $b;
}

$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, PHP 8)

array_diff_ukey — Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей

Описание

array_diff_ukey(array $array, array ...$arrays, callable $key_compare_func): array

Сравнивает ключи array с ключами arrays и возвращает разницу. Эта функция похожа на array_diff() за исключением того, что сравниваются ключи, а не значения.

В отличие от функции array_diff_key() для сравнения ключей используется функция, предоставляемая пользователем, а не встроенная функция.

Список параметров

array

Исходный массив

arrays

Массивы, с которыми идёт сравнение

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Возвращает массив (array), содержащий все элементы array, отсутствующие в каком-либо из всех остальных массивов.

Примеры

Пример #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, PHP 8)

array_diff — Вычислить расхождение массивов

Описание

array_diff(array $array, array ...$arrays): array

Сравнивает array с одним или несколькими другими массивами и возвращает значения из array, которые отсутствуют во всех других массивах.

Список параметров

array

Исходный массив

arrays

Массивы, с которыми идёт сравнение

Возвращаемые значения

Возвращает массив (array), содержащий элементы array, отсутствующие в любом из всех остальных массивов. Ключи в массиве array сохраняются.

Список изменений

Версия | Описание
8.0.0 | Функция теперь может быть вызвана только с одним параметром. Раньше требовалось не менее двух параметров.

Примеры

Пример #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
)

Пример #2 Пример использования array_diff() с несовпадающими типами

Два элемента считаются равными тогда и только тогда, когда (string) $elem1 === (string) $elem2. То есть, когда строковое представление одинаково.

<?php
// Это сгенерирует уведомление о том, что массив не может быть преобразован в строку.
$source = [1, 2, 3, 4];
$filter = [3, 4, [5], 6];
$result = array_diff($source, $filter);

// В то же время это нормально, поскольку объекты могут быть преобразованы в строку.
class S {
private $v;

public function __construct(string $v) {
$this->v = $v;
}

public function __toString() {
return $this->v;
}
}

$source = [new S('a'), new S('b'), new S('c')];
$filter = [new S('b'), new S('c'), new S('d')];

$result = array_diff($source, $filter);

// $result теперь содержит один экземпляр S('a');
?>

Чтобы использовать альтернативную функцию сравнения, смотрите array_udiff().

Примечания

Замечание:

Обратите внимание, что эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff($array1[0], $array2[0]);.

Смотрите также

  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса


Создаёт массив и заполняет его значениями с определёнными ключами

  • « array_diff
  • array_fill »
  • PHP Manual
  • Функции для работы с массивами
  • Создаёт массив и заполняет его значениями с определёнными ключами

array_fill_keys

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

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, PHP 8)

array_fill — Заполняет массив значениями

Описание

array_fill(int $start_index, int $count, mixed $value): array

Заполняет массив count элементами со значением value, начиная с ключа start_index.

Список параметров

start_index

Первый индекс возвращаемого массива.

Если start_index отрицательный, первым индексом возвращаемого массива будет start_index, а последующие индексы будут начинаться с нуля до PHP 8.0.0; начиная с PHP 8.0.0, отрицательные ключи увеличиваются нормально (смотрите пример).

count

Количество добавляемых элементов. Должно быть больше или равно нулю и меньше или равно 2147483647.

value

Значение для заполнения.

Возвращаемые значения

Возвращает заполненный массив.

Ошибки

Выбрасывает исключение ValueError в случае, если параметр count выходит за пределы диапазона.

Список изменений

Версия | Описание
8.0.0 | Функция array_fill() теперь выбрасывает исключение ValueError, если параметр count выходит за пределы диапазона; ранее выдавалась ошибка уровня E_WARNING, а функция возвращала значение false.

Примеры

Пример #1 Пример использования array_fill()

<?php
$a = array_fill(5, 6, 'banana');
print_r($a);
?>

Результат выполнения данного примера:

Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)

Пример #2 Пример использования array_fill() с отрицательным начальным индексом

<?php
$a = array_fill(-2, 4, 'pear');
print_r($a);
?>

Результат выполнения данного примера в PHP 7:

Array
(
    [-2] => pear
    [0] => pear
    [1] => pear
    [2] => pear
)

Результат выполнения данного примера в PHP 8:

Array
(
    [-2] => pear
    [-1] => pear
    [0] => pear
    [1] => pear
)

Обратите внимание, что индекс -1 отсутствует до PHP 8.0.0.

Примечания

Смотрите также подробное описание отрицательных ключей в разделе Массивы.

Смотрите также

  • 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, PHP 8)

array_filter — Фильтрует элементы массива с помощью callback-функции

Описание

array_filter(array $array, ?callable $callback = null, int $mode = 0): array

Обходит каждое значение массива array, передавая его в callback-функцию. Если callback-функция возвращает true, данное значение из array возвращается в результирующий array.

Ключи массива сохраняются и могут привести к пропускам, если array был проиндексирован. Результат массива (array) можно переиндексировать с помощью функции array_values().

Список параметров

array

Итерируемый массив

callback

Используемая callback-функция

Если callback-функция не передана, все пустые значения массива array будут удалены. Смотрите empty(), чтобы узнать, как PHP определяет пустое значение в этом случае.

mode

Флаг, определяющий, какие аргументы передавать в callback:

  • ARRAY_FILTER_USE_KEY - передавать только ключ массива как аргумент для callback вместо значения
  • ARRAY_FILTER_USE_BOTH - передавать и ключ, и значение в callback вместо только значения
По умолчанию 0, что означает, что в callback-функцию будет передаваться только значение в качестве единственного аргумента.

Возвращаемые значения

Возвращает отфильтрованный массив.

Список изменений

Версия | Описание
8.0.0 | callback теперь допускает значение null.
8.0.0 | Если параметр callback ожидает, что будет передано значение по ссылке, функция теперь выдаст ошибку уровня E_WARNING.

Примеры

Пример #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() с указанным mode

<?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_intersect() - Вычисляет схождение массивов
  • array_map() - Применяет callback-функцию ко всем элементам указанных массивов
  • array_reduce() - Итеративно уменьшает массив к единственному значению, используя callback-функцию
  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива


Меняет местами ключи с их значениями в массиве

  • « array_filter
  • array_intersect_assoc »
  • PHP Manual
  • Функции для работы с массивами
  • Меняет местами ключи с их значениями в массиве

array_flip

(PHP 4, PHP 5, PHP 7, PHP 8)

array_flip — Меняет местами ключи с их значениями в массиве

Описание

array_flip(array $array): array

Функция array_flip() возвращает массив (array) наоборот, то есть ключи массива array становятся значениями, а значения массива array становятся ключами.

Обратите внимание, что значения массива array должны быть корректными ключами, то есть они должны иметь тип int или string. Если значение имеет неверный тип, будет выдано предупреждение и данная пара ключ/значение не будет включена в результат.

Если значение встречается несколько раз, для обработки будет использоваться последний встреченный ключ, а все остальные будут потеряны.

Список параметров

array

Массив переворачиваемых пар ключ/значение.

Возвращаемые значения

Возвращает перевёрнутый массив.

Примеры

Пример #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, PHP 8)

array_intersect_assoc — Вычисляет схождение массивов с дополнительной проверкой индекса

Описание

array_intersect_assoc(array $array, array ...$arrays): array

Функция array_intersect_assoc() возвращает массив, содержащий все значения массива array, которые содержатся во всех указанных аргументах. Обратите внимание, что при сравнении используются ключи, в отличие от функции array_intersect().

Список параметров

array

Основной проверяемый массив.

arrays

Массивы, с которыми идёт сравнение.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий все элементы массива array, которые существуют во всех переданных аргументах.

Список изменений

Версия | Описание
8.0.0 | Функция теперь может быть вызвана только с одним параметром. Раньше требовалось не менее двух параметров.

Примеры

Пример #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, PHP 8)

array_intersect_key — Вычислить пересечение массивов, сравнивая ключи

Описание

array_intersect_key(array $array, array ...$arrays): array

array_intersect_key() возвращает массив, содержащий все элементы array, имеющие ключи, содержащиеся во всех последующих параметрах.

Список параметров

array

Основной проверяемый массив.

arrays

Массив, с которым идёт сравнение.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий все элементы array, имеющие ключи, содержащиеся во всех остальных параметрах.

Список изменений

Версия | Описание
8.0.0 | Функция теперь может быть вызвана только с одним параметром. Раньше требовалось не менее двух параметров.

Примеры

Пример #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', различны в исходных массивах. Совпадение всё равно происходит, так как сравниваются только ключи. Возвращаемые значения берутся из array.

Два ключа пар 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, PHP 8)

array_intersect_uassoc — Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

Описание

array_intersect_uassoc(array $array, array ...$arrays, callable $key_compare_func): array

array_intersect_uassoc() возвращает массив, содержащий значения array, содержащиеся во всех последующих параметрах. Обратите внимание, что в отличие от array_intersect(), для сравнения используются ключи.

Список параметров

array

Исходный сравниваемый массив

arrays

Массивы, с которыми сравниваются ключи.

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Возвращает все элементы array, чьи значения существуют во всех аргументах.

Примеры

Пример #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, PHP 8)

array_intersect_ukey — Вычисляет схождение массивов, используя callback-функцию для сравнения ключей

Описание

array_intersect_ukey(array $array, array ...$arrays, callable $key_compare_func): array

array_intersect_ukey() возвращает массив, содержащий значения array, имеющие ключи, содержащиеся во всех последующих параметрах.

Список параметров

array

Основной проверяемый массив.

arrays

Массивы, с которыми сравниваются ключи.

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Возвращает все элементы array, чьи ключи существуют во всех переданных аргументах.

Примеры

Пример #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' отличаются между массивами. Совпадение всё равно происходит, так как сравниваются только ключи. Возвращаемые значения берутся из array.

Смотрите также

  • 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_is_list »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет схождение массивов

array_intersect

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_intersect — Вычисляет схождение массивов

Описание

array_intersect(array $array, array ...$arrays): array

Функция array_intersect() возвращает массив, содержащий все значения массива array, которые содержатся во всех аргументах. Обратите внимание, что ключи сохраняются.

Список параметров

array

Основной проверяемый массив

arrays

Массивы, с которыми идёт сравнение значений

Возвращаемые значения

Возвращает массив, содержащий все значения array, которые существуют во всех переданных аргументах.

Список изменений

Версия | Описание
8.0.0 | Функция теперь может быть вызвана только с одним параметром. Раньше требовалось не менее двух параметров.

Примеры

Пример #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 списком

  • « array_intersect
  • array_key_exists »
  • PHP Manual
  • Функции для работы с массивами
  • Проверяет, является ли данный array списком

array_is_list

(PHP 8 >= 8.1.0)

array_is_list — Проверяет, является ли данный array списком

Описание

array_is_list(array $array): bool

Определяет, является ли данный array списком. Массив (array) считается списком, если его ключи состоят из последовательных чисел от 0 до count($array)-1.

Список параметров

array

Массив (array) для проверки.

Возвращаемые значения

Возвращает true, если array является списком, в противном случае возвращает false.

Примеры

Пример #1 Пример использования array_is_list()

<?php

array_is_list([]); // true
array_is_list(['apple', 2, 3]); // true
array_is_list([0 => 'apple', 'orange']); // true

// Массив начинается не с 0
array_is_list([1 => 'apple', 'orange']); // false

// Ключи массива не по порядку
array_is_list([1 => 'apple', 0 => 'orange']); // false

// Ключи массива не являются целыми числами
array_is_list([0 => 'apple', 'foo' => 'bar']); // false

// Непоследовательные ключи
array_is_list([0 => 'apple', 2 => 'bar']); // false
?>

Примечания

Замечание:

Функция возвращает true для пустых массивов.

Смотрите также

  • array_values() - Выбирает все значения массива


Проверяет, присутствует ли в массиве указанный ключ или индекс

  • « array_is_list
  • array_key_first »
  • PHP Manual
  • Функции для работы с массивами
  • Проверяет, присутствует ли в массиве указанный ключ или индекс

array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

array_key_exists — Проверяет, присутствует ли в массиве указанный ключ или индекс

Описание

array_key_exists(string|int $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. Поведение устарело в PHP 7.4.0 и удалено в PHP 8.0.0.

Чтобы проверить, содержит ли объект какое-либо свойство, используйте функцию 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, PHP 8)

array_key_first — Получает первый ключ массива

Описание

array_key_first(array $array): int|string|null

Получить первый ключ заданного массива 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, PHP 8)

array_key_last — Получает последний ключ массива

Описание

array_key_last(array $array): int|string|null

Получить последний ключ заданного массива array, не затрагивая внутренний указатель массива.

Список параметров

array

Массив.

Возвращаемые значения

Возвращает последний ключ массива array, если он не пустой; null в противном случае.

Смотрите также

  • array_key_first() - Получает первый ключ массива
  • end() - Устанавливает внутренний указатель массива на его последний элемент


Возвращает все или некоторое подмножество ключей массива

  • « array_key_last
  • array_map »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает все или некоторое подмножество ключей массива

array_keys

(PHP 4, PHP 5, PHP 7, PHP 8)

array_keys — Возвращает все или некоторое подмножество ключей массива

Описание

array_keys(array $array): array
array_keys(array $array, mixed $filter_value, bool $strict = false): array

Функция array_keys() возвращает числовые и строковые ключи, содержащиеся в массиве array.

Если указан параметр filter_value, функция возвращает ключи у которых значения элементов массива совпадают с этим параметром. В обратном случае, функция возвращает все ключи массива array.

Список параметров

array

Массив, содержащий возвращаемые ключи.

filter_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, PHP 8)

array_map — Применяет callback-функцию ко всем элементам указанных массивов

Описание

array_map(?callable $callback, array $array, array ...$arrays): array

Функция array_map() возвращает массив (array), содержащий результаты применения callback-функции к соответствующему элементу array (и arrays, если указано больше массивов), используемого в качестве аргумента callback-функции. Количество параметров, передаваемых callback-функции, должно совпадать с количеством массивов, переданным функции array_map(). Лишние входные массивы игнорируются. Если предоставлено недостаточное количество аргументов, выбрасывается ArgumentCountError.

Список параметров

callback

callable, применяемая к каждому элементу в каждом массиве.

null может быть передан в качестве значения callback для выполнения zip операции с несколькими массивами. Если указан только array, array_map() вернёт входной массив.

array

Массив, к которому применяется callback-функция.

arrays

Дополнительные массивы для обработки callback-функцией.

Возвращаемые значения

Возвращает массив, содержащий результаты применения callback-функции к соответствующему элементу array (и arrays, если указано больше массивов), используемого в качестве аргумента для callback-функции.

Возвращённый массив сохранит ключи аргумента массива тогда и только тогда, когда будет передан ровно один массив. Если передано более одного массива, возвращённый массив будет иметь последовательные целочисленные ключи.

Список изменений

Версия | Описание
8.0.0 | Если параметр callback ожидает, что будет передано значение по ссылке, функция теперь выдаст ошибку уровня E_WARNING.

Примеры

Пример #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
$func = function(int $value): int {
return $value * 2;
};

print_r(array_map($func, range(1, 5)));

// Или с PHP 7.4.0:

print_r(array_map(fn($value): int => $value * 2, range(1, 5)));

?>
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)

Пример #3 Пример использования array_map(): обработка нескольких массивов

<?php
function show_Spanish(int $n, string $m): string
{
return "Число {$n} по-испански - {$m}";
}

function map_Spanish(int $n, string $m): array
{
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 только с array

<?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"
  }
}

Пример #7 array_map() - ассоциативные массивы

Хотя array_map() напрямую не поддерживает использование ключа массива в качестве входных данных, это можно смоделировать с помощью array_keys().

<?php
$arr = [
'v1' => 'Первый выпуск',
'v2' => 'Второй выпуск',
'v3' => 'Третий выпуск',
];

// Примечание: До версии 7.4.0 вместо этого используйте более длинный синтаксис для анонимных функций.
$callback = fn(string $k, string $v): string => "$k - это $v";

$result = array_map($callback, array_keys($arr), array_values($arr));

var_dump($result);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(24) "v1 - это Первый выпуск"
  [1]=>
  string(25) "v2 - это Второй выпуск"
  [2]=>
  string(24) "v3 - это Третий выпуск"
}

Смотрите также

  • array_filter() - Фильтрует элементы массива с помощью callback-функции
  • array_reduce() - Итеративно уменьшает массив к единственному значению, используя callback-функцию
  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива


Рекурсивное слияние одного или более массивов

  • « array_map
  • array_merge »
  • PHP Manual
  • Функции для работы с массивами
  • Рекурсивное слияние одного или более массивов

array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_merge_recursive — Рекурсивное слияние одного или более массивов

Описание

array_merge_recursive(array ...$arrays): array

Функция array_merge_recursive() сливает элементы двух или более массивов таким образом, что значения одного массива присоединяются в конец другого. Возвращает результирующий массив.

Если входные массивы имеют одинаковые строковые ключи, то значения этих ключей сливаются в массив, и это делается рекурсивно, так что если одно из значений является массивом, то функция сливает его с соответствующим значением в другом массиве. Однако, если массивы имеют одинаковые числовые ключи, каждое последующее значение не заменит исходное значение, а будет добавлено в конец массива.

Список параметров

arrays

Рекурсивно сливаемые массивы.

Возвращаемые значения

Массив значений, полученный в результате слияния аргументов вместе. Если вызывается без аргументов, возвращает пустой 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, PHP 8)

array_merge — Сливает один или большее количество массивов

Описание

array_merge(array ...$arrays): array

Сливает элементы одного или большего количества массивов таким образом, что значения одного массива присоединяются к концу предыдущего. Результатом работы функции является новый массив.

Если входные массивы имеют одинаковые строковые ключи, тогда каждое последующее значение будет заменять предыдущее. Однако, если массивы имеют одинаковые числовые ключи, значение, упомянутое последним, не заменит исходное значение, а будет добавлено в конец массива.

В результирующем массиве значения исходного массива с числовыми ключами будут перенумерованы в возрастающем порядке, начиная с нуля.

Список параметров

arrays

Сливаемые массивы.

Возвращаемые значения

Возвращает результирующий массив. Если вызывается без аргументов, возвращает пустой массив (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, PHP 8)

array_multisort — Сортирует несколько массивов или многомерные массивы

Описание

array_multisort(
array &$array1,
mixed $array1_sort_order = SORT_ASC,
mixed $array1_sort_flags = SORT_REGULAR,
mixed ...$rest
): bool

Функция array_multisort() может быть использована для сортировки сразу нескольких массивов или одного многомерного массива в соответствии с одной или несколькими размерностями.

Ассоциативные (string) ключи будут сохранены, но числовые ключи будут переиндексированы.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Список параметров

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.

rest

Дополнительные массивы, необязательно следующие после порядка сортировки и флагов. Сравниваются только элементы соответствующие таким же элементам в предыдущих массивах. Другими словами, производится сортировка в лексикографическом порядке.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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'];
}

// Вы можете использовать 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, PHP 8)

array_pad — Дополнить массив определённым значением до указанной длины

Описание

array_pad(array $array, int $length, mixed $value): array

Функция array_pad() возвращает копию массива array, дополненного до размера length элементами со значением value. Если параметр length положителен, то массив увеличивается вправо, если отрицателен - влево. Если абсолютное значение параметра length меньше или равно размеру массива array, функция не производит никаких операций. За один раз возможно добавить максимум 1048576 элементов.

Список параметров

array

Исходный массив, к которому дополняются элементы.

length

Новый размер массива.

value

Дополняемое значение, если длина массива array меньше length.

Возвращаемые значения

Возвращает копию array, дополненного до размера указанного length значением value. Если параметр length положителен, то массив дополняется вправо, если он отрицателен - влево. Если абсолютное значение length меньше либо равно длине 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, PHP 8)

array_pop — Извлекает последний элемент массива

Описание

array_pop(array &$array): mixed

array_pop() извлекает и возвращает значение последнего элемента массива array, уменьшая размер array на один элемент.

Замечание: Эта функция при вызове сбрасывает указатель массива, переданного параметром.

Список параметров

array

Массив, из которого берётся значение.

Возвращаемые значения

Возвращает значение последнего элемента массива array. Если array пуст, будет возвращён null.

Примеры

Пример #1 Пример использования array_pop()

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
?>

После этого в $stack будет только 3 элемента:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

и raspberry будет присвоено переменной $fruit.

Смотрите также

  • array_push() - Добавляет один или несколько элементов в конец массива
  • array_shift() - Извлекает первый элемент массива
  • array_unshift() - Добавляет один или несколько элементов в начало массива


Вычислить произведение значений массива

  • « array_pop
  • array_push »
  • PHP Manual
  • Функции для работы с массивами
  • Вычислить произведение значений массива

array_product

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_product — Вычислить произведение значений массива

Описание

array_product(array $array): int|float

array_product() возвращает произведение значений массива.

Список параметров

array

Массив.

Возвращаемые значения

Возвращает произведение как тип integer или float.

Примеры

Пример #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, PHP 8)

array_push — Добавляет один или несколько элементов в конец массива

Описание

array_push(array &$array, mixed ...$values): int

array_push() использует array как стек и добавляет переданные значения в конец массива array. Длина array увеличивается на количество переданных значений. Имеет тот же эффект, что и выражение:

<?php
$array[] = $var;
?>
повторенное для каждого переданного значения.

Замечание: Вместо использования array_push() для добавления одного элемента в массив, лучше использовать $array[] = , потому что в этом случае не происходит затрат на вызов функции.

Замечание: array_push() вызовет предупреждение, если первый аргумент не является массивом. Это отличается от поведения конструкции $var[] до PHP 7.1.0, в случае которой будет создан новый массив.

Список параметров

array

Входной массив.

values

Значения, добавляемые в конец массива 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, PHP 8)

array_rand — Выбирает один или несколько случайных ключей из массива

Описание

array_rand(array $array, int $num = 1): int|string|array

Выбирает одно или несколько случайных значений из массива. Возвращает ключ (или ключи) данных случайных элементов.

Предостережение

Функция не создаёт криптографически защищённые значения и не должна использоваться для криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для разгадывания.

Если требуется криптографически безопасная случайная последовательность, Random\Randomizer может использоваться с движком Random\Engine\Secure. Для простых случаев использования функции random_int() и random_bytes() предоставляют удобный и безопасный API, поддерживаемый CSPRNG операционной системы.

Список параметров

array

Входной массив.

num

Определяет количество выбираемых элементов.

Возвращаемые значения

Если вы выбираете только одно значение, функция array_rand() возвращает ключ, соответствующий этому значению. В обратном случае, она возвращает массив ключей, соответствующих случайным значениям. Это сделано для того, чтобы дать возможность выбрать из массива как случайные значения, так и случайные ключи. Если возвращается несколько ключей, они будут возвращены в том порядке, в котором они присутствовали в исходном массиве. Попытка выбрать больше элементов, чем есть в массиве, сгенерирует ошибку уровня E_WARNING и вернёт NULL.

Список изменений

Версия | Описание
7.1.0 | Внутренний алгоритм получения случайных чисел изменён с функции rand библиотеки libc на генератор на базе » Вихря Мерсенна.

Примеры

Пример #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";
?>

Смотрите также

  • Random\Randomizer::pickArrayKeys() - Выбирает случайные ключи массива
  • Random\Randomizer::shuffleArray() - Получает перестановку массива


Итеративно уменьшает массив к единственному значению, используя callback-функцию

  • « array_rand
  • array_replace_recursive »
  • PHP Manual
  • Функции для работы с массивами
  • Итеративно уменьшает массив к единственному значению, используя callback-функцию

array_reduce

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

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.

Список изменений

Версия | Описание
8.0.0 | Если параметр callback ожидает, что будет передано значение по ссылке, функция теперь выдаст ошибку уровня E_WARNING.

Примеры

Пример #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, PHP 8)

array_replace_recursive — Рекурсивно заменяет элементы первого массива элементами переданных массивов

Описание

array_replace_recursive(array $array, array ...$replacements): array

array_replace_recursive() заменяет значения массива array на соответствующие по ключам значения из всех следующих массивов. Если ключ из первого массива есть во втором, его значение будет заменено на значение из второго массива. Если ключ есть во втором массиве, но отсутствует в первом, он будет создан в первом массиве. Если ключ есть только в первом массиве, то он остаётся как есть. Если передано несколько массивов, они будут обработаны по порядку, последующие перезаписывают предыдущие значения.

array_replace_recursive() - рекурсивная функция: она будет рекурсивно углубляться в массивы и применять к всем внутренним значениям один и тот же процесс.

Если значение, переданное в первый массив является скалярным, оно будет заменено значением во втором массиве, которое может быть скалярным значением или массивом. Если оба значения, переданные в первый массив и во второй массив - массивы, array_replace_recursive() будет заменять их значения рекурсивно.

Список параметров

array

Массив, элементы которого будут заменены.

replacements

Массивы, из которых будут браться элементы для замены.

Возвращаемые значения

Возвращает массив (array).

Примеры

Пример #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, PHP 8)

array_replace — Заменяет элементы массива элементами других переданных массивов

Описание

array_replace(array $array, array ...$replacements): array

array_replace() замещает значения массива array значениями с такими же ключами из других переданных массивов. Если ключ из первого массива присутствует во втором массиве, его значение заменяется на значение из второго массива. Если ключ есть во втором массиве, но отсутствует в первом - он будет создан в первом массиве. Если ключ присутствует только в первом массиве, то сохранится как есть. Если для замены передано несколько массивов, они будут обработаны в порядке передачи и последующие массивы будут перезаписывать значения из предыдущих.

array_replace() не рекурсивная: значения первого массива будут заменены вне зависимости от типа значений второго массива, даже если это будут вложенные массивы.

Список параметров

array

Массив, элементы которого требуется заменить.

replacements

Массивы, из которых будут браться элементы для замены. Значения следующего массива затирают значения предыдущего.

Возвращаемые значения

Возвращает массив (array).

Примеры

Пример #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, PHP 8)

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, PHP 8)

array_search — Осуществляет поиск данного значения в массиве и возвращает ключ первого найденного элемента в случае успешного выполнения

Описание

array_search(mixed $needle, array $haystack, bool $strict = false): int|string|false

Ищет в haystack значение needle.

Список параметров

needle

Искомое значение.

Замечание:

Если needle является строкой, сравнение происходит с учётом регистра.

haystack

Массив.

strict

Если третий параметр strict установлен в true, то функция array_search() будет искать идентичные элементы в haystack. Это означает, что также будут проверяться типы needle в haystack, а объекты должны быть одним и тем же экземпляром.

Возвращаемые значения

Возвращает ключ для needle, если он был найден в массиве, иначе false.

Если needle присутствует в haystack более одного раза, будет возвращён первый найденный ключ. Для того, чтобы возвратить ключи для всех найденных значений, используйте функцию array_keys() с необязательным параметром search_value.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #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, PHP 8)

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, PHP 8)

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. Строковые ключи сохраняются, независимо от значения этого параметра.

Возвращаемые значения

Возвращает срез. Если смещение больше длины массива, то будет возвращён пустой массив.

Примеры

Пример #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, PHP 8)

array_splice — Удаляет часть массива и заменяет её чем-нибудь ещё

Описание

array_splice(
array &$array,
int $offset,
?int $length = null,
mixed $replacement = []
): array

Удаляет length элементов, расположенных на расстоянии offset из массива array, и заменяет их элементами массива replacement, если он передан в качестве параметра.

Замечание:

Обратите внимание, что числовые ключи в массиве array не сохраняются.

Замечание: Если параметр replacement не является массивом, он будет преобразован к нему (то есть (array) $parameter). Это может привести к неожиданным результатам при использовании объекта или null в качестве replacement.

Список параметров

array

Входной массив.

offset

Если параметр offset положительный, будут удалены элементы, находящиеся на расстоянии offset от начала array.

Если offset отрицательный, будут удалены элементы, находящиеся на расстоянии offset от конца array.

length

Если параметр length опущен, будут удалены все элементы начиная с позиции offset и до конца массива.

Если length указан и он положителен, то будет удалено именно столько элементов.

Если параметр length отрицателен, то конец удаляемой части элементов будет отстоять на это количество от конца массива.

Если length задан как 0, ничего удалено не будет.

Подсказка

Совет: для того, чтобы удалить все элементы массива, начиная с позиции offset до конца массива, в то время как указан параметр replacement, используйте count($input) в качестве параметра length.

replacement

Если передан массив replacement в качестве аргумента, тогда удалённые элементы будут заменены элементами этого массива.

Если параметры offset и length таковы, что из исходного массива не будет ничего удалено, тогда элементы массива replacement будут вставлены на позицию offset.

Замечание:

Обратите внимание, что ключи массива replacement не сохраняются.

Совет: если replacement является просто одним элементом, нет необходимости заключать его в array() или квадратные скобки, если только этот элемент сам не является массивом, объектом или null.

Возвращаемые значения

Возвращает массив, содержащий удалённые элементы.

Список изменений

Версия | Описание
8.0.0 | length теперь допускает значение 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, PHP 8)

array_sum — Вычисляет сумму значений массива

Описание

array_sum(array $array): int|float

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, PHP 8)

array_udiff_assoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

Описание

array_udiff_assoc(array $array, array ...$arrays, callable $value_compare_func): array

Вычисляет расхождение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию.

Замечание: Пожалуйста, обратите внимание, что эта функция обрабатывает только одно измерение многомерного массива. Разумеется, вы можете обработать более одного измерения, используя, например, array_udiff_assoc($array1[0], $array2[0], "some_comparison_func");.

Список параметров

array

Первый массив.

arrays

Массивы для сравнения.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

array_udiff_assoc() возвращает массив (array), содержащий все элементы array, которых нет в каком-либо из всех остальных аргументов. Обратите внимание, что в отличие от array_diff() и array_udiff() в сравнении используются ключи. Сравнение данных массива производится с помощью callback-функции, предоставленной пользователем. В этом смысле, поведение этой функции отличается от array_diff_assoc(), которая используется встроенную функцию для сравнения.

Примеры

Пример #1 Пример использования array_udiff_assoc()

<?php
class cr {
private $priv_member;
function __construct($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, PHP 8)

array_udiff_uassoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию

Описание

array_udiff_uassoc(
array $array,
array ...$arrays,
callable $value_compare_func,
callable $key_compare_func
): array

Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию.

Обратите внимание, что для сравнения используются ключи, в отличие от array_diff() и array_udiff().

Список параметров

array

Первый массив.

arrays

Массивы для сравнения.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

key_compare_func

Сравнение ключей (индексов) также осуществляется с помощью callback-функции key_compare_func. Это отличается от поведения array_udiff_assoc(), которая сравнивает индексы с помощью встроенной функции.

Возвращаемые значения

Возвращает массив (array), содержащий все элементы array, которых нет в каком-либо из остальных аргументов.

Примеры

Пример #1 Пример использования array_udiff_uassoc()

<?php
class cr {
private $priv_member;
function __construct($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, PHP 8)

array_udiff — Вычисляет расхождение массивов, используя для сравнения callback-функцию

Описание

array_udiff(array $array, array ...$arrays, callable $value_compare_func): array

Вычисляет расхождение массивов, используя для сравнения данных callback-функцию. Это отличается от поведения array_diff(), которая использует встроенную функцию для сравнения данных.

Список параметров

array

Первый массив.

arrays

Массивы для сравнения.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Возвращает массив, содержащий все элементы array, которые не существуют в каком-либо из других аргументов.

Примеры

Пример #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, PHP 8)

array_uintersect_assoc — Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

Описание

array_uintersect_assoc(array $array, array ...$arrays, callable $value_compare_func): array

Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию.

Учтите, что в сравнении используются ключи, в отличие от array_uintersect(). Значения сравниваются с помощью callback-функции.

Список параметров

array

Первый массив.

arrays

Массивы для сравнения.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Возвращает массив, содержащий все элементы array, которые существуют во всех остальных аргументах.

Примеры

Пример #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, PHP 8)

array_uintersect_uassoc — Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции

Описание

array_uintersect_uassoc(
array $array1,
array ...$arrays,
callable $value_compare_func,
callable $key_compare_func
): array

Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения ключей и значений разные callback-функции. То есть значения сравниваются одной callback-функцией, а индексы другой.

Список параметров

array1

Первый массив.

arrays

Дополнительные массивы.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

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, PHP 8)

array_uintersect — Вычисляет пересечение массивов, используя для сравнения значений callback-функцию

Описание

array_uintersect(array $array, array ...$arrays, callable $value_compare_func): array

Вычисляет пересечение массивов, используя для сравнения значений callback-функцию.

Список параметров

array

Первый массив.

arrays

Массивы для сравнения.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Возвращает массив, содержащий все элементы array, которые существуют во всех остальных аргументах.

Примеры

Пример #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, PHP 8)

array_unique — Убирает повторяющиеся значения из массива

Описание

array_unique(array $array, int $flags = SORT_STRING): array

Принимает входной массив array и возвращает новый массив без повторяющихся значений.

Обратите внимание, что ключи сохранятся. Если в соответствии с заданными flags несколько элементов определяются как идентичные, то будут сохранены ключ и значение первого такого элемента.

Замечание: Два элемента считаются одинаковыми в том и только в том случае, если (string) $elem1 === (string) $elem2. Другими словами: если у них одинаковое строковое представление, то будет использован первый элемент.

Список параметров

array

Входной массив.

flags

Можно использовать необязательный второй параметр flags для изменения поведения сравнения с помощью следующих значений:

Флаги видов сравнения:

  • SORT_REGULAR - нормальное сравнение элементов (типы не меняются)
  • SORT_NUMERIC - элементы сравниваются как числа
  • SORT_STRING - элементы сравниваются как строки
  • SORT_LOCALE_STRING - сравнивает элементы как строки, с учётом текущей локали.

Возвращаемые значения

Возвращает отфильтрованный массив.

Список изменений

Версия | Описание
7.2.0 | Если flags равен SORT_STRING, ранее массив array копировался, а не уникальные элементы удалялись (сохраняя значения цифровых индексов), но теперь создаётся новый массив путём добавления уникальных элементов. Это может привести к различным числовым индексам.

Примеры

Пример #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_unique() не предназначена для работы с многомерными массивами.

Смотрите также

  • array_count_values() - Подсчитывает количество вхождений каждого отдельного значения в массиве


Добавляет один или несколько элементов в начало массива

  • « array_unique
  • array_values »
  • PHP Manual
  • Функции для работы с массивами
  • Добавляет один или несколько элементов в начало массива

array_unshift

(PHP 4, PHP 5, PHP 7, PHP 8)

array_unshift — Добавляет один или несколько элементов в начало массива

Описание

array_unshift(array &$array, mixed ...$values): int

array_unshift() добавляет переданные в качестве аргументов элементы в начало массива array. Обратите внимание, что список элементов добавляется целиком, то есть порядок элементов сохраняется. Все числовые ключи будут изменены таким образом, что нумерация массива будет начинаться с нуля, в то время как строковые ключи останутся прежними.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Список параметров

array

Входной массив.

values

Значения для добавления.

Возвращаемые значения

Возвращает новое количество элементов в array.

Список изменений

Версия | Описание
7.3.0 | Теперь эта функция может быть вызвана с одним параметром. Ранее требовалось минимум два параметра.

Примеры

Пример #1 Пример использования array_unshift()

<?php
$queue = [
"orange",
"banana"
];

array_unshift($queue, "apple", "raspberry");
var_dump($queue);
?>

Результат выполнения данного примера:

array(4) {
  [0] =>
  string(5) "apple"
  [1] =>
  string(9) "raspberry"
  [2] =>
  string(6) "orange"
  [3] =>
  string(6) "banana"
}

Пример #2 Пример использования с ассоциативными массивами

Если один ассоциативный массив добавляется к другому ассоциативному массиву, то добавляемый массив продолжает числовой индекс первого массиве.

<?php
$foods = [
'apples' => [
'McIntosh' => 'red',
'Granny Smith' => 'green',
],
'oranges' => [
'Navel' => 'orange',
'Valencia' => 'orange',
],
];
$vegetables = [
'lettuce' => [
'Iceberg' => 'green',
'Butterhead' => 'green',
],
'carrots' => [
'Deep Purple Hybrid' => 'purple',
'Imperator' => 'orange',
],
'cucumber' => [
'Kirby' => 'green',
'Gherkin' => 'green',
],
];

array_unshift($foods, $vegetables);
var_dump($foods);

Результат выполнения данного примера:

array(3) {
  [0] =>
  array(3) {
    'lettuce' =>
    array(2) {
      'Iceberg' =>
      string(5) "green"
      'Butterhead' =>
      string(5) "green"
    }
    'carrots' =>
    array(2) {
      'Deep Purple Hybrid' =>
      string(6) "purple"
      'Imperator' =>
      string(6) "orange"
    }
    'cucumber' =>
    array(2) {
      'Kirby' =>
      string(5) "green"
      'Gherkin' =>
      string(5) "green"
    }
  }
  'apples' =>
  array(2) {
    'McIntosh' =>
    string(3) "red"
    'Granny Smith' =>
    string(5) "green"
  }
  'oranges' =>
  array(2) {
    'Navel' =>
    string(6) "orange"
    'Valencia' =>
    string(6) "orange"
  }
}

Смотрите также

  • array_shift() - Извлекает первый элемент массива
  • array_push() - Добавляет один или несколько элементов в конец массива
  • array_pop() - Извлекает последний элемент массива


Выбирает все значения массива

  • « array_unshift
  • array_walk_recursive »
  • PHP Manual
  • Функции для работы с массивами
  • Выбирает все значения массива

array_values

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

array_walk_recursive — Рекурсивно применяет пользовательскую функцию к каждому элементу массива

Описание

array_walk_recursive(array|object &$array, callable $callback, mixed $arg = null): bool

Применяет пользовательскую функцию callback к каждому элементу массива array. Функция обрабатывает каждый элемент многомерного массива.

Список параметров

array

Входной массив.

callback

Обычно, callback принимает два параметра. Первым параметром является значение элемента массива array, а вторым - его ключ.

Замечание:

Если требуется, чтобы функция callback изменила значения в массиве, определите первый параметр callback как ссылку. Тогда все изменения будут применены к элементам массива.

arg

Если указан необязательный параметр arg, то он будет передан третьим параметром функции 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() - Применяет заданную пользователем функцию к каждому элементу массива


Применяет заданную пользователем функцию к каждому элементу массива

  • « array_walk_recursive
  • array »
  • PHP Manual
  • Функции для работы с массивами
  • Применяет заданную пользователем функцию к каждому элементу массива

array_walk

(PHP 4, PHP 5, PHP 7, PHP 8)

array_walk — Применяет заданную пользователем функцию к каждому элементу массива

Описание

array_walk(array|object &$array, callable $callback, mixed $arg = null): bool

Применяет пользовательскую функцию callback к каждому элементу массива array.

array_walk() не подвержена влиянию внутреннего указателя массива array. array_walk() обойдёт все элементы массива независимо от позиции указателя.

Список параметров

array

Входной массив.

callback

Обычно функция callback принимает два параметра. В качестве первого параметра идёт значение элемента массива array, а ключ - в качестве второго.

Замечание:

Если требуется, чтобы функция callback изменила значения в массиве, определите первый параметр callback как ссылку. Тогда все изменения будут применены к элементам оригинального массива.

Замечание:

Множество встроенных функций (например, strtolower()) выводят предупреждение, если им передано больше параметров, чем они ожидают, или которые не могут непосредственно использоваться в callback.

Потенциально изменены могут быть только значения массива array; структура самого массива не может быть изменена, то есть нельзя добавить, удалить или поменять порядок элементов. Если callback-функция не соответствует этому требованию, поведение данной функции станет неопределённым и непредсказуемым.

arg

Если указан необязательный параметр arg, он будет передан в качестве третьего параметра в callback-функцию callback.

Возвращаемые значения

Возвращает true

Ошибки

Начиная с PHP 7.1.0, в случае если callback-функция требует больше двух параметров (значение и ключ элемента массива) или более 3 параметров, если также передаётся параметр arg, будет выброшено исключение ArgumentCountError. Ранее в таком случае при каждом вызове callback, генерировалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Если параметр 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\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

Пример #2 Пример использования array_walk() с анонимной функцией

<?php
$elements = ['a', 'b', 'c'];

array_walk($elements, function ($value, $key) {
echo "{$key} => {$value}\n";
});

?>

Результат выполнения данного примера:

0 => a
1 => b
2 => c

Смотрите также

  • array_walk_recursive() - Рекурсивно применяет пользовательскую функцию к каждому элементу массива
  • iterator_apply() - Вызывает функцию для каждого элемента в итераторе
  • list() - Присваивает переменным из списка значения подобно массиву
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • call_user_func_array() - Вызывает callback-функцию с массивом параметров
  • array_map() - Применяет callback-функцию ко всем элементам указанных массивов
  • foreach


Создаёт массив

  • « array_walk
  • arsort »
  • PHP Manual
  • Функции для работы с массивами
  • Создаёт массив

array

(PHP 4, PHP 5, PHP 7, PHP 8)

array — Создаёт массив

Описание

array(mixed ...$values): array

Создаёт массив. Подробнее о массивах читайте в разделе Массивы.

Список параметров

values

Синтаксис "индекс => значения", разделённые запятыми, определяет индексы и их значения. Индекс может быть строкой или целым числом. Если индекс опущен, будет автоматически сгенерирован числовой индекс, начиная с 0. Если индекс - число, следующим сгенерированным индексом будет число, равное максимальному числовому индексу + 1. Обратите внимание, что если определены два одинаковых индекса, последующий перезапишет предыдущий.

Наличие завершающей запятой после последнего элемента массива, несмотря на некоторую необычность, является корректным синтаксисом.

Возвращаемые значения

Возвращает массив параметров. Параметрам может быть назначен индекс с помощью оператора =>. Подробнее о массивах читайте в разделе Массивы.

Примеры

Последующие примеры демонстрируют создание двухмерного массива, определение ключей ассоциативных массивов и способ генерации числовых индексов для обычных массивов, если нумерация начинается с произвольного числа.

Пример #1 Пример использования array()

<?php
$fruits = array (
"fruits" => array("a" => "orange", "b" => "banana", "c" => "apple"),
"numbers" => array(1, 2, 3, 4, 5, 6),
"holes" => array("first", 5 => "second", "third")
);
?>

Пример #2 Автоматическая индексация с помощью array()

<?php
$array = array(1, 1, 1, 1, 1, 8 => 1, 4 => 1, 19, 3 => 13);
print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
)

Обратите внимание, что индекс '3' определён дважды, и содержит последнее значение 13. Индекс 4 определён после индекса 8, и следующий сгенерированный индекс (значение 19) - 9, начиная с максимального индекса 8.

Этот пример создаёт массив, нумерация которого начинается с 1.

Пример #3 Пример использования array(), нумерация которого начинается с 1

<?php
$firstquarter = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>

Результат выполнения данного примера:

Array
(
    [1] => January
    [2] => February
    [3] => March
)

Как и в Perl, вы имеете доступ к значениям массива внутри двойных кавычек. Однако в PHP нужно заключить ваш массив в фигурные скобки.

Пример #4 Доступ к массиву внутри двойных кавычек

<?php

$foo = array('bar' => 'baz');
echo "Hello {$foo['bar']}!"; // Hello baz!

?>

Примечания

Замечание:

array() - языковая конструкция, используемая для представления литеральных массивов, а не обычная функция.

Смотрите также

  • array_pad() - Дополнить массив определённым значением до указанной длины
  • list() - Присваивает переменным из списка значения подобно массиву
  • count() - Подсчитывает количество элементов массива или Countable объекте
  • range() - Создаёт массив, содержащий диапазон элементов
  • foreach
  • Тип массив


Сортирует массив в порядке убывания и поддерживает ассоциацию индексов

  • « array
  • asort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив в порядке убывания и поддерживает ассоциацию индексов

arsort

(PHP 4, PHP 5, PHP 7, PHP 8)

arsort — Сортирует массив в порядке убывания и поддерживает ассоциацию индексов

Описание

arsort(array &$array, int $flags = SORT_REGULAR): true

Функция сортирует array в порядке убывания таким образом, что сохраняются отношения между ключами и значениями.

Она полезна, в основном, при сортировке ассоциативных массивов, когда важно сохранить отношение ключ => значение.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Список параметров

array

Входной массив.

flags

Необязательный второй параметр flags изменяет поведение сортировки и может принимать следующие значения:

Флаги типа сортировки:

  • SORT_REGULAR — обычное сравнение элементов; подробности описаны в разделе операторы сравнения
  • SORT_NUMERIC — числовое сравнение элементов
  • SORT_STRING — строковое сравнение элементов
  • SORT_LOCALE_STRING — сравнение элементов как строки на основе текущего языкового стандарта. Используется языковой стандарт, который можно изменить с помощью setlocale()
  • SORT_NATURAL — сравнение элементов как строки, используя "естественный порядок", например natsort()
  • SORT_FLAG_CASE — можно объединять (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки строк без учёта регистра

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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

Названия фруктов были отсортированы в обратном порядке и ключи, ассоциированные с элементами, были сохранены.

Смотрите также

  • sort() - Сортирует массив по возрастанию
  • asort() - Сортирует массив в порядке возрастания и поддерживает ассоциацию индексов
  • Сравнение функций сортировки массивов


Сортирует массив в порядке возрастания и поддерживает ассоциацию индексов

  • « arsort
  • compact »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив в порядке возрастания и поддерживает ассоциацию индексов

asort

(PHP 4, PHP 5, PHP 7, PHP 8)

asort — Сортирует массив в порядке возрастания и поддерживает ассоциацию индексов

Описание

asort(array &$array, int $flags = SORT_REGULAR): true

Сортирует array в порядке возрастания, чтобы его ключи сохраняли свою корреляцию со значениями, с которыми они связаны.

Используется в основном при сортировке ассоциативных массивов, где важен фактический порядок элементов.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Список параметров

array

Входной массив.

flags

Необязательный второй параметр flags изменяет поведение сортировки и может принимать следующие значения:

Флаги типа сортировки:

  • SORT_REGULAR — обычное сравнение элементов; подробности описаны в разделе операторы сравнения
  • SORT_NUMERIC — числовое сравнение элементов
  • SORT_STRING — строковое сравнение элементов
  • SORT_LOCALE_STRING — сравнение элементов как строки на основе текущего языкового стандарта. Используется языковой стандарт, который можно изменить с помощью setlocale()
  • SORT_NATURAL — сравнение элементов как строки, используя "естественный порядок", например natsort()
  • SORT_FLAG_CASE — можно объединять (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки строк без учёта регистра

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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

Названия фруктов были отсортированы в алфавитном порядке и ключи, связанные с элементами, были сохранены.

Смотрите также

  • sort() - Сортирует массив по возрастанию
  • arsort() - Сортирует массив в порядке убывания и поддерживает ассоциацию индексов
  • Сравнение функций сортировки массивов


Создаёт массив, содержащий названия переменных и их значения

  • « asort
  • count »
  • PHP Manual
  • Функции для работы с массивами
  • Создаёт массив, содержащий названия переменных и их значения

compact

(PHP 4, PHP 5, PHP 7, PHP 8)

compact — Создаёт массив, содержащий названия переменных и их значения

Описание

compact(array|string $var_name, array|string ...$var_names): array

Создаёт массив, содержащий переменные и их значения.

Для каждого переданного аргумента функция compact() ищет в текущей таблице символов переменную с таким же именем и добавляет её в выводимый массив так, что имя переменной становится ключом, а значение переменной становится значением этого ключа. Короче, она выполняет операцию, противоположную функции extract().

Замечание:

До PHP 7.3 строки, для которых не были найдены переменные, будут пропущены без генерации ошибки.

Список параметров

var_name
var_names

Функция compact() принимает неограниченное количество аргументов. Любой из аргументов может быть либо строкой, содержащей название переменной, либо массивом названий переменных. Массив может содержать вложенные массивы названий переменных; функция compact() обрабатывает их рекурсивно.

Возвращаемые значения

Возвращает массив с добавленными переменными.

Ошибки

Функция compact() выдаёт ошибку уровня E_WARNING, если полученная строка ссылается на неопределённую переменную.

Список изменений

Версия | Описание
8.0.0 | Если заданная строка ссылается на неопределённую переменную, теперь будет сгенерированна ошибка уровня E_WARNING.
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() - Импортирует переменные из массива в текущую таблицу символов


Подсчитывает количество элементов массива или Countable объекте

  • « compact
  • current »
  • PHP Manual
  • Функции для работы с массивами
  • Подсчитывает количество элементов массива или Countable объекте

count

(PHP 4, PHP 5, PHP 7, PHP 8)

count — Подсчитывает количество элементов массива или Countable объекте

Описание

count(Countable|array $value, int $mode = COUNT_NORMAL): int

Подсчитывает все элементы в массиве, если используется массив. Если используется объект, который реализует интерфейс Countable, функция возвращает результат выполнения метода Countable::count().

Список параметров

value

Массив или объект, реализующий Countable.

mode

Если необязательный параметр mode установлен в COUNT_RECURSIVE (или 1), count() будет рекурсивно подсчитывать количество элементов массива. Это особенно полезно для подсчёта всех элементов многомерных массивов.

Предостережение

count() умеет определять рекурсию для избежания бесконечного цикла, но при каждом обнаружении выводит ошибку уровня E_WARNING (в случае, если массив содержит себя более одного раза) и возвращает большее количество, чем могло бы ожидаться.

Возвращаемые значения

Возвращает количество элементов в value. До PHP 8.0.0, если параметр не был ни массивом (array), ни объектом (object), реализующим интерфейс Countable, возвращалось 1, если значение параметра value не было null, в этом случае возвращалось 0.

Список изменений

Версия | Описание
8.0.0 | count() теперь выбрасывает TypeError, если передан недопустимый исчисляемый тип в параметр value.
7.2.0 | count() теперь будет выдавать предупреждение о недопустимых исчисляемых типах, переданных в параметр value.

Примеры

Пример #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));
?>

Результат выполнения данного примера:

int(3)
int(3)

Пример #2 Пример использования count() с неисчисляемым типом (плохой пример - не делайте так)

<?php
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));

var_dump(count(null));

var_dump(count(false));
?>

Результат выполнения данного примера:

int(3)
int(0)
int(1)

Результат выполнения данного примера в PHP 7.2:

int(3)

Warning: count(): Parameter must be an array or an object that implements Countable in ... on line 12
int(0)

Warning: count(): Parameter must be an array or an object that implements Countable in ... on line 14
int(1)

Результат выполнения данного примера в PHP 8:

int(3)

Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable .. on line 12

Пример #3 Пример рекурсивного использования count()

<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));

// рекурсивный подсчёт
var_dump(count($food, COUNT_RECURSIVE));

// обычный подсчёт
var_dump(count($food));

?>

Результат выполнения данного примера:

int(8)
int(2)

Пример #4 Объект, реализующий интерфейс Countable

<?php
class CountOfMethods implements Countable
{
private function someMethod()
{
}

public function count(): int
{
return count(get_class_methods($this));
}
}

$obj = new CountOfMethods();
var_dump(count($obj));
?>

Результат выполнения данного примера:

int(2)

Смотрите также

  • is_array() - Определяет, является ли переменная массивом
  • isset() - Определяет, была ли установлена переменная значением, отличным от null
  • empty() - Проверяет, пуста ли переменная
  • strlen() - Возвращает длину строки
  • is_countable() - Проверить, что содержимое переменной является счётным значением
  • Массивы


Возвращает текущий элемент массива

  • « count
  • each »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает текущий элемент массива

current

(PHP 4, PHP 5, PHP 7, PHP 8)

current — Возвращает текущий элемент массива

Описание

current(array|object $array): mixed

У каждого массива имеется внутренний указатель на его "текущий" элемент, который инициализируется первым элементом, добавленным в массив.

Список параметров

array

Массив.

Возвращаемые значения

Функция current() просто возвращает значение элемента массива, на который указывает его внутренний указатель. Она не перемещает указатель куда бы то ни было. Если внутренний указатель находится за пределами списка элементов или массив пуст, current() возвращает false.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.1.0 | Вызов функции в объекте (object) объявлен устаревшим. Либо сначала преобразуйте объект (object) в массив (array) с помощью функции get_mangled_object_vars(), либо используйте методы, предоставляемые классом, реализующим интерфейс Iterator, например, ArrayIterator.
7.4.0 | Экземпляры классов SPL теперь обрабатываются как пустые объекты, не имеющие свойств, вместо вызова метода Iterator с тем же именем, что и эта функция.

Примеры

Пример #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() на пустом массиве и на массиве, внутренний указатель которого указывает на конец элементов, неотличимы от элемента массива типа bool со значением false. Для корректного обхода массива, который может содержать false, смотрите управляющую конструкцию foreach. Если же вы хотите использовать функцию current() и при этом корректно отслеживать конец массива, используйте функцию key() на том же элементе, на котором использовали current() и проверяйте её результат на строгое неравенство null.

Смотрите также

  • end() - Устанавливает внутренний указатель массива на его последний элемент
  • key() - Выбирает ключ из массива
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • prev() - Передвигает внутренний указатель массива на одну позицию назад
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • next() - Перемещает указатель массива вперёд на один элемент
  • foreach


Возвращает текущую пару ключ/значение из массива и смещает его указатель

  • « current
  • end »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает текущую пару ключ/значение из массива и смещает его указатель

each

(PHP 4, PHP 5, PHP 7)

each — Возвращает текущую пару ключ/значение из массива и смещает его указатель

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.2.0 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

each(array|object &$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, PHP 8)

end — Устанавливает внутренний указатель массива на его последний элемент

Описание

end(array|object &$array): mixed

end() устанавливает внутренний указатель array на последний элемент и возвращает его значение.

Список параметров

array

Массив. Передаётся по ссылке, потому что он модифицируется данной функцией. Это означает, что необходимо передать его как реальную переменную, а не как функцию, возвращающую массив, так как по ссылке можно передавать только фактические переменные.

Возвращаемые значения

Возвращает значение последнего элемента или false для пустого массива.

Список изменений

Версия | Описание
8.1.0 | Вызов функции в объекте (object) объявлен устаревшим. Либо сначала преобразуйте объект (object) в массив (array) с помощью функции get_mangled_object_vars(), либо используйте методы, предоставляемые классом, реализующим интерфейс Iterator, например, ArrayIterator.
7.4.0 | Экземпляры классов SPL теперь обрабатываются как пустые объекты, не имеющие свойств, вместо вызова метода Iterator с тем же именем, что и эта функция.

Примеры

Пример #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, PHP 8)

extract — Импортирует переменные из массива в текущую таблицу символов

Описание

extract(array &$array, int $flags = EXTR_OVERWRITE, string $prefix = ""): 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 и т.п.). Если вы сделаете это, убедитесь, что используете один из флагов flags, не перезаписывающие переменные, такой как EXTR_SKIP и имейте в виду, что вы должны извлекать их в том порядке, который определён в директиве variables_order внутри php.ini.

Смотрите также

  • compact() - Создаёт массив, содержащий названия переменных и их значения
  • list() - Присваивает переменным из списка значения подобно массиву


Проверяет, присутствует ли в массиве значение

  • « extract
  • key_exists »
  • PHP Manual
  • Функции для работы с массивами
  • Проверяет, присутствует ли в массиве значение

in_array

(PHP 4, PHP 5, PHP 7, PHP 8)

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.

Замечание:

До PHP 8.0.0 строковое значение параметра needle будет соответствовать значению массива 0 в нестрогом режиме, и наоборот. Это может привести к нежелательным результатам. Подобные крайние случаи существуют и для других типов. Если нет полной уверенности в типах значений, всегда используйте флаг strict, чтобы избежать неожиданного поведения.

Возвращаемые значения

Возвращает 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, PHP 8)

key_exists — Псевдоним array_key_exists()

Описание

Функция является псевдонимом: array_key_exists().


Выбирает ключ из массива

  • « key_exists
  • krsort »
  • PHP Manual
  • Функции для работы с массивами
  • Выбирает ключ из массива

key

(PHP 4, PHP 5, PHP 7, PHP 8)

key — Выбирает ключ из массива

Описание

key(array|object $array): int|string|null

key() возвращает индекс текущего элемента массива.

Список параметров

array

Массив.

Возвращаемые значения

Функция key() просто возвращает ключ того элемента массива, на который в данный момент указывает внутренний указатель массива. Она не сдвигает указатель ни в каком направлении. Если внутренний указатель указывает вне границ массива или массив пуст, key() возвратит null.

Список изменений

Версия | Описание
8.1.0 | Вызов функции в объекте (object) объявлен устаревшим. Либо сначала преобразуйте объект (object) в массив (array) с помощью функции get_mangled_object_vars(), либо используйте методы, предоставляемые классом, реализующим интерфейс Iterator, например, ArrayIterator.
7.4.0 | Экземпляры классов SPL теперь обрабатываются как пустые объекты, не имеющие свойств, вместо вызова метода Iterator с тем же именем, что и эта функция.

Примеры

Пример #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), "\n";
}
next($array);
}
?>

Результат выполнения данного примера:

fruit1
fruit4
fruit5

Смотрите также

  • current() - Возвращает текущий элемент массива
  • next() - Перемещает указатель массива вперёд на один элемент
  • array_key_first() - Получает первый ключ массива
  • foreach


Сортирует массив по ключу в порядке убывания

  • « key
  • ksort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по ключу в порядке убывания

krsort

(PHP 4, PHP 5, PHP 7, PHP 8)

krsort — Сортирует массив по ключу в порядке убывания

Описание

krsort(array &$array, int $flags = SORT_REGULAR): true

Сортирует array по ключу в порядке убывания.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Список параметров

array

Входной массив.

flags

Необязательный второй параметр flags изменяет поведение сортировки и может принимать следующие значения:

Флаги типа сортировки:

  • SORT_REGULAR — обычное сравнение элементов; подробности описаны в разделе операторы сравнения
  • SORT_NUMERIC — числовое сравнение элементов
  • SORT_STRING — строковое сравнение элементов
  • SORT_LOCALE_STRING — сравнение элементов как строки на основе текущего языкового стандарта. Используется языковой стандарт, который можно изменить с помощью setlocale()
  • SORT_NATURAL — сравнение элементов как строки, используя "естественный порядок", например natsort()
  • SORT_FLAG_CASE — можно объединять (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки строк без учёта регистра

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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

Смотрите также

  • sort() - Сортирует массив по возрастанию
  • ksort() - Сортирует массив по ключу в порядке возрастания
  • Сравнение функций сортировки массивов


Сортирует массив по ключу в порядке возрастания

  • « krsort
  • list »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по ключу в порядке возрастания

ksort

(PHP 4, PHP 5, PHP 7, PHP 8)

ksort — Сортирует массив по ключу в порядке возрастания

Описание

ksort(array &$array, int $flags = SORT_REGULAR): true

Сортирует array по ключу в порядке возрастания.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Список параметров

array

Входной массив.

flags

Необязательный второй параметр flags изменяет поведение сортировки и может принимать следующие значения:

Флаги типа сортировки:

  • SORT_REGULAR — обычное сравнение элементов; подробности описаны в разделе операторы сравнения
  • SORT_NUMERIC — числовое сравнение элементов
  • SORT_STRING — строковое сравнение элементов
  • SORT_LOCALE_STRING — сравнение элементов как строки на основе текущего языкового стандарта. Используется языковой стандарт, который можно изменить с помощью setlocale()
  • SORT_NATURAL — сравнение элементов как строки, используя "естественный порядок", например natsort()
  • SORT_FLAG_CASE — можно объединять (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки строк без учёта регистра

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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

Пример #2 ksort() с числовыми (int) ключами

<?php
$a = [0 => 'First', 2 => 'Last', 1 => 'Middle'];
var_dump($a);
ksort($a);
var_dump($a);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(5) "First"
  [2]=>
  string(4) "Last"
  [1]=>
  string(6) "Middle"
}
array(3) {
  [0]=>
  string(5) "First"
  [1]=>
  string(6) "Middle"
  [2]=>
  string(4) "Last"
}

Смотрите также

  • sort() - Сортирует массив по возрастанию
  • krsort() - Сортирует массив по ключу в порядке убывания
  • Сравнение функций сортировки массивов


Присваивает переменным из списка значения подобно массиву

  • « ksort
  • natcasesort »
  • PHP Manual
  • Функции для работы с массивами
  • Присваивает переменным из списка значения подобно массиву

list

(PHP 4, PHP 5, PHP 7, PHP 8)

list — Присваивает переменным из списка значения подобно массиву

Описание

list(mixed $var, mixed ...$vars = ?): array

Подобно array(), это не функция, а языковая конструкция. list() используется для того, чтобы присвоить списку переменных значения за одну операцию. Строки нельзя распаковать, а выражения list() не могут быть полностью пустыми.

Замечание:

До PHP 7.1.0, list() работала только с индексированными массивами и принимала числовые индексы начиная с 0.

Список параметров

var

Переменная.

vars

Дополнительные переменные.

Возвращаемые значения

Возвращает присвоенный массив.

Список изменений

Версия | Описание
7.3.0 | Добавлена поддержка присвоения по ссылкам при деструктурировании массива.
7.1.0 | Теперь возможно задавать ключи в list(). Это позволяет разыменовывать ассоциативные массивы и массивы с индексами не по порядку.

Примеры

Пример #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()

<?php
$result = $pdo->query("SELECT id, name FROM employees");
while (list($id, $name) = $result->fetch(PDO::FETCH_NUM)) {
echo "id: $id, name: $name\n";
}
?>

Пример #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() и порядок указания индексов

Порядок, в котором индексы массива будут использоваться функцией 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"

Пример #5 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, PHP 8)

natcasesort — Сортирует массив, используя алгоритм "natural order" без учёта регистра символов

Описание

natcasesort(array &$array): true

natcasesort() - это регистронезависимый аналог natsort().

Функция реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека. Такой алгоритм называется "natural ordering".

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Список параметров

array

Входной массив.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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, PHP 8)

natsort — Сортирует массив, используя алгоритм "natural order"

Описание

natsort(array &$array): true

Функция реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека. Такой алгоритм называется "natural ordering". Отличие алгоритма "natural ordering" от обычных алгоритмов сортировки, применяемых, например, функцией sort() можно увидеть в примере ниже.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Список параметров

array

Входной массив.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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, PHP 8)

next — Перемещает указатель массива вперёд на один элемент

Описание

next(array|object &$array): mixed

next() ведёт себя подобно current(), но с одним отличием. Перед тем, как вернуть значение элемента массива, функция передвигает его внутренний указатель на одну позицию вперёд. Другими словами, она возвращает следующий элемент массива и сдвигает его внутренний указатель на одну позицию.

Список параметров

array

Массив (array), изменяемый данной функцией.

Возвращаемые значения

Возвращает значение элемента массива, находящегося на позиции, следующей за позицией внутренний указателя или false, если достигнут конец массива.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.1.0 | Вызов функции в объекте (object) объявлен устаревшим. Либо сначала преобразуйте объект (object) в массив (array) с помощью функции get_mangled_object_vars(), либо используйте методы, предоставляемые классом, реализующим интерфейс Iterator, например, ArrayIterator.
7.4.0 | Экземпляры классов SPL теперь обрабатываются как пустые объекты, не имеющие свойств, вместо вызова метода Iterator с тем же именем, что и эта функция.

Примеры

Пример #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';
?>

Примечания

Замечание: Конец массива не отличим от элемента массива типа bool со значением false. Для корректного обхода массива, который может содержать false, используйте функцию foreach. Если же вы хотите использовать функцию next() и при этом корректно отслеживать конец массива, проверяйте, что функция key() возвращает null.

Смотрите также

  • current() - Возвращает текущий элемент массива
  • end() - Устанавливает внутренний указатель массива на его последний элемент
  • prev() - Передвигает внутренний указатель массива на одну позицию назад
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель


Псевдоним current

  • « next
  • prev »
  • PHP Manual
  • Функции для работы с массивами
  • Псевдоним current

pos

(PHP 4, PHP 5, PHP 7, PHP 8)

pos — Псевдоним current()

Описание

Функция является псевдонимом: current()


Передвигает внутренний указатель массива на одну позицию назад

  • « pos
  • range »
  • PHP Manual
  • Функции для работы с массивами
  • Передвигает внутренний указатель массива на одну позицию назад

prev

(PHP 4, PHP 5, PHP 7, PHP 8)

prev — Передвигает внутренний указатель массива на одну позицию назад

Описание

prev(array|object &$array): mixed

Передвигает внутренний указатель массива на одну позицию назад.

prev() ведёт себя подобно next(), за исключением того, что она передвигает внутренний указатель массива на одну позицию назад, а не вперёд.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает значение массива, на которое ранее указывал внутренний указатель массива, или false, если больше элементов нет.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.1.0 | Вызов функции в объекте (object) объявлен устаревшим. Либо сначала преобразуйте объект (object) в массив (array) с помощью функции get_mangled_object_vars(), либо используйте методы, предоставляемые классом, реализующим интерфейс Iterator, например, ArrayIterator.
7.4.0 | Экземпляры классов SPL теперь обрабатываются как пустые объекты, не имеющие свойств, вместо вызова метода Iterator с тем же именем, что и эта функция.

Примеры

Пример #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';
?>

Примечания

Замечание: Вы не сможете отличить начало массива от bool элемента false. Для корректного обхода массива, который может содержать элементы такие элементы, проверяйте, что значение, возвращаемое функцией key() для элемента prev() не равно null.

Смотрите также

  • current() - Возвращает текущий элемент массива
  • end() - Устанавливает внутренний указатель массива на его последний элемент
  • next() - Перемещает указатель массива вперёд на один элемент
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель


Создаёт массив, содержащий диапазон элементов

  • « prev
  • reset »
  • PHP Manual
  • Функции для работы с массивами
  • Создаёт массив, содержащий диапазон элементов

range

(PHP 4, PHP 5, PHP 7, PHP 8)

range — Создаёт массив, содержащий диапазон элементов

Описание

range(string|int|float $start, string|int|float $end, int|float $step = 1): array

Создаёт массив, содержащий диапазон элементов.

Если оба параметра — start и end — будут строками (string), а параметр step — числом (int), то созданный массив будет последовательностью байтов. В других случаях созданный массив будет последовательностью чисел.

Последовательность будет возрастать, если значение параметра start меньше или равно значению параметра end. В противном случае последовательность будет убывать.

Список параметров

start

Первое значение последовательности.

end

Последнее значение последовательности.

step

Параметр step определяет, на сколько будут изменяться значения в создаваемой последовательности.

В параметр step можно передавать отрицательное значение, если нужно создать убывающую последовательность.

Если значение параметра step будет числом с плавающей точкой (float) без дробной части, то оно будет интерпретировано как целое число (int).

Возвращаемые значения

Возвращает последовательность элементов в виде массива (array), в котором первый элемент получает значение параметра start, а последний — параметра end, в которой каждое значение последовательности отстаёт от другого на указанное в параметре step количество шагов.

Последний элемент возвращённого массива будет равен либо значению параметра end, либо предыдущему значению последовательности, в зависимости от значения параметра step.

Если оба параметра — start и end — будут строками (string), а параметр step — числом (int), то созданный массив будет последовательностью байтов, обычно латинских символов в кодировке ASCII.

Если хотя бы одно из значений параметров start, end, или step будет числом с плавающей точкой (float), созданный массив будет последовательностью значений float.

В противном случае созданный массив будет последовательностью целых чисел (int).

Ошибки

  • Если значение параметра step будет равно 0, будет выброшено исключение ValueError.
  • Если значение хотя бы одного из параметров start, end, или step окажется недопустимым конечным числом, как его определяет функция is_finite(), будет выброшено исключение ValueError.
  • Если значение параметра step будет отрицательным при создании возрастающей последовательности (т. е. $start <= $end), будет выброшено исключение ValueError.
  • Если значение хотя бы одного из параметров start или end будет пустой строкой (''), это приведёт к ошибке уровня E_WARNING, а пустая строка будет интерпретирована как целое число 0.
  • Если значение хотя бы одного из параметров start или end окажется нечисловой строкой размером более одного байта, будет сгенерирована ошибка уровня E_WARNING.
  • Если значение хотя бы одного из параметров start или end будет строкой, которая неявно приводится к целому числу (int) из-за наличия в ней числовых символов, появится ошибка уровня E_WARNING.
  • Если значение хотя бы одного из параметров step будет числом с плавающей точкой (float), а значение параметров start и end окажется нечисловой строкой, будет сгенерирована ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.3.0 | Если значения обоих параметров — start и end — окажутся строками, то теперь функция range() всегда будет создавать массив (array) байтов. Ранее, если один из символов в строке был числом, другие символы неявно приводились к числу (int).
8.3.0 | Теперь появляется ошибка уровня E_WARNING, если значение хотя бы одного из параметров start или end оказывается строкой, которая неявно приводится к целому числу (int) из-за наличия в ней числовых символов.
8.3.0 | Теперь появляется ошибка уровня E_WARNING, если значение хотя бы одного из параметров start или end оказывается нечисловой строкой с размером более одного байта.
8.3.0 | Теперь появляется ошибка уровня E_WARNING, если значение хотя бы одного из параметров start или end оказывается пустой строкой.
8.3.0 | Если значение параметра step окажется числом с плавающей точкой (float) без дробной части, оно будет интерпретировано как целое число (int).
8.3.0 | Теперь выбрасывается исключение ValueError, если при создании восходящей последовательности значение параметра step оказывается отрицательным числом.
8.3.0 | Теперь выбрасывается исключение ValueError, если значение параметра step не является допустимым конечным числом.
8.3.0 | Теперь выбрасывается исключение TypeError, если значение хотя бы одного из параметров start или end окажется массивом (array), объектом (object) или ресурсом (resource). Ранее они неявно приводились к целому числу (int).

Примеры

Пример #1 Примеры использования range()

<?php
echo implode(', ', range(0, 12)), PHP_EOL;

echo implode(', ', range(0, 100, 10)), PHP_EOL;

echo implode(', ', range('a', 'i')), PHP_EOL;

echo implode(', ', range('c', 'a')), PHP_EOL;

echo implode(', ', range('A', 'z')), PHP_EOL;
?>

Результат выполнения данного примера:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
a, b, c, d, e, f, g, h, i
c, b, a
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, 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

Смотрите также

  • shuffle() - Перемешивает массив
  • array_fill() - Заполняет массив значениями
  • foreach


Устанавливает внутренний указатель массива на его первый элемент

  • « range
  • rsort »
  • PHP Manual
  • Функции для работы с массивами
  • Устанавливает внутренний указатель массива на его первый элемент

reset

(PHP 4, PHP 5, PHP 7, PHP 8)

reset — Устанавливает внутренний указатель массива на его первый элемент

Описание

reset(array|object &$array): mixed

reset() перемещает внутренний указатель массива array к его первому элементу и возвращает значение первого элемента массива.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает значение первого элемента массива, или false, если массив пуст.

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
8.1.0 | Вызов функции в объекте (object) объявлен устаревшим. Либо сначала преобразуйте объект (object) в массив (array) с помощью функции get_mangled_object_vars(), либо используйте методы, предоставляемые классом, реализующим интерфейс Iterator, например, ArrayIterator.
7.4.0 | Экземпляры классов SPL теперь обрабатываются как пустые объекты, не имеющие свойств, вместо вызова метода Iterator с тем же именем, что и эта функция.

Примеры

Пример #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"; // "первый шаг"

?>

Примечания

Замечание: Результат использования на пустом массиве будет неотличим от использования массива, первый элемент которого имеет тип bool со значением 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, PHP 8)

rsort — Сортирует массив в порядке убывания

Описание

rsort(array &$array, int $flags = SORT_REGULAR): true

Сортирует array по значению в порядке убывания.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Замечание: Эта функция присваивает новые ключи элементам array. Она удалит все существующие ключи, а не просто переупорядочит их.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Список параметров

array

Входной массив.

flags

Необязательный второй параметр flags изменяет поведение сортировки и может принимать следующие значения:

Флаги типа сортировки:

  • SORT_REGULAR — обычное сравнение элементов; подробности описаны в разделе операторы сравнения
  • SORT_NUMERIC — числовое сравнение элементов
  • SORT_STRING — строковое сравнение элементов
  • SORT_LOCALE_STRING — сравнение элементов как строки на основе текущего языкового стандарта. Используется языковой стандарт, который можно изменить с помощью setlocale()
  • SORT_NATURAL — сравнение элементов как строки, используя "естественный порядок", например natsort()
  • SORT_FLAG_CASE — можно объединять (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки строк без учёта регистра

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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

Названия фруктов были отсортированы по алфавиту в обратном порядке.

Смотрите также

  • sort() - Сортирует массив по возрастанию
  • arsort() - Сортирует массив в порядке убывания и поддерживает ассоциацию индексов
  • krsort() - Сортирует массив по ключу в порядке убывания
  • Сравнение функций сортировки массивов


Перемешивает массив

  • « rsort
  • sizeof »
  • PHP Manual
  • Функции для работы с массивами
  • Перемешивает массив

shuffle

(PHP 4, PHP 5, PHP 7, PHP 8)

shuffle — Перемешивает массив

Описание

shuffle(array &$array): true

Функция перемешивает элементы массива в случайном порядке.

Предостережение

Функция не создаёт криптографически защищённые значения и не должна использоваться для криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для разгадывания.

Если требуется криптографически безопасная случайная последовательность, Random\Randomizer может использоваться с движком Random\Engine\Secure. Для простых случаев использования функции random_int() и random_bytes() предоставляют удобный и безопасный API, поддерживаемый CSPRNG операционной системы.

Список параметров

array

Массив.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
7.1.0 | Внутренний алгоритм получения случайных чисел изменён с функции rand библиотеки libc на генератор на базе » Вихря Мерсена.

Примеры

Пример #1 Пример использования shuffle()

<?php
$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
echo "$number ";
}
?>

Примечания

Замечание: Эта функция присваивает новые ключи элементам array. Она удалит все существующие ключи, а не просто переупорядочит их.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Смотрите также

  • Random\Randomizer::shuffleArray() - Получает перестановку массива
  • Random\Randomizer::shuffleBytes() - Получает байтовую перестановку строки
  • Random\Randomizer::pickArrayKeys() - Выбирает случайные ключи массива
  • Сравнение функций сортировки массивов


Псевдоним count

  • « shuffle
  • sort »
  • PHP Manual
  • Функции для работы с массивами
  • Псевдоним count

sizeof

(PHP 4, PHP 5, PHP 7, PHP 8)

sizeof — Псевдоним count()

Описание

Функция является псевдонимом: count().


Сортирует массив по возрастанию

  • « sizeof
  • uasort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по возрастанию

sort

(PHP 4, PHP 5, PHP 7, PHP 8)

sort — Сортирует массив по возрастанию

Описание

sort(array &$array, int $flags = SORT_REGULAR): true

Сортирует array по значению в порядке возрастания.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Замечание: Эта функция присваивает новые ключи элементам array. Она удалит все существующие ключи, а не просто переупорядочит их.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Список параметров

array

Входной массив.

flags

Необязательный второй параметр flags изменяет поведение сортировки и может принимать следующие значения:

Флаги типа сортировки:

  • SORT_REGULAR — обычное сравнение элементов; подробности описаны в разделе операторы сравнения
  • SORT_NUMERIC — числовое сравнение элементов
  • SORT_STRING — строковое сравнение элементов
  • SORT_LOCALE_STRING — сравнение элементов как строки на основе текущего языкового стандарта. Используется языковой стандарт, который можно изменить с помощью setlocale()
  • SORT_NATURAL — сравнение элементов как строки, используя "естественный порядок", например natsort()
  • SORT_FLAG_CASE — можно объединять (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки строк без учёта регистра

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.

Примеры

Пример #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().

Примечания

Замечание: Как и большинство функций сортировки в PHP, sort() использует реализацию алгоритма » быстрой сортировки. Основной элемент выбирается из середины сортируемой части, достигая таким образом оптимального времени для уже отсортированных массивов. Следует иметь в виду, что это является деталью реализации и не следует на неё полагаться.

Внимание

Будьте осторожны при сортировке массивов, содержащих элементы разных типов, так как в этом случае результат работы функции sort() может быть неожиданным, если параметр flags равен SORT_REGULAR.

Смотрите также

  • rsort() - Сортирует массив в порядке убывания
  • Сравнение функций сортировки массивов


Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей

  • « sort
  • uksort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей

uasort

(PHP 4, PHP 5, PHP 7, PHP 8)

uasort — Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей

Описание

uasort(array &$array, callable $callback): true

Сортирует array таким образом, чтобы его ключи сохраняли свою корреляцию со значениями, с которыми они связаны, с использованием определяемой пользователем функции сравнения.

Это обычно используется при сортировке ассоциативных массивов, в которых важен актуальный порядок элементов.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Список параметров

array

Входной массив.

callback

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.
8.0.0 | Если параметр callback ожидает, что будет передано значение по ссылке, функция теперь выдаст ошибку уровня E_WARNING.

Примеры

Пример #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() - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов
  • uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей
  • Сравнение функций сортировки массивов


Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей

  • « uasort
  • usort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей

uksort

(PHP 4, PHP 5, PHP 7, PHP 8)

uksort — Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей

Описание

uksort(array &$array, callable $callback): true

Сортирует array по ключам, используя предоставленную пользователем функцию сравнения для определения порядка.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Замечание:

Сбрасывает внутренний указатель массива на первый элемент.

Список параметров

array

Входной массив.

callback

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.
8.0.0 | Если параметр callback ожидает, что будет передано значение по ссылке, функция теперь выдаст ошибку уровня E_WARNING.

Примеры

Пример #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() - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов
  • uasort() - Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
  • Сравнение функций сортировки массивов


Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов

  • « uksort
  • Классы и объекты »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов

usort

(PHP 4, PHP 5, PHP 7, PHP 8)

usort — Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов

Описание

usort(array &$array, callable $callback): true

Сортирует array по значениям, используя предоставленную пользователем функцию сравнения для определения порядка.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

Замечание: Эта функция присваивает новые ключи элементам array. Она удалит все существующие ключи, а не просто переупорядочит их.

Список параметров

array

Входной массив.

callback

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

Возвращение нецелых значений из функции сравнения, таких как число с плавающей точкой (float), приведёт к внутреннему приведению возвращаемого значения callback-функции к целому числу (int). Таким образом, значения 0.99 и 0.1 будут приведены к целочисленному значению 0, что позволит сравнить эти значения как равные.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь true; ранее было bool.
8.0.0 | Если параметр callback ожидает, что будет передано значение по ссылке, функция теперь выдаст ошибку уровня E_WARNING.

Примеры

Пример #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

Для ещё большего упрощения внутреннего сравнения можно использовать оператор spaceship (космический корабль).

<?php
function cmp($a, $b)
{
return $a <=> $b;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $key => $value) {
echo "$key: $value\n";
}
?>

Замечание:

Очевидно, что для этого тривиального случая более подходит функция 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");

foreach ($fruits as $key => $value) {
echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
?>

При сортировке многомерного массива переменные $a и $b содержат ссылки на первые два индекса массива.

Результат выполнения данного примера:

$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons

Пример #3 Пример использования usort() с методом класса

<?php
class TestObj {
private string $name;

function __construct($name)
{
$this->name = $name;
}

/* This is the static comparing function: */
static function cmp_obj($a, $b)
{
return strtolower($a->name) <=> strtolower($b->name);
}
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

usort($a, [TestObj::class, "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

Пример #5 Пример использования usort() с оператором spaceship (космический корабль)

Оператор spaceship (космический корабль) позволяет прямолинейно сравнивать составные значения по нескольким осям. В следующем примере $people сортируется по фамилии, а затем по имени, если фамилия совпадает.

<?php
$people[0] = ['first' => 'Adam', 'last' => 'West'];
$people[1] = ['first' => 'Alec', 'last' => 'Baldwin'];
$people[2] = ['first' => 'Adam', 'last' => 'Baldwin'];

function sorter(array $a, array $b) {
return [$a['last'], $a['first']] <=> [$b['last'], $b['first']];
}

usort($people, 'sorter');

foreach ($people as $person) {
print $person['last'] . ', ' . $person['first'] . PHP_EOL;
}
?>

Результат выполнения данного примера:

Baldwin, Adam
Baldwin, Alec
West, Adam

Смотрите также

  • uasort() - Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
  • uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей
  • Сравнение функций сортировки массивов


Информация о классе и объекте

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
  • Функции работы с классами и объектами
    • __autoload — Попытка загрузить неопределённый класс
    • class_alias — Создаёт псевдоним для указанного класса
    • class_exists — Проверяет, был ли объявлен класс
    • enum_exists — Проверяет, определено ли перечисление
    • get_called_class — Имя класса, полученное с помощью позднего статического связывания
    • get_class_methods — Возвращает массив имён методов класса
    • get_class_vars — Возвращает объявленные по умолчанию свойства класса
    • get_class — Возвращает имя класса, к которому принадлежит объект
    • get_declared_classes — Возвращает массив с именами объявленных классов
    • get_declared_interfaces — Возвращает массив всех объявленных интерфейсов
    • get_declared_traits — Возвращает массив со всеми объявленными трейтами
    • get_mangled_object_vars — Возвращает массив искажённых свойств объекта
    • get_object_vars — Возвращает свойства указанного объекта
    • get_parent_class — Возвращает имя родительского класса для объекта или класса
    • interface_exists — Проверяет, определён ли интерфейс
    • is_a — Проверяет, является ли объект указанным типом или подтипом
    • is_subclass_of — Проверяет, содержит ли объект в своём дереве предков указанный класс либо прямо реализует его
    • method_exists — Проверяет, существует ли метод в данном классе
    • property_exists — Проверяет, содержит ли объект или класс указанный атрибут
    • trait_exists — Проверяет, существует ли трейт


Введение

Эти функции позволяют получить информацию о классах и экземплярах объектов. Можно получить имя класса, которому принадлежит объект, равно как и все его свойства и методы. Используя эти функции, можно установить не только принадлежность объекта к конкретному классу, но и определить порядок наследования (к примеру, какой класс наследует класс данного объекта).

За подробным объяснением реализации использования классов и объектов в PHP, пожалуйста, обращайтесь к разделу руководства "Объекты".


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Классы и объекты
  • Предопределённые константы

Предопределённые константы

Данный модуль не определяет никакие константы.


Примеры

В приведённом ниже примере, мы сначала определим базовый класс и класс его наследующий. Базовый класс описывает овощ: съедобен ли он и какого цвета. Дочерний класс Spinach добавляет метод приготовления овоща и проверки, был ли он уже приготовлен.

Пример #1 Определения классов

Овощ

<?php

class Vegetable {
public $edible;

public $color;

public function __construct($edible, $color = "green")
{
$this->edible = $edible;
$this->color = $color;
}

public function isEdible()
{
return $this->edible;
}

public function getColor()
{
return $this->color;
}
}

?>

Шпинат

<?php

class Spinach extends Vegetable {
public $cooked = false;

public function __construct()
{
parent::__construct(true, "green");
}

public function cook()
{
$this->cooked = true;
}

public function isCooked()
{
return $this->cooked;
}
}

?>

Теперь мы создадим по объекту каждого класса и распечатаем информацию о них, включая порядок их наследования. Также мы объявим несколько функций-утилит, главным образом для удобного вывода результатов.

Пример #2 test_script.php

<?php

// зарегистрировать автозагрузчик для загрузки классов
spl_autoload_register();

function printProperties($obj)
{
foreach (get_object_vars($obj) as $prop => $val) {
echo "\t$prop = $val\n";
}
}

function printMethods($obj)
{
$arr = get_class_methods(get_class($obj));
foreach ($arr as $method) {
echo "\tфункция $method()\n";
}
}

function objectBelongsTo($obj, $class)
{
if (is_subclass_of($obj, $class)) {
echo "Объект принадлежит к классу " . get_class($obj);
echo ", подкласс $class\n";
} else {
echo "Объект не принадлежит к подклассу $class\n";
}
}

// создание 2 объектов
$veggie = new Vegetable(true, "blue");
$leafy = new Spinach();

// вывод информации об объектах
echo "вегетарианский: CLASS " . get_class($veggie) . "\n";
echo "листовой: CLASS " . get_class($leafy);
echo ", PARENT " . get_parent_class($leafy) . "\n";

// показать вегетарианские свойства
echo "\nвегетарианский: Свойства\n";
printProperties($veggie);

// и листовые методы
echo "\nleafy: Методы\n";
printMethods($leafy);

echo "\nПроисхождение:\n";
objectBelongsTo($leafy, Spinach::class);
objectBelongsTo($leafy, Vegetable::class);

?>

Результат выполнения данных примеров:

вегетарианский: CLASS Vegetable
листовой: CLASS Spinach, PARENT Vegetable

вегетарианский: Свойства
        edible = 1
        color = blue

листовой: Методы
        function __construct()
        function cook()
        function isCooked()
        function isEdible()
        function getColor()

Происхождение:
Объект не принадлежит к подклассу Spinach
Объект принадлежит к классу Spinach, подкласс Vegetable

Важно заметить, что, в приведённом выше примере, объект $leafy - экземпляр класса Spinach, который наследует класс Vegetable.


Функции работы с классами и объектами

Содержание

  • __autoload — Попытка загрузить неопределённый класс
  • class_alias — Создаёт псевдоним для указанного класса
  • class_exists — Проверяет, был ли объявлен класс
  • enum_exists — Проверяет, определено ли перечисление
  • get_called_class — Имя класса, полученное с помощью позднего статического связывания
  • get_class_methods — Возвращает массив имён методов класса
  • get_class_vars — Возвращает объявленные по умолчанию свойства класса
  • get_class — Возвращает имя класса, к которому принадлежит объект
  • get_declared_classes — Возвращает массив с именами объявленных классов
  • get_declared_interfaces — Возвращает массив всех объявленных интерфейсов
  • get_declared_traits — Возвращает массив со всеми объявленными трейтами
  • get_mangled_object_vars — Возвращает массив искажённых свойств объекта
  • get_object_vars — Возвращает свойства указанного объекта
  • get_parent_class — Возвращает имя родительского класса для объекта или класса
  • interface_exists — Проверяет, определён ли интерфейс
  • is_a — Проверяет, является ли объект указанным типом или подтипом
  • is_subclass_of — Проверяет, содержит ли объект в своём дереве предков указанный класс либо прямо реализует его
  • method_exists — Проверяет, существует ли метод в данном классе
  • property_exists — Проверяет, содержит ли объект или класс указанный атрибут
  • trait_exists — Проверяет, существует ли трейт


Попытка загрузить неопределённый класс

  • « Функции работы с классами и объектами
  • class_alias »
  • PHP Manual
  • Функции работы с классами и объектами
  • Попытка загрузить неопределённый класс

__autoload

(PHP 5, PHP 7)

__autoload — Попытка загрузить неопределённый класс

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.2.0 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

__autoload(string $class): void

Вы можете определить эту функцию для автозагрузки классов.

Список параметров

class

Имя загружаемого класса

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • spl_autoload_register() - Регистрирует заданную функцию в качестве реализации метода __autoload()


Создаёт псевдоним для указанного класса

  • « __autoload
  • class_exists »
  • PHP Manual
  • Функции работы с классами и объектами
  • Создаёт псевдоним для указанного класса

class_alias

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

class_alias — Создаёт псевдоним для указанного класса

Описание

class_alias(string $class, string $alias, bool $autoload = true): bool

Создаёт псевдоним alias для пользовательского класса class. Новый класс с псевдонимом будет точно таким же, как и оригинальный класс.

Список параметров

class

Оригинальный класс.

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)

Примечания

Замечание:

Имена классов в PHP не зависят от регистра, что и отражено в данной функции. Псевдонимы, создаваемые функцией class_alias(), объявляются в нижнем регистре. Это означает, что для класса MyClass вызов class_alias('MyClass', 'MyClassAlias') объявит новый псевдоним класса с именем myclassalias.

Смотрите также

  • get_parent_class() - Возвращает имя родительского класса для объекта или класса
  • is_subclass_of() - Проверяет, содержит ли объект в своём дереве предков указанный класс либо прямо реализует его


Проверяет, был ли объявлен класс

  • « class_alias
  • enum_exists »
  • PHP Manual
  • Функции работы с классами и объектами
  • Проверяет, был ли объявлен класс

class_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

class_exists — Проверяет, был ли объявлен класс

Описание

class_exists(string $class, bool $autoload = true): bool

Эта функция проверяет, был ли объявлен указанный класс или нет.

Список параметров

class

Имя класса. Воспринимается без учёта регистра.

autoload

Нужно ли автоматически подгружать класс, если он ещё не загружен.

Возвращаемые значения

Возвращает true, если класс class объявлен, иначе false.

Примеры

Пример #1 Пример использования class_exists()

<?php
// Проверяем существование класса перед его использованием
if (class_exists('MyClass')) {
$myclass = new MyClass();
}

?>

Пример #2 Пример использования c параметром autoload

<?php
spl_autoload_register(function ($class_name) {
include $class_name . '.php';

// Проверяем необходимость подключения указанного класса
if (!class_exists($class_name, false)) {
throw new LogicException("Unable to load class: $class_name");
}
});

if (class_exists(MyClass::class)) {
$myclass = new MyClass();
}

?>

Смотрите также

  • function_exists() - Возвращает true, если указанная функция определена
  • enum_exists() - Проверяет, определено ли перечисление
  • interface_exists() - Проверяет, определён ли интерфейс
  • get_declared_classes() - Возвращает массив с именами объявленных классов


Проверяет, определено ли перечисление

  • « class_exists
  • get_called_class »
  • PHP Manual
  • Функции работы с классами и объектами
  • Проверяет, определено ли перечисление

enum_exists

(PHP 8 >= 8.1.0)

enum_exists — Проверяет, определено ли перечисление

Описание

enum_exists(string $enum, bool $autoload = true): bool

Функция проверяет, определено ли данное перечисление.

Список параметров

enum

Имя перечисления. Имя сопоставляется без учёта регистра.

autoload

Нужно ли автоматически подгружать класс, если он ещё не загружен.

Возвращаемые значения

Возвращает true, если перечисление enum определено или false в противном случае.

Примеры

Пример #1 Пример использования enum_exists()

<?php
// Убедитесь, что перечисление существует, прежде чем пытаться его использовать
if (enum_exists(Suit::class)) {
$myclass = Suit::Hearts;
}
?>

Смотрите также

  • function_exists() - Возвращает true, если указанная функция определена
  • class_exists() - Проверяет, был ли объявлен класс
  • interface_exists() - Проверяет, определён ли интерфейс
  • get_declared_classes() - Возвращает массив с именами объявленных классов


Имя класса, полученное с помощью позднего статического связывания

  • « enum_exists
  • get_class_methods »
  • PHP Manual
  • Функции работы с классами и объектами
  • Имя класса, полученное с помощью позднего статического связывания

get_called_class

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

get_called_class — Имя класса, полученное с помощью позднего статического связывания

Описание

get_called_class(): string

Возвращает имя класса, из которого был вызван статический метод.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя класса.

Ошибки

Если функция get_called_class() вызывается не из класса, то выдаётся ошибка Error. До версии PHP 8.0.0 выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Вызов функции не из класса теперь приводит к ошибке Error. Ранее выдавалась ошибка уровня E_WARNING и функция возвращала значение 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, PHP 8)

get_class_methods — Возвращает массив имён методов класса

Описание

get_class_methods(object|string $object_or_class): array

Возвращает массив имён методов класса.

Список параметров

object_or_class

Имя класса или объект

Возвращаемые значения

Возвращает массив имён методов, объявленных в классе object_or_class.

Список изменений

Версия | Описание
8.0.0 | Параметр object_or_class теперь принимает только объекты или корректные имена классов.

Примеры

Пример #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";
}

?>

Результат выполнения данного примера:

__construct
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, PHP 8)

get_class_vars — Возвращает объявленные по умолчанию свойства класса

Описание

get_class_vars(string $class): array

Возвращает объявленные по умолчанию свойства указанного класса.

Список параметров

class

Имя класса

Возвращаемые значения

Возвращает ассоциативный массив объявленных свойств класса, видимых из текущей области видимости, с их значением по умолчанию. Получившиеся элементы массива имеют форму varname => value. В случае возникновения ошибки возвращается false.

Примеры

Пример #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, PHP 8)

get_class — Возвращает имя класса, к которому принадлежит объект

Описание

get_class(object $object = ?): string

Возвращает имя класса, экземпляром которого является объект object.

Список параметров

object

Тестируемый объект. Внутри класса этот параметр может быть опущен.

Замечание: Начиная с PHP 7.2.0, явная передача null в object запрещена и выдаёт ошибку уровня E_WARNING. Начиная с PHP 8.0.0, при передаче null, выбрасывается исключение TypeError.

Возвращаемые значения

Возвращает имя класса, к которому принадлежит экземпляр object.

Если параметр object опущен внутри класса, будет возвращено имя этого класса.

Если параметр object является экземпляром класса, существующего в пространстве имён, то будет возвращено полное имя с указанием пространства имён.

Ошибки

Если функция get_class() вызывается с чем-либо, кроме объекта, выбрасывается исключение TypeError. До PHP 8.0.0 выдавалась ошибка уровня E_WARNING.

Если функция get_class() вызывается без аргументов вне класса, выбрасывается исключение Error. До PHP 8.0.0 выдавалась ошибка уровня E_WARNING.

Список изменений

Версия | Описание
8.0.0 | Вызов функции вне класса без каких-либо аргументов вызовет исключение Error. Ранее выдавалась ошибка уровня E_WARNING и функция возвращала значение false.
7.2.0 | До этой версии значением по умолчанию для object было null с тем же эффектом, что и отсутствие передачи значения. Теперь 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() - Возвращает тип переменной
  • get_debug_type() - Возвращает имя типа переменной в виде, подходящем для отладки
  • is_subclass_of() - Проверяет, содержит ли объект в своём дереве предков указанный класс либо прямо реализует его


Возвращает массив с именами объявленных классов

  • « get_class
  • get_declared_interfaces »
  • PHP Manual
  • Функции работы с классами и объектами
  • Возвращает массив с именами объявленных классов

get_declared_classes

(PHP 4, PHP 5, PHP 7, PHP 8)

get_declared_classes — Возвращает массив с именами объявленных классов

Описание

get_declared_classes(): array

Возвращает объявленные классы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив имён объявленных классов в текущем скрипте.

Замечание:

Учтите также, что в зависимости от модулей, собранных или загруженных в PHP, может варьироваться число дополнительных классов. Это означает, что вы не сможете использовать собственные классы с данными именами. Список предопределённых классов находится в разделе дополнения "Предопределённые классы".

Список изменений

Версия | Описание
7.4.0 | Ранее get_declared_classes() всегда возвращала родительские классы перед дочерними классами. Это больше не так. Для возвращаемого значения get_declared_classes() конкретный порядок не гарантируется.

Примеры

Пример #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, PHP 8)

get_declared_interfaces — Возвращает массив всех объявленных интерфейсов

Описание

get_declared_interfaces(): 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_mangled_object_vars »
  • PHP Manual
  • Функции работы с классами и объектами
  • Возвращает массив со всеми объявленными трейтами

get_declared_traits

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

get_declared_traits — Возвращает массив со всеми объявленными трейтами

Описание

get_declared_traits(): array

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с именами трейтов в качестве значений массива.

Смотрите также

  • class_uses() - Возвращает список трейтов, используемых заданным классом
  • trait_exists() - Проверяет, существует ли трейт


Возвращает массив искажённых свойств объекта

  • « get_declared_traits
  • get_object_vars »
  • PHP Manual
  • Функции работы с классами и объектами
  • Возвращает массив искажённых свойств объекта

get_mangled_object_vars

(PHP 7 >= 7.4.0, PHP 8)

get_mangled_object_vars — Возвращает массив искажённых свойств объекта

Описание

get_mangled_object_vars(object $object): array

Возвращает массив (array), в элементах которого свойства (переменные-члены) этого объекта. Ключами будут имена переменных-членов, с некоторыми примечательными исключениями: к закрытым полям класса (private) спереди будет дописано имя класса; к защищённым полям класса (protected) спереди будет добавлен символ *. Эти добавленные значения с обеих сторон также имеют NUL байты. Неинициализированные типизированные свойства автоматически отбрасываются.

Список параметров

object

Экземпляр объекта.

Возвращаемые значения

Возвращает массив (array), содержащий все свойства объекта object, независимо от области видимости.

Примеры

Пример #1 Пример использования get_mangled_object_vars()

<?php

class A
{
public $public = 1;

protected $protected = 2;

private $private = 3;
}

class B extends A
{
private $private = 4;
}

$object = new B;
$object->dynamic = 5;
$object->{'6'} = 6;

var_dump(get_mangled_object_vars($object));

class AO extends ArrayObject
{
private $private = 1;
}

$arrayObject = new AO(['x' => 'y']);
$arrayObject->dynamic = 2;

var_dump(get_mangled_object_vars($arrayObject));

Результат выполнения данного примера:

array(6) {
  ["Bprivate"]=>
  int(4)
  ["public"]=>
  int(1)
  ["*protected"]=>
  int(2)
  ["Aprivate"]=>
  int(3)
  ["dynamic"]=>
  int(5)
  [6]=>
  int(6)
}
array(2) {
  ["AOprivate"]=>
  int(1)
  ["dynamic"]=>
  int(2)
}

Смотрите также

  • get_class_vars() - Возвращает объявленные по умолчанию свойства класса
  • get_object_vars() - Возвращает свойства указанного объекта


Возвращает свойства указанного объекта

  • « get_mangled_object_vars
  • get_parent_class »
  • PHP Manual
  • Функции работы с классами и объектами
  • Возвращает свойства указанного объекта

get_object_vars

(PHP 4, PHP 5, PHP 7, PHP 8)

get_object_vars — Возвращает свойства указанного объекта

Описание

get_object_vars(object $object): array

Возвращает видимые нестатические свойства указанного объекта object в соответствии с областью видимости.

Список параметров

object

Экземпляр объекта

Возвращаемые значения

Возвращает ассоциативный массив нестатических свойств объекта object, доступных в данной области видимости.

Примеры

Пример #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, PHP 8)

get_parent_class — Возвращает имя родительского класса для объекта или класса

Описание

get_parent_class(object|string $object_or_class = ?): string|false

Возвращает имя родительского класса для объекта или класса.

Список параметров

object_or_class

Тестируемый объект или имя класса. Если вызывается из метода объекта, то этот параметр не обязателен.

Возвращаемые значения

Возвращает имя родительского класса, если object_or_class является объектом или именем класса.

Замечание:

Если объект не имеет родителя или переданного класса с таким именем не существует, то возвращается false.

Если функция вызвана без параметров вне объекта, эта функция возвращает false.

Список изменений

Версия | Описание
8.0.0 | Параметр object_or_class теперь принимает только объекты или корректные имена классов

Примеры

Пример #1 Пример использования get_parent_class()

<?php

class Dad {
function __construct()
{
// реализация какой-нибудь логики
}
}

class Child extends Dad {
function __construct()
{
echo "I'm " , get_parent_class($this) , "'s son\n";
}
}

class Child2 extends Dad {
function __construct()
{
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, PHP 8)

interface_exists — Проверяет, определён ли интерфейс

Описание

interface_exists(string $interface, bool $autoload = true): bool

Проверяет, определён ли указанный интерфейс.

Список параметров

interface

Имя интерфейса

autoload

Нужно ли автоматически подгружать интерфейс, если он ещё не загружен.

Возвращаемые значения

Возвращает true, если интерфейс c заданным именем interface был определён или false в противном случае.

Примеры

Пример #1 Пример использования interface_exists()

<?php
// Проверяем существование интерфейса перед его использованием
if (interface_exists('MyInterface')) {
class MyClass implements MyInterface
{
// Методы
}
}

?>

Смотрите также

  • get_declared_interfaces() - Возвращает массив всех объявленных интерфейсов
  • class_implements() - Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе
  • class_exists() - Проверяет, был ли объявлен класс
  • enum_exists() - Проверяет, определено ли перечисление


Проверяет, является ли объект указанным типом или подтипом

  • « interface_exists
  • is_subclass_of »
  • PHP Manual
  • Функции работы с классами и объектами
  • Проверяет, является ли объект указанным типом или подтипом

is_a

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_a — Проверяет, является ли объект указанным типом или подтипом

Описание

is_a(mixed $object_or_class, string $class, bool $allow_string = false): bool

Проверяет, относится ли объект object_or_class к указанному типу объекта или имеет этот тип объекта в качестве одного из своих супертипов.

Список параметров

object_or_class

Имя класса или объект

class

Имя класса или интерфейса.

allow_string

Если параметр установлен в false, то не допускается имя класса в виде строки в качестве параметра object_or_class. Это также предотвращает вызов автозагрузчика, если класс не существует.

Возвращаемые значения

Возвращает true, если объект является объектом данного типа или имеет данный тип объекта в качестве одного из своих супертипов, в противном случае возвращает false.

Примеры

Пример #1 Пример использования is_a()

<?php
// объявление класса
class WidgetFactory
{
var $oink = 'moo';
}

// создание нового объекта
$WF = new WidgetFactory();

if (is_a($WF, 'WidgetFactory')) {
echo "да, \$WF всё ещё WidgetFactory\n";
}
?>

Пример #2 Использование оператора instanceof

<?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, PHP 8)

is_subclass_of — Проверяет, содержит ли объект в своём дереве предков указанный класс либо прямо реализует его

Описание

is_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool

Проверяет, содержит ли объект object_or_class в своём дереве предков класс class либо прямо реализует его.

Список параметров

object_or_class

Имя класса или экземпляр объекта. В случае отсутствия такого класса никакой ошибки сгенерировано не будет.

class

Имя класса

allow_string

Если параметр установлен в false, то не допускается имя класса в виде строки в качестве параметра object_or_class. Это также предотвращает вызов автозагрузчика, если класс не существует.

Возвращаемые значения

Эта функция возвращает true, если объект object_or_class принадлежит к классу, наследующему от class, иначе она возвращает false.

Примеры

Пример #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";
}

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, PHP 8)

method_exists — Проверяет, существует ли метод в данном классе

Описание

method_exists(object|string $object_or_class, string $method): bool

Проверяет, существует ли метод класса в указанном объекте object_or_class.

Список параметров

object_or_class

Экземпляр объекта или имя класса

method

Имя метода

Возвращаемые значения

Возвращает true, если метод method определён для указанного объекта object_or_class, иначе возвращает 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, PHP 8)

property_exists — Проверяет, содержит ли объект или класс указанный атрибут

Описание

property_exists(object|string $object_or_class, string $property): bool

Функция проверяет, существует ли атрибут property в указанном классе.

Замечание:

В противоположность isset(), property_exists() возвращает true, даже если свойство имеет значение null.

Список параметров

object_or_class

Имя класса или объект класса для проверки

property

Имя свойства

Возвращаемые значения

Возвращает true, если свойство существует, false, если оно не существует, или null в случае возникновения ошибки.

Примеры

Пример #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
var_dump(property_exists('myClass', 'bar')); //false
var_dump(property_exists('myClass', 'test')); //true
myClass::test();

?>

Примечания

Замечание:

Вызов этой функции будет использовать все зарегистрированные функции автозагрузки, если класс ещё не известен.

Замечание:

Функция property_exists() не определяет магически доступные свойства с помощью метода __get.

Смотрите также

  • method_exists() - Проверяет, существует ли метод в данном классе


Проверяет, существует ли трейт

  • « property_exists
  • Ctype »
  • PHP Manual
  • Функции работы с классами и объектами
  • Проверяет, существует ли трейт

trait_exists

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

trait_exists — Проверяет, существует ли трейт

Описание

trait_exists(string $trait, bool $autoload = true): bool

Список параметров

trait

Имя трейта для проверки

autoload

Нужно ли автоматически подгружать класс, если он ещё не загружен.

Возвращаемые значения

Возвращает true, если трейт существует, в противном случае возвращает false.


Функции определения типа символов

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции 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 и сравнение будет проводиться с использованием результата сложения.

Внимание

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) или должен быть сделан явный вызов функции chr().

Если аргументом выступает строка, то функции будут проверять каждый символ в этой строке и вернут true только если каждый символ удовлетворяет требуемому условию. При вызове с пустой строкой результатом всегда будет false.

При передаче данных других типов (кроме целого или строки) функции сразу же возвращают false.

Следует отметить, что данные функции всегда предпочтительнее, чем использование регулярных выражений и даже некоторых эквивалентных функций "str_*" и "is_*". Это связано с тем, что ctype использует родную библиотеку C, и, следовательно, работают значительно быстрее.

Замечание:

Эти функции не имеют никакого отношения к Python-библиотеке "ctypes". Название модуля является сокращением имени заголовочного файла C ctype.h, в котором определены эквиваленты из C.

Модуль также был создан раньше "ctypes" в Python, так что любая путаница, связанная с этими названиями, вряд ли является ошибкой со стороны разработчиков модуля.


Требования

Содержит только функции из стандартной библиотеки C, которая всегда доступна, поэтому дополнительных требований нет.


Установка

Модуль включён по умолчанию. Он может быть отключён во время выполнения с помощью следующей опции: --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, PHP 8)

ctype_alnum — Проверяет наличие буквенно-цифровых символов

Описание

ctype_alnum(mixed $text): bool

Проверяет, все ли символы в переданной строке text являются буквенно-цифровыми.

Список параметров

text

Проверяемая строка.

Замечание:

Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Внимание

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) или должен быть сделан явный вызов функции chr().

Возвращаемые значения

Возвращает true, если каждый символ в строке text является буквой или цифрой, иначе возвращается false. При вызове с пустой строкой результатом всегда будет 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 не состоит только из букв и цифр.

Смотрите также

  • ctype_alpha() - Проверяет наличие буквенных символов
  • ctype_digit() - Проверяет наличие цифровых символов в строке
  • setlocale() - Устанавливает настройки локали
  • IntlChar::isalnum() - Проверить, является ли символ буквой либо цифрой


Проверяет наличие буквенных символов

  • « ctype_alnum
  • ctype_cntrl »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие буквенных символов

ctype_alpha

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_alpha — Проверяет наличие буквенных символов

Описание

ctype_alpha(mixed $text): bool

Проверяет, все ли символы в переданной строке text являются буквенными. В стандартной локали C буквами являются только [A-Za-z] и ctype_alpha() эквивалентна (ctype_upper($text) || ctype_lower($text)), если $text состоит всего из одного символа, но в других языках есть буквы, которые не считаются ни верхним, ни нижним регистром.

Список параметров

text

Проверяемая строка.

Замечание:

Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Внимание

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) или должен быть сделан явный вызов функции chr().

Возвращаемые значения

Возвращает true, если каждый символ в строке text является буквой из текущей локали, false в противном случае. При вызове с пустой строкой результатом всегда будет 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 состоит не только из букв.

Смотрите также

  • ctype_upper() - Проверяет наличие символов в верхнем регистре
  • ctype_lower() - Проверяет наличие символов в нижнем регистре
  • setlocale() - Устанавливает настройки локали
  • IntlChar::isalpha() - Проверить, является ли символ буквой


Проверяет наличие управляющих символов

  • « ctype_alpha
  • ctype_digit »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие управляющих символов

ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_cntrl — Проверяет наличие управляющих символов

Описание

ctype_cntrl(mixed $text): bool

Проверяет, все ли символы в переданной строке text являются управляющими символами. Управляющими символами, к примеру, являются перевод строки, символ табуляции, escape.

Список параметров

text

Проверяемая строка.

Замечание:

Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Внимание

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) или должен быть сделан явный вызов функции chr().

Возвращаемые значения

Возвращает true, если каждый символ в строке text является управляющим символом из текущей локали, false в противном случае. При вызове с пустой строкой результатом всегда будет 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' не состоит только из управляющих символов.

Смотрите также

  • ctype_print() - Проверяет наличие печатных символов
  • IntlChar::iscntrl() - Проверить, является ли символ управляющим


Проверяет наличие цифровых символов в строке

  • « ctype_cntrl
  • ctype_graph »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие цифровых символов в строке

ctype_digit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_digit — Проверяет наличие цифровых символов в строке

Описание

ctype_digit(mixed $text): bool

Проверяет, являются ли все символы в строке text цифровыми.

Список параметров

text

Проверяемая строка.

Замечание:

Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Внимание

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) или должен быть сделан явный вызов функции chr().

Возвращаемые значения

Возвращает true, если каждый символ строки text является десятичной цифрой, либо false в противном случае. При вызове с пустой строкой результатом всегда будет false.

Примеры

Пример #1 Пример использования ctype_digit()

<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
if (ctype_digit($testcase)) {
echo "Строка $testcase состоит только из цифр.\n";
} else {
echo "Строка $testcase не состоит только из цифр.\n";
}
}
?>

Результат выполнения данного примера:

Строка 1820.20 не состоит только из цифр.
Строка 10002 состоит только из цифр.
Строка wsl!12 не состоит только из цифр.

Пример #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
?>

Смотрите также

  • ctype_alnum() - Проверяет наличие буквенно-цифровых символов
  • ctype_xdigit() - Проверяет наличие шестнадцатеричных цифр
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • is_int() - Проверяет, является ли переменная целым числом
  • is_string() - Проверяет, является ли переменная строкой
  • IntlChar::isdigit() - Проверить, является ли символ цифрой


Проверяет наличие любых печатных символов, кроме пробела

  • « ctype_digit
  • ctype_lower »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие любых печатных символов, кроме пробела

ctype_graph

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_graph — Проверяет наличие любых печатных символов, кроме пробела

Описание

ctype_graph(mixed $text): bool

Проверяет, все ли символы в предоставленной строке (string), text, являются видимыми при печати.

Список параметров

text

Проверяемая строка.

Замечание:

Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Внимание

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) или должен быть сделан явный вызов функции chr().

Возвращаемые значения

Возвращает true, если каждый символ в строке text печатный и фактически создаёт видимый вывод (без пробела), false в противном случае. При вызове с пустой строкой результатом всегда будет 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' состоит только из (видимых) печатных символов.

Смотрите также

  • ctype_alnum() - Проверяет наличие буквенно-цифровых символов
  • ctype_print() - Проверяет наличие печатных символов
  • ctype_punct() - Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы
  • IntlChar::isgraph() - Проверить, является ли символ графическим символом


Проверяет наличие символов в нижнем регистре

  • « ctype_graph
  • ctype_print »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие символов в нижнем регистре

ctype_lower

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_lower — Проверяет наличие символов в нижнем регистре

Описание

ctype_lower(mixed $text): bool

Проверяет, все ли символы в переданной строке text являются буквами в нижнем регистре.

Список параметров

text

Проверяемая строка.

Замечание:

Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Внимание

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) или должен быть сделан явный вызов функции chr().

Возвращаемые значения

Возвращает true, если каждый символ в строке text является строчной буквой в текущей локали. При вызове с пустой строкой результатом всегда будет false.

Примеры

Пример #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 не состоит только из букв в нижнем регистре.

Смотрите также

  • ctype_alpha() - Проверяет наличие буквенных символов
  • ctype_upper() - Проверяет наличие символов в верхнем регистре
  • setlocale() - Устанавливает настройки локали
  • IntlChar::islower() - Проверить, в нижнем ли регистре символ


Проверяет наличие печатных символов

  • « ctype_lower
  • ctype_punct »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие печатных символов

ctype_print

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_print — Проверяет наличие печатных символов

Описание

ctype_print(mixed $text): bool

Проверяет, все ли символы в переданной строке text являются печатными.

Список параметров

text

Проверяемая строка.

Замечание:

Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Внимание

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) или должен быть сделан явный вызов функции chr().

Возвращаемые значения

Возвращает true, если каждый символ в строке text фактически создаёт вывод (включая пробелы). Возвращает false, если text содержит управляющие символы, или символы, которые вообще не имеют никакого вывода или функции управления. При вызове с пустой строкой результатом всегда будет false.

Примеры

Пример #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' состоит только из печатных символов.

Смотрите также

  • ctype_cntrl() - Проверяет наличие управляющих символов
  • ctype_graph() - Проверяет наличие любых печатных символов, кроме пробела
  • ctype_punct() - Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы
  • IntlChar::isprint() - Проверяет, является ли символ отображаемым


Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы

  • « ctype_print
  • ctype_space »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы

ctype_punct

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_punct — Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы

Описание

ctype_punct(mixed $text): bool

Проверяет, все ли символы в переданной строке text являются знаками пунктуации.

Список параметров

text

Проверяемая строка.

Замечание:

Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Внимание

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) или должен быть сделан явный вызов функции chr().

Возвращаемые значения

Возвращает true, если каждый символ в строке text является печатным, но не является ни буквой, ни цифрой или пробелом, и false в противном случае. При вызове с пустой строкой результатом всегда будет false.

Примеры

Пример #1 Пример использования ctype_punct()

<?php
$strings = array('ABasdk!@!$#', '!@ # $', '*&$()');
foreach ($strings as $testcase) {
if (ctype_punct($testcase)) {
echo "Строка $testcase состоит только из знаков пунктуации.\n";
} else {
echo "Строка $testcase не состоит только из знаков пунктуации.\n";
}
}
?>

Результат выполнения данного примера:

Строка ABasdk!@!$# не состоит только из знаков пунктуации.
Строка !@ # $ не состоит только из знаков пунктуации.
Строка *&$() состоит только из знаков пунктуации.

Смотрите также

  • ctype_cntrl() - Проверяет наличие управляющих символов
  • ctype_graph() - Проверяет наличие любых печатных символов, кроме пробела
  • IntlChar::ispunct() - Проверяет, является ли символ символом пунктуации


Проверяет наличие пробельных символов

  • « ctype_punct
  • ctype_upper »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие пробельных символов

ctype_space

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_space — Проверяет наличие пробельных символов

Описание

ctype_space(mixed $text): bool

Проверяет, все ли символы в переданной строке text являются пробельными.

Список параметров

text

Проверяемая строка.

Замечание:

Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Внимание

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) или должен быть сделан явный вызов функции chr().

Возвращаемые значения

Возвращает true, если каждый символ в строке text создаёт какое-то из пустое пространство, false в противном случае. Кроме пробела, сюда также входят символы табуляции, вертикальной табуляции, перевода строки, возврата каретки и перевода страницы. При вызове с пустой строкой результатом всегда будет 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' состоит не только из пробельных символов.

Смотрите также

  • ctype_cntrl() - Проверяет наличие управляющих символов
  • ctype_graph() - Проверяет наличие любых печатных символов, кроме пробела
  • ctype_punct() - Проверяет наличие печатных символов, которые не содержат пробельные или буквенно-цифровые символы
  • IntlChar::isspace() - Проверяет, является ли символ пробельным


Проверяет наличие символов в верхнем регистре

  • « ctype_space
  • ctype_xdigit »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие символов в верхнем регистре

ctype_upper

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_upper — Проверяет наличие символов в верхнем регистре

Описание

ctype_upper(mixed $text): bool

Проверяет, все ли символы в переданной строке text являются буквами в верхнем регистре.

Список параметров

text

Проверяемая строка.

Замечание:

Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Внимание

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) или должен быть сделан явный вызов функции chr().

Возвращаемые значения

Возвращает true, если каждый символ в строке text является прописной буквой в текущей локали. При вызове с пустой строкой результатом всегда будет false.

Примеры

Пример #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 не состоит только из букв в верхнем регистре.

Смотрите также

  • ctype_alpha() - Проверяет наличие буквенных символов
  • ctype_lower() - Проверяет наличие символов в нижнем регистре
  • setlocale() - Устанавливает настройки локали
  • IntlChar::isupper() - Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)


Проверяет наличие шестнадцатеричных цифр

  • « ctype_upper
  • Filter »
  • PHP Manual
  • Функции Ctype
  • Проверяет наличие шестнадцатеричных цифр

ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ctype_xdigit — Проверяет наличие шестнадцатеричных цифр

Описание

ctype_xdigit(mixed $text): bool

Проверяет, являются ли все символы в строке (string) text шестнадцатеричными 'цифрами'.

Список параметров

text

Проверяемая строка.

Замечание:

Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Внимание

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) или должен быть сделан явный вызов функции chr().

Возвращаемые значения

Возвращает true, если каждый символ строки text является шестнадцатеричной 'цифрой', то есть десятичной цифрой или символом из диапазона [A-Fa-f], и false в противном случае. При вызове с пустой строкой результатом всегда будет false.

Примеры

Пример #1 Пример использования ctype_xdigit()

<?php
$strings = array('AB10BC99', 'AR1012', 'ab12bc99');
foreach ($strings as $testcase) {
if (ctype_xdigit($testcase)) {
echo "Строка $testcase состоит из шестнадцатеричных цифр.\n";
} else {
echo "Строка $testcase состоит не только из шестнадцатеричных цифр.\n";
}
}
?>

Результат выполнения данного примера:

Строка AB10BC99 состоит из шестнадцатеричных цифр.
Строка AR1012 состоит не только из шестнадцатеричных цифр.
Строка ab12bc99 состоит из шестнадцатеричных цифр.

Смотрите также

  • ctype_digit() - Проверяет наличие цифровых символов в строке
  • IntlChar::isxdigit() - Проверить, является ли символ шестнадцатеричной цифрой


Фильтрация данных

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Типы фильтров
    • Фильтры валидации данных
    • Очищающие фильтры
    • Остальные фильтры
    • Флаги, используемые в фильтрах
  • Предопределённые константы
  • Примеры
    • Проверка (валидация)
    • Очистка (нормализация)
  • Функции фильтрации данных
    • 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).


Установка

Модуль включён по умолчанию. Он может быть отключён во время выполнения с помощью следующей опции: --disable-filter


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации Filter
Имя | По умолчанию | Место изменения | Список изменений
filter.default | "unsafe_raw" | PHP_INI_PERDIR | Параметр устарел, начиная с PHP 8.1.0.
filter.default_flags | NULL | PHP_INI_PERDIR |
Для подробного описания констант 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 int

Флаги по умолчанию, которые применяются, когда установлен фильтр по умолчанию. По умолчанию задано FILTER_FLAG_NO_ENCODE_QUOTES в целях сохранения обратной совместимости. Смотрите список существующих флагов для ознакомления со списком всех имён флагов.


  • « Настройка во время выполнения
  • Типы фильтров »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данный модуль не определяет каких-либо типов ресурсов.


Типы фильтров

Содержание

  • Фильтры валидации данных
  • Очищающие фильтры
  • Остальные фильтры
  • Флаги, используемые в фильтрах


Фильтры валидации данных

Список фильтров валидации данных
Идентификатор | Имя | Параметры | Флаги | Описание
FILTER_VALIDATE_BOOLEAN, FILTER_VALIDATE_BOOL | "boolean" | default | FILTER_NULL_ON_FAILURE | Возвращает true для значений "1", "true", "on" и "yes". Иначе возвращает false. Если установлен флаг FILTER_NULL_ON_FAILURE, то false возвращается только для значений "0", "false", "off", "no" и "", а null будет возвращён для всех значений не логического типа. Перед сравнением строковые значения обрезаются с помощью функции trim().
FILTER_VALIDATE_DOMAIN | "validate_domain" | default | FILTER_FLAG_HOSTNAME, FILTER_NULL_ON_FAILURE | Проверяет, корректны ли длины меток имён домена. Проверяет доменные имена на соответствие 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, FILTER_NULL_ON_FAILURE | Проверяет, что значение является корректным e-mail. В целом, происходит проверка addr-spec-синтаксиса адреса в соответствии с » RFC 822, за исключением того, что не поддерживаются комментарии, схлопывание пробельных символов и доменные имена без точек.
FILTER_VALIDATE_FLOAT | "float" | default, decimal, min_range, max_range | FILTER_FLAG_ALLOW_THOUSAND, FILTER_NULL_ON_FAILURE | Проверяет, что значение является корректным числом с плавающей точкой, и, при необходимости, входит в определённый диапазон, в случае успешной проверки преобразует в число с плавающей точкой. Перед сравнением строковые значения обрезаются с помощью функции trim().
FILTER_VALIDATE_INT | "int" | default, min_range, max_range | FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX, FILTER_NULL_ON_FAILURE | Проверяет, что значение является корректным целым числом, и, при необходимости, входит в определённый диапазон, в случае успешной проверки преобразует в целое число. Перед сравнением строковые значения обрезаются с помощью функции trim().
FILTER_VALIDATE_IP | "validate_ip" | default | FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE, FILTER_FLAG_GLOBAL_RANGE, FILTER_NULL_ON_FAILURE | Проверяет, что значение является корректным IP-адресом, при необходимости только для протоколов IPv4 или IPv6, а также отсутствие вхождения в частные или зарезервированные диапазоны.
FILTER_VALIDATE_MAC | "validate_mac_address" | default | FILTER_NULL_ON_FAILURE | Проверяет, что значение - это корректный MAC-адрес.
FILTER_VALIDATE_REGEXP | "validate_regexp" | default, regexp | FILTER_NULL_ON_FAILURE | Проверяет значение на соответствие regexp, Perl-совместимому регулярному выражению.
FILTER_VALIDATE_URL | "validate_url" | default | FILTER_FLAG_SCHEME_REQUIRED, FILTER_FLAG_HOST_REQUIRED, FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED, FILTER_NULL_ON_FAILURE | Проверяет значение как URL (в соответствии с » http://www.faqs.org/rfcs/rfc2396), опционально с требуемыми компонентами. Помните, что URL не содержащий имя протокола http:// является корректным, так что может потребоваться дополнительная проверка того, что URL использует требуемый протокол, например ssh:// или mailto:. Обратите внимание, что эта функция считает корректными только URL, состоящие из символов ASCII; Интернациональные доменные имена не пройдут проверку.

Замечание:

Если задан default, то значение default будет подставлено, если проверка провалилась.

Список изменений

Версия | Описание
8.0.0 | Флаги FILTER_FLAG_SCHEME_REQUIRED и FILTER_FLAG_HOST_REQUIRED для фильтра FILTER_VALIDATE_URL были удалены. Флаги scheme и host являются (и были) всегда обязательными.
8.0.0 | Добавлена константа FILTER_VALIDATE_BOOL как псевдоним FILTER_VALIDATE_BOOLEAN. Предпочтительнее использовать FILTER_VALIDATE_BOOL.
7.4.0 | Добавлены опции min_range и max_range для FILTER_VALIDATE_FLOAT.
7.0.0 | Добавлена константа FILTER_FLAG_HOSTNAME и FILTER_VALIDATE_DOMAIN.


Очищающие фильтры

Список очищающих фильтров
Идентификатор | Имя | Флаги | Описание
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(). (УСТАРЕЛА с PHP 7.3.0 и УДАЛЕНА с PHP 8.0.0, используйте вместо неё FILTER_SANITIZE_ADD_SLASHES.)
FILTER_SANITIZE_ADD_SLASHES | "add_slashes" |  | Применяется функция addslashes(). (Доступно с PHP 7.3.0)
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_FLAG_NO_ENCODE_QUOTES. (Объявлен устаревшим, начиная с PHP 8.1.0, используйте вместо него функцию htmlspecialchars()).
FILTER_SANITIZE_STRIPPED | "stripped" |  | Псевдоним фильтра "string". (Объявлен устаревшим, начиная с PHP 8.1.0, используйте вместо него функцию htmlspecialchars()).
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

Список изменений

Версия | Описание
8.1.0 | Константа FILTER_SANITIZE_STRING и FILTER_SANITIZE_STRIPPED объявлены устаревшими.
8.0.0 | Удалена FILTER_SANITIZE_MAGIC_QUOTES.
7.3.0 | Добавлена FILTER_SANITIZE_ADD_SLASHES для замены FILTER_SANITIZE_MAGIC_QUOTES
7.3.0 | FILTER_SANITIZE_MAGIC_QUOTES объявлена устаревшей.


Остальные фильтры

Список различных фильтров
Идентификатор | Имя | Параметры | Флаги | Описание
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_UNSAFE_RAW | Кодирует все символы, код которых <32.
FILTER_FLAG_ENCODE_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Кодирует все символы, код которых >127.
FILTER_FLAG_ENCODE_AMP | FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Кодирует амперсанд (&).
FILTER_NULL_ON_FAILURE | любой FILTER_VALIDATE_* | Возвращает 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.

Это диапазоны, которые отмечены как зарезервированные по протоколу в » RFC 6890.

FILTER_FLAG_GLOBAL_RANGE FILTER_VALIDATE_IP

Не проходит проверку для не глобальных диапазонов IPv4/IPv6, как указано в разделе » RFC 6890 с атрибутом Global равным False.

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 | Если значение скалярное, то оно будет рассматриваться как массив с единственным элементом с этим значением.

Список изменений

Версия | Описание
8.2.0 | Добавлена константа FILTER_FLAG_GLOBAL_RANGE в качестве флага для FILTER_VALIDATE_IP.
7.3.0 | Явное использование FILTER_FLAG_SCHEME_REQUIRED и FILTER_FLAG_HOST_REQUIRED объявлено устаревшим.
7.1.0 | Добавлена константа FILTER_FLAG_EMAIL_UNICODE.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

INPUT_POST (int)
Переменные POST.
INPUT_GET (int)
Переменные GET.
INPUT_COOKIE (int)
Переменные COOKIE.
INPUT_ENV (int)
Переменные ENV.
INPUT_SERVER (int)
Переменные SERVER.
INPUT_SESSION (int)
Переменные SESSION. (ещё не реализовано)
INPUT_REQUEST (int)
Переменные REQUEST. (ещё не реализовано)
FILTER_FLAG_NONE (int)
Не использовать флаги.
FILTER_REQUIRE_SCALAR (int)
Флаг используется для указания необходимости скалярного значения в качестве входного значения.
FILTER_REQUIRE_ARRAY (int)
Требовать массив в качестве входного значения.
FILTER_FORCE_ARRAY (int)
Всегда возвращать массив.
FILTER_NULL_ON_FAILURE (int)
Использовать NULL вместо FALSE в случае возникновения ошибки.
FILTER_VALIDATE_INT (int)
Идентификатор фильтра "int".
FILTER_VALIDATE_BOOL (int)
Псевдоним FILTER_VALIDATE_BOOLEAN.
FILTER_VALIDATE_BOOLEAN (int)
Идентификатор фильтра "boolean".
FILTER_VALIDATE_FLOAT (int)
Идентификатор фильтра "float".
FILTER_VALIDATE_REGEXP (int)
Идентификатор фильтра "validate_regexp".
FILTER_VALIDATE_URL (int)
Идентификатор фильтра "validate_url".
FILTER_VALIDATE_DOMAIN (int)
Идентификатор фильтра "validate_url". (Доступно с PHP 7.0.0)
FILTER_VALIDATE_EMAIL (int)
Идентификатор фильтра "validate_email".
FILTER_VALIDATE_IP (int)
Идентификатор фильтра "validate_ip".
FILTER_VALIDATE_MAC (int)
Идентификатор фильтра "validate_mac_address".
FILTER_DEFAULT (int)
Идентификатор фильтра по умолчанию ("unsafe_raw"). Эквивалентно FILTER_UNSAFE_RAW.
FILTER_UNSAFE_RAW (int)
Идентификатор фильтра "unsafe_raw".
FILTER_SANITIZE_STRING (int)
Идентификатор фильтра "string". (Объявлен устаревшим, начиная с PHP 8.1.0, используйте вместо него функцию htmlspecialchars()).
FILTER_SANITIZE_STRIPPED (int)
Идентификатор фильтра "stripped". (Объявлен устаревшим, начиная с PHP 8.1.0, используйте вместо него функцию htmlspecialchars()).
FILTER_SANITIZE_ENCODED (int)
Идентификатор фильтра "encoded".
FILTER_SANITIZE_SPECIAL_CHARS (int)
Идентификатор фильтра "special_chars".
FILTER_SANITIZE_EMAIL (int)
Идентификатор фильтра "email".
FILTER_SANITIZE_URL (int)
Идентификатор фильтра "url".
FILTER_SANITIZE_NUMBER_INT (int)
Идентификатор фильтра "number_int".
FILTER_SANITIZE_NUMBER_FLOAT (int)
Идентификатор фильтра "number_float".
FILTER_SANITIZE_MAGIC_QUOTES (int)
Идентификатор фильтра "magic_quotes". (УСТАРЕЛ с PHP 7.3.0 и УДАЛЁН с PHP 8.0.0, используйте вместо него FILTER_SANITIZE_ADD_SLASHES.)
FILTER_SANITIZE_ADD_SLASHES (int)
Идентификатор фильтра "add_slashes". (Доступно с PHP 7.3.0)
FILTER_CALLBACK (int)
Идентификатор фильтра "callback".
FILTER_FLAG_ALLOW_OCTAL (int)
Разрешить восьмеричную запись (0[0-7]+) в фильтре "int".
FILTER_FLAG_ALLOW_HEX (int)
Разрешить шестнадцатеричную запись (0x[0-9a-fA-F]+) в фильтре "int".
FILTER_FLAG_STRIP_LOW (int)
Удалять символы с ASCII-кодом, меньшим 32.
FILTER_FLAG_STRIP_HIGH (int)
Удалять символы с ASCII-кодом, большим 127.
FILTER_FLAG_STRIP_BACKTICK (int)
Удаляет символы обратного ударения (грависа).
FILTER_FLAG_ENCODE_LOW (int)
Кодировать символы с ASCII-кодом, меньшим 32.
FILTER_FLAG_ENCODE_HIGH (int)
Кодировать символы с ASCII-кодом, большим 127.
FILTER_FLAG_ENCODE_AMP (int)
Кодировать &.
FILTER_FLAG_NO_ENCODE_QUOTES (int)
Не кодировать ' и ".
FILTER_FLAG_EMPTY_STRING_NULL (int)
(На данный момент не используется.)
FILTER_FLAG_ALLOW_FRACTION (int)
Разрешить дробную часть в фильтре "number_float".
FILTER_FLAG_ALLOW_THOUSAND (int)
Разрешить разделитель (,) в фильтре "number_float".
FILTER_FLAG_ALLOW_SCIENTIFIC (int)
Разрешить научную запись (e, E) в фильтре "number_float".
FILTER_FLAG_PATH_REQUIRED (int)
Требовать наличие пути в фильтре "validate_url".
FILTER_FLAG_QUERY_REQUIRED (int)
Требовать наличие строки запроса в фильтре "validate_url".
FILTER_FLAG_SCHEME_REQUIRED (int)
Требовать наличие схемы в фильтре "validate_url". (Объявлен устаревшим, начиная с PHP 7.3.0 и удалён в PHP 8.0.0, так как это и так подразумевается в фильтре).
FILTER_FLAG_HOST_REQUIRED (int)
Требовать наличие хоста в фильтре "validate_url". (Объявлен устаревшим, начиная с PHP 7.3.0 и удалён в PHP 8.0.0, так как это и так подразумевается в фильтре).
FILTER_FLAG_HOSTNAME (int)
Требовать, чтобы имена хостов начинались с буквенно-цифровых символов и содержали только буквенно-цифровые символы или дефисы. (Доступно с PHP 7.0.0)
FILTER_FLAG_IPV4 (int)
Разрешить только IPv4-адреса в фильтре "validate_ip".
FILTER_FLAG_IPV6 (int)
Разрешить только IPv6-адреса в фильтре "validate_ip".
FILTER_FLAG_NO_RES_RANGE (int)
Запретить зарезервированные адреса в фильтре "validate_ip".
FILTER_FLAG_NO_PRIV_RANGE (int)
Запретить частные адреса в фильтре "validate_ip".
FILTER_FLAG_EMAIL_UNICODE (int)
Принимать 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, PHP 8)

filter_has_var — Проверяет существование переменной указанного типа

Описание

filter_has_var(int $input_type, string $var_name): bool

Список параметров

input_type

Один из INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV.

var_name

Имя проверяемой переменной.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Возвращает идентификатор, принадлежащий именованному фильтру

  • « filter_has_var
  • filter_input_array »
  • PHP Manual
  • Функции фильтрации данных
  • Возвращает идентификатор, принадлежащий именованному фильтру

filter_id

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_id — Возвращает идентификатор, принадлежащий именованному фильтру

Описание

filter_id(string $name): int|false

Список параметров

name

Имя фильтра.

Возвращаемые значения

Идентификатор фильтра в случае успешного выполнения или false, если фильтр не существует.

Смотрите также

  • filter_list() - Возвращает список всех поддерживаемых фильтров


Получает несколько переменных извне PHP и, при необходимости, фильтрует их

  • « filter_id
  • filter_input »
  • PHP Manual
  • Функции фильтрации данных
  • Получает несколько переменных извне PHP и, при необходимости, фильтрует их

filter_input_array

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_input_array — Получает несколько переменных извне PHP и, при необходимости, фильтрует их

Описание

filter_input_array(int $type, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null

Эта функция полезна для получения множества переменных без многократного вызова функции filter_input().

Список параметров

type

Одна из констант INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER или INPUT_ENV.

options

Массив, определяющий аргументы. Допустимый ключ - строка (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

/* данные, полученные методом 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)
  }
}

Примечания

Замечание:

В массиве 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, PHP 8)

filter_input — Принимает переменную извне PHP и, при необходимости, фильтрует её

Описание

filter_input(
int $type,
string $var_name,
int $filter = FILTER_DEFAULT,
array|int $options = 0
): mixed

Список параметров

type

Одна из констант INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER или INPUT_ENV.

var_name

Имя получаемой переменной.

filter

Идентификатор (ID) применяемого фильтра. На странице Типы фильтров приведён список доступных фильтров.

Если не указан, то используется FILTER_DEFAULT, который равнозначен FILTER_UNSAFE_RAW. Это значит, что по умолчанию не применяется никакого фильтра.

options

Ассоциативный массив параметров или логическое ИЛИ флагов. Если фильтр принимает параметры, флаги могут быть указаны в элементе массива "flags".

Возвращаемые значения

Значение запрашиваемой переменной в случае успешного выполнения, false, если фильтрация завершилась неудачей, или null, если переменная var_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, PHP 8)

filter_list — Возвращает список всех поддерживаемых фильтров

Описание

filter_list(): 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, PHP 8)

filter_var_array — Принимает несколько переменных и, при необходимости, фильтрует их

Описание

filter_var_array(array $array, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null

Эта функция полезна для получения множества переменных без многократного вызова функции filter_var().

Список параметров

array

Массив со строковыми ключами, содержащий данные для фильтрации.

options

Массив, определяющий параметры. Допустимый ключ - строка string, содержащая имя переменной, а допустимое значение - тип фильтра, или массив (array), при необходимости определяющий фильтр, флаги и параметры. Если значение является массивом, допустимыми ключами являются filter, который определяет тип фильтра, flags, который определяет любые флаги, применяемые к фильтру, и options, который определяет любые параметры, применяемые к фильтру. Смотрите пример ниже для лучшего понимания.

Этот параметр также может быть целым числом, содержащим предопределённую константу фильтра. Затем все значения во входном массиве фильтруются этим фильтром.

add_empty

Добавляет в результат отсутствующие ключи со значением null.

Возвращаемые значения

Массив, содержащий значения запрошенных переменных в случае успешного выполнения, или false в случае возникновения ошибки. Значение массива будет false, если фильтрация завершилась неудачей, или null, если переменная не определена.

Примеры

Пример #1 Пример использования filter_var_array()

<?php

$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)
  }
}

Смотрите также

  • filter_input_array() - Получает несколько переменных извне PHP и, при необходимости, фильтрует их
  • filter_var() - Фильтрует переменную с помощью определённого фильтра
  • filter_input() - Принимает переменную извне PHP и, при необходимости, фильтрует её
  • Типы фильтров


Фильтрует переменную с помощью определённого фильтра

  • « filter_var_array
  • Управление функциями »
  • PHP Manual
  • Функции фильтрации данных
  • Фильтрует переменную с помощью определённого фильтра

filter_var

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_var — Фильтрует переменную с помощью определённого фильтра

Описание

filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed

Список параметров

value

Значение переменной для фильтрации. Обратите внимание, что скалярные значения перед фильтрацией преобразуются к строкам.

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)

Пример #2 Пример фильтрации массива

<?php

$emails = [
"bob@example.com",
"test@example.local",
"invalidemail"
];

var_dump(filter_var($emails, FILTER_VALIDATE_EMAIL, FILTER_REQUIRE_ARRAY));
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(15) "bob@example.com"
  [1]=>
  string(18) "test@example.local"
  [2]=>
  bool(false)
}

Смотрите также

  • filter_var_array() - Принимает несколько переменных и, при необходимости, фильтрует их
  • filter_input() - Принимает переменную извне PHP и, при необходимости, фильтрует её
  • filter_input_array() - Получает несколько переменных извне PHP и, при необходимости, фильтрует их
  • Типы фильтров


Управление функциями

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции управления функциями
    • 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, PHP 8)

call_user_func_array — Вызывает callback-функцию с массивом параметров

Описание

call_user_func_array(callable $callback, array $args): mixed

Вызывает callback-функцию callback, с параметрами из массива args.

Список параметров

callback

Вызываемая функция типа callable.

args

Передаваемые в функцию параметры в виде массива.

Если все ключи args являются числовыми, ключи игнорируются и каждый элемент будет передан в параметр callback как позиционный аргумент, по порядку.

Если какие-либо ключи args являются строками, эти элементы будут переданы в параметр callback как именованные аргументы, с именем, заданным ключом.

Произойдёт неисправимая ошибка, если числовой ключ в args появляется после строкового ключа или если строковый ключ не совпадает с именем любого параметра callback.

Возвращаемые значения

Возвращает результат функции или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Ключи параметра args теперь интерпретируются как имена параметров, а не игнорируются.

Примеры

Пример #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";
}
}

call_user_func_array(__NAMESPACE__ .'\Foo::test', array('Hannes'));

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)));

?>

Результат выполнения данного примера:

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

Пример #5 Пример использования call_user_func_array() с именованными аргументами

<?php
function foobar($first, $second) {
echo __FUNCTION__, " получает $first и $second\n";
}

// Вызов функции foobar() с именованными аргументами в непозиционном порядке
call_user_func_array("foobar", array("second" => "two", "first" => "one"));

// Вызов функции foobar() с одним именованным аргументом
call_user_func_array("foobar", array("foo", "second" => "bar"));

// Неисправимая ошибка: Невозможно использовать позиционный аргумент после именованного аргумента
call_user_func_array("foobar", array("first" => "one", "bar"));

?>

Результатом выполнения данного примера будет что-то подобное:

foobar получает one и two
foobar получает foo и bar

Fatal error: Uncaught Error: Cannot use positional argument after named argument

Примечания

Замечание:

Callback-функции, зарегистрированные такими функциями как call_user_func() и call_user_func_array(), не будут вызваны при наличии не пойманного исключения, брошенного в предыдущей callback-функции.

Смотрите также

  • call_user_func() - Вызывает callback-функцию, заданную в первом параметре
  • ReflectionFunction::invokeArgs() - Вызов функции с передачей аргументов
  • ReflectionMethod::invokeArgs() - Вызов метода с передачей аргументов массивом


Вызывает callback-функцию, заданную в первом параметре

  • « call_user_func_array
  • create_function »
  • PHP Manual
  • Функции управления функциями
  • Вызывает callback-функцию, заданную в первом параметре

call_user_func

(PHP 4, PHP 5, PHP 7, PHP 8)

call_user_func — Вызывает callback-функцию, заданную в первом параметре

Описание

call_user_func(callable $callback, mixed ...$args): mixed

Вызывает callback-функцию, переданную первым параметром, и передаёт остальные параметры в качестве аргументов. callback.

Список параметров

callback

Вызываемая функция типа callable.

args

Ноль или более параметров, передаваемые в 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";

// Также можно использовать функцию в качестве переменной
$increment = 'increment';
$increment($a);
echo $a."\n";
?>

Результат выполнения данного примера:

Warning: Parameter 1 to increment() expected to be a reference, value given in ...
0
1
2

Возвращаемые значения

Возвращает значение, возвращённое callback-функцией.

Примеры

Пример #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');
call_user_func(array(__NAMESPACE__ .'\Foo', 'test'));

?>

Результат выполнения данного примера:

Привет, мир!
Привет, мир!

Пример #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');

$myobject = new myclass();

call_user_func(array($myobject, 'say_hello'));

?>

Результат выполнения данного примера:

Привет!
Привет!
Привет!

Пример #5 Использование лямбда-функции с call_user_func()

<?php
call_user_func(function($arg) { print "[$arg]\n"; }, 'test');
?>

Результат выполнения данного примера:

[test]

Примечания

Замечание:

Callback-функции, зарегистрированные такими функциями как call_user_func() и call_user_func_array(), не будут вызваны при наличии не пойманного исключения, брошенного в предыдущей callback-функции.

Смотрите также

  • call_user_func_array() - Вызывает callback-функцию с массивом параметров
  • is_callable() - Проверяет, что значение может быть вызвано как функция в текущей области видимости
  • Обращение к функциям через переменные
  • 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 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

create_function(string $args, string $code): string

Создаёт функцию динамически из переданных параметров и возвращает её уникальное имя.

Предостережение

Функция внутри себя делает вызов функции eval(), а значит имеет такие же проблемы с безопасностью, как и eval(). Также у неё плохие характеристики производительности и использования памяти, поскольку созданные функции являются глобальными и не могут быть освобождены.

Используйте анонимные функции.

Список параметров

Обычно рекомендуется передавать параметры в виде строк с одинарной кавычкой. При использовании строк с двойной кавычкой имена переменных в коде должны быть тщательно экранированы, например, вот так: \$somevar.

args

Аргументы функции в виде строки, разделённой запятыми.

code

Код функции.

Возвращаемые значения

Возвращает уникальное имя функции в виде строки или false в случае возникновения ошибки. Обратите внимание, что имя содержит непечатаемый символ ("\0"), поэтому следует соблюдать осторожность при печати имени или включении его в любую другую строку.

Примеры

Пример #1 Создание функции динамически с помощью create_function() или анонимных функций

Вы можете использовать динамически созданную функцию, чтобы, например, создать функцию на основе информации, собранной во время выполнения. Во-первых, используя функцию create_function():

<?php
$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo $newfunc(2, M_E) . "\n";
?>

Теперь тот же код, используя анонимную функцию; обратите внимание, что код и аргументы больше не содержатся в строках:

<?php
$newfunc = function($a,$b) { return "ln($a) + ln($b) = " . log($a * $b); };
echo $newfunc(2, M_E) . "\n";
?>

Результат выполнения данного примера:

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";
}
}

// создаём кучу математических функций
$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', 'if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}'),
create_function('$a,$b', "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);"),
create_function('$a,$b', 'if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b; } else { return false; }')
);

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 "CRCs: " . crc32($a) . ", ".crc32($b);'),
create_function('$a,$b', 'return "similar(a,b) = " . similar_text($a, $b, $p) . "($p%)";')
);
echo "\nИспользование второго массива динамических функций\n";
process("Варкалось. Хливкие шорьки пырялись по наве", "Варан ползёт", $garr);
?>

И снова, тот же самый код с использованием анонимных функций. Обратите внимание, что имена переменных в коде больше не нужно экранировать, поскольку они не заключены в строку.

<?php
function process($var1, $var2, $farr)
{
foreach ($farr as $f) {
echo $f($var1, $var2) . "\n";
}
}

// создаём кучу математических функций
$farr = array(
function($x,$y) { return "тригонометрия: ".(sin($x) + $x*cos($y)); },
function($x,$y) { return "гипотенуза: ".sqrt($x*$x + $y*$y); },
function($a,$b) { if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;} },
function($a,$b) { return "min(b^2+a, a^2,b) = " . min($a*$a+$b, $b*$b+$a); },
function($a,$b) { if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b; } else { return false; } }
);

echo "\nИспользование первого массива динамических функций\n";
echo "Параметры: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// теперь создаём кучу функций обработки строк
$garr = array(
function($b,$a) { if (strncmp($a, $b, 3) == 0) return "** \"$a\" " .
"и \"$b\"\n** для меня одинаковы! (смотря по первым 3 символам)"; },
function($a,$b) { return "CRCs: " . crc32($a) . ", ".crc32($b); },
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 символам)
CRCs: 2672527412, 2269828269
similar(a,b) = 16(31.683168316832%)

Пример #3 Использование динамических функций в качестве callback-функций

Возможно, самым распространённым использованием динамических функций является передача их в качестве callback-функций, например, при использовании array_walk() или usort().

<?php
$av = array("the ", "a ", "that ", "this ");
array_walk($av, create_function('&$v,$k', '$v = $v . "mango";'));
print_r($av);
?>

Преобразование приведённого выше кода в анонимную функцию:

<?php
$av = array("о, ", "эх, ", "то ", "это ");
array_walk($av, create_function('&$v,$k', '$v = $v . "манго";'));
print_r($av);
?>

Результат выполнения данного примера:

Array
(
  [0] => о, манго
  [1] => эх, манго
  [2] => то манго
  [3] => это манго
)

Сортировка строк от самой длинной до самой короткой с помощью create_function():

<?php
$sv = array("мало", "много", "большая строка", "строка строка строка");
echo "Оригинальный массив:\n";
print_r($sv);
echo "Отсортированный:\n";
usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);
?>

Преобразование приведённого выше кода в анонимную функцию:

<?php
$sv = array("мало", "много", "большая строка", "строка строка строка");
echo "Оригинальный массив:\n";
print_r($sv);
echo "Отсортированный:\n";
usort($sv, function($a,$b) { return strlen($b) - strlen($a); });
print_r($sv);
?>

Результат выполнения данного примера:

Оригинальный массив:
Array
(
    [0] => мало
    [1] => много
    [2] => большая строка
    [3] => строка строка строка
)
Отсортированный:
Array
(
    [0] => строка строка строка
    [1] => большая строка
    [2] => много
    [3] => мало
)

Смотрите также

  • Анонимные функции


Вызов статического метода и передача параметров в виде массива

  • « create_function
  • forward_static_call »
  • PHP Manual
  • Функции управления функциями
  • Вызов статического метода и передача параметров в виде массива

forward_static_call_array

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

forward_static_call_array — Вызов статического метода и передача параметров в виде массива

Описание

forward_static_call_array(callable $callback, array $args): mixed

Вызывает пользовательскую функцию или метод, заданные в параметре callback. Эта функция должна вызываться в контексте метода и не может быть вызвана вне класса. Она использует позднее статическое связывание. Все аргументы пересылаются в метод по значению и в виде массива, аналогично call_user_func_array().

Список параметров

callback

Функция или метод для вызова. Этот параметр может быть массивом с именем класса и метода, либо строкой с именем функции.

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() - Проверяет, что значение может быть вызвано как функция в текущей области видимости


Вызов статического метода

  • « forward_static_call_array
  • func_get_arg »
  • PHP Manual
  • Функции управления функциями
  • Вызов статического метода

forward_static_call

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

forward_static_call — Вызов статического метода

Описание

forward_static_call(callable $callback, mixed ...$args): mixed

Вызов пользовательской функции или метода, заданные в параметре callback с последующими аргументами. Эта функция должна вызываться в контексте метода и не может быть вызвана вне класса. Она использует позднее статическое связывание.

Список параметров

callback

Функция или метод для вызова. Этот параметр может быть массивом с именем класса и метода, либо строкой с именем функции.

args

Ноль или более параметров, которые будут переданы вызываемой функции.

Возвращаемые значения

Возвращает результат функции или 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() - Проверяет, что значение может быть вызвано как функция в текущей области видимости


Вернуть элемент из списка аргументов

  • « forward_static_call
  • func_get_args »
  • PHP Manual
  • Функции управления функциями
  • Вернуть элемент из списка аргументов

func_get_arg

(PHP 4, PHP 5, PHP 7, PHP 8)

func_get_arg — Вернуть элемент из списка аргументов

Описание

func_get_arg(int $position): mixed

Возвращает указанный аргумент из списка аргументов пользовательской функции.

Эта функция может быть использована совместно с func_get_args() и func_num_args() для создания функций с переменным количеством аргументов.

Список параметров

position

Номер аргумента. Аргументы функции считаются с нуля.

Возвращаемые значения

Возвращает указанный аргумент или false в случае возникновения ошибки.

Ошибки

Генерирует предупреждение при вызове вне определения функции, или если position больше реально переданного количества аргументов.

Примеры

Пример #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
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);
?>

Результат выполнения данного примера:

Передан : 'bar'
После изменения : 'baz'
Передан : 'bar'
После изменения : 'baz'

Примечания

Замечание:

Начиная с PHP 8.0.0, семейство функций func_*() предназначено для большей прозрачности в отношении именованных аргументов, обрабатывая аргументы так, как если бы все они были переданы позиционно, а отсутствующие аргументы заменяются их значениями по умолчанию. Функция игнорирует набор неизвестных именованных вариативных аргументов. К собранным неизвестным именованным аргументам можно получить доступ только через вариативный параметр.

Замечание:

Если аргументы были переданы по ссылке, то все изменения аргументов будут отражены на возвращаемых функцией значениях. В PHP 7 также будут возвращены текущие значения, если аргументы переданы по значению

Замечание: Эта функция возвращает только копии переданных аргументов, и не возвращает значения по умолчанию (непереданных) аргументов.

Смотрите также

  • Синтаксис ...
  • func_get_args()
  • func_num_args()


Возвращает массив, содержащий аргументы функции

  • « func_get_arg
  • func_num_args »
  • PHP Manual
  • Функции управления функциями
  • Возвращает массив, содержащий аргументы функции

func_get_args

(PHP 4, PHP 5, PHP 7, PHP 8)

func_get_args — Возвращает массив, содержащий аргументы функции

Описание

func_get_args(): array

Получает массив, содержащий аргументы функции.

Эта функция может быть использована совместно с func_num_args() и func_get_arg() для создания функций с переменным количеством аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, в котором каждый элемент является копией соответствующего члена списка аргументов пользовательской функции.

Ошибки

Генерирует предупреждение при вызове вне определения функции.

Примеры

Пример #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
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);
?>

Результат выполнения данного примера:

Передан : array (
0 => 'bar',
)
После изменения : array (
0 => 'baz',
)
Передан : array (
0 => 'bar',
)
После изменения : array (
0 => 'baz',
)

Примечания

Замечание:

Начиная с PHP 8.0.0, семейство функций func_*() предназначено для большей прозрачности в отношении именованных аргументов, обрабатывая аргументы так, как если бы все они были переданы позиционно, а отсутствующие аргументы заменяются их значениями по умолчанию. Функция игнорирует набор неизвестных именованных вариативных аргументов. К собранным неизвестным именованным аргументам можно получить доступ только через вариативный параметр.

Замечание:

Если аргументы были переданы по ссылке, то все изменения аргументов будут отражены на возвращаемых функцией значениях. В PHP 7 также будут возвращены текущие значения, если аргументы переданы по значению

Замечание: Эта функция возвращает только копии переданных аргументов, и не возвращает значения по умолчанию (непереданных) аргументов.

Смотрите также

  • Синтаксис ...
  • func_get_arg()
  • func_num_args()
  • ReflectionFunctionAbstract::getParameters()


Возвращает количество аргументов, переданных функции

  • « func_get_args
  • function_exists »
  • PHP Manual
  • Функции управления функциями
  • Возвращает количество аргументов, переданных функции

func_num_args

(PHP 4, PHP 5, PHP 7, PHP 8)

func_num_args — Возвращает количество аргументов, переданных функции

Описание

func_num_args(): int

Получает количество аргументов, переданных функции.

Эта функция также может быть использована совместно с func_get_arg() и func_get_args() для создания функций с переменным количеством аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество аргументов, переданных текущей пользовательской функции.

Ошибки

Генерирует предупреждение при вызове вне определения функции.

Примеры

Пример #1 Пример использования func_num_args()

<?php

function foo()
{
echo "Количество аргументов: ", func_num_args(), PHP_EOL;
}

foo(1, 2, 3);
?>

Результат выполнения данного примера:

Количество аргументов: 3

Примечания

Замечание:

Начиная с PHP 8.0.0, семейство функций func_*() предназначено для большей прозрачности в отношении именованных аргументов, обрабатывая аргументы так, как если бы все они были переданы позиционно, а отсутствующие аргументы заменяются их значениями по умолчанию. Функция игнорирует набор неизвестных именованных вариативных аргументов. К собранным неизвестным именованным аргументам можно получить доступ только через вариативный параметр.

Смотрите также

  • Синтаксис ...
  • 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, PHP 8)

function_exists — Возвращает true, если указанная функция определена

Описание

function_exists(string $function): bool

Проверяет, есть ли в списке определённых функций, как встроенных (внутренних), так и пользовательских, функция function.

Список параметров

function

Имя функции в виде строки.

Возвращаемые значения

Возвращает true, если function существует и является функцией, иначе возвращается 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, PHP 8)

get_defined_functions — Возвращает массив всех определённых функций

Описание

get_defined_functions(bool $exclude_disabled = true): array

Получает массив всех определённых функций.

Список параметров

exclude_disabled

Следует ли исключать из результата отключённые функции.

Возвращаемые значения

Эта функция возвращает многомерный массив, содержащий список всех определённых функций, как встроенных (внутренних), так и пользовательских. Внутренние функции будут перечислены в элементе массива $arr["internal"], а определённые пользователем - в элементе $arr["user"] (смотрите пример ниже).

Список изменений

Версия | Описание
8.0.0 | Значение параметра exclude_disabled по умолчанию было изменено с false на true.
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, PHP 8)

register_shutdown_function — Регистрирует функцию, которая выполнится при завершении работы скрипта

Описание

register_shutdown_function(callable $callback, mixed ...$args): void

Регистрирует функцию callback, которая выполнится после завершения работы скрипта или при вызове функции exit().

Возможна регистрация нескольких подобных функций с помощью register_shutdown_function(), при этом функции будут выполняться в том порядке, в каком они были зарегистрированы. Если вы вызовете exit() в одной из зарегистрированных завершающих функций, процесс будет полностью остановлен и последующие завершающие функции не будут вызваны.

Завершающие функции также могут сами вызывать register_shutdown_function(), чтобы добавить функцию выключения в конец очереди.

Список параметров

callback

Регистрируемая завершающая функция.

Завершающие функции выполняются как часть запроса, поэтому можно отправлять данные на вывод из них и получать доступ к буферизации вывода.

args

Можно передавать параметры в завершающую функцию, передав дополнительные параметры.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования register_shutdown_function()

<?php
function shutdown()
{
// Это наша завершающая функция,
// здесь мы можем выполнить все последние операции
// перед тем как скрипт полностью завершится.

echo 'Скрипт успешно завершился', PHP_EOL;
}

register_shutdown_function('shutdown');
?>

Примечания

Замечание:

Рабочая директория скрипта может измениться внутри завершающей функции на некоторых веб-серверах, например, Apache.

Замечание:

Функции, выполняемые при завершении скрипта, не будут выполнены, если процесс был убит с сигналами SIGTERM или SIGKILL. Хотя вы и не можете перехватить SIGKILL, но вы можете использовать функцию pcntl_signal(), чтобы задать обработчик сигнала SIGTERM, который использует функцию exit(), чтобы завершить скрипт правильно.

Замечание:

Завершающие функции выполняются отдельно от времени, отслеживаемого max_execution_time. Это означает, что даже если процесс будет завершён из-за слишком долгого выполнения, завершающие функции всё равно будут вызваны. Кроме того, если max_execution_time истечёт во время работы завершающей функции, процесс не будет завершён.

Смотрите также

  • auto_append_file
  • exit() - Вывести сообщение и прекратить выполнение текущего скрипта
  • fastcgi_finish_request() - Сбрасывает все запрошенные данные клиенту
  • Раздел Обработка соединений


Регистрирует функцию для выполнения при каждом тике

  • « register_shutdown_function
  • unregister_tick_function »
  • PHP Manual
  • Функции управления функциями
  • Регистрирует функцию для выполнения при каждом тике

register_tick_function

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

register_tick_function — Регистрирует функцию для выполнения при каждом тике

Описание

register_tick_function(callable $callback, mixed ...$args): bool

Регистрирует функцию callback, которая должна вызываться при каждом тике.

Список параметров

callback

Регистрируемая функция.

args

Возвращаемые значения

Возвращает 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);
?>

Смотрите также

  • declare
  • unregister_tick_function() - Удаляет функцию из списка зарегистрированных для выполнения на каждом тике


Удаляет функцию из списка зарегистрированных для выполнения на каждом тике

  • « register_tick_function
  • Quickhash »
  • PHP Manual
  • Функции управления функциями
  • Удаляет функцию из списка зарегистрированных для выполнения на каждом тике

unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

unregister_tick_function — Удаляет функцию из списка зарегистрированных для выполнения на каждом тике

Описание

unregister_tick_function(callable $callback): void

Удаляет функцию обратного вызова, переданную в парметр callback из списка функций, так что она больше не выполняется при каждом тике (смотрите tick).

Список параметров

callback

Удаляемая функция.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • register_tick_function() - Регистрирует функцию для выполнения при каждом тике


Quickhash

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределённые константы
  • Примеры
  • QuickHashIntSet — Класс QuickHashIntSet
    • QuickHashIntSet::add — Метод добавляет новую запись в набор
    • QuickHashIntSet::__construct — Создаёт новый объект QuickHashIntSet
    • QuickHashIntSet::delete — Метод удаляет запись из набора
    • QuickHashIntSet::exists — Метод проверяет, является ли ключ частью набора
    • QuickHashIntSet::getSize — Возвращает количество элементов в наборе
    • QuickHashIntSet::loadFromFile — Фабричный метод создаёт набор из файла
    • QuickHashIntSet::loadFromString — Фабричный метод создаёт набор из строки
    • QuickHashIntSet::saveToFile — Метод сохраняет набор в памяти на диске
    • QuickHashIntSet::saveToString — Метод возвращает сериализованную версию набора
  • QuickHashIntHash — Класс QuickHashIntHash
    • QuickHashIntHash::add — Добавить элемент в хеш
    • QuickHashIntHash::__construct — Создаёт объект QuickHashIntHash
    • QuickHashIntHash::delete — Метод удаляет запись из хеша
    • QuickHashIntHash::exists — Метод проверяет, является ли ключ частью хеша
    • QuickHashIntHash::get — Метод извлекает значение из хеша по его ключу
    • QuickHashIntHash::getSize — Возвращает количество элементов в хеше
    • QuickHashIntHash::loadFromFile — Фабричный метод создаёт хеш из файла
    • QuickHashIntHash::loadFromString — Фабричный метод создаёт хеш из строки
    • QuickHashIntHash::saveToFile — Метод сохраняет хеш в памяти на диск
    • QuickHashIntHash::saveToString — Метод возвращает сериализованную версию хеша
    • QuickHashIntHash::set — Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует
    • QuickHashIntHash::update — Метод обновляет запись в хеше новым значением
  • QuickHashStringIntHash — Класс QuickHashStringIntHash
    • QuickHashStringIntHash::add — Метод добавляет новую запись в хеш
    • QuickHashStringIntHash::__construct — Создаёт новый объект QuickHashStringIntHash
    • QuickHashStringIntHash::delete — Метод удаляет запись из хеша
    • QuickHashStringIntHash::exists — Метод проверяет, является ли ключ частью хеша
    • QuickHashStringIntHash::get — Метод извлекает значение из хеша по его ключу
    • QuickHashStringIntHash::getSize — Возвращает количество элементов в хеше
    • QuickHashStringIntHash::loadFromFile — Фабричный метод создаёт хеш из файла
    • QuickHashStringIntHash::loadFromString — Фабричный метод создаёт хеш из строки
    • QuickHashStringIntHash::saveToFile — Метод сохраняет хеш в памяти на диске
    • QuickHashStringIntHash::saveToString — Метод возвращает сериализованную версию хеша
    • QuickHashStringIntHash::set — Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует
    • QuickHashStringIntHash::update — Метод обновляет запись в хеше новым значением
  • QuickHashIntStringHash — Класс QuickHashIntStringHash
    • QuickHashIntStringHash::add — Метод добавляет новую запись в хеш
    • QuickHashIntStringHash::__construct — Создаёт новый объект QuickHashIntStringHash
    • QuickHashIntStringHash::delete — Метод удаляет запись из хеша
    • QuickHashIntStringHash::exists — Метод проверяет, является ли ключ частью хеша
    • QuickHashIntStringHash::get — Метод извлекает значение из хеша по его ключу
    • QuickHashIntStringHash::getSize — Возвращает количество элементов в хеше
    • QuickHashIntStringHash::loadFromFile — Фабричный метод создаёт хеш из файла
    • QuickHashIntStringHash::loadFromString — Фабричный метод создаёт хеш из строки
    • QuickHashIntStringHash::saveToFile — Метод сохраняет хеш в памяти на диске
    • QuickHashIntStringHash::saveToString — Метод возвращает сериализованную версию хеша
    • QuickHashIntStringHash::set — Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует
    • QuickHashIntStringHash::update — Метод обновляет запись в хеше новым значением


Введение

Модуль quickhash содержит набор специальных сильно типизированных классов для работы с конкретными реализациями множеств и хешей.


  • « Установка и настройка
  • Установка »
  • 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 ArrayAccess

<?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 Пример использования Quickhash Iterator

<?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 Пример использования Quickhash String Values

<?php
$hash = new QuickHashIntStringHash( 64 );

// Добавление записей хеша.
$hash[1] = "один миллион четыреста пятнадцать тысяч девятьсот двадцать шесть";
$hash->add( 2, "ещё один" );

foreach( $hash as $key => $value )
{
echo $key, ' => ', $value, "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

1 => один миллион четыреста пятнадцать тысяч девятьсот двадцать шесть
2 => ещё один


Класс QuickHashIntSet

(PECL quickhash >= Unknown)

Введение

Класс-обёртка над набором целых чисел.

Класс реализует интерфейс Iterator, что даёт возможность перебора с помощью конструкции foreach. Порядок следования элементов не гарантируется.

Обзор классов

class QuickHashIntSet {
/* Константы */
const int CHECK_FOR_DUPES = 1;
const int DO_NOT_USE_ZEND_ALLOC = 2;
const int HASHER_NO_HASH = 256;
const int HASHER_JENKINS1 = 512;
const int 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(): 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(): string
}

Предопределённые константы

QuickHashIntSet::CHECK_FOR_DUPES

Если включено, то добавление повторяющихся элементов в набор (с помощью методов QuickHashIntSet::add() или QuickHashIntSet::loadFromFile()) приведёт к отбрасыванию этих элементов. Эта функциональность несколько замедляет работу, так что должен использоваться только если действительно необходим.

QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC

Запрещает использование встроенного в PHP менеджера памяти для внутренних структур. Если включена эта опция, то используемая память не будет учитываться настройкой memory_limit.

QuickHashIntSet::HASHER_NO_HASH

Указывает, что не нужно использовать функцию хеширования, а вместо неё для поиска индекса в цепочке использовать модуль. Это не быстрее обычного хеширования и порождает больше коллизий.

QuickHashIntSet::HASHER_JENKINS1

Хеширующая функция по умолчанию.

QuickHashIntHash::HASHER_JENKINS2

Другой хеширующий алгоритм.

Содержание

  • QuickHashIntSet::add — Метод добавляет новую запись в набор
  • QuickHashIntSet::__construct — Создаёт новый объект QuickHashIntSet
  • QuickHashIntSet::delete — Метод удаляет запись из набора
  • QuickHashIntSet::exists — Метод проверяет, является ли ключ частью набора
  • QuickHashIntSet::getSize — Возвращает количество элементов в наборе
  • QuickHashIntSet::loadFromFile — Фабричный метод создаёт набор из файла
  • QuickHashIntSet::loadFromString — Фабричный метод создаёт набор из строки
  • QuickHashIntSet::saveToFile — Метод сохраняет набор в памяти на диске
  • QuickHashIntSet::saveToString — Метод возвращает сериализованную версию набора


Метод добавляет новую запись в набор

  • « QuickHashIntSet
  • QuickHashIntSet::__construct »
  • PHP Manual
  • QuickHashIntSet
  • Метод добавляет новую запись в набор

QuickHashIntSet::add

(PECL quickhash >= Unknown)

QuickHashIntSet::add — Метод добавляет новую запись в набор

Описание

public QuickHashIntSet::add(int $key): bool

Метод добавляет новую запись в набор и возвращает, была ли запись добавлена. По умолчанию, добавление происходит всегда, если при создании хеша не использовался флаг QuickHashIntSet::CHECK_FOR_DUPES.

Список параметров

key

Ключ добавляемой записи.

Возвращаемые значения

Метод возвращает true, если запись была добавлена и false, если запись не была добавлена.

Примеры

Пример #1 Пример использования QuickHashIntSet::add()

<?php
echo "без проверки дубликатов\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 "\nс проверкой дубликатов\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 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

без проверки дубликатов
bool(false)
bool(true)
bool(true)
bool(true)

с проверкой дубликатов
bool(false)
bool(true)
bool(true)
bool(false)


Создаёт новый объект QuickHashIntSet

  • « QuickHashIntSet::add
  • QuickHashIntSet::delete »
  • PHP Manual
  • QuickHashIntSet
  • Создаёт новый объект QuickHashIntSet

QuickHashIntSet::__construct

(PECL quickhash >= Unknown)

QuickHashIntSet::__construct — Создаёт новый объект QuickHashIntSet

Описание

public QuickHashIntSet::__construct(int $size, int $options = ?)

Конструктор создаёт новый объект QuickHashIntSet. Размер - это количество списков, которое нужно создать. Чем больше списков, тем меньше будет коллизий. Также поддерживаются опции.

Список параметров

size

Количество списков, которое необходимо настроить. Число, которое вы передадите, будет автоматически округлено до следующей степени числа 2. Оно также автоматически ограничивается от 4 до 4194304.

options

Вы можете передать следующие параметры: константу QuickHashIntSet::CHECK_FOR_DUPES, которая гарантирует, что в набор не будут добавлены дубликаты; Константу QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC, чтобы не использовать внутренний менеджер памяти PHP, а также одну из констант QuickHashIntSet::HASHER_NO_HASH, QuickHashIntSet::HASHER_JENKINS1 или QuickHashIntSet::HASHER_JENKINS2. Последние три параметра определяют, какой алгоритм хеширования использовать. Все параметры можно комбинировать с помощью побитовых операторов.

Возвращаемые значения

Возвращает новый объект QuickHashIntSet.

Примеры

Пример #1 Пример использования QuickHashIntSet::__construct()

<?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
)
);
?>


Метод удаляет запись из набора

  • « QuickHashIntSet::__construct
  • QuickHashIntSet::exists »
  • PHP Manual
  • QuickHashIntSet
  • Метод удаляет запись из набора

QuickHashIntSet::delete

(PECL quickhash >= Unknown)

QuickHashIntSet::delete — Метод удаляет запись из набора

Описание

public QuickHashIntSet::delete(int $key): bool

Метод удаляет запись из множества и возвращает, была ли запись удалена или нет. Соответствующие структуры памяти будут освобождены не сразу, а при освобождении самого набора.

Список параметров

key

Ключ записи, которую нужно удалить.

Возвращаемые значения

Метод возвращает true, если запись была удалена и false, если запись не была удалена.

Примеры

Пример #1 Пример использования QuickHashIntSet::delete()

<?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)


Метод проверяет, является ли ключ частью набора

  • « QuickHashIntSet::delete
  • QuickHashIntSet::getSize »
  • PHP Manual
  • QuickHashIntSet
  • Метод проверяет, является ли ключ частью набора

QuickHashIntSet::exists

(PECL quickhash >= Unknown)

QuickHashIntSet::exists — Метод проверяет, является ли ключ частью набора

Описание

public QuickHashIntSet::exists(int $key): bool

Метод проверяет, существует ли в наборе запись с указанным ключом.

Список параметров

key

Ключ записи для проверки её существования в наборе.

Возвращаемые значения

Метод возвращает true, если запись была найдена или false, если запись не найдена.

Примеры

Пример #1 Пример использования QuickHashIntSet::exists()

<?php
// создание 200000 элементов
$array = range( 0, 199999 );
$existingEntries = array_rand( array_flip( $array ), 180000 );
$testForEntries = array_rand( array_flip( $array ), 1000 );
$foundCount = 0;

echo "Создание набора: ", microtime( true ), "\n";
$set = new QuickHashIntSet( 100000 );
echo "Добавление элементов: ", microtime( true ), "\n";
foreach( $existingEntries as $key )
{
$set->add( $key );
}

echo "Выполнение 1000 тестов: ", microtime( true ), "\n";
foreach( $testForEntries as $key )
{
$foundCount += $set->exists( $key );
}
echo "Готово, $foundCount найдено: ", microtime( true ), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Создание набора: 1263588703.0748
Добавление элементов: 1263588703.0757
Выполнение 1000 тестов: 1263588703.7851
Готово, $foundCount найдено: 1263588703.7897


Возвращает количество элементов в наборе

  • « QuickHashIntSet::exists
  • QuickHashIntSet::loadFromFile »
  • PHP Manual
  • QuickHashIntSet
  • Возвращает количество элементов в наборе

QuickHashIntSet::getSize

(PECL quickhash >= Unknown)

QuickHashIntSet::getSize — Возвращает количество элементов в наборе

Описание

publicQuickHashIntSet::getSize(): int

Возвращает количество элементов в наборе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество элементов в наборе.

Примеры

Пример #1 Пример использования QuickHashIntSet::getSize()

<?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)


Фабричный метод создаёт набор из файла

  • « QuickHashIntSet::getSize
  • QuickHashIntSet::loadFromString »
  • PHP Manual
  • QuickHashIntSet
  • Фабричный метод создаёт набор из файла

QuickHashIntSet::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromFile — Фабричный метод создаёт набор из файла

Описание

public static QuickHashIntSet::loadFromFile(string $filename, int $size = ?, int $options = ?): QuickHashIntSet

Этот фабричный метод создаёт новый набор из файла определения на диске. Формат файла состоит из 32-битных целых чисел со знаком, упакованных вместе в системный порядок байтов.

Список параметров

filename

Имя файла, из которого будет считываться набор.

size

Количество списков, которое необходимо настроить. Указанное число будет автоматически округлено до следующей степени числа 2. Оно также автоматически ограничивается от 4 до 4194304.

options

Те же параметры, которые принимает конструктор класса; за исключением того, что игнорируется параметр size. Он автоматически вычисляется как количество записей в хеше, округляется до ближайшей степени числа 2 с максимальным ограничением 4194304.

Возвращаемые значения

Возвращает новый объект QuickHashIntSet.

Примеры

Пример #1 Пример использования QuickHashIntSet::loadFromFile()

<?php
$file = dirname( __FILE__ ) . "/simple.set";
$set = QuickHashIntSet::loadFromFile(
$file,
QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
printf( "Ключ %3d (%2x) %s\n",
$key, $key,
$set->exists( $key ) ? 'установлен' : 'не установлен'
);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Ключ   0 ( 0) не установлен
Ключ   1 ( 1) установлен
Ключ   2 ( 2) установлен
Ключ   3 ( 3) установлен
Ключ   4 ( 4) не установлен
Ключ   5 ( 5) установлен
Ключ   6 ( 6) не установлен
Ключ   7 ( 7) установлен
Ключ   8 ( 8) не установлен
Ключ   9 ( 9) не установлен
Ключ  10 ( a) не установлен
Ключ  11 ( b) установлен
Ключ  12 ( c) не установлен
Ключ  13 ( d) установлен
Ключ  14 ( e) не установлен
Ключ  15 ( f) не установлен


Фабричный метод создаёт набор из строки

  • « QuickHashIntSet::loadFromFile
  • QuickHashIntSet::saveToFile »
  • PHP Manual
  • QuickHashIntSet
  • Фабричный метод создаёт набор из строки

QuickHashIntSet::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromString — Фабричный метод создаёт набор из строки

Описание

public static QuickHashIntSet::loadFromString(string $contents, int $size = ?, int $options = ?): QuickHashIntSet

Этот фабричный метод создаёт новый набор из определения в строке. Формат файла состоит из 32-битных целых чисел со знаком, упакованных вместе в системный порядок байтов.

Список параметров

contents

Строка, содержащая сериализованный формат набора.

size

Количество списков, которое необходимо настроить. Передаваемое число будет автоматически округлено до следующей степени числа два. Оно также автоматически ограничивается от 4 до 4194304.

options

Те же параметры, которые принимает конструктор класса; за исключением того, что игнорируется параметр size. Он автоматически вычисляется как количество записей в хеше, округляется до ближайшей степени числа 2 с максимальным ограничением 4194304.

Возвращаемые значения

Возвращает новый объект QuickHashIntSet.

Примеры

Пример #1 Пример использования QuickHashIntSet::loadFromString()

<?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( "Ключ %3d (%2x) %s\n",
$key, $key,
$set->exists( $key ) ? 'установлен' : 'не установлен'
);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Ключ   0 ( 0) не установлен
Ключ   1 ( 1) установлен
Ключ   2 ( 2) установлен
Ключ   3 ( 3) установлен
Ключ   4 ( 4) не установлен
Ключ   5 ( 5) установлен
Ключ   6 ( 6) не установлен
Ключ   7 ( 7) установлен
Ключ   8 ( 8) не установлен
Ключ   9 ( 9) не установлен
Ключ  10 ( a) не установлен
Ключ  11 ( b) установлен
Ключ  12 ( c) не установлен
Ключ  13 ( d) установлен
Ключ  14 ( e) не установлен
Ключ  15 ( f) не установлен


Метод сохраняет набор в памяти на диске

  • « QuickHashIntSet::loadFromString
  • QuickHashIntSet::saveToString »
  • PHP Manual
  • QuickHashIntSet
  • Метод сохраняет набор в памяти на диске

QuickHashIntSet::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToFile — Метод сохраняет набор в памяти на диске

Описание

public QuickHashIntSet::saveToFile(string $filename): void

Этот метод сохраняет существующий набор в файл на диске в таком же формате, который может быть прочитан методом QuickHashIntSet::loadFromFile().

Список параметров

filename

Имя файла, в котором будет храниться хеш.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования QuickHashIntSet::saveToFile()

<?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' );
?>


Метод возвращает сериализованную версию набора

  • « QuickHashIntSet::saveToFile
  • QuickHashIntHash »
  • PHP Manual
  • QuickHashIntSet
  • Метод возвращает сериализованную версию набора

QuickHashIntSet::saveToString

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToString — Метод возвращает сериализованную версию набора

Описание

public QuickHashIntSet::saveToString(): string

Метод возвращает сериализованную версию набора в том же формате, который может быть прочитан методом QuickHashIntSet::loadFromString().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод возвращает строку, содержащую сериализованную версию набора. Каждый элемент хранится как четырёх байтовое значение в системном порядке байтов.

Примеры

Пример #1 Пример использования QuickHashIntSet::saveToString()

<?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. Порядок следования элементов не гарантируется.

Обзор классов

class QuickHashIntHash {
/* Константы */
const int CHECK_FOR_DUPES = 1;
const int DO_NOT_USE_ZEND_ALLOC = 2;
const int HASHER_NO_HASH = 256;
const int HASHER_JENKINS1 = 512;
const int 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(): int
public static loadFromFile(string $filename, int $options = ?): QuickHashIntHash
public static loadFromString(string $contents, int $options = ?): QuickHashIntHash
public saveToFile(string $filename): void
public saveToString(): string
public set(int $key, int $value): bool
public update(int $key, int $value): bool
}

Предопределённые константы

QuickHashIntHash::CHECK_FOR_DUPES

Если включено, то добавление повторяющихся элементов в набор (с помощью методов QuickHashIntHash::add() или QuickHashIntHash::loadFromFile()) приведёт к отбрасыванию этих элементов. Эта функциональность несколько замедляет работу, так что должен использоваться только если действительно необходим.

QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC

Запрещает использование встроенного в PHP менеджера памяти для внутренних структур. Если включена эта опция, то используемая память не будет учитываться настройкой memory_limit.

QuickHashIntHash::HASHER_NO_HASH

Указывает, что не нужно использовать функцию хеширования, а вместо неё, для поиска индекса в цепочке, использовать модуль. Это не быстрее обычного хеширования и порождает больше коллизий.

QuickHashIntHash::HASHER_JENKINS1

Хеширующая функция по умолчанию.

QuickHashIntHash::HASHER_JENKINS2

Другой хеширующий алгоритм.

Содержание

  • QuickHashIntHash::add — Добавить элемент в хеш
  • QuickHashIntHash::__construct — Создаёт объект QuickHashIntHash
  • QuickHashIntHash::delete — Метод удаляет запись из хеша
  • QuickHashIntHash::exists — Метод проверяет, является ли ключ частью хеша
  • QuickHashIntHash::get — Метод извлекает значение из хеша по его ключу
  • QuickHashIntHash::getSize — Возвращает количество элементов в хеше
  • QuickHashIntHash::loadFromFile — Фабричный метод создаёт хеш из файла
  • QuickHashIntHash::loadFromString — Фабричный метод создаёт хеш из строки
  • QuickHashIntHash::saveToFile — Метод сохраняет хеш в памяти на диск
  • QuickHashIntHash::saveToString — Метод возвращает сериализованную версию хеша
  • QuickHashIntHash::set — Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует
  • QuickHashIntHash::update — Метод обновляет запись в хеше новым значением


Добавить элемент в хеш

  • « QuickHashIntHash
  • QuickHashIntHash::__construct »
  • PHP Manual
  • QuickHashIntHash
  • Добавить элемент в хеш

QuickHashIntHash::add

(PECL quickhash >= Unknown)

QuickHashIntHash::add — Добавить элемент в хеш

Описание

public QuickHashIntHash::add(int $key, int $value = ?): bool

Добавляет элемент в хеш и возвращает true или false в зависимости от успешности операции. По умолчанию, добавление происходит всегда, если при создании хеша не использовался флаг QuickHashIntHash::CHECK_FOR_DUPES.

Список параметров

key

Ключ добавляемой записи.

value

Опциональное значение. Если не задано, то будет использоваться 1.

Возвращаемые значения

В случае удачного добавления возвращает true. В случае неудачного - false.

Примеры

Пример #1 Пример использования QuickHashIntHash::add()

<?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)


Создаёт объект QuickHashIntHash

  • « QuickHashIntHash::add
  • QuickHashIntHash::delete »
  • PHP Manual
  • QuickHashIntHash
  • Создаёт объект QuickHashIntHash

QuickHashIntHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntHash::__construct — Создаёт объект QuickHashIntHash

Описание

public QuickHashIntHash::__construct(int $size, int $options = ?)

Конструктор создаёт объект QuickHashIntHash. Размер - это количество списков, которые нужно создать. Чем больше списков, тем меньше будет коллизий. Также поддерживаются опции.

Список параметров

size

Количество списков, которое необходимо настроить. Число, которое вы передадите, будет автоматически округлено до следующей степени числа 2. Оно также автоматически ограничивается от 64 до 4194304.

options

Вы можете использовать следующие варианты: QuickHashIntHash::CHECK_FOR_DUPES, что гарантирует, что в хеш не будут добавлены дублирующие записи; QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC чтобы не использовать внутренний менеджер памяти PHP, а также одну из констант: QuickHashIntHash::HASHER_NO_HASH, QuickHashIntHash::HASHER_JENKINS1 или QuickHashIntHash::HASHER_JENKINS2. Последние три параметра определяют, какой алгоритм хеширования использовать. Все параметры можно комбинировать с помощью побитовых операторов.

Возвращаемые значения

Возвращает новый объект QuickHashIntHash.

Примеры

Пример #1 Пример использования QuickHashIntHash::__construct()

<?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
)
);
?>


Метод удаляет запись из хеша

  • « QuickHashIntHash::__construct
  • QuickHashIntHash::exists »
  • PHP Manual
  • QuickHashIntHash
  • Метод удаляет запись из хеша

QuickHashIntHash::delete

(PECL quickhash >= Unknown)

QuickHashIntHash::delete — Метод удаляет запись из хеша

Описание

public QuickHashIntHash::delete(int $key): bool

Метод удаляет запись из хеша и возвращает, была ли эта запись удалена или нет. Соответствующие структуры памяти будут освобождены не сразу, а при освобождении самого хеша.

Элементы не могут быть удалены, если хеш используется в итераторе. Метод не выбросит исключение, а просто вернёт false как это произошло бы при любой другой ошибке удаления.

Список параметров

key

Ключ записи, которую нужно удалить.

Возвращаемые значения

Метод возвращает true, если запись была удалена и false, если запись не была удалена.

Примеры

Пример #1 Пример использования QuickHashIntHash::delete()

<?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)


Метод проверяет, является ли ключ частью хеша

  • « QuickHashIntHash::delete
  • QuickHashIntHash::get »
  • PHP Manual
  • QuickHashIntHash
  • Метод проверяет, является ли ключ частью хеша

QuickHashIntHash::exists

(PECL quickhash >= Unknown)

QuickHashIntHash::exists — Метод проверяет, является ли ключ частью хеша

Описание

public QuickHashIntHash::exists(int $key): bool

Метод проверяет, существует ли в хеше запись с указанным ключом.

Список параметров

key

Ключ записи для проверки её существования в хеше.

Возвращаемые значения

Метод возвращает true, если запись была найдена или false, если запись не была найдена.

Примеры

Пример #1 Пример использования QuickHashIntHash::exists()

<?php
// Генерация 200000 элементов
$array = range( 0, 199999 );
$existingEntries = array_rand( array_flip( $array ), 180000 );
$testForEntries = array_rand( array_flip( $array ), 1000 );
$foundCount = 0;

echo "Создание хеша: ", microtime( true ), "\n";
$hash = new QuickHashIntHash( 100000 );
echo "Добавление элементов: ", microtime( true ), "\n";
foreach( $existingEntries as $key )
{
$hash->add( $key, 56 );
}

echo "Запуск 1000 тестов: ", microtime( true ), "\n";
foreach( $testForEntries as $key )
{
$foundCount += $hash->exists( $key );
}
echo "Готово, $foundCount найдено: ", microtime( true ), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Создание хеша: 1263588703.0748
Добавление элементов: 1263588703.0757
Запуск 1000 тестов: 1263588703.7851
Готово, 898 найдено: 1263588703.7897


Метод извлекает значение из хеша по его ключу

  • « QuickHashIntHash::exists
  • QuickHashIntHash::getSize »
  • PHP Manual
  • QuickHashIntHash
  • Метод извлекает значение из хеша по его ключу

QuickHashIntHash::get

(PECL quickhash >= Unknown)

QuickHashIntHash::get — Метод извлекает значение из хеша по его ключу

Описание

public QuickHashIntHash::get(int $key): int

Метод извлекает значение из хеша по его ключу.

Список параметров

key

Ключ получаемой записи.

Возвращаемые значения

Метод возвращает значение, если ключ существует или null, если ключ не был частью хеша.

Примеры

Пример #1 Пример использования QuickHashIntHash::get()

<?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)


Возвращает количество элементов в хеше

  • « QuickHashIntHash::get
  • QuickHashIntHash::loadFromFile »
  • PHP Manual
  • QuickHashIntHash
  • Возвращает количество элементов в хеше

QuickHashIntHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntHash::getSize — Возвращает количество элементов в хеше

Описание

public QuickHashIntHash::getSize(): int

Возвращает количество элементов в хеше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод возвращает количество элементов в хеше.

Примеры

Пример #1 Пример использования QuickHashIntHash::getSize()

<?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)


Фабричный метод создаёт хеш из файла

  • « QuickHashIntHash::getSize
  • QuickHashIntHash::loadFromString »
  • PHP Manual
  • QuickHashIntHash
  • Фабричный метод создаёт хеш из файла

QuickHashIntHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromFile — Фабричный метод создаёт хеш из файла

Описание

public static QuickHashIntHash::loadFromFile(string $filename, int $options = ?): QuickHashIntHash

Этот фабричный метод создаёт новый хеш из файла определения на диске. Формат файла состоит из сигнатуры 'QH\0x11\0', количества элементов в виде 32-битного целого числа со знаком в системном порядке байтов, затем 32-битных целых чисел со знаком, упакованных вместе в системный порядок байтов. Для каждого элемента хеша хранятся два 32-битных целых числа со знаком. Первое из них - ключ, а второе - значение, принадлежащее ключу. Примером может быть:

Пример #1 Формат файла QuickHash IntHash

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

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

Имя файла, из которого нужно считать хеш.

options

Те же параметры, которые принимает конструктор класса; за исключением того, что игнорируется параметр size. Он автоматически вычисляется как количество записей в хеше, округляется до ближайшей степени числа 2 с максимальным ограничением 4194304.

Возвращаемые значения

Возвращает новый объект QuickHashIntHash.

Примеры

Пример #3 Пример использования QuickHashIntHash::loadFromFile()

<?php
$file = dirname( __FILE__ ) . "/simple.hash";
$hash = QuickHashIntHash::loadFromFile(
$file,
QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
printf( "Ключ %3d (%2x) %s\n",
$key, $key,
$hash->exists( $key ) ? 'установлен' : 'не установлен'
);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Ключ   0 ( 0) не установлен
Ключ   1 ( 1) установлен
Ключ   2 ( 2) установлен
Ключ   3 ( 3) установлен
Ключ   4 ( 4) не установлен
Ключ   5 ( 5) установлен
Ключ   6 ( 6) не установлен
Ключ   7 ( 7) установлен
Ключ   8 ( 8) не установлен
Ключ   9 ( 9) не установлен
Ключ  10 ( a) не установлен
Ключ  11 ( b) установлен
Ключ  12 ( c) не установлен
Ключ  13 ( d) установлен
Ключ  14 ( e) не установлен
Ключ  15 ( f) не установлен


Фабричный метод создаёт хеш из строки

  • « QuickHashIntHash::loadFromFile
  • QuickHashIntHash::saveToFile »
  • PHP Manual
  • QuickHashIntHash
  • Фабричный метод создаёт хеш из строки

QuickHashIntHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromString — Фабричный метод создаёт хеш из строки

Описание

public static QuickHashIntHash::loadFromString(string $contents, int $options = ?): QuickHashIntHash

Этот фабричный метод создаёт новый хеш из определения в строке. Формат файла состоит из 32-битных целых чисел со знаком, упакованных вместе в системный порядок байтов. Для каждого элемента хранятся два 32-битных целых числа со знаком. Первое из них - ключ, а второе - значение, принадлежащее ключу.

Список параметров

contents

Строка, содержащая сериализованный формат хеша.

options

Те же параметры, которые принимает конструктор класса; за исключением того, что игнорируется параметр size. Он автоматически вычисляется как количество записей в хеше, округляется до ближайшей степени числа 2 с максимальным ограничением 4194304.

Возвращаемые значения

Возвращает новый объект QuickHashIntHash.

Примеры

Пример #1 Пример использования QuickHashIntHash::loadFromString()

<?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( "Ключ %3d (%2x) %s\n",
$key, $key,
$hash->exists( $key ) ? 'установлен' : 'не установлен'
);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Ключ   0 ( 0) не установлен
Ключ   1 ( 1) установлен
Ключ   2 ( 2) установлен
Ключ   3 ( 3) установлен
Ключ   4 ( 4) не установлен
Ключ   5 ( 5) установлен
Ключ   6 ( 6) не установлен
Ключ   7 ( 7) установлен
Ключ   8 ( 8) не установлен
Ключ   9 ( 9) не установлен
Ключ  10 ( a) не установлен
Ключ  11 ( b) установлен
Ключ  12 ( c) не установлен
Ключ  13 ( d) установлен
Ключ  14 ( e) не установлен
Ключ  15 ( f) не установлен


Метод сохраняет хеш в памяти на диск

  • « QuickHashIntHash::loadFromString
  • QuickHashIntHash::saveToString »
  • PHP Manual
  • QuickHashIntHash
  • Метод сохраняет хеш в памяти на диск

QuickHashIntHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToFile — Метод сохраняет хеш в памяти на диск

Описание

public QuickHashIntHash::saveToFile(string $filename): void

Метод сохраняет существующий хеш в памяти на диск, в том же формате, который можно прочитать методом QuickHashIntHash::loadFromFile().

Список параметров

filename

Имя файла, в котором будет храниться хеш.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования QuickHashIntHash::saveToFile()

<?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' );
?>


Метод возвращает сериализованную версию хеша

  • « QuickHashIntHash::saveToFile
  • QuickHashIntHash::set »
  • PHP Manual
  • QuickHashIntHash
  • Метод возвращает сериализованную версию хеша

QuickHashIntHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToString — Метод возвращает сериализованную версию хеша

Описание

public QuickHashIntHash::saveToString(): string

Метод возвращает сериализованную версию хеша, в том же формате, который можно прочитать методом QuickHashIntHash::loadFromString().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод возвращает строку, содержащую сериализованный формат хеша. Каждый элемент хранится как 4-байтовое значение с порядком байтов, который использует текущая система.

Примеры

Пример #1 Пример использования QuickHashIntHash::saveToString()

<?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() );
?>


Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует

  • « QuickHashIntHash::saveToString
  • QuickHashIntHash::update »
  • PHP Manual
  • QuickHashIntHash
  • Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует

QuickHashIntHash::set

(PECL quickhash >= Unknown)

QuickHashIntHash::set — Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует

Описание

public QuickHashIntHash::set(int $key, int $value): bool

Метод пытается обновить запись новым значением. Если запись ещё не существует, то вместо этого добавляется новая запись. Возвращается информация о том, была ли запись добавлена или обновлена. Если есть дубликаты ключей, только первый найденный элемент получит обновлённое значение. Используйте константу QuickHashIntHash::CHECK_FOR_DUPES во время создания хеша, чтобы предотвратить попадание дублирующих ключей в хеш.

Список параметров

key

Ключ записи, которую нужно добавить или обновить.

value

Новое значение записи.

Возвращаемые значения

Метод возвращает 2, если запись была найдена и обновлена, 1, если запись была добавлена или 0 в случае возникновения ошибки.

Примеры

Пример #1 Пример использования QuickHashIntHash::set()

<?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)


Метод обновляет запись в хеше новым значением

  • « QuickHashIntHash::set
  • QuickHashStringIntHash »
  • PHP Manual
  • QuickHashIntHash
  • Метод обновляет запись в хеше новым значением

QuickHashIntHash::update

(PECL quickhash >= Unknown)

QuickHashIntHash::update — Метод обновляет запись в хеше новым значением

Описание

public QuickHashIntHash::update(int $key, int $value): bool

Метод обновляет запись новым значением и возвращает, была ли запись обновлена. Если есть дубликаты ключей, только первый найденный элемент получит обновлённое значение. Используйте константу QuickHashIntHash::CHECK_FOR_DUPES во время создания хеша, чтобы предотвратить попадание дублирующих ключей в хеш.

Список параметров

key

Ключ обновляемой записи.

value

Новое значение записи.

Возвращаемые значения

Метод возвращает true, если запись была найдена и обновлена и false, если запись была не была частью хеша.

Примеры

Пример #1 Пример использования QuickHashIntHash::update()

<?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. Порядок следования элементов не гарантируется.

Обзор классов

class QuickHashStringIntHash {
/* Константы */
const int CHECK_FOR_DUPES = 1;
const int 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(): 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(): string
public set(string $key, int $value): int
public update(string $key, int $value): bool
}

Предопределённые константы

QuickHashIntHash::CHECK_FOR_DUPES

Если включено, то добавление повторяющихся элементов в набор (с помощью методов QuickHashStringIntHash::add() или QuickHashStringIntHash::loadFromFile()) приведёт к отбрасыванию этих элементов. Эта функциональность несколько замедляет работу, так что должен использоваться только если действительно необходим.

QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC

Запрещает использование встроенного в PHP менеджера памяти для внутренних структур. Если включена эта опция, то используемая память не будет учитываться настройкой memory_limit.

Содержание

  • QuickHashStringIntHash::add — Метод добавляет новую запись в хеш
  • QuickHashStringIntHash::__construct — Создаёт новый объект QuickHashStringIntHash
  • QuickHashStringIntHash::delete — Метод удаляет запись из хеша
  • QuickHashStringIntHash::exists — Метод проверяет, является ли ключ частью хеша
  • QuickHashStringIntHash::get — Метод извлекает значение из хеша по его ключу
  • QuickHashStringIntHash::getSize — Возвращает количество элементов в хеше
  • QuickHashStringIntHash::loadFromFile — Фабричный метод создаёт хеш из файла
  • QuickHashStringIntHash::loadFromString — Фабричный метод создаёт хеш из строки
  • QuickHashStringIntHash::saveToFile — Метод сохраняет хеш в памяти на диске
  • QuickHashStringIntHash::saveToString — Метод возвращает сериализованную версию хеша
  • QuickHashStringIntHash::set — Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует
  • QuickHashStringIntHash::update — Метод обновляет запись в хеше новым значением


Метод добавляет новую запись в хеш

  • « QuickHashStringIntHash
  • QuickHashStringIntHash::__construct »
  • PHP Manual
  • QuickHashStringIntHash
  • Метод добавляет новую запись в хеш

QuickHashStringIntHash::add

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::add — Метод добавляет новую запись в хеш

Описание

public QuickHashStringIntHash::add(string $key, int $value): bool

Метод добавляет новую запись в хеш и возвращает, была ли запись добавлена. По умолчанию, добавление происходит всегда, если при создании хеша не использовался флаг QuickHashStringIntHash::CHECK_FOR_DUPES.

Список параметров

key

Ключ добавляемой записи.

value

Значение добавляемой записи.

Возвращаемые значения

Метод возвращает true, если запись была добавлена и false, если запись не была добавлена.

Примеры

Пример #1 Пример использования QuickHashStringIntHash::add()

<?php
echo "без проверки дубликатов\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 "\nс проверкой дубликатов\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 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

без проверки дубликатов
object(QuickHashStringIntHash)#1 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

с проверкой дубликатов
object(QuickHashStringIntHash)#2 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)


Создаёт новый объект QuickHashStringIntHash

  • « QuickHashStringIntHash::add
  • QuickHashStringIntHash::delete »
  • PHP Manual
  • QuickHashStringIntHash
  • Создаёт новый объект QuickHashStringIntHash

QuickHashStringIntHash::__construct

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::__construct — Создаёт новый объект QuickHashStringIntHash

Описание

public QuickHashStringIntHash::__construct(int $size, int $options = 0)

Конструктор создаёт новый объект QuickHashStringIntHash. Размер - это количество списков, которое нужно создать. Чем больше списков, тем меньше будет коллизий. Также поддерживаются опции.

Список параметров

size

Количество списков, которое необходимо настроить. Число, которое вы передадите, будет автоматически округлено до следующей степени числа 2. Оно также автоматически ограничивается от 64 до 4194304.

options

Вы можете передать следующие параметры: константу QuickHashStringIntHash::CHECK_FOR_DUPES, которая гарантирует, что в хеш не будут добавлены дубликаты и константу QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC, чтобы не использовать внутренний менеджер памяти PHP.

Возвращаемые значения

Возвращает новый объект QuickHashStringIntHash.

Примеры

Пример #1 Пример использования QuickHashStringIntHash::__construct()

<?php
var_dump( new QuickHashStringIntHash( 1024 ) );
var_dump( new QuickHashStringIntHash( 1024, QuickHashStringIntHash::CHECK_FOR_DUPES ) );
?>


Метод удаляет запись из хеша

  • « QuickHashStringIntHash::__construct
  • QuickHashStringIntHash::exists »
  • PHP Manual
  • QuickHashStringIntHash
  • Метод удаляет запись из хеша

QuickHashStringIntHash::delete

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::delete — Метод удаляет запись из хеша

Описание

public QuickHashStringIntHash::delete(string $key): bool

Метод удаляет запись из хеша и возвращает, была ли эта запись удалена или нет. Соответствующие структуры памяти будут освобождены не сразу, а при освобождении самого хеша.

Элементы не могут быть удалены, если хеш используется в итераторе. Метод не выбросит исключение, а просто вернёт false как это произошло бы при любой другой ошибке удаления.

Список параметров

key

Ключ записи, которую нужно удалить.

Возвращаемые значения

Метод возвращает true, если запись была удалена и false, если запись не была удалена.

Примеры

Пример #1 Пример использования QuickHashStringIntHash::delete()

<?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)


Метод проверяет, является ли ключ частью хеша

  • « QuickHashStringIntHash::delete
  • QuickHashStringIntHash::get »
  • PHP Manual
  • QuickHashStringIntHash
  • Метод проверяет, является ли ключ частью хеша

QuickHashStringIntHash::exists

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::exists — Метод проверяет, является ли ключ частью хеша

Описание

public QuickHashStringIntHash::exists(string $key): bool

Метод проверяет, существует ли в хеше запись с указанным ключом.

Список параметров

key

Ключ записи для проверки её существования в хеше.

Возвращаемые значения

Метод возвращает true, если запись была найдена или false, если запись не найдена.


Метод извлекает значение из хеша по его ключу

  • « QuickHashStringIntHash::exists
  • QuickHashStringIntHash::getSize »
  • PHP Manual
  • QuickHashStringIntHash
  • Метод извлекает значение из хеша по его ключу

QuickHashStringIntHash::get

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::get — Метод извлекает значение из хеша по его ключу

Описание

public QuickHashStringIntHash::get(string $key): mixed

Метод извлекает значение из хеша по его ключу.

Список параметров

key

Ключ получаемой записи.

Возвращаемые значения

Метод возвращает значение, если ключ существует или null, если ключ не является частью хеша.

Примеры

Пример #1 Пример использования QuickHashStringIntHash::get()

<?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)


Возвращает количество элементов в хеше

  • « QuickHashStringIntHash::get
  • QuickHashStringIntHash::loadFromFile »
  • PHP Manual
  • QuickHashStringIntHash
  • Возвращает количество элементов в хеше

QuickHashStringIntHash::getSize

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::getSize — Возвращает количество элементов в хеше

Описание

public QuickHashStringIntHash::getSize(): int

Возвращает количество элементов в хеше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод возвращает количество элементов в хеше.

Примеры

Пример #1 Пример использования QuickHashStringIntHash::getSize()

<?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)


Фабричный метод создаёт хеш из файла

  • « QuickHashStringIntHash::getSize
  • QuickHashStringIntHash::loadFromString »
  • PHP Manual
  • QuickHashStringIntHash
  • Фабричный метод создаёт хеш из файла

QuickHashStringIntHash::loadFromFile

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::loadFromFile — Фабричный метод создаёт хеш из файла

Описание

public static QuickHashStringIntHash::loadFromFile(string $filename, int $size = 0, int $options = 0): QuickHashStringIntHash

Этот фабричный метод создаёт новый хеш из файла определения на диске. Формат файла состоит из сигнатуры 'QH\0x21\0', количества элементов в виде 32-битного целого числа со знаком в системном порядке байтов, 32-битного целого числа без знака, содержащего количество данных элемента в символах. Данные этого элемента содержат все строки. Далее следует другое32-битное целое число со знаком, содержащее количество списков. После заголовка и строк следуют элементы. Они упорядочены по списку, так что ключи не нужно хешировать, чтобы восстановить хеш. Для каждого списка хранится следующая информация (все как 32-битные целые числа): индекс списка, количество элементов в этом списке, а затем парами по два 32-битных целых числа без знака - элементы, где первый - это индекс в строковом списке, содержащем ключи, а второй - значение. Примером может быть:

Пример #1 Формат файла QuickHash StringIntHash

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

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

Имя файла, из которого нужно считать хеш.

size

Количество списков, которое необходимо настроить. Переданное число будет автоматически округлено до следующей степени числа 2. Оно также автоматически ограничивается от 4 до 4194304.

options

Те же параметры, которые принимает конструктор класса; за исключением того, что игнорируется параметр size. Размер считывается из формата файла (в отличие от классов QuickHashIntHash и QuickHashIntStringHash, где он автоматически вычисляется из количества записей в хеше).

Возвращаемые значения

Возвращает новый объект QuickHashStringIntHash.

Примеры

Пример #3 Пример использования QuickHashStringIntHash::loadFromFile()

<?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


Фабричный метод создаёт хеш из строки

  • « QuickHashStringIntHash::loadFromFile
  • QuickHashStringIntHash::saveToFile »
  • PHP Manual
  • QuickHashStringIntHash
  • Фабричный метод создаёт хеш из строки

QuickHashStringIntHash::loadFromString

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::loadFromString — Фабричный метод создаёт хеш из строки

Описание

public static QuickHashStringIntHash::loadFromString(string $contents, int $size = 0, int $options = 0): QuickHashStringIntHash

Этот фабричный метод создаёт новый хеш из определения в строке. Формат такой же, как и в QuickHashStringIntHash::loadFromFile().

Список параметров

contents

Строка, содержащая сериализованный формат хеша.

size

Количество списков, которое необходимо настроить. Передаваемое число будет автоматически округлено до следующей степени числа два. Оно также автоматически ограничивается от 4 до 4194304.

options

Те же параметры, которые принимает конструктор класса; за исключением того, что игнорируется параметр size. Он автоматически вычисляется как количество записей в хеше, округляется до ближайшей степени числа 2 с максимальным ограничением 4194304.

Возвращаемые значения

Возвращает новый объект QuickHashStringIntHash.

Примеры

Пример #1 Пример использования QuickHashStringIntHash::loadFromString()

<?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


Метод сохраняет хеш в памяти на диске

  • « QuickHashStringIntHash::loadFromString
  • QuickHashStringIntHash::saveToString »
  • PHP Manual
  • QuickHashStringIntHash
  • Метод сохраняет хеш в памяти на диске

QuickHashStringIntHash::saveToFile

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::saveToFile — Метод сохраняет хеш в памяти на диске

Описание

public QuickHashStringIntHash::saveToFile(string $filename): void

Метод сохраняет существующий хеш в файл на диске, в том же формате, который может быть прочитан методом QuickHashStringIntHash::loadFromFile().

Список параметров

filename

Имя файла, в котором будет храниться хеш.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования QuickHashStringIntHash::saveToFile()

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "сорок три", 42 ) );
var_dump( $hash->add( "пятьдесят два", 52 ) );

$hash->saveToFile( '/tmp/test.hash.string' );
?>


Метод возвращает сериализованную версию хеша

  • « QuickHashStringIntHash::saveToFile
  • QuickHashStringIntHash::set »
  • PHP Manual
  • QuickHashStringIntHash
  • Метод возвращает сериализованную версию хеша

QuickHashStringIntHash::saveToString

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::saveToString — Метод возвращает сериализованную версию хеша

Описание

public QuickHashStringIntHash::saveToString(): string

Метод возвращает сериализованную версию хеша в том же формате, который может быть прочитан методом QuickHashStringIntHash::loadFromString().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод возвращает сериализованную версию хеша в том же формате, который может быть прочитан методом QuickHashStringIntHash::loadFromString().

Примеры

Пример #1 Пример использования QuickHashStringIntHash::saveToString()

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "сорок три", 42 ) );
var_dump( $hash->add( "пятьдесят два", 52 ) );

var_dump( $hash->saveToString() );
?>


Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует

  • « QuickHashStringIntHash::saveToString
  • QuickHashStringIntHash::update »
  • PHP Manual
  • QuickHashStringIntHash
  • Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует

QuickHashStringIntHash::set

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::set — Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует

Описание

public QuickHashStringIntHash::set(string $key, int $value): int

Метод пытается обновить запись новым значением. Если запись ещё не существует, то вместо этого добавляется новая запись. Возвращается информация о том, была ли запись добавлена или обновлена. Если есть дубликаты ключей, только первый найденный элемент получит обновлённое значение. Используйте константу QuickHashStringIntHash::CHECK_FOR_DUPES во время создания хеша, чтобы предотвратить попадание дублирующих ключей в хеш.

Список параметров

key

Ключ записи, которую нужно добавить или обновить.

value

Значение записи. Если передаётся нестроковое значение, оно будет автоматически преобразовано в строку, если это возможно.

Возвращаемые значения

Метод возвращает 2, если запись была найдена и обновлена, 1, если запись была добавлена или 0 в случае возникновения ошибки.

Примеры

Пример #1 Пример использования QuickHashStringIntHash::set()

<?php
$hash = new QuickHashStringIntHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( "сорок шесть тысяч шестьсот девяносто два" ) );
var_dump( $hash->set( "сорок шесть тысяч шестьсот девяносто два", 16091 ) );
var_dump( $hash->get( "сорок шесть тысяч шестьсот девяносто два" ) );

echo "Set->Update\n";
var_dump( $hash->set( "сорок шесть тысяч шестьсот девяносто два", 29906 ) );
var_dump( $hash->get( "сорок шесть тысяч шестьсот девяносто два" ) );
?>

Результатом выполнения данного примера будет что-то подобное:

Set->Add
bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


Метод обновляет запись в хеше новым значением

  • « QuickHashStringIntHash::set
  • QuickHashIntStringHash »
  • PHP Manual
  • QuickHashStringIntHash
  • Метод обновляет запись в хеше новым значением

QuickHashStringIntHash::update

(Информация о версии неизвестна, возможно, только в Git)

QuickHashStringIntHash::update — Метод обновляет запись в хеше новым значением

Описание

public QuickHashStringIntHash::update(string $key, int $value): bool

Метод обновляет запись новым значением и возвращает, была ли запись обновлена. Если есть дубликаты ключей, только первый найденный элемент получит обновлённое значение. Используйте константу QuickHashStringIntHash::CHECK_FOR_DUPES во время создания хеша, чтобы предотвратить попадание дублирующих ключей в хеш.

Список параметров

key

Ключ обновляемой записи.

value

Новое значение записи. Если передаётся нестроковое значение, оно будет автоматически преобразовано в строку, если это возможно.

Возвращаемые значения

Метод возвращает true, если запись была найдена и обновлена и false, если запись была не была частью хеша.

Примеры

Пример #1 Пример использования QuickHashStringIntHash::update()

<?php
$hash = new QuickHashStringIntHash( 1024 );

$hash->add( 'шесть', 314159265 );
$hash->add( "множество", 314159265 );

echo $hash->get( 'шесть' ), "\n";
echo $hash->get( 'множество' ), "\n";

var_dump( $hash->update( 'множество', 314159266 ) );
var_dump( $hash->update( "множество плюс один", 314159999 ) );

echo $hash->get( 'шесть' ), "\n";
echo $hash->get( 'множество' ), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

314159265
314159265
bool(true)
bool(false)
314159265
314159266


Класс QuickHashIntStringHash

(PECL quickhash >= Unknown)

Введение

Класс-обёртка для хеш-таблицы с целочисленными ключами и значениями, являющимися строками. Также реализует интерфейс ArrayAccess.

Класс реализует интерфейс Iterator, что даёт возможность перебора с помощью конструкции foreach. Порядок следования элементов не гарантируется.

Обзор классов

class QuickHashIntStringHash {
/* Константы */
const int CHECK_FOR_DUPES = 1;
const int DO_NOT_USE_ZEND_ALLOC = 2;
const int HASHER_NO_HASH = 256;
const int HASHER_JENKINS1 = 512;
const int 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(): 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(): string
public set(int $key, string $value): int
public update(int $key, string $value): bool
}

Предопределённые константы

QuickHashIntHash::CHECK_FOR_DUPES

Если включено, то добавление повторяющихся элементов в набор (с помощью методов QuickHashIntStringHash::add() или QuickHashIntStringHash::loadFromFile()) приведёт к отбрасыванию этих элементов. Эта функциональность несколько замедляет работу, так что должен использоваться только если действительно необходим.

QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC

Запрещает использование встроенного в PHP менеджера памяти для внутренних структур. Если включена эта опция, то используемая память не будет учитываться настройкой memory_limit.

QuickHashIntHash::HASHER_NO_HASH

Указывает, что не нужно использовать функцию хеширования, а вместо неё, для поиска индекса в цепочке, использовать модуль. Это не быстрее обычного хеширования и порождает больше коллизий.

QuickHashIntHash::HASHER_JENKINS1

Хеширующая функция по умолчанию.

QuickHashIntHash::HASHER_JENKINS2

Другой хеширующий алгоритм.

Содержание

  • QuickHashIntStringHash::add — Метод добавляет новую запись в хеш
  • QuickHashIntStringHash::__construct — Создаёт новый объект QuickHashIntStringHash
  • QuickHashIntStringHash::delete — Метод удаляет запись из хеша
  • QuickHashIntStringHash::exists — Метод проверяет, является ли ключ частью хеша
  • QuickHashIntStringHash::get — Метод извлекает значение из хеша по его ключу
  • QuickHashIntStringHash::getSize — Возвращает количество элементов в хеше
  • QuickHashIntStringHash::loadFromFile — Фабричный метод создаёт хеш из файла
  • QuickHashIntStringHash::loadFromString — Фабричный метод создаёт хеш из строки
  • QuickHashIntStringHash::saveToFile — Метод сохраняет хеш в памяти на диске
  • QuickHashIntStringHash::saveToString — Метод возвращает сериализованную версию хеша
  • QuickHashIntStringHash::set — Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует
  • QuickHashIntStringHash::update — Метод обновляет запись в хеше новым значением


Метод добавляет новую запись в хеш

  • « QuickHashIntStringHash
  • QuickHashIntStringHash::__construct »
  • PHP Manual
  • QuickHashIntStringHash
  • Метод добавляет новую запись в хеш

QuickHashIntStringHash::add

(PECL quickhash >= Unknown)

QuickHashIntStringHash::add — Метод добавляет новую запись в хеш

Описание

public QuickHashIntStringHash::add(int $key, string $value): bool

Метод добавляет новую запись в набор и возвращает, была ли запись добавлена. По умолчанию, добавление происходит всегда, если при создании хеша не использовался флаг QuickHashIntStringHash::CHECK_FOR_DUPES.

Список параметров

key

Ключ добавляемой записи.

value

Значение добавляемой записи. Если передаётся нестроковое значение, оно будет автоматически преобразовано в строку, если это возможно.

Возвращаемые значения

Метод возвращает true, если запись была добавлена и false, если запись не была добавлена.

Примеры

Пример #1 Пример использования QuickHashIntStringHash::add()

<?php
echo "без проверки дубликатов\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 "\nс проверкой дубликатов\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" ) );
?>

Результатом выполнения данного примера будет что-то подобное:

без проверки дубликатов
bool(false)
bool(false)
bool(true)
bool(true)
string(10) "twenty two"
bool(true)

с проверкой дубликатов
bool(false)
bool(false)
bool(true)
bool(true)
string(13) "seventy eight"
bool(false)


Создаёт новый объект QuickHashIntStringHash

  • « QuickHashIntStringHash::add
  • QuickHashIntStringHash::delete »
  • PHP Manual
  • QuickHashIntStringHash
  • Создаёт новый объект QuickHashIntStringHash

QuickHashIntStringHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntStringHash::__construct — Создаёт новый объект QuickHashIntStringHash

Описание

public QuickHashIntStringHash::__construct(int $size, int $options = 0)

Конструктор создаёт новый объект QuickHashIntStringHash. Размер - это количество списков, которые нужно создать. Чем больше списков, тем меньше будет коллизий. Также поддерживаются опции.

Список параметров

size

Количество списков, которое необходимо настроить. Число, которое вы передадите, будет автоматически округлено до следующей степени числа 2. Оно также автоматически ограничивается от 64 до 4194304.

options

Вы можете использовать следующие варианты: QuickHashIntStringHash::CHECK_FOR_DUPES, что гарантирует, что в хеш не будут добавлены дублирующие записи; QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC чтобы не использовать внутренний менеджер памяти PHP, а также одну из констант: QuickHashIntStringHash::HASHER_NO_HASH, QuickHashIntStringHash::HASHER_JENKINS1 или QuickHashIntStringHash::HASHER_JENKINS2. Последние три параметра определяют, какой алгоритм хеширования использовать. Все параметры можно комбинировать с помощью побитовых операторов.

Возвращаемые значения

Возвращает новый объект QuickHashIntStringHash.

Примеры

Пример #1 Пример использования QuickHashIntStringHash::__construct()

<?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
)
);
?>


Метод удаляет запись из хеша

  • « QuickHashIntStringHash::__construct
  • QuickHashIntStringHash::exists »
  • PHP Manual
  • QuickHashIntStringHash
  • Метод удаляет запись из хеша

QuickHashIntStringHash::delete

(PECL quickhash >= Unknown)

QuickHashIntStringHash::delete — Метод удаляет запись из хеша

Описание

public QuickHashIntStringHash::delete(int $key): bool

Метод удаляет запись из хеша и возвращает, была ли эта запись удалена или нет. Соответствующие структуры памяти будут освобождены не сразу, а при освобождении самого хеша.

Элементы не могут быть удалены, если хеш используется в итераторе. Метод не выбросит исключение, а просто вернёт false, как это произошло бы при любой другой ошибке удаления.

Список параметров

key

Ключ удаляемой записи.

Возвращаемые значения

Метод возвращает true, если запись была удалена и false, если запись не была удалена.

Примеры

Пример #1 Пример использования QuickHashIntStringHash::delete()

<?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)


Метод проверяет, является ли ключ частью хеша

  • « QuickHashIntStringHash::delete
  • QuickHashIntStringHash::get »
  • PHP Manual
  • QuickHashIntStringHash
  • Метод проверяет, является ли ключ частью хеша

QuickHashIntStringHash::exists

(PECL quickhash >= Unknown)

QuickHashIntStringHash::exists — Метод проверяет, является ли ключ частью хеша

Описание

public QuickHashIntStringHash::exists(int $key): bool

Метод проверяет, существует ли в хеше запись с указанным ключом.

Список параметров

key

Ключ записи для проверки её существования в хеше.

Возвращаемые значения

Метод возвращает true, если запись была найдена или false, если запись не найдена.


Метод извлекает значение из хеша по его ключу

  • « QuickHashIntStringHash::exists
  • QuickHashIntStringHash::getSize »
  • PHP Manual
  • QuickHashIntStringHash
  • Метод извлекает значение из хеша по его ключу

QuickHashIntStringHash::get

(PECL quickhash >= Unknown)

QuickHashIntStringHash::get — Метод извлекает значение из хеша по его ключу

Описание

public QuickHashIntStringHash::get(int $key): mixed

Метод извлекает значение из хеша по его ключу.

Список параметров

key

Ключ получаемой записи.

Возвращаемые значения

Метод возвращает значение, если ключ существует или null, если ключ не является частью хеша.

Примеры

Пример #1 Пример использования QuickHashIntStringHash::get()

<?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"


Возвращает количество элементов в хеше

  • « QuickHashIntStringHash::get
  • QuickHashIntStringHash::loadFromFile »
  • PHP Manual
  • QuickHashIntStringHash
  • Возвращает количество элементов в хеше

QuickHashIntStringHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntStringHash::getSize — Возвращает количество элементов в хеше

Описание

public QuickHashIntStringHash::getSize(): int

Возвращает количество элементов в хеше.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество элементов в хеше.

Примеры

Пример #1 Пример использования QuickHashIntStringHash::getSize()

<?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)


Фабричный метод создаёт хеш из файла

  • « QuickHashIntStringHash::getSize
  • QuickHashIntStringHash::loadFromString »
  • PHP Manual
  • QuickHashIntStringHash
  • Фабричный метод создаёт хеш из файла

QuickHashIntStringHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromFile — Фабричный метод создаёт хеш из файла

Описание

public static QuickHashIntStringHash::loadFromFile(string $filename, int $size = 0, int $options = 0): QuickHashIntStringHash

Этот фабричный метод создаёт новый хеш из файла определения на диске. Формат файла состоит из сигнатуры 'QH\0x12\0', количества элементов в виде 32-битного целого числа со знаком в системном порядке байтов, затем 32-битных целых чисел со знаком, упакованных вместе в системный порядок байтов. Для каждого элемента хеша хранятся два 32-битных целых числа со знаком. Первое из них - ключ, а второе - значение, принадлежащее ключу. Примером может быть:

Пример #1 Формат файла QuickHash IntString

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

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

Имя файла, из которого нужно считать хеш.

size

Количество списков, которое необходимо настроить. Переданное число будет автоматически округлено до следующей степени числа 2. Оно также автоматически ограничивается от 4 до 4194304.

options

Те же параметры, которые принимает конструктор класса; за исключением того, что игнорируется параметр size. Он автоматически вычисляется как количество записей в хеше, округляется до ближайшей степени числа 2 с максимальным ограничением 4194304.

Возвращаемые значения

Возвращает новый объект QuickHashIntStringHash.

Примеры

Пример #3 Пример использования QuickHashIntStringHash::loadFromFile()

<?php
$file = dirname( __FILE__ ) . "/simple.string.hash";
$hash = QuickHashIntStringHash::loadFromFile(
$file,
QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
printf( "Ключ %3d (%2x) %s\n",
$key, $key,
$hash->exists( $key ) ? 'установлен' : 'не установлен'
);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Ключ   0 ( 0) не установлен
Ключ   1 ( 1) установлен
Ключ   2 ( 2) установлен
Ключ   3 ( 3) установлен
Ключ   4 ( 4) не установлен
Ключ   5 ( 5) установлен
Ключ   6 ( 6) не установлен
Ключ   7 ( 7) установлен
Ключ   8 ( 8) не установлен
Ключ   9 ( 9) не установлен
Ключ  10 ( a) не установлен
Ключ  11 ( b) установлен
Ключ  12 ( c) не установлен
Ключ  13 ( d) установлен
Ключ  14 ( e) не установлен
Ключ  15 ( f) не установлен


Фабричный метод создаёт хеш из строки

  • « QuickHashIntStringHash::loadFromFile
  • QuickHashIntStringHash::saveToFile »
  • PHP Manual
  • QuickHashIntStringHash
  • Фабричный метод создаёт хеш из строки

QuickHashIntStringHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromString — Фабричный метод создаёт хеш из строки

Описание

public static QuickHashIntStringHash::loadFromString(string $contents, int $size = 0, int $options = 0): QuickHashIntStringHash

Этот фабричный метод создаёт новый хеш из определения в строке. Формат такой же, как и в QuickHashIntStringHash::loadFromFile().

Список параметров

contents

Строка, содержащая сериализованный формат хеша.

size

Количество списков, которое необходимо настроить. Передаваемое число будет автоматически округлено до следующей степени числа два. Оно также автоматически ограничивается от 4 до 4194304.

options

Те же параметры, которые принимает конструктор класса; за исключением того, что игнорируется параметр size. Он автоматически вычисляется как количество записей в хеше, округляется до ближайшей степени числа 2 с максимальным ограничением 4194304.

Возвращаемые значения

Возвращает новый объект QuickHashIntStringHash.

Примеры

Пример #1 Пример использования QuickHashIntStringHash::loadFromString()

<?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( "Ключ %3d (%2x) %s\n",
$key, $key,
$hash->exists( $key ) ? 'установлен' : 'не установлен'
);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Ключ   0 ( 0) не установлен
Ключ   1 ( 1) установлен
Ключ   2 ( 2) установлен
Ключ   3 ( 3) установлен
Ключ   4 ( 4) не установлен
Ключ   5 ( 5) установлен
Ключ   6 ( 6) не установлен
Ключ   7 ( 7) установлен
Ключ   8 ( 8) не установлен
Ключ   9 ( 9) не установлен
Ключ  10 ( a) не установлен
Ключ  11 ( b) установлен
Ключ  12 ( c) не установлен
Ключ  13 ( d) установлен
Ключ  14 ( e) не установлен
Ключ  15 ( f) не установлен


Метод сохраняет хеш в памяти на диске

  • « QuickHashIntStringHash::loadFromString
  • QuickHashIntStringHash::saveToString »
  • PHP Manual
  • QuickHashIntStringHash
  • Метод сохраняет хеш в памяти на диске

QuickHashIntStringHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToFile — Метод сохраняет хеш в памяти на диске

Описание

public QuickHashIntStringHash::saveToFile(string $filename): void

Метод сохраняет существующий хеш в файл на диске, в том же формате, который может быть прочитан методом QuickHashIntStringHash::loadFromFile().

Список параметров

filename

Имя файла, в котором будет храниться хеш.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования QuickHashIntStringHash::saveToFile()

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "сорок три" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "пятьдесят два" ) );

$hash->saveToFile( '/tmp/test.string.hash' );
?>


Метод возвращает сериализованную версию хеша

  • « QuickHashIntStringHash::saveToFile
  • QuickHashIntStringHash::set »
  • PHP Manual
  • QuickHashIntStringHash
  • Метод возвращает сериализованную версию хеша

QuickHashIntStringHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToString — Метод возвращает сериализованную версию хеша

Описание

public QuickHashIntStringHash::saveToString(): string

Метод возвращает сериализованную версию хеша в том же формате, который может быть прочитан методом QuickHashIntStringHash::loadFromString().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод возвращает строку, содержащую сериализованную версию хеша. Каждый элемент хранится как четырёх байтовое значение в системном порядке байтов.

Примеры

Пример #1 Пример использования QuickHashIntStringHash::saveToString()

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "тридцать четыре" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 5, "пятьдесят пять" ) );

var_dump( $hash->saveToString() );
?>


Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует

  • « QuickHashIntStringHash::saveToString
  • QuickHashIntStringHash::update »
  • PHP Manual
  • QuickHashIntStringHash
  • Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует

QuickHashIntStringHash::set

(PECL quickhash >= Unknown)

QuickHashIntStringHash::set — Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует

Описание

public QuickHashIntStringHash::set(int $key, string $value): int

Метод пытается обновить запись новым значением. Если запись ещё не существует, то вместо этого добавляется новая запись. Возвращается информация о том, была ли запись добавлена или обновлена. Если есть дубликаты ключей, только первый найденный элемент получит обновлённое значение. Используйте константу QuickHashIntStringHash::CHECK_FOR_DUPES во время создания хеша, чтобы предотвратить попадание дублирующих ключей в хеш.

Список параметров

key

Ключ записи, которую нужно добавить или обновить.

value

Значение записи. Если передаётся нестроковое значение, оно будет автоматически преобразовано в строку, если это возможно.

Возвращаемые значения

Метод возвращает 2, если запись была найдена и обновлена, 1, если запись была добавлена или 0 в случае возникновения ошибки.

Примеры

Пример #1 Пример использования QuickHashIntStringHash::set()

<?php
$hash = new QuickHashIntStringHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( 46692 ) );
var_dump( $hash->set( 46692, "шестнадцать тысяч девяносто один" ) );
var_dump( $hash->get( 46692 ) );

echo "Set->Update\n";
var_dump( $hash->set( 46692, "двадцать девять тысяч девятьсот шесть" ) );
var_dump( $hash->get( 46692 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

Set->Add
bool(false)
int(2)
string(27) "шестнадцать тысяч девяносто один"
Set->Update
int(1)
string(37) "двадцать девять тысяч девятьсот шесть"


Метод обновляет запись в хеше новым значением

  • « QuickHashIntStringHash::set
  • Reflection »
  • PHP Manual
  • QuickHashIntStringHash
  • Метод обновляет запись в хеше новым значением

QuickHashIntStringHash::update

(PECL quickhash >= Unknown)

QuickHashIntStringHash::update — Метод обновляет запись в хеше новым значением

Описание

public QuickHashIntStringHash::update(int $key, string $value): bool

Метод обновляет запись новым значением и возвращает, была ли запись обновлена. Если есть дубликаты ключей, только первый найденный элемент получит обновлённое значение. Используйте константу QuickHashIntStringHash::CHECK_FOR_DUPES во время создания хеша, чтобы предотвратить попадание дублирующих ключей в хеш.

Список параметров

key

Ключ обновляемой записи.

value

Новое значение записи. Если передаётся нестроковое значение, оно будет автоматически преобразовано в строку, если это возможно.

Возвращаемые значения

Метод возвращает true, если запись была найдена и обновлена и false, если запись была не была частью хеша.

Примеры

Пример #1 Пример использования QuickHashIntStringHash::update()

<?php
$hash->add( 161803398, "--" );
$hash->add( 314159265, "множество" );

echo $hash->get( 161803398 ), "\n";
echo $hash->get( 314159265 ), "\n";

var_dump( $hash->update( 314159265, "множество плюс один" ) );
var_dump( $hash->update( 314159999, "множество плюс один" ) );

echo $hash->get( 161803398 ), "\n";
echo $hash->get( 314159265 ), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

--
множество
bool(true)
bool(false)
--
множество плюс один


Reflection

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
  • Расширение
  • Reflection — Класс Reflection
    • Reflection::export — Экспортирует Reflection
    • Reflection::getModifierNames — Получение имён модификаторов
  • ReflectionClass — Класс ReflectionClass
    • ReflectionClass::__construct — Создаёт объект класса ReflectionClass
    • ReflectionClass::export — Экспортирует класс
    • ReflectionClass::getAttributes — Получает атрибуты
    • 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::isEnum — Возвращает, является ли класс перечислением
    • ReflectionClass::isFinal — Проверяет, является ли класс окончательным (final)
    • ReflectionClass::isInstance — Проверяет, принадлежит ли объект классу
    • ReflectionClass::isInstantiable — Проверяет, можно ли создать экземпляр класса
    • ReflectionClass::isInterface — Проверяет, является ли класс интерфейсом
    • ReflectionClass::isInternal — Проверяет, является ли класс встроенным в модуль или в ядро
    • ReflectionClass::isIterable — Проверить, является ли класс итерируемым
    • ReflectionClass::isIterateable — Псевдоним ReflectionClass::isIterable
    • ReflectionClass::isReadOnly — Проверяет, является ли класс доступным только для чтения
    • 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::getAttributes — Получает атрибуты
    • ReflectionClassConstant::getDeclaringClass — Получает объявляющий класс
    • ReflectionClassConstant::getDocComment — Получает doc-комментарии
    • ReflectionClassConstant::getModifiers — Получает модификаторы константы класса
    • ReflectionClassConstant::getName — Получить имя константы
    • ReflectionClassConstant::getValue — Получает значение
    • ReflectionClassConstant::isEnumCase — Проверяет, является ли константа класса вариантом перечисления
    • ReflectionClassConstant::isFinal — Проверяет, является ли константа класса окончательной
    • ReflectionClassConstant::isPrivate — Проверяет, является ли константа закрытой
    • ReflectionClassConstant::isProtected — Проверяет, является ли константа защищённой
    • ReflectionClassConstant::isPublic — Проверяет, является ли константа общедоступной
    • ReflectionClassConstant::__toString — Возвращает строковое представление объекта ReflectionClassConstant
  • ReflectionEnum — Класс ReflectionEnum
    • ReflectionEnum::__construct — Создаёт объект ReflectionEnum
    • ReflectionEnum::getBackingType — Получает тип перечисления, если есть
    • ReflectionEnum::getCase — Возвращает определённый вариант перечисления
    • ReflectionEnum::getCases — Возвращает список всех вариантов перечисления
    • ReflectionEnum::hasCase — Проверяет вариант перечисления
    • ReflectionEnum::isBacked — Определяет, является ли перечисление типизированным
  • ReflectionEnumUnitCase — Класс ReflectionEnumUnitCase
    • ReflectionEnumUnitCase::__construct — Создаёт экземпляр объекта ReflectionEnumUnitCase
    • ReflectionEnumUnitCase::getEnum — Получает Reflection-объект перечисления этого варианта
    • ReflectionEnumUnitCase::getValue — Получает объект варианта перечисления, описанный Reflection-объектом
  • ReflectionEnumBackedCase — Класс ReflectionEnumBackedCase
    • ReflectionEnumBackedCase::__construct — Создаёт объект ReflectionEnumBackedCase
    • ReflectionEnumBackedCase::getBackingValue — Получает скалярное значение варианта перечисления
  • ReflectionZendExtension — Класс ReflectionZendExtension
    • ReflectionZendExtension::__clone — Обработчик клонирования
    • ReflectionZendExtension::__construct — Создаёт объект ReflectionZendExtension
    • 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::isAnonymous — Проверяет, является ли функция анонимной
    • ReflectionFunction::isDisabled — Проверяет, что функция отключена
    • ReflectionFunction::__toString — Возвращает строковое представление объекта ReflectionFunction
  • ReflectionFunctionAbstract — Класс ReflectionFunctionAbstract
    • ReflectionFunctionAbstract::__clone — Клонирует функцию
    • ReflectionFunctionAbstract::getAttributes — Получает атрибуты
    • ReflectionFunctionAbstract::getClosureScopeClass — Возвращает класс в рамках которого было объявлено замыкание
    • ReflectionFunctionAbstract::getClosureThis — Возвращает указатель, привязанный к замыканию
    • ReflectionFunctionAbstract::getClosureUsedVariables — Возвращает массив используемых в замыкании переменных
    • 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::getTentativeReturnType — Возвращает предварительный тип возвращаемого значения, связанный с функцией
    • ReflectionFunctionAbstract::hasReturnType — Проверяет, имеет ли функция объявленный тип возвращаемого значения
    • ReflectionFunctionAbstract::hasTentativeReturnType — Определяет, есть ли у функции предварительный тип возвращаемого значения
    • ReflectionFunctionAbstract::inNamespace — Проверяет, находится ли функция в пространстве имён
    • ReflectionFunctionAbstract::isClosure — Проверяет, является ли функция замыканием (Closure)
    • ReflectionFunctionAbstract::isDeprecated — Проверяет, является ли функция устаревшей
    • ReflectionFunctionAbstract::isGenerator — Проверяет, является ли функция генератором
    • ReflectionFunctionAbstract::isInternal — Проверяет, является ли функция внутренней
    • ReflectionFunctionAbstract::isStatic — Проверяет, является ли функция статической
    • ReflectionFunctionAbstract::isUserDefined — Проверяет, является ли функция определённой пользователем
    • ReflectionFunctionAbstract::isVariadic — Проверяет, является ли функция функцией с переменным числом аргументов
    • ReflectionFunctionAbstract::returnsReference — Проверяет, что функция возвращает ссылку
    • ReflectionFunctionAbstract::__toString — Возвращает строковое представление объекта ReflectionFunctionAbstract
  • ReflectionMethod — Класс ReflectionMethod
    • ReflectionMethod::__construct — Конструктор класса ReflectionMethod
    • ReflectionMethod::createFromMethodName — Creates a new ReflectionMethod
    • ReflectionMethod::export — Экспорт отражённого метода
    • ReflectionMethod::getClosure — Возвращает динамически созданное замыкание для метода
    • ReflectionMethod::getDeclaringClass — Получает класс, объявляющий отражённый метод
    • ReflectionMethod::getModifiers — Получает модификаторы метода
    • ReflectionMethod::getPrototype — Получает прототип метода (если такой есть)
    • ReflectionMethod::hasPrototype — Определяет, есть ли у метода прототип
    • ReflectionMethod::invoke — Вызов
    • ReflectionMethod::invokeArgs — Вызов метода с передачей аргументов массивом
    • ReflectionMethod::isAbstract — Проверяет, является ли метод абстрактным
    • ReflectionMethod::isConstructor — Проверяет, является ли метод конструктором
    • ReflectionMethod::isDestructor — Проверяет, является ли метод деструктором
    • ReflectionMethod::isFinal — Проверяет, является ли метод окончательным
    • ReflectionMethod::isPrivate — Проверяет, является ли метод закрытым
    • ReflectionMethod::isProtected — Проверяет, является ли метод защищённым
    • ReflectionMethod::isPublic — Проверяет, является ли метод общедоступным
    • ReflectionMethod::setAccessible — Делает метод доступным
    • ReflectionMethod::__toString — Возвращает строковое представление объекта ReflectionMethod
  • ReflectionNamedType — Класс ReflectionNamedType
    • ReflectionNamedType::getName — Получает имя типа в виде строки
    • ReflectionNamedType::isBuiltin — Проверяет, является ли тип встроенным
  • ReflectionObject — Класс ReflectionObject
    • ReflectionObject::__construct — Конструктор класса ReflectionObject
    • ReflectionObject::export — Экспорт
  • ReflectionParameter — Класс ReflectionParameter
    • ReflectionParameter::allowsNull — Проверяет, допустимо ли значение null для параметра
    • ReflectionParameter::canBePassedByValue — Проверяет, можно ли передать этот аргумент по значению
    • ReflectionParameter::__clone — Клонировать
    • ReflectionParameter::__construct — Конструктор
    • ReflectionParameter::export — Экспорт
    • ReflectionParameter::getAttributes — Получает атрибуты
    • ReflectionParameter::getClass — Получает объект ReflectionClass для отражаемого параметра или null
    • 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::getAttributes — Получает атрибуты
    • ReflectionProperty::getDeclaringClass — Получение объявляющего класса
    • ReflectionProperty::getDefaultValue — Возвращает значение по умолчанию, заданное для свойства
    • ReflectionProperty::getDocComment — Получение doc-комментария для свойства
    • ReflectionProperty::getModifiers — Получение модификаторов свойств класса
    • ReflectionProperty::getName — Получение имени свойства
    • ReflectionProperty::getType — Получить тип свойства
    • ReflectionProperty::getValue — Получает значение
    • ReflectionProperty::hasDefaultValue — Проверяет, задано ли для свойства значение по умолчанию
    • ReflectionProperty::hasType — Проверить, задан ли для свойства тип
    • ReflectionProperty::isDefault — Проверяет, является ли значение свойством по умолчанию
    • ReflectionProperty::isInitialized — Проверить, инициализировано ли свойство
    • ReflectionProperty::isPrivate — Проверяет, является ли свойство закрытым
    • ReflectionProperty::isPromoted — Проверяет, определено ли свойство в конструкторе
    • ReflectionProperty::isProtected — Проверяет, является ли свойство защищённым
    • ReflectionProperty::isPublic — Проверяет, является ли свойство общедоступным
    • ReflectionProperty::isReadOnly — Проверяет, является ли свойство readonly-свойством
    • ReflectionProperty::isStatic — Проверка, является ли свойство статическим
    • ReflectionProperty::setAccessible — Делает свойство доступным
    • ReflectionProperty::setValue — Установка значения свойства
    • ReflectionProperty::__toString — Преобразование в строку
  • ReflectionType — Класс ReflectionType
    • ReflectionType::allowsNull — Проверяет, допустим ли NULL
    • ReflectionType::__toString — Преобразование в строку
  • ReflectionUnionType — Класс ReflectionUnionType
    • ReflectionUnionType::getTypes — Возвращает типы, включённые в тип union
  • ReflectionGenerator — Класс ReflectionGenerator
    • ReflectionGenerator::__construct — Конструктор ReflectionGenerator
    • ReflectionGenerator::getExecutingFile — Получить имя файла, из которого запущен генератор
    • ReflectionGenerator::getExecutingGenerator — Получить запущенный объект Generator
    • ReflectionGenerator::getExecutingLine — Получить текущую выполняющуюся строку генератора
    • ReflectionGenerator::getFunction — Получить имя функции генератора
    • ReflectionGenerator::getThis — Получает значение $this генератора
    • ReflectionGenerator::getTrace — Получить трассировку запущенного генератора
  • ReflectionFiber — Класс ReflectionFiber
    • ReflectionFiber::__construct — Создаёт объект ReflectionFiber
    • ReflectionFiber::getCallable — Получает вызываемый объект, используемый для создания файбера
    • ReflectionFiber::getExecutingFile — Получает имя файла текущей точки выполнения
    • ReflectionFiber::getExecutingLine — Получает номер строки текущей точки выполнения
    • ReflectionFiber::getFiber — Получает отражённый экземпляр файбера
    • ReflectionFiber::getTrace — Получает обратную трассировку текущей точки выполнения
  • ReflectionIntersectionType — Класс ReflectionIntersectionType
    • ReflectionIntersectionType::getTypes — Возвращает типы, включённые в тип intersection
  • ReflectionReference — Класс ReflectionReference
    • ReflectionReference::__construct — Закрытый конструктор, запрещающий создание экземпляра напрямую
    • ReflectionReference::fromArrayElement — Создаёт ReflectionReference из элемента массива
    • ReflectionReference::getId — Получить уникальный идентификатор ссылки
  • ReflectionAttribute — Класс ReflectionAttribute
    • ReflectionAttribute::__construct — Закрытый конструктор, запрещающий создание объекта напрямую
    • ReflectionAttribute::getArguments — Возвращает аргументы, переданные атрибуту
    • ReflectionAttribute::getName — Возвращает имя атрибута
    • ReflectionAttribute::getTarget — Возвращает цель атрибута в виде битовой маски
    • ReflectionAttribute::isRepeated — Определяет, был ли атрибут с таким именем указан многократно в элементе кода
    • ReflectionAttribute::newInstance — Создаёт экземпляр класса атрибута, используя содержащиеся в объекте ReflectionAttribute имя класса и аргументы
  • Reflector — Интерфейс Reflector
    • Reflector::export — Экспорт
  • 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, PHP 8)

Введение

Класс Reflection.

Обзор классов

class 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

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

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, PHP 8)

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, PHP 8)

Введение

Класс ReflectionClass сообщает информацию о классе.

Обзор классов

class ReflectionClass implements Reflector {
/* Константы */
public const int IS_IMPLICIT_ABSTRACT;
public const int IS_EXPLICIT_ABSTRACT;
public const int IS_FINAL;
public const int IS_READONLY;
/* Свойства */
public string $name;
/* Методы */
public __construct(object|string $objectOrClass)
public static export(mixed $argument, bool $return = false): string
public getAttributes(?string $name = null, int $flags = 0): array
public getConstant(string $name): mixed
public getConstants(?int $filter = null): array
public getConstructor(): ?ReflectionMethod
public getDefaultProperties(): array
public getDocComment(): string|false
public getEndLine(): int|false
public getExtension(): ?ReflectionExtension
public getExtensionName(): string|false
public getFileName(): string|false
public getInterfaceNames(): array
public getInterfaces(): array
public getMethod(string $name): ReflectionMethod
public getMethods(?int $filter = null): array
public getModifiers(): int
public getName(): string
public getNamespaceName(): string
public getParentClass(): ReflectionClass|false
public getProperties(?int $filter = null): array
public getProperty(string $name): ReflectionProperty
public getReflectionConstant(string $name): ReflectionClassConstant|false
public getReflectionConstants(?int $filter = null): array
public getShortName(): string
public getStartLine(): int|false
public getStaticProperties(): array
public getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed
public getTraitAliases(): array
public getTraitNames(): array
public getTraits(): array
public hasConstant(string $name): bool
public hasMethod(string $name): bool
public hasProperty(string $name): bool
public implementsInterface(ReflectionClass|string $interface): bool
public inNamespace(): bool
public isAbstract(): bool
public isAnonymous(): bool
public isCloneable(): bool
public isEnum(): bool
public isFinal(): bool
public isInstance(object $object): bool
public isInstantiable(): bool
public isInterface(): bool
public isInternal(): bool
public isIterable(): bool
public isReadOnly(): bool
public isSubclassOf(ReflectionClass|string $class): bool
public isTrait(): bool
public isUserDefined(): bool
public newInstance(mixed ...$args): object
public newInstanceArgs(array $args = []): ?object
public newInstanceWithoutConstructor(): object
public setStaticPropertyValue(string $name, mixed $value): void
public __toString(): string
}

Свойства

name

Имя класса. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Предопределённые константы

Модификаторы ReflectionClass

ReflectionClass::IS_IMPLICIT_ABSTRACT

Указывает, что класс является абстрактным, потому что он содержит абстрактные методы.

ReflectionClass::IS_EXPLICIT_ABSTRACT

Указывает, что класс является абстрактным, потому что так указано при его описании.

ReflectionClass::IS_FINAL

Указывает, что класс является окончательным (final)

ReflectionClass::IS_READONLY

Указывает, что класс является readonly.

Список изменений

Версия | Описание
8.0.0 | Метод ReflectionClass::export() был удалён.

Содержание

  • ReflectionClass::__construct — Создаёт объект класса ReflectionClass
  • ReflectionClass::export — Экспортирует класс
  • ReflectionClass::getAttributes — Получает атрибуты
  • 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::isEnum — Возвращает, является ли класс перечислением
  • ReflectionClass::isFinal — Проверяет, является ли класс окончательным (final)
  • ReflectionClass::isInstance — Проверяет, принадлежит ли объект классу
  • ReflectionClass::isInstantiable — Проверяет, можно ли создать экземпляр класса
  • ReflectionClass::isInterface — Проверяет, является ли класс интерфейсом
  • ReflectionClass::isInternal — Проверяет, является ли класс встроенным в модуль или в ядро
  • ReflectionClass::isIterable — Проверить, является ли класс итерируемым
  • ReflectionClass::isIterateable — Псевдоним ReflectionClass::isIterable
  • ReflectionClass::isReadOnly — Проверяет, является ли класс доступным только для чтения
  • 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, PHP 8)

ReflectionClass::__construct — Создаёт объект класса ReflectionClass

Описание

public ReflectionClass::__construct(object|string $objectOrClass)

Создаёт новый объект класса ReflectionClass.

Список параметров

objectOrClass

В качестве аргумента может принимать строку (string), содержащую имя исследуемого класса, либо объект (object).

Ошибки

Вызывает исключение ReflectionException, если заданный класс не существует.

Примеры

Пример #1 Простой пример использования ReflectionClass

<?php
$reflection = new ReflectionClass('Exception');
echo $reflection;
?>

Результатом выполнения данного примера будет что-то подобное:

Class [ <internal:Core> class Exception implements Stringable, Throwable ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ protected $message = '' ]
    Property [ private string $string = '' ]
    Property [ protected $code = 0 ]
    Property [ protected string $file = '' ]
    Property [ protected int $line = 0 ]
    Property [ private array $trace = [] ]
    Property [ private ?Throwable $previous = NULL ]
  }

  - Methods [11] {
    Method [ <internal:Core> private method __clone ] {

      - Parameters [0] {
      }
      - Return [ void ]
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> string $message = "" ]
        Parameter #1 [ <optional> int $code = 0 ]
        Parameter #2 [ <optional> ?Throwable $previous = null ]
      }
    }

    Method [ <internal:Core> public method __wakeup ] {

      - Parameters [0] {
      }
      - Tentative return [ void ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getMessage ] {

      - Parameters [0] {
      }
      - Return [ string ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getCode ] {

      - Parameters [0] {
      }
    }

    Method [ <internal:Core, prototype Throwable> final public method getFile ] {

      - Parameters [0] {
      }
      - Return [ string ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getLine ] {

      - Parameters [0] {
      }
      - Return [ int ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getTrace ] {

      - Parameters [0] {
      }
      - Return [ array ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getPrevious ] {

      - Parameters [0] {
      }
      - Return [ ?Throwable ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getTraceAsString ] {

      - Parameters [0] {
      }
      - Return [ string ]
    }

    Method [ <internal:Core, prototype Stringable> public method __toString ] {

      - Parameters [0] {
      }
      - Return [ string ]
    }
  }
}

Смотрите также

  • ReflectionObject::__construct() - Конструктор класса ReflectionObject
  • Конструкторы


Экспортирует класс

  • « ReflectionClass::__construct
  • ReflectionClass::getAttributes »
  • PHP Manual
  • ReflectionClass
  • Экспортирует класс

ReflectionClass::export

(PHP 5, PHP 7)

ReflectionClass::export — Экспортирует класс

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

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::__toString() - Возвращает строковое представление объекта класса ReflectionClass


Получает атрибуты

  • « ReflectionClass::export
  • ReflectionClass::getConstant »
  • PHP Manual
  • ReflectionClass
  • Получает атрибуты

ReflectionClass::getAttributes

(PHP 8)

ReflectionClass::getAttributes — Получает атрибуты

Описание

public ReflectionClass::getAttributes(?string $name = null, int $flags = 0): array

Возвращает все атрибуты, объявленные в этом классе, в виде массива ReflectionAttribute.

Список параметров

name

Фильтрация результатов, чтобы оставить только экземпляры ReflectionAttribute для атрибутов, соответствующих этому имени класса.

flags

Флаги для определения способа фильтрации результатов, если указан параметр name.

По умолчанию значение 0, которое возвращает результаты только для атрибутов, относящихся к классу name.

Единственным доступным вариантом является использование константы ReflectionAttribute::IS_INSTANCEOF, которая вместо этого будет использовать для фильтрации instanceof.

Возвращаемые значения

Массив атрибутов в виде объекта ReflectionAttribute.

Примеры

Пример #1 Простой пример использования

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

#[Fruit]
#[Red]
class Apple {
}

$class = new ReflectionClass('Apple');
$attributes = $class->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fruit
    [1] => Red
)

Пример #2 Фильтрация результатов по имени класса

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

#[Fruit]
#[Red]
class Apple {
}

$class = new ReflectionClass('Apple');
$attributes = $class->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fruit
)

Пример #3 Фильтрация результатов по имени класса с наследованием

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

#[Attribute]
class Red implements Color {
}

#[Fruit]
#[Red]
class Apple {
}

$class = new ReflectionClass('Apple');
$attributes = $class->getAttributes(Color::class, ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Red
)

Смотрите также

  • ReflectionClassConstant::getAttributes() - Получает атрибуты
  • ReflectionFunctionAbstract::getAttributes() - Получает атрибуты
  • ReflectionParameter::getAttributes() - Получает атрибуты
  • ReflectionProperty::getAttributes() - Получает атрибуты


Возвращает определённую константу

  • « ReflectionClass::getAttributes
  • ReflectionClass::getConstants »
  • PHP Manual
  • ReflectionClass
  • Возвращает определённую константу

ReflectionClass::getConstant

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

ReflectionClass::getConstants — Возвращает константы

Описание

public ReflectionClass::getConstants(?int $filter = null): array

Возвращает все определённые в классе константы, независимо от их модификаторов видимости.

Список параметров

filter

Дополнительный фильтр для фильтрации констант видимости. Он настраивается с помощью ReflectionClassConstant constants и по умолчанию используется для всех констант видимости.

Возвращаемые значения

Массив (array) констант. Имя константы - ключ, значение константы - значение.

Список изменений

Версия | Описание
8.0.0 | Добавлен параметр filter.

Смотрите также

  • ReflectionClass::getConstant() - Возвращает определённую константу


Возвращает конструктор класса

  • « ReflectionClass::getConstants
  • ReflectionClass::getDefaultProperties »
  • PHP Manual
  • ReflectionClass
  • Возвращает конструктор класса

ReflectionClass::getConstructor

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getConstructor — Возвращает конструктор класса

Описание

public ReflectionClass::getConstructor(): ?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, PHP 8)

ReflectionClass::getDefaultProperties — Возвращает свойства по умолчанию

Описание

public ReflectionClass::getDefaultProperties(): 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, PHP 8)

ReflectionClass::getDocComment — Возвращает doc-блоки комментариев

Описание

public ReflectionClass::getDocComment(): string|false

Получает 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, PHP 8)

ReflectionClass::getEndLine — Возвращает номер последней строки

Описание

public ReflectionClass::getEndLine(): int|false

Возвращает номер последней строки из определения пользовательского класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Номер последней строки из определения пользовательского класса или 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, PHP 8)

ReflectionClass::getExtension — Возвращает объект класса ReflectionExtension для модуля, определяющего класс

Описание

public ReflectionClass::getExtension(): ?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, PHP 8)

ReflectionClass::getExtensionName — Возвращает имя модуля, определяющее класс

Описание

public ReflectionClass::getExtensionName(): string|false

Возвращает имя модуля, которое определяет класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя модуля, определяющее класс, или 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, PHP 8)

ReflectionClass::getFileName — Возвращает имя файла, в котором определён класс

Описание

public ReflectionClass::getFileName(): string|false

Возвращает имя файла, в котором определён класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла, в котором определён класс. Если класс определён в ядре PHP или в модуле PHP, возвращает false.

Смотрите также

  • ReflectionClass::getExtensionName() - Возвращает имя модуля, определяющее класс


Возвращает имена интерфейсов

  • « ReflectionClass::getFileName
  • ReflectionClass::getInterfaces »
  • PHP Manual
  • ReflectionClass
  • Возвращает имена интерфейсов

ReflectionClass::getInterfaceNames

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionClass::getInterfaceNames — Возвращает имена интерфейсов

Описание

public ReflectionClass::getInterfaceNames(): 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, PHP 8)

ReflectionClass::getInterfaces — Возвращает интерфейсы

Описание

public ReflectionClass::getInterfaces(): 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, PHP 8)

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, PHP 8)

ReflectionClass::getMethods — Возвращает список методов в виде массива

Описание

public ReflectionClass::getMethods(?int $filter = null): array

Возвращает список методов в виде массива.

Список параметров

filter

Фильтрация результата для включения в список только методов с определёнными атрибутами. По умолчанию фильтрации нет.

Комбинация из следующих констант через логическое ИЛИ:
ReflectionMethod::IS_STATIC,
ReflectionMethod::IS_PUBLIC,
ReflectionMethod::IS_PROTECTED,
ReflectionMethod::IS_PRIVATE,
ReflectionMethod::IS_ABSTRACT,
ReflectionMethod::IS_FINAL,
так что все методы с
любым из перечисленных
атрибутов будут возвращены.

Замечание: Обратите внимание, что прочие побитовые операции, к примеру ~ не будут работать так, как ожидается. Другими словами, например, невозможно получить все нестатические методы.

Возвращаемые значения

Массив (array) объектов класса ReflectionMethod, отражающих каждый метод.

Список изменений

Версия | Описание
7.2.0 | filter теперь допускает значение null.

Примеры

Пример #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, PHP 8)

ReflectionClass::getModifiers — Возвращает информацию о модификаторах класса

Описание

public ReflectionClass::getModifiers(): int

Возвращает битовую маску модификаторов для данного метода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает битовую маску из констант модификаторов.

Смотрите также

  • ReflectionClass::getProperties() - Возвращает свойства
  • Reflection::getModifierNames() - Получение имён модификаторов


Возвращает имя класса

  • « ReflectionClass::getModifiers
  • ReflectionClass::getNamespaceName »
  • PHP Manual
  • ReflectionClass
  • Возвращает имя класса

ReflectionClass::getName

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getName — Возвращает имя класса

Описание

public ReflectionClass::getName(): 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, PHP 8)

ReflectionClass::getNamespaceName — Возвращает название пространства имён

Описание

public ReflectionClass::getNamespaceName(): 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, PHP 8)

ReflectionClass::getParentClass — Возвращает родительский класс

Описание

public ReflectionClass::getParentClass(): ReflectionClass|false

Получает родительский класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass, либо false, если родителя нет.

Смотрите также

  • ReflectionClass::__construct() - Создаёт объект класса ReflectionClass


Возвращает свойства

  • « ReflectionClass::getParentClass
  • ReflectionClass::getProperty »
  • PHP Manual
  • ReflectionClass
  • Возвращает свойства

ReflectionClass::getProperties

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getProperties — Возвращает свойства

Описание

public ReflectionClass::getProperties(?int $filter = null): array

Возвращает reflected (отражённые) свойства.

Список параметров

filter

Опциональный фильтр, позволяющий возвращать только желаемые типы свойств. Он настраивается с помощью констант ReflectionProperty, по умолчанию позволяет возвращать свойства всех типов.

Возвращаемые значения

Массив объектов класса ReflectionProperty.

Список изменений

Версия | Описание
7.2.0 | filter теперь допускает значение null.

Примеры

Пример #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, PHP 8)

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, PHP 8)

ReflectionClass::getReflectionConstant — Получает ReflectionClassConstant для константы класса

Описание

public ReflectionClass::getReflectionConstant(string $name): ReflectionClassConstant|false

Получает ReflectionClassConstant для свойства константы.

Список параметров

name

Имя константы класса.

Возвращаемые значения

Объект ReflectionClassConstant или false в случае возникновения ошибки.

Смотрите также

  • ReflectionClass::getReflectionConstants() - Получает константы класса
  • ReflectionClassConstant


Получает константы класса

  • « ReflectionClass::getReflectionConstant
  • ReflectionClass::getShortName »
  • PHP Manual
  • ReflectionClass
  • Получает константы класса

ReflectionClass::getReflectionConstants

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClass::getReflectionConstants — Получает константы класса

Описание

public ReflectionClass::getReflectionConstants(?int $filter = null): array

Получает reflected (отражённые) константы.

Список параметров

filter

Дополнительный фильтр для фильтрации констант видимости. Он настраивается с помощью ReflectionClassConstant constants и по умолчанию используется для всех констант видимости.

Возвращаемые значения

Массив объектов ReflectionClassConstant.

Список изменений

Версия | Описание
8.0.0 | Добавлен параметр filter.

Примеры

Пример #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, PHP 8)

ReflectionClass::getShortName — Возвращает короткое имя

Описание

public ReflectionClass::getShortName(): 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, PHP 8)

ReflectionClass::getStartLine — Возвращает номер начальной строки

Описание

public ReflectionClass::getStartLine(): int|false

Возвращает номер начальной строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Номер начальной строки в виде целого числа (int) или false, если не определён.

Смотрите также

  • ReflectionClass::getEndLine() - Возвращает номер последней строки


Возвращает статические свойства

  • « ReflectionClass::getStartLine
  • ReflectionClass::getStaticPropertyValue »
  • PHP Manual
  • ReflectionClass
  • Возвращает статические свойства

ReflectionClass::getStaticProperties

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getStaticProperties — Возвращает статические свойства

Описание

public ReflectionClass::getStaticProperties(): array

Возвращает статические свойства.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) статических свойств.

Список изменений

Версия | Описание
8.3.0 | Тип возвращаемого значения метода ReflectionClass::getStaticProperties() был изменён на array с ?array.

Смотрите также

  • ReflectionClass::getStaticPropertyValue() - Возвращает значение статического свойства
  • ReflectionClass::setStaticPropertyValue() - Устанавливает значение статического свойства


Возвращает значение статического свойства

  • « ReflectionClass::getStaticProperties
  • ReflectionClass::getTraitAliases »
  • PHP Manual
  • ReflectionClass
  • Возвращает значение статического свойства

ReflectionClass::getStaticPropertyValue

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

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, PHP 8)

ReflectionClass::getTraitAliases — Возвращает массив псевдонимов трейтов

Описание

public ReflectionClass::getTraitAliases(): array

Получает массив псевдонимов методов трейтов, определённых в текущем классе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив, ключами которого являются новые имена методов, а значениями - оригинальные имена методов (в формате "TraitName::original").


Возвращает массив имён трейтов, используемых в этом классе

  • « ReflectionClass::getTraitAliases
  • ReflectionClass::getTraits »
  • PHP Manual
  • ReflectionClass
  • Возвращает массив имён трейтов, используемых в этом классе

ReflectionClass::getTraitNames

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::getTraitNames — Возвращает массив имён трейтов, используемых в этом классе

Описание

public ReflectionClass::getTraitNames(): array

Получает имена трейтов, используемых в этом классе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, значениями которого являются имена трейтов.


Возвращает массив трейтов, используемых в этом классе

  • « ReflectionClass::getTraitNames
  • ReflectionClass::hasConstant »
  • PHP Manual
  • ReflectionClass
  • Возвращает массив трейтов, используемых в этом классе

ReflectionClass::getTraits

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::getTraits — Возвращает массив трейтов, используемых в этом классе

Описание

public ReflectionClass::getTraits(): array

Получает массив трейтов, используемых в этом классе

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив, ключами которого являются имена трейтов, а значениями - объекты ReflectionClass для каждого трейта. В случае возникновения ошибки возвращает null.


Проверяет, определена ли константа

  • « ReflectionClass::getTraits
  • ReflectionClass::hasMethod »
  • PHP Manual
  • ReflectionClass
  • Проверяет, определена ли константа

ReflectionClass::hasConstant

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

ReflectionClass::implementsInterface — Проверяет, реализуется ли интерфейс

Описание

public ReflectionClass::implementsInterface(ReflectionClass|string $interface): bool

Проверяет, реализует ли класс указанный интерфейс или нет.

Список параметров

interface

Имя интерфейса.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

ReflectionClass::implementsInterface() выбрасывает ReflectionException, если interface не является интерфейсом.

Смотрите также

  • ReflectionClass::isInterface() - Проверяет, является ли класс интерфейсом
  • ReflectionClass::isSubclassOf() - Проверяет, является ли класс подклассом
  • interface_exists() - Проверяет, определён ли интерфейс
  • Интерфейсы объектов


Проверяет, определён ли класс в пространстве имён

  • « ReflectionClass::implementsInterface
  • ReflectionClass::isAbstract »
  • PHP Manual
  • ReflectionClass
  • Проверяет, определён ли класс в пространстве имён

ReflectionClass::inNamespace

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionClass::inNamespace — Проверяет, определён ли класс в пространстве имён

Описание

public ReflectionClass::inNamespace(): 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, PHP 8)

ReflectionClass::isAbstract — Проверяет, является ли класс абстрактным

Описание

public ReflectionClass::isAbstract(): 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, PHP 8)

ReflectionClass::isAnonymous — Проверяет, является класс анонимным

Описание

public ReflectionClass::isAnonymous(): 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::isEnum »
  • PHP Manual
  • ReflectionClass
  • Проверяет, можно ли клонировать этот класс

ReflectionClass::isCloneable

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::isCloneable — Проверяет, можно ли клонировать этот класс

Описание

public ReflectionClass::isCloneable(): 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)


Возвращает, является ли класс перечислением

  • « ReflectionClass::isCloneable
  • ReflectionClass::isFinal »
  • PHP Manual
  • ReflectionClass
  • Возвращает, является ли класс перечислением

ReflectionClass::isEnum

(PHP 8 >= 8.1.0)

ReflectionClass::isEnum — Возвращает, является ли класс перечислением

Описание

public ReflectionClass::isEnum(): bool

Проверяет, является ли класс перечислением.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если класс является перечислением, в противном случае возвращает false.


Проверяет, является ли класс окончательным (final)

  • « ReflectionClass::isEnum
  • ReflectionClass::isInstance »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс окончательным (final)

ReflectionClass::isFinal

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isFinal — Проверяет, является ли класс окончательным (final)

Описание

public ReflectionClass::isFinal(): 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, PHP 8)

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, PHP 8)

ReflectionClass::isInstantiable — Проверяет, можно ли создать экземпляр класса

Описание

public ReflectionClass::isInstantiable(): 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, PHP 8)

ReflectionClass::isInterface — Проверяет, является ли класс интерфейсом

Описание

public ReflectionClass::isInterface(): 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, PHP 8)

ReflectionClass::isInternal — Проверяет, является ли класс встроенным в модуль или в ядро

Описание

public ReflectionClass::isInternal(): 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, PHP 8)

ReflectionClass::isIterable — Проверить, является ли класс итерируемым

Описание

public ReflectionClass::isIterable(): 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::isReadOnly »
  • PHP Manual
  • ReflectionClass
  • Псевдоним ReflectionClass::isIterable

ReflectionClass::isIterateable

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isIterateable — Псевдоним ReflectionClass::isIterable()

Описание

Псевдоним ReflectionClass::isIterable()

Начиная с PHP 7.2.0, вместо метода RefectionClass::isIterateable(), , в имя которого закралась синтаксическая ошибка, стоит использовать правильно именованный метод ReflectionClass::isIterable().


Проверяет, является ли класс доступным только для чтения

  • « ReflectionClass::isIterateable
  • ReflectionClass::isSubclassOf »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс доступным только для чтения

ReflectionClass::isReadOnly

(PHP 8 >= 8.2.0)

ReflectionClass::isReadOnly — Проверяет, является ли класс доступным только для чтения

Описание

public ReflectionClass::isReadOnly(): bool

Проверяет, является ли класс доступным только для чтения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод возвращает true, если класс является доступным только для чтения, в противном случае возвращает false.

Примеры

Пример #1 Пример использования ReflectionClass::isReadOnly()

<?php
class TestClass { }
readonly class TestReadOnlyClass { }

$normalClass = new ReflectionClass('TestClass');
$readonlyClass = new ReflectionClass('TestReadOnlyClass');

var_dump($normalClass->isReadOnly());
var_dump($readonlyClass->isReadOnly());

?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • ReflectionClass::isAbstract() - Проверяет, является ли класс абстрактным
  • Классы, доступные только для чтения


Проверяет, является ли класс подклассом

  • « ReflectionClass::isReadOnly
  • ReflectionClass::isTrait »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс подклассом

ReflectionClass::isSubclassOf

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isSubclassOf — Проверяет, является ли класс подклассом

Описание

public ReflectionClass::isSubclassOf(ReflectionClass|string $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, PHP 8)

ReflectionClass::isTrait — Проверяет, является ли это трейтом

Описание

public ReflectionClass::isTrait(): bool

Проверяет, относится ли данный ReflectionClass к трейту.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если это является трейтом, в противном случае false.


Проверяет, является ли класс пользовательским

  • « ReflectionClass::isTrait
  • ReflectionClass::newInstance »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс пользовательским

ReflectionClass::isUserDefined

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isUserDefined — Проверяет, является ли класс пользовательским

Описание

public ReflectionClass::isUserDefined(): bool

Проверяет, является ли класс пользовательским, а не встроенным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • ReflectionClass::isInternal() - Проверяет, является ли класс встроенным в модуль или в ядро


Создаёт экземпляр класса с переданными аргументами

  • « ReflectionClass::isUserDefined
  • ReflectionClass::newInstanceArgs »
  • PHP Manual
  • ReflectionClass
  • Создаёт экземпляр класса с переданными аргументами

ReflectionClass::newInstance

(PHP 5, PHP 7, PHP 8)

ReflectionClass::newInstance — Создаёт экземпляр класса с переданными аргументами

Описание

public ReflectionClass::newInstance(mixed ...$args): object

Создаёт новый экземпляр класса. Принятые аргументы передаются в конструктор класса.

Список параметров

args

Принимает произвольное число аргументов, подобно функции call_user_func(), которые затем передаются в конструктор класса.

Возвращаемые значения

Ошибки

Если конструктор не является общедоступным (public), то это приведёт к выбрасыванию исключения ReflectionException.

Если конструктор отсутствует, а параметр args имеет один и более аргументов, то это приведёт к выбрасыванию исключения ReflectionException.

Смотрите также

  • ReflectionClass::newInstanceArgs() - Создаёт экземпляр класса с переданными параметрами
  • ReflectionClass::newInstanceWithoutConstructor() - Создаёт новый экземпляр класса без вызова конструктора


Создаёт экземпляр класса с переданными параметрами

  • « ReflectionClass::newInstance
  • ReflectionClass::newInstanceWithoutConstructor »
  • PHP Manual
  • ReflectionClass
  • Создаёт экземпляр класса с переданными параметрами

ReflectionClass::newInstanceArgs

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

ReflectionClass::newInstanceArgs — Создаёт экземпляр класса с переданными параметрами

Описание

public ReflectionClass::newInstanceArgs(array $args = []): ?object

Создаёт новый экземпляр класса. Принятые аргументы передаются в конструктор класса.

Список параметров

args

Массив (array) аргументов, который затем передаётся в конструктор класса.

Возвращаемые значения

Возвращает новый экземпляр класса или null в случае возникновения ошибки.

Ошибки

Если конструктор не является public (общедоступным), то это приведёт к генерации исключения ReflectionException.

Если конструктор отсутствует, а параметр args имеет один и более аргументов, то это приведёт к генерации исключения ReflectionException.

Примеры

Пример #1 Пример использования ReflectionClass::newInstanceArgs()

<?php
$class = new ReflectionClass('ReflectionFunction');
$instance = $class->newInstanceArgs(array('substr'));
var_dump($instance);
?>

Результат выполнения данного примера:

object(ReflectionFunction)#2 (1) {
  ["name"]=>
  string(6) "substr"
}

Смотрите также

  • ReflectionClass::newInstance() - Создаёт экземпляр класса с переданными аргументами
  • ReflectionClass::newInstanceWithoutConstructor() - Создаёт новый экземпляр класса без вызова конструктора


Создаёт новый экземпляр класса без вызова конструктора

  • « ReflectionClass::newInstanceArgs
  • ReflectionClass::setStaticPropertyValue »
  • PHP Manual
  • ReflectionClass
  • Создаёт новый экземпляр класса без вызова конструктора

ReflectionClass::newInstanceWithoutConstructor

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::newInstanceWithoutConstructor — Создаёт новый экземпляр класса без вызова конструктора

Описание

public ReflectionClass::newInstanceWithoutConstructor(): object

Создаёт новый экземпляр класса без вызова конструктора.

Список параметров

Возвращаемые значения

Ошибки

Если класс является встроенным, и его экземпляр не может быть создан без вызова конструктора, то это приведёт к генерации исключения ReflectionException. Это исключение ограничено только классами с модификатором final.

Смотрите также

  • ReflectionClass::newInstance() - Создаёт экземпляр класса с переданными аргументами
  • ReflectionClass::newInstanceArgs() - Создаёт экземпляр класса с переданными параметрами


Устанавливает значение статического свойства

  • « ReflectionClass::newInstanceWithoutConstructor
  • ReflectionClass::__toString »
  • PHP Manual
  • ReflectionClass
  • Устанавливает значение статического свойства

ReflectionClass::setStaticPropertyValue

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

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, PHP 8)

ReflectionClass::__toString — Возвращает строковое представление объекта класса ReflectionClass

Описание

public ReflectionClass::__toString(): 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, PHP 8)

Введение

Класс ReflectionClassConstant используется для получения информации о константах класса.

Обзор классов

class ReflectionClassConstant implements Reflector {
/* Константы */
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
public const int IS_FINAL;
/* Свойства */
public string $name;
public string $class;
/* Методы */
public __construct(object|string $class, string $constant)
public static export(mixed $class, string $name, bool $return = ?): string
public getAttributes(?string $name = null, int $flags = 0): array
public getDeclaringClass(): ReflectionClass
public getDocComment(): string|false
public getModifiers(): int
public getName(): string
public getValue(): mixed
public isEnumCase(): bool
public isFinal(): bool
public isPrivate(): bool
public isProtected(): bool
public isPublic(): bool
public __toString(): string
}

Свойства

name

Имя константы класса. Только чтение. В случае попытки изменения выбрасывает исключение ReflectionException.

class

Имя класса, в котором определена константа. Только чтение. В случае попытки изменения выбрасывает исключение ReflectionException.

Предопределённые константы

ReflectionClassConstant Modifiers

ReflectionClassConstant::IS_PUBLIC

Указывает, что константа является общедоступной. До PHP 7.4.0, значение было 256.

ReflectionClassConstant::IS_PROTECTED

Указывает, что константа является защищённой. До PHP 7.4.0, значение было 512.

ReflectionClassConstant::IS_PRIVATE

Указывает, что константа является закрытой. До PHP 7.4.0, значение было 1024.

ReflectionClassConstant::IS_FINAL

Указывает, что константа является окончательной final. Доступно, начиная с PHP 8.1.0.

Замечание:

Значения этих констант могут изменяться от версии к версии PHP. Рекомендуется всегда использовать константы и не полагаться напрямую на значения.

Список изменений

Версия | Описание
8.0.0 | Метод ReflectionClassConstant::export() был удалён.

Содержание

  • ReflectionClassConstant::__construct — Создаёт ReflectionClassConstant
  • ReflectionClassConstant::export — Экспорт
  • ReflectionClassConstant::getAttributes — Получает атрибуты
  • ReflectionClassConstant::getDeclaringClass — Получает объявляющий класс
  • ReflectionClassConstant::getDocComment — Получает doc-комментарии
  • ReflectionClassConstant::getModifiers — Получает модификаторы константы класса
  • ReflectionClassConstant::getName — Получить имя константы
  • ReflectionClassConstant::getValue — Получает значение
  • ReflectionClassConstant::isEnumCase — Проверяет, является ли константа класса вариантом перечисления
  • ReflectionClassConstant::isFinal — Проверяет, является ли константа класса окончательной
  • ReflectionClassConstant::isPrivate — Проверяет, является ли константа закрытой
  • ReflectionClassConstant::isProtected — Проверяет, является ли константа защищённой
  • ReflectionClassConstant::isPublic — Проверяет, является ли константа общедоступной
  • ReflectionClassConstant::__toString — Возвращает строковое представление объекта ReflectionClassConstant


Создаёт ReflectionClassConstant

  • « ReflectionClassConstant
  • ReflectionClassConstant::export »
  • PHP Manual
  • ReflectionClassConstant
  • Создаёт ReflectionClassConstant

ReflectionClassConstant::__construct

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::__construct — Создаёт ReflectionClassConstant

Описание

public ReflectionClassConstant::__construct(object|string $class, string $constant)

Создаёт новый объект ReflectionClassConstant.

Список параметров

class

Строка (string), содержащая имя класса для отражения, либо объект (object).

constant

Имя константы класса.

Ошибки

Выбрасывает Exception в случае, если переданная константа класса не существует.

Смотрите также

  • Конструкторы


Экспорт

  • « ReflectionClassConstant::__construct
  • ReflectionClassConstant::getAttributes »
  • PHP Manual
  • ReflectionClassConstant
  • Экспорт

ReflectionClassConstant::export

(PHP 7 >= 7.1.0)

ReflectionClassConstant::export — Экспорт

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

public static ReflectionClassConstant::export(mixed $class, string $name, bool $return = ?): string

Экспортирует reflection.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

class

Экспортируемый объект Reflection.

name

Имя константы класса.

return

Установка в true вернёт экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в false (по умолчанию) сделает противоположное.

Возвращаемые значения

Смотрите также

  • ReflectionClassConstant::__toString() - Возвращает строковое представление объекта ReflectionClassConstant


Получает атрибуты

  • « ReflectionClassConstant::export
  • ReflectionClassConstant::getDeclaringClass »
  • PHP Manual
  • ReflectionClassConstant
  • Получает атрибуты

ReflectionClassConstant::getAttributes

(PHP 8)

ReflectionClassConstant::getAttributes — Получает атрибуты

Описание

public ReflectionClassConstant::getAttributes(?string $name = null, int $flags = 0): array

Возвращает все атрибуты, объявленные в этой константе класса, в виде массива ReflectionAttribute.

Список параметров

name

Фильтрация результатов, чтобы оставить только экземпляры ReflectionAttribute для атрибутов, соответствующих этому имени класса.

flags

Флаги для определения способа фильтрации результатов, если указан параметр name.

По умолчанию значение 0, которое возвращает результаты только для атрибутов, относящихся к классу name.

Единственным доступным вариантом является использование константы ReflectionAttribute::IS_INSTANCEOF, которая вместо этого будет использовать для фильтрации instanceof.

Возвращаемые значения

Массив атрибутов в виде объекта ReflectionAttribute.

Примеры

Пример #1 Простой пример

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}

$classConstant = new ReflectionClassConstant('Basket', 'APPLE');
$attributes = $classConstant->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fruit
    [1] => Red
)

Пример #2 Фильтрация результатов по имени класса

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}

$classConstant = new ReflectionClassConstant('Basket', 'APPLE');
$attributes = $classConstant->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fruit
)

Пример #3 Фильтрация результатов по имени класса, с наследованием

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

#[Attribute]
class Red implements Color {
}

class Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}

$classConstant = new ReflectionClassConstant('Basket', 'APPLE');
$attributes = $classConstant->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Red
)

Смотрите также

  • ReflectionClass::getAttributes() - Получает атрибуты
  • ReflectionFunctionAbstract::getAttributes() - Получает атрибуты
  • ReflectionParameter::getAttributes() - Получает атрибуты
  • ReflectionProperty::getAttributes() - Получает атрибуты


Получает объявляющий класс

  • « ReflectionClassConstant::getAttributes
  • ReflectionClassConstant::getDocComment »
  • PHP Manual
  • ReflectionClassConstant
  • Получает объявляющий класс

ReflectionClassConstant::getDeclaringClass

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getDeclaringClass — Получает объявляющий класс

Описание

public ReflectionClassConstant::getDeclaringClass(): ReflectionClass

Получает объявляющий класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект ReflectionClass.


Получает doc-комментарии

  • « ReflectionClassConstant::getDeclaringClass
  • ReflectionClassConstant::getModifiers »
  • PHP Manual
  • ReflectionClassConstant
  • Получает doc-комментарии

ReflectionClassConstant::getDocComment

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getDocComment — Получает doc-комментарии

Описание

public ReflectionClassConstant::getDocComment(): string|false

Получает doc-комментарии из константы класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Doc-комментарий, если он есть, false в противном случае


Получает модификаторы константы класса

  • « ReflectionClassConstant::getDocComment
  • ReflectionClassConstant::getName »
  • PHP Manual
  • ReflectionClassConstant
  • Получает модификаторы константы класса

ReflectionClassConstant::getModifiers

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getModifiers — Получает модификаторы константы класса

Описание

public ReflectionClassConstant::getModifiers(): int

Возвращает битовое поле модификаторов доступа для данной константы класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовое представление модификаторов. Фактические значения этих модификаторов описаны в предопределённых константах.

Смотрите также

  • Reflection::getModifierNames() - Получение имён модификаторов


Получить имя константы

  • « ReflectionClassConstant::getModifiers
  • ReflectionClassConstant::getValue »
  • PHP Manual
  • ReflectionClassConstant
  • Получить имя константы

ReflectionClassConstant::getName

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getName — Получить имя константы

Описание

public ReflectionClassConstant::getName(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя константы.

Список изменений

Версия | Описание
8.1.0 | Выбрасывает ошибку Error в случае, если свойство name не было инициализировано. Ранее, в случае возникновения ошибки, метод возвращал false.


Получает значение

  • « ReflectionClassConstant::getName
  • ReflectionClassConstant::isEnumCase »
  • PHP Manual
  • ReflectionClassConstant
  • Получает значение

ReflectionClassConstant::getValue

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getValue — Получает значение

Описание

public ReflectionClassConstant::getValue(): mixed

Получает значение константы класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение константы класса.


Проверяет, является ли константа класса вариантом перечисления

  • « ReflectionClassConstant::getValue
  • ReflectionClassConstant::isFinal »
  • PHP Manual
  • ReflectionClassConstant
  • Проверяет, является ли константа класса вариантом перечисления

ReflectionClassConstant::isEnumCase

(PHP 8 >= 8.1.0)

ReflectionClassConstant::isEnumCase — Проверяет, является ли константа класса вариантом перечисления

Описание

public ReflectionClassConstant::isEnumCase(): bool

Проверяет, является ли константа класса вариантом перечисления.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод возвращает true, если константа класса является вариантом перечисления, в противном случае возвращает false.

Примеры

Пример #1 Пример использования ReflectionClassConstant::isEnumCase()

Определение варианта перечисления и обычной константы класса.

<?php
enum Status
{
const BORING_CONSTANT = 'test';
const ENUM_VALUE = Status::PUBLISHED;

case DRAFT;
case PUBLISHED;
case ARCHIVED;
}

$reflection = new ReflectionEnum(Status::class);
foreach ($reflection->getReflectionConstants() as $constant) {
echo "{$constant->name} - это ",
$constant->isEnumCase() ? "вариант переключения" : "обычная константа класса",
PHP_EOL;
}
?>

Результат выполнения данного примера:

BORING_CONSTANT - это обычная константа класса
ENUM_VALUE - это обычная константа класса
DRAFT - это вариант переключения
PUBLISHED - это вариант переключения
ARCHIVED - это вариант переключения

Смотрите также

  • ReflectionEnum


Проверяет, является ли константа класса окончательной

  • « ReflectionClassConstant::isEnumCase
  • ReflectionClassConstant::isPrivate »
  • PHP Manual
  • ReflectionClassConstant
  • Проверяет, является ли константа класса окончательной

ReflectionClassConstant::isFinal

(PHP 8 >= 8.1.0)

ReflectionClassConstant::isFinal — Проверяет, является ли константа класса окончательной

Описание

public ReflectionClassConstant::isFinal(): bool

Проверяет, является ли константа класса окончательной (final).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если константа класса является окончательной, в противном случае возвращает false.

Смотрите также

  • ReflectionClassConstant::isPublic() - Проверяет, является ли константа общедоступной
  • ReflectionClassConstant::isPrivate() - Проверяет, является ли константа закрытой
  • ReflectionClassConstant::isProtected() - Проверяет, является ли константа защищённой


Проверяет, является ли константа закрытой

  • « ReflectionClassConstant::isFinal
  • ReflectionClassConstant::isProtected »
  • PHP Manual
  • ReflectionClassConstant
  • Проверяет, является ли константа закрытой

ReflectionClassConstant::isPrivate

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::isPrivate — Проверяет, является ли константа закрытой

Описание

public ReflectionClassConstant::isPrivate(): bool

Проверяет, является ли константа закрытой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если константа класса является закрытой, false в противном случае

Смотрите также

  • ReflectionClassConstant::isFinal() - Проверяет, является ли константа класса окончательной
  • ReflectionClassConstant::isPublic() - Проверяет, является ли константа общедоступной
  • ReflectionClassConstant::isProtected() - Проверяет, является ли константа защищённой


Проверяет, является ли константа защищённой

  • « ReflectionClassConstant::isPrivate
  • ReflectionClassConstant::isPublic »
  • PHP Manual
  • ReflectionClassConstant
  • Проверяет, является ли константа защищённой

ReflectionClassConstant::isProtected

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::isProtected — Проверяет, является ли константа защищённой

Описание

public ReflectionClassConstant::isProtected(): bool

Проверяет, является ли константа защищённой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если константа класса является защищённой, false в противном случае

Смотрите также

  • ReflectionClassConstant::isFinal() - Проверяет, является ли константа класса окончательной
  • ReflectionClassConstant::isPublic() - Проверяет, является ли константа общедоступной
  • ReflectionClassConstant::isPrivate() - Проверяет, является ли константа закрытой


Проверяет, является ли константа общедоступной

  • « ReflectionClassConstant::isProtected
  • ReflectionClassConstant::__toString »
  • PHP Manual
  • ReflectionClassConstant
  • Проверяет, является ли константа общедоступной

ReflectionClassConstant::isPublic

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::isPublic — Проверяет, является ли константа общедоступной

Описание

public ReflectionClassConstant::isPublic(): bool

Проверяет, является ли константа общедоступной.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если константа класса является общедоступной, false в противном случае

Смотрите также

  • ReflectionClassConstant::isFinal() - Проверяет, является ли константа класса окончательной
  • ReflectionClassConstant::isPrivate() - Проверяет, является ли константа закрытой
  • ReflectionClassConstant::isProtected() - Проверяет, является ли константа защищённой


Возвращает строковое представление объекта ReflectionClassConstant

  • « ReflectionClassConstant::isPublic
  • ReflectionEnum »
  • PHP Manual
  • ReflectionClassConstant
  • Возвращает строковое представление объекта ReflectionClassConstant

ReflectionClassConstant::__toString

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::__toString — Возвращает строковое представление объекта ReflectionClassConstant

Описание

public ReflectionClassConstant::__toString(): string

Возвращает строковое представление объекта ReflectionClassConstant.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое представление данного экземпляра ReflectionClassConstant.

Смотрите также

  • ReflectionClassConstant::export() - Экспорт
  • __toString()


Класс ReflectionEnum

(PHP 8 >= 8.1.0)

Введение

Класс ReflectionEnum сообщает информацию о перечислении.

Обзор классов

class ReflectionEnum extends ReflectionClass {
/* Наследуемые константы */
public const int ReflectionClass::IS_IMPLICIT_ABSTRACT;
public const int ReflectionClass::IS_EXPLICIT_ABSTRACT;
public const int ReflectionClass::IS_FINAL;
public const int ReflectionClass::IS_READONLY;
/* Наследуемые свойства */
public string $name;
/* Методы */
public __construct(object|string $objectOrClass)
public getBackingType(): ?ReflectionNamedType
public getCase(string $name): ReflectionEnumUnitCase
public getCases(): array
public hasCase(string $name): bool
public isBacked(): bool
/* Наследуемые методы */
public static ReflectionClass::export(mixed $argument, bool $return = false): string
public ReflectionClass::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionClass::getConstant(string $name): mixed
public ReflectionClass::getConstants(?int $filter = null): array
public ReflectionClass::getConstructor(): ?ReflectionMethod
public ReflectionClass::getDefaultProperties(): array
public ReflectionClass::getDocComment(): string|false
public ReflectionClass::getEndLine(): int|false
public ReflectionClass::getExtension(): ?ReflectionExtension
public ReflectionClass::getExtensionName(): string|false
public ReflectionClass::getFileName(): string|false
public ReflectionClass::getInterfaceNames(): array
public ReflectionClass::getInterfaces(): array
public ReflectionClass::getMethod(string $name): ReflectionMethod
public ReflectionClass::getMethods(?int $filter = null): array
public ReflectionClass::getModifiers(): int
public ReflectionClass::getName(): string
public ReflectionClass::getNamespaceName(): string
public ReflectionClass::getParentClass(): ReflectionClass|false
public ReflectionClass::getProperties(?int $filter = null): array
public ReflectionClass::getProperty(string $name): ReflectionProperty
public ReflectionClass::getReflectionConstant(string $name): ReflectionClassConstant|false
public ReflectionClass::getReflectionConstants(?int $filter = null): array
public ReflectionClass::getShortName(): string
public ReflectionClass::getStartLine(): int|false
public ReflectionClass::getStaticProperties(): array
public ReflectionClass::getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed
public ReflectionClass::getTraitAliases(): array
public ReflectionClass::getTraitNames(): array
public ReflectionClass::getTraits(): array
public ReflectionClass::hasConstant(string $name): bool
public ReflectionClass::hasMethod(string $name): bool
public ReflectionClass::hasProperty(string $name): bool
public ReflectionClass::implementsInterface(ReflectionClass|string $interface): bool
public ReflectionClass::inNamespace(): bool
public ReflectionClass::isAbstract(): bool
public ReflectionClass::isAnonymous(): bool
public ReflectionClass::isCloneable(): bool
public ReflectionClass::isEnum(): bool
public ReflectionClass::isFinal(): bool
public ReflectionClass::isInstance(object $object): bool
public ReflectionClass::isInstantiable(): bool
public ReflectionClass::isInterface(): bool
public ReflectionClass::isInternal(): bool
public ReflectionClass::isIterable(): bool
public ReflectionClass::isReadOnly(): bool
public ReflectionClass::isSubclassOf(ReflectionClass|string $class): bool
public ReflectionClass::isTrait(): bool
public ReflectionClass::isUserDefined(): bool
public ReflectionClass::newInstance(mixed ...$args): object
public ReflectionClass::newInstanceArgs(array $args = []): ?object
public ReflectionClass::newInstanceWithoutConstructor(): object
public ReflectionClass::setStaticPropertyValue(string $name, mixed $value): void
public ReflectionClass::__toString(): string
}

Смотрите также

  • Перечисления

Содержание

  • ReflectionEnum::__construct — Создаёт объект ReflectionEnum
  • ReflectionEnum::getBackingType — Получает тип перечисления, если есть
  • ReflectionEnum::getCase — Возвращает определённый вариант перечисления
  • ReflectionEnum::getCases — Возвращает список всех вариантов перечисления
  • ReflectionEnum::hasCase — Проверяет вариант перечисления
  • ReflectionEnum::isBacked — Определяет, является ли перечисление типизированным


Создаёт объект ReflectionEnum

  • « ReflectionEnum
  • ReflectionEnum::getBackingType »
  • PHP Manual
  • ReflectionEnum
  • Создаёт объект ReflectionEnum

ReflectionEnum::__construct

(PHP 8 >= 8.1.0)

ReflectionEnum::__construct — Создаёт объект ReflectionEnum

Описание

public ReflectionEnum::__construct(object|string $objectOrClass)

Список параметров

objectOrClass

Экземпляр перечисления или имя.


Получает тип перечисления, если есть

  • « ReflectionEnum::__construct
  • ReflectionEnum::getCase »
  • PHP Manual
  • ReflectionEnum
  • Получает тип перечисления, если есть

ReflectionEnum::getBackingType

(PHP 8 >= 8.1.0)

ReflectionEnum::getBackingType — Получает тип перечисления, если есть

Описание

public ReflectionEnum::getBackingType(): ?ReflectionNamedType

Если перечисление является типизированным, этот метод вернёт экземпляр ReflectionType типа перечисления. Если это не типизированное перечисление, метод вернёт null.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр ReflectionNamedType или null, если перечисление не типизированное.

Список изменений

Версия | Описание
8.2.0 | Тип возвращаемого значения теперь ?ReflectionNamedType; ранее тип возвращаемого значения был ?ReflectionType.

Примеры

Пример #1 Пример использования ReflectionEnum::getBackingType()

<?php
enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

$rEnum = new ReflectionEnum(Suit::class);

$rBackingType = $rEnum->getBackingType();

var_dump((string)$rBackingType);
?>

Результат выполнения данного примера:

string(6) "string"

Смотрите также

  • Перечисления
  • ReflectionEnum::isBacked() - Определяет, является ли перечисление типизированным


Возвращает определённый вариант перечисления

  • « ReflectionEnum::getBackingType
  • ReflectionEnum::getCases »
  • PHP Manual
  • ReflectionEnum
  • Возвращает определённый вариант перечисления

ReflectionEnum::getCase

(PHP 8 >= 8.1.0)

ReflectionEnum::getCase — Возвращает определённый вариант перечисления

Описание

public ReflectionEnum::getCase(string $name): ReflectionEnumUnitCase

Возвращает Reflection-объект для определённого варианта перечисления по имени. Если запрошенный вариант не определён, выбрасывается ReflectionException.

Список параметров

name

Название варианта, который нужно получить.

Возвращаемые значения

Экземпляр ReflectionEnumUnitCase или ReflectionEnumBackedCase в зависимости от ситуации.

Примеры

Пример #1 Пример использования ReflectionEnum::getCase()

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$rEnum = new ReflectionEnum(Suit::class);

$rCase = $rEnum->getCase('Clubs');

var_dump($rCase->getValue());
?>

Результат выполнения данного примера:

enum(Suit::Clubs)

Смотрите также

  • Перечисления
  • ReflectionEnum::getCases() - Возвращает список всех вариантов перечисления
  • ReflectionEnum::hasCase() - Проверяет вариант перечисления
  • ReflectionEnum::isBacked() - Определяет, является ли перечисление типизированным


Возвращает список всех вариантов перечисления

  • « ReflectionEnum::getCase
  • ReflectionEnum::hasCase »
  • PHP Manual
  • ReflectionEnum
  • Возвращает список всех вариантов перечисления

ReflectionEnum::getCases

(PHP 8 >= 8.1.0)

ReflectionEnum::getCases — Возвращает список всех вариантов перечисления

Описание

public ReflectionEnum::getCases(): array

Перечисление может содержать ноль или более вариантов. Этот метод извлекает все определённые случаи в лексическом порядке (то есть в порядке, в котором они появляются в исходном коде).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив Reflection-объектов перечисления, по одному для каждого варианта перечисления. Для простых перечислений все они будут экземплярами ReflectionEnumUnitCase. Для типизированных перечислений все они будут экземплярами ReflectionEnumBackedCase.

Примеры

Пример #1 Пример использования ReflectionEnum::getCases()

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$rEnum = new ReflectionEnum(Suit::class);

$cases = $rEnum->getCases();

foreach ($cases as $rCase) {
var_dump($rCase->getValue());
}
?>

Результат выполнения данного примера:

enum(Suit::Hearts)
enum(Suit::Diamonds)
enum(Suit::Clubs)
enum(Suit::Spades)

Смотрите также

  • Перечисления
  • ReflectionEnum::getCase() - Возвращает определённый вариант перечисления
  • ReflectionEnum::isBacked() - Определяет, является ли перечисление типизированным


Проверяет вариант перечисления

  • « ReflectionEnum::getCases
  • ReflectionEnum::isBacked »
  • PHP Manual
  • ReflectionEnum
  • Проверяет вариант перечисления

ReflectionEnum::hasCase

(PHP 8 >= 8.1.0)

ReflectionEnum::hasCase — Проверяет вариант перечисления

Описание

public ReflectionEnum::hasCase(string $name): bool

Возвращает, определён ли данный вариант перечисления.

Список параметров

name

Вариант перечисления для проверки.

Возвращаемые значения

Возвращает true, если вариант определён, в противном случае возвращает false.

Примеры

Пример #1 Пример использования ReflectionEnum::hasCase()

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$rEnum = new ReflectionEnum(Suit::class);

var_dump($rEnum->hasCase('Hearts'));
var_dump($rEnum->hasCase('Horseshoes'));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • Перечисления
  • ReflectionEnum::getCase() - Возвращает определённый вариант перечисления
  • ReflectionEnum::getCases() - Возвращает список всех вариантов перечисления


Определяет, является ли перечисление типизированным

  • « ReflectionEnum::hasCase
  • ReflectionEnumUnitCase »
  • PHP Manual
  • ReflectionEnum
  • Определяет, является ли перечисление типизированным

ReflectionEnum::isBacked

(PHP 8 >= 8.1.0)

ReflectionEnum::isBacked — Определяет, является ли перечисление типизированным

Описание

public ReflectionEnum::isBacked(): bool

Типизированное перечисление - имеет собственный скалярный эквивалент, либо строку (string), либо целое число (int). Не все перечисления являются типизированными.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если перечисление является типизированным, в противном случае возвращает false.

Примеры

Пример #1 Пример использования ReflectionEnum::isBacked()

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

enum BackedSuit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

var_dump((new ReflectionEnum(Suit::class))->isBacked());
var_dump((new ReflectionEnum(BackedSuit::class))->isBacked());
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • Перечисления
  • ReflectionEnum::getBackingType() - Получает тип перечисления, если есть


Класс ReflectionEnumUnitCase

(PHP 8 >= 8.1.0)

Введение

Класс ReflectionEnumUnitCase сообщает информацию о варианте перечисления, который не имеет скалярного эквивалента.

Обзор классов

class ReflectionEnumUnitCase extends ReflectionClassConstant {
/* Наследуемые константы */
public const int ReflectionClassConstant::IS_PUBLIC;
public const int ReflectionClassConstant::IS_PROTECTED;
public const int ReflectionClassConstant::IS_PRIVATE;
public const int ReflectionClassConstant::IS_FINAL;
/* Наследуемые свойства */
public string $name;
public string $class;
/* Методы */
public __construct(object|string $class, string $constant)
public getEnum(): ReflectionEnum
public getValue(): UnitEnum
/* Наследуемые методы */
public static ReflectionClassConstant::export(mixed $class, string $name, bool $return = ?): string
public ReflectionClassConstant::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionClassConstant::getDeclaringClass(): ReflectionClass
public ReflectionClassConstant::getDocComment(): string|false
public ReflectionClassConstant::getModifiers(): int
public ReflectionClassConstant::getName(): string
public ReflectionClassConstant::getValue(): mixed
public ReflectionClassConstant::isEnumCase(): bool
public ReflectionClassConstant::isFinal(): bool
public ReflectionClassConstant::isPrivate(): bool
public ReflectionClassConstant::isProtected(): bool
public ReflectionClassConstant::isPublic(): bool
public ReflectionClassConstant::__toString(): string
}

Смотрите также

  • Перечисления
  • ReflectionEnumBackedCase

Содержание

  • ReflectionEnumUnitCase::__construct — Создаёт экземпляр объекта ReflectionEnumUnitCase
  • ReflectionEnumUnitCase::getEnum — Получает Reflection-объект перечисления этого варианта
  • ReflectionEnumUnitCase::getValue — Получает объект варианта перечисления, описанный Reflection-объектом


Создаёт экземпляр объекта ReflectionEnumUnitCase

  • « ReflectionEnumUnitCase
  • ReflectionEnumUnitCase::getEnum »
  • PHP Manual
  • ReflectionEnumUnitCase
  • Создаёт экземпляр объекта ReflectionEnumUnitCase

ReflectionEnumUnitCase::__construct

(PHP 8 >= 8.1.0)

ReflectionEnumUnitCase::__construct — Создаёт экземпляр объекта ReflectionEnumUnitCase

Описание

public ReflectionEnumUnitCase::__construct(object|string $class, string $constant)

Список параметров

class

Экземпляр перечисления или имя.

constant

Имя константы перечисления.


Получает Reflection-объект перечисления этого варианта

  • « ReflectionEnumUnitCase::__construct
  • ReflectionEnumUnitCase::getValue »
  • PHP Manual
  • ReflectionEnumUnitCase
  • Получает Reflection-объект перечисления этого варианта

ReflectionEnumUnitCase::getEnum

(PHP 8 >= 8.1.0)

ReflectionEnumUnitCase::getEnum — Получает Reflection-объект перечисления этого варианта

Описание

public ReflectionEnumUnitCase::getEnum(): ReflectionEnum

Получает Reflection-объект перечисления этого варианта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр ReflectionEnum, описывающий перечисление, которому принадлежит этот вариант.

Смотрите также

  • Перечисления


Получает объект варианта перечисления, описанный Reflection-объектом

  • « ReflectionEnumUnitCase::getEnum
  • ReflectionEnumBackedCase »
  • PHP Manual
  • ReflectionEnumUnitCase
  • Получает объект варианта перечисления, описанный Reflection-объектом

ReflectionEnumUnitCase::getValue

(PHP 8 >= 8.1.0)

ReflectionEnumUnitCase::getValue — Получает объект варианта перечисления, описанный Reflection-объектом

Описание

public ReflectionEnumUnitCase::getValue(): UnitEnum

Возвращает объект варианта перечисления, описанный Reflection-объектом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект варианта перечисления, описанный Reflection-объектом.

Примеры

Пример #1 Пример использования ReflectionEnum::getValue()

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$rEnum = new ReflectionEnum(Suit::class);

$rCase = $rEnum->getCase('Diamonds');

var_dump($rCase->getValue());
?>

Результат выполнения данного примера:

enum(Suit::Diamonds)

Смотрите также

  • Перечисления


Класс ReflectionEnumBackedCase

(PHP 8 >= 8.1.0)

Введение

Класс ReflectionEnumBackedCase сообщает информацию о варианте типизированного перечисления, у которого есть скалярный эквивалент.

Обзор классов

class ReflectionEnumBackedCase extends ReflectionEnumUnitCase {
/* Наследуемые константы */
public const int ReflectionClassConstant::IS_PUBLIC;
public const int ReflectionClassConstant::IS_PROTECTED;
public const int ReflectionClassConstant::IS_PRIVATE;
public const int ReflectionClassConstant::IS_FINAL;
/* Наследуемые свойства */
public string $name;
public string $class;
/* Методы */
public __construct(object|string $class, string $constant)
public getBackingValue(): int|string
/* Наследуемые методы */
public ReflectionEnumUnitCase::getEnum(): ReflectionEnum
public ReflectionEnumUnitCase::getValue(): UnitEnum
public static ReflectionClassConstant::export(mixed $class, string $name, bool $return = ?): string
public ReflectionClassConstant::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionClassConstant::getDeclaringClass(): ReflectionClass
public ReflectionClassConstant::getDocComment(): string|false
public ReflectionClassConstant::getModifiers(): int
public ReflectionClassConstant::getName(): string
public ReflectionClassConstant::getValue(): mixed
public ReflectionClassConstant::isEnumCase(): bool
public ReflectionClassConstant::isFinal(): bool
public ReflectionClassConstant::isPrivate(): bool
public ReflectionClassConstant::isProtected(): bool
public ReflectionClassConstant::isPublic(): bool
public ReflectionClassConstant::__toString(): string
}

Смотрите также

  • Перечисления
  • ReflectionEnumUnitCase

Содержание

  • ReflectionEnumBackedCase::__construct — Создаёт объект ReflectionEnumBackedCase
  • ReflectionEnumBackedCase::getBackingValue — Получает скалярное значение варианта перечисления


Создаёт объект ReflectionEnumBackedCase

  • « ReflectionEnumBackedCase
  • ReflectionEnumBackedCase::getBackingValue »
  • PHP Manual
  • ReflectionEnumBackedCase
  • Создаёт объект ReflectionEnumBackedCase

ReflectionEnumBackedCase::__construct

(PHP 8 >= 8.1.0)

ReflectionEnumBackedCase::__construct — Создаёт объект ReflectionEnumBackedCase

Описание

public ReflectionEnumBackedCase::__construct(object|string $class, string $constant)

Список параметров

class

Экземпляр перечисления или имя.

constant

Имя константы перечисления.


Получает скалярное значение варианта перечисления

  • « ReflectionEnumBackedCase::__construct
  • ReflectionZendExtension »
  • PHP Manual
  • ReflectionEnumBackedCase
  • Получает скалярное значение варианта перечисления

ReflectionEnumBackedCase::getBackingValue

(PHP 8 >= 8.1.0)

ReflectionEnumBackedCase::getBackingValue — Получает скалярное значение варианта перечисления

Описание

public ReflectionEnumBackedCase::getBackingValue(): int|string

Получает скалярное значение варианта перечисления.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Скалярное значение варианта перечисления.

Примеры

Пример #1 Пример использования ReflectionEnum::getBackingValue()

<?php
enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

$rEnum = new ReflectionEnum(Suit::class);

$rCase = $rEnum->getCase('Spades');

var_dump($rCase->getBackingValue());
?>

Результат выполнения данного примера:

string(1) "S"

Смотрите также

  • Перечисления


Класс ReflectionZendExtension

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Введение

Обзор классов

class ReflectionZendExtension implements Reflector {
/* Свойства */
public string $name;
/* Методы */
public __construct(string $name)
private __clone(): void
public static export(string $name, bool $return = ?): string
public getAuthor(): string
public getCopyright(): string
public getName(): string
public getURL(): string
public getVersion(): string
public __toString(): string
}

Свойства

name

Имя модуля. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Список изменений

Версия | Описание
8.0.0 | Метод ReflectionZendExtension::export() был удалён.

Содержание

  • ReflectionZendExtension::__clone — Обработчик клонирования
  • ReflectionZendExtension::__construct — Создаёт объект ReflectionZendExtension
  • 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, PHP 8)

ReflectionZendExtension::__clone — Обработчик клонирования

Описание

private ReflectionZendExtension::__clone(): void

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Список изменений

Версия | Описание
8.1.0 | Метод больше не является окончательным (final).


Создаёт объект ReflectionZendExtension

  • « ReflectionZendExtension::__clone
  • ReflectionZendExtension::export »
  • PHP Manual
  • ReflectionZendExtension
  • Создаёт объект ReflectionZendExtension

ReflectionZendExtension::__construct

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::__construct — Создаёт объект ReflectionZendExtension

Описание

public ReflectionZendExtension::__construct(string $name)

Создаёт объект ReflectionZendExtension.

Список параметров

name

Имя модуля.

Ошибки

Выбрасывает исключение ReflectionException, если указанный модуль не существует.


Экспорт

  • « ReflectionZendExtension::__construct
  • ReflectionZendExtension::getAuthor »
  • PHP Manual
  • ReflectionZendExtension
  • Экспорт

ReflectionZendExtension::export

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::export — Экспорт

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

public static ReflectionZendExtension::export(string $name, bool $return = ?): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

return

Возвращаемые значения

Смотрите также

  • ReflectionClassConstant::__toString() - Возвращает строковое представление объекта ReflectionClassConstant


Получает автора

  • « ReflectionZendExtension::export
  • ReflectionZendExtension::getCopyright »
  • PHP Manual
  • ReflectionZendExtension
  • Получает автора

ReflectionZendExtension::getAuthor

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getAuthor — Получает автора

Описание

public ReflectionZendExtension::getAuthor(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает авторские права

  • « ReflectionZendExtension::getAuthor
  • ReflectionZendExtension::getName »
  • PHP Manual
  • ReflectionZendExtension
  • Получает авторские права

ReflectionZendExtension::getCopyright

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getCopyright — Получает авторские права

Описание

public ReflectionZendExtension::getCopyright(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает имя

  • « ReflectionZendExtension::getCopyright
  • ReflectionZendExtension::getURL »
  • PHP Manual
  • ReflectionZendExtension
  • Получает имя

ReflectionZendExtension::getName

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getName — Получает имя

Описание

public ReflectionZendExtension::getName(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает URL

  • « ReflectionZendExtension::getName
  • ReflectionZendExtension::getVersion »
  • PHP Manual
  • ReflectionZendExtension
  • Получает URL

ReflectionZendExtension::getURL

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getURL — Получает URL

Описание

public ReflectionZendExtension::getURL(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получает версию

  • « ReflectionZendExtension::getURL
  • ReflectionZendExtension::__toString »
  • PHP Manual
  • ReflectionZendExtension
  • Получает версию

ReflectionZendExtension::getVersion

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getVersion — Получает версию

Описание

public ReflectionZendExtension::getVersion(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Обработчик преобразования в строку

  • « ReflectionZendExtension::getVersion
  • ReflectionExtension »
  • PHP Manual
  • ReflectionZendExtension
  • Обработчик преобразования в строку

ReflectionZendExtension::__toString

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::__toString — Обработчик преобразования в строку

Описание

public ReflectionZendExtension::__toString(): string

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс ReflectionExtension

(PHP 5, PHP 7, PHP 8)

Введение

Класс ReflectionExtension сообщает информацию о модулях.

Обзор классов

class ReflectionExtension implements Reflector {
/* Свойства */
public string $name;
/* Методы */
public __construct(string $name)
private __clone(): void
public static export(string $name, string $return = false): string
public getClasses(): array
public getClassNames(): array
public getConstants(): array
public getDependencies(): array
public getFunctions(): array
public getINIEntries(): array
public getName(): string
public getVersion(): ?string
public info(): void
public isPersistent(): bool
public isTemporary(): bool
public __toString(): string
}

Свойства

name

Имя модуля. Значение свойства совпадает с тем, что возвращает метод ReflectionExtension::getName()

Список изменений

Версия | Описание
8.0.0 | Метод ReflectionExtension::export() был удалён.

Содержание

  • 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, PHP 8)

ReflectionExtension::__clone — Клонирует объект

Описание

private ReflectionExtension::__clone(): void

Метод clone предотвращает клонирование объекта. Объекты reflection не могут быть клонированы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод ничего не возвращает, в случае вызова возникает фатальная ошибка.

Список изменений

Версия | Описание
8.1.0 | Метод больше не является окончательным (final).

Смотрите также

  • ReflectionExtension::__construct() - Создаёт объект класса ReflectionExtension
  • Клонирование объектов


Создаёт объект класса ReflectionExtension

  • « ReflectionExtension::__clone
  • ReflectionExtension::export »
  • PHP Manual
  • ReflectionExtension
  • Создаёт объект класса ReflectionExtension

ReflectionExtension::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::__construct — Создаёт объект класса ReflectionExtension

Описание

public ReflectionExtension::__construct(string $name)

Создаёт объект (object) класса ReflectionExtension.

Список параметров

name

Имя модуля.

Ошибки

Выбрасывает исключение ReflectionException, если модуль не существует.

Примеры

Пример #1 Пример использования ReflectionExtension

<?php
$ext = new ReflectionExtension('Reflection');

printf('Модуль: %s (версия: %s)', $ext->getName(), $ext->getVersion());
?>

Результатом выполнения данного примера будет что-то подобное:

Модуль: Reflection (версия: $Revision$)

Смотрите также

  • ReflectionExtension::info() - Вывод информации о модуле
  • Конструкторы


Экспортирует модуль

  • « ReflectionExtension::__construct
  • ReflectionExtension::getClasses »
  • PHP Manual
  • ReflectionExtension
  • Экспортирует модуль

ReflectionExtension::export

(PHP 5, PHP 7)

ReflectionExtension::export — Экспортирует модуль

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

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::__toString() - Преобразование в строку


Возвращает классы

  • « ReflectionExtension::export
  • ReflectionExtension::getClassNames »
  • PHP Manual
  • ReflectionExtension
  • Возвращает классы

ReflectionExtension::getClasses

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::getClasses — Возвращает классы

Описание

public ReflectionExtension::getClasses(): 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, PHP 8)

ReflectionExtension::getClassNames — Получение имён классов

Описание

public ReflectionExtension::getClassNames(): 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, PHP 8)

ReflectionExtension::getConstants — Получение констант

Описание

public ReflectionExtension::getConstants(): 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, PHP 8)

ReflectionExtension::getDependencies — Получение зависимостей

Описание

public ReflectionExtension::getDependencies(): 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, PHP 8)

ReflectionExtension::getFunctions — Получение функций модуля

Описание

public ReflectionExtension::getFunctions(): 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, PHP 8)

ReflectionExtension::getINIEntries — Получение ini-настроек модуля

Описание

public ReflectionExtension::getINIEntries(): 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, PHP 8)

ReflectionExtension::getName — Получение имени модуля

Описание

public ReflectionExtension::getName(): 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, PHP 8)

ReflectionExtension::getVersion — Получение версии модуля

Описание

public ReflectionExtension::getVersion(): ?string

Получает версию модуля.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Версия модуля, или null если у модуля нет версии.

Примеры

Пример #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, PHP 8)

ReflectionExtension::info — Вывод информации о модуле

Описание

public ReflectionExtension::info(): 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$
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, PHP 8)

ReflectionExtension::isPersistent — Определяет, является ли модуль постоянным

Описание

public ReflectionExtension::isPersistent(): bool

Проверяет, является ли модуль постоянным

Модуль является постоянным, если он загружается с помощью php.ini. Модуль является временным, а не постоянным, если он загружается с помощью функции dl().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true для модулей, загружаемых через ini-настройку extension, false в противном случае.

Смотрите также

  • ReflectionExtension::isTemporary() - Определяет, является ли модуль временным


Определяет, является ли модуль временным

  • « ReflectionExtension::isPersistent
  • ReflectionExtension::__toString »
  • PHP Manual
  • ReflectionExtension
  • Определяет, является ли модуль временным

ReflectionExtension::isTemporary

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionExtension::isTemporary — Определяет, является ли модуль временным

Описание

public ReflectionExtension::isTemporary(): bool

Проверяет, является ли модуль временным.

Модуль является временным, когда он загружается с помощью функции dl().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true для модулей, загруженных функцией dl(), false в противном случае.

Смотрите также

  • ReflectionExtension::isPersistent() - Определяет, является ли модуль постоянным


Преобразование в строку

  • « ReflectionExtension::isTemporary
  • ReflectionFunction »
  • PHP Manual
  • ReflectionExtension
  • Преобразование в строку

ReflectionExtension::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::__toString — Преобразование в строку

Описание

public ReflectionExtension::__toString(): string

Выполняет экспорт модуля и возвращает его в виде строки string. Это то же самое, что и вызов ReflectionExtension::export() с аргументом return, равным true.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экспортированный модуль в виде строки, так же как ReflectionExtension::export().

Смотрите также

  • ReflectionExtension::__construct() - Создаёт объект класса ReflectionExtension
  • ReflectionExtension::export() - Экспортирует модуль
  • __toString()


Класс ReflectionFunction

(PHP 5, PHP 7, PHP 8)

Введение

Класс ReflectionFunction сообщает информацию о функциях.

Обзор классов

class ReflectionFunction extends ReflectionFunctionAbstract {
/* Константы */
public const int IS_DEPRECATED;
/* Наследуемые свойства */
public string $name;
/* Методы */
public __construct(Closure|string $function)
public static export(string $name, string $return = ?): string
public getClosure(): Closure
public invoke(mixed ...$args): mixed
public invokeArgs(array $args): mixed
public isAnonymous(): bool
public isDisabled(): bool
public __toString(): string
/* Наследуемые методы */
private ReflectionFunctionAbstract::__clone(): void
public ReflectionFunctionAbstract::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionFunctionAbstract::getClosureScopeClass(): ?ReflectionClass
public ReflectionFunctionAbstract::getClosureThis(): ?object
public ReflectionFunctionAbstract::getClosureUsedVariables(): array
public ReflectionFunctionAbstract::getDocComment(): string|false
public ReflectionFunctionAbstract::getEndLine(): int|false
public ReflectionFunctionAbstract::getExtension(): ?ReflectionExtension
public ReflectionFunctionAbstract::getExtensionName(): string|false
public ReflectionFunctionAbstract::getFileName(): string|false
public ReflectionFunctionAbstract::getName(): string
public ReflectionFunctionAbstract::getNamespaceName(): string
public ReflectionFunctionAbstract::getNumberOfParameters(): int
public ReflectionFunctionAbstract::getNumberOfRequiredParameters(): int
public ReflectionFunctionAbstract::getParameters(): array
public ReflectionFunctionAbstract::getReturnType(): ?ReflectionType
public ReflectionFunctionAbstract::getShortName(): string
public ReflectionFunctionAbstract::getStartLine(): int|false
public ReflectionFunctionAbstract::getStaticVariables(): array
public ReflectionFunctionAbstract::getTentativeReturnType(): ?ReflectionType
public ReflectionFunctionAbstract::hasReturnType(): bool
public ReflectionFunctionAbstract::hasTentativeReturnType(): bool
public ReflectionFunctionAbstract::inNamespace(): bool
public ReflectionFunctionAbstract::isClosure(): bool
public ReflectionFunctionAbstract::isDeprecated(): bool
public ReflectionFunctionAbstract::isGenerator(): bool
public ReflectionFunctionAbstract::isInternal(): bool
public ReflectionFunctionAbstract::isStatic(): bool
public ReflectionFunctionAbstract::isUserDefined(): bool
public ReflectionFunctionAbstract::isVariadic(): bool
public ReflectionFunctionAbstract::returnsReference(): bool
abstract public ReflectionFunctionAbstract::__toString(): void
}

Предопределённые константы

Модификаторы ReflectionFunction

ReflectionFunction::IS_DEPRECATED

Указывает на то, что функция устарела (deprecated).

Список изменений

Версия | Описание
8.0.0 | Метод ReflectionFunction::export() был удалён.

Содержание

  • ReflectionFunction::__construct — Конструктор класса ReflectionFunction
  • ReflectionFunction::export — Экспортирует функции
  • ReflectionFunction::getClosure — Возвращает динамически созданное замыкание для функции
  • ReflectionFunction::invoke — Вызывает функцию
  • ReflectionFunction::invokeArgs — Вызов функции с передачей аргументов
  • ReflectionFunction::isAnonymous — Проверяет, является ли функция анонимной
  • ReflectionFunction::isDisabled — Проверяет, что функция отключена
  • ReflectionFunction::__toString — Возвращает строковое представление объекта ReflectionFunction


Конструктор класса ReflectionFunction

  • « ReflectionFunction
  • ReflectionFunction::export »
  • PHP Manual
  • ReflectionFunction
  • Конструктор класса ReflectionFunction

ReflectionFunction::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionFunction::__construct — Конструктор класса ReflectionFunction

Описание

public ReflectionFunction::__construct(Closure|string $function)

Создаёт объект класса ReflectionFunction.

Список параметров

function

Имя функции для отражения или замыкание.

Ошибки

Объект класса ReflectionException, если аргумент function не содержит допустимой функции.

Примеры

Пример #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 — Экспортирует функции

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

public static ReflectionFunction::export(string $name, string $return = ?): string

Экспортирует отражённую (reflected) функцию.

Список параметров

name

Экспортируемый объект Reflection.

return

Установка в true вернёт экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в false (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в true, тогда экспортируемый объект будет возвращён как string, иначе будет возвращён null.

Смотрите также

  • ReflectionFunction::invoke() - Вызывает функцию
  • ReflectionFunction::__toString() - Возвращает строковое представление объекта ReflectionFunction


Возвращает динамически созданное замыкание для функции

  • « ReflectionFunction::export
  • ReflectionFunction::invoke »
  • PHP Manual
  • ReflectionFunction
  • Возвращает динамически созданное замыкание для функции

ReflectionFunction::getClosure

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionFunction::getClosure — Возвращает динамически созданное замыкание для функции

Описание

public ReflectionFunction::getClosure(): Closure

Получает динамически созданное замыкание для функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает только что созданное замыкание (Closure).

Смотрите также

  • Callback-функции как объекты первого класса


Вызывает функцию

  • « ReflectionFunction::getClosure
  • ReflectionFunction::invokeArgs »
  • PHP Manual
  • ReflectionFunction
  • Вызывает функцию

ReflectionFunction::invoke

(PHP 5, PHP 7, PHP 8)

ReflectionFunction::invoke — Вызывает функцию

Описание

public ReflectionFunction::invoke(mixed ...$args): mixed

Вызывает отражённую (reflected) функцию.

Список параметров

args

Передаваемые функции аргументы. Может принимать переменное количество аргументов по аналогии с 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::invoke() не может использоваться, если ожидаются ссылочные параметры. Вместо него следует использовать ReflectionFunction::invokeArgs() (передача ссылок в списке аргументов).

Смотрите также

  • ReflectionFunction::export() - Экспортирует функции
  • __invoke()
  • call_user_func() - Вызывает callback-функцию, заданную в первом параметре


Вызов функции с передачей аргументов

  • « ReflectionFunction::invoke
  • ReflectionFunction::isAnonymous »
  • PHP Manual
  • ReflectionFunction
  • Вызов функции с передачей аргументов

ReflectionFunction::invokeArgs

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionFunction::invokeArgs — Вызов функции с передачей аргументов

Описание

public ReflectionFunction::invokeArgs(array $args): mixed

Вызывает функцию и передаёт ей аргументы в виде массива.

Список параметров

args

Передаваемые функции аргументы в виде массива. Поведение функции аналогично call_user_func_array().

Возвращаемые значения

Возвращает результат выполнения вызванной функции.

Список изменений

Версия | Описание
8.0.0 | Ключи args теперь интерпретируются как имена параметров, а не игнорируются.

Примеры

Пример #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::isDisabled »
  • PHP Manual
  • ReflectionFunction
  • Проверяет, является ли функция анонимной

ReflectionFunction::isAnonymous

(PHP 8 >= 8.2.0)

ReflectionFunction::isAnonymous — Проверяет, является ли функция анонимной

Описание

public ReflectionFunction::isAnonymous(): bool

Проверяет, является ли функция анонимной.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если функция анонимна, иначе возвращает false.

Примеры

Пример #1 Пример использования ReflectionFunction::isAnonymous()

<?php

$rf = new ReflectionFunction(function() {});
var_dump($rf->isAnonymous());

$rf = new ReflectionFunction('strlen');
var_dump($rf->isAnonymous());
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • Анонимные функции


Проверяет, что функция отключена

  • « ReflectionFunction::isAnonymous
  • ReflectionFunction::__toString »
  • PHP Manual
  • ReflectionFunction
  • Проверяет, что функция отключена

ReflectionFunction::isDisabled

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunction::isDisabled — Проверяет, что функция отключена

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

public ReflectionFunction::isDisabled(): bool

Проверяет, отключена ли функция, с помощью директивы disable_functions.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если функция отключена, false противном случае.

Смотрите также

  • ReflectionFunctionAbstract::isUserDefined() - Проверяет, является ли функция определённой пользователем
  • Директива disable_functions


Возвращает строковое представление объекта ReflectionFunction

  • « ReflectionFunction::isDisabled
  • ReflectionFunctionAbstract »
  • PHP Manual
  • ReflectionFunction
  • Возвращает строковое представление объекта ReflectionFunction

ReflectionFunction::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionFunction::__toString — Возвращает строковое представление объекта ReflectionFunction

Описание

public ReflectionFunction::__toString(): string

Получает строковое представление функции, её параметров и возвращаемых значений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод возвращает строку.

Примеры

Пример #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() - Экспортирует функции
  • __toString()


Класс ReflectionFunctionAbstract

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Введение

Является родительским классом для ReflectionFunction, более подробную информацию смотрите в описании этого дочернего класса.

Обзор классов

abstract class ReflectionFunctionAbstract implements Reflector {
/* Свойства */
public string $name;
/* Методы */
private __clone(): void
public getAttributes(?string $name = null, int $flags = 0): array
public getClosureScopeClass(): ?ReflectionClass
public getClosureThis(): ?object
public getClosureUsedVariables(): array
public getDocComment(): string|false
public getEndLine(): int|false
public getExtension(): ?ReflectionExtension
public getExtensionName(): string|false
public getFileName(): string|false
public getName(): string
public getNamespaceName(): string
public getNumberOfParameters(): int
public getNumberOfRequiredParameters(): int
public getParameters(): array
public getReturnType(): ?ReflectionType
public getShortName(): string
public getStartLine(): int|false
public getStaticVariables(): array
public getTentativeReturnType(): ?ReflectionType
public hasReturnType(): bool
public hasTentativeReturnType(): bool
public inNamespace(): bool
public isClosure(): bool
public isDeprecated(): bool
public isGenerator(): bool
public isInternal(): bool
public isStatic(): bool
public isUserDefined(): bool
public isVariadic(): bool
public returnsReference(): bool
abstract public __toString(): void
}

Свойства

name

Имя функции. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Содержание

  • ReflectionFunctionAbstract::__clone — Клонирует функцию
  • ReflectionFunctionAbstract::getAttributes — Получает атрибуты
  • ReflectionFunctionAbstract::getClosureScopeClass — Возвращает класс в рамках которого было объявлено замыкание
  • ReflectionFunctionAbstract::getClosureThis — Возвращает указатель, привязанный к замыканию
  • ReflectionFunctionAbstract::getClosureUsedVariables — Возвращает массив используемых в замыкании переменных
  • 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::getTentativeReturnType — Возвращает предварительный тип возвращаемого значения, связанный с функцией
  • ReflectionFunctionAbstract::hasReturnType — Проверяет, имеет ли функция объявленный тип возвращаемого значения
  • ReflectionFunctionAbstract::hasTentativeReturnType — Определяет, есть ли у функции предварительный тип возвращаемого значения
  • ReflectionFunctionAbstract::inNamespace — Проверяет, находится ли функция в пространстве имён
  • ReflectionFunctionAbstract::isClosure — Проверяет, является ли функция замыканием (Closure)
  • ReflectionFunctionAbstract::isDeprecated — Проверяет, является ли функция устаревшей
  • ReflectionFunctionAbstract::isGenerator — Проверяет, является ли функция генератором
  • ReflectionFunctionAbstract::isInternal — Проверяет, является ли функция внутренней
  • ReflectionFunctionAbstract::isStatic — Проверяет, является ли функция статической
  • ReflectionFunctionAbstract::isUserDefined — Проверяет, является ли функция определённой пользователем
  • ReflectionFunctionAbstract::isVariadic — Проверяет, является ли функция функцией с переменным числом аргументов
  • ReflectionFunctionAbstract::returnsReference — Проверяет, что функция возвращает ссылку
  • ReflectionFunctionAbstract::__toString — Возвращает строковое представление объекта ReflectionFunctionAbstract


Клонирует функцию

  • « ReflectionFunctionAbstract
  • ReflectionFunctionAbstract::getAttributes »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Клонирует функцию

ReflectionFunctionAbstract::__clone

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::__clone — Клонирует функцию

Описание

private ReflectionFunctionAbstract::__clone(): void

Копирует функцию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.1.0 | Метод больше не является окончательным (final).

Смотрите также

  • Копирование объектов


Получает атрибуты

  • « ReflectionFunctionAbstract::__clone
  • ReflectionFunctionAbstract::getClosureScopeClass »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает атрибуты

ReflectionFunctionAbstract::getAttributes

(PHP 8)

ReflectionFunctionAbstract::getAttributes — Получает атрибуты

Описание

public ReflectionFunctionAbstract::getAttributes(?string $name = null, int $flags = 0): array

Возвращает все атрибуты, объявленные для этой функции или метода, в виде массива ReflectionAttribute.

Список параметров

name

Фильтрация результатов, чтобы оставить только экземпляры ReflectionAttribute для атрибутов, соответствующих этому имени класса.

flags

Флаги для определения способа фильтрации результатов, если указан параметр name.

По умолчанию значение 0, которое возвращает результаты только для атрибутов, относящихся к классу name.

Единственным доступным вариантом является использование константы ReflectionAttribute::IS_INSTANCEOF, которая вместо этого будет использовать для фильтрации instanceof.

Возвращаемые значения

Массив атрибутов в виде объекта ReflectionAttribute.

Примеры

Пример #1 Простой пример с методом класса

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Factory {
#[Fruit]
#[Red]
public function makeApple(): string
{
return 'apple';
}
}

$method = new ReflectionMethod('Factory', 'makeApple');
$attributes = $method->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fruit
    [1] => Red
)

Пример #2 Простой пример с функцией

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

#[Fruit]
#[Red]
function makeApple(): string
{
return 'apple';
}

$function = new ReflectionFunction('makeApple');
$attributes = $function->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fruit
    [1] => Red
)

Пример #3 Фильтрация результатов по имени класса

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

#[Fruit]
#[Red]
function makeApple(): string
{
return 'apple';
}

$function = new ReflectionFunction('makeApple');
$attributes = $function->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fruit
)

Пример #4 Фильтрация результатов по имени класса, с наследованием

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

#[Attribute]
class Red implements Color {
}

#[Fruit]
#[Red]
function makeApple(): string
{
return 'apple';
}

$function = new ReflectionFunction('makeApple');
$attributes = $function->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Red
)

Смотрите также

  • ReflectionClass::getAttributes() - Получает атрибуты
  • ReflectionClassConstant::getAttributes() - Получает атрибуты
  • ReflectionParameter::getAttributes() - Получает атрибуты
  • ReflectionProperty::getAttributes() - Получает атрибуты


Возвращает класс в рамках которого было объявлено замыкание

  • « ReflectionFunctionAbstract::getAttributes
  • ReflectionFunctionAbstract::getClosureThis »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Возвращает класс в рамках которого было объявлено замыкание

ReflectionFunctionAbstract::getClosureScopeClass

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getClosureScopeClass — Возвращает класс в рамках которого было объявлено замыкание

Описание

public ReflectionFunctionAbstract::getClosureScopeClass(): ?ReflectionClass

Получает класс в рамках которого было объявлено замыкание.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает класс в случае успешного выполнения или null, если функция не является замыканием или если не было класса, в рамках которого объявлено замыкание.


Возвращает указатель, привязанный к замыканию

  • « ReflectionFunctionAbstract::getClosureScopeClass
  • ReflectionFunctionAbstract::getClosureUsedVariables »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Возвращает указатель, привязанный к замыканию

ReflectionFunctionAbstract::getClosureThis

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getClosureThis — Возвращает указатель, привязанный к замыканию

Описание

public ReflectionFunctionAbstract::getClosureThis(): ?object

Получает объект, связанный с $this внутри замыкания, если функция является нестатическим замыканием.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает указатель $this. Возвращает null в случае возникновения ошибки.


Возвращает массив используемых в замыкании переменных

  • « ReflectionFunctionAbstract::getClosureThis
  • ReflectionFunctionAbstract::getDocComment »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Возвращает массив используемых в замыкании переменных

ReflectionFunctionAbstract::getClosureUsedVariables

(PHP 8 >= 8.1.0)

ReflectionFunctionAbstract::getClosureUsedVariables — Возвращает массив используемых в замыкании переменных

Описание

public ReflectionFunctionAbstract::getClosureUsedVariables(): array

Возвращает массив (array) используемых в Closure переменных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив (array) используемых в Closure переменных.

Примеры

Пример #1 Пример использования ReflectionFunctionAbstract::getClosureUsedVariables()

<?php

$one = 1;
$two = 2;

$function = function() use ($one, $two) {
static $three = 3;
};

$reflector = new ReflectionFunction($function);

var_dump($reflector->getClosureUsedVariables());
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["one"]=>
  int(1)
  ["two"]=>
  int(2)
}

Смотрите также

  • ReflectionFunctionAbstract::getClosureScopeClass() - Возвращает класс в рамках которого было объявлено замыкание
  • ReflectionFunctionAbstract::getClosureThis() - Возвращает указатель, привязанный к замыканию


Получает doc-комментарий

  • « ReflectionFunctionAbstract::getClosureUsedVariables
  • ReflectionFunctionAbstract::getEndLine »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает doc-комментарий

ReflectionFunctionAbstract::getDocComment

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getDocComment — Получает doc-комментарий

Описание

public ReflectionFunctionAbstract::getDocComment(): string|false

Получает doc-комментарий из описания функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Комментарий, если он есть, false в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::getStartLine() - Получает начальный номер строки


Получает номер строки завершения описания функции

  • « ReflectionFunctionAbstract::getDocComment
  • ReflectionFunctionAbstract::getExtension »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает номер строки завершения описания функции

ReflectionFunctionAbstract::getEndLine

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getEndLine — Получает номер строки завершения описания функции

Описание

public ReflectionFunctionAbstract::getEndLine(): int|false

Получает номер строки завершения описания функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Номер последней строки описания определённой пользователем функции или false, если он неизвестен.

Смотрите также

  • ReflectionFunctionAbstract::getStartLine() - Получает начальный номер строки


Получает информацию о модуле

  • « ReflectionFunctionAbstract::getEndLine
  • ReflectionFunctionAbstract::getExtensionName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает информацию о модуле

ReflectionFunctionAbstract::getExtension

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getExtension — Получает информацию о модуле

Описание

public ReflectionFunctionAbstract::getExtension(): ?ReflectionExtension

Получение информации о модуле, в состав которого входит функция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Информация о модуле в виде объекта ReflectionExtension или null для пользовательских функций.

Смотрите также

  • ReflectionFunctionAbstract::getExtensionName() - Получение имени модуля


Получение имени модуля

  • « ReflectionFunctionAbstract::getExtension
  • ReflectionFunctionAbstract::getFileName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получение имени модуля

ReflectionFunctionAbstract::getExtensionName

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getExtensionName — Получение имени модуля

Описание

public ReflectionFunctionAbstract::getExtensionName(): string|false

Получение имени модуля.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя модуля или false для пользовательских функций.

Смотрите также

  • ReflectionFunctionAbstract::getExtension() - Получает информацию о модуле


Получает имя файла

  • « ReflectionFunctionAbstract::getExtensionName
  • ReflectionFunctionAbstract::getName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает имя файла

ReflectionFunctionAbstract::getFileName

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getFileName — Получает имя файла

Описание

public ReflectionFunctionAbstract::getFileName(): string|false

Получает имя файла из определённой пользователем функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла, в котором была определена функция. Возвращает false, если класс определён в ядре PHP или в модуле PHP.

Смотрите также

  • ReflectionFunctionAbstract::getNamespaceName() - Получение имени пространства имён


Получает имя функции

  • « ReflectionFunctionAbstract::getFileName
  • ReflectionFunctionAbstract::getNamespaceName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает имя функции

ReflectionFunctionAbstract::getName

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getName — Получает имя функции

Описание

public ReflectionFunctionAbstract::getName(): string

Получение имени функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя функции.

Смотрите также

  • ReflectionFunctionAbstract::getExtensionName() - Получение имени модуля
  • ReflectionFunctionAbstract::isUserDefined() - Проверяет, является ли функция определённой пользователем


Получение имени пространства имён

  • « ReflectionFunctionAbstract::getName
  • ReflectionFunctionAbstract::getNumberOfParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получение имени пространства имён

ReflectionFunctionAbstract::getNamespaceName

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getNamespaceName — Получение имени пространства имён

Описание

public ReflectionFunctionAbstract::getNamespaceName(): string

Получение имени пространства имён, в котором определён класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя пространства имён.

Смотрите также

  • ReflectionFunctionAbstract::getFileName() - Получает имя файла
  • пространства имён


Получает количество параметров

  • « ReflectionFunctionAbstract::getNamespaceName
  • ReflectionFunctionAbstract::getNumberOfRequiredParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает количество параметров

ReflectionFunctionAbstract::getNumberOfParameters

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getNumberOfParameters — Получает количество параметров

Описание

public ReflectionFunctionAbstract::getNumberOfParameters(): int

Получение количества параметров в определении функции как обязательных, так и опциональных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество параметров.

Смотрите также

  • ReflectionFunctionAbstract::getNumberOfRequiredParameters() - Получает количество обязательных параметров
  • func_num_args() - Возвращает количество аргументов, переданных функции


Получает количество обязательных параметров

  • « ReflectionFunctionAbstract::getNumberOfParameters
  • ReflectionFunctionAbstract::getParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает количество обязательных параметров

ReflectionFunctionAbstract::getNumberOfRequiredParameters

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getNumberOfRequiredParameters — Получает количество обязательных параметров

Описание

public ReflectionFunctionAbstract::getNumberOfRequiredParameters(): int

Получение числа обязательных параметров в определении функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число обязательных параметров.

Смотрите также

  • ReflectionFunctionAbstract::getNumberOfParameters() - Получает количество параметров


Получает параметры

  • « ReflectionFunctionAbstract::getNumberOfRequiredParameters
  • ReflectionFunctionAbstract::getReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает параметры

ReflectionFunctionAbstract::getParameters

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getParameters — Получает параметры

Описание

public ReflectionFunctionAbstract::getParameters(): array

Получение параметров в виде массива объектов ReflectionParameter в том порядке, в котором они определены в источнике.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Параметры, представленные объектами ReflectionParameter.

Смотрите также

  • ReflectionFunctionAbstract::getNumberOfParameters() - Получает количество параметров
  • func_get_args() - Возвращает массив, содержащий аргументы функции


Получает объявленный тип возвращаемого функцией значения

  • « ReflectionFunctionAbstract::getParameters
  • ReflectionFunctionAbstract::getShortName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает объявленный тип возвращаемого функцией значения

ReflectionFunctionAbstract::getReturnType

(PHP 7, PHP 8)

ReflectionFunctionAbstract::getReturnType — Получает объявленный тип возвращаемого функцией значения

Описание

public ReflectionFunctionAbstract::getReturnType(): ?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, PHP 8)

ReflectionFunctionAbstract::getShortName — Получает короткое имя функции

Описание

public ReflectionFunctionAbstract::getShortName(): string

Получение короткого имени функции (без указания пространства имён).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Короткое имя функции.

Смотрите также

  • ReflectionFunctionAbstract::getNamespaceName() - Получение имени пространства имён
  • пространства имён


Получает начальный номер строки

  • « ReflectionFunctionAbstract::getShortName
  • ReflectionFunctionAbstract::getStaticVariables »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает начальный номер строки

ReflectionFunctionAbstract::getStartLine

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getStartLine — Получает начальный номер строки

Описание

public ReflectionFunctionAbstract::getStartLine(): int|false

Получение номера строки начала описания функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Стартовый номер строки или false, если неизвестно.

Смотрите также

  • ReflectionFunctionAbstract::getEndLine() - Получает номер строки завершения описания функции


Получает статические переменные

  • « ReflectionFunctionAbstract::getStartLine
  • ReflectionFunctionAbstract::getTentativeReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает статические переменные

ReflectionFunctionAbstract::getStaticVariables

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getStaticVariables — Получает статические переменные

Описание

public ReflectionFunctionAbstract::getStaticVariables(): array

Получение статических переменных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) статических переменных.

Смотрите также

  • ReflectionFunctionAbstract::getParameters() - Получает параметры


Возвращает предварительный тип возвращаемого значения, связанный с функцией

  • « ReflectionFunctionAbstract::getStaticVariables
  • ReflectionFunctionAbstract::hasReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Возвращает предварительный тип возвращаемого значения, связанный с функцией

ReflectionFunctionAbstract::getTentativeReturnType

(PHP 8 >= 8.1.0)

ReflectionFunctionAbstract::getTentativeReturnType — Возвращает предварительный тип возвращаемого значения, связанный с функцией

Описание

public ReflectionFunctionAbstract::getTentativeReturnType(): ?ReflectionType

Возвращает предварительный тип возвращаемого значения, связанный с функцией.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект ReflectionType, если указан предварительный тип возвращаемого значения, в противном случае возвращает null.

Примеры

Пример #1 Пример использования ReflectionFunctionAbstract::getTentativeReturnType()

<?php

$method = new ReflectionMethod(\ArrayAccess::class, 'offsetGet');
var_dump($method->getTentativeReturnType());

Результатом выполнения данного примера будет что-то подобное:

object(ReflectionNamedType)#2 (0) {
}

Смотрите также

  • ReflectionFunctionAbstract::getReturnType() - Получает объявленный тип возвращаемого функцией значения
  • ReflectionFunctionAbstract::hasTentativeReturnType() - Определяет, есть ли у функции предварительный тип возвращаемого значения
  • Совместимость типов возвращаемых значений с внутренними классами


Проверяет, имеет ли функция объявленный тип возвращаемого значения

  • « ReflectionFunctionAbstract::getTentativeReturnType
  • ReflectionFunctionAbstract::hasTentativeReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, имеет ли функция объявленный тип возвращаемого значения

ReflectionFunctionAbstract::hasReturnType

(PHP 7, PHP 8)

ReflectionFunctionAbstract::hasReturnType — Проверяет, имеет ли функция объявленный тип возвращаемого значения

Описание

public ReflectionFunctionAbstract::hasReturnType(): 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::inNamespace »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Определяет, есть ли у функции предварительный тип возвращаемого значения

ReflectionFunctionAbstract::hasTentativeReturnType

(PHP 8 >= 8.1.0)

ReflectionFunctionAbstract::hasTentativeReturnType — Определяет, есть ли у функции предварительный тип возвращаемого значения

Описание

public ReflectionFunctionAbstract::hasTentativeReturnType(): bool

Определяет, есть ли у функции предварительный тип возвращаемого значения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если у функции есть предварительный тип возвращаемого значения, в противном случае возвращает false.

Примеры

Пример #1 Пример использования ReflectionFunctionAbstract::hasTentativeReturnType()

<?php

$method = new ReflectionMethod(\ArrayAccess::class, 'offsetGet');
var_dump($method->hasTentativeReturnType());

Результат выполнения данного примера:

bool(true)

Смотрите также

  • ReflectionFunctionAbstract::getTentativeReturnType() - Возвращает предварительный тип возвращаемого значения, связанный с функцией
  • ReflectionFunctionAbstract::hasReturnType() - Проверяет, имеет ли функция объявленный тип возвращаемого значения
  • Совместимость типов возвращаемых значений с внутренними классами


Проверяет, находится ли функция в пространстве имён

  • « ReflectionFunctionAbstract::hasTentativeReturnType
  • ReflectionFunctionAbstract::isClosure »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, находится ли функция в пространстве имён

ReflectionFunctionAbstract::inNamespace

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::inNamespace — Проверяет, находится ли функция в пространстве имён

Описание

public ReflectionFunctionAbstract::inNamespace(): bool

Проверяет, что функция определена в пространстве имён.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если функция определена в пространстве имён, false в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::getNamespaceName() - Получение имени пространства имён
  • пространства имён


Проверяет, является ли функция замыканием (Closure)

  • « ReflectionFunctionAbstract::inNamespace
  • ReflectionFunctionAbstract::isDeprecated »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция замыканием (Closure)

ReflectionFunctionAbstract::isClosure

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isClosure — Проверяет, является ли функция замыканием (Closure)

Описание

public ReflectionFunctionAbstract::isClosure(): 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, PHP 8)

ReflectionFunctionAbstract::isDeprecated — Проверяет, является ли функция устаревшей

Описание

public ReflectionFunctionAbstract::isDeprecated(): 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, PHP 8)

ReflectionFunctionAbstract::isGenerator — Проверяет, является ли функция генератором

Описание

public ReflectionFunctionAbstract::isGenerator(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если функция является генератором, false в противном случае или null, в случае возникновения ошибки.


Проверяет, является ли функция внутренней

  • « ReflectionFunctionAbstract::isGenerator
  • ReflectionFunctionAbstract::isStatic »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция внутренней

ReflectionFunctionAbstract::isInternal

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isInternal — Проверяет, является ли функция внутренней

Описание

public ReflectionFunctionAbstract::isInternal(): bool

Проверяет, является ли функция внутренней, то есть не определённой пользователем.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если функция внутренняя, false в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::isUserDefined() - Проверяет, является ли функция определённой пользователем


Проверяет, является ли функция статической

  • « ReflectionFunctionAbstract::isInternal
  • ReflectionFunctionAbstract::isUserDefined »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция статической

ReflectionFunctionAbstract::isStatic

(PHP 5, PHP 7, PHP 8)

ReflectionFunctionAbstract::isStatic — Проверяет, является ли функция статической

Описание

public ReflectionFunctionAbstract::isStatic(): bool

Проверяет, является ли функция статической.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод возвращает true, если функция является статической, в противном случае возвращает false.

Список изменений

Версия | Описание
8.1.0 | Метод был расширен. Ранее он был определён только в ReflectionMethod.

Смотрите также

  • ReflectionMethod::isFinal() - Проверяет, является ли метод окончательным


Проверяет, является ли функция определённой пользователем

  • « ReflectionFunctionAbstract::isStatic
  • ReflectionFunctionAbstract::isVariadic »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция определённой пользователем

ReflectionFunctionAbstract::isUserDefined

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isUserDefined — Проверяет, является ли функция определённой пользователем

Описание

public ReflectionFunctionAbstract::isUserDefined(): bool

Проверяет, является ли функция определённой пользователем, то есть это не внутренняя функция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если функция определена пользователем, false в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::isInternal() - Проверяет, является ли функция внутренней


Проверяет, является ли функция функцией с переменным числом аргументов

  • « ReflectionFunctionAbstract::isUserDefined
  • ReflectionFunctionAbstract::returnsReference »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция функцией с переменным числом аргументов

ReflectionFunctionAbstract::isVariadic

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isVariadic — Проверяет, является ли функция функцией с переменным числом аргументов

Описание

public ReflectionFunctionAbstract::isVariadic(): bool

Проверяет, является ли функция функцией с переменным числом аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если функция с переменным числом аргументов, false в противном случае.


Проверяет, что функция возвращает ссылку

  • « ReflectionFunctionAbstract::isVariadic
  • ReflectionFunctionAbstract::__toString »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, что функция возвращает ссылку

ReflectionFunctionAbstract::returnsReference

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::returnsReference — Проверяет, что функция возвращает ссылку

Описание

public ReflectionFunctionAbstract::returnsReference(): bool

Проверяет, что функция возвращает ссылку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если функция возвращает ссылку, false в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::isClosure() - Проверяет, является ли функция замыканием (Closure)


Возвращает строковое представление объекта ReflectionFunctionAbstract

  • « ReflectionFunctionAbstract::returnsReference
  • ReflectionMethod »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Возвращает строковое представление объекта ReflectionFunctionAbstract

ReflectionFunctionAbstract::__toString

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::__toString — Возвращает строковое представление объекта ReflectionFunctionAbstract

Описание

abstract public ReflectionFunctionAbstract::__toString(): void

Получает строковое представление функции, её параметров и возвращаемых значений.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка.

Смотрите также

  • ReflectionFunction::__toString() - Возвращает строковое представление объекта ReflectionFunction
  • ReflectionMethod::__toString() - Возвращает строковое представление объекта ReflectionMethod
  • __toString()


Класс ReflectionMethod

(PHP 5, PHP 7, PHP 8)

Введение

Класс ReflectionMethod сообщает информацию о методах.

Обзор классов

class ReflectionMethod extends ReflectionFunctionAbstract {
/* Константы */
public const int IS_STATIC;
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
public const int IS_ABSTRACT;
public const int IS_FINAL;
/* Свойства */
public string $class;
/* Наследуемые свойства */
public string $name;
/* Методы */
public __construct(object|string $objectOrMethod, string $method)
public __construct(string $classMethod)
public static createFromMethodName(string $method): static
public static export(string $class, string $name, bool $return = false): string
public getClosure(?object $object = null): Closure
public getDeclaringClass(): ReflectionClass
public getModifiers(): int
public getPrototype(): ReflectionMethod
public hasPrototype(): bool
public invoke(?object $object, mixed ...$args): mixed
public invokeArgs(?object $object, array $args): mixed
public isAbstract(): bool
public isConstructor(): bool
public isDestructor(): bool
public isFinal(): bool
public isPrivate(): bool
public isProtected(): bool
public isPublic(): bool
public setAccessible(bool $accessible): void
public __toString(): string
/* Наследуемые методы */
private ReflectionFunctionAbstract::__clone(): void
public ReflectionFunctionAbstract::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionFunctionAbstract::getClosureScopeClass(): ?ReflectionClass
public ReflectionFunctionAbstract::getClosureThis(): ?object
public ReflectionFunctionAbstract::getClosureUsedVariables(): array
public ReflectionFunctionAbstract::getDocComment(): string|false
public ReflectionFunctionAbstract::getEndLine(): int|false
public ReflectionFunctionAbstract::getExtension(): ?ReflectionExtension
public ReflectionFunctionAbstract::getExtensionName(): string|false
public ReflectionFunctionAbstract::getFileName(): string|false
public ReflectionFunctionAbstract::getName(): string
public ReflectionFunctionAbstract::getNamespaceName(): string
public ReflectionFunctionAbstract::getNumberOfParameters(): int
public ReflectionFunctionAbstract::getNumberOfRequiredParameters(): int
public ReflectionFunctionAbstract::getParameters(): array
public ReflectionFunctionAbstract::getReturnType(): ?ReflectionType
public ReflectionFunctionAbstract::getShortName(): string
public ReflectionFunctionAbstract::getStartLine(): int|false
public ReflectionFunctionAbstract::getStaticVariables(): array
public ReflectionFunctionAbstract::getTentativeReturnType(): ?ReflectionType
public ReflectionFunctionAbstract::hasReturnType(): bool
public ReflectionFunctionAbstract::hasTentativeReturnType(): bool
public ReflectionFunctionAbstract::inNamespace(): bool
public ReflectionFunctionAbstract::isClosure(): bool
public ReflectionFunctionAbstract::isDeprecated(): bool
public ReflectionFunctionAbstract::isGenerator(): bool
public ReflectionFunctionAbstract::isInternal(): bool
public ReflectionFunctionAbstract::isStatic(): bool
public ReflectionFunctionAbstract::isUserDefined(): bool
public ReflectionFunctionAbstract::isVariadic(): bool
public ReflectionFunctionAbstract::returnsReference(): bool
abstract public ReflectionFunctionAbstract::__toString(): void
}

Свойства

name

Имя метода

class

Имя класса

Предопределённые константы

Модификаторы ReflectionMethod

ReflectionMethod::IS_STATIC

Указывает на то, что это статический метод. До PHP 7.4.0, значение было 1.

ReflectionMethod::IS_PUBLIC

Указывает на то, что это общедоступный метод. До PHP 7.4.0, значение было 256.

ReflectionMethod::IS_PROTECTED

Указывает на то, что это защищённый метод. До PHP 7.4.0, значение было 512.

ReflectionMethod::IS_PRIVATE

Указывает на то, что это закрытый метод. До PHP 7.4.0, значение было 1024.

ReflectionMethod::IS_ABSTRACT

Указывает на то, что это абстрактный метод. До PHP 7.4.0, значение было 2.

ReflectionMethod::IS_FINAL

Указывает на то, что это окончательный метод. До PHP 7.4.0, значение было 4.

Замечание:

Значения этих констант могут изменяться от версии к версии PHP. Рекомендуется всегда использовать константы и не полагаться напрямую на значения.

Список изменений

Версия | Описание
8.0.0 | Метод ReflectionMethod::export() был удалён.

Содержание

  • ReflectionMethod::__construct — Конструктор класса ReflectionMethod
  • ReflectionMethod::createFromMethodName — Creates a new ReflectionMethod
  • ReflectionMethod::export — Экспорт отражённого метода
  • ReflectionMethod::getClosure — Возвращает динамически созданное замыкание для метода
  • ReflectionMethod::getDeclaringClass — Получает класс, объявляющий отражённый метод
  • ReflectionMethod::getModifiers — Получает модификаторы метода
  • ReflectionMethod::getPrototype — Получает прототип метода (если такой есть)
  • ReflectionMethod::hasPrototype — Определяет, есть ли у метода прототип
  • ReflectionMethod::invoke — Вызов
  • ReflectionMethod::invokeArgs — Вызов метода с передачей аргументов массивом
  • ReflectionMethod::isAbstract — Проверяет, является ли метод абстрактным
  • ReflectionMethod::isConstructor — Проверяет, является ли метод конструктором
  • ReflectionMethod::isDestructor — Проверяет, является ли метод деструктором
  • ReflectionMethod::isFinal — Проверяет, является ли метод окончательным
  • ReflectionMethod::isPrivate — Проверяет, является ли метод закрытым
  • ReflectionMethod::isProtected — Проверяет, является ли метод защищённым
  • ReflectionMethod::isPublic — Проверяет, является ли метод общедоступным
  • ReflectionMethod::setAccessible — Делает метод доступным
  • ReflectionMethod::__toString — Возвращает строковое представление объекта ReflectionMethod


Конструктор класса ReflectionMethod

  • « ReflectionMethod
  • ReflectionMethod::createFromMethodName »
  • PHP Manual
  • ReflectionMethod
  • Конструктор класса ReflectionMethod

ReflectionMethod::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::__construct — Конструктор класса ReflectionMethod

Описание

public ReflectionMethod::__construct(object|string $objectOrMethod, string $method)

Alternative signature (not supported with named arguments):

public ReflectionMethod::__construct(string $classMethod)

Создаёт новый объект класса ReflectionMethod.

Список параметров

objectOrMethod

Имя класса или объект (экземпляр класса), содержащего метод.

method

Имя метода.

classMethod

Имена класса и метода, разделённые ::.

Ошибки

Исключение 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() - Экспорт отражённого метода
  • Конструкторы


Creates a new ReflectionMethod

  • « ReflectionMethod::__construct
  • ReflectionMethod::export »
  • PHP Manual
  • ReflectionMethod
  • Creates a new ReflectionMethod

ReflectionMethod::createFromMethodName

(PHP 8 >= 8.3.0)

ReflectionMethod::createFromMethodName — Creates a new ReflectionMethod

Описание

public static ReflectionMethod::createFromMethodName(string $method): static

Creates a new ReflectionMethod.

Список параметров

method

Class name and method name delimited by ::.

Возвращаемые значения

Returns a new ReflectionMethod on success.

Ошибки

A ReflectionException is thrown if the given method does not exist.

Примеры

Пример #1 ReflectionMethod::createFromMethodName() example

<?php

class Foo {
public function bar() {

}
}

$methodInfo = ReflectionMethod::createFromMethodName("Foo::bar");
var_dump($methodInfo);
?>

Результат выполнения данного примера:

object(ReflectionMethod)#1 (2) {
  ["name"]=>
  string(3) "bar"
  ["class"]=>
  string(3) "Foo"
}


Экспорт отражённого метода

  • « ReflectionMethod::createFromMethodName
  • ReflectionMethod::getClosure »
  • PHP Manual
  • ReflectionMethod
  • Экспорт отражённого метода

ReflectionMethod::export

(PHP 5, PHP 7)

ReflectionMethod::export — Экспорт отражённого метода

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

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, PHP 8)

ReflectionMethod::getClosure — Возвращает динамически созданное замыкание для метода

Описание

public ReflectionMethod::getClosure(?object $object = null): Closure

Создаёт замыкание, которое будет вызывать метод.

Список параметров

object

Запрещён для статических методов, обязателен для остальных.

Возвращаемые значения

Возвращает только что созданное замыкание (Closure).

Ошибки

Выбрасывает ValueError, если object является null, но метод является нестатическим.

Выбрасывает исключение ReflectionException, если object не является экземпляром класса, в котором был объявлен этот метод.

Список изменений

Версия | Описание
8.0.0 | object теперь допускает значение null.

Смотрите также

  • Callback-функции как объекты первого класса


Получает класс, объявляющий отражённый метод

  • « ReflectionMethod::getClosure
  • ReflectionMethod::getModifiers »
  • PHP Manual
  • ReflectionMethod
  • Получает класс, объявляющий отражённый метод

ReflectionMethod::getDeclaringClass

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::getDeclaringClass — Получает класс, объявляющий отражённый метод

Описание

public ReflectionMethod::getDeclaringClass(): 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, PHP 8)

ReflectionMethod::getModifiers — Получает модификаторы метода

Описание

public ReflectionMethod::getModifiers(): 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():
49
final public static
Модификаторы метода bar():
1
public

Смотрите также

  • Reflection::getModifierNames() - Получение имён модификаторов


Получает прототип метода (если такой есть)

  • « ReflectionMethod::getModifiers
  • ReflectionMethod::hasPrototype »
  • PHP Manual
  • ReflectionMethod
  • Получает прототип метода (если такой есть)

ReflectionMethod::getPrototype

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionMethod::getPrototype — Получает прототип метода (если такой есть)

Описание

public ReflectionMethod::getPrototype(): 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::hasPrototype() - Определяет, есть ли у метода прототип


Определяет, есть ли у метода прототип

  • « ReflectionMethod::getPrototype
  • ReflectionMethod::invoke »
  • PHP Manual
  • ReflectionMethod
  • Определяет, есть ли у метода прототип

ReflectionMethod::hasPrototype

(PHP 8 >= 8.2.0)

ReflectionMethod::hasPrototype — Определяет, есть ли у метода прототип

Описание

public ReflectionMethod::hasPrototype(): bool

Определяет, есть ли у метода прототип.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true если у метода есть прототип, иначе возвращает false.

Примеры

Пример #1 Пример использования ReflectionMethod::hasPrototype()

<?php

class Hello
{
public function sayHelloTo($name)
{
return 'Hello '.$name;
}
}

class HelloWorld extends Hello
{
public function sayHelloTo($name)
{
return 'Hello world: '.$name;
}
}
$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
var_dump($reflectionMethod->hasPrototype());
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • ReflectionMethod::getPrototype() - Получает прототип метода (если такой есть)


Вызов

  • « ReflectionMethod::hasPrototype
  • ReflectionMethod::invokeArgs »
  • PHP Manual
  • ReflectionMethod
  • Вызов

ReflectionMethod::invoke

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::invoke — Вызов

Описание

public ReflectionMethod::invoke(?object $object, mixed ...$args): mixed

Вызывает отражённый метод.

Список параметров

object

Объект, метод которого требуется вызвать. Для статических методов передаётся null.

args

Ноль или более аргументов, передаваемых методу. Допускается передавать переменное число аргументов.

Возвращаемые значения

Возвращает результат выполнения метода.

Ошибки

Выбрасывает исключение 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::invoke() не может использоваться, если ожидаются ссылочные параметры. Вместо него следует использовать ReflectionMethod::invokeArgs() (передача ссылок в списке аргументов).

Смотрите также

  • ReflectionMethod::invokeArgs() - Вызов метода с передачей аргументов массивом
  • __invoke()
  • call_user_func() - Вызывает callback-функцию, заданную в первом параметре


Вызов метода с передачей аргументов массивом

  • « ReflectionMethod::invoke
  • ReflectionMethod::isAbstract »
  • PHP Manual
  • ReflectionMethod
  • Вызов метода с передачей аргументов массивом

ReflectionMethod::invokeArgs

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionMethod::invokeArgs — Вызов метода с передачей аргументов массивом

Описание

public ReflectionMethod::invokeArgs(?object $object, array $args): mixed

Вызывает отражённый метод и передаёт ему аргументы в виде массива.

Список параметров

object

Объект, метод которого вызывается. Если метод статический, можно передать null.

args

Массив (array), содержащий аргументы функции.

Возвращаемые значения

Возвращает результат выполнения метода.

Ошибки

Выбрасывает исключение ReflectionException, если в объекте object нет определения этого метода.

Выбрасывает исключение ReflectionException, если вызвать метод на исполнение не удалось.

Список изменений

Версия | Описание
8.0.0 | Ключи args теперь интерпретируются как имена параметров, а не игнорируются.

Примеры

Пример #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, PHP 8)

ReflectionMethod::isAbstract — Проверяет, является ли метод абстрактным

Описание

public ReflectionMethod::isAbstract(): bool

Проверяет, является ли метод абстрактным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если метод абстрактный, false в противном случае.

Смотрите также

  • ReflectionMethod::getDeclaringClass() - Получает класс, объявляющий отражённый метод


Проверяет, является ли метод конструктором

  • « ReflectionMethod::isAbstract
  • ReflectionMethod::isDestructor »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод конструктором

ReflectionMethod::isConstructor

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isConstructor — Проверяет, является ли метод конструктором

Описание

public ReflectionMethod::isConstructor(): bool

Проверяет, является ли метод конструктором.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если метод является конструктором, false в противном случае.

Смотрите также

  • ReflectionMethod::__construct() - Конструктор класса ReflectionMethod
  • ReflectionMethod::isAbstract() - Проверяет, является ли метод абстрактным
  • ReflectionMethod::isDestructor() - Проверяет, является ли метод деструктором


Проверяет, является ли метод деструктором

  • « ReflectionMethod::isConstructor
  • ReflectionMethod::isFinal »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод деструктором

ReflectionMethod::isDestructor

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isDestructor — Проверяет, является ли метод деструктором

Описание

public ReflectionMethod::isDestructor(): bool

Проверяет, является ли метод деструктором.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если метод является деструктором, false в противном случае.

Смотрите также

  • ReflectionMethod::isConstructor() - Проверяет, является ли метод конструктором


Проверяет, является ли метод окончательным

  • « ReflectionMethod::isDestructor
  • ReflectionMethod::isPrivate »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод окончательным

ReflectionMethod::isFinal

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isFinal — Проверяет, является ли метод окончательным

Описание

public ReflectionMethod::isFinal(): bool

Проверяет, является ли метод окончательным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если метод окончательный, false в противном случае.

Смотрите также

  • ReflectionMethod::isStatic()


Проверяет, является ли метод закрытым

  • « ReflectionMethod::isFinal
  • ReflectionMethod::isProtected »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод закрытым

ReflectionMethod::isPrivate

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isPrivate — Проверяет, является ли метод закрытым

Описание

public ReflectionMethod::isPrivate(): bool

Проверяет, является ли метод закрытым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если метод закрытый, false в противном случае.

Смотрите также

  • ReflectionMethod::isPublic() - Проверяет, является ли метод общедоступным


Проверяет, является ли метод защищённым

  • « ReflectionMethod::isPrivate
  • ReflectionMethod::isPublic »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод защищённым

ReflectionMethod::isProtected

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isProtected — Проверяет, является ли метод защищённым

Описание

public ReflectionMethod::isProtected(): bool

Проверяет, является ли метод защищённым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если метод защищённый, false в противном случае.

Смотрите также

  • ReflectionMethod::isPrivate() - Проверяет, является ли метод закрытым


Проверяет, является ли метод общедоступным

  • « ReflectionMethod::isProtected
  • ReflectionMethod::setAccessible »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод общедоступным

ReflectionMethod::isPublic

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isPublic — Проверяет, является ли метод общедоступным

Описание

public ReflectionMethod::isPublic(): bool

Проверяет, является ли метод общедоступным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если метод общедоступный, false в противном случае.

Смотрите также

  • ReflectionMethod::isPrivate() - Проверяет, является ли метод закрытым


Делает метод доступным

  • « ReflectionMethod::isPublic
  • ReflectionMethod::__toString »
  • PHP Manual
  • ReflectionMethod
  • Делает метод доступным

ReflectionMethod::setAccessible

(PHP 5 >= 5.3.2, PHP 7, PHP 8)

ReflectionMethod::setAccessible — Делает метод доступным

Описание

public ReflectionMethod::setAccessible(bool $accessible): void

Обеспечивает доступ к защищённому или закрытому свойству с помощью метода ReflectionMethod::invoke().

Замечание: Начиная с PHP 8.1.0, вызов метода не имеет смысла; все методы вызываются по умолчанию.

Список параметров

accessible

true, чтобы сделать метод доступным, или false.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Определение простого класса

<?php
class MyClass
{
private function foo()
{
return 'bar';
}
}

$method = new ReflectionMethod("MyClass", "foo");
$method->setAccessible(true);

$obj = new MyClass();
echo $method->invoke($obj);
echo $obj->foo();
?>

Результатом выполнения данного примера будет что-то подобное:

bar
Fatal error: Uncaught Error: Call to private method MyClass::foo() from global scope in /in/qdaZS:16

Смотрите также

  • ReflectionMethod::isPrivate() - Проверяет, является ли метод закрытым
  • ReflectionMethod::isProtected() - Проверяет, является ли метод защищённым


Возвращает строковое представление объекта ReflectionMethod

  • « ReflectionMethod::setAccessible
  • ReflectionNamedType »
  • PHP Manual
  • ReflectionMethod
  • Возвращает строковое представление объекта ReflectionMethod

ReflectionMethod::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::__toString — Возвращает строковое представление объекта ReflectionMethod

Описание

public ReflectionMethod::__toString(): 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, PHP 8)

Введение

Обзор классов

class ReflectionNamedType extends ReflectionType {
/* Методы */
public getName(): string
public isBuiltin(): bool
/* Наследуемые методы */
public ReflectionType::allowsNull(): bool
public ReflectionType::__toString(): string
}

Содержание

  • ReflectionNamedType::getName — Получает имя типа в виде строки
  • ReflectionNamedType::isBuiltin — Проверяет, является ли тип встроенным


Получает имя типа в виде строки

  • « ReflectionNamedType
  • ReflectionNamedType::isBuiltin »
  • PHP Manual
  • ReflectionNamedType
  • Получает имя типа в виде строки

ReflectionNamedType::getName

(PHP 7 >= 7.1.0, PHP 8)

ReflectionNamedType::getName — Получает имя типа в виде строки

Описание

public ReflectionNamedType::getName(): string

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя отражаемого типа.

Смотрите также

  • ReflectionType::__toString() - Преобразование в строку


Проверяет, является ли тип встроенным

  • « ReflectionNamedType::getName
  • ReflectionObject »
  • PHP Manual
  • ReflectionNamedType
  • Проверяет, является ли тип встроенным

ReflectionNamedType::isBuiltin

(PHP 7, PHP 8)

ReflectionNamedType::isBuiltin — Проверяет, является ли тип встроенным

Описание

public ReflectionNamedType::isBuiltin(): bool

Проверяет, является ли тип встроенным типом PHP. Встроенный тип - любой тип, не являющийся классом, интерфейсом или трейтом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если тип встроенный, false в противном случае.

Примеры

Пример #1 Пример использования ReflectionNamedType::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)

Заметьте, что метод ReflectionNamedType::isBuiltin() не различает внутренние и пользовательские классы. Чтобы их различить, нужно использовать метод ReflectionClass::isInternal() для возвращаемого имени класса.

Смотрите также

  • ReflectionType::allowsNull() - Проверяет, допустим ли NULL
  • ReflectionType::__toString() - Преобразование в строку
  • ReflectionClass::isInternal() - Проверяет, является ли класс встроенным в модуль или в ядро
  • ReflectionParameter::getType() - Получить тип параметра


Класс ReflectionObject

(PHP 5, PHP 7, PHP 8)

Введение

Класс ReflectionObject сообщает информацию об объектах (object).

Обзор классов

class ReflectionObject extends ReflectionClass {
/* Наследуемые константы */
public const int ReflectionClass::IS_IMPLICIT_ABSTRACT;
public const int ReflectionClass::IS_EXPLICIT_ABSTRACT;
public const int ReflectionClass::IS_FINAL;
public const int ReflectionClass::IS_READONLY;
/* Наследуемые свойства */
public string $name;
/* Методы */
public __construct(object $object)
/* Наследуемые методы */
public static ReflectionClass::export(mixed $argument, bool $return = false): string
public ReflectionClass::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionClass::getConstant(string $name): mixed
public ReflectionClass::getConstants(?int $filter = null): array
public ReflectionClass::getConstructor(): ?ReflectionMethod
public ReflectionClass::getDefaultProperties(): array
public ReflectionClass::getDocComment(): string|false
public ReflectionClass::getEndLine(): int|false
public ReflectionClass::getExtension(): ?ReflectionExtension
public ReflectionClass::getExtensionName(): string|false
public ReflectionClass::getFileName(): string|false
public ReflectionClass::getInterfaceNames(): array
public ReflectionClass::getInterfaces(): array
public ReflectionClass::getMethod(string $name): ReflectionMethod
public ReflectionClass::getMethods(?int $filter = null): array
public ReflectionClass::getModifiers(): int
public ReflectionClass::getName(): string
public ReflectionClass::getNamespaceName(): string
public ReflectionClass::getParentClass(): ReflectionClass|false
public ReflectionClass::getProperties(?int $filter = null): array
public ReflectionClass::getProperty(string $name): ReflectionProperty
public ReflectionClass::getReflectionConstant(string $name): ReflectionClassConstant|false
public ReflectionClass::getReflectionConstants(?int $filter = null): array
public ReflectionClass::getShortName(): string
public ReflectionClass::getStartLine(): int|false
public ReflectionClass::getStaticProperties(): array
public ReflectionClass::getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed
public ReflectionClass::getTraitAliases(): array
public ReflectionClass::getTraitNames(): array
public ReflectionClass::getTraits(): array
public ReflectionClass::hasConstant(string $name): bool
public ReflectionClass::hasMethod(string $name): bool
public ReflectionClass::hasProperty(string $name): bool
public ReflectionClass::implementsInterface(ReflectionClass|string $interface): bool
public ReflectionClass::inNamespace(): bool
public ReflectionClass::isAbstract(): bool
public ReflectionClass::isAnonymous(): bool
public ReflectionClass::isCloneable(): bool
public ReflectionClass::isEnum(): bool
public ReflectionClass::isFinal(): bool
public ReflectionClass::isInstance(object $object): bool
public ReflectionClass::isInstantiable(): bool
public ReflectionClass::isInterface(): bool
public ReflectionClass::isInternal(): bool
public ReflectionClass::isIterable(): bool
public ReflectionClass::isReadOnly(): bool
public ReflectionClass::isSubclassOf(ReflectionClass|string $class): bool
public ReflectionClass::isTrait(): bool
public ReflectionClass::isUserDefined(): bool
public ReflectionClass::newInstance(mixed ...$args): object
public ReflectionClass::newInstanceArgs(array $args = []): ?object
public ReflectionClass::newInstanceWithoutConstructor(): object
public ReflectionClass::setStaticPropertyValue(string $name, mixed $value): void
public ReflectionClass::__toString(): string
}

Список изменений

Версия | Описание
8.0.0 | Метод ReflectionObject::export() был удалён.

Содержание

  • ReflectionObject::__construct — Конструктор класса ReflectionObject
  • ReflectionObject::export — Экспорт


Конструктор класса ReflectionObject

  • « ReflectionObject
  • ReflectionObject::export »
  • PHP Manual
  • ReflectionObject
  • Конструктор класса ReflectionObject

ReflectionObject::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionObject::__construct — Конструктор класса ReflectionObject

Описание

public ReflectionObject::__construct(object $object)

Создаёт новый объект класса ReflectionObject.

Список параметров

object

Экземпляр объекта.

Смотрите также

  • ReflectionObject::export() - Экспорт
  • Конструкторы


Экспорт

  • « ReflectionObject::__construct
  • ReflectionParameter »
  • PHP Manual
  • ReflectionObject
  • Экспорт

ReflectionObject::export

(PHP 5, PHP 7)

ReflectionObject::export — Экспорт

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

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, PHP 8)

Введение

Класс ReflectionParameter сообщает информацию о параметрах методов и функций.

Чтобы иметь возможность исследовать аргументы функции, сначала создайте экземпляр класса ReflectionFunction либо ReflectionMethod, а затем используйте его метод ReflectionFunctionAbstract::getParameters() для получения массива аргументов.

Обзор классов

class ReflectionParameter implements Reflector {
/* Свойства */
public string $name;
/* Методы */
public __construct(string|array|object $function, int|string $param)
public allowsNull(): bool
public canBePassedByValue(): bool
private __clone(): void
public static export(string $function, string $parameter, bool $return = ?): string
public getAttributes(?string $name = null, int $flags = 0): array
public getClass(): ?ReflectionClass
public getDeclaringClass(): ?ReflectionClass
public getDeclaringFunction(): ReflectionFunctionAbstract
public getDefaultValue(): mixed
public getDefaultValueConstantName(): ?string
public getName(): string
public getPosition(): int
public getType(): ?ReflectionType
public hasType(): bool
public isArray(): bool
public isCallable(): bool
public isDefaultValueAvailable(): bool
public isDefaultValueConstant(): bool
public isOptional(): bool
public isPassedByReference(): bool
public isVariadic(): bool
public __toString(): string
}

Свойства

name

Имя аргумента. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Список изменений

Версия | Описание
8.0.0 | Метод ReflectionParameter::export() был удалён.

Содержание

  • ReflectionParameter::allowsNull — Проверяет, допустимо ли значение null для параметра
  • ReflectionParameter::canBePassedByValue — Проверяет, можно ли передать этот аргумент по значению
  • ReflectionParameter::__clone — Клонировать
  • ReflectionParameter::__construct — Конструктор
  • ReflectionParameter::export — Экспорт
  • ReflectionParameter::getAttributes — Получает атрибуты
  • ReflectionParameter::getClass — Получает объект ReflectionClass для отражаемого параметра или null
  • 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, PHP 8)

ReflectionParameter::allowsNull — Проверяет, допустимо ли значение null для параметра

Описание

public ReflectionParameter::allowsNull(): bool

Проверяет, допустимо ли значение null для параметра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если null допускается, false в противном случае.

Смотрите также

  • ReflectionParameter::isOptional() - Проверяет, является ли аргумент необязательным


Проверяет, можно ли передать этот аргумент по значению

  • « ReflectionParameter::allowsNull
  • ReflectionParameter::__clone »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, можно ли передать этот аргумент по значению

ReflectionParameter::canBePassedByValue

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionParameter::canBePassedByValue — Проверяет, можно ли передать этот аргумент по значению

Описание

public ReflectionParameter::canBePassedByValue(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если передача аргумента по значению возможна, false, если нет. Возвращает null в случае возникновения ошибки.


Клонировать

  • « ReflectionParameter::canBePassedByValue
  • ReflectionParameter::__construct »
  • PHP Manual
  • ReflectionParameter
  • Клонировать

ReflectionParameter::__clone

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::__clone — Клонировать

Описание

private ReflectionParameter::__clone(): void

Клонирует.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Список изменений

Версия | Описание
8.1.0 | Метод больше не является окончательным (final).

Смотрите также

  • ReflectionParameter::toString()
  • Клонирование объектов


Конструктор

  • « ReflectionParameter::__clone
  • ReflectionParameter::export »
  • PHP Manual
  • ReflectionParameter
  • Конструктор

ReflectionParameter::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::__construct — Конструктор

Описание

public ReflectionParameter::__construct(string|array|object $function, int|string $param)

Создаёт экземпляр ReflectionParameter.

Список параметров

function

Функция, параметр которой требуется отразить.

param

Либо целое число (int), указывающее позицию параметра (начиная с нуля), либо имя параметра в виде строки (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()
$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::getAttributes »
  • PHP Manual
  • ReflectionParameter
  • Экспорт

ReflectionParameter::export

(PHP 5, PHP 7)

ReflectionParameter::export — Экспорт

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

public static ReflectionParameter::export(string $function, string $parameter, bool $return = ?): string

Экспорт.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

function

Имя функции.

parameter

Имя аргумента.

return

Установка в true вернёт экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в false (по умолчанию) сделает противоположное.

Возвращаемые значения

Экспорт отражения (reflection).

Смотрите также

  • ReflectionParameter::__toString() - Преобразование в строку


Получает атрибуты

  • « ReflectionParameter::export
  • ReflectionParameter::getClass »
  • PHP Manual
  • ReflectionParameter
  • Получает атрибуты

ReflectionParameter::getAttributes

(PHP 8)

ReflectionParameter::getAttributes — Получает атрибуты

Описание

public ReflectionParameter::getAttributes(?string $name = null, int $flags = 0): array

Возвращает все атрибуты, объявленные в этом параметре, в виде массива ReflectionAttribute.

Список параметров

name

Фильтрация результатов, чтобы оставить только экземпляры ReflectionAttribute для атрибутов, соответствующих этому имени класса.

flags

Флаги для определения способа фильтрации результатов, если указан параметр name.

По умолчанию значение 0, которое возвращает результаты только для атрибутов, относящихся к классу name.

Единственным доступным вариантом является использование константы ReflectionAttribute::IS_INSTANCEOF, которая вместо этого будет использовать для фильтрации instanceof.

Возвращаемые значения

Массив атрибутов в виде объекта ReflectionAttribute.

Примеры

Пример #1 Простой пример

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

function fruitBasket(
#[Fruit]
#[Red]
string $apple
) { }

$reflection = new ReflectionFunction('fruitBasket');
$parameter = $reflection->getParameter('apple');
$attributes = $parameter->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fruit
    [1] => Red
)

Пример #2 Фильтрация результатов по имени класса

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

function fruitBasket(
#[Fruit]
#[Red]
string $apple
) { }

$reflection = new ReflectionFunction('fruitBasket');
$parameter = $reflection->getParameter('apple');
$attributes = $parameter->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fruit
)

Пример #3 Фильтрация результатов по имени класса, с наследованием

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

function fruitBasket(
#[Fruit]
#[Red]
string $apple
) { }

$reflection = new ReflectionFunction('fruitBasket');
$parameter = $reflection->getParameter('apple');
$attributes = $parameter->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Red
)

Смотрите также

  • ReflectionClass::getAttributes() - Получает атрибуты
  • ReflectionClassConstant::getAttributes() - Получает атрибуты
  • ReflectionFunctionAbstract::getAttributes() - Получает атрибуты
  • ReflectionProperty::getAttributes() - Получает атрибуты


Получает объект ReflectionClass для отражаемого параметра или null

  • « ReflectionParameter::getAttributes
  • ReflectionParameter::getDeclaringClass »
  • PHP Manual
  • ReflectionParameter
  • Получает объект ReflectionClass для отражаемого параметра или null

ReflectionParameter::getClass

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::getClass — Получает объект ReflectionClass для отражаемого параметра или null

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

public ReflectionParameter::getClass(): ?ReflectionClass

Получает объект ReflectionClass для отражаемого параметра или null.

Начиная с PHP 8.0.0 эта функция устарела и не рекомендуется. Вместо неё используйте ReflectionParameter::getType(), чтобы получить ReflectionType параметра, а затем опросите этот объект, чтобы определить тип параметра.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass или null, если тип не объявлен или если объявленный тип не является классом или интерфейсом.

Примеры

Пример #1 Пример использования класса ReflectionParameter

<?php
function foo(Exception $a) { }

$functionReflection = new ReflectionFunction('foo');
$parameters = $functionReflection->getParameters();
$aParameter = $parameters[0];

echo $aParameter->getClass()->name;
?>

Смотрите также

  • ReflectionParameter::getDeclaringClass() - Получение объявляющего класса


Получение объявляющего класса

  • « ReflectionParameter::getClass
  • ReflectionParameter::getDeclaringFunction »
  • PHP Manual
  • ReflectionParameter
  • Получение объявляющего класса

ReflectionParameter::getDeclaringClass

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

ReflectionParameter::getDeclaringClass — Получение объявляющего класса

Описание

public ReflectionParameter::getDeclaringClass(): ?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() - Получает объект ReflectionClass для отражаемого параметра или null


Получение объявляющей функции

  • « ReflectionParameter::getDeclaringClass
  • ReflectionParameter::getDefaultValue »
  • PHP Manual
  • ReflectionParameter
  • Получение объявляющей функции

ReflectionParameter::getDeclaringFunction

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

ReflectionParameter::getDeclaringFunction — Получение объявляющей функции

Описание

public ReflectionParameter::getDeclaringFunction(): ReflectionFunctionAbstract

Получает функцию, в которой объявлен параметр.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionFunction.

Смотрите также

  • ReflectionParameter::getDeclaringClass() - Получение объявляющего класса


Получение значения по умолчанию для параметра

  • « ReflectionParameter::getDeclaringFunction
  • ReflectionParameter::getDefaultValueConstantName »
  • PHP Manual
  • ReflectionParameter
  • Получение значения по умолчанию для параметра

ReflectionParameter::getDefaultValue

(PHP 5 >= 5.0.3, PHP 7, PHP 8)

ReflectionParameter::getDefaultValue — Получение значения по умолчанию для параметра

Описание

public ReflectionParameter::getDefaultValue(): mixed

Получает значение по умолчанию параметра, любой определённой пользователем или внутренней функции или метода. Если аргумент не является необязательным, будет выброшено исключение ReflectionException.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение по умолчанию аргумента.

Список изменений

Версия | Описание
8.0.0 | Метод теперь позволяет получить значение по умолчанию для параметров встроенных функций и встроенных методов класса. Ранее выбрасывалось 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

Смотрите также

  • 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, PHP 8)

ReflectionParameter::getDefaultValueConstantName — Возвращает имя константы значения по умолчанию, если значение по умолчанию константа или null

Описание

public ReflectionParameter::getDefaultValueConstantName(): ?string

Возвращает значение по умолчанию константы для параметра любой пользовательской или внутренней функции или метода, если значение по умолчанию константа или null. Если параметр необязательный, выбрасывается исключение ReflectionException.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку в случае успешного выполнения или null в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Метод позволяет получать имена значений по умолчанию для встроенных функций и встроенных методов класса. Ранее выбрасывалось ReflectionException.

Примеры

Пример #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

Смотрите также

  • ReflectionParameter::isOptional() - Проверяет, является ли аргумент необязательным
  • ReflectionParameter::isDefaultValueConstant() - Определить, является ли значение параметра по умолчанию константой
  • ReflectionParameter::getDefaultValue() - Получение значения по умолчанию для параметра


Получение имени параметра

  • « ReflectionParameter::getDefaultValueConstantName
  • ReflectionParameter::getPosition »
  • PHP Manual
  • ReflectionParameter
  • Получение имени параметра

ReflectionParameter::getName

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::getName — Получение имени параметра

Описание

public ReflectionParameter::getName(): string

Получает имя параметра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя отражённого параметра.

Смотрите также

  • ReflectionParameter::getValue()


Получение позиции параметра

  • « ReflectionParameter::getName
  • ReflectionParameter::getType »
  • PHP Manual
  • ReflectionParameter
  • Получение позиции параметра

ReflectionParameter::getPosition

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

ReflectionParameter::getPosition — Получение позиции параметра

Описание

public ReflectionParameter::getPosition(): int

Получает позицию параметра в списке параметров.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Позиция параметра, слева направо, первый параметр находится на позиции #0.

Смотрите также

  • ReflectionParameter::getName() - Получение имени параметра


Получить тип параметра

  • « ReflectionParameter::getPosition
  • ReflectionParameter::hasType »
  • PHP Manual
  • ReflectionParameter
  • Получить тип параметра

ReflectionParameter::getType

(PHP 7, PHP 8)

ReflectionParameter::getType — Получить тип параметра

Описание

public ReflectionParameter::getType(): ?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

Пример #3 Пример использования ReflectionParameter::getType() в PHP 8.0.0 и более поздних

Начиная с PHP 8.0.0, этот метод может возвращать экземпляр ReflectionNamedType или экземпляр ReflectionUnionType. Последний представляет собой коллекцию первых. Для анализа типа часто бывает удобно преобразовать его в массив объектов ReflectionNamedType. Следующая функция вернёт массив из 0 или более экземпляров ReflectionNamedType.

<?php
function getAllTypes(ReflectionParameter $reflectionParameter): array
{
$reflectionType = $reflectionParameter->getType();

if (!$reflectionType) return [];

return $reflectionType instanceof ReflectionUnionType
? $reflectionType->getTypes()
: [$reflectionType];
}
?>

Смотрите также

  • ReflectionParameter::hasType() - Проверить, указан ли тип параметра
  • ReflectionType::__toString() - Преобразование в строку


Проверить, указан ли тип параметра

  • « ReflectionParameter::getType
  • ReflectionParameter::isArray »
  • PHP Manual
  • ReflectionParameter
  • Проверить, указан ли тип параметра

ReflectionParameter::hasType

(PHP 7, PHP 8)

ReflectionParameter::hasType — Проверить, указан ли тип параметра

Описание

public ReflectionParameter::hasType(): 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, PHP 8)

ReflectionParameter::isArray — Проверяет, ожидает ли аргумент массив в качестве значения

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

В приведённом ниже примере показан альтернативный способ получения этой информации.

Описание

public ReflectionParameter::isArray(): bool

Проверяет, ожидает ли аргумент массив в качестве значения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если в качестве значения ожидается массив (array), false в противном случае.

Примеры

Пример #1 Альтернатива в PHP 8.0.0

Начиная с PHP 8.0.0, следующий код сообщит, поддерживает ли тип вызываемые объекты, в том числе как часть объединения.

<?php
function declaresArray(ReflectionParameter $reflectionParameter): bool
{
$reflectionType = $reflectionParameter->getType();

if (!$reflectionType) return false;

$types = $reflectionType instanceof ReflectionUnionType
? $reflectionType->getTypes()
: [$reflectionType];

return in_array('array', array_map(fn(ReflectionNamedType $t) => $t->getName(), $types));
}
?>

Смотрите также

  • ReflectionParameter::isOptional() - Проверяет, является ли аргумент необязательным


Определить, должен ли параметр быть типа callable

  • « ReflectionParameter::isArray
  • ReflectionParameter::isDefaultValueAvailable »
  • PHP Manual
  • ReflectionParameter
  • Определить, должен ли параметр быть типа callable

ReflectionParameter::isCallable

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionParameter::isCallable — Определить, должен ли параметр быть типа callable

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

В приведённом ниже примере показан альтернативный способ получения этой информации.

Описание

public ReflectionParameter::isCallable(): bool

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если параметр callable, false в противном случае. В случае возникновения ошибки вернёт null.

Примеры

Пример #1 Альтернатива в PHP 8.0.0

Начиная с PHP 8.0.0, следующий код сообщит, поддерживает ли тип вызываемые объекты, в том числе как часть объединения.

<?php
function declaresCallable(ReflectionParameter $reflectionParameter): bool
{
$reflectionType = $reflectionParameter->getType();

if (!$reflectionType) return false;

$types = $reflectionType instanceof ReflectionUnionType
? $reflectionType->getTypes()
: [$reflectionType];

return in_array('callable', array_map(fn(ReflectionNamedType $t) => $t->getName(), $types));
}
?>


Проверяет, доступно ли значение по умолчанию

  • « ReflectionParameter::isCallable
  • ReflectionParameter::isDefaultValueConstant »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, доступно ли значение по умолчанию

ReflectionParameter::isDefaultValueAvailable

(PHP 5 >= 5.0.3, PHP 7, PHP 8)

ReflectionParameter::isDefaultValueAvailable — Проверяет, доступно ли значение по умолчанию

Описание

public ReflectionParameter::isDefaultValueAvailable(): 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, PHP 8)

ReflectionParameter::isDefaultValueConstant — Определить, является ли значение параметра по умолчанию константой

Описание

public ReflectionParameter::isDefaultValueConstant(): bool

Возвращает является ли константа значением по умолчанию для этого параметра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если значение по умолчанию константа, false, в противном случае.

Смотрите также

  • ReflectionParameter::getDefaultValueConstantName() - Возвращает имя константы значения по умолчанию, если значение по умолчанию константа или null
  • ReflectionParameter::isDefaultValueAvailable() - Проверяет, доступно ли значение по умолчанию


Проверяет, является ли аргумент необязательным

  • « ReflectionParameter::isDefaultValueConstant
  • ReflectionParameter::isPassedByReference »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, является ли аргумент необязательным

ReflectionParameter::isOptional

(PHP 5 >= 5.0.3, PHP 7, PHP 8)

ReflectionParameter::isOptional — Проверяет, является ли аргумент необязательным

Описание

public ReflectionParameter::isOptional(): bool

Проверяет, является ли аргумент необязательным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если аргумент необязательный, false в противном случае.

Смотрите также

  • ReflectionParameter::getName() - Получение имени параметра


Проверяет, передан ли параметр по ссылке

  • « ReflectionParameter::isOptional
  • ReflectionParameter::isVariadic »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, передан ли параметр по ссылке

ReflectionParameter::isPassedByReference

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::isPassedByReference — Проверяет, передан ли параметр по ссылке

Описание

public ReflectionParameter::isPassedByReference(): bool

Проверяет, что параметр передан по ссылке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если параметр передан по ссылке, false в противном случае.

Смотрите также

  • ReflectionParameter::getName() - Получение имени параметра


Проверить, является ли параметр параметром с переменным количеством аргументов

  • « ReflectionParameter::isPassedByReference
  • ReflectionParameter::__toString »
  • PHP Manual
  • ReflectionParameter
  • Проверить, является ли параметр параметром с переменным количеством аргументов

ReflectionParameter::isVariadic

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

ReflectionParameter::isVariadic — Проверить, является ли параметр параметром с переменным количеством аргументов

Описание

public ReflectionParameter::isVariadic(): bool

Проверяет, определён ли параметр как параметр с переменным числом аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если параметр принимает переменное количество аргументов, false в противном случае.


Преобразование в строку

  • « ReflectionParameter::isVariadic
  • ReflectionProperty »
  • PHP Manual
  • ReflectionParameter
  • Преобразование в строку

ReflectionParameter::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::__toString — Преобразование в строку

Описание

public ReflectionParameter::__toString(): string

Получает строковое представление параметра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление параметра.

Примеры

Пример #1 Пример использования ReflectionParameter::__toString()

<?php
echo new ReflectionParameter('substr', 0);
?>

Результатом выполнения данного примера будет что-то подобное:

Parameter #0 [ <required> string $string ]

Смотрите также

  • ReflectionFunction::__toString() - Возвращает строковое представление объекта ReflectionFunction
  • ReflectionMethod::__toString() - Возвращает строковое представление объекта ReflectionMethod
  • __toString()


Класс ReflectionProperty

(PHP 5, PHP 7, PHP 8)

Введение

Класс ReflectionProperty сообщает информацию о свойствах класса.

Обзор классов

class ReflectionProperty implements Reflector {
/* Константы */
public const int IS_STATIC;
public const int IS_READONLY;
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
/* Свойства */
public string $name;
public string $class;
/* Методы */
public __construct(object|string $class, string $property)
private __clone(): void
public static export(mixed $class, string $name, bool $return = ?): string
public getAttributes(?string $name = null, int $flags = 0): array
public getDeclaringClass(): ReflectionClass
public getDefaultValue(): mixed
public getDocComment(): string|false
public getModifiers(): int
public getName(): string
public getType(): ?ReflectionType
public getValue(?object $object = null): mixed
public hasDefaultValue(): bool
public hasType(): bool
public isDefault(): bool
public isInitialized(?object $object = null): bool
public isPrivate(): bool
public isPromoted(): bool
public isProtected(): bool
public isPublic(): bool
public isReadOnly(): bool
public isStatic(): bool
public setAccessible(bool $accessible): void
public setValue(object $object, mixed $value): void
public __toString(): string
}

Свойства

name

Имя свойства. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

class

Имя класса, в котором данное свойство описано. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Предопределённые константы

Модификаторы ReflectionProperty

ReflectionProperty::IS_STATIC

Указывает, что свойство является статическим. До PHP 7.4.0, значение было 1.

ReflectionProperty::IS_READONLY

Указывает, что свойство является доступным только для чтения. Доступно, начиная с PHP 8.1.0.

ReflectionProperty::IS_PUBLIC

Указывает, что свойство является общедоступным. До PHP 7.4.0, значение было 256.

ReflectionProperty::IS_PROTECTED

Указывает, что свойство является защищённым. До PHP 7.4.0, значение было 512.

ReflectionProperty::IS_PRIVATE

Указывает, что свойство является закрытым. До PHP 7.4.0, значение было 1024.

Замечание:

Значения этих констант могут изменяться от версии к версии PHP. Рекомендуется всегда использовать константы и не полагаться напрямую на значения.

Список изменений

Версия | Описание
8.0.0 | Метод ReflectionProperty::export() был удалён.

Содержание

  • ReflectionProperty::__clone — Клонировать
  • ReflectionProperty::__construct — Конструктор класса ReflectionProperty
  • ReflectionProperty::export — Экспорт
  • ReflectionProperty::getAttributes — Получает атрибуты
  • ReflectionProperty::getDeclaringClass — Получение объявляющего класса
  • ReflectionProperty::getDefaultValue — Возвращает значение по умолчанию, заданное для свойства
  • ReflectionProperty::getDocComment — Получение doc-комментария для свойства
  • ReflectionProperty::getModifiers — Получение модификаторов свойств класса
  • ReflectionProperty::getName — Получение имени свойства
  • ReflectionProperty::getType — Получить тип свойства
  • ReflectionProperty::getValue — Получает значение
  • ReflectionProperty::hasDefaultValue — Проверяет, задано ли для свойства значение по умолчанию
  • ReflectionProperty::hasType — Проверить, задан ли для свойства тип
  • ReflectionProperty::isDefault — Проверяет, является ли значение свойством по умолчанию
  • ReflectionProperty::isInitialized — Проверить, инициализировано ли свойство
  • ReflectionProperty::isPrivate — Проверяет, является ли свойство закрытым
  • ReflectionProperty::isPromoted — Проверяет, определено ли свойство в конструкторе
  • ReflectionProperty::isProtected — Проверяет, является ли свойство защищённым
  • ReflectionProperty::isPublic — Проверяет, является ли свойство общедоступным
  • ReflectionProperty::isReadOnly — Проверяет, является ли свойство readonly-свойством
  • ReflectionProperty::isStatic — Проверка, является ли свойство статическим
  • ReflectionProperty::setAccessible — Делает свойство доступным
  • ReflectionProperty::setValue — Установка значения свойства
  • ReflectionProperty::__toString — Преобразование в строку


Клонировать

  • « ReflectionProperty
  • ReflectionProperty::__construct »
  • PHP Manual
  • ReflectionProperty
  • Клонировать

ReflectionProperty::__clone

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::__clone — Клонировать

Описание

private ReflectionProperty::__clone(): void

Клонирует.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Список изменений

Версия | Описание
8.1.0 | Метод больше не является окончательным (final).

Смотрите также

  • ReflectionProperty::export() - Экспорт
  • Копирование объектов


Конструктор класса ReflectionProperty

  • « ReflectionProperty::__clone
  • ReflectionProperty::export »
  • PHP Manual
  • ReflectionProperty
  • Конструктор класса ReflectionProperty

ReflectionProperty::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::__construct — Конструктор класса ReflectionProperty

Описание

public ReflectionProperty::__construct(object|string $class, string $property)

Список параметров

class

Либо строка, содержащая имя отражаемого класса, либо объект.

property

Имя свойства, которое требуется отобразить.

Ошибки

Попытка получить или задать значение защищённого или закрытого свойства приведёт к выбрасыванию исключения.

Примеры

Пример #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);
var_dump($prop->getValue($obj)); // int(2)

$prop = new ReflectionProperty('Foo', 'z');
$prop->setAccessible(true);
var_dump($prop->getValue($obj)); // int(2)

?>

Результатом выполнения данного примера будет что-то подобное:

int(2)
int(3)

Смотрите также

  • ReflectionProperty::getName() - Получение имени свойства
  • Конструкторы


Экспорт

  • « ReflectionProperty::__construct
  • ReflectionProperty::getAttributes »
  • PHP Manual
  • ReflectionProperty
  • Экспорт

ReflectionProperty::export

(PHP 5, PHP 7)

ReflectionProperty::export — Экспорт

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

public static ReflectionProperty::export(mixed $class, string $name, bool $return = ?): string

Экспортирует отражение (reflection).

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

argument

Экспортируемый объект Reflection.

name

Имя свойства.

return

Установка в true вернёт экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в false (по умолчанию) сделает противоположное.

Возвращаемые значения

Смотрите также

  • ReflectionProperty::__toString() - Преобразование в строку


Получает атрибуты

  • « ReflectionProperty::export
  • ReflectionProperty::getDeclaringClass »
  • PHP Manual
  • ReflectionProperty
  • Получает атрибуты

ReflectionProperty::getAttributes

(PHP 8)

ReflectionProperty::getAttributes — Получает атрибуты

Описание

public ReflectionProperty::getAttributes(?string $name = null, int $flags = 0): array

Возвращает все атрибуты, объявленные в этом свойстве класса, в виде массива ReflectionAttribute.

Список параметров

name

Фильтрация результатов, чтобы оставить только экземпляры ReflectionAttribute для атрибутов, соответствующих этому имени класса.

flags

Флаги для определения способа фильтрации результатов, если указан параметр name.

По умолчанию значение 0, которое возвращает результаты только для атрибутов, относящихся к классу name.

Единственным доступным вариантом является использование константы ReflectionAttribute::IS_INSTANCEOF, которая вместо этого будет использовать для фильтрации instanceof.

Возвращаемые значения

Массив атрибутов в виде объекта ReflectionAttribute.

Примеры

Пример #1 Простой пример

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Basket {
#[Fruit]
#[Red]
public string $apple = 'apple';
}

$property = new ReflectionProperty('Basket', 'apple');
$attributes = $property->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fruit
    [1] => Red
)

Пример #2 Фильтрация результатов по имени класса

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Basket {
#[Fruit]
#[Red]
public string $apple = 'apple';
}

$property = new ReflectionProperty('Basket', 'apple');
$attributes = $property->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fruit
)

Пример #3 Фильтрация результатов по имени класса, с наследованием

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

#[Attribute]
class Red implements Color {
}

class Basket {
#[Fruit]
#[Red]
public string $apple = 'apple';
}

$property = new ReflectionProperty('Basket', 'apple');
$attributes = $property->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

Результат выполнения данного примера:

Array
(
    [0] => Red
)

Смотрите также

  • ReflectionClass::getAttributes() - Получает атрибуты
  • ReflectionClassConstant::getAttributes() - Получает атрибуты
  • ReflectionFunctionAbstract::getAttributes() - Получает атрибуты
  • ReflectionParameter::getAttributes() - Получает атрибуты


Получение объявляющего класса

  • « ReflectionProperty::getAttributes
  • ReflectionProperty::getDefaultValue »
  • PHP Manual
  • ReflectionProperty
  • Получение объявляющего класса

ReflectionProperty::getDeclaringClass

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::getDeclaringClass — Получение объявляющего класса

Описание

public ReflectionProperty::getDeclaringClass(): ReflectionClass

Получение объявляющего класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass.

Смотрите также

  • ReflectionProperty::getName() - Получение имени свойства


Возвращает значение по умолчанию, заданное для свойства

  • « ReflectionProperty::getDeclaringClass
  • ReflectionProperty::getDocComment »
  • PHP Manual
  • ReflectionProperty
  • Возвращает значение по умолчанию, заданное для свойства

ReflectionProperty::getDefaultValue

(PHP 8)

ReflectionProperty::getDefaultValue — Возвращает значение по умолчанию, заданное для свойства

Описание

public ReflectionProperty::getDefaultValue(): mixed

Возвращает явно или неявно заданное значение по умолчанию для свойства.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение по умолчанию (включая null), если оно задано. Если значение по умолчанию не задано, то возвращается null. Для определения того, задано ли в принципе значение по умолчанию для свойства, используйте ReflectionProperty::hasDefaultValue().

Примеры

Пример #1 Пример использования ReflectionProperty::getDefaultValue()

<?php
class Foo {
public $bar = 1;
public ?int $baz;
public int $boing = 0;
public function __construct(public string $bak = "default") { }
}

$ro = new ReflectionClass(Foo::class);
var_dump($ro->getProperty('bar')->getDefaultValue());
var_dump($ro->getProperty('baz')->getDefaultValue());
var_dump($ro->getProperty('boing')->getDefaultValue());
var_dump($ro->getProperty('bak')->getDefaultValue());
?>

Результат выполнения данного примера:

int(1)
NULL
int(0)
NULL

Смотрите также

  • ReflectionProperty::hasDefaultValue() - Проверяет, задано ли для свойства значение по умолчанию


Получение doc-комментария для свойства

  • « ReflectionProperty::getDefaultValue
  • ReflectionProperty::getModifiers »
  • PHP Manual
  • ReflectionProperty
  • Получение doc-комментария для свойства

ReflectionProperty::getDocComment

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ReflectionProperty::getDocComment — Получение doc-комментария для свойства

Описание

public ReflectionProperty::getDocComment(): string|false

Получает doc-комментарий для свойства.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Doc-комментарий, если он существует, в противном случае false.

Примеры

Пример #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, PHP 8)

ReflectionProperty::getModifiers — Получение модификаторов свойств класса

Описание

public ReflectionProperty::getModifiers(): int

Получает список модификаторов

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовое представление модификаторов. Фактическое значение этих модификаторов описано в разделе предопределённые константы.

Смотрите также

  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство закрытым
  • Reflection::getModifierNames() - Получение имён модификаторов


Получение имени свойства

  • « ReflectionProperty::getModifiers
  • ReflectionProperty::getType »
  • PHP Manual
  • ReflectionProperty
  • Получение имени свойства

ReflectionProperty::getName

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::getName — Получение имени свойства

Описание

public ReflectionProperty::getName(): string

Получает имя свойства.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя отражённого свойства.

Смотрите также

  • ReflectionProperty::getValue() - Получает значение


Получить тип свойства

  • « ReflectionProperty::getName
  • ReflectionProperty::getValue »
  • PHP Manual
  • ReflectionProperty
  • Получить тип свойства

ReflectionProperty::getType

(PHP 7 >= 7.4.0, PHP 8)

ReflectionProperty::getType — Получить тип свойства

Описание

public ReflectionProperty::getType(): ?ReflectionType

Возвращает тип свойства.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ReflectionType, если для свойства задан тип, либо null если нет.

Примеры

Пример #1 Пример использования ReflectionProperty::getType()

<?php
class User
{
public string $name;
}

$rp = new ReflectionProperty('User', 'name');
echo $rp->getType()->getName();
?>

Результат выполнения данного примера:

string

Смотрите также

  • ReflectionProperty::hasType() - Проверить, задан ли для свойства тип
  • ReflectionProperty::isInitialized() - Проверить, инициализировано ли свойство


Получает значение

  • « ReflectionProperty::getType
  • ReflectionProperty::hasDefaultValue »
  • PHP Manual
  • ReflectionProperty
  • Получает значение

ReflectionProperty::getValue

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::getValue — Получает значение

Описание

public ReflectionProperty::getValue(?object $object = null): mixed

Получает значение свойства.

Список параметров

object

Если свойство не статическое, необходимо передать объект, из которого требуется это свойство получить. Если вам нужно получить свойство по умолчанию, не предоставляя объект, используйте функцию ReflectionClass::getDefaultProperties().

Возвращаемые значения

Текущее значение свойства.

Список изменений

Версия | Описание
8.1.0 | Доступ к закрытым и защищённым свойствам можно сразу же получить с помощью метода ReflectionProperty::getValue(). Ранее их нужно было сделать доступными с помощью метода ReflectionProperty::setAccessible(); в противном случае выбрасывалось исключение ReflectionException.
8.0.0 | object теперь допускает значение null.

Примеры

Пример #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); // требуется только до PHP 8.1.0
var_dump($reflectionProperty->getValue(new Foo));
?>

Результат выполнения данного примера:

string(6) "foobar"
string(6) "barfoo"
string(6) "foofoo"

Смотрите также

  • ReflectionProperty::setValue() - Установка значения свойства
  • ReflectionProperty::setAccessible() - Делает свойство доступным
  • ReflectionClass::getDefaultProperties() - Возвращает свойства по умолчанию
  • ReflectionClass::getStaticPropertyValue() - Возвращает значение статического свойства


Проверяет, задано ли для свойства значение по умолчанию

  • « ReflectionProperty::getValue
  • ReflectionProperty::hasType »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, задано ли для свойства значение по умолчанию

ReflectionProperty::hasDefaultValue

(PHP 8)

ReflectionProperty::hasDefaultValue — Проверяет, задано ли для свойства значение по умолчанию

Описание

public ReflectionProperty::hasDefaultValue(): bool

Проверяет, задано ли для свойства значение по умолчанию, включая null. Возвращает false для типизированных свойств без заданного значения по умолчанию и для динамически определяемых свойств.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Если для свойства задано значение по умолчанию (включая null), то возвращает true. Если свойство типизированное и для него не задано значение по умолчанию, либо если это динамически определяемое свойство, то возвращает false.

Примеры

Пример #1 Пример использования ReflectionProperty::hasDefaultValue()

<?php
class Foo {
public $bar;
public ?int $baz;
public ?int $foo = null;
public int $boing;

public function __construct()
{
$this->ping = '';
}
}

$ro = new ReflectionObject(new Foo());
var_dump($ro->getProperty('bar')->hasDefaultValue());
var_dump($ro->getProperty('baz')->hasDefaultValue());
var_dump($ro->getProperty('foo')->hasDefaultValue());
var_dump($ro->getProperty('boing')->hasDefaultValue());
var_dump($ro->getProperty('ping')->hasDefaultValue()); // Динамическое свойство
var_dump($ro->getProperty('pong')->hasDefaultValue()); // Неопределённое свойство
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Fatal error: Uncaught ReflectionException: Property Foo::$pong does not exist in example.php

Смотрите также

  • ReflectionProperty::getDefaultValue() - Возвращает значение по умолчанию, заданное для свойства


Проверить, задан ли для свойства тип

  • « ReflectionProperty::hasDefaultValue
  • ReflectionProperty::isDefault »
  • PHP Manual
  • ReflectionProperty
  • Проверить, задан ли для свойства тип

ReflectionProperty::hasType

(PHP 7 >= 7.4.0, PHP 8)

ReflectionProperty::hasType — Проверить, задан ли для свойства тип

Описание

public ReflectionProperty::hasType(): bool

Проверить, задан ли для свойства тип.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Если тип задан, то true, а если нет, то false.

Примеры

Пример #1 Пример использования ReflectionProperty::hasType()

<?php
class User
{
public string $name;
}

$rp = new ReflectionProperty('User', 'name');
var_dump($rp->hasType());
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • ReflectionProperty::getType() - Получить тип свойства
  • ReflectionProperty::isInitialized() - Проверить, инициализировано ли свойство


Проверяет, является ли значение свойством по умолчанию

  • « ReflectionProperty::hasType
  • ReflectionProperty::isInitialized »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли значение свойством по умолчанию

ReflectionProperty::isDefault

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isDefault — Проверяет, является ли значение свойством по умолчанию

Описание

public ReflectionProperty::isDefault(): bool

Проверяет, является ли значение свойством заданным на этапе компиляции или установлено динамически во время исполнения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если свойство объявлено во время компиляции, либо false, если оно было создано во время выполнения.

Примеры

Пример #1 Пример использования ReflectionProperty::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() - Получает значение


Проверить, инициализировано ли свойство

  • « ReflectionProperty::isDefault
  • ReflectionProperty::isPrivate »
  • PHP Manual
  • ReflectionProperty
  • Проверить, инициализировано ли свойство

ReflectionProperty::isInitialized

(PHP 7 >= 7.4.0, PHP 8)

ReflectionProperty::isInitialized — Проверить, инициализировано ли свойство

Описание

public ReflectionProperty::isInitialized(?object $object = null): bool

Проверяет, инициализировано ли свойство.

Список параметров

object

Если свойство не статическое, то необходимо передать объект, для которого будет производиться проверка.

Возвращаемые значения

Возвращает false для типизированных свойств, которым не было присвоено значение и для свойств, к которым явно применили функцию unset(). Для всех остальных свойств возвращает true.

Ошибки

Бросает исключение ReflectionException если свойство недоступно. Доступ к protected и private свойствам можно получить с помощью ReflectionProperty::setAccessible().

Список изменений

Версия | Описание
8.0.0 | object теперь допускает значение null.

Примеры

Пример #1 Пример использования ReflectionProperty::isInitialized()

<?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() - Проверить, задан ли для свойства тип


Проверяет, является ли свойство закрытым

  • « ReflectionProperty::isInitialized
  • ReflectionProperty::isPromoted »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли свойство закрытым

ReflectionProperty::isPrivate

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isPrivate — Проверяет, является ли свойство закрытым

Описание

public ReflectionProperty::isPrivate(): bool

Проверяет, является ли свойство закрытым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если свойство закрытое, false в противном случае.

Смотрите также

  • ReflectionProperty::isPublic() - Проверяет, является ли свойство общедоступным
  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищённым
  • ReflectionProperty::isReadOnly() - Проверяет, является ли свойство readonly-свойством
  • ReflectionProperty::isStatic() - Проверка, является ли свойство статическим


Проверяет, определено ли свойство в конструкторе

  • « ReflectionProperty::isPrivate
  • ReflectionProperty::isProtected »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, определено ли свойство в конструкторе

ReflectionProperty::isPromoted

(PHP 8)

ReflectionProperty::isPromoted — Проверяет, определено ли свойство в конструкторе

Описание

public ReflectionProperty::isPromoted(): bool

Проверяет, определено ли свойство в конструкторе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если свойство определено в конструкторе, false в противном случае.

Примеры

Пример #1 Пример использования ReflectionProperty::isPromoted()

<?php
class Foo {
public $baz;

public function __construct(public $bar) {}
}

$o = new Foo(42);
$o->baz = 42;

$ro = new ReflectionObject($o);
var_dump($ro->getProperty('bar')->isPromoted());
var_dump($ro->getProperty('baz')->isPromoted());
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • ReflectionProperty::isDefault() - Проверяет, является ли значение свойством по умолчанию
  • ReflectionProperty::isInitialized() - Проверить, инициализировано ли свойство
  • ReflectionProperty::getValue() - Получает значение


Проверяет, является ли свойство защищённым

  • « ReflectionProperty::isPromoted
  • ReflectionProperty::isPublic »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли свойство защищённым

ReflectionProperty::isProtected

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isProtected — Проверяет, является ли свойство защищённым

Описание

public ReflectionProperty::isProtected(): bool

Проверяет, является ли свойство защищённым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если свойство защищённое, false в противном случае.

Смотрите также

  • ReflectionProperty::isPublic() - Проверяет, является ли свойство общедоступным
  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство закрытым
  • ReflectionProperty::isReadOnly() - Проверяет, является ли свойство readonly-свойством
  • ReflectionProperty::isStatic() - Проверка, является ли свойство статическим


Проверяет, является ли свойство общедоступным

  • « ReflectionProperty::isProtected
  • ReflectionProperty::isReadOnly »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли свойство общедоступным

ReflectionProperty::isPublic

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isPublic — Проверяет, является ли свойство общедоступным

Описание

public ReflectionProperty::isPublic(): bool

Проверяет, является ли свойство общедоступным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если свойство общедоступное, false в противном случае.

Смотрите также

  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищённым
  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство закрытым
  • ReflectionProperty::isReadOnly() - Проверяет, является ли свойство readonly-свойством
  • ReflectionProperty::isStatic() - Проверка, является ли свойство статическим


Проверяет, является ли свойство readonly-свойством

  • « ReflectionProperty::isPublic
  • ReflectionProperty::isStatic »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли свойство readonly-свойством

ReflectionProperty::isReadOnly

(PHP 8 >= 8.1.0)

ReflectionProperty::isReadOnly — Проверяет, является ли свойство readonly-свойством

Описание

public ReflectionProperty::isReadOnly(): bool

Проверяет, является ли свойство readonly-свойством.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если свойство является readonly-свойством, в противном случае возвращает false.

Смотрите также

  • ReflectionProperty::isPublic() - Проверяет, является ли свойство общедоступным
  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищённым
  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство закрытым
  • ReflectionProperty::isStatic() - Проверка, является ли свойство статическим


Проверка, является ли свойство статическим

  • « ReflectionProperty::isReadOnly
  • ReflectionProperty::setAccessible »
  • PHP Manual
  • ReflectionProperty
  • Проверка, является ли свойство статическим

ReflectionProperty::isStatic

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isStatic — Проверка, является ли свойство статическим

Описание

public ReflectionProperty::isStatic(): bool

Проверяет, является ли свойство статическим.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true, если свойство статическое, false в противном случае.

Смотрите также

  • ReflectionProperty::isPublic() - Проверяет, является ли свойство общедоступным
  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищённым
  • ReflectionProperty::isReadOnly() - Проверяет, является ли свойство readonly-свойством
  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство закрытым


Делает свойство доступным

  • « ReflectionProperty::isStatic
  • ReflectionProperty::setValue »
  • PHP Manual
  • ReflectionProperty
  • Делает свойство доступным

ReflectionProperty::setAccessible

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionProperty::setAccessible — Делает свойство доступным

Описание

public ReflectionProperty::setAccessible(bool $accessible): void

Обеспечивает доступ к защищённому или закрытому свойству с помощью методов ReflectionProperty::getValue() и ReflectionProperty::setValue()

Замечание: Начиная с PHP 8.1.0, вызов метода не имеет смысла; все методы вызываются по умолчанию.

Список параметров

accessible

true делает свойство доступным, false - закрывает доступ к свойству.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Определение простого класса

<?php
class MyClass
{
private $foo = 'bar';
}

$property = new ReflectionProperty("MyClass", "foo");
$property->setAccessible(true);

$obj = new MyClass();
echo $property->getValue($obj);
echo $obj->foo;
?>

Результатом выполнения данного примера будет что-то подобное:

bar
Fatal error: Uncaught Error: Cannot access private property MyClass::$foo in /in/WJqTv:12

Смотрите также

  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство закрытым
  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищённым


Установка значения свойства

  • « ReflectionProperty::setAccessible
  • ReflectionProperty::__toString »
  • PHP Manual
  • ReflectionProperty
  • Установка значения свойства

ReflectionProperty::setValue

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::setValue — Установка значения свойства

Описание

public ReflectionProperty::setValue(object $object, mixed $value): void
public ReflectionProperty::setValue(mixed $value): void

Задаёт (изменяет) значение свойства.

Замечание: Начиная с PHP 8.3.0, вызов этого метода с единственным аргументом устарел, вместо него необходимо вызывать метод ReflectionClass::setStaticPropertyValue().

Список параметров

object

Если свойство нестатическое, необходимо передать объект, свойство в котором нужно изменить. Если свойство статическое, должно быть передано значение null.

value

Новое значение.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода с единственным аргументом устарел, вместо него для изменения статического свойства необходимо вызывать метод ReflectionClass::setStaticPropertyValue().
8.1.0 | Доступ к закрытым и защищённым свойствам можно сразу же получить с помощью метода ReflectionProperty::getValue(). Ранее их нужно было сделать доступными с помощью метода ReflectionProperty::setAccessible(); в противном случае выбрасывалось исключение ReflectionException.

Примеры

Пример #1 Пример использования ReflectionProperty::setValue()

<?php
class Foo {
public static $staticProperty;

public $property;
protected $privateProperty;
}

$reflectionClass = new ReflectionClass('Foo');

// С PHP 8.3 больше не нужно вызывать метод setValue для установки значения статического свойства, вместо него необходимо использовать метод setStaticPropertyValue()
$reflectionClass->setStaticPropertyValue('staticProperty', '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); // требуется только до PHP 8.1.0
$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, PHP 8)

ReflectionProperty::__toString — Преобразование в строку

Описание

public ReflectionProperty::__toString(): string

Возвращает строковое представление свойства.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление свойства.

Смотрите также

  • __toString()


Класс ReflectionType

(PHP 7, PHP 8)

Введение

Класс ReflectionType сообщает информацию о типе параметра/возвращаемого значения функции или типе свойства класса. Модуль Reflection объявляет следующие подтипы:

  • ReflectionNamedType (начиная с PHP 7.1.0)
  • ReflectionUnionType (начиная с PHP 8.0.0)
  • ReflectionIntersectionType (начиная с PHP 8.1.0)

Обзор классов

abstract class ReflectionType implements Stringable {
/* Методы */
public allowsNull(): bool
public __toString(): string
}

Список изменений

Версия | Описание
8.0.0 | ReflectionType стал абстрактным, а метод ReflectionType::isBuiltin() был перемещён в ReflectionNamedType::isBuiltin().

Содержание

  • ReflectionType::allowsNull — Проверяет, допустим ли NULL
  • ReflectionType::__toString — Преобразование в строку


Проверяет, допустим ли NULL

  • « ReflectionType
  • ReflectionType::__toString »
  • PHP Manual
  • ReflectionType
  • Проверяет, допустим ли NULL

ReflectionType::allowsNull

(PHP 7, PHP 8)

ReflectionType::allowsNull — Проверяет, допустим ли NULL

Описание

public ReflectionType::allowsNull(): 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)

Смотрите также

  • ReflectionNamedType::isBuiltin() - Проверяет, является ли тип встроенным
  • ReflectionType::__toString() - Преобразование в строку
  • ReflectionParameter::getType() - Получить тип параметра


Преобразование в строку

  • « ReflectionType::allowsNull
  • ReflectionUnionType »
  • PHP Manual
  • ReflectionType
  • Преобразование в строку

ReflectionType::__toString

(PHP 7, PHP 8)

ReflectionType::__toString — Преобразование в строку

Внимание

Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.1.0. Использовать эту функции крайне не рекомендуется.

Описание

public ReflectionType::__toString(): string

Получает имя типа параметра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает тип параметра.

Список изменений

Версия | Описание
7.1.0 | ReflectionType::__toString() объявлен устаревшим.

Примеры

Пример #1 Пример использования ReflectionType::__toString()

<?php
function someFunction(string $param) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

echo $reflectionParam->getType();

Результатом выполнения данного примера будет что-то подобное:

string

Смотрите также

  • ReflectionNamedType::getName() - Получает имя типа в виде строки
  • ReflectionNamedType::isBuiltin() - Проверяет, является ли тип встроенным
  • ReflectionType::allowsNull() - Проверяет, допустим ли NULL
  • ReflectionUnionType::getTypes() - Возвращает типы, включённые в тип union
  • ReflectionParameter::getType() - Получить тип параметра


Класс ReflectionUnionType

(PHP 8)

Введение

Обзор классов

class ReflectionUnionType extends ReflectionType {
/* Методы */
public getTypes(): array
/* Наследуемые методы */
public ReflectionType::allowsNull(): bool
public ReflectionType::__toString(): string
}

Содержание

  • ReflectionUnionType::getTypes — Возвращает типы, включённые в тип union


Возвращает типы, включённые в тип union

  • « ReflectionUnionType
  • ReflectionGenerator »
  • PHP Manual
  • ReflectionUnionType
  • Возвращает типы, включённые в тип union

ReflectionUnionType::getTypes

(PHP 8)

ReflectionUnionType::getTypes — Возвращает типы, включённые в тип union

Описание

public ReflectionUnionType::getTypes(): array

Возвращает отражения типов, включённых в тип union.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив объектов ReflectionType.

Примеры

Пример #1 Пример использования ReflectionUnionType::getTypes()

<?php
function someFunction(int|float $number) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

var_dump($reflectionParam->getType()->getTypes());

Результатом выполнения данного примера будет что-то подобное:

array(2) {
    [0] =>
    class ReflectionNamedType#4(0) {
    }
    [1] =>
    class ReflectionNamedType#5(0) {
    }
}

Смотрите также

  • ReflectionType::allowsNull() - Проверяет, допустим ли NULL
  • ReflectionParameter::getType() - Получить тип параметра


Класс ReflectionGenerator

(PHP 7, PHP 8)

Введение

Класс ReflectionGenerator сообщает информацию о генераторе.

Обзор классов

final class ReflectionGenerator {
/* Методы */
public __construct(Generator $generator)
public getExecutingFile(): string
public getExecutingGenerator(): Generator
public getExecutingLine(): int
public getFunction(): ReflectionFunctionAbstract
public getThis(): ?object
public getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array
}

Список изменений

Версия | Описание
8.0.0 | Класс теперь является окончательным (final).

Содержание

  • 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, PHP 8)

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, PHP 8)

ReflectionGenerator::getExecutingFile — Получить имя файла, из которого запущен генератор

Описание

public ReflectionGenerator::getExecutingFile(): 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, PHP 8)

ReflectionGenerator::getExecutingGenerator — Получить запущенный объект Generator

Описание

public ReflectionGenerator::getExecutingGenerator(): 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, PHP 8)

ReflectionGenerator::getExecutingLine — Получить текущую выполняющуюся строку генератора

Описание

public ReflectionGenerator::getExecutingLine(): 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, PHP 8)

ReflectionGenerator::getFunction — Получить имя функции генератора

Описание

public ReflectionGenerator::getFunction(): 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, PHP 8)

ReflectionGenerator::getThis — Получает значение $this генератора

Описание

public ReflectionGenerator::getThis(): ?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
  • ReflectionFiber »
  • PHP Manual
  • ReflectionGenerator
  • Получить трассировку запущенного генератора

ReflectionGenerator::getTrace

(PHP 7, PHP 8)

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 генератора


Класс ReflectionFiber

(PHP 8 >= 8.1.0)

Введение

Обзор классов

final class ReflectionFiber {
/* Методы */
public __construct(Fiber $fiber)
public getCallable(): callable
public getExecutingFile(): string
public getExecutingLine(): int
public getFiber(): Fiber
public getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array
}

Содержание

  • ReflectionFiber::__construct — Создаёт объект ReflectionFiber
  • ReflectionFiber::getCallable — Получает вызываемый объект, используемый для создания файбера
  • ReflectionFiber::getExecutingFile — Получает имя файла текущей точки выполнения
  • ReflectionFiber::getExecutingLine — Получает номер строки текущей точки выполнения
  • ReflectionFiber::getFiber — Получает отражённый экземпляр файбера
  • ReflectionFiber::getTrace — Получает обратную трассировку текущей точки выполнения


Создаёт объект ReflectionFiber

  • « ReflectionFiber
  • ReflectionFiber::getCallable »
  • PHP Manual
  • ReflectionFiber
  • Создаёт объект ReflectionFiber

ReflectionFiber::__construct

(PHP 8 >= 8.1.0)

ReflectionFiber::__construct — Создаёт объект ReflectionFiber

Описание

public ReflectionFiber::__construct(Fiber $fiber)

Создаёт объект ReflectionFiber.

Список параметров

fiber

Класс Fiber для отражения.


Получает вызываемый объект, используемый для создания файбера

  • « ReflectionFiber::__construct
  • ReflectionFiber::getExecutingFile »
  • PHP Manual
  • ReflectionFiber
  • Получает вызываемый объект, используемый для создания файбера

ReflectionFiber::getCallable

(PHP 8 >= 8.1.0)

ReflectionFiber::getCallable — Получает вызываемый объект, используемый для создания файбера

Описание

public ReflectionFiber::getCallable(): callable

Возвращает вызываемый объект, используемый для создания Fiber. Если файбер завершён, выдаётся ошибка Error.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает вызываемый объект, используемый для создания Fiber.


Получает имя файла текущей точки выполнения

  • « ReflectionFiber::getCallable
  • ReflectionFiber::getExecutingLine »
  • PHP Manual
  • ReflectionFiber
  • Получает имя файла текущей точки выполнения

ReflectionFiber::getExecutingFile

(PHP 8 >= 8.1.0)

ReflectionFiber::getExecutingFile — Получает имя файла текущей точки выполнения

Описание

public ReflectionFiber::getExecutingFile(): string

Возвращает полный путь и имя файла текущей точки выполнения в отражённом классе Fiber. Если файбер не был запущен или завершён, выдаётся ошибка Error.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Полный путь и имя файла отражённого файбера.


Получает номер строки текущей точки выполнения

  • « ReflectionFiber::getExecutingFile
  • ReflectionFiber::getFiber »
  • PHP Manual
  • ReflectionFiber
  • Получает номер строки текущей точки выполнения

ReflectionFiber::getExecutingLine

(PHP 8 >= 8.1.0)

ReflectionFiber::getExecutingLine — Получает номер строки текущей точки выполнения

Описание

public ReflectionFiber::getExecutingLine(): int

Возвращает номер строки текущей точки выполнения в отражённом классе Fiber. Если файбер не был запущен или завершён, выдаётся ошибка Error.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Номер строки текущей точки выполнения файбера.


Получает отражённый экземпляр файбера

  • « ReflectionFiber::getExecutingLine
  • ReflectionFiber::getTrace »
  • PHP Manual
  • ReflectionFiber
  • Получает отражённый экземпляр файбера

ReflectionFiber::getFiber

(PHP 8 >= 8.1.0)

ReflectionFiber::getFiber — Получает отражённый экземпляр файбера

Описание

public ReflectionFiber::getFiber(): Fiber

Получает отражённый экземпляр Fiber.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает отражённый экземпляр Fiber.


Получает обратную трассировку текущей точки выполнения

  • « ReflectionFiber::getFiber
  • ReflectionIntersectionType »
  • PHP Manual
  • ReflectionFiber
  • Получает обратную трассировку текущей точки выполнения

ReflectionFiber::getTrace

(PHP 8 >= 8.1.0)

ReflectionFiber::getTrace — Получает обратную трассировку текущей точки выполнения

Описание

public ReflectionFiber::getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array

Получает обратную трассировку текущей точки выполнения отражённого класса Fiber.

Список параметров

options

Значение options может быть любым из следующих флагов: the following flags.

Доступные параметры
Параметр | Описание
DEBUG_BACKTRACE_PROVIDE_OBJECT | По умолчанию.
DEBUG_BACKTRACE_IGNORE_ARGS | Не включать информацию об аргументе для функций в трассировку стека.

Возвращаемые значения

Отслеживание текущей точки выполнения файбера.


Класс ReflectionIntersectionType

(PHP 8 >= 8.1.0)

Введение

Обзор классов

class ReflectionIntersectionType extends ReflectionType {
/* Методы */
public getTypes(): array
/* Наследуемые методы */
public ReflectionType::allowsNull(): bool
public ReflectionType::__toString(): string
}

Содержание

  • ReflectionIntersectionType::getTypes — Возвращает типы, включённые в тип intersection


Возвращает типы, включённые в тип intersection

  • « ReflectionIntersectionType
  • ReflectionReference »
  • PHP Manual
  • ReflectionIntersectionType
  • Возвращает типы, включённые в тип intersection

ReflectionIntersectionType::getTypes

(PHP 8 >= 8.1.0)

ReflectionIntersectionType::getTypes — Возвращает типы, включённые в тип intersection

Описание

public ReflectionIntersectionType::getTypes(): array

Возвращает типы, включённые в тип intersection.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив объектов ReflectionType.

Примеры

Пример #1 Пример использования ReflectionIntersectionType::getTypes()

<?php

function someFunction(Iterator&Countable $value) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

var_dump($reflectionParam->getType()->getTypes());
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
    [0] =>
    class ReflectionNamedType#4(0) {
    }
    [1] =>
    class ReflectionNamedType#5(0) {
    }
}

Смотрите также

  • ReflectionType::allowsNull() - Проверяет, допустим ли NULL
  • ReflectionParameter::getType() - Получить тип параметра


Класс ReflectionReference

(PHP 7 >= 7.4.0, PHP 8)

Введение

Класс ReflectionReference предоставляет информацию о ссылке.

Обзор классов

final class ReflectionReference {
/* Методы */
private __construct()
public static fromArrayElement(array $array, int|string $key): ?ReflectionReference
public getId(): string
}

Содержание

  • ReflectionReference::__construct — Закрытый конструктор, запрещающий создание экземпляра напрямую
  • ReflectionReference::fromArrayElement — Создаёт ReflectionReference из элемента массива
  • ReflectionReference::getId — Получить уникальный идентификатор ссылки


Закрытый конструктор, запрещающий создание экземпляра напрямую

  • « ReflectionReference
  • ReflectionReference::fromArrayElement »
  • PHP Manual
  • ReflectionReference
  • Закрытый конструктор, запрещающий создание экземпляра напрямую

ReflectionReference::__construct

(Информация о версии неизвестна, возможно, только в Git)

ReflectionReference::__construct — Закрытый конструктор, запрещающий создание экземпляра напрямую

Описание

private ReflectionReference::__construct()

Список параметров

У этой функции нет параметров.


Создаёт ReflectionReference из элемента массива

  • « ReflectionReference::__construct
  • ReflectionReference::getId »
  • PHP Manual
  • ReflectionReference
  • Создаёт ReflectionReference из элемента массива

ReflectionReference::fromArrayElement

(PHP 7 >= 7.4.0, PHP 8)

ReflectionReference::fromArrayElement — Создаёт ReflectionReference из элемента массива

Описание

public static ReflectionReference::fromArrayElement(array $array, int|string $key): ?ReflectionReference

Создаёт ReflectionReference из элемента массива.

Список параметров

array

Массив содержащий потенциальную ссылку.

key

Ключ; целое число(int) или строка(string).

Возвращаемые значения

Возвращает экземпляр ReflectionReference если $array[$key] является ссылкой, или null в противном случае.

Ошибки

Если array не является массивом, или key не является целым числом(int) или строкой(string), будет выброшено исключение TypeError. Если $array[$key] не задан, то будет выброшено исключение ReflectionException.


Получить уникальный идентификатор ссылки

  • « ReflectionReference::fromArrayElement
  • ReflectionAttribute »
  • PHP Manual
  • ReflectionReference
  • Получить уникальный идентификатор ссылки

ReflectionReference::getId

(PHP 7 >= 7.4.0, PHP 8)

ReflectionReference::getId — Получить уникальный идентификатор ссылки

Описание

public ReflectionReference::getId(): string

Возвращает идентификатор, являющийся уникальным для ссылки на всём протяжении её жизни. Этот идентификатор можно использовать для проверки на эквивалентность или для составления карты известных ссылок.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает string неопределённого формата.

Примеры

Пример #1 Простое использование ReflectionReference::getId()

<?php
$val1 = 'foo';
$val2 = 'bar';
$arr = [&$val1, &$val2, &$val1];

$rr1 = ReflectionReference::fromArrayElement($arr, 0);
$rr2 = ReflectionReference::fromArrayElement($arr, 1);
$rr3 = ReflectionReference::fromArrayElement($arr, 2);

var_dump($rr1->getId() === $rr2->getId());
var_dump($rr1->getId() === $rr3->getId());
?>

Результат выполнения данного примера:

bool(false)
bool(true)


Класс ReflectionAttribute

(PHP 8)

Введение

Класс ReflectionAttribute предоставляет информацию об Атрибутах.

Обзор классов

class ReflectionAttribute implements Reflector {
/* Константы */
public const int IS_INSTANCEOF;
/* Методы */
private __construct()
public getArguments(): array
public getName(): string
public getTarget(): int
public isRepeated(): bool
public newInstance(): object
}

Предопределённые константы

Флаги ReflectionAttribute

ReflectionAttribute::IS_INSTANCEOF

Получение атрибутов с помощью проверки параметра instanceof.

Замечание:

Значения этих констант могут меняться в зависимости от версии PHP. Рекомендуется всегда использовать константы и не полагаться на их значения напрямую.

Содержание

  • ReflectionAttribute::__construct — Закрытый конструктор, запрещающий создание объекта напрямую
  • ReflectionAttribute::getArguments — Возвращает аргументы, переданные атрибуту
  • ReflectionAttribute::getName — Возвращает имя атрибута
  • ReflectionAttribute::getTarget — Возвращает цель атрибута в виде битовой маски
  • ReflectionAttribute::isRepeated — Определяет, был ли атрибут с таким именем указан многократно в элементе кода
  • ReflectionAttribute::newInstance — Создаёт экземпляр класса атрибута, используя содержащиеся в объекте ReflectionAttribute имя класса и аргументы


Закрытый конструктор, запрещающий создание объекта напрямую

  • « ReflectionAttribute
  • ReflectionAttribute::getArguments »
  • PHP Manual
  • ReflectionAttribute
  • Закрытый конструктор, запрещающий создание объекта напрямую

ReflectionAttribute::__construct

(PHP 8)

ReflectionAttribute::__construct — Закрытый конструктор, запрещающий создание объекта напрямую

Описание

private ReflectionAttribute::__construct()

Список параметров

У этой функции нет параметров.


Возвращает аргументы, переданные атрибуту

  • « ReflectionAttribute::__construct
  • ReflectionAttribute::getName »
  • PHP Manual
  • ReflectionAttribute
  • Возвращает аргументы, переданные атрибуту

ReflectionAttribute::getArguments

(PHP 8)

ReflectionAttribute::getArguments — Возвращает аргументы, переданные атрибуту

Описание

public ReflectionAttribute::getArguments(): array

Возвращает аргументы, переданные атрибуту.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Аргументы, переданные атрибуту.


Возвращает имя атрибута

  • « ReflectionAttribute::getArguments
  • ReflectionAttribute::getTarget »
  • PHP Manual
  • ReflectionAttribute
  • Возвращает имя атрибута

ReflectionAttribute::getName

(PHP 8)

ReflectionAttribute::getName — Возвращает имя атрибута

Описание

public ReflectionAttribute::getName(): string

Возвращает имя атрибута.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя атрибута.


Возвращает цель атрибута в виде битовой маски

  • « ReflectionAttribute::getName
  • ReflectionAttribute::isRepeated »
  • PHP Manual
  • ReflectionAttribute
  • Возвращает цель атрибута в виде битовой маски

ReflectionAttribute::getTarget

(PHP 8)

ReflectionAttribute::getTarget — Возвращает цель атрибута в виде битовой маски

Описание

public ReflectionAttribute::getTarget(): int

Возвращает цель атрибута в виде битовой маски.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает цель атрибута в виде битовой маски.


Определяет, был ли атрибут с таким именем указан многократно в элементе кода

  • « ReflectionAttribute::getTarget
  • ReflectionAttribute::newInstance »
  • PHP Manual
  • ReflectionAttribute
  • Определяет, был ли атрибут с таким именем указан многократно в элементе кода

ReflectionAttribute::isRepeated

(PHP 8)

ReflectionAttribute::isRepeated — Определяет, был ли атрибут с таким именем указан многократно в элементе кода

Описание

public ReflectionAttribute::isRepeated(): bool

Возвращает, был ли атрибут с таким именем указан многократно в элементе кода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если атрибут использовался многократно, в противном случае возвращает false.


Создаёт экземпляр класса атрибута, используя содержащиеся в объекте ReflectionAttribute имя класса и аргументы

  • « ReflectionAttribute::isRepeated
  • Reflector »
  • PHP Manual
  • ReflectionAttribute
  • Создаёт экземпляр класса атрибута, используя содержащиеся в объекте ReflectionAttribute имя класса и аргументы

ReflectionAttribute::newInstance

(PHP 8)

ReflectionAttribute::newInstance — Создаёт экземпляр класса атрибута, используя содержащиеся в объекте ReflectionAttribute имя класса и аргументы

Описание

public ReflectionAttribute::newInstance(): object

Создаёт экземпляр класса атрибута, используя содержащиеся в объекте ReflectionAttribute имя класса и аргументы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Новый экземпляр атрибута.


Интерфейс Reflector

(PHP 5, PHP 7, PHP 8)

Введение

Интерфейс Reflector реализуют все экспортируемые Reflection-классы.

Обзор интерфейсов

interface Reflector extends Stringable {
/* Наследуемые методы */
public Stringable::__toString(): string
}

Список изменений

Версия | Описание
8.0.0 | Метод Reflector::export() был удалён.
8.0.0 | Класс Reflector теперь наследует Stringable. Он наследует Stringable::__toString(), заменяя Reflector::__toString().

Смотрите также

  • Reflector::export()

Содержание

  • Reflector::export — Экспорт


Экспорт

  • « Reflector
  • ReflectionException »
  • PHP Manual
  • Reflector
  • Экспорт

Reflector::export

(PHP 5, PHP 7)

Reflector::export — Экспорт

Внимание

Эта функция УСТАРЕЛА, начиная с PHP 7.4.0 и была УДАЛЕНА, начиная с PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.

Описание

public static Reflector::export(): string

Экспорт.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Reflection::__toString()


Класс ReflectionException

(PHP 5, PHP 7, PHP 8)

Введение

Класс ReflectionException.

Обзор классов

class ReflectionException extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Обработка переменных

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Функции для работы с переменными
    • boolval — Возвращает логическое значение переменной
    • debug_zval_dump — Выводит строковое представление внутренней структуры zval
    • doubleval — Псевдоним floatval
    • empty — Проверяет, пуста ли переменная
    • floatval — Возвращает значение переменной в виде числа с плавающей точкой
    • get_debug_type — Возвращает имя типа переменной в виде, подходящем для отладки
    • get_defined_vars — Возвращает массив всех определённых переменных
    • get_resource_id — Возвращает целочисленный идентификатор для данного ресурса
    • get_resource_type — Возвращает тип ресурса
    • gettype — Возвращает тип переменной
    • 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 |
unserialize_max_depth | "4096" | PHP_INI_ALL | Доступно, начиная с PHP 7.4.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

unserialize_callback_func string

Если в процессе десериализации через unserialize() будет обнаружен неопределённый класс, то будет вызвана определённая callback-функция. Если указанная callback-функция не определена или не может определить отсутствующий класс, то будет выведено предупреждение.

Смотрите также unserialize() и раздел автозагрузки классов.

unserialize_max_depth int

Максимальная глубина структур, разрешённая при десериализации при использовании функции unserialize() и предназначенная для предотвращения переполнения стека. Это можно отключить, установив unserialize_max_depth=0.

Смотрите также unserialize() и раздел автозагрузки классов.


  • « Типы ресурсов
  • Функции для работы с переменными »
  • PHP Manual
  • Обработка переменных
  • Предопределённые константы

Предопределённые константы

Данный модуль не определяет никакие константы.


Функции для работы с переменными

Содержание

  • boolval — Возвращает логическое значение переменной
  • debug_zval_dump — Выводит строковое представление внутренней структуры zval
  • doubleval — Псевдоним floatval
  • empty — Проверяет, пуста ли переменная
  • floatval — Возвращает значение переменной в виде числа с плавающей точкой
  • get_debug_type — Возвращает имя типа переменной в виде, подходящем для отладки
  • get_defined_vars — Возвращает массив всех определённых переменных
  • get_resource_id — Возвращает целочисленный идентификатор для данного ресурса
  • get_resource_type — Возвращает тип ресурса
  • gettype — Возвращает тип переменной
  • 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, PHP 8)

boolval — Возвращает логическое значение переменной

Описание

boolval(mixed $value): bool

Возвращает значение типа bool, релевантное переданному значению value.

Список параметров

value

Скалярное значение, которое надо привести к типу bool.

Возвращаемые значения

Приведённое к типу bool значение value.

Примеры

Пример #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() - Проверяет, является ли переменная булевой
  • Преобразование типов


Выводит строковое представление внутренней структуры zval

  • « boolval
  • doubleval »
  • PHP Manual
  • Функции для работы с переменными
  • Выводит строковое представление внутренней структуры zval

debug_zval_dump

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

debug_zval_dump — Выводит строковое представление внутренней структуры zval

Описание

debug_zval_dump(mixed $value, mixed ...$values): void

Выводит на вывод строковое представление внутренней структуры zval (значение Zend). Это в основном полезно для понимания или отладки деталей реализации Zend Engine или модулей PHP.

Список параметров

value

Обрабатываемая переменная.

values

Следующие переменные или значения для обработки.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования debug_zval_dump()

<?php
$var1 = 'Hello';
$var1 .= ' World';
$var2 = $var1;

debug_zval_dump($var1);
?>

Результат выполнения данного примера:

string(11) "Hello World" refcount(3)

Замечание: Понимание refcount

Значение refcount, показываемое этой функцией, может быть неожиданным без детального понимания реализации движка.

Zend Engine использует подсчёт ссылок для двух разных целей:

  • Оптимизация использования памяти с помощью метода, называемого "копирование при записи", когда несколько переменных, содержащих одно и то же значение, указывают на одну и ту же копию в памяти. Когда любая из переменных изменяется, она указывает на новую копию в памяти, а счётчик ссылок на оригинал уменьшается на 1.
  • Отслеживание переменных, которые были назначены или переданы по ссылке (смотрите Объяснение ссылок). Этот счётчик ссылок хранится в отдельной ссылке zval, указывающей на zval для текущего значения. Этот дополнительный zval в настоящее время не отображается в debug_zval_dump().

Поскольку debug_zval_dump() принимает свои входные данные как обычные параметры, передаваемые по значению, для их передачи будет использоваться метод копирования при записи: вместо копирования данных счётчик ссылок будет увеличен на единицу на время существования вызова функции. Если функция изменила параметр после его получения, будет сделана копия; поскольку это не так, покажет счётчик ссылок на один выше, чем в вызывающей области.

Передача параметров также предотвращает отображение переменных debug_zval_dump(), которые были назначены по ссылке. Для иллюстрации рассмотрим слегка изменённую версию приведённого выше примера:

<?php
$var1 = 'Hello';
$var1 .= ' World';
// Укажите три переменные как ссылки на одно и то же значение
$var2 =& $var1;
$var3 =& $var1;

debug_zval_dump($var1);
?>

Результат выполнения данного примера:

string(11) "Hello World" refcount(2)

Хотя $var1, $var2, и $var3 связаны как ссылки, только value передаётся в debug_zval_dump(). Это значение используется один раз набором ссылок и один раз внутри функции debug_zval_dump(), поэтому счётчик ссылок равен 2.

Дальнейшие сложности возникают из-за оптимизации, сделанной в движке для различных типов данных. Некоторые типы, такие как целые числа, не используют "копирование при записи", поэтому не показывают счётчик ссылок вообще. В других случаях refcount показывает дополнительные копии, используемые внутри, например, когда буквенная строка или массив сохраняется как часть инструкции кода.

Смотрите также

  • var_dump() - Выводит информацию о переменной
  • debug_backtrace() - Генерирует стек вызовов функций
  • "Ссылки. Разъяснения"
  • "» Ссылки. Разъяснения (от Derick Rethans)"


Псевдоним floatval

  • « debug_zval_dump
  • empty »
  • PHP Manual
  • Функции для работы с переменными
  • Псевдоним floatval

doubleval

(PHP 4, PHP 5, PHP 7, PHP 8)

doubleval — Псевдоним floatval()

Описание

Функция является псевдонимом: floatval().


Проверяет, пуста ли переменная

  • « doubleval
  • floatval »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, пуста ли переменная

empty

(PHP 4, PHP 5, PHP 7, PHP 8)

empty — Проверяет, пуста ли переменная

Описание

empty(mixed $var): bool

Проверяет, считается ли переменная пустой. Переменная считается пустой, если она не существует или её значение равно false. empty() не генерирует предупреждение, если переменная не существует.

Список параметров

var

Проверяемая переменная

Если переменная не существует, предупреждение не генерируется. Это значит, что empty() фактически является точным эквивалентом конструкции !isset($var) || $var == false

Возвращаемые значения

Возвращает true, если параметр var не существует, если значение равно нулю, либо не задано, смотрите Преобразование в булев тип. В противном случае возвращает false.

Примеры

Пример #1 Простое сравнение empty() и isset().

<?php
$var = 0;

// Принимает значение true, потому что $var пусто
if (empty($var)) {
echo '$var или 0, или пусто, или вообще не определена';
}

// Принимает значение true, потому что $var определена
if (isset($var)) {
echo '$var определена, даже если она пустая';
}
?>

Пример #2 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']));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций или именованных аргументов.

Замечание:

При использовании функции empty() на недоступных (необъявленных) свойствах объекта будет вызван встроенный метод объекта __isset(), если он определён.

Смотрите также

  • isset() - Определяет, была ли установлена переменная значением, отличным от null
  • __isset()
  • unset() - Удаляет переменную
  • array_key_exists() - Проверяет, присутствует ли в массиве указанный ключ или индекс
  • count() - Подсчитывает количество элементов массива или Countable объекте
  • strlen() - Возвращает длину строки
  • Таблица сравнения типов


Возвращает значение переменной в виде числа с плавающей точкой

  • « empty
  • get_debug_type »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает значение переменной в виде числа с плавающей точкой

floatval

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

floatval — Возвращает значение переменной в виде числа с плавающей точкой

Описание

floatval(mixed $value): float

Возвращает значение переменной value в виде числа с плавающей точкой (float).

Список параметров

value

Может быть любого скалярного типа. floatval() нельзя использовать с объектами, в этом случае возникнет ошибка уровня E_WARNING и функция вернёт 1.

Возвращаемые значения

Значение заданной переменной в виде числа с плавающей точкой. Пустые массивы в качестве аргумента возвращают 0, непустые массивы возвращают 1.

Строки чаще всего возвращают 0, тем не менее результат зависит от самых левых символов строки. Применяются правила приведения к float.

Список изменений

Версия | Описание
8.0.0 | Уровень ошибки при преобразовании из объекта был изменён с E_NOTICE на E_WARNING.

Примеры

Пример #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_defined_vars »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает имя типа переменной в виде, подходящем для отладки

get_debug_type

(PHP 8)

get_debug_type — Возвращает имя типа переменной в виде, подходящем для отладки

Описание

get_debug_type(mixed $value): string

Возвращает преобразованное имя переменной PHP value. Функция преобразует объекты в имя их класса, ресурсы - в имя их типа ресурса, а скалярные значения - в общепринятое имя их типа, которое бы использовалось в объявлении типов.

Функция отличается от gettype() тем, что возвращает имена типов, которые больше соответствуют фактическому использованию, а не те, которые присутствуют по историческим причинам.

Список параметров

value

Переменная, у которой проверяется тип.

Возвращаемые значения

Возможные значения для возвращаемой строки:

Тип + Состояние | Возвращаемое значение | Замечания
null | "null" | -
Логические значения (true или false) | "bool" | -
Целые числа | "int" | -
Числа с плавающей точкой | "float" | -
Строки | "string" | -
Массивы | "array" | -
Ресурсы | "resource (resourcename)" | -
Ресурсы (закрытые) | "resource (closed)" | Пример: файловый поток после закрытия с помощью fclose.
Объекты именованных классов | Полное имя класса, включая его пространство имён, например, Foo\Bar | -
Объекты анонимных классов | "class@anonymous" | Анонимные классы - это классы, созданные с использованием синтаксиса $x = new class { ... }.

Примеры

Пример #1 Пример использования get_debug_type()

<?php
echo get_debug_type(null) . PHP_EOL;
echo get_debug_type(true) . PHP_EOL;
echo get_debug_type(1) . PHP_EOL;
echo get_debug_type(0.1) . PHP_EOL;
echo get_debug_type("foo") . PHP_EOL;
echo get_debug_type([]) . PHP_EOL;

$fp = fopen(__FILE__, 'rb');
echo get_debug_type($fp) . PHP_EOL;

fclose($fp);
echo get_debug_type($fp) . PHP_EOL;

echo get_debug_type(new stdClass) . PHP_EOL;
echo get_debug_type(new class {}) . PHP_EOL;
?>

Результатом выполнения данного примера будет что-то подобное:

null
bool
int
float
string
array
resource (stream)
resource (closed)
stdClass
class@anonymous

Смотрите также

  • gettype() - Возвращает тип переменной
  • get_class() - Возвращает имя класса, к которому принадлежит объект


Возвращает массив всех определённых переменных

  • « get_debug_type
  • get_resource_id »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает массив всех определённых переменных

get_defined_vars

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

get_defined_vars — Возвращает массив всех определённых переменных

Описание

get_defined_vars(): 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
  • get_resource_type »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает целочисленный идентификатор для данного ресурса

get_resource_id

(PHP 8)

get_resource_id — Возвращает целочисленный идентификатор для данного ресурса

Описание

get_resource_id(resource $resource): int

Функция обеспечивает безопасный для типов способ генерации целочисленного идентификатора для ресурса.

Список параметров

resource

Дескриптор ресурса.

Возвращаемые значения

Целочисленный идентификатор (int) для указанного resource.

Функция по сути является преобразованием целого числа (int) от resource, чтобы упростить получение идентификатора ресурса.

Примеры

Пример #1 Использование get_resource_id() даёт тот же результат, что и приведение к целому числу (int)

<?php

$handle = fopen("php://stdout", "w");

echo (int) $handle . "\n";

echo get_resource_id($handle);

?>

Результатом выполнения данного примера будет что-то подобное:

698
698

Смотрите также

  • get_resource_type() - Возвращает тип ресурса


Возвращает тип ресурса

  • « get_resource_id
  • gettype »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает тип ресурса

get_resource_type

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

get_resource_type — Возвращает тип ресурса

Описание

get_resource_type(resource $resource): string

Функция возвращает тип данного ресурса.

Список параметров

resource

Определяемый дескриптор ресурса.

Возвращаемые значения

Если данный параметр resource является ресурсом, функция возвращает строку, указывающую его тип. Если тип не определяется этой функцией, возвращаемым значением будет строка Unknown.

Функция возвращает null и вызывает ошибку, если resource не является ресурсом (resource).

Примеры

Пример #1 Пример использования get_resource_type()

<?php

// Начиная с версии PHP 8.0.0, следующий код больше не работает. Функция curl_init теперь возвращает объект CurlHandle.
$c = curl_init();
echo get_resource_type($c) . "\n";
?>

Результат выполнения данного примера в PHP 7:

stream
curl

Смотрите также

  • get_resource_id() - Возвращает целочисленный идентификатор для данного ресурса


Возвращает тип переменной

  • « get_resource_type
  • intval »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает тип переменной

gettype

(PHP 4, PHP 5, PHP 7, PHP 8)

gettype — Возвращает тип переменной

Описание

gettype(mixed $value): string

Возвращает тип PHP-переменной value. Для проверки типа переменной используйте функции is_*.

Список параметров

value

Проверяемая переменная.

Возвращаемые значения

Возможными значениями возвращаемой строки являются:

  • "boolean"
  • "integer"
  • "double" (по историческим причинам в случае типа float возвращается "double", а не просто "float")
  • "string"
  • "array"
  • "object"
  • "resource"
  • "resource (closed)" с PHP 7.2.0
  • "NULL"
  • "unknown type"

Список изменений

Версия | Описание
7.2.0 | Для закрытых ресурсов теперь возвращается 'resource (closed)'. Ранее для закрытых ресурсов возвращалось '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

Смотрите также

  • get_debug_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() - Проверяет, существует ли метод в данном классе


Возвращает целочисленное значение переменной

  • « gettype
  • is_array »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает целочисленное значение переменной

intval

(PHP 4, PHP 5, PHP 7, PHP 8)

intval — Возвращает целочисленное значение переменной

Описание

intval(mixed $value, int $base = 10): int

Возвращает целочисленное значение (int) переменной value, рассматривая ее как значение в системе счисления с основанием, которое определено в параметре base (по умолчанию основание равно 10). Функцию intval() нельзя использовать с объектами, попытка это сделать вызовет ошибку уровня E_WARNING и вернёт значение 1.

Список параметров

value

Скалярное значение для конвертации в целое

base

Основание системы счисления для преобразования

Замечание:

Если значение параметра base равно 0, основание системы счисления будет определено форматом параметра value:

  • если строка включает префикс "0x" (или "0X"), будет взято основание 16 (шестнадцатеричное);
  • иначе, если строка начинается с "0b" (или "0B"), будет взято основание 2 (двоичное);
  • иначе, если строка начинается с "0", будет взято основание 8 (восьмеричное);
  • иначе основание будет равно 10 (десятичая).

Возвращаемые значения

Функция возвращает целочисленное значение переменной value в случае успешного выполнения, или 0 в случае возникновения ошибки. Для пустых массивов возвращается 0, для непустых возвращается 1.

Максимальное значение зависит от операционной системы. В 32-битных системах максимальное знаковое целое лежит в диапазоне от -2 147 483 648 до 2 147 483 647. Так, например, в такой системе, intval('1000000000000') вернёт 2 147 483 647. Максимальное знаковое целое значение для 64-битных систем — 9 223 372 036 854 775 807.

Для строк функция, скорее всего, вернёт 0, хотя это зависит от первого символа в строке. Будут применены общие правила преобразования в целые.

Список изменений

Версия | Описание
8.0.0 | Уровень ошибки при преобразовании из объекта был изменён с E_NOTICE на E_WARNING.

Примеры

Пример #1 Примеры использования intval()

Следующие примеры приведены для 64-битной системы.

<?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); // 10000000000
echo intval('1e10'); // 10000000000
echo intval(0x1A); // 26
echo intval('0x1A'); // 0
echo intval('0x1A', 0); // 26
echo intval(42000000); // 42000000
echo intval(420000000000000000000); // -4275113695319687168
echo intval('420000000000000000000'); // 9223372036854775807
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 будет учтён только тогда, когда значение параметр value окажется строкой.

Смотрите также

  • boolval() - Возвращает логическое значение переменной
  • floatval() - Возвращает значение переменной в виде числа с плавающей точкой
  • strval() - Возвращает строковое значение переменной
  • settype() - Задаёт тип переменной
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • Манипуляции с типами
  • Математические функции произвольной точности BCMath


Определяет, является ли переменная массивом

  • « intval
  • is_bool »
  • PHP Manual
  • Функции для работы с переменными
  • Определяет, является ли переменная массивом

is_array

(PHP 4, PHP 5, PHP 7, PHP 8)

is_array — Определяет, является ли переменная массивом

Описание

is_array(mixed $value): bool

Определяет, является ли данная переменная массивом.

Список параметров

value

Проверяемая переменная.

Возвращаемые значения

Возвращает true, если переменная value является массивом (array), или false в противном случае.

Примеры

Пример #1 Проверяет, является ли переменная массивом

<?php
$yes = array('это', 'массив');

echo is_array($yes) ? 'Массив' : 'Не массив';
echo "\n";

$no = 'это строка';

echo is_array($no) ? 'Массив' : 'Не массив';
?>

Результат выполнения данного примера:

Массив
Не массив

Смотрите также

  • array_is_list() - Проверяет, является ли данный array списком
  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная целым числом
  • is_string() - Проверяет, является ли переменная строкой
  • is_object() - Проверяет, является ли переменная объектом


Проверяет, является ли переменная булевой

  • « is_array
  • is_callable »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная булевой

is_bool

(PHP 4, PHP 5, PHP 7, PHP 8)

is_bool — Проверяет, является ли переменная булевой

Описание

is_bool(mixed $value): bool

Проверяет, является ли данная переменная булевой.

Список параметров

value

Проверяемая переменная.

Возвращаемые значения

Возвращает true, если value является переменной типа bool, или 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, PHP 8)

is_callable — Проверяет, что значение может быть вызвано как функция в текущей области видимости

Описание

is_callable(mixed $value, bool $syntax_only = false, string &$callable_name = null): bool

Проверяет, что значение является callable.

Список параметров

value

Значение для проверки

syntax_only

Если равен true, функция только проверяет, что value может быть функцией или методом. В этом случае будут отклоняться переменные, которые не являются ни строкой, ни массивом c корректной структурой для использования в качестве callback-функции. Корректная структура массива предполагает наличие только двух элементов, первый из которых - объект или строка, а второй - только строка.

callable_name

Получает "вызываемое имя". В примере ниже это "someClass::someMethod". Следует иметь в виду, что хотя запись someClass::SomeMethod() означает вызываемый статический метод, это не так.

Возвращаемые значения

Возвращает true, если value может быть вызвана, или 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() и конструкторы

Функция is_callable() не считает конструкторы за 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)

Примечания

  • Объект всегда является callable, если он реализует __invoke(), и этот метод доступен в текущей области видимости.
  • Имя класса является callable, если оно реализует __callStatic()
  • Если объект реализует __call(), тогда эта функция вернёт true для любого метода этого объекта, даже если метод не определён.
  • Функция может запускать автозагрузку, если вызывается с именем класса.

Смотрите также

  • function_exists() - Возвращает true, если указанная функция определена
  • method_exists() - Проверяет, существует ли метод в данном классе


Проверить, что содержимое переменной является счётным значением

  • « is_callable
  • is_double »
  • PHP Manual
  • Функции для работы с переменными
  • Проверить, что содержимое переменной является счётным значением

is_countable

(PHP 7 >= 7.3.0, PHP 8)

is_countable — Проверить, что содержимое переменной является счётным значением

Описание

is_countable(mixed $value): bool

Проверить, что содержимое переменной массив (array) или объект, реализующий Countable

Список параметров

value

Значение для проверки

Возвращаемые значения

Возвращает true, если value счётная или 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, PHP 8)

is_double — Псевдоним is_float()

Описание

Функция является псевдонимом: is_float().


Проверяет, является ли переменная числом с плавающей точкой

  • « is_double
  • is_int »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная числом с плавающей точкой

is_float

(PHP 4, PHP 5, PHP 7, PHP 8)

is_float — Проверяет, является ли переменная числом с плавающей точкой

Описание

is_float(mixed $value): bool

Проверяет, является ли данная переменная числом с плавающей точкой.

Замечание:

Чтобы проверить, является ли переменная числом или строкой, содержащей число (как поле ввода в форме, которое всегда является строкой), используйте is_numeric().

Список параметров

value

Проверяемая переменная.

Возвращаемые значения

Возвращает true, если value является переменной типа 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, PHP 8)

is_int — Проверяет, является ли переменная целым числом

Описание

is_int(mixed $value): bool

Проверяет, является ли тип переменной целочисленным.

Замечание:

Чтобы проверить, что переменная является числом или строкой, содержащей число (как поле ввода в форме, которое всегда является строкой), используйте is_numeric().

Список параметров

value

Проверяемая переменная.

Возвращаемые значения

Возвращает true, если value является целым числом (int), или 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, PHP 8)

is_integer — Псевдоним is_int()

Описание

Функция является псевдонимом: is_int().


Проверяет, является ли переменная итерируемой

  • « is_integer
  • is_long »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная итерируемой

is_iterable

(PHP 7 >= 7.1.0, PHP 8)

is_iterable — Проверяет, является ли переменная итерируемой

Описание

is_iterable(mixed $value): bool

Проверяет, соответствует ли содержимое переменной псевдотипу iterable, то есть является ли она либо массивом (array), либо объектом, реализующим Traversable

Список параметров

value

Переменная для проверки

Возвращаемые значения

Возвращает true, если value итерируемая или 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, PHP 8)

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, PHP 8)

is_null — Проверяет, является ли значение переменной равным null

Описание

is_null(mixed $value): bool

Проверяет, является ли значение данной переменной равным null.

Список параметров

value

Проверяемая переменная.

Возвращаемые значения

Возвращает true, если значение value равно 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, PHP 8)

is_numeric — Проверяет, является ли переменная числом или строкой, содержащей число

Описание

is_numeric(mixed $value): bool

Определяет, является ли данная переменная числом или строкой, содержащей число.

Список параметров

value

Проверяемая переменная.

Возвращаемые значения

Возвращает true, если value является числом или строкой, содержащей число или false в противном случае.

Список изменений

Версия | Описание
8.0.0 | Строки, состоящие из чисел, заканчивающиеся пробелом ("42 "), теперь будут возвращать true. Ранее вместо этого возвращалось 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) . " is numeric", PHP_EOL;
} else {
echo var_export($element, true) . " is NOT numeric", PHP_EOL;
}
}
?>

Результат выполнения данного примера:

42 - число
1337 - число
1337 - число
1337 - число
1337 - число
1337.0 - число
'0x539' - НЕ число
'02471' - число
'0b10100111001' - НЕ число
'1337e0' - число
'not numeric' - НЕ число
array (
) - НЕ число
9.1 - число
NULL - НЕ число
'' - НЕ число

Пример #2 Пример использования is_numeric() с пробелом

<?php
$tests = [
" 42",
"42 ",
"\u{A0}9001", // неразрывный пробел
"9001\u{A0}", // неразрывный пробел
];
foreach ($tests as $element) {
if (is_numeric($element)) {
echo var_export($element, true) . " - число", PHP_EOL;
} else {
echo var_export($element, true) . " - НЕ число", PHP_EOL;
}
}
?>

Результат выполнения данного примера в PHP 8:

' 42' - число
'42 ' - число
' 9001' - НЕ число
'9001 ' - НЕ число

Результат выполнения данного примера в PHP 7:

' 42' - число
'42 ' - НЕ число
' 9001' - НЕ число
'9001 ' - НЕ число

Смотрите также

  • Строки, содержащие числа
  • ctype_digit() - Проверяет наличие цифровых символов в строке
  • is_bool() - Проверяет, является ли переменная булевой
  • is_null() - Проверяет, является ли значение переменной равным null
  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная целым числом
  • is_string() - Проверяет, является ли переменная строкой
  • is_object() - Проверяет, является ли переменная объектом
  • is_array() - Определяет, является ли переменная массивом
  • filter_var() - Фильтрует переменную с помощью определённого фильтра


Проверяет, является ли переменная объектом

  • « is_numeric
  • is_real »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная объектом

is_object

(PHP 4, PHP 5, PHP 7, PHP 8)

is_object — Проверяет, является ли переменная объектом

Описание

is_object(mixed $value): bool

Проверяет, является ли данная переменная объектом.

Список параметров

value

Проверяемая переменная.

Возвращаемые значения

Возвращает true, если value является объектом, или false в противном случае.

Список изменений

Версия | Описание
7.2.0 | Теперь is_object() возвращает true для десериализованных объектов, у которых отсутствует объявление класса (класс __PHP_Incomplete_Class). Раньше возвращалось 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));
?>

Смотрите также

  • 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, PHP 8)

is_real — Псевдоним is_float()

Описание

Функция является псевдонимом: is_float().

Внимание

Псевдоним объявлен УСТАРЕВШИМ в PHP 7.4.0 и УДАЛЁН в PHP 8.0.0.


Проверяет, является ли переменная ресурсом

  • « is_real
  • is_scalar »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная ресурсом

is_resource

(PHP 4, PHP 5, PHP 7, PHP 8)

is_resource — Проверяет, является ли переменная ресурсом

Описание

is_resource(mixed $value): bool

Проверяет, является ли данная переменная ресурсом (resource).

Список параметров

value

Проверяемая переменная.

Возвращаемые значения

Возвращает true, если value является ресурсом (resource), или false в противном случае.

Примеры

Пример #1 Пример использования is_resource()

<?php

$handle = fopen("php://stdout", "w");
if (is_resource($handle)) {
echo '$handle - это ресурс';
}
?>

Результат выполнения данного примера:

$handle - это ресурс

Примечания

Замечание:

Функция is_resource() не производит строгой проверки типа; она вернёт false, если value является ресурсом, который был закрыт.

Смотрите также

  • Тип resource
  • get_resource_type() - Возвращает тип ресурса


Проверяет, является ли переменная скалярным значением

  • « is_resource
  • is_string »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная скалярным значением

is_scalar

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

is_scalar — Проверяет, является ли переменная скалярным значением

Описание

is_scalar(mixed $value): bool

Проверяет, является ли данная переменная скалярным значением.

Скалярные переменные - это переменные с типами int, float, string и bool. Типы array, object, resource и null не являются скалярными.

Замечание:

is_scalar() не считает переменные типа resource скалярными, так как ресурсы являются абстрактными типами данных, которые в настоящее время основаны на целом типе. Не стоит полагаться на данную деталь реализации, так как она может измениться.

Замечание:

is_scalar() не считает NULL скаляром.

Список параметров

value

Проверяемая переменная.

Возвращаемые значения

Возвращает true, если value является скалярным значением, или 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, PHP 8)

is_string — Проверяет, является ли переменная строкой

Описание

is_string(mixed $value): bool

Проверяет, является ли данная переменная строкой.

Список параметров

value

Проверяемая переменная.

Возвращаемые значения

Возвращает true, если value является строкой, и 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, PHP 8)

isset — Определяет, была ли установлена переменная значением, отличным от null

Описание

isset(mixed $var, mixed ...$vars): bool

Определяет, была ли установлена переменная значением отличным от null

Если переменная была удалена с помощью unset(), то она больше не считается установленной.

isset() вернёт false при проверке переменной которая была установлена значением null. Также учтите, что NULL-символ ("\0") не равен константе null в PHP.

Если были переданы несколько параметров, то isset() вернёт true только в том случае, если все параметры определены. Проверка происходит слева направо и заканчивается, как только будет встречена неопределённая переменная.

Список параметров

var

Проверяемая переменная.

vars

Следующие переменные.

Возвращаемые значения

Возвращает true, если var определена и её значение отлично от null, и 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
$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']));
?>

Результат выполнения данного примера:

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, PHP 8)

print_r — Выводит удобочитаемую информацию о переменной

Описание

print_r(mixed $value, bool $return = false): string|bool

print_r() выводит информацию о переменной в удобочитаемом виде.

print_r(), var_dump() и var_export() могут также показывать защищённые и закрытые атрибуты объектов. Статические элементы класса не будут отображены.

Список параметров

value

Выражение для вывода на экран.

return

Если вы хотите перехватить вывод print_r(), используйте параметр return. Если его значение равно true, то print_r() вернёт информацию вместо вывода в браузер.

Возвращаемые значения

Если в функцию передаются значения типов string, int или float, будет напечатано само значение. Если передаётся массив array, значения будут напечатаны в формате, показывающем ключи и элементы массива. Аналогичный формат вывода используется для объектов.

Если параметр return установлен в true, данная функция вернёт строку (string). В противном случае возвращаемое значение будет равно true.

Примеры

Пример #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
?>

Примечания

Замечание:

Когда используется параметр return, функция использует внутреннюю буферизацию вывода до PHP 7.1.0, поэтому её нельзя использовать внутри callback-функции ob_start().

Смотрите также

  • ob_start() - Включение буферизации вывода
  • var_dump() - Выводит информацию о переменной
  • var_export() - Выводит или возвращает интерпретируемое строковое представление переменной


Генерирует пригодное для хранения представление переменной

  • « print_r
  • settype »
  • PHP Manual
  • Функции для работы с переменными
  • Генерирует пригодное для хранения представление переменной

serialize

(PHP 4, PHP 5, PHP 7, PHP 8)

serialize — Генерирует пригодное для хранения представление переменной

Описание

serialize(mixed $value): string

Генерирует пригодное для хранения представление переменной.

Это полезно для хранения или передачи значений PHP между скриптами без потери их типа и структуры.

Для превращения сериализованной строки обратно в PHP-значение, используйте функцию unserialize().

Список параметров

value

Значение, которое необходимо сериализовать. serialize() обрабатывает все типы, кроме resource и некоторых типов object (смотрите примечание ниже). Возможно также сериализовать массивы, которые содержат ссылки на себя. Циклические ссылки внутри сериализуемого массива/объекта также сохраняются. Любые другие ссылки будут потеряны.

При сериализации объекта PHP пытается вызвать магические методы __serialize() или __sleep() перед сериализацией. Это делается для того, чтобы позволить объекту в последний момент произвести очистку и тому подобные операции перед сериализацией. Аналогично, когда объект восстанавливается функцией unserialize(), вызывается магический метод __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, array_reverse($sqldata))) {
/* Код, выполняемый в случае возникновения ошибки.. */
}
}
?>

Примечания

Замечание:

Обратите внимание, что много встроенных в PHP объектов не может быть сериализовано. Однако, те из них, которые поддерживают эту возможность, реализуют или интерфейс Serializable, или магические методы __serialize()/__unserialize() или __sleep()/__wakeup(). Если встроенный класс не удовлетворяет этим требованиям, он не может быть надёжно сериализован.

Исторически есть некоторые исключения из вышеуказанного правила, когда некоторые внутренние объекты могут быть сериализованы без реализации интерфейса или магических методов.

Внимание

При сериализации объектов функцией serialize(), ведущий обратный слеш не будет включён в имя класса с указанным пространством имён для наилучшей обратной совместимости.

Смотрите также

  • unserialize() - Создаёт PHP-значение из хранимого представления
  • var_export() - Выводит или возвращает интерпретируемое строковое представление переменной
  • json_encode() - Возвращает JSON-представление данных
  • Сериализация объектов
  • __sleep()
  • __wakeup()
  • __serialize()
  • __unserialize()


Задаёт тип переменной

  • « serialize
  • strval »
  • PHP Manual
  • Функции для работы с переменными
  • Задаёт тип переменной

settype

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

strval — Возвращает строковое значение переменной

Описание

strval(mixed $value): string

Возвращает строковое значение переменной. Смотрите документацию по типу string для более подробной информации о преобразовании в строку.

Эта функция не производит форматирование возвращаемого значения. Если необходимо привести числовое значение к строке с особым форматом, воспользуйтесь sprintf() или number_format().

Список параметров

value

Переменная, которую необходимо преобразовать в строку.

value может быть любого скалярного типа, null или объектом (object), который реализует метод __toString(). strval() нельзя применить к массиву или объекту, которые не реализуют метод __toString().

Возвращаемые значения

Строковое значение (string) параметра value.

Примеры

Пример #1 Пример использования strval() с магическим методом PHP __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, PHP 8)

unserialize — Создаёт PHP-значение из хранимого представления

Описание

unserialize(string $data, array $options = []): mixed

unserialize() принимает одну сериализованную переменную и конвертирует её обратно в значение PHP.

Внимание

Не передавайте непроверенные пользовательские данные в unserialize(), даже если в options задано allowed_classes. Десериализация может создать код, который выполнится при создании объекта или при автоматической загрузке кода, чем могут воспользоваться недобросовестные пользователи. Лучше использовать более безопасные стандартные форматы обмена данными, такие как JSON (с помощью функций json_decode() и json_encode()), если вам нужно передать сериализованные данные пользователю.

Если вам нужно десериализовать данные из внешних источников, используйте функцию hash_hmac() для проверки этих данных. Убедитесь, что эти данные кроме вас никто не изменял.

Список параметров

data

Сериализованная строка.

Если переменная, требующая десериализации, является объектом, то после успешного восстановления объекта PHP автоматически попытается вызвать магические метод __unserialize() или __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 будет пытаться инстанцировать объекты любого класса.
max_depth | int | Максимальная глубина структур, допустимая при десериализации и предназначенная для предотвращения переполнения стека. По умолчанию ограничение глубины составляет 4096 и может быть отключено установкой max_depth значения 0.

Возвращаемые значения

Возвращается преобразованное значение, которое принимает один из типов bool, int, float, string, array или object.

В случае, если переданная строка не поддаётся десериализации, возвращается false и генерируется E_NOTICE.

Ошибки

Объекты могут выбрасывать Throwable в своих обработчиках десериализации.

Список изменений

Версия | Описание
7.4.0 | Добавлен элемент max_depth в параметр options для установки максимальной глубины структур, разрешённых при десериализации.
7.1.0 | Теперь элемент allowed_classes параметра options строго типизирован, то есть если передано что-либо, кроме array и bool, unserialize() вернёт false и вызовет ошибку E_WARNING.

Примеры

Пример #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'); // определяем свою callback-функцию

function mycallback($classname)
{
// просто подключаете файл, содержащий определение класса
// $classname указывает, для какого класса требуется определение
}
?>

Примечания

Внимание

false возвращается как в случае возникновения ошибки, так и в случае, если десериализуется сериализованное значение false. Этот особый случай можно отловить, используя сравнение data со значением serialize(false), или перехватив сгенерированную ошибку E_NOTICE.

Смотрите также

  • json_encode() - Возвращает JSON-представление данных
  • json_decode() - Декодирует строку JSON
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Автоматическая загрузка классов
  • unserialize_callback_func
  • unserialize_max_depth
  • __wakeup()
  • __serialize()
  • __unserialize()


Удаляет переменную

  • « unserialize
  • var_dump »
  • PHP Manual
  • Функции для работы с переменными
  • Удаляет переменную

unset

(PHP 4, PHP 5, PHP 7, PHP 8)

unset — Удаляет переменную

Описание

unset(mixed $var, mixed ...$vars): 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

Удаляемая переменная.

vars

Следующие переменные.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования unset()

<?php
// удаляем одну переменную
unset($foo);

// удаляем один элемент массива
unset($bar['quux']);

// удаляем несколько переменных
unset($foo1, $foo2, $foo3);
?>

Пример #2 Использование приведения типа (unset)

Приведение типа (unset) часто путают с функцией unset(). Приведение типа (unset) приводит только к значению NULL и было добавлено исключительно для полноты реализации. Оно не меняет значение приводимой переменной. С PHP 7.2.0 преобразование типа (unset) объявлено устаревшим и удалено в PHP 8.0.0.

<?php
$name = 'Felipe';

var_dump((unset) $name);
var_dump($name);
?>

Результат выполнения данного примера:

NULL
string(6) "Felipe"

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций или именованных аргументов.

Замечание:

Можно удалить свойства объекта, видимые в текущем контексте.

Если определены (в классе), метод __get() будет вызван при попытке получить неустановленное свойство, и метод __set() будет вызван при попытке установить неопределённое свойство.

Замечание:

Невозможно удалить псевдопеременную текущего контекста $this внутри метода объекта.

Замечание:

При вызове конструкции unset() на недоступных или необъявленных свойствах объекта будет вызван встроенный метод объекта __unset(), если он определён.

Смотрите также

  • isset() - Определяет, была ли установлена переменная значением, отличным от null
  • empty() - Проверяет, пуста ли переменная
  • __unset()
  • array_splice() - Удаляет часть массива и заменяет её чем-нибудь ещё
  • Приведение типа (unset)


Выводит информацию о переменной

  • « unset
  • var_export »
  • PHP Manual
  • Функции для работы с переменными
  • Выводит информацию о переменной

var_dump

(PHP 4, PHP 5, PHP 7, PHP 8)

var_dump — Выводит информацию о переменной

Описание

var_dump(mixed $value, mixed ...$values): void

Функция отображает структурированную информацию об одном или нескольких выражениях, включая их тип и значение. Массивы и объекты анализируются рекурсивно с разным отступом у значений для визуального отображения структуры.

Все общедоступные, закрытые и защищённые свойства объекта будут возвращены при выводе, если только объект не реализует метод __debugInfo().

Подсказка

Как и с любой другой функцией, осуществляющей вывод непосредственно в браузер, вы можете использовать функции контроля вывода, чтобы перехватывать выводимые этой функцией данные и сохранять их, например, в строку (string).

Список параметров

value

Выражение, которое необходимо отобразить.

values

Следующие выражения для отображения.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #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() - Выводит строковое представление внутренней структуры zval
  • var_export() - Выводит или возвращает интерпретируемое строковое представление переменной
  • __debugInfo()


Выводит или возвращает интерпретируемое строковое представление переменной

  • « var_dump
  • Веб-сервисы »
  • PHP Manual
  • Функции для работы с переменными
  • Выводит или возвращает интерпретируемое строковое представление переменной

var_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

var_export — Выводит или возвращает интерпретируемое строковое представление переменной

Описание

var_export(mixed $value, bool $return = false): ?string

var_export() возвращает структурированную информацию о данной переменной. Функция аналогична var_dump() за одним исключением: возвращаемое представление является полноценным PHP-кодом.

Список параметров

value

Переменная, которую необходимо экспортировать.

return

Если передано и значение равно true, var_export() вернёт представление переменной вместо его вывода.

Возвращаемые значения

Возвращает представление переменной, если параметр return передан и равен true. В противном случае функция возвращает null.

Список изменений

Версия | Описание
8.2.0 | Имена экспортируемых классов теперь полностью определены; ранее ведущий обратный слеш опускался.
7.3.0 | Теперь объекты stdClass экспортируются в виде массива, приведённого к объекту (массив (object) array( ... )), вместо использования несуществующего метода stdClass::__setState(). Практический эффект заключается в том, что теперь stdClass можно экспортировать, и полученный код будет работать даже в более ранних версиях PHP.

Примеры

Пример #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 Экспорт stdClass с PHP 7.3.0

<?php
$person = new stdClass;
$person->name = 'ElePHPant ElePHPantsdotter';
$person->website = 'https://php.net/elephpant.php';

var_export($person);

Результат выполнения данного примера:

(object) array(
   'name' => 'ElePHPant ElePHPantsdotter',
   'website' => 'https://php.net/elephpant.php',
)

Пример #3 Экспорт классов

<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>

Результат выполнения данного примера:

A::__set_state(array(
   'var' => 5,
))

Пример #4 Использование __set_state()

<?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().

Внимание

До версии PHP 8.2.0, когда функция var_export() экспортировала объекты, ведущий обратный слеш не добавлялся в имя класса с указанным пространством имён для наилучшей обратной совместимости.

Замечание:

Для того, чтобы можно было использовать сгенерированный var_export() PHP-код, необходимо, чтобы все затронутые объекты реализовывали магический метод __set_state. Единственное исключение — stdClass, который экспортируется с использованием массива, приведённого к объекту.

Смотрите также

  • print_r() - Выводит удобочитаемую информацию о переменной
  • serialize() - Генерирует пригодное для хранения представление переменной
  • var_dump() - Выводит информацию о переменной


Веб-сервисы

  • OAuth
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • Функции OAuth
    • OAuth — Класс OAuth
    • OAuthProvider — Класс OAuthProvider
    • OAuthException — Класс OAuthException
  • 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 (int)
Используется методом OAuth::setRequestEngine() для выбора потоков PHP в качестве движка, в противоположность константе OAUTH_REQENGINE_CURL, использующейся для выбора Curl.
OAUTH_REQENGINE_CURL (int)
Используется методом OAuth::setRequestEngine() для выбора Curl в качестве движка, в противоположность константе OAUTH_REQENGINE_STREAMS, использующейся для выбора потоков PHP.
OAUTH_OK (int)
Жизнь хороша.
OAUTH_BAD_NONCE (int)
Значение oauth_nonce использовалось в предыдущем запросе, следовательно, не может быть использовано сейчас.
OAUTH_BAD_TIMESTAMP (int)
Значение oauth_timestamp не было принято провайдером. В этом случае, ответ должен также содержать параметр oauth_acceptable_timestamps.
OAUTH_CONSUMER_KEY_UNKNOWN (int)
oauth_consumer_key временно недоступен провайдеру. Например, если провайдер заблокировал потребителя.
OAUTH_CONSUMER_KEY_REFUSED (int)
Ключ потребителя был отклонён.
OAUTH_INVALID_SIGNATURE (int)
Значение oauth_signature недействительно, так как не совпадает с подписью, вычисленной провайдером.
OAUTH_TOKEN_USED (int)
oauth_token был употреблён. Он уже использовался в предыдущем запросе/запросах и более не может быть использован.
OAUTH_TOKEN_EXPIRED (int)
oauth_token устарел.
OAUTH_TOKEN_REVOKED (int)
oauth_token был отозван и в дальнейшем не будет принят.
OAUTH_TOKEN_REJECTED (int)
Провайдер не принял oauth_token. Причина неизвестна, но возможно заключается в том, что токен никогда не был выдан, или уже был использован, или устарел, или был забыт провайдером.
OAUTH_VERIFIER_INVALID (int)
Некорректный oauth_verifier.
OAUTH_PARAMETER_ABSENT (int)
Требуемый параметр не был получен. В этом случае, ответ должен также содержать параметр oauth_parameters_absent.
OAUTH_SIGNATURE_METHOD_REJECTED (int)
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 для защиты приватных ресурсов.

Обзор классов

class 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
public disableDebug(): bool
public disableRedirects(): bool
public disableSSLChecks(): bool
public enableDebug(): bool
public enableRedirects(): bool
public enableSSLChecks(): 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|false
public getAccessToken(
string $access_token_url,
string $auth_session_handle = ?,
string $verifier_token = ?,
string $http_method = ?
): array
public getCAPath(): array
public getLastResponse(): string
public getLastResponseHeaders(): string|false
public getLastResponseInfo(): array
public getRequestHeader(string $http_method, string $url, mixed $extra_parameters = ?): string|false
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

Деструктор.

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • OAuth::__construct() - Создаёт новый объект OAuth


Выключить подробную отладочную информацию

  • « OAuth::__destruct
  • OAuth::disableRedirects »
  • PHP Manual
  • OAuth
  • Выключить подробную отладочную информацию

OAuth::disableDebug

(PECL OAuth >= 0.99.3)

OAuth::disableDebug — Выключить подробную отладочную информацию

Описание

public OAuth::disableDebug(): bool

Выключает подробную информацию о запросе (по умолчанию выключено). Альтернативно можно установить свойству debug значение false, чтобы выключить режим отладки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true

Список изменений

Версия | Описание
PECL oauth 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(): 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(): bool

Выключает обычные проверки клиентских и хост сертификатов. Не предназначено для продуктивной среды. Альтернативно можно установить полю sslChecks значение false, чтобы выключить SSL проверки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true

Список изменений

Версия | Описание
PECL oauth 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(): bool

Включает подробную информацию о запросе, полезную для отладки. Отладочная информация хранится в поле debugInfo. Альтернативно можно установить полю debug значение non-false, чтобы включить режим отладки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true

Список изменений

Версия | Описание
PECL oauth 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(): 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(): bool

Включить обычные проверки сертификата SSL конечной точки и хоста (включено по умолчанию). Также можно установить sslChecks в значение не-false, чтобы отключить проверки SSL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

true

Список изменений

Версия | Описание
PECL oauth 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 в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL oauth 1.0.0 | Раньше в случае возникновения ошибки возвращался null вместо false.
PECL oauth 0.99.5 | Добавлен параметр http_method
PECL oauth 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|false

Генерирует подпись на основе метода 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.

Список изменений

Версия | Описание
PECL oauth 1.0.0 | Раньше в случае возникновения ошибки возвращался null вместо false.
PECL oauth 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(): 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(): string

Возвращает сырое представление последнего полученного ответа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку с последним ответом.

Смотрите также

  • OAuth::getLastResponseInfo() - Получить HTTP-информацию о последнем ответе
  • OAuth::fetch() - Извлечь защищённый ресурс OAuth


Получить заголовки последнего ответа

  • « OAuth::getLastResponse
  • OAuth::getLastResponseInfo »
  • PHP Manual
  • OAuth
  • Получить заголовки последнего ответа

OAuth::getLastResponseHeaders

(Информация о версии неизвестна, возможно, только в Git)

OAuth::getLastResponseHeaders — Получить заголовки последнего ответа

Описание

public OAuth::getLastResponseHeaders(): string|false

Возвращает заголовки последнего ответа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка с заголовками последнего ответа или false в случае возникновения ошибки


Получить HTTP-информацию о последнем ответе

  • « OAuth::getLastResponseHeaders
  • OAuth::getRequestHeader »
  • PHP Manual
  • OAuth
  • Получить HTTP-информацию о последнем ответе

OAuth::getLastResponseInfo

(PECL OAuth >= 0.99.1)

OAuth::getLastResponseInfo — Получить HTTP-информацию о последнем ответе

Описание

public OAuth::getLastResponseInfo(): 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|false

Генерирует подпись заголовка 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.

Список изменений

Версия | Описание
PECL oauth 1.0.0 | Раньше в случае возникновения ошибки возвращался null вместо false.
PECL oauth 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 задан некорректно.)

Список изменений

Версия | Описание
PECL oauth 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 задан некорректно.

Список изменений

Версия | Описание
PECL oauth 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 задан некорректно.

Список изменений

Версия | Описание
PECL oauth 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)

Список изменений

Версия | Описание
PECL oauth 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 задан некорректно.

Список изменений

Версия | Описание
PECL oauth 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.

Обзор классов

class OAuthProvider {
/* Методы */
final public addRequiredParameter(string $req_params): bool
public callconsumerHandler(): void
public callTimestampNonceHandler(): void
public calltokenHandler(): 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

Вызвать зарегистрированную 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

Вызвать зарегистрированную 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

Вызвать зарегистрированную 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 и содержит полезную отладочную информацию.

Обзор классов

class OAuthException extends Exception {
/* Свойства */
public $lastResponse;
public $debugInfo;
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Свойства

lastResponse

Последнее исключение, если таковое имеется

debugInfo


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 для запросов SOAP
    • SoapClient::__setLocation — Устанавливает адрес используемой веб-службы
    • SoapClient::__setSoapHeaders — Устанавливает SOAP-заголовки для последующих вызовов
    • SoapClient::__soapCall — Вызывает SOAP-функцию
  • 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
  • SoapFault — Класс SoapFault
    • SoapFault::__construct — Конструктор SoapFault
    • SoapFault::__toString — Получить текстовое представление SoapFault
  • SoapHeader — Класс SoapHeader
    • SoapHeader::__construct — Конструктор SoapHeader
  • SoapParam — Класс SoapParam
    • SoapParam::__construct — Конструктор SoapParam
  • SoapVar — Класс SoapVar
    • SoapVar::__construct — Конструктор SoapVar


Введение

Модуль SOAP может использоваться для написания как серверной, так и клиентской части. Он реализует спецификации » SOAP 1.1, » SOAP 1.2 и » WSDL 1.1.


Требования

Для корректной работы этого модуля необходим PHP-модуль libxml. Это означает, что также необходима передача опции --with-libxml, или до PHP 7.4 --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 int

Включает или отключает кеширование WSDL.

soap.wsdl_cache_dir string

Устанавливает путь к директории, где модуль SOAP будет хранить кеш-файлы.

soap.wsdl_cache_ttl int

Устанавливает количество секунд (время жизни) для файлов в кеше, которое они будут использоваться вместо оригинальных файлов.

soap.wsdl_cache int

Если параметр 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 int

Максимальное количество находящихся в оперативной памяти кешированных файлов WSDL. Дальнейшее добавление файлов в заполненную кеш-память будет приводить к удалению из неё самых старых файлов.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

Константы SOAP
Константа | Значение | Описание
SOAP_1_1 (int) | 1 | Определяет использование SOAP 1.1 при передаче в качестве параметра soap_version методу SoapServer::__construct() или SoapClient::__construct().
SOAP_1_2 (int) | 2 | Определяет использование SOAP 1.2 при передаче в качестве параметра soap_version методу SoapServer::__construct() или SoapClient::__construct().
SOAP_PERSISTENCE_SESSION (int) | 1 |
SOAP_PERSISTENCE_REQUEST (int) | 2 |
SOAP_FUNCTIONS_ALL (int) | 999 |
SOAP_ENCODED (int) | 1 | Определяет использование кодировки SOAP при передаче в качестве параметра use методу SoapClient::__construct().
SOAP_LITERAL (int) | 2 | Определяет использование специфической для сервиса кодировки при передаче в качестве параметра use методу SoapClient::__construct().
SOAP_RPC (int) | 1 | Определяет использование привязки в стиле RPC при передаче в качестве параметра style методу SoapClient::__construct().
SOAP_DOCUMENT (int) | 2 | Определяет использование привязки к документу при передаче в качестве параметра style методу SoapClient::__construct().
SOAP_ACTOR_NEXT (int) | 1 |
SOAP_ACTOR_NONE (int) | 2 |
SOAP_ACTOR_UNLIMATERECEIVER (int) | 3 |
SOAP_COMPRESSION_ACCEPT (int) | 32 | Определяет использование заголовка "Accept-Encoding" при передаче параметра compression методу SoapClient::__construct().
SOAP_COMPRESSION_GZIP (int) | 0 | Определяет использование сжатия gzip при передаче параметра compression методу SoapClient::__construct().
SOAP_COMPRESSION_DEFLATE (int) | 16 | Определяет использование сжатия deflate при передаче параметра compression методу SoapClient::__construct().
SOAP_AUTHENTICATION_BASIC (int) | 0 | Определяет использование базовой аутентификации HTTP при передаче параметра authentication методу SoapClient::__construct().
SOAP_AUTHENTICATION_DIGEST (int) | 1 | Определяет использование аутентификации HTTP Digest Authentication при передаче параметра authentication методу SoapClient::__construct().
SOAP_SSL_METHOD_TLS (int) | 0 | Используется с устаревшим параметром ssl_method метода SoapClient::__construct().
SOAP_SSL_METHOD_SSLv2 (int) | 1 | Используется с устаревшим параметром ssl_method метода SoapClient::__construct().
SOAP_SSL_METHOD_SSLv3 (int) | 2 | Используется с устаревшим параметром ssl_method метода SoapClient::__construct().
SOAP_SSL_METHOD_SSLv23 (int) | 3 | Используется с устаревшим параметром ssl_method метода SoapClient::__construct().
UNKNOWN_TYPE (int) | 999998 |
XSD_STRING (int) | 101 |
XSD_BOOLEAN (int) | 102 |
XSD_DECIMAL (int) | 103 |
XSD_FLOAT (int) | 104 |
XSD_DOUBLE (int) | 105 |
XSD_DURATION (int) | 106 |
XSD_DATETIME (int) | 107 |
XSD_TIME (int) | 108 |
XSD_DATE (int) | 109 |
XSD_GYEARMONTH (int) | 110 |
XSD_GYEAR (int) | 111 |
XSD_GMONTHDAY (int) | 112 |
XSD_GDAY (int) | 113 |
XSD_GMONTH (int) | 114 |
XSD_HEXBINARY (int) | 115 |
XSD_BASE64BINARY (int) | 116 |
XSD_ANYURI (int) | 117 |
XSD_QNAME (int) | 118 |
XSD_NOTATION (int) | 119 |
XSD_NORMALIZEDSTRING (int) | 120 |
XSD_TOKEN (int) | 121 |
XSD_LANGUAGE (int) | 122 |
XSD_NMTOKEN (int) | 123 |
XSD_NAME (int) | 124 |
XSD_NCNAME (int) | 125 |
XSD_ID (int) | 126 |
XSD_IDREF (int) | 127 |
XSD_IDREFS (int) | 128 |
XSD_ENTITY (int) | 129 |
XSD_ENTITIES (int) | 130 |
XSD_INTEGER (int) | 131 |
XSD_NONPOSITIVEINTEGER (int) | 132 |
XSD_NEGATIVEINTEGER (int) | 133 |
XSD_LONG (int) | 134 |
XSD_INT (int) | 135 |
XSD_SHORT (int) | 136 |
XSD_BYTE (int) | 137 |
XSD_NONNEGATIVEINTEGER (int) | 138 |
XSD_UNSIGNEDLONG (int) | 139 |
XSD_UNSIGNEDINT (int) | 140 |
XSD_UNSIGNEDSHORT (int) | 141 |
XSD_UNSIGNEDBYTE (int) | 142 |
XSD_POSITIVEINTEGER (int) | 143 |
XSD_NMTOKENS (int) | 144 |
XSD_ANYTYPE (int) | 145 |
XSD_ANYXML (int) | 147 |
APACHE_MAP (int) | 200 |
SOAP_ENC_OBJECT (int) | 301 |
SOAP_ENC_ARRAY (int) | 300 |
XSD_1999_TIMEINSTANT (int) | 401 |
XSD_NAMESPACE (string) | http://www.w3.org/2001/XMLSchema |
XSD_1999_NAMESPACE (string) | http://www.w3.org/1999/XMLSchema |
SOAP_SINGLE_ELEMENT_ARRAYS (int) | 1 | Используется с параметром features метода SoapClient::__construct().
SOAP_WAIT_ONE_WAY_CALLS (int) | 2 | Используется с параметром features метода SoapClient::__construct().
SOAP_USE_XSI_ARRAY_TYPE (int) | 4 | Используется с параметром features метода SoapClient::__construct().
WSDL_CACHE_NONE (int) | 0 | Отключает кеш WSDL при использовании с параметром soap.wsdl_cache или параметром wsdl_cache методов SoapClient::__construct() и SoapServer::__construct().
WSDL_CACHE_DISK (int) | 1 | Определяет использование кеша WSDL на диске только при использовании с параметром soap.wsdl_cache или параметром wsdl_cache методов SoapClient::__construct() и SoapServer::__construct().
WSDL_CACHE_MEMORY (int) | 2 | Определяет использование кеша WSDL в памяти только при использовании с параметром soap.wsdl_cache или параметром wsdl_cache методов SoapClient::__construct() и SoapServer::__construct().
WSDL_CACHE_BOTH (int) | 3 | Определяет использование кеша WSDL как на диске, так и в памяти только при использовании с параметром soap.wsdl_cache или параметром wsdl_cache методов SoapClient::__construct() и SoapServer::__construct().


Функции 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, PHP 8)

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::__construct() - Конструктор класса SoapClient
  • SoapFault::__construct() - Конструктор SoapFault


Установить, следует ли использовать обработчик ошибок SOAP

  • « is_soap_fault
  • SoapClient »
  • PHP Manual
  • Функции SOAP
  • Установить, следует ли использовать обработчик ошибок SOAP

use_soap_error_handler

(PHP 5, PHP 7, PHP 8)

use_soap_error_handler — Установить, следует ли использовать обработчик ошибок SOAP

Описание

use_soap_error_handler(bool $enable = true): bool

Эта функция определяет, нужно ли использовать обработчики ошибок SOAP в SOAP-сервере. Функция возвращает предыдущее значение. Если установлено в true, то подробности ошибок в приложении с классом SoapServer будут отправлены клиенту в качестве сообщения об ошибке SOAP. Если установлено в false, то используется стандартный обработчик ошибок PHP. По умолчанию используется отправка сообщения об ошибке SOAP клиенту.

Список параметров

enable

Для отправки данных об ошибках клиентам необходимо установить в true.

Возвращаемые значения

Возвращает предыдущее значение.

Смотрите также

  • set_error_handler() - Задаёт пользовательский обработчик ошибок
  • set_exception_handler() - Задаёт пользовательский обработчик исключений


Класс SoapClient

(PHP 5, PHP 7, PHP 8)

Введение

Класс SoapClient представляет собой клиента для серверов » SOAP 1.1, » SOAP 1.2. Он может использоваться в режиме с WSDL или без него.

Обзор классов

class SoapClient {
/* Свойства */
private ?string $uri = null;
private ?int $style = null;
private ?int $use = null;
private ?string $location = null;
private bool $trace = false;
private ?int $compression = null;
private ?resource $sdl = null;
private ?resource $typemap = null;
private ?resource $httpsocket = null;
private ?resource $httpurl = null;
private ?string $_login = null;
private ?string $_password = null;
private bool $_use_digest = false;
private ?string $_digest = null;
private ?string $_proxy_host = null;
private ?int $_proxy_port = null;
private ?string $_proxy_login = null;
private ?string $_proxy_password = null;
private bool $_exceptions = true;
private ?string $_encoding = null;
private ?array $_classmap = null;
private ?int $_features = null;
private int $_connection_timeout;
private ?resource $_stream_context = null;
private ?string $_user_agent = null;
private bool $_keep_alive = true;
private ?int $_ssl_method = null;
private int $_soap_version;
private ?int $_use_proxy = null;
private array $_cookies = [];
private ?array $__default_headers = null;
private ?SoapFault $__soap_fault = null;
private ?string $__last_request = null;
private ?string $__last_response = null;
private ?string $__last_request_headers = null;
private ?string $__last_response_headers = null;
/* Методы */
public __construct(?string $wsdl, array $options = [])
public __call(string $name, array $args): mixed
public __doRequest(
string $request,
string $location,
string $action,
int $version,
bool $oneWay = false
): ?string
public __getCookies(): array
public __getFunctions(): ?array
public __getLastRequest(): ?string
public __getLastRequestHeaders(): ?string
public __getLastResponse(): ?string
public __getLastResponseHeaders(): ?string
public __getTypes(): ?array
public __setCookie(string $name, ?string $value = null): void
public __setLocation(?string $location = null): ?string
public __setSoapHeaders(SoapHeader|array|null $headers = null): bool
public __soapCall(
string $name,
array $args,
?array $options = null,
SoapHeader|array|null $inputHeaders = null,
array &$outputHeaders = null
): mixed
}

Свойства

__default_headers

__last_request

__last_request_headers

__last_response

__last_response_headers

__soap_fault

_classmap

_connection_timeout

_cookies

_digest

_encoding

_exceptions

_features

_keep_alive

_login

_password

_proxy_host

_proxy_login

_proxy_password

_proxy_port

_soap_version

_ssl_method

_stream_context

_use_digest

_use_proxy

_user_agent

compression

httpsocket

httpurl

location

sdl

style

trace

typemap

uri

use

Содержание

  • 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 для запросов SOAP
  • SoapClient::__setLocation — Устанавливает адрес используемой веб-службы
  • SoapClient::__setSoapHeaders — Устанавливает SOAP-заголовки для последующих вызовов
  • SoapClient::__soapCall — Вызывает SOAP-функцию


Вызывает SOAP-функцию (устаревший метод)

  • « SoapClient
  • SoapClient::__construct »
  • PHP Manual
  • SoapClient
  • Вызывает SOAP-функцию (устаревший метод)

SoapClient::__call

(PHP 5, PHP 7, PHP 8)

SoapClient::__call — Вызывает SOAP-функцию (устаревший метод)

Описание

public SoapClient::__call(string $name, array $args): mixed

Вызов этого метода напрямую устарел. Обычно функции SOAP могут вызываться как методы объекта SoapClient; в ситуациях, когда это невозможно или требуются дополнительные опции, используйте метод SoapClient::__soapCall()..

Список параметров

name

Имя вызываемой функции SOAP.

args

Массив аргументов для передачи функции. Может быть упорядоченный или ассоциативный массив. Обратите внимание, что большинство серверов SOAP требуют предоставления имён параметров, в этом случае должен быть ассоциативный массив.

Возвращаемые значения

Функции SOAP могут возвращать одно или несколько значений. Если функция SOAP возвращает только одно значение, то возвращаемое значение будет скаляром. Если возвращается несколько значений, то вместо них возвращается ассоциативный массив именованных выходных параметров.

В случае возникновения ошибки, если объект SoapClient был объявлен с опцией exceptions со значением false, будет возвращён объект SoapFault.


Конструктор класса SoapClient

  • « SoapClient::__call
  • SoapClient::__doRequest »
  • PHP Manual
  • SoapClient
  • Конструктор класса SoapClient

SoapClient::__construct

(PHP 5, PHP 7, PHP 8)

SoapClient::__construct — Конструктор класса SoapClient

Описание

public SoapClient::__construct(?string $wsdl, array $options = [])

Создаёт объект SoapClient для подключения к службе SOAP.

Список параметров

wsdl

URI WSDL-файла, описывающего сервис, который используется для автоматической настройки клиента. Если он не указан, клиент будет работать в режиме без WSDL. mode.

Замечание:

По умолчанию WSDL-файл будет кешироваться для повышения производительности. Чтобы отключить или настроить кеширование, смотрите раздел Опции настройки SOAP и параметр cache_wsdl.

options

Ассоциативный массив, определяющий дополнительные параметры для клиента SOAP. Если указан параметр wsdl, это необязательно, в противном случае, по крайней мере параметры location и url должны быть указаны.

location string

URL-адрес сервера SOAP для отправки запроса.

Обязателен, если параметр wsdl не указан. Если предоставлены и параметр wsdl и location, параметр location будет приоритетнее расположения, указанного в WSDL-файле.

uri string

Целевое пространство имён службы SOAP.

Обязателен, если параметр wsdl не указан; в противном случае игнорируется.

style int

Определяет стиль связывания, который будет использоваться клиентом, используя константы SOAP_RPC и SOAP_DOCUMENT. Константа SOAP_RPC указывает на привязку в стиле RPC, где тело запроса SOAP содержит стандартное кодирование вызова функции. Константа SOAP_DOCUMENT указывает на привязку в стиле документа, где тело запроса SOAP содержит XML-документ с определённым службой значением.

Если указан параметр wsdl, то этот параметр игнорируется, а стиль считывается из WSDL-файла.

Если ни этот параметр, ни параметр wsdl не указан, используется RPC-стиль.

use int

Определяет стиль кодировки, который будет использоваться клиентом, используя константы SOAP_ENCODED или SOAP_LITERAL. Константа SOAP_ENCODED указывает на кодирование с использованием типов определённых в спецификации SOAP. Константа SOAP_LITERAL указывает на кодирование с использованием схемы определённой службой.

Если указан параметр wsdl, этот параметр игнорируется, а кодировка считывается из файла WSDL.

Если ни этот параметр, ни параметр wsdl не указаны, используется стиль "encoded".

soap_version int

Определяет версию протокола SOAP: Константа SOAP_1_1 для SOAP 1.1, или SOAP_1_2 для SOAP 1.2.

Если опущено, используется SOAP 1.1.

authentication int

Указывает метод аутентификации при использовании HTTP-аутентификации в запросах. Значение может быть либо SOAP_AUTHENTICATION_BASIC, либо SOAP_AUTHENTICATION_DIGEST.

Если параметр не указан, но указан параметр login, используется Basic Authentication.

login string

Имя пользователя для использования при аутентификации HTTP Basic или Digest.

password string

Пароль для использования при аутентификации HTTP Basic или Digest.

Не следует путать с параметром passphrase, который используется при аутентификации сертификата клиента HTTPS.

local_cert string

Путь к клиентскому сертификату для использования с аутентификацией HTTPS. Должен быть файл в кодировке PEM, содержащий сертификат и закрытый ключ.

Файл также может включать цепочку эмитентов, которая должна идти после сертификата клиента.

Также может быть задан с помощью параметра stream_context, который также поддерживает указание отдельного файла закрытого ключа.

passphrase string

Ключевая фраза для клиентского сертификата, указанного в параметре local_cert.

Не следует путать с параметром password, который используется для аутентификации Basic или Digest.

Можно также установить с помощью параметра stream_context.

proxy_host string

Имя хоста для использования в качестве прокси-сервера для HTTP-запросов.

Также должен быть указан параметр proxy_port.

proxy_port int

TCP-порт для использования при подключении к прокси-серверу, указанному в параметре proxy_host.

proxy_login string

Необязательное имя пользователя для аутентификации на прокси-сервере, указанном в параметре proxy_host, используя HTTP Basic Authentication.

proxy_password string

Необязательный пароль для аутентификации на прокси-сервере, указанном в параметре proxy_host, используя HTTP Basic Authentication.

compression int

Включает сжатие HTTP SOAP запросов и ответов.

Значение должно быть побитовым ИЛИ из трёх частей: необязательная SOAP_COMPRESSION_ACCEPT, для отправки заголовка "Accept-Encoding"; либо константа SOAP_COMPRESSION_GZIP или SOAP_COMPRESSION_DEFLATE для указания используемого алгоритма сжатия; число от 1 до 9, чтобы указать уровень сжатия, который будет использоваться в запросе. Например, чтобы включить двустороннее сжатие gzip с максимальным уровнем сжатия, используйте SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 9.

encoding string

Определяет внутреннюю кодировку символов. Запросы всегда отправляются в UTF-8 и преобразуются в эту кодировку и обратно.

trace bool

Захватывает информацию о запросе и ответе, которая затем может быть доступна с помощью методов:
SoapClient::__getLastRequest(),
SoapClient::__getLastRequestHeaders(),
SoapClient::__getLastResponse()
и SoapClient::__getLastResponseHeaders().

Если опущено, по умолчанию используется значение false.

classmap array

Используется для сопоставления типов, определённых в WSDL с классами PHP. Должен быть указан ассоциативный массив (array) с именами типов из WSDL в качестве ключей и именами классов PHP в качестве значений. Обратите внимание, что имя типа элемента не обязательно совпадает с именем элемента (тега).

Предоставляемые имена классов всегда должны быть полностью определены с помощью любых пространств имён и никогда не должны начинаться с ведущего слеша (\). Правильная форма может быть указана с помощью ::class.

Обратите внимание, что при создании класса конструктор вызываться не будет, но магические методы __set() и __get() будут вызываться для отдельных свойств.

typemap array

Используется для определения сопоставлений типов с помощью определяемых пользователем callback-функций. Каждое сопоставление типов должно представлять собой массив с ключами type_name (строка (string), определяющая тип элемента XML); type_ns (строка (string), содержащая пространство имён URI); from_xml (callable, принимающий один строковый параметр и возвращающий объект) и to_xml (callable, принимающий один объектный параметр и возвращающий строку).

exceptions bool

Определяет, будут ли ошибки выбрасывать исключение типа SoapFault.

По умолчанию значение true

connection_timeout int

Определяет время ожидания в секундах для соединения с сервисом SOAP. Параметр не определяет время ожидания служб с медленными ответами. Чтобы ограничить время ожидания завершения вызовов, можно использовать параметр конфигурации default_socket_timeout.

cache_wsdl int

Если указан параметр wsdl, а также параметр soap.wsdl_cache_enabled включён, этот параметр определяет тип кеширования. Одно из значений: WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY или WSDL_CACHE_BOTH.

Доступны два типа кеша: кеширование в памяти, которое кеширует WSDL в памяти текущего процесса и дисковое кеширование, которое кеширует WSDL в файле на диске, разделяемом между всеми процессами. Каталог, который будет использоваться для дискового кеша, определяется параметром soap.wsdl_cache_dir. Оба кеша используют одинаковое время жизни, определяемое параметром soap.wsdl_cache_ttl. У кеша в памяти также есть максимальное количество записей, определяемое параметром soap.wsdl_cache_limit.

Если не указано, будет использоваться параметр конфигурации soap.wsdl_cache.

user_agent string

Значение для использования в HTTP-заголовке User-Agent при выполнении запросов.

Можно также установить с помощью параметра stream_context.

Если не указано, User-Agent будет "PHP-SOAP/" за которым следует значение PHP_VERSION.

stream_context resource

Контекст stream context, созданный с помощью функции stream_context_create(), которая позволяет установить дополнительные параметры.

Контекст может включать параметры контекста сокета, параметры контекста SSL, а также выбранные опции контекста HTTP: content_type, header, max_redirects, protocol_version, и user_agent.

Обратите внимание, что следующие HTTP-заголовки генерируются автоматически или на основе других параметров и будут игнорироваться, если указаны в параметре контекста 'header': host, connection, user-agent, content-length, content-type, cookie, authorization и proxy-authorization

features int

Битовая маска для включения одной или нескольких следующих функций:

SOAP_SINGLE_ELEMENT_ARRAYS

При декодировании ответа в массив по умолчанию определяется, появляется ли имя элемента один или несколько раз в определённом родительском элементе. Для элементов, которые появляются только один раз, свойство объекта позволяет получить прямой доступ к содержимому; для элементов, которые появляются более одного раза, свойство содержит массив с содержимым каждого соответствующего элемента.

Если включена функция SOAP_SINGLE_ELEMENT_ARRAYS, элементы, которые появляются только один раз, помещаются в одноэлементный массив, чтобы доступ был последовательным для всех элементов. Это будет работать только при использовании WSDL, содержащего схему для ответа. Для демонстрации смотрите раздел с примерами.

SOAP_USE_XSI_ARRAY_TYPE

Если параметру use или свойству WSDL передано значение encoded, массивы принудительно используют тип SOAP-ENC:Array, а не специфический для схемы.

SOAP_WAIT_ONE_WAY_CALLS

Ожидание ответа, даже если WSDL указывает на односторонний запрос.

keep_alive bool

Логическое значение, определяющее, следует ли отправлять заголовок Connection: Keep-Alive или Connection: close.

По умолчанию true

ssl_method string

Определяет версию протокола SSL или TLS для использования в защищённых HTTP-соединениях вместо согласования по умолчанию. Указание SOAP_SSL_METHOD_SSLv2 или SOAP_SSL_METHOD_SSLv3 заставит использовать SSL 2 или SSL 3, соответственно. Указание константы SOAP_SSL_METHOD_SSLv23 не имеет никакого смысла; константа существует только для обратной совместимости. Начиная с PHP 7.2, указание константы SOAP_SSL_METHOD_TLS также не имеет никакого смысла; в более ранних версиях константа определяла принудительное использование TLS 1.0.

Обратите внимание, что SSL версий 2 и 3 считаются небезопасными и могут не поддерживаться установленной библиотекой OpenSSL.

Параметр объявлен УСТАРЕВШИМ, начиная с PHP 8.1.0. Более гибкой альтернативой, позволяющей указывать отдельные версии TLS, можно использовать параметр stream_context с параметром контекста 'crypto_method'.

Пример #1 Указание использования только TLS 1.3

<?php
$context = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT
]
]);
$client = new SoapClient("some.wsdl", ['context' => $context]);

Ошибки

Метод SoapClient::__construct() выводит ошибку уровня E_ERROR, если параметры location и uri не указаны в режиме не-WSDL.

Выбрасывается исключение SoapFault, если параметр wsdl URI не может быть загружен.

Примеры

Пример #2 Пример использования SoapClient::__construct()

<?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 | 9));

$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")));

$typemap = array(
array("type_ns" => "http://schemas.example.com",
"type_name" => "book",
"from_xml" => "unserialize_book",
"to_xml" => "serialize_book")
);
$client = new SoapClient("books.wsdl", array('typemap' => $typemap));

?>

Пример #3 Пример использования SOAP_SINGLE_ELEMENT_ARRAYS

/* Предполагая, что ответ, подобный этому, и соответствующий WSDL:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:example">
<SOAP-ENV:Body>
<response>
<collection>
<item>Single</item>
</collection>
<collection>
<item>First</item>
<item>Second</item>
</collection>
</response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
*/

echo "По умолчанию:\n";

$client = new TestSoapClient(__DIR__ . '/temp.wsdl');
$response = $client->exampleRequest();
var_dump( $response->collection[0]->item );
var_dump( $response->collection[1]->item );

echo "\nС помощью SOAP_SINGLE_ELEMENT_ARRAYS:\n";

$client = new TestSoapClient(__DIR__ . '/temp.wsdl', ['features' => SOAP_SINGLE_ELEMENT_ARRAYS]);
$response = $client->exampleRequest();
var_dump( $response->collection[0]->item );
var_dump( $response->collection[1]->item );

Результат выполнения данного примера:

По умолчанию:
string(6) "Single"
array(2) {
  [0] =>
  string(5) "First"
  [1] =>
  string(6) "Second"
}

С помощью SOAP_SINGLE_ELEMENT_ARRAYS:
array(1) {
  [0] =>
  string(6) "Single"
}
array(2) {
  [0] =>
  string(5) "First"
  [1] =>
  string(6) "Second"
}


Выполняет SOAP-запрос

  • « SoapClient::__construct
  • SoapClient::__getCookies »
  • PHP Manual
  • SoapClient
  • Выполняет SOAP-запрос

SoapClient::__doRequest

(PHP 5, PHP 7, PHP 8)

SoapClient::__doRequest — Выполняет SOAP-запрос

Описание

public SoapClient::__doRequest(
string $request,
string $location,
string $action,
int $version,
bool $oneWay = false
): ?string

Выполняет SOAP-запрос поверх HTTP.

Этот метод может быть переопределён в подклассах для реализации других транспортных уровней, выполнения дополнительной обработки XML или других целей.

Список параметров

request

Запрос XML SOAP.

location

URL для запроса.

action

Действие SOAP.

version

Версия SOAP.

oneWay

Если oneWay равен true, метод ничего не возвращает. Этот параметр используется, когда не ожидается ответа.

Возвращаемые значения

Ответ XML SOAP.

Список изменений

Версия | Описание
8.0.0 | Тип oneWay теперь bool; раньше он был целым числом (int).

Примеры

Пример #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, PHP 8)

SoapClient::__getCookies — Получить список cookies

Описание

public SoapClient::__getCookies(): array

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает список доступных SOAP-функций

  • « SoapClient::__getCookies
  • SoapClient::__getLastRequest »
  • PHP Manual
  • SoapClient
  • Возвращает список доступных SOAP-функций

SoapClient::__getFunctions

(PHP 5, PHP 7, PHP 8)

SoapClient::__getFunctions — Возвращает список доступных SOAP-функций

Описание

public SoapClient::__getFunctions(): ?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::__construct() - Конструктор класса SoapClient


Возвращает последний SOAP-запрос

  • « SoapClient::__getFunctions
  • SoapClient::__getLastRequestHeaders »
  • PHP Manual
  • SoapClient
  • Возвращает последний SOAP-запрос

SoapClient::__getLastRequest

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastRequest — Возвращает последний SOAP-запрос

Описание

public SoapClient::__getLastRequest(): ?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, PHP 8)

SoapClient::__getLastRequestHeaders — Возвращает SOAP-заголовки последнего запроса

Описание

public SoapClient::__getLastRequestHeaders(): ?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, PHP 8)

SoapClient::__getLastResponse — Возвращает последний SOAP-ответ

Описание

public SoapClient::__getLastResponse(): ?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, PHP 8)

SoapClient::__getLastResponseHeaders — Возвращает SOAP-заголовки последнего ответа

Описание

public SoapClient::__getLastResponseHeaders(): ?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, PHP 8)

SoapClient::__getTypes — Возвращает список SOAP-типов

Описание

public SoapClient::__getTypes(): ?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::__construct() - Конструктор класса SoapClient


Устанавливает cookie для запросов SOAP

  • « SoapClient::__getTypes
  • SoapClient::__setLocation »
  • PHP Manual
  • SoapClient
  • Устанавливает cookie для запросов SOAP

SoapClient::__setCookie

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

SoapClient::__setCookie — Устанавливает cookie для запросов SOAP

Описание

public SoapClient::__setCookie(string $name, ?string $value = null): void

Определяет cookie, которые будут отправлены с SOAP-запросами.

Замечание:

Вызов этого метода повлияет на все последующие вызовы методов SoapClient.

Список параметров

name

Имя cookie.

value

Значение cookie. Если не указано, то cookie будет удалён.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | value теперь допускает значение null.


Устанавливает адрес используемой веб-службы

  • « SoapClient::__setCookie
  • SoapClient::__setSoapHeaders »
  • PHP Manual
  • SoapClient
  • Устанавливает адрес используемой веб-службы

SoapClient::__setLocation

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

SoapClient::__setLocation — Устанавливает адрес используемой веб-службы

Описание

public SoapClient::__setLocation(?string $location = null): ?string

Устанавливает URL конечной точки, затрагивающий последующие SOAP-запросы. Эквивалентна настройке location, указываемой в конструкторе SoapClient.

Замечание:

Вызов метода необязателен. По умолчанию SoapClient использует адрес из WSDL-файла.

Список параметров

location

Новый URL конечной точки.

Возвращаемые значения

Старый URL конечной точки.

Список изменений

Версия | Описание
8.0.3 | location теперь допускает значение null.

Примеры

Пример #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::__construct() - Конструктор класса SoapClient


Устанавливает SOAP-заголовки для последующих вызовов

  • « SoapClient::__setLocation
  • SoapClient::__soapCall »
  • PHP Manual
  • SoapClient
  • Устанавливает SOAP-заголовки для последующих вызовов

SoapClient::__setSoapHeaders

(PHP 5 >= 5.0.5, PHP 7, PHP 8)

SoapClient::__setSoapHeaders — Устанавливает SOAP-заголовки для последующих вызовов

Описание

public SoapClient::__setSoapHeaders(SoapHeader|array|null $headers = null): bool

Определяет заголовки для отправки вместе с SOAP-запросами.

Замечание:

Вызов этого метода заменит любые предыдущие значения.

Список параметров

headers

Устанавливаемые заголовки. Это может быть объект 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
  • SoapServer »
  • PHP Manual
  • SoapClient
  • Вызывает SOAP-функцию

SoapClient::__soapCall

(PHP 5, PHP 7, PHP 8)

SoapClient::__soapCall — Вызывает SOAP-функцию

Описание

public SoapClient::__soapCall(
string $name,
array $args,
?array $options = null,
SoapHeader|array|null $inputHeaders = null,
array &$outputHeaders = null
): mixed

Это низкоуровневая функция API, которая позволяет сделать SOAP-вызов. Обычно в режиме WSDL функции SOAP вызываются как методы объекта SoapClient. Этот метод полезен в режиме, отличном от WSDL, когда soapaction неизвестен, uri отличается от URI по умолчанию или при отправке и/или получении SOAP-заголовков.

В случае возникновения ошибки вызов SOAP-функции может привести к исключению или к возврату объекта SoapFault, если исключения отключены. Чтобы проверить, что вызов функции завершился неудачей, поймав исключение SoapFault, проверьте результат с помощью is_soap_fault().

Список параметров

name

Имя вызываемой SOAP-функции.

args

Массив аргументов, передаваемых в функцию. Это может быть упорядоченный или ассоциативный массив. Обратите внимание, что большинство SOAP-серверов требуют предоставлять имена параметров, и в этом случае это должен быть ассоциативный массив.

options

Ассоциативный массив настроек, передаваемых клиенту.

Настройка location - URL удалённой веб-службы.

Настройка uri - целевое пространство имён SOAP-службы.

Настройка soapaction - действие для вызова.

inputHeaders

Массив заголовков, отправляемых вместе с SOAP-запросом.

outputHeaders

Если указан, то этот массив будет заполнен заголовками из SOAP-ответа.

Возвращаемые значения

Функции SOAP могут возвращать одно или несколько значений. Если функция SOAP возвращает только одно значение, то возвращаемое значение будет скаляром. Если возвращается несколько значений, то вместо них возвращается ассоциативный массив именованных выходных параметров.

В случае возникновения ошибки, если объект 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::__construct() - Конструктор класса SoapClient
  • SoapParam::__construct() - Конструктор SoapParam
  • SoapVar::__construct() - Конструктор SoapVar
  • SoapHeader::__construct() - Конструктор SoapHeader
  • SoapFault::__construct() - Конструктор SoapFault
  • is_soap_fault() - Проверяет, произошла ли ошибка при вызове SOAP


Класс SoapServer

(PHP 5, PHP 7, PHP 8)

Введение

Класс SoapServer представляет собой сервер для протоколов » SOAP 1.1 и » SOAP 1.2. Его можно использовать с описанием службы WSDL или без него.

Обзор классов

class SoapServer {
/* Свойства */
private ?SoapFault $__soap_fault = null;
/* Методы */
public __construct(?string $wsdl, array $options = [])
public addFunction(array|string|int $functions): void
public addSoapHeader(SoapHeader $header): void
public fault(
string $code,
string $string,
string $actor = "",
mixed $details = null,
string $name = ""
): void
public getFunctions(): array
public handle(?string $request = null): void
public setClass(string $class, mixed ...$args): void
public setObject(object $object): void
public setPersistence(int $mode): void
}

Свойства

service

__soap_fault

Содержание

  • 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


Добавляет одну или несколько функций для обработки запросов SOAP

  • « SoapServer
  • SoapServer::addSoapHeader »
  • PHP Manual
  • SoapServer
  • Добавляет одну или несколько функций для обработки запросов SOAP

SoapServer::addFunction

(PHP 5, PHP 7, PHP 8)

SoapServer::addFunction — Добавляет одну или несколько функций для обработки запросов SOAP

Описание

public SoapServer::addFunction(array|string|int $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::__construct() - Конструктор SoapServer
  • SoapServer::setClass() - Устанавливает класс, который обрабатывает SOAP-запросы


Добавить заголовок SOAP в ответ

  • « SoapServer::addFunction
  • SoapServer::__construct »
  • PHP Manual
  • SoapServer
  • Добавить заголовок SOAP в ответ

SoapServer::addSoapHeader

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SoapServer::addSoapHeader — Добавить заголовок SOAP в ответ

Описание

public SoapServer::addSoapHeader(SoapHeader $header): void

Добавляет заголовок SOAP в возвращаемый ответ на текущий запрос.

Список параметров

header

Возвращаемый заголовок.

Возвращаемые значения

Функция не возвращает значения после выполнения.


Конструктор SoapServer

  • « SoapServer::addSoapHeader
  • SoapServer::fault »
  • PHP Manual
  • SoapServer
  • Конструктор SoapServer

SoapServer::__construct

(PHP 5, PHP 7, PHP 8)

SoapServer::__construct — Конструктор SoapServer

Описание

public SoapServer::__construct(?string $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")));

?>

Смотрите также

  • SoapClient::SoapClient()


Вынуждает SoapServer вернуть ошибку

  • « SoapServer::__construct
  • SoapServer::getFunctions »
  • PHP Manual
  • SoapServer
  • Вынуждает SoapServer вернуть ошибку

SoapServer::fault

(PHP 5, PHP 7, PHP 8)

SoapServer::fault — Вынуждает SoapServer вернуть ошибку

Описание

public SoapServer::fault(
string $code,
string $string,
string $actor = "",
mixed $details = null,
string $name = ""
): void

Отправляет клиенту ответ на текущий запрос с сообщением об ошибке.

Замечание:

Может быть вызвана только во время обработки запроса.

Список параметров

code

Код возвращаемой ошибки

string

Краткое описание ошибки

actor

Строка, идентифицирующая отправителя, вызвавшего ошибку

details

Детальная информация об ошибке

name

Имя ошибки. Может использоваться для выбора имени из WSDL-файла.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • SoapFault::__construct() - Конструктор SoapFault


Вернуть список определённых функций

  • « SoapServer::fault
  • SoapServer::handle »
  • PHP Manual
  • SoapServer
  • Вернуть список определённых функций

SoapServer::getFunctions

(PHP 5, PHP 7, PHP 8)

SoapServer::getFunctions — Вернуть список определённых функций

Описание

public SoapServer::getFunctions(): 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::__construct() - Конструктор SoapServer
  • SoapServer::addFunction() - Добавляет одну или несколько функций для обработки запросов SOAP
  • SoapServer::setClass() - Устанавливает класс, который обрабатывает SOAP-запросы


Обработка SOAP-запроса

  • « SoapServer::getFunctions
  • SoapServer::setClass »
  • PHP Manual
  • SoapServer
  • Обработка SOAP-запроса

SoapServer::handle

(PHP 5, PHP 7, PHP 8)

SoapServer::handle — Обработка SOAP-запроса

Описание

public SoapServer::handle(?string $request = null): void

Обрабатывает SOAP-запрос, вызывает необходимые функции и отправляет ответ клиенту.

Список параметров

request

SOAP-запрос. Если аргумент не задан, предполагается, что запрос находится в необработанных POST-данных HTTP-запроса.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
8.0.0 | request теперь допускает значение null.

Примеры

Пример #1 Пример использования SoapServer::handle()

<?php
function test($x)
{
return $x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Смотрите также

  • SoapServer::__construct() - Конструктор SoapServer


Устанавливает класс, который обрабатывает SOAP-запросы

  • « SoapServer::handle
  • SoapServer::setObject »
  • PHP Manual
  • SoapServer
  • Устанавливает класс, который обрабатывает SOAP-запросы

SoapServer::setClass

(PHP 5, PHP 7, PHP 8)

SoapServer::setClass — Устанавливает класс, который обрабатывает SOAP-запросы

Описание

public SoapServer::setClass(string $class, mixed ...$args): void

Экспортирует все методы из указанного класса.

Чтобы сохранить объект для каждого последующего запроса в рамках данной PHP-сессии, можно использовать метод SoapServer::setPersistence().

Список параметров

class

Имя экспортируемого класса.

args

Эти необязательные параметры будут переданы конструктору класса при создания объекта.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • SoapServer::__construct() - Конструктор 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, PHP 8)

SoapServer::setObject — Устанавливает объект, который будет использоваться для обработки SOAP-запросов

Описание

public SoapServer::setObject(object $object): void

Устанавливает объект, который будет использоваться для обработки SOAP-запросов, а не только класс, как в SoapServer::setClass().

Список параметров

object

Объект для обработки запросов.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • SoapServer::setClass() - Устанавливает класс, который обрабатывает SOAP-запросы


Устанавливает режим сохранения SoapServer

  • « SoapServer::setObject
  • SoapFault »
  • PHP Manual
  • SoapServer
  • Устанавливает режим сохранения SoapServer

SoapServer::setPersistence

(PHP 5, PHP 7, PHP 8)

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-запросы


Класс SoapFault

(PHP 5, PHP 7, PHP 8)

Введение

Представляет ошибку SOAP.

Обзор классов

class SoapFault extends Exception {
/* Свойства */
public string $faultstring;
public ?string $faultcode = null;
public ?string $faultcodens = null;
public ?string $faultactor = null;
public mixed $detail = null;
public ?string $_name = null;
public mixed $headerfault = null;
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Методы */
public __construct(
array|string|null $code,
string $string,
?string $actor = null,
mixed $details = null,
?string $name = null,
mixed $headerFault = null
)
public __toString(): string
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Свойства

_name

detail

faultactor

faultcode

faultcodens

faultstring

headerfault

Содержание

  • SoapFault::__construct — Конструктор SoapFault
  • SoapFault::__toString — Получить текстовое представление SoapFault


Конструктор SoapFault

  • « SoapFault
  • SoapFault::__toString »
  • PHP Manual
  • SoapFault
  • Конструктор SoapFault

SoapFault::__construct

(PHP 5, PHP 7, PHP 8)

SoapFault::__construct — Конструктор SoapFault

Описание

public SoapFault::__construct(
array|string|null $code,
string $string,
?string $actor = null,
mixed $details = null,
?string $name = null,
mixed $headerFault = null
)

Этот класс служит для отправки ответа на ошибку 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::__construct
  • SoapHeader »
  • PHP Manual
  • SoapFault
  • Получить текстовое представление SoapFault

SoapFault::__toString

(PHP 5, PHP 7, PHP 8)

SoapFault::__toString — Получить текстовое представление SoapFault

Описание

public SoapFault::__toString(): string

Возвращает текстовое представление SoapFault.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текстовое представление SoapFault.


Класс SoapHeader

(PHP 5, PHP 7, PHP 8)

Введение

Представляет заголовок SOAP.

Обзор классов

class SoapHeader {
/* Свойства */
public string $namespace;
public string $name;
public mixed $data = null;
public bool $mustUnderstand;
public string|int|null $actor;
/* Методы */
public __construct(
string $namespace,
string $name,
mixed $data = ?,
bool $mustunderstand = ?,
string $actor = ?
)
}

Свойства

actor

data

mustUnderstand

name

namespace

Содержание

  • SoapHeader::__construct — Конструктор SoapHeader


Конструктор SoapHeader

  • « SoapHeader
  • SoapParam »
  • PHP Manual
  • SoapHeader
  • Конструктор SoapHeader

SoapHeader::__construct

(PHP 5, PHP 7, PHP 8)

SoapHeader::__construct — Конструктор SoapHeader

Описание

public SoapHeader::__construct(
string $namespace,
string $name,
mixed $data = ?,
bool $mustunderstand = ?,
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()
  • SoapParam::SoapParam()
  • SoapServer::addSoapHeader() - Добавить заголовок SOAP в ответ


Класс SoapParam

(PHP 5, PHP 7, PHP 8)

Введение

Представляет параметры для вызова SOAP.

Обзор классов

class SoapParam {
/* Свойства */
public string $param_name;
public mixed $param_data;
/* Методы */
public __construct(mixed $data, string $name)
}

Свойства

param_data

param_name

Содержание

  • SoapParam::__construct — Конструктор SoapParam


Конструктор SoapParam

  • « SoapParam
  • SoapVar »
  • PHP Manual
  • SoapParam
  • Конструктор SoapParam

SoapParam::__construct

(PHP 5, PHP 7, PHP 8)

SoapParam::__construct — Конструктор SoapParam

Описание

public SoapParam::__construct(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

(PHP 5, PHP 7, PHP 8)

Введение

Класс, представляющий переменную или объект для использования с сервисами SOAP.

Обзор классов

class SoapVar {
/* Свойства */
public int $enc_type;
public mixed $enc_value = null;
public ?string $enc_stype = null;
public ?string $enc_ns = null;
public ?string $enc_name = null;
public ?string $enc_namens = null;
/* Методы */
public __construct(
mixed $data,
?int $encoding,
?string $typeName = null,
?string $typeNamespace = null,
?string $nodeName = null,
?string $nodeNamespace = null
)
}

Свойства

enc_name

enc_namens

enc_ns

enc_type

enc_stype

enc_value

Содержание

  • SoapVar::__construct — Конструктор SoapVar


Конструктор SoapVar

  • « SoapVar
  • Yar »
  • PHP Manual
  • SoapVar
  • Конструктор SoapVar

SoapVar::__construct

(PHP 5, PHP 7, PHP 8)

SoapVar::__construct — Конструктор SoapVar

Описание

public SoapVar::__construct(
mixed $data,
?int $encoding,
?string $typeName = null,
?string $typeNamespace = null,
?string $nodeName = null,
?string $nodeNamespace = null
)

Создаёт новый объект SoapVar.

Список параметров

data

Данные для передачи или возврата.

encoding

Код кодировки, одна из констант XSD_....

type_name

Имя типа.

type_namespace

Пространство имён типа.

node_name

Имя узла XML.

node_namespace

Пространство имён узла XML.

Список изменений

Версия | Описание
8.0.3 | typeName, typeNamespace, nodeName и nodeNamespace теперь допускают значения null.

Примеры

Пример #1 Пример использования SoapVar::__construct()

<?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::__construct() - Конструктор 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 int

Время ожидания соединения в миллисекундах.

yar.timeout int

Время ожидания в миллисекундах.

yar.expose_info bool

раскрывать ли данные сервера (при доступе с помощью GET)


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

YAR_VERSION (string)
YAR_CLIENT_PROTOCOL_HTTP (int)
YAR_OPT_PACKAGER (int)
YAR_OPT_TIMEOUT (int)
YAR_OPT_CONNECT_TIMEOUT (int)
YAR_OPT_HEADER (array)
С версии 2.0.4
YAR_PACKAGER_PHP (string)
YAR_PACKAGER_JSON (string)
YAR_ERR_OKEY (int)
YAR_ERR_OUTPUT (int)
YAR_ERR_TRANSPORT (int)
YAR_ERR_REQUEST (int)
YAR_ERR_PROTOCOL (int)
YAR_ERR_PACKAGER (int)
YAR_ERR_EXCEPTION (int)


Примеры

Пример #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)

Введение

Обзор классов

class Yar_Server {
/* Свойства */
protected $_executor;
/* Методы */
final public __construct(Object $obj)
public handle(): 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(): 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)

Введение

Обзор классов

class 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|false
}

Свойства

_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|false

Список параметров

name

Параметр может принимать значения: YAR_OPT_PACKAGER, YAR_OPT_PERSISTENT (необходима поддержка на сервере), YAR_OPT_TIMEOUT, YAR_OPT_CONNECT_TIMEOUT, YAR_OPT_HEADER (константа доступна с версии 2.0.4), YAR_OPT_PROXY (константа доступна с версии 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"));

// Установим HTTP-прокси
$client->SetOpt(YAR_OPT_PROXY, "127.0.0.1:8888");

/* Вызовем удалённый сервис */
$result = $client->some_method("parameter");
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Client::__call() - Вызов сервиса
    •


Класс Yar_Concurrent_Client

(Информация о версии неизвестна, возможно, только в Git)

Введение

Обзор классов

class 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(): 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(): 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.

Обзор классов

class Yar_Server_Exception extends Exception {
/* Свойства */
protected $_type;
/* Методы */
public getType(): string
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): 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(): 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)

Введение

Обзор классов

class Yar_Client_Exception extends Exception {
/* Свойства */
/* Методы */
public getType(): string
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): 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(): 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(): 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 конвертируется в объект.

Ошибки

Выдаёт сообщение E_WARNING для не поддерживаемых типов XMLRPC.

Примеры

Пример #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>


Модули только для Windows

  • COM — COM и .Net (Windows)
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Ошибки и их обработка
    • Примеры
    • com — Класс com
    • dotnet — Класс dotnet
    • variant — Класс variant
    • COMPersistHelper — Класс COMPersistHelper
    • com_exception — Класс com_exception
    • Функции COM
  • win32service
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Win32ServiceException — Класс Win32ServiceException
    • Примеры
    • win32service


COM и .Net (Windows)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Ошибки и их обработка
  • Примеры
    • For Each
    • Массивы и свойства COM в стиле массивов
  • com — Класс com
    • com::__construct — Конструктор класса com
  • dotnet — Класс dotnet
    • dotnet::__construct — Конструктор класса dotnet
  • variant — Класс variant
    • variant::__construct — Конструктор класса variant
  • COMPersistHelper — Класс COMPersistHelper
    • COMPersistHelper::__construct — Конструктор класса COMPersistHelper
    • COMPersistHelper::GetCurFileName — Получить имя файла
    • COMPersistHelper::GetMaxStreamSize — Получить максимальный размер потока
    • COMPersistHelper::InitNew — Инициализирует объект в состояние по умолчанию
    • COMPersistHelper::LoadFromFile — Загрузить объект из файла
    • COMPersistHelper::LoadFromStream — Загружает объект из потока
    • COMPersistHelper::SaveToFile — Сохранить объект в файл
    • COMPersistHelper::SaveToStream — Сохраняет объект в потоке
  • 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, предоставляемый Microsoft.


Требования

Функции COM доступны только в PHP под Windows.

Для поддержки .Net требуется библиотеки времени исполнения .Net.


Установка

Для работы модуля требуется включение php_com_dotnet.dll в php.ini.

Поддержку для различных вариантов объектов 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.dotnet_version | "" | PHP_INI_SYSTEM | Начиная с PHP 8.0.0
com.typelib_file | "" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

com.allow_dcom

Если включено, PHP будет разрешено работать в качестве клиента D-COM (Распределённый COM), что позволит скрипту PHP инстанциировать объекты COM на удалённом сервере.

com.autoregister_typelib

Если включено, PHP попробует зарегистрировать константы библиотеки типов создаваемых объектов COM, если эти объекты реализуют интерфейс, требуемый для получения данной информации. Регистрозависимость регистрируемых констант контролируется директивой конфигурации php.ini com.autoregister_casesensitive.

com.autoregister_verbose

Если включено, о любых проблемах с загрузкой библиотеки типов в процессе создания экземпляра объекта будет сообщено с помощью механизма ошибок PHP. По умолчанию выключено, что означает, что никаких сообщений об ошибках при загрузке библиотеки типов сообщаться не будет.

com.autoregister_casesensitive

Если включено (по умолчанию), константы, обнаруженные при автозагрузке библиотек типов, при инстанцировании объектов COM, будут зарегистрированы как регистрозависимые. Более подробно смотрите в описании функции com_load_typelib().

com.code_page

Контролирует кодировку по умолчанию при передаче строк объектам COM. Если задана пустая строка, PHP будет считать, что вы хотите использовать CP_ACP - системная кодировка ANSI по умолчанию.

Если текст в вашем скрипте содержится в кодировке отличной от кодировки по умолчанию, то установка этого параметра позволит вам не указывать кодировку каждый раз при создании объекта класса com в его конструкторе. Пожалуйста помните, что использование этой директивы (как и любой другой директивы конфигурации) делает ваш скрипт менее переносимым, так что всё же рекомендуется указывать кодировку при каждом создании объекта COM.

com.dotnet_version

Версия платформы .NET для использования с объектами dotnet. Значение параметра - это первые три части номера версии фреймворка, разделённые точками и с префиксом v, например v4.0.30319.

com.typelib_file

Значение должно соответствовать пути в файловой системе до файла, содержащего список библиотек типов, которые необходимо загрузить при запуске. Каждая строка файла будет рассматриваться как имя библиотеки типов, которая будет загружена как только вы вызовите функцию com_load_typelib(). Константы будут зарегистрированы на постоянной основе, так что библиотеки нужно загружать всего один раз. Если имя библиотеки типов заканчивается на строку #cis или #case_insensitive, то константы будут зарегистрированы как регистронезависимые.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

Константы COM
Константа | Значение | Описание | Замечания
CLSCTX_INPROC_SERVER (int) | 1 | Код, создающий и управляющий объектами этого класса является DLL запущенным в том же процессе, который вызывает функцию указанную в контексте класса. |
CLSCTX_INPROC_HANDLER (int) | 2 | Код, создающий и управляющий объектами этого класса является обработчиком внутри процесса. Это DLL , запускаемый в процессе клиента и реализующий структуру этого класса на стороне клиента, когда экземпляр класса используется удалённо. |
CLSCTX_LOCAL_SERVER (int) | 4 | Код EXE, который создаёт и управляет объектами этого класса, работает на той же машине, но в рамках отдельного процесса. |
CLSCTX_REMOTE_SERVER (int) | 16 | Внешний контекст. Код, создающий и управляющий объектами этого класса работает на другом компьютере. |
CLSCTX_SERVER (int) | 21 | Означает серверный код, локальный, удалённый или же внутри процесса. Задаётся побитовым ИЛИ констант CLSCTX_INPROC_SERVER, CLSCTX_LOCAL_SERVER и CLSCTX_REMOTE_SERVER. |
CLSCTX_ALL (int) | 23 | Обозначает весь контекст класса. Задаётся побитовым ИЛИ констант CLSCTX_INPROC_HANDLER и CLSCTX_SERVER. |
VT_NULL (int) | 1 | Ссылка на указатель NULL. |
VT_EMPTY (int) | 0 | Свойство с индикатором типа из VT_EMPTY не имеющий данных ассоциированных с ним. Размер этого значения равен нулю. |
VT_INT (int) | 22 | Знаковое целое размером в 4 байт. (аналогично VT_I4). |
VT_I1 (int) | 16 | Знаковое целое размером в 1 байт. |
VT_I2 (int) | 2 | Знаковое целое размером в 2 байта. |
VT_I4 (int) | 3 | Знаковое целое размером в 4 байта. |
VT_I8 (int) | 3 | 8-байтовое целочисленное значение со знаком. | Доступно с PHP 7.0.0 (только для x64).
VT_UINT (int) | 23 | 4-byte unsigned integer (equivalent to VT_UI4). |
VT_UI1 (int) | 17 | Беззнаковое целое размером в 1 байт. |
VT_UI2 (int) | 18 | Беззнаковое целое размером в 2 байта. |
VT_UI4 (int) | 19 | Беззнаковое целое размером в 4 байта. |
VT_UI8 (int) | 19 | 8-байтовое целочисленное значение со знаком. | Доступно с PHP 7.0.0 (только для x64).
VT_R4 (int) | 4 | Значение IEEE с плавающей точкой размером 32 бита. |
VT_R8 (int) | 5 | Значение IEEE с плавающей точкой размером 64 бита. |
VT_BOOL (int) | 11 | Логическое значение. |
VT_ERROR (int) | 10 | Код ошибки; содержит код статуса ассоциированный с ошибкой. |
VT_CY (int) | 6 | Дополненное целое размером 8 байт (масштабируется к 10,000). |
VT_DATE (int) | 7 | Значение с плавающей точкой размером 64 бита представляющее количество дней (не секунд) с 31 Декабря 1899 года. К примеру, 1 Января 1900 равно 2.0, 2 Января 1900 равно 3.0, и т.д. Хранится таким же образом, что и VT_R8. |
VT_BSTR (int) | 8 | Указатель на строку Unicode заканчивающуюся null-байтом. |
VT_DECIMAL (int) | 14 | Десятичная структура. |
VT_UNKNOWN (int) | 13 | Указатель на объект реализующий интерфейс IUnknown. |
VT_DISPATCH (int) | 9 | Указатель на указатель на заданный объект. |
VT_VARIANT (int) | 12 | Индикатор типа с последующим, соответствующим, значением. VT_VARIANT можно использовать только с VT_BYREF. |
VT_ARRAY (int) | 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 (int) | 16384 | Если индикатор типа комбинирован с VT_BYREF с помощью побитового ИЛИ, значит значение является ссылкой. Тип "ссылка" интерпретируется как ссылка на данные, аналогично ссылкам C++. |
CP_ACP (int) | 0 | Кодировка ANSI по умолчанию. |
CP_MACCP (int) | 2 | Кодировка Macintosh. |
CP_OEMCP (int) | 1 | Кодировка OEM по умолчанию. |
CP_UTF7 (int) | 65000 | Unicode (UTF-7). |
CP_UTF8 (int) | 65001 | Unicode (UTF-8). |
CP_SYMBOL (int) | 42 | Смещения SYMBOL. |
CP_THREAD_ACP (int) | 3 | Кодировка ANSI текущего потока исполнения |
VARCMP_LT (int) | 0 | Левый bstr меньше правого bstr. |
VARCMP_EQ (int) | 1 | Два параметра эквивалентны. |
VARCMP_GT (int) | 2 | Левый bstr больше правого bstr. |
VARCMP_NULL (int) | 3 | Выражение равно NULL. |
NORM_IGNORECASE (int) | 1 | Игнорировать регистрозависимость. |
NORM_IGNORENONSPACE (int) | 2 | Игнорировать символы не занимающие места. |
NORM_IGNORESYMBOLS (int) | 4 | Игнорировать символы. |
NORM_IGNOREWIDTH (int) | 131072 | Игнорировать длину строки. |
NORM_IGNOREKANATYPE (int) | 65536 | Игнорировать тип Kana. |
NORM_IGNOREKASHIDA (int) | 262144 | Игнорировать символы Arabic kashida. | Доступность зависит от используемой библиотеки.
DISP_E_DIVBYZERO (int) | -2147352558 | Ответ означающий попытку деления на ноль. | Начиная с PHP 7.0.0, значение равно 2147614738 в x64.
DISP_E_OVERFLOW (int) | -2147352566 | Ошибка означающая, что значение не может быть приведено к ожидаемому типу. | Начиная с PHP 7.0.0, значение равно 2147614730 в x64.
DISP_E_BADINDEX (int) | -2147352565 | Ошибка, означающая, что индекс массива не существует. | Начиная с PHP 7.0.0, значение равно 2147614731 в x64.
MK_E_UNAVAILABLE (int) | -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, PHP 8)

Введение

Класс com позволяет создавать экземпляры OLE-совместимого COM-объекта, вызывать его методы и получать доступ к его свойствам.

Обзор классов

class com extends variant {
/* Методы */
public __construct(
string $module_name,
array|string|null $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, PHP 8)

com::__construct — Конструктор класса com

Описание

public com::__construct(
string $module_name,
array|string|null $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 не будет загружать объект, пока вы не установите опцию конфигурации php.ini com.allow_dcom в true.

Если server_name задан как массив, то этот массив должен содержать следующие элементы (регистр символов важен). Обратите внимание, что они все необязательные (единственно, что Username и Password должны идти парой); Если вы не укажете Server, то будет выбран сервер по умолчанию и создание объекта не будет зависеть от значения настройки директивы php.ini com.allow_dcom.

Имя сервера DCOM
ключ | тип | описание
Server | string | Имя сервера.
Username | string | Имя пользователя.
Password | string | Пароль для Username.
Domain | string | Домен для server.
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, PHP 8)

Введение

Класс dotnet позволяет создавать объекты из сборок .Net, вызывать их методы и использовать их свойства, если класс, методы и свойства » видимы для COM.

Ни создание экземпляров статических классов, ни вызов статических методов не поддерживаются. Создание экземпляров универсальных классов, таких как System.Collections.Generic.List, также не поддерживается.

Некоторые классы в .Net не реализуют IDispatch, поэтому, хотя их объекты можно создавать, вызов методов или доступ к свойствам этих классов не поддерживается.

Замечание:

Вам нужно установить библиотеки времени исполнения .Net на ваш веб-сервер, чтобы воспользоваться этой функцией.

Замечание:

До PHP 8.0.0 .Net framework 4.0 и более поздние версии не поддерживаются классом dotnet. Однако если сборки были зарегистрированы с помощью regasm.exe, классы могут быть созданы как объекты com. Начиная с PHP 8.0.0, .Net framework 4.0 и более поздние версии поддерживаются с помощью директивы php.ini com.dotnet_version.

Обзор классов

class dotnet extends variant {
/* Методы */
public __construct(string $assembly_name, string $datatype_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, PHP 8)

dotnet::__construct — Конструктор класса dotnet

Описание

public dotnet::__construct(string $assembly_name, string $datatype_name, int $codepage = CP_ACP)

Создаёт объект класса dotnet.

Список параметров

assembly_name
Указывает сборку для загрузки.
datatype_name
Имя класса для инстанцияции.
codepage
Кодовая страница. Подробности читайте на странице com.


Класс variant

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

Введение

VARIANT - это эквивалент zval для COM; это структура, которая может содержать значения различных допустимых типов. Класс variant входит в модуль COM и позволяет больше контролировать значения, передаваемые от PHP к COM и обратно.

Обзор классов

class variant {
/* Методы */
public __construct(mixed $value = null, int $type = VT_EMPTY, int $codepage = CP_ACP)
}

Примеры variant

Пример #1 Пример использования variant

<?php
$v = new variant(42);
print "Тип — " . variant_get_type($v) . "<br/>";
print "Значение — " . $v . "<br/>";
?>

Замечание:

Когда возвращается значение или извлекается свойство, variant преобразуется в значение PHP только если есть прямая связь между типами, что не приведёт к потере информации. Во всех остальных случаях результат вернётся в виде экземпляра класса variant. Вы можете принудительно указать PHP конвертировать значения в типы PHP используя оператор приведения типов или же преобразовывать их в строку, используя функцию print. Вы можете использовать множество функций класса для арифметических операций без приведения значений к типам PHP с риском потери информации.

Смотрите также variant_get_type().

Содержание

  • variant::__construct — Конструктор класса variant


Конструктор класса variant

  • « variant
  • COMPersistHelper »
  • PHP Manual
  • variant
  • Конструктор класса variant

variant::__construct

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

variant::__construct — Конструктор класса variant

Описание

public 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.


Класс COMPersistHelper

(PHP 5, PHP 7, PHP 8)

Введение

COMPersistHelper улучшает совместимость COM и PHP в отношении php.ini директивы open_basedir и потоковых ресурсов.

Обзор классов

final class COMPersistHelper {
/* Методы */
public __construct(?variant $variant = null)
public GetCurFileName(): string|false
public GetMaxStreamSize(): int
public InitNew(): bool
public LoadFromFile(string $filename, int $flags = 0): bool
public LoadFromStream(resource $stream): bool
public SaveToFile(?string $filename, bool $remember = true): bool
public SaveToStream(resource $stream): bool
}

Содержание

  • COMPersistHelper::__construct — Конструктор класса COMPersistHelper
  • COMPersistHelper::GetCurFileName — Получить имя файла
  • COMPersistHelper::GetMaxStreamSize — Получить максимальный размер потока
  • COMPersistHelper::InitNew — Инициализирует объект в состояние по умолчанию
  • COMPersistHelper::LoadFromFile — Загрузить объект из файла
  • COMPersistHelper::LoadFromStream — Загружает объект из потока
  • COMPersistHelper::SaveToFile — Сохранить объект в файл
  • COMPersistHelper::SaveToStream — Сохраняет объект в потоке


Конструктор класса COMPersistHelper

  • « COMPersistHelper
  • COMPersistHelper::GetCurFileName »
  • PHP Manual
  • COMPersistHelper
  • Конструктор класса COMPersistHelper

COMPersistHelper::__construct

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::__construct — Конструктор класса COMPersistHelper

Описание

public COMPersistHelper::__construct(?variant $variant = null)

Создаёт объект класса COMPersistHelper, обычно связанный с variant.

Список параметров

variant
Объект COM, реализующий интерфейс IDispatch. Для успешного вызова методов COMPersistHelper, объект должен реализовывать интерфейсы IPersistFile, IPersistStream и/или IPersistStreamInit. Передача null в качестве variant оправдана только в том случае, если объект будет загружен из потока с помощью COMPersistHelper::LoadFromStream().


Получить имя файла

  • « COMPersistHelper::__construct
  • COMPersistHelper::GetMaxStreamSize »
  • PHP Manual
  • COMPersistHelper
  • Получить имя файла

COMPersistHelper::GetCurFileName

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::GetCurFileName — Получить имя файла

Описание

public COMPersistHelper::GetCurFileName(): string|false

Возвращает имя файла, связанного с объектом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущее имя файла, связанного с объектом.

Ошибки

Выбрасывает исключение com_exception, если связанный объект не реализует COM интерфейс IPersistFile, либо если вызов IPersistFile::GetCurFile() завершился ошибкой.


Получить максимальный размер потока

  • « COMPersistHelper::GetCurFileName
  • COMPersistHelper::InitNew »
  • PHP Manual
  • COMPersistHelper
  • Получить максимальный размер потока

COMPersistHelper::GetMaxStreamSize

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::GetMaxStreamSize — Получить максимальный размер потока

Описание

public COMPersistHelper::GetMaxStreamSize(): int

Возвращает размер потока (в байтах), необходимый для сохранения объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер потока (в байтах), необходимый для сохранения объекта.

Ошибки

Выбрасывает исключение com_exception, если связанный объект не реализует COM интерфейс IPersistStreamInit, либо если вызов IPersistStream::GetSizeMax() завершился ошибкой.


Инициализирует объект в состояние по умолчанию

  • « COMPersistHelper::GetMaxStreamSize
  • COMPersistHelper::LoadFromFile »
  • PHP Manual
  • COMPersistHelper
  • Инициализирует объект в состояние по умолчанию

COMPersistHelper::InitNew

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::InitNew — Инициализирует объект в состояние по умолчанию

Описание

public COMPersistHelper::InitNew(): bool

Инициализирует объект в состояние по умолчанию.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выбрасывает исключение com_exception, если связанный объект не реализует COM интерфейс IPersistStreamInit, либо если вызов IPersistStreamInit::Init() завершился ошибкой.


Загрузить объект из файла

  • « COMPersistHelper::InitNew
  • COMPersistHelper::LoadFromStream »
  • PHP Manual
  • COMPersistHelper
  • Загрузить объект из файла

COMPersistHelper::LoadFromFile

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::LoadFromFile — Загрузить объект из файла

Описание

public COMPersistHelper::LoadFromFile(string $filename, int $flags = 0): bool

Открывает указанный файл и инициализирует объект из его содержимого.

Список параметров

filename
Имя файла.
flags
Режим доступа для доступа к файлу. Допустимые значения указаны в » перечислении STGM. Этот режим считается желаемым, но может быть, по необходимости, изменён на более строгий Если параметр flags задан как 0, то файл будет открыт с разрешениями по умолчанию, какие использовались бы, если бы пользователь открывал этот файл.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выбрасывает исключение com_exception, если связанный объект не реализует COM интерфейс IPersistFile, либо если вызов IPersistFile::Load() завершился ошибкой.


Загружает объект из потока

  • « COMPersistHelper::LoadFromFile
  • COMPersistHelper::SaveToFile »
  • PHP Manual
  • COMPersistHelper
  • Загружает объект из потока

COMPersistHelper::LoadFromStream

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::LoadFromStream — Загружает объект из потока

Описание

public COMPersistHelper::LoadFromStream(resource $stream): bool

Загружает объект из потока, где он изначально был сохранён.

Список параметров

stream
Потоковый ресурс для загрузки объекта.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выбрасывает исключение com_exception, если связанный объект не реализует COM интерфейс IPersistStream, либо если вызов IPersistStream::Load() завершился ошибкой.


Сохранить объект в файл

  • « COMPersistHelper::LoadFromStream
  • COMPersistHelper::SaveToStream »
  • PHP Manual
  • COMPersistHelper
  • Сохранить объект в файл

COMPersistHelper::SaveToFile

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::SaveToFile — Сохранить объект в файл

Описание

public COMPersistHelper::SaveToFile(?string $filename, bool $remember = true): bool

Сохраняет копию объекта в указанный файл.

Список параметров

filename
Имя файла.
remember
Определяет, будет ли filename использоваться для текущего рабочего файла. Если true, то filename становится текущим файлом, и объект должен очистить свой флаг dirty после сохранения. Если false, то эта операция записи будет считаться как "Save A Copy As ...". В этом случае текущий файл останется без изменений и объект не будет снимать флаг dirty.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выбрасывает исключение com_exception, если связанный объект не реализует COM интерфейс IPersistFile, либо если вызов IPersistFile::Save() завершился ошибкой.

Примеры

Пример #1 Использование COMPersistHelper::saveToFile()

<?php
$word = new COM('Word.Application');
$doc = $word->Documents->Add();
$ph = new COMPersistHelper($doc);
$ph->SaveToFile('C:\\Users\\cmb\\Documents\\my.docx');
$word->Quit();
?>


Сохраняет объект в потоке

  • « COMPersistHelper::SaveToFile
  • com_exception »
  • PHP Manual
  • COMPersistHelper
  • Сохраняет объект в потоке

COMPersistHelper::SaveToStream

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::SaveToStream — Сохраняет объект в потоке

Описание

public COMPersistHelper::SaveToStream(resource $stream): bool

Сохраняет объект в заданном потоке.

Список параметров

stream
Потоковый ресурс.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Выбрасывает исключение com_exception, если связанный объект не реализует COM интерфейс IPersistStream, либо если вызов IPersistStream::Save() завершился ошибкой.


Класс com_exception

(PHP 5, PHP 7, PHP 8)

Введение

Обзор классов

final class com_exception extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): 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, PHP 8)

com_create_guid — Создание уникального глобального идентификатора (GUID)

Описание

com_create_guid(): string|false

Создаёт уникальный глобальный идентификатор (GUID).

GUID генерируется так же как и DCE UUID, за исключением того, что, по конвенции Microsoft, необходимо заключать GUID в фигурные скобки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку с GUID или false в случае возникновения ошибки.

Смотрите также

  • 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, PHP 8)

com_event_sink — Связать сообщения объекта COM с объектом PHP

Описание

com_event_sink(variant $variant, object $sink_object, array|string|null $sink_interface = null): bool

Обязывает объект COM пробрасывать сообщения, созданные variant в объект PHP sink_object.

Будьте осторожны с этой возможностью. Если вы будете делать что-то похожее на пример ниже, то это не будет иметь никакого смысла при запуске в контексте веб-сервера.

Список параметров

variant

sink_object

sink_object должен быть экземпляром класса с методами, названными как в выбранном диспетчерском интерфейсе; вы можете использовать функцию com_print_typeinfo() для помощи в генерации шаблона класса.

sink_interface

PHP будет пытаться использовать тип диспетчерского интерфейса по умолчанию, как указано в библиотеке типов, связанной с variant, но вы можете изменить такое поведение, задав в sink_interface имя желаемого диспетчерского интерфейса.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | sink_interface теперь допускает значение null.

Примеры

Пример #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");
$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;
?>

Примечания

Предостережение

До PHP 8.0.0 вызов exit() из любого обработчика события не поддерживался и мог привести к зависанию PHP. Это можно обойти, выбрасывая исключение из обработчика события, перехватывая исключение в основном коде и вызывая оттуда exit().

Смотрите также

  • 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, PHP 8)

com_get_active_object — Вернуть дескриптор на уже запущенный экземпляр объекта COM

Описание

com_get_active_object(string $prog_id, ?int $codepage = null): variant

com_get_active_object() - это то же самое, что и создание нового экземпляра объекта com, за исключением того, что объект будет возвращён, если он уже запущен. Приложения OLE используют так называемую "Таблицу Запущенных Объектов" для возможности запускать приложения единожды. Эта функция представляет обёртку над библиотечной COM-функцией GetActiveObject().

Список параметров

prog_id

prog_id должен быть или ProgID или CLSID объекта, к которому вы хотите получить доступ (к примеру, Word.Application).

codepage

Делает то же самое, что и в классе com.

Возвращаемые значения

Если запрошенный объект запущен, то он будет возвращён вашему скрипту как любой другой объект COM.

Ошибки

Есть множество причин, по которым эта функция может завершиться с ошибкой. Наиболее распространённая причина в том, что объект не запущен. В таком случае будет выброшено исключение MK_E_UNAVAILABLE; вы можете использовать метод getCode для проверки кода исключения.

Список изменений

Версия | Описание
8.0.0 | codepage теперь допускает значение null.

Примечания

Внимание

Использование 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, PHP 8)

com_load_typelib — Загрузка Typelib

Описание

com_load_typelib(string $typelib, bool $case_insensitive = true): bool

Загружает библиотеку типов и регистрирует её константы таким образом, как если бы они были определены через define().

Обратите внимание, что гораздо эффективней использовать опцию конфигурации php.ini com.typelib-file для предзагрузки и регистрации констант. С другой стороны, таком метод менее гибок.

Если com.autoregister-typelib включено, то PHP постарается автоматически зарегистрировать константы, ассоциированные с объектом COM, когда вы будете создавать его экземпляр. Но подобное поведение зависит от интерфейса объекта COM И может быть недоступно.

Список параметров

typelib

typelib принимает следующие значения:

  • Имя .tlb-файла или запускаемый модуль, содержащий библиотеку типов.

  • GUID библиотеки типов, после которого указан номер версии, например, {00000200-0000-0010-8000-00AA006D2EA4},2,0.

  • Имя библиотеки типов, например, Microsoft OLE DB ActiveX Data Objects 1.0 Library.

PHP будет пытаться определить библиотеку в таком порядке. Каждый следующий пункт сильно затратное по ресурсам чем предыдущий. Т.е. лучше указывать .tbl-файл, если невозможно, то GUID и если совсем все плохо - тогда имя библиотеки. Поиск библиотеки по имени, например, приведёт к тому, что будет произведён перебор всех записей регистра.

case_insensitive

case_insensitive ведёт себя противоположно параметру $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, PHP 8)

com_message_pump — Обработка сообщений COM, пришедших не позднее timeoutms миллисекунд после её запуска

Описание

com_message_pump(int $timeout_milliseconds = 0): bool

Функция "засыпает" на timeout_milliseconds миллисекунд, либо пока в очередь не придёт новое сообщение.

Назначение функции состоит в маршрутизации вызовов COM между подразделениями и обработке различных асинхронных задач. Она позволит вашему скрипту ожидать возникновения события, одновременно с этим перехватывая другие события или выполняя другой код в фоне. Вы должны использовать её в цикле, как показано в примере функции com_event_sink() до момента прекращения использования привязки событий объекта COM.

Список параметров

timeout_milliseconds

Задержка в миллисекундах.

Если значение timeout_milliseconds не задано, то оно будет считаться равным нулю. Это означает, что задержки не будет. Если при этом присутствует ожидающее событие, то оно будет обработано как обычно. Если события нет, то функция сразу же вернёт 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, PHP 8)

com_print_typeinfo — Печатает определение класса PHP для интерфейса, наследующего IDispatch

Описание

com_print_typeinfo(variant|string $variant, ?string $dispatch_interface = null, bool $display_sink = false): bool

Назначение функции состоит в создании "рыбы" класса для использования в качестве приёмника событий. Также вы можете использовать её для генерации заглушки для любого объекта COM при условии, что он поддерживает достаточное количество интерфейсов самодиагностики, и что вы знаете имя интерфейса, который вы хотите отобразить.

Список параметров

variant

variant должен быть экземпляром класса COM, либо именем библиотеки типов (которое будет разобрано согласно набору правил, заданному в com_load_typelib()).

dispatch_interface

Имя интерфейса, наследующего IDispatch, который вы хотите отобразить.

display_sink

Если 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, PHP 8)

variant_abs — Получить абсолютное значение варианта

Описание

variant_abs(mixed $value): variant

Возвращает абсолютное значение варианта.

Список параметров

value

Вариант.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или null), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса variant. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обёртками вокруг одноимённых функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Возвращает абсолютное значение value.

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • abs() - Абсолютное значение (модуль числа)


Сложить значения двух вариантов

  • « variant_abs
  • variant_and »
  • PHP Manual
  • Функции COM
  • Сложить значения двух вариантов

variant_add

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

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 в случае возникновения ошибки.

Смотрите также

  • String Operators - конкатенация строк


Сравнить два варианта

  • « variant_cat
  • variant_date_from_timestamp »
  • PHP Manual
  • Функции COM
  • Сравнить два варианта

variant_cmp

(PHP 5, PHP 7, PHP 8)

variant_cmp — Сравнить два варианта

Описание

variant_cmp(
mixed $left,
mixed $right,
int $locale_id = LOCALE_SYSTEM_DEFAULT,
int $flags = 0
): int

Сравнивает left с right.

Функция сравнивает только скалярные величины. Массивы и записи вариантов не сравнивает.

Список параметров

left

Левый операнд.

right

Правый операнд.

locale_id

Корректный идентификатор локали, используемый при сравнении строк (влияет на сортировку строк).

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, PHP 8)

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, PHP 8)

variant_date_to_timestamp — Преобразует вариант типа дата/время во временную метку Unix

Описание

variant_date_to_timestamp(variant $variant): ?int

Конвертирует variant из значения VT_DATE (или аналогичного типа) во временную метку Unix. Это позволяет проще совместить часть PHP в Unix-стиле с COM.

Список параметров

variant

Вариант.

Возвращаемые значения

Возвращает временную метку Unix или null в случае возникновения ошибки.

Смотрите также

  • variant_date_from_timestamp() - Получить представление даты для варианта из временной метки Unix
  • date() - Форматирует временную метку Unix
  • strftime() - Форматирует текущую дату/время с учётом текущих настроек локали


Получить результат деления двух вариантов

  • « variant_date_to_timestamp
  • variant_eqv »
  • PHP Manual
  • Функции COM
  • Получить результат деления двух вариантов

variant_div

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

variant_fix — Вернуть целую часть варианта

Описание

variant_fix(mixed $value): variant

Возвращает целую часть варианта.

Список параметров

value

Вариант.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или null), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса variant. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обёртками вокруг одноимённых функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Если value отрицателен, то будет возвращено первое отрицательное целое больше или равное варианту. В случае положительного числа будет просто возвращена целочисленная часть value.

Ошибки

Выбрасывает исключение 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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

variant_int — Вернуть целочисленную часть варианта

Описание

variant_int(mixed $value): variant

Извлекает целочисленную часть варианта.

Список параметров

value

Вариант.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или null), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса variant. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обёртками вокруг одноимённых функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Если value отрицателен, то будет возвращено первое отрицательное целое больше или равное варианту. В случае положительного числа будет просто возвращена целочисленная часть value.

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.

Смотрите также

  • variant_fix() - Вернуть целую часть варианта
  • variant_round() - Округляет вариант с заданной точностью
  • floor() - Округляет дробь в меньшую сторону
  • ceil() - Округляет дробь в большую сторону
  • round() - Округляет число типа float


Остаток от деления двух вариантов

  • « variant_int
  • variant_mul »
  • PHP Manual
  • Функции COM
  • Остаток от деления двух вариантов

variant_mod

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

variant_neg — Логическое отрицание над вариантом

Описание

variant_neg(mixed $value): variant

Производит логическое отрицание над value.

Список параметров

value

Вариант.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными 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, PHP 8)

variant_not — Побитовое отрицание над вариантом

Описание

variant_not(mixed $value): variant

Производит побитовое отрицание над value и возвращает получившееся значение.

Список параметров

value

Вариант.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или null), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса variant. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обёртками вокруг одноимённых функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Возвращает результат побитового отрицания. Если value является null, то результат также будет null.

Ошибки

Выбрасывает исключение com_exception в случае возникновения ошибки.


Побитовое ИЛИ над двумя вариантами

  • « variant_not
  • variant_pow »
  • PHP Manual
  • Функции COM
  • Побитовое ИЛИ над двумя вариантами

variant_or

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

variant_round — Округляет вариант с заданной точностью

Описание

variant_round(mixed $value, int $decimals): ?variant

Возвращает значение value, округлённое до decimals десятичных знаков.

Список параметров

value

Вариант.

decimals

Точность.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или null), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса variant. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обёртками вокруг одноимённых функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Округлённое значение или null в случае возникновения ошибки.

Смотрите также

  • round() - Округляет число типа float


Приведение варианта к другому типу "по месту"

  • « variant_round
  • variant_set »
  • PHP Manual
  • Функции COM
  • Приведение варианта к другому типу "по месту"

variant_set_type

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

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
  • win32service »
  • PHP Manual
  • Функции COM
  • Исключающее ИЛИ над двумя вариантами

variant_xor

(PHP 5, PHP 7, PHP 8)

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() - Побитовое И над двумя вариантами


win32service

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
    • Вопросы безопасности
  • Предопределённые константы
    • Битовые маски типа службы Win32Service
    • Константы статуса службы Win32Service
    • Константы обработки сообщений службой Win32Service
    • Принимаемые битовые маски обработки сообщений службой Win32Service
    • Константы типа запуска службы Win32Service
    • Константы контроля ошибок сервиса Win32Service
    • Константы флагов сервиса Win32Service
    • Коды ошибок Win32
    • Базовые классы приоритетов Win32
    • Действия при восстановлении Win32
    • Win32 Service informations
  • Win32ServiceException — Класс Win32ServiceException
  • Примеры
  • win32service
    • win32_continue_service — Возобновляет работу приостановленной службы
    • win32_create_service — Создаёт новую запись службы в базе данных SCM
    • win32_delete_service — Удаляет запись службы из базы данных SCM
    • win32_get_last_control_message — Возвращает последнее управляющее сообщение, которое было отправлено этой службе
    • win32_pause_service — Приостанавливает службу
    • win32_query_service_status — Запрашивает статус сервиса
    • win32_send_custom_control — Отправляет настраиваемый элемент управления в службу
    • win32_set_service_exit_code — Определяет или возвращает код выхода для текущей запущенной службы
    • win32_set_service_exit_mode — Определяет или возвращает режим выхода для текущей запущенной службы
    • win32_set_service_status — Обновляет статус службы
    • win32_start_service_ctrl_dispatcher — Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
    • win32_start_service — Запускает службу
    • win32_stop_service — Останавливает службу


Введение

Модуль win32service - это специальное модуль Windows, который позволяет PHP взаимодействовать с диспетчером управления службами для запуска, остановки, добавления и удаления служб, и даже запускать ваши PHP-скрипты как службы.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Типы ресурсов
  • Вопросы безопасности


Требования

Поддерживаемые версии Windows такие же, как и в распространяемом пакете Visual C++, используемом для сборки PHP.


Установка

Информация по установке этого модуля 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

Замечание:

Эти константы больше не используются с Win32Service 1.0.0.

Коды ошибок 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_RESTART | 0x00000001 | Перезапуск сервиса.
WIN32_SC_ACTION_REBOOT | 0x00000002 | Перезапуск сервера.
WIN32_SC_ACTION_RUN_COMMAND | 0x00000003 | Выполнение команды.


Win32 Service informations

  • « Действия при восстановлении Win32
  • Win32ServiceException »
  • 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" |


Класс Win32ServiceException

(PECL win32service >=1.0.0)

Введение

Исключение заменяет старый механизм, в котором значение ошибки нужно было сравнивать с константами, чтобы определить ошибку. Код исключения равен значению ошибки, а сообщение об исключении основывается на соответствующем имени константы.

Обзор классов

class Win32ServiceException extends Exception {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Примеры

Пример #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 — Создаёт новую запись службы в базе данных SCM
  • win32_delete_service — Удаляет запись службы из базы данных SCM
  • win32_get_last_control_message — Возвращает последнее управляющее сообщение, которое было отправлено этой службе
  • win32_pause_service — Приостанавливает службу
  • win32_query_service_status — Запрашивает статус сервиса
  • win32_send_custom_control — Отправляет настраиваемый элемент управления в службу
  • win32_set_service_exit_code — Определяет или возвращает код выхода для текущей запущенной службы
  • win32_set_service_exit_mode — Определяет или возвращает режим выхода для текущей запущенной службы
  • win32_set_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 = ?): void

Возобновляет работу обозначенной приостановленной службы. Требует административных привилегий, либо аккаунта с соответствующим образом настроенным ACL для сервиса.

Список параметров

servicename

Короткое название службы.

machine

Необязательное имя машины. Если не указано, используется на локальной машине.

Возвращаемые значения

Функция не возвращает значения после выполнения.

До версии 1.0.0, Возвращает WIN32_NO_ERROR в случае успешного завершения , false если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Ошибки

Выбрасывает ValueError, если значение параметра servicename не задано.

Выбрасывает Win32ServiceException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError при некорректных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.
PECL win32service 1.0.0 | Тип возвращаемого значения void, ранее был mixed.
PECL win32service 0.3.0 | Этой функции больше не требуется привилегии администратора, если для используемого пользователя корректно настроен ACL.

Смотрите также

  • win32_start_service() - Запускает службу
  • win32_stop_service() - Останавливает службу
  • win32_pause_service() - Приостанавливает службу
  • win32_send_custom_control() - Отправляет настраиваемый элемент управления в службу
  • Коды Ошибок Win32


Создаёт новую запись службы в базе данных SCM

  • « win32_continue_service
  • win32_delete_service »
  • PHP Manual
  • win32service
  • Создаёт новую запись службы в базе данных SCM

win32_create_service

(PECL win32service >=0.1.0)

win32_create_service — Создаёт новую запись службы в базе данных SCM

Описание

win32_create_service(array $details, string $machine = ?): void

Пробует добавить службу в базу данных SCM. Для этого требуются права администратора.

Список параметров

details

Массив деталей службы:

service

Краткое название службы. Это имя, которое вы будете использовать для управления службой с помощью команды net. Служба должна быть уникальной (никакие две службы не могут иметь одно и то же название) и, в идеале, не должна содержать пробелов в названии.

display

Отображаемое имя службы. Это имя, которое вы увидите в апплете служб.

description

Подробное описание услуги. Это описание, которое вы увидите в апплете служб.

user

Имя учётной записи пользователя, под которой вы хотите запускать службу. Если этот параметр не указан, служба будет работать под учётной записью LocalSystem. Если имя пользователя указано, вы также должны указать пароль.

password

Пароль, соответствующий user.

path

Полный путь к исполняемому модулю, который будет запущен при запуске службы. Если не указано, будет использоваться путь к текущему процессу PHP.

params

Параметры командной строки для передачи службе при её запуске. Если вы хотите запустить скрипт PHP как службу, то первым параметром должен быть полный путь к скрипту PHP, который вы собираетесь запустить. Если имя скрипта или путь содержат пробелы, заключите полный путь к скрипту в кавычки ".

load_order

Управляет load_order. Ещё не полностью поддерживается.

svc_type

Устанавливает тип службы. Если опущено, будет использовано значение по умолчанию WIN32_SERVICE_WIN32_OWN_PROCESS. Не меняйте это, если вы не знаете, что делаете.

start_type

Устанавливает способ запуска службы. По умолчанию используется WIN32_SERVICE_AUTO_START, что означает, что служба будет запущена при запуске машины.

error_control

Сообщает SCM, что он должен делать при обнаружении проблемы со службой. По умолчанию это WIN32_SERVER_ERROR_IGNORE. Изменение этого значения пока поддерживается не полностью.

delayed_start

Если для delayed_start установлено значение true, то это проинформирует SCM о том, что служба должна быть запущена после того, как будут запущены другие службы автозапуска, плюс небольшая задержка.

Любую службу можно пометить как службу с отложенным автозапуском; однако этот параметр не действует, если start_type службы не равен WIN32_SERVICE_AUTO_START.

Параметр применим только в Windows Vista и Windows Server 2008 или более поздних версиях.

base_priority

Чтобы уменьшить влияние на использование процессора, может потребоваться установить базовый приоритет ниже обычного.

base_priority может быть одной из констант определённых в базовых классах приоритета Win32.

dependencies

Чтобы определить зависимости для вашей службы, может потребоваться установить этот параметр для списка имён служб в массиве.

recovery_delay

Этот параметр определяет задержку между ошибкой и выполнением действия восстановления. Значение в миллисекундах.

Значение по умолчанию - 60000.

recovery_action_1

Действие будет выполнено при первой ошибке. Значение по умолчанию - WIN32_SC_ACTION_NONE.

Для recovery_action_1 можно задать одну из констант действий восстановления Win32.

recovery_action_2

Действие будет выполнено при второй ошибке. Значение по умолчанию - WIN32_SC_ACTION_NONE.

Для recovery_action_2 можно задать одну из констант действий восстановления Win32.

recovery_action_3

Действие будет выполнено при последующих ошибках. Значение по умолчанию - WIN32_SC_ACTION_NONE.

Для recovery_action_3 можно задать одну из констант действий восстановления Win32.

recovery_reset_period

Счётчик отказов будет сброшен после задержки, определённой в параметре. Задержка указывается в секундах.

Значение по умолчанию 86400.

recovery_enabled

Установите для этого параметра значение true для включения настроек восстановления, false для отключения.

Значение по умолчанию false

recovery_reboot_msg

Установите этот параметр, чтобы определить сообщение, сохраняемое в журнале событий Windows перед перезагрузкой. Используется, только если для одного из действий установлено значение WIN32_SC_ACTION_REBOOT.

recovery_command

Установите этот параметр, чтобы определить команду, выполняемую, если одно из действий определено, как WIN32_SC_ACTION_RUN_COMMAND.

machine

Необязательное имя машины, на которой вы хотите создать службу. Если не указано, будет использоваться локальный компьютер.

Возвращаемые значения

Функция не возвращает значения после выполнения.

До версии 1.0.0, Возвращает WIN32_NO_ERROR в случае успешного завершения , false если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Ошибки

Выбрасывается ValueError, если значение параметра service не задано.

Выбрасывается ValueError, если значение параметра path не задано.

Выбрасывается ValueError, если значение параметра svc_type указано неверно.

Выбрасывается ValueError, если значение параметра start_type указано неверно.

Выбрасывается ValueError, если значение параметра error_control указано неверно.

Выбрасывается ValueError, если значение параметра base_priority указано неверно.

Выбрасывается ValueError, если значение параметра recovery_delay не в промежутке между 0 и PHP_INT_MAX.

Выбрасывается ValueError, если значение параметра recovery_action_1 указано неверно.

Выбрасывается ValueError, если значение параметра recovery_action_2 указано неверно.

Выбрасывается ValueError, если значение параметра recovery_action_3 указано неверно.

Выбрасывается ValueError, если значение параметра recovery_reset_period не в промежутке между 0 и PHP_INT_MAX.

В случае возникновения ошибки выбрасывается Win32ServiceException.

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError в случае неверных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.
PECL win32service 1.0.0 | Тип возврата теперь void, ранее был mixed.
PECL win32service 0.4.0 | Добавлены параметры dependencies, recovery_delay, recovery_action_1, recovery_action_2, recovery_action_3, recovery_reset_period, recovery_enabled, recovery_reboot_msg и recovery_command.

Примеры

Пример #1 Пример использования win32_create_service()

Создание сервиса с кратким названием 'dummyphp'.

<?php
$x = win32_create_service(array(
'service' => 'dummyphp', // название сервиса
'display' => 'sample dummy PHP service', // краткое описание
'description' => 'This is a dummy Windows service created using PHP.', // полное описание
'params' => '"' . __FILE__ . '" run', // путь до скрипта и параметров
));
debug_zval_dump($x);
?>

Пример #2 Пример использования win32_create_service() с зависимостями

Создание сервиса с кратким названием 'dummyphp' и зависимостями.

<?php
$x = win32_create_service(array(
'service' => 'dummyphp', // название сервиса
'display' => 'sample dummy PHP service', // краткое описание
'description' => 'This is a dummy Windows service created using PHP.', // полное описание
'params' => '"' . __FILE__ . '" run', // путь до скрипта и параметров
'dependencies' => array("Netman"), // список зависимостей
));
debug_zval_dump($x);
?>

Пример #3 Пример использования win32_create_service() с восстановлением

Создание сервиса с кратким названием 'dummyphp' и настройками восстановления.

<?php
$x = win32_create_service(array(
'service' => 'dummyphp', // название сервиса
'display' => 'sample dummy PHP service', // краткое описание
'description' => 'This is a dummy Windows service created using PHP.', // полное описание
'params' => '"' . __FILE__ . '" run', // путь до скрипта и параметров
'recovery_delay' => 120000, // Действие восстановления выполняется через 2 минуты.
'recovery_action_1' => WIN32_SC_ACTION_RESTART, // При первом сбое перезапускается служба.
'recovery_action_2' => WIN32_SC_ACTION_RUN_COMMAND, // При втором сбое выполняется команда
'recovery_action_3' => WIN32_SC_ACTION_NONE, // При последующих сбоях ничего не делать
'recovery_reset_period' => 86400, // Сбросить счётчик ошибок через 1 день
'recovery_enabled' => true, // Включить параметр восстановления
'recovery_reboot_msg' => null, // Не определяйте сообщение о перезагрузке, здесь оно не нужно
'recovery_command' => "c:\clean-service.bat", // Когда действие - WIN32_SC_ACTION_RUN_COMMAND, выполняется эта команда
));
debug_zval_dump($x);
?>

Смотрите также

  • win32_delete_service() - Удаляет запись службы из базы данных SCM
  • Базовые классы приоритета Win32
  • Действия восстановления Win32
  • Коды ошибок Win32


Удаляет запись службы из базы данных SCM

  • « win32_create_service
  • win32_get_last_control_message »
  • PHP Manual
  • win32service
  • Удаляет запись службы из базы данных SCM

win32_delete_service

(PECL win32service >=0.1.0)

win32_delete_service — Удаляет запись службы из базы данных SCM

Описание

win32_delete_service(string $servicename, string $machine = ?): void

Пытается удалить службу из базы данных SCM. Для этого требуются права администратора.

Функция на самом деле просто помечает сервис для удаления. Если другие процессы (например, сервисный апплет) открыты, то удаление будет отложено до закрытия этих приложений. Если служба помечена для удаления, дальнейшие попытки её удаления не завершатся ошибкой, а попытки создать новую службу с этим именем также будут неудачными.

Список параметров

servicename

Краткое название службы.

machine

Необязательное имя машины. Если не указано, используется локальный компьютер.

Возвращаемые значения

Функция не возвращает значения после выполнения.

До версии 1.0.0, Возвращает WIN32_NO_ERROR в случае успешного завершения , false если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Ошибки

Выбрасывает ValueError, если значение servicename не указано.

Выбрасывает Win32ServiceException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError при неверных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.
PECL win32service 1.0.0 | Тип возвращаемого значения теперь void, ранее был mixed.

Примеры

Пример #1 Пример использования win32_delete_service()

Удаляет службу dummyphp.

<?php
win32_delete_service('dummyphp');
?>

Смотрите также

  • win32_create_service() - Создаёт новую запись службы в базе данных SCM
  • Коды ошибок Win32


Возвращает последнее управляющее сообщение, которое было отправлено этой службе

  • « win32_delete_service
  • win32_pause_service »
  • PHP Manual
  • win32service
  • Возвращает последнее управляющее сообщение, которое было отправлено этой службе

win32_get_last_control_message

(PECL win32service >=0.1.0)

win32_get_last_control_message — Возвращает последнее управляющее сообщение, которое было отправлено этой службе

Описание

win32_get_last_control_message(): int

Возвращает управляющий код, последний раз отправленный этому процессу службы. При работе в качестве службы вы должны периодически проверять это, чтобы определять, нужно ли вашей службе прекратить работу.

Предостережение

Начиная с версии 0.2.0, функция работает только в "cli" SAPI. На других SAPI эта функция отключена.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает управляющую константу, которая будет одной из Констант сообщений управления службой Win32Service: WIN32_SERVICE_CONTROL_CONTINUE, WIN32_SERVICE_CONTROL_DEVICEEVENT, WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_NETBINDADD, WIN32_SERVICE_CONTROL_NETBINDDISABLE, WIN32_SERVICE_CONTROL_NETBINDENABLE, WIN32_SERVICE_CONTROL_NETBINDREMOVE, WIN32_SERVICE_CONTROL_PARAMCHANGE, WIN32_SERVICE_CONTROL_PAUSE, WIN32_SERVICE_CONTROL_POWEREVENT, WIN32_SERVICE_CONTROL_PRESHUTDOWN, WIN32_SERVICE_CONTROL_SESSIONCHANGE, WIN32_SERVICE_CONTROL_SHUTDOWN, WIN32_SERVICE_CONTROL_STOP.

Если значение находится в диапазоне от 128 до 255, код управления настраивается.

Ошибки

До версии 1.0.0, если SAPI не "cli", функция выдавала ошибку уровня E_ERROR.

Начиная с версии 1.0.0, выбрасывает Win32ServiceException, если SAPI не "cli"

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError при неверных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.
PECL win32service 0.2.0 | Функция работает только с "cli" SAPI.

Смотрите также

  • win32_start_service_ctrl_dispatcher() - Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
  • win32_set_service_status() - Обновляет статус службы
  • win32_set_service_exit_mode() - Определяет или возвращает режим выхода для текущей запущенной службы
  • win32_set_service_exit_code() - Определяет или возвращает код выхода для текущей запущенной службы
  • Константы сообщений управления службой Win32Service


Приостанавливает службу

  • « win32_get_last_control_message
  • win32_query_service_status »
  • PHP Manual
  • win32service
  • Приостанавливает службу

win32_pause_service

(PECL win32service >=0.1.0)

win32_pause_service — Приостанавливает службу

Описание

win32_pause_service(string $servicename, string $machine = ?): void

Приостанавливает указанную службу. Требуются административные привилегии или учётная запись с соответствующими правами, установленными в ACL службы.

Список параметров

servicename

Краткое название службы.

machine

Необязательное имя машины. Если не указано, используется локальный компьютер.

Возвращаемые значения

Функция не возвращает значения после выполнения.

До версии 1.0.0, Возвращает WIN32_NO_ERROR в случае успешного завершения , false если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Ошибки

Выбрасывает ValueError, если значение servicename не указано.

Выбрасывает Win32ServiceException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError при неверных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.
PECL win32service 1.0.0 | Тип возвращаемого значения теперь void, ранее был mixed.
PECL win32service 0.3.0 | Функция больше не требует учётной записи администратора, если ACL установлен для другой учётной записи.

Смотрите также

  • win32_start_service() - Запускает службу
  • win32_stop_service() - Останавливает службу
  • win32_continue_service() - Возобновляет работу приостановленной службы
  • win32_send_custom_control() - Отправляет настраиваемый элемент управления в службу
  • Коды ошибок Win32


Запрашивает статус сервиса

  • « win32_pause_service
  • win32_send_custom_control »
  • PHP Manual
  • win32service
  • Запрашивает статус сервиса

win32_query_service_status

(PECL win32service >=0.1.0)

win32_query_service_status — Запрашивает статус сервиса

Описание

win32_query_service_status(string $servicename, string $machine = ?): array

Запрашивает текущий статус службы, возвращая массив информации.

Список параметров

servicename

Краткое название службы.

machine

Необязательное имя машины. Если не указано, будет использоваться локальный компьютер.

Возвращаемые значения

Возвращает массив, состоящий из следующей информации в случае успешного выполнения:

До версии 1.0.0 , false если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

ServiceType

dwServiceType. Смотрите Битовые маски типов службы Win32Service.

CurrentState

dwCurrentState. Смотрите Константы состояния службы Win32Service.

ControlsAccepted

Какие элементы управления службами принимаются службой. Смотрите Битовые маски Win32Service Service Control Message Accepted.

Win32ExitCode

Если служба завершила работу, здесь отображается код возврата из процесса. Это значение равно WIN32_ERROR_SERVICE_SPECIFIC_ERROR, если режим выхода не является плавным. Смотрите коды ошибок Win32Service и win32_set_service_exit_mode()

ServiceSpecificExitCode

Если служба завершила работу, здесь отображается код конкретной службы, зарегистрированный в журнале событий. Это значение равно значению, определённому win32_set_service_exit_code()

CheckPoint

Если служба завершила работу, здесь отображается текущий номер контрольной точки. Это используется SCM как своего рода сердцебиение для обнаружения заклинившего процесса обслуживания. Значение контрольной точки лучше всего интерпретировать вместе со значением WaitHint.

WaitHint

Если служба завершила работу, она установит для WaitHint значение контрольной точки, которое будет указывать на 100% завершение. Это можно использовать для реализации индикатора прогресса.

ProcessId

Идентификатор процесса Windows. Если 0, процесс не запущен.

ServiceFlags

dwServiceFlags. Смотрите Константы флагов службы Win32Service.

Ошибки

Выбрасывается ValueError, если значение параметра servicename не указано.

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError в случае неверных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.
PECL win32service 1.0.0 | Тип возврата теперь array, ранее был mixed.

Смотрите также

  • Предопределённые константы Win32Service


Отправляет настраиваемый элемент управления в службу

  • « win32_query_service_status
  • win32_set_service_exit_code »
  • PHP Manual
  • win32service
  • Отправляет настраиваемый элемент управления в службу

win32_send_custom_control

(PECL win32service >=0.4.0)

win32_send_custom_control — Отправляет настраиваемый элемент управления в службу

Описание

win32_send_custom_control(string $servicename, int $control, string $machine = ?): void

Смотрите » функцию Microsoft ControlService для получения дополнительных сведений.

Список параметров

servicename

Краткое название службы.

control

Значение настраиваемого элемента управления от 128 до 255.

machine

Необязательное имя машины. Если не указано, используется локальный компьютер.

Возвращаемые значения

Функция не возвращает значения после выполнения.

До версии 1.0.0, Возвращает WIN32_NO_ERROR в случае успешного завершения , false если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Ошибки

До версии 1.0.0, если значение control не находится между 128 и 255, функция выдавала ошибку уровня E_ERROR.

Выбрасывает ValueError, если значение servicename не указано.

Выбрасывает ValueError, если значение control не находится между 128 и 255.

Выбрасывает Win32ServiceException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError при неверных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.
PECL win32service 1.0.0 | Тип возвращаемого значения теперь void, ранее был mixed.

Смотрите также

  • win32_start_service() - Запускает службу
  • win32_stop_service() - Останавливает службу
  • win32_pause_service() - Приостанавливает службу
  • win32_continue_service() - Возобновляет работу приостановленной службы
  • Коды ошибок Win32


Определяет или возвращает код выхода для текущей запущенной службы

  • « win32_send_custom_control
  • win32_set_service_exit_mode »
  • PHP Manual
  • win32service
  • Определяет или возвращает код выхода для текущей запущенной службы

win32_set_service_exit_code

(PECL win32service >=0.4.0)

win32_set_service_exit_code — Определяет или возвращает код выхода для текущей запущенной службы

Описание

win32_set_service_exit_code(int $exitCode = 1): int

Изменяет или возвращает код выхода. Код выхода используется только в том случае, если режим выхода не изящный. Если значение не равно нулю, конфигурацию восстановления можно использовать после сбоя обслуживания. Смотрите » коды системных ошибок Microsoft для получения дополнительных сведений.

Предостережение

Функция работает только в "cli" SAPI. На других SAPI эта функция отключена.

Список параметров

exitCode

Код возврата, используемый при выходе.

Возвращаемые значения

Возвращает текущий или старый код выхода.

Ошибки

До версии 1.0.0, если SAPI не "cli", функция выдавала ошибку уровня E_ERROR.

Начиная с версии 1.0.0, выбрасывает Win32ServiceException, если SAPI не "cli"

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError при неверных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.

Смотрите также

  • win32_start_service_ctrl_dispatcher() - Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
  • win32_set_service_status() - Обновляет статус службы
  • win32_set_service_exit_mode() - Определяет или возвращает режим выхода для текущей запущенной службы


Определяет или возвращает режим выхода для текущей запущенной службы

  • « win32_set_service_exit_code
  • win32_set_service_status »
  • PHP Manual
  • win32service
  • Определяет или возвращает режим выхода для текущей запущенной службы

win32_set_service_exit_mode

(PECL win32service >=0.4.0)

win32_set_service_exit_mode — Определяет или возвращает режим выхода для текущей запущенной службы

Описание

win32_set_service_exit_mode(bool $gracefulMode = true): bool

Если указан параметр gracefulMode, режим выхода изменяется. Когда режим выхода не является корректным, используемый код выхода может быть установлен с помощью функции win32_set_service_exit_code().

Предостережение

Функция работает только в "cli" SAPI. На других SAPI эта функция отключена.

Список параметров

gracefulMode

true для изящного выхода. false для выхода с ошибкой.

Возвращаемые значения

Возвращает текущий или старый режим выхода.

Ошибки

До версии 1.0.0, если SAPI не "cli", функция выдавала ошибку уровня E_ERROR.

Начиная с версии 1.0.0, выбрасывает Win32ServiceException, если SAPI не "cli"

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError при неверных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.

Смотрите также

  • win32_start_service_ctrl_dispatcher() - Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
  • win32_set_service_status() - Обновляет статус службы
  • win32_set_service_exit_code() - Определяет или возвращает код выхода для текущей запущенной службы


Обновляет статус службы

  • « win32_set_service_exit_mode
  • win32_start_service_ctrl_dispatcher »
  • PHP Manual
  • win32service
  • Обновляет статус службы

win32_set_service_status

(PECL win32service >=0.1.0)

win32_set_service_status — Обновляет статус службы

Описание

win32_set_service_status(int $status, int $checkpoint = 0): void

Информирует SCM о текущем состоянии работающей службы. Этот вызов действителен только для запущенного сервисного процесса.

Предостережение

Начиная с версии 0.2.0, функция работает только в "cli" SAPI. На других SAPI эта функция отключена.

Список параметров

status

Код статуса службы, один из: 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

Значение контрольной точки, которое служба периодически увеличивает, чтобы сообщить о своём прогрессе во время длительного запуска, остановки, паузы или продолжения работы. Например, служба должна увеличивать это значение на единицу по мере завершения каждого шага своей инициализации при запуске.

checkpoint действительна только тогда, когда status является одним из WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING или WIN32_SERVICE_PAUSE_PENDING.

Возвращаемые значения

Функция не возвращает значения после выполнения.

До версии 1.0.0, Возвращает WIN32_NO_ERROR в случае успешного завершения , false если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Ошибки

До версии 1.0.0, если SAPI не "cli", функция выдавала ошибку уровня E_ERROR.

Начиная с версии 1.0.0, выбрасывает Win32ServiceException, если SAPI не "cli"

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError при неверных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.
PECL win32service 1.0.0 | Тип возвращаемого значения теперь void, ранее был mixed.
PECL win32service 0.2.0 | Функция работает только с "cli" SAPI.

Смотрите также

  • win32_start_service_ctrl_dispatcher() - Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
  • win32_get_last_control_message() - Возвращает последнее управляющее сообщение, которое было отправлено этой службе
  • win32_set_service_exit_mode() - Определяет или возвращает режим выхода для текущей запущенной службы
  • win32_set_service_exit_code() - Определяет или возвращает код выхода для текущей запущенной службы
  • Константы состояния службы Win32Service


Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем

  • « 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): void

При запуске с помощью диспетчера служб, процессу службы необходимо сверяться с ним для мониторинга службы и связи с ней. Эта функция выполняет сверку посредством создания потока для обработки низкоуровневой связи с диспетчером служб.

После запуска процесс службы должен осуществить два действия. Первое - сообщить диспетчеру служб, что служба запущена. Это осуществляется путём вызова 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() для получения подробной информации.

Возвращаемые значения

Функция не возвращает значения после выполнения.

До версии 1.0.0, Возвращает WIN32_NO_ERROR в случае успешного завершения , false если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Ошибки

До версии 1.0.0, если SAPI не является "cli", данная функция вызывает ошибку уровня E_ERROR.

Начиная с версии 1.0.0, выбрасывает исключение Win32ServiceException, если SAPI не является "cli"

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError при некорректных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.
PECL win32service 1.0.0 | Тип возвращаемого значения void, ранее был mixed.
PECL win32service 0.4.0 | Добавлен параметр gracefulMode.
PECL win32service 0.2.0 | Эта функция работает только с "cli" SAPI.

Примеры

Пример #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 секунд
# перед соответствующим переходом в цикл.
}
?>

Смотрите также

  • win32_set_service_status() - Обновляет статус службы
  • win32_get_last_control_message() - Возвращает последнее управляющее сообщение, которое было отправлено этой службе
  • win32_set_service_exit_mode() - Определяет или возвращает режим выхода для текущей запущенной службы
  • win32_set_service_exit_code() - Определяет или возвращает код выхода для текущей запущенной службы
  • Коды Ошибок 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 = ?): void

Производит попытку запуска обозначенной службы. Обычно требует административных привилегий, либо аккаунта с соответствующим образом настроенным ACL для сервиса.

Список параметров

servicename

Короткое название службы.

machine

Необязательное имя машины. Если не указано, используется на локальной машине.

Возвращаемые значения

Функция не возвращает значения после выполнения.

До версии 1.0.0, Возвращает WIN32_NO_ERROR в случае успешного завершения , false если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Ошибки

Выбрасывает ValueError, если значение параметра servicename не задано.

Выбрасывает Win32ServiceException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError при некорректных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.
PECL win32service 1.0.0 | Тип возвращаемого значения void, ранее был mixed.
PECL win32service 0.3.0 | Этой функции больше не требуется привилегии администратора, если для используемого пользователя корректно настроен ACL.

Смотрите также

  • win32_stop_service() - Останавливает службу
  • win32_pause_service() - Приостанавливает службу
  • win32_continue_service() - Возобновляет работу приостановленной службы
  • win32_send_custom_control() - Отправляет настраиваемый элемент управления в службу
  • Коды Ошибок 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 = ?): void

Останавливает обозначенную службу. Требует административных привилегий, либо аккаунта с соответствующим образом настроенным ACL для сервиса.

Список параметров

servicename

Короткое название службы.

machine

Необязательное имя машины. Если не указано, используется на локальной машине.

Возвращаемые значения

Функция не возвращает значения после выполнения.

До версии 1.0.0, Возвращает WIN32_NO_ERROR в случае успешного завершения , false если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Ошибки

Выбрасывает ValueError, если значение параметра servicename не задано.

Выбрасывает Win32ServiceException в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL win32service 1.0.0 | Выбрасывает ValueError при некорректных данных в параметрах, ранее возвращалось false.
PECL win32service 1.0.0 | Выбрасывает Win32ServiceException в случае возникновения ошибки, ранее возвращался Код ошибки Win32.
PECL win32service 1.0.0 | Тип возвращаемого значения void, ранее был mixed.
PECL win32service 0.3.0 | Этой функции больше не требуется привилегии администратора, если для используемого пользователя корректно настроен ACL.

Смотрите также

  • win32_start_service() - Запускает службу
  • win32_pause_service() - Приостанавливает службу
  • win32_continue_service() - Возобновляет работу приостановленной службы
  • win32_send_custom_control() - Отправляет настраиваемый элемент управления в службу
  • Коды Ошибок Win32


Обработка XML

  • DOM — Document Object Model
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • DOMAttr — Класс DOMAttr
    • DOMCdataSection — Класс DOMCdataSection
    • DOMCharacterData — Класс DOMCharacterData
    • DOMChildNode — Интерфейс DOMChildNode
    • 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
    • DOMParentNode — Интерфейс DOMParentNode
    • DOMProcessingInstruction — Класс DOMProcessingInstruction
    • DOMText — Класс DOMText
    • DOMXPath — Класс DOMXPath
    • Функции DOM
  • libxml
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • libXMLError — Класс libXMLError
    • Функции libxml
  • 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
    • XmlParser — Класс XmlParser
  • XMLReader
    • Введение
    • Установка и настройка
    • XMLReader — Класс XMLReader
  • XMLWriter
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • XMLWriter — Класс XMLWriter
  • XSL
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • Примеры
    • XSLTProcessor — Класс XSLTProcessor


Document Object Model

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
  • DOMAttr — Класс DOMAttr
    • DOMAttr::__construct — Создаёт экземпляр класса DOMAttr
    • DOMAttr::isId — Проверяет, является ли атрибут определённым идентификатором
  • DOMCdataSection — Класс DOMCdataSection
    • DOMCdataSection::__construct — Создаёт новый экземпляр класса DOMCdataSection
  • DOMCharacterData — Класс DOMCharacterData
    • DOMCharacterData::after — Adds nodes after the character data
    • DOMCharacterData::appendData — Добавить строку в конец символьных данных узла
    • DOMCharacterData::before — Adds nodes before the node
    • DOMCharacterData::deleteData — Удалить диапазон символов из узла
    • DOMCharacterData::insertData — Вставить строку в указанную 16-битную позицию
    • DOMCharacterData::remove — Removes the character data
    • DOMCharacterData::replaceData — Заменить подстроку в узле типа DOMCharacterData
    • DOMCharacterData::replaceWith — Replaces the character data with new nodes
    • DOMCharacterData::substringData — Извлекает определённый диапазон данных из узла
  • DOMChildNode — Интерфейс DOMChildNode
    • DOMChildNode::after — Добавляет узлы после узла
    • DOMChildNode::before — Добавляет узлы перед узлом
    • DOMChildNode::remove — Удаляет узел
    • DOMChildNode::replaceWith — Заменяет узел новыми узлами
  • DOMComment — Класс DOMComment
    • DOMComment::__construct — Создаёт новый экземпляр класса DOMComment
  • DOMDocument — Класс DOMDocument
    • DOMDocument::adoptNode — Transfer a node from another document
    • DOMDocument::append — Appends nodes after the last child node
    • 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::prepend — Prepends nodes before the first child node
    • DOMDocument::registerNodeClass — Регистрация расширенного класса, используемого для создания типа базового узла
    • DOMDocument::relaxNGValidate — Производит проверку документа на правильность построения посредством relaxNG
    • DOMDocument::relaxNGValidateSource — Проверяет документ посредством relaxNG
    • DOMDocument::replaceChildren — Replace children in document
    • DOMDocument::save — Сохраняет XML-дерево из внутреннего представления в файл
    • DOMDocument::saveHTML — Сохраняет документ из внутреннего представления в строку, используя форматирование HTML
    • DOMDocument::saveHTMLFile — Сохраняет документ из внутреннего представления в файл, используя форматирование HTML
    • DOMDocument::saveXML — Сохраняет XML-дерево из внутреннего представления в виде строки
    • DOMDocument::schemaValidate — Проверяет действительность документа, основываясь на заданной схеме. Поддерживается только XML-схема 1.0.
    • DOMDocument::schemaValidateSource — Проверяет действительность документа, основываясь на схеме
    • DOMDocument::validate — Проверяет документ на соответствие его DTD
    • DOMDocument::xinclude — Проводит вставку XInclude в объекте DOMDocument
  • DOMDocumentFragment — Класс DOMDocumentFragment
    • DOMDocumentFragment::append — Appends nodes after the last child node
    • DOMDocumentFragment::appendXML — Добавление необработанных данных XML
    • DOMDocumentFragment::__construct — Конструктор объекта DOMDocumentFragment
    • DOMDocumentFragment::prepend — Prepends nodes before the first child node
    • DOMDocumentFragment::replaceChildren — Replace children in fragment
  • DOMDocumentType — Класс DOMDocumentType
  • DOMElement — Класс DOMElement
    • DOMElement::after — Adds nodes after the element
    • DOMElement::append — Appends nodes after the last child node
    • DOMElement::before — Adds nodes before the element
    • DOMElement::__construct — Создаёт новый экземпляр класса DOMElement
    • DOMElement::getAttribute — Возвращает значение атрибута
    • DOMElement::getAttributeNames — Get attribute names
    • DOMElement::getAttributeNode — Возвращает узел атрибута
    • DOMElement::getAttributeNodeNS — Возвращает узел атрибута
    • DOMElement::getAttributeNS — Возвращает значение атрибута
    • DOMElement::getElementsByTagName — Возвращает элементы по имени тега
    • DOMElement::getElementsByTagNameNS — Получение элементов по локальному имени в заданном пространстве имён
    • DOMElement::hasAttribute — Проверяет, существует ли атрибут
    • DOMElement::hasAttributeNS — Проверяет, существует ли заданный атрибут
    • DOMElement::insertAdjacentElement — Insert adjacent element
    • DOMElement::insertAdjacentText — Insert adjacent text
    • DOMElement::prepend — Prepends nodes before the first child node
    • DOMElement::remove — Removes the element
    • DOMElement::removeAttribute — Удаляет атрибут
    • DOMElement::removeAttributeNode — Удаляет атрибут
    • DOMElement::removeAttributeNS — Удаляет атрибут
    • DOMElement::replaceChildren — Replace children in element
    • DOMElement::replaceWith — Replaces the element with new nodes
    • DOMElement::setAttribute — Добавляет новый или изменяет существующий атрибут
    • DOMElement::setAttributeNode — Добавляет новый узел атрибута в элемент
    • DOMElement::setAttributeNodeNS — Добавляет новый атрибут в элемент
    • DOMElement::setAttributeNS — Добавляет новый атрибут
    • DOMElement::setIdAttribute — Объявляет атрибут, указанный именем, с идентификатором типа
    • DOMElement::setIdAttributeNode — Объявляет атрибут, указанный узлом, с идентификатором типа
    • DOMElement::setIdAttributeNS — Объявляет атрибут, указанный локальным именем и URI пространства имён, с идентификатором типа
    • DOMElement::toggleAttribute — Toggle attribute
  • 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::getIterator — Retrieve an external iterator
    • DOMNamedNodeMap::getNamedItem — Получает узел, указанный по имени
    • DOMNamedNodeMap::getNamedItemNS — Получает узел с заданным локальным именем и URI пространства имён
    • DOMNamedNodeMap::item — Получает узел с заданным индексом
  • DOMNode — Класс DOMNode
    • DOMNode::appendChild — Добавляет новый дочерний узел в конец списка потомков
    • DOMNode::C14N — Канонизировать узлы в строку
    • DOMNode::C14NFile — Канонизировать узлы в файл
    • DOMNode::cloneNode — Клонирует узел
    • DOMNode::contains — Checks if node contains other node
    • DOMNode::getLineNo — Получить номер строки узла
    • DOMNode::getNodePath — Получение XPath узла
    • DOMNode::getRootNode — Get root node
    • DOMNode::hasAttributes — Проверяет, имеет ли данный узел атрибуты
    • DOMNode::hasChildNodes — Проверяет, имеет ли данный узел потомков
    • DOMNode::insertBefore — Добавляет новый дочерний узел перед указанным узлом
    • DOMNode::isDefaultNamespace — Проверяет, является ли указанный URI пространства имён узла пространством имён по умолчанию или нет
    • DOMNode::isEqualNode — Checks that both nodes are equal
    • DOMNode::isSameNode — Указывает, являются ли два узла одним и тем же узлом
    • DOMNode::isSupported — Проверяет, поддерживается ли возможность в определённой версии
    • DOMNode::lookupNamespaceURI — Получает URI пространства имён узла по префиксу
    • DOMNode::lookupPrefix — Возвращает префикс пространства имён узла из URI пространства имён
    • DOMNode::normalize — Нормализует узел
    • DOMNode::removeChild — Удаляет дочерний узел из списка потомков
    • DOMNode::replaceChild — Заменяет дочерний узел
  • DOMNodeList — Класс DOMNodeList
    • DOMNodeList::count — Получить количество узлов в списке
    • DOMNodeList::getIterator — Retrieve an external iterator
    • DOMNodeList::item — Получает узел с заданным индексом
  • DOMNotation — Класс DOMNotation
  • DOMParentNode — Интерфейс DOMParentNode
    • DOMParentNode::append — Добавляет узлы после последнего дочернего узла
    • DOMParentNode::prepend — Добавляет узлы перед первым дочерним узлом
    • DOMParentNode::replaceChildren — Replace children in node
  • 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. Используйте mb_convert_encoding(), UConverter::transcode() или iconv() для работы с другими кодировками.


Установка

Модуль включён по умолчанию. Он может быть отключён во время выполнения с помощью следующей опции: --disable-dom


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

XML константы
Константа | Значение | Описание
XML_ELEMENT_NODE (int) | 1 | Узел класса DOMElement
XML_ATTRIBUTE_NODE (int) | 2 | Узел класса DOMAttr
XML_TEXT_NODE (int) | 3 | Узел класса DOMText
XML_CDATA_SECTION_NODE (int) | 4 | Узел класса DOMCharacterData
XML_ENTITY_REF_NODE (int) | 5 | Узел класса DOMEntityReference
XML_ENTITY_NODE (int) | 6 | Узел класса DOMEntity
XML_PI_NODE (int) | 7 | Узел класса DOMProcessingInstruction
XML_COMMENT_NODE (int) | 8 | Узел класса DOMComment
XML_DOCUMENT_NODE (int) | 9 | Узел класса DOMDocument
XML_DOCUMENT_TYPE_NODE (int) | 10 | Узел класса DOMDocumentType
XML_DOCUMENT_FRAG_NODE (int) | 11 | Узел класса DOMDocumentFragment
XML_NOTATION_NODE (int) | 12 | Узел класса DOMNotation
XML_HTML_DOCUMENT_NODE (int) | 13 |
XML_DTD_NODE (int) | 14 |
XML_ELEMENT_DECL_NODE (int) | 15 |
XML_ATTRIBUTE_DECL_NODE (int) | 16 |
XML_ENTITY_DECL_NODE (int) | 17 |
XML_NAMESPACE_DECL_NODE (int) | 18 |
XML_ATTRIBUTE_CDATA (int) | 1 |
XML_ATTRIBUTE_ID (int) | 2 |
XML_ATTRIBUTE_IDREF (int) | 3 |
XML_ATTRIBUTE_IDREFS (int) | 4 |
XML_ATTRIBUTE_ENTITY (int) | 5 |
XML_ATTRIBUTE_NMTOKEN (int) | 7 |
XML_ATTRIBUTE_NMTOKENS (int) | 8 |
XML_ATTRIBUTE_ENUMERATION (int) | 9 |
XML_ATTRIBUTE_NOTATION (int) | 10 |
Константы DOMException
Константа | Значение | Описание
DOM_PHP_ERR (int) | 0 | Этот код ошибки не является частью спецификации DOM. Предназначена для ошибок PHP.
DOM_INDEX_SIZE_ERR (int) | 1 | Если индекс или размер отрицательный или выходит за пределы возможных значений.
DOMSTRING_SIZE_ERR (int) | 2 | Если указанный фрагмент текста не помещается в DOMString.
DOM_HIERARCHY_REQUEST_ERR (int) | 3 | Если невозможно вставить узел
DOM_WRONG_DOCUMENT_ERR (int) | 4 | Если узел используется в другом документе, а не в том, где он был создан.
DOM_INVALID_CHARACTER_ERR (int) | 5 | Если указан недопустимый символ, например, в имени.
DOM_NO_DATA_ALLOWED_ERR (int) | 6 | Если данные, указанные для узла, не поддерживаются.
DOM_NO_MODIFICATION_ALLOWED_ERR (int) | 7 | Если происходит попытка изменить объект, который не поддерживает изменения.
DOM_NOT_FOUND_ERR (int) | 8 | Если делается попытка ссылаться на узел в контексте, которого не существует
DOM_NOT_SUPPORTED_ERR (int) | 9 | Если реализация не поддерживает запрошенный тип объекта или операции.
DOM_INUSE_ATTRIBUTE_ERR (int) | 10 | Если пытаться добавить атрибут, который используется в другом месте.
DOM_INVALID_STATE_ERR (int) | 11 | Если пытаться использовать объект, которого нет или невозможно использовать.
DOM_SYNTAX_ERR (int) | 12 | Если используется неверная строка.
DOM_INVALID_MODIFICATION_ERR (int) | 13 | Если пытаться изменить тип базовому объекту.
DOM_NAMESPACE_ERR (int) | 14 | Если пытаться создать или изменить объект с некорректным пространством имён.
DOM_INVALID_ACCESS_ERR (int) | 15 | Если параметр или операция не поддерживается базовым объектом.
DOM_VALIDATION_ERR (int) | 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, PHP 8)

Введение

DOMAttr предоставляет атрибут в объекте DOMElement.

Обзор классов

class DOMAttr extends DOMNode {
/* Свойства */
public readonly string $name;
public readonly bool $specified = true;
public string $value;
public readonly ?DOMElement $ownerElement;
public readonly mixed $schemaTypeInfo = null;
/* Наследуемые свойства */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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(): bool
/* Наследуемые методы */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Свойства

name

Имя атрибута.

ownerElement

Элемент, который содержит атрибут или null.

schemaTypeInfo

Ещё не реализовано, возвращает null.

specified

Ещё не реализовано, возвращает null.

value

Значение атрибута.

Замечание:

Обратите внимание, что сущности XML расширяются при установке значения. Таким образом, символ & имеет особое значение. Установка value в само себя приведёт к ошибке, если value содержит символ &. Чтобы избежать расширения сущности, используйте вместо этого метод DOMElement::setAttribute().

Смотрите также

  • » Спецификация W3C для Attr

Содержание

  • DOMAttr::__construct — Создаёт экземпляр класса DOMAttr
  • DOMAttr::isId — Проверяет, является ли атрибут определённым идентификатором


Создаёт экземпляр класса DOMAttr

  • « DOMAttr
  • DOMAttr::isId »
  • PHP Manual
  • DOMAttr
  • Создаёт экземпляр класса DOMAttr

DOMAttr::__construct

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

DOMAttr::isId — Проверяет, является ли атрибут определённым идентификатором

Описание

public DOMAttr::isId(): 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, PHP 8)

Введение

Класс DOMCdataSection наследуется от DOMText для текстового представления конструкций CData.

Обзор классов

class DOMCdataSection extends DOMText {
/* Наследуемые свойства */
public readonly string $wholeText;
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 $data)
/* Наследуемые методы */
public DOMText::isElementContentWhitespace(): bool
public DOMText::isWhitespaceInElementContent(): bool
public DOMText::splitText(int $offset): DOMText|false
public DOMCharacterData::after(DOMNode|string ...$nodes): void
public DOMCharacterData::appendData(string $data): true
public DOMCharacterData::before(DOMNode|string ...$nodes): void
public DOMCharacterData::deleteData(int $offset, int $count): bool
public DOMCharacterData::insertData(int $offset, string $data): bool
public DOMCharacterData::remove(): void
public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void
public DOMCharacterData::substringData(int $offset, int $count): string|false
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Содержание

  • DOMCdataSection::__construct — Создаёт новый экземпляр класса DOMCdataSection


Создаёт новый экземпляр класса DOMCdataSection

  • « DOMCdataSection
  • DOMCharacterData »
  • PHP Manual
  • DOMCdataSection
  • Создаёт новый экземпляр класса DOMCdataSection

DOMCdataSection::__construct

(PHP 5, PHP 7, PHP 8)

DOMCdataSection::__construct — Создаёт новый экземпляр класса DOMCdataSection

Описание

public DOMCdataSection::__construct(string $data)

Создаёт новый узел CDATA. Работает как класс DOMText.

Список параметров

data

Значение узла 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, PHP 8)

Введение

Представляет узлы с символьными данными. Нельзя создать узел из этого класса напрямую, узлы создаются из наследуемых от него классов.

Обзор классов

class DOMCharacterData extends DOMNode implements DOMChildNode {
/* Свойства */
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
/* Наследуемые свойства */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Методы */
public after(DOMNode|string ...$nodes): void
public appendData(string $data): true
public before(DOMNode|string ...$nodes): void
public deleteData(int $offset, int $count): bool
public insertData(int $offset, string $data): bool
public remove(): void
public replaceData(int $offset, int $count, string $data): bool
public replaceWith(DOMNode|string ...$nodes): void
public substringData(int $offset, int $count): string|false
/* Наследуемые методы */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Свойства

data

Содержимое узла.

length

Длина содержимого.

nextElementSibling

Элемент непосредственно следующий за данным элементом или null.

previousElementSibling

Элемент предшествующий элементу или null.

Список изменений

Версия | Описание
8.0.0 | Добавлены свойства nextElementSibling и previousElementSibling.
8.0.0 | Класс DOMCharacterData теперь реализует интерфейс DOMChildNode.

Смотрите также

  • » Спецификация W3C символьных данных

Содержание

  • DOMCharacterData::after — Adds nodes after the character data
  • DOMCharacterData::appendData — Добавить строку в конец символьных данных узла
  • DOMCharacterData::before — Adds nodes before the node
  • DOMCharacterData::deleteData — Удалить диапазон символов из узла
  • DOMCharacterData::insertData — Вставить строку в указанную 16-битную позицию
  • DOMCharacterData::remove — Removes the character data
  • DOMCharacterData::replaceData — Заменить подстроку в узле типа DOMCharacterData
  • DOMCharacterData::replaceWith — Replaces the character data with new nodes
  • DOMCharacterData::substringData — Извлекает определённый диапазон данных из узла


Adds nodes after the character data

  • « DOMCharacterData
  • DOMCharacterData::appendData »
  • PHP Manual
  • DOMCharacterData
  • Adds nodes after the character data

DOMCharacterData::after

(PHP 8)

DOMCharacterData::after — Adds nodes after the character data

Описание

public DOMCharacterData::after(DOMNode|string ...$nodes): void

Adds the passed nodes after the element.

Список параметров

nodes

Узлы, которые необходимо добавить после узла. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе родительского узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле, у которого нет родительского узла, теперь ничего не делает, чтобы привести поведение в соответствие со спецификацией DOM. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
8.3.0 | Вызов этого метода на узле без документа владельца теперь работает. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMCharacterData::after() example

Adds nodes after the character data.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[hello]]></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->after("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<container><![CDATA[hello]]>beautiful<world/></container>

Смотрите также

  • DOMChildNode::after() - Добавляет узлы после узла
  • DOMCharacterData::before() - Adds nodes before the node


Добавить строку в конец символьных данных узла

  • « DOMCharacterData::after
  • DOMCharacterData::before »
  • PHP Manual
  • DOMCharacterData
  • Добавить строку в конец символьных данных узла

DOMCharacterData::appendData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::appendData — Добавить строку в конец символьных данных узла

Описание

public DOMCharacterData::appendData(string $data): true

Добавить строку data в конец символьных данных узла.

Список параметров

data

Добавляемая строка.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.3.0 | Теперь у этой функции есть предварительный логический (true) тип возвращаемого значения.

Смотрите также

  • DOMCharacterData::deleteData() - Удалить диапазон символов из узла
  • DOMCharacterData::insertData() - Вставить строку в указанную 16-битную позицию
  • DOMCharacterData::replaceData() - Заменить подстроку в узле типа DOMCharacterData
  • DOMCharacterData::substringData() - Извлекает определённый диапазон данных из узла


Adds nodes before the node

  • « DOMCharacterData::appendData
  • DOMCharacterData::deleteData »
  • PHP Manual
  • DOMCharacterData
  • Adds nodes before the node

DOMCharacterData::before

(PHP 8)

DOMCharacterData::before — Adds nodes before the node

Описание

public DOMCharacterData::before(DOMNode|string ...$nodes): void

Adds the passed nodes before the node.

Список параметров

nodes

Узлы, которые необходимо добавить перед узлом. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе родительского узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле, у которого нет родительского узла, теперь ничего не делает, чтобы привести поведение в соответствие со спецификацией DOM. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMCharacterData::before() example

Adds nodes before the character data.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[world]]></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->before("hello", $doc->createElement("beautiful"));

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<container>hello<beautiful/><![CDATA[world]]></container>

Смотрите также

  • DOMChildNode::before() - Добавляет узлы перед узлом
  • DOMCharacterData::after() - Adds nodes after the character data


Удалить диапазон символов из узла

  • « DOMCharacterData::before
  • DOMCharacterData::insertData »
  • PHP Manual
  • DOMCharacterData
  • Удалить диапазон символов из узла

DOMCharacterData::deleteData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::deleteData — Удалить диапазон символов из узла

Описание

public DOMCharacterData::deleteData(int $offset, int $count): bool

Удаляет count символов, начиная с позиции offset.

Список параметров

offset

Позиция, с которой будут удаляться символы.

count

Количество удаляемых символов. Если offset и count в сумме окажется больше значения длины, будут удалены все символы до конца данных.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

DOM_INDEX_SIZE_ERR

Возникает, если offset меньше нуля или больше количества 16-битных блоков в данных, либо если count имеет отрицательное значение.

Смотрите также

  • DOMCharacterData::appendData() - Добавить строку в конец символьных данных узла
  • DOMCharacterData::insertData() - Вставить строку в указанную 16-битную позицию
  • DOMCharacterData::replaceData() - Заменить подстроку в узле типа DOMCharacterData
  • DOMCharacterData::substringData() - Извлекает определённый диапазон данных из узла


Вставить строку в указанную 16-битную позицию

  • « DOMCharacterData::deleteData
  • DOMCharacterData::remove »
  • PHP Manual
  • DOMCharacterData
  • Вставить строку в указанную 16-битную позицию

DOMCharacterData::insertData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::insertData — Вставить строку в указанную 16-битную позицию

Описание

public DOMCharacterData::insertData(int $offset, string $data): bool

Вставляет строку data в позицию offset.

Список параметров

offset

Позиция символа, начиная с которого будет вставлена строка.

data

Вставляемая строка.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

DOM_INDEX_SIZE_ERR

Возникает, если offset меньше нуля или больше количества 16-битных блоков в данных.

Смотрите также

  • DOMCharacterData::appendData() - Добавить строку в конец символьных данных узла
  • DOMCharacterData::deleteData() - Удалить диапазон символов из узла
  • DOMCharacterData::replaceData() - Заменить подстроку в узле типа DOMCharacterData
  • DOMCharacterData::substringData() - Извлекает определённый диапазон данных из узла


Removes the character data

  • « DOMCharacterData::insertData
  • DOMCharacterData::replaceData »
  • PHP Manual
  • DOMCharacterData
  • Removes the character data

DOMCharacterData::remove

(PHP 8)

DOMCharacterData::remove — Removes the character data

Описание

public DOMCharacterData::remove(): void

Removes the character data.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 DOMCharacterData::remove() example

Removes the character data.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[hello]]><world/></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->remove();

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<container><world/></container>

Смотрите также

  • DOMChildNode::remove() - Удаляет узел
  • DOMCharacterData::after() - Adds nodes after the character data
  • DOMCharacterData::before() - Adds nodes before the node
  • DOMCharacterData::replaceWith() - Replaces the character data with new nodes
  • DOMNode::removeChild() - Удаляет дочерний узел из списка потомков


Заменить подстроку в узле типа DOMCharacterData

  • « DOMCharacterData::remove
  • DOMCharacterData::replaceWith »
  • PHP Manual
  • DOMCharacterData
  • Заменить подстроку в узле типа DOMCharacterData

DOMCharacterData::replaceData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::replaceData — Заменить подстроку в узле типа DOMCharacterData

Описание

public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool

Заменяет count символов, начиная с позиции offset, на строку data.

Список параметров

offset

Позиция, с которой начинается замена.

count

Количество символов для замены. Если offset и count в сумме превышают длину строки данных, будут заменены все символы до конца данных.

data

Строка, на которую будет производиться замена.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

DOM_INDEX_SIZE_ERR

Возникает, если offset меньше нуля или больше количества 16-битных блоков в области данных, либо если count имеет отрицательное значение.

Смотрите также

  • DOMCharacterData::appendData() - Добавить строку в конец символьных данных узла
  • DOMCharacterData::deleteData() - Удалить диапазон символов из узла
  • DOMCharacterData::insertData() - Вставить строку в указанную 16-битную позицию
  • DOMCharacterData::substringData() - Извлекает определённый диапазон данных из узла


Replaces the character data with new nodes

  • « DOMCharacterData::replaceData
  • DOMCharacterData::substringData »
  • PHP Manual
  • DOMCharacterData
  • Replaces the character data with new nodes

DOMCharacterData::replaceWith

(PHP 8)

DOMCharacterData::replaceWith — Replaces the character data with new nodes

Описание

public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void

Replaces the character data with new nodes.

Список параметров

nodes

Узлы, которыми необходимо заменить узел.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 DOMCharacterData::replaceWith() example

Replaces the character data with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[hello]]></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<container>beautiful<world/></container>

Смотрите также

  • DOMChildNode::replaceWith() - Заменяет узел новыми узлами
  • DOMCharacterData::after() - Adds nodes after the character data
  • DOMCharacterData::before() - Adds nodes before the node
  • DOMCharacterData::remove() - Removes the character data


Извлекает определённый диапазон данных из узла

  • « DOMCharacterData::replaceWith
  • DOMChildNode »
  • PHP Manual
  • DOMCharacterData
  • Извлекает определённый диапазон данных из узла

DOMCharacterData::substringData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::substringData — Извлекает определённый диапазон данных из узла

Описание

public DOMCharacterData::substringData(int $offset, int $count): string|false

Возвращает указанную подстроку.

Список параметров

offset

Начало позиции извлекаемой подстроки.

count

Количество извлекаемых символов.

Возвращаемые значения

Указанная подстрока. Если offset и count в сумме превышают длину строки данных узла, будут извлечены все символы до конца строки.

Ошибки

DOM_INDEX_SIZE_ERR

Возникает, если offset меньше нуля или больше количества 16-битных блоков в области данных, либо если count имеет отрицательное значение.

Смотрите также

  • DOMCharacterData::appendData() - Добавить строку в конец символьных данных узла
  • DOMCharacterData::deleteData() - Удалить диапазон символов из узла
  • DOMCharacterData::insertData() - Вставить строку в указанную 16-битную позицию
  • DOMCharacterData::replaceData() - Заменить подстроку в узле типа DOMCharacterData


Интерфейс DOMChildNode

(PHP 8)

Обзор интерфейсов

interface DOMChildNode {
/* Методы */
public after(DOMNode|string ...$nodes): void
public before(DOMNode|string ...$nodes): void
public remove(): void
public replaceWith(DOMNode|string ...$nodes): void
}

Содержание

  • DOMChildNode::after — Добавляет узлы после узла
  • DOMChildNode::before — Добавляет узлы перед узлом
  • DOMChildNode::remove — Удаляет узел
  • DOMChildNode::replaceWith — Заменяет узел новыми узлами


Добавляет узлы после узла

  • « DOMChildNode
  • DOMChildNode::before »
  • PHP Manual
  • DOMChildNode
  • Добавляет узлы после узла

DOMChildNode::after

(PHP 8)

DOMChildNode::after — Добавляет узлы после узла

Описание

public DOMChildNode::after(DOMNode|string ...$nodes): void

Добавляет переданные nodes после узла.

Список параметров

nodes

Узлы, которые необходимо добавить после узла. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе родительского узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле, у которого нет родительского узла, теперь ничего не делает, чтобы привести поведение в соответствие со спецификацией DOM. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
8.3.0 | Вызов этого метода на узле без документа владельца теперь работает. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Смотрите также

  • DOMChildNode::before() - Добавляет узлы перед узлом
  • DOMChildNode::remove() - Удаляет узел
  • DOMChildNode::replaceWith() - Заменяет узел новыми узлами
  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков


Добавляет узлы перед узлом

  • « DOMChildNode::after
  • DOMChildNode::remove »
  • PHP Manual
  • DOMChildNode
  • Добавляет узлы перед узлом

DOMChildNode::before

(PHP 8)

DOMChildNode::before — Добавляет узлы перед узлом

Описание

public DOMChildNode::before(DOMNode|string ...$nodes): void

Добавляет переданные nodes перед узлом.

Список параметров

nodes

Узлы, которые необходимо добавить перед узлом. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе родительского узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле, у которого нет родительского узла, теперь ничего не делает, чтобы привести поведение в соответствие со спецификацией DOM. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Смотрите также

  • DOMChildNode::after() - Добавляет узлы после узла
  • DOMChildNode::remove() - Удаляет узел
  • DOMChildNode::replaceWith() - Заменяет узел новыми узлами


Удаляет узел

  • « DOMChildNode::before
  • DOMChildNode::replaceWith »
  • PHP Manual
  • DOMChildNode
  • Удаляет узел

DOMChildNode::remove

(PHP 8)

DOMChildNode::remove — Удаляет узел

Описание

public DOMChildNode::remove(): void

Удаляет узел.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • DOMChildNode::after() - Добавляет узлы после узла
  • DOMChildNode::before() - Добавляет узлы перед узлом
  • DOMChildNode::replaceWith() - Заменяет узел новыми узлами
  • DOMNode::removeChild() - Удаляет дочерний узел из списка потомков


Заменяет узел новыми узлами

  • « DOMChildNode::remove
  • DOMComment »
  • PHP Manual
  • DOMChildNode
  • Заменяет узел новыми узлами

DOMChildNode::replaceWith

(PHP 8)

DOMChildNode::replaceWith — Заменяет узел новыми узлами

Описание

public DOMChildNode::replaceWith(DOMNode|string ...$nodes): void

Заменяет узел новыми переданными nodes. Сочетание метода DOMChildNode::remove() и DOMChildNode::append().

Список параметров

nodes

Узлы, которыми необходимо заменить узел.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • DOMChildNode::after() - Добавляет узлы после узла
  • DOMChildNode::before() - Добавляет узлы перед узлом
  • DOMChildNode::remove() - Удаляет узел
  • DOMNode::replaceChild() - Заменяет дочерний узел


Класс DOMComment

(PHP 5, PHP 7, PHP 8)

Введение

Представляет узлы комментариев, символы, помеченные <!-- и -->.

Обзор классов

class DOMComment extends DOMCharacterData {
/* Наследуемые свойства */
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 $data = "")
/* Наследуемые методы */
public DOMCharacterData::after(DOMNode|string ...$nodes): void
public DOMCharacterData::appendData(string $data): true
public DOMCharacterData::before(DOMNode|string ...$nodes): void
public DOMCharacterData::deleteData(int $offset, int $count): bool
public DOMCharacterData::insertData(int $offset, string $data): bool
public DOMCharacterData::remove(): void
public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void
public DOMCharacterData::substringData(int $offset, int $count): string|false
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Смотрите также

  • » Спецификация W3C комментариев

Содержание

  • DOMComment::__construct — Создаёт новый экземпляр класса DOMComment


Создаёт новый экземпляр класса DOMComment

  • « DOMComment
  • DOMDocument »
  • PHP Manual
  • DOMComment
  • Создаёт новый экземпляр класса DOMComment

DOMComment::__construct

(PHP 5, PHP 7, PHP 8)

DOMComment::__construct — Создаёт новый экземпляр класса DOMComment

Описание

public DOMComment::__construct(string $data = "")

Создаёт новый объект класса DOMComment. Объект будет доступен только для чтения. Его можно добавить к документу, но дополнительные узлы нельзя добавлять к объекту, пока он не будет присоединён к документу. Чтобы создать записываемый узел, используйте DOMDocument::createComment.

Список параметров

data

Значение комментария.

Примеры

Пример #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, PHP 8)

Введение

Представляет все содержимое HTML- или XML-документа; служит корнем дерева документа.

Обзор классов

class DOMDocument extends DOMNode implements DOMParentNode {
/* Свойства */
public readonly ?DOMDocumentType $doctype;
public readonly DOMImplementation $implementation;
public readonly ?DOMElement $documentElement;
public readonly ?string $actualEncoding;
public ?string $encoding;
public readonly ?string $xmlEncoding;
public bool $standalone;
public bool $xmlStandalone;
public ?string $version;
public ?string $xmlVersion;
public bool $strictErrorChecking;
public ?string $documentURI;
public readonly mixed $config;
public bool $formatOutput;
public bool $validateOnParse;
public bool $resolveExternals;
public bool $preserveWhiteSpace;
public bool $recover;
public bool $substituteEntities;
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
/* Наследуемые свойства */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 = "1.0", string $encoding = "")
public adoptNode(DOMNode $node): DOMNode|false
public append(DOMNode|string ...$nodes): void
public createAttribute(string $localName): DOMAttr|false
public createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false
public createCDATASection(string $data): DOMCdataSection|false
public createComment(string $data): DOMComment
public createDocumentFragment(): DOMDocumentFragment
public createElement(string $localName, string $value = ""): DOMElement|false
public createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false
public createEntityReference(string $name): DOMEntityReference|false
public createProcessingInstruction(string $target, string $data = ""): DOMProcessingInstruction|false
public createTextNode(string $data): DOMText
public getElementById(string $elementId): ?DOMElement
public getElementsByTagName(string $qualifiedName): DOMNodeList
public getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList
public importNode(DOMNode $node, bool $deep = false): DOMNode|false
public load(string $filename, int $options = 0): bool
public loadHTML(string $source, int $options = 0): bool
public loadHTMLFile(string $filename, int $options = 0): bool
public loadXML(string $source, int $options = 0): bool
public normalizeDocument(): void
public prepend(DOMNode|string ...$nodes): void
public registerNodeClass(string $baseClass, ?string $extendedClass): bool
public relaxNGValidate(string $filename): bool
public relaxNGValidateSource(string $source): bool
public replaceChildren(DOMNode|string ...$nodes): void
public save(string $filename, int $options = 0): int|false
public saveHTML(?DOMNode $node = null): string|false
public saveHTMLFile(string $filename): int|false
public saveXML(?DOMNode $node = null, int $options = 0): string|false
public schemaValidate(string $filename, int $flags = 0): bool
public schemaValidateSource(string $source, int $flags = 0): bool
public validate(): bool
public xinclude(int $options = 0): int|false
/* Наследуемые методы */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Свойства

actualEncoding

Устарело. Кодировка документа, является доступным только для чтения эквивалентом encoding.

childElementCount

Количество дочерних элементов.

config

Устарело. Конфигурация, используемая при вызове DOMDocument::normalizeDocument().

doctype

Объявление типа документа, соответствующее этому документу.

documentElement

Объект DOMElement, который является первым элементом документа. Если не найден, оценивается как null. Удобный атрибут, предоставляющий прямой доступ к дочернему узлу, как к элементу документа. null, если не существует.

documentURI

Расположение документа или null, если оно не определено.

encoding

Кодировка документа, как указано в объявлении XML. Этот атрибут отсутствует в последней спецификации DOM Level 3, но является единственным способом манипулирования кодировкой XML-документа в этой реализации.

firstElementChild

Первый дочерний элемент или null.

formatOutput

Форматирует вывод, добавляя отступы и дополнительные пробелы. Не работает, если документ был загружен с включённым параметром preserveWhitespace.

implementation

Объект класса DOMImplementation, обрабатывающий этот документ.

lastElementChild

Последний дочерний элемент или null.

preserveWhiteSpace

Указание не убирать лишние пробелы и отступы. По умолчанию true. Установка этого значения на false имеет тот же эффект, что и передача LIBXML_NOBLANKS в качестве option в DOMDocument::load() и т.д.

recover

Проприетарное свойство. Включает режим восстановления, то есть пытается разобрать некорректно составленные (non-well formed) документы. Этот атрибут не является частью спецификации DOM и специфичен для libxml.

resolveExternals

Установите в true для загрузки внешних элементов из объявления типа документа. Может быть полезным при включении элементов с символьными данными в XML-документ.

standalone

Устарело. Указание, что документ не зависит от других XML-документов. Это можно определить из XML-объявления. Свойство связано с xmlStandalone.

strictErrorChecking

Выбрасывает исключение DOMException в случае возникновения ошибок. По умолчанию true.

substituteEntities

Патентованное свойство. Указывает, заменять или нет элементы документа. Этот атрибут не является частью спецификации DOM и специфичен для libxml. По умолчанию false.

Предостережение

Включение замещения объекта может облегчить атаки на внешний объект XML (XXE).

validateOnParse

Загружает DTD и проверяет документ на соответствие. По умолчанию false.

Предостережение

Включение проверки DTD может способствовать атакам XML External Entity (XXE).

version

Устарело. Версия XML, соответствует xmlVersion.

xmlEncoding

Атрибут, определяющий, как часть XML-объявления, кодировку эту документа. Имеет значение null в случаях, когда атрибут не задан, либо значение неизвестно, если, например, документ создан в памяти.

xmlStandalone

Атрибут, определяющий, как часть XML-объявления, что документ является автономным. Принимает значение false, если не указан.

xmlVersion

Атрибут, определяющий, как часть XML-объявления, номер версии этого документа. Если объявления в документе нет, но есть поддержка всех особенностей "XML", значение равно "1.0".

Список изменений

Версия | Описание
8.0.0 | Класс DOMDocument теперь реализует интерфейс DOMParentNode.
8.0.0 | Нереализованный метод DOMDocument::renameNode() был удалён.

Примечания

Замечание:

Модуль DOM использует кодировку UTF-8. Используйте mb_convert_encoding(), UConverter::transcode() или iconv() для работы с другими кодировками.

Замечание:

При использовании json_encode() для объекта DOMDocument будет получен результат кодирования пустого объекта.

Смотрите также

  • » Спецификация W3C для Document

Содержание

  • DOMDocument::adoptNode — Transfer a node from another document
  • DOMDocument::append — Appends nodes after the last child node
  • 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::prepend — Prepends nodes before the first child node
  • DOMDocument::registerNodeClass — Регистрация расширенного класса, используемого для создания типа базового узла
  • DOMDocument::relaxNGValidate — Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::relaxNGValidateSource — Проверяет документ посредством relaxNG
  • DOMDocument::replaceChildren — Replace children in document
  • DOMDocument::save — Сохраняет XML-дерево из внутреннего представления в файл
  • DOMDocument::saveHTML — Сохраняет документ из внутреннего представления в строку, используя форматирование HTML
  • DOMDocument::saveHTMLFile — Сохраняет документ из внутреннего представления в файл, используя форматирование HTML
  • DOMDocument::saveXML — Сохраняет XML-дерево из внутреннего представления в виде строки
  • DOMDocument::schemaValidate — Проверяет действительность документа, основываясь на заданной схеме. Поддерживается только XML-схема 1.0.
  • DOMDocument::schemaValidateSource — Проверяет действительность документа, основываясь на схеме
  • DOMDocument::validate — Проверяет документ на соответствие его DTD
  • DOMDocument::xinclude — Проводит вставку XInclude в объекте DOMDocument


Transfer a node from another document

  • « DOMDocument
  • DOMDocument::append »
  • PHP Manual
  • DOMDocument
  • Transfer a node from another document

DOMDocument::adoptNode

(PHP >= 8.3)

DOMDocument::adoptNode — Transfer a node from another document

Описание

public DOMDocument::adoptNode(DOMNode $node): DOMNode|false

Transfer a node from another document into the current document.

Список параметров

node

The node to transfer.

Возвращаемые значения

The node that was transfered, or false on error.

Ошибки

DOM_NOT_SUPPORTED_ERR

Raised if the node type is not supported for document transfers.

Примеры

Пример #1 DOMDocument::adoptNode() example

Transfers the hello element from the first document to the second one.

<?php
$doc1 = new DOMDocument;
$doc1->loadXML("<container><hello><world/></hello></container>");
$hello = $doc1->documentElement->firstChild;

$doc2 = new DOMDocument;
$doc2->loadXML("<root/>");
$doc2->documentElement->appendChild($doc2->adoptNode($hello));

echo $doc1->saveXML() . PHP_EOL;
echo $doc2->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<container/>

<?xml version="1.0"?>
<root><hello><world/></hello></root>

Смотрите также

  • DOMDocument::importNode() - Импортировать узел в текущий документ


Appends nodes after the last child node

  • « DOMDocument::adoptNode
  • DOMDocument::__construct »
  • PHP Manual
  • DOMDocument
  • Appends nodes after the last child node

DOMDocument::append

(PHP 8)

DOMDocument::append — Appends nodes after the last child node

Описание

public DOMDocument::append(DOMNode|string ...$nodes): void

Appends one or many nodes to the list of children after the last child node.

Список параметров

nodes

Узлы, которые необходимо добавить. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле без документа владельца теперь работает. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMDocument::append() example

Adds nodes after the document root.

<?php
$doc = new DOMDocument;
$doc->loadXML("<hello/>");

$doc->append("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<hello/>
beautiful
<world/>

Смотрите также

  • DOMParentNode::append() - Добавляет узлы после последнего дочернего узла
  • DOMDocument::prepend() - Prepends nodes before the first child node


Создаёт новый объект DOMDocument

  • « DOMDocument::append
  • DOMDocument::createAttribute »
  • PHP Manual
  • DOMDocument
  • Создаёт новый объект DOMDocument

DOMDocument::__construct

(PHP 5, PHP 7, PHP 8)

DOMDocument::__construct — Создаёт новый объект DOMDocument

Описание

public DOMDocument::__construct(string $version = "1.0", 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, PHP 8)

DOMDocument::createAttribute — Создать новый атрибут

Описание

public DOMDocument::createAttribute(string $localName): DOMAttr|false

Эта функция создаёт новый объект класса DOMAttr. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

localName

Имя атрибута.

Возвращаемые значения

Новый объект DOMAttr либо false в случае возникновения ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если localName содержит недопустимые символы.

Смотрите также

  • 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, PHP 8)

DOMDocument::createAttributeNS — Создаёт новый атрибут узла с соответствующим пространством имён

Описание

public DOMDocument::createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false

Эта функция создаёт новый объект класса DOMAttr. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

namespace

URI пространства имён.

qualifiedName

Имя и префикс атрибута в виде prefix:tagname.

Возвращаемые значения

Новый экземпляр класса DOMAttr или false в случае ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если qualifiedName содержит недопустимые символы.

DOM_NAMESPACE_ERR

Возникает, если qualifiedName неправильно сформировано, либо если qualifiedName имеет префикс, а namespace имеет значение null.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода без указания префикса теперь выберет префикс, вместо того чтобы использовать пространство имен по умолчанию. Ранее это создавало атрибут без префикса и неверно применяло пространство имён к элементу-владельцу, поскольку пространства имен по умолчанию не применяются к атрибутам.
8.3.0 | Вызов этого метода с префиксом, который уже был объявлен на элементе-владельце с другим URI пространства имён, теперь изменит новый префикс, чтобы избежать создания конфликтов пространства имён. Это приводит поведение в соответствие со спецификацией DOM. Previously this threw a DOMException with code DOM_NAMESPACE_ERR.

Смотрите также

  • 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, PHP 8)

DOMDocument::createCDATASection — Создаёт новый узел cdata

Описание

public DOMDocument::createCDATASection(string $data): DOMCdataSection|false

Эта функция создаёт новый объект класса 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, PHP 8)

DOMDocument::createComment — Создать новый узел комментария

Описание

public DOMDocument::createComment(string $data): DOMComment

Эта функция создаёт новый экземпляр класса DOMComment. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

data

Содержимое комментария.

Возвращаемые значения

Новый объект класса DOMComment.

Список изменений

Версия | Описание
8.1.0 | В случае возникновения ошибки теперь выбрасывает исключение DomException. Ранее вместо этого возвращалось значение 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, PHP 8)

DOMDocument::createDocumentFragment — Создать новый фрагмент документа

Описание

public DOMDocument::createDocumentFragment(): DOMDocumentFragment

Эта функция создаёт новый экземпляр класса DOMDocumentFragment. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Новый объект класса DOMDocumentFragment.

Список изменений

Версия | Описание
8.1.0 | В случае возникновения ошибки теперь выбрасывает исключение DomException. Ранее вместо этого возвращалось значение 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, PHP 8)

DOMDocument::createElement — Создать новый узел элемента

Описание

public DOMDocument::createElement(string $localName, string $value = ""): DOMElement|false

Эта функция создаёт экземпляр класса DOMElement. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

localName

Имя тега элемента.

value

Значение элемента. По умолчанию будет создан пустой элемент. Значение может быть установлено позднее с помощью DOMElement::$nodeValue.

Значение используется дословно, за исключением < и >, которые будут экранированы. Обратите внимание, что & должен быть экранирован самостоятельно, в противном случае он будет рассматриваться как начало ссылки на сущность. Также " не будет экранирован.

Возвращаемые значения

Возвращает новый объект класса DOMElement или false в случае возникновения ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если localName содержит недопустимые символы.

Примеры

Пример #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, PHP 8)

DOMDocument::createElementNS — Создать новый узел элемента с соответствующим пространством имён

Описание

public DOMDocument::createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false

Эта функция создаёт новый узел-элемент с соответствующим пространством имён. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

namespace

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, PHP 8)

DOMDocument::createEntityReference — Создать новый узел ссылки на сущность

Описание

public DOMDocument::createEntityReference(string $name): DOMEntityReference|false

Эта функция создаёт экземпляр класса 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, PHP 8)

DOMDocument::createProcessingInstruction — Создать новый PI-узел

Описание

public DOMDocument::createProcessingInstruction(string $target, string $data = ""): DOMProcessingInstruction|false

Эта функция создаёт экземпляр класса 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, PHP 8)

DOMDocument::createTextNode — Создать новый текстовый узел

Описание

public DOMDocument::createTextNode(string $data): DOMText

Эта функция создаёт экземпляр класса DOMText. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

data

Содержимое узла.

Возвращаемые значения

Возвращает новый объект класса DOMText.

Список изменений

Версия | Описание
8.1.0 | В случае возникновения ошибки теперь выбрасывает исключение DomException. Ранее вместо этого возвращалось значение 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, PHP 8)

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, PHP 8)

DOMDocument::getElementsByTagName — Ищет все элементы с заданным локальным именем

Описание

public DOMDocument::getElementsByTagName(string $qualifiedName): DOMNodeList

Эта функция возвращает новый объект класса DOMNodeList, содержащий элементы с заданным локальным именем.

Список параметров

qualifiedName

Локальное имя (без пространства имён) тега, по которому будет проводиться поиск. Специальное значение * соответствует всем тегам.

Возвращаемые значения

Новый объект класса 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, PHP 8)

DOMDocument::getElementsByTagNameNS — Ищет все элементы с заданным именем в указанном пространстве имён

Описание

public DOMDocument::getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList

Возвращает объект DOMNodeList со всеми элементами с заданным локальным именем и URI пространства имён.

Список параметров

namespace

URI пространства имён. Специальное значение "*" соответствует всем пространствам имён. Передача null соответствует пустому пространству имён.

localName

Локальное имя искомых элементов. Специальное значение "*" соответствует всем локальным именам.

Возвращаемые значения

Новый объект класса DOMNodeList, содержащий все найденные элементы.

Список изменений

Версия | Описание
8.0.3 | namespace теперь допускает значение null.

Примеры

Пример #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, PHP 8)

DOMDocument::importNode — Импортировать узел в текущий документ

Описание

public DOMDocument::importNode(DOMNode $node, bool $deep = false): DOMNode|false

Эта функция возвращает копию импортируемого узла и связывает её с текущим документом.

Список параметров

node

Узел для импорта.

deep

Если установлено значение true, этот метод будет рекурсивно импортировать поддерево узла node.

Замечание:

Чтобы скопировались атрибуты узла, 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, PHP 8)

DOMDocument::load — Загрузка XML из файла

Описание

public DOMDocument::load(string $filename, int $options = 0): bool

Загружает XML-документ из файла.

Внимание

Пути к файлам в стиле Unix с прямыми слешами могут отрицательно сказаться на работоспособности скриптов в среде Windows; используйте функцию realpath() для исключения подобных ситуаций.

Список параметров

filename

Путь к XML-документу.

options

Побитовое ИЛИ констант опций libxml.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если через аргумент filename передана пустая строка или файл ничего не содержит, будет сгенерировано предупреждение. Это предупреждение генерируется не libxml, поэтому оно не может быть обработано обработчиками ошибок библиотеки libxml.

Список изменений

Версия | Описание
8.3.0 | Теперь функция имеет предварительный логический (bool) тип возвращаемого значения.
8.0.0 | При статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.

Примеры

Пример #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, PHP 8)

DOMDocument::loadHTML — Загрузка HTML из строки

Описание

public DOMDocument::loadHTML(string $source, int $options = 0): bool

Функция разбирает HTML, содержащийся в строке source. В отличие от загрузки XML, HTML не обязан быть правильно построен для загрузки.

Внимание

Эта функция анализирует входные данные, используя синтаксический анализатор HTML 4. В браузеры встроен синтаксический анализатор HTML 5, у которого другие правила анализа. Какая структура DOM будет сформирована — зависит от входных данных. Поэтому эту функцию нельзя использовать для безопасной очистки HTML.

Например, некоторые HTML-элементы будут неявно закрывать родительский элемент. Правила для автоматического закрытия родительских элементов у HTML 4 и HTML 5 разные, поэтому результирующая структура DOM, которую видит объект класса DOMDocument может отличаться от структуры DOM, которую видит веб-браузер, что дает возможность злоумышленнику сломать результирующий HTML.

Список параметров

source

HTML-строка.

options

Побитовое ИЛИ (OR) констант опций libxml.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если через аргумент source передана пустая строка, будет сгенерировано предупреждение. Это предупреждение генерируется не libxml, поэтому оно не может быть обработано функциями обработки ошибок libxml.

Несмотря на то, что некорректный HTML обычно успешно загружается, данная функция может генерировать ошибки уровня E_WARNING при обнаружении плохой разметки. Для обработки данных ошибок можно воспользоваться функциями обработки ошибок libxml.

Список изменений

Версия | Описание
8.3.0 | Теперь функция имеет предварительный логический (bool) тип возвращаемого значения.
8.0.0 | При статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.

Примеры

Пример #1 Создание документа

<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>

Смотрите также

  • DOMDocument::loadHTMLFile() - Загрузка HTML из файла
  • DOMDocument::saveHTML() - Сохраняет документ из внутреннего представления в строку, используя форматирование HTML
  • DOMDocument::saveHTMLFile() - Сохраняет документ из внутреннего представления в файл, используя форматирование HTML


Загрузка HTML из файла

  • « DOMDocument::loadHTML
  • DOMDocument::loadXML »
  • PHP Manual
  • DOMDocument
  • Загрузка HTML из файла

DOMDocument::loadHTMLFile

(PHP 5, PHP 7, PHP 8)

DOMDocument::loadHTMLFile — Загрузка HTML из файла

Описание

public DOMDocument::loadHTMLFile(string $filename, int $options = 0): bool

Функция разбирает HTML-документ из файла filename. В отличие от загрузки XML, HTML не обязан быть правильно построен для загрузки.

Внимание

Эта функция анализирует входные данные, используя синтаксический анализатор HTML 4. В браузеры встроен синтаксический анализатор HTML 5, у которого другие правила анализа. Какая структура DOM будет сформирована — зависит от входных данных. Поэтому эту функцию нельзя использовать для безопасной очистки HTML.

Например, некоторые HTML-элементы будут неявно закрывать родительский элемент. Правила для автоматического закрытия родительских элементов у HTML 4 и HTML 5 разные, поэтому результирующая структура DOM, которую видит объект класса DOMDocument может отличаться от структуры DOM, которую видит веб-браузер, что дает возможность злоумышленнику сломать результирующий HTML.

Список параметров

filename

Путь к HTML-файлу.

options

Побитовое ИЛИ (OR) констант опций libxml.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если через аргумент filename передана пустая строка или файл ничего не содержит, будет сгенерировано предупреждение. Это предупреждение генерируется не libxml, поэтому оно не может быть обработано функциями обработки ошибок libxml.

Несмотря на то, что некорректный HTML обычно успешно загружается, данная функция может генерировать ошибки уровня E_WARNING при обнаружении плохой разметки. Для обработки данных ошибок можно воспользоваться функциями обработки ошибок libxml.

Список изменений

Версия | Описание
8.3.0 | Теперь функция имеет предварительный логический (bool) тип возвращаемого значения.
8.0.0 | При статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.

Примеры

Пример #1 Создание документа

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
echo $doc->saveHTML();
?>

Смотрите также

  • DOMDocument::loadHTML() - Загрузка HTML из строки
  • DOMDocument::saveHTML() - Сохраняет документ из внутреннего представления в строку, используя форматирование HTML
  • DOMDocument::saveHTMLFile() - Сохраняет документ из внутреннего представления в файл, используя форматирование HTML


Загрузка XML из строки

  • « DOMDocument::loadHTMLFile
  • DOMDocument::normalizeDocument »
  • PHP Manual
  • DOMDocument
  • Загрузка XML из строки

DOMDocument::loadXML

(PHP 5, PHP 7, PHP 8)

DOMDocument::loadXML — Загрузка XML из строки

Описание

public DOMDocument::loadXML(string $source, int $options = 0): bool

Загружает XML-документ из строки.

Список параметров

source

Содержащая XML-строка.

options

Побитовое ИЛИ констант опций libxml.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

Если через аргумент source передана пустая строка, будет сгенерировано предупреждение. Это предупреждение генерируется не libxml, поэтому оно не может быть обработано функциями обработки ошибок libxml.

Список изменений

Версия | Описание
8.3.0 | Теперь функция имеет предварительный логический (bool) тип возвращаемого значения.
8.0.0 | При статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.

Примеры

Пример #1 Создание документа

<?php
$doc = new DOMDocument();
$doc->loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Смотрите также

  • DOMDocument::load() - Загрузка XML из файла
  • DOMDocument::save() - Сохраняет XML-дерево из внутреннего представления в файл
  • DOMDocument::saveXML() - Сохраняет XML-дерево из внутреннего представления в виде строки


Нормализует документ

  • « DOMDocument::loadXML
  • DOMDocument::prepend »
  • PHP Manual
  • DOMDocument
  • Нормализует документ

DOMDocument::normalizeDocument

(PHP 5, PHP 7, PHP 8)

DOMDocument::normalizeDocument — Нормализует документ

Описание

public DOMDocument::normalizeDocument(): void

Этот метод выполняет те же действия, как если бы вы сохранили и затем загрузили документ, приводит документ к "нормальной" форме.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • » Спецификация DOM
  • DOMNode::normalize() - Нормализует узел


Prepends nodes before the first child node

  • « DOMDocument::normalizeDocument
  • DOMDocument::registerNodeClass »
  • PHP Manual
  • DOMDocument
  • Prepends nodes before the first child node

DOMDocument::prepend

(PHP 8)

DOMDocument::prepend — Prepends nodes before the first child node

Описание

public DOMDocument::prepend(DOMNode|string ...$nodes): void

Prepends one or many nodes to the list of children before the first child node.

Список параметров

nodes

Узлы, которые необходимо добавить. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле без документа владельца теперь работает. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMDocument::prepend() example

Adds nodes before the document root.

<?php
$doc = new DOMDocument;
$doc->loadXML("<world/>");

$doc->prepend($doc->createElement("hello"), "beautiful");

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<hello/>
beautiful
<world/>

Смотрите также

  • DOMParentNode::prepend() - Добавляет узлы перед первым дочерним узлом
  • DOMDocument::append() - Appends nodes after the last child node


Регистрация расширенного класса, используемого для создания типа базового узла

  • « DOMDocument::prepend
  • DOMDocument::relaxNGValidate »
  • PHP Manual
  • DOMDocument
  • Регистрация расширенного класса, используемого для создания типа базового узла

DOMDocument::registerNodeClass

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMDocument::registerNodeClass — Регистрация расширенного класса, используемого для создания типа базового узла

Описание

public DOMDocument::registerNodeClass(string $baseClass, ?string $extendedClass): bool

Этот метод позволяет зарегистрировать свой собственный расширенный класс DOM, который будет использоваться впоследствии модулем PHP DOM.

Этот метод не является частью стандарта DOM.

Предостережение

Конструктор объектов зарегистрированных классов узлов не вызывается.

Список параметров

baseClass

Класс DOM, который вы хотите расширить. Список таких классов можно увидеть во введении.

extendedClass

Имя расширенного класса. Если передать null, будут удалены все ранее зарегистрированные классы, расширяющие базовый класс baseClass.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #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. По этой причине вы можете использовать функцию 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
unset($doc);

// И создаём новый экземпляр DOMDocument
var_dump(get_class($child->ownerDocument));

// Импортируем узел из MyDOMDocument
$newdoc = new MyOtherDOMDocument;
$child = $newdoc->importNode($child);

// Регистрируем пользовательский DOMDocument
$newdoc->registerNodeClass("DOMDocument", "MyOtherDOMDocument");

var_dump(get_class($child->ownerDocument));
unset($doc);

// Новый владелец узла изменился на MyOtherDOMDocument
var_dump(get_class($child->ownerDocument));
?>

Результат выполнения данного примера:

string(13) "MyDOMDocument"
string(11) "DOMDocument"
string(18) "MyOtherDOMDocument"
string(18) "MyOtherDOMDocument"

Пример #4 Пользовательские объекты временны

Предостережение

Объекты зарегистрированных классов узлов являются временными, т.е. они уничтожаются, когда на них больше не ссылаются из кода PHP и воссоздаются при повторном извлечении. Это означает, что значения настраиваемых свойств будут потеряны после восстановления.

<?php
class MyDOMElement extends DOMElement
{
public $myProp = 'значение по умолчанию';
}

$doc = new DOMDocument();
$doc->registerNodeClass('DOMElement', 'MyDOMElement');

$node = $doc->createElement('a');
$node->myProp = 'изменённое значение';
$doc->appendChild($node);

echo $doc->childNodes[0]->myProp, PHP_EOL;
unset($node);
echo $doc->childNodes[0]->myProp, PHP_EOL;
?>

Результат выполнения данного примера:

изменённое значение
значение по умолчанию


Производит проверку документа на правильность построения посредством relaxNG

  • « DOMDocument::registerNodeClass
  • DOMDocument::relaxNGValidateSource »
  • PHP Manual
  • DOMDocument
  • Производит проверку документа на правильность построения посредством relaxNG

DOMDocument::relaxNGValidate

(PHP 5, PHP 7, PHP 8)

DOMDocument::relaxNGValidate — Производит проверку документа на правильность построения посредством relaxNG

Описание

public DOMDocument::relaxNGValidate(string $filename): bool

Производит » relaxNG проверку документа, основываясь на заданной схеме RNG.

Список параметров

filename

Файл RNG.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • DOMDocument::relaxNGValidateSource() - Проверяет документ посредством relaxNG
  • DOMDocument::schemaValidate() - Проверяет действительность документа, основываясь на заданной схеме. Поддерживается только XML-схема 1.0.
  • DOMDocument::schemaValidateSource() - Проверяет действительность документа, основываясь на схеме
  • DOMDocument::validate() - Проверяет документ на соответствие его DTD


Проверяет документ посредством relaxNG

  • « DOMDocument::relaxNGValidate
  • DOMDocument::replaceChildren »
  • PHP Manual
  • DOMDocument
  • Проверяет документ посредством relaxNG

DOMDocument::relaxNGValidateSource

(PHP 5, PHP 7, PHP 8)

DOMDocument::relaxNGValidateSource — Проверяет документ посредством relaxNG

Описание

public DOMDocument::relaxNGValidateSource(string $source): bool

Применяет проверку » relaxNG документа на соответствие заданному источнику RNG.

Список параметров

source

Строка содержащая RNG-схему.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • DOMDocument::relaxNGValidate() - Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::schemaValidate() - Проверяет действительность документа, основываясь на заданной схеме. Поддерживается только XML-схема 1.0.
  • DOMDocument::schemaValidateSource() - Проверяет действительность документа, основываясь на схеме
  • DOMDocument::validate() - Проверяет документ на соответствие его DTD


Replace children in document

  • « DOMDocument::relaxNGValidateSource
  • DOMDocument::save »
  • PHP Manual
  • DOMDocument
  • Replace children in document

DOMDocument::replaceChildren

(PHP 8 >= 8.3.0)

DOMDocument::replaceChildren — Replace children in document

Описание

public DOMDocument::replaceChildren(DOMNode|string ...$nodes): void

Replaces the children in the document with new nodes.

Список параметров

nodes

The nodes replacing the children. Strings are automatically converted to text nodes.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Calling this method on a node without an owner document now works. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMDocument::replaceChildren() example

Replaces the children with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");

$doc->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
beautiful
<world/>

Смотрите также

  • DOMParentNode::replaceChildren() - Replace children in node
  • DOMDocument::append() - Appends nodes after the last child node
  • DOMDocument::prepend() - Prepends nodes before the first child node


Сохраняет XML-дерево из внутреннего представления в файл

  • « DOMDocument::replaceChildren
  • DOMDocument::saveHTML »
  • PHP Manual
  • DOMDocument
  • Сохраняет XML-дерево из внутреннего представления в файл

DOMDocument::save

(PHP 5, PHP 7, PHP 8)

DOMDocument::save — Сохраняет XML-дерево из внутреннего представления в файл

Описание

public DOMDocument::save(string $filename, int $options = 0): int|false

Создаёт XML-документ из представления DOM. Эту функцию обычно вызывают после построения нового DOM-документа, как показано в примере ниже.

Список параметров

filename

Путь к файлу, в который будет сохранён XML-документ.

options

Дополнительные настройки. На данный момент поддерживается только LIBXML_NOEMPTYTAG.

Возвращаемые значения

Возвращает количество записанных байт или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

DOMDocument::saveHTML — Сохраняет документ из внутреннего представления в строку, используя форматирование HTML

Описание

public DOMDocument::saveHTML(?DOMNode $node = null): string|false

Создаёт HTML-документ из представления DOM. Эту функцию обычно вызывают после построения нового DOM-документа, как показано в примере ниже.

Список параметров

node

Необязательный аргумент для вывода подмножества документа.

Возвращаемые значения

Возвращает HTML или false в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

DOMDocument::saveHTMLFile — Сохраняет документ из внутреннего представления в файл, используя форматирование HTML

Описание

public DOMDocument::saveHTMLFile(string $filename): int|false

Создаёт 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, PHP 8)

DOMDocument::saveXML — Сохраняет XML-дерево из внутреннего представления в виде строки

Описание

public DOMDocument::saveXML(?DOMNode $node = null, int $options = 0): string|false

Создаёт XML-документ из представления DOM. Эту функцию обычно вызывают после построения нового DOM-документа, как показано в примере ниже.

Список параметров

node

Этот аргумент используют для вывода только определённого узла без объявления XML, а не всего документа целиком.

options

Дополнительные настройки. Поддерживаются константы LIBXML_NOEMPTYTAG и LIBXML_NOXMLDECL. До версии PHP 8.3.0 поддерживалась только константа LIBXML_NOEMPTYTAG.

Возвращаемые значения

Возвращает XML или false в случае возникновения ошибки.

Ошибки

DOM_WRONG_DOCUMENT_ERR

Возникает, если node принадлежит другому документу.

Список изменений

Версия | Описание
8.3.0 | Теперь поддерживается константа LIBXML_NOXMLDECL.

Примеры

Пример #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 из строки


Проверяет действительность документа, основываясь на заданной схеме. Поддерживается только XML-схема 1.0.

  • « DOMDocument::saveXML
  • DOMDocument::schemaValidateSource »
  • PHP Manual
  • DOMDocument
  • Проверяет действительность документа, основываясь на заданной схеме. Поддерживается только XML-схема 1.0.

DOMDocument::schemaValidate

(PHP 5, PHP 7, PHP 8)

DOMDocument::schemaValidate — Проверяет действительность документа, основываясь на заданной схеме. Поддерживается только XML-схема 1.0.

Описание

public DOMDocument::schemaValidate(string $filename, int $flags = 0): bool

Проверяет документ на действительность, основываясь на файле схемы.

Список параметров

filename

Путь к файлу со схемой.

flags

Битовая маска флагов проверки схемы Libxml. На данный момент поддерживается только одно значение LIBXML_SCHEMA_CREATE. Параметр доступен, начиная с Libxml 2.6.14.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • DOMDocument::schemaValidateSource() - Проверяет действительность документа, основываясь на схеме
  • DOMDocument::relaxNGValidate() - Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::relaxNGValidateSource() - Проверяет документ посредством relaxNG
  • DOMDocument::validate() - Проверяет документ на соответствие его DTD


Проверяет действительность документа, основываясь на схеме

  • « DOMDocument::schemaValidate
  • DOMDocument::validate »
  • PHP Manual
  • DOMDocument
  • Проверяет действительность документа, основываясь на схеме

DOMDocument::schemaValidateSource

(PHP 5, PHP 7, PHP 8)

DOMDocument::schemaValidateSource — Проверяет действительность документа, основываясь на схеме

Описание

public DOMDocument::schemaValidateSource(string $source, int $flags = 0): bool

Проверяет соответствие документа переданной через строку схеме.

Список параметров

source

Строка, содержащая схему.

flags

Битовая маска флагов проверки схемы Libxml. На данный момент поддерживается только одно значение LIBXML_SCHEMA_CREATE. Параметр доступен, начиная с Libxml 2.6.14.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • DOMDocument::schemaValidate() - Проверяет действительность документа, основываясь на заданной схеме. Поддерживается только XML-схема 1.0.
  • DOMDocument::relaxNGValidate() - Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::relaxNGValidateSource() - Проверяет документ посредством relaxNG
  • DOMDocument::validate() - Проверяет документ на соответствие его DTD


Проверяет документ на соответствие его DTD

  • « DOMDocument::schemaValidateSource
  • DOMDocument::xinclude »
  • PHP Manual
  • DOMDocument
  • Проверяет документ на соответствие его DTD

DOMDocument::validate

(PHP 5, PHP 7, PHP 8)

DOMDocument::validate — Проверяет документ на соответствие его DTD

Описание

public DOMDocument::validate(): 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() - Проверяет действительность документа, основываясь на заданной схеме. Поддерживается только XML-схема 1.0.
  • DOMDocument::schemaValidateSource() - Проверяет действительность документа, основываясь на схеме
  • DOMDocument::relaxNGValidate() - Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::relaxNGValidateSource() - Проверяет документ посредством relaxNG


Проводит вставку XInclude в объекте DOMDocument

  • « DOMDocument::validate
  • DOMDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Проводит вставку XInclude в объекте DOMDocument

DOMDocument::xinclude

(PHP 5, PHP 7, PHP 8)

DOMDocument::xinclude — Проводит вставку XInclude в объекте DOMDocument

Описание

public DOMDocument::xinclude(int $options = 0): int|false

Этот метод вставляет » блоки XInclude в объекте класса DOMDocument.

Замечание:

Из-за того, что libxml2 автоматически разрешает сущности, вызов этого метода приведёт к неожидаемым результатам в случае, когда XML-файл содержит прикреплённую схему DTD.

Список параметров

options

Побитовое ИЛИ (OR) констант опций libxml.

Возвращаемые значения

Возвращает количество 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, PHP 8)

Обзор классов

class DOMDocumentFragment extends DOMNode implements DOMParentNode {
/* Свойства */
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
/* Наследуемые свойства */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Методы */
public __construct()
public append(DOMNode|string ...$nodes): void
public appendXML(string $data): bool
public prepend(DOMNode|string ...$nodes): void
public replaceChildren(DOMNode|string ...$nodes): void
/* Наследуемые методы */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Свойства

childElementCount

Количество дочерних элементов.

firstElementChild

Первый дочерний элемент или null.

lastElementChild

Последний дочерний элемент или null.

Список изменений

Версия | Описание
8.0.0 | Добавлены свойства firstElementChild, lastElementChild и childElementCount.
8.0.0 | Класс DOMDocumentFragment теперь реализует интерфейс DOMParentNode.

Содержание

  • DOMDocumentFragment::append — Appends nodes after the last child node
  • DOMDocumentFragment::appendXML — Добавление необработанных данных XML
  • DOMDocumentFragment::__construct — Конструктор объекта DOMDocumentFragment
  • DOMDocumentFragment::prepend — Prepends nodes before the first child node
  • DOMDocumentFragment::replaceChildren — Replace children in fragment


Appends nodes after the last child node

  • « DOMDocumentFragment
  • DOMDocumentFragment::appendXML »
  • PHP Manual
  • DOMDocumentFragment
  • Appends nodes after the last child node

DOMDocumentFragment::append

(PHP 8)

DOMDocumentFragment::append — Appends nodes after the last child node

Описание

public DOMDocumentFragment::append(DOMNode|string ...$nodes): void

Appends one or many nodes to the list of children after the last child node.

Список параметров

nodes

Узлы, которые необходимо добавить. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле без документа владельца теперь работает. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMDocumentFragment::append() example

Appends nodes in the fragment.

<?php
$doc = new DOMDocument;
$fragment = $doc->createDocumentFragment();
$fragment->appendChild($doc->createElement("hello"));

$fragment->append("beautiful", $doc->createElement("world"));

echo $doc->saveXML($fragment);
?>

Результат выполнения данного примера:

<hello/>beautiful<world/>

Смотрите также

  • DOMParentNode::append() - Добавляет узлы после последнего дочернего узла
  • DOMDocumentFragment::prepend() - Prepends nodes before the first child node


Добавление необработанных данных XML

  • « DOMDocumentFragment::append
  • DOMDocumentFragment::__construct »
  • PHP Manual
  • DOMDocumentFragment
  • Добавление необработанных данных XML

DOMDocumentFragment::appendXML

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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>


Конструктор объекта DOMDocumentFragment

  • « DOMDocumentFragment::appendXML
  • DOMDocumentFragment::prepend »
  • PHP Manual
  • DOMDocumentFragment
  • Конструктор объекта DOMDocumentFragment

DOMDocumentFragment::__construct

(PHP 5, PHP 7, PHP 8)

DOMDocumentFragment::__construct — Конструктор объекта DOMDocumentFragment

Описание

public DOMDocumentFragment::__construct()

Список параметров

У этой функции нет параметров.


Prepends nodes before the first child node

  • « DOMDocumentFragment::__construct
  • DOMDocumentFragment::replaceChildren »
  • PHP Manual
  • DOMDocumentFragment
  • Prepends nodes before the first child node

DOMDocumentFragment::prepend

(PHP 8)

DOMDocumentFragment::prepend — Prepends nodes before the first child node

Описание

public DOMDocumentFragment::prepend(DOMNode|string ...$nodes): void

Prepends one or many nodes to the list of children before the first child node.

Список параметров

nodes

Узлы, которые необходимо добавить. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле без документа владельца теперь работает. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMDocumentFragment::prepend() example

Prepends nodes before the fragment root.

<?php
$doc = new DOMDocument;
$fragment = $doc->createDocumentFragment();
$fragment->appendChild($doc->createElement("world"));

$fragment->prepend($doc->createElement("hello"), "beautiful");

echo $doc->saveXML($fragment);
?>

Результат выполнения данного примера:

<hello/>beautiful<world/>

Смотрите также

  • DOMParentNode::prepend() - Добавляет узлы перед первым дочерним узлом
  • DOMDocumentFragment::append() - Appends nodes after the last child node


Replace children in fragment

  • « DOMDocumentFragment::prepend
  • DOMDocumentType »
  • PHP Manual
  • DOMDocumentFragment
  • Replace children in fragment

DOMDocumentFragment::replaceChildren

(PHP 8 >= 8.3.0)

DOMDocumentFragment::replaceChildren — Replace children in fragment

Описание

public DOMDocumentFragment::replaceChildren(DOMNode|string ...$nodes): void

Replaces the children in the document fragment with new nodes.

Список параметров

nodes

The nodes replacing the children. Strings are automatically converted to text nodes.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Calling this method on a node without an owner document now works. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMDocumentFragment::replaceChildren() example

Replaces the children with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");
$fragment = $doc->createDocumentFragment();
$fragment->append("hello");

$fragment->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML($fragment);
?>

Результат выполнения данного примера:

beautiful
<world/>

Смотрите также

  • DOMParentNode::replaceChildren() - Replace children in node
  • DOMDocumentFragment::append() - Appends nodes after the last child node
  • DOMDocumentFragment::prepend() - Prepends nodes before the first child node


Класс DOMDocumentType

(PHP 5, PHP 7, PHP 8)

Введение

Каждый объект DOMDocument имеет атрибут doctype, значение которого либо null, либо объект класса DOMDocumentType.

Обзор классов

class DOMDocumentType extends DOMNode {
/* Свойства */
public readonly string $name;
public readonly DOMNamedNodeMap $entities;
public readonly DOMNamedNodeMap $notations;
public readonly string $publicId;
public readonly string $systemId;
public readonly ?string $internalSubset;
/* Наследуемые свойства */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Свойства

publicId

Общедоступный идентификатор внешнего подмножества типов.

systemId

Системный идентификатор внешнего подмножества типов. Это может быть абсолютный URI.

name

Имя DTD, то есть имя, следующее сразу за ключевым словом DOCTYPE.

entities

Объект класса DOMNamedNodeMap, содержащий основные элементы, внутренние и внешние, объявленные в DTD.

notations

Объект класса DOMNamedNodeMap, содержащий обозначения, объявленные в DTD.

internalSubset

Внутреннее подмножество в виде строки или null, если такового нет. Оно не должно содержать разделительных квадратных скобок.


Класс DOMElement

(PHP 5, PHP 7, PHP 8)

Обзор классов

class DOMElement extends DOMNode implements DOMParentNode, DOMChildNode {
/* Свойства */
public readonly string $tagName;
public string $className;
public string $id;
public readonly mixed $schemaTypeInfo = null;
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
/* Наследуемые свойства */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 $qualifiedName, ?string $value = null, string $namespace = "")
public after(DOMNode|string ...$nodes): void
public append(DOMNode|string ...$nodes): void
public before(DOMNode|string ...$nodes): void
public getAttribute(string $qualifiedName): string
public getAttributeNames(): array
public getAttributeNode(string $qualifiedName): DOMAttr|DOMNameSpaceNode|false
public getAttributeNodeNS(?string $namespace, string $localName): DOMAttr|DOMNameSpaceNode|null
public getAttributeNS(?string $namespace, string $localName): string
public getElementsByTagName(string $qualifiedName): DOMNodeList
public getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList
public hasAttribute(string $qualifiedName): bool
public hasAttributeNS(?string $namespace, string $localName): bool
public insertAdjacentElement(string $where, DOMElement $element): ?DOMElement
public insertAdjacentText(string $where, string $data): void
public prepend(DOMNode|string ...$nodes): void
public remove(): void
public removeAttribute(string $qualifiedName): bool
public removeAttributeNode(DOMAttr $attr): DOMAttr|false
public removeAttributeNS(?string $namespace, string $localName): void
public replaceChildren(DOMNode|string ...$nodes): void
public replaceWith(DOMNode|string ...$nodes): void
public setAttribute(string $qualifiedName, string $value): DOMAttr|bool
public setAttributeNode(DOMAttr $attr): DOMAttr|null|false
public setAttributeNodeNS(DOMAttr $attr): DOMAttr|null|false
public setAttributeNS(?string $namespace, string $qualifiedName, string $value): void
public setIdAttribute(string $qualifiedName, bool $isId): void
public setIdAttributeNode(DOMAttr $attr, bool $isId): void
public setIdAttributeNS(string $namespace, string $qualifiedName, bool $isId): void
public toggleAttribute(string $qualifiedName, ?bool $force = null): bool
/* Наследуемые методы */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Свойства

childElementCount

Количество дочерних элементов.

firstElementChild

Первый дочерний элемент или null.

lastElementChild

Последний дочерний элемент или null.

nextElementSibling

Элемент непосредственно следующий за данным элементом или null.

previousElementSibling

Элемент предшествующий элементу или null.

schemaTypeInfo

Пока не реализовано, всегда возвращает null

tagName

Имя элемента

className

Строка представляющая разделенные запятой классы элемента

id

Идентификатор элемента

Список изменений

Версия | Описание
8.0.0 | Добавлены свойства firstElementChild, lastElementChild, childElementCount, previousElementSibling и nextElementSibling.
8.0.0 | Класс DOMElement теперь реализует интерфейс DOMParentNode и DOMChildNode.

Примечания

Замечание:

Модуль DOM использует кодировку UTF-8. Используйте mb_convert_encoding(), UConverter::transcode() или iconv() для работы с другими кодировками.

Содержание

  • DOMElement::after — Adds nodes after the element
  • DOMElement::append — Appends nodes after the last child node
  • DOMElement::before — Adds nodes before the element
  • DOMElement::__construct — Создаёт новый экземпляр класса DOMElement
  • DOMElement::getAttribute — Возвращает значение атрибута
  • DOMElement::getAttributeNames — Get attribute names
  • DOMElement::getAttributeNode — Возвращает узел атрибута
  • DOMElement::getAttributeNodeNS — Возвращает узел атрибута
  • DOMElement::getAttributeNS — Возвращает значение атрибута
  • DOMElement::getElementsByTagName — Возвращает элементы по имени тега
  • DOMElement::getElementsByTagNameNS — Получение элементов по локальному имени в заданном пространстве имён
  • DOMElement::hasAttribute — Проверяет, существует ли атрибут
  • DOMElement::hasAttributeNS — Проверяет, существует ли заданный атрибут
  • DOMElement::insertAdjacentElement — Insert adjacent element
  • DOMElement::insertAdjacentText — Insert adjacent text
  • DOMElement::prepend — Prepends nodes before the first child node
  • DOMElement::remove — Removes the element
  • DOMElement::removeAttribute — Удаляет атрибут
  • DOMElement::removeAttributeNode — Удаляет атрибут
  • DOMElement::removeAttributeNS — Удаляет атрибут
  • DOMElement::replaceChildren — Replace children in element
  • DOMElement::replaceWith — Replaces the element with new nodes
  • DOMElement::setAttribute — Добавляет новый или изменяет существующий атрибут
  • DOMElement::setAttributeNode — Добавляет новый узел атрибута в элемент
  • DOMElement::setAttributeNodeNS — Добавляет новый атрибут в элемент
  • DOMElement::setAttributeNS — Добавляет новый атрибут
  • DOMElement::setIdAttribute — Объявляет атрибут, указанный именем, с идентификатором типа
  • DOMElement::setIdAttributeNode — Объявляет атрибут, указанный узлом, с идентификатором типа
  • DOMElement::setIdAttributeNS — Объявляет атрибут, указанный локальным именем и URI пространства имён, с идентификатором типа
  • DOMElement::toggleAttribute — Toggle attribute


Adds nodes after the element

  • « DOMElement
  • DOMElement::append »
  • PHP Manual
  • DOMElement
  • Adds nodes after the element

DOMElement::after

(PHP 8)

DOMElement::after — Adds nodes after the element

Описание

public DOMElement::after(DOMNode|string ...$nodes): void

Adds the passed nodes after the element.

Список параметров

nodes

Узлы, которые необходимо добавить после узла. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе родительского узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле, у которого нет родительского узла, теперь ничего не делает, чтобы привести поведение в соответствие со спецификацией DOM. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.
8.3.0 | Вызов этого метода на узле без документа владельца теперь работает. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMElement::after() example

Adds nodes after the hello element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<hello/>");
$container = $doc->documentElement;

$container->after("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<hello/>
beautiful
<world/>

Смотрите также

  • DOMChildNode::after() - Добавляет узлы после узла
  • DOMElement::before() - Adds nodes before the element


Appends nodes after the last child node

  • « DOMElement::after
  • DOMElement::before »
  • PHP Manual
  • DOMElement
  • Appends nodes after the last child node

DOMElement::append

(PHP 8)

DOMElement::append — Appends nodes after the last child node

Описание

public DOMElement::append(DOMNode|string ...$nodes): void

Appends one or many nodes to the list of children after the last child node.

Список параметров

nodes

Узлы, которые необходимо добавить. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле без документа владельца теперь работает. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMElement::append() example

Appends nodes in the container element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container>hello </container>");
$world = $doc->documentElement;

$world->append("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<container>hello beautiful<world/></container>

Смотрите также

  • DOMParentNode::append() - Добавляет узлы после последнего дочернего узла
  • DOMElement::prepend() - Prepends nodes before the first child node


Adds nodes before the element

  • « DOMElement::append
  • DOMElement::__construct »
  • PHP Manual
  • DOMElement
  • Adds nodes before the element

DOMElement::before

(PHP 8)

DOMElement::before — Adds nodes before the element

Описание

public DOMElement::before(DOMNode|string ...$nodes): void

Adds the passed nodes before the element.

Список параметров

nodes

Узлы, которые необходимо добавить перед узлом. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе родительского узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле, у которого нет родительского узла, теперь ничего не делает, чтобы привести поведение в соответствие со спецификацией DOM. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMElement::before() example

Adds nodes before the hello element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<world/>");
$world = $doc->documentElement;

$world->before("hello", $doc->createElement("beautiful"));

echo $doc->saveXML();
?>

Результат выполнения данного примера:

hello
<beautiful/>
<world/>

Смотрите также

  • DOMChildNode::before() - Добавляет узлы перед узлом
  • DOMElement::after() - Adds nodes after the element


Создаёт новый экземпляр класса DOMElement

  • « DOMElement::before
  • DOMElement::getAttribute »
  • PHP Manual
  • DOMElement
  • Создаёт новый экземпляр класса DOMElement

DOMElement::__construct

(PHP 5, PHP 7, PHP 8)

DOMElement::__construct — Создаёт новый экземпляр класса DOMElement

Описание

public DOMElement::__construct(string $qualifiedName, ?string $value = null, string $namespace = "")

Создаёт новый объект класса DOMElement. Этот объект доступен только для чтения. Он может быть добавлен к документу, но дополнительные узлы в него нельзя добавить, пока узел не будет связан с документом. Чтобы создать записываемый узел, используйте DOMDocument::createElement или DOMDocument::createElementNS.

Список параметров

qualifiedName

Имя тега создаваемого элемента. Если также передаётся параметр namespaceURI, имя элемента может принимать префикс, который должен быть связан с URI.

value

Значение элемента.

namespace

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::getAttributeNames »
  • PHP Manual
  • DOMElement
  • Возвращает значение атрибута

DOMElement::getAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttribute — Возвращает значение атрибута

Описание

public DOMElement::getAttribute(string $qualifiedName): string

Возвращает значение атрибута с именем qualifiedName для текущего узла.

Список параметров

qualifiedName

Имя атрибута.

Возвращаемые значения

Значение атрибута или пустое значение, если атрибут с указанным именем qualifiedName не найден.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет, существует ли атрибут
  • DOMElement::setAttribute() - Добавляет новый или изменяет существующий атрибут
  • DOMElement::removeAttribute() - Удаляет атрибут


Get attribute names

  • « DOMElement::getAttribute
  • DOMElement::getAttributeNode »
  • PHP Manual
  • DOMElement
  • Get attribute names

DOMElement::getAttributeNames

(PHP 8 >= 8.3.0)

DOMElement::getAttributeNames — Get attribute names

Описание

public DOMElement::getAttributeNames(): array

Get attribute names.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return attribute names.

Примеры

Пример #1 DOMElement::getAttributeNames() example

<?php

$dom = new DOMDocument();
$dom->loadXML('<html xmlns:some="some:ns" some:test="a" test2="b"/>');
var_dump($dom->documentElement->getAttributeNames());
?>

Результат выполнения данного примера:

array(3) {
 [0]=>
 string(10) "xmlns:some"
 [1]=>
 string(9) "some:test"
 [2]=>
 string(5) "test2"
}


Возвращает узел атрибута

  • « DOMElement::getAttributeNames
  • DOMElement::getAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Возвращает узел атрибута

DOMElement::getAttributeNode

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttributeNode — Возвращает узел атрибута

Описание

public DOMElement::getAttributeNode(string $qualifiedName): DOMAttr|DOMNameSpaceNode|false

Возвращает узел атрибута с именем qualifiedName для текущего элемента.

Список параметров

qualifiedName

Имя атрибута.

Возвращаемые значения

Узел атрибута. Обратите внимание, что для объявлений пространств имён XML (атрибуты xmlns и xmlns:*) возвращается экземпляр DOMNameSpaceNode, а не DOMAttr.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет, существует ли атрибут
  • DOMElement::setAttributeNode() - Добавляет новый узел атрибута в элемент
  • DOMElement::removeAttributeNode() - Удаляет атрибут


Возвращает узел атрибута

  • « DOMElement::getAttributeNode
  • DOMElement::getAttributeNS »
  • PHP Manual
  • DOMElement
  • Возвращает узел атрибута

DOMElement::getAttributeNodeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttributeNodeNS — Возвращает узел атрибута

Описание

public DOMElement::getAttributeNodeNS(?string $namespace, string $localName): DOMAttr|DOMNameSpaceNode|null

Возвращает узел атрибута в пространстве имён namespace с локальным именем localName для текущего узла.

Список параметров

namespace

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, PHP 8)

DOMElement::getAttributeNS — Возвращает значение атрибута

Описание

public DOMElement::getAttributeNS(?string $namespace, string $localName): string

Получает значение атрибута в пространстве имён namespace с локальным именем localName для текущего узла.

Список параметров

namespace

URI пространства имён.

localName

Локальное имя.

Возвращаемые значения

Значение атрибута либо пустая строка, если атрибута с заданным локальным именем localName в пространстве имён namespace не найден.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::setAttributeNS() - Добавляет новый атрибут
  • DOMElement::removeAttributeNS() - Удаляет атрибут


Возвращает элементы по имени тега

  • « DOMElement::getAttributeNS
  • DOMElement::getElementsByTagNameNS »
  • PHP Manual
  • DOMElement
  • Возвращает элементы по имени тега

DOMElement::getElementsByTagName

(PHP 5, PHP 7, PHP 8)

DOMElement::getElementsByTagName — Возвращает элементы по имени тега

Описание

public DOMElement::getElementsByTagName(string $qualifiedName): DOMNodeList

Эта функция возвращает новый экземпляр класса DOMNodeList - список всех элементов-потомков текущего узла с указанным именем тега qualifiedName, в том порядке, в котором они встречаются при обходе дерева.

Список параметров

qualifiedName

Имя тега. Используйте символ * для возврата всех элементов дерева.

Возвращаемые значения

Эта функция возвращает новый объект класса DOMNodeList - список всех подходящих элементов.

Смотрите также

  • DOMElement::getElementsByTagNameNS() - Получение элементов по локальному имени в заданном пространстве имён


Получение элементов по локальному имени в заданном пространстве имён

  • « DOMElement::getElementsByTagName
  • DOMElement::hasAttribute »
  • PHP Manual
  • DOMElement
  • Получение элементов по локальному имени в заданном пространстве имён

DOMElement::getElementsByTagNameNS

(PHP 5, PHP 7, PHP 8)

DOMElement::getElementsByTagNameNS — Получение элементов по локальному имени в заданном пространстве имён

Описание

public DOMElement::getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList

Эта функция выбирает все элементы-потомки с заданным именем localName и пространством имён namespace.

Список параметров

namespace

URI пространства имён элементов для поиска. Специальное значение "*" соответствует всем пространствам имён. Передача null соответствует пустому пространству имён.

localName

Локальное имя элементов для поиска. Специальное значение "*" соответствует всем локальным именам.

Возвращаемые значения

Эта функция возвращает новый объект класса DOMNodeList, содержащий все найденные элементы в том порядке, в котором они появляются при прямом обходе дерева.

Список изменений

Версия | Описание
8.0.3 | namespace теперь допускает значение null.

Смотрите также

  • DOMElement::getElementsByTagName() - Возвращает элементы по имени тега


Проверяет, существует ли атрибут

  • « DOMElement::getElementsByTagNameNS
  • DOMElement::hasAttributeNS »
  • PHP Manual
  • DOMElement
  • Проверяет, существует ли атрибут

DOMElement::hasAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::hasAttribute — Проверяет, существует ли атрибут

Описание

public DOMElement::hasAttribute(string $qualifiedName): bool

Проверяет наличие атрибута с именем, указанным в параметре qualifiedName текущего элемента.

Список параметров

qualifiedName

Имя атрибута.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::getAttribute() - Возвращает значение атрибута
  • DOMElement::setAttribute() - Добавляет новый или изменяет существующий атрибут
  • DOMElement::removeAttribute() - Удаляет атрибут


Проверяет, существует ли заданный атрибут

  • « DOMElement::hasAttribute
  • DOMElement::insertAdjacentElement »
  • PHP Manual
  • DOMElement
  • Проверяет, существует ли заданный атрибут

DOMElement::hasAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::hasAttributeNS — Проверяет, существует ли заданный атрибут

Описание

public DOMElement::hasAttributeNS(?string $namespace, string $localName): bool

Показывает, существует ли атрибут в пространстве имён namespace с именем localName в составе элемента.

Список параметров

namespace

URI пространства имён.

localName

Локальное имя.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет, существует ли атрибут
  • DOMElement::getAttributeNS() - Возвращает значение атрибута
  • DOMElement::setAttributeNS() - Добавляет новый атрибут
  • DOMElement::removeAttributeNS() - Удаляет атрибут


Insert adjacent element

  • « DOMElement::hasAttributeNS
  • DOMElement::insertAdjacentText »
  • PHP Manual
  • DOMElement
  • Insert adjacent element

DOMElement::insertAdjacentElement

(PHP 8 >= 8.3.0)

DOMElement::insertAdjacentElement — Insert adjacent element

Описание

public DOMElement::insertAdjacentElement(string $where, DOMElement $element): ?DOMElement

Inserts an element at a relative position given by where.

Список параметров

where

  • beforebegin - Insert before the target element.
  • afterbegin - Insert as the first child of the target element.
  • beforeend - Insert as the last child of the target element.
  • afterend - Insert after the target element.

element

The element to insert.

Возвращаемые значения

Return DOMElement or null on failure.

Примеры

Пример #1 DOMElement::insertAdjacentElement() example

<?php

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><container><p>foo</p></container>');
$container = $dom->documentElement;
$p = $container->firstElementChild;

$p->insertAdjacentElement('beforebegin', $dom->createElement('A'));
echo $dom->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<container><A/><p>foo</p></container>

Смотрите также

  • DOMElement::insertAdjacentText() - Insert adjacent text


Insert adjacent text

  • « DOMElement::insertAdjacentElement
  • DOMElement::prepend »
  • PHP Manual
  • DOMElement
  • Insert adjacent text

DOMElement::insertAdjacentText

(PHP 8 >= 8.3.0)

DOMElement::insertAdjacentText — Insert adjacent text

Описание

public DOMElement::insertAdjacentText(string $where, string $data): void

Inserts text at a relative position given by where.

Список параметров

where

  • beforebegin - Insert before the target element.
  • afterbegin - Insert as the first child of the target element.
  • beforeend - Insert as the last child of the target element.
  • afterend - Insert after the target element.

data

The string to insert.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 DOMElement::insertAdjacentText() example

<?php

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><container><p>H</p></container>');

$container = $dom->documentElement;
$p = $container->firstElementChild;

$p->insertAdjacentText("afterbegin", "P");
$p->insertAdjacentText("beforeend", "P");

echo $dom->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<container><p>PHP</p></container>

Смотрите также

  • DOMElement::insertAdjacentElement() - Insert adjacent element


Prepends nodes before the first child node

  • « DOMElement::insertAdjacentText
  • DOMElement::remove »
  • PHP Manual
  • DOMElement
  • Prepends nodes before the first child node

DOMElement::prepend

(PHP 8)

DOMElement::prepend — Prepends nodes before the first child node

Описание

public DOMElement::prepend(DOMNode|string ...$nodes): void

Prepends one or many nodes to the list of children before the first child node.

Список параметров

nodes

Узлы, которые необходимо добавить. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле без документа владельца теперь работает. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMElement::prepend() example

Prepends nodes in the container element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container> world</container>");
$world = $doc->documentElement;

$world->prepend($doc->createElement("hello"), "beautiful");

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<container><hello/>beautiful world</container>

Смотрите также

  • DOMParentNode::prepend() - Добавляет узлы перед первым дочерним узлом
  • DOMElement::append() - Appends nodes after the last child node


Removes the element

  • « DOMElement::prepend
  • DOMElement::removeAttribute »
  • PHP Manual
  • DOMElement
  • Removes the element

DOMElement::remove

(PHP 8)

DOMElement::remove — Removes the element

Описание

public DOMElement::remove(): void

Removes the element.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 DOMElement::remove() example

Removes the element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/><world/></container>");
$hello = $doc->documentElement->firstChild;

$hello->remove();

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<container><world/></container>

Смотрите также

  • DOMElement::after() - Adds nodes after the element
  • DOMElement::before() - Adds nodes before the element
  • DOMElement::replaceWith() - Replaces the element with new nodes
  • DOMNode::removeChild() - Удаляет дочерний узел из списка потомков


Удаляет атрибут

  • « DOMElement::remove
  • DOMElement::removeAttributeNode »
  • PHP Manual
  • DOMElement
  • Удаляет атрибут

DOMElement::removeAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::removeAttribute — Удаляет атрибут

Описание

public DOMElement::removeAttribute(string $qualifiedName): bool

Удаляет атрибут с именем qualifiedName из элемента.

Список параметров

qualifiedName

Имя атрибута.

Возвращаемые значения

Возвращает 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, PHP 8)

DOMElement::removeAttributeNode — Удаляет атрибут

Описание

public DOMElement::removeAttributeNode(DOMAttr $attr): DOMAttr|false

Удаляет узел атрибута attr из элемента.

Список параметров

attr

Узел атрибута.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND_ERROR

Возникает, если attr не является атрибутом элемента.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет, существует ли атрибут
  • DOMElement::getAttributeNode() - Возвращает узел атрибута
  • DOMElement::setAttributeNode() - Добавляет новый узел атрибута в элемент


Удаляет атрибут

  • « DOMElement::removeAttributeNode
  • DOMElement::replaceChildren »
  • PHP Manual
  • DOMElement
  • Удаляет атрибут

DOMElement::removeAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::removeAttributeNS — Удаляет атрибут

Описание

public DOMElement::removeAttributeNS(?string $namespace, string $localName): void

Удаляет атрибут localName в пространстве имён namespace из элемента.

Список параметров

namespace

URI пространства имён.

localName

Локальное имя.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::getAttributeNS() - Возвращает значение атрибута
  • DOMElement::setAttributeNS() - Добавляет новый атрибут


Replace children in element

  • « DOMElement::removeAttributeNS
  • DOMElement::replaceWith »
  • PHP Manual
  • DOMElement
  • Replace children in element

DOMElement::replaceChildren

(PHP 8 >= 8.3.0)

DOMElement::replaceChildren — Replace children in element

Описание

public DOMElement::replaceChildren(DOMNode|string ...$nodes): void

Replaces the children in the element with new nodes.

Список параметров

nodes

The nodes replacing the children. Strings are automatically converted to text nodes.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Calling this method on a node without an owner document now works. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMElement::replaceChildren() example

Replaces the children with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");
$container = $doc->documentElement;

$container->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
beautiful
<world/>

Смотрите также

  • DOMParentNode::replaceChildren() - Replace children in node
  • DOMElement::replaceWith() - Replaces the element with new nodes
  • DOMElement::after() - Adds nodes after the element
  • DOMElement::before() - Adds nodes before the element
  • DOMElement::remove() - Removes the element


Replaces the element with new nodes

  • « DOMElement::replaceChildren
  • DOMElement::setAttribute »
  • PHP Manual
  • DOMElement
  • Replaces the element with new nodes

DOMElement::replaceWith

(PHP 8)

DOMElement::replaceWith — Replaces the element with new nodes

Описание

public DOMElement::replaceWith(DOMNode|string ...$nodes): void

Replaces the element with new nodes.

Список параметров

nodes

Узлы, которыми необходимо заменить узел.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 DOMElement::replaceWith() example

Replaces the element with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<container>beautiful<world/></container>

Смотрите также

  • DOMChildNode::replaceWith() - Заменяет узел новыми узлами
  • DOMElement::replaceChildren() - Replace children in element
  • DOMElement::after() - Adds nodes after the element
  • DOMElement::before() - Adds nodes before the element
  • DOMElement::remove() - Removes the element


Добавляет новый или изменяет существующий атрибут

  • « DOMElement::replaceWith
  • DOMElement::setAttributeNode »
  • PHP Manual
  • DOMElement
  • Добавляет новый или изменяет существующий атрибут

DOMElement::setAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::setAttribute — Добавляет новый или изменяет существующий атрибут

Описание

public DOMElement::setAttribute(string $qualifiedName, string $value): DOMAttr|bool

Устанавливает атрибут с именем qualifiedName. Если атрибут не существует, то он будет создан.

Список параметров

qualifiedName

Имя атрибута.

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, PHP 8)

DOMElement::setAttributeNode — Добавляет новый узел атрибута в элемент

Описание

public DOMElement::setAttributeNode(DOMAttr $attr): DOMAttr|null|false

Добавляет новый узел атрибута attr в элемент. Если в элементе уже существует узел с таким же именем, то он заменяется на attr.

Список параметров

attr

Узел атрибута.

Возвращаемые значения

Возвращает старый узел, если он был заменён или null, если старого узла не было. Если выдаётся ошибка DOM_WRONG_DOCUMENT_ERR, а strictErrorChecking равно false, то возвращается false.

Ошибки

DOM_WRONG_DOCUMENT_ERR

Возникает, если параметр attr принадлежит не данному узлу, а другому документу.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет, существует ли атрибут
  • DOMElement::getAttributeNode() - Возвращает узел атрибута
  • DOMElement::removeAttributeNode() - Удаляет атрибут


Добавляет новый атрибут в элемент

  • « DOMElement::setAttributeNode
  • DOMElement::setAttributeNS »
  • PHP Manual
  • DOMElement
  • Добавляет новый атрибут в элемент

DOMElement::setAttributeNodeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::setAttributeNodeNS — Добавляет новый атрибут в элемент

Описание

public DOMElement::setAttributeNodeNS(DOMAttr $attr): DOMAttr|null|false

Добавляет новый узел атрибута attr в элемент с учётом пространства имён. Если в элементе уже существует атрибут с таким же именем, то он заменяется на attr.

Список параметров

attr

Узел атрибута.

Возвращаемые значения

Возвращает старый атрибут, если он был заменён или null, если старого атрибута не было. Если возникает ошибка DOM_WRONG_DOCUMENT_ERR, а strictErrorChecking равно false, то возвращается значение false.

Ошибки

DOM_WRONG_DOCUMENT_ERR

Возникает, если параметр attr принадлежит не данному элементу, а другому документу.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::getAttributeNodeNS() - Возвращает узел атрибута
  • DOMElement::removeAttributeNode() - Удаляет атрибут


Добавляет новый атрибут

  • « DOMElement::setAttributeNodeNS
  • DOMElement::setIdAttribute »
  • PHP Manual
  • DOMElement
  • Добавляет новый атрибут

DOMElement::setAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::setAttributeNS — Добавляет новый атрибут

Описание

public DOMElement::setAttributeNS(?string $namespace, string $qualifiedName, string $value): void

Устанавливает атрибут с пространстве имён namespace и локальным именем name. Если атрибут не существует, он будет создан.

Список параметров

namespace

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, PHP 8)

DOMElement::setIdAttribute — Объявляет атрибут, указанный именем, с идентификатором типа

Описание

public DOMElement::setIdAttribute(string $qualifiedName, bool $isId): void

Объявляет атрибут qualifiedName с идентификатором типа.

Список параметров

qualifiedName

Имя атрибута.

isId

Установите значение в true если вы хотите, чтобы qualifiedName имел идентификатор типа, false в противном случае.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND

Возникает, если qualifiedName не является атрибутом элемента.

Смотрите также

  • DOMDocument::getElementById() - Ищет элемент с определённым идентификатором
  • DOMElement::setIdAttributeNode() - Объявляет атрибут, указанный узлом, с идентификатором типа
  • DOMElement::setIdAttributeNS() - Объявляет атрибут, указанный локальным именем и URI пространства имён, с идентификатором типа


Объявляет атрибут, указанный узлом, с идентификатором типа

  • « DOMElement::setIdAttribute
  • DOMElement::setIdAttributeNS »
  • PHP Manual
  • DOMElement
  • Объявляет атрибут, указанный узлом, с идентификатором типа

DOMElement::setIdAttributeNode

(PHP 5, PHP 7, PHP 8)

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
  • DOMElement::toggleAttribute »
  • PHP Manual
  • DOMElement
  • Объявляет атрибут, указанный локальным именем и URI пространства имён, с идентификатором типа

DOMElement::setIdAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::setIdAttributeNS — Объявляет атрибут, указанный локальным именем и URI пространства имён, с идентификатором типа

Описание

public DOMElement::setIdAttributeNS(string $namespace, string $qualifiedName, bool $isId): void

Объявляет атрибут, указанный локальным именем qualifiedName и пространством имён namespace, идентификатором типа.

Список параметров

namespace

URI пространства имён атрибута.

qualifiedName

Локальное имя атрибута в виде prefix:tagname.

isId

Установите значение в true если вы хотите, чтобы name имел идентификатор типа, false в противном случае.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND

Возникает, если name не является атрибутом элемента.

Смотрите также

  • DOMDocument::getElementById() - Ищет элемент с определённым идентификатором
  • DOMElement::setIdAttribute() - Объявляет атрибут, указанный именем, с идентификатором типа
  • DOMElement::setIdAttributeNode() - Объявляет атрибут, указанный узлом, с идентификатором типа


Toggle attribute

  • « DOMElement::setIdAttributeNS
  • DOMEntity »
  • PHP Manual
  • DOMElement
  • Toggle attribute

DOMElement::toggleAttribute

(PHP 8 >= 8.3.0)

DOMElement::toggleAttribute — Toggle attribute

Описание

public DOMElement::toggleAttribute(string $qualifiedName, ?bool $force = null): bool

Toggle the attribute.

Список параметров

qualifiedName

The qualified name of the attribute.

force

  • if null, the function will toggle the attribute.
  • if true, the function adds the attribute.
  • if false, the function removes the attribute.

Возвращаемые значения

Returns true if the attribute is present after finishing the call, false otherwise.

Примеры

Пример #1 DOMElement::toggleAttribute() example

<?php

$dom = new DOMDocument();
$dom->loadXML("<?xml version='1.0'?><container selected=\"\"/>");

var_dump($dom->documentElement->toggleAttribute('selected'));
echo $dom->saveXML() . PHP_EOL;

var_dump($dom->documentElement->toggleAttribute('selected'));
echo $dom->saveXML();
?>

Результат выполнения данного примера:

bool(false)
<?xml version="1.0"?>
<container/>

bool(true)
<?xml version="1.0"?>
<container selected=""/>


Класс DOMEntity

(PHP 5, PHP 7, PHP 8)

Введение

Этот интерфейс представляет известную сущность, уже разобранную или нет, в документе XML.

Обзор классов

class DOMEntity extends DOMNode {
/* Свойства */
public readonly ?string $publicId;
public readonly ?string $systemId;
public readonly ?string $notationName;
public readonly ?string $actualEncoding = null;
public readonly ?string $encoding = null;
public readonly ?string $version = null;
/* Наследуемые свойства */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Свойства

publicId

Общедоступный идентификатор соответствующий сущности или null, если не задан.

systemId

Системный идентификатор соответствующий сущности или null, если не задан. Это может быть абсолютный URI.

notationName

Для неразобранных объектов - наименование условного обозначения для сущности. Для разобранных - null.

actualEncoding

Атрибут, задающий кодировку, которая использовалась при разборе сущности, для случаев, когда разбор производился внешними методами. Атрибут имеет значение null, если сущность находится во внутреннем подмножестве или этот факт не известен.

encoding

Атрибут, задающий кодировку сущности, равно как и в объявлении, когда сущность разобрана внешними средствами. В противном случае атрибут имеет значение null.

version

Атрибут, задающий версию элемента, если он был разобран внешними средствами. В противном случае null.


Класс DOMEntityReference

(PHP 5, PHP 7, PHP 8)

Обзор классов

class DOMEntityReference extends DOMNode {
/* Наследуемые свойства */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Содержание

  • DOMEntityReference::__construct — Создаёт новый объект класса DOMEntityReference


Создаёт новый объект класса DOMEntityReference

  • « DOMEntityReference
  • DOMException »
  • PHP Manual
  • DOMEntityReference
  • Создаёт новый объект класса DOMEntityReference

DOMEntityReference::__construct

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

Введение

Операции DOM при определённых обстоятельствах выбрасывают исключения, например, когда выполнение операции невозможно по понятным причинам.

Смотрите также Исключения.

Обзор классов

final class DOMException extends Exception {
/* Свойства */
public int $code;
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Свойства

code

Целое число, указывающее тип произошедшей ошибки


Класс DOMImplementation

(PHP 5, PHP 7, PHP 8)

Введение

Класс DOMImplementation предоставляет ряд методов для выполнения операций, которые не зависят от какого-либо экземпляра объектной модели документа.

Обзор классов

class DOMImplementation {
/* Методы */
public createDocument(?string $namespace = null, string $qualifiedName = "", ?DOMDocumentType $doctype = null): DOMDocument|false
public createDocumentType(string $qualifiedName, string $publicId = "", string $systemId = ""): DOMDocumentType|false
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()

Создаёт экземпляр класса DOMImplementation.

Список параметров

У этой функции нет параметров.


Создаёт объект класса DOMDocument заданного типа с его элементом document

  • « DOMImplementation::__construct
  • DOMImplementation::createDocumentType »
  • PHP Manual
  • DOMImplementation
  • Создаёт объект класса DOMDocument заданного типа с его элементом document

DOMImplementation::createDocument

(PHP 5, PHP 7, PHP 8)

DOMImplementation::createDocument — Создаёт объект класса DOMDocument заданного типа с его элементом document

Описание

public DOMImplementation::createDocument(?string $namespace = null, string $qualifiedName = "", ?DOMDocumentType $doctype = null): DOMDocument|false

Создаёт объект класса DOMDocument заданного типа с его элементом document.

Список параметров

namespace

URI пространства имён создаваемого элемента document.

qualifiedName

Квалифицированное имя создаваемого элемента document.

doctype

Тип создаваемого элемента document или null.

Возвращаемые значения

Новый объект класса DOMDocument или false в случае возникновения ошибки. Если аргументы namespace, qualifiedName, и doctype имеют значение null, возвращаемый объект DOMDocument будет пустым и без элемента document.

Ошибки

DOM_WRONG_DOCUMENT_ERR

Возникает, если аргумент doctype уже использовался с другим документом или был создан в другой реализации.

DOM_NAMESPACE_ERR

Возникает, если обнаружена ошибка в строках namespace и qualifiedName.

Список изменений

Версия | Описание
8.0.3 | namespace теперь допускает значение null.
8.0.0 | doctype теперь допускает значение null.
8.0.0 | При статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.

Смотрите также

  • DOMDocument::__construct() - Создаёт новый объект DOMDocument
  • DOMImplementation::createDocumentType() - Создаёт пустой объект класса DOMDocumentType


Создаёт пустой объект класса DOMDocumentType

  • « DOMImplementation::createDocument
  • DOMImplementation::hasFeature »
  • PHP Manual
  • DOMImplementation
  • Создаёт пустой объект класса DOMDocumentType

DOMImplementation::createDocumentType

(PHP 5, PHP 7, PHP 8)

DOMImplementation::createDocumentType — Создаёт пустой объект класса DOMDocumentType

Описание

public DOMImplementation::createDocumentType(string $qualifiedName, string $publicId = "", string $systemId = ""): DOMDocumentType|false

Создаёт пустой объект класса DOMDocumentType. Объявления сущностей и обозначения будут недоступны. Ссылки на сущности не будут заменяться и добавления атрибутов по умолчанию не будут происходить.

Список параметров

qualifiedName

Квалифицированное имя типа документа для создания.

publicId

Общедоступный идентификатор внешнего подмножества.

systemId

Системный идентификатор внешнего подмножества.

Возвращаемые значения

Новый объект класса DOMDocumentType с атрибутом ownerDocument, установленным в null или false в случае возникновения ошибки.

Ошибки

DOM_NAMESPACE_ERR

Возникает, если обнаружена ошибка в строке qualifiedName.

Список изменений

Версия | Описание
8.0.0 | При статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.

Примеры

Пример #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, PHP 8)

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 в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | При статическом вызове функции теперь будет выбрасываться ошибка Error. Ранее выдавалась ошибка уровня E_DEPRECATED.

Примеры

Пример #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, PHP 8)

Обзор классов

class DOMNamedNodeMap implements IteratorAggregate, Countable {
/* Свойства */
public readonly int $length;
/* Методы */
public count(): int
public getIterator(): Iterator
public getNamedItem(string $qualifiedName): ?DOMNode
public getNamedItemNS(?string $namespace, string $localName): ?DOMNode
public item(int $index): ?DOMNode
}

Свойства

length

Количество узлов в отображении. Диапазон допустимых индексов дочерних узлов от 0 до length - 1 включительно.

Список изменений

Версия | Описание
8.0.0 | Нереализованные методы DOMNamedNodeMap::setNamedItem(), DOMNamedNodeMap::removeNamedItem(), DOMNamedNodeMap::setNamedItemNS() и DOMNamedNodeMap::removeNamedItem() были удалены.
8.0.0 | Класс DOMNamedNodeMap теперь реализует интерфейс IteratorAggregate. Ранее вместо этого был реализован интерфейс Traversable.

Содержание

  • DOMNamedNodeMap::count — Количество узлов в отображении
  • DOMNamedNodeMap::getIterator — Retrieve an external iterator
  • DOMNamedNodeMap::getNamedItem — Получает узел, указанный по имени
  • DOMNamedNodeMap::getNamedItemNS — Получает узел с заданным локальным именем и URI пространства имён
  • DOMNamedNodeMap::item — Получает узел с заданным индексом


Количество узлов в отображении

  • « DOMNamedNodeMap
  • DOMNamedNodeMap::getIterator »
  • PHP Manual
  • DOMNamedNodeMap
  • Количество узлов в отображении

DOMNamedNodeMap::count

(PHP 7 >= 7.2.0, PHP 8)

DOMNamedNodeMap::count — Количество узлов в отображении

Описание

public DOMNamedNodeMap::count(): int

Получает количество узлов в отображении.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество узлов в отображении, которое идентично свойству length.


Retrieve an external iterator

  • « DOMNamedNodeMap::count
  • DOMNamedNodeMap::getNamedItem »
  • PHP Manual
  • DOMNamedNodeMap
  • Retrieve an external iterator

DOMNamedNodeMap::getIterator

(PHP 8)

DOMNamedNodeMap::getIterator — Retrieve an external iterator

Описание

public DOMNamedNodeMap::getIterator(): Iterator

Returns an external iterator for the named node map.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр объекта, реализующий Iterator или Traversable

Ошибки

Выбрасывает исключение Exception в случае возникновения ошибки.

Смотрите также

  • IteratorAggregate::getIterator() - Получает внешний итератор


Получает узел, указанный по имени

  • « DOMNamedNodeMap::getIterator
  • DOMNamedNodeMap::getNamedItemNS »
  • PHP Manual
  • DOMNamedNodeMap
  • Получает узел, указанный по имени

DOMNamedNodeMap::getNamedItem

(PHP 5, PHP 7, PHP 8)

DOMNamedNodeMap::getNamedItem — Получает узел, указанный по имени

Описание

public DOMNamedNodeMap::getNamedItem(string $qualifiedName): ?DOMNode

Извлекает узел по заданному nodeName.

Список параметров

qualifiedName

Имя nodeName искомого узла.

Возвращаемые значения

Узел (любого типа) с заданным значением тега nodeName или null, если таковых не найдено.

Смотрите также

  • DOMNamedNodeMap::getNamedItemNS() - Получает узел с заданным локальным именем и URI пространства имён


Получает узел с заданным локальным именем и URI пространства имён

  • « DOMNamedNodeMap::getNamedItem
  • DOMNamedNodeMap::item »
  • PHP Manual
  • DOMNamedNodeMap
  • Получает узел с заданным локальным именем и URI пространства имён

DOMNamedNodeMap::getNamedItemNS

(PHP 5, PHP 7, PHP 8)

DOMNamedNodeMap::getNamedItemNS — Получает узел с заданным локальным именем и URI пространства имён

Описание

public DOMNamedNodeMap::getNamedItemNS(?string $namespace, string $localName): ?DOMNode

Извлекает узел с заданным локальным именем localName и URI пространства имён namespace.

Список параметров

namespace

URI пространства имён искомого узла.

localName

Локальное имя искомого узла.

Возвращаемые значения

Узел (любого типа) с заданным локальным именем и URI пространства имён или null, если он не найден.

Смотрите также

  • DOMNamedNodeMap::getNamedItem() - Получает узел, указанный по имени


Получает узел с заданным индексом

  • « DOMNamedNodeMap::getNamedItemNS
  • DOMNode »
  • PHP Manual
  • DOMNamedNodeMap
  • Получает узел с заданным индексом

DOMNamedNodeMap::item

(PHP 5, PHP 7, PHP 8)

DOMNamedNodeMap::item — Получает узел с заданным индексом

Описание

public DOMNamedNodeMap::item(int $index): ?DOMNode

Извлекает узел с заданным индексом index из объекта класса DOMNamedNodeMap.

Список параметров

index

Индекс узла в отображении.

Возвращаемые значения

Узел с индексом index в отображении или null, если индекс имеет недопустимое значение (больше или равен количеству узлов в отображении).


Класс DOMNode

(PHP 5, PHP 7, PHP 8)

Обзор классов

class DOMNode {
/* Свойства */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 $node): DOMNode|false
public C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public cloneNode(bool $deep = false): DOMNode|false
public contains(DOMNode|DOMNameSpaceNode|null $other): bool
public getLineNo(): int
public getNodePath(): ?string
public getRootNode(array $options = null): DOMNode
public hasAttributes(): bool
public hasChildNodes(): bool
public insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public isDefaultNamespace(string $namespace): bool
public isEqualNode(?DOMNode $otherNode): bool
public isSameNode(DOMNode $otherNode): bool
public isSupported(string $feature, string $version): bool
public lookupNamespaceURI(?string $prefix): ?string
public lookupPrefix(string $namespace): ?string
public normalize(): void
public removeChild(DOMNode $child): DOMNode|false
public replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Свойства

nodeName

Возвращает наиболее точное имя для текущего типа узла

nodeValue

Значение этого узла, в зависимости от его типа. В отличие от спецификации W3C, значения узлов DOMElement равно DOMNode::textContent, а не null.

nodeType

Возвращает тип этого узла. Одна из возможных констант XML_xxx_NODE

parentNode

Родительский узел этого узла. Если такого узла нет, возвращает null

parentElement

Родительский элемент текущего элемента. Если такого элемента нет, будет возвращено значение null.

childNodes

Объект DOMNodeList, содержащий всех потомков этого узла. Если потомков нет, возвращается пустой DOMNodeList.

firstChild

Первый дочерний узел этого узла. Если такого узла нет, возвращает null.

lastChild

Последний дочерний узел текущего узла. Если такого узла нет, возвращает null.

previousSibling

Узел, непосредственно предшествующий этому узлу. Если такого узла нет, возвращает null.

nextSibling

Узел, непосредственно следующий после этого узла. Если такого узла нет, возвращает null.

attributes

Объект DOMNamedNodeMap, содержащий атрибуты этого узла (только если это DOMElement), иначе вернёт null.

isConnected

Указывает, присоединен ли узел к документу

ownerDocument

Объект DOMDocument, связанный с этим узлом, либо null, если узел является DOMDocument.

namespaceURI

URI пространство имён этого узла или null, если он не указан.

prefix

Префикс пространства имён этого узла.

localName

Возвращает локальную часть квалифицированного имя этого узла.

baseURI

Абсолютный базовый URI этого узла или null, если реализация не смогла получить абсолютный URI.

textContent

Текстовое содержимое этого узла и его потомков

Список изменений

Версия | Описание
8.3.0 | Были добавлены свойства DOMNode::$parentElement и DOMNode::$isConnected.
8.0.0 | Нереализованные методы DOMNode::compareDocumentPosition(), DOMNode::isEqualNode(), DOMNode::getFeature(), DOMNode::setUserData() и DOMNode::getUserData() были удалены.

Примечания

Замечание:

Модуль DOM использует кодировку UTF-8. Используйте mb_convert_encoding(), UConverter::transcode() или iconv() для работы с другими кодировками.

Смотрите также

  • » Спецификация W3C элемента Node

Содержание

  • DOMNode::appendChild — Добавляет новый дочерний узел в конец списка потомков
  • DOMNode::C14N — Канонизировать узлы в строку
  • DOMNode::C14NFile — Канонизировать узлы в файл
  • DOMNode::cloneNode — Клонирует узел
  • DOMNode::contains — Checks if node contains other node
  • DOMNode::getLineNo — Получить номер строки узла
  • DOMNode::getNodePath — Получение XPath узла
  • DOMNode::getRootNode — Get root node
  • DOMNode::hasAttributes — Проверяет, имеет ли данный узел атрибуты
  • DOMNode::hasChildNodes — Проверяет, имеет ли данный узел потомков
  • DOMNode::insertBefore — Добавляет новый дочерний узел перед указанным узлом
  • DOMNode::isDefaultNamespace — Проверяет, является ли указанный URI пространства имён узла пространством имён по умолчанию или нет
  • DOMNode::isEqualNode — Checks that both nodes are equal
  • 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, PHP 8)

DOMNode::appendChild — Добавляет новый дочерний узел в конец списка потомков

Описание

public DOMNode::appendChild(DOMNode $node): DOMNode|false

Функция добавляет дочерний узел в существующий список потомков или создаёт новый список дочерних элементов. Дочерний узел может быть создан с помощью DOMDocument::createElement(), DOMDocument::createTextNode() и т.д., или может быть использован любой другой узел.

При использовании существующего узла он будет перемещён.

Список параметров

node

Добавляемый дочерний узел.

Возвращаемые значения

Возвращает добавленный узел или false в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения или предыдущий родитель вставляемого узла доступен только для чтения.

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип узла не поддерживает потомков типа, который имеет узел node, или если добавляемый узел является одним из предком целевого узла или им самим.

DOM_WRONG_DOCUMENT_ERR

Возникает, если node создан в другом документе, отличном от того, в котором был создан этот узел.

Примеры

Следующий пример добавляет новый узел в только что созданный документ.

Пример #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();
?>

Смотрите также

  • DOMChildNode::after() - Добавляет узлы после узла
  • DOMNode::insertBefore() - Добавляет новый дочерний узел перед указанным узлом
  • DOMNode::removeChild() - Удаляет дочерний узел из списка потомков
  • DOMNode::replaceChild() - Заменяет дочерний узел


Канонизировать узлы в строку

  • « DOMNode::appendChild
  • DOMNode::C14NFile »
  • PHP Manual
  • DOMNode
  • Канонизировать узлы в строку

DOMNode::C14N

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMNode::C14N — Канонизировать узлы в строку

Описание

public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false

Канонизировать узлы в строку

Список параметров

exclusive

Включить эксклюзивный разбор только тех узлов, которые совпадают с предоставленными xpath или ns_prefixes.

withComments

Сохранять комментарии в выводе.

xpath

Массив xpath для фильтрации узлов.

nsPrefixes

Массив префиксов пространств имён для фильтрации узлов.

Возвращаемые значения

Возвращает канонизированные узлы в виде строки или false в случае возникновения ошибки

Смотрите также

  • DOMNode::C14NFile() - Канонизировать узлы в файл


Канонизировать узлы в файл

  • « DOMNode::C14N
  • DOMNode::cloneNode »
  • PHP Manual
  • DOMNode
  • Канонизировать узлы в файл

DOMNode::C14NFile

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMNode::C14NFile — Канонизировать узлы в файл

Описание

public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false

Канонизировать узлы в файл.

Список параметров

uri

Путь для записи вывода.

exclusive

Включить эксклюзивный разбор только тех узлов, которые совпадают с предоставленными xpath или ns_prefixes.

withComments

Сохранять комментарии в выводе.

xpath

Массив xpath для фильтрации узлов.

nsPrefixes

Массив префиксов пространств имён для фильтрации узлов.

Возвращаемые значения

Количество записанных байт или false в случае возникновения ошибки

Смотрите также

  • DOMNode::C14N() - Канонизировать узлы в строку


Клонирует узел

  • « DOMNode::C14NFile
  • DOMNode::contains »
  • PHP Manual
  • DOMNode
  • Клонирует узел

DOMNode::cloneNode

(PHP 5, PHP 7, PHP 8)

DOMNode::cloneNode — Клонирует узел

Описание

public DOMNode::cloneNode(bool $deep = false): DOMNode|false

Создаёт копию узла.

Список параметров

deep

Указывает, нужно ли копировать всех потомков. Этот параметр по умолчанию имеет значение false.

Возвращаемые значения

Копия узла.


Checks if node contains other node

  • « DOMNode::cloneNode
  • DOMNode::getLineNo »
  • PHP Manual
  • DOMNode
  • Checks if node contains other node

DOMNode::contains

(PHP 8 >= 8.3.0)

DOMNode::contains — Checks if node contains other node

Описание

public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool

Checks if node contains other node.

Список параметров

other

Node to be checked.

Возвращаемые значения

Returns true if node contains other node, false otherwise.

Примеры

Пример #1 DOMNode::contains() example

<?php

$dom = new DOMDocument();
$dom->loadXML(<<<XML
<!DOCTYPE HTML>
<html>
<body>
<main>
<p>Hello, world!</p>
</main>
</body>
</html>
XML);

$xpath = new DOMXPath($dom);
$main = $xpath->query("//main")[0];

var_dump($dom->documentElement->contains($main));
?>

Результат выполнения данного примера:

bool(true)


Получить номер строки узла

  • « DOMNode::contains
  • DOMNode::getNodePath »
  • PHP Manual
  • DOMNode
  • Получить номер строки узла

DOMNode::getLineNo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DOMNode::getLineNo — Получить номер строки узла

Описание

public DOMNode::getLineNo(): 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::getRootNode »
  • PHP Manual
  • DOMNode
  • Получение XPath узла

DOMNode::getNodePath

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMNode::getNodePath — Получение XPath узла

Описание

public DOMNode::getNodePath(): ?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


Get root node

  • « DOMNode::getNodePath
  • DOMNode::hasAttributes »
  • PHP Manual
  • DOMNode
  • Get root node

DOMNode::getRootNode

(PHP 8 >= 8.3.0)

DOMNode::getRootNode — Get root node

Описание

public DOMNode::getRootNode(array $options = null): DOMNode

Get root node.

Список параметров

options

This parameter has no effect yet.

Возвращаемые значения

Returns the root node.

Примеры

Пример #1 DOMNode::getRootNode() example

<?php

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><html><body/></html>');

var_dump($dom->documentElement->firstElementChild->getRootNode() === $dom);
?>

Результат выполнения данного примера:

bool(true)


Проверяет, имеет ли данный узел атрибуты

  • « DOMNode::getRootNode
  • DOMNode::hasChildNodes »
  • PHP Manual
  • DOMNode
  • Проверяет, имеет ли данный узел атрибуты

DOMNode::hasAttributes

(PHP 5, PHP 7, PHP 8)

DOMNode::hasAttributes — Проверяет, имеет ли данный узел атрибуты

Описание

public DOMNode::hasAttributes(): bool

Этот метод проверяет, содержит ли текущий узел атрибуты. Проверяемый узел должен быть XML_ELEMENT_NODE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • DOMNode::hasChildNodes() - Проверяет, имеет ли данный узел потомков


Проверяет, имеет ли данный узел потомков

  • « DOMNode::hasAttributes
  • DOMNode::insertBefore »
  • PHP Manual
  • DOMNode
  • Проверяет, имеет ли данный узел потомков

DOMNode::hasChildNodes

(PHP 5, PHP 7, PHP 8)

DOMNode::hasChildNodes — Проверяет, имеет ли данный узел потомков

Описание

public DOMNode::hasChildNodes(): bool

Эта функция проверяет, содержит ли данный узел потомков.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • DOMNode::hasAttributes() - Проверяет, имеет ли данный узел атрибуты


Добавляет новый дочерний узел перед указанным узлом

  • « DOMNode::hasChildNodes
  • DOMNode::isDefaultNamespace »
  • PHP Manual
  • DOMNode
  • Добавляет новый дочерний узел перед указанным узлом

DOMNode::insertBefore

(PHP 5, PHP 7, PHP 8)

DOMNode::insertBefore — Добавляет новый дочерний узел перед указанным узлом

Описание

public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false

Данная функция вставляет новый узел перед указанным узлом. Чтобы вносить изменения в добавленный дочерний узел, необходимо использовать возвращаемый узел.

При использовании существующего узла он будет перемещён.

Список параметров

node

Новый узел.

child

Контрольный узел. Если отсутствует, то node добавляется в конец списка потомков.

Возвращаемые значения

Возвращает добавленный узел или false в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения или предыдущий родитель вставляемого узла доступен только для чтения.

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип узла не поддерживает потомков типа, который имеет узел node, или же если добавляемый узел является предком целевого узла или им самим.

DOM_WRONG_DOCUMENT_ERR

Возникает, если node создан в другом документе, отличном от того, в котором был создан этот узел.

DOM_NOT_FOUND

Возникает, если child не является дочерним узлом данного узла.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков


Проверяет, является ли указанный URI пространства имён узла пространством имён по умолчанию или нет

  • « DOMNode::insertBefore
  • DOMNode::isEqualNode »
  • PHP Manual
  • DOMNode
  • Проверяет, является ли указанный URI пространства имён узла пространством имён по умолчанию или нет

DOMNode::isDefaultNamespace

(PHP 5, PHP 7, PHP 8)

DOMNode::isDefaultNamespace — Проверяет, является ли указанный URI пространства имён узла пространством имён по умолчанию или нет

Описание

public DOMNode::isDefaultNamespace(string $namespace): bool

Указывает, является ли namespace пространством имён по умолчанию.

Список параметров

namespace

URI пространства имён.

Возвращаемые значения

Возвращает true, если namespace является пространством имён по умолчанию, false в противном случае.


Checks that both nodes are equal

  • « DOMNode::isDefaultNamespace
  • DOMNode::isSameNode »
  • PHP Manual
  • DOMNode
  • Checks that both nodes are equal

DOMNode::isEqualNode

(PHP 8 >= 8.3.0)

DOMNode::isEqualNode — Checks that both nodes are equal

Описание

public DOMNode::isEqualNode(?DOMNode $otherNode): bool

Checks that both nodes are equal.

Список параметров

otherNode

The node.

Возвращаемые значения

Returns true if both nodes are equal, false otherwise.

Примеры

Пример #1 DOMNode::isEqualNode() example

<?php

$dom1 = (new DOMDocument())->createElement('h1', 'Hello World!');
$dom2 = (new DOMDocument())->createElement('h1', 'Hello World!');

var_dump($dom1->isEqualNode($dom2));
?>

Результат выполнения данного примера:

bool(true)


Указывает, являются ли два узла одним и тем же узлом

  • « DOMNode::isEqualNode
  • DOMNode::isSupported »
  • PHP Manual
  • DOMNode
  • Указывает, являются ли два узла одним и тем же узлом

DOMNode::isSameNode

(PHP 5, PHP 7, PHP 8)

DOMNode::isSameNode — Указывает, являются ли два узла одним и тем же узлом

Описание

public DOMNode::isSameNode(DOMNode $otherNode): bool

Эта функция указывает, являются ли два узла одним и тем же узлом. Данное сравнение происходит не на основе содержимого узлов.

Список параметров

otherNode

Сравниваемый узел.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Проверяет, поддерживается ли возможность в определённой версии

  • « DOMNode::isSameNode
  • DOMNode::lookupNamespaceURI »
  • PHP Manual
  • DOMNode
  • Проверяет, поддерживается ли возможность в определённой версии

DOMNode::isSupported

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

DOMNode::lookupNamespaceURI — Получает URI пространства имён узла по префиксу

Описание

public DOMNode::lookupNamespaceURI(?string $prefix): ?string

Получает URI пространства имён узла на основе префикса prefix.

Список параметров

prefix

Префикс, который необходимо искать. Если этот параметр равен null, то метод возвращает URI пространства имён по умолчанию, если таковое имеется.

Возвращаемые значения

Возвращает URI связанного пространства имён или null, если оно не найдено.

Смотрите также

  • DOMNode::lookupPrefix() - Возвращает префикс пространства имён узла из URI пространства имён


Возвращает префикс пространства имён узла из URI пространства имён

  • « DOMNode::lookupNamespaceURI
  • DOMNode::normalize »
  • PHP Manual
  • DOMNode
  • Возвращает префикс пространства имён узла из URI пространства имён

DOMNode::lookupPrefix

(PHP 5, PHP 7, PHP 8)

DOMNode::lookupPrefix — Возвращает префикс пространства имён узла из URI пространства имён

Описание

public DOMNode::lookupPrefix(string $namespace): ?string

Возвращает префикс пространства имён узла на основе URI пространства имён.

Список параметров

namespace

URI пространства имён.

Возвращаемые значения

Возвращает префикс пространства имён или false в случае возникновения ошибки.

Смотрите также

  • DOMNode::lookupNamespaceUri() - Получает URI пространства имён узла по префиксу


Нормализует узел

  • « DOMNode::lookupPrefix
  • DOMNode::removeChild »
  • PHP Manual
  • DOMNode
  • Нормализует узел

DOMNode::normalize

(PHP 5, PHP 7, PHP 8)

DOMNode::normalize — Нормализует узел

Описание

public DOMNode::normalize(): void

Удаляет пустые текстовые узлы и объединяет соседние текстовые узлы в этом узле и всех его дочерних узлов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Смотрите также

  • » Спецификация DOM
  • DOMDocument::normalizeDocument() - Нормализует документ


Удаляет дочерний узел из списка потомков

  • « DOMNode::normalize
  • DOMNode::replaceChild »
  • PHP Manual
  • DOMNode
  • Удаляет дочерний узел из списка потомков

DOMNode::removeChild

(PHP 5, PHP 7, PHP 8)

DOMNode::removeChild — Удаляет дочерний узел из списка потомков

Описание

public DOMNode::removeChild(DOMNode $child): DOMNode|false

Эта функция удаляет дочерний узел из списка потомков.

Список параметров

child

Удаляемый дочерний узел.

Возвращаемые значения

Функция возвращает удаляемый дочерний узел, если он может быть удалён или false в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND

Возникает, если child не является дочерним узлом данного узла.

Примеры

Следующий пример удаляет элемент 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>

Смотрите также

  • DOMChildNode::remove() - Удаляет узел
  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMNode::replaceChild() - Заменяет дочерний узел


Заменяет дочерний узел

  • « DOMNode::removeChild
  • DOMNodeList »
  • PHP Manual
  • DOMNode
  • Заменяет дочерний узел

DOMNode::replaceChild

(PHP 5, PHP 7, PHP 8)

DOMNode::replaceChild — Заменяет дочерний узел

Описание

public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false

Функция заменяет дочерний узел child новым узлом. Если узел node уже является дочерним, то он не будет добавлен во второй раз. Если замена прошла успешно, то будет возвращён старый (заменяемый) узел.

Список параметров

node

Новый узел. Должен быть частью целевого документа, то есть создан посредством одного из методов DOMDocument->createXXX() или импортирован в документ через DOMDocument::importNode.

child

Старый узел.

Возвращаемые значения

Старый узел или false в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения или предыдущий родитель вставляемого узла доступен только для чтения.

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип узла не поддерживает потомков типа, который имеет узел node, или же если добавляемый узел является предком целевого узла или им самим.

DOM_WRONG_DOCUMENT_ERR

Возникает, если node создан в другом документе, отличном от того, в котором был создан этот узел.

DOM_NOT_FOUND

Возникает, если child не является дочерним узлом данного узла.

Смотрите также

  • DOMChildNode::replaceWith() - Заменяет узел новыми узлами
  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMNode::removeChild() - Удаляет дочерний узел из списка потомков


Класс DOMNodeList

(PHP 5, PHP 7, PHP 8)

Обзор классов

class DOMNodeList implements IteratorAggregate, Countable {
/* Свойства */
public readonly int $length;
/* Методы */
public count(): int
public getIterator(): Iterator
public item(int $index): DOMElement|DOMNode|DOMNameSpaceNode|null
}

Свойства

length

Количество узлов в списке. Диапазон действительных индексов дочерних узлов находится в промежутке от 0 до length - 1 включительно.

Список изменений

Версия | Описание
8.0.0 | Класс DOMNodeList теперь реализует интерфейс IteratorAggregate. Ранее вместо этого был реализован интерфейс Traversable.
7.2.0 | Реализован интерфейс Countable и возвращает значение свойства length.

Смотрите также

  • » Спецификация W3C по NodeList

Содержание

  • DOMNodeList::count — Получить количество узлов в списке
  • DOMNodeList::getIterator — Retrieve an external iterator
  • DOMNodeList::item — Получает узел с заданным индексом


Получить количество узлов в списке

  • « DOMNodeList
  • DOMNodeList::getIterator »
  • PHP Manual
  • DOMNodeList
  • Получить количество узлов в списке

DOMNodeList::count

(PHP 7 >= 7.2.0, PHP 8)

DOMNodeList::count — Получить количество узлов в списке

Описание

public DOMNodeList::count(): int

Получает количество узлов в списке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество узлов в списке, который идентичен свойству length.


Retrieve an external iterator

  • « DOMNodeList::count
  • DOMNodeList::item »
  • PHP Manual
  • DOMNodeList
  • Retrieve an external iterator

DOMNodeList::getIterator

(PHP 8)

DOMNodeList::getIterator — Retrieve an external iterator

Описание

public DOMNodeList::getIterator(): Iterator

Returns an external iterator for the node list.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр объекта, реализующий Iterator или Traversable

Ошибки

Выбрасывает исключение Exception в случае возникновения ошибки.

Смотрите также

  • IteratorAggregate::getIterator() - Получает внешний итератор


Получает узел с заданным индексом

  • « DOMNodeList::getIterator
  • DOMNotation »
  • PHP Manual
  • DOMNodeList
  • Получает узел с заданным индексом

DOMNodeList::item

(PHP 5, PHP 7, PHP 8)

DOMNodeList::item — Получает узел с заданным индексом

Описание

public DOMNodeList::item(int $index): DOMElement|DOMNode|DOMNameSpaceNode|null

Извлекает узел с заданным индексом 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, PHP 8)

Обзор классов

class DOMNotation extends DOMNode {
/* Свойства */
public readonly string $publicId;
public readonly string $systemId;
/* Наследуемые свойства */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Свойства

publicId

systemId


Интерфейс DOMParentNode

(PHP 8)

Обзор интерфейсов

interface DOMParentNode {
/* Методы */
public append(DOMNode|string ...$nodes): void
public prepend(DOMNode|string ...$nodes): void
public replaceChildren(DOMNode|string ...$nodes): void
}

Содержание

  • DOMParentNode::append — Добавляет узлы после последнего дочернего узла
  • DOMParentNode::prepend — Добавляет узлы перед первым дочерним узлом
  • DOMParentNode::replaceChildren — Replace children in node


Добавляет узлы после последнего дочернего узла

  • « DOMParentNode
  • DOMParentNode::prepend »
  • PHP Manual
  • DOMParentNode
  • Добавляет узлы после последнего дочернего узла

DOMParentNode::append

(PHP 8)

DOMParentNode::append — Добавляет узлы после последнего дочернего узла

Описание

public DOMParentNode::append(DOMNode|string ...$nodes): void

Добавляет один или несколько nodes в список дочерних узлов после последнего дочернего узла.

Список параметров

nodes

Узлы, которые необходимо добавить. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле без документа владельца теперь работает. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Смотрите также

  • DOMParentNode::prepend() - Добавляет узлы перед первым дочерним узлом


Добавляет узлы перед первым дочерним узлом

  • « DOMParentNode::append
  • DOMParentNode::replaceChildren »
  • PHP Manual
  • DOMParentNode
  • Добавляет узлы перед первым дочерним узлом

DOMParentNode::prepend

(PHP 8)

DOMParentNode::prepend — Добавляет узлы перед первым дочерним узлом

Описание

public DOMParentNode::prepend(DOMNode|string ...$nodes): void

Добавляет один или несколько nodes в список дочерних узлов перед первым дочерним узлом.

Список параметров

nodes

Узлы, которые необходимо добавить. Строки автоматически преобразуются в текстовые узлы.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Вызов этого метода на узле без документа владельца теперь работает. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Смотрите также

  • DOMParentNode::append() - Добавляет узлы после последнего дочернего узла


Replace children in node

  • « DOMParentNode::prepend
  • DOMProcessingInstruction »
  • PHP Manual
  • DOMParentNode
  • Replace children in node

DOMParentNode::replaceChildren

(PHP 8 >= 8.3.0)

DOMParentNode::replaceChildren — Replace children in node

Описание

public DOMParentNode::replaceChildren(DOMNode|string ...$nodes): void

Replace children in node.

Список параметров

nodes

The nodes replacing the children. Strings are automatically converted to text nodes.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип одного из переданных в параметре nodes элементов не допускается в типе узла, или если добавляемый узел является одним из предков этого узла или самим этим узлом.

DOM_WRONG_DOCUMENT_ERR

Возникает, если один из переданных в параметре nodes элементов был создан из документа, отличного от того, в котором был создан данный узел.

Список изменений

Версия | Описание
8.3.0 | Calling this method on a node without an owner document now works. Ранее это выбрасывало исключение DOMException с кодом DOM_HIERARCHY_REQUEST_ERR.

Примеры

Пример #1 DOMParentNode::replaceChildren() example

<?php

$dom = new DOMDocument();
$dom->loadHTML('<!DOCTYPE HTML><html><p>hi</p> test <p>hi2</p></html>');

$dom->documentElement->replaceChildren('foo', $dom->createElement('p'), 'bar');
echo $dom->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE HTML>
<html>foo<p/>bar</html>


Класс DOMProcessingInstruction

(PHP 5, PHP 7, PHP 8)

Обзор классов

class DOMProcessingInstruction extends DOMNode {
/* Свойства */
public readonly string $target;
public string $data;
/* Наследуемые свойства */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Свойства

target

data

Содержание

  • DOMProcessingInstruction::__construct — Создаёт новый объект класса DOMProcessingInstruction


Создаёт новый объект класса DOMProcessingInstruction

  • « DOMProcessingInstruction
  • DOMText »
  • PHP Manual
  • DOMProcessingInstruction
  • Создаёт новый объект класса DOMProcessingInstruction

DOMProcessingInstruction::__construct

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

Введение

Класс DOMText наследуется от DOMCharacterData и представляет текстовое содержимое DOMElement или DOMAttr.

Обзор классов

class DOMText extends DOMCharacterData {
/* Свойства */
public readonly string $wholeText;
/* Наследуемые свойства */
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 $data = "")
public isElementContentWhitespace(): bool
public isWhitespaceInElementContent(): bool
public splitText(int $offset): DOMText|false
/* Наследуемые методы */
public DOMCharacterData::after(DOMNode|string ...$nodes): void
public DOMCharacterData::appendData(string $data): true
public DOMCharacterData::before(DOMNode|string ...$nodes): void
public DOMCharacterData::deleteData(int $offset, int $count): bool
public DOMCharacterData::insertData(int $offset, string $data): bool
public DOMCharacterData::remove(): void
public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void
public DOMCharacterData::substringData(int $offset, int $count): string|false
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Свойства

wholeText

Содержит весь текст смежных (не разделённые другими элементами, комментариями или инструкциями) текстовых узлов.

Список изменений

Версия | Описание
8.0.0 | Нереализованный метод DOMText::replaceWholeText() был удалён.

Содержание

  • DOMText::__construct — Создаёт объект класса DOMText
  • DOMText::isElementContentWhitespace — Возвращает, содержит ли текстовый узел пробел в содержимом элемента
  • DOMText::isWhitespaceInElementContent — Определяет, содержит ли текстовый узел пробелы в содержимом
  • DOMText::splitText — Разделяет узел на два, начиная с заданной позиции


Создаёт объект класса DOMText

  • « DOMText
  • DOMText::isElementContentWhitespace »
  • PHP Manual
  • DOMText
  • Создаёт объект класса DOMText

DOMText::__construct

(PHP 5, PHP 7, PHP 8)

DOMText::__construct — Создаёт объект класса DOMText

Описание

public DOMText::__construct(string $data = "")

Создаёт новый экземпляр класса DOMText.

Список параметров

data

Значение текстового узла. Если значение не передано, будет создан пустой текстовый узел.

Примеры

Пример #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(): bool

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Определяет, содержит ли текстовый узел пробелы в содержимом

  • « DOMText::isElementContentWhitespace
  • DOMText::splitText »
  • PHP Manual
  • DOMText
  • Определяет, содержит ли текстовый узел пробелы в содержимом

DOMText::isWhitespaceInElementContent

(PHP 5, PHP 7, PHP 8)

DOMText::isWhitespaceInElementContent — Определяет, содержит ли текстовый узел пробелы в содержимом

Описание

public DOMText::isWhitespaceInElementContent(): bool

Определяет, есть ли пробелы в содержимом текстового узла или он пустой. Текстовые узлы могут содержать пробелы в своём содержимом во время загрузки документа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если узел состоит только из нуля или более пробелов. Возвращает false в противном случае.


Разделяет узел на два, начиная с заданной позиции

  • « DOMText::isWhitespaceInElementContent
  • DOMXPath »
  • PHP Manual
  • DOMText
  • Разделяет узел на два, начиная с заданной позиции

DOMText::splitText

(PHP 5, PHP 7, PHP 8)

DOMText::splitText — Разделяет узел на два, начиная с заданной позиции

Описание

public DOMText::splitText(int $offset): DOMText|false

Разделяет узел на два, вторая часть начинается с позиции offset, полученные узлы становятся братьями.

После разделения исходный узел будет содержать данные до позиции offset. Если исходный узел имеет родителя, то второй, созданный, узел станет следующим братом исходного узла. Если offset равно длине содержимого узла, новый узел всё равно будет создан, но не будет содержать данных.

Список параметров

offset

Позиция, с которой узел будет разделён, начиная с 0.

Возвращаемые значения

Новый узел того же типа, содержащий данные до и после offset.


Класс DOMXPath

(PHP 5, PHP 7, PHP 8)

Введение

Поддерживает XPath 1.0

Обзор классов

class DOMXPath {
/* Свойства */
public readonly DOMDocument $document;
public bool $registerNodeNamespaces;
/* Методы */
public __construct(DOMDocument $document, bool $registerNodeNS = true)
public evaluate(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed
public query(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed
public registerNamespace(string $prefix, string $namespace): bool
public registerPhpFunctions(string|array|null $restrict = null): void
}

Свойства

document

registerNodeNamespaces

Если установлено значение true, пространства имён регистрируются в узле.

Список изменений

Версия | Описание
8.0.0 | Добавлено свойство registerNodeNamespaces.

Содержание

  • 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, PHP 8)

DOMXPath::__construct — Создаёт новый объект класса DOMXPath

Описание

public DOMXPath::__construct(DOMDocument $document, bool $registerNodeNS = true)

Создаёт новый объект класса DOMXPath.

Список параметров

document

Объект класса DOMDocument, связанный с DOMXPath.


Вычисляет переданное выражение XPath и возвращает типизированный результат, если возможно

  • « DOMXPath::__construct
  • DOMXPath::query »
  • PHP Manual
  • DOMXPath
  • Вычисляет переданное выражение XPath и возвращает типизированный результат, если возможно

DOMXPath::evaluate

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

DOMXPath::evaluate — Вычисляет переданное выражение XPath и возвращает типизированный результат, если возможно

Описание

public DOMXPath::evaluate(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed

Выполняет переданное выражение XPath expression и возвращает типизированный результат, если это возможно.

Список параметров

expression

Выражение XPath для выполнения.

contextNode

Дополнительный параметр contextNode может быть указан для выполнения относительных запросов XPath. По умолчанию запросы выполняются относительно корневого элемента.

registerNodeNS

Дополнительный параметр registerNodeNS можно указать, чтобы отключить автоматическую регистрацию контекста узла.

Возвращаемые значения

Возвращает типизированный результат, если это возможно, либо объект DOMNodeList, содержащий все узлы, соответствующие заданному XPath-выражению expression.

Если expression построено неправильно или contextNode имеет неверное значение, DOMXPath::evaluate() вернёт false.

Примеры

Пример #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, PHP 8)

DOMXPath::query — Выполняет заданное выражение XPath

Описание

public DOMXPath::query(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed

Выполняет заданное XPath-выражение expression.

Список параметров

expression

Выражение XPath для выполнения.

contextNode

Дополнительный параметр contextNode может быть указан для выполнения относительных запросов XPath. По умолчанию запросы выполняются относительно корневого элемента.

registerNodeNS

Дополнительный параметр registerNodeNS можно указать, чтобы отключить автоматическую регистрацию контекста узла.

Возвращаемые значения

Возвращает объект DOMNodeList, содержащий узлы, соответствующие выражению XPath expression. Любое выражение, не возвращающее узлы, вернёт пустой объект DOMNodeList.

Если expression построено неправильно или contextNode имеет неверное значение, DOMXPath::query() вернёт false.

Примеры

Пример #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, PHP 8)

DOMXPath::registerNamespace — Регистрирует пространство имён с объектом DOMXPath

Описание

public DOMXPath::registerNamespace(string $prefix, string $namespace): bool

Регистрирует URI пространства имён namespace и префикс prefix с объектом DOMXPath.

Список параметров

prefix

Префикс.

namespace

URI пространства имён.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Регистрация PHP-функций как функций XPath

  • « DOMXPath::registerNamespace
  • Функции DOM »
  • PHP Manual
  • DOMXPath
  • Регистрация PHP-функций как функций XPath

DOMXPath::registerPhpFunctions

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DOMXPath::registerPhpFunctions — Регистрация PHP-функций как функций XPath

Описание

public DOMXPath::registerPhpFunctions(string|array|null $restrict = null): 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, PHP 8)

dom_import_simplexml — Получает объект класса DOMElement из объекта класса SimpleXMLElement

Описание

dom_import_simplexml(object $node): DOMElement

Эта функция берет узел node класса SimpleXML и превращает его в узел DOMElement. Затем этот новый объект может быть использован как собственный узел DOMElement.

Список параметров

node

Узел SimpleXMLElement.

Возвращаемые значения

Добавленный узел DOMElement.

Список изменений

Версия | Описание
8.0.0 | Функция больше не возвращает null в случае возникновения ошибки.

Примеры

Пример #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

  • Введение
  • Установка и настройка
    • Требования
    • Установка для PHP >= 7.4
    • Установка для PHP < 7.4
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • libXMLError — Класс libXMLError
  • Функции libxml
    • libxml_clear_errors — Очистка буфера ошибок libxml
    • libxml_disable_entity_loader — Отключение возможности загрузки сущностей из внешних источников
    • libxml_get_errors — Получение массива произошедших ошибок
    • libxml_get_external_entity_loader — Получает текущий внешний загрузчик сущностей
    • 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 >= 7.4
  • Установка для PHP < 7.4
  • Настройка во время выполнения
  • Типы ресурсов


Требования

Для работы этого модуля требуется библиотека » libxml >= 2.9.0 с PHP 8.0, или libxml >= 2.6.0 до PHP 8.0.


Установка для PHP >= 7.4

Модуль libxml включён по умолчанию, но может быть отключён при указании директивы --without-libxml.

PHP использует утилиту pkg-config для выбора правильного файла библиотеки, заголовочных файлов и флагов компиляции для работы с модулем libxml2. Чтобы убедиться, что выбрана желаемая версия модуля libxml2, можно перед запуском сценария настройки через переменную окружения PKG_CONFIG_PATH указать утилите pkg-config путь для поиска нужной версии модуля:

PKG_CONFIG_PATH="/path/to/libxml2/prefix/lib/pkgconfig:/lib/pkgconfig"


Установка для PHP < 7.4

Модуль 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 < 7.4
  • Типы ресурсов »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

Данный модуль не определяет никакие директивы конфигурации в php.ini.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

LIBXML_BIGLINES (int)
Позволяет корректно сообщать о номерах строк больше 65535.

Замечание:

Доступно начиная с PHP 7.0.0 с Libxml >= 2.9.0

LIBXML_COMPACT (int)
Активирует оптимизацию выделения памяти для небольших узлов. Это может повысить быстродействие приложения без внесения изменений в коде.

Замечание:

Доступна только в Libxml >= 2.6.21

LIBXML_DTDATTR (int)
DTD-атрибуты по умолчанию
LIBXML_DTDLOAD (int)
Загрузка внешнего подмножества
LIBXML_DTDVALID (int)
Проверка корректности документа с помощью DTD
Предостережение

Включение проверки DTD может способствовать атакам XML External Entity (XXE).

LIBXML_HTML_NOIMPLIED (int)
Устанавливает флаг HTML_PARSE_NOIMPLIED, который отключает автоматическое добавление недостающих html/body... элементов.

Замечание:

Доступно только в Libxml >= 2.7.7 (начиная с PHP >= 5.4.0)

LIBXML_HTML_NODEFDTD (int)
Устанавливает флаг HTML_PARSE_NODEFDTD, который предотвращает добавление стандартного doctype, если он не был найден.

Замечание:

Доступно только в Libxml >= 2.7.8 (начиная с >= 5.4.0)

LIBXML_NOBLANKS (int)
Удаление пустых узлов
LIBXML_NOCDATA (int)
Объединить CDATA как текстовые узлы
LIBXML_NOEMPTYTAG (int)
Разворачивать пустые теги (например, <br/> в <br></br>)

Замечание:

Эта настройка доступна на данный момент только в функциях DOMDocument::save и DOMDocument::saveXML.

LIBXML_NOENT (int)
Замещение сущностей
Предостережение

Включение замещения объекта может облегчить атаки на внешний объект XML (XXE).

LIBXML_NOERROR (int)
Запретить отчёты об ошибках
LIBXML_NONET (int)
Отключить доступ к сети во время загрузки документов
LIBXML_NOWARNING (int)
Запретить предупреждения
LIBXML_NOXMLDECL (int)
Убрать объявление XML при сохранении документа

Замечание:

Доступна только в Libxml >= 2.6.21

LIBXML_NSCLEAN (int)
Удалить лишние объявления пространств имён
LIBXML_PARSEHUGE (int)
Установить флаг XML_PARSE_HUGE, который отключает жёстко заданный лимит в парсере. Это затрагивает как лимиты максимальной глубины документа или рекурсии элементов, так и лимиты размеров текстовых элементов.

Замечание:

Доступно только в Libxml >= 2.7.0 (начиная с PHP >= 5.3.2 и PHP >= 5.2.12)

LIBXML_PEDANTIC (int)
Устанавливает флаг XML_PARSE_PEDANTIC, который включает педантичный отчёт об ошибках.

Замечание:

Доступно с PHP >= 5.4.0

LIBXML_XINCLUDE (int)
Реализовать замещение XInclude
LIBXML_ERR_ERROR (int)
Устранимая ошибка
LIBXML_ERR_FATAL (int)
Фатальная ошибка
LIBXML_ERR_NONE (int)
Нет ошибок
LIBXML_ERR_WARNING (int)
Простое предупреждение
LIBXML_VERSION (int)
Версия libxml в виде 20605 или 20617
LIBXML_DOTTED_VERSION (string)
Версия libxml в виде 2.6.5 или 2.6.17
LIBXML_SCHEMA_CREATE (int)
Создаёт со значением по умолчанию или фиксированные узлы при проверке схемы XSD

Замечание:

Доступно только в Libxml >= 2.6.14 (в PHP >= 5.5.2)


Класс libXMLError

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Содержит различную информацию об ошибках, выбрасываемых libxml. Коды ошибок описаны в официальной » xmlError API документации.

Обзор классов

class 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_external_entity_loader — Получает текущий внешний загрузчик сущностей
  • 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, PHP 8)

libxml_clear_errors — Очистка буфера ошибок libxml

Описание

libxml_clear_errors(): 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, PHP 8)

libxml_disable_entity_loader — Отключение возможности загрузки сущностей из внешних источников

Внимание

Эта функция была УДАЛЕНА в PHP 8.0.0. Использование этой функции не рекомендуется.

Описание

libxml_disable_entity_loader(bool $disable = true): bool

Отключение/включение возможности загружать внешние сущности. Обратите внимание, что отключение загрузки внешних сущностей может вызвать общие проблемы с загрузкой XML-документов. Однако в libxml 2.9.0 подстановка сущностей отключена по умолчанию, поэтому нет необходимости отключать загрузку внешних сущностей, если нет необходимости разрешать ссылки на внутренние сущности с помощью LIBXML_NOENT. Как правило, лучше использовать libxml_set_external_entity_loader() для подавления загрузки внешних сущностей.

Список параметров

disable

Отключение (true) или включение (false) модулей libxml (таких как DOM, XMLWriter и XMLReader) для загрузки внешних сущностей.

Возвращаемые значения

Возвращает предыдущее значение.

Смотрите также

  • libxml_use_internal_errors() - Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
  • libxml_set_external_entity_loader() - Изменение загрузчика по умолчанию для внешних объектов
  • Константа LIBXML_NOENT


Получение массива произошедших ошибок

  • « libxml_disable_entity_loader
  • libxml_get_external_entity_loader »
  • PHP Manual
  • Функции libxml
  • Получение массива произошедших ошибок

libxml_get_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_get_errors — Получение массива произошедших ошибок

Описание

libxml_get_errors(): 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_get_errors
  • libxml_get_last_error »
  • PHP Manual
  • Функции libxml
  • Получает текущий внешний загрузчик сущностей

libxml_get_external_entity_loader

(PHP 8 >= 8.2.0)

libxml_get_external_entity_loader — Получает текущий внешний загрузчик сущностей

Описание

libxml_get_external_entity_loader(): ?callable

Получает внешний загрузчик сущностей, ранее установленный с помощью функции libxml_set_external_entity_loader().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внешний загрузчик сущностей, ранее установленный с помощью функции libxml_set_external_entity_loader(). Если эта функция никогда не вызывалась или если она была вызвана с null, будет возвращён null.

Смотрите также

  • libxml_set_external_entity_loader() - Изменение загрузчика по умолчанию для внешних объектов


Извлечение последней ошибки из libxml

  • « libxml_get_external_entity_loader
  • libxml_set_external_entity_loader »
  • PHP Manual
  • Функции libxml
  • Извлечение последней ошибки из libxml

libxml_get_last_error

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_get_last_error — Извлечение последней ошибки из libxml

Описание

libxml_get_last_error(): LibXMLError|false

Извлечение последней ошибки из 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, PHP 8)

libxml_set_external_entity_loader — Изменение загрузчика по умолчанию для внешних объектов

Описание

libxml_set_external_entity_loader(?callable $resolver_function): bool

Изменение загрузчика по умолчанию для внешних объектов. Можно использовать для подавления расширения произвольных внешних сущностей, чтобы избежать XXE-атак, даже если для соответствующей операции установлено значение LIBXML_NOENT. Обычно это лучше, чем вызов libxml_disable_entity_loader().

Список параметров

resolver_function

Callback-функция (callable) со следующей сигнатурой:

resolver(?string $public_id, string $system_id, array $context): resource|string|null
public_id
Публичный идентификатор.
system_id
Системный идентификатор.
context
Массив из четырёх элементов: "directory", "intSubName", "extSubURI" и "extSubSystem".
Эта callback-функция должна возвращать ресурс (resource) или строку (string) из которой можно открыть ресурс. Если возвращается 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_get_external_entity_loader() - Получает текущий внешний загрузчик сущностей


Установка контекста потоков для следующей загрузки или записи документа посредством libxml

  • « libxml_set_external_entity_loader
  • libxml_use_internal_errors »
  • PHP Manual
  • Функции libxml
  • Установка контекста потоков для следующей загрузки или записи документа посредством libxml

libxml_set_streams_context

(PHP 5, PHP 7, PHP 8)

libxml_set_streams_context — Установка контекста потоков для следующей загрузки или записи документа посредством libxml

Описание

libxml_set_streams_context(resource $context): void

Установка контекста потока для следующей загрузки или записи документа посредством libxml.

Список параметров

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
  • SimpleXML »
  • PHP Manual
  • Функции libxml
  • Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю

libxml_use_internal_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_use_internal_errors — Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю

Описание

libxml_use_internal_errors(?bool $use_errors = null): bool

libxml_use_internal_errors() позволяет отключить стандартные ошибки libxml и включить пользовательскую обработку ошибок.

Список параметров

use_errors

Включает (true) пользовательскую обработку ошибок или отключает её (false). Отключение также очищает все текущие ошибки libxml.

Возвращаемые значения

Эта функция возвращает предыдущее значение параметра use_errors.

Список изменений

Версия | Описание
8.0.0 | use_errors теперь допускает значение null. Ранее значением по умолчанию было false.

Примеры

Пример #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() - Получение массива произошедших ошибок


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::current — Возвращает текущий элемент
    • SimpleXMLElement::getDocNamespaces — Возвращает пространства имён, объявленные в документе
    • SimpleXMLElement::getName — Получает имя элемента XML
    • SimpleXMLElement::getNamespaces — Возвращает пространства имён, используемые в документе
    • SimpleXMLElement::getChildren — Возвращает дочерние элементы текущего элемента
    • SimpleXMLElement::hasChildren — Проверяет, имеет ли текущий элемент дочерние элементы
    • SimpleXMLElement::key — Возвращает имя XML-тега текущего элемента
    • SimpleXMLElement::next — Переход к следующему элементу
    • SimpleXMLElement::registerXPathNamespace — Создаёт префикс/пространство имён контекста для следующего запроса XPath
    • SimpleXMLElement::rewind — Перемотка к первому элементу
    • SimpleXMLElement::saveXML — Псевдоним SimpleXMLElement::asXML
    • SimpleXMLElement::__toString — Возвращает содержимое строки
    • SimpleXMLElement::valid — Проверяет, является ли текущий элемент корректным
    • SimpleXMLElement::xpath — Запускает запрос XPath к XML-данным
  • SimpleXMLIterator — Класс SimpleXMLIterator
  • Функции SimpleXML
    • simplexml_import_dom — Получает объект класса SimpleXMLElement из узла DOM
    • simplexml_load_file — Интерпретирует XML-файл в объект
    • simplexml_load_string — Интерпретирует строку с XML в объект


Введение

Модуль SimpleXML предоставляет очень простой и лёгкий в использовании набор инструментов для преобразования XML в объект, с которым можно затем работать через его свойства и с помощью итераторов.


Установка

Модуль включён по умолчанию. Он может быть отключён во время выполнения с помощью следующей опции: --disable-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
include 'example.php';

$movies1 = new SimpleXMLElement($xmlstr);
$movies2 = new SimpleXMLElement($xmlstr);
var_dump($movies1 == $movies2); // false
?>

Результат выполнения данного примера:

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 Добавление элементов и атрибутов

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, PHP 8)

Введение

Представляет собой элемент в XML-документе.

Обзор классов

class SimpleXMLElement implements Stringable, Countable, RecursiveIterator {
/* Методы */
public __construct(
string $data,
int $options = 0,
bool $dataIsURL = false,
string $namespaceOrPrefix = "",
bool $isPrefix = false
)
public addAttribute(string $qualifiedName, string $value, ?string $namespace = null): void
public addChild(string $qualifiedName, ?string $value = null, ?string $namespace = null): ?SimpleXMLElement
public asXML(?string $filename = null): string|bool
public attributes(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement
public children(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement
public count(): int
public current(): SimpleXMLElement
public getDocNamespaces(bool $recursive = false, bool $fromRoot = true): array|false
public getName(): string
public getNamespaces(bool $recursive = false): array
public getChildren(): ?SimpleXMLElement
public hasChildren(): bool
public key(): string
public next(): void
public registerXPathNamespace(string $prefix, string $namespace): bool
public rewind(): void
public __toString(): string
public valid(): bool
public xpath(string $expression): array|null|false
}

Список изменений

Версия | Описание
8.0.0 | Класс SimpleXMLElement теперь реализует интерфейсы Stringable, Countable, и RecursiveIterator.

Содержание

  • SimpleXMLElement::addAttribute — Добавляет атрибут к SimpleXML-элементу
  • SimpleXMLElement::addChild — Добавляет дочерний элемент к узлу XML
  • SimpleXMLElement::asXML — Возвращает сформированный XML-документ в виде строки на основе элемента SimpleXML
  • SimpleXMLElement::attributes — Возвращает атрибуты элемента
  • SimpleXMLElement::children — Находит дочерние элементы данного узла
  • SimpleXMLElement::__construct — Создание нового объекта SimpleXMLElement
  • SimpleXMLElement::count — Подсчитывает количество дочерних элементов у текущего элемента
  • SimpleXMLElement::current — Возвращает текущий элемент
  • SimpleXMLElement::getDocNamespaces — Возвращает пространства имён, объявленные в документе
  • SimpleXMLElement::getName — Получает имя элемента XML
  • SimpleXMLElement::getNamespaces — Возвращает пространства имён, используемые в документе
  • SimpleXMLElement::getChildren — Возвращает дочерние элементы текущего элемента
  • SimpleXMLElement::hasChildren — Проверяет, имеет ли текущий элемент дочерние элементы
  • SimpleXMLElement::key — Возвращает имя XML-тега текущего элемента
  • SimpleXMLElement::next — Переход к следующему элементу
  • SimpleXMLElement::registerXPathNamespace — Создаёт префикс/пространство имён контекста для следующего запроса XPath
  • SimpleXMLElement::rewind — Перемотка к первому элементу
  • SimpleXMLElement::saveXML — Псевдоним SimpleXMLElement::asXML
  • SimpleXMLElement::__toString — Возвращает содержимое строки
  • SimpleXMLElement::valid — Проверяет, является ли текущий элемент корректным
  • SimpleXMLElement::xpath — Запускает запрос XPath к XML-данным


Добавляет атрибут к SimpleXML-элементу

  • « SimpleXMLElement
  • SimpleXMLElement::addChild »
  • PHP Manual
  • SimpleXMLElement
  • Добавляет атрибут к SimpleXML-элементу

SimpleXMLElement::addAttribute

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SimpleXMLElement::addAttribute — Добавляет атрибут к SimpleXML-элементу

Описание

public SimpleXMLElement::addAttribute(string $qualifiedName, string $value, ?string $namespace = null): void

Добавляет атрибут к SimpleXML-элементу.

Список параметров

qualifiedName

Название добавляемого атрибута.

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, PHP 8)

SimpleXMLElement::addChild — Добавляет дочерний элемент к узлу XML

Описание

public SimpleXMLElement::addChild(string $qualifiedName, ?string $value = null, ?string $namespace = null): ?SimpleXMLElement

Добавляет дочерний элемент к узлу и возвращает потомка SimpleXMLElement.

Список параметров

qualifiedName

Имя добавляемого дочернего элемента.

value

Если указано, то значение (содержимое) дочернего элемента.

namespace

Если указано, то пространство имён, к которому принадлежит дочерний элемент.

Возвращаемые значения

Метод addChild возвращает объект SimpleXMLElement, представляющий добавленного потомка к узлу XML в случае успешного выполнения; null в случае возникновения ошибки.

Примеры

Замечание:

Перечисленные примеры могут включать 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, PHP 8)

SimpleXMLElement::asXML — Возвращает сформированный XML-документ в виде строки на основе элемента SimpleXML

Описание

public SimpleXMLElement::asXML(?string $filename = null): string|bool

Метод asXML задаёт формат данных родительских объектов в версии XML 1.0.

Список параметров

filename

Если указано значение в виде строки (string), то функция запишет данные в файл, а не вернёт их.

Возвращаемые значения

Если filename не указан, то функция вернёт строку (string) в случае успешного выполнения и false в случае возникновения ошибки. Если параметр указан, то функция вернёт true, если файл будет успешно записан и false в противном случае.

Список изменений

Версия | Описание
8.0.0 | filename теперь допускает значение null.

Примеры

Пример #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, PHP 8)

SimpleXMLElement::attributes — Возвращает атрибуты элемента

Описание

public SimpleXMLElement::attributes(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement

Эта функция возвращает названия и значения атрибутов, определённые в теге XML.

Замечание: SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с использованием var_dump() или каких-либо других средств анализа объектов.

Список параметров

namespaceOrPrefix

Необязательное пространство имён для извлечённых атрибутов

isPrefix

По умолчанию 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, PHP 8)

SimpleXMLElement::children — Находит дочерние элементы данного узла

Описание

public SimpleXMLElement::children(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement

Этот метод находит все дочерние элементы узла. Результат подчиняется стандартным правилам итерации.

Замечание: SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с использованием var_dump() или каких-либо других средств анализа объектов.

Список параметров

namespaceOrPrefix

Необязательное пространство имён XML.

isPrefix

Если isPrefix установлен в true, namespaceOrPrefix будет рассмотрен как префикс. Если false, namespaceOrPrefix будет рассмотрен как пространство имён URL.

Возвращаемые значения

Возвращает элемент SimpleXMLElement, даже если узел не имеет дочерних элементов, если узел не представляет атрибут, в этом случае функция возвращает null.

Примеры

Пример #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::count() - Подсчитывает количество дочерних элементов у текущего элемента
  • count() - Подсчитывает количество элементов массива или Countable объекте


Создание нового объекта SimpleXMLElement

  • « SimpleXMLElement::children
  • SimpleXMLElement::count »
  • PHP Manual
  • SimpleXMLElement
  • Создание нового объекта SimpleXMLElement

SimpleXMLElement::__construct

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::__construct — Создание нового объекта SimpleXMLElement

Описание

public SimpleXMLElement::__construct(
string $data,
int $options = 0,
bool $dataIsURL = false,
string $namespaceOrPrefix = "",
bool $isPrefix = false
)

Создаёт новый объект SimpleXMLElement.

Список параметров

data

Правильно сформированная XML-строка. Может быть путём или URL к XML-документу, если параметр dataIsURL установлен в true.

options

Необязательный параметр, используется для указания дополнительных параметров Libxml, которые влияют на чтение документов XML. Параметры, которые влияют на вывод документов XML (например, LIBXML_NOEMPTYTAG), игнорируются.

Замечание:

Для возможности доступа к глубоко вложенным элементам XML или для обработки очень больших текстовых узлов может понадобиться использовать LIBXML_PARSEHUGE.

dataIsURL

По умолчанию dataIsURL установлен в false. Используйте true для указания того, что data является путём или URL к XML-документу вместо данных типа string.

namespaceOrPrefix

Префикс пространства имён или URI.

isPrefix

true, если namespaceOrPrefix является префиксом, false, если это URI; по умолчанию false.

Ошибки

Выдаёт сообщение с ошибкой 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();

?>

Смотрите также

  • Базовое использование SimpleXML
  • simplexml_load_string() - Интерпретирует строку с XML в объект
  • simplexml_load_file() - Интерпретирует XML-файл в объект
  • Работа с ошибками XML
  • libxml_use_internal_errors() - Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
  • libxml_set_streams_context() - Установка контекста потоков для следующей загрузки или записи документа посредством libxml


Подсчитывает количество дочерних элементов у текущего элемента

  • « SimpleXMLElement::__construct
  • SimpleXMLElement::current »
  • PHP Manual
  • SimpleXMLElement
  • Подсчитывает количество дочерних элементов у текущего элемента

SimpleXMLElement::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SimpleXMLElement::count — Подсчитывает количество дочерних элементов у текущего элемента

Описание

public SimpleXMLElement::count(): 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::getDocNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает текущий элемент

SimpleXMLElement::current

(Информация о версии неизвестна, возможно, только в Git)

SimpleXMLElement::current — Возвращает текущий элемент

Описание

public SimpleXMLElement::current(): SimpleXMLElement
Внимание

До версии PHP 8.0 метод SimpleXMLElement::current() был объявлен только для дочернего класса SimpleXMLIterator.

Метод возвращает текущий элемент в виде объекта SimpleXMLElement.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент в виде объекта SimpleXMLElement.

Ошибки

Выбрасывает Error в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | Если SimpleXMLElement::current() вызывается на некорректном итераторе, то теперь выдаётся ошибка Error; ранее возвращалось значение null.

Примеры

Пример #1 Возврат текущего элемента

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP basics</book><book>XML basics</book></books>');
var_dump($xmlIElement->current());

$xmlElement->rewind(); // перемотка к первому элементу, иначе current() не будет работать
?>

Результат выполнения данного примера:

object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(10) "PHP basics"
}

Смотрите также

  • SimpleXMLElement::key() - Возвращает имя XML-тега текущего элемента
  • SimpleXMLElement::next() - Переход к следующему элементу
  • SimpleXMLElement::rewind() - Перемотка к первому элементу
  • SimpleXMLElement::valid() - Проверяет, является ли текущий элемент корректным
  • SimpleXMLElement


Возвращает пространства имён, объявленные в документе

  • « SimpleXMLElement::current
  • SimpleXMLElement::getName »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает пространства имён, объявленные в документе

SimpleXMLElement::getDocNamespaces

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SimpleXMLElement::getDocNamespaces — Возвращает пространства имён, объявленные в документе

Описание

public SimpleXMLElement::getDocNamespaces(bool $recursive = false, bool $fromRoot = true): array|false

Возвращает пространства имён, объявленные в документе

Список параметров

recursive

Если указано, то возвращает все объявленные пространства имён у родительского узла и его дочерних элементов. В противном случае, возвращает только объявленное пространство имён корневого узла.

fromRoot

Позволяет рекурсивно проверить пространства имён у дочернего узла вместо корневого узла 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"
}

Смотрите также

  • SimpleXMLElement::getNamespaces() - Возвращает пространства имён, используемые в документе
  • SimpleXMLElement::registerXPathNamespace() - Создаёт префикс/пространство имён контекста для следующего запроса XPath


Получает имя элемента XML

  • « SimpleXMLElement::getDocNamespaces
  • SimpleXMLElement::getNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Получает имя элемента XML

SimpleXMLElement::getName

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SimpleXMLElement::getName — Получает имя элемента XML

Описание

public SimpleXMLElement::getName(): 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::getChildren »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает пространства имён, используемые в документе

SimpleXMLElement::getNamespaces

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

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


Возвращает дочерние элементы текущего элемента

  • « SimpleXMLElement::getNamespaces
  • SimpleXMLElement::hasChildren »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает дочерние элементы текущего элемента

SimpleXMLElement::getChildren

(Информация о версии неизвестна, возможно, только в Git)

SimpleXMLElement::getChildren — Возвращает дочерние элементы текущего элемента

Описание

public SimpleXMLElement::getChildren(): ?SimpleXMLElement
Внимание

До версии PHP 8.0 метод SimpleXMLElement::getChildren() был объявлен только для дочернего класса SimpleXMLIterator.

Метод возвращает объект SimpleXMLElement, содержащий дочерние элементы текущего элемента SimpleXMLElement.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект SimpleXMLElement, содержащий дочерние элементы текущего элемента.

Примеры

Пример #1 Возвращение дочерних элементов текущего элемента

<?php
$xml = <<<XML
<books>
<book>
<title>PHP Basics</title>
<author>Jim Smith</author>
</book>
<book>XML basics</book>
</books>
XML;

$xmlElement = new SimpleXMLElement($xml);
for ($xmlElement->rewind(); $xmlElement->valid(); $xmlElement->next()) {
foreach($xmlElement->getChildren() as $name => $data) {
echo "Значением $name является '$data' из класса " . get_class($data) . "\n";
}
}
?>

Результат выполнения данного примера:

Значением title является 'PHP Basics' из класса SimpleXMLElement
Значением author является 'Jim Smith' из класса SimpleXMLElement


Проверяет, имеет ли текущий элемент дочерние элементы

  • « SimpleXMLElement::getChildren
  • SimpleXMLElement::key »
  • PHP Manual
  • SimpleXMLElement
  • Проверяет, имеет ли текущий элемент дочерние элементы

SimpleXMLElement::hasChildren

(Информация о версии неизвестна, возможно, только в Git)

SimpleXMLElement::hasChildren — Проверяет, имеет ли текущий элемент дочерние элементы

Описание

public SimpleXMLElement::hasChildren(): bool
Внимание

До версии PHP 8.0 метод SimpleXMLElement::hasChildren() был объявлен только для дочернего класса SimpleXMLIterator.

Метод проверяет, имеет ли текущий элемент SimpleXMLElement дочерние элементы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если текущий элемент имеет дочерние элементы, в противном случае возвращает false.

Примеры

Пример #1 Проверка наличия у текущего элемента дочерних элементов

<?php
$xml = <<<XML
<books>
<book>
<title>PHP Basics</title>
<author>Jim Smith</author>
</book>
<book>XML basics</book>
</books>
XML;

$xmlElement = new SimpleXMLElement($xml);
for ($xmlElement->rewind(); $xmlElement->valid(); $xmlElement->next()) {
if ($xmlElement->hasChildren()) {
var_dump($xmlElement->current());
}
}
?>

Результат выполнения данного примера:

object(SimpleXMLElement)#2 (2) {
  ["title"]=>
  string(10) "PHP Basics"
  ["author"]=>
  string(9) "Jim Smith"
}


Возвращает имя XML-тега текущего элемента

  • « SimpleXMLElement::hasChildren
  • SimpleXMLElement::next »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает имя XML-тега текущего элемента

SimpleXMLElement::key

(Информация о версии неизвестна, возможно, только в Git)

SimpleXMLElement::key — Возвращает имя XML-тега текущего элемента

Описание

public SimpleXMLElement::key(): string
Внимание

До версии PHP 8.0 метод SimpleXMLElement::key() был объявлен только для дочернего класса SimpleXMLIterator.

Метод получает имя XML-тега текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя XML-тега элемента, на который ссылается текущий объект SimpleXMLElement.

Ошибки

Выбрасывает Error в случае возникновения ошибки.

Список изменений

Версия | Описание
8.1.0 | В случае вызова метода SimpleXMLElement::key() на некорректном итераторе теперь выдаётся ошибка Error; ранее возвращалось значение false.

Примеры

Пример #1 Получение текущего ключа XML-тега

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP basics</book><book>XML basics</book></books>');

echo var_dump($xmlElement->key());
$xmlElement->rewind(); // перемотка к первому элементу
echo var_dump($xmlElement->key());

?>

Результат выполнения данного примера:

bool(false)
string(4) "book"


Переход к следующему элементу

  • « SimpleXMLElement::key
  • SimpleXMLElement::registerXPathNamespace »
  • PHP Manual
  • SimpleXMLElement
  • Переход к следующему элементу

SimpleXMLElement::next

(Информация о версии неизвестна, возможно, только в Git)

SimpleXMLElement::next — Переход к следующему элементу

Описание

public SimpleXMLElement::next(): void
Внимание

До версии PHP 8.0 метод SimpleXMLElement::next() был объявлен только для дочернего класса SimpleXMLIterator.

Метод перемещает SimpleXMLElement к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Перейти к следующему элементу

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP Basics</book><book>XML basics</book></books>');
$xmlElement->rewind(); // перемотка к первому элементу
$xmlElement->next();

var_dump($xmlElement->current());
?>

Результат выполнения данного примера:

object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(10) "XML basics"
}


Создаёт префикс/пространство имён контекста для следующего запроса XPath

  • « SimpleXMLElement::next
  • SimpleXMLElement::rewind »
  • PHP Manual
  • SimpleXMLElement
  • Создаёт префикс/пространство имён контекста для следующего запроса XPath

SimpleXMLElement::registerXPathNamespace

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SimpleXMLElement::registerXPathNamespace — Создаёт префикс/пространство имён контекста для следующего запроса XPath

Описание

public SimpleXMLElement::registerXPathNamespace(string $prefix, string $namespace): bool

Создаёт префикс/пространство имён контекста для следующего запроса XPath. В частности это необходимо, если поставщик данного XML-документа изменяет префикс пространства имён. registerXPathNamespace создаст префикс для связанного пространства имён, позволяя получить доступ к узлам в этом пространстве имён без необходимости изменения кода, учитывающего новые префиксы, предоставленные поставщиком.

Список параметров

prefix

Префикс используемого пространства имён в запросе XPath для получения пространства имён в namespace.

namespace

Используемое пространство имён для запроса 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::registerXPathNamespace
  • SimpleXMLElement::saveXML »
  • PHP Manual
  • SimpleXMLElement
  • Перемотка к первому элементу

SimpleXMLElement::rewind

(Информация о версии неизвестна, возможно, только в Git)

SimpleXMLElement::rewind — Перемотка к первому элементу

Описание

public SimpleXMLElement::rewind(): void
Внимание

До версии PHP 8.0 метод SimpleXMLElement::rewind() был объявлен только для дочернего класса SimpleXMLIterator.

Метод перематывает SimpleXMLElement к первому элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Примеры

Пример #1 Перемотка к первому элементу

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP Basics</book><book>XML Basics</book></books>');
$xmlElement->rewind();

var_dump($xmlElement->current());
?>

Результат выполнения данного примера:

object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(10) "PHP Basics"
}


Псевдоним SimpleXMLElement::asXML

  • « SimpleXMLElement::rewind
  • SimpleXMLElement::__toString »
  • PHP Manual
  • SimpleXMLElement
  • Псевдоним SimpleXMLElement::asXML

SimpleXMLElement::saveXML

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

SimpleXMLElement::saveXML — Псевдоним SimpleXMLElement::asXML()

Описание

Метод является псевдонимом: SimpleXMLElement::asXML()


Возвращает содержимое строки

  • « SimpleXMLElement::saveXML
  • SimpleXMLElement::valid »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает содержимое строки

SimpleXMLElement::__toString

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SimpleXMLElement::__toString — Возвращает содержимое строки

Описание

public SimpleXMLElement::__toString(): string

Возвращает содержимое строки, находящиеся непосредственно в элементе. Не возвращает текстовый контент дочерних элементов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое строки в случае успешного выполнения и пустую строку в ином случае.

Примеры

Пример #1 Получить содержимое строки

<?php
$xml = new SimpleXMLElement('<a>1 <b>2 </b>3</a>');
echo $xml;
?>

Результат выполнения данного примера:

1 3

Смотрите также

  • SimpleXMLElement::asXML() - Возвращает сформированный XML-документ в виде строки на основе элемента SimpleXML


Проверяет, является ли текущий элемент корректным

  • « SimpleXMLElement::__toString
  • SimpleXMLElement::xpath »
  • PHP Manual
  • SimpleXMLElement
  • Проверяет, является ли текущий элемент корректным

SimpleXMLElement::valid

(Информация о версии неизвестна, возможно, только в Git)

SimpleXMLElement::valid — Проверяет, является ли текущий элемент корректным

Описание

public SimpleXMLElement::valid(): bool
Внимание

До версии PHP 8.0 метод SimpleXMLElement::valid() был объявлен только для дочернего класса SimpleXMLIterator.

Метод проверяет, является ли текущий элемент корректным после вызовов SimpleXMLElement::rewind() или SimpleXMLElement::next().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если текущий элемент является корректным, в противном случае возвращает false

Примеры

Пример #1 Проверка, является ли текущий элемент корректным

<?php
$xmlElement = new SimpleXMLElement('<books><book>SQL Basics</book></books>');

$xmlElement->rewind(); // перемотка к первому элементу
echo var_dump($xmlElement->valid()); // bool(true)

$xmlElement->next(); // переход к следующему элементу
echo var_dump($xmlElement->valid()); // bool(false) поскольку существует только один элемент
?>


Запускает запрос XPath к XML-данным

  • « SimpleXMLElement::valid
  • SimpleXMLIterator »
  • PHP Manual
  • SimpleXMLElement
  • Запускает запрос XPath к XML-данным

SimpleXMLElement::xpath

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::xpath — Запускает запрос XPath к XML-данным

Описание

public SimpleXMLElement::xpath(string $expression): array|null|false

Метод xpath ищет узлы SimpleXML с дочерними элементами, соответствующие XPath expression.

Список параметров

expression

Путь 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');

foreach ($result as $node) {
echo '/a/b/c: ',$node,"\n";
}

/* Относительные пути также работают... */
$result = $xml->xpath('b/c');

foreach ($result as $node) {
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, PHP 8)

Введение

SimpleXMLIterator обеспечивает рекурсивную итерацию по всем узлам объекта SimpleXMLElement.

Обзор классов

class SimpleXMLIterator extends SimpleXMLElement {
/* Наследуемые методы */
public SimpleXMLElement::__construct(
string $data,
int $options = 0,
bool $dataIsURL = false,
string $namespaceOrPrefix = "",
bool $isPrefix = false
)
public SimpleXMLElement::addAttribute(string $qualifiedName, string $value, ?string $namespace = null): void
public SimpleXMLElement::addChild(string $qualifiedName, ?string $value = null, ?string $namespace = null): ?SimpleXMLElement
public SimpleXMLElement::asXML(?string $filename = null): string|bool
public SimpleXMLElement::attributes(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement
public SimpleXMLElement::children(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement
public SimpleXMLElement::count(): int
public SimpleXMLElement::current(): SimpleXMLElement
public SimpleXMLElement::getDocNamespaces(bool $recursive = false, bool $fromRoot = true): array|false
public SimpleXMLElement::getName(): string
public SimpleXMLElement::getNamespaces(bool $recursive = false): array
public SimpleXMLElement::getChildren(): ?SimpleXMLElement
public SimpleXMLElement::hasChildren(): bool
public SimpleXMLElement::key(): string
public SimpleXMLElement::next(): void
public SimpleXMLElement::registerXPathNamespace(string $prefix, string $namespace): bool
public SimpleXMLElement::rewind(): void
public SimpleXMLElement::__toString(): string
public SimpleXMLElement::valid(): bool
public SimpleXMLElement::xpath(string $expression): array|null|false
}

Список изменений

Версия | Описание
8.0.0 | Методы итератора (SimpleXMLIterator::hasChildren(), SimpleXMLIterator::getChildren(), SimpleXMLIterator::current(), SimpleXMLIterator::key(), SimpleXMLIterator::next(), SimpleXMLIterator::rewind(), SimpleXMLIterator::valid()) были перенесены в SimpleXMLElement.
8.0.0 | Класс SimpleXMLIterator теперь реализует интерфейс Stringable.


Функции 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, PHP 8)

simplexml_import_dom — Получает объект класса SimpleXMLElement из узла DOM

Описание

simplexml_import_dom(SimpleXMLElement|DOMNode $node, ?string $class_name = SimpleXMLElement::class): ?SimpleXMLElement

Эта функция берет узел документа DOM и превращает его в узел SimpleXML. Затем этот новый объект может быть использован как первичный элемент SimpleXML.

Список параметров

node

Узел-элемент DOM

class_name

Вы можете использовать этот дополнительный параметр для того, чтобы функция simplexml_import_dom() возвращала объект указанного класса. Этот класс должен расширять класс SimpleXMLElement.

Возвращаемые значения

Возвращает SimpleXMLElement или null в случае возникновения ошибки.

Примеры

Пример #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, PHP 8)

simplexml_load_file — Интерпретирует XML-файл в объект

Описание

simplexml_load_file(
string $filename,
?string $class_name = SimpleXMLElement::class,
int $options = 0,
string $namespace_or_prefix = "",
bool $is_prefix = false
): SimpleXMLElement|false

Преобразует правильно сформированный XML-документ в указанном файле в объект.

Список параметров

filename

Путь к XML-файлу

class_name

Вы можете использовать этот необязательный параметр для того, чтобы функция simplexml_load_file() возвращала объект указанного класса. Этот класс должен расширять класс SimpleXMLElement.

options

Побитовое ИЛИ (OR) констант опций libxml.

namespace_or_prefix

Префикс пространства имён или URI.

is_prefix

true, если namespace_or_prefix является префиксом, и 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->title и любые другие элементы.

Смотрите также

  • simplexml_load_string() - Интерпретирует строку с XML в объект
  • SimpleXMLElement::__construct() - Создание нового объекта SimpleXMLElement
  • Работа с ошибками XML
  • libxml_use_internal_errors() - Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
  • Базовое использование SimpleXML
  • libxml_set_streams_context() - Установка контекста потоков для следующей загрузки или записи документа посредством libxml


Интерпретирует строку с XML в объект

  • « simplexml_load_file
  • WDDX »
  • PHP Manual
  • Функции SimpleXML
  • Интерпретирует строку с XML в объект

simplexml_load_string

(PHP 5, PHP 7, PHP 8)

simplexml_load_string — Интерпретирует строку с XML в объект

Описание

simplexml_load_string(
string $data,
?string $class_name = SimpleXMLElement::class,
int $options = 0,
string $namespace_or_prefix = "",
bool $is_prefix = false
): SimpleXMLElement|false

Получает правильно сформированную XML-строку и возвращает её как объект.

Список параметров

data

Правильно сформированная XML-строка

class_name

Вы можете использовать этот необязательный параметр для того, чтобы функция simplexml_load_string() возвращала объект указанного класса. Этот класс должен расширять класс SimpleXMLElement.

options

Побитовое ИЛИ (OR) констант опций libxml.

namespace_or_prefix

Префикс пространства имён или URI.

is_prefix

true, если namespace_or_prefix является префиксом, и 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. Это означает, что также необходима передача опции --with-libxml, или до PHP 7.4 --enable-libxml, хотя неявно это уже сделано, так как поддержка libxml по умолчанию включена.

Для использования WDDX вам будет надо установить библиотеку expat (которая поставляется с Apache 1.3.7 или выше).


Установка

PHP 7.4

Этот модуль был перемещен в репозиторий » PECL и больше не поставляется с PHP 7.4.0

Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/wddx.

PHP < 7.4

После установки требуемой библиотеки 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>

Замечание:

Строки должны быть закодированы в UTF-8; для работы с другими кодировками сначала преобразуйте строку с помощью функции mb_convert_encoding(), UConverter::transcode() или 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 ...$var_names): bool

Сериализует переданные переменные и добавляет результат к данному пакету.

Список параметров

Функция принимает переменное количество параметров.

packet_id

Пакет WDDX, возвращаемый wddx_packet_start().

var_name

Может быть либо строкой, обозначающей переменную, либо массивом, содержащий строки c именами переменных или другие массивы и т.д.

var_names

Возвращаемые значения

Возвращает 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 ...$var_names): string

Создаёт пакет WDDX со структурой, которая содержит сериализованное представление переданных переменных.

Список параметров

Функция принимает переменное количество параметров.

var_name

Может быть либо строкой, обозначающей переменную, либо массивом, содержащим строки с названиями переменных или другой массив и т.д.

var_names

Возвращаемые значения

Возвращает пакет 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)

Введение

Базовый абстрактный класс для всех классов сравнения данного модуля.

Обзор классов

class 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)

Введение

Обзор классов

class XMLDiff\DOM extends XMLDiff\Base {
/* Методы */
public diff(DOMDocument $from, DOMDocument $to): DOMDocument
public merge(DOMDocument $src, DOMDocument $diff): DOMDocument
/* Наследуемые методы */
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)

Введение

Обзор классов

class XMLDiff\Memory extends XMLDiff\Base {
/* Методы */
public diff(string $from, string $to): string
public merge(string $src, string $diff): string
/* Наследуемые методы */
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)

Введение

Обзор классов

class XMLDiff\File extends XMLDiff\Base {
/* Методы */
public diff(string $from, string $to): string
public merge(string $src, string $diff): string
/* Наследуемые методы */
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
    • 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 — Установка обработчика неразобранных объявлений сущностей
  • XmlParser — Класс XmlParser


Введение

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. Это означает, что также необходима передача опции --with-libxml, или до PHP 7.4 --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 имеет встроенную поддержку данного модуля. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных модулей.


Типы ресурсов

До PHP 8.0.0 xml-ресурс, возвращаемый xml_parser_create() и xml_parser_create_ns(), ссылается на сущность xml-парсера, чтобы иметь возможность использовать функции этого модуля.


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

XML_ERROR_NONE (int)
XML_ERROR_NO_MEMORY (int)
XML_ERROR_SYNTAX (int)
XML_ERROR_NO_ELEMENTS (int)
XML_ERROR_INVALID_TOKEN (int)
XML_ERROR_UNCLOSED_TOKEN (int)
XML_ERROR_PARTIAL_CHAR (int)
XML_ERROR_TAG_MISMATCH (int)
XML_ERROR_DUPLICATE_ATTRIBUTE (int)
XML_ERROR_JUNK_AFTER_DOC_ELEMENT (int)
XML_ERROR_PARAM_ENTITY_REF (int)
XML_ERROR_UNDEFINED_ENTITY (int)
XML_ERROR_RECURSIVE_ENTITY_REF (int)
XML_ERROR_ASYNC_ENTITY (int)
XML_ERROR_BAD_CHAR_REF (int)
XML_ERROR_BINARY_ENTITY_REF (int)
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (int)
XML_ERROR_MISPLACED_XML_PI (int)
XML_ERROR_UNKNOWN_ENCODING (int)
XML_ERROR_INCORRECT_ENCODING (int)
XML_ERROR_UNCLOSED_CDATA_SECTION (int)
XML_ERROR_EXTERNAL_ENTITY_HANDLING (int)
XML_OPTION_CASE_FOLDING (int)
XML_OPTION_TARGET_ENCODING (int)
XML_OPTION_SKIP_TAGSTART (int)
XML_OPTION_SKIP_WHITE (int)
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 = 0;
function startElement($parser, $name, $attrs)
{
global $depth;
for ($i = 0; $i < $depth; $i++) {
echo " ";
}
echo "$name\n";
$depth++;
}
function endElement($parser, $name)
{
global $depth;
$depth--;
}

$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

Содержание

  • 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-анализатора

  • « Функции парсера XML
  • xml_get_current_byte_index »
  • PHP Manual
  • Функции парсера XML
  • Получение строки ошибки XML-анализатора

xml_error_string

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_error_string — Получение строки ошибки XML-анализатора

Описание

xml_error_string(int $error_code): ?string

Получение строкового представления ошибки XML-анализатора в соответствии с переданным кодом ошибки error_code.

Список параметров

error_code

Код ошибки, возвращаемый функцией xml_get_error_code().

Возвращаемые значения

Возвращает строку с текстовым описанием кода ошибки error_code или null, если описания не найдено.

Смотрите также

  • 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, PHP 8)

xml_get_current_byte_index — Получает текущий для XML-анализатора байтовый индекс

Описание

xml_get_current_byte_index(XMLParser $parser): int

Получает текущий для заданного XML-анализатора байтовый индекс.

Список параметров

parser

Ссылка на XML-анализатор, из которого будет получен индекс байта.

Возвращаемые значения

Функция возвращает индекс байта в буфере данных анализатора, на котором он находится в данный момент (начиная с нуля).

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).

Примечания

Внимание

Эта функция возвращает байтовый индекс, считая, что текст закодирован в 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, PHP 8)

xml_get_current_column_number — Получает от XML-анализатора номер текущего столбца

Описание

xml_get_current_column_number(XMLParser $parser): int

Получает текущий номер столбца заданного XML-анализатора.

Список параметров

parser

Ссылка на анализатор XML для получения номера столбца.

Возвращаемые значения

Функция возвращает номер столбца на текущей строке (определённой с помощью xml_get_current_line_number()) согласно текущему положению указателя анализатора.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).

Смотрите также

  • 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, PHP 8)

xml_get_current_line_number — Получает от XML-анализатора номер текущей строки

Описание

xml_get_current_line_number(XMLParser $parser): int

Получает номер текущей строки для заданного XML-анализатора.

Список параметров

parser

Ссылка на анализатор XML для получения номера строки.

Возвращаемые значения

Функция возвращает номер строки согласно текущему положению указателя анализатора.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).

Смотрите также

  • 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, PHP 8)

xml_get_error_code — Получает код ошибки XML-анализатора

Описание

xml_get_error_code(XMLParser $parser): int

Получает код ошибки XML-анализатора.

Список параметров

parser

Ссылка на анализатор XML для получения кода ошибки.

Возвращаемые значения

Функция возвращает один из кодов ошибок из списка, расположенного в разделе кодов ошибок.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).

Смотрите также

  • 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, PHP 8)

xml_parse_into_struct — Разбор XML-данных и помещение в массив

Описание

xml_parse_into_struct(
XMLParser $parser,
string $data,
array &$values,
array &$index = null
): int

Эта функция разбирает XML-строку и помещает данные в 2 массива. Массив index содержит указатели на размещение значений в массиве values. Аргументы, задающие массивы, должны передаваться в функцию по ссылке.

Список параметров

parser

Ссылка на используемый XML-анализатор.

data

Строка XML-данных.

values

Массив значений XML-данных.

index

Массив указателей на соответствующие значения в массиве $values.

Возвращаемые значения

xml_parse_into_struct() возвращает 0 при неудачном разборе строки и 1 при успешном. Это не то же самое, что false и true, будьте осторожны с такими операторами, как ===.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).

Примеры

Ниже представлен пример, демонстрирующий внутреннее устройство массивов, генерируемых функцией. 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 = file_get_contents($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, PHP 8)

xml_parse — Запускает разбор XML-документа

Описание

xml_parse(XMLParser $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.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).

Примеры

Пример #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, PHP 8)

xml_parser_create_ns — Создание XML-анализатора с поддержкой пространств имён

Описание

xml_parser_create_ns(?string $encoding = null, string $separator = ":"): XMLParser

xml_parser_create_ns() создаёт новый синтаксический XML-анализатор с поддержкой пространства имён и возвращает экземпляр XMLParser, который будет использоваться в других XML-функциях.

Список параметров

encoding

Кодировка входных данных определяется автоматически, а encoding задаёт кодировку только для выводимых данных. Если передаётся пустая строка, анализатор попытается определить кодировку, просматривая первые 3 или 4 байта. Кодировка по умолчанию - UTF-8. Список поддерживаемых кодировок: ISO-8859-1, UTF-8 и US-ASCII.

separator

Если сообщить анализатору пространство имён, то параметры тегов, передающиеся в различные обработчики будут состоять из пространства имён и локального имени, отделённых заданным в этом аргументе разделителем separator.

Возвращаемые значения

Возвращает новый экземпляр XMLParser.

Список изменений

Версия | Описание
8.0.0 | Функция теперь возвращает экземпляр XMLParser; ранее возвращался ресурс (resource) или false в случае возникновения ошибки.
8.0.0 | encoding теперь допускает значение null.

Смотрите также

  • 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, PHP 8)

xml_parser_create — Создание XML-анализатора

Описание

xml_parser_create(?string $encoding = null): XMLParser

xml_parser_create() создаёт новый XML-анализатор и возвращает экземпляр XMLParser, который можно использовать в других XML-функциях.

Список параметров

encoding

Кодировка входных данных определяется автоматически, а параметр encoding задаёт кодировку только для выводимых данных. Если передаётся пустая строка, анализатор попытается определить кодировку, просматривая первые 3 или 4 байта. Кодировка по умолчанию - UTF-8. Список поддерживаемых кодировок: ISO-8859-1, UTF-8 и US-ASCII.

Возвращаемые значения

Возвращает новый экземпляр XMLParser или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция теперь возвращает экземпляр XMLParser; ранее возвращался ресурс (resource) или false в случае возникновения ошибки.
8.0.0 | encoding теперь допускает значение null.

Смотрите также

  • 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, PHP 8)

xml_parser_free — Освобождение XML-анализатора

Описание

xml_parser_free(XMLParser $parser): bool

Замечание:

Использование функции больше не имеет смысла. До PHP 8.0.0 она использовалась для закрытия ресурса.

Освобождает память, занятую XML-анализатором parser.

Предостережение

До PHP 8.0.0, в дополнение к вызову xml_parser_free(), после окончания разбора необходимо также явно удалить (unset) ссылку на parser для избежания утечек памяти, если ресурс парсера ссылается на объект, а этот объект ссылается на ресурс парсера.

Список параметров

parser
Ссылка на удаляемый XML-анализатор.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).


Получение значения настройки XML-анализатора

  • « xml_parser_free
  • xml_parser_set_option »
  • PHP Manual
  • Функции парсера XML
  • Получение значения настройки XML-анализатора

xml_parser_get_option

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_get_option — Получение значения настройки XML-анализатора

Описание

xml_parser_get_option(XMLParser $parser, int $option): string|int

Получает значение настройки 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). В остальных случаях возвращается значение настройки.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).
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, PHP 8)

xml_parser_set_option — Установка значения настройки XML-анализатора

Описание

xml_parser_set_option(XMLParser $parser, int $option, string|int $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.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).


Установка обработчика символьных данных

  • « xml_parser_set_option
  • xml_set_default_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика символьных данных

xml_set_character_data_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_character_data_handler — Установка обработчика символьных данных

Описание

xml_set_character_data_handler(XMLParser $parser, callable $handler): true

Устанавливает обработчик символьных данных для заданного XML-анализатора parser.

Список параметров

parser

Парсер XML.

handler

Если передаётся значение null или пустая строка, то обработчик возвращается в состояние по умолчанию.

Если параметр handler является типом callable, то в качестве обработчика устанавливается callable.

Если параметр handler является строкой (string), то это может быть имя метода объекта, заданного с помощью функции xml_set_object().

Сигнатура обработчика должна быть:

handler(XmlParser $parser, string $data): void
parser
XML-парсер, вызывающий обработчик.
data
Данные в виде текстовой строки.

Обработчик символьных данных вызывается для каждого фрагмента текста в XML-документе. Он также может вызываться несколько раз внутри каждого фрагмента (например для не ASCII-строк).

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).


Установка обработчика по умолчанию

  • « xml_set_character_data_handler
  • xml_set_element_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика по умолчанию

xml_set_default_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_default_handler — Установка обработчика по умолчанию

Описание

xml_set_default_handler(XMLParser $parser, callable $handler): true

Задаёт обработчик по умолчанию для XML-анализатора parser.

Список параметров

parser

Парсер XML.

handler

Если передаётся значение null или пустая строка, то обработчик возвращается в состояние по умолчанию.

Если параметр handler является типом callable, то в качестве обработчика устанавливается callable.

Если параметр handler является строкой (string), то это может быть имя метода объекта, заданного с помощью функции xml_set_object().

Сигнатура обработчика должна быть:

handler(XmlParser $parser, string $data): void
parser
XML-парсер, вызывающий обработчик.
data
Параметр data содержит данные в виде текстовой строки. Это может быть объявление XML, объявление типа документа, сущности или другие данные, для которых не существует другого обработчика.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).


Установка обработчика начального и конечного элементов

  • « xml_set_default_handler
  • xml_set_end_namespace_decl_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика начального и конечного элементов

xml_set_element_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_element_handler — Установка обработчика начального и конечного элементов

Описание

xml_set_element_handler(XMLParser $parser, callable $start_handler, callable $end_handler): true

Устанавливает функцию обработчик элементов для XML-анализатора parser.

Параметр start_handler вызывается при открытии нового XML-элемента. Параметр end_handler вызывается при закрытии XML-элемента.

Список параметров

parser

Парсер XML.

start_handler

Если передаётся значение null или пустая строка, то обработчик возвращается в состояние по умолчанию.

Если параметр handler является типом callable, то в качестве обработчика устанавливается callable.

Если параметр handler является строкой (string), то это может быть имя метода объекта, заданного с помощью функции xml_set_object().

Сигнатура обработчика должна быть:

start_element_handler(XMLParser $parser, string $name, array $attributes): void
parser
XML-парсер, вызывающий обработчик.
name
Содержит имя элемента, для которого вызывается данный обработчик. Если для данного синтаксического анализатора действует приведение к одному регистру, то имя элемента будет в верхнем регистре.
attributes
Ассоциативный массив с атрибутами элемента. Массив пуст, если у элемента нет атрибутов. Ключами этого массива являются имена атрибутов, значениями - значения атрибутов. Имена атрибутов приводятся к одному регистру по тем же критериям, что и имена элементов. Значения атрибутов не приводятся к одному регистру. Порядок извлечения атрибутов attributes идентичен порядку объявления атрибутов.

end_element

Если передаётся значение null или пустая строка, то обработчик возвращается в состояние по умолчанию.

Если параметр handler является типом callable, то в качестве обработчика устанавливается callable.

Если параметр handler является строкой (string), то это может быть имя метода объекта, заданного с помощью функции xml_set_object().

Сигнатура обработчика должна быть:

end_element_handler(resource $parser, string $name): void
parser
XML-парсер, вызывающий обработчик.
name
Содержит имя элемента, для которого вызывается данный обработчик. Если для данного синтаксического анализатора действует приведение к одному регистру, то имя элемента будет в верхнем регистре.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).


Установка обработчика выхода за пределы пространства имён

  • « 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, PHP 8)

xml_set_end_namespace_decl_handler — Установка обработчика выхода за пределы пространства имён

Описание

xml_set_end_namespace_decl_handler(XMLParser $parser, callable $handler): true

Задаёт обработчик, который вызывается при выходе за пределы объявления пространства имён. Этот обработчик будет вызываться для каждого объявления пространства имён после того как отработает обработчик окончания элемента, в котором это пространство имён было объявлено.

Предостережение

Это событие не поддерживается LibXML, поэтому зарегистрированный обработчик не будет называться.

Список параметров

parser

Парсер XML.

handler

Если передаётся значение null или пустая строка, то обработчик возвращается в состояние по умолчанию.

Если параметр handler является типом callable, то в качестве обработчика устанавливается callable.

Если параметр handler является строкой (string), то это может быть имя метода объекта, заданного с помощью функции xml_set_object().

Сигнатура обработчика должна быть:

handler(XMLParser $parser, string|false $prefix)
parser
XML-парсер, вызывающий обработчик.
prefix
Префикс - строка, используемая как ссылка на пространство имён в пределах XML объекта. false, если префикс не существует.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).

Смотрите также

  • 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, PHP 8)

xml_set_external_entity_ref_handler — Установка обработчика внешних сущностей

Описание

xml_set_external_entity_ref_handler(XMLParser $parser, callable $handler): true

Задаёт функцию обработчик внешних сущностей для XML-анализатора parser.

Список параметров

parser

Парсер XML.

handler

Если передаётся значение null или пустая строка, то обработчик возвращается в состояние по умолчанию.

Если параметр handler является типом callable, то в качестве обработчика устанавливается callable.

Если параметр handler является строкой (string), то это может быть имя метода объекта, заданного с помощью функции xml_set_object().

Сигнатура обработчика должна быть:

handler(
XMLParser $parser,
string $open_entity_names,
string|false $base,
string $system_id,
string|false $public_id
): bool
parser
XML-парсер, вызывающий обработчик.
open_entity_names
Список разделённых пробелами имён сущностей, которые могут участвовать в разборе текущей сущности (включая текущую сущность).
base
Это основа для разрешения системного идентификатора (system_id) внешней сущности.
system_id
Системный идентификатор в том виде, как он представлен в объявлении сущности.
public_id
Общедоступный идентификатор в том виде, как он представлен в объявлении сущности, либо пустая строка, если такового нет; пробелы в идентификаторе будут нормализованы в соответствии с требованиями XML-спецификации.

Обработчик должен вернуть true, если сущность была обработана, в противном случае он должен вернуть false. При возврате значения false, XML-парсер прекращает разбор, а функция xml_get_error_code() возвращает константу XML_ERROR_EXTERNAL_ENTITY_HANDLING.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).
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, PHP 8)

xml_set_notation_decl_handler — Установка обработчика объявления условных обозначений

Описание

xml_set_notation_decl_handler(XMLParser $parser, callable $handler): true

Задаёт обработчик объявления обозначений для XML-анализатора parser.

Раздел объявления обозначений является частью DTD документа и имеет следующий формат:

<!NOTATION <parameter>name</parameter>
{ <parameter>systemId</parameter> | <parameter>publicId</parameter>?>
Смотрите » раздел 4.7 спецификации XML 1.0 для более полного описания обозначений (нотаций).

Список параметров

parser

Парсер XML.

handler

Если передаётся значение null или пустая строка, то обработчик возвращается в состояние по умолчанию.

Если параметр handler является типом callable, то в качестве обработчика устанавливается callable.

Если параметр handler является строкой (string), то это может быть имя метода объекта, заданного с помощью функции xml_set_object().

Сигнатура обработчика должна быть:

handler(
XMLParser $parser,
string $notation_name,
string|false $base,
string $system_id,
string|false $public_id
): void
parser
XML-парсер, вызывающий обработчик.
notation_name
Имя обозначения в том же виде, как описано выше.
base
Это основа для разрешения системного идентификатора (system_id) внешней сущности.
system_id
Системный идентификатор объявления внешнего обозначения.
public_id
Общедоступный идентификатор объявления внешнего обозначения.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).


Использование XML-анализатора внутри объекта

  • « xml_set_notation_decl_handler
  • xml_set_processing_instruction_handler »
  • PHP Manual
  • Функции парсера XML
  • Использование XML-анализатора внутри объекта

xml_set_object

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_object — Использование XML-анализатора внутри объекта

Описание

xml_set_object(XMLParser $parser, object $object): true

Эта функция позволяет использовать parser внутри объекта object. Все callback-функции могут быть установлены функциями xml_set_element_handler() и т.п. и использоваться как методы объекта object.

Список параметров

parser

Ссылка на XML-анализатор.

object

Объект, в котором будет использоваться XML-анализатор.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).

Примеры

Пример #1 Пример использования xml_set_object()

<?php
class CustomXMLParser
{
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 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 CustomXMLParser();
$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, PHP 8)

xml_set_processing_instruction_handler — Установка обработчика инструкций препроцессора (PI)

Описание

xml_set_processing_instruction_handler(XMLParser $parser, callable $handler): true

Задаёт обработчик инструкций препроцессора (PI) для XML-анализатора. parser.

Инструкции имеют следующий формат:

<?target
data
?>

Предостережение

PHP-код разграничивается инструкцией обработки <?php. Таким образом, в XML-документе можно располагать PHP-код. Однако конечный тег PI (?>) не должен быть частью данных. Если завершающий тег PI является частью встроенного PHP-кода, то остальная часть PHP-кода и "настоящий" тег PI end будут рассматриваться как символьные данные.

Список параметров

parser

Парсер XML.

handler

Если передаётся значение null или пустая строка, то обработчик возвращается в состояние по умолчанию.

Если параметр handler является типом callable, то в качестве обработчика устанавливается callable.

Если параметр handler является строкой (string), то это может быть имя метода объекта, заданного с помощью функции xml_set_object().

Сигнатура обработчика должна быть:

handler(XMLParser $parser, string $target, string $data): void
parser
XML-парсер, вызывающий обработчик.
target
Цель применения PI.
data
PI-данные.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).


Установка обработчика входа в пределы пространства имён

  • « 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, PHP 8)

xml_set_start_namespace_decl_handler — Установка обработчика входа в пределы пространства имён

Описание

xml_set_start_namespace_decl_handler(XMLParser $parser, callable $handler): true

Задаёт обработчик события входа в пространство имён. То есть обработчик вызывается анализатор находит объявление пространства имён. Подобные объявления находятся в открывающих тэгах элементов. Этот обработчик вызывается до обработчика начала тэга.

Список параметров

parser

Ссылка на XML-анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать три аргумента и возвращать целочисленный результат. Если обработчик вернёт false (равно как и ничего не вернёт), XML-анализатор прекратит работу, а функция xml_get_error_code() будет возвращать константу XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler(XMLParser $parser, string $prefix, string $uri)
parser
Первый аргумент parser является ссылкой на XML-анализатор вызывающий обработчик.
prefix
Префикс - строка, используемая как ссылка на пространство имён в пределах XML-объекта.
uri
Универсальный идентификатор ресурса (URI) пространства имён.

Если в качестве обработчика передана пустая строка или false, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).

Смотрите также

  • xml_set_end_namespace_decl_handler() - Установка обработчика выхода за пределы пространства имён


Установка обработчика неразобранных объявлений сущностей

  • « xml_set_start_namespace_decl_handler
  • XmlParser »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика неразобранных объявлений сущностей

xml_set_unparsed_entity_decl_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_unparsed_entity_decl_handler — Установка обработчика неразобранных объявлений сущностей

Описание

xml_set_unparsed_entity_decl_handler(XMLParser $parser, callable $handler): true

Задаёт функцию обработчик неразобранных объявлений сущностей для 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

Если передаётся значение null или пустая строка, то обработчик возвращается в состояние по умолчанию.

Если параметр handler является типом callable, то в качестве обработчика устанавливается callable.

Если параметр handler является строкой (string), то это может быть имя метода объекта, заданного с помощью функции xml_set_object().

Сигнатура обработчика должна быть:

handler(
XMLParser $parser,
string $entity_name,
string|false $base,
string $system_id,
string|false $public_id,
string|false $notation_name
): void
parser
XML-парсер, вызывающий обработчик.
entity_name
Имя сущности, которой требуется дать определение.
base
Это основа для разрешения системного идентификатора (system_id) внешней сущности.
system_id
Системный идентификатор внешней сущности.
public_id
Общедоступный идентификатор внешней сущности.
notation_name
Имя обозначения этой сущности (смотрите xml_set_notation_decl_handler()).

Возвращаемые значения

Функция всегда возвращает true.

Список изменений

Версия | Описание
8.0.0 | Параметр parser ожидает экземпляр XMLParser; ранее ожидался корректный xml ресурс (resource).


Класс XmlParser

(PHP 8)

Введение

Полностью непрозрачный класс, заменяющий ресурсы xml в PHP 8.0.0.

Обзор классов

final class XMLParser {
}


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 поставляется с исходным кодом PHP. Модуль включён по умолчанию. Он может быть отключён во время выполнения с помощью следующей опции: --disable-xmlreader


  • « Настройка во время выполнения
  • XMLReader »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данный модуль не определяет каких-либо типов ресурсов.


Класс XMLReader

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Введение

Модуль XMLReader - синтаксический анализатор XML. Класс-читатель выступает в качестве курсора, следует по потоку документа и останавливается на каждом узле на этом пути.

Обзор классов

class XMLReader {
/* Константы */
public const int NONE;
public const int ELEMENT;
public const int ATTRIBUTE;
public const int TEXT;
public const int CDATA;
public const int ENTITY_REF;
public const int ENTITY;
public const int PI;
public const int COMMENT;
public const int DOC;
public const int DOC_TYPE;
public const int DOC_FRAGMENT;
public const int NOTATION;
public const int WHITESPACE;
public const int SIGNIFICANT_WHITESPACE;
public const int END_ELEMENT;
public const int END_ENTITY;
public const int XML_DECLARATION;
public const int LOADDTD;
public const int DEFAULTATTRS;
public const int VALIDATE;
public const int SUBST_ENTITIES;
/* Свойства */
public int $attributeCount;
public string $baseURI;
public int $depth;
public bool $hasAttributes;
public bool $hasValue;
public bool $isDefault;
public bool $isEmptyElement;
public string $localName;
public string $name;
public string $namespaceURI;
public int $nodeType;
public string $prefix;
public string $value;
public string $xmlLang;
/* Методы */
public close(): true
public expand(?DOMNode $baseNode = null): DOMNode|false
public getAttribute(string $name): ?string
public getAttributeNo(int $index): ?string
public getAttributeNs(string $name, string $namespace): ?string
public getParserProperty(int $property): bool
public isValid(): bool
public lookupNamespace(string $prefix): ?string
public moveToAttribute(string $name): bool
public moveToAttributeNo(int $index): bool
public moveToAttributeNs(string $name, string $namespace): bool
public moveToElement(): bool
public moveToFirstAttribute(): bool
public moveToNextAttribute(): bool
public next(?string $name = null): bool
public static open(string $uri, ?string $encoding = null, int $flags = 0): bool|XMLReader
public read(): bool
public readInnerXml(): string
public readOuterXml(): string
public readString(): string
public setParserProperty(int $property, bool $value): bool
public setRelaxNGSchema(?string $filename): bool
public setRelaxNGSchemaSource(?string $source): bool
public setSchema(?string $filename): bool
public static XML(string $source, ?string $encoding = null, int $flags = 0): bool|XMLReader
}

Свойства

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, PHP 8)

XMLReader::close — Закрыть ввод XMLReader

Описание

public XMLReader::close(): true

Закрывает ввод, который в настоящий момент анализирует объект XMLReader.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Функция всегда возвращает true.

Смотрите также

  • 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, PHP 8)

XMLReader::expand — Возвратить копию текущего узла в виде объекта DOM

Описание

public XMLReader::expand(?DOMNode $baseNode = null): DOMNode|false

Этот метод копирует текущий узел и возвращает соответствующий объект DOM.

Список параметров

baseNode

DOMNode определяет целевой DOMDocument созданного объекта DOM.

Возвращаемые значения

Результирующий DOMNode или false в случае возникновения ошибки.


Получить значение атрибута с определённым именем

  • « XMLReader::expand
  • XMLReader::getAttributeNo »
  • PHP Manual
  • XMLReader
  • Получить значение атрибута с определённым именем

XMLReader::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getAttribute — Получить значение атрибута с определённым именем

Описание

public XMLReader::getAttribute(string $name): ?string

Возвращает значение именованного атрибута или null, если атрибут не существует или не находится в узле элемента.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Значение атрибута или null, если атрибут с заданным параметром name не найден или нет позиции элемента.

Список изменений

Версия | Описание
8.0.0 | Функция больше не может возвращать false.

Смотрите также

  • XMLReader::getAttributeNo() - Получить значение атрибута по индексу
  • XMLReader::getAttributeNs() - Получить значение атрибута по localname и URI


Получить значение атрибута по индексу

  • « XMLReader::getAttribute
  • XMLReader::getAttributeNs »
  • PHP Manual
  • XMLReader
  • Получить значение атрибута по индексу

XMLReader::getAttributeNo

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getAttributeNo — Получить значение атрибута по индексу

Описание

public XMLReader::getAttributeNo(int $index): ?string

Возвращает значение атрибута на основании позиции или пустую строку, если атрибут не существует или не расположен на узле элемента.

Список параметров

index

Позиция атрибута.

Возвращаемые значения

Значение атрибута или null, если атрибут с заданным параметром index не существует или нет позиции элемента.

Смотрите также

  • 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, PHP 8)

XMLReader::getAttributeNs — Получить значение атрибута по localname и URI

Описание

public XMLReader::getAttributeNs(string $name, string $namespace): ?string

Возвращает значение атрибута по имени и URI пространства имён или пустую строку, если атрибут не существует или не расположен на узле элемента.

Список параметров

name

Локальное имя.

namespace

URI пространства имён.

Возвращаемые значения

Значение атрибута или null, если атрибут с заданным name и namespace не найден или нет позиции элемента.

Список изменений

Версия | Описание
8.0.0 | Функция больше не может возвращать false.

Смотрите также

  • XMLReader::getAttribute() - Получить значение атрибута с определённым именем
  • XMLReader::getAttributeNo() - Получить значение атрибута по индексу


Указывает, было ли определённое свойство установлено

  • « XMLReader::getAttributeNs
  • XMLReader::isValid »
  • PHP Manual
  • XMLReader
  • Указывает, было ли определённое свойство установлено

XMLReader::getParserProperty

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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, PHP 8)

XMLReader::isValid — Показать, является ли разбираемый документ синтаксически правильным

Описание

public XMLReader::isValid(): 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, PHP 8)

XMLReader::lookupNamespace — Найти пространство имён для префикса

Описание

public XMLReader::lookupNamespace(string $prefix): ?string

Поиск в контексте пространства имён для данного префикса.

Список параметров

prefix

Строка, содержащая префикс.

Возвращаемые значения

Значение пространства имён или null, если пространства имён не существует.

Список изменений

Версия | Описание
8.0.0 | Функция больше не может возвращать false.


Переместить курсор к атрибуту с заданным именем

  • « XMLReader::lookupNamespace
  • XMLReader::moveToAttributeNo »
  • PHP Manual
  • XMLReader
  • Переместить курсор к атрибуту с заданным именем

XMLReader::moveToAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

XMLReader::moveToAttributeNs — Переместить курсор к именованному атрибуту

Описание

public XMLReader::moveToAttributeNs(string $name, string $namespace): bool

Позиционирует курсор на именованном атрибуте в указанном пространстве имён.

Список параметров

name

Локальное имя.

namespace

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, PHP 8)

XMLReader::moveToElement — Позиционировать курсор на родительском элементе текущего атрибута

Описание

public XMLReader::moveToElement(): 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, PHP 8)

XMLReader::moveToFirstAttribute — Переместить позицию курсора на первый атрибут

Описание

public XMLReader::moveToFirstAttribute(): 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, PHP 8)

XMLReader::moveToNextAttribute — Переместить позицию курсора на следующий атрибут

Описание

public XMLReader::moveToNextAttribute(): 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, PHP 8)

XMLReader::next — Переместить курсор на следующий узел, пропуская все поддеревья

Описание

public XMLReader::next(?string $name = null): bool

Позиционирует курсор на следующем узле, пропуская все поддеревья. Если такой узел не существует, курсор перемещается в конец документа.

Список параметров

name

Имя следующего узла для перехода.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | name теперь допускает значение null.

Смотрите также

  • 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, PHP 8)

XMLReader::open — Установить URI, содержащий XML-документ для разбора

Описание

public static XMLReader::open(string $uri, ?string $encoding = null, int $flags = 0): bool|XMLReader

Установить URI, содержащий XML-документ, который будет разобран.

Список параметров

uri

URI, указывающий на документ.

encoding

Кодировка документа или null.

flags

Битовая маска, состоящая из LIBXML_* констант.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. при статическом вызове, возвращается XMLReader или false в случае возникновения ошибки.

Ошибки

метод можно вызывать статически, но до PHP 8.0.0 в этом случае выдаётся ошибка E_DEPRECATED.

Список изменений

Версия | Описание
8.0.0 | XMLReader::open() теперь объявлен как статический метод, но всё ещё может быть вызван в экземпляре XMLReader.

Смотрите также

  • XMLReader::xml() - Установить данные, содержащие XML для разбора
  • XMLReader::close() - Закрыть ввод XMLReader


Переместиться к следующему узлу в документе

  • « XMLReader::open
  • XMLReader::readInnerXml »
  • PHP Manual
  • XMLReader
  • Переместиться к следующему узлу в документе

XMLReader::read

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::read — Переместиться к следующему узлу в документе

Описание

public XMLReader::read(): 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, PHP 8)

XMLReader::readInnerXml — Извлечь XML из текущего узла

Описание

public XMLReader::readInnerXml(): 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, PHP 8)

XMLReader::readOuterXml — Получить XML из текущего узла, включая сам узел

Описание

public XMLReader::readOuterXml(): 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, PHP 8)

XMLReader::readString — Прочитать содержимое текущего узла как строку

Описание

public XMLReader::readString(): 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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

XMLReader::XML — Установить данные, содержащие XML для разбора

Описание

public static XMLReader::XML(string $source, ?string $encoding = null, int $flags = 0): bool|XMLReader

Устанавливает данные, содержащие XML для разбора.

Список параметров

source

Строка, содержащая XML для разбора.

encoding

Кодировка документа или null.

flags

Битовая маска констант LIBXML_*.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки. в случае статического вызова либо возвращается XMLReader или false в случае возникновения ошибки.

Ошибки

Метод можно вызывать статически, но до PHP 8.0.0 в этом случае выдаётся ошибка E_DEPRECATED.

Список изменений

Версия | Описание
8.0.0 | XMLReader::XML() теперь объявлен как статический метод, но всё ещё может быть вызван в экземпляре XMLReader.

Смотрите также

  • XMLReader::open() - Установить URI, содержащий XML-документ для разбора
  • XMLReader::close() - Закрыть ввод XMLReader


XMLWriter

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Примеры
    • Создание простого XML-документа
    • Работа с пространствами имён XML
    • Работа с объектно-ориентированным API
  • XMLWriter — Класс XMLWriter
    • 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-текст


Введение

XMLWriter является модулем PHP. Он создаёт xmlWriter API на основе библиотеки libxml.

Модуль представляет собой класс-писатель, который является некешируемым, однонаправленным средством генерирования потоков или файлов, содержащих данные XML.

Модуль может быть использован в объектно-ориентированном либо в процедурном стилях. Каждый документированный метод описывает альтернативные процедурные вызовы.


Установка

Модуль XMLWriter поставляется вместе с исходным кодом PHP. Модуль включён по умолчанию. Он может быть отключён во время выполнения с помощью следующей опции: --disable-xmlwriter


Типы ресурсов

До PHP 8.0.0 процедурной версией модуля 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

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

Введение

Обзор классов

class XMLWriter {
/* Методы */
public endAttribute(): bool
public endCdata(): bool
public endComment(): bool
public endDocument(): bool
public endDtd(): bool
public endDtdAttlist(): bool
public endDtdElement(): bool
public endDtdEntity(): bool
public endElement(): bool
public endPi(): bool
public flush(bool $empty = true): string|int
public fullEndElement(): bool
public openMemory(): bool
public openUri(string $uri): bool
public outputMemory(bool $flush = true): string
public setIndent(bool $enable): bool
public setIndentString(string $indentation): bool
public startAttribute(string $name): bool
public startAttributeNs(?string $prefix, string $name, ?string $namespace): bool
public startCdata(): bool
public startComment(): bool
public startDocument(?string $version = "1.0", ?string $encoding = null, ?string $standalone = null): bool
public startDtd(string $qualifiedName, ?string $publicId = null, ?string $systemId = null): bool
public startDtdAttlist(string $name): bool
public startDtdElement(string $qualifiedName): bool
public startDtdEntity(string $name, bool $isParam): bool
public startElement(string $name): bool
public startElementNs(?string $prefix, string $name, ?string $namespace): bool
public startPi(string $target): bool
public text(string $content): bool
public writeAttribute(string $name, string $value): bool
public writeAttributeNs(
?string $prefix,
string $name,
?string $namespace,
string $value
): bool
public writeCdata(string $content): bool
public writeComment(string $content): bool
public writeDtd(
string $name,
?string $publicId = null,
?string $systemId = null,
?string $content = null
): bool
public writeDtdAttlist(string $name, string $content): bool
public writeDtdElement(string $name, string $content): bool
public writeDtdEntity(
string $name,
string $content,
bool $isParam = false,
?string $publicId = null,
?string $systemId = null,
?string $notationData = null
): bool
public writeElement(string $name, ?string $content = null): bool
public writeElementNs(
?string $prefix,
string $name,
?string $namespace,
?string $content = null
): bool
public writePi(string $target, string $content): bool
public writeRaw(string $content): bool
}

Содержание

  • 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-текст


Завершить атрибут

  • « XMLWriter
  • XMLWriter::endCdata »
  • PHP Manual
  • XMLWriter
  • Завершить атрибут

XMLWriter::endAttribute

xmlwriter_end_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endAttribute -- xmlwriter_end_attribute — Завершить атрибут

Описание

Объектно-ориентированный стиль

public XMLWriter::endAttribute(): bool

Процедурный стиль

xmlwriter_end_attribute(XMLWriter $writer): bool

Завершает текущий атрибут.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endCdata -- xmlwriter_end_cdata — Завершить текущую секцию CDATA

Описание

Объектно-ориентированный стиль

public XMLWriter::endCdata(): bool

Процедурный стиль

xmlwriter_end_cdata(XMLWriter $writer): bool

Завершает текущую секцию CDATA.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::endComment -- xmlwriter_end_comment — Завершить комментарий

Описание

Объектно-ориентированный стиль

public XMLWriter::endComment(): bool

Процедурный стиль

xmlwriter_end_comment(XMLWriter $writer): bool

Завершает текущий комментарий.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::startComment() - Создаёт стартовый комментарий
  • XMLWriter::writeComment() - Записать полный тег комментария


Завершить текущий документ

  • « XMLWriter::endComment
  • XMLWriter::endDtd »
  • PHP Manual
  • XMLWriter
  • Завершить текущий документ

XMLWriter::endDocument

xmlwriter_end_document

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDocument -- xmlwriter_end_document — Завершить текущий документ

Описание

Объектно-ориентированный стиль

public XMLWriter::endDocument(): bool

Процедурный стиль

xmlwriter_end_document(XMLWriter $writer): bool

Завершает текущий документ.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::startDocument() - Создать тег документа


Завершить текущий DTD

  • « XMLWriter::endDocument
  • XMLWriter::endDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Завершить текущий DTD

XMLWriter::endDtd

xmlwriter_end_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtd -- xmlwriter_end_dtd — Завершить текущий DTD

Описание

Объектно-ориентированный стиль

public XMLWriter::endDtd(): bool

Процедурный стиль

xmlwriter_end_dtd(XMLWriter $writer): bool

Завершает секцию определения типа документа (DTD).

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::startDtd() - Создать стартовый DTD тег
  • XMLWriter::writeDtd() - Записать полный тег DTD


Завершить текущий список атрибутов DTD

  • « XMLWriter::endDtd
  • XMLWriter::endDtdElement »
  • PHP Manual
  • XMLWriter
  • Завершить текущий список атрибутов DTD

XMLWriter::endDtdAttlist

xmlwriter_end_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdAttlist -- xmlwriter_end_dtd_attlist — Завершить текущий список атрибутов DTD

Описание

Объектно-ориентированный стиль

public XMLWriter::endDtdAttlist(): bool

Процедурный стиль

xmlwriter_end_dtd_attlist(XMLWriter $writer): bool

Завершает текущий список атрибутов DTD для документа.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdElement -- xmlwriter_end_dtd_element — Завершить текущий элемент DTD

Описание

Объектно-ориентированный стиль

public XMLWriter::endDtdElement(): bool

Процедурный стиль

xmlwriter_end_dtd_element(XMLWriter $writer): bool

Завершает текущий элемент DTD.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::startDtdElement() - Создать стартовый элемент DTD
  • XMLWriter::writeDtdElement() - Записать полный тег элемента DTD


Завершить текущую запись DTD

  • « XMLWriter::endDtdElement
  • XMLWriter::endElement »
  • PHP Manual
  • XMLWriter
  • Завершить текущую запись DTD

XMLWriter::endDtdEntity

xmlwriter_end_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdEntity -- xmlwriter_end_dtd_entity — Завершить текущую запись DTD

Описание

Объектно-ориентированный стиль

public XMLWriter::endDtdEntity(): bool

Процедурный стиль

xmlwriter_end_dtd_entity(XMLWriter $writer): bool

Завершает текущую запись DTD.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::startDtdEntity() - Создать стартовую запись DTD
  • XMLWriter::writeDtdEntity() - Записать полный тег DTD записи


Завершить текущий элемент

  • « XMLWriter::endDtdEntity
  • XMLWriter::endPi »
  • PHP Manual
  • XMLWriter
  • Завершить текущий элемент

XMLWriter::endElement

xmlwriter_end_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endElement -- xmlwriter_end_element — Завершить текущий элемент

Описание

Объектно-ориентированный стиль

public XMLWriter::endElement(): bool

Процедурный стиль

xmlwriter_end_element(XMLWriter $writer): bool

Завершает текущий элемент.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endPi -- xmlwriter_end_pi — Завершить текущую инструкцию обработки (PI)

Описание

Объектно-ориентированный стиль

public XMLWriter::endPi(): bool

Процедурный стиль

xmlwriter_end_pi(XMLWriter $writer): bool

Завершает текущую инструкцию обработки.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::startPi() - Создать стартовый тег PI
  • XMLWriter::writePi() - Записать инструкцию обработки (PI)


Сбросить текущий буфер

  • « XMLWriter::endPi
  • XMLWriter::fullEndElement »
  • PHP Manual
  • XMLWriter
  • Сбросить текущий буфер

XMLWriter::flush

xmlwriter_flush

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::flush -- xmlwriter_flush — Сбросить текущий буфер

Описание

Объектно-ориентированный стиль

public XMLWriter::flush(bool $empty = true): string|int

Процедурный стиль

xmlwriter_flush(XMLWriter $writer, bool $empty = true): string|int

Сбрасывает текущий буфер.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

empty

Определяет, освободить буфер или нет. По умолчанию true.

Возвращаемые значения

Если XML создаётся в памяти, то функция вернёт сгенерированный буфер XML, иначе, при использовании URI, эта функция запишет буфер и вернёт количество записанных байт.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).
8.0.0 | Функция больше не может возвращать false.


Завершить текущий элемент

  • « XMLWriter::flush
  • XMLWriter::openMemory »
  • PHP Manual
  • XMLWriter
  • Завершить текущий элемент

XMLWriter::fullEndElement

xmlwriter_full_end_element

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL xmlwriter >= 2.0.4)

XMLWriter::fullEndElement -- xmlwriter_full_end_element — Завершить текущий элемент

Описание

Объектно-ориентированный стиль

public XMLWriter::fullEndElement(): bool

Процедурный стиль

xmlwriter_full_end_element(XMLWriter $writer): bool

Завершает текущий XML элемент. Записывает закрывающий тег, даже если элемент пустой.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::endElement() - Завершить текущий элемент


Создать новый объект XMLWriter, используя память для строкового вывода

  • « XMLWriter::fullEndElement
  • XMLWriter::openUri »
  • PHP Manual
  • XMLWriter
  • Создать новый объект XMLWriter, используя память для строкового вывода

XMLWriter::openMemory

xmlwriter_open_memory

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::openMemory -- xmlwriter_open_memory — Создать новый объект XMLWriter, используя память для строкового вывода

Описание

Объектно-ориентированный стиль

public XMLWriter::openMemory(): bool

Процедурный стиль

xmlwriter_open_memory(): XMLWriter|false

Создаёт новый объект XMLWriter, используя память для строкового вывода.

Список параметров

Возвращаемые значения

Объектно-ориентированный стиль: Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Процедурный стиль: Возвращает новый XMLWriter для дальнейшего использования функциями xmlwriter в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция теперь возвращает экземпляр XMLWriter в случае успешного выполнения. Раньше в этом случае возвращался ресурс (resource).

Смотрите также

  • 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, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::openUri -- xmlwriter_open_uri — Создать новый объект XMLWriter, используя исходный URI для вывода

Описание

Объектно-ориентированный стиль

public XMLWriter::openUri(string $uri): bool

Процедурный стиль

xmlwriter_open_uri(string $uri): XMLWriter|false

Создаёт новый объект XMLWriter, используя uri для вывода.

Список параметров

uri

URI ресурса для вывода.

Возвращаемые значения

Объектно-ориентированный стиль: Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Процедурный стиль: Возвращает новый XMLWriter для дальнейшего использования функциями xmlwriter в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | Функция теперь возвращает экземпляр XMLWriter в случае успешного выполнения. Раньше в этом случае возвращался ресурс (resource).

Примеры

Пример #1 Прямой вывод XML

Можно напрямую выводить XML, используя обёртку потока php://output.

<?php
$out =new XMLWriter();
$out->openURI('php://output');
?>

Примечания

Замечание:

В Windows файлы, открытые с помощью этой функции, блокируются до тех пор, пока средство записи не будет освобождено.

Смотрите также

  • XMLWriter::openMemory() - Создать новый объект XMLWriter, используя память для строкового вывода


Возвращает текущий буфер

  • « XMLWriter::openUri
  • XMLWriter::setIndent »
  • PHP Manual
  • XMLWriter
  • Возвращает текущий буфер

XMLWriter::outputMemory

xmlwriter_output_memory

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::outputMemory -- xmlwriter_output_memory — Возвращает текущий буфер

Описание

Объектно-ориентированный стиль

public XMLWriter::outputMemory(bool $flush = true): string

Процедурный стиль

xmlwriter_output_memory(XMLWriter $writer, bool $flush = true): string

Возвращает текущий буфер.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

flush

Определяет, освободить буфер или нет. По умолчанию true.

Возвращаемые значения

Возвращает текущий буфер в виде строки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::flush() - Сбросить текущий буфер


Включить или отключить отступы

  • « XMLWriter::outputMemory
  • XMLWriter::setIndentString »
  • PHP Manual
  • XMLWriter
  • Включить или отключить отступы

XMLWriter::setIndent

xmlwriter_set_indent

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndent -- xmlwriter_set_indent — Включить или отключить отступы

Описание

Объектно-ориентированный стиль

public XMLWriter::setIndent(bool $enable): bool

Процедурный стиль

xmlwriter_set_indent(XMLWriter $writer, bool $enable): bool

Включает или отключает отступы.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

enable

Определяет, включено ли добавление отступа.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Примеры

Пример #1 XMLWriter::setIndent() и смешанное содержимое

Включение отступа не подходит для смешанного содержимого, поскольку строка отступа также вставляется перед встроенными элементами.

<?php
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(2);
$writer->startDocument();
$writer->startElement('p');
$writer->text('до');
$writer->writeElement('a', 'элемента');
$writer->text('после');
$writer->endElement();
$writer->endDocument();
echo $writer->outputMemory();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<p>до <a>элемена</a>
после</p>

Примечания

Замечание:

Отступ сбрасывается при открытии xmlwriter.

Смотрите также

  • XMLWriter::setIndentString() - Установить строку, используемую для отступов


Установить строку, используемую для отступов

  • « XMLWriter::setIndent
  • XMLWriter::startAttribute »
  • PHP Manual
  • XMLWriter
  • Установить строку, используемую для отступов

XMLWriter::setIndentString

xmlwriter_set_indent_string

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndentString -- xmlwriter_set_indent_string — Установить строку, используемую для отступов

Описание

Объектно-ориентированный стиль

public XMLWriter::setIndentString(string $indentation): bool

Процедурный стиль

xmlwriter_set_indent_string(XMLWriter $writer, string $indentation): bool

Устанавливает строку, которая будет использоваться для отступа каждого элемента/атрибута в результирующем XML.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

indentString

Отступ строки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Примечания

Замечание:

Отступ сбрасывается при открытии xmlwriter.

Смотрите также

  • XMLWriter::setIndent() - Включить или отключить отступы


Создать начальный атрибут

  • « XMLWriter::setIndentString
  • XMLWriter::startAttributeNs »
  • PHP Manual
  • XMLWriter
  • Создать начальный атрибут

XMLWriter::startAttribute

xmlwriter_start_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttribute -- xmlwriter_start_attribute — Создать начальный атрибут

Описание

Объектно-ориентированный стиль

public XMLWriter::startAttribute(string $name): bool

Процедурный стиль

xmlwriter_start_attribute(XMLWriter $writer, string $name): bool

Начинает атрибут.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя атрибута.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Примеры

Пример #1 Пример базового использования XMLWriter::startAttribute()

<?php
$writer = new XMLWriter;
$writer->openURI('php://output');
$writer->startDocument('1.0', 'UTF-8');
$writer->startElement('element');
$writer->startAttribute('attribute');
$writer->text('value');
$writer->endAttribute();
$writer->endElement();
$writer->endDocument();

Результатом выполнения данного примера будет что-то подобное:

<?xml version="1.0" encoding="UTF-8"?>
<element attribute="value"/>

Смотрите также

  • XMLWriter::startAttributeNs() - Создать стартовый атрибут пространства имён
  • XMLWriter::endAttribute() - Завершить атрибут
  • XMLWriter::writeAttribute() - Записать полный атрибут
  • XMLWriter::writeAttributeNs() - Записать полный атрибут пространства имён


Создать стартовый атрибут пространства имён

  • « XMLWriter::startAttribute
  • XMLWriter::startCdata »
  • PHP Manual
  • XMLWriter
  • Создать стартовый атрибут пространства имён

XMLWriter::startAttributeNs

xmlwriter_start_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttributeNs -- xmlwriter_start_attribute_ns — Создать стартовый атрибут пространства имён

Описание

Объектно-ориентированный стиль

public XMLWriter::startAttributeNs(?string $prefix, string $name, ?string $namespace): bool

Процедурный стиль

xmlwriter_start_attribute_ns(
XMLWriter $writer,
?string $prefix,
string $name,
?string $namespace
): bool

Начинает атрибут пространства имён.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

prefix

Префикс пространства имён.

name

Имя атрибута.

namespace

URI пространства имён. Если namespace равен null, объявление пространства имён будет опущено.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).
8.0.0 | prefix теперь допускает значение null.

Смотрите также

  • XMLWriter::startAttribute() - Создать начальный атрибут
  • XMLWriter::endAttribute() - Завершить атрибут
  • XMLWriter::writeAttribute() - Записать полный атрибут
  • XMLWriter::writeAttributeNs() - Записать полный атрибут пространства имён


Создать начальный тег CDATA

  • « XMLWriter::startAttributeNs
  • XMLWriter::startComment »
  • PHP Manual
  • XMLWriter
  • Создать начальный тег CDATA

XMLWriter::startCdata

xmlwriter_start_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startCdata -- xmlwriter_start_cdata — Создать начальный тег CDATA

Описание

Объектно-ориентированный стиль

public XMLWriter::startCdata(): bool

Процедурный стиль

xmlwriter_start_cdata(XMLWriter $writer): bool

Начинает CDATA.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::startComment -- xmlwriter_start_comment — Создаёт стартовый комментарий

Описание

Объектно-ориентированный стиль

public XMLWriter::startComment(): bool

Процедурный стиль

xmlwriter_start_comment(XMLWriter $writer): bool

Начинает комментарий.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::endComment() - Завершить комментарий
  • XMLWriter::writeComment() - Записать полный тег комментария


Создать тег документа

  • « XMLWriter::startComment
  • XMLWriter::startDtd »
  • PHP Manual
  • XMLWriter
  • Создать тег документа

XMLWriter::startDocument

xmlwriter_start_document

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDocument -- xmlwriter_start_document — Создать тег документа

Описание

Объектно-ориентированный стиль

public XMLWriter::startDocument(?string $version = "1.0", ?string $encoding = null, ?string $standalone = null): bool

Процедурный стиль

xmlwriter_start_document(
XMLWriter $writer,
?string $version = "1.0",
?string $encoding = null,
?string $standalone = null
): bool

Начинает документ.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

version

Номер версии документа как часть объявления XML.

encoding

Кодировка документа как часть объявления XML.

standalone

yes или no.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::endDocument() - Завершить текущий документ


Создать стартовый DTD тег

  • « XMLWriter::startDocument
  • XMLWriter::startDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Создать стартовый DTD тег

XMLWriter::startDtd

xmlwriter_start_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtd -- xmlwriter_start_dtd — Создать стартовый DTD тег

Описание

Объектно-ориентированный стиль

public XMLWriter::startDtd(string $qualifiedName, ?string $publicId = null, ?string $systemId = null): bool

Процедурный стиль

xmlwriter_start_dtd(
XMLWriter $writer,
string $qualifiedName,
?string $publicId = null,
?string $systemId = null
): bool

Начинает DTD.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

qualifiedName

Полностью определённое имя типа документа для создания.

publicId

Идентификатор внешнего публичного подмножества.

systemId

Идентификатор внешнего системного подмножества.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::endDtd() - Завершить текущий DTD
  • XMLWriter::writeDtd() - Записать полный тег DTD


Создаёт стартовый список атрибутов DTD

  • « XMLWriter::startDtd
  • XMLWriter::startDtdElement »
  • PHP Manual
  • XMLWriter
  • Создаёт стартовый список атрибутов DTD

XMLWriter::startDtdAttlist

xmlwriter_start_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdAttlist -- xmlwriter_start_dtd_attlist — Создаёт стартовый список атрибутов DTD

Описание

Объектно-ориентированный стиль

public XMLWriter::startDtdAttlist(string $name): bool

Процедурный стиль

xmlwriter_start_dtd_attlist(XMLWriter $writer, string $name): bool

Начинает список атрибутов DTD.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

name

Название списка атрибутов.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdElement -- xmlwriter_start_dtd_element — Создать стартовый элемент DTD

Описание

Объектно-ориентированный стиль

public XMLWriter::startDtdElement(string $qualifiedName): bool

Процедурный стиль

xmlwriter_start_dtd_element(XMLWriter $writer, string $qualifiedName): bool

Начинает элемент DTD.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

qualifiedName

Полностью определённое имя типа документа для создания.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::endDtdElement() - Завершить текущий элемент DTD
  • XMLWriter::writeDtdElement() - Записать полный тег элемента DTD


Создать стартовую запись DTD

  • « XMLWriter::startDtdElement
  • XMLWriter::startElement »
  • PHP Manual
  • XMLWriter
  • Создать стартовую запись DTD

XMLWriter::startDtdEntity

xmlwriter_start_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdEntity -- xmlwriter_start_dtd_entity — Создать стартовую запись DTD

Описание

Объектно-ориентированный стиль

public XMLWriter::startDtdEntity(string $name, bool $isParam): bool

Процедурный стиль

xmlwriter_start_dtd_entity(XMLWriter $writer, string $name, bool $isParam): bool

Начинает запись DTD.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя записи.

isParam

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::endDtdEntity() - Завершить текущую запись DTD
  • XMLWriter::writeDtdEntity() - Записать полный тег DTD записи


Создать стартовый тег элемента

  • « XMLWriter::startDtdEntity
  • XMLWriter::startElementNs »
  • PHP Manual
  • XMLWriter
  • Создать стартовый тег элемента

XMLWriter::startElement

xmlwriter_start_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startElement -- xmlwriter_start_element — Создать стартовый тег элемента

Описание

Объектно-ориентированный стиль

public XMLWriter::startElement(string $name): bool

Процедурный стиль

xmlwriter_start_element(XMLWriter $writer, string $name): bool

Начинает элемент.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя элемента.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::endElement() - Завершить текущий элемент
  • XMLWriter::writeElement() - Записать полный тег элемента


Создать стартовый тег элемента пространства имён

  • « XMLWriter::startElement
  • XMLWriter::startPi »
  • PHP Manual
  • XMLWriter
  • Создать стартовый тег элемента пространства имён

XMLWriter::startElementNs

xmlwriter_start_element_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startElementNs -- xmlwriter_start_element_ns — Создать стартовый тег элемента пространства имён

Описание

Объектно-ориентированный стиль

public XMLWriter::startElementNs(?string $prefix, string $name, ?string $namespace): bool

Процедурный стиль

xmlwriter_start_element_ns(
XMLWriter $writer,
?string $prefix,
string $name,
?string $namespace
): bool

Начинает элемент пространства имён.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

prefix

Префикс пространства имён. Если prefix равен null, пространство имён будет опущено.

name

Имя элемента.

namespace

URI пространства имён. Если namespace равен null, объявление пространства имён будет опущено.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::endElement() - Завершить текущий элемент
  • XMLWriter::writeElementNs() - Записать полное пространство имён тега элемента


Создать стартовый тег PI

  • « XMLWriter::startElementNs
  • XMLWriter::text »
  • PHP Manual
  • XMLWriter
  • Создать стартовый тег PI

XMLWriter::startPi

xmlwriter_start_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startPi -- xmlwriter_start_pi — Создать стартовый тег PI

Описание

Объектно-ориентированный стиль

public XMLWriter::startPi(string $target): bool

Процедурный стиль

xmlwriter_start_pi(XMLWriter $writer, string $target): bool

Начинает тег инструкции обработки (PI).

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

target

Цель инструкции обработки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::endPi() - Завершить текущую инструкцию обработки (PI)
  • XMLWriter::writePi() - Записать инструкцию обработки (PI)


Записать текст

  • « XMLWriter::startPi
  • XMLWriter::writeAttribute »
  • PHP Manual
  • XMLWriter
  • Записать текст

XMLWriter::text

xmlwriter_text

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::text -- xmlwriter_text — Записать текст

Описание

Объектно-ориентированный стиль

public XMLWriter::text(string $content): bool

Процедурный стиль

xmlwriter_text(XMLWriter $writer, string $content): bool

Записывает текст.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

content

Содержимое текста. Символы <, >, & и " записываются как ссылки на сущности (т.е. &lt;, &gt;, &amp; и &quot;, соответственно). Все остальные символы в том числе ' записываются буквально. Чтобы записывать специальные символы XML буквально или записывать буквальные ссылки на сущности, необходимо использовать xmlwriter_write_raw().

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).


Записать полный атрибут

  • « XMLWriter::text
  • XMLWriter::writeAttributeNs »
  • PHP Manual
  • XMLWriter
  • Записать полный атрибут

XMLWriter::writeAttribute

xmlwriter_write_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttribute -- xmlwriter_write_attribute — Записать полный атрибут

Описание

Объектно-ориентированный стиль

public XMLWriter::writeAttribute(string $name, string $value): bool

Процедурный стиль

xmlwriter_write_attribute(XMLWriter $writer, string $name, string $value): bool

Записывает полный атрибут.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя атрибута.

value

Значение атрибута.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Примеры

Пример #1 Перемешивание подэлементов и атрибутов

Если запись подэлементов и атрибутов смешана, любая попытка записи атрибутов после первого подэлемента завершится ошибкой и вернёт false.

<?php
$xml = new XMLWriter();
$xml->openMemory();

$xml->startElement('element');
$xml->writeAttribute('attr1', '0');
$xml->writeElement('subelem', '0');
var_dump($xml->writeAttribute('attr2', '0'));
$xml->endElement();

echo $xml->flush();
?>

Результат выполнения данного примера:

bool(false)
<element attr1="0"><subelem>0</subelem></element>

Смотрите также

  • XMLWriter::writeAttributeNs() - Записать полный атрибут пространства имён
  • XMLWriter::startAttribute() - Создать начальный атрибут
  • XMLWriter::startAttributeNs() - Создать стартовый атрибут пространства имён
  • XMLWriter::endAttribute() - Завершить атрибут


Записать полный атрибут пространства имён

  • « XMLWriter::writeAttribute
  • XMLWriter::writeCdata »
  • PHP Manual
  • XMLWriter
  • Записать полный атрибут пространства имён

XMLWriter::writeAttributeNs

xmlwriter_write_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttributeNs -- xmlwriter_write_attribute_ns — Записать полный атрибут пространства имён

Описание

Объектно-ориентированный стиль

public XMLWriter::writeAttributeNs(
?string $prefix,
string $name,
?string $namespace,
string $value
): bool

Процедурный стиль

xmlwriter_write_attribute_ns(
XMLWriter $writer,
?string $prefix,
string $name,
?string $namespace,
string $value
): bool

Записывает полный атрибут пространства имён.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

prefix

Префикс пространства имён. Если prefix равен null, пространство имён будет опущено.

name

Имя атрибута.

namespace

URI пространства имён. Если namespace равен null, объявление пространства имён будет опущено.

content

Значение атрибута.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::writeAttribute() - Записать полный атрибут
  • XMLWriter::startAttribute() - Создать начальный атрибут
  • XMLWriter::startAttributeNs() - Создать стартовый атрибут пространства имён
  • XMLWriter::endAttribute() - Завершить атрибут


Записать полный тег CDATA

  • « XMLWriter::writeAttributeNs
  • XMLWriter::writeComment »
  • PHP Manual
  • XMLWriter
  • Записать полный тег CDATA

XMLWriter::writeCdata

xmlwriter_write_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeCdata -- xmlwriter_write_cdata — Записать полный тег CDATA

Описание

Объектно-ориентированный стиль

public XMLWriter::writeCdata(string $content): bool

Процедурный стиль

xmlwriter_write_cdata(XMLWriter $writer, string $content): bool

Записывает полный тег CDATA.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

content

Содержимое CDATA.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Примеры

Пример #1 Базовое использование xmlwriter_write_cdata()

<?php
// настроить документ
$xml = new XmlWriter();
$xml->openMemory();
$xml->setIndent(true);
$xml->startDocument('1.0', 'UTF-8');
$xml->startElement('mydoc');
$xml->startElement('myele');

// вывод CData
$xml->startElement('mycdataelement');
$xml->writeCData("текст для включения как CData");
$xml->endElement();

// завершить документ и вывести
$xml->endElement();
$xml->endElement();
echo $xml->outputMemory(true);
?>

Результат выполнения данного примера:

<mydoc>
 <myele>
  <mycdataelement><![CDATA[текст для включения как CData]?]></mycdataelement>
 </myele>
</mydoc>

Смотрите также

  • XMLWriter::startCdata() - Создать начальный тег CDATA
  • XMLWriter::endCdata() - Завершить текущую секцию CDATA


Записать полный тег комментария

  • « XMLWriter::writeCdata
  • XMLWriter::writeDtd »
  • PHP Manual
  • XMLWriter
  • Записать полный тег комментария

XMLWriter::writeComment

xmlwriter_write_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeComment -- xmlwriter_write_comment — Записать полный тег комментария

Описание

Объектно-ориентированный стиль

public XMLWriter::writeComment(string $content): bool

Процедурный стиль

xmlwriter_write_comment(XMLWriter $writer, string $content): bool

Записывает полный комментарий.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

content

Содержимое комментария.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::startComment() - Создаёт стартовый комментарий
  • XMLWriter::endComment() - Завершить комментарий


Записать полный тег DTD

  • « XMLWriter::writeComment
  • XMLWriter::writeDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Записать полный тег DTD

XMLWriter::writeDtd

xmlwriter_write_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtd -- xmlwriter_write_dtd — Записать полный тег DTD

Описание

Объектно-ориентированный стиль

public XMLWriter::writeDtd(
string $name,
?string $publicId = null,
?string $systemId = null,
?string $content = null
): bool

Процедурный стиль

xmlwriter_write_dtd(
XMLWriter $writer,
string $name,
?string $publicId = null,
?string $systemId = null,
?string $content = null
): bool

Записывает полный тег DTD.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя DTD.

publicId

Идентификатор внешнего публичного подмножества.

systemId

Идентификатор внешнего системного подмножества.

content

Содержимое DTD.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::startDtd() - Создать стартовый DTD тег
  • XMLWriter::endDtd() - Завершить текущий DTD


Записать полный тег DTD AttList

  • « XMLWriter::writeDtd
  • XMLWriter::writeDtdElement »
  • PHP Manual
  • XMLWriter
  • Записать полный тег DTD AttList

XMLWriter::writeDtdAttlist

xmlwriter_write_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdAttlist -- xmlwriter_write_dtd_attlist — Записать полный тег DTD AttList

Описание

Объектно-ориентированный стиль

public XMLWriter::writeDtdAttlist(string $name, string $content): bool

Процедурный стиль

xmlwriter_write_dtd_attlist(XMLWriter $writer, string $name, string $content): bool

Записывает список атрибутов DTD.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя списка атрибутов DTD.

content

Содержимое списка атрибутов DTD.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdElement -- xmlwriter_write_dtd_element — Записать полный тег элемента DTD

Описание

Объектно-ориентированный стиль

public XMLWriter::writeDtdElement(string $name, string $content): bool

Процедурный стиль

xmlwriter_write_dtd_element(XMLWriter $writer, string $name, string $content): bool

Записывает полный тег элемента DTD.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя элемента DTD.

content

Содержимое элемента.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::startDtdElement() - Создать стартовый элемент DTD
  • XMLWriter::endDtdElement() - Завершить текущий элемент DTD


Записать полный тег DTD записи

  • « XMLWriter::writeDtdElement
  • XMLWriter::writeElement »
  • PHP Manual
  • XMLWriter
  • Записать полный тег DTD записи

XMLWriter::writeDtdEntity

xmlwriter_write_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdEntity -- xmlwriter_write_dtd_entity — Записать полный тег DTD записи

Описание

Объектно-ориентированный стиль

public XMLWriter::writeDtdEntity(
string $name,
string $content,
bool $isParam = false,
?string $publicId = null,
?string $systemId = null,
?string $notationData = null
): bool

Процедурный стиль

xmlwriter_write_dtd_entity(
XMLWriter $writer,
string $name,
string $content,
bool $isParam = false,
?string $publicId = null,
?string $systemId = null,
?string $notationData = null
): bool

Записывает полную DTD запись.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя записи.

content

Содержимое записи.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).
8.0.0 | publicId, systemId и notationData теперь допускают значение null.

Смотрите также

  • XMLWriter::startDtdEntity() - Создать стартовую запись DTD
  • XMLWriter::endDtdEntity() - Завершить текущую запись DTD


Записать полный тег элемента

  • « XMLWriter::writeDtdEntity
  • XMLWriter::writeElementNs »
  • PHP Manual
  • XMLWriter
  • Записать полный тег элемента

XMLWriter::writeElement

xmlwriter_write_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElement -- xmlwriter_write_element — Записать полный тег элемента

Описание

Объектно-ориентированный стиль

public XMLWriter::writeElement(string $name, ?string $content = null): bool

Процедурный стиль

xmlwriter_write_element(XMLWriter $writer, string $name, ?string $content = null): bool

Записывает полный тег элемента.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя элемента.

content

Содержимое элемента.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::startElement() - Создать стартовый тег элемента
  • XMLWriter::endElement() - Завершить текущий элемент
  • XMLWriter::writeElementNs() - Записать полное пространство имён тега элемента


Записать полное пространство имён тега элемента

  • « XMLWriter::writeElement
  • XMLWriter::writePi »
  • PHP Manual
  • XMLWriter
  • Записать полное пространство имён тега элемента

XMLWriter::writeElementNs

xmlwriter_write_element_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElementNs -- xmlwriter_write_element_ns — Записать полное пространство имён тега элемента

Описание

Объектно-ориентированный стиль

public XMLWriter::writeElementNs(
?string $prefix,
string $name,
?string $namespace,
?string $content = null
): bool

Процедурный стиль

xmlwriter_write_element_ns(
XMLWriter $writer,
?string $prefix,
string $name,
?string $namespace,
?string $content = null
): bool

Записывает полное пространство имён тега элемента.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

prefix

Префикс пространства имён. Если prefix равен null, пространство имён будет опущено.

name

Имя элемента.

namespace

URI пространства имён. Если namespace равен null, объявление пространства имён будет опущено.

content

Содержимое элемента.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • XMLWriter::startElementNs() - Создать стартовый тег элемента пространства имён
  • XMLWriter::endElement() - Завершить текущий элемент
  • XMLWriter::writeElement() - Записать полный тег элемента


Записать инструкцию обработки (PI)

  • « XMLWriter::writeElementNs
  • XMLWriter::writeRaw »
  • PHP Manual
  • XMLWriter
  • Записать инструкцию обработки (PI)

XMLWriter::writePi

xmlwriter_write_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writePi -- xmlwriter_write_pi — Записать инструкцию обработки (PI)

Описание

Объектно-ориентированный стиль

public XMLWriter::writePi(string $target, string $content): bool

Процедурный стиль

xmlwriter_write_pi(XMLWriter $writer, string $target, string $content): bool

Записывает инструкцию обработки.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

target

Цель инструкции обработки.

content

Содержимое инструкции обработки.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • 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, PHP 8, PECL xmlwriter >= 2.0.4)

XMLWriter::writeRaw -- xmlwriter_write_raw — Записать необработанный XML-текст

Описание

Объектно-ориентированный стиль

public XMLWriter::writeRaw(string $content): bool

Процедурный стиль

xmlwriter_write_raw(XMLWriter $writer, string $content): bool

Записывает необработанный XML-текст.

Список параметров

writer

Только для процедурных вызовов. Изменяемый экземпляр XMLWriter. Объект возвращается из вызова xmlwriter_open_uri() или xmlwriter_open_memory().

content

Текстовая строка для записи.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Список изменений

Версия | Описание
8.0.0 | В параметре writer теперь ожидается экземпляр XMLWriter; ранее ожидался ресурс (resource).

Смотрите также

  • 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. Это означает, что также необходима передача опции --with-libxml, или до PHP 7.4 --enable-libxml, хотя неявно это уже сделано, так как поддержка libxml по умолчанию включена.

Модуль использует libxslt, который может быть найден на » http://xmlsoft.org/XSLT/. Необходима версия libxslt 1.1.0, или выше.


Установка

PHP содержит модуль XSL по умолчанию. Модуль может быть активирован добавлением аргумента --with-xsl[=DIR] в строку конфигурации (DIR - путь установки libxslt).


Предопределённые константы

Перечисленные ниже константы определены данным модулем и доступны либо в сборках PHP с поддержкой этого модуля, либо когда модуль динамически загружен во время выполнения.

XSL_CLONE_AUTO (int)
XSL_CLONE_NEVER (int)
XSL_CLONE_ALWAYS (int)
LIBXSLT_VERSION (int)
версия libxslt формата 10117.
LIBXSLT_DOTTED_VERSION (string)
версия libxslt формата 1.1.17.
LIBEXSLT_VERSION (int)
версия libexslt формата 813.
LIBEXSLT_DOTTED_VERSION (string)
версия libexslt формата 1.1.17.
XSL_SECPREF_NONE (int)
Отключение всех ограничений безопасности.
XSL_SECPREF_READ_FILE (int)
Запрещает чтение файлов.
XSL_SECPREF_WRITE_FILE (int)
Запрещает запись файла.
XSL_SECPREF_CREATE_DIRECTORY (int)
Запрещает создание каталогов.
XSL_SECPREF_READ_NETWORK (int)
Запрещает чтение сетевых файлов.
XSL_SECPREF_WRITE_NETWORK (int)
Запрещает запись сетевых файлов.
XSL_SECPREF_DEFAULT (int)
Запрещает все виды доступа на запись, т.е. битовая маска 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, PHP 8)

Введение

Обзор классов

class XSLTProcessor {
/* Методы */
public getParameter(string $namespace, string $name): string|false
public getSecurityPrefs(): int
public hasExsltSupport(): bool
public importStylesheet(object $stylesheet): bool
public registerPHPFunctions(array|string|null $functions = null): void
public removeParameter(string $namespace, string $name): bool
public setParameter(string $namespace, string $name, string $value): bool
public setParameter(string $namespace, array $options): bool
public setProfiling(?string $filename): true
public setSecurityPrefs(int $preferences): int
public transformToDoc(object $document, ?string $returnClass = null): DOMDocument|false
public transformToUri(object $document, string $uri): int
public transformToXml(object $document): string|null|false
}

Содержание

  • 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, PHP 8)

XSLTProcessor::__construct — Создаёт новый экземпляр класса XSLTProcessor

Описание

XSLTProcessor::__construct()

Создаёт новый экземпляр класса 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, PHP 8)

XSLTProcessor::getParameter — Возвращает значение параметра

Описание

public XSLTProcessor::getParameter(string $namespace, string $name): string|false

Возвращает параметр, если он раньше установлен с помощью XSLTProcessor::setParameter().

Список параметров

namespace

Пространство имён URI параметра XSLT.

name

Локальное имя параметра XSLT.

Возвращаемые значения

Значение параметра (в виде строки), или false, если оно не установлено.

Смотрите также

  • XSLTProcessor::setParameter() - Устанавливает значение параметра
  • XSLTProcessor::removeParameter() - Удаляет параметр


Получить настройки безопасности

  • « XSLTProcessor::getParameter
  • XSLTProcessor::hasExsltSupport »
  • PHP Manual
  • XSLTProcessor
  • Получить настройки безопасности

XSLTProcessor::getSecurityPrefs

(PHP >= 5.4.0, PHP 7, PHP 8)

XSLTProcessor::getSecurityPrefs — Получить настройки безопасности

Описание

public XSLTProcessor::getSecurityPrefs(): 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, PHP 8)

XSLTProcessor::hasExsltSupport — Определяет имеет ли PHP поддержку EXSLT

Описание

public XSLTProcessor::hasExsltSupport(): 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, PHP 8)

XSLTProcessor::importStylesheet — Импортирует таблицу стилей

Описание

public XSLTProcessor::importStylesheet(object $stylesheet): bool

Этот метод импортирует таблицу стилей в XSLTProcessor для трансформации.

Список параметров

stylesheet

Импортируемая таблица стилей в виде объекта DOMDocument или SimpleXMLElement.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.


Включает возможность использовать PHP функции в качестве функций XSLT

  • « XSLTProcessor::importStylesheet
  • XSLTProcessor::removeParameter »
  • PHP Manual
  • XSLTProcessor
  • Включает возможность использовать PHP функции в качестве функций XSLT

XSLTProcessor::registerPHPFunctions

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

XSLTProcessor::registerPHPFunctions — Включает возможность использовать PHP функции в качестве функций XSLT

Описание

public XSLTProcessor::registerPHPFunctions(array|string|null $functions = null): void

Этот метод позволяет использовать PHP функции как функции XSLT в XSL таблицах стилей.

Список параметров

functions

Используйте этот параметр, если хотите вызывать из 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);
?>


Удаляет параметр

  • « XSLTProcessor::registerPHPFunctions
  • XSLTProcessor::setParameter »
  • PHP Manual
  • XSLTProcessor
  • Удаляет параметр

XSLTProcessor::removeParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::removeParameter — Удаляет параметр

Описание

public XSLTProcessor::removeParameter(string $namespace, string $name): bool

Удаляет параметр, если он установлен. Это позволяет процессору использовать значение в таблице стилей, установленное по умолчанию.

Список параметров

namespace

Пространство имён URI параметра XSLT.

name

Локальное название XSLT параметра.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Смотрите также

  • XSLTProcessor::setParameter() - Устанавливает значение параметра
  • XSLTProcessor::getParameter() - Возвращает значение параметра


Устанавливает значение параметра

  • « XSLTProcessor::removeParameter
  • XSLTProcessor::setProfiling »
  • PHP Manual
  • XSLTProcessor
  • Устанавливает значение параметра

XSLTProcessor::setParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::setParameter — Устанавливает значение параметра

Описание

public XSLTProcessor::setParameter(string $namespace, string $name, string $value): bool
public XSLTProcessor::setParameter(string $namespace, array $options): bool

Устанавливает значение для одного или нескольких параметров, чтобы использовать в дальнейшем в преобразованиях XSLTProcessor. Если параметра нет в таблице стилей, то он будет проигнорирован.

Список параметров

namespace

Пространство имён URI параметра XSLT.

name

Локальное название параметра XSLT.

value

Новое значение параметра XSLT.

options

Массив пар name => value.

Возвращаемые значения

Возвращает 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, PHP 7, PHP 8)

XSLTProcessor::setProfiling — Устанавливает файл для профилирования

Описание

public XSLTProcessor::setProfiling(?string $filename): true

Устанавливает файл для записи профилирующей информации во время обработки таблиц стилей.

Список параметров

filename

Путь к файлу, в который записывается профилирующая информация.

Возвращаемые значения

Функция всегда возвращает true.

Примеры

Пример #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, PHP 7, PHP 8)

XSLTProcessor::setSecurityPrefs — Установить настройки безопасности

Описание

public XSLTProcessor::setSecurityPrefs(int $preferences): int

Устанавливает настройки безопасности.

Список параметров

preferences

Новые настройки безопасности. Битовая маска из: 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, PHP 8)

XSLTProcessor::transformToDoc — Преобразует в DOMDocument

Описание

public XSLTProcessor::transformToDoc(object $document, ?string $returnClass = null): DOMDocument|false

Преобразует исходный узел в DOMDocument применяя таблицу стилей, заданную с помощью метода XSLTProcessor::importStylesheet().

Список параметров

document

Преобразуемый объект DOMDocument или SimpleXMLElement.

Возвращаемые значения

Возвращает 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, PHP 8)

XSLTProcessor::transformToUri — Преобразует в URI

Описание

public XSLTProcessor::transformToUri(object $document, string $uri): int

Преобразует исходный узел в URI, применяя таблицу стилей, которая установлена с помощью метода XSLTProcessor::importStylesheet().

Список параметров

document

Преобразуемый объект DOMDocument или SimpleXMLElement.

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, PHP 8)

XSLTProcessor::transformToXml — Преобразует в XML

Описание

public XSLTProcessor::transformToXml(object $document): string|null|false

Преобразует исходный узел в строку, применяя таблицы стилей, которые установлены с помощью метода xsltprocessor::importStylesheet().

Список параметров

document

Объект класса 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 — Добавляет узел градиента
    • UI\Draw\Brush\Gradient::delStop — Удаляет узел градиента
    • UI\Draw\Brush\Gradient::setStop — Устанавливает узел градиента
  • UI\Draw\Brush\LinearGradient — Линейный градиент
    • UI\Draw\Brush\LinearGradient::__construct — Конструктор класса LinearGradient
  • UI\Draw\Brush\RadialGradient — Радиальный градиент
    • UI\Draw\Brush\RadialGradient::__construct — Конструктор класса RadialGradient
  • 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 — Конструктор класса Font Descriptor
    • UI\Draw\Text\Font\Descriptor::getFamily — Получает семейство шрифтов
    • UI\Draw\Text\Font\Descriptor::getItalic — Определение стиля
    • UI\Draw\Text\Font\Descriptor::getSize — Определение размера
    • UI\Draw\Text\Font\Descriptor::getStretch — Определение стиля
    • UI\Draw\Text\Font\Descriptor::getWeight — Определение насыщенности
  • Функции 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)

(UI 0.9.9)

Введение

Точки используются во всем пользовательском интерфейсе для представления координат на экране, управляющем элементе или области.

Обзор классов

final class 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(): float
public getY(): 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

(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

(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

(UI 0.9.9)

UI\Point::getX — Получает X

Описание

public UI\Point::getX(): float

Получает X-координату

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая X-координата


Получить Y

  • « UI\Point::getX
  • UI\Point::setX »
  • PHP Manual
  • UI\Point
  • Получить Y

UI\Point::getY

(UI 0.9.9)

UI\Point::getY — Получить Y

Описание

public UI\Point::getY(): float

Получает Y-координату

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая Y-координата


Установить X

  • « UI\Point::getY
  • UI\Point::setY »
  • PHP Manual
  • UI\Point
  • Установить X

UI\Point::setX

(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

(UI 0.9.9)

UI\Point::setY — Установить Y

Описание

public UI\Point::setY(float $point)

Установить Y-координату

Список параметров

point

Новая Y-координата

Возвращаемые значения


Представляет размеры (ширина, высота)

(UI 0.9.9)

Введение

Размеры используются в пользовательском интерфейсе для представления размера экрана, управляющего элемента или области.

Обзор классов

final class UI\Size {
/* Свойства */
public $width;
public $height;
/* Конструктор */
public __construct(float $width, float $height)
/* Методы */
public getHeight(): float
public getWidth(): 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

(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

(UI 0.9.9)

UI\Size::getHeight — Получает высоту

Описание

public UI\Size::getHeight(): float

Получает высоту

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая высота


Получает ширину

  • « UI\Size::getHeight
  • UI\Size::of »
  • PHP Manual
  • UI\Size
  • Получает ширину

UI\Size::getWidth

(UI 0.9.9)

UI\Size::getWidth — Получает ширину

Описание

public UI\Size::getWidth(): float

Получает ширину

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая ширина


Приведение Point

  • « UI\Size::getWidth
  • UI\Size::setHeight »
  • PHP Manual
  • UI\Size
  • Приведение Point

UI\Size::of

(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

(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

(UI 0.9.9)

UI\Size::setWidth — Установить ширину

Описание

public UI\Size::setWidth(float $size)

Установить новую ширину

Список параметров

size

Новая ширина

Возвращаемые значения


Окно

(UI 0.9.9)

Введение

Представляет пользовательский интерфейс окна

Обзор классов

class 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(): UI\Size
public getTitle(): string
public hasBorders(): bool
public hasMargin(): bool
public isFullScreen(): bool
public msg(string $title, string $msg)
protected onClosing(): int
public open(): string
public save(): 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()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Свойства

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

(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

(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

(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

(UI 0.9.9)

UI\Window::getSize — Получить размер окна

Описание

public UI\Window::getSize(): UI\Size

Возвратит размер данного окна

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить заголовок

  • « UI\Window::getSize
  • UI\Window::hasBorders »
  • PHP Manual
  • UI\Window
  • Получить заголовок

UI\Window::getTitle

(UI 0.9.9)

UI\Window::getTitle — Получить заголовок

Описание

public UI\Window::getTitle(): string

Получит заголовок данного окна

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определение рамки

  • « UI\Window::getTitle
  • UI\Window::hasMargin »
  • PHP Manual
  • UI\Window
  • Определение рамки

UI\Window::hasBorders

(UI 0.9.9)

UI\Window::hasBorders — Определение рамки

Описание

public UI\Window::hasBorders(): bool

Определить, используются ли рамки в данном окне

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определение полей

  • « UI\Window::hasBorders
  • UI\Window::isFullScreen »
  • PHP Manual
  • UI\Window
  • Определение полей

UI\Window::hasMargin

(UI 0.9.9)

UI\Window::hasMargin — Определение полей

Описание

public UI\Window::hasMargin(): bool

Определить, используются ли поля в данном окне

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определение полного экрана

  • « UI\Window::hasMargin
  • UI\Window::msg »
  • PHP Manual
  • UI\Window
  • Определение полного экрана

UI\Window::isFullScreen

(UI 0.9.9)

UI\Window::isFullScreen — Определение полного экрана

Описание

public UI\Window::isFullScreen(): bool

Определить, используется ли это окно на весь экран

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Показать блок сообщения

  • « UI\Window::isFullScreen
  • UI\Window::onClosing »
  • PHP Manual
  • UI\Window
  • Показать блок сообщения

UI\Window::msg

(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

(UI 0.9.9)

UI\Window::onClosing — Callback-функция закрытия

Описание

protected UI\Window::onClosing(): int

Должен изящно уничтожить данное окно

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Открыть диалоговое окно

  • « UI\Window::onClosing
  • UI\Window::save »
  • PHP Manual
  • UI\Window
  • Открыть диалоговое окно

UI\Window::open

(UI 0.9.9)

UI\Window::open — Открыть диалоговое окно

Описание

public UI\Window::open(): string

Откроет диалоговое окно файла

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла, выбранного для открытия


Сохранить диалоговое окно

  • « UI\Window::open
  • UI\Window::setBorders »
  • PHP Manual
  • UI\Window
  • Сохранить диалоговое окно

UI\Window::save

(UI 0.9.9)

UI\Window::save — Сохранить диалоговое окно

Описание

public UI\Window::save(): string

Откроет диалоговое окно сохранения

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла для сохранения


Использование рамок

  • « UI\Window::save
  • UI\Window::setFullScreen »
  • PHP Manual
  • UI\Window
  • Использование рамок

UI\Window::setBorders

(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

(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

(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

(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

(UI 0.9.9)

UI\Window::setTitle — Заголовок окна

Описание

public UI\Window::setTitle(string $title)

Установит заголовок для данного окна

Список параметров

title

Новый заголовок


Элемент управления

(UI 0.9.9)

Введение

Это закрытый базовый класс для всех элементов управления пользовательского интерфейса.

Обзор классов

final class UI\Control {
/* Методы */
public destroy()
public disable()
public enable()
public getParent(): UI\Control
public getTopLevel(): int
public hide()
public isEnabled(): bool
public isVisible(): bool
public setParent(UI\Control $parent)
public show()
}

Содержание

  • 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

(UI 0.9.9)

UI\Control::destroy — Уничтожить управляющий элемент

Описание

public UI\Control::destroy()

Уничтожит данный управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Отключить управляющий элемент

  • « UI\Control::destroy
  • UI\Control::enable »
  • PHP Manual
  • UI\Control
  • Отключить управляющий элемент

UI\Control::disable

(UI 0.9.9)

UI\Control::disable — Отключить управляющий элемент

Описание

public UI\Control::disable()

Отключит данный управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Включить управляющий элемент

  • « UI\Control::disable
  • UI\Control::getParent »
  • PHP Manual
  • UI\Control
  • Включить управляющий элемент

UI\Control::enable

(UI 0.9.9)

UI\Control::enable — Включить управляющий элемент

Описание

public UI\Control::enable()

Включит данный управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить родительский управляющий элемент

  • « UI\Control::enable
  • UI\Control::getTopLevel »
  • PHP Manual
  • UI\Control
  • Получить родительский управляющий элемент

UI\Control::getParent

(UI 0.9.9)

UI\Control::getParent — Получить родительский управляющий элемент

Описание

public UI\Control::getParent(): UI\Control

Возвратит родительский управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить верхний уровень

  • « UI\Control::getParent
  • UI\Control::hide »
  • PHP Manual
  • UI\Control
  • Получить верхний уровень

UI\Control::getTopLevel

(UI 0.9.9)

UI\Control::getTopLevel — Получить верхний уровень

Описание

public UI\Control::getTopLevel(): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Скрыть управляющий элемент

  • « UI\Control::getTopLevel
  • UI\Control::isEnabled »
  • PHP Manual
  • UI\Control
  • Скрыть управляющий элемент

UI\Control::hide

(UI 0.9.9)

UI\Control::hide — Скрыть управляющий элемент

Описание

public UI\Control::hide()

Скрыть данный управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определить, включён ли управляющий элемент

  • « UI\Control::hide
  • UI\Control::isVisible »
  • PHP Manual
  • UI\Control
  • Определить, включён ли управляющий элемент

UI\Control::isEnabled

(UI 0.9.9)

UI\Control::isEnabled — Определить, включён ли управляющий элемент

Описание

public UI\Control::isEnabled(): bool

Определяет, включён ли управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определить, видимый ли управляющий элемент

  • « UI\Control::isEnabled
  • UI\Control::setParent »
  • PHP Manual
  • UI\Control
  • Определить, видимый ли управляющий элемент

UI\Control::isVisible

(UI 0.9.9)

UI\Control::isVisible — Определить, видимый ли управляющий элемент

Описание

public UI\Control::isVisible(): bool

Определяет, видимый ли управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Установить родительский управляющий элемент

  • « UI\Control::isVisible
  • UI\Control::show »
  • PHP Manual
  • UI\Control
  • Установить родительский управляющий элемент

UI\Control::setParent

(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

(UI 0.9.9)

UI\Control::show — Показать управляющий элемент

Описание

public UI\Control::show()

Покажет управляющий элемент

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Меню

(UI 0.9.9)

Введение

Меню должно быть создано до первого окна и может отображаться в любом окне

Обзор классов

class 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()
}

Содержание

  • 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

(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

(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

(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

(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

(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

(UI 0.9.9)

UI\Menu::appendSeparator — Добавить пункт меню "Разделитель" (Separator)

Описание

public UI\Menu::appendSeparator()

Добавит разделитель

Список параметров

У этой функции нет параметров.


Создать новый объект Menu

  • « UI\Menu::appendSeparator
  • UI\MenuItem »
  • PHP Manual
  • UI\Menu
  • Создать новый объект Menu

UI\Menu::__construct

(UI 0.9.9)

UI\Menu::__construct — Создать новый объект Menu

Описание

public UI\Menu::__construct(string $name)

Создаст новый объект Menu

Список параметров

name

Имя (текст) нового меню


Элемент меню

(UI 0.9.9)

Введение

Элементы меню должны создаваться только меню

Обзор классов

class UI\MenuItem {
/* Методы */
public disable()
public enable()
public isChecked(): bool
protected onClick()
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

(UI 0.9.9)

UI\MenuItem::disable — Отключить пункт меню

Описание

public UI\MenuItem::disable()

Отключит данный пункт меню

Список параметров

У этой функции нет параметров.


Включить пункт меню

  • « UI\MenuItem::disable
  • UI\MenuItem::isChecked »
  • PHP Manual
  • UI\MenuItem
  • Включить пункт меню

UI\MenuItem::enable

(UI 0.9.9)

UI\MenuItem::enable — Включить пункт меню

Описание

public UI\MenuItem::enable()

Включит данный пункт меню

Список параметров

У этой функции нет параметров.


Определение выбранности пункта

  • « UI\MenuItem::enable
  • UI\MenuItem::onClick »
  • PHP Manual
  • UI\MenuItem
  • Определение выбранности пункта

UI\MenuItem::isChecked

(UI 0.9.9)

UI\MenuItem::isChecked — Определение выбранности пункта

Описание

public UI\MenuItem::isChecked(): bool

Определить, выбран ли данный пункт меню

Список параметров

У этой функции нет параметров.


Обработчик нажатия

  • « UI\MenuItem::isChecked
  • UI\MenuItem::setChecked »
  • PHP Manual
  • UI\MenuItem
  • Обработчик нажатия

UI\MenuItem::onClick

(UI 0.9.9)

UI\MenuItem::onClick — Обработчик нажатия

Описание

protected UI\MenuItem::onClick()

Выполняется при нажатии данного пункта меню

Список параметров

У этой функции нет параметров.


Выбрать пункт меню

  • « UI\MenuItem::onClick
  • UI\Area »
  • PHP Manual
  • UI\MenuItem
  • Выбрать пункт меню

UI\MenuItem::setChecked

(UI 0.9.9)

UI\MenuItem::setChecked — Выбрать пункт меню

Описание

public UI\MenuItem::setChecked(bool $checked)

Установить статус выбранности данного пункта меню

Список параметров

checked

Новый статус


Area

(UI 0.9.9)

Введение

Область (Area) представляет собой холст, который можно использовать для рисования и реагирования на события мыши и клавиш.

Обзор классов

class UI\Area extends UI\Control {
/* Константы */
const int Ctrl;
const int Alt;
const int Shift;
const int Super;
const int Down;
const int 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()
public scrollTo(UI\Point $point, UI\Size $size)
public setSize(UI\Size $size)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Предопределённые константы

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

(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

(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

(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

(UI 0.9.9)

UI\Area::redraw — Перерисовать область

Описание

public UI\Area::redraw()

Запрашивает, чтобы эта область была перерисована

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Прокрутить область

  • « UI\Area::redraw
  • UI\Area::setSize »
  • PHP Manual
  • UI\Area
  • Прокрутить область

UI\Area::scrollTo

(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

(UI 0.9.9)

UI\Area::setSize — Установить размер

Описание

public UI\Area::setSize(UI\Size $size)

Устанавливает размер области

Список параметров

size

Новый размер


Планировщик выполнения

(UI 2.0.0)

Введение

Эта возможность планирует повторное выполнение callback-функции, полезно для анимации и других подобных действий.

Обзор классов

abstract class UI\Executor {
/* Конструктор */
public __construct()
public __construct(int $microseconds)
public __construct(int $seconds, int $microseconds)
/* Методы */
public kill(): void
abstract protected onExecute(): 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

(UI 2.0.0)

UI\Executor::__construct — Создать новый объект Executor

Описание

public UI\Executor::__construct()
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

(UI 2.0.0)

UI\Executor::kill — Остановить исполнитель

Описание

public UI\Executor::kill(): void

Остановит исполнитель, он не будет перезапущен

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Callback-функция выполнения

  • « UI\Executor::kill
  • UI\Executor::setInterval »
  • PHP Manual
  • UI\Executor
  • Callback-функция выполнения

UI\Executor::onExecute

(UI 2.0.0)

UI\Executor::onExecute — Callback-функция выполнения

Описание

abstract protected UI\Executor::onExecute(): void

Поставит в очередь для выполнения в основном потоке

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Управление интервалом

  • « UI\Executor::onExecute
  • UI\Controls\Tab »
  • PHP Manual
  • UI\Executor
  • Управление интервалом

UI\Executor::setInterval

(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

Возвращаемые значения

Индикатор успешности выполнения


Элемент управления "Таб"

(UI 0.9.9)

Введение

Таб может содержать много выбираемых пользователем страниц элементов управления, у каждой из которой есть заголовок.

Обзор классов

class 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(): int
public setMargin(int $page, bool $margin)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Свойства

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

(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

(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

(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

(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

(UI 0.9.9)

UI\Controls\Tab::pages — Количество страниц

Описание

public UI\Controls\Tab::pages(): int

Возвратит количество страниц в данном управляющем элементе "Таб"

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество страниц в данном управляющем элементе "Таб"


Установить поле

  • « UI\Controls\Tab::pages
  • UI\Controls\Check »
  • PHP Manual
  • UI\Controls\Tab
  • Установить поле

UI\Controls\Tab::setMargin

(UI 0.9.9)

UI\Controls\Tab::setMargin — Установить поле

Описание

public UI\Controls\Tab::setMargin(int $page, bool $margin)

Включить или отключить поля на выбранной странице

Список параметров

page

Страница для вставки

margin

Переключатель поля


Элемент управления "Чекбокс"

(UI 0.9.9)

Введение

Чекбокс (Check) представляет собой помеченный кликабельный блок

Обзор классов

class UI\Controls\Check extends UI\Control {
/* Конструктор */
public __construct(string $text)
/* Методы */
public getText(): string
public isChecked(): bool
protected onToggle()
public setChecked(bool $checked)
public setText(string $text)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Содержание

  • 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

(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

(UI 0.9.9)

UI\Controls\Check::getText — Получить текст

Описание

public UI\Controls\Check::getText(): string

Получает текст (метку) для данного чекбокса

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий текст (метка)


Определение отметки

  • « UI\Controls\Check::getText
  • UI\Controls\Check::onToggle »
  • PHP Manual
  • UI\Controls\Check
  • Определение отметки

UI\Controls\Check::isChecked

(UI 0.9.9)

UI\Controls\Check::isChecked — Определение отметки

Описание

public UI\Controls\Check::isChecked(): bool

Определит статус выбора данного чекбокса

Список параметров

У этой функции нет параметров.


Функция обратного вызова переключения

  • « UI\Controls\Check::isChecked
  • UI\Controls\Check::setChecked »
  • PHP Manual
  • UI\Controls\Check
  • Функция обратного вызова переключения

UI\Controls\Check::onToggle

(UI 0.9.9)

UI\Controls\Check::onToggle — Функция обратного вызова переключения

Описание

protected UI\Controls\Check::onToggle()

Выполняется при изменении статуса этого чекбокса.

Список параметров

У этой функции нет параметров.


Установить статус выбранности

  • « UI\Controls\Check::onToggle
  • UI\Controls\Check::setText »
  • PHP Manual
  • UI\Controls\Check
  • Установить статус выбранности

UI\Controls\Check::setChecked

(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

(UI 0.9.9)

UI\Controls\Check::setText — Установить текст

Описание

public UI\Controls\Check::setText(string $text)

Установит текст (метку) данного чекбокса

Список параметров

text

Новый текст (метка)


Элемент управления "Кнопка"

(UI 0.9.9)

Введение

Представляет собой помеченную кликабельную кнопку

Обзор классов

class UI\Controls\Button extends UI\Control {
/* Конструктор */
public __construct(string $text)
/* Методы */
public getText(): string
protected onClick()
public setText(string $text)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Содержание

  • 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

(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

(UI 0.9.9)

UI\Controls\Button::getText — Получить текст

Описание

public UI\Controls\Button::getText(): string

Получить текст (метку) для данного объекта Button

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий текст (метка)


Обработчик клика

  • « UI\Controls\Button::getText
  • UI\Controls\Button::setText »
  • PHP Manual
  • UI\Controls\Button
  • Обработчик клика

UI\Controls\Button::onClick

(UI 0.9.9)

UI\Controls\Button::onClick — Обработчик клика

Описание

protected UI\Controls\Button::onClick()

Выполняется при нажатии этого объекта Button

Список параметров

У этой функции нет параметров.


Установить текст

  • « UI\Controls\Button::onClick
  • UI\Controls\ColorButton »
  • PHP Manual
  • UI\Controls\Button
  • Установить текст

UI\Controls\Button::setText

(UI 0.9.9)

UI\Controls\Button::setText — Установить текст

Описание

public UI\Controls\Button::setText(string $text)

Устанавливает текст (метку) для данного объекта Button

Список параметров

text

Новый текст (метка)


Элемент управления "Кнопка с палитрой цветов"

(UI 0.9.9)

Введение

Кнопка с палитрой цветов - это кнопка, которая отображает селектор цвета при нажатии

Обзор классов

class UI\Controls\ColorButton extends UI\Control {
/* Методы */
public getColor(): UI\Color
protected onChange()
public setColor(UI\Draw\Color $color)
public setColor(int $color)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Содержание

  • 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

(UI 0.9.9)

UI\Controls\ColorButton::getColor — Получить объект Color

Описание

public UI\Controls\ColorButton::getColor(): UI\Color

Получить текущий выбранный объект Color

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Обработчик изменения

  • « UI\Controls\ColorButton::getColor
  • UI\Controls\ColorButton::setColor »
  • PHP Manual
  • UI\Controls\ColorButton
  • Обработчик изменения

UI\Controls\ColorButton::onChange

(UI 0.9.9)

UI\Controls\ColorButton::onChange — Обработчик изменения

Описание

protected UI\Controls\ColorButton::onChange()

Выполняется при изменении выбранного объекта Color

Список параметров

У этой функции нет параметров.


Установить объект Color

  • « UI\Controls\ColorButton::onChange
  • UI\Controls\Label »
  • PHP Manual
  • UI\Controls\ColorButton
  • Установить объект Color

UI\Controls\ColorButton::setColor

(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

Новый цвет


Элемент управления "Метка"

(UI 0.9.9)

Введение

Метка представляет одну строку текста, предназначенную для идентификации пользователем определённого элемента интерфейса.

Обзор классов

class UI\Controls\Label extends UI\Control {
/* Конструктор */
public __construct(string $text)
/* Методы */
public getText(): string
public setText(string $text)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Содержание

  • 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

(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

(UI 0.9.9)

UI\Controls\Label::getText — Получить текст

Описание

public UI\Controls\Label::getText(): string

Возвращает текущий текст для данной метки

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Установить текст

  • « UI\Controls\Label::getText
  • UI\Controls\Entry »
  • PHP Manual
  • UI\Controls\Label
  • Установить текст

UI\Controls\Label::setText

(UI 0.9.9)

UI\Controls\Label::setText — Установить текст

Описание

public UI\Controls\Label::setText(string $text)

Устанавливает текст для данной метки

Список параметров

text

Новый текст


Элемент управления "Ввод"

(UI 0.9.9)

Введение

Ввод (Entry) - элемент управления текстовой записи, подходящий для ввода простого текста, паролей или поисковых запросов.

Обзор классов

class UI\Controls\Entry extends UI\Control {
/* Константы */
const int Normal;
const int Password;
const int Search;
/* Конструктор */
public __construct(int $type = UI\Controls\Entry::Normal)
/* Методы */
public getText(): string
public isReadOnly(): bool
protected onChange()
public setReadOnly(bool $readOnly)
public setText(string $text)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Предопределённые константы

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

(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

(UI 0.9.9)

UI\Controls\Entry::getText — Получить текст

Описание

public UI\Controls\Entry::getText(): string

Возвратит текущий текст из управляющего элемента "Ввод"

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий текст


Определить, является ли элемент только для чтения

  • « UI\Controls\Entry::getText
  • UI\Controls\Entry::onChange »
  • PHP Manual
  • UI\Controls\Entry
  • Определить, является ли элемент только для чтения

UI\Controls\Entry::isReadOnly

(UI 0.9.9)

UI\Controls\Entry::isReadOnly — Определить, является ли элемент только для чтения

Описание

public UI\Controls\Entry::isReadOnly(): bool

Определяет, является ли управляющий элемент "Ввод" только для чтения

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Обработчик изменения

  • « UI\Controls\Entry::isReadOnly
  • UI\Controls\Entry::setReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Обработчик изменения

UI\Controls\Entry::onChange

(UI 0.9.9)

UI\Controls\Entry::onChange — Обработчик изменения

Описание

protected UI\Controls\Entry::onChange()

Выполняется при изменении текста в данном элементе управления "Ввод"

Список параметров

У этой функции нет параметров.


Установить "только для чтения"

  • « UI\Controls\Entry::onChange
  • UI\Controls\Entry::setText »
  • PHP Manual
  • UI\Controls\Entry
  • Установить "только для чтения"

UI\Controls\Entry::setReadOnly

(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

(UI 0.9.9)

UI\Controls\Entry::setText — Установить текст

Описание

public UI\Controls\Entry::setText(string $text)

Устанавливает текст для данного управляющего элемента "Ввод"

Список параметров

text

Новый текст


Элемент управления "Многострочный ввод"

(UI 0.9.9)

Введение

Многострочный ввод - это элемент управления текстовой записи, способный хранить несколько строк текста, с переносом строк или без него.

Обзор классов

class UI\Controls\MultilineEntry extends UI\Control {
/* Константы */
const int Wrap;
const int NoWrap;
/* Конструктор */
public __construct(int $type = ?)
/* Методы */
public append(string $text)
public getText(): string
public isReadOnly(): bool
protected onChange()
public setReadOnly(bool $readOnly)
public setText(string $text)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Предопределённые константы

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

(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

(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

(UI 0.9.9)

UI\Controls\MultilineEntry::getText — Получить текст

Описание

public UI\Controls\MultilineEntry::getText(): string

Возвращает текст в данном управляющем элементе "Многострочный ввод"

Список параметров

У этой функции нет параметров.


Определение "только для чтения"

  • « UI\Controls\MultilineEntry::getText
  • UI\Controls\MultilineEntry::onChange »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Определение "только для чтения"

UI\Controls\MultilineEntry::isReadOnly

(UI 0.9.9)

UI\Controls\MultilineEntry::isReadOnly — Определение "только для чтения"

Описание

public UI\Controls\MultilineEntry::isReadOnly(): bool

Определяет, является ли элемент управления "Многострочный ввод" только для чтения

Список параметров

У этой функции нет параметров.


Обработчик изменения

  • « UI\Controls\MultilineEntry::isReadOnly
  • UI\Controls\MultilineEntry::setReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Обработчик изменения

UI\Controls\MultilineEntry::onChange

(UI 0.9.9)

UI\Controls\MultilineEntry::onChange — Обработчик изменения

Описание

protected UI\Controls\MultilineEntry::onChange()

Выполняется при изменении текста в данном элементе управления "Многострочный ввод"

Список параметров

У этой функции нет параметров.


Установить "только для чтения"

  • « UI\Controls\MultilineEntry::onChange
  • UI\Controls\MultilineEntry::setText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Установить "только для чтения"

UI\Controls\MultilineEntry::setReadOnly

(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

(UI 0.9.9)

UI\Controls\MultilineEntry::setText — Установить текст

Описание

public UI\Controls\MultilineEntry::setText(string $text)

Устанавливает текст для данного управляющего элемента "Многострочный ввод"

Список параметров

text

Новый текст


Элемент управления "Спин"

(UI 0.9.9)

Введение

Блок "Спин" представляет текстовое поле с элементом управления "вверх", который изменяет целочисленное значение в поле, в пределах заданного диапазона

Обзор классов

class UI\Controls\Spin extends UI\Control {
/* Конструктор */
public __construct(int $min, int $max)
/* Методы */
public getValue(): int
protected onChange()
public setValue(int $value)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Содержание

  • 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

(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

(UI 0.9.9)

UI\Controls\Spin::getValue — Получить значение

Описание

public UI\Controls\Spin::getValue(): int

Получить значение в данном элементе управления "Спин"

Список параметров

У этой функции нет параметров.


Обработчик изменения

  • « UI\Controls\Spin::getValue
  • UI\Controls\Spin::setValue »
  • PHP Manual
  • UI\Controls\Spin
  • Обработчик изменения

UI\Controls\Spin::onChange

(UI 0.9.9)

UI\Controls\Spin::onChange — Обработчик изменения

Описание

protected UI\Controls\Spin::onChange()

Выполняется при изменении значения в данном управляющем элементе "Спин"

Список параметров

У этой функции нет параметров.


Установить значение

  • « UI\Controls\Spin::onChange
  • UI\Controls\Slider »
  • PHP Manual
  • UI\Controls\Spin
  • Установить значение

UI\Controls\Spin::setValue

(UI 0.9.9)

UI\Controls\Spin::setValue — Установить значение

Описание

public UI\Controls\Spin::setValue(int $value)

Установить значение в данном элементе управления "Спин"

Список параметров

value

Новое значение


Элемент управления "Слайдер"

(UI 0.9.9)

Введение

Слайдер - это элемент управления, представляющий диапазон и текущее значение в нем. Скользящий элемент управления (иногда называемый «большим пальцем») отражает значение и может быть отрегулирован в пределах диапазона.

Обзор классов

class UI\Controls\Slider extends UI\Control {
/* Конструктор */
public __construct(int $min, int $max)
/* Методы */
public getValue(): int
protected onChange()
public setValue(int $value)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Содержание

  • 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

(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

(UI 0.9.9)

UI\Controls\Slider::getValue — Получить значение

Описание

public UI\Controls\Slider::getValue(): int

Получить значение из данного слайдера

Список параметров

У этой функции нет параметров.


Обработчик изменения

  • « UI\Controls\Slider::getValue
  • UI\Controls\Slider::setValue »
  • PHP Manual
  • UI\Controls\Slider
  • Обработчик изменения

UI\Controls\Slider::onChange

(UI 0.9.9)

UI\Controls\Slider::onChange — Обработчик изменения

Описание

protected UI\Controls\Slider::onChange()

Выполняется при изменении значения в данном слайдере

Список параметров

У этой функции нет параметров.


Установить значение

  • « UI\Controls\Slider::onChange
  • UI\Controls\Progress »
  • PHP Manual
  • UI\Controls\Slider
  • Установить значение

UI\Controls\Slider::setValue

(UI 0.9.9)

UI\Controls\Slider::setValue — Установить значение

Описание

public UI\Controls\Slider::setValue(int $value)

Установит значение для данного слайдера

Список параметров

value

Новое значение


Элемент управления "Ход выполнения"

(UI 0.9.9)

Введение

Элемент управления "Ход выполнения" похож на знакомый индикатор выполнения: Он представляет собой индикатор выполнения в процентах с допустимым диапазоном от 0 до 100 (включительно).

Обзор классов

class UI\Controls\Progress extends UI\Control {
/* Методы */
public getValue(): int
public setValue(int $value)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Содержание

  • UI\Controls\Progress::getValue — Получить значение
  • UI\Controls\Progress::setValue — Установить значение


Получить значение

  • « UI\Controls\Progress
  • UI\Controls\Progress::setValue »
  • PHP Manual
  • UI\Controls\Progress
  • Получить значение

UI\Controls\Progress::getValue

(UI 0.9.9)

UI\Controls\Progress::getValue — Получить значение

Описание

public UI\Controls\Progress::getValue(): int

Получить текущее значение данного индикатора выполнения

Список параметров

У этой функции нет параметров.


Установить значение

  • « UI\Controls\Progress::getValue
  • UI\Controls\Separator »
  • PHP Manual
  • UI\Controls\Progress
  • Установить значение

UI\Controls\Progress::setValue

(UI 0.9.9)

UI\Controls\Progress::setValue — Установить значение

Описание

public UI\Controls\Progress::setValue(int $value)

Установить значение данному индикатору выполнения

Список параметров

value

Целое число между 0 и 100 (включительно)


Элемент управления "Разделитель"

(UI 0.9.9)

Введение

Разделитель представляет элемент управления разделителя без каких-либо функций.

Обзор классов

class UI\Controls\Separator extends UI\Control {
/* Константы */
const int Horizontal;
const int Vertical;
/* Конструктор */
public __construct(int $type = UI\Controls\Separator::Horizontal)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Предопределённые константы

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

(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


Элемент управления "Комбо"

(UI 0.9.9)

Введение

Элемент управления "Комбо" представляет список опций, например, похожий на HTML-элемент.

Обзор классов

class UI\Controls\Combo extends UI\Control {
/* Методы */
public append(string $text)
public getSelected(): int
protected onSelected()
public setSelected(int $index)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Содержание

  • 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

(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

(UI 0.9.9)

UI\Controls\Combo::getSelected — Получить выбранную опцию

Описание

public UI\Controls\Combo::getSelected(): int

Получает индекс опции, выбранной в этом элементе "Комбо"

Список параметров

У этой функции нет параметров.


Обработчик выбранной опции

  • « UI\Controls\Combo::getSelected
  • UI\Controls\Combo::setSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Обработчик выбранной опции

UI\Controls\Combo::onSelected

(UI 0.9.9)

UI\Controls\Combo::onSelected — Обработчик выбранной опции

Описание

protected UI\Controls\Combo::onSelected()

Выполняется, если в этом элементе "Комбо" выбрана опция

Список параметров

У этой функции нет параметров.


Устанавливает выбранную опцию

  • « UI\Controls\Combo::onSelected
  • UI\Controls\EditableCombo »
  • PHP Manual
  • UI\Controls\Combo
  • Устанавливает выбранную опцию

UI\Controls\Combo::setSelected

(UI 0.9.9)

UI\Controls\Combo::setSelected — Устанавливает выбранную опцию

Описание

public UI\Controls\Combo::setSelected(int $index)

Установит выбранную в данный момент опцию в данном элементе "Комбо"

Список параметров

index

Индекс опции для выбора


Редактируемый элемент управления "Комбо"

(UI 0.9.9)

Введение

Редактируемый элемент управления "Комбо" позволяет пользователю вводить произвольные опции

Обзор классов

class UI\Controls\EditableCombo extends UI\Control {
/* Методы */
public append(string $text)
public getText(): string
protected onChange()
public setText(string $text)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Содержание

  • 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

(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

(UI 0.9.9)

UI\Controls\EditableCombo::getText — Получить текст

Описание

public UI\Controls\EditableCombo::getText(): string

Получает значение выбранной в данный момент опции в данном редактируемом элементе "Комбо"

Список параметров

У этой функции нет параметров.


Обработчик изменения

  • « UI\Controls\EditableCombo::getText
  • UI\Controls\EditableCombo::setText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Обработчик изменения

UI\Controls\EditableCombo::onChange

(UI 0.9.9)

UI\Controls\EditableCombo::onChange — Обработчик изменения

Описание

protected UI\Controls\EditableCombo::onChange()

Выполняется, когда изменяется значение данного редактируемого элемента "Комбо"

Список параметров

У этой функции нет параметров.


Установить текст

  • « UI\Controls\EditableCombo::onChange
  • UI\Controls\Radio »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Установить текст

UI\Controls\EditableCombo::setText

(UI 0.9.9)

UI\Controls\EditableCombo::setText — Установить текст

Описание

public UI\Controls\EditableCombo::setText(string $text)

Установит текст выбранной в данный момент опции в данном редактируемом элементе "Комбо"

Список параметров

text

Новый текст


Элемент управления "Радио"

(UI 0.9.9)

Введение

Радио похож на радиокнопку из HTML

Обзор классов

class UI\Controls\Radio extends UI\Control {
/* Методы */
public append(string $text)
public getSelected(): int
protected onSelected()
public setSelected(int $index)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Содержание

  • 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

(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

(UI 0.9.9)

UI\Controls\Radio::getSelected — Получить выбранный вариант

Описание

public UI\Controls\Radio::getSelected(): int

Получает индекс выбранного в данный момент варианта в данной радиокнопке

Список параметров

У этой функции нет параметров.


Обработчик выбора

  • « UI\Controls\Radio::getSelected
  • UI\Controls\Radio::setSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Обработчик выбора

UI\Controls\Radio::onSelected

(UI 0.9.9)

UI\Controls\Radio::onSelected — Обработчик выбора

Описание

protected UI\Controls\Radio::onSelected()

Выполняется, когда выбирается вариант в данной радиокнопке

Список параметров

У этой функции нет параметров.


Установить выбранный вариант

  • « UI\Controls\Radio::onSelected
  • UI\Controls\Picker »
  • PHP Manual
  • UI\Controls\Radio
  • Установить выбранный вариант

UI\Controls\Radio::setSelected

(UI 0.9.9)

UI\Controls\Radio::setSelected — Установить выбранный вариант

Описание

public UI\Controls\Radio::setSelected(int $index)

Включить выбранный в данный момент вариант

Список параметров

index

Индекс варианта для выбора


Элемент управления "Селектор"

(UI 0.9.9)

Введение

Селектор представляет кнопку, которая при нажатии открывает нативный интерфейс селектора даты/времени/даты и времени.

Обзор классов

class UI\Controls\Picker extends UI\Control {
/* Константы */
const int Date;
const int Time;
const int DateTime;
/* Конструктор */
public __construct(int $type = UI\Controls\Picker::Date)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Предопределённые константы

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

(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


Элемент управления "Форма" (расположение)

(UI 0.9.9)

Введение

Форма - это элемент управления, позволяющий размещать другие элементы управления в макете (форме).

Обзор классов

class 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(): bool
public setPadded(bool $padded)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Свойства

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

(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

(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

(UI 0.9.9)

UI\Controls\Form::isPadded — Определение заполнения

Описание

public UI\Controls\Form::isPadded(): bool

Определяет, включено ли заполнение в данной форме

Список параметров

У этой функции нет параметров.


Установить заполнение

  • « UI\Controls\Form::isPadded
  • UI\Controls\Grid »
  • PHP Manual
  • UI\Controls\Form
  • Установить заполнение

UI\Controls\Form::setPadded

(UI 0.9.9)

UI\Controls\Form::setPadded — Установить заполнение

Описание

public UI\Controls\Form::setPadded(bool $padded)

Определяет, включено или выключено заполнение в данной форме

Список параметров

padded


Элемент управления "Сетка" (размещение)

(UI 0.9.9)

Введение

Сетка - это элемент управления, позволяющий размещать дочерние элементы в сетке

Обзор классов

class UI\Controls\Grid extends UI\Control {
/* Константы */
const int Fill;
const int Start;
const int Center;
const int End;
const int Leading;
const int Top;
const int Trailing;
const int 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(): bool
public setPadded(bool $padding)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Предопределённые константы

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

(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

(UI 0.9.9)

UI\Controls\Grid::isPadded — Определение заполнения

Описание

public UI\Controls\Grid::isPadded(): bool

Определяет, включено ли заполнение в данной сетке

Список параметров

У этой функции нет параметров.


Установить заполнение

  • « UI\Controls\Grid::isPadded
  • UI\Controls\Group »
  • PHP Manual
  • UI\Controls\Grid
  • Установить заполнение

UI\Controls\Grid::setPadded

(UI 0.9.9)

UI\Controls\Grid::setPadded — Установить заполнение

Описание

public UI\Controls\Grid::setPadded(bool $padding)

Определяет, включено или выключено заполнение в данной сетке

Список параметров

padding


Элемент управления "Группа" (размещение)

(UI 0.9.9)

Введение

Группа представляет контейнер для дочерних элементов

Обзор классов

class UI\Controls\Group extends UI\Control {
/* Свойства */
protected $controls;
/* Конструктор */
public __construct(string $title)
/* Методы */
public append(UI\Control $control)
public getTitle(): string
public hasMargin(): bool
public setMargin(bool $margin)
public setTitle(string $title)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Свойства

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

(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

(UI 0.9.9)

UI\Controls\Group::getTitle — Получить заголовок

Описание

public UI\Controls\Group::getTitle(): string

Возвращает текущий заголовок для данной группы

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий заголовок


Определение поля

  • « UI\Controls\Group::getTitle
  • UI\Controls\Group::setMargin »
  • PHP Manual
  • UI\Controls\Group
  • Определение поля

UI\Controls\Group::hasMargin

(UI 0.9.9)

UI\Controls\Group::hasMargin — Определение поля

Описание

public UI\Controls\Group::hasMargin(): bool

Определяет, имеет ли данная группа поле (margin)

Список параметров

У этой функции нет параметров.


Установить поле

  • « UI\Controls\Group::hasMargin
  • UI\Controls\Group::setTitle »
  • PHP Manual
  • UI\Controls\Group
  • Установить поле

UI\Controls\Group::setMargin

(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

(UI 0.9.9)

UI\Controls\Group::setTitle — Установить заголовок

Описание

public UI\Controls\Group::setTitle(string $title)

Установить заголовок для заданной группы

Список параметров

title

Текст для нового заголовка


Блок управления (размещение)

(UI 0.9.9)

Введение

Блок (Box) позволяет расположить другие элементы управления

Обзор классов

class UI\Controls\Box extends UI\Control {
/* Константы */
const int Vertical;
const int 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(): int
public isPadded(): bool
public setPadded(bool $padded)
/* Наследуемые методы */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Свойства

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

(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

(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

(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

(UI 0.9.9)

UI\Controls\Box::getOrientation — Получить ориентацию

Описание

public UI\Controls\Box::getOrientation(): int

Получает ориентацию данного блока

Список параметров

У этой функции нет параметров.


Определение заполнения

  • « UI\Controls\Box::getOrientation
  • UI\Controls\Box::setPadded »
  • PHP Manual
  • UI\Controls\Box
  • Определение заполнения

UI\Controls\Box::isPadded

(UI 0.9.9)

UI\Controls\Box::isPadded — Определение заполнения

Описание

public UI\Controls\Box::isPadded(): bool

Определяет, включено ли заполнение в этом блоке

Список параметров

У этой функции нет параметров.


Установить заполнение

  • « UI\Controls\Box::isPadded
  • UI\Draw\Pen »
  • PHP Manual
  • UI\Controls\Box
  • Установить заполнение

UI\Controls\Box::setPadded

(UI 0.9.9)

UI\Controls\Box::setPadded — Установить заполнение

Описание

public UI\Controls\Box::setPadded(bool $padded)

Определяет, включено или выключено заполнение в этом блоке

Список параметров

padded


Рисование с помощью "Перо"

(UI 0.9.9)

Введение

Перо передаётся обработчику события "рисованию области" (Area Draw), он используется для обрезания, заполнения, обводки и записи в "пути рисования" (Draw Paths).

Обзор классов

final class 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()
public save()
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

(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

(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

(UI 0.9.9)

UI\Draw\Pen::restore — Восстановить

Описание

public UI\Draw\Pen::restore()

Восстановит ранее сохранённое перо

Список параметров

У этой функции нет параметров.


Сохранить

  • « UI\Draw\Pen::restore
  • UI\Draw\Pen::stroke »
  • PHP Manual
  • UI\Draw\Pen
  • Сохранить

UI\Draw\Pen::save

(UI 0.9.9)

UI\Draw\Pen::save — Сохранить

Описание

public UI\Draw\Pen::save()

Сохранит перо

Список параметров

У этой функции нет параметров.


Обвести путь

  • « UI\Draw\Pen::save
  • UI\Draw\Pen::transform »
  • PHP Manual
  • UI\Draw\Pen
  • Обвести путь

UI\Draw\Pen::stroke

(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

(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

(UI 0.9.9)

UI\Draw\Pen::write — Нарисовать текст в точке

Описание

public UI\Draw\Pen::write(UI\Point $point, UI\Draw\Text\Layout $layout)

Нарисует заданный макет текста в заданной точке

Список параметров

point

Точка для рисования

layout

Макет текста для рисования


Путь рисования

(UI 0.9.9)

Введение

Путь рисования направляет перо, где рисовать по области

Обзор классов

class UI\Draw\Path {
/* Константы */
const int Winding;
const int 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()
public end()
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

(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

(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

(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

(UI 0.9.9)

UI\Draw\Path::closeFigure — Закрыть фигуру

Описание

public UI\Draw\Path::closeFigure()

Закроет текущую фигуру

Список параметров

У этой функции нет параметров.


Создать новый объект Path

  • « UI\Draw\Path::closeFigure
  • UI\Draw\Path::end »
  • PHP Manual
  • UI\Draw\Path
  • Создать новый объект Path

UI\Draw\Path::__construct

(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

(UI 0.9.9)

UI\Draw\Path::end — Завершить путь

Описание

public UI\Draw\Path::end()

Завершит данный путь

Список параметров

У этой функции нет параметров.


Нарисовать линию

  • « UI\Draw\Path::end
  • UI\Draw\Path::newFigure »
  • PHP Manual
  • UI\Draw\Path
  • Нарисовать линию

UI\Draw\Path::lineTo

(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

(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

(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

Возвращаемые значения


Матрица рисования

(UI 0.9.9)

Введение

Обзор классов

class UI\Draw\Matrix {
/* Методы */
public invert()
public isInvertible(): 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

(UI 0.9.9)

UI\Draw\Matrix::invert — Инвертировать матрицу

Описание

public UI\Draw\Matrix::invert()

Инвертирует данную матрицу

Список параметров

У этой функции нет параметров.


Определение, инвертирована ли матрица

  • « UI\Draw\Matrix::invert
  • UI\Draw\Matrix::multiply »
  • PHP Manual
  • UI\Draw\Matrix
  • Определение, инвертирована ли матрица

UI\Draw\Matrix::isInvertible

(UI 0.9.9)

UI\Draw\Matrix::isInvertible — Определение, инвертирована ли матрица

Описание

public UI\Draw\Matrix::isInvertible(): bool

Определить, инвертирована ли матрица

Список параметров

У этой функции нет параметров.


Умножить матрицу

  • « UI\Draw\Matrix::isInvertible
  • UI\Draw\Matrix::rotate »
  • PHP Manual
  • UI\Draw\Matrix
  • Умножить матрицу

UI\Draw\Matrix::multiply

(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

(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

(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

(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

(UI 0.9.9)

UI\Draw\Matrix::translate — Перевести матрицу

Описание

public UI\Draw\Matrix::translate(UI\Point $point)

Переведёт данную матрицу

Список параметров

point


Представление цвета

(UI 0.9.9)

Введение

Представляет цвета RGBA, отдельные каналы доступны через общедоступные свойства.

Обзор классов

class UI\Draw\Color {
/* Константы */
const int Red;
const int Green;
const int Blue;
const int 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

(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

(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

(UI 0.9.9)

UI\Draw\Color::setChannel — Управление цветом

Описание

public UI\Draw\Color::setChannel(int $channel, float $value): void

Установит выбранный канал на заданное значение

Список параметров

channel

Идентификация постоянного канала

value

Новое значение выбранного канала

Возвращаемые значения


Рисование обводки

(UI 0.9.9)

Введение

Содержит конфигурацию Pen для выполнения обводки

Обзор классов

class 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(): int
public getJoin(): int
public getMiterLimit(): float
public getThickness(): 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

(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

(UI 0.9.9)

UI\Draw\Stroke::getCap — Получить конец линии

Описание

public UI\Draw\Stroke::getCap(): 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

(UI 0.9.9)

UI\Draw\Stroke::getJoin — Получить соединение линии

Описание

public UI\Draw\Stroke::getJoin(): 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

(UI 0.9.9)

UI\Draw\Stroke::getMiterLimit — Получить предел среза

Описание

public UI\Draw\Stroke::getMiterLimit(): float

Получит предел среза данной обводки

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий предел среза


Получить толщину

  • « UI\Draw\Stroke::getMiterLimit
  • UI\Draw\Stroke::setCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Получить толщину

UI\Draw\Stroke::getThickness

(UI 0.9.9)

UI\Draw\Stroke::getThickness — Получить толщину

Описание

public UI\Draw\Stroke::getThickness(): float

Получит толщину данной обводки

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая толщина


Установить конец линии

  • « UI\Draw\Stroke::getThickness
  • UI\Draw\Stroke::setJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Установить конец линии

UI\Draw\Stroke::setCap

(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

(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

(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

(UI 0.9.9)

UI\Draw\Stroke::setThickness — Установить толщину

Описание

public UI\Draw\Stroke::setThickness(float $thickness)

Установит толщину для данной обводки

Список параметров

thickness

Новая толщина


Кисти

(UI 0.9.9)

Введение

Представляет сплошную цветную кисть

Обзор классов

class UI\Draw\Brush {
/* Конструктор */
public __construct(UI\Draw\Color $color)
public __construct(int $color)
/* Методы */
public getColor(): 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

(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

(UI 0.9.9)

UI\Draw\Brush::getColor — Получить цвет

Описание

public UI\Draw\Brush::getColor(): UI\Draw\Color

Возвратит объект UI\Draw\Color для данной кисти

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий цвет кисти


Установить цвет

  • « UI\Draw\Brush::getColor
  • UI\Draw\Brush\Gradient »
  • PHP Manual
  • UI\Draw\Brush
  • Установить цвет

UI\Draw\Brush::setColor

(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

Возвращаемые значения


Градиентные кисти

(UI 2.0.0)

Введение

Абстрактный класс для градиентных кистей

Обзор классов

abstract class 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(): 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 — Добавляет узел градиента
  • UI\Draw\Brush\Gradient::delStop — Удаляет узел градиента
  • UI\Draw\Brush\Gradient::setStop — Устанавливает узел градиента


Добавляет узел градиента

  • « UI\Draw\Brush\Gradient
  • UI\Draw\Brush\Gradient::delStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Добавляет узел градиента

UI\Draw\Brush\Gradient::addStop

(UI 2.0.0)

UI\Draw\Brush\Gradient::addStop — Добавляет узел градиента

Описание

public UI\Draw\Brush\Gradient::addStop(float $position, UI\Draw\Color $color): int
public UI\Draw\Brush\Gradient::addStop(float $position, int $color): int

Добавляет узел градиента заданного цвета в заданной позиции.

Список параметров

position

Позиция для нового узла.

color

Цвет для нового узла, может быть UI\Draw\Color или RRGGBBAA.

Возвращаемые значения

Общее число узлов.


Удаляет узел градиента

  • « UI\Draw\Brush\Gradient::addStop
  • UI\Draw\Brush\Gradient::setStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Удаляет узел градиента

UI\Draw\Brush\Gradient::delStop

(UI 2.0.0)

UI\Draw\Brush\Gradient::delStop — Удаляет узел градиента

Описание

public UI\Draw\Brush\Gradient::delStop(int $index): int

Внимание

К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Возвращаемые значения

Общее число узлов.


Устанавливает узел градиента

  • « UI\Draw\Brush\Gradient::delStop
  • UI\Draw\Brush\LinearGradient »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Устанавливает узел градиента

UI\Draw\Brush\Gradient::setStop

(UI 2.0.0)

UI\Draw\Brush\Gradient::setStop — Устанавливает узел градиента

Описание

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

Индекс узла для установки.

position

Позиция для узла.

color

Цвет для нового узла, может быть UI\Draw\Color или RRGGBBAA.

Возвращаемые значения

Индикация успеха.


Линейный градиент

(UI 2.0.0)

Введение

Обзор классов

class 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 — Конструктор класса LinearGradient


Конструктор класса LinearGradient

  • « UI\Draw\Brush\LinearGradient
  • UI\Draw\Brush\RadialGradient »
  • PHP Manual
  • UI\Draw\Brush\LinearGradient
  • Конструктор класса LinearGradient

UI\Draw\Brush\LinearGradient::__construct

(UI 2.0.0)

UI\Draw\Brush\LinearGradient::__construct — Конструктор класса LinearGradient

Описание

public UI\Draw\Brush\LinearGradient::__construct(UI\Point $start, UI\Point $end)

Создаёт новый линейный градиент

Список параметров

start

end


Радиальный градиент

(UI 2.0.0)

Введение

Обзор классов

class 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 — Конструктор класса RadialGradient


Конструктор класса RadialGradient

  • « UI\Draw\Brush\RadialGradient
  • UI\Draw\Text\Layout »
  • PHP Manual
  • UI\Draw\Brush\RadialGradient
  • Конструктор класса RadialGradient

UI\Draw\Brush\RadialGradient::__construct

(UI 2.0.0)

UI\Draw\Brush\RadialGradient::__construct — Конструктор класса RadialGradient

Описание

public UI\Draw\Brush\RadialGradient::__construct(UI\Point $start, UI\Point $outer, float $radius)

Создаёт новый радиальный градиент

Список параметров

start

outer

radius


Представляет макет текста

(UI 0.9.9)

Введение

Текстовый макет представляет собой макет текста, который будет нарисован пером

Обзор классов

class 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

(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

(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

(UI 0.9.9)

UI\Draw\Text\Layout::setWidth — Установить ширину

Описание

public UI\Draw\Text\Layout::setWidth(float $width)

Установит ширину для данного макета текста

Список параметров

width

Новая ширина


Представляет шрифт

(UI 0.9.9)

Введение

Загружает описанный шрифт

Обзор классов

class UI\Draw\Text\Font {
/* Конструктор */
public __construct(UI\Draw\Text\Font\Descriptor $descriptor)
/* Методы */
public getAscent(): float
public getDescent(): float
public getLeading(): float
public getUnderlinePosition(): float
public getUnderlineThickness(): 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

(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

(UI 1.0.3)

UI\Draw\Text\Font::getAscent — Показатели шрифта

Описание

public UI\Draw\Text\Font::getAscent(): float

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Показатели шрифта

  • « UI\Draw\Text\Font::getAscent
  • UI\Draw\Text\Font::getLeading »
  • PHP Manual
  • UI\Draw\Text\Font
  • Показатели шрифта

UI\Draw\Text\Font::getDescent

(UI 1.0.3)

UI\Draw\Text\Font::getDescent — Показатели шрифта

Описание

public UI\Draw\Text\Font::getDescent(): float

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Показатели шрифта

  • « UI\Draw\Text\Font::getDescent
  • UI\Draw\Text\Font::getUnderlinePosition »
  • PHP Manual
  • UI\Draw\Text\Font
  • Показатели шрифта

UI\Draw\Text\Font::getLeading

(UI 1.0.3)

UI\Draw\Text\Font::getLeading — Показатели шрифта

Описание

public UI\Draw\Text\Font::getLeading(): float

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Показатели шрифта

  • « UI\Draw\Text\Font::getLeading
  • UI\Draw\Text\Font::getUnderlineThickness »
  • PHP Manual
  • UI\Draw\Text\Font
  • Показатели шрифта

UI\Draw\Text\Font::getUnderlinePosition

(UI 1.0.3)

UI\Draw\Text\Font::getUnderlinePosition — Показатели шрифта

Описание

public UI\Draw\Text\Font::getUnderlinePosition(): float

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Показатели шрифта

  • « UI\Draw\Text\Font::getUnderlinePosition
  • UI\Draw\Text\Font\Descriptor »
  • PHP Manual
  • UI\Draw\Text\Font
  • Показатели шрифта

UI\Draw\Text\Font::getUnderlineThickness

(UI 1.0.3)

UI\Draw\Text\Font::getUnderlineThickness — Показатели шрифта

Описание

public UI\Draw\Text\Font::getUnderlineThickness(): float

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Дескриптор шрифта

(UI 0.9.9)

Введение

Описывает шрифт

Обзор классов

class 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(): string
public getItalic(): int
public getSize(): float
public getStretch(): int
public getWeight(): int
}

Содержание

  • UI\Draw\Text\Font\Descriptor::__construct — Конструктор класса Font Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily — Получает семейство шрифтов
  • UI\Draw\Text\Font\Descriptor::getItalic — Определение стиля
  • UI\Draw\Text\Font\Descriptor::getSize — Определение размера
  • UI\Draw\Text\Font\Descriptor::getStretch — Определение стиля
  • UI\Draw\Text\Font\Descriptor::getWeight — Определение насыщенности


Конструктор класса Font Descriptor

  • « UI\Draw\Text\Font\Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Конструктор класса Font Descriptor

UI\Draw\Text\Font\Descriptor::__construct

(UI 0.9.9)

UI\Draw\Text\Font\Descriptor::__construct — Конструктор класса 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
)

Создаёт новый Font Descriptor

Список параметров

family

Название допустимого семейства шрифтов.

size

Предпочтительный размер

weight

Константа UI\Draw\Text\Font\Weight

italic

Константа UI\Draw\Text\Font\Italic

stretch

Константа UI\Draw\Text\Font\Stretch


Получает семейство шрифтов

  • « UI\Draw\Text\Font\Descriptor::__construct
  • UI\Draw\Text\Font\Descriptor::getItalic »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Получает семейство шрифтов

UI\Draw\Text\Font\Descriptor::getFamily

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getFamily — Получает семейство шрифтов

Описание

public UI\Draw\Text\Font\Descriptor::getFamily(): string

Возвращает семейство шрифтов

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определение стиля

  • « UI\Draw\Text\Font\Descriptor::getFamily
  • UI\Draw\Text\Font\Descriptor::getSize »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Определение стиля

UI\Draw\Text\Font\Descriptor::getItalic

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getItalic — Определение стиля

Описание

public UI\Draw\Text\Font\Descriptor::getItalic(): int

Возвращает стиль

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определение размера

  • « UI\Draw\Text\Font\Descriptor::getItalic
  • UI\Draw\Text\Font\Descriptor::getStretch »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Определение размера

UI\Draw\Text\Font\Descriptor::getSize

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getSize — Определение размера

Описание

public UI\Draw\Text\Font\Descriptor::getSize(): float

Возвращает размер

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определение стиля

  • « UI\Draw\Text\Font\Descriptor::getSize
  • UI\Draw\Text\Font\Descriptor::getWeight »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Определение стиля

UI\Draw\Text\Font\Descriptor::getStretch

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getStretch — Определение стиля

Описание

public UI\Draw\Text\Font\Descriptor::getStretch(): int

Возвращает начертание

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Определение насыщенности

  • « UI\Draw\Text\Font\Descriptor::getStretch
  • Функции UI »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Определение насыщенности

UI\Draw\Text\Font\Descriptor::getWeight

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getWeight — Определение насыщенности

Описание

public UI\Draw\Text\Font\Descriptor::getWeight(): int

Возвращает насыщенность

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Функции UI

Содержание

  • UI\Draw\Text\Font\fontFamilies — Извлечь семейство шрифтов
  • UI\quit — Выйти из цикла UI
  • UI\run — Войти в цикл UI


Извлечь семейство шрифтов

  • « Функции UI
  • UI\quit »
  • PHP Manual
  • Функции UI
  • Извлечь семейство шрифтов

UI\Draw\Text\Font\fontFamilies

(UI 0.9.9)

UI\Draw\Text\Font\fontFamilies — Извлечь семейство шрифтов

Описание

UI\Draw\Text\Font\fontFamilies(): array

Возвращает массив допустимых семейств шрифтов для текущей системы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив (array) допустимых семейств шрифтов для текущей системы.


Выйти из цикла UI

  • « UI\Draw\Text\Font\fontFamilies
  • UI\run »
  • PHP Manual
  • Функции UI
  • Выйти из цикла UI

UI\quit

(UI 2.0.0)

UI\quit — Выйти из цикла UI

Описание

UI\quit(): void

Вынуждает главный цикл завершить работу

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Войти в цикл UI

  • « UI\quit
  • UI\Draw\Text\Font\Weight »
  • PHP Manual
  • Функции UI
  • Войти в цикл UI

UI\run

(UI 2.0.0)

UI\run — Войти в цикл UI

Описание

UI\run(int $flags = ?): void

Приказывает PHP войти в главный цикл, по умолчанию контроль не возвращается к инициатору

Список параметров

flags

Вынуждает UI\Loop вернуть управление, а UI\Wait вернуть управление после ожидания

Возвращаемые значения


Настройки начертания шрифта

(UI 0.9.9)

Введение

Обзор классов

final class UI\Draw\Text\Font\Weight {
/* Константы */
const int Thin;
const int UltraLight;
const int Light;
const int Book;
const int Normal;
const int Medium;
const int SemiBold;
const int Bold;
const int UltraBold;
const int Heavy;
const int UltraHeavy;
}


Настройки курсивного шрифта

(UI 0.9.9)

Введение

Обзор классов

final class UI\Draw\Text\Font\Italic {
/* Constants */
const int Normal = 0;
const int Oblique = 1;
const int Italic = 2;
}


Настройки толщины шрифта

(UI 0.9.9)

Введение

Обзор классов

final class UI\Draw\Text\Font\Stretch {
/* Constants */
const int UltraCondensed = 0;
const int ExtraCondensed = 1;
const int Condensed = 2;
const int SemiCondensed = 3;
const int Normal = 4;
const int SemiExpanded = 5;
const int Expanded = 6;
const int ExtraExpanded = 7;
const int UltraExpanded = 8;
}


Настройки концов линий

(UI 0.9.9)

Введение

Обзор классов

final class UI\Draw\Line\Cap {
/* Константы */
const int Flat;
const int Round;
const int Square;
}


Настройки соединения линий

(UI 0.9.9)

Введение

Обзор классов

final class UI\Draw\Line\Join {
/* Константы */
const int Miter;
const int Round;
const int Bevel;
}


Ключевые идентификаторы

(UI 1.0.0)

Введение

Обзор классов

final class UI\Key {
/* Константы */
const int Escape;
const int Insert;
const int Delete;
const int Home;
const int End;
const int PageUp;
const int PageDown;
const int Up;
const int Down;
const int Left;
const int Right;
const int F1;
const int F2;
const int F3;
const int F4;
const int F5;
const int F6;
const int F7;
const int F8;
const int F9;
const int F10;
const int F11;
const int F12;
const int N0;
const int N1;
const int N2;
const int N3;
const int N4;
const int N5;
const int N6;
const int N7;
const int N8;
const int N9;
const int NDot;
const int NEnter;
const int NAdd;
const int NSubtract;
const int NMultiply;
const int NDivide;
}


InvalidArgumentException

(UI 1.0.3)

Введение

Обзор классов

class UI\Exception\InvalidArgumentException extends InvalidArgumentException implements Throwable {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


RuntimeException

(UI 1.0.3)

Введение

Обзор классов

class UI\Exception\RuntimeException extends RuntimeException implements Throwable {
/* Наследуемые свойства */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Наследуемые методы */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


ЧАВО: ЧАсто задаваемые Вопросы и Ответы на них

  • Общая информация
  • Списки рассылки
  • Получение PHP
  • Вопросы по базам данных — Вопросы по Базам данных
  • Установка
  • Проблемы сборки
  • Использование PHP
  • Хеширование паролей — Безопасное хеширование паролей
  • PHP и HTML
  • PHP и COM
  • Разные вопросы


Общая информация

Этот раздел содержит наиболее общие вопросы по PHP: что это такое и что он делает.

  1. Что такое PHP?
  2. Что означает PHP?
  3. Какая связь между версиями PHP?
  4. Могу ли я одновременно запускать несколько версий PHP?
  5. Я думаю, Я нашёл ошибку! Кому я должен сказать?
Что такое PHP?

Из предисловия к руководству:

PHP - это скриптовый язык, который может быть встроен в HTML. Синтаксис языка в большинстве заимствован из C, Java и Perl c добавлением нескольких специфичных для PHP особенностей. Цель языка - позволить веб-разработчикам легко создавать динамически генерируемые страницы.

Что означает PHP?

PHP означает PHP: Hypertext Preprocessor. Это название смущает многих людей, так как первое слово в акрониме также является акронимом. Такой тип акронимов называется рекурсивным. Любопытствующие могут посетить » бесплатный вычислительный онлайн-словарь или » статью Википедии по рекурсивным акронимам.

Какая связь между версиями PHP?

PHP/FI 2.0 - ранняя и более неподдерживаемая версия PHP. PHP 3 - улучшенная замена PHP/FI 2.0. PHP 8 - текущая версия, которая использует Zend engine 4, которая, кроме прочего, предлагает множество дополнительных возможностей для объектно-ориентированного программирования.

Могу ли я одновременно запускать несколько версий PHP?

Да. Смотрите файл INSTALL из дистрибутива исходников PHP.

Я думаю, Я нашёл ошибку! Кому я должен сказать?

Вам надо обратиться к базе данных ошибок в PHP и убедиться, что ошибка ещё не известна. Если вы не видите её в базе данных, заполните форму сообщения об ошибках. При занесении в базу данных, ошибка получает номер, по которому вы можете отслеживать её статус, поэтому важно использовать базу данных, а не просто послать сообщение в один из списков рассылки, так как это позволит вам позже вернуться и проверить состояние ошибки. База данных ошибок может быть найдена по адресу » https://github.com/php/php-src/issues.


Списки рассылки

Этот раздел содержит вопросы о том как связаться с 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. Я скачал последнюю версию исходных кодов 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' для получения списка всех опций.

Я скачал последнюю версию исходных кодов 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?
Я слышал, что можно получить доступ к Microsoft SQL серверу из PHP. Как?

На Unix вы можете использовать PDO_ODBC или Унифицированное ODBC API.

На Windows вы можете использовать PDO_SQLSRV или SQLSRV.

Также смотрите ответ на следующий вопрос.

Могу ли я получить доступ к базам данных Microsoft Access?

Если вы хотите связать 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" (всегда запрашивать новое местонахождение).


Установка

Этот раздел содержит общие вопросы о том, как производится установка 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://github.com/php/php-src/issues

Если ваш скрипт использует регулярные выражения (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:

  • Старт > Панель Управления > Система

  • Перейдите на вкладку 'Дополнительно'

  • Нажмите кнопку 'Переменные Окружения'

  • Посмотрите раздел 'Системные Переменные'

  • Найдите строку, содержащую переменную PATH

  • Совершите на ней двойной щелчок мышью

  • Допишите в конец строки путь к PHP, не забыв добавить перед ним ';' (например ;C:\php)

  • Нажмите OK

Замечание: Не забудьте перезагрузиться после описанных выше действий и, после перезагрузки, проверить, что переменная PATH содержит нужный путь.

Как я могу сделать файл php.ini доступным для PHP в windows?

Есть несколько способов сделать это. Если вы используете Apache, обратитесь к документации Apache, в противном случае вы должны установить переменную среды PHPRC.

Можно ли использовать согласование контента 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. Я следовал всем шагам по установке модульной версии для Apache на Unix, но мои PHP-скрипты выводятся в браузере или я получаю запрос сохранить файл.
  10. В документации рекомендуется использовать: --activate-module=src/modules/php4/libphp4.a, но такой файл не существует, поэтому я заменил это на --activate-module=src/modules/php4/libmodphp4.a и оно не работает!? Что происходит?
  11. Когда я пытаюсь собрать Apache c PHP в виде статического модуля, используя --activate-module=src/modules/php4/libphp4.a он говорит, что мой компилятор не ANSI-совместимый.
  12. Когда я пытаюсь собрать PHP с помощью --with-apxs, я получаю странное сообщение об ошибке.
  13. Во время выполнения make я очень быстро получаю ошибки и множество всяких RUSAGE_.
  14. При компиляции 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', в чём дело?
  15. Я хочу обновить мой PHP. Где я могу найти строку ./configure, которая была использована для моей текущей PHP установки?
  16. При сборке PHP с библиотекой GD, либо выдаются странные ошибки компиляции, либо ошибки сегментации (segfaults) при выполнении.
  17. При компиляции 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.

Я следовал всем шагам по установке модульной версии для 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.       Когда я делаю следующее, вывод распечатывается не в том порядке:

<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>

     Что происходит?
  5. Эй, что произошло с моими строками? <pre> <?php echo "Это должно быть на первой строке."; ?> <?php echo "А это должно быть на следующей строке."; ?> </pre>
  6. Я получаю сообщение 'Warning: Cannot send session cookie - headers already sent...' или 'Cannot add header information - headers already sent...'.
  7. Мне необходим прямой доступ к информации в заголовке запроса. Как я могу это сделать?
  8. Когда я пытаюсь использовать аутентификацию с IIS, я получаю 'No Input file specified'.
  9. Windows: У меня нет доступа к файлам, разделяемых с другим компьютером, по IIS.
  10. Как я должен совмещать XML и PHP? Он жалуется на мои <?xml тэги!
  11. Где я могу найти полный список переменных, доступных мне в PHP?
  12. Как я могу генерировать PDF файлы без использования платных или коммерческих библиотек, как PDFLib? Я бы хотел что-нибудь бесплатное и не требующее внешних библиотек PDF.
  13. Несколько PHP директив могут принимать сокращения для байтовых значений в отличие от только int байтовых значений. Каковы все доступные сокращения?
Я не могу запомнить порядок аргументов 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-коде.

Когда я делаю следующее, вывод распечатывается не в том порядке:
<?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 распознает аутентификацию правильно. Это не должно повлиять на другие веб-серверы 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.

Как я могу генерировать PDF файлы без использования платных или коммерческих библиотек, как PDFLib? Я бы хотел что-нибудь бесплатное и не требующее внешних библиотек PDF.

Есть несколько альтернатив, написанных на PHP, таких как » FPDF и » TCPDF.

Несколько PHP директив могут принимать сокращения для байтовых значений в отличие от только int байтовых значений. Каковы все доступные сокращения?

Доступные опции: K (для килобайт), M (для мегабайт) и G (для гигабайт); они регистронезависимы. Все остальное считается байтами. 1M равно одному мегабайту или 1048576 байтам. 1K равно одному килобайту или 1024 байтам. Эти сокращения вы можете использовать в php.ini и в функции ini_set(). Обратите внимание, что числовое значение приводится к типу int; например, 0.5M интерпретируется как 0.

Замечание: килобайт и кибибайт

В нотации PHP один килобайт равен 1024 байтам, тогда как стандарт IEC считает это кибибайтом. В итоге: k и K = 1024 байта.


Безопасное хеширование паролей

В этом разделе разъясняются причины, стоящие за хешированием паролей в целях безопасности, а также эффективные методы хеширования.

  1. Почему я должен хешировать пароли пользователей в моем приложении?
  2. Почему популярные хеширующие функции, такие как md5 и sha1 не подходят для паролей?
  3. Если популярные хеширующие функции не подходят, как же я тогда должен хешировать свои пароли?
  4. Что такое соль?
  5. Как я должен хранить свою соль?
Почему я должен хешировать пароли пользователей в моем приложении?

Хеширование паролей является одним из самых основных соображений безопасности, которые необходимо сделать, при разработке приложения, принимающего пароли от пользователей. Без хеширования, пароли, хранящиеся в базе вашего приложения, могут быть украдены, например, если ваша база данных была скомпрометирована, а затем немедленно могут быть применены для компрометации не только вашего приложения, но и аккаунтов ваших пользователей на других сервисах, если они не используют уникальных паролей.

Применяя хеширующий алгоритм к пользовательским паролям перед сохранением их в своей базе данных, вы делаете невозможным разгадывание оригинального пароля для атакующего вашу базу данных, в то же время сохраняя возможность сравнения полученного хеша с оригинальным паролем.

Важно заметить, однако, что хеширование паролей защищает их только от компрометирования в вашем хранилище, но не обязательно от вмешательства вредоносного кода в вашем приложении.

Почему популярные хеширующие функции, такие как md5() и sha1() не подходят для паролей?

Такие хеширующие алгоритмы как MD5, SHA1 и SHA256 были спроектированы очень быстрыми и эффективными. При наличии современных технологий и оборудования, стало довольно просто выяснить результат этих алгоритмов методом "грубой силы" для определения оригинальных вводимых данных.

Из-за той скорости, с которой современные компьютеры могут "обратить" эти хеширующие алгоритмы, многие профессионалы компьютерной безопасности строго не рекомендуют использовать их для хеширования паролей.

Если популярные хеширующие функции не подходят, как же я тогда должен хешировать свои пароли?

При хешировании паролей существует два важных соображения: это стоимость вычисления и соль. Чем выше стоимость вычисления хеширующего алгоритма, тем больше времени требуется для взлома его вывода методом "грубой силы".

PHP предоставляет встроенное API хеширования паролей, которое безопасно работает и с хешированием и с проверкой паролей.

Другой возможностью является функция crypt(), которая поддерживает несколько алгоритмов хеширования. При использовании этой функции вы можете быть уверенным, что выбранный вами алгоритм доступен, так как 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?
Как обращаться со сжатыми 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.


Appendices

  • История PHP и смежных проектов
    • История PHP
    • История смежных с PHP проектов
    • Книги о PHP
    • Публикации, посвящённые PHP
  • Миграция с PHP 8.2.x на PHP 8.3.x
    • New Features
    • Новые классы и интерфейсы
    • Новые функции
    • Новые глобальные константы
    • Backward Incompatible Changes
    • Устаревшая функциональность
    • Other Changes
    • Поддержка Windows
  • Миграция с PHP 8.1.x на PHP 8.2.x
    • Новая функциональность
    • Новые функции
    • Новые глобальные константы
    • Изменения, ломающие обратную совместимость
    • Устаревшая функциональность
    • Другие изменения
    • Поддержка Windows
  • Миграция с PHP 8.0.x на PHP 8.1.x
    • Новая функциональность
    • Новые классы и интерфейсы
    • Новые функции
    • Новые глобальные константы
    • Изменения, ломающие обратную совместимость
    • Устаревшая функциональность
    • Другие изменения
  • Миграция с PHP 7.4.x на PHP 8.0.x
    • Новая функциональность
    • Изменения, ломающие обратную совместимость
    • Функциональность, объявленная устаревшей в PHP 8.0.x
    • Другие изменения
  • Миграция с 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
    • Об отладке в 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 было ограничено: несмотря на нескольких второстепенных участников, в целом он по-прежнему разрабатывался одним человеком.

Пример #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 8.2.x на PHP 8.3.x

Содержание

  • New Features
  • Новые классы и интерфейсы
  • Новые функции
  • Новые глобальные константы
  • Backward Incompatible Changes
  • Устаревшая функциональность
  • Other Changes
  • Поддержка Windows

Эта обновлённая версия приносит с собой ряд новых возможностей и несколько несовместимостей, которые должны быть проверены перед сменой версии в производственной среде.

Смотрите также руководство по миграции для версий PHP 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x, 8.1.x, 8.2.x.


New Features

PHP Core

Readonly Amendments

Anonymous classes may now be marked as readonly.

Readonly properties can now be reinitialized during cloning.

Typed Class Constants

Class, interface, trait, and enum constants now support type declarations.

Closures created from magic methods

Closures created from magic methods can now accept named arguments.

The final modifier with a method from a trait

The final modifier may now be used when using a method from a trait.

Override Attribute

Added the #[\Override] attribute to check that a method exists in a parent class or implemented interface.

Fetch class constant dynamically syntax

Class constants can now be accessed dynamically using the C::{$name} syntax.

Static variable Initializers

Static variable initializers can now contain arbitrary expressions.

Fallback value syntax for ini variables

php.ini now supports fallback/default value syntax.

<?php
/*
On /path/to/user.ini contains the following settings:

listen = localhost:${DRUPAL_FPM_PORT:-9000}
*/

$user_ini = parse_ini_file('/path/to/user.ini');
echo $user_ini['listen']; // localhost:9000

CLI

It is now possible to lint multiple files.

DOM

Added properties DOMElement::$className and DOMElement::$id. These are not binary-safe at the moment because of underlying limitations of libxml2. This means that the property values will be cut off at a NUL byte.

Added properties DOMNode::$isConnected and DOMNameSpaceNode::$isConnected.

Added properties DOMNode::$parentElement and DOMNameSpaceNode::$parentElement.

FFI

It is now possible to assign FFI\CData to other FFI\CData. Meaning CData can now be assigned to structs and fields.

Opcache

opcache_get_status()['scripts'][n]['revalidate'] now contains a Unix timestamp of when the next revalidation of the scripts timestamp is due, dictated by the opcache.revalidate_freq INI directive.

POSIX

posix_getrlimit() now takes an optional $res parameter to allow fetching a single resource limit.

posix_isatty() now raises type warnings for integers following the usual ZPP semantics.

posix_ttyname() now raises type warnings for integers following the usual ZPP semantics and value warnings for invalid file descriptor integers.

Streams

Streams can now emit the STREAM_NOTIFY_COMPLETED notification. This was previously not implemented.


Новые классы и интерфейсы

Date

  • DateError
  • DateObjectError
  • DateRangeError
  • DateException
  • DateInvalidOperationException
  • DateInvalidTimeZoneException
  • DateMalformedIntervalStringException
  • DateMalformedPeriodStringException
  • DateMalformedStringException

Random

  • Random\IntervalBoundary


Новые функции

Date

  • DatePeriod::createFromISO8601String()

DOM

  • DOMElement::getAttributeNames()
  • DOMElement::insertAdjacentElement()
  • DOMElement::insertAdjacentText()
  • DOMElement::toggleAttribute()
  • DOMNode::contains()
  • DOMNode::getRootNode()
  • DOMNode::isEqualNode()
  • DOMNameSpaceNode::contains()
  • DOMParentNode::replaceChildren()

Intl

  • IntlCalendar::setDate()
  • IntlCalendar::setDateTime()
  • IntlGregorianCalendar::createFromDate()
  • IntlGregorianCalendar::createFromDateTime()

JSON

  • json_validate()

LDAP

  • ldap_connect_wallet()
  • ldap_exop_sync()

MBString

  • mb_str_pad()

Posix

  • posix_sysconf()
  • posix_pathconf()
  • posix_fpathconf()
  • posix_eaccess()

PostgreSQL

  • pg_set_error_context_visibility() (libpq >= 9.6)

Random

  • Random\Randomizer::getBytesFromString()
  • Random\Randomizer::nextFloat()
  • Random\Randomizer::getFloat()

Reflection

  • ReflectionMethod::createFromMethodName()

Sockets

  • socket_atmark()

Стандартные функции

  • str_increment()
  • str_decrement()
  • stream_context_set_options()

Zip

  • ZipArchive::getArchiveFlag()


Новые глобальные константы

cURL

  • CURLINFO_CAPATH (libcurl >= 7.84.0)
  • CURLINFO_CAINFO (libcurl >= 7.84.0)
  • CURLOPT_MIME_OPTIONS (libcurl >= 7.81.0)
  • CURLMIMEOPT_FORMESCAPE (libcurl >= 7.81.0)
  • CURLOPT_WS_OPTIONS (libcurl >= 7.86.0)
  • CURLWS_RAW_MODE (libcurl >= 7.86.0)
  • CURLOPT_SSH_HOSTKEYFUNCTION (libcurl >= 7.84.0)
  • CURLOPT_PROTOCOLS_STR (libcurl >= 7.85.0)
  • CURLOPT_REDIR_PROTOCOLS_STR (libcurl >= 7.85.0)
  • CURLOPT_CA_CACHE_TIMEOUT (libcurl >= 7.87.0)
  • CURLOPT_QUICK_EXIT (libcurl >= 7.87.0)
  • CURLKHMATCH_OK (libcurl >= 7.19.6)
  • CURLKHMATCH_MISMATCH (libcurl >= 7.19.6)
  • CURLKHMATCH_MISSING (libcurl >= 7.19.6)
  • CURLKHMATCH_LAST (libcurl >= 7.19.6)

Intl

  • MIXED_NUMBERS (Spoofchecker)
  • HIDDEN_OVERLAY (Spoofchecker)

OpenSSL

  • OPENSSL_CMS_OLDMIMETYPE
  • PKCS7_NOOLDMIMETYPE

PCNTL

  • SIGINFO

PDO_ODBC

  • PDO_ODBC_TYPE

Posix

  • POSIX_SC_ARG_MAX
  • POSIX_SC_PAGESIZE
  • POSIX_SC_NPROCESSORS_CONF
  • POSIX_SC_NPROCESSORS_ONLN
  • POSIX_PC_LINK_MAX
  • POSIX_PC_MAX_CANON
  • POSIX_PC_MAX_INPUT
  • POSIX_PC_NAME_MAX
  • POSIX_PC_PATH_MAX
  • POSIX_PC_PIPE_BUF
  • POSIX_PC_CHOWN_RESTRICTED
  • POSIX_PC_NO_TRUNC
  • POSIX_PC_ALLOC_SIZE_MIN
  • POSIX_PC_SYMLINK_MAX

Sockets

Следующие опции сокетов теперь определяются, если они поддерживаются:

  • SO_ATTACH_REUSEPORT_CBPF (Linux)
  • SO_DETACH_BPF (Linux)
  • SO_DETACH_FILTER (Linux)
  • TCP_QUICKACK (Linux)
  • IP_DONTFRAG (FreeBSD)
  • IP_MTU_DISCOVER (Linux)
  • IP_PMTUDISC_DO (Linux)
  • IP_PMTUDISC_DONT (Linux)
  • IP_PMTUDISC_WANT (Linux)
  • IP_PMTUDISC_PROBE (Linux)
  • IP_PMTUDISC_INTERFACE (Linux)
  • IP_PMTUDISC_OMIT (Linux)
  • AF_DIVERT (FreeBSD)
  • SOL_UDPLITE
  • UDPLITE_RECV_CSCOV
  • UDPLITE_SEND_CSCOV
  • SO_RERROR (NetBSD)
  • SO_ZEROIZE (OpenBSD)
  • SO_SPLICE (OpenBSD)
  • TCP_REPAIR (Linux)
  • SO_REUSEPORT_LB (FreeBSD)
  • IP_BIND_ADDRESS_NO_PORT (Linux)

Zip

  • ZipArchive::ER_DATA_LENGTH (libzip >= 1.10)
  • ZipArchive::ER_NOT_ALLOWED (libzip >= 1.10)
  • ZipArchive::AFL_RDONLY (libzip >= 1.10)
  • ZipArchive::AFL_IS_TORRENTZIP (libzip >= 1.10)
  • ZipArchive::AFL_WANT_TORRENTZIP (libzip >= 1.10)
  • ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE (libzip >= 1.10)
  • ZipArchive::FL_OPEN_FILE_NOW
  • ZipArchive::LENGTH_TO_END в качестве значения по умолчанию для функции ZipArchive::addFile() и ZipArchive::replaceFile()
  • ZipArchive::LENGTH_UNCHECKED (libzip >= 1.10)


Backward Incompatible Changes

PHP Core

Programs that were very close to overflowing the call stack

Programs that were very close to overflowing the call stack may now throw an Error when using more than zend.max_allowed_stack_size-zend.reserved_stack_size bytes of stack (fiber.stack_size-zend.reserved_stack_size for fibers).

Executing proc_get_status() multiple times

Executing proc_get_status() multiple times will now always return the right value on POSIX systems. Previously, only the first call of the function returned the right value. Executing proc_close() after proc_get_status() will now also return the right exit code. Previously this would return -1. Internally, this works by caching the result on POSIX systems. If the previous behaviour is required, it is possible to check the "cached" key in the array returned by proc_get_status() to check whether the result was cached.

Zend Max Execution Timers

Zend Max Execution Timers is now enabled by default for ZTS builds on Linux.

Uses of traits with static properties

Uses of traits with static properties will now redeclare static properties inherited from the parent class. This will create a separate static property storage for the current class. This is analogous to adding the static property to the class directly without traits.

Assigning a negative index to an empty array

Assigning a negative index $n to an empty array will now make sure that the next index is $n+1 instead of 0.

Class constant visibility variance check

Class constant visibility variance is now correctly checked when inherited from interfaces.

WeakMap entries whose key maps to itself

WeakMap entries whose key maps to itself (possibly transitively) may now be removed during cycle collection if the key is not reachable except by iterating over the WeakMap (reachability via iteration is considered weak). Previously, such entries would never be automatically removed.

Date

The DateTime extension has introduced Date extension specific exceptions and errors under the DateError and DateException hierarchies, instead of warnings and generic exceptions. This improves error handling, at the expense of having to check for errors and exceptions.

DOM

Calling DOMChildNode::after(),
DOMChildNode::before(),
DOMChildNode::replaceWith()
on a node that has no parent is now a no-op instead of a hierarchy
exception, which is the behaviour demanded by the DOM specification.

Using the DOMParentNode and DOMChildNode methods without a document now works instead of throwing a DOM_HIERARCHY_REQUEST_ERR DOMException. This is in line with the behaviour demanded by the DOM specification.

Calling DOMDocument::createAttributeNS() without specifying a prefix would incorrectly create a default namespace, placing the element inside the namespace instead of the attribute. This bug is now fixed.

DOMDocument::createAttributeNS() would previously incorrectly throw a DOM_NAMESPACE_ERRNAMESPACE_ERR DOMException when the prefix was already used for a different URI. It now correctly chooses a different prefix when there's a prefix name conflict.

New methods and properties were added to some DOM classes. If a userland class inherits from these classes and declare a method or property with the same name, the declarations must be compatible. Otherwise, a typical compile error about incompatible declarations will be thrown. See the list of new features and new functions for a list of the newly implemented methods and properties.

FFI

C functions that have a return type of void now return null instead of returning the following object object(FFI\CData:void) { }

Opcache

The opcache.consistency_checks INI directive was removed. This feature was broken with the tracing JIT, as well as with inheritance cache, and has been disabled without a way to enable it since PHP 8.1.18 and PHP 8.2.5. Both the tracing JIT and inheritance cache may modify shm after the script has been persisted by invalidating its checksum. The attempted fix skipped over the modifiable pointers but was rejected due to complexity. For this reason, it was decided to remove the feature instead.

Phar

The type of Phar class constants are now declared.

Standard

The range() function has had various changes:

  • A TypeError is now thrown when passing objects, resources, or arrays as the boundary inputs.
  • A more descriptive ValueError is thrown when passing 0 for $step.
  • A ValueError is now thrown when using a negative $step for increasing ranges.
  • If $step is a float that can be interpreted as an int, it is now done so.
  • A ValueError is now thrown if any argument is infinity or NAN.
  • An E_WARNING is now emitted if $start or $end is the empty string. The value continues to be cast to the value 0.
  • An E_WARNING is now emitted if $start or $end has more than one byte, only if it is a non-numeric string.
  • An E_WARNING is now emitted if $start or $end is cast to an integer because the other boundary input is a number. (e.g. range(5, 'z');).
  • An E_WARNING is now emitted if $step is a float when trying to generate a range of characters, except if both boundary inputs are numeric strings (e.g. range('5', '9', 0.5); does not produce a warning).
  • range() now produce a list of characters if one of the boundary inputs is a string digit instead of casting the other input to int (e.g. range('9', 'A');).
<?php
range('9', 'A'); // ["9", ":", ";", "<", "=", ">", "?", "@", "A"], as of PHP 8.3.0
range('9', 'A'); // [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], prior to PHP 8.3.0
?>

The file() flags error check now catches all invalid flags. Notably FILE_APPEND was previously silently accepted.

SNMP

The type of SNMP class constants are now declared.


Устаревшая функциональность

Ядро PHP

Операторы Increment/Decrement

Передача оператору increment (++) пустых, нечисловых или не буквенно-числовых строк устарела. Притом инкрементирование нечисловых строк устарело мягко. Понятие «мягкое устаревание» означает, что диагностика уровня E_DEPRECATED выполняться не будет, но нужно отказаться от устаревших правил в новом коде. Вместо устаревшего способа инкрементирования необходимо вызывать новую функцию str_increment().

Использование оператора decrement (--) для пустых или нечисловых строк теперь неактуально.

Вызов функции get_class()/get_parent_class() без аргументов

Вызов функций get_class() и get_parent_class() без аргументов устарел.

DBA

Вызов функции dba_fetch() с параметром $dba в качестве третьего аргумента устарел.

FFI

Статический вызов метода FFI::cast(), FFI::new() и FFI::type() устарел.

Intl

Константа U_MULTIPLE_DECIMAL_SEP*E*RATORS устарела, вместо неё рекомендуется использовать константу U_MULTIPLE_DECIMAL_SEP*A*RATORS.

Константа NumberFormatter::TYPE_CURRENCY устарела.

LDAP

Вызов функции ldap_connect() с отдельными параметрами $hostname и $port устарел.

MBString

Передача отрицательного значения в параметр $width функции mb_strimwidth() устарела.

Phar

Вызов метода Phar::setStub() с типом resource и параметром $length устарел. Такие вызовы должны быть заменены на: $phar->setStub(stream_get_contents($resource));.

Random

Вариант константы MT_RAND_PHP Mt19937 устарел.

Reflection

Вызов метода ReflectionProperty::setValue() только с одним параметром устарел. Чтобы установить статические свойства, передайте null в качестве первого параметра.

Стандартные функции

Функция assert_options() устарела.

Константы ASSERT_ACTIVE, ASSERT_BAIL, ASSERT_CALLBACK, ASSERT_EXCEPTION и ASSERT_WARNING устарели.

INI-параметры assert.* устарели. Смотрите изменения в работе с INI-файлами для более подробной информации.

SQLite3

Работа с исключениями теперь предпочтительнее, предупреждения будут удалены в будущем. Вызов SQLite3::enableExceptions(false) в этой версии выдаст предупреждение об устаревании.

Zip

Константа ZipArchive::FL_RECOMPRESS устарела и будет удалена в будущей версии libzip.


Other Changes

Core changes

FFI

FFI::load() is now allowed during preloading when opcache.preload_user is the current system user. Previously, calling FFI::load() was not possible during preloading if the opcache.preload_user directive was set.

FPM

FPM CLI test now fails if the socket path is longer than supported by OS.

Opcache

In the CLI and phpdbg SAPIs, preloading does not require the opcache.preload_user directive to be set anymore when running as root. In other SAPIs, this directive is required when running as root because preloading is done before the SAPI switches to an unprivileged user.

Streams

Blocking fread() on socket connection returns immediately if there are any buffered data instead of waiting for more data.

Memory stream no longer fails if seek offset is past the end. Instead the memory is increase on the next write and date between the old end and offset is filled with zero bytes in the same way how it works for files.

stat() access operations like file_exists() and similar will now use real path instead of the actual stream path. This is consistent with stream opening.

Changes in SAPI Modules

CLI

The STDOUT, STDERR and STDIN streams are no longer closed on resource destruction which is mostly when the CLI finishes. It is however still possible to explicitly close those streams using fclose() and similar.

Changed Functions

Core

gc_status() has added the following 8 fields:

  • "running" => bool
  • "protected" => bool
  • "full" => bool
  • "buffer_size" => int
  • "application_time" => float: Total application time, in seconds (including collector_time)
  • "collector_time" => float: Time spent collecting cycles, in seconds (including destructor_time and free_time)
  • "destructor_time" => float: Time spent executing destructors during cycle collection, in seconds
  • "free_time" => float: Time spent freeing values during cycle collection, in seconds

class_alias() now supports creating an alias of an internal class.

Setting open_basedir at runtime using ini_set('open_basedir', ...); no longer accepts paths containing the parent directory (..). Previously, only paths starting with .. were disallowed. This could easily be circumvented by prepending ./ to the path.

User exception handlers now catch exceptions during shutdown.

The resultant HTML of highlight_string() and highlight_file() has changed. Whitespace between outer HTML tags is removed. Newlines and spaces are no longer converted to HTML entities. The whole HTML is now wrapped in a <pre> tag. The outer <span> tag has been merged with the <code> tag.

Calendar

easter_date() now supports years from 1970 to 2,000,000,000 on 64-bit systems, previously it only supported years in the range from 1970 to 2037.

Curl

curl_getinfo() now supports two new constants: CURLINFO_CAPATH and CURLINFO_CAINFO. If option is null, the following two additional keys are present: "capath" and "cainfo".

DOM

Changed DOMCharacterData::appendData() tentative return type to true.

DOMDocument::loadHTML(), DOMDocument::loadHTMLFile(), and DOMDocument::loadXML() now have a tentative return type of bool. Previously, this was documented as having a return type of DOMDocument|bool, but, as of PHP 8.0.0, DOMDocument cannot be returned as it is no longer statically callable.

Gd

The signature of imagerotate() has changed. The $ignore_transparent parameter has been removed, as it was ignored since PHP 5.5.0.

Intl

datefmt_set_timezone() (and its alias IntlDateformatter::setTimeZone()) now returns true on success, previously null was returned.

IntlBreakiterator::setText() now returns false on failure, previously null was returned. It now returns true on success, previously null was returned.

IntlChar::enumCharNames() is now returning a boolean. Previously it returned null on success and false on failure.

IntlDateFormatter::__construct() throws an U_ILLEGAL_ARGUMENT_ERROR exception when an invalid locale had been set.

MBString

mb_strtolower() and mb_convert_case() implement conditional casing rules for the Greek letter sigma. For mb_convert_case(), conditional casing only applies to MB_CASE_LOWER and MB_CASE_TITLE modes, not to MB_CASE_LOWER_SIMPLE and MB_CASE_TITLE_SIMPLE.

mb_decode_mimeheader() interprets underscores in QPrint-encoded MIME encoded words as required by RFC 2047; they are converted to spaces. Underscores must be encoded as "=5F" in such MIME encoded words.

In rare cases, mb_encode_mimeheader() will transfer-encode its input string where it would pass it through as raw ASCII in PHP 8.2.

mb_encode_mimeheader() no longer drops NUL (zero) bytes when QPrint-encoding the input string. This previously caused strings in certain text encodings, especially UTF-16 and UTF-32, to be corrupted by mb_encode_mimeheader.

mb_detect_encoding()'s "non-strict" mode now behaves as described in the documentation. Previously, it would return false if the same byte (for example, the first byte) of the input string was invalid in all candidate encodings. More generally, it would eliminate candidate encodings from consideration when an invalid byte was seen, and if the same input byte eliminated all remaining encodings still under consideration, it would return false. On the other hand, if all candidate encodings but one were eliminated from consideration, it would return the last remaining one without regard for how many encoding errors might be encountered later in the string. This is different from the behavior described in the documentation, which says: "If strict is set to false, the closest matching encoding will be returned."

mysqli

mysqli_fetch_object() now raises a ValueError instead of an Exception when the $constructor_args argument is non empty with the class not having constructor.

mysqli_poll() now raises a ValueError when neither the $read nor the $error arguments are passed.

mysqli_field_seek() and mysqli_result::field_seek() now specify the return type as true instead of bool.

ODBC

odbc_autocommit() now accepts null for the $enable parameter. Passing null has the same behaviour as passing only 1 parameter, namely indicating if the autocommit feature is enabled or not.

PGSQL

pg_fetch_object() now raises a ValueError instead of an Exception when the $constructor_args argument is non empty with the class not having constructor.

pg_insert() now raises a ValueError instead of a E_WARNING when the table specified is invalid.

pg_insert() and pg_convert() raises a ValueError or a TypeError instead of a E_WARNING when the value/type of a field does not match properly with a PostgreSQL's type.

The $row parameter of
pg_fetch_result(),
pg_field_prtlen(), and
pg_field_is_null() is now nullable.

Random

Changed mt_srand() and srand() to not check the number of arguments to determine whether a random seed should be used. Passing null will generate a random seed, 0 will use zero as the seed. The functions are now consistent with Random\Engine\Mt19937::__construct().

Reflection

Return type of ReflectionClass::getStaticProperties() is no longer nullable.

Standard

E_NOTICEs emitted by unserialize() have been promoted to E_WARNING.

unserialize() now emits a new E_WARNING if the input contains unconsumed bytes.

array_pad() is now only limited by the maximum number of elements an array can have. Before, it was only possible to add at most 1048576 elements at a time.

strtok() raises an E_WARNING in the case token is not provided when starting tokenization.

password_hash() will now chain the underlying Random\RandomException as the ValueError's $previous Exception when salt generation fails.

If using an array as the $command for proc_open(), it must now have at least one non empty element. Otherwise a ValueError is thrown.

proc_open() returns false if $command array is invalid command instead of resource object that produces warning later. This was already the case for Windows but it is now also the case if posix_spawn implementation is in use (most Linux, BSD and MacOS platforms). There are still some old platforms where this behavior is not changed as posix_spawn is not supported there.

array_sum() and array_product() now warn when values in the array cannot be converted to int/float. Previously arrays and objects where ignored whilst every other value was cast to int. Moreover, objects that define a numeric cast (e.g. GMP) are now casted instead of ignored.

The $decimal of number_format() now properly handles negative integers. Rounding with a negative value for $decimal means that $num is rounded to $decimals significant digits before the decimal point. Previously negative $decimals were silently ignored and the number got rounded to zero decimal places.

A new $before_needle argument has been added to strrchr(). It behaves like its counterpart in the strstr() or stristr() functions.

str_getcsv() and fgetcsv() now return an empty string instead of a string with a single null byte for the last field which only contains an unterminated enclosure.

Other Changes to Extensions

Core

Using the increment/decrement operators (++/--) on values of type bool now emit warnings. This is because it currently has no effect, but will behave like $bool += 1 in the future.

Using the decrement operator (--) on values of type null now emit warnings. This is because it currently has no effect, but will behave like $null -= 1 in the future.

Internal objects that implement an _IS_NUMBER cast but not a do_operator handler that overrides addition and subtraction now can be incremented and decrement as if one would do $o += 1 or $o -= 1

DOM

The DOM lifetime mechanism has been reworked such that implicitly removed nodes can still be fetched. Previously this resulted in an exception.

SQLite3

The SQLite3 class now throws SQLite3Exception (extends Exception) instead of Exception.

The SQLite error code is now passed in the exception error code instead of being included in the error message.

Changes to INI File Handling

  • The assert.* INI settings have been deprecated. This comprises the following INI settings:

    • assert.active
    • assert.bail
    • assert.callback
    • assert.exception
    • assert.warning
    If the value of the setting is equal to the default value, no deprecation notice is emitted. The zend.assertions INI setting should be used instead.

  • zend.max_allowed_stack_size is a new INI directive to set the maximum allowed stack size. Possible values are 0 (detect the process or thread maximum stack size), -1 (no limit), or a positive number of bytes. The default is 0. When it is not possible to detect the process or thread maximum stack size, a known system default is used. Setting this value too high has the same effect as disabling the stack size limit. Fibers use fiber.stack_size as maximum allowed stack size. An Error is thrown when the process call stack exceeds zend.max_allowed_stack_size-zend.reserved_stack_size bytes, to prevent stack-overflow-induced segmentation faults, with the goal of making debugging easier. The stack size increases during uncontrolled recursions involving internal functions or the magic methods __toString(), __clone(), __sleep(), __destruct(). This is not related to stack buffer overflows, and is not a security feature.

  • zend.reserved_stack_size is a new INI directive to set the reserved stack size, in bytes. This is subtracted from the max allowed stack size, as a buffer, when checking the stack size.

Performance

DOM

Looping over a DOMNodeList now uses caching. Therefore requesting items no longer takes quadratic time by default.

Getting text content from nodes now avoids an allocation, resulting in a performance gain.

DOMChildNode::remove() now runs in O(1) performance.

Standard

The file() flags error check is now about 7% faster.

SPL

RecursiveDirectoryIterator now performs less I/O when looping over a directory.


  • « Other Changes
  • Миграция с PHP 8.1.x на PHP 8.2.x »
  • PHP Manual
  • Миграция с PHP 8.2.x на PHP 8.3.x
  • Поддержка Windows

Поддержка Windows

Ядро

Минимальная поддерживаемая версия Windows увеличена до Windows 8 или Windows Server 2012.


Миграция с PHP 8.1.x на PHP 8.2.x

Содержание

  • Новая функциональность
  • Новые функции
  • Новые глобальные константы
  • Изменения, ломающие обратную совместимость
  • Устаревшая функциональность
  • Другие изменения
  • Поддержка Windows

Эта обновлённая версия приносит с собой ряд новых возможностей и несколько несовместимостей, которые должны быть проверены перед сменой версии в производственной среде.

Смотрите также руководство по миграции для версий PHP 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x, 8.1.x.


Новая функциональность

Ядро PHP

Атрибут SensitiveParameter

Добавлен атрибут #[\SensitiveParameter] для редактирования конфиденциальных данных в трассировках стека вызовов.

INI-директива error_log_mode

Добавлена INI-директива error_log_mode, которая позволяет установить разрешения для файла журнала ошибок.

Свойства перечислений в константных выражениях

Теперь можно получать свойства перечислений в константных выражениях.

Улучшения системы типов

Теперь можно использовать null и false как самостоятельные типы.

Добавлен тип true.

Теперь можно комбинировать пересечение и объединение типов. Тип должен быть записан в виде DNF.

Константы в трейтах

Теперь в трейтах можно определять константы.

Классы, доступные только для чтения

Добавлена поддержка readonly для классов.

cURL

Добавлена опция CURLINFO_EFFECTIVE_METHOD, которая возвращает последний использованный метод HTTP в возвращаемом значении функции curl_getinfo().

Стало доступно множество новых констант из libcurl 7.62 - 7.80.

Добавлена функция curl_upkeep() для выполнения любых проверок восстановления соединения.

DBA

Драйвер LMDB теперь принимает флаги DBA_LMDB_USE_SUB_DIR или DBA_LMDB_NO_SUB_DIR, чтобы определить, должен ли он создавать подкаталог или нет при создании файла базы данных.

OCI8

Добавлены INI-директива oci8.prefetch_lob_size и функция oci_set_prefetch_lob() для настройки производительности LOB-запросов путём уменьшения количества обходов между PHP и базами данных Oracle при выборке LOBS. Её можно использовать с Oracle Database 12.2 или более поздней версией.

OpenSSL

Добавлена поддержка AEAD-алгоритма chacha20-poly1305.

ODBC

Добавлены функции odbc_connection_string_is_quoted(), odbc_connection_string_should_quote() и odbc_connection_string_quote(). В основном они используются внутри самих модулей ODBC и PDO_ODBC, но для облегчения модульного тестирования теперь доступны извне. Кроме этого, ими можно воспользоваться для экранирования строки из пользовательских приложений.

PCRE

Добавлена поддержка модификатора n (NO_AUTO_CAPTURE), который делает простые группы (xyz) не перехватываемыми. Перехватываются только именованные группы типа (?<name>xyz). Это влияет только на то, какие группы перехватываются, по-прежнему можно использовать нумерованные ссылки на подшаблоны и массив совпадений по-прежнему будет содержать нумерованные результаты.

Random

Это новый модуль, который организует и консолидирует существующие реализации, связанные с генераторами случайных чисел. В новых и улучшенных ГСЧ устранены проблемы, связанные с областью их применения.


Новые функции

cURL

  • curl_upkeep()

IMAP

  • imap_is_open() (начиная с PHP 8.2.1)

MySQLi

  • mysqli_execute_query()

ODBC

  • odbc_connection_string_is_quoted()
  • odbc_connection_string_should_quote()
  • odbc_connection_string_quote()

OpenSSL

  • openssl_cipher_key_length()

Reflection

  • ReflectionFunction::isAnonymous()
  • ReflectionMethod::hasPrototype()

Sodium

XChaCha20

  • sodium_crypto_stream_xchacha20_xor_ic()

Стандартные функции

  • memory_reset_peak_usage()
  • ini_parse_quantity()

XML

  • libxml_get_external_entity_loader()


Новые глобальные константы

COM

  • DISP_E_PARAMNOTFOUND
  • LOCALE_NEUTRAL

cURL

  • CURLALTSVC_H1 (libcurl >= 7.64.1)
  • CURLALTSVC_H2 (libcurl >= 7.64.1)
  • CURLALTSVC_H3 (libcurl >= 7.64.1)
  • CURLALTSVC_READONLYFILE (libcurl >= 7.64.1)
  • CURLAUTH_AWS_SIGV4 (libcurl >= 7.75.0)
  • CURLE_PROXY (libcurl >= 7.73.0)
  • CURLFTPMETHOD_DEFAULT
  • CURLHSTS_ENABLE (libcurl >= 7.74.0)
  • CURLHSTS_READONLYFILE (libcurl >= 7.74.0)
  • CURLINFO_PROXY_ERROR (libcurl >= 7.73.0)
  • CURLINFO_REFERER (libcurl >= 7.76.0)
  • CURLINFO_RETRY_AFTER (libcurl >= 7.66.0)
  • CURLMOPT_MAX_CONCURRENT_STREAMS (libcurl >= 7.67.0)
  • CURLOPT_ALTSVC_CTRL (libcurl >= 7.64.1)
  • CURLOPT_ALTSVC (libcurl >= 7.64.1)
  • CURLOPT_AWS_SIGV4 (libcurl >= 7.75.0)
  • CURLOPT_CAINFO_BLOB (libcurl >= 7.77.0)
  • CURLOPT_DOH_SSL_VERIFYHOST (libcurl >= 7.76.0)
  • CURLOPT_DOH_SSL_VERIFYPEER (libcurl >= 7.76.0)
  • CURLOPT_DOH_SSL_VERIFYSTATUS (libcurl >= 7.76.0)
  • CURLOPT_HSTS_CTRL (libcurl >= 7.74.0)
  • CURLOPT_HSTS (libcurl >= 7.74.0)
  • CURLOPT_MAIL_RCPT_ALLLOWFAILS (libcurl >= 7.69.0)
  • CURLOPT_MAXAGE_CONN (libcurl >= 7.65.0)
  • CURLOPT_MAXFILESIZE_LARGE
  • CURLOPT_MAXLIFETIME_CONN (libcurl >= 7.80.0)
  • CURLOPT_PROXY_CAINFO_BLOB (libcurl >= 7.77.0)
  • CURLOPT_SASL_AUTHZID (libcurl >= 7.66.0)
  • CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (libcurl >= 7.80.0)
  • CURLOPT_SSL_EC_CURVES (libcurl >= 7.73.0)
  • CURLOPT_UPKEEP_INTERVAL_MS (libcurl >= 7.62.0)
  • CURLOPT_UPLOAD_BUFFERSIZE (libcurl >= 7.62.0)
  • CURLOPT_XFERINFOFUNCTION (libcurl >= 7.32.0)
  • CURLPROTO_MQTT (libcurl >= 7.71.0)
  • CURLPX_BAD_ADDRESS_TYPE (libcurl >= 7.73.0)
  • CURLPX_BAD_VERSION (libcurl >= 7.73.0)
  • CURLPX_CLOSED (libcurl >= 7.73.0)
  • CURLPX_GSSAPI (libcurl >= 7.73.0)
  • CURLPX_GSSAPI_PERMSG (libcurl >= 7.73.0)
  • CURLPX_GSSAPI_PROTECTION (libcurl >= 7.73.0)
  • CURLPX_IDENTD_DIFFER (libcurl >= 7.73.0)
  • CURLPX_IDENTD (libcurl >= 7.73.0)
  • CURLPX_LONG_HOSTNAME (libcurl >= 7.73.0)
  • CURLPX_LONG_PASSWD (libcurl >= 7.73.0)
  • CURLPX_LONG_USER (libcurl >= 7.73.0)
  • CURLPX_NO_AUTH (libcurl >= 7.73.0)
  • CURLPX_OK (libcurl >= 7.73.0)
  • CURLPX_RECV_ADDRESS (libcurl >= 7.73.0)
  • CURLPX_RECV_AUTH (libcurl >= 7.73.0)
  • CURLPX_RECV_CONNECT (libcurl >= 7.73.0)
  • CURLPX_RECV_REQACK (libcurl >= 7.73.0)
  • CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED (libcurl >= 7.73.0)
  • CURLPX_REPLY_COMMAND_NOT_SUPPORTED (libcurl >= 7.73.0)
  • CURLPX_REPLY_CONNECTION_REFUSED (libcurl >= 7.73.0)
  • CURLPX_REPLY_GENERAL_SERVER_FAILURE (libcurl >= 7.73.0)
  • CURLPX_REPLY_HOST_UNREACHABLE (libcurl >= 7.73.0)
  • CURLPX_REPLY_NETWORK_UNREACHABLE (libcurl >= 7.73.0)
  • CURLPX_REPLY_NOT_ALLOWED (libcurl >= 7.73.0)
  • CURLPX_REPLY_TTL_EXPIRED (libcurl >= 7.73.0)
  • CURLPX_REPLY_UNASSIGNED (libcurl >= 7.73.0)
  • CURLPX_REQUEST_FAILED (libcurl >= 7.73.0)
  • CURLPX_RESOLVE_HOST (libcurl >= 7.73.0)
  • CURLPX_SEND_AUTH (libcurl >= 7.73.0)
  • CURLPX_SEND_CONNECT (libcurl >= 7.73.0)
  • CURLPX_SEND_REQUEST (libcurl >= 7.73.0)
  • CURLPX_UNKNOWN_FAIL (libcurl >= 7.73.0)
  • CURLPX_UNKNOWN_MODE (libcurl >= 7.73.0)
  • CURLPX_USER_REJECTED (libcurl >= 7.73.0)
  • CURLSSLOPT_AUTO_CLIENT_CERT (libcurl >= 7.77.0)
  • CURLSSLOPT_NATIVE_CA (libcurl >= 7.71.0)
  • CURLSSLOPT_NO_PARTIALCHAIN (libcurl >= 7.68.0)
  • CURLSSLOPT_REVOKE_BEST_EFFORT (libcurl >= 7.70.0)
  • CURL_VERSION_GSASL (libcurl >= 7.76.0)
  • CURL_VERSION_HSTS (libcurl >= 7.74.0)
  • CURL_VERSION_HTTP3 (libcurl >= 7.66.0)
  • CURL_VERSION_UNICODE (libcurl >= 7.72.0)
  • CURL_VERSION_ZSTD (libcurl >= 7.72.0)

DBA

  • DBA_LMDB_USE_SUB_DIR
  • DBA_LMDB_NO_SUB_DIR

Фильтр

  • FILTER_FLAG_GLOBAL_RANGE

Сокеты

Следующие опции сокетов теперь определяются, если они поддерживаются:

  • SO_INCOMING_CPU
  • SO_MEMINFO
  • SO_RTABLE (OpenBSD)
  • TCP_KEEPALIVE (MacOS)
  • TCP_KEEPCNT (Linux, другие)
  • TCP_KEEPIDLE (Linux, другие)
  • TCP_KEEPINTVL (Linux, другие)
  • TCP_NOTSENT_LOWAT
  • LOCAL_CREDS_PERSISTENT (FreeBSD)
  • SCM_CREDS2 (FreeBSD)
  • LOCAL_CREDS (NetBSD)
  • SO_BPF_EXTENSIONS
  • SO_SETFIB
  • TCP_CONGESTION (Linux, FreeBSD)
  • SO_ZEROCOPY (Linux)
  • MSG_ZEROCOPY (Linux)


Изменения, ломающие обратную совместимость

Date

У метода DateTime::createFromImmutable() теперь предварительный возвращаемый тип static, ранее возвращаемый тип был DateTime.

У метода DateTimeImmutable::createFromMutable() теперь предварительный возвращаемый тип static, ранее возвращаемый тип был DateTimeImmutable.

Символы number в относительных форматах больше не принимают несколько знаков, например, +-2.

ODBC

Модуль ODBC теперь экранирует имя пользователя и пароль в случае, если передаётся строка соединения вместе с именем пользователя/паролем, тогда строка соединения будет изменена. Раньше при использовании пользовательских значений, нуждающихся в экранировании, могли сгенерировать неправильную строку соединения или вставить значения из данных, полученных от пользователя. Правила экранирования должны быть идентичны поведению .NET BCL DbConnectionOptions.

PDO_ODBC

Модуль PDO_ODBC также экранирует имя пользователя и пароль при передаче строки подключения. Дополнительные сведения смотрите в разделе изменение модуля ODBC.

Стандартные функции

Функция glob() теперь возвращает пустой массив (array), если все пути находятся вне пределов директории, определённой в open_basedir. Ранее функция возвращала false. Более того, предупреждение теперь выдаётся, даже если только некоторые пути ограничены с помощью директивы open_basedir.

Метод FilesystemIterator::__construct(): до версии PHP 8.2.0 константа FilesystemIterator::SKIP_DOTS была установлена всегда и не могла быть отключена. Для сохранения прежнего поведения константа должна быть явно установлена при использовании параметра flags. Значение по умолчанию параметра flags не было изменено.

Функции strtolower(),
strtoupper(),
stristr(),
stripos(),
strripos(),
lcfirst(),
ucfirst(),
ucwords()
и str_ireplace() больше не чувствительны к локализации.
Теперь они выполняют преобразование регистра ASCII, как если бы локаль была "C".
Локализованные версии этих функций доступны в модуле MBString.
Более того, функция array_change_key_case() и сортировка
с помощью SORT_FLAG_CASE теперь также используют преобразование регистра ASCII.

Функция str_split() теперь возвращает пустой массив (array), если была вызвана с пустой строки (string). Ранее она возвращала массив с одной пустой строкой. На функцию mb_str_split() это изменение не влияет, так как она уже работала подобным образом.

Функции ksort() и krsort() теперь выполняют сравнение числовых строк при SORT_REGULAR, используя стандартные правила PHP 8.

Функция var_export() больше не опускает ведущий обратный слеш для экспортируемых классов, т.е. они теперь полностью квалифицированы.

Стандартная библиотека PHP (SPL)

Следующие методы теперь усиливают свою сигнатуру:

  • SplFileInfo::_bad_state_ex()
  • SplFileObject::getCsvControl()
  • SplFileObject::fflush()
  • SplFileObject::ftell()
  • SplFileObject::fgetc()
  • SplFileObject::fpassthru()

У метода SplFileObject::hasChildren() теперь предварительный возвращаемый тип false, ранее он был bool.

У метода SplFileObject::getChildren() теперь предварительный возвращаемый тип null, ранее он был ?RecursiveIterator.

Класс GlobIterator теперь возвращает пустой массив (array), если все пути находятся вне пределов директории, заданной в open_basedir. Ранее он возвращал false. Более того, теперь выдаётся предупреждение, даже если только некоторые из путей находятся за пределами open_basedir.


Устаревшая функциональность

Ядро PHP

Использование динамических свойств

Создание динамических свойств объявлено устаревшим, за исключением, если класс не обрабатывает их использование с помощью атрибута #[\AllowDynamicProperties]. На экземплярах stdClass по-прежнему можно использовать динамические свойства. Изменение не влияет на использование магических методов __get()/__set(). Предупреждение об устаревании динамических свойств можно устранить с помощью:

  • Объявления свойства (лучше всего).
  • Добавления атрибута #[\AllowDynamicProperties] к классу (который также применяется ко всем дочерним классам).
  • Использования WeakMap, если необходимо связать дополнительные данные с объектом, который не принадлежит пользователю.

Вызовы методов с относительным именем

Вызываемые методы, не соответствующие синтаксису $callable() (но работают с call_user_func()), объявлены устаревшими. В частности:

  • "self::method"
  • "parent::method"
  • "static::method"
  • ["self", "method"]
  • ["parent", "method"]
  • ["static", "method"]
  • ["Foo", "Bar::method"]
  • [new Foo, "Bar::method"]
Это изменение не влияет на обычные вызываемые методы, такие как "A::method" или ["A", "method"].

Интерполяция вида "${var}" и "${expr}"

Стиль интерполяции строк "${var}" и "${expr}" объявлен устаревшим. Используйте "$var"/"{$var}" и "{${expr}}" соответственно.

MBString

Использование кодировок текста QPrint, Base64, Uuencode и HTML-ENTITIES объявлено устаревшим для всех функций MBString. В отличие от остальных текстовых кодировок, поддерживаемых MBString, эти кодировки не кодируют последовательность кодовых точек Unicode, а только последовательность необработанных байтов. Неясно, какими должны быть правильные возвращаемые значения для большинства функций MBString, если указана одна из этих кодировок. Более того, в PHP есть встроенные реализации всех этих кодировок; например, UU-закодированные данные можно обрабатывать с помощью функций convert_uuencode()/convert_uudecode().

SPL

Внутренний метод SplFileInfo::_bad_state_ex() объявлен устаревшим.

Стандартные функции

Функции utf8_encode() и utf8_decode() объявлены устаревшими.


Другие изменения

Изменения в ядре

Тип iterable теперь является встроенным во время компиляции псевдонимом для array|Traversable. Поэтому сообщения об ошибках, связанных с типом iterable, будут теперь будут использовать сигнатуру array|Traversable. Тип Reflection сохраняется для одиночного iterable (и ?iterable) для создания ReflectionNamedType с именем iterable, однако использование iterable в объединениях типов будет преобразовано в array|Traversable.

Формат даты отправляемых файлов cookie теперь 'D, d M Y H:i:s \G\M\T'; ранее он был 'D, d-M-Y H:i:s T'.

Изменения в модулях SAPI

CLI

Потоки STDOUT, STDERR и STDIN больше не закрываются при уничтожении ресурсов, что чаще всего происходит при завершении работы CLI. Однако по-прежнему можно явно закрыть эти потоки с помощью функции fclose() и подобных функций.

Изменённые функции

Ядро PHP

Функции strcmp(), strcasecmp(),
strncmp(), strncasecmp() и
substr_compare(), использующие бинарное безопасное сравнение строк,
теперь возвращают -1, 0 и 1.

DBA

У функции dba_open() и dba_popen() теперь следующая принудительная сигнатура:

dba_open(
string $path,
string $mode,
?string $handler = null,
int $permission = 0644,
int $map_size = 0,
?int $flags = null
): resource|false

Необязательный аргумент skip функции dba_fetch() теперь находится в конце в соответствии с семантикой пользовательского пространства PHP. Теперь его сигнатура выглядит следующим образом:

dba_fetch(string|array $key, resource $handle, int $skip): string|false
Предыдущая сигнатура:
dba_fetch(string|array $key, int $skip, resource $handle): string|false
по-прежнему принимается, но рекомендуется использовать новый стандартный вариант.

Random

Функции random_bytes() и random_int() теперь выбрасывают исключение \Random\RandomException в случае возникновения ошибок CSPRNG. Ранее вместо этого выбрасывалось обычное исключение \Exception.

SPL

Параметр iterator функций iterator_to_array() и iterator_count() расширен до iterable из Iterator, позволяя передавать массивы.

Другие изменения в модулях

Date

Свойства DatePeriod теперь объявлены правильно.

Intl

Экземпляры IntlBreakIterator, IntlRuleBasedBreakIterator, IntlCodePointBreakIterator, IntlPartsIterator, IntlCalendar, Collator, IntlIterator, UConverter, IntlDateFormatter, IntlDatePatternGenerator, MessageFormatter, ResourceBundle, Spoofchecker, IntlTimeZone и Transliterator больше не являются сериализуемыми. Ранее их можно было сериализовать, но при десериализации получались непригодные объекты или возникали ошибки.

MySQLi

Поддержка libmysql была удалена и теперь невозможно скомпилировать mysqli с libmysql. С этого момента модуль mysqli можно компилировать только с помощью mysqlnd. Все функции libmysql, недоступные в mysqlnd, были удалены:

  • Свойство reconnect для mysqli_driver
  • INI-директива mysqli.reconnect
  • Константа MYSQLI_IS_MARIADB устарела

OCI8

Минимальная необходимая версия библиотеки Oracle Client теперь 11.2.

PCRE

Теперь поддерживаются символы NUL (\0) в строках шаблонов.

Сессия

Попытка изменить INI-директиву session.cookie_samesite, когда сессия активна или вывод уже отправлен, теперь будет неудачной и выдаст предупреждение. Это изменение унифицирует поведение по аналогии со всеми другими настройками INI-директив сессии.

SQLite3

sqlite3.defensive теперь PHP_INI_USER.

Стандартные функции

Функция getimagesize() теперь сообщает фактические размеры, биты и каналы изображений AVIF. Ранее размеры сообщались как 0x0, а биты и каналы вообще не сообщались.

Tidy

Свойства класса tidy теперь объявлены правильно. А свойства класса tidyNode теперь правильно объявлены как доступные только для чтения.

Zip

Модуль Zip был обновлён до версии 1.20.0, в которой добавлены следующие методы:

  • ZipArchive::clearError()
  • ZipArchive::getStreamName()
  • ZipArchive::getStreamIndex()

Изменения в работе с INI-файлами

К целочисленным INI-параметрам добавлена поддержка двоичных (0b/0B) и восьмеричных (0o/0O) префиксов. Целочисленные INI-параметры, начинающиеся с нуля (0), продолжают интерпретироваться как восьмеричное целое число.

При разборе некоторых неправильно отформатированных значений теперь будет выдаваться предупреждение, если раньше это молча игнорировалось. Для обратной совместимости интерпретация этих значений не изменилась. Это влияет на следующие настройки:

  • bcmath.scale
  • com.code_page
  • default_socket_timeout
  • fiber.stack_size
  • hard_timeout
  • intl.error_level
  • ldap.max_links
  • max_input_nesting_level
  • max_input_vars
  • mbstring.regex_retry_limit
  • mbstring.regex_stack_limit
  • mysqli.allow_local_infile
  • mysqli.allow_persistent
  • mysqli.default_port
  • mysqli.max_links
  • mysqli.max_persistent
  • mysqli.rollback_on_cached_plink
  • mysqlnd.log_mask
  • mysqlnd.mempool_default_size
  • mysqlnd.net_read_buffer_size
  • mysqlnd.net_read_timeout
  • oci8.default_prefetch
  • oci8.max_persistent
  • oci8.persistent_timeout
  • oci8.ping_interval
  • oci8.prefetch_lob_size
  • oci8.privileged_connect
  • oci8.statement_cache_size
  • odbc.allow_persistent
  • odbc.check_persistent
  • odbc.max_persistent
  • odbc.max_links
  • odbc.defaultbinmode
  • odbc.default_cursortype
  • odbc.defaultlrl
  • opcache.consistency_checks
  • opcache.file_update_protection
  • opcache.force_restart_timeout
  • opcache.interned_strings_buffer
  • opcache.jit_bisect_limit
  • opcache.jit_blacklist_root_trace
  • opcache.jit_blacklist_side_trace
  • opcache.jit_debug
  • opcache.jit_hot_func
  • opcache.jit_hot_loop
  • opcache.jit_hot_return
  • opcache.jit_hot_side_exit
  • opcache.jit_max_exit_counters
  • opcache.jit_max_loop_unrolls
  • opcache.jit_max_polymorphic_calls
  • opcache.jit_max_recursive_calls
  • opcache.jit_max_recursive_returns
  • opcache.jit_max_root_traces
  • opcache.jit_max_side_traces
  • opcache.log_verbosity_level
  • opcache.max_file_size
  • opcache.opt_debug_level
  • opcache.optimization_level
  • opcache.revalidate_freq
  • output_buffering
  • pcre.backtrack_limit
  • pcre.recursion_limit
  • pgsql.max_links
  • pgsql.max_persistent
  • post_max_size
  • realpath_cache_size
  • realpath_cache_ttl
  • session.cache_expire
  • session.cookie_lifetime
  • session.gc_divisor
  • session.gc_maxlifetime
  • session.gc_probability
  • soap.wsdl_cache_limit
  • soap.wsdl_cache_ttl
  • unserialize_max_depth
  • upload_max_filesize
  • user_ini.cache_ttl
  • xmlrpc_error_number
  • zend.assertions
  • zlib.output_compression_level


Поддержка Windows

Ядро

Сообщения об ошибках, специфичных для Windows, больше не локализуются, а всегда отображаются на английском языке, чтобы лучше соответствовать сообщениям об ошибках PHP.

Добавлена предварительная и экспериментальная поддержка сборки на ARM64.

OCI8

Поскольку сборка на Oracle Client 10g больше не поддерживается, опция конфигурации --with-oci8 была исключена. Опции конфигурации --with-oci8-11g, --with-oci8-12c и --with-oci8-19 по-прежнему поддерживаются.

Zip

Модуль Zip обновлён до версии 1.21.0 и теперь по умолчанию собирается как разделяемая библиотека (DLL).


Миграция с PHP 8.0.x на PHP 8.1.x

Содержание

  • Новая функциональность
  • Новые классы и интерфейсы
  • Новые функции
  • Новые глобальные константы
  • Изменения, ломающие обратную совместимость
  • Устаревшая функциональность
  • Другие изменения

Эта обновлённая версия приносит с собой ряд новых возможностей и несколько несовместимостей, которые должны быть проверены перед сменой версии в производственной среде.

Смотрите также руководство по миграции для версий PHP 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x.


Новая функциональность

Ядро PHP

Буквенный префикс восьмеричных целых чисел

Восьмеричные целые числа теперь могут использовать явный префикс 0o/0O в целочисленных литералах, аналогично двоичным и шестнадцатеричным целочисленным литералам.

<?php
014; // Восьмеричный литерал без префикса
0o14; // Восьмеричный литерал с префиксом
?>

Распаковка массива с помощью строковых ключей

Добавлена поддержка распаковки массивов со строковыми ключами.

<?php
$arr1 = [1, 'a' => 'b'];
$arr2 = [...$arr1, 'c' => 'd']; //[1, 'a' => 'b', 'c' => 'd']
?>

Именованный аргумент после распаковки аргумента

Теперь можно указать именованные аргументы после распаковки аргументов. например: foo(...$args, named: $arg).

Ключ с полным путём при загрузке файлов

При загрузке файлов появился новый ключ full_path, который содержит полный путь (а не только относительный) загруженного файла. Предназначен для использования вместе с HTML-атрибутом webkitdirectory.

Перечисления

Добавлена поддержка перечислений.

Файберы

Добавлена поддержка файберов.

Callback-функции как объекты первого класса

Замыкания для callback-функций теперь можно создавать с помощью синтаксиса myFunc(...), который идентичен синтаксису Closure::fromCallable('myFunc').

Замечание: ... является частью синтаксиса, а не пропуском.

Пересечение типов

Добавлена поддержка пересечения типов.

Предостережение

Пересечения типов нельзя использовать вместе с объединёнными типами.

Тип never

Добавлен новый тип возвращаемого значения never. Тип указывает на то, что функция либо вызывает exit(), либо выбрасывает исключение, либо не завершается.

new в инициализации класса

Теперь можно использовать выражения new ClassName() в качестве значения по умолчанию для параметра, статической переменной, инициализаторов глобальных констант и в качестве аргументов атрибутов. Теперь объекты также можно передавать в define().

Readonly-свойства

Добавлена поддержка readonly-свойств.

Окончательные константы класса

Добавлена поддержка модификатора final при определении констант класса. Кроме того, константы интерфейса по умолчанию становятся переопределяемыми.

CURL

Добавлена опция CURLOPT_DOH_URL.

Добавлены параметры для сертификата BLOB-объекта, доступные с libcurl >= 7.71.0:

  • CURLOPT_ISSUERCERT_BLOB
  • CURLOPT_PROXY_ISSUERCERT
  • CURLOPT_PROXY_ISSUERCERT_BLOB
  • CURLOPT_PROXY_SSLCERT_BLOB
  • CURLOPT_PROXY_SSLKEY_BLOB
  • CURLOPT_SSLCERT_BLOB
  • CURLOPT_SSLKEY_BLOB

Добавлен класс CURLStringFile, который можно использовать для отправки файла из строки (string), а не из файла:

<?php
$file = new CURLStringFile($data, 'filename.txt', 'text/plain');
curl_setopt($curl, CURLOPT_POSTFIELDS, ['file' => $file]);
?>

FPM

Добавлен формат статуса openmetrics. Prometheus может использовать его для получения метрик FPM.

Добавлен новый пул для диспетчера динамических процессов под названием pm.max_spawn_rate. Он позволяет запускать несколько дочерних процессов более быстрыми темпами, если выбран динамический pm. Значение по умолчанию - 32, которое ранее было фиксированным значением.

GD

Поддержка Avif теперь доступна с помощью imagecreatefromavif() и imageavif(), если libgd был собран с поддержкой Avif.

Hash

Следующие функции hash(), hash_file() и hash_init() теперь поддерживают дополнительный необязательный аргумент options, который можно использовать для передачи специфичных для алгоритма данных.

MurmurHash3

Добавлена поддержка MurmurHash3 с поддержкой потоковой передачи. Реализованы следующие варианты:

  • murmur3a, 32-битный хеш
  • murmur3c, 128-битный хеш для x86
  • murmur3f, 128-битный хеш для x64

Начальное состояние хеширования можно передать с помощью ключа seed в массиве options, например:

<?php
$h = hash("murmur3f", $data, options: ["seed" => 42]);
echo $h, "\n";
?>
Допустимое начальное значение находится в диапазоне от 0 до определённого платформой значения UINT_MAX, обычно - 4294967295.

xxHash

Добавлена поддержка xxHash. Реализованы следующие варианты:

  • xxh32, 32-bit hash
  • xxh64, 64-bit hash
  • xxh3, 64-bit hash
  • xxh128, 128-bit hash

Начальное состояние хеширования можно передать с помощью ключа seed в массиве options, например:

<?php
$h = hash("xxh3", $data, options: ["seed" => 42]);
echo $h, "\n";
?>
Использование секрета также поддерживается путём передачи ключа secret в массиве options:
<?php
$h = hash("xxh3", $data, options: ["secret" => "как минимум 136 байт секрета"]);
echo $h, "\n";
?>
Качество пользовательского секрета имеет решающее значение для качества хеша результата. Для секрета настоятельно рекомендуется использовать максимально возможную энтропию.

MySQLi

Новая INI-директива mysqli.local_infile_directory

Добавлена INI-директива mysqli.local_infile_directory, с помощью которой можно указать каталог, из которого разрешена загрузка файлов. Это имеет смысл, только если mysqli.allow_local_infile не включён, поскольку в этом случае разрешены все каталоги.

Привязка параметров во время выполнении

Теперь можно привязывать параметры, передав их в виде массива в mysqli_stmt::execute(). Все значения будут привязаны как строки. Разрешены только списочные массивы. Эта новая функция недоступна, если MySQLi скомпилирован с libmysqlclient.

<?php
$stmt = $mysqli->prepare('INSERT INTO users(id, name) VALUES(?,?)');
$stmt->execute([1, $username]);
?>

Новый метод mysqli_result::fetch_column()

Добавлен mysqli_result::fetch_column() для выборки единственного скалярного значения из набора результатов. Новый метод принимает необязательный параметр column, начинающийся с 0, в виде целого числа (int), указывающий из какого столбца производить выборку.

<?php
$result = $mysqli->query('SELECT username FROM users WHERE id = 123');
echo $result->fetch_column();
?>

PDO

Добавлен атрибут PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY, который можно использовать для указания каталога, из которого могут быть загружены файлы. Это имеет смысл только в том случае, если PDO::MYSQL_ATTR_LOCAL_INFILE не включён, поскольку в этом случае разрешены все каталоги.

PDO_SQLite

Поддерживается новый элемент "file:" в DSN-префиксе SQLite, который позволяет указывать дополнительные флаги. Он не будет работать, если включена опция open_basedir.

<?php
new PDO('sqlite:file:path/to/sqlite.db?mode=ro')
?>

POSIX

Добавлены константы POSIX_RLIMIT_KQUEUES и POSIX_RLIMIT_NPTS. Эти ограничения доступны только во FreeBSD.

Стандартные функции

fputcsv() теперь принимает новый аргумент eol, который позволяет определять настраиваемую последовательность конца строки, значение по умолчанию остаётся прежним - "\n".

SPL

SplFileObject::fputcsv() теперь принимает новый аргумент eol, который позволяет определять настраиваемую последовательность конца строки, значение по умолчанию остаётся прежним - "\n".


  • « Новая функциональность
  • Новые функции »
  • PHP Manual
  • Миграция с PHP 8.0.x на PHP 8.1.x
  • Новые классы и интерфейсы

Новые классы и интерфейсы

cURL

  • CURLStringFile

Intl

  • IntlDatePatternGenerator

Reflection

  • ReflectionFiber


Новые функции

Ядро PHP

  • array_is_list()

GD

  • imagecreatefromavif()
  • imageavif()

MySQLi

  • mysqli_result::fetch_column()
  • mysqli_fetch_column()

Управление процессами

  • pcntl_rfork()

Reflection

  • ReflectionFunctionAbstract::getClosureUsedVariables()

Стандартные функции

  • fsync()
  • fdatasync()

Sodium

XChaCha20

  • sodium_crypto_stream_xchacha20()
  • sodium_crypto_stream_xchacha20_keygen()
  • sodium_crypto_stream_xchacha20_xor()

Ristretto255

Функции Ristretto255 доступны начиная с libsodium 1.0.18.

  • sodium_crypto_core_ristretto255_add()
  • sodium_crypto_core_ristretto255_from_hash()
  • sodium_crypto_core_ristretto255_is_valid_point()
  • sodium_crypto_core_ristretto255_random()
  • sodium_crypto_core_ristretto255_scalar_add()
  • sodium_crypto_core_ristretto255_scalar_complement()
  • sodium_crypto_core_ristretto255_scalar_invert()
  • sodium_crypto_core_ristretto255_scalar_mul()
  • sodium_crypto_core_ristretto255_scalar_negate()
  • sodium_crypto_core_ristretto255_scalar_random()
  • sodium_crypto_core_ristretto255_scalar_reduce()
  • sodium_crypto_core_ristretto255_scalar_sub()
  • sodium_crypto_core_ristretto255_sub()
  • sodium_crypto_scalarmult_ristretto255()
  • sodium_crypto_scalarmult_ristretto255_base()


Новые глобальные константы

cURL

  • CURLOPT_DOH_URL
  • CURLOPT_ISSUERCERT_BLOB
  • CURLOPT_PROXY_ISSUERCERT
  • CURLOPT_PROXY_ISSUERCERT_BLOB
  • CURLOPT_PROXY_SSLCERT_BLOB
  • CURLOPT_PROXY_SSLKEY_BLOB
  • CURLOPT_SSLCERT_BLOB
  • CURLOPT_SSLKEY_BLOB

GD

  • IMG_AVIF
  • IMG_WEBP_LOSSLESS

MySQLi

  • MYSQLI_REFRESH_REPLICA

    Эта новая константа была добавлена для замены MYSQLI_REFRESH_SLAVE в соответствии с политикой самого MySQL, отказавшегося от использования слова "slave". Старая константа по-прежнему доступна для обратной совместимости, но может быть объявлена устаревшей/удалена в будущем.

PCNTL

  • PRIO_DARWIN_BG
  • PRIO_DARWIN_THREAD

POSIX

  • POSIX_RLIMIT_KQUEUES
  • POSIX_RLIMIT_NPTS

Сокеты

Доступны следующие параметры сокета, при условии, что они поддерживаются в системе:

  • SO_ACCEPTFILTER
  • SO_DONTTRUNC
  • SO_WANTMORE
  • SO_MARK
  • TCP_DEFER_ACCEPT

Sodium

  • SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES
  • SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES
  • SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES
  • SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES

Лексер (Tokenizer)

  • T_READONLY


Изменения, ломающие обратную совместимость

Ядро PHP

Ограничения доступа к $GLOBALS

Доступ к массиву $GLOBALS теперь имеет ряд ограничений. Чтение и запись отдельных элементов массива, как например, $GLOBALS['var'], по-прежнему работает. Чтение всего массива $GLOBALS также поддерживается. Однако операции, связанные с изменением всего $GLOBALS, запрещены. Например, array_pop($GLOBALS) приведёт к ошибке.

Использование static-переменных в унаследованных методах

Когда метод, использующий статические переменные, наследуется (но не переопределяется), унаследованный метод теперь будет использовать статические переменные совместно с родительским методом.

<?php
class A {
public static function counter() {
static $counter = 0;
$counter++;
return $counter;
}
}
class B extends A {}
var_dump(A::counter()); // int(1)
var_dump(A::counter()); // int(2)
var_dump(B::counter()); // int(3), ранее было int(1)
var_dump(B::counter()); // int(4), ранее было int(2)
?>
Это означает, что статические переменные в методах теперь ведут себя так же, как статические свойства.

Необязательные параметры, указанные перед обязательными параметрами

Необязательный параметр, указанный перед обязательными параметрами, теперь всегда обрабатывается как обязательный, даже при вызове с использованием именованных аргументов. Начиная с PHP 8.0.0, но до PHP 8.1.0, приведённый ниже код выдаёт предупреждение об устаревании определения, но успешно выполняется при вызове. Начиная с PHP 8.1.0, выдаётся ошибка класса ArgumentCountError, как это было бы при вызове с позиционными аргументами.

<?php
function makeyogurt($container = "миску", $flavour)
{
return "Готовим $container с $flavour йогуртом.\n";
}
try
{
echo makeyogurt(flavour: "малиновым");
}
catch (Error $e)
{
echo get_class($e), ' - ', $e->getMessage(), "\n";
}
?>

Результат выполнения данного примера в PHP 8.0:

Deprecated: Required parameter $flavour follows optional parameter $container
 in example.php on line 3
Готовим миску с малиновым йогуртом.

Результат выполнения данного примера в PHP 8.1:

Deprecated: Optional parameter $container declared before required parameter
 $flavour is implicitly treated as a required parameter in example.php on line 3
ArgumentCountError - makeyogurt(): Argument #1 ($container) not passed

Обратите внимание, что значение по умолчанию null может использоваться перед обязательными параметрами для указания типа, допускающего значение null, но этот параметр всё равно будет обязательным.

Совместимость типа возвращаемого значения с внутренними классами

Большинство неокончательных внутренних методов теперь требуют переопределяющих методов для объявления совместимого возвращаемого типа, в противном случае во время проверки наследования выдаётся уведомление об устаревании возможности. В случае, если тип возвращаемого значения не может быть объявлен для метода переопределения из-за проблем совместимости версий PHP, можно добавить атрибут ReturnTypeWillChange, чтобы заглушить уведомление об устаревании.

Новые ключевые слова

readonly теперь является ключевым словом. Однако его можно использовать как имя функции.

never теперь является зарезервированным словом, поэтому его нельзя использовать для названия класса, интерфейса или трейта, а также запрещено использовать в пространствах имён.

Переход от ресурсов к объектам

Несколько ресурсов (resource) теперь представлены как объекты (object). Проверки возвращаемого значения с использованием функции is_resource() следует заменить проверками на false.

  • Функции FileInfo теперь принимают и возвращают объекты finfo вместо ресурсов (resource) fileinfo.

  • Функции FTP теперь принимают и возвращают объекты FTP\Connection вместо ресурсов (resource) ftp.

  • Функции IMAP теперь принимают и возвращают объекты IMAP\Connection вместо ресурсов (resource) imap.

  • The LDAP теперь принимают и возвращают объекты LDAP\Connection вместо ресурсов (resource) ldap link.

  • Функции LDAP теперь принимают и возвращают объекты LDAP\Result вместо ресурсов (resource) ldap result.

  • Функции LDAP теперь принимают и возвращают объекты LDAP\ResultEntry вместо ресурсов (resource) ldap result entry.

  • Функции PgSQL теперь принимают и возвращают объекты PgSql\Connection вместо ресурсов (resource) pgsql link.

  • Функции PgSQL теперь принимают и возвращают объекты PgSql\Result вместо ресурсов (resource) pgsql result.

  • Функции PgSQL теперь принимают и возвращают объекты PgSql\Lob вместо ресурсов (resource) pgsql large object.

  • Функции PSpell теперь принимают и возвращают объекты PSpell\Dictionary вместо ресурсов (resource) pspell.

  • Функции PSpell теперь принимают и возвращают объекты PSpell\Config вместо ресурсов (resource) pspell config.

MySQLi

Функции mysqli_fetch_fields() и mysqli_fetch_field_direct() теперь всегда возвращают 0 в свойстве max_length. Это значение можно вычислить, перебирая набор результатов и выбирая максимальную длину. Такой алгоритм раньше использовал PHP.

Опция MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH больше не имеет смысла.

Опция MYSQLI_STORE_RESULT_COPY_DATA больше не имеет смысла. Передача какого-либо значения в параметр mode метода mysqli::store_result() больше не имеет смысла.

mysqli::connect() теперь возвращает true вместо null в случае успешного выполнения.

Режим обработки ошибок по умолчанию был изменён с "silent" на "exceptions". Смотрите страницу Режимы обработки ошибок MySQLi для получения дополнительных сведений о том, что это влечёт за собой и о том, как явно установить этот атрибут. Чтобы восстановить предыдущее поведение, используйте: mysqli_report(MYSQLI_REPORT_OFF);

Классы, расширяющие mysqli_stmt::execute(), теперь должны указывать дополнительный необязательный параметр.

MySQLnd

INI-директива mysqlnd.fetch_data_copy была удалена. Это не должно приводить к видимым для пользователя изменениям в поведении.

OpenSSL

Секретные ключи EC теперь будут экспортироваться в формате PKCS#8, а не в традиционном формате, как и все другие ключи.

openssl_pkcs7_encrypt() и openssl_cms_encrypt() теперь по умолчанию используют шифр AES-128-CBC, а не RC2-40. Шифр RC2-40 считается небезопасным и не включён по умолчанию в OpenSSL 3.

Объекты данных PHP

PDO::ATTR_STRINGIFY_FETCHES теперь преобразует логические значения (bool) в "0" или "1". Ранее логические значения (bool) не были строковыми.

Вызов PDOStatement::bindColumn() с PDO::PARAM_LOB теперь будет постоянно связывать результат потока, если PDO::ATTR_STRINGIFY_FETCHES не включён. Раньше результатом был либо поток, либо строка в зависимости от используемого драйвера базы данных и времени выполнения привязки.

Драйвер MySQL

Целые числа и числа с плавающей запятой в наборах результатов теперь будут возвращаться с использованием собственных типов PHP вместо строк (string) при использовании эмулированных подготовленных операторов. Это соответствует поведению собственных подготовленных операторов. Предыдущее поведение можно восстановить, включив опцию PDO::ATTR_STRINGIFY_FETCHES.

Драйвер SQLite

Целые числа и числа с плавающей запятой в наборах результатов теперь будут возвращаться с использованием собственных типов PHP. Предыдущее поведение можно восстановить, включив опцию PDO::ATTR_STRINGIFY_FETCHES.

Phar

Чтобы соответствовать интерфейсу ArrayAccess, Phar::offsetUnset() и PharData::offsetUnset() больше не возвращают логическое значение (bool).

Стандартные функции

version_compare() больше не принимает недокументированные сокращения операторов.

Функции htmlspecialchars(), htmlentities(), htmlspecialchars_decode(), html_entity_decode() и get_html_translation_table() теперь по умолчанию используют ENT_QUOTES | ENT_SUBSTITUTE вместо ENT_COMPAT. Это означает, что теперь ' экранируется в &#039;. Кроме того, в случае неправильного UTF-8 вместо пустой строки будет возвращён замещающий символ Unicode.

debug_zval_dump() теперь выводит refcount ссылочных оболочек с их refcount, вместо того, чтобы просто добавлять & к значению. Это более точно моделирует эталонное представление, начиная с PHP 7.0.

debug_zval_dump() теперь выводит interned вместо фиктивного refcount для интернированных строк и неизменяемых массивов.

Стандартная библиотека PHP (SPL)

SplFixedArray теперь будет закодирован в JSON как массив (array).


Устаревшая функциональность

Ядро PHP

Реализация Serializable без __serialize() и __unserialize()

Если не требуется поддержка версий PHP меньше 7.4, должны быть реализованы только эти два магических метода, иначе нужно реализовать как методы интерфейса, так и магические методы.

Передача null параметрам встроенных функций, не допускающим значение NULL

Больше не рекомендуется передавать значение NULL скалярным параметрам встроенных функций. В противном случае теперь будет вызвано уведомление. Такое ограничение было введено, чтобы лучше соответствовать работе пользовательских функций, где параметры, допускающие значение NULL, должны быть для этого явно обозначены.

<?php
var_dump(str_contains("foobar", null));
// Deprecated: Passing null to parameter #2 ($needle) of type string
// is deprecated
?>

Неявная несовместимость преобразования float к int

Теперь нужно избегать неявного преобразования числа с плавающей точкой (float) к целому числу (int), которое приводит потере точности. Это влияет на ключи массива (array), объявления целочисленных (int) типов в принудительном режиме и операторов, работающие с целыми числами (int).

<?php
$a = [];
$a[15.5]; // устарело, поскольку значение ключа теряет компонент 0.5
$a[15.0]; // работает, так как 15.0 == 15
?>

Вызов static-элемента в трейтах

Вызов static-метода или доступ к static-свойству непосредственно в трейте устарел. К статическим методам и свойствам следует обращаться только в классе, использующем трейт.

Возврат не массива (array) из __sleep()

Возвращаемое значение __sleep(), не являющееся массивом, теперь сгенерирует уведомление.

Возврат значения по ссылке из функции void

<?php
function &test(): void {}
?>
Такая функция сбивает с толку, поэтому теперь выдаст следующий E_NOTICE: Only variable references should be returned by reference (По ссылке должны возвращаться только ссылки на переменные).

Автовивификация из false

Автовивификация - это процесс создания нового массива (array) при добавлении нового значения. Автовивификация запрещена для скалярных значений, однако false был исключением. Теперь такое поведение устарело.

<?php
$arr = false;
$arr[] = 2; // устарело
?>

Замечание:

Автовивификация из null и неопределённого значения по-прежнему разрешена:

<?php
// Из неопределённого значения
$arr[] = 'какое-то значение';
$arr['doesNotExist'][] = 2;
// Из null
$arr = null;
$arr[] = 2;
?>

ctype

Проверка нестроковых аргументов

Передача нестрокового аргумента устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке (string) явным образом или через вызов chr(). Это изменение относится ко всем функциям ctype_*().

Date

Функции date_sunrise() и date_sunset() устарели в пользу date_sun_info().

Функция strptime() устарела. Вместо неё используйте date_parse_from_format() (для синтаксического анализа, не зависящего от языкового стандарта) или IntlDateFormatter::parse() (для синтаксического анализа, зависящего от языкового стандарта).

Функция strftime() и gmstrftime() устарели. Используйте вместо них функцию date() (для форматирования, не зависящего от языкового стандарта) или метод IntlDateFormatter::format() (для форматирования, зависящего от языкового стандарта).

Фильтр

Фильтры FILTER_SANITIZE_STRING и FILTER_SANITIZE_STRIPPED устарели.

INI-директива filter.default устарела.

GD

Параметр num_points функции imagepolygon(), imageopenpolygon() и imagefilledpolygon() устарел.

Хеширование

Функции mhash(),
mhash_keygen_s2k(),
mhash_count(),
mhash_get_block_size()
и mhash_get_hash_name() устарели.
Вместо них используйте функции hash_*().

IMAP

Константа NIL устарела. Вместо неё используйте 0.

Intl

Вызов IntlCalendar::roll() с логическим значением (bool) устарел. Используйте 1 и -1 вместо true и false соответственно.

Многобайтовые строки

Вызов mb_check_encoding() без каких-либо аргументов устарел.

MySQLi

Свойство mysqli_driver::$driver_version устарело. Оно было неактуальным, используйте вместо него PHP_VERSION_ID.

Вызов метода mysqli::get_client_info() или mysqli_get_client_info() с аргументом mysqli устарел. Используйте mysqli_get_client_info() без каких-либо аргументов, чтобы получить информацию о версии клиентской библиотеки.

Метод mysqli::init() устарел. Замените вызовы parent::init() на parent::__construct().

OCI8

INI-директива oci8.old_oci_close_semantics устарела.

ODBC

Функция odbc_result_all() устарела.

PDO

Режим выборки PDO::FETCH_SERIALIZE устарел.

PgSQL

Функциям pgsql_*() теперь нужно явно передавать параметр connection.

SOAP

Параметр ssl_method в SoapClient::__construct() устарел в пользу параметров контекста потока SSL.

Стандартные функции

Вызов key(), current(), next(), prev(), reset() или end() с объектами (object) устарел. Либо сначала преобразуйте объект (object) в массив (array) с помощью функции get_mangled_object_vars(), либо используйте методы, предоставляемые классом, реализующим интерфейс Iterator, например, ArrayIterator.

INI-директива auto_detect_line_endings устарела. При необходимости обработайте разрывы строк "\r" вручную.

Константы FILE_BINARY и FILE_TEXT устарели. Они никогда не имели смысла.


Другие изменения

Изменения в модулях SAPI

CLI

Использование -a без модуля readline теперь приведёт к ошибке. Ранее использование -a без модуля readline было аналогичным вызову php без каких-либо аргументов, за исключением вывода дополнительного сообщения "Interactive mode enabled". Этот режим был не интерактивным.

PHPDBG

Возможность дистанционной отладки в phpdbg была удалена.

Изменённые функции

Ядро

Порядок свойств, используемых в foreach, var_dump(), serialize(), при сравнении объектов и т.д. был изменён. Теперь свойства упорядочены естественным образом в соответствии с их объявлением и наследованием. Свойства, объявленные в родительском классе, будут перед дочерними.

Этот порядок соответствует внутреннему расположению свойств в структуре zend_object и повторяет порядок в default_properties_table[] и properties_info_table[]. Старый порядок не был задокументирован и был вызван деталями реализации наследования классов.

Фильтрация

Флаг FILTER_FLAG_ALLOW_OCTAL фильтра FILTER_VALIDATE_INT теперь принимает восьмеричную строку с начальным восьмеричным префиксом ("0o"/"0O").

GMP

Все функции GMP теперь принимают восьмеричную строку с начальным восьмеричным префиксом ("0o"/"0O").

PDO ODBC

Вызов PDO::getAttribute() с константой
PDO::ATTR_SERVER_INFO и
PDO::ATTR_SERVER_VERSION
теперь вернёт значение вместо генерации исключения PDOException.

Reflection

Вызов ReflectionProperty::setAccessible() и ReflectionMethod::setAccessible() больше не требуется. Свойства и методы теперь всегда считаются доступными при работе через Reflection.

Стандартные функции

syslog() теперь безопасен для двоичных файлов.

Другие изменения в модулях

GD

imagewebp() теперь может выполнить кодирование WebP без потерь, если передать IMG_WEBP_LOSSLESS параметру quality.

Эта константа определяется только в том случае, если используемый libgd поддерживает кодирование WebP без потерь.

MySQLi

При сборке PHP с библиотекой libmysqlclient теперь доступны функции mysqli_stmt::next_result() и mysqli::fetch_all().

OpenSSL

  • Для модуля OpenSSL теперь требуется OpenSSL версии не ниже 1.0.2.

  • Теперь поддерживается OpenSSL 3.0. Имейте в виду, что многие шифры больше не включены по умолчанию (часть устаревшего провайдера) и проверка параметров (например, минимальные размеры ключей) стала более строгой.

Phar

  • По умолчанию для подписей теперь используется SHA256.

  • Добавлена поддержка подписей OpenSSL_SHA256 и OpenSSL_SHA512.

SNMP

  • Добавлена поддержка SHA256 и SHA512 для протокола безопасности.

Стандартные модули

--with-password-argon2 теперь использует pkg-config для обнаружения libargon2. Таким образом, альтернативный путь к libargon2 теперь должен быть указан в PKG_CONFIG_PATH.

Изменения в обработке INI-файлов

  • INI-директива log_errors_max_len удалена. Начиная с PHP 8.0.0 она уже перестала работать.

  • Доллар в начале строки в кавычках теперь можно экранировать: "\${" теперь будет интерпретироваться как строка с содержимым ${.

  • Обратные слеши в строках с двойными кавычками теперь более последовательно рассматриваются как экранирующие символы. Раньше "foo\\", за которым следовало что-то, кроме новой строки, не считалось завершённой строкой. Теперь это интерпретируется как строка с содержимым foo\. Однако, как исключение, строка "foo\", за которой следует новая строка, будет по-прежнему рассматриваться как корректная строка с содержимым foo\, а не как незавершённая строка. Это исключение необходимо для поддержки простого использования путей к файлам Windows, таких как "C:\foo\".


Миграция с PHP 7.4.x на PHP 8.0.x

Содержание

  • Новая функциональность
  • Изменения, ломающие обратную совместимость
  • Функциональность, объявленная устаревшей в PHP 8.0.x
  • Другие изменения

Новая версия содержит ряд новых функций и несовместимостей, наличие которых следует проверить перед переключением версий PHP в производственной среде.

Смотрите также руководство по миграции для версий PHP 7.0.x, 7.1.x, 7.2.x, 7.3.x и 7.4.x.


Новая функциональность

Ядро PHP

Именованные аргументы

Добавлена поддержка именованных аргументов.

Атрибуты

Добавлена поддержка атрибутов.

Объявление свойств в конструкторе

Добавлена поддержка определения свойств в конструкторе (объявление свойств в сигнатуре конструктора).

Тип Union

Добавлена поддержка объединённых типов.

Выражение Match

Добавлена поддержка выражения match.

Оператор Nullsafe

Добавлена поддержка оператора Nullsafe (?->).

Другие новые функции

  • Добавлен класс WeakMap.

  • Добавлен класс ValueError.

  • Любое количество параметров функции теперь может быть заменено вариативным аргументом, при совместимости типов. Например, теперь следующий код является допустимым:

    <?php
    class A {
    public function     method(int $many, string $parameters, $here) {}
    }
    class     B extends A {
    public function     method(...$everything) {}
    }
    ?>

  • static (как в "позднем статическом связывании") теперь можно использовать как возвращаемый тип:

    <?php
    class Test {
    public function     create(): static {
    return new static();
    }
    }
    ?>

  • Теперь можно получить имя класса объекта с помощью $object::class. Результат такой же, что и get_class($object).

  • new и instanceof теперь можно использовать с произвольными выражениями, используя new (expression)(...$args) и $obj instanceof (expression).

  • Были внесены некоторые исправления согласованности в синтаксис переменных, например, теперь разрешена запись Foo::BAR::$baz.

  • Добавлен интерфейс Stringable, который автоматически реализуется, если в классе определён метод __toString().

  • Теперь трейты могут определять абстрактные закрытые методы. Такие методы должны быть реализованы классом с помощью трейта.

  • throw теперь можно использовать как выражение. Это означает, что теперь возможно следующее:

    <?php
    $fn     = fn() => throw new Exception('Исключение в стрелочной функции');
    $user = $session->user ?? throw new Exception('Должен быть пользователь');

  • В списках параметров теперь разрешена необязательная завершающая запятая.

    <?php
    function functionWithLongSignature(
    Type1 $parameter1,
    Type2 $parameter2, // <-- Эта запятая теперь разрешена.
    ) {
    }

  • Теперь можно написать catch (Exception) для перехвата исключения, не сохраняя его в переменной.

  • Добавлена поддержка типа mixed.

  • Закрытые методы, объявленные в родительском классе, больше не применяют какие-либо правила наследования для методов дочернего класса (за исключением окончательных закрытых конструкторов). В следующем примере показано, какие ограничения были сняты:

    <?php
    class ParentClass {
    private function     method1() {}
    private function     method2() {}
    private static function     method3() {}
    // Выдаёт предупреждение, так как "final" больше не имеет значения:
    private final function method4() {}
    }
    class     ChildClass extends ParentClass {
    // Теперь все следующее разрешено, хотя модификаторы не такие же,
    // как для закрытых методов в родительском классе.
    public abstract function method1() {}
    public static function     method2() {}
    public function     method3() {}
    public function     method4() {}
    }
    ?>

  • Добавлена функция get_resource_id(), которая возвращает то же значение, что и (int) $resource. Принцип работы такой же, но с более понятным API.

  • Добавлен класс InternalIterator.

Дата и время

  • Были добавлены DateTime::createFromInterface() и DateTimeImmutable::createFromInterface().

  • Добавлен спецификатор формата DateTime p, который аналогичен P, но возвращает Z, а не +00:00 для UTC.

DOM

Добавлены DOMParentNode и DOMChildNode с новыми API-интерфейсами обхода и управления.

Фильтрация данных

FILTER_VALIDATE_BOOL был добавлен в качестве псевдонима для FILTER_VALIDATE_BOOLEAN. Новое имя является предпочтительным, так как оно использует имя канонического типа.

Enchant

Добавлены enchant_dict_add(), enchant_dict_is_added() и LIBENCHANT_VERSION.

FPM

Добавлена новая опция pm.status_listen, позволяющая получать статус с другой конечной точки (например, порта или файла UDS). Это может пригодится для получения статуса, когда все дочерние элементы заняты обработкой долговыполняемых запросов.

Hash

Теперь объекты HashContext можно сериализовать.

Функции интернационализации

Добавлены константы IntlDateFormatter::RELATIVE_FULL,
IntlDateFormatter::RELATIVE_LONG,
IntlDateFormatter::RELATIVE_MEDIUM и
IntlDateFormatter::RELATIVE_SHORT.

LDAP

Добавлена функция ldap_count_references(), которая возвращает количество ссылочных сообщений в результатах поиска.

OPcache

Если ini-параметр opcache.record_warnings включён, OPcache будет записывать предупреждения во время компиляции и воспроизводить их при следующем включении, даже если они обслуживаются из кеша.

OpenSSL

Добавлена поддержка синтаксиса криптографических сообщений (CMS) (» RFC 5652), состоящего из функций для шифрования, дешифрования, подписи, проверки и чтения. API похож на API для функций PKCS #7 с добавлением новых констант кодирования: OPENSSL_ENCODING_DER, OPENSSL_ENCODING_SMIME и OPENSSL_ENCODING_PEM:

  • openssl_cms_encrypt() шифрует сообщение в файле с сертификатами и выводит результат в предоставленный файл.
  • openssl_cms_decrypt() расшифровывает сообщение S/MIME в файле и выводит результаты в предоставленный файл.
  • openssl_cms_read() экспортирует файл CMS в массив сертификатов PEM.
  • openssl_cms_sign() подписывает сообщение MIME в файле сертификатом и ключом и выводит результат в предоставленный файл.
  • openssl_cms_verify() проверяет, что блок данных не повреждён, подписывающая сторона является тем, кем она являются и возвращает сертификаты подписывающих сторон.

Регулярные выражения (совместимые с Perl)

Добавлена функция preg_last_error_msg(), которая возвращает человекочитаемое сообщение о последней ошибке PCRE. Она дополняет preg_last_error(), которая возвращает целочисленное значение перечисления.

Reflection

  • Следующие методы теперь могут возвращать информацию о значениях параметров внутренних функций по умолчанию:

    • ReflectionParameter::isDefaultValueAvailable()
    • ReflectionParameter::getDefaultValue()
    • ReflectionParameter::isDefaultValueConstant()
    • ReflectionParameter::getDefaultValueConstantName()

SQLite3

SQLite3::setAuthorizer() и соответствующие константы классов были добавлены, с помощью которых можно задать собственную callback-функцию для авторизации или запрета действия в базе данных.

Библиотека стандартных функций

  • Добавлены функции str_contains(), str_starts_with() и str_ends_with(), которые проверяют, содержит ли haystack, начинается или заканчивается needle соответственно.

  • Добавлена функция fdiv(), которая выполняет деление с плавающей точкой в соответствии с IEEE 754. Деление на ноль строго определено и возвращает одно из значений: Inf, -Inf или NaN.

  • Добавлена функция get_debug_type(), которая возвращает тип, который может использоваться для генераций сообщений об ошибках. В отличие от gettype(), она использует канонические имена типов, возвращает имена классов объектов и сообщает о типе ресурсов.

  • printf() и её производные теперь поддерживают спецификаторы формата %h и %H. Они работают как %g и %G, но всегда используют "." в качестве десятичного разделителя, а не определяют его с помощью локали LC_NUMERIC.

  • printf() и её производные теперь поддерживают использование "*" в качестве ширины или точности, и в этом случае ширина/точность передаётся в качестве аргумента printf. Это также позволяет использовать точность -1 с %g, %G, %h и %H. Например, следующий код можно использовать для воспроизведения форматирования с плавающей точкой по умолчанию PHP:

    <?php
    printf    ("%.*H", (int) ini_get("precision"), $float);
    printf("%.*H", (int) ini_get("serialize_precision"), $float);
    ?>

  • proc_open() теперь поддерживает дескрипторы псевдотерминала (PTY). Следующий код присоединяет stdin, stdout и stderr к одному и тому же PTY:

    <?php
    $proc     = proc_open($command, [['pty'], ['pty'], ['pty']], $pipes);
    ?>

  • proc_open() теперь поддерживает дескрипторы пары сокетов. Следующий код присоединяет отдельную пару сокетов к stdin, stdout и stderr:

    <?php
    $proc     = proc_open($command, [['socket'], ['socket'], ['socket']], $pipes);
    ?>

    В отличие от каналов, у сокетов нет проблем с блокировкой ввода-вывода в Windows. Однако не все программы могут корректно работать с сокетами stdio.

  • Функции сортировки теперь используют устойчивую сортировку, это означает, что сравниваемые элементы сохранят исходный порядок.

  • array_diff(), array_intersect() и их производные теперь могут использоваться с одним массивом в качестве аргумента. Это означает, что теперь возможно следующее:

    <?php
    // Работает, даже если $excludes пуст:
    array_diff($array, ...$excludes);
    // Работает, даже если $array содержит только один массив:
    array_intersect(...$arrays);
    ?>

  • Параметр flag в функции ob_implicit_flush() был изменён, и теперь принимает логическое значение (bool), а не целое число (int).

Лексер (Tokenizer)

PhpToken добавляет объектно-ориентированный интерфейс к PHP-лексеру (tokenizer). Он обеспечивает более единообразное и эргономичное представление, в то же время эффективнее и быстрее.

Zip

  • Модуль Zip обновлён до версии 1.19.1.

  • Новые методы ZipArchive::setMtimeName() и ZipArchive::setMtimeIndex() для установки времени изменения записи.

  • Новый метод ZipArchive::registerProgressCallback() для предоставления обновлений во время закрытия архива.

  • Новый метод ZipArchive::registerCancelCallback(), чтобы разрешить отмену во время закрытия архива.

  • Новый метод ZipArchive::replaceFile() для замены содержимого записи.

  • Новый метод ZipArchive::isCompressionMethodSupported(), чтобы проверить дополнительные возможности сжатия.

  • Новый метод ZipArchive::isEncryptionMethodSupported(), чтобы проверить дополнительные функции шифрования.

  • Добавлено свойство ZipArchive::lastId для получения значения индекса последней добавленной записи.

  • Теперь ошибки можно проверить после закрытия и с помощью свойств
ZipArchive::status и
ZipArchive::statusSys или метода
ZipArchive::getStatusString().

  • Параметр 'remove_path' в ZipArchive::addGlob() и ZipArchive::addPattern() теперь обрабатывается как произвольный строковый префикс (для согласованности с 'add_path'), тогда как раньше он интерпретировался как имя каталога.

  • Дополнительные функции сжатия/шифрования теперь перечислены в phpinfo.


Изменения, ломающие обратную совместимость

Ядро PHP

Сравнение строк с числами

Нестрогие сравнения чисел и нечисловых строк теперь работают, как преобразование числа в строку с последующим сравнением строк. Сравнение чисел и числовых строк работает, как и раньше. В частности, это означает, что 0 == "not-a-number" теперь выдаст false.

Сравнение | До | После
0 == "0" | true | true
0 == "0.0" | true | true
0 == "foo" | true | false
0 == "" | true | false
42 == " 42" | true | true
42 == "42foo" | true | false

Другие изменения, ломающие обратную совместимость

  • match теперь зарезервированное ключевое слово.

  • mixed теперь зарезервированное слово, поэтому его нельзя использовать для названия класса, интерфейса или черты, а также запрещено использовать в пространствах имён.

  • Ошибки утверждений (assertions) теперь выбрасываются по умолчанию. Если предпочтительнее старое поведение, assert.exception=0 можно установить в INI-настройках.

  • Методы с тем же именем, что и класс, больше не интерпретируются как конструкторы. Вместо этого следует использовать метод __construct().

  • Возможность статического вызова нестатических методов удалена. Таким образом, is_callable() завершится ошибкой при проверке нестатического метода с именем класса (необходимо проверять с экземпляром объекта).

  • Приведения типов (real) и (unset) удалены.

  • INI-директива track_errors удалена. Это означает, что php_errormsg больше не актуален. Вместо него можно использовать функцию error_get_last().

  • Возможность определять константы без учёта регистра была удалена. Третий аргумент define() больше не может быть true.

  • Возможность указывать автозагрузчик с помощью функции __autoload() была удалена. Вместо этого следует использовать spl_autoload_register().

  • Аргумент errcontext больше не передаётся в пользовательские обработчики ошибок, заданных с помощью set_error_handler().

  • create_function() была удалена. Вместо неё можно использовать анонимные функции.

  • each() была удалена. Вместо неё можно использовать foreach или ArrayIterator.

  • Возможность отвязать this от замыканий, которые были созданы из метода с использованием Closure::fromCallable() или ReflectionMethod::getClosure(), была удалена.

  • Возможность отвязать this от надлежащих замыканий, содержащих использование this, также была удалена.

  • Возможность использования array_key_exists() с объектами была удалена. Вместо этого можно использовать isset() или property_exists().

  • Работа параметра key в функции array_key_exists() теперь приведена в соответствии с isset() и обычным доступом к массиву. Все типы ключей теперь используют обычное приведение типов, массив/объект к ключе приведёт к выбрасыванию TypeError.

  • Любой массив, у которого в качестве первого числового ключа указано число n, будет использовать n+1 для своего следующего неявного ключа, даже если n отрицательно.

  • Уровень error_reporting по умолчанию теперь E_ALL. Ранее он исключал E_NOTICE и E_DEPRECATED.

  • display_startup_errors теперь включён по умолчанию.

  • Использование parent внутри класса, у которого нет родителя, теперь приведёт к фатальной ошибке во время компиляции.

  • Оператор @ больше не подавляет фатальные ошибки (E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR, E_RECOVERABLE_ERROR, E_PARSE). Обработчики ошибок, которые ожидают, что error_reporting будет иметь значение 0 при использовании оператора @, должны делать такие проверки через битовую маску:

    <?php
    // Замените это
    function my_error_handler($err_no, $err_msg, $filename, $linenum) {
    if (    error_reporting() == 0) {
    return     false;
    }
    // ...
    }

    // На это
    function my_error_handler($err_no, $err_msg, $filename, $linenum) {
    if (!(    error_reporting() & $err_no)) {
    return     false;
    }
    // ...
    }
    ?>

    Кроме этого, обязательно следует скрыть отображение сообщений об ошибках в производственной среде, которые могут привести к утечке информации. Проверьте, что display_errors=Off используется вместе с включённой записью журнала ошибок.

  • #[ больше не интерпретируется как начало комментария, так как этот синтаксис теперь используется для атрибутов.

  • Ошибки наследования из-за несовместимых сигнатур методов (нарушения LSP) теперь всегда вызывают фатальную ошибку. Ранее в некоторых случаях выдавалось предупреждение.

  • Приоритет оператора конкатенации изменился относительно сдвигов битов и сложения, а также вычитания.

    <?php
    echo "Сумма: " . $a + $b;
    // ранее интерпретировалось как:
    echo ("Сумма: " . $a) + $b;
    // сейчас интерпретируется как:
    echo "Сумма:" . ($a + $b);
    ?>

  • Аргументы со значением по умолчанию, которые преобразуется в null во время выполнения, больше не будут неявно помечать тип аргумента как nullable. Вместо этого должно использоваться либо явный тип, допускающий значение null, либо явное значение null по умолчанию.

    <?php
    // Замените этот код:
    function test(int $arg = CONST_RESOLVING_TO_NULL) {}
    // На этот:
    function test(?int $arg = CONST_RESOLVING_TO_NULL) {}
    // На этот (альтернативный вариант):
    function test(int $arg = null) {}
    ?>

  • Ряд предупреждений преобразован в исключения Error:

    • Попытка записи в свойство несуществующего объекта. Ранее это неявно создавало объект stdClass в случае null, false и пустых строк.
    • Попытка добавить элемент в массив, для которого уже используется ключ PHP_INT_MAX.
    • Попытка использовать недопустимый тип (массив или объект) в качестве ключа массива или смещения строки.
    • Попытка записать в индекс массива скалярное значение.
    • Попытка распаковать значение, не являющее массивом/Traversable.
    • Попытка получить доступ к неквалифицированным константам, которые не определены. Ранее неквалифицированный доступ к константам приводил к предупреждению и интерпретировался как строка.
    • Передача неверного количества аргументов в невариативную встроенную функцию приведёт к ошибке ArgumentCountError.

    Ряд уведомлений преобразован в предупреждения:

    • Попытка прочитать неопределённую переменную.
    • Попытка прочитать неопределённое свойство.
    • Попытка прочитать неопределённый ключ массива.
    • Попытка прочитать свойство не-объекта.
    • Попытка получить доступ к индексу массива не-массива.
    • Попытка преобразовать массив в строку.
    • Попытка использовать ресурс в качестве ключа массива.
    • Попытка использовать null, логическое значение или число с плавающей точкой в качестве строкового смещения.
    • Попытка прочитать смещение строки за пределами допустимой границы.
    • Попытка присвоить смещению строки пустую строку.

  • При попытке назначить несколько байтов смещению строки теперь будет выдано предупреждение.

  • Неожиданные символы в исходных файлах (например, байты NUL за пределами строк) теперь будут приводить к исключению ParseError вместо предупреждения при компиляции.

  • Неперехваченные исключения теперь проходят процедуру "чистого завершения", это означает, что после неперехваченного исключения будут вызываться деструкторы.

  • Фатальная ошибка времени компиляции "Only variables can be passed by reference" была отложена до времени выполнения и преобразована в исключение Error "Argument cannot be passed by reference".

  • Некоторые уведомления "Only variables can be passed by reference" были преобразованы в исключение "Argument cannot be passed by reference".

  • Сгенерированное имя для анонимных классов изменилось. Теперь он будет включать имя первого родителя или интерфейса:

    <?php
    new class extends ParentClass {};
    // -> ParentClass@anonymous
    new class implements FirstInterface, SecondInterface {};
    // -> FirstInterface@anonymous
    new class {};
    // -> class@anonymous
    ?>

    За новыми именами по-прежнему будет следовать NUL-байт и уникальный суффикс.

  • Ссылки на неабсолютные трейты методов в адаптациях псевдонимов трейтов теперь должны быть однозначными:

    <?php
    class X {
    use     T1, T2 {
    func as otherFunc;
    }
    function     func() {}
    }
    ?>

    Если существуют и T1::func(), и T2::func(), этот код ранее принимался без уведомления, и предполагалось, что func ссылается на T1::func. Теперь вместо этого будет выброшена фатальная ошибка: необходимо явно указать T1::func или T2::func.

  • Сигнатура абстрактных методов, определённых в трейтах, теперь проверяется по методу реализующего класса:

    <?php
    trait MyTrait {
    abstract private function     neededByTrait(): string;
    }

    class     MyClass {
    use     MyTrait;

    // Ошибка из-за несоответствия типа возвращаемого значения.
    private function neededByTrait(): int { return 42; }
    }
    ?>

  • Отключённые функции теперь обрабатываются точно так же, как несуществующие функции. Вызов отключённой функции сообщит, что нет такой функции, это даёт возможность переопределить отключённую функцию.

  • Оболочки потока data:// больше не доступны для записи, что соответствует документированному поведению.

  • Арифметические и побитовые операторы +, -, *, /, **, %, <<, >>, &, |, ^, ~, ++, -- теперь будут последовательно выдавать TypeError, когда одним из операндов является массив (array), ресурс (resource) или не перегруженный объект (object). Единственным исключением из этого правила является операция слияния массивов +, которая по-прежнему поддерживается.

  • Приведение с плавающей точкой в строку теперь всегда будет вести себя независимо от локали.

    <?php
    setlocale    (LC_ALL, "de_DE");
    // Ранее: 3,14
    // Теперь: 3.14
    ?>

    Смотрите printf(), number_format() и NumberFormatter() для получения информации о способах настройки форматирования чисел.

  • Удалена поддержка устаревших фигурных скобок для доступа к смещению.

    <?php
    // Вместо:
    $array{0};
    $array{"key"};
    // Используйте:
    $array[0];
    $array["key"];
    ?>

  • Применение модификатора final к закрытому методу теперь приведёт к предупреждению, если этот метод не является конструктором.

  • Если в конструкторе объекта используется exit(), то деструктор объекта больше не будет вызываться. Это соответствует поведению, когда конструктор выбрасывает исключение.

  • Имена в пространстве имён больше не могут содержать пробелы: Foo\Bar будет распознаваться как имя в пространстве имён, Foo \ Bar - нет. И наоборот, зарезервированные ключевые слова теперь разрешены в качестве сегментов пространства имён, что также может изменить интерпретацию кода: new\x теперь совпадает с constant('new\x'), но не с new \x().

  • Для вложенных тернарных операторов теперь требуется явное указание скобок.

  • debug_backtrace() и Exception::getTrace() больше не будут предоставлять ссылки на аргументы. Невозможно изменить аргументы функции через трассировку.

  • Обработка числовых строк была изменена, чтобы сделать её более понятной и менее подверженной ошибкам. Завершающие пробелы теперь разрешены в числовых строках для согласованности с тем, как обрабатываются начальные пробелы. В основном это влияет на:

    • Функцию is_numeric()
    • Сравнение строк со строками
    • Объявления типов
    • Операции увеличения и уменьшения

    Понятие "ведущая числовая строка" в основном было отброшено; случаи, когда это осталось, существуют для облегчения миграции. Строки, которые выдавали E_NOTICE "A non well-formed numeric value encountered", теперь будут выдавать E_WARNING "A non-numeric value encountered", а все строки, которые выдавали E_WARNING "A non-numeric value encountered" теперь будет выдавать TypeError. В основном это влияет на:

    • Арифметические операции
    • Побитовые операции

    Это изменение E_WARNING на TypeError также влияет на E_WARNING "Illegal string offset 'string'" для недопустимых смещений строки. Поведение явных приведений к int/float из строк не изменилось.

  • Теперь у магических методов будут проверяться аргументы и возвращаемые типы, если они объявлены. Сигнатура должна соответствовать следующему списку:

    • __call(string $name, array $arguments): mixed
    • __callStatic(string $name, array $arguments): mixed
    • __clone(): void
    • __debugInfo(): ?array
    • __get(string $name): mixed
    • __invoke(mixed $arguments): mixed
    • __isset(string $name): bool
    • __serialize(): array
    • __set(string $name, mixed $value): void
    • __set_state(array $properties): object
    • __sleep(): array
    • __unserialize(array $data): void
    • __unset(string $name): void
    • __wakeup(): void

  • Ключи массива call_user_func_array() теперь будут интерпретироваться как имена параметров, а не игнорироваться.

  • Объявление функции с именем assert() внутри пространства имён больше не допускается и вызывает E_COMPILE_ERROR. Функция assert() подвергается специальной обработке со стороны движка, что может привести к несогласованному поведению при определении одноимённой функции в пространстве имён.

Преобразование ресурсов в объекты

Несколько ресурсов (resource) были преобразованы в объекты (object). Проверки возвращаемого значения с использованием is_resource() следует заменить проверками на false.

  • curl_init() теперь возвращает объект CurlHandle вместо ресурса (resource). Функция curl_close() больше не имеет смысла, вместо этого экземпляр CurlHandle автоматически уничтожается, если на него больше нет ссылки.

  • curl_multi_init() теперь возвращает объект CurlMultiHandle вместо ресурса (resource). Функция curl_multi_close() больше не имеет смысла, вместо этого экземпляр CurlMultiHandle автоматически уничтожается, если на него больше нет ссылки.

  • curl_share_init() теперь возвращает объект CurlShareHandle вместо ресурса (resource). Функция curl_share_close() больше не имеет смысла, вместо этого экземпляр CurlShareHandle автоматически уничтожается, если на него больше нет ссылки.

  • enchant_broker_init() теперь возвращает объект EnchantBroker вместо ресурса (resource).

  • enchant_broker_request_dict() и enchant_broker_request_pwl_dict() теперь возвращают EnchantDictionary объект вместо ресурса (resource).

  • Модуль GD теперь использует объекты GdImage в качестве базовой структуры данных для изображений, а не ресурсы (resource). Функция imagedestroy() больше не имеет смысла; вместо этого экземпляр GdImage автоматически уничтожается, если на него больше нет ссылки.

  • openssl_x509_read() и openssl_csr_sign() теперь возвращают объект OpenSSLCertificate вместо ресурса (resource). Функция openssl_x509_free() объявлена устаревшей и больше не имеет смысла, вместо этого экземпляр OpenSSLCertificate автоматически уничтожается, если на него больше не ссылаются.

  • openssl_csr_new() теперь возвращает объект OpenSSLCertificateSigningRequest вместо ресурса (resource).

  • openssl_pkey_new() теперь возвращает объект OpenSSLAsymmetricKey вместо ресурса (resource). Функция openssl_pkey_free() объявлена устаревшей и больше не имеет смысла, вместо этого экземпляр OpenSSLAsymmetricKey автоматически уничтожается, если на него больше не ссылаются.

  • shmop_open() теперь возвращает объект Shmop вместо ресурса (resource). Функция shmop_close() больше не имеет смысла и объявлена устаревшей; вместо этого экземпляр Shmop автоматически уничтожается, если на него больше не ссылаются.

  • socket_create(), socket_create_listen(),
socket_accept(), socket_import_stream(),
socket_addrinfo_connect(), socket_addrinfo_bind() и
socket_wsaprotocol_info_import() теперь возвращают объект
Socket вместо ресурса (resource).
socket_addrinfo_lookup() теперь возвращает массив объектов
AddressInfo вместо массива ресурсов (resource).

  • msg_get_queue() теперь возвращают объект SysvMessageQueue вместо ресурса (resource).

  • sem_get() теперь возвращают объект SysvSemaphore вместо ресурса (resource).

  • shm_attach() теперь возвращают объект SysvSharedMemory вместо ресурса (resource).

  • xml_parser_create() и xml_parser_create_ns() теперь возвращают объект XMLParser вместо ресурса (resource). Функция xml_parser_free() больше не имеет смысла, вместо этого экземпляр XMLParser автоматически уничтожается, если на него больше не ссылаются.

  • Функции XMLWriter теперь принимают и возвращают, соответственно, объекты XMLWriter вместо ресурсов (resource).

  • inflate_init() теперь возвращает объект InflateContext вместо ресурса (resource).

  • deflate_init() теперь возвращает объект DeflateContext вместо ресурса (resource).

COM и .Net (Windows)

Возможность импорта констант без учёта регистра из библиотек типов была удалена. Второй аргумент com_load_typelib() больше не может быть false; com.autoregister_casesensitive больше нельзя отключить; Маркеры без учёта регистра в com.typelib_file игнорируются.

CURL

CURLOPT_POSTFIELDS больше не принимает объекты как массивы. Чтобы интерпретировать объект как массив, выполните явное приведение (array). То же самое относится и к другим параметрам, принимающим массивы.

Дата и время

Для работы функций mktime() и gmmktime() теперь требуется хотя бы один аргумент. time() может использоваться для получения текущей отметки времени.

DOM

Были удалены нереализованные классы из модуля DOM, которые не имели обработчика и содержали тестовые данные. Эти классы также были удалены в последней версии стандарта DOM:

  • DOMNameList
  • DomImplementationList
  • DOMConfiguration
  • DomError
  • DomErrorHandler
  • DOMImplementationSource
  • DOMLocator
  • DOMUserDataHandler
  • DOMTypeInfo
  • DOMStringExtend

Удалены нереализованные методы модуля DOM, у которых не было реализации:

  • DOMNamedNodeMap::setNamedItem()
  • DOMNamedNodeMap::removeNamedItem()
  • DOMNamedNodeMap::setNamedItemNS()
  • DOMNamedNodeMap::removeNamedItemNS()
  • DOMText::replaceWholeText()
  • DOMNode::compareDocumentPosition()
  • DOMNode::isEqualNode()
  • DOMNode::getFeature()
  • DOMNode::setUserData()
  • DOMNode::getUserData()
  • DOMDocument::renameNode()

Enchant

  • enchant_broker_list_dicts(), enchant_broker_describe() и enchant_dict_suggest() теперь возвращают пустой массив вместо null.

Exif

read_exif_data() была удалена; Вместо неё следует использовать exif_read_data().

Фильтрация данных

  • Флаги FILTER_FLAG_SCHEME_REQUIRED и FILTER_FLAG_HOST_REQUIRED для фильтра FILTER_VALIDATE_URL были удалены. scheme и host необходимы (и всегда были).

  • Типы INPUT_REQUEST и INPUT_SESSION для filter_input() и ей производных были удалены. Они никогда не были реализованы, а попытка их использования всегда приводила к вызову предупреждения.

GD

  • Устаревшие функции image2wbmp() были удалены.

  • Устаревшие функции png2wbmp() и jpeg2wbmp() были удалены.

  • Параметр mode по умолчанию для функции imagecropauto() больше не принимает значение -1. Вместо этого следует использовать IMG_CROP_DEFAULT.

  • В Windows, php_gd2.dll переименован в php_gd.dll.

GMP

gmp_random() была удалена. Вместо неё следует использовать gmp_random_range() или gmp_random_bits().

Iconv

Реализации iconv, которые неправильно устанавливают errno в случае возникновения ошибок, больше не поддерживаются.

IMAP

  • Неиспользуемый аргумент default_host функции imap_headerinfo() был удалён.

  • Функция imap_header(), которая является псевдонимом imap_headerinfo(), была удалена.

Функции интернационализации

  • Устаревшая константа INTL_IDNA_VARIANT_2003 удалена.

  • Устаревшая константа Normalizer::NONE удалена.

LDAP

  • Устаревшие функции ldap_sort(),
ldap_control_paged_result() и
ldap_control_paged_result_response() удалены.

  • Изменился интерфейс ldap_set_rebind_proc(); параметр callback больше не принимает пустые строки; вместо этого следует указывать null.

MBString

  • Директива mbstring.func_overload была удалена. Связанные константы MB_OVERLOAD_MAIL, MB_OVERLOAD_STRING и MB_OVERLOAD_REGEX также были удалены. Наконец, записи "func_overload" и "func_overload_list" в mb_get_info() были удалены.

  • mb_parse_str() больше нельзя использовать без передачи массива результатов.

  • Удалён ряд устаревших псевдонимов mbregex. В следующем списке указано, какие функции следует использовать вместо них:

    • mbregex_encoding() > mb_regex_encoding()
    • mbereg() > mb_ereg()
    • mberegi() > mb_eregi()
    • mbereg_replace() > mb_ereg_replace()
    • mberegi_replace() > mb_eregi_replace()
    • mbsplit() > mb_split()
    • mbereg_match() > mb_ereg_match()
    • mbereg_search() > mb_ereg_search()
    • mbereg_search_pos() > mb_ereg_search_pos()
    • mbereg_search_regs() > mb_ereg_search_regs()
    • mbereg_search_init() > mb_ereg_search_init()
    • mbereg_search_getregs() > mb_ereg_search_getregs()
    • mbereg_search_getpos() > mb_ereg_search_getpos()
    • mbereg_search_setpos() > mb_ereg_search_setpos()

  • Модификатор e для mb_ereg_replace() был удалён. Вместо него следует использоватьmb_ereg_replace_callback().

  • Аргумент нестрокового шаблона для mb_ereg_replace() теперь будет интерпретироваться как строка вместо кодовой точки ASCII. Предыдущее поведение можно восстановить явным вызовом chr().

  • Аргумент needle для функций mb_strpos(),
mb_strrpos(), mb_stripos(),
mb_strripos(), mb_strstr(),
mb_stristr(), mb_strrchr() и
mb_strrichr() теперь может быть пустым.

  • Параметр is_hex, который не использовался для внутренних целей, был удалён из mb_decode_numericentity().

  • Устаревшее поведение передачи кодировки в качестве третьего аргумента вместо смещения для функции mb_strrpos() было удалено; вместо этого в качестве четвёртого аргумента следует указать явное смещение 0 с кодировкой.

  • Псевдонимы кодировки символов ISO_8859-* были заменены на псевдонимы ISO8859-* для лучшей совместимости с модулем iconv. Псевдонимы mbregex ISO 8859 с подчёркиванием (ISO_8859_* и ISO8859_*) также были удалены.

  • mb_ereg() и mb_eregi() теперь будут возвращать логическое значение true, в случае найденного совпадения. Ранее они возвращали целое число 1, если аргумент matches не был передан, или max(1, strlen($matches[0])), если matches был не пустой.

OCI8

  • Класс OCI-Lob переименован в OCILob, а класс OCI-Collection - в OCICollection для имени совместимость обеспечивается средствами аннотации типа arginfo PHP 8.

  • Некоторые функции псевдонимов объявлены устаревшим.

  • oci_internal_debug() и её псевдоним ociinternaldebug() были удалены.

ODBC

  • odbc_connect() больше не использует соединения повторно.

  • Неиспользуемый параметр flags функции odbc_exec() был удалён.

OpenSSL

  • openssl_seal() и openssl_open() теперь требуют передачи method, так как предыдущее значение по умолчанию "RC4" считается небезопасным.

Регулярные выражения (совместимые с Perl)

При передаче недопустимых управляющих последовательностей они больше не интерпретируются как литералы. Такое поведение ранее требовало модификатора X, который теперь игнорируется.

Объекты данных PHP

  • Режим обработки ошибок по умолчанию был изменён с "тихого" (silent) на "исключения" (exceptions). Подробнее смотрите Ошибки и обработка ошибок.

  • Изменились сигнатуры некоторых методов PDO:

    • PDO::query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs)
    • PDOStatement::setFetchMode(int $mode, mixed ...$args)

PDO ODBC

Директива php.ini pdo_odbc.db2_instance_name была удалена.

PDO MySQL

PDO::inTransaction() теперь сообщает о фактическом состоянии транзакции подключения, а не о приблизительном от PDO. Если запрос, при условии "неявной фиксации", выполняется, то PDO::inTransaction() впоследствии вернёт false, так как транзакция будет неактивной.

PostgreSQL

  • Устаревший синтаксис pg_connect() с использованием нескольких параметров вместо строки подключения больше не поддерживается.

  • Устаревшие сигнатуры pg_lo_import() и pg_lo_export(), передающие соединение в качестве последнего аргумента, больше не поддерживаются. Вместо этого соединение должно быть передано первым аргументом.

  • pg_fetch_all() теперь будет возвращать пустой массив вместо false для наборов результатов с отсутствующими строками.

Phar

Метаданные, связанные с phar, больше не будут автоматически десериализоваться, чтобы исправить потенциальные уязвимости безопасности из-за создания экземпляров объекта, автозагрузки и т.д.

Reflection

  • Сигнатуры методов

    • ReflectionClass::newInstance($args)
    • ReflectionFunction::invoke($args)
    • ReflectionMethod::invoke($object, $args)

    были изменены на:

    • ReflectionClass::newInstance(...$args)
    • ReflectionFunction::invoke(...$args)
    • ReflectionMethod::invoke($object, ...$args)

    Код, который должен быть совместим как с PHP 7, так и с PHP 8, может использовать следующие сигнатуры:

    • ReflectionClass::newInstance($arg = null, ...$args)
    • ReflectionFunction::invoke($arg = null, ...$args)
    • ReflectionMethod::invoke($object, $arg = null, ...$args)

  • Метод ReflectionType::__toString() теперь будет возвращать полное отладочное представление типа и больше не является устаревшим. В частности, результат будет включать индикатор допустимости значений NULL для типов, допускающих значение NULL. Формат возвращаемого значения нестабилен и может меняться в зависимости от версии PHP.

  • Методы Reflection export() были удалены. Вместо этого объекты reflection могут быть преобразованы в строку.

  • ReflectionMethod::isConstructor() и
ReflectionMethod::isDestructor() теперь также возвращают true для
методов интерфейсов __construct() и
__destruct().
Раньше это было верно только для методов классов и трейтов.

  • Метод ReflectionType::isBuiltin() перемещён в ReflectionNamedType. У ReflectionUnionType этого метода нет.

Сокеты

  • Устаревшие flags AI_IDN_ALLOW_UNASSIGNED и AI_IDN_USE_STD3_ASCII_RULES для socket_addrinfo_lookup() были удалены.

Стандартная библиотека PHP (SPL)

  • SplFileObject::fgetss() был удалён.

  • SplFileObject::seek() теперь всегда перемещается на начало строки. Ранее, позиция >=1 перемещала к началу следующие строки.

  • SplHeap::compare() теперь указывает сигнатуру метода. Наследующие классы, реализующие этот метод, теперь должны будут использовать совместимую сигнатуру метода.

  • SplDoublyLinkedList::push(),
SplDoublyLinkedList::unshift() и
SplQueue::enqueue() теперь возвращают void вместо true.

  • spl_autoload_register() теперь всегда будет выбрасывать TypeError для недопустимых аргументов, поэтому второй аргумент do_throw игнорируется, если для него установлено значение false.

  • SplFixedArray теперь является IteratorAggregate, а не Iterator. SplFixedArray::rewind(), SplFixedArray::current(), SplFixedArray::key(), SplFixedArray::next() и SplFixedArray::valid() были удалены. Вместо них был добавлен SplFixedArray::getIterator(). Любой код, который использует явную итерацию над SplFixedArray, теперь должен получить Iterator с помощью SplFixedArray::getIterator(). Это означает, что SplFixedArray теперь безопасно использовать во вложенных циклах.

Библиотека стандартных функций

  • assert() больше не будет выполнять строковые аргументы, вместо этого они будут обрабатываться как любые обычные аргументы. Таким образом, вместо assert('$a == $b') следует использовать assert($a == $b). INI-директива assert.quiet_eval и константа ASSERT_QUIET_EVAL были удалены, так как они больше не имеют смысла.

  • parse_str() больше нельзя использовать без указания массива результатов.

  • Фильтр string.strip_tags удалён.

  • Аргумент needle функций strpos(), strrpos(), stripos(), strripos(), strstr(), strchr(), strrchr() и stristr() теперь всегда будет интерпретироваться как строка. Раньше нестрочные needles интерпретировались как кодовая точка ASCII. Явный вызов chr() может использоваться для восстановления предыдущего поведения.

  • Аргумент needle функций strpos(),
strrpos(), stripos(), strripos(),
strstr(), stristr() и strrchr()
теперь может быть пустым.

  • Аргумент length функций substr(), substr_count(), substr_compare() и iconv_substr() теперь может быть null. Значения null означает отсутствие аргумента длины, и поэтому функции вернут остаток строки вместо пустой строки.

  • Аргумент length функции array_splice() теперь может быть null. Передача значения null означает отсутствие аргумента, поэтому функция удалить все, начиная от offset до конца массива.

  • Аргумент args функций vsprintf(), vfprintf() и vprintf() теперь должен быть массивом. Раньше принимался любой тип.

  • Параметр 'salt' функции password_hash() больше не поддерживается. Если используется опция 'salt', генерируется предупреждение, переданная соль игнорируется, а вместо неё используется сгенерированная соль.

  • Функция quotemeta() теперь будет возвращать пустую строку, если была передана пустая строка. Ранее возвращалось false.

  • Удалены следующие функции:

    • hebrevc()
    • convert_cyr_string()
    • money_format()
    • ezmlm_hash()
    • restore_include_path()
    • get_magic_quotes_gpc()
    • get_magic_quotes_runtime()
    • fgetss()

  • FILTER_SANITIZE_MAGIC_QUOTES удалена.

  • Вызов implode() с параметрами в обратном порядке ($pieces, $glue) больше не поддерживается.

  • parse_url() теперь будет различать отсутствующие и пустые запросы и фрагменты:

    • http://example.com/foo > query = null, fragment = null
    • http://example.com/foo? > query = "", fragment = null
    • http://example.com/foo# > query = null, fragment = ""
    • http://example.com/foo?# > query = "", fragment = ""
    Ранее во всех случаях query и fragment были null.

  • var_dump() и debug_zval_dump() теперь будут печатать числа с плавающей точкой, используя serialize_precision, а не precision. В конфигурации по умолчанию это означает, что числа с плавающей точкой теперь печатаются с полной точностью этими функциями отладки.

  • Если массив, возвращаемый __sleep(), содержит несуществующие свойства, теперь они автоматически проигнорируются. Ранее такие свойства были бы сериализованы, как если бы они имели значение null.

  • Локаль по умолчанию при запуске теперь всегда будет определена как "C". По умолчанию локали не наследуются из окружения. Ранее для LC_ALL было задано значение "C", в то время как LC_CTYPE наследовался от окружения. Однако некоторые функции не учитывали унаследованную локаль без явного вызова setlocale(). Явный вызов setlocale() теперь требуется всегда, если компонент локали должен быть изменён с значения по умолчанию.

  • Устаревший резервный вариант DES в crypt() был удалён. Если в crypt() передаётся неизвестный формат соли, функция завершится ошибкой с *0 вместо возврата к слабому хешу DES.

  • При указании значений вне допустимого диапазона для SHA256/SHA512 crypt() теперь будет выдана ошибка *0 вместо ограничения до ближайшего предела. Это соответствует поведению glibc.

  • Результат функций сортировки мог измениться, если в массиве есть одинаковые элементы.

  • Любые функции, принимающие callback-функции, которые явно не указаны для приёма параметров по ссылке, теперь будут предупреждать, если используется callback-функция со ссылочными параметрами. Например, array_filter() и array_reduce(). Ранее так было у большинства функций, но не у всех.

  • Обёртка HTTP-потока, используемая такими функциями, как file_get_contents(), теперь по умолчанию объявляет HTTP/1.1, а не HTTP/1.0. Это не меняет поведения клиента, но может заставить серверы реагировать по-другому. Чтобы сохранить старое поведение, установите параметр контекста потока 'protocol_version', например:

    <?php
    $ctx     = stream_context_create(['http' => ['protocol_version' => '1.0']]);
    echo     file_get_contents('http://example.org', false, $ctx);
    ?>

  • Вызов crypt() без явной передачи соли больше не поддерживается. Если вы хотите создать надёжный хеш с автоматически сгенерированной солью, используйте вместо этого password_hash().

  • substr(), mb_substr(), iconv_substr() и grapheme_substr() теперь последовательно фиксируют смещения за пределы границы строки. Ранее, в некоторых случаях, вместо пустой строки возвращался false.

  • В Windows функции выполнения программ (proc_open(), exec(), popen() и т.д.) с использованием оболочки теперь последовательно выполняют %comspec% /s /c "$commandline", которая делает то же самое, что и выполнение $commandline (без дополнительных кавычек).

Sysvsem

  • Параметр auto_release в sem_get() был изменён, чтобы принимать логические значения (bool), а не целые числа (int).

Tidy

  • Параметр use_include_path, который не использовался внутренне, был удалён из tidy_repair_string().

  • tidy::repairString() и tidy::repairFile() стали статическими методами.

PHP-лексер (Tokenizer)

  • В лексемах T_COMMENT больше не будет символа новой строки в конце. Вместо этого новая строка будет частью следующий лексемы T_WHITESPACE. Следует отметить, что за T_COMMENT не всегда следует пробел, за ним также может быть T_CLOSE_TAG или конец файла.

  • Имена в пространствах имён теперь представлены с помощью T_NAME_QUALIFIED (Foo\Bar), T_NAME_FULLY_QUALIFIED (\Foo\Bar) и лексемы T_NAME_RELATIVE (namespace\Foo\Bar)). T_NS_SEPARATOR используется только для автономных разделителей пространства имён и только синтаксически действителен в сочетании с объявлениями группового использования.

XMLReader

XMLReader::open() и XMLReader::xml() теперь являются статическими методами. Их по-прежнему можно вызывать как методы экземпляра, но наследующие классы должны объявлять их как статические, если они переопределяют эти методы.

XML-RPC

Модуль XML-RPC был перемещён в PECL и больше не является частью дистрибутива PHP.

Zip

ZipArchive::OPSYS_Z_CPM была удалена (в этом имени была опечатка). Используйте вместо неё ZipArchive::OPSYS_CPM.

Zlib

  • gzgetss() удалена.

  • zlib.output_compression больше не отключается автоматически для Content-Type: image/*.

Пакеты тестов PHP для Windows

Скрипт выполнения тестов был переименован из run-test.php в run-tests.php, чтобы соответствовать его имени в php-src.


Функциональность, объявленная устаревшей в PHP 8.0.x

Ядро PHP

  • Если за параметром со значением по умолчанию следует обязательный параметр, то значение по умолчанию не имеет смысла. С PHP 8.0.0 подобный порядок параметров объявлен устаревшим и может быть исправлен путём удаления значения по умолчанию:

    <?php
    function test($a = [], $b) {} // До
    function test($a, $b) {} // После
    ?>

    Одним из исключений из этого правила являются параметры вида Type $param = null, где значение по умолчанию null делает тип неявно обнуляемым. Это пока что ещё разрешено, но вместо этого лучше рекомендуется использовать явный тип nullable:

    <?php
    function test(A $a = null, $b) {} // По-прежнему разрешено
    function test(?A $a, $b) {} // Рекомендуется
    ?>

  • Вызов get_defined_functions() с явно заданным значением false в exclude_disabled устарел и больше не имеет смысла. get_defined_functions() никогда не будет возвращать отключённые функции.

Enchant

  • enchant_broker_set_dict_path() и enchant_broker_get_dict_path() объявлены устаревшими, поскольку они недоступны ни в libenchant < 1.5 ни в libenchant-2.

  • enchant_dict_add_to_personal() объявлена устаревшей; используйте вместо неё enchant_dict_add().

  • enchant_dict_is_in_session() объявлена устаревшей; используйте вместо неё enchant_dict_is_added().

  • enchant_broker_free() и enchant_broker_free_dict() объявлены устаревшими; вместо неё примените к объекту функцию unset.

  • Константа ENCHANT_MYSPELL и ENCHANT_ISPELL объявлены устаревшими.

LibXML

libxml_disable_entity_loader() объявлена устаревшей. Поскольку теперь используется libxml 2.9.0, в котором загрузка внешних объектов по умолчанию отключена, поэтому использование этой функции больше не требуется для защиты от XXE-атак, если не используется (все ещё уязвимая) LIBXML_NOENT. В этом случае рекомендуется провести рефакторинг кода с помощью libxml_set_external_entity_loader(), чтобы подавить загрузку внешних сущностей.

PGSQL / PDO PGSQL

  • Константа PGSQL_LIBPQ_VERSION_STR теперь имеет то же значение, что и PGSQL_LIBPQ_VERSION и поэтому объявлена устаревшей.

  • Псевдонимы функций в модуле pgsql объявлены устаревшими. Смотрите в следующем списке, какие функции следует использовать вместо них:

    • pg_errormessage() > pg_last_error()
    • pg_numrows() > pg_num_rows()
    • pg_numfields() > pg_num_fields()
    • pg_cmdtuples() > pg_affected_rows()
    • pg_fieldname() > pg_field_name()
    • pg_fieldsize() > pg_field_size()
    • pg_fieldtype() > pg_field_type()
    • pg_fieldnum() > pg_field_num()
    • pg_result() > pg_fetch_result()
    • pg_fieldprtlen() > pg_field_prtlen()
    • pg_fieldisnull() > pg_field_is_null()
    • pg_freeresult() > pg_free_result()
    • pg_getlastoid() > pg_last_oid()
    • pg_locreate() > pg_lo_create()
    • pg_lounlink() > pg_lo_unlink()
    • pg_loopen() > pg_lo_open()
    • pg_loclose() > pg_lo_close()
    • pg_loread() > pg_lo_read()
    • pg_lowrite() > pg_lo_write()
    • pg_loreadall() > pg_lo_read_all()
    • pg_loimport() > pg_lo_import()
    • pg_loexport() > pg_lo_export()
    • pg_setclientencoding() > pg_set_client_encoding()
    • pg_clientencoding() -> pg_client_encoding()

Библиотека стандартных функций

  • Функции сравнения сортировки, возвращающие true или false теперь сгенерирует предупреждение об устаревшей возможности, поэтому их следует переписать, чтобы они возвращали целое число меньше, равное или больше нуля.

    <?php
    // Заменить подобный код:
    usort($array, fn($a, $b) => $a > $b);
    // На этот:
    usort($array, fn($a, $b) => $a <=> $b);
    ?>

Zip

  • Использование пустого файла в ZipArchive объявлено устаревшим. Libzip 1.6.0 больше не работает с пустыми zip-архивами. Существующее обходное решение будет удалено в следующей версии.

  • Процедурный API Zip объявлен устаревшим. Вместо него используйте ZipArchive. Итерацию по всем записям можно выполнить с помощью ZipArchive::statIndex() и цикла for:

    <?php
    // итерация с использованием процедурного API
    assert(is_resource($zip));
    while (    $entry = zip_read($zip)) {
    echo     zip_entry_name($entry);
    }

    // итерация с использованием объектно-ориентированного API
    assert($zip instanceof ZipArchive);
    for (    $i = 0; $entry = $zip->statIndex($i); $i++) {
    echo     $entry['name'];
    }
    ?>

Reflection

  • ReflectionFunction::isDisabled() объявлен устаревшим, так как больше невозможно создать ReflectionFunction для отключённой функции. Этот метод теперь всегда возвращает false.

  • ReflectionParameter::getClass(),
ReflectionParameter::isArray() и
ReflectionParameter::isCallable() объявлены устаревшими.
Вместо них следует использовать ReflectionParameter::getType() и
API ReflectionType.


Другие изменения

Изменения в модулях SAPI

Apache2Handler

Модуль PHP был переименован из php7_module в php_module.

Изменённые функции

Reflection

Результаты ReflectionClass::getConstants() и ReflectionClass::getReflectionConstants() теперь можно фильтровать с помощью нового параметра filter. Добавлены три новые константы для работы с ним:

  • ReflectionClassConstant::IS_PUBLIC
  • ReflectionClassConstant::IS_PROTECTED
  • ReflectionClassConstant::IS_PRIVATE

Стандартные функции

Математические функции abs(), ceil(), floor() и round() теперь правильно учитывают объявление strict_type. Ранее они приводили первый аргумент к числовому значению даже в режиме строгой типизации.

Zip

  • Методы ZipArchive::addGlob() и ZipArchive::addPattern() принимают новые значения в массиве параметров options:

    • flags
    • comp_method
    • comp_flags
    • env_method
    • enc_password

  • У методов ZipArchive::addEmptyDir(), ZipArchive::addFile() и ZipArchive::addFromString() добавлен новый параметр flags. С помощью него можно управлять кодировкой имени (ZipArchive::FL_ENC_*) и заменой записи (ZipArchive::FL_OVERWRITE).

  • ZipArchive::extractTo() теперь восстанавливает время модификации файла.

Другие изменения в модулях

CURL

  • Для работы модуля CURL теперь требуется как минимум libcurl 7.29.0.

  • Устаревший параметр version функции curl_version() был удалён.

Дата и время

DatePeriod теперь реализует IteratorAggregate (вместо Traversable).

DOM

DOMNamedNodeMap и DOMNodeList теперь реализуют IteratorAggregate (вместо Traversable).

Intl

IntlBreakIterator и ResourceBundle теперь реализуют IteratorAggregate (вместо Traversable).

Enchant

Модуль enchant теперь использует libenchant-2 по умолчанию, если возможно. libenchant версии 1 все ещё поддерживается, но устарел и может быть удалён в будущем.

GD

  • Параметр num_points для imagepolygon(), imageopenpolygon() и imagefilledpolygon() теперь является необязательным, то есть эти функции могут быть вызваны с помощью трёх или четырёх параметров. Если параметр опущен, он рассчитывается как count($points)/2.

  • Добавлена функция imagegetinterpolation() для получения текущего метода интерполяции.

JSON

Модуль JSON больше нельзя отключить, теперь он является неотъемлемой частью любой сборки PHP, как и модуль date.

MBString

Таблицы данных Unicode обновлены до версии 13.0.0.

PDO

PDOStatement теперь реализует IteratorAggregate (вместо Traversable).

LibXML

Минимальная необходимая версия libxml - 2.9.0. Это означает, что загрузка внешних объектов по умолчанию теперь отключена и поэтому не требуется дополнительных шагов для защиты от XXE-атак.

MySQLi / PDO MySQL

  • Если mysqlnd не используется (это вариант по умолчанию и рекомендуется), минимальная поддерживаемая версия libmysqlclient теперь 5.5.

  • mysqli_result теперь реализует IteratorAggregate (вместо Traversable).

PGSQL / PDO PGSQL

Для модулей PGSQL и PDO PGSQL теперь требуется как минимум libpq 9.1.

Readline

Вызов readline_completion_function() перед запуском интерактивной подсказки (например, в auto_prepend_file) теперь отменяет функцию завершения интерактивной подсказки по умолчанию. Ранее readline_completion_function() работала только при вызове после запуска интерактивной подсказки.

SimpleXML

SimpleXMLElement теперь реализует RecursiveIterator и включает в себя функционал SimpleXMLIterator. SimpleXMLIterator является пустым расширением SimpleXMLElement.

Изменения в обработке INI-файлов

  • com.dotnet_version - это новая INI-директива для выбора версии платформы .NET, которая будет использоваться для объектов dotnet.

  • zend.exception_string_param_max_len - это новая INI-директива для установки максимальной длины строки в аргументе строковой трассировки стека.

EBCDIC

Цели EBCDIC больше не поддерживаются, хотя маловероятно, что они до сих пор работали.

Производительность

  • Компилятор Just-In-Time (JIT) был добавлен в модуль opcache.

  • array_slice() в массиве без расстояний между элементами больше не будет сканировать весь массив, чтобы найти начальное смещение. Это может значительно сократить время выполнения функции с большими смещениями и малой длиной.

  • strtolower() теперь использует реализацию SIMD в локали "C" LC_CTYPE (которая используется по умолчанию).


Миграция с 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 можно присвоить только значения типа int, когда как $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()

Многобайтовые строки

  • mb_str_split()

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; теперь строка '2y' (в PHP 7.4.0, 7.4.1 и 7.4.2 было 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. Сейчас это было явно запрещено.

Изменились значения констант классов ReflectionClassConstant, ReflectionMethod и ReflectionProperty.

Стандартная библиотека PHP (SPL)

Вызов get_object_vars() с экземпляром ArrayObject теперь всегда будет возвращать свойства самого ArrayObject (или подкласса). Ранее он возвращал значения упакованного массива/объекта, если не был указан флаг ArrayObject::STD_PROP_LIST.

Другие затронутые операции:

  • ReflectionObject::getProperties()
  • reset(), current() и т.д. Используйте вместо этого методы Iterator.
  • Вероятно, все остальное работает со свойствами объекта при доступе в виде списка, например, array_walk().

На приведение типа (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 в случае обнаружения непредвиденных символов в потоке меток.

Входящие Cookies

Начиная с PHP 7.4.11 имена входящих cookie больше не декодируются из URL-закодированной строки из соображений безопасности.


Устаревшая функциональность

Ядро PHP

Вложенные тернарные операторы без явного указания скобок

Во вложенных тернарных операциях должны явно использоваться круглые скобки, чтобы определить порядок операций. Раньше, если скобки явно не заданы, в большинстве случаев левая ассоциативность не приводила к ожидаемому поведению.

<?php
1 ? 2 : 3 ? 4 : 5; // устарело
(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() и password_needs_rehash() теперь принимают обнуляемую строку (string) и целое число (int) в аргументе $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 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, теперь будут обрабатывать текст как целое число (int) или число с плавающей точкой (float), в зависимости от того, что является более подходящим. Ранее значения обрабатывались как целые числа (integer) без каких-либо условий.

Входящие Cookies

Начиная с PHP 7.3.23 имена входящих cookie больше не декодируются из URL-закодированной строки из соображений безопасности.


Функционал, объявленный устаревшим в 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. Начиная с PHP 7.3.8, также доступен тип raw, восстанавливающий поведение системного журнала в предыдущих версиях PHP. Этот фильтр также повлияет на вызовы syslog().
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_OPEN_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 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.

Входящие Cookies

Начиная с PHP 7.2.34 имена входящих cookie больше не декодируются из URL-закодированной строки из соображений безопасности.


Функционал, объявленный устаревшим в 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_send_mail()

Параметр $additional_headers функций mail() и mb_send_mail() теперь также принимает массив (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 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 и bool, то 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 удалена.

Запрещён "return;" для типизированных возвратов уже во время компиляции

Операторы возврата без аргументов в функциях, которые объявляют тип возвращаемого значения, теперь вызывают E_COMPILE_ERROR (если тип возврата не объявлен как void), даже если оператор возврата никогда не будет достигнут.


Функционал, объявленный устаревшим в 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 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
Абстрактные статические методы | Сообщение убрано, не вызывает ошибки
"Переопределение" конструктора | Сообщение убрано, не вызывает ошибки
Несоблюдение сигнатуры при наследовании | 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 теперь происходит так же, как и итерация массива по ссылке. Так получается вследствие того, что улучшения поведения при изменении массива во время итерации также влияет при добавлении или удалении свойств объекта.

Изменение в обработке значений типа int

Некорректная восьмеричная нотация

Ранее восьмеричные литералы, содержащие некорректные числа молча обрезались (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

Побитовые смещения с выходом из допустимого диапазона

Побитовые смещения (в обоих направлениях) за пределы ширины типа int будут всегда возвращать 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() для проверки строки на содержание шестнадцатеричного числа и преобразования этой строки к значению типа int:

<?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 были удалены.

  • PDO_SQLSRV
  • PDO_ODBC
  • SQLSRV
  • Unified ODBC API

Псевдонимы 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 и continue

Операторы 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() теперь является языковой конструкцией, принимающей первым аргументом выражения, а не только строки (string) для оценки или логические значения (bool) для проверки.

<?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 должна работать без изменений, всё же ознакомьтесь с некоторыми изменениями, которые могут сказаться на обратной совместимости:

Ключи массива не будут перезаписаны при определении массива как свойства класса через литерал массива

Ранее в массивах, заданные как свойства класса со смешанными явными и неявными ключами, элементы с явно заданными ключами могли молча перезаписываться, если явный ключ пересекался с последовательным неявным ключом. Например:

<?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

Экспорт публичного ключа (PEM) 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 »
  • PHP Manual
  • Appendices
  • Отладка в PHP

Отладка в PHP

Содержание

  • Об отладке в PHP


Об отладке в PHP

PHP поставляется с базовым интерактивным отладчиком командной строки phpdbg.

В большинстве IDE есть поддержка » Xdebug, бесплатного инструмента отладки, который позволяет выполнять отладку PHP-приложений в один шаг.


  • « Об отладке в 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. Обратите внимание, что при установке manpages под PREFIX (по умолчанию) следует выбрать стиль GNU, чтобы они были найдены в пути поиска утилиты manpath.

--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-versioning

Экспортировать только необходимую информацию для отладки. Смотрите INSTALL для дополнительной информации.

Опции PHP

--enable-maintainer-mode

Включает правила сборки и зависимости make, неиспользуемые (а иногда запутывающие) в обычном установщике.

--with-config-file-path=PATH

Устанавливает путь для поиска php.ini, значение по умолчанию PREFIX/lib.

--disable-short-tags

Запрещает использование краткой формы записи начального тега <? по умолчанию.

--with-libdir

Определяет каталог библиотек для сборки PHP в Unix-системах. Для 64-битных систем опция требует особого аргумента --with-libdir=lib64 для директории lib64.

--enable-zts

Включает безопасность потоков. До версии PHP 8.0.0 на системах, отличных от Windows, эта опция называлась --enable-maintainer-zts.

Опции SAPI

Следующий список включает доступные опции SAPI (Server Application Programming Interface) для PHP.

--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 по умолчанию.

--disable-cli

Отключает сборку CLI-версии PHP (опция также вызывает --without-pear). Больше информации можно получить в разделе Использование PHP в командной строке.

--enable-phpdbg

Включает поддержку модуля SAPI для интерактивного дебаггера phpdbg.

--enable-embed[=TYPE]

Включает сборку встроенной библиотеки SAPI. TYPE может принимать значение shared или static, по умолчанию установлено shared.

--with-servlet[=DIR]

Включает поддержку сервлетов. DIR - это базовая директория установки JSDK. SAPI требует java-модули, может быть собрана как доступная для dl.

--disable-cgi

Отключает сборку CGI-версии PHP.

Этот аргумент включает FastCGI, который предварительно должен быть включён аргументом --enable-fastcgi.


Директивы php.ini

Содержание

  • Список директив php.ini
  • Список разделов php.ini
  • Описание встроенных директив php.ini


Список директив php.ini

Этот список включает директивы php.ini, которые вы можете использовать для настройки PHP.

Столбец "Место изменения" показывает когда и где может быть установлена директива. Для получения информации о значениях этих директив смотрите раздел "Где может быть установлена директива?".

Параметры конфигурации
Имя | По умолчанию | Место изменения | Список изменений
allow_url_fopen | "1" | PHP_INI_SYSTEM |
allow_url_include | "0" | PHP_INI_SYSTEM | Объявлено устаревшим в PHP 7.4.0.
arg_separator.input | "&" | PHP_INI_PERDIR |
arg_separator.output | "&" | PHP_INI_ALL |
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.exception | "0" | PHP_INI_ALL |
assert.quiet_eval | "0" | PHP_INI_ALL | Удалено, начиная с PHP 8.0.0
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 |
bcmath.scale | "0" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM |
cgi.discard_path | "0" | PHP_INI_SYSTEM |
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 |
cli.prompt | "\\b \\> " | PHP_INI_ALL |
cli_server.color | "0" | PHP_INI_ALL |
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.dotnet_version | "" | PHP_INI_SYSTEM | Начиная с PHP 8.0.0
com.typelib_file | "" | PHP_INI_SYSTEM |
curl.cainfo | NULL | PHP_INI_SYSTEM |
date.default_latitude | "31.7667" | PHP_INI_ALL |
date.default_longitude | "35.2333" | PHP_INI_ALL |
date.sunrise_zenith | "90.833333" | PHP_INI_ALL | До PHP 8.0.0 значение по умолчанию было "90.583333".
date.sunset_zenith | "90.833333" | PHP_INI_ALL | До PHP 8.0.0 значение по умолчанию было "90.583333".
date.timezone | "UTC" | PHP_INI_ALL | Начиная с PHP 8.2, при установке недопустимого значения или пустой строки выдаётся предупреждение.
dba.default_handler | DBA_DEFAULT | PHP_INI_ALL |
default_charset | "UTF-8" | PHP_INI_ALL | По умолчанию "UTF-8".
input_encoding | "" | PHP_INI_ALL |
output_encoding | "" | PHP_INI_ALL |
internal_encoding | "" | PHP_INI_ALL |
default_mimetype | "text/html" | PHP_INI_ALL |
default_socket_timeout | "60" | PHP_INI_ALL |
disable_classes | "" | Только php.ini |
disable_functions | "" | Только php.ini |
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "1" | PHP_INI_ALL | До PHP 8.0.0 значение по умолчанию было "0".
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 |
engine | "1" | PHP_INI_ALL |
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
error_log_mode | 0o644 | PHP_INI_ALL | Доступно, начиная с PHP 8.2.0
error_prepend_string | NULL | PHP_INI_ALL |
error_reporting | NULL | PHP_INI_ALL |
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 |
exit_on_timeout | "" | PHP_INI_ALL |
expect.timeout | "10" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.logfile | "" | PHP_INI_ALL |
expect.match_max | "" | 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 |
fastcgi.logging | "1" | PHP_INI_SYSTEM |
file_uploads | "1" | PHP_INI_SYSTEM |
filter.default | "unsafe_raw" | PHP_INI_PERDIR | Параметр устарел, начиная с PHP 8.1.0.
filter.default_flags | NULL | PHP_INI_PERDIR |
from | "" | PHP_INI_ALL |
gd.jpeg_ignore_warning | "1" | PHP_INI_ALL |
geoip.custom_directory | "" | PHP_INI_ALL |
hard_timeout | "2" | PHP_INI_SYSTEM | Доступно, начиная с PHP 7.1.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 |
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 |
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 | "" | 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.
ignore_repeated_errors | "0" | PHP_INI_ALL |
ignore_repeated_source | "0" | PHP_INI_ALL |
ignore_user_abort | "0" | PHP_INI_ALL |
implicit_flush | "0" | PHP_INI_ALL |
include_path | ".:/path/to/php/pear" | PHP_INI_ALL |
intl.default_locale |  | PHP_INI_ALL |
intl.error_level | 0 | PHP_INI_ALL |
intl.use_exceptions | 0 | PHP_INI_ALL | Доступно с PECL 3.0.0a1
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 |
mail.add_x_header | "0" | PHP_INI_PERDIR |
mail.force_extra_parameters | NULL | Только php.ini |
mail.log | "" | PHP_INI_PERDIR |
max_execution_time | "30" | PHP_INI_ALL |
max_input_nesting_level | "64" | PHP_INI_PERDIR |
max_input_vars | 1000 | PHP_INI_PERDIR |
max_input_time | "-1" | PHP_INI_PERDIR |
mbstring.language | "neutral" | PHP_INI_ALL |
mbstring.detect_order | NULL | PHP_INI_ALL |
mbstring.http_input | "pass" | PHP_INI_ALL | Устарела
mbstring.http_output | "pass" | PHP_INI_ALL | Устарела
mbstring.internal_encoding | NULL | PHP_INI_ALL | Устарела
mbstring.substitute_character | NULL | PHP_INI_ALL |
mbstring.func_overload | "0" | PHP_INI_SYSTEM | Объявлено устаревшим в PHP 7.2.0; удалено с PHP 8.0.0.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | PHP_INI_ALL |
mbstring.strict_detection | "0" | PHP_INI_ALL |
mbstring.regex_retry_limit | "1000000" | PHP_INI_ALL | Доступно, начиная с PHP 7.4.0.
mbstring.regex_stack_limit | "100000" | PHP_INI_ALL | Доступно, начиная с PHP 7.3.5.
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.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.
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
memory_limit | "128M" | 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 7.2.16 и 7.3.3 значением по умолчанию было "1".
mysqli.local_infile_directory |  | PHP_INI_SYSTEM | Доступно, начиная с PHP 8.1.0.
mysqli.allow_persistent | "1" | PHP_INI_SYSTEM |
mysqli.max_persistent | "-1" | PHP_INI_SYSTEM |
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 | Удалено, начиная с PHP 8.2.0
mysqli.rollback_on_cached_plink | "0" | PHP_INI_SYSTEM |
mysqlnd.collect_statistics | "1" | PHP_INI_SYSTEM |
mysqlnd.collect_memory_statistics | "0" | PHP_INI_SYSTEM |
mysqlnd.debug | "" | PHP_INI_SYSTEM |
mysqlnd.log_mask | 0 | PHP_INI_ALL |
mysqlnd.mempool_default_size | 16000 | PHP_INI_ALL |
mysqlnd.net_read_timeout | ""86400"" | PHP_INI_ALL | До PHP 7.2.0 значением по умолчанию "31536000", а местом изменения было PHP_INI_SYSTEM
mysqlnd.net_cmd_buffer_size | 5.3.0 - "2048", 5.3.1 - "4096" | PHP_INI_SYSTEM |
mysqlnd.net_read_buffer_size | "32768" | PHP_INI_SYSTEM |
mysqlnd.sha256_server_public_key | "" | PHP_INI_PERDIR |
mysqlnd.trace_alloc | "" | PHP_INI_SYSTEM |
mysqlnd.fetch_data_copy | 0 | PHP_INI_ALL | Удалено, начиная с PHP 8.1.0
oci8.connection_class | "" | PHP_INI_ALL |
oci8.default_prefetch | "100" | PHP_INI_SYSTEM |
oci8.events | Off | PHP_INI_SYSTEM |
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Объявлена устаревшей, начиная с PHP 8.1.0.
oci8.old_oci_close_semantics | Off | PHP_INI_SYSTEM |
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM |
oci8.ping_interval | "60" | PHP_INI_SYSTEM |
oci8.prefetch_lob_size | "0" | PHP_INI_SYSTEM | Доступна начиная с версии PECL OCI8 3.2.
oci8.privileged_connect | Off | PHP_INI_SYSTEM |
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM |
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 |
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 |
opcache.interned_strings_buffer | "8" | PHP_INI_SYSTEM |
opcache.max_accelerated_files | "10000" | PHP_INI_SYSTEM |
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.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
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 | Недоступно с PHP 8.1.18 и 8.2.5. Удалено в PHP 8.3.0.
opcache.force_restart_timeout | "180" | PHP_INI_SYSTEM |
opcache.error_log | "" | PHP_INI_SYSTEM |
opcache.log_verbosity_level | "1" | PHP_INI_SYSTEM |
opcache.record_warnings | "0" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0.
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 | Доступно с PHP 7.1.0
opcache.file_cache | NULL | PHP_INI_SYSTEM |
opcache.file_cache_only | "0" | PHP_INI_SYSTEM |
opcache.file_cache_consistency_checks | "1" | PHP_INI_SYSTEM |
opcache.file_cache_fallback | "1" | PHP_INI_SYSTEM |
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 | "" | PHP_INI_SYSTEM | Только в Windows. Доступно с PHP 7.4.0
opcache.jit | "tracing" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_buffer_size | "0" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_debug | "0" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_bisect_limit | "0" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_prof_threshold | "0.005" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_max_root_traces | "1024" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_max_side_traces | "128" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_max_exit_counters | "8192" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_hot_loop | "64" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_hot_func | "127" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_hot_return | "8" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_hot_side_exit | "8" | PHP_INI_SYSTEM | Доступно с PHP 8.0.0
opcache.jit_blacklist_root_trace | "16" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_blacklist_side_trace | "8" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_max_loop_unrolls | "8" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_max_recursive_calls | "2" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_max_recursive_returns | "2" | PHP_INI_ALL | Доступно с PHP 8.0.0
opcache.jit_max_polymorphic_calls | "2" | PHP_INI_ALL | Доступно с PHP 8.0.0
open_basedir | NULL | PHP_INI_ALL |
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR |
pcre.backtrack_limit | "1000000" | PHP_INI_ALL |
pcre.recursion_limit | "100000" | PHP_INI_ALL |
pcre.jit | "1" | PHP_INI_ALL |
pdo.dsn.* |  | только php.ini |
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL |
pdo_odbc.db2_instance_name | NULL | PHP_INI_SYSTEM | Эта возможность устарела и будет обязательно удалена в будущем.
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 |
pgsql.ignore_notice | "0" | PHP_INI_ALL |
pgsql.log_notice | "0" | PHP_INI_ALL |
phar.readonly | "1" | PHP_INI_ALL |
phar.require_hash | "1" | PHP_INI_ALL |
phar.cache_list | "" | PHP_INI_SYSTEM |
post_max_size | "8M" | PHP_INI_PERDIR |
precision | "14" | PHP_INI_ALL |
realpath_cache_size | "16K" | PHP_INI_SYSTEM |
realpath_cache_ttl | "120" | PHP_INI_SYSTEM |
register_argc_argv | "1" | PHP_INI_PERDIR |
report_memleaks | "1" | PHP_INI_ALL |
report_zend_debug | "1" | PHP_INI_ALL |
request_order | "" | PHP_INI_PERDIR |
runkit.superglobal | "" | PHP_INI_PERDIR |
runkit.internal_override | "0" | PHP_INI_SYSTEM |
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | PHP_INI_SYSTEM |
serialize_precision | "-1" | PHP_INI_ALL | До PHP 7.1.0, значение по умолчанию 17.
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 | "0" | PHP_INI_ALL | До PHP 7.2.0 значение по умолчанию было "".
session.cookie_httponly | "0" | PHP_INI_ALL | До PHP 7.2.0 значение по умолчанию было "".
session.cookie_samesite | "" | PHP_INI_ALL | Доступна с PHP 7.3.0.
session.use_strict_mode | "0" | PHP_INI_ALL |
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 |
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR |
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR |
session.upload_progress.freq | "1%" | PHP_INI_PERDIR |
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR |
session.lazy_write | "1" | PHP_INI_ALL |
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
short_open_tag | "1" | PHP_INI_PERDIR |
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL |
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 |
sql.safe_mode | "0" | PHP_INI_SYSTEM |
sqlite3.extension_dir | "" | PHP_INI_SYSTEM |
sqlite3.defensive | 1 | PHP_INI_USER | Доступно, начиная с PHP 7.2.17 и 7.3.4 для libsqlite ? 3.26.0. До PHP 8.2.0 этот параметр можно было изменить только как PHP_INI_SYSTEM.
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 |
sysvshm.init_mem | 10000 | PHP_INI_SYSTEM |
tidy.default_config | "" | PHP_INI_SYSTEM |
tidy.clean_output | "0" | PHP_INI_USER |
track_errors | "0" | PHP_INI_ALL | Объявлено устаревшим в PHP 7.2.0, удалено в PHP 8.0.0.
unserialize_callback_func | null | PHP_INI_ALL |
unserialize_max_depth | "4096" | PHP_INI_ALL | Доступно, начиная с PHP 7.4.0.
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 |
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 |
user_ini.filename | ".user.ini" | PHP_INI_SYSTEM |
uopz.disable | "0" | PHP_INI_SYSTEM | Доступно начиная с uopz 5.0.2
uopz.exit | "0" | PHP_INI_SYSTEM | Доступно начиная с uopz 6.0.1
uopz.overloads | "1" | PHP_INI_SYSTEM | Доступно начиная с uopz 2.0.2. Удалено начиная с uopz 5.0.0.
variables_order | "EGPCS" | PHP_INI_PERDIR |
windows.show_crt_warning | "0" | PHP_INI_ALL |
xbithack | "0" | PHP_INI_ALL |
xmlrpc_errors | "0" | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | PHP_INI_ALL |
yaz.keepalive | "120" | PHP_INI_ALL |
yaz.log_mask | NULL | PHP_INI_ALL | Доступно, начиная с yaz 1.0.3.
zend.assertions | "1" | PHP_INI_ALL |
zend.detect_unicode | "1" | PHP_INI_ALL |
zend.enable_gc | "1" | PHP_INI_ALL |
zend.multibyte | "0" | PHP_INI_PERDIR |
zend.script_encoding | NULL | PHP_INI_ALL |
zend.signal_check | "0" | PHP_INI_SYSTEM |
zend_extension | NULL | Только php.ini |
zlib.output_compression | "0" | PHP_INI_ALL |
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 |
[PATH=] | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

[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 |
precision | "14" | PHP_INI_ALL |
serialize_precision | "-1" | PHP_INI_ALL | До версии PHP 7.1.0 значение по умолчанию было равно 17.
disable_functions | "" | Только PHP_INI_SYSTEM |
disable_classes | "" | Только php.ini |
exit_on_timeout | "" | PHP_INI_ALL |
expose_php | "1" | Только php.ini |
hard_timeout | "2" | PHP_INI_SYSTEM | Доступна с версии PHP 7.1.0.
zend.exception_ignore_args | "0" | PHP_INI_ALL | Доступна с версии PHP 7.4.0
zend.multibyte | "0" | PHP_INI_ALL |
zend.script_encoding | NULL | PHP_INI_ALL |
zend.detect_unicode | NULL | PHP_INI_ALL |
zend.signal_check | "0" | PHP_INI_SYSTEM |
zend.assertions | "1" | PHP_INI_ALL с ограничениями |
zend.exception_string_param_max_len | "15" | PHP_INI_ALL | Доступно, начиная с PHP 8.0.0.

Краткое разъяснение конфигурационных директив.

short_open_tag bool

Определяет, разрешается ли короткая форма записи (<? ?>) тегов PHP. Если вы хотите использовать PHP совместно с XML, вы можете отключить эту опцию, чтобы беспрепятственно использовать <?xml ?>. В противном случае, вы можете отобразить это при помощи PHP, например: <?php echo '<?xml version="1.0"?>'; ?>. Если же эта опция отключена, вы должны использовать длинную форму открывающего тега PHP (<?php ?>).

Замечание:

Эта директива не влияет на сокращение <?=, которое всегда доступно.

precision int
Количество значащих цифр, отображаемых для чисел с плавающей точкой. -1 означает, что будет использован усовершенствованный алгоритм для округления таких чисел.
serialize_precision int
Количество сохраняемых значащих цифр при сериализации чисел с плавающей точкой. -1 означает, что будет использован усовершенствованный алгоритм для округления таких чисел.
expose_php bool

Выдаёт факт присутствия PHP на сервере, включая передачу версии PHP в HTTP-заголовке (например, X-Powered-By: PHP/5.3.7).

disable_functions string

Эта директива позволяет отключить некоторые функции. Она принимает список имён функций, разделённый запятыми.

Только внутренние функции могут быть отключены с помощью этой директивы. Пользовательские функции ей не подвержены.

Эта директива должна быть установлена в php.ini. Например, её нельзя использовать в httpd.conf.

disable_classes string
Эта директива позволяет отключить некоторые классы. Она принимает список имён классов, разделённых запятыми. Эта директива должна быть установлена в php.ini. Например, её нельзя использовать в httpd.conf.
zend.assertions int
Если задано значение 1, проверочный код будет исполняться (режим разработки). Если задан 0, код проверок будет сгенерирован, однако исполняться не будет. Если задано -1, проверочный код не будет генерироваться (продуктивный режим).

Замечание:

Если процесс запущен в режиме релиза, zend.assertions не может быть изменён во время выполнения, так как код утверждений не генерируется.

Если процесс запущен в режиме разработки, zend.assertions не может быть выставлен в -1 во время выполнения..

zend.exception_string_param_max_len int
Максимальная длина аргументов строковой функции в строковых трассировках стека. Значение должно быть в диапазоне от "0" до "1000000".
hard_timeout int

Когда истечёт время ожидания, установленное в max_execution_time, среда выполнения PHP аккуратно отключит ресурсы. Если во время этого что-то застрянет, время ожидания будет установлено на указанное количество секунд. Когда истечёт жёсткое время ожидания, PHP завершит работу с ошибкой. Если установлено значение 0, жёсткое время ожидания никогда не активируется.

Когда PHP останавливается после жёсткого времени ожидания, это будет выглядеть примерно так:

        Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in Unknown on line 0

zend.exception_ignore_args bool

Исключает аргументы из трассировки стека, сгенерированных из исключений.

zend.multibyte bool

Разрешает парсинг исходных файлов в многобайтных кодировках. Включение 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_encoding в mbstring.internal_encoding, как если бы вызвали mb_convert_encoding().

zend.detect_unicode bool

Определяет, нужно ли проверять BOM (Byte Order Mark, метка порядка байт) и корректность многобайтных символов в файле. Эта проверка производится до вызова __halt_compiler(). Доступна только в режиме Zend Multibyte.

zend.signal_check bool

Определяет, нужно ли проверять заменённые обработчики сигналов при завершении скрипта.

exit_on_timeout bool

Эта директива только для Apache1 mod_php, которая заставляет потомка Apache завершиться, если превышено время ожидания исполнения скрипта PHP. Превышение времени ожидания приводит к внутреннему вызову longjmp() в Apache1, который оставляет некоторые модули в несогласованном состоянии. По завершении процесса все неснятые блокировки или память будут очищены.

Ограничения ресурсов

Ограничения ресурсов
Имя | По умолчанию | Место изменения | Список изменений
memory_limit | "128M" | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

memory_limit int

Эта директива задаёт максимальный объем памяти в байтах, который разрешается использовать скрипту. Это помогает предотвратить ситуацию, при которой плохо написанный скрипт съедает всю доступную память сервера. Для того, чтобы убрать ограничения, установите значение этой директивы в -1.

Если используется int, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.

Смотрите также: max_execution_time.

Настройка производительности

Настройка производительности
Имя | По умолчанию | Место изменения | Список изменений
realpath_cache_size | "4M" | PHP_INI_SYSTEM | До PHP 7.0.16 и 7.1.2, по умолчанию было "16K"
realpath_cache_ttl | "120" | PHP_INI_SYSTEM |

Замечание:

Использование open_basedir отключит кеш realpath.

Краткое разъяснение конфигурационных директив.

realpath_cache_size int

Определяет размера кеша realpath, используемого в PHP. Это значение должно быть увеличено на системах, в которых PHP открывает большое количество файлов соответственно количеству выполняемых файловых операций.

Размер равный общему числу байт, хранящимся в строках путей, плюс размер данных связанных с кешируемым элементом. Это значит, что для хранения длинных путей в кеше, размер этого кеша должен быть больше. Это значение не определяет напрямую количество разных путей, которые могут быть закешированы.

Размер, необходимый для кеширования, зависит от системы.

realpath_cache_ttl int

Время (в секундах) в течение которого будет использован кеш realpath для указанного файла или директории. Для систем с редко меняющимися файлами это значение можно увеличить.

Обработка данных

Конфигурационные опции обработки данных
Имя | По умолчанию | Место изменения | Список изменений
arg_separator.output | "&" | PHP_INI_ALL |
arg_separator.input | "&" | PHP_INI_PERDIR |
variables_order | "EGPCS" | PHP_INI_PERDIR |
request_order | "" | PHP_INI_PERDIR |
auto_globals_jit | "1" | PHP_INI_PERDIR |
register_argc_argv | "1" | PHP_INI_PERDIR |
enable_post_data_reading | "1" | PHP_INI_PERDIR |
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 |
input_encoding | "" | PHP_INI_ALL |
output_encoding | "" | PHP_INI_ALL |
internal_encoding | "" | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

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 не будет установлена.

Внимание

В 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 bool

Когда включено, переменные SERVER, REQUEST и ENV создаются в тот момент, когда они впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти переменные в скрипте не используются, включение этой директивы приведёт к росту производительности.

Внимание

Использование переменных SERVER, REQUEST и ENV проверяется на стадии компиляции, поэтому их использование с помощью, например, переменных переменных не запустит их инициализацию.

register_argc_argv bool
Сообщает PHP, следует ли объявлять переменные argv и argc (которые будут содержать GET-информацию). Смотрите также Использование PHP в командной строке.
enable_post_data_reading bool
При отключении этой опции суперглобальные переменные $_POST и $_FILES не будут заполняться. Единственным способом прочесть POST-данные будет чтение обёртки потока php://input. Это может оказаться полезным при проксировании запросов или обработки POST-данных способом, более эффективно использующим память.
post_max_size int
Устанавливает максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше значения директивы upload_max_filesize. В сущности, memory_limit должна быть больше чем post_max_size. Если используется int, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе 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

"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

Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто.

output_encoding string

Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто.

internal_encoding string

Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто. В это случае используется default_charset.

Пути и Директории

Конфигурационные Опции Путей и Директорий
Имя | По умолчанию | Место изменения | Список изменений
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
open_basedir | NULL | PHP_INI_ALL |
doc_root | NULL | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
user_ini.cache_ttl | "300" | PHP_INI_SYSTEM |
user_ini.filename | ".user.ini" | PHP_INI_SYSTEM |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
extension | NULL | Только php.ini |
zend_extension | NULL | Только php.ini |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM |
cgi.discard_path | "0" | PHP_INI_SYSTEM |
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM |
cgi.force_redirect | "1" | PHP_INI_SYSTEM |
cgi.nph | "0" | PHP_INI_SYSTEM |
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM |
cgi.rfc2616_headers | "0" | PHP_INI_ALL |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM |
fastcgi.logging | "1" | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

include_path string

Указывает список директорий, в которых функции require, include, fopen(), file(), readfile() и file_get_contents() ищут файлы. Формат соответствует формату системной переменной окружения PATH: список директорий, разделённых двоеточием в Unix или точкой с запятой в Windows.

При поиске подключаемых файлов PHP отдельно рассматривает каждое значение в include_path. Он проверяет первый путь, если файл в нем не найден, то он переходит к следующему, и так до тех пор, пока не найдёт подключаемый файл, либо вернёт E_WARNING или E_ERROR. Вы можете изменить ваш 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 является именем директории, а не префиксом.

По умолчанию все файлы могут быть открыты.

Замечание:

Значение open_basedir можно сделать более строгим во время выполнения скрипта. Это означает, что если open_basedir была установлена в /www/ в php.ini, то скрипт может ужать конфигурацию до /www/tmp/ во время выполнения с помощью ini_set(). При указании нескольких директорий можно использовать константу PATH_SEPARATOR в качестве разделителя путей, не зависящего от операционной системы.

Замечание:

Использование опции open_basedir установит realpath_cache_size на значение 0 и таким образом отключит кеш realpath.

Предостережение

open_basedir - это просто дополнительная подстраховка, которая никоим образом не является всеобъемлющей и поэтому на неё нельзя полагаться, когда речь идёт о безопасности.

doc_root string

"Корневая директория" PHP на этом сервере. Используется только в случае, если не пустая. Если PHP не был скомпилирован с FORCE_REDIRECT, вам следует установить doc_root, если вы используете PHP в качестве CGI под любым веб-сервером (кроме IIS). Альтернативой является использование конфигурационной директивы cgi.force_redirect, речь о которой идёт ниже.

user_ini.cache_ttl int

user_ini.filename string

user_dir string

Базовое имя директории, используемой в домашнем каталоге пользователя для PHP файлов, например, public_html.

extension_dir string

В какой директории PHP должен искать динамически загружаемые модули. Рекомендуется указывать абсолютный путь. Смотрите также: enable_dl и dl().

extension string

Какие динамически загружаемые модули должны быть загружены при старте PHP.

zend_extension string

Имя динамически загружаемого модуля Zend (например, XDebug), который должен быть загружен при старте PHP.

cgi.check_shebang_line bool

Контролирует, нужно ли проверять первую строку CGI PHP-скрипта на содержание #! (shebang). Эта строка может быть необходима, если скрипт должен поддерживать как отдельный запуск, так и с помощью PHP CGI. PHP в режиме CGI пропускает эту строку и игнорирует её содержимое, если данная директива включена.

cgi.discard_path bool

Если разрешено, бинарный файл PHP CGI может безопасно располагаться вне веб-дерева и люди не смогут обойти безопасность .htaccess.

cgi.fix_pathinfo bool

Обеспечивает поддержку правильных 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 bool

Директива cgi.force_redirect необходима для обеспечения безопасности во время работы PHP в качестве CGI под большинством веб-серверов. Если оставить её неопределённой, по умолчанию PHP включает эту директиву. Вы можете выключить её на свой страх и риск.

Замечание:

Пользователям Windows: При использовании IIS эта опция должна быть отключена. Тоже самое необходимо для OmniHTTPD и Xitami.

cgi.nph bool

Если 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 bool

Включает логирование SAPI при использовании FastCGI. Логирование включено по умолчанию.

Закачивание Файлов

Конфигурационные Опции Закачивания Файлов
Имя | По умолчанию | Место изменения | Список изменений
file_uploads | "1" | PHP_INI_SYSTEM |
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
max_input_nesting_level | 64 | PHP_INI_PERDIR |
max_input_vars | 1000 | PHP_INI_PERDIR |
upload_max_filesize | "2M" | PHP_INI_PERDIR |
max_file_uploads | 20 | PHP_INI_PERDIR |

Краткое разъяснение конфигурационных директив.

file_uploads bool

Разрешать или не разрешать закачивание файлов. Смотрите также директивы upload_max_filesize, upload_tmp_dir и post_max_size.

upload_tmp_dir string

Временная директория, используемая для хранения файлов во время закачивания. Должна быть доступна для записи пользователю, от имени которого запущен PHP. Если не указана, используется директория по умолчанию для вашей системы.

Если к указанной директории нет прав на запись, PHP откатится обратно к системной временной директории, используемой по умолчанию. Если включена директива open_basedir, то для успешной загрузки файлов системная директория по умолчанию должна быть разрешена.

upload_max_filesize int

Максимальный размер закачиваемого файла.

post_max_size должен быть больше, чем это значение.

Если используется int, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.
max_file_uploads int

Максимально разрешённое количество одновременно закачиваемых файлов. Пустые поля загрузки не рассматриваются этим ограничением.

Общий SQL

Конфигурационные Опции Общего SQL
Имя | По умолчанию | Место изменения | Список изменений
sql.safe_mode | "0" | PHP_INI_SYSTEM | Удалён в PHP 7.2.0

Краткое разъяснение конфигурационных директив.

sql.safe_mode bool

Если включена, функции соединения с базой данных, использующие значения по умолчанию, будут использовать эти значения вместо любых передаваемых аргументов. Для значений по умолчанию смотрите документацию по функциям подключения соответствующей базы данных.

Внимание

Эта опция УДАЛЕНА в PHP 7.2.0.

Особые настройки для ОС Windows

Особые опции конфигурации для ОС Windows
Имя | По умолчанию | Место изменения | Список изменений
windows.show_crt_warning | "0" | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

windows.show_crt_warning bool

При включении данной директивы будут отображаться предупреждения Windows CRT.


Список/классификация модулей

Содержание

  • В алфавитном порядке
  • По составу
  • По состоянию

Это приложение классифицирует по различным критериям более 150 модулей, документированных в руководстве по PHP.


В алфавитном порядке

  • Apache
  • APCu
  • Массивы
  • BC Math
  • Bzip2
  • Календарь
  • Классы и объекты
  • CommonMark
  • COM
  • Componere
  • Ctype
  • CUBRID
  • cURL
  • Дата/время
  • DBA
  • dBase
  • Прямой ввод/вывод (Direct IO)
  • Каталоги
  • DOM
  • Структуры данных
  • Eio
  • Enchant
  • Обработка ошибок
  • Ev
  • Event
  • Запуск программы
  • Exif
  • Expect
  • FANN
  • FDF
  • FFI
  • FileInfo
  • Файловая система
  • Filter
  • Менеджер процессов FastCGI
  • FTP
  • Управление функциями
  • Gearman
  • Gender
  • GeoIP
  • Gettext
  • Gmagick
  • GMP
  • GnuPG
  • Hash
  • HRTime
  • Firebird/InterBase
  • IBM DB2
  • iconv
  • Igbinary
  • GD
  • ImageMagick
  • IMAP
  • Опции/информация PHP
  • Inotify
  • intl
  • JSON
  • LDAP
  • libxml
  • Lua
  • LuaSandbox
  • LZF
  • Mail
  • Mailparse
  • Math
  • Многобайтовые строки
  • Mcrypt
  • Memcache
  • Memcached
  • Mhash
  • Misc.
  • mqseries
  • MySQL (Original)
  • Mysql_xdevapi
  • MySQLi
  • Mysqlnd
  • Сеть
  • OAuth
  • OCI8
  • OPcache
  • OpenAL
  • OpenSSL
  • Контроль вывода
  • parallel
  • Parle
  • Хеширование паролей
  • PCNTL
  • PCRE
  • 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
  • phpdbg
  • POSIX
  • PS
  • Pspell
  • pthreads
  • Quickhash
  • Radius
  • Random
  • Rar
  • Readline
  • Recode
  • Reflection
  • Rnp
  • RpmInfo
  • RRD
  • runkit7
  • ScoutAPM
  • Seaslog
  • Семафоры
  • Сессии
  • Управление разделяемой памятью
  • Simdjson
  • SimpleXML
  • SNMP
  • SOAP
  • Сокеты
  • Sodium
  • Solr
  • SPL
  • SQLite3
  • SQLSRV
  • ssdeep
  • SSH2
  • Статистика
  • Stomp
  • Потоки
  • Строки
  • SVM
  • SVN
  • Swoole
  • Sync
  • Taint
  • TCP
  • Tidy
  • Лексер (Tokenizer)
  • Trader
  • UI
  • ODBC
  • uopz
  • URL
  • V8js
  • Обработка переменных
  • var_representation
  • Varnish
  • WDDX
  • win32service
  • WinCache
  • wkhtmltox
  • xattr
  • xdiff
  • Xhprof
  • XLSWriter
  • Разбор XML
  • XMLDiff
  • XMLReader
  • XML-RPC
  • XMLWriter
  • XSL
  • Yac
  • Yaconf
  • Yaf
  • Yaml
  • Yar
  • YAZ
  • Zip
  • Zlib
  • Обмен сообщениями 0MQ
  • ZooKeeper


По составу

Модули, входящие в состав ядра

На самом деле это ненастоящие модули. Они являются частью ядра PHP и не могут быть исключены из бинарного дистрибутива PHP с помощью опций компиляции.

  • Массивы

  • Классы и объекты

  • Дата/время

  • Каталоги

  • Обработка ошибок

  • Запуск программы

  • Файловая система

  • Менеджер процессов FastCGI

  • Управление функциями

  • Hash

  • Опции/информация PHP

  • JSON

  • Mail

  • Math

  • Misc.

  • Сеть

  • OPcache

  • Контроль вывода

  • Хеширование паролей

  • PCRE

  • Random

  • Reflection

  • SPL

  • Потоки

  • Строки

  • URL

  • Обработка переменных

Поставляемые модули

Эти модули поставляются вместе с PHP.

  • Apache

  • BC Math

  • Календарь

  • COM

  • Ctype

  • DBA

  • Exif

  • FFI

  • FileInfo

  • Filter

  • FTP

  • HRTime

  • iconv

  • GD

  • intl

  • Многобайтовые строки

  • Mhash

  • PCNTL

  • PDO

  • Phar

  • phpdbg

  • POSIX

  • Семафоры

  • Сессии

  • Управление разделяемой памятью

  • Сокеты

  • SQLite3

  • Лексер (Tokenizer)

  • Zlib

Внешние модули

Данные модули поставляются вместе с PHP, но для их компиляции могут потребоваться внешние библиотеки.

  • Bzip2

  • cURL

  • DOM

  • Enchant

  • Gettext

  • GMP

  • IMAP

  • LDAP

  • libxml

  • 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

  • SimpleXML

  • SNMP

  • SOAP

  • Sodium

  • Tidy

  • ODBC

  • Разбор XML

  • XMLReader

  • XMLWriter

  • XSL

  • Zip

PECL модули

Эти модули доступны по адресу » PECL. Для их работы могут потребоваться внешние библиотеки. Существуют и другие модули PECL, но они пока не документированы в руководстве по PHP.

  • APCu

  • CommonMark

  • Componere

  • CUBRID

  • dBase

  • Прямой ввод/вывод (Direct IO)

  • Структуры данных

  • Eio

  • Ev

  • Event

  • Expect

  • FANN

  • FDF

  • Gearman

  • Gender

  • GeoIP

  • Gmagick

  • GnuPG

  • Firebird/InterBase

  • IBM DB2

  • Igbinary

  • ImageMagick

  • Inotify

  • Lua

  • LuaSandbox

  • LZF

  • Mailparse

  • Mcrypt

  • Memcache

  • Memcached

  • mqseries

  • MySQL (Original)

  • Mysql_xdevapi

  • OAuth

  • OpenAL

  • parallel

  • Parle

  • CUBRID (PDO)

  • IBM (PDO)

  • Informix (PDO)

  • MS SQL Server (PDO)

  • PS

  • pthreads

  • Quickhash

  • Radius

  • Rar

  • Recode

  • Rnp

  • RpmInfo

  • RRD

  • runkit7

  • ScoutAPM

  • Seaslog

  • Simdjson

  • Solr

  • SQLSRV

  • ssdeep

  • SSH2

  • Статистика

  • Stomp

  • SVM

  • SVN

  • Swoole

  • Sync

  • Taint

  • TCP

  • Trader

  • UI

  • uopz

  • V8js

  • var_representation

  • Varnish

  • WDDX

  • win32service

  • WinCache

  • wkhtmltox

  • xattr

  • xdiff

  • Xhprof

  • XLSWriter

  • XMLDiff

  • XML-RPC

  • Yac

  • Yaconf

  • Yaf

  • Yaml

  • Yar

  • YAZ

  • Обмен сообщениями 0MQ

  • ZooKeeper


По состоянию

Здесь приводится список модулей, не рекомендованных для промышленного использования - они либо слишком "старые" (устарели), либо слишком "новые" (экспериментальные).

Устаревшие модули

Эти модули устарели и в основном заменены другими.

Экспериментальные модули

Поведение этих модулей - включая названия функций и вся остальная документация, относящаяся к ним - может измениться без уведомления в будущем релизе PHP. Используйте эти модули на свой страх и риск.

  • ImageMagick

  • MS SQL Server (PDO_DBLIB)

  • Firebird (PDO)

  • Oracle (PDO)

  • PS

  • Rnp

  • XML-RPC


Список псевдонимов функций

В PHP довольно много функций, доступных сразу по нескольким именам. В некоторых случаях нет предпочитаемого варианта, хорошим примером является is_int() и is_integer(). Однако, есть функции, изменившие свои названия вследствие чистки API или по какой-либо другой причине, а старые имена были оставлены в целях обратной совместимости. Обычно не рекомендуется использовать эти псевдонимы, так как причиной их существования может быть устаревание или смена имени основной функции, что может привести к проблемам портирования скрипта. Данный список предоставляется для помощи при обновлении старых скриптов к новому синтаксису.

Псевдонимы
Псевдоним | Основная функция | Модуль
_ | gettext() | Gettext
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() | Базовый синтаксис
fputs | fwrite() | Базовый синтаксис
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() | Базовый синтаксис
ldap_close | ldap_unbind() | LDAP
mbstrcut | mb_strcut() | Многобайтовые строки
mbstrlen | mb_strlen() | Многобайтовые строки
mbstrpos | mb_strpos() | Многобайтовые строки
mbstrrpos | mb_strrpos() | Многобайтовые строки
mbsubstr | mb_substr() | Многобайтовые строки
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
ociassignelem | OCICollection::assignElem | OCI8
ocibindbyname | oci_bind_by_name() | OCI8
ocicancel | oci_cancel() | OCI8
ocicloselob | OCILob::close | OCI8
ocicollappend | OCICollection::append | OCI8
ocicollassign | OCICollection::assign | OCI8
ocicollmax | OCICollection::max | OCI8
ocicollsize | OCICollection::size | OCI8
ocicolltrim | OCICollection::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 | OCICollection::free | OCI8
ocifreecursor | oci_free_statement() | OCI8
ocifreedesc | oci_free_descriptor() | OCI8
ocifreestatement | oci_free_statement() | OCI8
ocigetelem | OCICollection::getElem | OCI8
ociinternaldebug | oci_internal_debug() | OCI8
ociloadlob | OCILob::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 | OCILob::save | OCI8
ocisavelobfile | OCILob::import | OCI8
ociserverversion | oci_server_version() | OCI8
ocisetprefetch | oci_set_prefetch() | OCI8
ocistatementtype | oci_statement_type() | OCI8
ociwritelobtofile | OCILob::export | OCI8
ociwritetemporarylob | OCILob::writeTemporary | OCI8
odbc_do | odbc_exec() | ODBC
odbc_field_precision | odbc_field_len() | ODBC
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Базовый синтаксис
recode | recode_string() | Recode
show_source | highlight_file() | Базовый синтаксис
sizeof | count() | Базовый синтаксис
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | Базовый синтаксис
xptr_new_context | xpath_new_context() |


Список зарезервированных слов

Содержание

  • Список ключевых слов
  • Предопределённые классы
  • Предопределённые константы
  • Список прочих зарезервированных слов

Ниже приводятся списки зарезервированных идентификаторов в PHP. Никакой идентификатор из этих списков не должен быть использован в качестве идентификатора в любом из ваших скриптов, если явно не указано обратное. Эти списки включают ключевые слова и предопределённые переменные, константы и имена классов. Эти списки не являются ни исчерпывающими, ни полными.


Список ключевых слов

У этих слов есть специальное значение в PHP. Некоторые из них представляют собой вещи, которые выглядят как функции, некоторые похожи на константы и так далее, но они ими не являются в действительности. Они - конструкции языка. Следующие слова нельзя использовать в качестве констант, имён классов или имён функций. Однако они разрешены в качестве имён свойств, констант и методов классов, интерфейсов и трейтов, за исключением того, что class не может использоваться как имя константы.

Зарезервированные слова в PHP
__halt_compiler() | abstract | and | array() | as
break | callable | 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 | fn (начиная с PHP 7.4) | for | foreach
function | global | goto | if | implements
include | include_once | instanceof | insteadof | interface
isset() | list() | match (начиная с PHP 8.0) | namespace | new
or | print | private | protected | public
readonly (начиная с PHP 8.1.0) * | require | require_once | return | static
switch | throw | trait | try | unset()
use | var | while | xor | yield
yield from |  |  |  |

* Ключевое слово readonly можно использовать как имя функции.

Константы этапа компиляции


Предопределённые классы

В этом разделе перечисляются стандартные предопределённые классы. Разнообразные модули определяют другие классы, которые описаны в соответствующей справочной информации.

Стандартные определённые классы

Эти классы определены вместе со стандартным набором функций, идущим со сборкой PHP.

Directory
Создаётся функцией dir().
stdClass
Пустой класс общего назначения, созданный в результате преобразования в объект или различных стандартных функций.
__PHP_Incomplete_Class
Возможно, создаётся функцией unserialize().
Exception
ErrorException
php_user_filter
Closure
Предопределённый окончательный класс Closure, используется для внутренней реализации анонимных функций.
Generator
Предопределённый окончательный класс Generator, используется для представления генераторов.
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 (int)
Текущая "основная" (major) версия PHP в виде целого числа (например, int(5) для версии "5.2.7-extra").
PHP_MINOR_VERSION (int)
Текущая "промежуточная" (minor) версия PHP в виде целого числа (например, int(2) для версии "5.2.7-extra").
PHP_RELEASE_VERSION (int)
Текущая "релиз"-версия (release) PHP в виде целого числа (например, int(7) для версии "5.2.7-extra").
PHP_VERSION_ID (int)
Текущая версия PHP в виде целого числа, её удобно использовать при сравнениях версий (например, int(50207) для версии "5.2.7-extra").
PHP_EXTRA_VERSION (string)
Текущая "экстра"-версия PHP в виде строки (например, '-extra' для версии "5.2.7-extra"). Обычно используется в различных дистрибутивах для индикации версий пакетов.
PHP_ZTS (int)
PHP_DEBUG (int)
PHP_MAXPATHLEN (int)
Максимальная длина файловых имён (включая путь), поддерживаемая данной сборкой PHP.
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_INT_MAX (int)
Максимальное целое число, поддерживаемое данной сборкой PHP. Обычно это int(2147483647) в 32-битных системах и int(9223372036854775807) в 64-битных. Обычно, PHP_INT_MIN === ~PHP_INT_MAX.
PHP_INT_MIN (int)
Минимальное целое число, поддерживаемое данной сборкой PHP. Обычно это int(-2147483648) в 32-битных системах и int(-9223372036854775808) в 64-битных.
PHP_INT_SIZE (int)
Размер целого числа в байтах в текущей сборке PHP.
PHP_FLOAT_DIG (int)
Количество десятичных цифр, которые могут быть округлены в 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)
Каталог по умолчанию, в котором следует искать динамически загружаемые модули (если он не переопределён в extension_dir). По умолчанию используется PHP_PREFIX (или PHP_PREFIX . "\\ext" в Windows).
PHP_PREFIX (string)
Значение --prefix было установлено при настройке. В Windows это значение --with-prefix было установлено при настройке.
PHP_BINDIR (string)
Значение --bindir было установлено при настройке. В Windows это значение --with-prefix было установлено при настройке.
PHP_BINARY (string)
Указывает путь к исполняемым файлам PHP во время выполнения скрипта.
PHP_MANDIR (string)
Указывает путь установки страниц документации man.
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 (int)
Максимальное количество файловых дескрипторов для системных вызовов. Доступно с PHP 7.1.0.
E_ERROR (int)
Константа, указывающая уровень сообщений об ошибках
E_WARNING (int)
Константа сообщения об ошибке
E_PARSE (int)
Константа сообщения об ошибке
E_NOTICE (int)
Константа сообщения об ошибке
E_CORE_ERROR (int)
Константа сообщения об ошибке
E_CORE_WARNING (int)
Константа сообщения об ошибке
E_COMPILE_ERROR (int)
Константа сообщения об ошибке
E_COMPILE_WARNING (int)
Константа сообщения об ошибке
E_USER_ERROR (int)
Константа сообщения об ошибке
E_USER_WARNING (int)
Константа сообщения об ошибке
E_USER_NOTICE (int)
Константа сообщения об ошибке
E_RECOVERABLE_ERROR (int)
Константа сообщения об ошибке
E_DEPRECATED (int)
Константа сообщения об ошибке
E_USER_DEPRECATED (int)
Константа сообщения об ошибке
E_ALL (int)
Константа сообщения об ошибке
E_STRICT (int)
Константа сообщения об ошибке
__COMPILER_HALT_OFFSET__ (int)
true (bool)
Смотрите раздел Булев тип.
false (bool)
Смотрите раздел Булев тип.
null (null)
Смотрите Null.
PHP_WINDOWS_EVENT_CTRL_C (int)
Событие Windows CTRL+C. Доступно с PHP 7.4.0 (Только для Windows).
PHP_WINDOWS_EVENT_CTRL_BREAK (int)
Событие Windows CTRL+BREAK. Доступно с PHP 7.4.0 (Только для Windows).

Смотрите также: Магические константы.

Стандартные предопределённые константы

Все константы модулей, входящих в состав ядра, теперь определены в PHP по умолчанию.


Список прочих зарезервированных слов

Следующие слова нельзя использовать в именах классов, интерфейсов и трейтов. До PHP 8.0 их также запрещено использовать в именовании пространств имён.

Зарезервированные слова
int | float | bool | string
true | false | null | void (с PHP 7.1)
iterable (с PHP 7.1) | object (с PHP 7.2) | mixed (с PHP 8.0) | never (с PHP 8.1)

Следующий список содержит мягко зарезервированные слова. Они всё ещё могут использоваться в качестве имён классов, интерфейсов и трейтов, но использовать их крайне не рекомендуется, поскольку они могут стать полноценно зарезервированными в будущем.

Мягко зарезервированные слова
enum resource numeric


Список типов ресурсов

Здесь представлен список функций, которые могут создавать, использовать или уничтожать ресурсы PHP. Для определения того, является ли переменная ресурсом можно использовать функцию is_resource(), а функция get_resource_type() поможет получить тип данного ресурса.

Типы ресурсов
Название ресурса | Создаётся функцией | Используется функцией | Уничтожается функцией | Определение
AddressInfo | socket_addrinfo_lookup() | socket_addrinfo_bind(), socket_addrinfo_connect(), socket_addrinfo_explain(), | Отсутствует | AddressInfo (модуль сокетов)
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
curl_multi | curl_multi_init() | curl_multi_errno(), curl_multi_exec(), curl_multi_info_read(), curl_multi_remove_handle(), curl_multi_select(), curl_multi_setopt() | curl_multi_close() | cURL multi handle
curl_share | curl_share_init() | curl_share_errno(), curl_share_setopt() | curl_share_close() | cURL share handle
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
enchant_broker | enchant_broker_init() | enchant_broker_describe(), enchant_broker_dict_exists(), enchant_broker_get_dict_path(), enchant_broker_get_error(), enchant_broker_list_dicts(), enchant_broker_set_dict_path(), enchant_broker_set_ordering() | enchant_broker_free() | Провайдер Enchant (до PHP 8.0.0)
enchant_dict | enchant_broker_request_dict() enchant_broker_request_pwl_dict() | 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(), enchant_dict_store_replacement(), enchant_dict_suggest() | enchant_broker_free_dict() | Словарь Enchant (до PHP 8.0.0)
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 (до PHP 8.1.0)
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(), 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 (до PHP 8.0.0)
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | Отсутствует | Шрифт для библиотеки GD (до PHP 8.1.0)
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 (до PHP 8.1.0)
interbase blob | ibase_blob_create(), ibase_blob_import(), ibase_blob_open() | ibase_blob_add(), ibase_blob_cancel(), ibase_blob_echo(), ibase_blob_get(), ibase_blob_info() | ibase_blob_close()
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 (до PHP 8.1.0)
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 (до PHP 8.1.0)
ldap result entry | Результат ldap (до PHP 8.1.0)
mailparse_mail_structure | mailparse_msg_create() mailparse_msg_parse_file() | mailparse_msg_extract_part_file() mailparse_msg_extract_part() mailparse_msg_extract_whole_part_file() mailparse_msg_get_part_data() mailparse_msg_get_part() mailparse_msg_get_structure() mailparse_msg_parse() | mailparse_msg_free()
mysql link | mysql_connect() | mysql_affected_rows(), 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_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() | OCICollection::append(), OCICollection::assign(), OCICollection::assignElem(), OCICollection::getElem(), OCICollection::max(), OCICollection::size(), OCICollection::trim() | OCICollection::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() | OCILob::append(), OCILob::close(), OCILob::eof(), OCILob::erase(), OCILob::export(), OCILob::flush(), OCILob::getBuffering(), OCILob::import(), OCILob::load(), OCILob::read(), OCILob::rewind(), OCILob::save(), OCILob::saveFile(), OCILob::seek(), OCILob::setBuffering(), OCILob::size(), OCILob::tell(), OCILob::truncate(), OCILob::write(), OCILob::writeTemporary(), OCILob::writeToFile(), oci_lob_copy(), oci_lob_is_equal() | OCILob::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 (до PHP 7.3.0)
birdstep result | Результат Birdstep (до PHP 7.3.0)
Ключ 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() | Публичный ключ
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 (до PHP 8.1.0)
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_meta_data(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | Соединение с базой данных PostgreSQL (до PHP 8.1.0)
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_meta_data(), 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 (до PHP 8.1.0)
pgsql string
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 (до PHP 8.1.0)
pspell config | pspell_config_create() | pspell_new_config() | Отсутствует | Конфигурация pspell (до PHP 8.1.0)
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close() | Управление блоком разделяемой памяти (До версии PHP 8.0.0)
Socket | socket_accept(), socket_addrinfo_bind(), socket_addrinfo_connect(), socket_create(), socket_create_listen(), socket_import_stream(), socket_wsaprotocol_info_import() | socket_accept(), socket_bind(), socket_clear_error(), socket_connect(), socket_get_option(), socket_getpeername(), socket_getsockname(), socket_last_error(), socket_listen(), socket_read(), socket_recv(), socket_recvfrom(), socket_recvmsg(), socket_select(), socket_send(), socket_sendmsg(), socket_sendto(), socket_set_block(), socket_set_nonblock(), socket_set_option(), socket_shutdown(), socket_write(), socket_wsaprotocol_info_export(), socket_wsaprotocol_info_release() | socket_close() | Socket (модуль сокетов)
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() | Дескриптор сокета
Сессия SSH2 | ssh2_connect() | ssh2_disconnect()
Слушатель SSH2 | ssh2_forward_listen()
SSH2 SFTP | ssh2_sftp()
Подсистема открытого ключа SSH2 | ssh2_publickey_init()
sysvmsg queue | msg_get_queue() | msg_queue_exists(), msg_receive(), msg_send(), msg_set_queue(), msg_stat_queue() | msg_remove_queue() | Очередь сообщений System V (до PHP 8.0.0)
sysvsem | sem_get() | sem_acquire() | sem_release() | Семафор System V (до PHP 8.0.0)
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | Разделяемая память System V (до PHP 8.0.0)
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-парсер (до PHP 8.0.0)
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | Файл, сжатый алгоритмом gz
zlib.deflate | deflate_init() | deflate_add() | None | Контекст для инкрементальной компрессии по RFC 1951 (до PHP 8.0.0)
zlib.inflate | inflate_init() | inflate_add(), inflate_get_read_len(), inflate_get_status() | None | Контекст для инкрементальной декомпрессии по RFC 1951 (до PHP 8.0.0)


Список доступных фильтров

Содержание

  • Строковые фильтры
  • Преобразовывающие фильтры
  • Компрессионные фильтры
  • Шифрующие фильтры

Следующий список перечисляет несколько встроенных фильтров для использования с 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);
/* Выведет: bolded text 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);
/* Выведет: bolded text 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.* доступны, если включена поддержка zlib.

Пример #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.* доступны, если включена поддержка bz2.

Пример #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
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

ssl://, tls://, sslv2:// & sslv3://.

Замечание: Если транспортный протокол не указан, будет использован 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-шифрованием.

ssl:// будет пытаться использовать соединение SSL V2 или SSL V3, в зависимости от возможностей и настроек удалённого хоста. sslv2:// и sslv3:// позволяют явно указать использование SSL V2 или SSL V3.


Unix-сокеты: UNIX и UDG

unix:// и udg://

  • unix:///tmp/mysock
  • udg:///tmp/mysock

unix:// даёт возможность использовать unix-сокеты, а udg:// предоставляет альтернативный способ передачи данных в них, с использованием пользовательского протокола датаграмм.

Unix-сокеты, в отличие от Интернет-сокетов не требуют указания порта. В случае fsockopen() параметр portno должен быть равен 0.

Замечание: Unix-сокеты не поддерживаются в Windows.


Таблица сравнения типов в PHP

Следующие таблицы демонстрируют работу PHP с типами переменных и операторами сравнения, как в случае свободного, так и в случае строгого сравнения. Также эта информация относится к разделу документации по приведению типов. Вдохновением на создание этого раздела мы обязаны различным комментариям пользователей и работе над » BlueShoes.

До осмотра таблиц, важно знать и понимать типы переменных и их значения. К примеру, "42" - string, в то время как 42 - int. false - bool, а "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() | bool : 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 | true | false | true | false
$x = ['a', 'b']; | array | false | false | true | true
$x = false; | bool | true | false | true | false
$x = true; | bool | false | false | true | true
$x = 1; | int | false | false | true | true
$x = 42; | int | false | false | true | true
$x = 0; | int | true | false | true | false
$x = -1; | int | 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 | [] | "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 | false* | false*
-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
[] | false | true | false | false | false | false | false | false | true | true | false | false
"php" | true | false | false | false* | false | false | false | false | false | false | true | false
"" | false | true | false | false* | false | false | false | false | true | false | false | true
* true до PHP 8.0.0.

Жёсткое сравнение с помощью ===
 | true | false | 1 | 0 | -1 | "1" | "0" | "-1" | null | [] | "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
[] | 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 внутренне представлены токенами. Фрагмент кода, содержащий недопустимую последовательность токенов, может привести к таким ошибкам, как Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10.", где токен == внутренне представлен как T_IS_EQUAL.

В следующей таблице перечислены все токены. Они также доступны как константы PHP.

Замечание: Использование T_* констант

Значения T_* констант автоматически генерируются на основе базовой инфраструктуры синтаксического анализатора PHP. Это означает, что конкретное значение метки может изменяться между двумя версиями PHP. Это означает, что ваш код никогда не должен напрямую полагаться на исходные значения T_*, взятые из версии PHP X.Y.Z, чтобы обеспечить некоторую совместимость между несколькими версиями PHP.

Чтобы использовать T_* константы в нескольких версиях PHP, неопределённые константы могут быть определены пользователем (с использованием больших чисел, таких как 10000) с соответствующей стратегией, которая будет работать как с версиями PHP, так и со значениями T_*.

<?php
// До PHP 7.4.0 значение T_FN не определено.
defined('T_FN') || define('T_FN', 10001);

Метки
Метка | Синтаксис | Ссылка
T_ABSTRACT | abstract | Абстрактные классы
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG | & | Объявление типов (доступно, начиная с PHP 8.1.0)
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG | & | Объявление типов (доступно, начиная с PHP 8.1.0)
T_AND_EQUAL | &= | операторы присваивания
T_ARRAY | array() | array(), синтаксис массива
T_ARRAY_CAST | (array) | приведение типа
T_AS | as | foreach
T_ATTRIBUTE | #[ | attributes (доступно с PHP 8.0.0)
T_BAD_CHARACTER |  | все, что ниже ASCII 32 исключая \t (0x09), \n (0x0a) и \r (0x0d) (доступно с PHP 7.4.0)
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_CLASS | class | классы и объекты
T_CLASS_C | __CLASS__ | магические константы
T_CLONE | clone | классы и объекты
T_CLOSE_TAG | ?> или %> | PHP-код внутри HTML
T_COALESCE | ?? | операторы сравнения
T_COALESCE_EQUAL | ??= | операторы присваивания (доступно с PHP 7.4.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__ | магические константы
T_DIV_EQUAL | /= | операторы присваивания
T_DNUMBER | 0.12 и т.д. | числа с плавающей точкой
T_DO | do | do..while
T_DOC_COMMENT | /** */ | PHPDoc-комментарии
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 | ... | аргументы функции
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_ENUM | enum | Перечисления (доступно, начиная с PHP 8.1.0)
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 | Исключения
T_FN | fn | стрелочные функции (доступно с PHP 7.4.0)
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function | функции
T_FUNC_C | __FUNCTION__ | магические константы
T_GLOBAL | global | область видимости переменной
T_GOTO | goto | goto
T_HALT_COMPILER | __halt_compiler() | __halt_compiler
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 | Трейты
T_INTERFACE | interface | Интерфейсы объектов
T_INT_CAST | (int) или (integer) | приведение типов
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_LINE | __LINE__ | магические константы
T_LIST | list() | list()
T_LNUMBER | 123, 012, 0x1ac и т.д. | целые числа
T_LOGICAL_AND | and | логические операторы
T_LOGICAL_OR | or | логические операторы
T_LOGICAL_XOR | xor | логические операторы
T_MATCH | match | match (доступно с PHP 8.0.0)
T_METHOD_C | __METHOD__ | магические константы
T_MINUS_EQUAL | -= | операторы присваивания
T_MOD_EQUAL | %= | операторы присваивания
T_MUL_EQUAL | *= | операторы присваивания
T_NAMESPACE | namespace | пространства имён
T_NAME_FULLY_QUALIFIED | \App\Namespace | пространства имён (доступно, начиная с PHP 8.0.0)
T_NAME_QUALIFIED | App\Namespace | пространства имён (доступно, начиная с PHP 8.0.0)
T_NAME_RELATIVE | namespace\Namespace | пространства имён (доступно, начиная с PHP 8.0.0)
T_NEW | new | классы и объекты
T_NS_C | __NAMESPACE__ | пространства имён
T_NS_SEPARATOR | \ | пространства имён
T_NUM_STRING | "$a[0]" | цифровой индекс массива внутри строки
T_OBJECT_CAST | (object) | приведение типов
T_OBJECT_OPERATOR | -> | классы и объекты
T_NULLSAFE_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 | ** | арифметические операторы
T_POW_EQUAL | **= | операторы присваивания
T_PRINT | print | print
T_PRIVATE | private | классы и объекты
T_PROTECTED | protected | классы и объекты
T_PUBLIC | public | классы и объекты
T_READONLY | readonly | классы и объекты (доступно, начиная с PHP 8.1.0)
T_REQUIRE | require | require
T_REQUIRE_ONCE | require_once | require_once
T_RETURN | return | возвращаемые значения
T_SL | << | побитовые операторы
T_SL_EQUAL | <<= | операторы присваивания
T_SPACESHIP | <=> | Операторы сравнения
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 | Трейты
T_TRAIT_C | __TRAIT__ | __TRAIT__
T_TRY | try | Исключения
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | приведение типов
T_USE | use | пространства имён
T_VAR | var | классы и объекты
T_VARIABLE | $foo | переменные
T_WHILE | while | while, do..while
T_WHITESPACE | \t \r\n |
T_XOR_EQUAL | ^= | операторы присваивания
T_YIELD | yield | генераторы
T_YIELD_FROM | yield from | generators

Смотрите также 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, PHP 7)
strlen -- Возвращает длину строки

Описание
strlen ( string $string ) : int

Возвращает длину переданной строки.

Объяснение определения функции
Часть | Описание
strlen | Имя функции.
(PHP 4, PHP 5, PHP 7) | strlen() была во всех версиях PHP 4, 5 и PHP 7
( string $string ) | Первый (и в данном случае единственный) параметр/аргумент этой функции называется string, а его типом является строка (string).
int | Тип возвращаемого этой функцией значения, в данном случае число (int) (так как длина строки измеряется числом).

Можно переписать вышеуказанное определение функции в более общем виде:

      имя функции    ( тип параметра   имя параметра ) : возвращаемый тип

Много функций принимают несколько параметров, например, 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 = null,
       int $flags = 0 , int $offset = 0 ) : int|false

В данном примере мы можем использовать третий опциональный параметр &$matches, который будет передан по ссылке.

Есть также функции с более сложной информацией о версиях PHP. Возьмём для примера html_entity_decode():

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

Это означает, что функция появилась в официальных версиях языка только с выхода PHP 4.3.0.


Версии PHP, документированные в этом руководстве

Данное руководство содержит информацию о прошлых, настоящих и будущих версиях PHP. Изменения поведения документированы замечаниями, историей изменений и непосредственно в тексте самого руководства. Самой ранней документируемой версией PHP является 7.0.0.

Если документация доступна для самой последней (ещё невыпущенной) разрабатываемой версии PHP, она помечается либо как "доступно в Git", либо "разрабатываемая версия". И хотя эти изменения запланированы, в редких случаях они могут измениться.

Вся разработка ведётся в Git и может быть получена способом, описанным на странице » анонимный доступ к Git.

Для ясности, руководство указывает основную, промежуточную и дробную версию релизов PHP. Возьмём для примера версию PHP 7.3.1, 7 является основной версией, 3 является промежуточной, и 1 является дробной версией. Обычно новые возможности в PHP добавляются только в основных и промежуточных версиях, а исправления ошибок - в дробных. Однако, это соглашение не всегда верно.

Также учтите, что руководство по PHP пишется в настоящем, а не в будущем времени, даже для задокументированных, но ещё недоступных возможностей. Это сделано для того, чтобы облегчить испытание временем для данного руководства, таким образом можно избежать рутинных грамматических правок с каждой новой выпущенной версией PHP.

Много раз в руководстве указываются "значения по умолчанию" для различных директив PHP. Эти значения основаны на том, как ведёт себя PHP без конфигурационного файла php.ini, поэтому они могут отличаться от тех, что приведены в распространяемых вместе с PHP файлах php.ini-development и php.ini-production. Они также относятся к последней версии PHP, хотя история изменений упоминает только прошлые значения. За подробной информацией об этих значениях и их истории изменений обращайтесь к приложению со списком PHP директив.


Как узнать больше о PHP

Это руководство не пытается охватить вопросы общего программирования. Если вы являетесь новичком или даже начинающим программистом, написание PHP-программ может показаться вам трудным, если вы будете использовать только это руководство. Вам, скорее всего, может понадобиться материал, более подходящий для начинающих.

Существует несколько списков рассылки, предназначенных для обсуждения всех аспектов программирования на PHP. Если вы чувствуете, что не можете найти решение какой-либо проблемы, кто-нибудь из подписчиков списка, вполне вероятно, сможет вам помочь. Все виды поддержки пользователей, в том числе и почтовые списки рассылки, перечислены на » странице поддержки PHP.net.


Как помочь в написании документации

Существуют несколько способов помочь нам в улучшении документации.

Если вам встречаются ошибки в этом руководстве, на любом языке, сообщайте о них с помощью системы отслеживания ошибок по адресу » https://github.com/php/doc-ru; об ошибках в руководстве на английском языке следует сообщать по адресу » https://github.com/php/doc-en/issues. Все проблемы с документацией, включая ошибки с различными форматами руководства, должны быть отправлены как сообщение об ошибке.

Замечание:

Пожалуйста, не злоупотребляйте системой отслеживания ошибок для того, чтобы получить какого-либо рода помощь. Вместо этого воспользуйтесь какими-либо » видами поддержки, упомянутыми выше.

Посылая заметки, пользователи могут предоставить различные примеры, предостережения и разъяснения для других читателей. Но, пожалуйста, не используйте систему аннотации для сообщений об ошибках. Более подробные сведения о заметках пользователей вы можете получить, ознакомившись с главой 'О заметках пользователей' этого приложения.

Также можно отправить пулреквесты в » зеркало репозитория документации на GitHub.

Руководство по 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 можно загрузить из Git и просмотреть онлайн по адресу » https://github.com/php/doc-ru.


Переводы

Руководство по PHP доступно не только в нескольких форматах, но и на различных языках. Сначала текст руководства пишется на английском, а затем команды людей по всему миру переводят его на свой родной язык. Если перевод документации какой-либо функции или главы ещё не был завершён, система сборки руководства использует соответствующий английский вариант.

Люди, осуществляющие перевод документации, начинают с использования исходного кода в формате XML, доступного по адресу » https://github.com/php/doc-ru" и затем переводят его на свой родной язык. Для перевода не используются сгенерированные версии (например, 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
    • addslashes - Экранирует строку с помощью слешей
    • AllowDynamicProperties::__construct - Создаёт новый экземпляр атрибута AllowDynamicProperties
    • 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_response_headers - Возвращает список всех HTTP-заголовков ответа Apache
    • apache_setenv - Устанавливает переменную subprocess_env Apache
    • 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_enabled - Возможно ли использовать APCu в текущем окружении
    • apcu_entry - Автоматическое извлечение или создание записи в кеше
    • apcu_exists - Проверяет, существуют ли записи
    • apcu_fetch - Извлекает из кеша сохранённую переменную
    • apcu_inc - Увеличить сохранённое число
    • apcu_key_info - Получить детальную информацию о ключе в кеше
    • apcu_sma_info - Извлекает информацию о выделении разделяемой памяти APCu
    • apcu_store - Кеширует переменную
    • AppendIterator::append - Добавляет итератор
    • AppendIterator::current - Возвращает текущее значение
    • AppendIterator::getArrayIterator - Возвращает класс итератора массива ArrayIterator
    • 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_is_list - Проверяет, является ли данный array списком
    • 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 - Проверяет утверждение
    • assert_options - Установка и получение настроек механизма проверки утверждений
    • atan - Вычисляет арктангенс
    • atan2 - Арктангенс двух переменных
    • atanh - Вычисляет гиперболический арктангенс
    • Attribute::__construct - Создаёт новый экземпляр Attribute
  • b
    • BackedEnum::from - Сопоставляет скаляр с экземпляром перечисления
    • BackedEnum::tryFrom - Сопоставляет скаляр с экземпляром перечисления или null
    • base64_decode - Декодирует данные, закодированные MIME base64
    • base64_encode - Кодирует данные в формат MIME base64
    • basename - Возвращает последний компонент имени из указанного пути
    • BaseResult::getWarnings - Получает предупреждения последней операции
    • BaseResult::getWarningsCount - Получает количество предупреждений последней операции
    • base_convert - Преобразование числа между произвольными системами счисления
    • bcadd - Сложить 2 числа произвольной точности
    • bccomp - Сравнение двух чисел произвольной точности
    • bcdiv - Операция деления для чисел произвольной точности
    • bcmod - Получает остаток от деления чисел с произвольной точностью
    • bcmul - Умножение двух чисел с произвольной точностью
    • bcpow - Возведение в степень чисел с произвольной точностью
    • bcpowmod - Возводит одно число в степень другого и возвращает остаток от деления результата на третье число
    • bcscale - Устанавливает или получает количество чисел после десятичной точки по умолчанию для всех функций bc math.
    • bcsqrt - Извлекает квадратный корень из числа с заданной точностью
    • bcsub - Вычитает одно число из другого с заданной точностью
    • bin2hex - Преобразует бинарные данные в шестнадцатеричное представление
    • bindec - Двоичное в десятичное
    • bindtextdomain - Устанавливает или получает путь для домена
    • bind_textdomain_codeset - Устанавливает или получает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена
    • boolval - Возвращает логическое значение переменной
    • 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::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 - Возвращает строковое представление текущего элемента
    • CallbackFilterIterator::accept - Вызывает callback-функцию и передаёт ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель
    • CallbackFilterIterator::__construct - Создаёт фильтрующий итератор на основе другого итератора
    • call_user_func - Вызывает callback-функцию, заданную в первом параметре
    • call_user_func_array - Вызывает callback-функцию с массивом параметров
    • cal_days_in_month - Возвращает количество дней в месяце для заданного года и календаря
    • cal_from_jd - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря
    • cal_info - Возвращает информацию о заданном календаре
    • cal_to_jd - Преобразует заданную дату в юлианскую
    • ceil - Округляет дробь в большую сторону
    • chdir - Изменяет каталог
    • checkdate - Проверяет корректность даты по григорианскому календарю
    • checkdnsrr - Проверяет записи DNS, соответствующие переданному имени узла Интернета или IP-адресу
    • chgrp - Изменяет группу файла
    • chmod - Изменяет режим доступа к файлу
    • chop - Псевдоним rtrim
    • chown - Изменяет владельца файла
    • chr - Генерирует односимвольную строку по заданному числу
    • chroot - Изменяет корневой каталог
    • chunk_split - Разбивает строку на фрагменты
    • class_alias - Создаёт псевдоним для указанного класса
    • class_exists - Проверяет, был ли объявлен класс
    • class_implements - Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе
    • class_parents - Возвращает список родительских классов заданного класса
    • class_uses - Возвращает список трейтов, используемых заданным классом
    • clearstatcache - Очищает кеш состояния файлов
    • Client::getClient - Получает сеанс клиента
    • Client::__construct - Конструктор класса Client
    • cli_get_process_title - Возвращает заголовок текущего процесса
    • cli_set_process_title - Устанавливает заголовок процесса
    • closedir - Закрывает дескриптор каталога
    • closelog - Закрывает соединение с системным журналом
    • Closure::bind - Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса
    • Closure::bindTo - Дублирует замыкание с указанием связанного объекта и области видимости класса
    • Closure::call - Связывает и запускает замыкание
    • Closure::fromCallable - Конвертирует callable в замыкание
    • Closure::__construct - Конструктор, запрещающий создание экземпляра
    • Collator::asort - Сортирует массив с сохранением ассоциации индекса
    • Collator::compare - Сравнивает две строки Unicode
    • Collator::create - Создаёт новый экземпляр Collator
    • Collator::getAttribute - Получает значение атрибута сопоставления
    • Collator::getErrorCode - Получает последний код ошибки Collator
    • Collator::getErrorMessage - Получает текст для кода последней ошибки Collator
    • Collator::getLocale - Получает название локали для Collator
    • Collator::getSortKey - Получает ключ сортировки строки
    • Collator::getStrength - Получает текущую силу сопоставления
    • Collator::setAttribute - Устанавливает атрибут сопоставления
    • Collator::setStrength - Устанавливает силу сопоставления
    • Collator::sort - Сортирует массив с использованием указанного средства сортировки
    • Collator::sortWithSortKeys - Сортирует массив с использованием указанного Collator и ключей сортировки
    • Collator::__construct - Создаёт новый экземпляр Collator
    • Collectable::isGarbage - Определяет, помечен ли объект как мусор
    • Collection::add - Добавляет документ в коллекцию
    • Collection::addOrReplaceOne - Добавляет или заменяет документ коллекции
    • Collection::count - Получает количество документов
    • Collection::createIndex - Создаёт индекс для коллекции
    • Collection::dropIndex - Удаляет индекс коллекции
    • Collection::existsInDatabase - Проверяет, существует ли коллекция в базе данных
    • Collection::find - Ищет документ
    • Collection::getName - Получает название коллекции
    • Collection::getOne - Получает один документ
    • Collection::getSchema - Возвращает объект Schema
    • Collection::getSession - Возвращает объект Session
    • Collection::modify - Изменяет документы коллекции
    • 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 - Посещение
    • CommonMark\Interfaces\IVisitor::leave - Посещение
    • 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
    • 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 - Создаёт массив, содержащий названия переменных и их значения
    • COMPersistHelper::GetCurFileName - Получить имя файла
    • COMPersistHelper::GetMaxStreamSize - Получить максимальный размер потока
    • COMPersistHelper::InitNew - Инициализирует объект в состояние по умолчанию
    • COMPersistHelper::LoadFromFile - Загрузить объект из файла
    • COMPersistHelper::LoadFromStream - Загружает объект из потока
    • COMPersistHelper::SaveToFile - Сохранить объект в файл
    • COMPersistHelper::SaveToStream - Сохраняет объект в потоке
    • COMPersistHelper::__construct - Конструктор класса COMPersistHelper
    • Componere\Abstract\Definition::addInterface - Добавляет интерфейс
    • Componere\Abstract\Definition::addMethod - Добавляет метод
    • Componere\Abstract\Definition::addTrait - Добавляет трейт
    • Componere\Abstract\Definition::getReflector - Reflection
    • Componere\cast - Приведение к типу
    • Componere\cast_by_ref - Приведение к типу
    • Componere\Definition::addConstant - Добавляет константу
    • Componere\Definition::addProperty - Добавляет свойство
    • Componere\Definition::getClosure - Получает замыкание
    • Componere\Definition::getClosures - Получает замыкание
    • Componere\Definition::isRegistered - Определение состояния
    • Componere\Definition::register - Регистрация
    • Componere\Definition::__construct - Определение конструктора
    • Componere\Method::getReflector - Reflection
    • Componere\Method::setPrivate - Изменение доступности
    • Componere\Method::setProtected - Изменение доступности
    • Componere\Method::setStatic - Изменение доступности
    • Componere\Method::__construct - Конструктор класса Method
    • Componere\Patch::apply - Приложение
    • Componere\Patch::derive - Получение патча
    • Componere\Patch::getClosure - Получает замыкание
    • Componere\Patch::getClosures - Получает замыкания
    • Componere\Patch::isApplied - Определение состояния
    • Componere\Patch::revert - Отмена
    • Componere\Patch::__construct - Конструктор класса Patch
    • Componere\Value::hasDefault - Взаимодействие с классом Value
    • Componere\Value::isPrivate - Определение доступности
    • Componere\Value::isProtected - Определение доступности
    • Componere\Value::isStatic - Определение доступности
    • Componere\Value::setPrivate - Изменение доступности
    • Componere\Value::setProtected - Изменение доступности
    • Componere\Value::setStatic - Изменение доступности
    • Componere\Value::__construct - Конструктор класса Value
    • 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
    • connection_aborted - Проверить, отключён ли клиент
    • connection_status - Возвращает статус соединения в битах
    • constant - Возвращает значение константы
    • convert_cyr_string - Преобразует строку из одной кириллической кодировки в другую
    • convert_uudecode - Декодирует строку из формата uuencode в обычный вид
    • convert_uuencode - Кодирует строку в формат uuencode
    • copy - Копирует файл
    • cos - Косинус
    • cosh - Гиперболический косинус
    • count - Подсчитывает количество элементов массива или Countable объекте
    • Countable::count - Количество элементов объекта
    • count_chars - Возвращает информацию о символах, входящих в строку
    • crc32 - Вычисляет полином CRC32 для строки
    • create_function - Создаёт функцию динамически, оценивая строку кода
    • CrudOperationBindable::bind - Привязывает значение к заполнителю
    • CrudOperationLimitable::limit - Устанавливает лимит результата
    • CrudOperationSkippable::skip - Количество операций для пропуска
    • CrudOperationSortable::sort - Сортирует результаты
    • 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 - Выполняет подготовленный SQL-оператор
    • cubrid_fetch - Выбирает следующую строку из набора результатов
    • 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 - Освобождает память, занятую данными результата
    • cubrid_get - Получает столбец, используя OID
    • cubrid_get_autocommit - Возвращает настройку авто-коммита для соединения
    • cubrid_get_charset - Возвращает кодировку текущего соединения CUBRID
    • cubrid_get_class_name - Получает имя класса с помощью OID
    • cubrid_get_client_info - Возвращает версию клиентской библиотеки
    • cubrid_get_db_parameter - Возвращает параметры базы данных CUBRID
    • cubrid_get_query_timeout - Получает значение времени ожидания запроса
    • cubrid_get_server_info - Возвращает версию сервера CUBRID
    • cubrid_insert_id - Возвращает идентификатор, сгенерированный для последнего обновлённого столбца AUTO_INCREMENT
    • cubrid_is_instance - Проверяет, существует ли экземпляр, на который указывает OID
    • cubrid_list_dbs - Получить массив со списком всех баз данных CUBRID
    • cubrid_load_from_glo - Читает данные из экземпляра GLO и записывает их в файл
    • cubrid_lob2_bind - Связывает объект LOB или строку в виде объекта LOB с подготовленным оператором в качестве параметров
    • cubrid_lob2_close - Закрывает объект LOB
    • cubrid_lob2_export - Экспортирует LOB-объект в файл
    • cubrid_lob2_import - Импортирует данные BLOB/CLOB из файла
    • cubrid_lob2_new - Создаёт объект LOB
    • cubrid_lob2_read - Производит чтение из данных BLOB/CLOB
    • cubrid_lob2_seek - Перемещает курсор LOB-объекта
    • cubrid_lob2_seek64 - Перемещает курсор LOB-объекта
    • cubrid_lob2_size - Получает размер LOB-объекта
    • cubrid_lob2_size64 - Получает размер LOB-объекта
    • cubrid_lob2_tell - Сообщает положение курсора LOB-объекта
    • cubrid_lob2_tell64 - Сообщает положение курсора LOB-объекта
    • cubrid_lob2_write - Записывает в LOB-объект
    • cubrid_lob_close - Закрывает данные BLOB/CLOB
    • cubrid_lob_export - Экспортирует данные BLOB/CLOB в файл
    • cubrid_lob_get - Получает данные BLOB/CLOB
    • cubrid_lob_send - Читает данные BLOB/CLOB и отправляет их прямо в браузер
    • cubrid_lob_size - Получает размер данных BLOB/CLOB
    • cubrid_lock_read - Устанавливает блокировку чтения для данного OID
    • cubrid_lock_write - Устанавливает блокировку записи для данного OID
    • cubrid_move_cursor - Перемещает курсор в результате
    • cubrid_new_glo - Создаёт экземпляр glo
    • cubrid_next_result - Получает результат следующего запроса при выполнении нескольких SQL-операторов
    • cubrid_num_cols - Возвращает количество столбцов в наборе результатов
    • cubrid_num_fields - Получить количество столбцов в результирующем наборе
    • cubrid_num_rows - Получить количество строк в наборе результатов
    • cubrid_pconnect - Открывает постоянное соединение с сервером CUBRID
    • cubrid_pconnect_with_url - Открывает постоянное соединение с сервером CUBRID
    • cubrid_ping - Проверяет, живо ли соединение к серверу и переподключает его, если нет
    • cubrid_prepare - Подготавливает SQL-выражение к выполнению
    • cubrid_put - Обновляет столбец с использованием OID
    • cubrid_query - Отправка запроса CUBRID
    • cubrid_real_escape_string - Экранирование специальных символов в SQL-запросе
    • cubrid_result - Получить значение из заданного столбца заданной строки
    • cubrid_rollback - Откат транзакции
    • cubrid_save_to_glo - Сохраняет запрошенный файл в экземпляре GLO
    • cubrid_schema - Получает запрошенную информацию о схеме
    • cubrid_send_glo - Чтение данных из glo и вывод их в стандартное устройство вывода
    • cubrid_seq_drop - Удаляет элемент из столбца типа последовательности, используя OID
    • cubrid_seq_insert - Вставляет элемент в столбец типа последовательности, используя OID
    • cubrid_seq_put - Обновляет значение элемента столбца типа последовательности, используя OID
    • cubrid_set_add - Вставляет один элемент для установки столбца типа с помощью OID
    • cubrid_set_autocommit - Устанавливает режим авто-коммита для соединения
    • cubrid_set_db_parameter - Устанавливает параметры базы данных CUBRID
    • cubrid_set_drop - Удаляет элемент из столбца заданного типа, используя OID
    • cubrid_set_query_timeout - Устанавливает время ожидания выполнения запроса
    • cubrid_unbuffered_query - Выполнение запроса без загрузки результата в память
    • cubrid_version - Получить версию модуля CUBRID PHP
    • CURLFile::getFilename - Возвращает имя файла на сервере
    • CURLFile::getMimeType - Возвращает MIME-тип файла
    • CURLFile::getPostFilename - Возвращает имя файла, отправляемого POST-запросом
    • CURLFile::setMimeType - Устанавливает MIME-тип
    • CURLFile::setPostFilename - Устанавливает имя файла для отправки методом POST
    • CURLFile::__construct - Создаёт объект CURLFile
    • CURLStringFile::__construct - Создаёт объект CURLStringFile
    • curl_close - Завершает сеанс cURL
    • curl_copy_handle - Копирует дескриптор cURL вместе со всеми его настройками
    • curl_errno - Возвращает код последней ошибки
    • curl_error - Возвращает строку с описанием последней ошибки текущего сеанса
    • curl_escape - Кодирует заданную строку как URL
    • curl_exec - Выполняет запрос cURL
    • 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_upkeep - Выполняет любые проверки работоспособности соединений
    • curl_version - Возвращает версию cURL
    • current - Возвращает текущий элемент массива
  • d
    • data:// - Схема Data (RFC 2397)
    • DatabaseObject::existsInDatabase - Проверяет, существует ли объект в базе данных
    • DatabaseObject::getName - Получает имя объекта
    • DatabaseObject::getSession - Получает имя сессии
    • date - Форматирует временную метку Unix
    • DateInterval::createFromDateString - Создаёт объект класса DateInterval из даты в относительном формате
    • DateInterval::format - Форматирует интервал
    • DateInterval::__construct - Создаёт новый объект DateInterval
    • DatePeriod::createFromISO8601String - Creates a new DatePeriod object from an ISO8601 string
    • DatePeriod::getDateInterval - Возвращает интервал
    • DatePeriod::getEndDate - Возвращает конечную дату периода
    • DatePeriod::getRecurrences - Получает количество повторов
    • DatePeriod::getStartDate - Возвращает начальную дату периода
    • DatePeriod::__construct - Создаёт новый объект DatePeriod
    • DateTime::add - Изменяет объект DateTime, добавляя количество дней, месяцев, лет, часов, минут и секунд
    • DateTime::createFromFormat - Разбирает строку с датой согласно указанному формату
    • DateTime::createFromImmutable - Возвращает экземпляр DateTime инкапсулирующий заданный объект DateTimeImmutable
    • DateTime::createFromInterface - Возвращает новый объект DateTime, созданный из переданного объекта, реализующего интерфейс DateTimeInterface
    • DateTime::getLastErrors - Псевдоним DateTimeImmutable::getLastErrors
    • 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::createFromInterface - Возвращает новый объект DateTimeImmutable, созданный из переданного объекта, реализующего интерфейс DateTimeInterface
    • 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
    • DateTimeInterface::diff - Возвращает разницу между двумя объектами DateTime
    • DateTimeInterface::format - Возвращает дату, отформатированную согласно переданному формату
    • DateTimeInterface::getOffset - Возвращает смещение часового пояса
    • DateTimeInterface::getTimestamp - Возвращает временную метку Unix
    • DateTimeInterface::getTimezone - Возвращает часовой пояс относительно текущего значения DateTime
    • DateTimeZone::getLocation - Возвращает информацию о местоположении для часового пояса
    • DateTimeZone::getName - Возвращает имя часового пояса
    • DateTimeZone::getOffset - Возвращает смещение часового пояса от UTC (GMT)
    • DateTimeZone::getTransitions - Возвращает все переходы для часового пояса
    • DateTimeZone::listAbbreviations - Возвращает ассоциативный массив, содержащий флаг перехода на летнее время, смещение и имя часового пояса
    • DateTimeZone::listIdentifiers - Возвращает численно индексированный массив со всеми идентификаторами часовых поясов
    • DateTimeZone::__construct - Создаёт новый объект DateTimeZone
    • date_add - Псевдоним DateTime::add
    • date_create - Создаёт новый объект DateTime
    • date_create_from_format - Псевдоним DateTime::createFromFormat
    • date_create_immutable - Создаёт новый объект DateTimeImmutable
    • 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 - Псевдоним DateTimeImmutable::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 - Связывает переменную PHP с параметром SQL-выражения
    • db2_client_info - Возвращает объект со свойствами, описывающими клиента DB2
    • db2_close - Закрывает соединение с базой данных
    • db2_columns - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
    • db2_column_privileges - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
    • db2_commit - Подтверждает транзакцию
    • db2_connect - Возвращает соединение с базой данных
    • db2_conn_error - Возвращает строку, содержащую значение SQLSTATE, возвращённое последней попыткой подключения
    • db2_conn_errormsg - Возвращает последнее сообщение об ошибке подключения и значение SQLCODE
    • db2_cursor_type - Возвращает тип курсора, который используется в ресурсе оператора
    • db2_escape_string - Используется для экранирования некоторых символов
    • db2_exec - Выполняет SQL-запрос напрямую
    • db2_execute - Выполняет подготовленный SQL-запрос
    • db2_fetch_array - Возвращает массив, индексированный по положению столбца, представляющий строку в наборе результатов
    • db2_fetch_assoc - Возвращает массив, индексированный по имени столбца, представляющий строку в наборе результатов
    • db2_fetch_both - Возвращает массив, индексированный как по имени столбца, так и по позиции, представляющий строку в наборе результатов
    • db2_fetch_object - Возвращает объект со свойствами, представляющими столбцы в выбранной строке
    • db2_fetch_row - Устанавливает указатель набора результатов на следующую строку или запрошенную строку
    • db2_field_display_size - Возвращает максимальное количество байтов, необходимое для отображения столбца
    • db2_field_name - Возвращает имя столбца в наборе результатов
    • db2_field_num - Возвращает позицию указанного столбца в наборе результатов
    • db2_field_precision - Возвращает точность указанного столбца в наборе результатов
    • db2_field_scale - Возвращает масштаб указанного столбца в наборе результатов
    • db2_field_type - Возвращает тип данных указанного столбца в наборе результатов
    • db2_field_width - Возвращает ширину текущего значения указанного столбца в наборе результатов
    • db2_foreign_keys - Возвращает набор результатов, в котором перечислены внешние ключи таблицы
    • db2_free_result - Освобождает ресурсы, связанные с набором результатов
    • db2_free_stmt - Освобождает ресурсы, связанные с указанным ресурсом выражения
    • db2_get_option - Извлекает значение параметра для ресурса оператора или ресурса соединения
    • db2_last_insert_id - Возвращает автоматически сгенерированный идентификатор последнего запроса на добавление, успешно выполненного в этом соединении
    • db2_lob_read - Получает определённый пользователем размер LOB-файлов при каждом вызове
    • db2_next_result - Запрашивает следующий набор результатов из хранимой процедуры
    • db2_num_fields - Возвращает количество полей в результирующем наборе
    • db2_num_rows - Возвращает количество строк, затронутых SQL-запросом
    • db2_pclose - Закрывает постоянное соединение с базой данных
    • db2_pconnect - Возвращает постоянное соединение с базой данных
    • db2_prepare - Подготавливает SQL-запрос к выполнению
    • db2_primary_keys - Возвращает набор результатов, содержащий первичные ключи таблицы
    • db2_procedures - Возвращает набор результатов, в котором перечислены хранимые процедуры, зарегистрированные в базе данных
    • db2_procedure_columns - Возвращает набор результатов со списком параметров хранимой процедуры
    • db2_result - Возвращает один столбец из строки в наборе результатов
    • db2_rollback - Откатывает транзакцию
    • db2_server_info - Возвращает объект со свойствами, описывающими сервер базы данных DB2
    • db2_set_option - Установка опции для соединения или ресурса оператора
    • db2_special_columns - Возвращает набор результатов, в котором перечислены столбцы с уникальным идентификатором строки таблицы
    • db2_statistics - Возвращает набор результатов, содержащий индекс и статистику таблицы
    • db2_stmt_error - Возвращает строку, содержащую SQLSTATE, возвращённую SQL-оператором
    • db2_stmt_errormsg - Возвращает строку, содержащую последнее сообщение об ошибке SQL-выражения
    • db2_tables - Возвращает набор результатов, в котором перечислены таблицы и связанные метаданные в базе данных
    • db2_table_privileges - Возвращает набор результатов, в котором перечислены таблицы и связанные с ними права доступа к базе данных
    • 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 - Синхронизирует базу данных
    • dcgettext - Переопределяет одно сообщение в домене
    • dcngettext - Версия dcgettext для множественного числа
    • debug_backtrace - Генерирует стек вызовов функций
    • debug_print_backtrace - Выводит стек вызовов функций
    • debug_zval_dump - Выводит строковое представление внутренней структуры zval
    • decbin - Переводит число из десятичной системы счисления в двоичную
    • dechex - Переводит число из десятичной системы счисления в шестнадцатеричную
    • decoct - Переводит число из десятичной системы счисления в восьмеричную
    • define - Определяет именованную константу
    • defined - Проверяет существование указанной именованной константы
    • 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::getBasename - Получает базовое имя текущего элемента DirectoryIterator
    • DirectoryIterator::getExtension - Получает расширение файла
    • DirectoryIterator::getFilename - Возвращает имя файла текущего элемента DirectoryIterator
    • DirectoryIterator::isDot - Определяет, является ли текущий элемент 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::after - Adds nodes after the character data
    • DOMCharacterData::appendData - Добавить строку в конец символьных данных узла
    • DOMCharacterData::before - Adds nodes before the node
    • DOMCharacterData::deleteData - Удалить диапазон символов из узла
    • DOMCharacterData::insertData - Вставить строку в указанную 16-битную позицию
    • DOMCharacterData::remove - Removes the character data
    • DOMCharacterData::replaceData - Заменить подстроку в узле типа DOMCharacterData
    • DOMCharacterData::replaceWith - Replaces the character data with new nodes
    • DOMCharacterData::substringData - Извлекает определённый диапазон данных из узла
    • DOMChildNode::after - Добавляет узлы после узла
    • DOMChildNode::before - Добавляет узлы перед узлом
    • DOMChildNode::remove - Удаляет узел
    • DOMChildNode::replaceWith - Заменяет узел новыми узлами
    • DOMComment::__construct - Создаёт новый экземпляр класса DOMComment
    • DOMDocument::adoptNode - Transfer a node from another document
    • DOMDocument::append - Appends nodes after the last child node
    • 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::prepend - Prepends nodes before the first child node
    • DOMDocument::registerNodeClass - Регистрация расширенного класса, используемого для создания типа базового узла
    • DOMDocument::relaxNGValidate - Производит проверку документа на правильность построения посредством relaxNG
    • DOMDocument::relaxNGValidateSource - Проверяет документ посредством relaxNG
    • DOMDocument::replaceChildren - Replace children in document
    • DOMDocument::save - Сохраняет XML-дерево из внутреннего представления в файл
    • DOMDocument::saveHTML - Сохраняет документ из внутреннего представления в строку, используя форматирование HTML
    • DOMDocument::saveHTMLFile - Сохраняет документ из внутреннего представления в файл, используя форматирование HTML
    • DOMDocument::saveXML - Сохраняет XML-дерево из внутреннего представления в виде строки
    • DOMDocument::schemaValidate - Проверяет действительность документа, основываясь на заданной схеме. Поддерживается только XML-схема 1.0.
    • DOMDocument::schemaValidateSource - Проверяет действительность документа, основываясь на схеме
    • DOMDocument::validate - Проверяет документ на соответствие его DTD
    • DOMDocument::xinclude - Проводит вставку XInclude в объекте DOMDocument
    • DOMDocument::__construct - Создаёт новый объект DOMDocument
    • DOMDocumentFragment::append - Appends nodes after the last child node
    • DOMDocumentFragment::appendXML - Добавление необработанных данных XML
    • DOMDocumentFragment::prepend - Prepends nodes before the first child node
    • DOMDocumentFragment::replaceChildren - Replace children in fragment
    • DOMDocumentFragment::__construct - Конструктор объекта DOMDocumentFragment
    • DOMElement::after - Adds nodes after the element
    • DOMElement::append - Appends nodes after the last child node
    • DOMElement::before - Adds nodes before the element
    • DOMElement::getAttribute - Возвращает значение атрибута
    • DOMElement::getAttributeNames - Get attribute names
    • DOMElement::getAttributeNode - Возвращает узел атрибута
    • DOMElement::getAttributeNodeNS - Возвращает узел атрибута
    • DOMElement::getAttributeNS - Возвращает значение атрибута
    • DOMElement::getElementsByTagName - Возвращает элементы по имени тега
    • DOMElement::getElementsByTagNameNS - Получение элементов по локальному имени в заданном пространстве имён
    • DOMElement::hasAttribute - Проверяет, существует ли атрибут
    • DOMElement::hasAttributeNS - Проверяет, существует ли заданный атрибут
    • DOMElement::insertAdjacentElement - Insert adjacent element
    • DOMElement::insertAdjacentText - Insert adjacent text
    • DOMElement::prepend - Prepends nodes before the first child node
    • DOMElement::remove - Removes the element
    • DOMElement::removeAttribute - Удаляет атрибут
    • DOMElement::removeAttributeNode - Удаляет атрибут
    • DOMElement::removeAttributeNS - Удаляет атрибут
    • DOMElement::replaceChildren - Replace children in element
    • DOMElement::replaceWith - Replaces the element with new nodes
    • DOMElement::setAttribute - Добавляет новый или изменяет существующий атрибут
    • DOMElement::setAttributeNode - Добавляет новый узел атрибута в элемент
    • DOMElement::setAttributeNodeNS - Добавляет новый атрибут в элемент
    • DOMElement::setAttributeNS - Добавляет новый атрибут
    • DOMElement::setIdAttribute - Объявляет атрибут, указанный именем, с идентификатором типа
    • DOMElement::setIdAttributeNode - Объявляет атрибут, указанный узлом, с идентификатором типа
    • DOMElement::setIdAttributeNS - Объявляет атрибут, указанный локальным именем и URI пространства имён, с идентификатором типа
    • DOMElement::toggleAttribute - Toggle attribute
    • DOMElement::__construct - Создаёт новый экземпляр класса DOMElement
    • DOMEntityReference::__construct - Создаёт новый объект класса DOMEntityReference
    • DOMImplementation::createDocument - Создаёт объект класса DOMDocument заданного типа с его элементом document
    • DOMImplementation::createDocumentType - Создаёт пустой объект класса DOMDocumentType
    • DOMImplementation::hasFeature - Проверка, реализована ли определённая возможность в реализации DOM
    • DOMImplementation::__construct - Создаёт новый объект класса DOMImplementation
    • DOMNamedNodeMap::count - Количество узлов в отображении
    • DOMNamedNodeMap::getIterator - Retrieve an external iterator
    • DOMNamedNodeMap::getNamedItem - Получает узел, указанный по имени
    • DOMNamedNodeMap::getNamedItemNS - Получает узел с заданным локальным именем и URI пространства имён
    • DOMNamedNodeMap::item - Получает узел с заданным индексом
    • DOMNode::appendChild - Добавляет новый дочерний узел в конец списка потомков
    • DOMNode::C14N - Канонизировать узлы в строку
    • DOMNode::C14NFile - Канонизировать узлы в файл
    • DOMNode::cloneNode - Клонирует узел
    • DOMNode::contains - Checks if node contains other node
    • DOMNode::getLineNo - Получить номер строки узла
    • DOMNode::getNodePath - Получение XPath узла
    • DOMNode::getRootNode - Get root node
    • DOMNode::hasAttributes - Проверяет, имеет ли данный узел атрибуты
    • DOMNode::hasChildNodes - Проверяет, имеет ли данный узел потомков
    • DOMNode::insertBefore - Добавляет новый дочерний узел перед указанным узлом
    • DOMNode::isDefaultNamespace - Проверяет, является ли указанный URI пространства имён узла пространством имён по умолчанию или нет
    • DOMNode::isEqualNode - Checks that both nodes are equal
    • DOMNode::isSameNode - Указывает, являются ли два узла одним и тем же узлом
    • DOMNode::isSupported - Проверяет, поддерживается ли возможность в определённой версии
    • DOMNode::lookupNamespaceURI - Получает URI пространства имён узла по префиксу
    • DOMNode::lookupPrefix - Возвращает префикс пространства имён узла из URI пространства имён
    • DOMNode::normalize - Нормализует узел
    • DOMNode::removeChild - Удаляет дочерний узел из списка потомков
    • DOMNode::replaceChild - Заменяет дочерний узел
    • DOMNodeList::count - Получить количество узлов в списке
    • DOMNodeList::getIterator - Retrieve an external iterator
    • DOMNodeList::item - Получает узел с заданным индексом
    • DOMParentNode::append - Добавляет узлы после последнего дочернего узла
    • DOMParentNode::prepend - Добавляет узлы перед первым дочерним узлом
    • DOMParentNode::replaceChildren - Replace children in node
    • 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 - Добавляет слово в личный словарь
    • enchant_dict_add_to_personal - Добавить слово в список персональных слов
    • enchant_dict_add_to_session - Добавить слово в текущую сессию проверки
    • enchant_dict_check - Проверяет, корректно ли задано слово
    • enchant_dict_describe - Возвращает информацию о словаре
    • enchant_dict_get_error - Возвращает последнюю ошибку текущей сессии проверки
    • enchant_dict_is_added - Определяет, существует ли слово в этой орфографической сессии
    • enchant_dict_is_in_session - Присутствует ли слово 'word' в сессии проверки
    • enchant_dict_quick_check - Проверить, правильно ли написано слово и предложить варианты замены
    • enchant_dict_store_replacement - Добавить исправление для слова
    • enchant_dict_suggest - Вернёт список возможных вариантов для слова с ошибкой
    • end - Устанавливает внутренний указатель массива на его последний элемент
    • enum_exists - Проверяет, определено ли перечисление
    • 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::add
    • Event::addTimer - Псевдоним Event::add
    • Event::del - Перевести событие в пассивное состояние
    • Event::delSignal - Псевдоним Event::del
    • Event::delTimer - Псевдоним Event::del
    • 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 - Предотвращает вызовы, которые изменяют буфер событий в случае успешного выполнения
    • EventBuffer::lock - Получает блокировку буфера
    • EventBuffer::prepend - Записывает данные в начало буфера
    • EventBuffer::prependBuffer - Перемещает все данные из исходного буфера в начало текущего буфера
    • EventBuffer::pullup - Линеаризует данные в буфере и возвращает их содержимое в виде строки
    • EventBuffer::read - Читает данные из evbuffer и истощает прочитанные байты
    • EventBuffer::readFrom - Читает данные из файла в конец буфера
    • EventBuffer::readLine - Извлекает строку из начала буфера
    • EventBuffer::search - Сканирует буфер на наличие строки
    • EventBuffer::searchEol - Сканирует буфер на наличие конца строки
    • EventBuffer::substr - Обрезает часть данных буфера
    • EventBuffer::unfreeze - Повторно включает вызовы, которые изменяют буфер событий
    • EventBuffer::unlock - Снимает блокировку, установленную EventBuffer::lock
    • EventBuffer::write - Записывает содержимое буфера в файл или сокет
    • EventBuffer::__construct - Создаёт объект EventBuffer
    • EventBufferEvent::close - Закрывает дескриптор файла, связанный с текущим событием буфера
    • EventBufferEvent::connect - Подключает файловый дескриптор события буфера к указанному адресу или сокету UNIX
    • EventBufferEvent::connectHost - Подключается по имени хоста с возможностью асинхронного разрешения DNS
    • EventBufferEvent::createPair - Создаёт два буферных события, связанных друг с другом
    • EventBufferEvent::disable - Отключает чтение, запись или и то, и другое в событии буфера
    • EventBufferEvent::enable - Включает чтение, запись или и то, и другое в событии буфера
    • EventBufferEvent::free - Освобождает событие буфера
    • EventBufferEvent::getDnsErrorString - Возвращает строку, описывающую последнюю неудачную попытку поиска DNS
    • EventBufferEvent::getEnabled - Возвращает битовую маску событий, которые в данный момент активированы для буферного события
    • EventBufferEvent::getInput - Возвращает базовый входной буфер, связанный с текущим буферным событием
    • EventBufferEvent::getOutput - Возвращает базовый выходной буфер, связанный с текущим буферным событием
    • EventBufferEvent::read - Читает данные буфера
    • EventBufferEvent::readBuffer - Сливает все содержимое буфера ввода и помещает его в буфер
    • EventBufferEvent::setCallbacks - Назначает callback-функции для чтения, записи и события (состояния)
    • EventBufferEvent::setPriority - Присваивает приоритет bufferevent
    • EventBufferEvent::setTimeouts - Устанавливает время ожидания чтения и записи для события буфера
    • EventBufferEvent::setWatermark - Регулирует водяные знаки чтения и/или записи
    • EventBufferEvent::sslError - Возвращает последнюю ошибку OpenSSL, сообщённую буферному событию
    • EventBufferEvent::sslFilter - Создаёт новое событие буфера SSL для отправки своих данных через другое событие буфера
    • EventBufferEvent::sslGetCipherInfo - Возвращает текстовое описание шифра
    • EventBufferEvent::sslGetCipherName - Возвращает текущее имя шифра соединения SSL
    • EventBufferEvent::sslGetCipherVersion - Возвращает версию шифра, используемого текущим SSL-соединением
    • EventBufferEvent::sslGetProtocol - Возвращает имя протокола, используемого для текущего соединения SSL
    • EventBufferEvent::sslRenegotiate - Сообщает буферному событию начать пересмотр SSL
    • EventBufferEvent::sslSocket - Создаёт новое буферное событие SSL для отправки своих данных через SSL в сокет
    • EventBufferEvent::write - Добавляет данные в буфер вывода буферного события
    • EventBufferEvent::writeBuffer - Добавляет содержимое всего буфера в буфер вывода буферного события
    • EventBufferEvent::__construct - Создаёт объект EventBufferEvent
    • EventConfig::avoidMethod - Попросить libevent не использовать определённый метод события
    • EventConfig::requireFeatures - Ввести требуемые приложением свойства метода события
    • EventConfig::setFlags - Устанавливает один или несколько флагов для настройки возможной инициализации EventBase
    • 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 - Абстрактный конструктор
    • 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 - Возвращает предыдущий объект, реализующий Throwable
    • Exception::getTrace - Получает трассировку стека
    • Exception::getTraceAsString - Получает трассировку стека в виде строки
    • Exception::__clone - Клонировать исключение
    • Exception::__construct - Создать исключение
    • Exception::__toString - Строковое представление исключения
    • exec - Выполнить внешнюю программу
    • Executable::execute - Выполняет утверждение
    • ExecutionStatus::__construct - Конструктор класса ExecutionStatus
    • exif_imagetype - Determine the type of an image
    • exif_read_data - Читает заголовки EXIF из файлов изображений
    • exif_tagname - Получение имени заголовка по его индексу
    • exif_thumbnail - Получает встроенное превью изображения
    • exit - Вывести сообщение и прекратить выполнение текущего скрипта
    • exp - Вычисляет степень числа e
    • expect:// - Потоки для взаимодействия с процессами
    • expect_expectl - Ожидает, пока вывод потока не совпадёт с одним из шаблонов, либо пока не закончится максимальное время ожидания, либо вернётся EOF
    • expect_popen - Запускает команду через командную оболочку Bourne и открывает для процесса поток PTY
    • explode - Разбивает строку с помощью разделителя
    • expm1 - Возвращает exp($num) - 1, рассчитанное таким образом, что результат точен, даже если значение number близко к нулю.
    • expression - Связывает подготовленные переменные утверждения в качестве параметров
    • Expression::__construct - Конструктор класса Expression
    • extension_loaded - Определяет, загружен ли модуль
    • extract - Импортирует переменные из массива в текущую таблицу символов
    • ezmlm_hash - Вычисляет хеш-сумму, необходимую для EZMLM
  • f
    • 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 - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения
    • fann_create_shortcut_array - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена и имеет быстрые соединения
    • fann_create_sparse - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена
    • fann_create_sparse_array - Создаёт стандартную нейронную сеть обратного распространения, которая не полностью подключена, используя массив размеров слоёв
    • fann_create_standard - Создаёт стандартную полностью подключённую нейронную сеть обратного распространения
    • fann_create_standard_array - Создаёт стандартную полностью подключённую нейронную сеть обратного распространения, используя массив размеров слоёв
    • fann_create_train - Создаёт пустую структуру данных для обучения
    • fann_create_train_from_callback - Создаёт структуру данных обучения из предоставленной пользователем функции
    • fann_descale_input - Масштабирует данные во входном векторе после получения их на основе ранее рассчитанных параметров
    • fann_descale_output - Масштабирует данные в выходном векторе после получения их ина основе ранее рассчитанных параметров
    • fann_descale_train - Масштабирование входных и выходных данных на основе предварительно рассчитанных параметров
    • fann_destroy - Уничтожает всю сеть и правильно освобождает всю связанную память
    • fann_destroy_train - Уничтожает тренировочные данные
    • fann_duplicate_train_data - Возвращает точную копию тренировочных данных
    • fann_get_activation_function - Возвращает функцию активации
    • fann_get_activation_steepness - Возвращает крутизну активации для поставляемого нейрона и номера слоя
    • fann_get_bias_array - Получает количество смещений в каждом слое в сети
    • fann_get_bit_fail - Количество битов сбоя
    • fann_get_bit_fail_limit - Возвращает предел сбоя битов, использованный во время обучения
    • fann_get_cascade_activation_functions - Возвращает функции каскадной активации
    • fann_get_cascade_activation_functions_count - Возвращает количество функций каскадной активации
    • fann_get_cascade_activation_steepnesses - Возвращает крутизну каскадной активации
    • fann_get_cascade_activation_steepnesses_count - Количество крутизны активации
    • fann_get_cascade_candidate_change_fraction - Возвращает долю изменения каскада кандидата
    • fann_get_cascade_candidate_limit - Возвращает предел кандидата
    • fann_get_cascade_candidate_stagnation_epochs - Возвращает количество периодов застоя каскада кандидата
    • fann_get_cascade_max_cand_epochs - Получает наибольший период кандидата
    • fann_get_cascade_max_out_epochs - Возвращает максимальное количество периодов
    • fann_get_cascade_min_cand_epochs - Получает наименьший период кандидата
    • fann_get_cascade_min_out_epochs - Возвращает минимальное количество периодов
    • fann_get_cascade_num_candidates - Возвращает количество кандидатов, использованных во время обучения
    • fann_get_cascade_num_candidate_groups - Возвращает количество групп кандидатов
    • fann_get_cascade_output_change_fraction - Возвращает долю изменения выхода каскада
    • fann_get_cascade_output_stagnation_epochs - Возвращает количество каскадных периодов застоя кандидатов
    • fann_get_cascade_weight_multiplier - Возвращает множитель веса
    • fann_get_connection_array - Получает соединения в сети
    • fann_get_connection_rate - Получает скорость соединения, используемую при создании сети
    • fann_get_errno - Возвращает последний номер ошибки
    • fann_get_errstr - Возвращает последнюю строку ошибки
    • fann_get_layer_array - Получает количество нейронов в каждом слое сети
    • fann_get_learning_momentum - Возвращает импульс обучения
    • fann_get_learning_rate - Возвращает скорость обучения
    • fann_get_MSE - Считывает среднеквадратичную ошибку сети
    • fann_get_network_type - Получает тип нейронной сети
    • fann_get_num_input - Получает количество входных нейронов
    • fann_get_num_layers - Получает количество слоёв в нейронной сети
    • fann_get_num_output - Получает количество выходных нейронов
    • fann_get_quickprop_decay - Возвращает снижение, которое является фактором, при котором веса должны уменьшаться на каждой итерации во время обучения quickprop
    • fann_get_quickprop_mu - Возвращает коэффициент mu
    • fann_get_rprop_decrease_factor - Возвращает коэффициент уменьшения, используемый во время обучения RPROP
    • fann_get_rprop_delta_max - Возвращает максимальный размер шага
    • fann_get_rprop_delta_min - Возвращает минимальный размер шага
    • fann_get_rprop_delta_zero - Возвращает начальный размер шага
    • fann_get_rprop_increase_factor - Возвращает коэффициент увеличения, используемый во время обучения RPROP
    • fann_get_sarprop_step_error_shift - Возвращает сдвиг ошибки шага sarprop
    • fann_get_sarprop_step_error_threshold_factor - Возвращает пороговый коэффициент ошибки шага sarprop
    • fann_get_sarprop_temperature - Возвращает температуру sarprop
    • fann_get_sarprop_weight_decay_shift - Возвращает сдвиг уменьшения веса sarprop
    • fann_get_total_connections - Получает общее количество соединений во всей сети
    • fann_get_total_neurons - Получает общее количество нейронов во всей сети
    • fann_get_training_algorithm - Возвращает алгоритм обучения
    • fann_get_train_error_function - Возвращает функцию обработки ошибок, используемую во время обучения
    • fann_get_train_stop_function - Возвращает функцию остановки, используемую во время обучения
    • fann_init_weights - Инициализирует веса с помощью алгоритма Widrow + Nguyen
    • fann_length_train_data - Возвращает количество шаблонов в обучающих данных
    • fann_merge_train_data - Объединяет обучающие данные
    • fann_num_input_train_data - Возвращает количество входных данных в каждом из шаблонов в обучающих данных
    • fann_num_output_train_data - Возвращает количество выходных данных в каждом из шаблонов в обучающих данных
    • fann_print_error - Выводит строку ошибки
    • fann_randomize_weights - Присваивает каждому соединению случайный вес между min_weight и max_weight
    • fann_read_train_from_file - Читает файл, в котором хранятся данные обучения
    • fann_reset_errno - Сбрасывает номер последней ошибки
    • fann_reset_errstr - Сбрасывает последнюю строку ошибки
    • fann_reset_MSE - Сбрасывает среднеквадратичную ошибку из сети
    • fann_run - Запускает нейронную сеть с заданными данными
    • fann_save - Сохраняет всю сеть в файл конфигурации
    • fann_save_train - Сохраняет структуру обучения в файл
    • fann_scale_input - Масштабирует данные во входном векторе перед подачей их в ann на основе ранее рассчитанных параметров
    • fann_scale_input_train_data - Масштабирует входные данные в обучающих данных до указанного диапазона
    • fann_scale_output - Масштабирует данные в выходном векторе перед их передачей в ann на основе ранее рассчитанных параметров
    • fann_scale_output_train_data - Масштабирует выходные данные в обучающих данных до указанного диапазона
    • fann_scale_train - Масштабирует входные и выходные данные на основе ранее рассчитанных параметров
    • fann_scale_train_data - Масштабирует входные и выходные данные в обучающих данных до указанного диапазона
    • fann_set_activation_function - Устанавливает функцию активации для указанного нейрона и слоя
    • fann_set_activation_function_hidden - Устанавливает функцию активации для всех скрытых слоёв
    • fann_set_activation_function_layer - Устанавливает функцию активации для всех нейронов в предоставленном слое
    • fann_set_activation_function_output - Устанавливает функцию активации для выходного слоя
    • fann_set_activation_steepness - Устанавливает крутизну активации для указанного нейрона и номера слоя
    • fann_set_activation_steepness_hidden - Устанавливает крутизну крутизны активации для всех нейронов во всех скрытых слоях
    • fann_set_activation_steepness_layer - Устанавливает крутизну активации для всех нейронов в указанном номере слоя
    • fann_set_activation_steepness_output - Устанавливает крутизну активации в выходном слое
    • fann_set_bit_fail_limit - Устанавливает предел ошибок, используемый во время обучения
    • fann_set_callback - Устанавливает callback-функцию для использования во время обучения
    • fann_set_cascade_activation_functions - Устанавливает массив каскадных функций активации кандидатов
    • fann_set_cascade_activation_steepnesses - Устанавливает массив крутизны включения кандидатов в каскад
    • fann_set_cascade_candidate_change_fraction - Устанавливает долю каскадного изменения кандидата
    • fann_set_cascade_candidate_limit - Устанавливает лимит кандидатов
    • fann_set_cascade_candidate_stagnation_epochs - Устанавливает количество каскадных периодов застоя кандидатов
    • fann_set_cascade_max_cand_epochs - Устанавливает наибольший период кандидата
    • fann_set_cascade_max_out_epochs - Устанавливает максимальное количество эпох
    • fann_set_cascade_min_cand_epochs - Устанавливает наименьший период кандидата
    • fann_set_cascade_min_out_epochs - Устанавливает минимальные эпохи выходных данных
    • fann_set_cascade_num_candidate_groups - Устанавливает количество групп кандидатов
    • fann_set_cascade_output_change_fraction - Устанавливает долю изменения каскадных выходных данных
    • fann_set_cascade_output_stagnation_epochs - Устанавливает количество периодов стагнации каскадного вывода
    • fann_set_cascade_weight_multiplier - Устанавливает множитель веса
    • fann_set_error_log - Устанавливает, где регистрируются ошибки
    • fann_set_input_scaling_params - Рассчитывает входные параметры масштабирования для будущего использования на основе данных обучения
    • fann_set_learning_momentum - Устанавливает импульс обучения
    • fann_set_learning_rate - Устанавливает скорость обучения
    • fann_set_output_scaling_params - Рассчитывает выходные параметры масштабирования для будущего использования на основе данных обучения
    • fann_set_quickprop_decay - Устанавливает коэффициент затухания quickprop
    • fann_set_quickprop_mu - Устанавливает МЮ-фактор quickprop
    • fann_set_rprop_decrease_factor - Устанавливает коэффициент уменьшения, используемый во время обучения RPROP
    • fann_set_rprop_delta_max - Устанавливает максимальный размер шага
    • fann_set_rprop_delta_min - Устанавливает минимальный размер шага
    • fann_set_rprop_delta_zero - Устанавливает начальный размер шага
    • fann_set_rprop_increase_factor - Устанавливает коэффициент увеличения, используемый во время обучения Rprop
    • fann_set_sarprop_step_error_shift - Устанавливает сдвиг ошибки шага sarprop
    • fann_set_sarprop_step_error_threshold_factor - Устанавливает пороговый коэффициент ошибки шага sarprop
    • fann_set_sarprop_temperature - Устанавливает температуру sarprop
    • fann_set_sarprop_weight_decay_shift - Устанавливает смещение затухания sarprop
    • fann_set_scaling_params - Рассчитывает входные и выходные параметры масштабирования для будущего использования на основе данных обучения
    • fann_set_training_algorithm - Устанавливает алгоритм обучения
    • fann_set_train_error_function - Устанавливает функцию ошибки, используемую во время тренировки
    • fann_set_train_stop_function - Устанавливает функцию остановки, используемую во время тренировки
    • 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 - Отменяет создание 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
    • fclose - Закрывает открытый дескриптор файла
    • fdatasync - Синхронизирует данные (но не метаданные) с файлом
    • fdf_add_doc_javascript - Добавляет код javascript в документ FDF
    • fdf_add_template - Добавляет шаблон в FDF-документ
    • fdf_close - Закрывает FDF-документ
    • fdf_create - Создаёт новый документ FDF
    • fdf_enum_values - Вызывает пользовательскую функцию для каждого значения документа
    • fdf_errno - Возвращает код ошибки для последней операции FDF
    • fdf_error - Возвращает описание ошибки для кода ошибки FDF
    • fdf_get_ap - Получает вид поля
    • fdf_get_attachment - Извлекает загруженный файл, встроенный в FDF
    • fdf_get_encoding - Получает значение ключа /Encoding
    • fdf_get_file - Получает значение ключа /F
    • fdf_get_flags - Получает флаги поля
    • fdf_get_opt - Получает значение из массива opt поля
    • fdf_get_status - Получает значение ключа /STATUS
    • fdf_get_value - Получает значение поля
    • fdf_get_version - Получает номер версии для FDF API или файла
    • fdf_header - Устанавливает специфичные для FDF выходные заголовки
    • fdf_next_field_name - Получает имя следующего поля
    • fdf_open - Открывает документ FDF
    • fdf_open_string - Читает FDF документ из строки
    • fdf_remove_item - Устанавливает целевой фрейм для формы
    • fdf_save - Сохраняет документ FDF
    • fdf_save_string - Возвращает документ FDF в виде строки
    • fdf_set_ap - Устанавливает внешний вид поля
    • fdf_set_encoding - Устанавливает кодировку символов FDF
    • fdf_set_file - Устанавливает PDF-документ для отображения данных FDF
    • fdf_set_flags - Устанавливает флаг поля
    • fdf_set_javascript_action - Устанавливает действие javascript для поля
    • fdf_set_on_import_javascript - Добавляет код JavaScript, который будет выполняться, когда Acrobat открывает FDF
    • fdf_set_opt - Устанавливает параметры поля
    • fdf_set_status - Устанавливает значение ключа /STATUS
    • fdf_set_submit_form_action - Устанавливает действие формы отправки поля
    • fdf_set_target_frame - Устанавливает целевой фрейм для отображения формы
    • fdf_set_value - Устанавливает значение поля
    • fdf_set_version - Устанавливает номер версии для файла FDF
    • fdiv - Делит одно число на другое в соответствии с IEEE 754
    • 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
    • FFI\CType::getAlignment - Описание
    • FFI\CType::getArrayElementType - Описание
    • FFI\CType::getArrayLength - Описание
    • FFI\CType::getAttributes - Описание
    • FFI\CType::getEnumKind - Описание
    • FFI\CType::getFuncABI - Описание
    • FFI\CType::getFuncParameterCount - Описание
    • FFI\CType::getFuncParameterType - Описание
    • FFI\CType::getFuncReturnType - Описание
    • FFI\CType::getKind - Описание
    • FFI\CType::getName - Описание
    • FFI\CType::getPointerType - Описание
    • FFI\CType::getSize - Описание
    • FFI\CType::getStructFieldNames - Описание
    • FFI\CType::getStructFieldOffset - Описание
    • FFI\CType::getStructFieldType - Описание
    • fflush - Сбрасывает буфер вывода в файл
    • fgetc - Считывает символ из файла
    • fgetcsv - Читает строку из файла и производит разбор данных CSV
    • fgets - Читает строку из файла
    • fgetss - Читает строку из файла и удаляет HTML-теги
    • Fiber::getCurrent - Получает текущий выполняющийся экземпляр Fiber
    • Fiber::getReturn - Получает значение, возвращаемое файбером
    • Fiber::isRunning - Определяет, работает ли файбер
    • Fiber::isStarted - Определяет, запущен ли файбер
    • Fiber::isSuspended - Определяет, приостановлен ли файбер
    • Fiber::isTerminated - Определяет, завершён ли файбер
    • Fiber::resume - Возобновляет выполнение файбера со значением
    • Fiber::start - Начинает выполнение файбера
    • Fiber::suspend - Приостанавливает выполнение текущего файбера
    • Fiber::throw - Возобновляет выполнение файбера с исключением
    • Fiber::__construct - Создаёт новый экземпляр Fiber
    • file - Читает содержимое файла и помещает его в массив
    • file:// - Доступ к локальной файловой системе
    • fileatime - Возвращает время последнего доступа к файлу
    • filectime - Возвращает время изменения индексного дескриптора файла
    • filegroup - Получает идентификатор группы файла
    • fileinode - Возвращает индексный дескриптор файла
    • filemtime - Возвращает время последнего изменения файла
    • fileowner - Возвращает идентификатор владельца файла
    • fileperms - Возвращает информацию о правах на файл
    • 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::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 - Закрывает экземпляр finfo
    • finfo_open - Создаёт экземпляр finfo
    • floatval - Возвращает значение переменной в виде числа с плавающей точкой
    • flock - Портируемая консультативная блокировка файлов
    • floor - Округляет дробь в меньшую сторону
    • flush - Сброс системного буфера вывода
    • fmod - Возвращает дробный остаток от деления по модулю
    • fnmatch - Проверяет совпадение имени файла с шаблоном
    • fopen - Открывает файл или URL
    • forward_static_call - Вызов статического метода
    • forward_static_call_array - Вызов статического метода и передача параметров в виде массива
    • fpassthru - Выводит все оставшиеся данные из файлового указателя
    • fpm_get_status - Возвращает текущее состояние пула FPM
    • fprintf - Записывает отформатированную строку в поток
    • fputcsv - Форматирует строку в виде CSV и записывает её в файловый указатель
    • fputs - Псевдоним fwrite
    • fread - Бинарно-безопасное чтение файла
    • frenchtojd - Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении
    • fscanf - Обрабатывает данные из файла в соответствии с форматом
    • fseek - Устанавливает смещение в файловом указателе
    • fsockopen - Открывает соединение с интернет-сокетом или доменным сокетом Unix
    • fstat - Получает информацию о файле, используя открытый файловый указатель
    • fsync - Синхронизирует изменения в файле (включая метаданные)
    • 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::wait - Ожидает активности ввода-вывода для всех подключений на клиенте
    • 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_debug_type - Возвращает имя типа переменной в виде, подходящем для отладки
    • 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_mangled_object_vars - Возвращает массив искажённых свойств объекта
    • get_meta_tags - Извлекает содержимое всех метатегов из файла и возвращает массив
    • get_object_vars - Возвращает свойства указанного объекта
    • get_parent_class - Возвращает имя родительского класса для объекта или класса
    • get_required_files - Псевдоним get_included_files
    • get_resources - Возвращает активные ресурсы
    • get_resource_id - Возвращает целочисленный идентификатор для данного ресурса
    • 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 - Накладывает одно изображение на другое
    • Gmagick::cropimage - Обрезает изображение
    • Gmagick::cropthumbnailimage - Создание обрезанного уменьшенного изображения
    • Gmagick::current - Вернуть самого себя
    • Gmagick::cyclecolormapimage - Смещает цветовую карту изображения
    • Gmagick::deconstructimages - Возвращает определённые пиксельные различия между изображениями
    • Gmagick::despeckleimage - Назначение despeckleimage
    • Gmagick::destroy - Уничтожить объект Gmagick
    • Gmagick::drawimage - Отображает объект GmagickDraw на текущем изображении
    • Gmagick::edgeimage - Увеличивает края в изображении
    • Gmagick::embossimage - Возвращает изображение в градациях серого с трёхмерным эффектом
    • Gmagick::enhanceimage - Улучшает качество изображения с шумом
    • Gmagick::equalizeimage - Выравнивает гистограмму изображения
    • Gmagick::flipimage - Создаёт вертикальное зеркальное отображение
    • Gmagick::flopimage - Создаёт горизонтальное зеркальное отображение
    • Gmagick::frameimage - Добавляет смоделированную трёхмерную границу
    • Gmagick::gammaimage - Гамма-коррекция изображения
    • Gmagick::getcopyright - Возвращает копирайт GraphicsMagick API в виде строки
    • Gmagick::getfilename - Возвращает имя файла связанного с последовательностью изображений
    • Gmagick::getimagebackgroundcolor - Возвращает цвет фона изображения
    • Gmagick::getimageblueprimary - Возвращает цветность синей первичной точки
    • Gmagick::getimagebordercolor - Возвращает цвет границы изображения
    • Gmagick::getimagechanneldepth - Получает глубину для определённого канала изображения
    • Gmagick::getimagecolors - Возвращает цвет указанного индекса карты цветов
    • Gmagick::getimagecolorspace - Возвращает цветовое пространство изображения
    • Gmagick::getimagecompose - Возвращает составной оператор, связанный с изображением
    • Gmagick::getimagedelay - Получает задержку изображения
    • Gmagick::getimagedepth - Получает глубину изображения
    • Gmagick::getimagedispose - Получает метод удаления изображения
    • Gmagick::getimageextrema - Получает экстремумы для изображения
    • Gmagick::getimagefilename - Возвращает имя файла конкретного изображения в последовательности
    • Gmagick::getimageformat - Возвращает формат конкретного изображения в последовательности
    • Gmagick::getimagegamma - Возвращает гамму изображения
    • Gmagick::getimagegreenprimary - Возвращает первичную зелёную точку
    • Gmagick::getimageheight - Возвращает высоту изображения
    • Gmagick::getimagehistogram - Возвращает гистограмму изображения
    • Gmagick::getimageindex - Возвращает индекс текущего активного изображения
    • Gmagick::getimageinterlacescheme - Получает схему чередования изображений
    • Gmagick::getimageiterations - Получает итерации изображения
    • Gmagick::getimagematte - Проверяет, есть ли на изображении матовый канал
    • Gmagick::getimagemattecolor - Возвращает изображение матового цвета
    • Gmagick::getimageprofile - Возвращает именованный профайл изображения
    • Gmagick::getimageredprimary - Возвращает первичную красную точку
    • Gmagick::getimagerenderingintent - Получает цель рендеринга изображения
    • Gmagick::getimageresolution - Возвращает разрешение изображения
    • Gmagick::getimagescene - Получает сцену изображения
    • Gmagick::getimagesignature - Создаёт подпись сообщения SHA-256
    • 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 - Создаёт копию изображения
    • Gmagick::labelimage - Добавляет метку к изображению
    • Gmagick::levelimage - Регулирует уровни изображения
    • Gmagick::magnifyimage - Пропорционально масштабирует изображение в 2 раза
    • Gmagick::mapimage - Заменяет цвета изображения на ближайший цвет из эталонного изображения
    • Gmagick::medianfilterimage - Применяет цифровой фильтр
    • Gmagick::minifyimage - Масштабирует изображение пропорционально половине его размера
    • Gmagick::modulateimage - Управляет яркостью, насыщенностью и оттенком
    • Gmagick::motionblurimage - Имитирует размытие при движении
    • Gmagick::newimage - Создаёт новое изображение
    • Gmagick::nextimage - Осуществляет переход к следующему изображению
    • Gmagick::normalizeimage - Повышает контрастность цветного изображения
    • Gmagick::oilpaintimage - Имитирует эффект картины маслом
    • Gmagick::previousimage - Осуществляет переход к предыдущему изображению в объекте
    • Gmagick::profileimage - Добавляет или удаляет профиль из изображения
    • Gmagick::quantizeimage - Анализирует цвета эталонного изображения
    • Gmagick::quantizeimages - Анализирует цвета в последовательности изображений
    • Gmagick::queryfontmetrics - Возвращает массив, представляющий метрики шрифта
    • Gmagick::queryfonts - Возвращает настроенные шрифты
    • Gmagick::queryformats - Возвращает форматы, поддерживаемые Gmagick
    • Gmagick::radialblurimage - Применяет радиальное размытие к изображению
    • Gmagick::raiseimage - Создаёт имитацию эффекта трёхмерной кнопки
    • Gmagick::read - Читает изображение из файла
    • Gmagick::readimage - Читает изображение из файла
    • Gmagick::readimageblob - Читает изображение из бинарной строки
    • Gmagick::readimagefile - Читает изображение или последовательность изображений из файлового дескриптора
    • Gmagick::reducenoiseimage - Сглаживает контуры изображения
    • Gmagick::removeimage - Удаляет изображение из списка
    • Gmagick::removeimageprofile - Удаляет именованный профайл изображения и возвращает его
    • Gmagick::resampleimage - Изменяет разрешение изображения до желаемого
    • Gmagick::resizeimage - Масштабирует изображение
    • Gmagick::rollimage - Смещает изображение
    • Gmagick::rotateimage - Поворачивает изображение
    • Gmagick::scaleimage - Масштабирует размер изображения
    • Gmagick::separateimagechannel - Отделяет канал от изображения
    • Gmagick::setCompressionQuality - Устанавливает качество сжатия объекта по умолчанию
    • Gmagick::setfilename - Устанавливает имя файла перед чтением или записью изображения
    • Gmagick::setimagebackgroundcolor - Устанавливает цвет фона изображения
    • Gmagick::setimageblueprimary - Устанавливает цветность изображения голубой основной точкой
    • Gmagick::setimagebordercolor - Устанавливает цвет рамки изображения
    • Gmagick::setimagechanneldepth - Устанавливает глубину определённого канала изображения
    • Gmagick::setimagecolorspace - Устанавливает цветовое пространство изображения
    • Gmagick::setimagecompose - Устанавливает оператор составного изображения
    • Gmagick::setimagedelay - Устанавливает задержку изображения
    • Gmagick::setimagedepth - Устанавливает глубину изображения
    • Gmagick::setimagedispose - Устанавливает метод удаления изображения
    • Gmagick::setimagefilename - Устанавливает имя файла конкретного изображения в последовательности
    • Gmagick::setimageformat - Устанавливает формат определённого изображения
    • Gmagick::setimagegamma - Устанавливает гамму изображения
    • Gmagick::setimagegreenprimary - Устанавливает цветность изображения зелёной первичной точкой
    • Gmagick::setimageindex - Устанавливает итератор в положение в списке изображений, заданном параметром index
    • Gmagick::setimageinterlacescheme - Устанавливает схему чересстрочной развёртки изображения
    • Gmagick::setimageiterations - Устанавливает итерации изображения
    • Gmagick::setimageprofile - Добавляет именованный профиль в объект Gmagick
    • Gmagick::setimageredprimary - Устанавливает цветность изображения красной основной точкой
    • Gmagick::setimagerenderingintent - Устанавливает способ рендеринга изображения
    • Gmagick::setimageresolution - Устанавливает разрешение изображения
    • Gmagick::setimagescene - Устанавливает сцену изображения
    • Gmagick::setimagetype - Устанавливает тип изображения
    • Gmagick::setimageunits - Устанавливает единицы разрешения изображения
    • Gmagick::setimagewhitepoint - Устанавливает цветность изображения белой точкой
    • Gmagick::setsamplingfactors - Устанавливает факторы выборки изображения
    • Gmagick::setsize - Устанавливает размер объекта Gmagick
    • Gmagick::shearimage - Создаёт параллелограмм
    • Gmagick::solarizeimage - Применяет соляризационный эффект к изображению
    • Gmagick::spreadimage - Случайно смещает каждый пиксель в блоке
    • Gmagick::stripimage - Снимает изображение всех профилей и комментариев
    • Gmagick::swirlimage - Закручивает пиксели вокруг центра изображения
    • Gmagick::thumbnailimage - Изменяет размер изображения
    • Gmagick::trimimage - Удаляет края с изображения
    • Gmagick::write - Псевдоним Gmagick::writeimage
    • Gmagick::writeimage - Записывает изображение в указанный файл
    • Gmagick::__construct - Конструктор объекта Gmagick
    • GmagickDraw::annotate - Рисует текст на изображении
    • GmagickDraw::arc - Рисует дугу
    • GmagickDraw::bezier - Рисует кривую Безье
    • GmagickDraw::ellipse - Рисует эллипс на изображении
    • GmagickDraw::getfillcolor - Возвращает цвет заливки
    • GmagickDraw::getfillopacity - Возвращает значение прозрачности, используемое при рисовании
    • GmagickDraw::getfont - Возвращает шрифт
    • GmagickDraw::getfontsize - Возвращает размер шрифта
    • GmagickDraw::getfontstyle - Возвращает стиль шрифта
    • GmagickDraw::getfontweight - Возвращает толщину шрифта
    • GmagickDraw::getstrokecolor - Возвращает цвет, используемый для обводки контуров объекта
    • GmagickDraw::getstrokeopacity - Возвращает прозрачность обведённых контуров объекта
    • GmagickDraw::getstrokewidth - Возвращает ширину обводки, используемой для отрисовки контуров объекта
    • GmagickDraw::gettextdecoration - Возвращает оформление текста
    • GmagickDraw::gettextencoding - Возвращает кодовый набор, используемый для текстовых аннотаций
    • GmagickDraw::line - Рисует линию
    • GmagickDraw::point - Рисует точку
    • GmagickDraw::polygon - Рисует многоугольник
    • GmagickDraw::polyline - Рисует ломаную линию
    • GmagickDraw::rectangle - Рисует прямоугольник
    • GmagickDraw::rotate - Применяет указанный поворот к текущему координатному пространству
    • GmagickDraw::roundrectangle - Рисует прямоугольник с закруглёнными углами
    • GmagickDraw::scale - Регулирует коэффициент масштабирования
    • GmagickDraw::setfillcolor - Устанавливает цвет заливки, который будет использоваться для рисования объектов с заливкой
    • GmagickDraw::setfillopacity - Устанавливает непрозрачность заливки
    • GmagickDraw::setfont - Устанавливает указанный шрифт для использования при аннотации текста
    • GmagickDraw::setfontsize - Устанавливает размер шрифта для использования при аннотации текста
    • GmagickDraw::setfontstyle - Устанавливает стиль шрифта для использования при аннотации текста
    • GmagickDraw::setfontweight - Устанавливает толщину шрифта
    • GmagickDraw::setstrokecolor - Устанавливает цвет, используемый для обводки контуров объекта
    • GmagickDraw::setstrokeopacity - Определяет прозрачность обводки контуров объекта
    • GmagickDraw::setstrokewidth - Устанавливает ширину обводки, используемой для отрисовки контуров объекта
    • GmagickDraw::settextdecoration - Определяет оформление
    • GmagickDraw::settextencoding - Задаёт кодовый набор текста
    • GmagickPixel::getcolor - Возвращает цвет
    • GmagickPixel::getcolorcount - Получить количество пикселей изображения, имеющих заданный цвет
    • GmagickPixel::getcolorvalue - Возвращает нормализованное значение для заданного цветового канала
    • GmagickPixel::setcolor - Задать цвет
    • GmagickPixel::setcolorvalue - Установить нормализованное значение цветового канала
    • GmagickPixel::__construct - Конструктора класса GmagickPixel
    • gmdate - Форматирует дату/время по Гринвичу
    • gmmktime - Возвращает локальную метку времени Unix для времени по Гринвичу
    • GMP::__construct - Create GMP number
    • GMP::__serialize - Сериализует объект GMP
    • GMP::__unserialize - Десериализует параметр data в объект GMP
    • 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 - Random number
    • gmp_random_range - Get a uniformly selected integer
    • 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_deletekey - Удаляет ключ из связки ключей
    • gnupg_encrypt - Шифрует заданный текст
    • gnupg_encryptsign - Шифрует и подписывает переданный текст
    • gnupg_export - Экспортирует ключ
    • gnupg_getengineinfo - Возвращает информацию о движке
    • gnupg_geterror - Возвращает текст сообщения об ошибке, если функция не была выполнена
    • gnupg_geterrorinfo - Возвращает информацию об ошибке
    • gnupg_getprotocol - Возвращает текущий активный протокол для всех операций
    • gnupg_gettrustlist - Поиск доверительных элементов
    • gnupg_import - Импортирует ключ
    • gnupg_init - Инициализировать GnuPG
    • gnupg_keyinfo - Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону
    • gnupg_listsignatures - Перечисляет подписи ключа
    • gnupg_setarmor - Переключает вывод в текстовом или бинарном режиме
    • gnupg_seterrormode - Устанавливает режим отчётов об ошибках (error_reporting)
    • gnupg_setsignmode - Устанавливает режим подписывания
    • gnupg_sign - Подписывает переданный текст
    • gnupg_verify - Проверяет подпись текста
    • grapheme_extract - Функция для извлечения последовательности кластеров графем по умолчанию из текстового буфера, которая должна быть закодирована в UTF-8
    • grapheme_stripos - Находит позицию (в единицах графемы) первого появления строки без учёта регистра
    • grapheme_stristr - Возвращает часть строки haystack от первого появления needle без учёта регистра до конца haystack
    • grapheme_strlen - Получает длину строки в единицах графемы
    • grapheme_strpos - Находит позицию (в единицах графемы) первого вхождения строки
    • grapheme_strripos - Находит позицию (в единицах графемы) последнего вхождения строки без учёта регистра
    • grapheme_strrpos - Находит позицию (в единицах графемы) последнего вхождения строки
    • grapheme_strstr - Возвращает часть строки haystack от первого появления needle до конца haystack
    • grapheme_substr - Возвращает часть строки
    • gregoriantojd - Преобразует дату по григорианскому календарю в количество дней в юлианском летоисчислении
    • 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
    • hash - Генерирует хеш-код (подпись сообщения)
    • HashContext::__construct - Закрытый конструктор для запрета непосредственного создания объекта
    • HashContext::__serialize - Сериализует объект HashContext
    • HashContext::__unserialize - Десериализует параметр data в объект HashContext
    • 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
    • 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 - Возвращает количество полей в результирующем наборе
    • ibase_num_params - Возвращает количество параметров в подготовленном запросе
    • ibase_param_info - Возвращает информацию о параметре в подготовленном запросе
    • ibase_pconnect - Открывает постоянное соединение с базой данных InterBase
    • ibase_prepare - Подготавливает запрос для последующего связывания псевдопеременных и выполнения
    • ibase_query - Выполняет запрос к базе данных InterBase
    • ibase_restore - Запускает задачу восстановления в диспетчере служб и немедленно возвращается
    • ibase_rollback - Откатывает транзакцию
    • ibase_rollback_ret - Откатывает транзакцию, не закрывая её
    • ibase_server_info - Запрашивает информацию о сервере базы данных
    • ibase_service_attach - Подключается к диспетчеру служб
    • ibase_service_detach - Отключается от диспетчера служб
    • ibase_set_event_handler - Регистрирует callback-функцию, которая будет вызываться при публикации событий
    • ibase_trans - Начинает транзакцию
    • 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 - Получение части строки
    • idate - Преобразует локальное время/дату в целое число
    • idn_to_ascii - Преобразовать доменное имя в формат IDNA ASCII
    • idn_to_utf8 - Преобразование доменного имени из IDNA ASCII в Unicode
    • igbinary_serialize - Создаёт компактное, сохраняемое двоичное представление значения
    • igbinary_unserialize - Создаёт значение PHP из сохранённого представления функцией igbinary_serialize
    • ignore_user_abort - Установить, должно ли отключение клиента прерывать выполнение скрипта
    • image2wbmp - Выводит изображение в браузер или пишет в файл
    • imageaffine - Вернуть изображение, содержащее аффинно-преобразованное изображение src, используя дополнительную область ограничения
    • imageaffinematrixconcat - Конкатенирует две аффинные матрицы преобразования
    • imageaffinematrixget - Получает матрицу аффинного преобразования
    • imagealphablending - Задание режима сопряжения цветов для изображения
    • imageantialias - Требуется ли применять функции сглаживания или нет
    • imagearc - Рисование дуги
    • imageavif - Выводит изображение в браузер или пишет в файл
    • 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 - Создание нового палитрового изображения
    • imagecreatefromavif - Создаёт новое изображение из файла или URL
    • imagecreatefrombmp - Создаёт новое изображение из файла или URL
    • imagecreatefromgd - Создание нового изображения на основе GD файла или URL
    • imagecreatefromgd2 - Создание нового изображения на основе GD2 или URL
    • imagecreatefromgd2part - Создание нового изображения на основе части GD2 файла или URL
    • imagecreatefromgif - Создаёт новое изображение из файла или URL
    • imagecreatefromjpeg - Создаёт новое изображение из файла или URL
    • imagecreatefrompng - Создаёт новое изображение из файла или URL
    • imagecreatefromstring - Создание нового изображения из потока представленного строкой
    • imagecreatefromtga - Создаёт новое изображение из файла или URL
    • imagecreatefromwbmp - Создаёт новое изображение из файла или URL
    • imagecreatefromwebp - Создаёт новое изображение из файла или URL
    • imagecreatefromxbm - Создаёт новое изображение из файла или URL
    • imagecreatefromxpm - Создаёт новое изображение из файла или URL
    • imagecreatetruecolor - Создание нового полноцветного изображения
    • imagecrop - Обрезать изображение до заданного прямоугольника
    • imagecropauto - Обрезает изображение автоматически, используя один из доступных режимов
    • imagedashedline - Рисование пунктирной линии
    • imagedestroy - Уничтожение изображения
    • imageellipse - Рисование эллипса
    • imagefill - Заливка
    • imagefilledarc - Рисование и заливка дуги
    • imagefilledellipse - Рисование закрашенного эллипса
    • imagefilledpolygon - Рисование закрашенного многоугольника
    • imagefilledrectangle - Рисование закрашенного прямоугольника
    • imagefilltoborder - Заливка цветом
    • imagefilter - Применяет фильтр к изображению
    • imageflip - Переворачивает изображение, используя выбранный режим
    • imagefontheight - Получение высоты шрифта
    • imagefontwidth - Получение ширины шрифта
    • imageftbbox - Определение границ текста выводимого шрифтом freetype2
    • imagefttext - Нанесение текста на изображение, используя шрифты FreeType 2
    • imagegammacorrect - Применение гамма коррекции к GD изображению
    • imagegd - Вывод GD-изображения в браузер или в файл
    • imagegd2 - Вывод GD2 изображения в браузер или файл
    • imagegetclip - Получить отсекающий прямоугольник
    • imagegetinterpolation - Получает метод интерполяции
    • imagegif - Выводит изображение в браузер или пишет в файл
    • imagegrabscreen - Захватывает изображение с экрана
    • imagegrabwindow - Захватывает изображение окна
    • imageinterlace - Включение или выключение интерлейсинга
    • imageistruecolor - Определяет, является ли изображение полноцветным
    • imagejpeg - Выводит изображение в браузер или пишет в файл
    • imagelayereffect - Установка флага альфа сопряжения для использования эффектов наложения изображений
    • imageline - Рисование линии
    • imageloadfont - Загрузка шрифта
    • imageopenpolygon - Рисует открытый полигон
    • imagepalettecopy - Копирование палитры из одного изображения в другое
    • imagepalettetotruecolor - Преобразует изображение на основе палитры в настоящий цвет
    • imagepng - Вывод PNG изображения в браузер или файл
    • imagepolygon - Рисование многоугольника
    • imagerectangle - Рисование прямоугольника
    • imageresolution - Получить или установить разрешение изображения
    • imagerotate - Поворот изображения с заданным углом
    • imagesavealpha - Сохранять ли полную информацию альфа-канала при сохранении изображений
    • imagescale - Масштабировать изображение по заданной ширине и высоте
    • imagesetbrush - Установка изображения (кисти), посредством которого будут рисоваться линии
    • imagesetclip - Установите прямоугольник ограничения
    • imagesetinterpolation - Устанавливает метод интерполяции
    • 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 - Настраивает уровни определённого канала изображения
    • Imagick::averageImages - Усредняет набор изображений
    • Imagick::blackThresholdImage - Перевести все пиксели ниже порогового значения в чёрный цвет
    • Imagick::blueShiftImage - Приглушает цвета изображения
    • Imagick::blurImage - Добавляет фильтр размытия к изображению
    • Imagick::borderImage - Окружает изображение рамкой
    • Imagick::brightnessContrastImage - Изменяет яркость и/или контраст изображения
    • Imagick::charcoalImage - Рисование углём
    • Imagick::chopImage - Удаляет область изображения и обрезает его
    • Imagick::clampImage - Ограничивает диапазон цветов от 0 до квантовой глубины
    • Imagick::clear - Очищает все ресурсы, связанные с объектом Imagick
    • Imagick::clipImage - Обрезка вдоль ближайшего контура с профилем 8BIM
    • Imagick::clipImagePath - Клипы вдоль именованных путей из профиля 8BIM, если они есть
    • Imagick::clipPathImage - Отсечь вдоль обозначенного контура с профилем 8BIM
    • Imagick::clone - Создаёт точную копию объекта Imagick
    • Imagick::clutImage - Заменяет цвета в изображении
    • Imagick::coalesceImages - Компонует набор изображений
    • Imagick::colorFloodfillImage - Изменяет значение цвета любого пикселя, соответствующего целевому
    • Imagick::colorizeImage - Смешивание цвета заливки с изображением
    • Imagick::colorMatrixImage - Применяет преобразование цвета к изображению
    • Imagick::combineImages - Объединяет одно или несколько изображений в одно изображение
    • Imagick::commentImage - Добавляет комментарий к вашему изображению
    • Imagick::compareImageChannels - Возвращает разницу в одном или нескольких изображениях
    • Imagick::compareImageLayers - Возвращает максимальную ограничивающую область между изображениями
    • Imagick::compareImages - Сравнивает изображение с восстановленным изображением
    • Imagick::compositeImage - Накладывает одно изображение на другое
    • Imagick::contrastImage - Изменяет контраст изображения
    • Imagick::contrastStretchImage - Повышает контрастность цветного изображения
    • Imagick::convolveImage - Применяет пользовательское ядро свёртки к изображению
    • Imagick::count - Получает количество изображений
    • Imagick::cropImage - Извлекает область изображения
    • Imagick::cropThumbnailImage - Создаёт обрезанную миниатюру
    • Imagick::current - Возвращает ссылку на текущий объект Imagick
    • Imagick::cycleColormapImage - Отображает цветовую карту изображения
    • Imagick::decipherImage - Расшифровывает изображение
    • Imagick::deconstructImages - Возвращает определённые пиксельные различия между изображениями
    • Imagick::deleteImageArtifact - Удаляет артефакт изображения
    • Imagick::deleteImageProperty - Удаляет свойство изображения
    • Imagick::deskewImage - Удаляет перекос с изображения
    • Imagick::despeckleImage - Уменьшает спекл-шум на изображении
    • Imagick::destroy - Удаляет объект Imagick
    • Imagick::displayImage - Выводит изображение
    • Imagick::displayImages - Выводит изображение или последовательность изображений
    • Imagick::distortImage - Искажает изображение, используя различные методы искажения
    • Imagick::drawImage - Выполняет рендеринг объекта ImagickDraw на текущем изображении
    • Imagick::edgeImage - Усиливает края в изображении
    • Imagick::embossImage - Возвращает изображение в градациях серого с трёхмерным эффектом
    • Imagick::encipherImage - Шифрует изображение
    • Imagick::enhanceImage - Улучшает качество шумного изображения
    • Imagick::equalizeImage - Выравнивает гистограмму изображения
    • Imagick::evaluateImage - Применяет выражение к изображению
    • Imagick::exportImagePixels - Экспортирует пиксели изображения
    • Imagick::extentImage - Устанавливает размер изображения
    • Imagick::filter - Применяет пользовательское ядро свёртки к изображению
    • Imagick::flattenImages - Объединяет последовательность изображений
    • Imagick::flipImage - Создаёт вертикальное зеркало изображения
    • Imagick::floodFillPaintImage - Изменяет значение цвета любого пикселя, соответствующего целевому
    • Imagick::flopImage - Создаёт горизонтальное зеркальное отображение
    • Imagick::forwardFourierTransformImage - Реализует дискретное преобразование Фурье
    • Imagick::frameImage - Добавляет имитацию трёхмерной границы
    • Imagick::functionImage - Применяет функцию к изображению
    • Imagick::fxImage - Оценивает выражение для каждого пикселя в изображении
    • Imagick::gammaImage - Гамма-коррекция изображения
    • Imagick::gaussianBlurImage - Размывает изображение
    • 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 - Возвращает артефакт изображения
    • Imagick::getImageAttribute - Возвращает именованный атрибут
    • Imagick::getImageBackgroundColor - Возвращает цвет фона изображения
    • Imagick::getImageBlob - Возвращает последовательность изображений в виде BLOB
    • Imagick::getImageBluePrimary - Возвращает основную точку синего цвета для изображения
    • Imagick::getImageBorderColor - Возвращает цвет рамки изображения
    • Imagick::getImageChannelDepth - Возвращает глубину для определённого канала изображения
    • Imagick::getImageChannelDistortion - Сравнивает каналы изображения с восстановленным изображением
    • Imagick::getImageChannelDistortions - Возвращает искажения канала
    • Imagick::getImageChannelExtrema - Возвращает экстремумы для одного или нескольких каналов изображения
    • Imagick::getImageChannelKurtosis - Возвращает эксцесс и асимметрию определённого канала
    • Imagick::getImageChannelMean - Возвращает среднее и стандартное отклонение
    • Imagick::getImageChannelRange - Возвращает диапазон каналов
    • Imagick::getImageChannelStatistics - Возвращает статистику для каждого канала изображения
    • Imagick::getImageClipMask - Возвращает обтравочную маску изображения
    • Imagick::getImageColormapColor - Возвращает цвет указанного индекса палитры
    • Imagick::getImageColors - Возвращает число уникальных цветов в изображении
    • Imagick::getImageColorspace - Возвращает цветовую палитру изображения
    • Imagick::getImageCompose - Возвращает составной оператор, связанный с изображением
    • Imagick::getImageCompression - Возвращает текущий тип компрессии изображения
    • Imagick::getImageCompressionQuality - Возвращает текущее качество сжатия изображения
    • Imagick::getImageDelay - Возвращает задержку изображения
    • Imagick::getImageDepth - Возвращает глубину изображения
    • Imagick::getImageDispose - Возвращает метод удаления изображения
    • Imagick::getImageDistortion - Сравнивает изображение с восстановленным изображением
    • Imagick::getImageExtrema - Возвращает экстремумы изображения
    • Imagick::getImageFilename - Возвращает имя файла конкретного изображения в последовательности
    • Imagick::getImageFormat - Возвращает формат конкретного изображения в последовательности
    • Imagick::getImageGamma - Возвращает гамму изображения
    • Imagick::getImageGeometry - Возвращает ширину и высоту в виде ассоциативного массива
    • Imagick::getImageGravity - Возвращает значение гравитации (притяжения)
    • Imagick::getImageGreenPrimary - Возвращает первичную точку цветности зелёного
    • Imagick::getImageHeight - Возвращает высоту изображения
    • Imagick::getImageHistogram - Возвращает гистограмму изображения
    • Imagick::getImageIndex - Возвращает индекс текущего активного изображения
    • Imagick::getImageInterlaceScheme - Получает схему чересстрочного изображения
    • Imagick::getImageInterpolateMethod - Возвращает метод интерполяции
    • Imagick::getImageIterations - Возвращает итерации изображения
    • Imagick::getImageLength - Возвращает длину изображения в байтах
    • Imagick::getImageMatte - Возвращает, если изображение содержит матовый канал
    • Imagick::getImageMatteColor - Возвращает матовый цвет изображения
    • Imagick::getImageMimeType - Возвращает MIME-тип изображения
    • Imagick::getImageOrientation - Возвращает ориентацию изображения
    • Imagick::getImagePage - Возвращает геометрию страницы
    • Imagick::getImagePixelColor - Возвращает цвет указанного пикселя
    • Imagick::getImageProfile - Возвращает именованный профиль изображения
    • Imagick::getImageProfiles - Возвращает профили изображений
    • Imagick::getImageProperties - Возвращает свойства изображения
    • Imagick::getImageProperty - Возвращает именованное свойство изображения
    • Imagick::getImageRedPrimary - Возвращает красную первичную точку цветности
    • Imagick::getImageRegion - Извлекает область изображения
    • Imagick::getImageRenderingIntent - Возвращает схему цветопередачи изображения
    • Imagick::getImageResolution - Возвращает разрешение изображения по X и Y
    • Imagick::getImagesBlob - Возвращает все последовательности изображений в виде большого двоичного объекта
    • Imagick::getImageScene - Возвращает сцену изображения
    • Imagick::getImageSignature - Генерирует хеш SHA-256
    • Imagick::getImageSize - Возвращает размер изображения в байтах
    • Imagick::getImageTicksPerSecond - Получает количество кадров в секунду для изображения
    • Imagick::getImageTotalInkDensity - Возвращает общую плотность чернил изображения
    • Imagick::getImageType - Возвращает возможный тип изображения
    • Imagick::getImageUnits - Возвращает единицы измерения разрешения изображения
    • Imagick::getImageVirtualPixelMethod - Возвращает метод виртуального пикселя
    • Imagick::getImageWhitePoint - Возвращает белую точку цветности
    • Imagick::getImageWidth - Возвращает ширину изображения
    • Imagick::getInterlaceScheme - Получает схему сжатия изображения
    • Imagick::getIteratorIndex - Возвращает индекс текущего активного изображения
    • Imagick::getNumberImages - Возвращает количество изображений в объекте
    • Imagick::getOption - Возвращает значение, связанное с указанным ключом
    • Imagick::getPackageName - Возвращает имя пакета ImageMagick
    • Imagick::getPage - Возвращает геометрию страницы
    • Imagick::getPixelIterator - Возвращает MagickPixelIterator
    • Imagick::getPixelRegionIterator - Возвращает объект ImagickPixelIterator для секции изображения
    • Imagick::getPointSize - Возвращает размер точки
    • Imagick::getQuantum - Возвращает квантовый диапазон ImageMagick
    • Imagick::getQuantumDepth - Возвращает величину глубины
    • Imagick::getQuantumRange - Возвращает величину размера спектра Imagick
    • Imagick::getRegistry - Получает запись StringRegistry
    • Imagick::getReleaseDate - Возвращает дату релиза ImageMagick
    • Imagick::getResource - Возвращает размер используемой памяти указанного ресурса
    • Imagick::getResourceLimit - Возвращает заданный лимит ресурсов
    • Imagick::getSamplingFactors - Возвращает горизонтальный и вертикальный фактор выборки
    • Imagick::getSize - Возвращает размер, связанный с объектом Imagick
    • Imagick::getSizeOffset - Возвращает размер смещения
    • Imagick::getVersion - Возвращает версию API ImageMagick
    • Imagick::haldClutImage - Заменяет цвета в изображении
    • Imagick::hasNextImage - Проверяет, содержит ли объект больше изображений
    • Imagick::hasPreviousImage - Проверяет, есть ли у объекта предыдущее изображение
    • Imagick::identifyFormat - Заменяет любые встроенные символы форматирования соответствующим свойством изображения
    • Imagick::identifyImage - Определяет изображение и получает атрибуты
    • Imagick::implodeImage - Создаёт копию изображения
    • Imagick::importImagePixels - Импортирует пиксели изображения
    • Imagick::inverseFourierTransformImage - Реализует дискретное преобразование Фурье
    • Imagick::labelImage - Добавляет метку к изображению
    • Imagick::levelImage - Регулирует уровни изображения
    • Imagick::linearStretchImage - Растягивает с насыщением яркость изображения
    • Imagick::liquidRescaleImage - Анимирует изображение или изображения
    • Imagick::listRegistry - Перечисляет все настройки реестра
    • Imagick::magnifyImage - Пропорционально масштабирует изображение в два раза
    • Imagick::mapImage - Заменяет цвета изображения на ближайший цвет из эталонного изображения
    • Imagick::matteFloodfillImage - Изменяет значение прозрачности цвета
    • Imagick::medianFilterImage - Применяет цифровой фильтр
    • Imagick::mergeImageLayers - Объединяет слои изображения
    • Imagick::minifyImage - Масштабирует изображение пропорционально половине его размера
    • Imagick::modulateImage - Управляйте яркостью, насыщенностью и оттенком
    • Imagick::montageImage - Создаёт составное изображение
    • Imagick::morphImages - Преобразует набор изображений
    • Imagick::morphology - Применяет к изображению ядро, предоставленное пользователем, в соответствии с заданным методом морфологии
    • Imagick::mosaicImages - Формирует мозаику из изображений
    • Imagick::motionBlurImage - Имитирует размытие в движении
    • Imagick::negateImage - Инвертирует цвета в эталонном изображении
    • Imagick::newImage - Создаёт новое изображение
    • Imagick::newPseudoImage - Создаёт новое изображение
    • Imagick::nextImage - Переходит к следующему изображению
    • Imagick::normalizeImage - Повышает контрастность цветного изображения
    • Imagick::oilPaintImage - Имитирует картину маслом
    • Imagick::opaquePaintImage - Изменяет значение цвета любого пикселя, соответствующего целевому
    • Imagick::optimizeImageLayers - Удаляет повторяющиеся части изображений для оптимизации
    • Imagick::orderedPosterizeImage - Выполняет упорядоченный дизеринг
    • Imagick::paintFloodfillImage - Изменяет значение цвета любого пикселя, соответствующего цели
    • Imagick::paintOpaqueImage - Изменяет любой пиксель, соответствующий цвету
    • Imagick::paintTransparentImage - Изменяет любой пиксель, соответствующий цвету, на цвет, определённый заливкой
    • Imagick::pingImage - Получает основные атрибуты изображения
    • Imagick::pingImageBlob - Быстро извлекает атрибуты
    • Imagick::pingImageFile - Получает базовые атрибуты изображения упрощённым способом
    • Imagick::polaroidImage - Имитирует фото Polaroid
    • Imagick::posterizeImage - Уменьшает изображение до ограниченного количества уровней цвета
    • Imagick::previewImages - Быстрое определение подходящих параметров для обработки изображений
    • Imagick::previousImage - Переходит к предыдущему изображению в объекте
    • Imagick::profileImage - Добавляет или удаляет профиль изображения
    • Imagick::quantizeImage - Анализирует цвета эталонного изображения
    • Imagick::quantizeImages - Анализирует цвета в последовательности изображений
    • Imagick::queryFontMetrics - Возвращает массив, представляющий метрики шрифта
    • Imagick::queryFonts - Возвращает настроенные шрифты
    • Imagick::queryFormats - Возвращает форматы, поддерживаемые Imagick
    • Imagick::radialBlurImage - Радиальное размытие изображения
    • Imagick::raiseImage - Создаёт имитацию эффекта 3D-кнопки
    • Imagick::randomThresholdImage - Создаёт высококонтрастное двухцветное изображение
    • Imagick::readImage - Читает изображение из файла
    • Imagick::readImageBlob - Считывает изображение из двоичной строки
    • Imagick::readImageFile - Читает изображение из открытого дескриптора файла
    • Imagick::readimages - Читает изображение из массива имён файлов
    • Imagick::recolorImage - Перекрашивает изображение
    • Imagick::reduceNoiseImage - Сглаживает контуры изображения
    • Imagick::remapImage - Переназначает цвета изображения
    • Imagick::removeImage - Удаляет изображение из списка изображений
    • Imagick::removeImageProfile - Удаляет именованный профиль изображения и возвращает его
    • Imagick::render - Отображает все предыдущие команды рисования
    • Imagick::resampleImage - Преобразует изображение к желаемому разрешению
    • Imagick::resetImagePage - Сбрасывает страницу изображения
    • Imagick::resizeImage - Масштабирует изображение
    • Imagick::rollImage - Смещает изображение
    • Imagick::rotateImage - Поворачивает изображение
    • Imagick::rotationalBlurImage - Применяет вращательное размытие к изображению
    • Imagick::roundCorners - Скругляет углы изображения
    • Imagick::sampleImage - Масштабирует изображение с пиксельной выборкой
    • Imagick::scaleImage - Масштабирует размер изображения
    • Imagick::segmentImage - Сегментирует изображение
    • Imagick::selectiveBlurImage - Выборочное размытие изображения в пределах порогового значения контрастности
    • Imagick::separateImageChannel - Отделяет канал от изображения
    • Imagick::sepiaToneImage - Тонирование изображения сепией
    • Imagick::setBackgroundColor - Устанавливает цвет фона объекта по умолчанию
    • Imagick::setColorspace - Устанавливает цветовое пространство
    • Imagick::setCompression - Устанавливает тип сжатия объекта по умолчанию
    • Imagick::setCompressionQuality - Устанавливает качество сжатия объекта по умолчанию
    • Imagick::setFilename - Устанавливает имя файла перед чтением или записью изображения
    • Imagick::setFirstIterator - Устанавливает итератор Imagick для первого изображения
    • Imagick::setFont - Устанавливает шрифт
    • Imagick::setFormat - Устанавливает формат объекта Imagick
    • Imagick::setGravity - Устанавливает гравитацию
    • Imagick::setImage - Заменяет изображение в объекте
    • Imagick::setImageAlphaChannel - Устанавливает альфа-канал изображения
    • Imagick::setImageArtifact - Устанавливает артефакт изображения
    • Imagick::setImageAttribute - Устанавливает атрибут изображения
    • Imagick::setImageBackgroundColor - Устанавливает цвет фона изображения
    • Imagick::setImageBias - Устанавливает смещение изображения для любого метода, который свёртывает изображение
    • Imagick::setImageBiasQuantum - Устанавливает смещение изображения
    • Imagick::setImageBluePrimary - Устанавливает цветность изображения голубой основной точкой
    • Imagick::setImageBorderColor - Устанавливает цвет рамки изображения
    • Imagick::setImageChannelDepth - Устанавливает глубину определённого канала изображения
    • Imagick::setImageClipMask - Устанавливает маску клипа
    • Imagick::setImageColormapColor - Устанавливает цвет указанного индекса цветовой карты
    • Imagick::setImageColorspace - Устанавливает цветовое пространство изображения
    • Imagick::setImageCompose - Устанавливает оператор составного изображения
    • Imagick::setImageCompression - Устанавливает сжатие изображения
    • Imagick::setImageCompressionQuality - Устанавливает качество сжатия изображения
    • Imagick::setImageDelay - Устанавливает задержку изображения
    • Imagick::setImageDepth - Устанавливает глубину изображения
    • Imagick::setImageDispose - Устанавливает метод удаления изображения
    • Imagick::setImageExtent - Устанавливает размер изображения
    • Imagick::setImageFilename - Устанавливает имя файла конкретного изображения
    • Imagick::setImageFormat - Устанавливает формат определённого изображения
    • Imagick::setImageGamma - Устанавливает гамму изображения
    • Imagick::setImageGravity - Устанавливает гравитацию изображения
    • Imagick::setImageGreenPrimary - Устанавливает цветность изображения зелёной первичной точкой
    • Imagick::setImageIndex - Устанавливает позицию итератора
    • Imagick::setImageInterlaceScheme - Устанавливает сжатие изображения
    • Imagick::setImageInterpolateMethod - Устанавливает метод интерполяции пикселей изображения
    • Imagick::setImageIterations - Устанавливает итерации изображения
    • Imagick::setImageMatte - Устанавливает матовый канал изображения
    • Imagick::setImageMatteColor - Устанавливает матовый цвет изображения
    • Imagick::setImageOpacity - Устанавливает уровень непрозрачности изображения
    • Imagick::setImageOrientation - Устанавливает ориентацию изображения
    • Imagick::setImagePage - Устанавливает геометрию страницы изображения
    • Imagick::setImageProfile - Добавляет именованный профиль к объекту Imagick
    • Imagick::setImageProperty - Устанавливает свойство изображения
    • Imagick::setImageRedPrimary - Устанавливает красную первичную точку цветности изображения
    • Imagick::setImageRenderingIntent - Устанавливает схему цветопередачи изображения
    • Imagick::setImageResolution - Устанавливает разрешение изображения
    • Imagick::setImageScene - Устанавливает сцену изображения
    • Imagick::setImageTicksPerSecond - Устанавливает продолжительность отображения кадра
    • Imagick::setImageType - Устанавливает тип изображения
    • Imagick::setImageUnits - Устанавливает единицы измерения разрешения изображения
    • Imagick::setImageVirtualPixelMethod - Устанавливает метод виртуального пикселя
    • Imagick::setImageWhitePoint - Устанавливает белую точку цветности изображения
    • Imagick::setInterlaceScheme - Устанавливает сжатие изображения
    • Imagick::setIteratorIndex - Устанавливает позицию итератора
    • Imagick::setLastIterator - Устанавливает итератор Imagick к последнему изображению
    • Imagick::setOption - Устанавливает опцию
    • Imagick::setPage - Устанавливает геометрию страницы объекта Imagick
    • Imagick::setPointSize - Устанавливает размер точки
    • Imagick::setProgressMonitor - Устанавливает callback-функцию, которая будет вызываться во время обработки изображения Imagick
    • Imagick::setRegistry - Устанавливает значение для записи реестра ImageMagick с именем key
    • Imagick::setResolution - Устанавливает разрешение изображения
    • Imagick::setResourceLimit - Устанавливает лимит для конкретного ресурса
    • Imagick::setSamplingFactors - Устанавливает коэффициенты выборки изображений
    • Imagick::setSize - Устанавливает размер объекта Imagick
    • Imagick::setSizeOffset - Устанавливает размер и смещение объекта Imagick
    • Imagick::setType - Устанавливает атрибут типа изображения
    • Imagick::shadeImage - Создаёт 3D-эффект
    • Imagick::shadowImage - Имитирует тень изображения
    • Imagick::sharpenImage - Повышает резкость изображения
    • Imagick::shaveImage - Удаляет пиксели по краям изображения
    • Imagick::shearImage - Создаёт параллелограмм
    • Imagick::sigmoidalContrastImage - Регулирует контраст изображения
    • Imagick::sketchImage - Имитирует набросок карандашом
    • Imagick::smushImages - Берёт все изображения из текущего указателя изображения в конец списка изображений и перемещает их
    • Imagick::solarizeImage - Применяет к изображению эффект соляризации
    • Imagick::sparseColorImage - Интерполирует цвета
    • Imagick::spliceImage - Склеивает сплошной цвет в изображение
    • Imagick::spreadImage - Случайно смещает каждый пиксель в блоке
    • Imagick::statisticImage - Модификация изображения с помощью функции статистики
    • Imagick::steganoImage - Скрывает цифровой водяной знак в изображении
    • Imagick::stereoImage - Объединяет два изображения
    • Imagick::stripImage - Снимает изображение всех профилей и комментариев
    • Imagick::subImageMatch - Выполняет поиск фрагмента изображения в текущем изображении и возвращает второстепенное изображение
    • Imagick::swirlImage - Закручивает пиксели вокруг центра изображения
    • Imagick::textureImage - Многократно размещает изображение текстуры
    • Imagick::thresholdImage - Изменяет отдельные пиксели на основе порогового значения
    • Imagick::thumbnailImage - Изменяет размер изображения
    • Imagick::tintImage - Применяет вектор цвета к каждому пикселю изображения
    • Imagick::transformImage - Удобный метод настройки размера кадрирования и геометрии изображения
    • Imagick::transformImageColorspace - Преобразует изображение в новое цветовое пространство
    • Imagick::transparentPaintImage - Рисует пиксели прозрачными
    • Imagick::transposeImage - Создаёт вертикальное зеркальное отображение
    • Imagick::transverseImage - Создаёт горизонтальное зеркальное отображение
    • Imagick::trimImage - Удаляет края с изображения
    • Imagick::uniqueImageColors - Отбрасывает всё, кроме одного, любого цвета пикселя
    • Imagick::unsharpMaskImage - Резкость изображения
    • Imagick::valid - Проверяет, является ли текущий элемент корректным
    • Imagick::vignetteImage - Добавляет виньетный фильтр к изображению
    • Imagick::waveImage - Применяет волновой фильтр к изображению
    • Imagick::whiteThresholdImage - Закрашивает все пиксели выше порога в белый
    • Imagick::writeImage - Записывает изображение по указанному имени файла
    • Imagick::writeImageFile - Записывает изображение в файл
    • Imagick::writeImages - Записывает изображение или последовательность изображений
    • Imagick::writeImagesFile - Записывает фреймы в файловый дескриптор
    • Imagick::__construct - Конструктор объекта Imagick
    • Imagick::__toString - Возвращает изображение в виде строки
    • ImagickDraw::affine - Регулирует текущую матрицу аффинного преобразования
    • ImagickDraw::annotation - Рисует текст на картинке
    • ImagickDraw::arc - Рисует дугу
    • ImagickDraw::bezier - Рисует кривую Безье
    • ImagickDraw::circle - Рисует круг
    • ImagickDraw::clear - Очищает ImagickDraw
    • ImagickDraw::clone - Делает точную копию указанного объекта ImagickDraw
    • ImagickDraw::color - Рисует цвет на изображении
    • ImagickDraw::comment - Добавляет комментарий
    • ImagickDraw::composite - Накладывает изображение на текущее изображение
    • ImagickDraw::destroy - Освобождает все связанные ресурсы
    • ImagickDraw::ellipse - Рисует на изображении эллипс
    • ImagickDraw::getClipPath - Возвращает идентификатор текущего обтравочного контура
    • ImagickDraw::getClipRule - Возвращает текущее правило заливки многоугольника
    • ImagickDraw::getClipUnits - Возвращает интерпретацию единиц обтравочного контура
    • ImagickDraw::getFillColor - Возвращает цвет заливки
    • ImagickDraw::getFillOpacity - Возвращает непрозрачность, используемую при рисовании
    • ImagickDraw::getFillRule - Возвращает правило заливки
    • ImagickDraw::getFont - Возвращает шрифт
    • ImagickDraw::getFontFamily - Возвращает семейство шрифтов
    • ImagickDraw::getFontSize - Возвращает размер шрифта
    • ImagickDraw::getFontStretch - Получает растяжение шрифта, используемое при аннотации текста
    • ImagickDraw::getFontStyle - Возвращает стиль шрифта
    • ImagickDraw::getFontWeight - Возвращает толщину шрифта
    • ImagickDraw::getGravity - Возвращает гравитацию размещения текста
    • ImagickDraw::getStrokeAntialias - Возвращает текущую настройку сглаживания обводки
    • ImagickDraw::getStrokeColor - Возвращает цвет, используемый для обводки контуров объекта
    • ImagickDraw::getStrokeDashArray - Возвращает массив, представляющий паттерн из штрихов и пробелов, используемых для обводки контуров
    • ImagickDraw::getStrokeDashOffset - Возвращает смещение в штриховом паттерне для начала штриховки
    • ImagickDraw::getStrokeLineCap - Возвращает форму, которая будет использоваться в конце открытых внутренних контуров при их обводке
    • ImagickDraw::getStrokeLineJoin - Возвращает форму, которая будет использоваться в углах контуров при их обводке
    • ImagickDraw::getStrokeMiterLimit - Возвращает предел среза обводки
    • ImagickDraw::getStrokeOpacity - Возвращает непрозрачность обведённых контуров объекта
    • ImagickDraw::getStrokeWidth - Возвращает ширину обводки, используемой для рисования контуров объекта
    • ImagickDraw::getTextAlignment - Возвращает выравнивание текста
    • ImagickDraw::getTextAntialias - Возвращает текущую настройку сглаживания текста
    • ImagickDraw::getTextDecoration - Возвращает оформление текста
    • ImagickDraw::getTextEncoding - Возвращает кодовый набор, используемый для текстовых аннотаций
    • ImagickDraw::getTextInterlineSpacing - Возвращает межстрочный интервал текста
    • ImagickDraw::getTextInterwordSpacing - Возвращает межсловный интервал текста
    • ImagickDraw::getTextKerning - Возвращает межбуквенный интервал текста
    • ImagickDraw::getTextUnderColor - Возвращает цвет под текстом
    • ImagickDraw::getVectorGraphics - Возвращает строку, содержащую векторную графику
    • ImagickDraw::line - Рисует линию
    • ImagickDraw::matte - Закрашивает канал непрозрачности изображения
    • ImagickDraw::pathClose - Добавляет элемент пути к текущему пути
    • ImagickDraw::pathCurveToAbsolute - Рисует кубическую кривую Безье
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute - Рисует квадратичную кривую Безье
    • ImagickDraw::pathCurveToQuadraticBezierRelative - Рисует квадратичную кривую Безье
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute - Рисует квадратичную кривую Безье
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative - Рисует квадратичную кривую Безье
    • ImagickDraw::pathCurveToRelative - Рисует кубическую кривую Безье
    • ImagickDraw::pathCurveToSmoothAbsolute - Рисует кубическую кривую Безье
    • ImagickDraw::pathCurveToSmoothRelative - Рисует кубическую кривую Безье
    • ImagickDraw::pathEllipticArcAbsolute - Рисует эллиптическую дугу
    • ImagickDraw::pathEllipticArcRelative - Рисует эллиптическую дугу
    • ImagickDraw::pathFinish - Завершает текущий путь
    • ImagickDraw::pathLineToAbsolute - Рисует линию
    • ImagickDraw::pathLineToHorizontalAbsolute - Рисует горизонтальную линию
    • ImagickDraw::pathLineToHorizontalRelative - Рисует горизонтальную линию
    • ImagickDraw::pathLineToRelative - Рисует линию
    • ImagickDraw::pathLineToVerticalAbsolute - Рисует вертикальную линию
    • ImagickDraw::pathLineToVerticalRelative - Рисует вертикальную линию
    • ImagickDraw::pathMoveToAbsolute - Начинает новый внутренний контур
    • ImagickDraw::pathMoveToRelative - Начинает новый внутренний контур
    • ImagickDraw::pathStart - Объявляет начало отрисовки контура
    • ImagickDraw::point - Рисует точку
    • ImagickDraw::polygon - Рисует многоугольник
    • ImagickDraw::polyline - Рисует ломаную линию
    • ImagickDraw::pop - Уничтожает текущий объект ImagickDraw в стеке и возвращается к ранее добавленному объекту ImagickDraw
    • ImagickDraw::popClipPath - Завершает определение пути обтравочного контура
    • ImagickDraw::popDefs - Завершает список определений
    • ImagickDraw::popPattern - Завершает определение шаблона
    • ImagickDraw::push - Клонирует текущий объект ImagickDraw и добавляет его в стек
    • ImagickDraw::pushClipPath - Запускает определение пути обтравочного контура
    • ImagickDraw::pushDefs - Указывает, что следующие команды создают именованные элементы для ранней обработки
    • ImagickDraw::pushPattern - Указывает, что последующие команды вплоть до ImagickDraw::opPattern() составляют определение именованного паттерна
    • ImagickDraw::rectangle - Рисует прямоугольник
    • ImagickDraw::render - Отрисовывает все предыдущие команды рисования на изображении
    • ImagickDraw::resetVectorGraphics - Сбрасывает векторную графику
    • ImagickDraw::rotate - Применяет указанный поворот к текущему координатному пространству
    • ImagickDraw::roundRectangle - Рисует прямоугольник с закруглёнными углами
    • ImagickDraw::scale - Регулирует коэффициент масштабирования
    • ImagickDraw::setClipPath - Связывает именованный контур обтравочного контура с изображением
    • ImagickDraw::setClipRule - Устанавливает правило заливки многоугольника, которое будет использоваться обтравочным контуром
    • ImagickDraw::setClipUnits - Устанавливает интерпретацию единиц траектории обтравочного контура
    • ImagickDraw::setFillAlpha - Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки
    • ImagickDraw::setFillColor - Устанавливает цвет заливки, используемый для рисования объектов с заливкой
    • ImagickDraw::setFillOpacity - Устанавливает непрозрачность при рисовании с использованием цвета или текстуры заливки
    • ImagickDraw::setFillPatternURL - Устанавливает URL-адрес для использования в качестве образца заливки для заливки объектов
    • ImagickDraw::setFillRule - Устанавливает правило заливки для использования при рисовании полигонов
    • ImagickDraw::setFont - Устанавливает указанный шрифт для использования при аннотировании текстом
    • ImagickDraw::setFontFamily - Устанавливает семейство шрифтов для использования при аннотировании текстом
    • ImagickDraw::setFontSize - Устанавливает размер шрифта для использования при аннотировании текстом
    • ImagickDraw::setFontStretch - Устанавливает растяжение шрифта для использования при аннотировании текстом
    • ImagickDraw::setFontStyle - Устанавливает стиль шрифта для использования при аннотировании текстом
    • ImagickDraw::setFontWeight - Устанавливает толщину шрифта
    • ImagickDraw::setGravity - Устанавливает гравитацию размещения текста
    • ImagickDraw::setResolution - Устанавливает разрешение
    • ImagickDraw::setStrokeAlpha - Определяет непрозрачность обводки контуров объекта
    • ImagickDraw::setStrokeAntialias - Управляет сглаживанием обводок контуров
    • ImagickDraw::setStrokeColor - Устанавливает цвет, используемый для обводки контуров объекта
    • ImagickDraw::setStrokeDashArray - Задаёт паттерн из штрихов и пробелов, используемых для обводки контуров
    • ImagickDraw::setStrokeDashOffset - Задаёт смещение в штриховом паттерне для начала штриховки
    • ImagickDraw::setStrokeLineCap - Задаёт форму, которая будет использоваться в конце открытых внутренних контуров при их обводке
    • ImagickDraw::setStrokeLineJoin - Задаёт форму, которая будет использоваться в углах контуров при их обводке
    • ImagickDraw::setStrokeMiterLimit - Задаёт предел среза обводки
    • ImagickDraw::setStrokeOpacity - Определяет непрозрачность обводки контуров объекта
    • ImagickDraw::setStrokePatternURL - Устанавливает паттерн, используемый для обводки контуров объекта
    • ImagickDraw::setStrokeWidth - Устанавливает ширину обводки, используемой для рисования контуров объекта
    • ImagickDraw::setTextAlignment - Задаёт выравнивание текста
    • ImagickDraw::setTextAntialias - Управляет сглаживанием текста
    • ImagickDraw::setTextDecoration - Определяет оформление
    • ImagickDraw::setTextEncoding - Задаёт кодовый набор текста
    • ImagickDraw::setTextInterlineSpacing - Устанавливает межстрочный интервал текста
    • ImagickDraw::setTextInterwordSpacing - Устанавливает межсловный интервал текста
    • ImagickDraw::setTextKerning - Устанавливает межбуквенный интервал текста
    • ImagickDraw::setTextUnderColor - Задаёт цвет фонового прямоугольника
    • ImagickDraw::setVectorGraphics - Устанавливает векторную графику
    • ImagickDraw::setViewbox - Устанавливает общий размер холста
    • ImagickDraw::skewX - Наклоняет текущую систему координат по горизонтали
    • ImagickDraw::skewY - Наклоняет текущую систему координат по вертикали
    • ImagickDraw::translate - Применяет перенос к текущей системе координат
    • ImagickDraw::__construct - Конструктор класса ImagickDraw
    • ImagickKernel::addKernel - Присоединяет другое ядро к этому ядру
    • ImagickKernel::addUnityKernel - Добавляет ядро Unity в список ядер
    • ImagickKernel::fromBuiltIn - Создаёт ядро из встроенного ядра
    • ImagickKernel::fromMatrix - Создаёт ядро из двумерной матрицы значений
    • ImagickKernel::getMatrix - Получает 2d матрицу значений, используемых в этом ядре
    • ImagickKernel::scale - Масштабирует список ядер на заданную величину
    • ImagickKernel::separate - Разделяет связанный набор ядер и возвращает массив ImagickKernels
    • ImagickPixel::clear - Очищает ресурсы, связанные с этим объектом
    • ImagickPixel::destroy - Освобождает ресурсы, связанные с этим объектом
    • ImagickPixel::getColor - Возвращает цвет
    • ImagickPixel::getColorAsString - Возвращает цвет в виде строки
    • ImagickPixel::getColorCount - Возвращает количество цветов связанных с этим цветом
    • ImagickPixel::getColorQuantum - Возвращает цвет пикселя в массиве в виде квантовых значений
    • ImagickPixel::getColorValue - Возвращает нормализованное значение цвета канала
    • ImagickPixel::getColorValueQuantum - Получает квантовое значение цвета в ImagickPixel
    • ImagickPixel::getHSL - Возвращает нормализованный HSL-цвет объекта ImagickPixel
    • ImagickPixel::getIndex - Получает индекс цветовой карты пиксельной палочки
    • ImagickPixel::isPixelSimilar - Проверяет расстояние между этим цветом и другим
    • ImagickPixel::isPixelSimilarQuantum - Возвращает true, если расстояние между двумя цветами меньше указанного расстояния
    • ImagickPixel::isSimilar - Проверить разницу между этим цветом и другим
    • ImagickPixel::setColor - Устанавливает цвет
    • ImagickPixel::setColorCount - Устанавливает количество цветов, связанных с этим цветом
    • ImagickPixel::setColorValue - Устанавливает нормализованное значение одного из каналов
    • ImagickPixel::setColorValueQuantum - Устанавливает квантовое значение цветового элемента ImagickPixel
    • ImagickPixel::setHSL - Установка нормализованного HSL цвета
    • ImagickPixel::setIndex - Устанавливает индекс цветовой карты пиксельной палочки
    • 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_is_open - Проверяет, является ли поток IMAP всё ещё корректным
    • 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 - Объединяет элементы массива в строку
    • inet_ntop - Конвертирует упакованный интернет-адрес в читаемый формат
    • inet_pton - Конвертирует читаемый IP-адрес в его упакованное представление in_addr
    • InfiniteIterator::next - Перемещает итератор на одну позицию вперёд или в начало
    • InfiniteIterator::__construct - Конструктор класса InfiniteIterator
    • inflate_add - Инкрементальное распаковать закодированные данные
    • inflate_get_read_len - Получает количество прочитанных байт
    • inflate_get_status - Получает статус декомпрессии
    • inflate_init - Инициализация контекста инкрементальной распаковки
    • ini_alter - Псевдоним ini_set
    • ini_get - Получает значение настройки конфигурации
    • ini_get_all - Получает все настройки конфигурации
    • ini_parse_quantity - Get interpreted size from ini shorthand syntax
    • ini_restore - Восстанавливает значение настройки конфигурации
    • ini_set - Устанавливает значение настройки конфигурации
    • inotify_add_watch - Добавить наблюдателя для экземпляра inotify
    • inotify_init - Инициализирует экземпляр inotify
    • inotify_queue_len - Возвращает число ожидающих событий в очереди
    • inotify_read - Читает ожидающие сообщения из очереди
    • inotify_rm_watch - Удалить наблюдателя
    • intdiv - Целочисленное деление
    • interface_exists - Проверяет, определён ли интерфейс
    • InternalIterator::current - Возвращает текущий элемент
    • InternalIterator::key - Возвращает ключ текущего элемента
    • InternalIterator::next - Переходит к следующему элементу
    • InternalIterator::rewind - Перематывает итератор к первому элементу
    • InternalIterator::valid - Проверяет, действительна ли текущая позиция
    • InternalIterator::__construct - Закрытый конструктор для запрета прямой инициализации
    • IntlBreakIterator::createCharacterInstance - Создаёт итератор прерывания для границ комбинирования последовательностей символов
    • IntlBreakIterator::createCodePointInstance - Создаёт итератор прерывания для границ кодовых точек
    • IntlBreakIterator::createLineInstance - Создаёт итератор прерывания для логически возможных разрывов строк
    • IntlBreakIterator::createSentenceInstance - Создаёт итератор прерывания для разрывов предложений
    • IntlBreakIterator::createTitleInstance - Создаёт итератор прерывания для разрывов заголовков
    • IntlBreakIterator::createWordInstance - Создаёт итератор прерывания для разрывов слов
    • IntlBreakIterator::current - Возвращает индекс текущей позиции
    • IntlBreakIterator::first - Устанавливает позицию к первому символу в тексте
    • IntlBreakIterator::following - Перемещает итератор к первой границе после указанного смещения
    • IntlBreakIterator::getErrorCode - Возвращает последний код ошибки объекта
    • IntlBreakIterator::getErrorMessage - Возвращает последнее сообщение об ошибке объекта
    • IntlBreakIterator::getLocale - Возвращает локаль, связанную с объектом
    • IntlBreakIterator::getPartsIterator - Создаёт итератор для перемещения фрагментов между границами
    • IntlBreakIterator::getText - Возвращает сканируемый текст
    • IntlBreakIterator::isBoundary - Сообщает, является ли смещение смещением границы
    • IntlBreakIterator::last - Устанавливает позицию итератора к индексу за последним символом
    • IntlBreakIterator::next - Перемещает итератор к следующей границе
    • IntlBreakIterator::preceding - Устанавливает позицию итератора к первой границе перед смещением
    • IntlBreakIterator::previous - Устанавливает позицию итератора на границе непосредственно перед текущей
    • IntlBreakIterator::setText - Устанавливает сканируемый текст
    • IntlBreakIterator::__construct - Закрытый конструктор, запрещающий создание экземпляров объекта
    • IntlCalendar::add - Добавляет количество (со знаком) времени в поле
    • IntlCalendar::after - Определяет, время этого объекта позже времени переданного объекта
    • IntlCalendar::before - Определяет, время этого объекта раньше времени переданного объекта
    • IntlCalendar::clear - Очищает поле или все поля
    • IntlCalendar::createInstance - Создаёт новый объект IntlCalendar
    • IntlCalendar::equals - Сравнивает время двух объектов IntlCalendar на предмет равенства
    • IntlCalendar::fieldDifference - Вычисляет разницу между заданным временем и временем объекта
    • IntlCalendar::fromDateTime - Создаёт IntlCalendar из объекта или строки DateTime
    • IntlCalendar::get - Получает значение поля
    • IntlCalendar::getActualMaximum - Максимальное значение для поля с учётом текущего времени объекта
    • IntlCalendar::getActualMinimum - Минимальное значение для поля с учётом текущего времени объекта
    • IntlCalendar::getAvailableLocales - Получает массив языковых стандартов, для которых есть данные
    • IntlCalendar::getDayOfWeekType - Сообщает, является ли день будним, выходным или днём с переходом между ними
    • IntlCalendar::getErrorCode - Получает последний код ошибки объекта
    • IntlCalendar::getErrorMessage - Получает последнее сообщение об ошибке для объекта
    • IntlCalendar::getFirstDayOfWeek - Получает первый день недели для языкового стандарта календаря
    • IntlCalendar::getGreatestMinimum - Получает наибольшее локальное минимальное значение поля
    • IntlCalendar::getKeywordValuesForLocale - Получает набор значений ключевых слов языкового стандарта
    • IntlCalendar::getLeastMaximum - Получает наименьший локальный максимум для поля
    • IntlCalendar::getLocale - Получает языковой стандарт, связанный с объектом
    • IntlCalendar::getMaximum - Получает глобальное максимальное значение поля
    • IntlCalendar::getMinimalDaysInFirstWeek - Получает минимальное количество дней, которое может быть в первой неделе в году или месяце
    • IntlCalendar::getMinimum - Получает глобальное минимальное значение поля
    • IntlCalendar::getNow - Получает число, представляющее текущее время
    • IntlCalendar::getRepeatedWallTimeOption - Получает поведение для обработки повторяющегося времени процессора
    • IntlCalendar::getSkippedWallTimeOption - Получает поведение для обработки пропущенного времени процессора
    • IntlCalendar::getTime - Получает время, представленное в данный момент объектом
    • IntlCalendar::getTimeZone - Получает часовой пояс объекта
    • IntlCalendar::getType - Получает тип календаря
    • IntlCalendar::getWeekendTransition - Получает время дня, когда выходные начинаются или заканчиваются
    • IntlCalendar::inDaylightTime - Определяет, переходит ли время объекта на летнее время
    • IntlCalendar::isEquivalentTo - Определяет, равен ли другой календарь, но для другого времени
    • IntlCalendar::isLenient - Определяет, является ли интерпретация даты/времени мягкой
    • IntlCalendar::isSet - Определяет, установлено ли поле
    • IntlCalendar::isWeekend - Определяет, приходятся ли определённые дата/время на выходные
    • IntlCalendar::roll - Добавляет значение в поле без переноса в более важные поля
    • IntlCalendar::set - Устанавливает поле времени или сразу несколько общих полей
    • IntlCalendar::setDate - Set a date fields
    • IntlCalendar::setDateTime - Set a date and time fields
    • IntlCalendar::setFirstDayOfWeek - Устанавливает день, который является началом недели
    • IntlCalendar::setLenient - Устанавливает, должна ли интерпретация даты/времени быть мягкой
    • IntlCalendar::setMinimalDaysInFirstWeek - Устанавливает минимальное количество дней, которое может быть в первой неделе в году или месяце
    • IntlCalendar::setRepeatedWallTimeOption - Устанавливает поведение для обработки повторяющегося времени процессора при отрицательных переходах смещения часового пояса
    • IntlCalendar::setSkippedWallTimeOption - Устанавливает поведение для обработки пропущенного времени процессора при положительных переходах смещения часового пояса
    • IntlCalendar::setTime - Устанавливает календарное время в миллисекундах с начала эпохи Unix
    • IntlCalendar::setTimeZone - Устанавливает часовой пояс, используемый календарём
    • IntlCalendar::toDateTime - Преобразует IntlCalendar в объект DateTime
    • IntlCalendar::__construct - Закрытый конструктор для запрета создания экземпляров
    • 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 - Создаёт средство форматирования даты
    • IntlDateFormatter::format - Форматирует значение даты/времени в виде строки
    • IntlDateFormatter::formatObject - Форматирует объект
    • IntlDateFormatter::getCalendar - Получает тип календаря, используемый IntlDateFormatter
    • IntlDateFormatter::getCalendarObject - Получает копию объекта календаря средства форматирования
    • IntlDateFormatter::getDateType - Получает тип даты, используемый IntlDateFormatter
    • IntlDateFormatter::getErrorCode - Получает код ошибки последней операции
    • IntlDateFormatter::getErrorMessage - Получает текст ошибки последней операции
    • IntlDateFormatter::getLocale - Получает языковой стандарт, используемый средством форматирования
    • IntlDateFormatter::getPattern - Получает шаблон, используемый IntlDateFormatter
    • IntlDateFormatter::getTimeType - Получает тип времени, используемый IntlDateFormatter
    • IntlDateFormatter::getTimeZone - Получает часовой пояс средства форматирования
    • IntlDateFormatter::getTimeZoneId - Получает идентификатор часового пояса, используемый IntlDateFormatter
    • IntlDateFormatter::isLenient - Получает снисходительность, используемую для IntlDateFormatter
    • IntlDateFormatter::localtime - Преобразует строку в значение времени на основе поля
    • IntlDateFormatter::parse - Преобразует строку в значение отметки времени
    • IntlDateFormatter::setCalendar - Устанавливает тип календаря, используемый средством форматирования
    • IntlDateFormatter::setLenient - Устанавливает мягкий режим анализатора
    • IntlDateFormatter::setPattern - Устанавливает шаблон, используемый IntlDateFormatter
    • IntlDateFormatter::setTimeZone - Устанавливает часовой пояс средства форматирования
    • IntlDatePatternGenerator::create - Создаёт новый экземпляр IntlDatePatternGenerator
    • IntlDatePatternGenerator::getBestPattern - Определяет наиболее подходящий формат даты/времени
    • IntlGregorianCalendar::createFromDate - Create a new IntlGregorianCalendar instance from date
    • IntlGregorianCalendar::createFromDateTime - Create a new IntlGregorianCalendar instance from date and time
    • IntlGregorianCalendar::getGregorianChange - Получает дату изменения григорианского календаря
    • IntlGregorianCalendar::isLeapYear - Определяет, является ли данный год високосным
    • IntlGregorianCalendar::setGregorianChange - Устанавливает дату изменения в григорианском календаре
    • IntlGregorianCalendar::__construct - Конструктор класса григорианского календаря
    • 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 - Получить количество идентификаторов в группе похожих часовых поясов, включая данный идентификатор
    • IntlTimeZone::createDefault - Создать новую копию часового пояса по умолчанию для текущего хоста
    • IntlTimeZone::createEnumeration - Получить перечисление из идентификаторов часовых поясов по указанной стране или смещению
    • IntlTimeZone::createTimeZone - Создать объект часового пояса по заданному идентификатору
    • IntlTimeZone::createTimeZoneIDEnumeration - Получить перечисление из идентификаторов системных часовых поясов по заданным условиям фильтрации
    • IntlTimeZone::fromDateTimeZone - Создать объект часового пояса из DateTimeZone
    • IntlTimeZone::getCanonicalID - Получить канонический системный идентификатор часового пояса или нормализованный пользовательский идентификатор часового пояса по заданному идентификатору часового пояса
    • IntlTimeZone::getDisplayName - Получить имя часового пояса для отображения пользователю
    • IntlTimeZone::getDSTSavings - Получить количество миллисекунд, которое нужно добавить к местному поясному времени, чтобы получить летнее время
    • IntlTimeZone::getEquivalentID - Получить идентификатор в группе похожих часовых поясов, включая заданный идентификатор
    • IntlTimeZone::getErrorCode - Получить последний код об ошибке в объекте
    • IntlTimeZone::getErrorMessage - Получить последнее сообщение об ошибке в объекте
    • IntlTimeZone::getGMT - Создать часовой пояс по GMT (UTC)
    • IntlTimeZone::getID - Получить идентификатор часового пояса
    • IntlTimeZone::getIDForWindowsID - Преобразовать часовой пояс для Windows в системный часовой пояс
    • IntlTimeZone::getOffset - Получить необработанное значение часового пояса и смещение по Гринвичу (GMT) по заданному моменту времени
    • IntlTimeZone::getRawOffset - Получить необработанное значение смещения по Гринвичу (GMT) без учёта летнего времени
    • IntlTimeZone::getRegion - Получить код региона, соответствующего заданному идентификатору системного часового пояса
    • IntlTimeZone::getTZDataVersion - Получить версию данных о часовом поясе, который в данный момент используется в ICU
    • IntlTimeZone::getUnknown - Получить неизвестный часовой пояс («unknown»)
    • IntlTimeZone::getWindowsID - Преобразовать системный часовой пояс в часовой пояс для Windows
    • IntlTimeZone::hasSameRules - Проверить, что в другом часовом поясе используются те же самые правила и смещения, что и в первом заданном
    • IntlTimeZone::toDateTimeZone - Преобразовать в объект DateTimeZone
    • IntlTimeZone::useDaylightTime - Проверить, что в данном часовом поясе используется летнее время
    • IntlTimeZone::__construct - Конструктор класса, запрещающий прямое создание экземпляра
    • 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()
    • json_validate - Проверяет, содержит ли строка допустимый JSON
    • juliantojd - Переводит дату по юлианскому календарю в число дней в юлианском летоисчислении
  • k
    • key - Выбирает ключ из массива
    • key_exists - Псевдоним array_key_exists
    • krsort - Сортирует массив по ключу в порядке убывания
    • ksort - Сортирует массив по ключу в порядке возрастания
  • l
    • 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_connect_wallet - Connect to an LDAP server
    • ldap_control_paged_result - Послать серверу LDAP данные для использования постраничного извлечения результата
    • ldap_control_paged_result_response - Получить указатель на текущую страницу результирующего набора LDAP
    • ldap_count_entries - Посчитать число записей в результатах поиска
    • ldap_count_references - Подсчитывает количество ссылок в результатах поиска
    • 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_sync - Performs an extended operation
    • 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_external_entity_loader - Получает текущий внешний загрузчик сущностей
    • libxml_get_last_error - Извлечение последней ошибки из libxml
    • libxml_set_external_entity_loader - Изменение загрузчика по умолчанию для внешних объектов
    • libxml_set_streams_context - Установка контекста потоков для следующей загрузки или записи документа посредством libxml
    • libxml_use_internal_errors - Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
    • LimitIterator::current - Получение текущего элемента
    • 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 - Десятичный логарифм
    • 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 - Вызывает функцию в глобальной переменной Lua
    • LuaSandbox::disableProfiler - Отключает профилировщик
    • LuaSandbox::enableProfiler - Включает профилировщик
    • LuaSandbox::getCPUUsage - Возвращает текущее время использования процессора в среде Lua
    • LuaSandbox::getMemoryUsage - Возвращает текущее использование памяти в среде Lua
    • LuaSandbox::getPeakMemoryUsage - Возвращает пиковое использование памяти в среде Lua
    • LuaSandbox::getProfilerFunctionReport - Получает данные профилировщика
    • LuaSandbox::getVersionInfo - Возвращает версии LuaSandbox и Lua
    • LuaSandbox::loadBinary - Загружает предварительно скомпилированный двоичный фрагмент в среду Lua
    • LuaSandbox::loadString - Загружает код Lua в среду Lua
    • LuaSandbox::pauseUsageTimer - Приостанавливает таймер использования процессора
    • LuaSandbox::registerLibrary - Регистрирует набор PHP-функций как библиотеку Lua
    • LuaSandbox::setCPULimit - Устанавливает ограничение времени процессора для среды Lua
    • LuaSandbox::setMemoryLimit - Устанавливает предел памяти для среды Lua
    • LuaSandbox::unpauseUsageTimer - Возобновляет таймер, приостановленный LuaSandbox::pauseUsageTimer
    • LuaSandbox::wrapPhpFunction - Оборачивает вызываемый PHP-объект в LuaSandboxFunction
    • LuaSandboxFunction::call - Вызывает Lua-функцию
    • LuaSandboxFunction::dump - Выгружает функцию в виде BLOB
    • LuaSandboxFunction::__construct - Не используется
    • lzf_compress - Сжатие LZF
    • lzf_decompress - Разархивация LZF
    • lzf_optimized_for - Определяет режим оптимизации модуля LZF
  • m
    • 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
    • max - Возвращает наибольшее значение
    • mb_check_encoding - Проверяет, что кодировка строк выбрана верно
    • mb_chr - Возвращает символ по значению кодовой точки Unicode
    • 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 - Получает кодовую точку символа Unicode
    • 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_str_pad - Дополняет мультибайтовую строку другой мультибайтовой строкой до заданной длины
    • mb_str_split - Если задана многобайтовая строка возвращает массив символов
    • mb_substitute_character - Установить/получить символ замены
    • mb_substr - Возвращает часть строки
    • mb_substr_count - Возвращает количество вхождений подстроки
    • mcrypt_create_iv - Создать инициализирующий вектор (Initialization Vector или IV) из случайного источника
    • mcrypt_decrypt - Расшифровывает данные с заданными параметрами
    • 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_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 - Функция запускает самопроверку указанного модуля
    • 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
    • memory_reset_peak_usage - Сбрасывает пиковое использование памяти
    • MessageFormatter::create - Создаёт средство форматирования сообщений
    • MessageFormatter::format - Форматирует сообщение
    • MessageFormatter::formatMessage - Быстро форматирует сообщение
    • MessageFormatter::getErrorCode - Возвращает код ошибки последней операции
    • MessageFormatter::getErrorMessage - Возвращает текст ошибки последней операции
    • MessageFormatter::getLocale - Возвращает локаль, для которой было создано средство форматирования
    • MessageFormatter::getPattern - Возвращает шаблон, используемый средством форматирования
    • MessageFormatter::parse - Разбирает строку согласно шаблону
    • MessageFormatter::parseMessage - Быстро разбирает входную строку
    • MessageFormatter::setPattern - Устанавливает шаблон, используемый средством форматирования
    • 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 - Находит наименьшее значение
    • mkdir - Создаёт директорию
    • mktime - Возвращает метку времени Unix для заданной даты
    • money_format - Форматирует число как денежную величину
    • 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\Document::fromBSON - Создаёт новый экземпляр документа из BSON-строки
    • MongoDB\BSON\Document::fromJSON - Создаёт новый экземпляр документа из строки JSON
    • MongoDB\BSON\Document::fromPHP - Создаёт новый экземпляр документа из данных PHP
    • MongoDB\BSON\Document::get - Возвращает значение ключа в документе
    • MongoDB\BSON\Document::getIterator - Возвращает итератор для документа BSON
    • MongoDB\BSON\Document::has - Возвращает, присутствует ли ключ в документе
    • MongoDB\BSON\Document::serialize - Сериализует документ
    • MongoDB\BSON\Document::toCanonicalExtendedJSON - Возвращает Canonical Extended JSON-представление BSON-документа
    • MongoDB\BSON\Document::toPHP - Возвращает PHP-представление документа BSON
    • MongoDB\BSON\Document::toRelaxedExtendedJSON - Возвращает Relaxed Extended JSON представление BSON-документа
    • MongoDB\BSON\Document::unserialize - Десериализует BSON-документ
    • MongoDB\BSON\Document::__construct - Создаёт новый BSON-документ (не используется)
    • MongoDB\BSON\Document::__toString - Возвращает строковое представление данного BSON-документа
    • 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\Iterator::current - Возвращает текущий элемент
    • MongoDB\BSON\Iterator::key - Возвращает ключ текущего элемента
    • MongoDB\BSON\Iterator::next - Перемещает итератор к следующему элементу
    • MongoDB\BSON\Iterator::rewind - Перематывает итератор к первому элементу
    • MongoDB\BSON\Iterator::valid - Проверяет, является ли текущая позиция корректной
    • MongoDB\BSON\Iterator::__construct - Создаёт новый итератор BSON (не используется)
    • 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\PackedArray::fromPHP - Создаёт новый экземпляр массива BSON из данных PHP
    • MongoDB\BSON\PackedArray::get - Возвращает значение индекса массива
    • MongoDB\BSON\PackedArray::getIterator - Возвращает итератор для массива BSON
    • MongoDB\BSON\PackedArray::has - Возвращает, присутствует ли индекс в массиве
    • MongoDB\BSON\PackedArray::serialize - Сериализация массива BSON
    • MongoDB\BSON\PackedArray::toPHP - Возвращает PHP-представление массива BSON
    • MongoDB\BSON\PackedArray::unserialize - Десериализует массив BSON
    • MongoDB\BSON\PackedArray::__construct - Создаёт новый массив BSON (не используется)
    • MongoDB\BSON\PackedArray::__toString - Возвращает строковое представление BSON-массива
    • MongoDB\BSON\Persistable::bsonSerialize - Предоставляет массив или документ для сериализации в формате BSON
    • 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::addKeyAltName - Добавляет альтернативное имя к документу с ключом
    • MongoDB\Driver\ClientEncryption::createDataKey - Создаёт документ с ключом
    • MongoDB\Driver\ClientEncryption::decrypt - Расшифровать данных
    • MongoDB\Driver\ClientEncryption::deleteKey - Удаляет документ с ключом
    • MongoDB\Driver\ClientEncryption::encrypt - Шифрует данные
    • MongoDB\Driver\ClientEncryption::encryptExpression - Шифрует совпадение или агрегированное выражение
    • MongoDB\Driver\ClientEncryption::getKey - Получает документ с ключом
    • MongoDB\Driver\ClientEncryption::getKeyByAltName - Получает документ с ключом по альтернативному имени
    • MongoDB\Driver\ClientEncryption::getKeys - Получает все документы с ключом
    • MongoDB\Driver\ClientEncryption::removeKeyAltName - Удаляет альтернативное имя из документа с ключом
    • MongoDB\Driver\ClientEncryption::rewrapManyDataKey - Переворачивает ключи данных
    • MongoDB\Driver\ClientEncryption::__construct - Создаёт новый объект ClientEncryption
    • MongoDB\Driver\Command::__construct - Создаёт новый объект Command
    • MongoDB\Driver\Cursor::current - Возвращает текущий элемент
    • MongoDB\Driver\Cursor::getId - Возвращает идентификатор для курсора
    • MongoDB\Driver\Cursor::getServer - Возвращает сервер, связанный с курсором
    • MongoDB\Driver\Cursor::isDead - Проверяет, исчерпан ли курсор или может содержать дополнительные результаты
    • MongoDB\Driver\Cursor::key - Возвращает индекс текущего результата в курсоре
    • MongoDB\Driver\Cursor::next - Перемещает курсор на следующий результат
    • MongoDB\Driver\Cursor::rewind - Перемещает курсор к первому результату
    • MongoDB\Driver\Cursor::setTypeMap - Устанавливает карту типа для десериализации BSON
    • MongoDB\Driver\Cursor::toArray - Возвращает массив, содержащий все результаты курсора
    • MongoDB\Driver\Cursor::valid - Проверяет, корректна ли текущая позиция курсора
    • MongoDB\Driver\Cursor::__construct - Создаёт новый объект Cursor (не используется)
    • MongoDB\Driver\CursorId::serialize - Сериализация CursorId
    • MongoDB\Driver\CursorId::unserialize - Десериализация 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::addSubscriber - Регистрирует подписчика на событие мониторинга в данном объекте Manager
    • 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::getEncryptedFieldsMap - Возвращает опцию автоматического шифрования encryptedFieldsMap для Manager
    • 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::removeSubscriber - Отменяет регистрацию подписчика на событие мониторинга в данном объекте 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\CommandFailedEvent::getServerConnectionId - Возвращает идентификатор соединения с сервером для команды
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId - Возвращает идентификатор службы балансировщика нагрузки для команды
    • 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::getServerConnectionId - Возвращает идентификатор соединения с сервером для команды
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId - Возвращает идентификатор службы балансировщика нагрузки для команды
    • 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\CommandSucceededEvent::getServerConnectionId - Возвращает идентификатор соединения с сервером для команды
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId - Возвращает идентификатор службы балансировщика нагрузки для команды
    • MongoDB\Driver\Monitoring\LogSubscriber::log - Notification method for a log message
    • MongoDB\Driver\Monitoring\removeSubscriber - Отменяет глобальную регистрацию подписчика на событие мониторинга
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged - Метод уведомления об изменении описания сервера
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed - Метод уведомления о закрытии сервера
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed - Метод уведомления о неудачном heartbeat сервера
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted - Метод уведомления о запущенном heartbeat сервера
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded - Метод уведомления об успешном heartbeat сервера
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening - Метод уведомления об открытии сервера
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged - Метод уведомления об изменении описания топологии
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed - Метод уведомления о закрытии топологии
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening - Метод уведомления об открытии топологии
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getHost - Возвращает имя хоста сервера
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription - Возвращает новое описание сервера
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort - Возвращает порт, на котором прослушивается сервер
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription - Возвращает предыдущее описание сервера
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId - Возвращает идентификатор топологии, связанный с этим сервером
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getHost - Возвращает имя хоста сервера
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort - Возвращает порт, на котором прослушивается сервер
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId - Возвращает идентификатор топологии, связанный с этим сервером
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros - Возвращает продолжительность heartbeat в микросекундах
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError - Возвращает исключение, связанное с неудачным выполнением heartbeat
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost - Возвращает имя хоста сервера
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort - Возвращает порт, на котором прослушивается сервер
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited - Возвращает, использовался ли в heartbeat потоковый протокол
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost - Возвращает имя хоста сервера
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort - Возвращает порт, на котором прослушивается сервер
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited - Возвращает, использовался ли в heartbeat потоковый протокол
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros - Возвращает продолжительность heartbeat в микросекундах
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost - Возвращает имя хоста сервера
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort - Возвращает порт, на котором прослушивается сервер
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply - Возвращает документ ответа heartbeat
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited - Возвращает, использовался ли в heartbeat потоковый протокол
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost - Возвращает имя хоста сервера
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort - Возвращает порт, на котором прослушивается сервер
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription - Возвращает новое описание топологии
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription - Возвращает предыдущее описание топологии
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId - Возвращает идентификатор топологии
    • MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId - Возвращает идентификатор топологии
    • MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId - Возвращает идентификатор топологии
    • MongoDB\Driver\Query::__construct - Создаёт новый запрос
    • MongoDB\Driver\ReadConcern::bsonSerialize - Возвращает объект для сериализации BSON
    • MongoDB\Driver\ReadConcern::getLevel - Возвращает опцию "level" ReadConcern
    • MongoDB\Driver\ReadConcern::isDefault - Проверяет, является ли гарантией чтения по умолчанию
    • MongoDB\Driver\ReadConcern::serialize - Сериализация ReadConcern
    • MongoDB\Driver\ReadConcern::unserialize - Десериализация ReadConcern
    • MongoDB\Driver\ReadConcern::__construct - Создаёт новый ReadConcern
    • MongoDB\Driver\ReadPreference::bsonSerialize - Возвращает объект сериализации BSON
    • MongoDB\Driver\ReadPreference::getHedge - Возвращает опцию "hedge" из ReadPreference
    • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds - Возвращает параметр "maxStalenessSeconds" ReadPreference
    • MongoDB\Driver\ReadPreference::getMode - Возвращает параметр "mode" ReadPreference
    • MongoDB\Driver\ReadPreference::getModeString - Возвращает опцию "mode" объекта ReadPreference в виде строки
    • MongoDB\Driver\ReadPreference::getTagSets - Возвращает параметр "tagSets" ReadPreference
    • MongoDB\Driver\ReadPreference::serialize - Сериализация ReadPreference
    • MongoDB\Driver\ReadPreference::unserialize - Десериализация 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::getServerDescription - Возвращает ServerDescription сервера
    • 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\ServerApi::bsonSerialize - Возвращает объект для сериализации BSON
    • MongoDB\Driver\ServerApi::serialize - Сериализует ServerApi
    • MongoDB\Driver\ServerApi::unserialize - Десериализует ServerApi
    • MongoDB\Driver\ServerApi::__construct - Создаёт новый экземпляр ServerApi
    • MongoDB\Driver\ServerDescription::getHelloResponse - Возвращает последний ответ сервера "hello"
    • MongoDB\Driver\ServerDescription::getHost - Возвращает имя хоста сервера
    • MongoDB\Driver\ServerDescription::getLastUpdateTime - Возвращает время последнего обновления сервера в микросекундах
    • MongoDB\Driver\ServerDescription::getPort - Возвращает порт, на котором прослушивается данный сервер
    • MongoDB\Driver\ServerDescription::getRoundTripTime - Возвращает время обхода сервера в миллисекундах
    • MongoDB\Driver\ServerDescription::getType - Возвращает строку, обозначающую тип данного сервера
    • 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 - Возвращает настройки текущей транзакции
    • MongoDB\Driver\Session::getTransactionState - Возвращает статус транзакции для текущей сессии
    • MongoDB\Driver\Session::isDirty - Возвращает, была ли сессия помечена как грязная
    • MongoDB\Driver\Session::isInTransaction - Определяет, происходит ли в данный момент многодокументная транзакция
    • MongoDB\Driver\Session::startTransaction - Запускает транзакцию
    • MongoDB\Driver\Session::__construct - Создаёт новый сеанс (не используется)
    • MongoDB\Driver\TopologyDescription::getServers - Возвращает серверы в топологии
    • MongoDB\Driver\TopologyDescription::getType - Возвращает строку, обозначающую тип топологии
    • MongoDB\Driver\TopologyDescription::hasReadableServer - Возвращает, есть ли в топологии сервер, доступный для чтения
    • MongoDB\Driver\TopologyDescription::hasWritableServer - Возвращает, есть ли в топологии сервер, доступный для записи
    • 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 - Сериализация WriteConcern
    • MongoDB\Driver\WriteConcern::unserialize - Десериализация 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 - Возвращает, была ли запись подтверждена
    • 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)
    • msg_get_queue - Создание или подключение к очереди сообщений
    • msg_queue_exists - Проверка существования очереди сообщений
    • msg_receive - Получение сообщения из очереди сообщений
    • msg_remove_queue - Удаление очереди сообщений
    • msg_send - Отправка сообщения в очередь сообщений
    • msg_set_queue - Установка информации в структуре данных очереди сообщений
    • msg_stat_queue - Получение информации из структуры данных очереди сообщений
    • 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
    • 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 - Возвращает значение, созданное для столбца AUTO_INCREMENT последним запросом
    • 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::dump_debug_info - Журналирование отладочной информации
    • mysqli::escape_string - Псевдоним функции mysqli_real_escape_string
    • mysqli::execute_query - Подготавливает, связывает параметры и выполняет SQL-запрос
    • 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::savepoint - Установите именованную точку сохранения транзакции
    • mysqli::select_db - Устанавливает базу данных для выполняемых запросов
    • mysqli::set_charset - Задаёт набор символов
    • 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_connect - Псевдоним mysqli::__construct
    • mysqli_driver::$report_mode - Устанавливает режим отчёта об ошибках mysqli
    • mysqli_driver::embedded_server_end - Останавливает встроенный сервер
    • mysqli_driver::embedded_server_start - Инициализирует и запускает встроенный сервер
    • mysqli_execute - Псевдоним mysqli_stmt_execute
    • mysqli_get_client_stats - Получить клиентскую попроцессную статистику
    • mysqli_get_links_stats - Возвращает информацию об открытых и закешированных соединениях MySQL
    • 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_column - Получает один столбец из следующей строки набора результатов
    • 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_result::getIterator - Извлекает внешний итератор
    • mysqli_result::__construct - Конструктор объекта mysqli_result
    • mysqli_sql_exception::getSqlState - Возвращает код ошибки SQLSTATE
    • 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_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 - Закрытый конструктор для запрета прямого создания экземпляра
    • 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 - Закрытие клиента
  • n
    • natcasesort - Сортирует массив, используя алгоритм "natural order" без учёта регистра символов
    • natsort - Сортирует массив, используя алгоритм "natural order"
    • net_get_interfaces - Получает сетевые интерфейсы
    • next - Перемещает указатель массива вперёд на один элемент
    • ngettext - Версия gettext для сообщений во множественном числе
    • nl2br - Вставляет HTML-код разрыва строки перед каждым переводом строки
    • nl_langinfo - Возвращает информацию о языке и локали
    • NoRewindIterator::current - Получает текущее значение
    • NoRewindIterator::key - Получает текущий ключ
    • NoRewindIterator::next - Перемещает итератор к следующему элементу
    • NoRewindIterator::rewind - Предотвращает возврат внутреннего итератора в начало
    • NoRewindIterator::valid - Проверяет итератор
    • NoRewindIterator::__construct - Создаёт новый объект NoRewindIterator
    • Normalizer::getRawDecomposition - Извлекает свойство Decomposition_Mapping для заданного символа UTF-8
    • Normalizer::isNormalized - Проверить, соответствует ли переданная строка заданной форме нормализации
    • Normalizer::normalize - Нормализация строки
    • NumberFormatter::create - Создаёт средство форматирования чисел
    • NumberFormatter::format - Форматирует число
    • NumberFormatter::formatCurrency - Форматирует значение валюты
    • NumberFormatter::getAttribute - Получает атрибут
    • NumberFormatter::getErrorCode - Получает последний код ошибки средства форматирования
    • NumberFormatter::getErrorMessage - Получает последнее сообщение об ошибке средства форматирования
    • NumberFormatter::getLocale - Получает локаль средства форматирования
    • NumberFormatter::getPattern - Получает шаблон средства форматирования
    • NumberFormatter::getSymbol - Получает значение символа
    • NumberFormatter::getTextAttribute - Получает текстовый атрибут
    • NumberFormatter::parse - Разбирает число
    • NumberFormatter::parseCurrency - Разбирает номер валюты
    • NumberFormatter::setAttribute - Устанавливает атрибут
    • NumberFormatter::setPattern - Устанавливает шаблон средства форматирования
    • NumberFormatter::setSymbol - Устанавливает значение символа
    • NumberFormatter::setTextAttribute - Устанавливает текстовый атрибут
    • 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 для восстановление буфера
    • ocibindbyname - Псевдоним oci_bind_by_name
    • ocicancel - Псевдоним oci_cancel
    • ocicloselob - Псевдоним OCILob::close
    • ocicollappend - Псевдоним OCICollection::append
    • ocicollassign - Псевдоним OCICollection::assign
    • ocicollassignelem - Псевдоним OCICollection::assignElem
    • OCICollection::append - Добавляет элемент в коллекцию
    • OCICollection::assign - Присваивает коллекции значение другой, уже существующей коллекции
    • OCICollection::assignElem - Присваивает значение элементу коллекции
    • OCICollection::free - Освобождает ресурсы, занимаемые объектом коллекции
    • OCICollection::getElem - Возвращает значение элемента
    • OCICollection::max - Возвращает максимальное количество элементов в коллекции
    • OCICollection::size - Возвращает количество элементов в коллекции
    • OCICollection::trim - Отсекает элементы с конца коллекции
    • ocicollgetelem - Псевдоним OCICollection::getElem
    • ocicollmax - Псевдоним OCICollection::max
    • ocicollsize - Псевдоним OCICollection::size
    • ocicolltrim - Псевдоним OCICollection::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 - Псевдоним OCICollection::free
    • ocifreecursor - Псевдоним oci_free_statement
    • ocifreedesc - Псевдоним OCILob::free
    • ocifreestatement - Псевдоним oci_free_statement
    • ociinternaldebug - Псевдоним oci_internal_debug
    • ociloadlob - Псевдоним OCILob::load
    • OCILob::append - Добавляет данные из объекта LOB в конец другого объекта
    • OCILob::close - Закрывает дескриптор объекта LOB
    • OCILob::eof - Проверяет, находится ли указатель LOB на конце объекта
    • OCILob::erase - Очищает указанную часть объекта LOB
    • OCILob::export - Сохраняет содержимое объекта LOB в файл
    • OCILob::flush - Очищает и записывает буфер объекта LOB на сервер
    • OCILob::free - Освобождает ресурсы, связанные с дескриптором LOB
    • OCILob::getBuffering - Возвращает текущее состояние буферизации большого объекта (LOB)
    • OCILob::import - Записывает содержимое файла в объект LOB
    • OCILob::load - Возвращает содержимое объекта LOB
    • OCILob::read - Возвращает часть объекта LOB
    • OCILob::rewind - Переводит указатель объекта в начало большого объекта
    • OCILob::save - Сохраняет данные в LOB
    • OCILob::saveFile - Псевдоним OCILob::import
    • OCILob::seek - Устанавливает позицию внутреннего указателя LOB
    • OCILob::setBuffering - Изменяет текущее состояние буферизации большого объекта (LOB)
    • OCILob::size - Возвращает размер объекта LOB
    • OCILob::tell - Возвращает текущую позицию внутреннего указателя объекта LOB
    • OCILob::truncate - Обрезает большой объект
    • OCILob::write - Записывает данные в объект LOB
    • OCILob::writeTemporary - Записывает временный большой объект (LOB)
    • OCILob::writeToFile - Псевдоним OCILob::export
    • 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 - Псевдоним OCILob::save
    • ocisavelobfile - Псевдоним OCILob::import
    • ociserverversion - Псевдоним oci_server_version
    • ocisetprefetch - Псевдоним oci_set_prefetch
    • ocistatementtype - Псевдоним oci_statement_type
    • ociwritelobtofile - Псевдоним OCILob::export
    • ociwritetemporarylob - Псевдоним OCILob::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
    • 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_set_prefetch_lob - Устанавливает объём данных, предварительно выбираемых для каждого CLOB или BLOB
    • oci_statement_type - Возвращает тип выражения
    • oci_unregister_taf_callback - Удалить регистрацию пользовательской callback-функции для Oracle Database TAF
    • octdec - Переводит число из восьмеричной системы счисления в десятичную
    • odbc_autocommit - Переключает поведение автоматической фиксации
    • odbc_binmode - Управляет обработкой двоичных данных столбца
    • odbc_close - Закрывает соединение ODBC
    • odbc_close_all - Закрывает все соединения ODBC
    • odbc_columnprivileges - Перечисляет столбцы и связанные привилегии для данной таблицы
    • odbc_columns - Перечисляет имена столбцов в указанных таблицах
    • odbc_commit - Фиксирует транзакцию ODBC
    • odbc_connect - Соединяет с источником данных
    • odbc_connection_string_is_quoted - Определяет, заключено ли значение строки соединения ODBC в кавычки
    • odbc_connection_string_quote - Заключает в кавычки значение строки подключения
    • odbc_connection_string_should_quote - Определяет, следует ли заключать значение строки соединения ODBC в кавычки
    • odbc_cursor - Возвращает имя курсора
    • odbc_data_source - Возвращает информацию о доступных DSN
    • odbc_do - Псевдоним odbc_exec
    • odbc_error - Возвращает последний код ошибки
    • odbc_errormsg - Возвращает последнее сообщение об ошибке
    • odbc_exec - Выполняет инструкцию SQL напрямую
    • odbc_execute - Выполняет запрос
    • odbc_fetch_array - Возвращает строку результата в виде ассоциативного массива
    • odbc_fetch_into - Возвращает одну строку результата в массив
    • odbc_fetch_object - Возвращает строку результата в виде объекта
    • odbc_fetch_row - Возвращает строку
    • odbc_field_len - Возвращает длину (точность) поля
    • odbc_field_name - Возвращает имя столбца
    • odbc_field_num - Возвращает номер столбца
    • odbc_field_precision - Псевдоним odbc_field_len
    • odbc_field_scale - Возвращает масштаб поля
    • odbc_field_type - Возвращает тип данных поля
    • odbc_foreignkeys - Возвращает список внешних ключей
    • odbc_free_result - Освобождает ресурсы, связанные с результатом
    • odbc_gettypeinfo - Возвращает информацию о типах данных, поддерживаемых источником данных
    • odbc_longreadlen - Обрабатывает столбцы LONG
    • odbc_next_result - Проверяет, доступно ли несколько результатов
    • odbc_num_fields - Возвращает количество столбцов в результате
    • odbc_num_rows - Возвращает количество строк в результате
    • odbc_pconnect - Открывает постоянное соединение с базой данных
    • odbc_prepare - Подготавливает запрос к выполнению
    • odbc_primarykeys - Получает первичные ключи таблицы
    • odbc_procedurecolumns - Получает информацию о параметрах процедур
    • odbc_procedures - Получает список процедур, хранящихся в определённом источнике данных
    • odbc_result - Получает данные результата
    • odbc_result_all - Выводит результат в виде HTML-таблицы
    • odbc_rollback - Откатывает транзакцию
    • odbc_setoption - Регулирует настройки ODBC
    • odbc_specialcolumns - Извлекает особые столбцы
    • odbc_statistics - Получает статистику о таблице
    • odbc_tableprivileges - Перечисляет таблицы и привилегии, связанные с каждой таблицей
    • odbc_tables - Получает список имён таблиц, хранящихся в определённом источнике данных
    • 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_cipher_key_length - Получает длину ключа шифрования
    • openssl_cms_decrypt - Расшифровывает CMS-сообщение
    • openssl_cms_encrypt - Зашифровывает CMS-сообщение
    • openssl_cms_read - Экспортирует файл CMS в массив сертификатов PEM
    • openssl_cms_sign - Подписывает файл
    • openssl_cms_verify - Проверяет подпись CMS
    • 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_derive - Вычисляет общий секрет для открытого значения удалённого и локального ключа DH или ECDH
    • 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 и вернуть для него объект
    • openssl_x509_verify - Проверка цифровой подписи сертификата x509 с помощью публичного ключа
    • ord - Конвертирует первый байт строки в число от 0 до 255
    • OuterIterator::getInnerIterator - Возвращает внутренний итератор для текущего элемента
    • output_add_rewrite_var - Добавить значения в обработчик URL
    • output_reset_rewrite_vars - Сбросить значения обработчика URL
  • p
    • pack - Упаковать данные в бинарную строку
    • parallel\bootstrap - Начальная загрузка
    • parallel\Channel::close - Закрытие
    • parallel\Channel::make - Доступ
    • parallel\Channel::open - Доступ
    • parallel\Channel::recv - Совместное использование
    • parallel\Channel::send - Совместное использование
    • parallel\Channel::__construct - Конструктор класса Channel
    • parallel\Events::addChannel - Цели
    • parallel\Events::addFuture - Цели
    • parallel\Events::poll - Опрос
    • parallel\Events::remove - Цели
    • parallel\Events::setBlocking - Поведение
    • parallel\Events::setInput - Вход
    • parallel\Events::setTimeout - Поведение
    • parallel\Events\Input::add - Входы
    • parallel\Events\Input::clear - Входы
    • parallel\Events\Input::remove - Входы
    • parallel\Future::cancel - Прекращение
    • parallel\Future::cancelled - Определение состояния
    • parallel\Future::done - Определение состояния
    • parallel\Future::value - Разрешение
    • parallel\run - Выполнение
    • parallel\Runtime::close - Изящное соединение во время выполнения
    • parallel\Runtime::kill - Соединение во время выполнения
    • parallel\Runtime::run - Выполнение
    • parallel\Runtime::__construct - Конструктор класса Runtime
    • parallel\Sync::get - Доступ
    • parallel\Sync::notify - Синхронизация
    • parallel\Sync::set - Доступ
    • parallel\Sync::wait - Синхронизация
    • parallel\Sync::__construct - Конструктор класса
    • parallel\Sync::__invoke - Синхронизация
    • ParentIterator::accept - Определение доступности
    • ParentIterator::getChildren - Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator
    • ParentIterator::hasChildren - Проверяет, имеет ли внутренний объект-итератор дочерние объекты
    • ParentIterator::next - Перемещает указатель на одну позицию вперёд
    • ParentIterator::rewind - Переводит итератор на начало
    • ParentIterator::__construct - Конструктор класса ParentIterator
    • Parle\Lexer::advance - Обрабатывает следующее правило лексера
    • Parle\Lexer::build - Завершает набор правил лексера
    • Parle\Lexer::callout - Определяет callback-функцию токена
    • Parle\Lexer::consume - Передаёт данные на обработку
    • Parle\Lexer::dump - Выводит состояние устройства
    • Parle\Lexer::getToken - Получает текущий токен
    • Parle\Lexer::insertMacro - Вставляет макрос регулярного выражения
    • Parle\Lexer::push - Добавляет правило лексера
    • Parle\Lexer::reset - Сбрасывает лексер
    • Parle\Parser::advance - Обрабатывает следующее правило парсера
    • Parle\Parser::build - Завершает грамматические правила
    • Parle\Parser::consume - Потребляет данные для обработки
    • Parle\Parser::dump - Выводит грамматику
    • Parle\Parser::errorInfo - Получает информацию об ошибке
    • Parle\Parser::left - Объявляет токен с левой ассоциативностью
    • Parle\Parser::nonassoc - Объявляет токен без ассоциативности
    • Parle\Parser::precedence - Объявляет правило приоритета
    • Parle\Parser::push - Добавляет грамматическое правило
    • Parle\Parser::reset - Сбрасывает состояние парсера
    • Parle\Parser::right - Объявляет токен с правой ассоциативностью
    • Parle\Parser::sigil - Извлекает часть совпадения по правилу
    • Parle\Parser::sigilCount - Получает количество элементов в совпадающем правиле
    • Parle\Parser::sigilName - Получает имя правила или токена
    • Parle\Parser::token - Объявляет токен
    • Parle\Parser::tokenId - Получает идентификатор токена
    • Parle\Parser::trace - Следит за работой парсера
    • Parle\Parser::validate - Проверяет входные данные
    • Parle\RLexer::advance - Обработка следующего правила лексера
    • Parle\RLexer::build - Завершает набор правил лексера
    • Parle\RLexer::callout - Определяет callback-функцию токена
    • Parle\RLexer::consume - Передаёт данные для обработки
    • Parle\RLexer::dump - Выгружает состояние устройства
    • Parle\RLexer::getToken - v
    • Parle\RLexer::insertMacro - Вставляет макрос регулярного выражения
    • Parle\RLexer::push - Добавляет правило лексера
    • Parle\RLexer::pushState - Продвигает новое начальное состояние
    • Parle\RLexer::reset - Сбрасывает лексер
    • Parle\RParser::advance - Обработка следующего правила парсера
    • Parle\RParser::build - Завершает грамматические правила
    • Parle\RParser::consume - Использовать данные для обработки
    • Parle\RParser::dump - Выводит грамматику
    • Parle\RParser::errorInfo - Получает информацию об ошибке
    • Parle\RParser::left - Объявляет токен с левой ассоциативностью
    • Parle\RParser::nonassoc - Объявляет токен без ассоциативности
    • Parle\RParser::precedence - Объявляет правило приоритета
    • Parle\RParser::push - Добавляет грамматическое правило
    • Parle\RParser::reset - Сбрасывает состояние парсера
    • Parle\RParser::right - Объявляет токен с правой ассоциативностью
    • Parle\RParser::sigil - Извлекает совпадающую часть по правилу
    • Parle\RParser::sigilCount - Получает количество элементов в совпадающем правиле
    • Parle\RParser::sigilName - Получает имя правила или токена
    • Parle\RParser::token - Объявляет токен
    • Parle\RParser::tokenId - Получает идентификатор токена
    • Parle\RParser::trace - Следит за работой парсера
    • Parle\RParser::validate - Проверяет входные данные
    • Parle\Stack::pop - Извлекает предмет из стека
    • Parle\Stack::push - Помещает элемент в стек
    • parse_ini_file - Обрабатывает конфигурационный файл
    • parse_ini_string - Разбирает строку конфигурации
    • parse_str - Разбирает строку в переменные
    • parse_url - Разбирает URL и возвращает его компоненты
    • passthru - Выполнить внешнюю программу и отобразить необработанный вывод
    • password_algos - Получает доступные идентификаторы алгоритма хеширования пароля
    • 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_rfork - Взаимодействует с ресурсами процесса
    • pcntl_setpriority - Изменить приоритет процесса
    • pcntl_signal - Установка обработчика сигнала
    • pcntl_signal_dispatch - Вызывает обработчики для ожидающих сигналов
    • pcntl_signal_get_handler - Получить текущий обработчик указанного сигнала
    • pcntl_sigprocmask - Задаёт и извлекает список блокируемых сигналов
    • pcntl_sigtimedwait - Ожидает сигналы в течение заданного времени
    • pcntl_sigwaitinfo - Ожидание сигналов
    • pcntl_strerror - Получить текст ошибки по её коду
    • pcntl_unshare - Разделяет части контекста выполнения процесса
    • pcntl_wait - Ожидает или возвращает статус порождённого дочернего процесса
    • pcntl_waitpid - Ожидает или возвращает статус порождённого дочернего процесса
    • pcntl_wexitstatus - Получить код возврата завершённого дочернего процесса
    • pcntl_wifexited - Проверяет, соответствует ли код завершения процесса нормальному завершению
    • pcntl_wifsignaled - Проверить, соответствует ли код завершения процесса завершению по сигналу
    • pcntl_wifstopped - Проверить, остановлен ли дочерний процесс
    • pcntl_wstopsig - Получить сигнал, из-за которого был остановлен дочерний процесс
    • pcntl_wtermsig - Получить сигнал, из-за которого был принудительно завершён дочерний процесс
    • 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 без заполнителей
    • 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::getIterator - Получает итератор набора результатов
    • PDOStatement::nextRowset - Переход к следующему набору строк в результате запроса
    • PDOStatement::rowCount - Возвращает количество строк, затронутых последним SQL-запросом
    • PDOStatement::setAttribute - Устанавливает атрибут объекту PDOStatement
    • PDOStatement::setFetchMode - Устанавливает режим выборки по умолчанию для объекта запроса
    • 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_context_visibility - Determines the visibility of the context's error messages returned by pg_last_error and pg_result_error
    • 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::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::unlinkArchive - Полностью удалить архив из памяти и с диска
    • Phar::webPhar - Направляет запрос из браузера во внутренний файл в phar-архиве
    • Phar::__construct - Создаёт объект Phar-архива
    • Phar::__destruct - Уничтожает объект архива 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::setMetadata - Установить метаданные phar-архива
    • PharData::setSignatureAlgorithm - Установить алгоритм подписания phar-архива и применение его
    • PharData::setStub - Функция заглушка (Phar::setStub нельзя использовать для PharData)
    • PharData::__construct - Конструктор объекта PharData
    • PharData::__destruct - Уничтожает неисполняемый объект архива tar или zip
    • 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::isCRCChecked - Определить, прошёл ли файл проверку CRC
    • PharFileInfo::setMetadata - Установка метаданных для конкретного файла
    • PharFileInfo::__construct - Конструктор объекта PharFileInfo
    • PharFileInfo::__destruct - Уничтожает входной объект Phar
    • 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
    • PhpToken::getTokenName - Возвращает имя токена
    • PhpToken::is - Проверяет, соответствует ли токен указанному типу
    • PhpToken::isIgnorable - Сообщает, будет ли токен игнорироваться парсером PHP
    • PhpToken::tokenize - Разбирает заданную строку, содержащую программу на PHP, на массив объектов PhpToken
    • PhpToken::__construct - Создаёт объект PhpToken
    • PhpToken::__toString - Возвращает текстовое содержимое токена
    • phpversion - Получает текущую версию PHP
    • php_ini_loaded_file - Получить путь к загруженному файлу php.ini
    • php_ini_scanned_files - Возвращает список .ini-файлов, найденных в дополнительной ini-директории
    • php_sapi_name - Возвращает тип интерфейса между веб-сервером и PHP
    • php_strip_whitespace - Возвращает исходный код без комментариев и пробелов
    • php_uname - Возвращает информацию об операционной системе, на которой запущен PHP
    • php_user_filter::filter - Вызывается, как только применяется фильтр
    • php_user_filter::onClose - Вызывается при закрытии фильтра
    • php_user_filter::onCreate - Вызывается при создании объекта фильтра
    • pi - Возвращает число Пи
    • png2wbmp - Преобразование PNG файла в WBMP
    • Pool::collect - Собирает ссылки на выполненные задания
    • Pool::resize - Изменяет размер пула
    • Pool::shutdown - Выключает все воркеры
    • Pool::submit - Отправляет объект на исполнение
    • Pool::submitTo - Отправляет задачу конкретному воркеру для выполнения
    • Pool::__construct - Создаёт новый пул воркеров
    • popen - Открывает файловый указатель процесса
    • pos - Псевдоним current
    • posix_access - Определяет доступность файла
    • posix_ctermid - Возвращает путь управляющего терминала
    • posix_eaccess - Determine accessibility of a file
    • posix_errno - Псевдоним posix_get_last_error
    • posix_fpathconf - Returns the value of a configurable limit
    • 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_pathconf - Returns the value of a configurable limit
    • posix_setegid - Устанавливает эффективный идентификатор группы для текущего процесса EGID
    • posix_seteuid - Устанавливает эффективный идентификатор пользователя для текущего процесса EUID
    • posix_setgid - Устанавливает идентификатор группы для текущего процесса GID
    • posix_setpgid - Устанавливает идентификатор группы процесса для менеджера задач
    • posix_setrlimit - Устанавливает пределы системных ресурсов
    • posix_setsid - Делает текущий процесс лидером сессии
    • posix_setuid - Устанавливает UID текущего процесса
    • posix_strerror - Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки
    • posix_sysconf - Returns system runtime information
    • posix_times - Возвращает информацию об использовании процессорного времени
    • posix_ttyname - Определяет имя терминального устройства
    • posix_uname - Возвращает информацию о системе
    • pow - Возведение в степень
    • preg_filter - Производит поиск и замену по регулярному выражению
    • preg_grep - Возвращает массив вхождений, которые соответствуют шаблону
    • preg_last_error - Возвращает код ошибки выполнения последнего регулярного выражения PCRE
    • preg_last_error_msg - Возвращает сообщение об ошибке последней запущенной функции 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 - Добавляет ссылку, запускающую файл
    • ps_add_locallink - Добавляет ссылку на страницу того же документа
    • ps_add_note - Добавляет примечание к текущей странице
    • ps_add_pdflink - Добавляет ссылку на страницу в другом PDF-документе
    • ps_add_weblink - Добавляет ссылку на веб-страницу
    • ps_arc - Рисует дугу против часовой стрелки
    • ps_arcn - Рисует дугу по часовой стрелке
    • ps_begin_page - Начинает новую страницу
    • ps_begin_pattern - Начинает новый узор
    • ps_begin_template - Начинает новый шаблон
    • ps_circle - Рисует круг
    • ps_clip - Отрисовка клипов по текущему пути
    • ps_close - Закрывает документ PostScript
    • ps_closepath - Замыкает путь
    • ps_closepath_stroke - Замыкает и обводит контур
    • ps_close_image - Закрывает изображение и освобождает память
    • ps_continue_text - Продолжает текст в следующей строке
    • ps_curveto - Рисует кривую
    • ps_delete - Удаляет все ресурсы документа PostScript
    • ps_end_page - Завершает страницу
    • ps_end_pattern - Завершает шаблон
    • ps_end_template - Завершает шаблон
    • ps_fill - Заполняет текущий путь
    • ps_fill_stroke - Заполняет и обводит текущий путь
    • ps_findfont - Загружает шрифт
    • ps_get_buffer - Получает полный буфер, содержащий сгенерированные данные PS
    • ps_get_parameter - Получает определённые параметры
    • ps_get_value - Получает определённые значения
    • ps_hyphenate - Переносит слово
    • ps_include_file - Читает внешний файл с необработанным кодом PostScript
    • ps_lineto - Рисует линию
    • ps_makespotcolor - Создаёт плашечный цвет
    • ps_moveto - Устанавливает текущую точку
    • ps_new - Создаёт новый объект документа PostScript
    • ps_open_file - Открывает файл для вывода
    • ps_open_image - Считывает изображение для последующего размещения
    • ps_open_image_file - Открывает изображение из файла
    • ps_open_memory_image - Берёт изображение GD и возвращает изображение для размещения в документе PS
    • ps_place_image - Размещает изображение на странице
    • ps_rect - Рисует прямоугольник
    • ps_restore - Восстанавливает ранее сохранённый контекст
    • ps_rotate - Устанавливает коэффициент вращения
    • ps_save - Сохраняет текущий контекст
    • ps_scale - Устанавливает коэффициент масштабирования
    • ps_setcolor - Устанавливает текущий цвет
    • ps_setdash - Устанавливает внешний вид пунктирной линии
    • ps_setflat - Устанавливает плоскостность
    • ps_setfont - Устанавливает шрифт, который будет использоваться для следующего вывода
    • ps_setgray - Устанавливает значение серого
    • ps_setlinecap - Устанавливает внешний вид окончания линии
    • ps_setlinejoin - Устанавливает способ соединения линий
    • ps_setlinewidth - Устанавливает ширину линии
    • ps_setmiterlimit - Устанавливает предел скоса
    • ps_setoverprintmode - Устанавливает режим наложения
    • ps_setpolydash - Устанавливает внешний вид пунктирной линии
    • ps_set_border_color - Устанавливает цвет границы аннотаций
    • ps_set_border_dash - Устанавливает длину тире для границы аннотации
    • ps_set_border_style - Устанавливает стиль границы аннотаций
    • ps_set_info - Устанавливает информационные поля документа
    • ps_set_parameter - Устанавливает определённые параметры
    • ps_set_text_pos - Устанавливает позицию для вывода текста
    • ps_set_value - Устанавливает определённые значения
    • ps_shading - Создаёт затенение для последующего использования
    • ps_shading_pattern - Создаёт узор на основе затенения
    • ps_shfill - Заполняет область затенением
    • ps_show - Выводит текст
    • ps_show2 - Выводит текст в текущей позиции
    • ps_show_boxed - Выводит текст в поле
    • ps_show_xy - Выводит текст в заданной позиции
    • ps_show_xy2 - Выводит текст в заданной позиции
    • ps_stringwidth - Получает ширину строки
    • ps_string_geometry - Получает геометрию строки
    • ps_stroke - Рисует текущий путь
    • ps_symbol - Выводит глиф
    • ps_symbol_name - Получает имя глифа
    • ps_symbol_width - Получает ширину глифа
    • ps_translate - Изменяет систему координат
    • putenv - Устанавливает значение переменной среды
  • q
    • QuickHashIntHash::add - Добавить элемент в хеш
    • QuickHashIntHash::delete - Метод удаляет запись из хеша
    • QuickHashIntHash::exists - Метод проверяет, является ли ключ частью хеша
    • QuickHashIntHash::get - Метод извлекает значение из хеша по его ключу
    • QuickHashIntHash::getSize - Возвращает количество элементов в хеше
    • QuickHashIntHash::loadFromFile - Фабричный метод создаёт хеш из файла
    • QuickHashIntHash::loadFromString - Фабричный метод создаёт хеш из строки
    • QuickHashIntHash::saveToFile - Метод сохраняет хеш в памяти на диск
    • QuickHashIntHash::saveToString - Метод возвращает сериализованную версию хеша
    • QuickHashIntHash::set - Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует
    • QuickHashIntHash::update - Метод обновляет запись в хеше новым значением
    • QuickHashIntHash::__construct - Создаёт объект QuickHashIntHash
    • QuickHashIntSet::add - Метод добавляет новую запись в набор
    • QuickHashIntSet::delete - Метод удаляет запись из набора
    • QuickHashIntSet::exists - Метод проверяет, является ли ключ частью набора
    • QuickHashIntSet::getSize - Возвращает количество элементов в наборе
    • QuickHashIntSet::loadFromFile - Фабричный метод создаёт набор из файла
    • QuickHashIntSet::loadFromString - Фабричный метод создаёт набор из строки
    • QuickHashIntSet::saveToFile - Метод сохраняет набор в памяти на диске
    • QuickHashIntSet::saveToString - Метод возвращает сериализованную версию набора
    • QuickHashIntSet::__construct - Создаёт новый объект QuickHashIntSet
    • QuickHashIntStringHash::add - Метод добавляет новую запись в хеш
    • QuickHashIntStringHash::delete - Метод удаляет запись из хеша
    • QuickHashIntStringHash::exists - Метод проверяет, является ли ключ частью хеша
    • QuickHashIntStringHash::get - Метод извлекает значение из хеша по его ключу
    • QuickHashIntStringHash::getSize - Возвращает количество элементов в хеше
    • QuickHashIntStringHash::loadFromFile - Фабричный метод создаёт хеш из файла
    • QuickHashIntStringHash::loadFromString - Фабричный метод создаёт хеш из строки
    • QuickHashIntStringHash::saveToFile - Метод сохраняет хеш в памяти на диске
    • QuickHashIntStringHash::saveToString - Метод возвращает сериализованную версию хеша
    • QuickHashIntStringHash::set - Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует
    • QuickHashIntStringHash::update - Метод обновляет запись в хеше новым значением
    • QuickHashIntStringHash::__construct - Создаёт новый объект QuickHashIntStringHash
    • QuickHashStringIntHash::add - Метод добавляет новую запись в хеш
    • QuickHashStringIntHash::delete - Метод удаляет запись из хеша
    • QuickHashStringIntHash::exists - Метод проверяет, является ли ключ частью хеша
    • QuickHashStringIntHash::get - Метод извлекает значение из хеша по его ключу
    • QuickHashStringIntHash::getSize - Возвращает количество элементов в хеше
    • QuickHashStringIntHash::loadFromFile - Фабричный метод создаёт хеш из файла
    • QuickHashStringIntHash::loadFromString - Фабричный метод создаёт хеш из строки
    • QuickHashStringIntHash::saveToFile - Метод сохраняет хеш в памяти на диске
    • QuickHashStringIntHash::saveToString - Метод возвращает сериализованную версию хеша
    • QuickHashStringIntHash::set - Метод обновляет запись в хеше новым значением или добавляет новую, если запись не существует
    • QuickHashStringIntHash::update - Метод обновляет запись в хеше новым значением
    • QuickHashStringIntHash::__construct - Создаёт новый объект QuickHashStringIntHash
    • quoted_printable_decode - Преобразует строку, закодированную методом quoted-printable в 8-битную строку
    • quoted_printable_encode - Преобразует 8-битную строку с помощью метода quoted-printable
    • quotemeta - Экранирует специальные символы
  • r
    • rad2deg - Преобразует значение из радианов в градусы
    • radius_acct_open - Создаёт дескриптор Radius для учёта
    • radius_add_server - Добавляет сервер
    • radius_auth_open - Создаёт дескриптор Radius для аутентификации
    • radius_close - Освобождает все ресурсы
    • radius_config - Заставляет библиотеку читать данный файл конфигурации
    • radius_create_request - Создаёт учётную запись или запрос аутентификации
    • radius_cvt_addr - Преобразует необработанные данные в IP-адрес
    • radius_cvt_int - Преобразует необработанные данные в целое число
    • radius_cvt_string - Преобразует необработанные данные в строку
    • radius_demangle - Расшифровывает данные
    • radius_demangle_mppe_key - Получает mppe-ключи из искажённых данных
    • radius_get_attr - Извлекает атрибут
    • radius_get_tagged_attr_data - Извлекает данные из помеченного атрибута
    • radius_get_tagged_attr_tag - Извлекает тег из помеченного атрибута
    • radius_get_vendor_attr - Извлекает атрибут, зависящий от поставщика
    • radius_put_addr - Присоединяет атрибут IP-адреса
    • radius_put_attr - Присоединяет бинарный атрибут
    • radius_put_int - Присоединяет целочисленный атрибут
    • radius_put_string - Присоединяет строковый атрибут
    • radius_put_vendor_addr - Присоединяет атрибут IP-адреса конкретного поставщика
    • radius_put_vendor_attr - Присоединяет бинарный атрибут, зависящий от поставщика
    • radius_put_vendor_int - Присоединяет целочисленный атрибут, зависящий от поставщика
    • radius_put_vendor_string - Присоединяет строковый атрибут, зависящий от поставщика
    • radius_request_authenticator - Возвращает аутентификатор запроса
    • radius_salt_encrypt_attr - Зашифровывает значение с помощью соли
    • radius_send_request - Отправляет запрос и ждёт ответ
    • radius_server_secret - Возвращает общий секрет
    • radius_strerror - Возвращает сообщение об ошибке
    • rand - Генерирует случайное число
    • Random\Engine::generate - Создаёт случайную последовательность
    • Random\Engine\Mt19937::generate - Создаёт 32 бита случайной последовательности
    • Random\Engine\Mt19937::__construct - Создаёт новый объект движка Mt19937
    • Random\Engine\Mt19937::__debugInfo - Возвращает внутреннее состояние движка
    • Random\Engine\Mt19937::__serialize - Сериализует объект Mt19937
    • Random\Engine\Mt19937::__unserialize - Десериализует параметр data в объект Mt19937
    • Random\Engine\PcgOneseq128XslRr64::generate - Создаёт 64 бита случайной последовательности
    • Random\Engine\PcgOneseq128XslRr64::jump - Эффективное перемещение движка вперёд на несколько шагов
    • Random\Engine\PcgOneseq128XslRr64::__construct - Создаёт новый движок PCG Oneseq 128 XSL RR 64
    • Random\Engine\PcgOneseq128XslRr64::__debugInfo - Возвращает внутреннее состояние движка
    • Random\Engine\PcgOneseq128XslRr64::__serialize - Сериализует объект PcgOneseq128XslRr64
    • Random\Engine\PcgOneseq128XslRr64::__unserialize - Десериализует параметр data в объект PcgOneseq128XslRr64
    • Random\Engine\Secure::generate - Создаёт криптографически безопасную случайную последовательность
    • Random\Engine\Xoshiro256StarStar::generate - Генерирует 64 бита случайной последовательности
    • Random\Engine\Xoshiro256StarStar::jump - Эффективно перемещает движок вперёд на 2^128 шагов
    • Random\Engine\Xoshiro256StarStar::jumpLong - Эффективно перемещает движок вперёд на 2^192 шага
    • Random\Engine\Xoshiro256StarStar::__construct - Создаёт новый объект движка xoshiro256**
    • Random\Engine\Xoshiro256StarStar::__debugInfo - Возвращает внутреннее состояние движка
    • Random\Engine\Xoshiro256StarStar::__serialize - Сериализует объект Xoshiro256StarStar
    • Random\Engine\Xoshiro256StarStar::__unserialize - Десериализует параметр data в объект Xoshiro256StarStar
    • Random\Randomizer::getBytes - Получает случайные байты
    • Random\Randomizer::getBytesFromString - Get random bytes from a source string
    • Random\Randomizer::getFloat - Get a uniformly selected float
    • Random\Randomizer::getInt - Получает равномерно выбранное целое число
    • Random\Randomizer::nextFloat - Get a float from the right-open interval [0.0, 1.0)
    • Random\Randomizer::nextInt - Получает целое положительное число
    • Random\Randomizer::pickArrayKeys - Выбирает случайные ключи массива
    • Random\Randomizer::shuffleArray - Получает перестановку массива
    • Random\Randomizer::shuffleBytes - Получает байтовую перестановку строки
    • Random\Randomizer::__construct - Создаёт новый объект Randomizer
    • Random\Randomizer::__serialize - Сериализует объект Randomizer
    • Random\Randomizer::__unserialize - Десериализует параметр data в объект Randomizer
    • 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 - Получение имён модификаторов
    • ReflectionAttribute::getArguments - Возвращает аргументы, переданные атрибуту
    • ReflectionAttribute::getName - Возвращает имя атрибута
    • ReflectionAttribute::getTarget - Возвращает цель атрибута в виде битовой маски
    • ReflectionAttribute::isRepeated - Определяет, был ли атрибут с таким именем указан многократно в элементе кода
    • ReflectionAttribute::newInstance - Создаёт экземпляр класса атрибута, используя содержащиеся в объекте ReflectionAttribute имя класса и аргументы
    • ReflectionAttribute::__construct - Закрытый конструктор, запрещающий создание объекта напрямую
    • ReflectionClass::export - Экспортирует класс
    • ReflectionClass::getAttributes - Получает атрибуты
    • 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::isEnum - Возвращает, является ли класс перечислением
    • ReflectionClass::isFinal - Проверяет, является ли класс окончательным (final)
    • ReflectionClass::isInstance - Проверяет, принадлежит ли объект классу
    • ReflectionClass::isInstantiable - Проверяет, можно ли создать экземпляр класса
    • ReflectionClass::isInterface - Проверяет, является ли класс интерфейсом
    • ReflectionClass::isInternal - Проверяет, является ли класс встроенным в модуль или в ядро
    • ReflectionClass::isIterable - Проверить, является ли класс итерируемым
    • ReflectionClass::isIterateable - Псевдоним ReflectionClass::isIterable
    • ReflectionClass::isReadOnly - Проверяет, является ли класс доступным только для чтения
    • ReflectionClass::isSubclassOf - Проверяет, является ли класс подклассом
    • ReflectionClass::isTrait - Проверяет, является ли это трейтом
    • ReflectionClass::isUserDefined - Проверяет, является ли класс пользовательским
    • ReflectionClass::newInstance - Создаёт экземпляр класса с переданными аргументами
    • ReflectionClass::newInstanceArgs - Создаёт экземпляр класса с переданными параметрами
    • ReflectionClass::newInstanceWithoutConstructor - Создаёт новый экземпляр класса без вызова конструктора
    • ReflectionClass::setStaticPropertyValue - Устанавливает значение статического свойства
    • ReflectionClass::__construct - Создаёт объект класса ReflectionClass
    • ReflectionClass::__toString - Возвращает строковое представление объекта класса ReflectionClass
    • ReflectionClassConstant::export - Экспорт
    • ReflectionClassConstant::getAttributes - Получает атрибуты
    • ReflectionClassConstant::getDeclaringClass - Получает объявляющий класс
    • ReflectionClassConstant::getDocComment - Получает doc-комментарии
    • ReflectionClassConstant::getModifiers - Получает модификаторы константы класса
    • ReflectionClassConstant::getName - Получить имя константы
    • ReflectionClassConstant::getValue - Получает значение
    • ReflectionClassConstant::isEnumCase - Проверяет, является ли константа класса вариантом перечисления
    • ReflectionClassConstant::isFinal - Проверяет, является ли константа класса окончательной
    • ReflectionClassConstant::isPrivate - Проверяет, является ли константа закрытой
    • ReflectionClassConstant::isProtected - Проверяет, является ли константа защищённой
    • ReflectionClassConstant::isPublic - Проверяет, является ли константа общедоступной
    • ReflectionClassConstant::__construct - Создаёт ReflectionClassConstant
    • ReflectionClassConstant::__toString - Возвращает строковое представление объекта ReflectionClassConstant
    • ReflectionEnum::getBackingType - Получает тип перечисления, если есть
    • ReflectionEnum::getCase - Возвращает определённый вариант перечисления
    • ReflectionEnum::getCases - Возвращает список всех вариантов перечисления
    • ReflectionEnum::hasCase - Проверяет вариант перечисления
    • ReflectionEnum::isBacked - Определяет, является ли перечисление типизированным
    • ReflectionEnum::__construct - Создаёт объект ReflectionEnum
    • ReflectionEnumBackedCase::getBackingValue - Получает скалярное значение варианта перечисления
    • ReflectionEnumBackedCase::__construct - Создаёт объект ReflectionEnumBackedCase
    • ReflectionEnumUnitCase::getEnum - Получает Reflection-объект перечисления этого варианта
    • ReflectionEnumUnitCase::getValue - Получает объект варианта перечисления, описанный Reflection-объектом
    • ReflectionEnumUnitCase::__construct - Создаёт экземпляр объекта ReflectionEnumUnitCase
    • 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 - Преобразование в строку
    • ReflectionFiber::getCallable - Получает вызываемый объект, используемый для создания файбера
    • ReflectionFiber::getExecutingFile - Получает имя файла текущей точки выполнения
    • ReflectionFiber::getExecutingLine - Получает номер строки текущей точки выполнения
    • ReflectionFiber::getFiber - Получает отражённый экземпляр файбера
    • ReflectionFiber::getTrace - Получает обратную трассировку текущей точки выполнения
    • ReflectionFiber::__construct - Создаёт объект ReflectionFiber
    • ReflectionFunction::export - Экспортирует функции
    • ReflectionFunction::getClosure - Возвращает динамически созданное замыкание для функции
    • ReflectionFunction::invoke - Вызывает функцию
    • ReflectionFunction::invokeArgs - Вызов функции с передачей аргументов
    • ReflectionFunction::isAnonymous - Проверяет, является ли функция анонимной
    • ReflectionFunction::isDisabled - Проверяет, что функция отключена
    • ReflectionFunction::__construct - Конструктор класса ReflectionFunction
    • ReflectionFunction::__toString - Возвращает строковое представление объекта ReflectionFunction
    • ReflectionFunctionAbstract::getAttributes - Получает атрибуты
    • ReflectionFunctionAbstract::getClosureScopeClass - Возвращает класс в рамках которого было объявлено замыкание
    • ReflectionFunctionAbstract::getClosureThis - Возвращает указатель, привязанный к замыканию
    • ReflectionFunctionAbstract::getClosureUsedVariables - Возвращает массив используемых в замыкании переменных
    • 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::getTentativeReturnType - Возвращает предварительный тип возвращаемого значения, связанный с функцией
    • ReflectionFunctionAbstract::hasReturnType - Проверяет, имеет ли функция объявленный тип возвращаемого значения
    • ReflectionFunctionAbstract::hasTentativeReturnType - Определяет, есть ли у функции предварительный тип возвращаемого значения
    • ReflectionFunctionAbstract::inNamespace - Проверяет, находится ли функция в пространстве имён
    • ReflectionFunctionAbstract::isClosure - Проверяет, является ли функция замыканием (Closure)
    • ReflectionFunctionAbstract::isDeprecated - Проверяет, является ли функция устаревшей
    • ReflectionFunctionAbstract::isGenerator - Проверяет, является ли функция генератором
    • ReflectionFunctionAbstract::isInternal - Проверяет, является ли функция внутренней
    • ReflectionFunctionAbstract::isStatic - Проверяет, является ли функция статической
    • ReflectionFunctionAbstract::isUserDefined - Проверяет, является ли функция определённой пользователем
    • ReflectionFunctionAbstract::isVariadic - Проверяет, является ли функция функцией с переменным числом аргументов
    • ReflectionFunctionAbstract::returnsReference - Проверяет, что функция возвращает ссылку
    • ReflectionFunctionAbstract::__clone - Клонирует функцию
    • ReflectionFunctionAbstract::__toString - Возвращает строковое представление объекта ReflectionFunctionAbstract
    • ReflectionGenerator::getExecutingFile - Получить имя файла, из которого запущен генератор
    • ReflectionGenerator::getExecutingGenerator - Получить запущенный объект Generator
    • ReflectionGenerator::getExecutingLine - Получить текущую выполняющуюся строку генератора
    • ReflectionGenerator::getFunction - Получить имя функции генератора
    • ReflectionGenerator::getThis - Получает значение $this генератора
    • ReflectionGenerator::getTrace - Получить трассировку запущенного генератора
    • ReflectionGenerator::__construct - Конструктор ReflectionGenerator
    • ReflectionIntersectionType::getTypes - Возвращает типы, включённые в тип intersection
    • ReflectionMethod::createFromMethodName - Creates a new ReflectionMethod
    • ReflectionMethod::export - Экспорт отражённого метода
    • ReflectionMethod::getClosure - Возвращает динамически созданное замыкание для метода
    • ReflectionMethod::getDeclaringClass - Получает класс, объявляющий отражённый метод
    • ReflectionMethod::getModifiers - Получает модификаторы метода
    • ReflectionMethod::getPrototype - Получает прототип метода (если такой есть)
    • ReflectionMethod::hasPrototype - Определяет, есть ли у метода прототип
    • ReflectionMethod::invoke - Вызов
    • ReflectionMethod::invokeArgs - Вызов метода с передачей аргументов массивом
    • ReflectionMethod::isAbstract - Проверяет, является ли метод абстрактным
    • ReflectionMethod::isConstructor - Проверяет, является ли метод конструктором
    • ReflectionMethod::isDestructor - Проверяет, является ли метод деструктором
    • ReflectionMethod::isFinal - Проверяет, является ли метод окончательным
    • ReflectionMethod::isPrivate - Проверяет, является ли метод закрытым
    • ReflectionMethod::isProtected - Проверяет, является ли метод защищённым
    • ReflectionMethod::isPublic - Проверяет, является ли метод общедоступным
    • ReflectionMethod::setAccessible - Делает метод доступным
    • ReflectionMethod::__construct - Конструктор класса ReflectionMethod
    • ReflectionMethod::__toString - Возвращает строковое представление объекта ReflectionMethod
    • ReflectionNamedType::getName - Получает имя типа в виде строки
    • ReflectionNamedType::isBuiltin - Проверяет, является ли тип встроенным
    • ReflectionObject::export - Экспорт
    • ReflectionObject::__construct - Конструктор класса ReflectionObject
    • ReflectionParameter::allowsNull - Проверяет, допустимо ли значение null для параметра
    • ReflectionParameter::canBePassedByValue - Проверяет, можно ли передать этот аргумент по значению
    • ReflectionParameter::export - Экспорт
    • ReflectionParameter::getAttributes - Получает атрибуты
    • ReflectionParameter::getClass - Получает объект ReflectionClass для отражаемого параметра или null
    • 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::getAttributes - Получает атрибуты
    • ReflectionProperty::getDeclaringClass - Получение объявляющего класса
    • ReflectionProperty::getDefaultValue - Возвращает значение по умолчанию, заданное для свойства
    • ReflectionProperty::getDocComment - Получение doc-комментария для свойства
    • ReflectionProperty::getModifiers - Получение модификаторов свойств класса
    • ReflectionProperty::getName - Получение имени свойства
    • ReflectionProperty::getType - Получить тип свойства
    • ReflectionProperty::getValue - Получает значение
    • ReflectionProperty::hasDefaultValue - Проверяет, задано ли для свойства значение по умолчанию
    • ReflectionProperty::hasType - Проверить, задан ли для свойства тип
    • ReflectionProperty::isDefault - Проверяет, является ли значение свойством по умолчанию
    • ReflectionProperty::isInitialized - Проверить, инициализировано ли свойство
    • ReflectionProperty::isPrivate - Проверяет, является ли свойство закрытым
    • ReflectionProperty::isPromoted - Проверяет, определено ли свойство в конструкторе
    • ReflectionProperty::isProtected - Проверяет, является ли свойство защищённым
    • ReflectionProperty::isPublic - Проверяет, является ли свойство общедоступным
    • ReflectionProperty::isReadOnly - Проверяет, является ли свойство readonly-свойством
    • ReflectionProperty::isStatic - Проверка, является ли свойство статическим
    • ReflectionProperty::setAccessible - Делает свойство доступным
    • ReflectionProperty::setValue - Установка значения свойства
    • ReflectionProperty::__clone - Клонировать
    • ReflectionProperty::__construct - Конструктор класса ReflectionProperty
    • ReflectionProperty::__toString - Преобразование в строку
    • ReflectionReference::fromArrayElement - Создаёт ReflectionReference из элемента массива
    • ReflectionReference::getId - Получить уникальный идентификатор ссылки
    • ReflectionReference::__construct - Закрытый конструктор, запрещающий создание экземпляра напрямую
    • ReflectionType::allowsNull - Проверяет, допустим ли NULL
    • ReflectionType::__toString - Преобразование в строку
    • ReflectionUnionType::getTypes - Возвращает типы, включённые в тип union
    • ReflectionZendExtension::export - Экспорт
    • ReflectionZendExtension::getAuthor - Получает автора
    • ReflectionZendExtension::getCopyright - Получает авторские права
    • ReflectionZendExtension::getName - Получает имя
    • ReflectionZendExtension::getURL - Получает URL
    • ReflectionZendExtension::getVersion - Получает версию
    • ReflectionZendExtension::__clone - Обработчик клонирования
    • ReflectionZendExtension::__construct - Создаёт объект ReflectionZendExtension
    • ReflectionZendExtension::__toString - Обработчик преобразования в строку
    • Reflector::export - Экспорт
    • 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 - Переименовывает файл или директорию
    • 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 - Получает количество затронутых строк
    • Result::getAutoIncrementValue - Получает значение автоинкремента
    • Result::getGeneratedIds - Получает сгенерированные идентификаторы
    • Result::getWarnings - Получает предупреждения последней операции
    • Result::getWarningsCount - Получает количество предупреждений последней операции
    • Result::__construct - Конструктор класса Result
    • ReturnTypeWillChange::__construct - Создаёт новый экземпляр атрибута ReturnTypeWillChange
    • rewind - Сбрасывает курсор файлового указателя
    • rewinddir - Сбросить дескриптор каталога
    • rmdir - Удаляет директорию
    • rnp_backend_string - Возвращает имя библиотеки криптографического бэкенда
    • rnp_backend_version - Возвращает версию криптографической библиотеки бэкенда
    • rnp_decrypt - Расшифровывает сообщение PGP
    • rnp_dump_packets - Выгружает информацию о потоке пакетов OpenPGP в человеко-читаемом формате
    • rnp_dump_packets_to_json - Выгрузка информации о потоке пакетов OpenPGP в строку JSON
    • rnp_ffi_create - Создаёт объект верхнего уровня, используемый для взаимодействия с библиотекой
    • rnp_ffi_destroy - Уничтожает объект верхнего уровня, используемый для взаимодействия с библиотекой
    • rnp_ffi_set_pass_provider - Устанавливает callback-функцию поставщика паролей
    • rnp_import_keys - Импортирует ключи из строки PHP в связку ключей и получает JSON с описанием новых/обновлённых ключей
    • rnp_import_signatures - Импортирует автономные подписи в связку ключей и получает JSON с описанием обновлённых ключей
    • rnp_key_export - Экспортирует ключ
    • rnp_key_export_autocrypt - Экспортирует минимальный ключ для функции автоматического шифрования (всего 5 пакетов: ключ, uid, подпись, дочерний ключ шифрования, подпись)
    • rnp_key_export_revocation - Генерирует и экспортирует подпись отзыва первичного ключа
    • rnp_key_get_info - Получает информацию о ключе
    • rnp_key_remove - Удаляет ключ из связки (связок)
    • rnp_key_revoke - Отзывает ключ или дочерний ключ путём создания и добавления подписи отзыва
    • rnp_list_keys - Перечисляет все ключи, присутствующие в связке ключей, по указанному типу идентификатора
    • rnp_load_keys - Загружает ключи из строки PHP
    • rnp_load_keys_from_path - Загружает ключи из указанного пути
    • rnp_locate_key - Поиск ключа
    • rnp_op_encrypt - Шифрует сообщение
    • rnp_op_generate_key - Генерирует ключ
    • rnp_op_sign - Выполняет операцию подписания бинарных данных, возвращает присоединённую подпись (подписи)
    • rnp_op_sign_cleartext - Выполняет операцию подписания текстовых данных, возвращая подписанный открытый текст сообщения
    • rnp_op_sign_detached - Выполняет операцию подписания, возвращает отсоединённую подпись (подписи)
    • rnp_op_verify - Проверяет присоединённую подпись или подпись открытого текста
    • rnp_op_verify_detached - Проверяет отсоединённые подписи
    • rnp_save_keys - Сохраняет ключи в строке PHP
    • rnp_save_keys_to_path - Сохраняет ключи по указанному пути
    • rnp_supported_features - Получает поддерживаемые функции в формате JSON
    • rnp_version_string - Возвращает строку версии библиотеки RNP
    • rnp_version_string_full - Возвращает строку полной версии библиотеки RNP
    • round - Округляет число типа float
    • RowResult::fetchAll - Получает все строки из результата
    • RowResult::fetchOne - Получает строку из результата
    • RowResult::getColumnNames - Получает все имена столбцов
    • RowResult::getColumns - Получает метаданные столбца
    • RowResult::getColumnsCount - Получает количество столбцов
    • RowResult::getWarnings - Получает предупреждения последней операции
    • RowResult::getWarningsCount - Получает количество предупреждений последней операции
    • RowResult::__construct - Конструктор класса RowResult
    • rpmaddtag - Добавляет тег, полученный в запросе
    • rpmdbinfo - Получает информацию от установленного RPM
    • rpmdbsearch - Поиск RPM-пакетов
    • rpmgetsymlink - Get target of a symlink
    • rpminfo - Извлечь информацию из RPM-файла
    • rpmvercmp - Сравнивает версии RPM
    • RRDCreator::addArchive - Добавляет RRA - архив значений данных для каждого источника данных
    • RRDCreator::addDataSource - Добавляет определение источника данных для базы данных RRD
    • RRDCreator::save - Сохраняет базу данных RRD в файл
    • RRDCreator::__construct - Создаёт новый экземпляр RRDCreator
    • rrdc_disconnect - Закрыть любые незавершённые подключения к демону кеширования rrd
    • RRDGraph::save - Сохраняет результат запроса в изображение
    • RRDGraph::saveVerbose - Сохраняет запрос к базе данных RRD в изображение и возвращает подробную информацию о сгенерированном графике
    • RRDGraph::setOptions - Устанавливает параметры для экспорта графика rrd
    • RRDGraph::__construct - Создаёт новый экземпляр RRDGraph
    • 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 - Аналогичен define(), но также позволяет определить константу класса
    • runkit7_constant_redefine - Переопределяет уже определённую константу
    • runkit7_constant_remove - Удаляет уже определённую константу
    • runkit7_function_add - Добавляет новую функцию, функция аналогична create_function
    • runkit7_function_copy - Копирует функцию в новое имя функции
    • runkit7_function_redefine - Заменяет определение функции новой реализацией
    • runkit7_function_remove - Удаляет определение функции
    • runkit7_function_rename - Изменяет имя функции
    • runkit7_import - Обрабатывает функцию импорта файла PHP и определения классов, при необходимости перезаписывая
    • runkit7_method_add - Динамически добавляет новый метод в заданный класс
    • runkit7_method_copy - Копирует метод из одного класса в другой
    • runkit7_method_redefine - Динамически изменяет код заданного метода
    • runkit7_method_remove - Динамически удаляет заданный метод
    • runkit7_method_rename - Динамически изменяет имя заданного метода
    • runkit7_object_id - Возвращает дескриптор целочисленного объекта для данного объекта
    • runkit7_superglobals - Возвращает числовой индексированный массив зарегистрированных суперглобальных переменных
    • runkit7_zval_inspect - Возвращает информацию о переданном значении с типами данных, количеством ссылок и так далее
  • s
    • sapi_windows_cp_conv - Преобразовать строку из одной кодовой страницы в другую
    • sapi_windows_cp_get - Получить текущую кодовую страницу
    • sapi_windows_cp_is_utf8 - Указывает, совместима ли кодовая страница с UTF-8
    • sapi_windows_cp_set - Установить кодовую страницу процесса
    • sapi_windows_generate_ctrl_event - Послать событие CTRL другому процессу
    • sapi_windows_set_ctrl_handler - Установить или удалить обработчик события CTRL
    • sapi_windows_vt100_support - Получить или установить поддержку VT100 для заданного потока, связанного с буфером вывода консоли Windows
    • scandir - Получает список файлов и каталогов, расположенных по указанному пути
    • 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 - Возвращает список вызовов, которые произошли
    • scoutapm_list_instrumented_functions - Список функций, которые scoutapm будет использовать
    • SeasLog::alert - Записывает информацию уровня "alert" в журнал
    • SeasLog::analyzerCount - Получает количество журналов по уровню, log_path и key_word
    • SeasLog::analyzerDetail - Получает детализацию журнала по уровню, log_path, key_word, start, limit, order
    • SeasLog::closeLoggerStream - Вручную освобождает поток от регистратора
    • SeasLog::critical - Записывает информацию уровня "critical" в журнал
    • SeasLog::debug - Записывает информацию уровня "debug" в журнал
    • SeasLog::emergency - Записывает информацию уровня "emergency" в журнал
    • SeasLog::error - Записывает информацию уровня "error" в журнал
    • SeasLog::flushBuffer - Очищает буфер логов, делает дамп в файл приложения или отправляет на удалённый API с помощью tcp/udp
    • SeasLog::getBasePath - Получает базовый путь SeasLog
    • SeasLog::getBuffer - Получает буфер логов в памяти в виде массива
    • SeasLog::getBufferEnabled - Определяет, включён ли буфер
    • SeasLog::getDatetimeFormat - Получает стиль формата даты и времени SeasLog
    • SeasLog::getLastLogger - Получает последний путь регистратора SeasLog
    • SeasLog::getRequestID - Получает дифференцированные запросы SeasLog request_id
    • SeasLog::getRequestVariable - Получает переменную запроса SeasLog
    • SeasLog::info - Записывает информацию уровня "info" в журнал
    • SeasLog::log - Общая функция записи в журнал
    • SeasLog::notice - Записывает информацию уровня "notice" в журнал
    • SeasLog::setBasePath - Устанавливает базовый путь SeasLog
    • SeasLog::setDatetimeFormat - Устанавливает стиль формата даты и времени SeasLog
    • SeasLog::setLogger - Устанавливает имя регистратора SeasLog
    • SeasLog::setRequestID - Устанавливает дифференцированные запросы SeasLog request_id
    • SeasLog::setRequestVariable - Устанавливает переменную запроса SeasLog вручную
    • SeasLog::warning - Записывает информацию уровня "warning" в журнал
    • SeasLog::__construct - Описание
    • SeasLog::__destruct - Описание
    • seaslog_get_author - Получает автора SeasLog
    • seaslog_get_version - Получает версию SeasLog
    • SeekableIterator::seek - Перемещается к позиции
    • sem_acquire - Захват семафора
    • sem_get - Получение идентификатора семафора
    • sem_release - Освобождение семафора
    • sem_remove - Удаление семафора
    • SensitiveParameter::__construct - Создаёт новый экземпляр атрибута SensitiveParameter
    • SensitiveParameterValue::getValue - Возвращает чувствительное значение
    • SensitiveParameterValue::__construct - Создаёт новый объект SensitiveParameterValue
    • SensitiveParameterValue::__debugInfo - Защита чувствительных значений от случайного воздействия
    • Serializable::serialize - Представляет объект в виде строки
    • Serializable::unserialize - Создаёт объект
    • serialize - Генерирует пригодное для хранения представление переменной
    • Session::close - Закрывает сессию
    • Session::createSchema - Создаёт новую схему
    • Session::dropSchema - Удаляет схему
    • Session::generateUUID - Получает новый UUID
    • Session::getDefaultSchema - Получает имя схемы по умолчанию
    • Session::getSchema - Получает новый объект схемы
    • Session::getSchemas - Получает схемы
    • Session::getServerVersion - Получает версию сервера
    • Session::listClients - Получает список клиентов
    • Session::quoteName - Добавляет кавычки
    • 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 - Создать идентификатор сессии
    • SessionUpdateTimestampHandlerInterface::updateTimestamp - Обновить метку времени
    • SessionUpdateTimestampHandlerInterface::validateId - Проверить идентификатор
    • 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_module_name - Возвращает и/или устанавливает модуль текущей сессии
    • session_name - Получить или установить имя текущей сессии
    • session_regenerate_id - Генерирует и обновляет идентификатор текущей сессии
    • session_register_shutdown - Функция завершения сессии
    • session_reset - Реинициализирует сессию оригинальными значениями
    • session_save_path - Получает и/или устанавливает путь сохранения сессии
    • session_set_cookie_params - Устанавливает параметры сессионной cookie
    • session_set_save_handler - Устанавливает пользовательские обработчики хранения сессии
    • session_start - Стартует новую сессию, либо возобновляет существующую
    • session_status - Возвращает состояние текущей сессии
    • session_unset - Удалить все переменные сессии
    • session_write_close - Записывает данные сессии и завершает её
    • setcookie - Отправляет cookie
    • setlocale - Устанавливает настройки локали
    • setrawcookie - Отправляет cookie без URL-кодирования значения
    • settype - Задаёт тип переменной
    • set_error_handler - Задаёт пользовательский обработчик ошибок
    • set_exception_handler - Задаёт пользовательский обработчик исключений
    • set_file_buffer - Псевдоним stream_set_write_buffer
    • set_include_path - Устанавливает значение настройки конфигурации include_path
    • set_time_limit - Ограничение времени выполнения скрипта
    • sha1 - Возвращает SHA1-хеш строки
    • sha1_file - Возвращает SHA1-хеш файла
    • shell_exec - Выполнить команду через оболочку и вернуть вывод в виде строки
    • shmop_close - Закрытие блока разделяемой памяти
    • shmop_delete - Удаление блока разделяемой памяти
    • shmop_open - Резервирование или использование блока разделяемой памяти
    • shmop_read - Чтение данных из участка разделяемой памяти
    • shmop_size - Возвращает размер блока в разделяемой памяти
    • shmop_write - Запись данных в разделяемую память
    • shm_attach - Создаёт или открывает сегмент разделяемой памяти
    • shm_detach - Отключается от сегмента разделяемой памяти
    • shm_get_var - Возвращает переменную из разделяемой памяти
    • shm_has_var - Проверяет, существует ли конкретная запись
    • shm_put_var - Вставляет или обновляет переменную в разделяемой памяти
    • shm_remove - Удаляет разделяемую память из систем Unix
    • shm_remove_var - Удаляет переменную из разделяемой памяти
    • show_source - Псевдоним highlight_file
    • shuffle - Перемешивает массив
    • simdjson_decode - Декодирует строку JSON
    • simdjson_is_valid - Проверяет, является ли строка JSON корректной
    • simdjson_key_count - Возвращает значение по указателю JSON
    • simdjson_key_exists - Проверяет, содержит ли JSON значение, на которое ссылается указатель JSON
    • simdjson_key_value - Декодирует значение строки JSON, расположенной по запрошенному указателю JSON
    • similar_text - Вычисляет степень похожести двух строк
    • SimpleXMLElement::addAttribute - Добавляет атрибут к SimpleXML-элементу
    • SimpleXMLElement::addChild - Добавляет дочерний элемент к узлу XML
    • SimpleXMLElement::asXML - Возвращает сформированный XML-документ в виде строки на основе элемента SimpleXML
    • SimpleXMLElement::attributes - Возвращает атрибуты элемента
    • SimpleXMLElement::children - Находит дочерние элементы данного узла
    • SimpleXMLElement::count - Подсчитывает количество дочерних элементов у текущего элемента
    • SimpleXMLElement::current - Возвращает текущий элемент
    • SimpleXMLElement::getChildren - Возвращает дочерние элементы текущего элемента
    • SimpleXMLElement::getDocNamespaces - Возвращает пространства имён, объявленные в документе
    • SimpleXMLElement::getName - Получает имя элемента XML
    • SimpleXMLElement::getNamespaces - Возвращает пространства имён, используемые в документе
    • SimpleXMLElement::hasChildren - Проверяет, имеет ли текущий элемент дочерние элементы
    • SimpleXMLElement::key - Возвращает имя XML-тега текущего элемента
    • SimpleXMLElement::next - Переход к следующему элементу
    • SimpleXMLElement::registerXPathNamespace - Создаёт префикс/пространство имён контекста для следующего запроса XPath
    • SimpleXMLElement::rewind - Перемотка к первому элементу
    • SimpleXMLElement::saveXML - Псевдоним SimpleXMLElement::asXML
    • SimpleXMLElement::valid - Проверяет, является ли текущий элемент корректным
    • SimpleXMLElement::xpath - Запускает запрос XPath к XML-данным
    • SimpleXMLElement::__construct - Создание нового объекта SimpleXMLElement
    • SimpleXMLElement::__toString - Возвращает содержимое строки
    • simplexml_import_dom - Получает объект класса SimpleXMLElement из узла DOM
    • simplexml_load_file - Интерпретирует XML-файл в объект
    • simplexml_load_string - Интерпретирует строку с XML в объект
    • sin - Синус
    • sinh - Гиперболический синус
    • sizeof - Псевдоним count
    • sleep - Задержка выполнения
    • snmp2_get - Получает объект SNMP
    • snmp2_getnext - Получает объект SNMP, который следует за данным идентификатором объекта
    • snmp2_real_walk - Возвращает все объекты, включая их идентификатор
    • snmp2_set - Устанавливает значение объекта SNMP
    • snmp2_walk - Получает все объекты SNMP из агента
    • snmp3_get - Получает объект SNMP
    • snmp3_getnext - Получает объект SNMP, который следует за указанным идентификатором объекта
    • snmp3_real_walk - Возвращает все объекты, включая их идентификатор в указанном объекте
    • snmp3_set - Устанавливает значение объекта SNMP
    • snmp3_walk - Получает все объекты SNMP из агента
    • SNMP::close - Закрывает сессию SNMP
    • SNMP::get - Получает объект SNMP
    • SNMP::getErrno - Получает код последней ошибки
    • SNMP::getError - Получает последнее сообщение об ошибке
    • SNMP::getnext - Получить объект SNMP, который следует за данным идентификатором объекта
    • SNMP::set - Устанавливает значение объекта SNMP
    • SNMP::setSecurity - Настраивает связанные с безопасностью параметры сессии SNMPv3
    • SNMP::walk - Получает поддерево объекта SNMP
    • SNMP::__construct - Создаёт экземпляр SNMP, представляющий сессию удалённого агента SNMP
    • snmpget - Получает объект SNMP
    • snmpgetnext - Получает объект SNMP, который следует за данным идентификатором объекта
    • snmprealwalk - Возвращает все объекты, включая их идентификатор
    • snmpset - Устанавливает значение объекта SNMP
    • snmpwalk - Получает все объекты SNMP из агента
    • snmpwalkoid - Запрос дерева информации о сетевом объекте
    • snmp_get_quick_print - Получает текущее значение параметра quick_print библиотеки NET-SNMP
    • snmp_get_valueretrieval - Возвращает метод, как будут возвращены значения SNMP
    • snmp_read_mib - Читает и анализирует файл MIB в активном дереве MIB
    • snmp_set_enum_print - Возвращает все значения, которые являются перечислениями, с их значением перечисления вместо необработанного целого числа
    • snmp_set_oid_numeric_print - Псевдоним snmp_set_oid_output_format
    • snmp_set_oid_output_format - Устанавливает выходной формат OID
    • snmp_set_quick_print - Устанавливает значение enable в библиотеке NET-SNMP
    • snmp_set_valueretrieval - Определяет метод возврата значений SNMP
    • 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 для запросов SOAP
    • SoapClient::__setLocation - Устанавливает адрес используемой веб-службы
    • SoapClient::__setSoapHeaders - Устанавливает SOAP-заголовки для последующих вызовов
    • SoapClient::__soapCall - Вызывает SOAP-функцию
    • SoapFault::__construct - Конструктор SoapFault
    • SoapFault::__toString - Получить текстовое представление SoapFault
    • SoapHeader::__construct - Конструктор SoapHeader
    • 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::__construct - Конструктор SoapServer
    • SoapVar::__construct - Конструктор SoapVar
    • socket_accept - Принимает соединение на сокете
    • socket_addrinfo_bind - Создать и привязать к сокету из указанного addrinfo
    • socket_addrinfo_connect - Создать и подключиться к сокету из указанного addrinfo
    • socket_addrinfo_explain - Получить информацию о addrinfo
    • socket_addrinfo_lookup - Получить массив с содержимым getaddrinfo про указанное имя хоста
    • socket_atmark - Determines whether socket is at out-of-band mark
    • socket_bind - Привязывает имя к сокету
    • socket_clear_error - Очищает ошибку на сокете или последний код ошибки
    • socket_close - Закрывает экземпляр Socket
    • 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 - Преобразует строку в кодировке base64 в необработанный двоичный файл
    • sodium_bin2base64 - Кодирует необработанную двоичную строку с помощью base64
    • sodium_bin2hex - Кодировать в шестнадцатеричное представление
    • sodium_compare - Сравнить большие числа
    • sodium_crypto_aead_aes256gcm_decrypt - Проверяет и расшифровывает сообщение с помощью AES-256-GCM
    • sodium_crypto_aead_aes256gcm_encrypt - Шифрует, а затем проверяет подлинность с помощью AES-256-GCM
    • sodium_crypto_aead_aes256gcm_is_available - Проверить, поддерживает ли оборудование AES256-GCM
    • sodium_crypto_aead_aes256gcm_keygen - Создаёт случайный ключ AES-256-GCM
    • sodium_crypto_aead_chacha20poly1305_decrypt - Проверяет, затем расшифровывает с помощью ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_encrypt - Шифрует, а затем проверяет подлинность с помощью ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_ietf_decrypt - Проверить, что зашифрованный текст содержит допустимый тег
    • sodium_crypto_aead_chacha20poly1305_ietf_encrypt - Зашифровать сообщение
    • sodium_crypto_aead_chacha20poly1305_ietf_keygen - Создаёт случайный ключ ChaCha20-Poly1305 (IETF)
    • sodium_crypto_aead_chacha20poly1305_keygen - Создаёт случайный ключ ChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt - (Предпочтительно) Проверяет, затем расшифровывает с помощью XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt - (Предпочтительно) Шифрует, а затем проверяет подлинность с помощью XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_keygen - Создаёт случайный ключ XChaCha20-Poly1305
    • sodium_crypto_auth - Вычислить тег для сообщения
    • sodium_crypto_auth_keygen - Создаёт случайный ключ для sodium_crypto_auth
    • 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 - Извлекает открытый ключ из ключевой пары crypto_box
    • sodium_crypto_box_publickey_from_secretkey - Вычисляет открытый ключ из секретного ключа
    • sodium_crypto_box_seal - Шифрование открытым ключом без проверки подлинности
    • sodium_crypto_box_seal_open - Расшифровка открытым ключом без проверки подлинности
    • sodium_crypto_box_secretkey - Извлекает секретный ключ из ключевой пары crypto_box
    • sodium_crypto_box_seed_keypair - Детерминистический вывод ключевой пары из одного ключа
    • sodium_crypto_core_ristretto255_add - Добавляет элемент
    • sodium_crypto_core_ristretto255_from_hash - Сопоставляет вектор
    • sodium_crypto_core_ristretto255_is_valid_point - Определяет, лежит ли точка на кривой ristretto255
    • sodium_crypto_core_ristretto255_random - Генерирует случайный ключ
    • sodium_crypto_core_ristretto255_scalar_add - Добавляет скалярное значение
    • sodium_crypto_core_ristretto255_scalar_complement - Назначение sodium_crypto_core_ristretto255_scalar_complement
    • sodium_crypto_core_ristretto255_scalar_invert - Инвертирует скалярное значение
    • sodium_crypto_core_ristretto255_scalar_mul - Умножает скалярное значение
    • sodium_crypto_core_ristretto255_scalar_negate - Отменяет скалярное значение
    • sodium_crypto_core_ristretto255_scalar_random - Генерирует случайный ключ
    • sodium_crypto_core_ristretto255_scalar_reduce - Уменьшает скалярное значение
    • sodium_crypto_core_ristretto255_scalar_sub - Вычитает скалярное значение
    • sodium_crypto_core_ristretto255_sub - Вычитает элемент
    • 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 - Создаёт случайный корневой ключ для интерфейса KDF
    • sodium_crypto_kx_client_session_keys - Вычисляет ключи сессии на стороне клиента
    • sodium_crypto_kx_keypair - Создаёт новую пару ключей sodium
    • sodium_crypto_kx_publickey - Извлекает открытый ключ из пары ключей crypto_kx
    • sodium_crypto_kx_secretkey - Извлекает секретный ключ из пары ключей crypto_kx
    • sodium_crypto_kx_seed_keypair - Описание
    • sodium_crypto_kx_server_session_keys - Вычисляет ключи сессии на стороне сервера
    • sodium_crypto_pwhash - Получает ключ из пароля, используя Argon2
    • sodium_crypto_pwhash_scryptsalsa208sha256 - Получает ключ из пароля, используя scrypt
    • 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_scalarmult_ristretto255 - Вычисляет общий секрет
    • sodium_crypto_scalarmult_ristretto255_base - Вычисляет открытый ключ из закрытого ключа
    • sodium_crypto_secretbox - Шифрование с общим ключом с проверкой подлинности
    • sodium_crypto_secretbox_keygen - Создаёт случайный ключ для sodium_crypto_secretbox
    • sodium_crypto_secretbox_open - Расшифровка с использованием общего ключа с проверкой подлинности
    • sodium_crypto_secretstream_xchacha20poly1305_init_pull - Инициализирует контекст secretstream для дешифрования
    • sodium_crypto_secretstream_xchacha20poly1305_init_push - Инициализирует контекст secretstream для шифрования
    • sodium_crypto_secretstream_xchacha20poly1305_keygen - Создаёт случайный ключ secretstream
    • sodium_crypto_secretstream_xchacha20poly1305_pull - Расшифровывает часть данных из зашифрованного потока
    • sodium_crypto_secretstream_xchacha20poly1305_push - Шифрует фрагмент данных, чтобы его можно было безопасно расшифровать в потоковом API
    • sodium_crypto_secretstream_xchacha20poly1305_rekey - Явно поворачивает ключ в состояние secretstream
    • 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 - Извлекает открытый ключ Ed25519 из пары ключей
    • sodium_crypto_sign_publickey_from_secretkey - Извлекает открытый ключ Ed25519 из секретного ключа
    • sodium_crypto_sign_secretkey - Извлекает секретный ключ Ed25519 из пары ключей
    • sodium_crypto_sign_seed_keypair - Детерминированный вывод пары ключей из одного ключа
    • sodium_crypto_sign_verify_detached - Проверить подпись для сообщения
    • sodium_crypto_stream - Создаёт детерминированную последовательность байтов из начального числа
    • sodium_crypto_stream_keygen - Генерирует случайный ключ sodium_crypto_stream
    • sodium_crypto_stream_xchacha20 - Расширяет ключ и одноразовый номер в ключевой поток псевдослучайных байтов
    • sodium_crypto_stream_xchacha20_keygen - Возвращает безопасный случайный ключ
    • sodium_crypto_stream_xchacha20_xor - Шифрует сообщение, используя одноразовый номер и секретный ключ (без аутентификации)
    • sodium_crypto_stream_xchacha20_xor_ic - Шифрует сообщение, используя неясный код и секретный ключ (без аутентификации)
    • sodium_crypto_stream_xor - Шифрует сообщение без аутентификации
    • sodium_hex2bin - Декодирует строку в шестнадцатеричном представлении в бинарное
    • sodium_increment - Увеличить на единицу большое число
    • sodium_memcmp - Проверка на равенство за постоянное количество времени
    • sodium_memzero - Перезаписывает строку символами NULL
    • sodium_pad - Дополняет строку отступами
    • sodium_unpad - Удаление данных отступов
    • SolrClient::addDocument - Добавляет документ в индекс
    • SolrClient::addDocuments - Добавляет коллекцию экземпляров SolrInputDocument в индекс
    • SolrClient::commit - Завершает все добавления/удаления, сделанные в индексе
    • SolrClient::deleteById - Удаляет по идентификатору
    • SolrClient::deleteByIds - Удаляет по идентификаторам
    • SolrClient::deleteByQueries - Удаляет все документы, соответствующие любому из запросов
    • SolrClient::deleteByQuery - Удаляет все документы, соответствующие заданному запросу
    • SolrClient::getById - Получает документ по идентификатору. Использует Solr Realtime Get (RTG)
    • SolrClient::getByIds - Получает документы по их идентификаторам. Использует Solr Realtime Get (RTG)
    • SolrClient::getDebug - Возвращает данные отладки для последней попытки подключения
    • SolrClient::getOptions - Возвращает внутренние параметры клиента
    • SolrClient::optimize - Дефрагментирует индекс
    • SolrClient::ping - Проверяет, работает ли сервер Solr
    • SolrClient::query - Отправляет запрос на сервер
    • SolrClient::request - Отправляет необработанный запрос на обновление
    • SolrClient::rollback - Откатывает все добавления/удаления, сделанные в индекс с момента последней фиксации
    • SolrClient::setResponseWriter - Устанавливает писатель ответа, используемый для подготовки ответа от Solr
    • SolrClient::setServlet - Изменяет указанный тип сервлета на новое значение
    • SolrClient::system - Получает информацию о сервере Solr
    • SolrClient::threads - Проверяет статус тем
    • SolrClient::__construct - Конструктор объекта SolrClient
    • SolrClient::__destruct - Деструктор SolrClient
    • SolrClientException::getInternalInfo - Возвращает внутреннюю информацию о том, где было выброшено исключение
    • SolrCollapseFunction::getField - Возвращает свёрнутое поле
    • SolrCollapseFunction::getHint - Возвращает подсказку сворачивания
    • SolrCollapseFunction::getMax - Возвращает максимальное значение
    • SolrCollapseFunction::getMin - Возвращает минимальное значение
    • SolrCollapseFunction::getNullPolicy - Возвращает NULL-политику
    • SolrCollapseFunction::getSize - Возвращает параметр размера
    • SolrCollapseFunction::setField - Устанавливает поле для свёртывания
    • SolrCollapseFunction::setHint - Устанавливает подсказку сворачивания
    • SolrCollapseFunction::setMax - Выбирает заголовки группы по максимальному значению числового поля или запроса функции
    • SolrCollapseFunction::setMin - Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю
    • SolrCollapseFunction::setNullPolicy - Устанавливает NULL-политику
    • SolrCollapseFunction::setSize - Устанавливает начальный размер сворачиваемых структур данных только при сворачивании по числовому полю
    • SolrCollapseFunction::__construct - Конструктор класса
    • SolrCollapseFunction::__toString - Возвращает строку, представляющую построенную функцию свёртывания
    • SolrDisMaxQuery::addBigramPhraseField - Добавляет поле фразовой биграммы (параметр pf2)
    • SolrDisMaxQuery::addBoostQuery - Добавляет поле повышения запроса со значением и необязательным усилением (параметр bq)
    • SolrDisMaxQuery::addPhraseField - Добавляет поле фразы (параметр pf)
    • SolrDisMaxQuery::addQueryField - Добавляет поле запроса с необязательным повышением (параметр qf)
    • SolrDisMaxQuery::addTrigramPhraseField - Добавляет поле триграммы (параметр pf3)
    • SolrDisMaxQuery::addUserField - Добавляет поле в параметр пользовательских полей (uf)
    • SolrDisMaxQuery::removeBigramPhraseField - Удаляет поле биграммы фразы (параметр pf2)
    • SolrDisMaxQuery::removeBoostQuery - Удаляет частичное повышение запроса по имени поля (bq)
    • SolrDisMaxQuery::removePhraseField - Удаляет поле фразы (параметра)
    • SolrDisMaxQuery::removeQueryField - Удаляет поле запроса (параметр qf)
    • SolrDisMaxQuery::removeTrigramPhraseField - Удаляет поле триграммы (параметр pf3)
    • SolrDisMaxQuery::removeUserField - Удаляет поле из параметра пользовательских полей (uf)
    • SolrDisMaxQuery::setBigramPhraseFields - Устанавливает поля биграммы фразы и их усиления (и отклонения) с помощью параметра pf2
    • SolrDisMaxQuery::setBigramPhraseSlop - Устанавливает коэффициент отклонения биграммы фразы (параметр ps2)
    • SolrDisMaxQuery::setBoostFunction - Устанавливает функцию усиления (параметр bf)
    • SolrDisMaxQuery::setBoostQuery - Непосредственно устанавливает параметр запроса усиления (bq)
    • SolrDisMaxQuery::setMinimumMatch - Устанавливает минимальное соответствие "Should" (mm)
    • SolrDisMaxQuery::setPhraseFields - Устанавливает поля фразы и их усиления (и отклонения) с помощью параметра pf2
    • SolrDisMaxQuery::setPhraseSlop - Устанавливает коэффициент отклонения по умолчанию для запросов фраз (параметр ps)
    • SolrDisMaxQuery::setQueryAlt - Устанавливает альтернативный запрос (параметр q.alt)
    • SolrDisMaxQuery::setQueryPhraseSlop - Определяет коэффициент отклонения, разрешённый для фразовых запросов, явно включённых в строку запроса пользователя (параметр qf)
    • SolrDisMaxQuery::setTieBreaker - Устанавливает параметр Tie Breaker (параметр tie)
    • SolrDisMaxQuery::setTrigramPhraseFields - Непосредственно устанавливает поля триграммы фразы (параметр pf3)
    • SolrDisMaxQuery::setTrigramPhraseSlop - Устанавливает коэффициент отклонения триграммы фразы (параметр ps3)
    • SolrDisMaxQuery::setUserFields - Устанавливает параметр пользовательских полей (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser - Переключает QueryParser на DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser - Переключает QueryParser на EDisMax
    • SolrDisMaxQuery::__construct - Конструктор класса
    • SolrDocument::addField - Добавляет поле в документ
    • SolrDocument::clear - Удаляет все поля в документе
    • SolrDocument::current - Получает текущее поле
    • SolrDocument::deleteField - Удаляет поле из документа
    • SolrDocument::fieldExists - Проверяет, существует ли поле в документе
    • SolrDocument::getChildDocuments - Возвращает массив дочерних документов (SolrDocument)
    • SolrDocument::getChildDocumentsCount - Возвращает количество дочерних документов
    • SolrDocument::getField - Получает поле по имени
    • SolrDocument::getFieldCount - Возвращает количество полей в этом документе
    • SolrDocument::getFieldNames - Возвращает массив имён полей в документе
    • SolrDocument::getInputDocument - Возвращает SolrInputDocument эквивалент объекта
    • SolrDocument::hasChildDocuments - Проверяет, есть ли у документа дочерние документы
    • SolrDocument::key - Получает текущий ключ
    • SolrDocument::merge - Сливает источник в текущий SolrDocument
    • SolrDocument::next - Перемещает внутренний указатель на следующее поле
    • SolrDocument::offsetExists - Проверяет, существует ли конкретное поле
    • SolrDocument::offsetGet - Получает поле
    • SolrDocument::offsetSet - Добавляет поле в документ
    • SolrDocument::offsetUnset - Удаляет поле
    • SolrDocument::reset - Псевдоним SolrDocument::clear
    • SolrDocument::rewind - Сбрасывает внутренний указатель на начало
    • SolrDocument::serialize - Используется для пользовательской сериализации
    • SolrDocument::sort - Сортирует поля в документе
    • SolrDocument::toArray - Возвращает представление массива документа
    • SolrDocument::unserialize - Пользовательская сериализация объектов SolrDocument
    • SolrDocument::valid - Проверяет, является ли текущая позиция внутренне корректной
    • SolrDocument::__clone - Создаёт копию объекта SolrDocument
    • SolrDocument::__construct - Конструктор
    • SolrDocument::__destruct - Деструктор
    • SolrDocument::__get - Доступ к полю как свойству
    • SolrDocument::__isset - Проверяет, существует ли поле
    • SolrDocument::__set - Добавляет ещё одно поле в документ
    • SolrDocument::__unset - Удаляет поле из документа
    • SolrDocumentField::__construct - Конструктор
    • SolrDocumentField::__destruct - Деструктор
    • SolrException::getInternalInfo - Возвращает внутреннюю информацию о том, где было выброшено исключение
    • SolrGenericResponse::__construct - Конструктор
    • SolrGenericResponse::__destruct - Деструктор
    • SolrIllegalArgumentException::getInternalInfo - Возвращает внутреннюю информацию о том, где было выброшено исключение
    • SolrIllegalOperationException::getInternalInfo - Возвращает внутреннюю информацию о том, где было выброшено исключение
    • SolrInputDocument::addChildDocument - Добавляет дочерний документ для блочной индексации
    • SolrInputDocument::addChildDocuments - Добавляет массив дочерних документов
    • SolrInputDocument::addField - Добавляет поле в документ
    • SolrInputDocument::clear - Сбрасывает входной документ
    • SolrInputDocument::deleteField - Удаляет поле из документа
    • SolrInputDocument::fieldExists - Проверяет, существует ли поле
    • SolrInputDocument::getBoost - Получает текущее значение повышения для документа
    • SolrInputDocument::getChildDocuments - Возвращает массив дочерних документов (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount - Возвращает количество дочерних документов
    • SolrInputDocument::getField - Получает поле по имени
    • SolrInputDocument::getFieldBoost - Получает значение повышения для определённого поля
    • SolrInputDocument::getFieldCount - Возвращает количество полей в документе
    • SolrInputDocument::getFieldNames - Возвращает массив, содержащий все поля в документе
    • SolrInputDocument::hasChildDocuments - Возвращает true, если у документа есть дочерние документы
    • SolrInputDocument::merge - Объединяет один входной документ в другой
    • SolrInputDocument::reset - Псевдоним SolrInputDocument::clear
    • SolrInputDocument::setBoost - Устанавливает значение повышения для документа
    • SolrInputDocument::setFieldBoost - Устанавливает значение повышения индекса времени для поля
    • SolrInputDocument::sort - Сортирует поля в документе
    • SolrInputDocument::toArray - Возвращает представление массива входного документа
    • SolrInputDocument::__clone - Создаёт копию SolrDocument
    • SolrInputDocument::__construct - Конструктор
    • SolrInputDocument::__destruct - Деструктор
    • SolrModifiableParams::__construct - Конструктор
    • SolrModifiableParams::__destruct - Деструктор
    • SolrObject::getPropertyNames - Возвращает массив всех имён свойств
    • SolrObject::offsetExists - Проверяет, существует ли свойство
    • SolrObject::offsetGet - Используется для получения свойства
    • SolrObject::offsetSet - Устанавливает значение свойства
    • SolrObject::offsetUnset - Сбрасывает значение свойства
    • SolrObject::__construct - Создаёт объект Solr
    • SolrObject::__destruct - Деструктор
    • SolrParams::add - Псевдоним SolrParams::addParam
    • SolrParams::addParam - Добавляет параметр к объекту
    • SolrParams::get - Псевдоним SolrParams::getParam
    • SolrParams::getParam - Возвращает значение параметра
    • SolrParams::getParams - Возвращает массив параметров, не в URL-закодированном виде
    • SolrParams::getPreparedParams - Возвращает массив параметров в URL-закодированном виде
    • SolrParams::serialize - Используется для пользовательской сериализации
    • SolrParams::set - Псевдоним SolrParams::setParam
    • SolrParams::setParam - Устанавливает параметр на указанное значение
    • SolrParams::toString - Возвращает все параметры объекта в виде пар имя-значение
    • SolrParams::unserialize - Используется для пользовательской сериализации
    • SolrPingResponse::getResponse - Возвращает ответ от сервера
    • SolrPingResponse::__construct - Конструктор
    • SolrPingResponse::__destruct - Деструктор
    • SolrQuery::addExpandFilterQuery - Переопределяет запрос основного фильтра, определяет, какие документы включить в основную группу
    • SolrQuery::addExpandSortField - Упорядочивает документы в расширенных группах (параметр expand.sort)
    • SolrQuery::addFacetDateField - Карты для facet.date
    • SolrQuery::addFacetDateOther - Добавляет ещё один параметр facet.date.other
    • SolrQuery::addFacetField - Добавляет другое поле к фасету
    • SolrQuery::addFacetQuery - Добавляет фасетный запрос
    • SolrQuery::addField - Указывает, какие поля возвращать в результате
    • SolrQuery::addFilterQuery - Определяет запрос фильтра
    • SolrQuery::addGroupField - Добавляет поле, которое будет использоваться для группировки результатов
    • SolrQuery::addGroupFunction - Позволяет группировать результаты на основе уникальных значений запроса функции (параметр group.func)
    • SolrQuery::addGroupQuery - Позволяет группировать документы, соответствующие данному запросу
    • SolrQuery::addGroupSortField - Добавляет поле сортировки группы (параметр group.sort)
    • SolrQuery::addHighlightField - Соответствует hl.fl
    • SolrQuery::addMltField - Устанавливает поле для использования для подобия
    • SolrQuery::addMltQueryField - Соответствует mlt.qf
    • SolrQuery::addSortField - Используется для управления сортировкой результатов
    • SolrQuery::addStatsFacet - Запрашивает возврат вспомогательных результатов для значений в данном фасете
    • SolrQuery::addStatsField - Соответствует параметру stats.field
    • SolrQuery::collapse - Сворачивает набор результатов до одного документа на группу
    • SolrQuery::getExpand - Возвращает true, если включено расширение группы
    • SolrQuery::getExpandFilterQueries - Возвращает запросы расширенного фильтра
    • SolrQuery::getExpandQuery - Возвращает параметр расширенного запроса expand.q
    • SolrQuery::getExpandRows - Возвращает количество строк, отображаемых в каждой группе (expand.rows)
    • SolrQuery::getExpandSortFields - Возвращает массив полей
    • SolrQuery::getFacet - Возвращает значение параметра фасета
    • SolrQuery::getFacetDateEnd - Возвращает значение параметра facet.date.end
    • SolrQuery::getFacetDateFields - Возвращает все поля facet.date
    • SolrQuery::getFacetDateGap - Возвращает значение параметра facet.date.gap
    • SolrQuery::getFacetDateHardEnd - Возвращает значение параметра facet.date.hardend
    • SolrQuery::getFacetDateOther - Возвращает значение параметра facet.date.other
    • SolrQuery::getFacetDateStart - Возвращает нижнюю границу первого диапазона дат для всех аспектов даты в этом поле
    • SolrQuery::getFacetFields - Возвращает все поля фасетов
    • SolrQuery::getFacetLimit - Возвращает максимальное количество счётчиков ограничений, которое должно быть возвращено для полей фасета
    • SolrQuery::getFacetMethod - Возвращает значение параметра facet.method
    • SolrQuery::getFacetMinCount - Возвращает минимальное количество полей аспектов, которые должны быть включены в ответ
    • SolrQuery::getFacetMissing - Возвращает текущее состояние параметра facet.missing
    • SolrQuery::getFacetOffset - Возвращает смещение в списке ограничений, которые будут использоваться для постраничной навигации
    • SolrQuery::getFacetPrefix - Возвращает префикс фасета
    • SolrQuery::getFacetQueries - Возвращает все фасетные запросы
    • SolrQuery::getFacetSort - Возвращает тип сортировки фасета
    • SolrQuery::getFields - Возвращает список полей, которые будут возвращены в ответе
    • SolrQuery::getFilterQueries - Возвращает массив запросов фильтра
    • SolrQuery::getGroup - Возвращает true, если группировка включена
    • SolrQuery::getGroupCachePercent - Возвращает процентное значение группового кеша
    • SolrQuery::getGroupFacet - Возвращает значение параметра group.facet
    • SolrQuery::getGroupFields - Возвращает групповые поля (значения параметра group.field)
    • SolrQuery::getGroupFormat - Возвращает значение group.format
    • SolrQuery::getGroupFunctions - Возвращает групповые функции (значения параметров group.func)
    • SolrQuery::getGroupLimit - Возвращает значение group.limit
    • SolrQuery::getGroupMain - Возвращает значение group.main
    • SolrQuery::getGroupNGroups - Возвращает значение group.ngroups
    • SolrQuery::getGroupOffset - Возвращает значение group.offset
    • SolrQuery::getGroupQueries - Возвращает все значения параметра group.query
    • SolrQuery::getGroupSortFields - Возвращает значение group.sort
    • SolrQuery::getGroupTruncate - Возвращает значение group.truncate
    • SolrQuery::getHighlight - Возвращает состояние параметра hl
    • SolrQuery::getHighlightAlternateField - Возвращает выделенное поле для использования в качестве резервной копии или по умолчанию
    • SolrQuery::getHighlightFields - Возвращает все поля, для которых Solr должен генерировать выделенные фрагменты
    • SolrQuery::getHighlightFormatter - Возвращает средство форматирования для выделенного вывода
    • SolrQuery::getHighlightFragmenter - Возвращает генератор фрагментов текста для выделенного текста
    • SolrQuery::getHighlightFragsize - Возвращает количество символов фрагментов для выделения
    • SolrQuery::getHighlightHighlightMultiTerm - Возвращает, следует ли включать выделение для запросов диапазона/подстановочных знаков/нечётких/префиксов
    • SolrQuery::getHighlightMaxAlternateFieldLength - Возвращает максимальное количество символов поля для возврата
    • SolrQuery::getHighlightMaxAnalyzedChars - Возвращает максимальное количество символов в документе для поиска подходящих фрагментов
    • SolrQuery::getHighlightMergeContiguous - Возвращает, свернуть ли смежные фрагменты в один фрагмент
    • SolrQuery::getHighlightRegexMaxAnalyzedChars - Возвращает максимальное количество символов из поля при использовании фрагментатора регулярного выражения
    • SolrQuery::getHighlightRegexPattern - Возвращает регулярное выражение для фрагментации
    • SolrQuery::getHighlightRegexSlop - Возвращает коэффициент отклонения от идеального размера фрагмента
    • SolrQuery::getHighlightRequireFieldMatch - Возвращает, если поле будет выделено только в том случае, если запрос соответствует этому конкретному полю
    • SolrQuery::getHighlightSimplePost - Возвращает текст, который появляется после выделенного выражения
    • SolrQuery::getHighlightSimplePre - Возвращает текст, который появляется перед выделенным выражением
    • SolrQuery::getHighlightSnippets - Возвращает максимальное количество выделенных фрагментов для создания для каждого поля
    • SolrQuery::getHighlightUsePhraseHighlighter - Возвращает состояние параметра hl.usePhraseHighlighter
    • SolrQuery::getMlt - Возвращает, должны ли быть включены результаты MoreLikeThis
    • SolrQuery::getMltBoost - Возвращает, будет ли запрос усилен релевантностью интересующего выражения
    • SolrQuery::getMltCount - Возвращает количество похожих документов, возвращаемых для каждого результата
    • SolrQuery::getMltFields - Возвращает все поля, которые нужно использовать для сравнения
    • SolrQuery::getMltMaxNumQueryTerms - Возвращает максимальное количество условий запроса, которые будут включены в любой сгенерированный запрос
    • SolrQuery::getMltMaxNumTokens - Возвращает максимальное количество токенов для анализа в каждом поле документа, которое не хранится с поддержкой TermVector
    • SolrQuery::getMltMaxWordLength - Возвращает максимальную длину слова, выше которой слова будут игнорироваться
    • SolrQuery::getMltMinDocFrequency - Возвращает пороговую частоту, с которой будут игнорироваться слова, которых нет, по крайней мере, в таком количестве документов
    • SolrQuery::getMltMinTermFrequency - Возвращает частоту, ниже которой выражения будут игнорироваться в исходном документе
    • SolrQuery::getMltMinWordLength - Возвращает минимальную длину слова, ниже которой слова будут игнорироваться
    • SolrQuery::getMltQueryFields - Возвращает поля запроса и их повышения
    • SolrQuery::getQuery - Возвращает основной запрос
    • SolrQuery::getRows - Возвращает максимальное количество документов
    • SolrQuery::getSortFields - Возвращает все поля сортировки
    • SolrQuery::getStart - Возвращает смещение в полном наборе результатов
    • SolrQuery::getStats - Возвращает, включена ли статистика
    • SolrQuery::getStatsFacets - Возвращает все фасеты статистики, которые были установлены
    • SolrQuery::getStatsFields - Возвращает все поля статистики
    • SolrQuery::getTerms - Возвращает, включён ли TermsComponent
    • SolrQuery::getTermsField - Возвращает поле, из которого извлекаются выражения
    • SolrQuery::getTermsIncludeLowerBound - Возвращает, нужно ли включать выражение нижней границы в набор результатов
    • SolrQuery::getTermsIncludeUpperBound - Возвращает, нужно ли включать выражение верхней границы в набор результатов
    • SolrQuery::getTermsLimit - Возвращает максимальное количество выражений, которые должна вернуть Solr
    • SolrQuery::getTermsLowerBound - Возвращает выражение для начала
    • SolrQuery::getTermsMaxCount - Возвращает максимальную частоту документа
    • SolrQuery::getTermsMinCount - Возвращает минимальную частоту возврата документов для включения
    • SolrQuery::getTermsPrefix - Возвращает префикс выражения
    • SolrQuery::getTermsReturnRaw - Следует ли возвращать необработанные символы
    • SolrQuery::getTermsSort - Возвращает целое число, указывающее, как сортируются выражения
    • SolrQuery::getTermsUpperBound - Возвращает выражение для остановки
    • SolrQuery::getTimeAllowed - Возвращает время в миллисекундах, разрешённое для завершения запроса
    • SolrQuery::removeExpandFilterQuery - Удаляет запрос расширенного фильтра
    • SolrQuery::removeExpandSortField - Удаляет расширенное поле сортировки из параметра expand.sort
    • SolrQuery::removeFacetDateField - Удаляет одно из полей даты фасета
    • SolrQuery::removeFacetDateOther - Удаляет один из параметров facet.date.other
    • SolrQuery::removeFacetField - Удаляет один из параметров facet.date
    • SolrQuery::removeFacetQuery - Удаляет один из параметров facet.query
    • SolrQuery::removeField - Удаляет поле из списка полей
    • SolrQuery::removeFilterQuery - Удаляет запрос фильтра
    • SolrQuery::removeHighlightField - Удаляет одно из полей, используемых для выделения
    • SolrQuery::removeMltField - Удаляет одно из полей moreLikeThis
    • SolrQuery::removeMltQueryField - Удаляет одно из полей запроса moreLikeThis
    • SolrQuery::removeSortField - Удаляет одно из полей сортировки
    • SolrQuery::removeStatsFacet - Удаляет один из параметров stats.facet
    • SolrQuery::removeStatsField - Удаляет один из параметров stats.field
    • SolrQuery::setEchoHandler - Переключает параметр echoHandler
    • SolrQuery::setEchoParams - Определяет, какие параметры включать в ответ
    • SolrQuery::setExpand - Включает/отключает компонент Expand
    • SolrQuery::setExpandQuery - Устанавливает параметр expand.q
    • SolrQuery::setExpandRows - Устанавливает количество строк для отображения в каждой группе (expand.rows). По умолчанию 5
    • SolrQuery::setExplainOther - Устанавливает общий параметр запроса explainOther
    • SolrQuery::setFacet - Соответствует параметру фасета. Включает или отключает фасетирование
    • SolrQuery::setFacetDateEnd - Соответствует facet.date.end
    • SolrQuery::setFacetDateGap - Соответствует facet.date.gap
    • SolrQuery::setFacetDateHardEnd - Соответствует facet.date.hardend
    • SolrQuery::setFacetDateStart - Соответствует facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency - Устанавливает минимальную частоту документа, используемую для определения количества выражений
    • SolrQuery::setFacetLimit - Соответствует facet.limit
    • SolrQuery::setFacetMethod - Задаёт тип алгоритма, который следует использовать при фасетировании поля
    • SolrQuery::setFacetMinCount - Соответствует facet.mincount
    • SolrQuery::setFacetMissing - Соответствует facet.missing
    • SolrQuery::setFacetOffset - Устанавливает смещение в список ограничений для разбивки на страницы
    • SolrQuery::setFacetPrefix - Определяет строковый префикс, с помощью которого ограничиваются выражения, на которых выполняется фасет
    • SolrQuery::setFacetSort - Определяет порядок ограничений поля фасета
    • SolrQuery::setGroup - Включает/отключает группировку результатов (параметр group)
    • SolrQuery::setGroupCachePercent - Включает кеширование для группировки результатов
    • SolrQuery::setGroupFacet - Устанавливает параметр group.facet
    • SolrQuery::setGroupFormat - Устанавливает формат группы, структуру результата (параметр group.format)
    • SolrQuery::setGroupLimit - Задаёт количество результатов, возвращаемых для каждой группы. Значение сервера по умолчанию - 1
    • SolrQuery::setGroupMain - Если true, результат первой команды группировки полей используется в качестве основного списка результатов в ответе с использованием group.format=simple
    • SolrQuery::setGroupNGroups - Если true, Solr включает в результаты количество групп, которые соответствуют запросу
    • SolrQuery::setGroupOffset - Устанавливает параметр group.offset
    • SolrQuery::setGroupTruncate - Если true, подсчёт фасетов основан на наиболее релевантном документе каждой группы, соответствующей запросу
    • SolrQuery::setHighlight - Включает или отключает выделение
    • SolrQuery::setHighlightAlternateField - Задаёт поле резервного копирования для использования
    • SolrQuery::setHighlightFormatter - Задаёт средство форматирования для вывода выделения
    • SolrQuery::setHighlightFragmenter - Устанавливает генератор текстовых фрагментов для выделенного текста
    • SolrQuery::setHighlightFragsize - Размер фрагментов, которые следует учитывать при выделении
    • SolrQuery::setHighlightHighlightMultiTerm - Использовать SpanScorer для выделения выражений
    • SolrQuery::setHighlightMaxAlternateFieldLength - Устанавливает максимальное количество символов поля для возврата
    • SolrQuery::setHighlightMaxAnalyzedChars - Задаёт количество символов в документе для поиска подходящих фрагментов
    • SolrQuery::setHighlightMergeContiguous - Свёртывать ли смежные фрагменты в один фрагмент
    • SolrQuery::setHighlightRegexMaxAnalyzedChars - Задаёт максимальное количество символов для анализа
    • SolrQuery::setHighlightRegexPattern - Задаёт регулярное выражение для фрагментации
    • SolrQuery::setHighlightRegexSlop - Устанавливает коэффициент, на который фрагментатор регулярного выражения может отклониться от идеального размера фрагмента
    • SolrQuery::setHighlightRequireFieldMatch - Требовать сопоставления полей при выделении
    • SolrQuery::setHighlightSimplePost - Устанавливает текст, который появляется после выделенного выражения
    • SolrQuery::setHighlightSimplePre - Устанавливает текст, который появляется перед выделенным выражением
    • SolrQuery::setHighlightSnippets - Устанавливает максимальное количество выделенных фрагментов для создания для каждого поля
    • SolrQuery::setHighlightUsePhraseHighlighter - Следует ли выделять выражения только тогда, когда они появляются во фразе запроса
    • SolrQuery::setMlt - Включает или отключает moreLikeThis
    • SolrQuery::setMltBoost - Устанавливает, будет ли запрос усилен релевантностью интересного выражения
    • SolrQuery::setMltCount - Устанавливает количество похожих документов, возвращаемых для каждого результата
    • SolrQuery::setMltMaxNumQueryTerms - Устанавливает максимальное количество включаемых выражений запроса
    • SolrQuery::setMltMaxNumTokens - Задаёт максимальное количество токенов для анализа
    • SolrQuery::setMltMaxWordLength - Устанавливает максимальную длину слова
    • SolrQuery::setMltMinDocFrequency - Устанавливает частоту mltMinDoc
    • SolrQuery::setMltMinTermFrequency - Устанавливает частоту, ниже которой выражения будут игнорироваться в исходной документации
    • SolrQuery::setMltMinWordLength - Устанавливает минимальную длину слова
    • SolrQuery::setOmitHeader - Исключает заголовок из возвращаемых результатов
    • SolrQuery::setQuery - Устанавливает поисковый запрос
    • SolrQuery::setRows - Задаёт максимальное количество строк, возвращаемых в результате
    • SolrQuery::setShowDebugInfo - Флаг для отображения отладочной информации
    • SolrQuery::setStart - Определяет количество пропускаемых строк
    • SolrQuery::setStats - Включает или отключает компонент Stats
    • SolrQuery::setTerms - Включает или отключает TermsComponent
    • SolrQuery::setTermsField - Устанавливает имя поля, из которого нужно получить выражение
    • SolrQuery::setTermsIncludeLowerBound - Включает нижнюю границу выражения в набор результатов
    • SolrQuery::setTermsIncludeUpperBound - Включает верхнюю границу выражения в набор результатов
    • SolrQuery::setTermsLimit - Устанавливает максимальное количество возвращаемых выражений
    • SolrQuery::setTermsLowerBound - Определяет выражение, с которого нужно начинать
    • SolrQuery::setTermsMaxCount - Устанавливает максимальную частоту документов
    • SolrQuery::setTermsMinCount - Устанавливает минимальную частоту документов
    • SolrQuery::setTermsPrefix - Ограничивает совпадения выражениями, начинающимися с префикса
    • SolrQuery::setTermsReturnRaw - Вернуть необработанные символы проиндексированного выражения
    • SolrQuery::setTermsSort - Определяет, как сортировать возвращённые условия
    • SolrQuery::setTermsUpperBound - Устанавливает условие для остановки
    • SolrQuery::setTimeAllowed - Время, отведённое на поиск
    • SolrQuery::__construct - Конструктор
    • SolrQuery::__destruct - Деструктор
    • SolrQueryResponse::__construct - Конструктор
    • SolrQueryResponse::__destruct - Деструктор
    • SolrResponse::getDigestedResponse - Возвращает ответ XML как сериализованные данные PHP
    • SolrResponse::getHttpStatus - Возвращает HTTP-статус ответа
    • SolrResponse::getHttpStatusMessage - Возвращает более подробную информацию о статусе HTTP
    • SolrResponse::getRawRequest - Возвращает необработанный запрос, отправленный на сервер Solr
    • SolrResponse::getRawRequestHeaders - Возвращает необработанные заголовки запроса, отправленные на сервер Solr
    • SolrResponse::getRawResponse - Возвращает необработанный ответ с сервера
    • SolrResponse::getRawResponseHeaders - Возвращает необработанные заголовки ответа с сервера
    • SolrResponse::getRequestUrl - Возвращает полный URL-адрес, на который был отправлен запрос
    • SolrResponse::getResponse - Возвращает SolrObject, представляющий ответ XML от сервера
    • SolrResponse::setParseMode - Устанавливает режим разбора
    • SolrResponse::success - Был ли запрос успешным?
    • SolrServerException::getInternalInfo - Возвращает внутреннюю информацию о том, где было выброшено исключение
    • SolrUpdateResponse::__construct - Конструктор
    • SolrUpdateResponse::__destruct - Деструктор
    • SolrUtils::digestXmlResponse - Преобразует XML-строку ответа в SolrObject
    • SolrUtils::escapeQueryChars - Экранирует строку запроса Lucene
    • SolrUtils::getSolrVersion - Возвращает текущую версию модуля Solr
    • SolrUtils::queryPhrase - Подготавливает фразу из неэкранированной строки запроса Lucene
    • solr_get_version - Возвращает текущую версию модуля Apache Solr
    • sort - Сортирует массив по возрастанию
    • soundex - Возвращает ключ soundex для строки
    • SplDoublyLinkedList::add - Добавляет/вставляет новое значение по указанному индексу
    • SplDoublyLinkedList::bottom - Получает узел, находящийся в начале двусвязного списка
    • SplDoublyLinkedList::count - Подсчитывает количество элементов в двусвязном списке
    • SplDoublyLinkedList::current - Возвращает текущий элемент массива
    • SplDoublyLinkedList::getIteratorMode - Возвращает режим итерации
    • SplDoublyLinkedList::isEmpty - Проверяет, является ли двусвязный список пустым
    • SplDoublyLinkedList::key - Возвращает индекс текущего узла
    • SplDoublyLinkedList::next - Перемещает итератор к следующему элементу
    • SplDoublyLinkedList::offsetExists - Проверяет, существует ли запрашиваемый индекс
    • SplDoublyLinkedList::offsetGet - Возвращает значение по указанному индексу
    • SplDoublyLinkedList::offsetSet - Устанавливает значение по заданному индексу $index в $value
    • 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 - Проверяет, содержит ли узлы двусвязный список
    • 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 - Возвращает текущую строку в виде строки
    • SplFixedArray::count - Возвращает размер массива
    • SplFixedArray::current - Возвращает текущий элемент массива
    • SplFixedArray::fromArray - Импортирует PHP-массив в объект класса SplFixedArray
    • SplFixedArray::getIterator - Получает итератор для перехода по массиву
    • SplFixedArray::getSize - Получает размер массива
    • SplFixedArray::jsonSerialize - Возвращает представление, которое может быть преобразовано в JSON
    • 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::__serialize - Сериализует объект SplFixedArray
    • SplFixedArray::__unserialize - Десериализует параметр data в объект SplFixedArray
    • 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 - Проверяет, содержит ли куча ещё элементы
    • 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 - Проверяет, есть ли в очереди ещё элементы
    • SplQueue::dequeue - Удаляет элемент из очереди
    • SplQueue::enqueue - Добавляет элемент в очередь
    • SplSubject::attach - Присоединить наблюдателя (объект класса SplObserver)
    • SplSubject::detach - Отсоединить наблюдателя
    • SplSubject::notify - Уведомить наблюдателя
    • SplTempFileObject::__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::setRestrictionLevel - Set the restriction level
    • Spoofchecker::__construct - Конструктор класса
    • sprintf - Возвращает отформатированную строку
    • SQLite3::backup - Резервное копирование одной базы данных в другую
    • 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::setAuthorizer - Устанавливает callback-функцию, которая будет использоваться в качестве авторизатора для ограничения действий выражения
    • SQLite3::version - Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую
    • SQLite3::__construct - Создаёт экземпляр объекта SQLite3 и открывает соединение с базой
    • SQLite3Result::columnName - >Возвращает имя n-ого столбца
    • SQLite3Result::columnType - Возвращает тип n-ного столбца
    • SQLite3Result::fetchArray - Выбирает одну строку из результирующего набора и помещает её в ассоциативный или нумерованный массив, или в оба сразу
    • SQLite3Result::finalize - Закрывает результирующий набор
    • SQLite3Result::numColumns - Возвращает количество столбцов в результирующем наборе
    • SQLite3Result::reset - Сбрасывает указатель результирующего набора на первую строку
    • SQLite3Result::__construct - Конструктор класса SQLite3Result
    • SQLite3Stmt::bindParam - Связывает параметр с переменной подготовленного запроса
    • SQLite3Stmt::bindValue - Связывает значение параметра с переменной подготовленного запроса
    • SQLite3Stmt::clear - Удаляет все текущие привязанные параметры
    • SQLite3Stmt::close - Закрывает подготовленный запрос
    • SQLite3Stmt::execute - Выполняет подготовленный запрос и возвращает объект с результирующим набором
    • SQLite3Stmt::getSQL - Получить SQL-запрос в виде строки из запроса
    • SQLite3Stmt::paramCount - Возвращает количество параметров в подготовленном запросе
    • SQLite3Stmt::readOnly - Проверяет, является ли подготовленный запрос только для чтения
    • SQLite3Stmt::reset - Сбрасывает подготовленный запрос
    • SQLite3Stmt::__construct - Конструктор класса SQLite3Stmt
    • sqlsrv_begin_transaction - Начинает транзакцию базы данных
    • sqlsrv_cancel - Отменяет оператор
    • sqlsrv_client_info - Возвращает информацию о клиенте и указанном подключении
    • sqlsrv_close - Закрывает открытое соединение и освобождает ресурсы, связанные с этим соединением
    • sqlsrv_commit - Фиксирует транзакцию, начатую с помощью sqlsrv_begin_transaction
    • sqlsrv_configure - Изменяет конфигурацию обработки ошибок драйвера и ведения журнала
    • sqlsrv_connect - Открывает соединение с базой данных Microsoft SQL Server
    • sqlsrv_errors - Возвращает информацию об ошибке и предупреждении последней выполненной операции SQLSRV
    • sqlsrv_execute - Выполняет запрос, подготовленный с помощью sqlsrv_prepare
    • sqlsrv_fetch - Делает следующую строку в наборе результатов доступной для чтения
    • sqlsrv_fetch_array - Возвращает строку как массив
    • sqlsrv_fetch_object - Получает следующую строку данных в наборе результатов как объект
    • sqlsrv_field_metadata - Получает метаданные для полей оператора, подготовленного с помощью sqlsrv_prepare или sqlsrv_query
    • sqlsrv_free_stmt - Освобождает все ресурсы для указанного оператора
    • sqlsrv_get_config - Возвращает значение указанного параметра конфигурации
    • sqlsrv_get_field - Получает данные поля из текущей выбранной строки
    • sqlsrv_has_rows - Указывает, есть ли у указанного оператора строки
    • sqlsrv_next_result - Делает активным следующий результат указанного оператора
    • sqlsrv_num_fields - Извлекает количество полей (столбцов) оператора
    • sqlsrv_num_rows - Получает количество строк в наборе результатов
    • sqlsrv_prepare - Подготавливает запрос к исполнению
    • sqlsrv_query - Подготавливает и выполняет запрос
    • sqlsrv_rollback - Откатывает транзакцию, начатую sqlsrv_begin_transaction
    • sqlsrv_rows_affected - Возвращает количество строк, изменённых последним выполненным запросом INSERT, UPDATE или DELETE
    • sqlsrv_send_stream_data - Отправляет данные из потоков параметров на сервер
    • sqlsrv_server_info - Возвращает информацию о сервере
    • 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 - Описание конструктора
    • 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_forward_accept - Принимает соединение, созданное слушателем
    • ssh2_forward_listen - Связывает порт на удалённом сервере и прослушивает соединения
    • ssh2_methods_negotiated - Возвращает список согласованных методов
    • ssh2_poll - Опрашивает каналы/слушателей/потоки на предмет событий
    • ssh2_publickey_add - Добавляет авторизованный открытый ключ
    • ssh2_publickey_init - Инициализирует подсистему открытого ключа
    • ssh2_publickey_list - Список уже авторизованных открытых ключей
    • ssh2_publickey_remove - Удаляет авторизованный открытый ключ
    • ssh2_scp_recv - Запрос файла через SCP
    • ssh2_scp_send - Отправка файла через SCP
    • ssh2_send_eof - Отправляет EOF в поток
    • 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 - Генерирует одно случайное отклонение от 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_options - Sets options on the specified context
    • 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() на заданных массивах потоков со временем ожидания, указанным параметрами seconds и microseconds
    • 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 - Форматирует текущую дату/время с учётом текущих настроек локали
    • Stringable::__toString - Получает строковое представление объекта
    • 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_contains - Определяет, содержит ли строка заданную подстроку
    • str_decrement - Уменьшает на единицу буквенно-цифровую строку
    • str_ends_with - Проверяет, заканчивается ли строка заданной подстрокой
    • str_getcsv - Выполняет разбор CSV-строки в массив
    • str_increment - Увеличивает на единицу буквенно-цифровую строку
    • str_ireplace - Регистронезависимый вариант функции str_replace
    • str_pad - Дополняет строку другой строкой до заданной длины
    • str_repeat - Возвращает повторяющуюся строку
    • str_replace - Заменяет все вхождения строки поиска на строку замены
    • str_rot13 - Выполняет преобразование ROT13 над строкой
    • str_shuffle - Переставляет символы в строке случайным образом
    • str_split - Преобразует строку в массив
    • str_starts_with - Проверяет, начинается ли строка с заданной подстроки
    • 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 - Отменяет транзакцию
    • 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 - Копирует файл или директорию
    • svn_fs_delete - Удаляет файл или директорию
    • svn_fs_dir_entries - Перечисляет элементы директории по заданному пути; возвращает хеш имён директорий и типов файлов
    • svn_fs_file_contents - Возвращает поток для доступа к содержимому файла из данной файловой системы
    • svn_fs_file_length - Возвращает длину файла из данной файловой системы
    • svn_fs_is_dir - Определяет находится ли директория по данному пути
    • svn_fs_is_file - Определяет если находится ли файл по данному пути
    • svn_fs_make_dir - Создаёт новую пустую директорию
    • svn_fs_make_file - Создаёт новый пустой файл
    • 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 - Обновляет рабочую копию
    • 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 - Читает и извлекает данные из канала Swoole
    • Swoole\Channel::push - Записывает и передаёт данные в канал Swoole
    • Swoole\Channel::stats - Получает статистику канала Swoole
    • Swoole\Channel::__construct - Создаёт канал Swoole
    • Swoole\Channel::__destruct - Уничтожает канал Swoole
    • Swoole\Client::close - Закрывает установленное соединение
    • Swoole\Client::connect - Подключается к удалённому порту TCP или UDP
    • Swoole\Client::getpeername - Получает имя удалённого сокета соединения
    • Swoole\Client::getsockname - Получает локальное имя сокета соединения
    • Swoole\Client::isConnected - Проверяет, установлено ли соединение
    • Swoole\Client::on - Добавляет callback-функции, вызванные событиями
    • Swoole\Client::pause - Приостанавливает получение данных
    • Swoole\Client::pipe - Перенаправляет данные в другой файловый дескриптор
    • Swoole\Client::recv - Получает данные из удалённого сокета
    • Swoole\Client::resume - Возобновляет получение данных
    • Swoole\Client::send - Отправляет данные в удалённый TCP-сокет
    • Swoole\Client::sendfile - Отправляет файл в удалённый TCP-сокет
    • Swoole\Client::sendto - Отправляет данные на удалённый UDP-адрес
    • Swoole\Client::set - Устанавливает параметры клиента Swoole до установления соединения
    • Swoole\Client::sleep - Удаляет TCP-клиент из цикла системных событий
    • Swoole\Client::wakeup - Добавляет TCP-клиент обратно в цикл системных событий
    • Swoole\Client::__construct - Создаёт синхронный или асинхронный TCP/UDP клиент Swoole с поддержкой SSL или без него
    • Swoole\Client::__destruct - Уничтожает клиент Swoole
    • 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 - Вызывает callback-функцию, заданную первым параметром
    • Swoole\Coroutine::call_user_func_array - Вызывает callback-функцию с массивом параметров
    • Swoole\Coroutine::cli_wait - Описание
    • Swoole\Coroutine::create - Описание
    • Swoole\Coroutine::getuid - Описание
    • Swoole\Coroutine::resume - Описание
    • Swoole\Coroutine::suspend - Описание
    • 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 - Пытается получить блокировку. Заблокируется, если блокировка недоступна
    • Swoole\Lock::lock_read - Блокирует чтение-запись блокировки для чтения
    • Swoole\Lock::trylock - Пытается получить блокировку и сразу возвращает, даже если блокировка недоступна
    • Swoole\Lock::trylock_read - Пытается заблокировать блокировку чтения-записи для чтения и сразу возвращает, даже если блокировка недоступна
    • Swoole\Lock::unlock - Снимает блокировку
    • Swoole\Lock::__construct - Создаёт блокировку памяти
    • Swoole\Lock::__destruct - Уничтожает блокировку памяти Swoole
    • 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 - Устанавливает тип данных и размер столбцов
    • Swoole\Table::count - Подсчитывает строки в таблице или подсчитывает все элементы в таблице, если $mode = 1
    • Swoole\Table::create - Создаёт таблицу памяти swoole
    • Swoole\Table::current - Получает текущую строку
    • Swoole\Table::decr - Уменьшает значение в таблице Swoole по $row_key и $column_key
    • Swoole\Table::del - Удаляет строку в таблице Swoole по $row_key
    • Swoole\Table::destroy - Уничтожает таблицу Swoole
    • Swoole\Table::exist - Проверяет, существует ли строка по $row_key
    • Swoole\Table::get - Получает значение в таблице Swoole по $row_key и $column_key
    • Swoole\Table::incr - Увеличивает значение по $row_key и $column_key
    • Swoole\Table::key - Получает ключ текущей строки
    • Swoole\Table::next - Перемещает итератор на следующую строку
    • Swoole\Table::rewind - Перематывает итератор
    • Swoole\Table::set - Обновляет строку таблицы по $row_key
    • Swoole\Table::valid - Проверяет, является ли текущая строка корректной
    • Swoole\Table::__construct - Создаёт таблицу памяти Swoole с фиксированным размером
    • 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_clear_error - Сбрасывает ошибки в сокете или по последнему коду ошибки
    • swoole_client_select - Получить описание файла, готового к чтению/записи или ошибке
    • swoole_cpu_num - Получить количество CPU
    • swoole_errno - Получить код ошибки последнего системного вызова
    • swoole_error_log - Выводит сообщения об ошибках в журнал
    • 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
    • symlink - Создаёт символическую ссылку
    • SyncEvent::fire - Запускает/устанавливает событие
    • SyncEvent::reset - Сбрасывает ручное событие
    • SyncEvent::wait - Ожидает запуска/установки события
    • SyncEvent::__construct - Создаёт новый объект SyncEvent
    • SyncMutex::lock - Ждёт эксклюзивной блокировки
    • SyncMutex::unlock - Разблокирует мьютекс
    • SyncMutex::__construct - Создаёт новый объект SyncMutex
    • SyncReaderWriter::readlock - Ожидает блокировки чтения
    • SyncReaderWriter::readunlock - Снимает блокировку чтения
    • SyncReaderWriter::writelock - Ожидает эксклюзивной блокировки записи
    • SyncReaderWriter::writeunlock - Снимает блокировку записи
    • SyncReaderWriter::__construct - Создаёт новый объект SyncReaderWriter
    • SyncSemaphore::lock - Уменьшает счёт семафора или ждёт
    • SyncSemaphore::unlock - Увеличивает счёт семафора
    • SyncSemaphore::__construct - Создаёт новый объект SyncSemaphore
    • SyncSharedMemory::first - Проверяет, является ли объект первым общесистемным экземпляром именованной разделяемой памяти
    • SyncSharedMemory::read - Копирует данные из именованной разделяемой памяти
    • SyncSharedMemory::size - Возвращает размер именованной разделяемой памяти
    • SyncSharedMemory::write - Копирует данные в именованную разделяемую память
    • SyncSharedMemory::__construct - Создаёт новый объект SyncSharedMemory
    • 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::getCreatorId - Идентификация
    • Thread::getCurrentThread - Идентификация
    • Thread::getCurrentThreadId - Идентификация
    • Thread::getThreadId - Идентификация
    • Thread::isJoined - Определение состояния
    • Thread::isStarted - Определение состояния
    • Thread::join - Синхронизация
    • Thread::start - Выполнение
    • Threaded::chunk - Обработка
    • Threaded::count - Обработка
    • Threaded::extend - Обработка во время выполнения
    • Threaded::isRunning - Определение состояния
    • Threaded::isTerminated - Определение состояния
    • Threaded::merge - Обработка
    • Threaded::notify - Синхронизация
    • Threaded::notifyOne - Синхронизация
    • Threaded::pop - Обработка
    • Threaded::run - Выполнение
    • Threaded::shift - Обработка
    • Threaded::synchronized - Синхронизация
    • Threaded::wait - Синхронизация
    • 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 - Проверяет, является ли узел узлом элемента
    • 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 - Возвращает название часового пояса, угадывая по аббревиатуре и смещению UTC
    • 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-лексемы
    • 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 - Закрытие марубозу
    • trader_cdlconcealbabyswall - Прячущаяся ласточка
    • trader_cdlcounterattack - Контратака
    • trader_cdldarkcloudcover - Завеса из тёмных облаков
    • trader_cdldoji - Дожи
    • trader_cdldojistar - Дожи-звезда
    • trader_cdldragonflydoji - Стрекоза дожи
    • trader_cdlengulfing - Модель поглощения
    • trader_cdleveningdojistar - Вечерняя дожи-звезда
    • trader_cdleveningstar - Вечерняя звезда
    • trader_cdlgapsidesidewhite - Свечная модель "Смежные белые свечи"
    • trader_cdlgravestonedoji - Дожи-надгробие
    • trader_cdlhammer - Молот
    • trader_cdlhangingman - Висельник
    • trader_cdlharami - Паттерн Харами
    • trader_cdlharamicross - Паттерн "Крест Харами"
    • trader_cdlhighwave - Свечная модель "Высокая волна"
    • trader_cdlhikkake - Свечная модель "Крюк"
    • trader_cdlhikkakemod - Модифицированная свечная модель "Крюк"
    • trader_cdlhomingpigeon - Свечная модель "Почтовый голубь"
    • trader_cdlidentical3crows - Свечная модель "Три одинаковые вороны"
    • trader_cdlinneck - Свечная модель "На линии шеи"
    • trader_cdlinvertedhammer - Свечная модель "Перевёрнутый молоток"
    • trader_cdlkicking - Свечная модель "Высокий прыжок"
    • trader_cdlkickingbylength - Высокий прыжок - бык/медведь определяется по длинному марубозу
    • trader_cdlladderbottom - Свечная модель "Ступенчатое дно"
    • trader_cdllongleggeddoji - Свечная модель "Длинноногие доджи"
    • trader_cdllongline - Свечная модель "Длинная свеча"
    • trader_cdlmarubozu - Марубозу
    • trader_cdlmatchinglow - Свечная модель "Совпадение по нижнему уровню"
    • trader_cdlmathold - Фигура Подстилка
    • trader_cdlmorningdojistar - Утренняя звезда дожи
    • trader_cdlmorningstar - Утренняя звезда
    • trader_cdlonneck - Паттерн "У линии шеи"
    • trader_cdlpiercing - Паттерн "Просвет в облаках"
    • trader_cdlrickshawman - Длинноногий дожи
    • trader_cdlrisefall3methods - Бычья/медвежья модель "Три метода"
    • trader_cdlseparatinglines - Разделение
    • trader_cdlshootingstar - Падающая звезда
    • trader_cdlshortline - Свечная модель "Свеча короткой линии"
    • trader_cdlspinningtop - Волчок
    • trader_cdlstalledpattern - Торможение
    • trader_cdlsticksandwich - Прилипший сэндвич
    • trader_cdltakuri - Такури (Стрекоза Доджи с очень длинной нижней тенью)
    • trader_cdltasukigap - Разрыв Тасуки
    • trader_cdlthrusting - Свечная модель "Толчок"
    • trader_cdltristar - Свечная модель "Тристар"
    • trader_cdlunique3river - Свечная модель "Особая впадина три реки"
    • trader_cdlupsidegap2crows - Свечная модель "Перевёрнутые две вороны"
    • trader_cdlxsidegap3methods - Верх/вниз - три метода
    • trader_ceil - Вектор наибольшего целого числа
    • trader_cmo - Осциллятор ценовых моментов Чанде
    • trader_correl - Линейный коэффициент корреляции r-Пирсона
    • trader_cos - Тригонометрический вектор косинуса
    • trader_cosh - Тригонометрический вектор гиперболического косинуса
    • trader_dema - Двойная экспоненциальная скользящая средняя
    • trader_div - Арифметический вектор деления
    • trader_dx - Индекс направленного движения
    • trader_ema - Экспоненциальная скользящая средняя
    • trader_errno - Получить код ошибки
    • trader_exp - Арифметический вектор возведения в степень
    • trader_floor - Вектор наименьшего числа
    • trader_get_compat - Получает режим совместимости
    • trader_get_unstable_period - Получает нестабильный период
    • trader_ht_dcperiod - Преобразование Гильберта - период доминирующего цикла
    • trader_ht_dcphase - Преобразование Гильберта - Фаза доминирующего цикла
    • trader_ht_phasor - Преобразование Гильберта - Phasor Components
    • trader_ht_sine - Преобразование Гильберта - SineWave
    • trader_ht_trendline - Преобразование Гильберта - мгновенная линия тренда
    • trader_ht_trendmode - Преобразование Гильберта - тренд против цикла
    • trader_kama - Адаптивная скользящая средняя Кауфмана
    • trader_linearreg - Линейная регрессия
    • trader_linearreg_angle - Линейный регрессионный угол
    • trader_linearreg_intercept - Перехват линейной регрессии
    • trader_linearreg_slope - Линейный регрессионный наклон
    • trader_ln - Вектор натурального логарифма
    • trader_log10 - Вектор логарифма по основанию-10
    • trader_ma - Скользящая средняя
    • trader_macd - Скользящее среднее сходимость/дивергенция
    • trader_macdext - MACD с управляемым типом MA
    • trader_macdfix - Исправление схождения/расхождения скользящей средней 12/26
    • trader_mama - MESA Адаптивная скользящая средняя
    • trader_mavp - Скользящая средняя с переменным периодом
    • trader_max - Наибольшее значение за указанный период
    • trader_maxindex - Индекс наибольшего значения за указанный период
    • trader_medprice - Средняя цена
    • trader_mfi - Индекс денежных потоков
    • trader_midpoint - Середина отрезка за период
    • trader_midprice - Средняя цена за период
    • trader_min - Наименьшее значение за указанный период
    • trader_minindex - Индекс наименьшего значения за определённый период
    • trader_minmax - Самые низкие и самые высокие значения за указанный период
    • trader_minmaxindex - Индексы самых низких и самых высоких значений за указанный период
    • trader_minus_di - Минус-направленный индикатор
    • trader_minus_dm - Минус-направленное движение
    • trader_mom - Моментум
    • trader_mult - Арифметический вектор произведения
    • trader_natr - Нормализованный средний истинный диапазон
    • trader_obv - Индикатор Балансового объёма
    • trader_plus_di - Плюс-направленный индикатор
    • trader_plus_dm - Плюс-направленное движение
    • trader_ppo - Процентный ценовой осциллятор
    • trader_roc - Скорость изменения: ((цена/предыдущая цена)-1)*100
    • trader_rocp - Коэффициент изменения в процентах: (цена-предыдущая цена)/предыдущая цена
    • trader_rocr - Коэффициент изменения курса: (цена/предыдущая цена)
    • trader_rocr100 - Коэффициент изменения курса шкалы: (цена/предыдущая цена)*100
    • trader_rsi - Индекс относительной силы
    • trader_sar - Параболический SAR
    • trader_sarext - Параболический SAR - расширенный
    • trader_set_compat - Устанавливает режим совместимости
    • trader_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 - Тригонометрический вектор Тан
    • trader_tema - Тройная экспоненциальная скользящая средняя
    • trader_trange - Истинный диапазон
    • trader_trima - Треугольная скользящая средняя
    • trader_trix - 1-дневная скорость изменения (ROC) тройной гладкой EMA
    • trader_tsf - Прогноз временного ряда
    • trader_typprice - Типичная цена
    • trader_ultosc - Окончательный, предельный осциллятор
    • trader_var - Вариация
    • trader_wclprice - Взвешенная цена закрытия
    • trader_willr - Процентный диапазон Уильямса
    • 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 - Преобразует в верхний регистр первый символ каждого слова в строке
    • 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 - Добавляет узел градиента
    • UI\Draw\Brush\Gradient::delStop - Удаляет узел градиента
    • UI\Draw\Brush\Gradient::setStop - Устанавливает узел градиента
    • UI\Draw\Brush\LinearGradient::__construct - Конструктор класса LinearGradient
    • UI\Draw\Brush\RadialGradient::__construct - Конструктор класса RadialGradient
    • 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 - Получает семейство шрифтов
    • UI\Draw\Text\Font\Descriptor::getItalic - Определение стиля
    • UI\Draw\Text\Font\Descriptor::getSize - Определение размера
    • UI\Draw\Text\Font\Descriptor::getStretch - Определение стиля
    • UI\Draw\Text\Font\Descriptor::getWeight - Определение насыщенности
    • UI\Draw\Text\Font\Descriptor::__construct - Конструктор класса 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
    • UnitEnum::cases - Возвращает список вариантов перечисления
    • 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 - Преобразует строку из 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 - Выводит или возвращает интерпретируемое строковое представление переменной
    • var_representation - Возвращает короткое, читаемое, разборчивое строковое представление переменной
    • version_compare - Сравнивает две "стандартизованные" строки с номером версии PHP
    • vfprintf - Записывает отформатированную строку в поток
    • virtual - Выполняет подзапрос Apache
    • 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 - Подсчитывает количество живых записей в коллекции (map)
    • WeakMap::getIterator - Получает внешний итератор
    • WeakMap::offsetExists - Проверяет, есть ли в коллекции (map) определённый объект
    • WeakMap::offsetGet - Возвращает значение, на которое указывает определённый объект
    • WeakMap::offsetSet - Обновляет коллекцию (map) новой парой ключ-значение
    • WeakMap::offsetUnset - Удаляет запись из коллекции (map)
    • WeakReference::create - Создаёт новую слабую ссылку
    • WeakReference::get - Получает объект со слабой ссылкой
    • WeakReference::__construct - Конструктор, который запрещает реализацию
    • win32_continue_service - Возобновляет работу приостановленной службы
    • win32_create_service - Создаёт новую запись службы в базе данных SCM
    • win32_delete_service - Удаляет запись службы из базы данных SCM
    • win32_get_last_control_message - Возвращает последнее управляющее сообщение, которое было отправлено этой службе
    • win32_pause_service - Приостанавливает службу
    • win32_query_service_status - Запрашивает статус сервиса
    • win32_send_custom_control - Отправляет настраиваемый элемент управления в службу
    • win32_set_service_exit_code - Определяет или возвращает код выхода для текущей запущенной службы
    • win32_set_service_exit_mode - Определяет или возвращает режим выхода для текущей запущенной службы
    • win32_set_service_status - Обновляет статус службы
    • win32_start_service - Запускает службу
    • win32_start_service_ctrl_dispatcher - Добавляет в Диспетчер Служб скрипт, который может быть использован, как служба с заданным именем
    • win32_stop_service - Останавливает службу
    • wincache_fcache_fileinfo - Получает информацию о файлах, закешированных в файловом кеше
    • wincache_fcache_meminfo - Получает информацию об использовании памяти файлового кеша
    • wincache_lock - Получает эксклюзивную блокировку для данного ключа
    • wincache_ocache_fileinfo - Получает информацию о файлах, закешированных в кеше опкодов
    • wincache_ocache_meminfo - Получает информацию об использовании кеш-памяти опкодов
    • wincache_refresh_if_changed - Обновляет записи кеша для закешированных файлов
    • wincache_rplist_fileinfo - Получает информацию о разрешении кеша пути к файлу разрешения
    • wincache_rplist_meminfo - Получает информацию об использовании памяти с помощью кеша пути к файлу разрешения
    • wincache_scache_info - Получает информацию о файлах, закешированных в кеше сессии
    • wincache_scache_meminfo - Получает информацию об использовании кеш-памяти сессии
    • wincache_ucache_add - Добавляет переменную в пользовательский кеш, только если переменная ещё не существует в кеше
    • wincache_ucache_cas - Сравнивает переменную со старым значением и присваивает ей новое значение
    • wincache_ucache_clear - Удаляет всё содержимое пользовательского кеша
    • wincache_ucache_dec - Уменьшает значение, связанное с ключом
    • wincache_ucache_delete - Удаляет переменные из пользовательского кеша
    • wincache_ucache_exists - Проверяет, существует ли переменная в пользовательском кеше
    • wincache_ucache_get - Получает переменную, хранящуюся в пользовательском кеше
    • wincache_ucache_inc - Увеличивает значение, связанное с ключом
    • wincache_ucache_info - Получает информацию о данных, хранящихся в пользовательском кеше
    • wincache_ucache_meminfo - Получает информацию об использовании памяти пользовательского кеша
    • wincache_ucache_set - Добавляет переменную в пользовательский кеш и перезаписывает переменную, если она уже существует в кеше
    • wincache_unlock - Снимает эксклюзивную блокировку данного ключа
    • 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 - Собрать ссылки на завершённые задачи
    • Worker::getStacked - Возвращает текущий размер стека
    • Worker::isShutdown - Определение состояния
    • Worker::shutdown - Остановить Worker
    • Worker::stack - Положить задачу на стек
    • Worker::unstack - Убрать задачу со стека
  • 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
    • Yac::add - Сохраняет в кеш
    • Yac::delete - Удаляет элементы из кеша
    • Yac::dump - Дамп кеша
    • Yac::flush - Очищает кеш
    • Yac::get - Извлекает значения из кеша
    • Yac::info - Состояние кеша
    • Yac::set - Сохраняет в кеш
    • Yac::__construct - Конструктор класса
    • Yac::__get - Геттер
    • Yac::__set - Сеттер
    • Yaconf::get - Извлечь элемент
    • Yaconf::has - Определить, существует ли элемент
    • Yaf_Action_Abstract::execute - Точка входа для Action-классов
    • Yaf_Action_Abstract::getController - Получить объект контроллер
    • Yaf_Action_Abstract::getControllerName - Получает имя контроллера
    • 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::__construct - Конструктор класса Yaf_Application
    • Yaf_Application::__destruct - Деструктор Yaf_Application
    • Yaf_Config_Abstract::get - Геттер
    • Yaf_Config_Abstract::readonly - Находит конфигурацию только для чтения
    • Yaf_Config_Abstract::set - Сеттер
    • Yaf_Config_Abstract::toArray - Приведение к массиву
    • Yaf_Config_Ini::count - Подсчитывает все элементы в Yaf_Config.ini
    • Yaf_Config_Ini::current - Получает текущее значение
    • Yaf_Config_Ini::key - Получает ключ текущего элемента
    • Yaf_Config_Ini::next - Продвигает внутренний указатель
    • Yaf_Config_Ini::offsetExists - Назначение offsetExists
    • Yaf_Config_Ini::offsetGet - Назначение offsetGet
    • Yaf_Config_Ini::offsetSet - Назначение offsetSet
    • Yaf_Config_Ini::offsetUnset - Назначение offsetUnset
    • Yaf_Config_Ini::readonly - Назначение readonly
    • Yaf_Config_Ini::rewind - Назначение rewind
    • Yaf_Config_Ini::toArray - Возвращает конфигурацию как массив PHP
    • Yaf_Config_Ini::valid - Назначение valid
    • Yaf_Config_Ini::__construct - Конструктор класса Yaf_Config_Ini
    • Yaf_Config_Ini::__get - Получает элемент
    • Yaf_Config_Ini::__isset - Определяет, существует ли ключ
    • Yaf_Config_Ini::__set - Назначение __set
    • Yaf_Config_Simple::count - Назначение count
    • Yaf_Config_Simple::current - Назначение current
    • Yaf_Config_Simple::key - Назначение key
    • Yaf_Config_Simple::next - Назначение next
    • Yaf_Config_Simple::offsetExists - Назначение offsetExists
    • Yaf_Config_Simple::offsetGet - Назначение offsetGet
    • Yaf_Config_Simple::offsetSet - Назначение offsetSet
    • Yaf_Config_Simple::offsetUnset - Назначение offsetUnset
    • Yaf_Config_Simple::readonly - Назначение readonly
    • Yaf_Config_Simple::rewind - Назначение rewind
    • Yaf_Config_Simple::toArray - Возвращает массив PHP
    • Yaf_Config_Simple::valid - Назначение valid
    • Yaf_Config_Simple::__construct - Назначение __construct
    • Yaf_Config_Simple::__get - Назначение __get
    • Yaf_Config_Simple::__isset - Назначение __isset
    • Yaf_Config_Simple::__set - Назначение __set
    • Yaf_Controller_Abstract::display - Назначение display
    • Yaf_Controller_Abstract::forward - Переходит к другому действию
    • Yaf_Controller_Abstract::getInvokeArg - Назначение getInvokeArg
    • Yaf_Controller_Abstract::getInvokeArgs - Назначение getInvokeArgs
    • Yaf_Controller_Abstract::getModuleName - Получает имя модуля
    • Yaf_Controller_Abstract::getName - Получает своё имя
    • Yaf_Controller_Abstract::getRequest - Получает текущий объект запроса
    • Yaf_Controller_Abstract::getResponse - Получает текущий объект ответа
    • Yaf_Controller_Abstract::getView - Получает движок отображения
    • Yaf_Controller_Abstract::getViewpath - Назначение getViewpath
    • Yaf_Controller_Abstract::init - Инициализатор контроллера
    • Yaf_Controller_Abstract::initView - Назначение initView
    • Yaf_Controller_Abstract::redirect - Перенаправляет на URL
    • Yaf_Controller_Abstract::render - Отображает шаблон представления
    • Yaf_Controller_Abstract::setViewpath - Назначение setViewpath
    • Yaf_Controller_Abstract::__construct - Конструктор класса Yaf_Controller_Abstract
    • Yaf_Dispatcher::autoRender - Включает/выключает авторендеринг
    • Yaf_Dispatcher::catchException - Включает/выключает перехват исключений
    • Yaf_Dispatcher::disableView - Отключает механизм просмотра
    • Yaf_Dispatcher::dispatch - Отправляет запрос
    • Yaf_Dispatcher::enableView - Включает механизм просмотра
    • Yaf_Dispatcher::flushInstantly - Включает/выключает мгновенную очистку
    • Yaf_Dispatcher::getApplication - Получает приложение
    • Yaf_Dispatcher::getDefaultAction - Получает имя действия по умолчанию
    • Yaf_Dispatcher::getDefaultController - Получает имя контроллера по умолчанию
    • Yaf_Dispatcher::getDefaultModule - Получает имя модуля по умолчанию
    • Yaf_Dispatcher::getInstance - Получает экземпляр диспетчера
    • Yaf_Dispatcher::getRequest - Получает экземпляр запроса
    • Yaf_Dispatcher::getRouter - Получает экземпляр маршрутизатора
    • Yaf_Dispatcher::initView - Инициализирует представление и возвращает его
    • Yaf_Dispatcher::registerPlugin - Регистрирует плагин
    • Yaf_Dispatcher::returnResponse - Назначение returnResponse
    • Yaf_Dispatcher::setDefaultAction - Изменяет имя действия по умолчанию
    • Yaf_Dispatcher::setDefaultController - Изменяет имя контроллера по умолчанию
    • Yaf_Dispatcher::setDefaultModule - Изменяет имя модуля по умолчанию
    • Yaf_Dispatcher::setErrorHandler - Устанавливает обработчик ошибок
    • Yaf_Dispatcher::setRequest - Назначение setRequest
    • Yaf_Dispatcher::setView - Устанавливает пользовательский механизм отображения
    • Yaf_Dispatcher::throwException - Включает/выключает выбрасывание исключений
    • Yaf_Dispatcher::__construct - Конструктор класса Yaf_Dispatcher
    • Yaf_Exception::getPrevious - Получить предыдущее исключение
    • Yaf_Exception::__construct - Конструктор класса Yaf_Exception
    • Yaf_Loader::autoload - Назначение autoload
    • Yaf_Loader::clearLocalNamespace - Назначение clearLocalNamespace
    • Yaf_Loader::getInstance - Назначение getInstance
    • Yaf_Loader::getLibraryPath - Получает путь к библиотеке
    • Yaf_Loader::getLocalNamespace - Получает всю информацию о зарегистрированных пространствах имён
    • Yaf_Loader::getNamespacePath - Получает путь зарегистрированного пространства имён
    • Yaf_Loader::import - Назначение import
    • Yaf_Loader::isLocalName - Назначение isLocalName
    • Yaf_Loader::registerLocalNamespace - Регистрирует префикс локального класса
    • Yaf_Loader::registerNamespace - Регистрирует пространство имён с путём поиска
    • Yaf_Loader::setLibraryPath - Изменяет путь к библиотеке
    • Yaf_Loader::__construct - Назначение __construct
    • Yaf_Plugin_Abstract::dispatchLoopShutdown - Назначение dispatchLoopShutdown
    • Yaf_Plugin_Abstract::dispatchLoopStartup - Хук перед отправкой цикла
    • Yaf_Plugin_Abstract::postDispatch - Назначение postDispatch
    • Yaf_Plugin_Abstract::preDispatch - Назначение preDispatch
    • Yaf_Plugin_Abstract::preResponse - Назначение preResponse
    • Yaf_Plugin_Abstract::routerShutdown - Назначение routerShutdown
    • Yaf_Plugin_Abstract::routerStartup - Перехватчик RouterStartup
    • Yaf_Registry::del - Удаляет элемент из реестра
    • Yaf_Registry::get - Получает элемент из реестра
    • Yaf_Registry::has - Проверяет, существует ли элемент
    • Yaf_Registry::set - Добавляет элемент в реестр
    • Yaf_Registry::__construct - Yaf_Registry реализует шаблон проектирования "Одиночка"
    • Yaf_Request_Abstract::clearParams - Удаляет все параметры
    • Yaf_Request_Abstract::getActionName - Назначение getActionName
    • Yaf_Request_Abstract::getBaseUri - Назначение getBaseUri
    • Yaf_Request_Abstract::getControllerName - Назначение getControllerName
    • Yaf_Request_Abstract::getEnv - Получает переменную ENV
    • Yaf_Request_Abstract::getException - Назначение getException
    • Yaf_Request_Abstract::getLanguage - Получает предпочтительный язык клиента
    • Yaf_Request_Abstract::getMethod - Получает метод запроса
    • Yaf_Request_Abstract::getModuleName - Назначение getModuleName
    • Yaf_Request_Abstract::getParam - Получает параметр вызова
    • Yaf_Request_Abstract::getParams - Получает все параметры вызова
    • Yaf_Request_Abstract::getRequestUri - Назначение getRequestUri
    • Yaf_Request_Abstract::getServer - Получает переменную SERVER
    • Yaf_Request_Abstract::isCli - Определяет, является ли запрос CLI-запросом
    • Yaf_Request_Abstract::isDispatched - Определяет, отправлен ли запрос
    • Yaf_Request_Abstract::isGet - Определяет, является ли запрос GET-запросом
    • Yaf_Request_Abstract::isHead - Определяет, является ли запрос HEAD-запросом
    • Yaf_Request_Abstract::isOptions - Определяет, является ли запрос OPTIONS-запросом
    • Yaf_Request_Abstract::isPost - Определяет, является ли запрос POST-запросом
    • Yaf_Request_Abstract::isPut - Определяет, является ли запрос PUT-запросом
    • Yaf_Request_Abstract::isRouted - Определяет, был ли запрос направлен
    • Yaf_Request_Abstract::isXmlHttpRequest - Определяет, является ли запрос AJAX-запросом
    • Yaf_Request_Abstract::setActionName - Устанавливает имя действия
    • Yaf_Request_Abstract::setBaseUri - Устанавливает базовый URI
    • Yaf_Request_Abstract::setControllerName - Устанавливает имя контроллера
    • Yaf_Request_Abstract::setDispatched - Назначение setDispatched
    • Yaf_Request_Abstract::setModuleName - Устанавливает имя модуля
    • Yaf_Request_Abstract::setParam - Устанавливает параметр вызова для запроса
    • Yaf_Request_Abstract::setRequestUri - Назначение setRequestUri
    • Yaf_Request_Abstract::setRouted - Назначение setRouted
    • Yaf_Request_Http::get - Получает переменную от клиента
    • Yaf_Request_Http::getCookie - Получает переменную Cookie
    • Yaf_Request_Http::getFiles - Назначение getFiles
    • Yaf_Request_Http::getPost - Получает переменную POST
    • Yaf_Request_Http::getQuery - Получает параметр запроса
    • Yaf_Request_Http::getRaw - Получает необработанное тело запроса
    • Yaf_Request_Http::getRequest - Назначение getRequest
    • Yaf_Request_Http::isXmlHttpRequest - Определяет, является ли запрос Ajax-запросом
    • Yaf_Request_Http::__construct - Конструктор класса Yaf_Request_Http
    • Yaf_Request_Simple::get - Назначение get
    • Yaf_Request_Simple::getCookie - Назначение getCookie
    • Yaf_Request_Simple::getFiles - Назначение getFiles
    • Yaf_Request_Simple::getPost - Назначение getPost
    • Yaf_Request_Simple::getQuery - Назначение getQuery
    • Yaf_Request_Simple::getRequest - Назначение getRequest
    • Yaf_Request_Simple::isXmlHttpRequest - Определяет, является ли запрос AJAX-запросом
    • Yaf_Request_Simple::__construct - Конструктор класса Yaf_Request_Simple
    • Yaf_Response_Abstract::appendBody - Добавляет содержимое к телу ответа
    • Yaf_Response_Abstract::clearBody - Сбрасывает все существующее тело ответа
    • Yaf_Response_Abstract::clearHeaders - Сбрасывает все установленные заголовки
    • Yaf_Response_Abstract::getBody - Получает существующее содержимое
    • Yaf_Response_Abstract::getHeader - Назначение getHeader
    • Yaf_Response_Abstract::prependBody - Назначение prependBody
    • Yaf_Response_Abstract::response - Отправляет ответ
    • Yaf_Response_Abstract::setAllHeaders - Назначение setAllHeaders
    • Yaf_Response_Abstract::setBody - Устанавливает содержимое ответа
    • Yaf_Response_Abstract::setHeader - Устанавливает заголовок ответа
    • Yaf_Response_Abstract::setRedirect - Назначение setRedirect
    • Yaf_Response_Abstract::__construct - Конструктор класса Yaf_Response_Abstract
    • Yaf_Response_Abstract::__destruct - Деструктор класса Yaf_Response_Abstract
    • Yaf_Response_Abstract::__toString - Получает все тело в виде строки
    • Yaf_Router::addConfig - Добавляет настроенные маршруты в маршрутизатор
    • Yaf_Router::addRoute - Добавляет новый маршрут в маршрутизатор
    • Yaf_Router::getCurrentRoute - Получает имя действующего маршрута
    • Yaf_Router::getRoute - Получает маршрут по имени
    • Yaf_Router::getRoutes - Получает зарегистрированные маршруты
    • Yaf_Router::route - Назначение route
    • Yaf_Router::__construct - Конструктор класса Yaf_Router
    • Yaf_Route_Interface::assemble - Собирает запрос
    • Yaf_Route_Interface::route - Направление запроса
    • Yaf_Route_Map::assemble - Собирает URL
    • Yaf_Route_Map::route - Назначение route
    • Yaf_Route_Map::__construct - Назначение __construct
    • Yaf_Route_Regex::assemble - Сформировать URL-адрес
    • Yaf_Route_Regex::route - Цель маршрута
    • Yaf_Route_Regex::__construct - Конструктор класса Yaf_Route_Regex
    • Yaf_Route_Rewrite::assemble - Собирает URL
    • Yaf_Route_Rewrite::route - Назначение route
    • Yaf_Route_Rewrite::__construct - Конструктор класса Yaf_Route_Rewrite
    • Yaf_Route_Simple::assemble - Собирает URL
    • Yaf_Route_Simple::route - Направляет запрос
    • Yaf_Route_Simple::__construct - Конструктор класса Yaf_Route_Simple
    • Yaf_Route_Static::assemble - Собирает URL
    • Yaf_Route_Static::match - Назначение match
    • Yaf_Route_Static::route - Направляет запрос
    • Yaf_Route_Supervar::assemble - Собирает URL
    • Yaf_Route_Supervar::route - Назначение route
    • Yaf_Route_Supervar::__construct - Назначение __construct
    • Yaf_Session::count - Назначение count
    • Yaf_Session::current - Назначение current
    • Yaf_Session::del - Назначение del
    • Yaf_Session::getInstance - Назначение getInstance
    • Yaf_Session::has - Назначение has
    • Yaf_Session::key - Назначение key
    • Yaf_Session::next - Назначение next
    • Yaf_Session::offsetExists - Назначение offsetExists
    • Yaf_Session::offsetGet - Назначение offsetGet
    • Yaf_Session::offsetSet - Назначение offsetSet
    • Yaf_Session::offsetUnset - Назначение offsetUnset
    • Yaf_Session::rewind - Назначение rewind
    • Yaf_Session::start - Назначение start
    • Yaf_Session::valid - Назначение valid
    • Yaf_Session::__construct - Конструктор класса Yaf_Session
    • Yaf_Session::__get - Назначение __get
    • Yaf_Session::__isset - Назначение __isset
    • Yaf_Session::__set - Назначение __set
    • Yaf_Session::__unset - Назначение __unset
    • Yaf_View_Interface::assign - Назначает значение для движка отображения
    • Yaf_View_Interface::display - Отрисовывает и выводит шаблон
    • Yaf_View_Interface::getScriptPath - Назначение getScriptPath
    • Yaf_View_Interface::render - Отрисовывает шаблон
    • Yaf_View_Interface::setScriptPath - Назначение setScriptPath
    • Yaf_View_Simple::assign - Назначить значения
    • Yaf_View_Simple::assignRef - Назначение assignRef
    • Yaf_View_Simple::clear - Сбрасывает назначенные значения
    • Yaf_View_Simple::display - Отрисовывает и отображает
    • Yaf_View_Simple::eval - Отрисовывает шаблон
    • Yaf_View_Simple::getScriptPath - Получает каталог шаблонов
    • Yaf_View_Simple::render - Отрисовывает шаблон
    • Yaf_View_Simple::setScriptPath - Устанавливает каталог шаблонов
    • Yaf_View_Simple::__construct - Конструктор класса Yaf_View_Simple
    • Yaf_View_Simple::__get - Получает назначенную переменную
    • Yaf_View_Simple::__isset - Назначение __isset
    • Yaf_View_Simple::__set - Устанавливает значение для движка
    • 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 - Вызывает парсер CCL
    • yaz_close - Закрывает соединение YAZ
    • yaz_connect - Подготавливает соединение с сервером Z39.50
    • yaz_database - Определяет базы данных в сеансе
    • yaz_element - Указывает имя набора элементов для поиска
    • yaz_errno - Возвращает номер ошибки
    • yaz_error - Возвращает описание ошибки
    • yaz_es - Подготавливает Extended Service Request
    • yaz_es_result - Проверяет результат Extended Service
    • yaz_get_option - Возвращает значение параметра для подключения
    • yaz_hits - Возвращает количество совпадений для последнего поиска
    • yaz_itemorder - Подготавливает запрос к Z39.50 Item Order с пакетом ILL-Request
    • yaz_present - Готовится к поиску (Z39.50 присутствует)
    • yaz_range - Определяет диапазон записей для извлечения
    • yaz_record - Возвращает запись
    • yaz_scan - Подготовка сканирования
    • yaz_scan_result - Возвращает результат запроса сканирования
    • yaz_schema - Устанавливает схему для возвращаемых значений
    • yaz_search - Подготовка поиска
    • yaz_set_option - Устанавливает параметры для соединения
    • yaz_sort - Задаёт критерий сортировки
    • yaz_syntax - Задаёт предпочитаемый синтаксис для извлекаемой записи
    • yaz_wait - Ожидает выполнения запросов Z39.50 серверами
  • z
    • zend_thread_id - Возвращает уникальный идентификатор текущего потока выполнения
    • zend_version - Получает версию движка Zend
    • ZipArchive::addEmptyDir - Добавляет новую директорию
    • ZipArchive::addFile - Добавляет в ZIP-архив файл по указанному пути
    • ZipArchive::addFromString - Добавляет файл в ZIP-архив, используя его содержимое
    • ZipArchive::addGlob - Добавить файлы из директории в соответствии с шаблоном
    • ZipArchive::addPattern - Добавить файлы из директории в соответствии с шаблоном регулярного выражения PCRE
    • ZipArchive::clearError - Удаляет сообщение об ошибке статуса, системные и/или сообщения модуля zip
    • ZipArchive::close - Закрывает активный архив (открытый или вновь созданный)
    • ZipArchive::count - Подсчитывает количество файлов в архиве
    • ZipArchive::deleteIndex - Удаляет элемент в архиве, используя его индекс
    • ZipArchive::deleteName - Удаляет элемент в архиве, используя его имя
    • ZipArchive::extractTo - Извлекает содержимое архива
    • ZipArchive::getArchiveComment - Возвращает комментарий ZIP-архива
    • ZipArchive::getArchiveFlag - Возвращает значение глобального флага ZIP-архива
    • ZipArchive::getCommentIndex - Возвращает комментарий элемента, используя его индекс
    • ZipArchive::getCommentName - Возвращает комментарий элемента, используя его имя
    • ZipArchive::getExternalAttributesIndex - Извлечь внешние атрибуты записи по её индексу
    • ZipArchive::getExternalAttributesName - Извлечь внешние атрибуты записи по её имени
    • ZipArchive::getFromIndex - Возвращает содержимое элемента по его индексу
    • ZipArchive::getFromName - Возвращает содержимое элемента по его имени
    • ZipArchive::getNameIndex - Возвращает имя элемента по его индексу
    • ZipArchive::getStatusString - Возвращают статус сообщения об ошибке, системный и/или zip-статус
    • ZipArchive::getStream - Получить дескриптор файла элемента, определённый по имени элемента (только для чтения)
    • ZipArchive::getStreamIndex - Получает обработчик файла для записи, определённой её индексом (только для чтения)
    • ZipArchive::getStreamName - Получает обработчик файла для записи, определённой её именем (только для чтения)
    • ZipArchive::isCompressionMethodSupported - Проверяет, поддерживается ли метод сжатия libzip
    • ZipArchive::isEncryptionMethodSupported - Проверяет, поддерживается ли метод шифрования libzip
    • ZipArchive::locateName - Возвращает индекс элемента в архиве
    • ZipArchive::open - Открывает ZIP-архив
    • ZipArchive::registerCancelCallback - Регистрирует callback-функцию для разрешения отмены во время закрытия архива
    • ZipArchive::registerProgressCallback - Регистрирует callback-функцию для предоставления обновлений при закрытии архива
    • ZipArchive::renameIndex - Переименовывает элемент по его индексу
    • ZipArchive::renameName - Переименовывает элемент по его имени
    • ZipArchive::replaceFile - Заменяет файл в ZIP-архиве указанным путём
    • ZipArchive::setArchiveComment - Устанавливает комментарий к ZIP-архиву
    • ZipArchive::setArchiveFlag - Устанавливает глобальный флаг 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 context options - Перечисление опций контекста 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 - Указывает учётные данные приложения
    • Zookeeper::close - Закрывает обработчик zookeeper и освобождает любые ресурсы
    • Zookeeper::connect - Создаёт дескриптор для общения с zookeeper
    • Zookeeper::create - Создаёт синхронно узел
    • Zookeeper::delete - Удаляет синхронно узел в zookeeper
    • Zookeeper::exists - Синхронно проверяет наличие узла в zookeeper
    • Zookeeper::get - Синхронно получает данные, связанные с узлом
    • Zookeeper::getAcl - Синхронно получает ACL, связанный с узлом
    • Zookeeper::getChildren - Выводит список потомков узла синхронно
    • Zookeeper::getClientId - Возвращает идентификатор сессии клиента, действителен только в том случае, если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE)
    • Zookeeper::getConfig - Получает экземпляр ZookeeperConfig
    • Zookeeper::getRecvTimeout - Возвращает время ожидания для сессии, действительный, только если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - ZOO_CONNECTED_STATE). Это значение может измениться после повторного подключения к серверу
    • Zookeeper::getState - Получает состояние соединения zookeeper
    • Zookeeper::isRecoverable - Проверяет, можно ли восстановить текущее состояние подключения ZooKeeper
    • Zookeeper::set - Устанавливает данные, связанные с узлом
    • Zookeeper::setAcl - Устанавливает ACL, связанный с узлом синхронно
    • Zookeeper::setDebugLevel - Устанавливает уровень логирования для библиотеки
    • Zookeeper::setDeterministicConnOrder - Включение/отключение рандомизации порядка конечных точек кворума
    • Zookeeper::setLogStream - Устанавливает поток, который будет использоваться библиотекой для логирования
    • Zookeeper::setWatcher - Устанавливает функцию наблюдателя
    • Zookeeper::__construct - Создаёт дескриптор для общения с zookeeper
    • ZookeeperConfig::add - Добавляет серверы в ансамбль
    • ZookeeperConfig::get - Синхронно получает последнюю подтверждённую конфигурацию кластера ZooKeeper, о которой известно серверу, к которому подключён клиент
    • ZookeeperConfig::remove - Удаляет серверы из ансамбля
    • ZookeeperConfig::set - Изменяет состав ансамбля ZK и роли его участников
    • zookeeper_dispatch - Вызвать callback-функции для ожидающих операций
  • _
    • __autoload - Попытка загрузить неопределённый класс
    • __halt_compiler - Останавливает работу компилятора
  • ?
    • Контекстные опции Phar - Список контекстных опций Phar
    • Контекстные опции сокета - Список контекстных опций сокета
    • Опции контекста HTTP - Список опций контекста HTTP
    • Опции контекста SSL - Список опций контекста SSL
    • Опции контекста Zip - Список опций контекста Zip
    • Параметры контекста - Список параметров контекста
    • Параметры контекста FTP - Список параметров контекста FTP


Список примеров

Список всех примеров в руководстве

  • 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 - Пример части файла lighttpd.conf
  • Example#9 - Создание FastCGI-обработчиков
  • Example#10 - Подключение к удалённым процессам fastcgi
  • Example#11 - Пример установки пакетов в OpenBSD
  • Example#12 - Пример установки Apache 2 на Debian
  • Example#13 - Остановка и запуск Apache после установки PHP
  • Example#14 - Способы получить список дополнительных пакетов PHP
  • Example#15 - Установка PHP с MySQL и cURL
  • Example#16 - Рекомендованная конфигурация OpCache
  • Example#17 - Рекомендованная конфигурация WinCache
  • Example#18 - Командная строка для настройки IIS и PHP
  • Example#19 - Изменения в реестре
  • Example#20 - PHP и Apache 2.x в качестве обработчика
  • Example#21 - PHP и Apache 2.x как CGI
  • Example#22 - Настройка Apache для запуска PHP как FastCGI
  • Example#23 - Передача переменных окружения и настроек PHP пулу
  • Example#24 - Установка настроек PHP в nginx.conf
  • Example#25 - Вызов phpinfo
  • Example#26 - Переменные окружения php.ini
  • Example#27 - Пример php.ini
  • Example#28 - Пример конфигурации Apache
  • Example#29 - Открывающие и закрывающие теги PHP
  • Example#30 - Продвинутое изолирование с использованием условий
  • Example#31 - Пример, показывающий закрывающий тег, охватывающий завершающую новую строку
  • Example#32 - Целые числа
  • Example#33 - Переполнение целых на 32-битных системах
  • Example#34 - Переполнение целых на 64-битных системах
  • Example#35 - Базовый пример использования Heredoc в PHP 7.3.0
  • Example#36 - Закрывающий идентификатор не должен иметь отступ больше, чем любая строка тела
  • Example#37 - Другой отступ для закрывающего идентификатора тела (пробелов)
  • Example#38 - Продолжение выражения после закрывающего идентификатора
  • Example#39 - Закрывающий идентификатор в теле текста имеет тенденцию вызывать ParseError
  • Example#40 - Пример неправильного синтаксиса, до PHP 7.3.0
  • Example#41 - Пример правильного синтаксиса, даже до PHP 7.3.0
  • Example#42 - Пример определения heredoc-строки
  • Example#43 - Пример применения heredoc в аргументах
  • Example#44 - Инциализации статических переменных при помощи heredoc
  • Example#45 - Двойные кавычки в heredoc
  • Example#46 - Пример использования nowdoc
  • Example#47 - Nowdoc с переменными в строках с двойными кавычками
  • Example#48 - Пример использования статичных данных
  • Example#49 - Пример простого синтаксиса
  • Example#50 - Отрицательные числовые индексы
  • Example#51 - Несколько примеров строк
  • Example#52 - Пример недопустимого смещения строки
  • Example#53 - Простой массив
  • Example#54 - Пример преобразования типов и перезаписи элементов
  • Example#55 - Смешанные ключи типов int и string
  • Example#56 - Индексированные массивы без ключа
  • Example#57 - Ключи для некоторых элементов
  • Example#58 - Расширенный пример преобразования типов и перезаписи элементов
  • Example#59 - Доступ к элементам массива
  • Example#60 - Разыменование массива
  • Example#61 - Простая распаковка массива
  • Example#62 - Распаковка массива с дублирующим ключом
  • Example#63 - Использование array()
  • Example#64 - Коллекция
  • Example#65 - Изменение элемента в цикле
  • Example#66 - Индекс, начинающийся с единицы
  • Example#67 - Заполнение массива
  • Example#68 - Сортировка массива
  • Example#69 - Рекурсивные и многомерные массивы
  • Example#70 - Пример callback-функции
  • Example#71 - Пример callback-функции с использованием замыкания
  • Example#72 - Пример использования типа возвращаемого значения iterable
  • Example#73 -
  • Example#74 - Типизированные параметры, передаваемые по ссылке
  • Example#75 - Старый способ указания nullable аргументов
  • Example#76 - Пример объявления типа класса
  • Example#77 - Пример объявления типа интерфейса
  • Example#78 - Пример объявления типа возвращаемого значения
  • Example#79 - Возвращение объекта
  • Example#80 - Объявление аргумента с типом Nullable
  • Example#81 - Объявление типа возвращаемого значения Nullable
  • Example#82 - Объявление типа свойства класса
  • Example#83 - Строгая типизация для значений аргументов
  • Example#84 - Приведение типов для значений аргументов
  • Example#85 - Строгая типизация для возвращаемых значений
  • Example#86 - Пример принудительного включения типов в состав объединения
  • Example#87 - Значения по умолчанию в неинициализированных переменных
  • Example#88 - Использование global
  • Example#89 - Использование $GLOBALS вместо global
  • Example#90 - Суперглобальные переменные и область видимости
  • Example#91 - Демонстрация необходимости статических переменных
  • Example#92 - Пример использования статических переменных
  • Example#93 - Статические переменные и рекурсивные функции
  • Example#94 - Объявление статических переменных
  • Example#95 - Использование статических переменных в унаследованных методах
  • Example#96 - Пример переменного имени свойства
  • Example#97 - Простая HTML-форма
  • Example#98 - Доступ к данным из простой HTML-формы, отправленной через POST
  • Example#99 - Более сложные переменные формы
  • Example#100 - Пример использования setcookie
  • Example#101 - Правильные и неправильные имена констант
  • Example#102 - Определение констант
  • Example#103 - Определение констант с помощью ключевого слова const
  • Example#104 - Associativity
  • Example#105 - Undefined order of evaluation
  • Example#106 - +, - and . have the same precedence (prior to PHP 8.0.0)
  • Example#107 - PERL string increment example
  • Example#108 - Alphanumerical string converted to float
  • Example#109 - Assigning by reference
  • Example#110 - Bitwise AND, OR and XOR operations on integers
  • Example#111 - Bitwise XOR operations on strings
  • Example#112 - Bit shifting on integers
  • Example#113 - Boolean/null comparison
  • Example#114 - Transcription of standard array comparison
  • Example#115 - Assigning a default value
  • Example#116 - Non-obvious Ternary Behaviour
  • Example#117 - Short-ternary chaining
  • Example#118 - Assigning a default value
  • Example#119 - Nesting null coalescing operator
  • Example#120 - Logical operators illustrated
  • Example#121 - Comparing arrays
  • Example#122 - Using instanceof with classes
  • Example#123 - Using instanceof with inherited classes
  • Example#124 - Using instanceof to check if object is not an instanceof a class
  • Example#125 - Using instanceof with interfaces
  • Example#126 - Using instanceof with other variables
  • Example#127 - Using instanceof to test other variables
  • Example#128 - Using instanceof to test constants
  • Example#129 - Using instanceof with an arbitrary expression
  • Example#130 - Оператор switch
  • Example#131 - Оператор switch допускает сравнение с типом string
  • Example#132 - Простой пример использования match
  • Example#133 - Структура выражения match
  • Example#134 - Пример необработанного выражения
  • Example#135 - Использование match для ветвления в зависимости от вхождения в диапазоны целых чисел
  • Example#136 - Использование match для ветвления в зависимости от содержимого строки
  • Example#137 - Пример использования тика
  • Example#138 - Определение кодировки для скрипта.
  • Example#139 - Простой пример include
  • Example#140 - Включение внутри функции
  • Example#141 - Пример include через HTTP
  • Example#142 - Сравнение возвращаемого значения при include
  • Example#143 - Выражения include и return
  • Example#144 - Использование буферизации вывода для включения файла PHP в строку
  • Example#145 - Пример использования goto
  • Example#146 - Пример использования goto в цикле
  • Example#147 - Это не сработает
  • Example#148 - Псевдокод для демонстрации использования функций
  • Example#149 - Функции, зависящие от условий
  • Example#150 - Вложенные функции
  • Example#151 - Рекурсивные функции
  • Example#152 - Передача массива в функцию
  • Example#153 - Список аргументов функции с завершающей запятой
  • Example#154 - Передача аргументов по ссылке
  • Example#155 - Использование значений по умолчанию в определении функции
  • Example#156 - Использование нескалярных типов в качестве значений по умолчанию
  • Example#157 - Использование объектов в качестве значений по умолчанию (начиная с PHP 8.1.0)
  • Example#158 - Некорректное использование значений по умолчанию
  • Example#159 - Корректное использование значений по умолчанию
  • Example#160 - Правильное использование аргументов функций по умолчанию
  • Example#161 - Объявление необязательных аргументов после обязательных аргументов
  • Example#162 - Использование ... для доступа к аргументам
  • Example#163 - Использование ... для передачи аргументов
  • Example#164 - Аргументы с подсказкой типа
  • Example#165 - Синтаксис именованного аргумента
  • Example#166 - Позиционные аргументы в сравнении с именованными аргументами
  • Example#167 - Тот же пример, что и выше, но с другим порядком параметров
  • Example#168 - Объединение именованных аргументов с позиционными аргументами
  • Example#169 - Ошибка, возникающая при передаче одного и того же параметра несколько раз
  • Example#170 - Пример использования именованных аргументов после распаковки
  • Example#171 - Использование конструкции return
  • Example#172 - Возврат нескольких значений в виде массива
  • Example#173 - Возврат результата по ссылке
  • Example#174 - Работа с функциями посредством переменных
  • Example#175 - Обращение к методам класса посредством переменных
  • Example#176 - Пример вызова переменного метода со статическим свойством
  • Example#177 - Сложные callable-функции
  • Example#178 -
  • Example#179 - Пример анонимной функции
  • Example#180 - Пример присвоения анонимной функции переменной
  • Example#181 - Наследование переменных из родительской области видимости
  • Example#182 - Замыкания и область видимости
  • Example#183 - Автоматическое связывание $this
  • Example#184 - Попытка использовать $this в статической анонимной функции
  • Example#185 - Попытка связать объект со статической анонимной функцией
  • Example#186 - Стрелочные функции захватывают переменные по значению автоматически
  • Example#187 - Стрелочные функции захватывают переменные по значению автоматически, даже когда они вложены
  • Example#188 - Примеры использования стрелочных функций
  • Example#189 - Значения из внешней области видимости не могут быть изменены стрелочными функциями
  • Example#190 - Простой пример callback-функции как объекты первого класса
  • Example#191 - Сравнение области действия CallableExpr(...) и традиционной callback-функции
  • Example#192 -
  • Example#193 - Простое определение класса
  • Example#194 - Некоторые примеры псевдо-переменной $this
  • Example#195 -
  • Example#196 -
  • Example#197 - Создание экземпляра класса
  • Example#198 - Создание экземпляра с использованием произвольного выражения
  • Example#199 - Присваивание объекта
  • Example#200 - Создание новых объектов
  • Example#201 - Доступ к свойствам/методам только что созданного объекта
  • Example#202 - Доступ к свойству vs. вызов метода
  • Example#203 - Вызов анонимной функции, содержащейся в свойстве
  • Example#204 - Простое наследование классов
  • Example#205 - Совместимость дочерних методов
  • Example#206 - Фатальная ошибка, когда дочерний метод удаляет параметр
  • Example#207 - Фатальная ошибка, когда дочерний метод делает необязательный параметр обязательным.
  • Example#208 - Ошибка при использовании именованных аргументов и параметров, переименованных в дочернем классе
  • Example#209 - Разрешение имени класса
  • Example#210 - Отсутствует разрешение имени класса
  • Example#211 - Разрешение имени объекта
  • Example#212 - Оператор Nullsafe
  • Example#213 - Определение свойств
  • Example#214 - Пример использования типизированных свойств
  • Example#215 - Обращение к свойствам
  • Example#216 - Примеры readonly-свойств
  • Example#217 - Неправильная инициализация readonly-свойств
  • Example#218 -
  • Example#219 -
  • Example#220 -
  • Example#221 - Объявление и использование константы
  • Example#222 - Пример использования ::class с пространством имён
  • Example#223 - Пример констант, заданных выражением
  • Example#224 - Модификаторы видимости констант класса, начиная с PHP 7.1.0
  • Example#225 - Пример автоматической загрузки
  • Example#226 - Ещё один пример автоматической загрузки
  • Example#227 - Конструкторы при наследовании
  • Example#228 - Использование аргументов в конструкторах
  • Example#229 - Использование определения свойств в конструкторе
  • Example#230 - Пример использования new в инициализации класса
  • Example#231 - Использование статических методов для создания объектов
  • Example#232 - Пример использования деструктора
  • Example#233 - Объявление свойства класса
  • Example#234 - Объявление метода
  • Example#235 - Объявление констант, начиная с PHP 7.1.0
  • Example#236 - Доступ к элементам с модификатором private из объектов одного типа
  • 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 - Интерфейсы с абстрактными классами
  • Example#255 - Одновременное расширение и внедрение
  • Example#256 - Пример использования трейта
  • Example#257 - Пример приоритета старшинства
  • Example#258 - Пример альтернативного порядка приоритета
  • Example#259 - Пример использования нескольких трейтов
  • Example#260 - Пример разрешения конфликтов
  • Example#261 - Пример изменения видимости метода
  • Example#262 - Пример трейтов, составленных из трейтов
  • Example#263 - Требования трейта при помощи абстрактных методов
  • Example#264 - Статические переменные
  • Example#265 - Статические методы
  • Example#266 - Статические свойства
  • Example#267 - Определение свойств
  • Example#268 - Разрешение конфликтов
  • Example#269 - Определение констант
  • Example#270 - Разрешение конфликтов
  • Example#271 - Перегрузка свойств с помощью методов __get(), __set(), __isset() и __unset()
  • Example#272 - Перегрузка методов с помощью методов __call() и __callStatic()
  • Example#273 - Итерация простого объекта
  • Example#274 - Сериализация и десериализация
  • Example#275 - Сериализация и десериализация
  • Example#276 - Простой пример
  • Example#277 - Использование __invoke()
  • Example#278 - Пример использования __invoke()
  • Example#279 - Использование __set_state()
  • Example#280 - Использование __debugInfo()
  • Example#281 - Пример окончательных (final) методов
  • Example#282 - Пример окончательного (final) класса
  • Example#283 - Пример окончательной (final) константы класса, начиная с PHP 8.1.0
  • Example#284 - Клонирование объекта
  • Example#285 - Доступ к только что склонированному объекту
  • Example#286 - Пример сравнения объектов
  • Example#287 - Использование self::
  • Example#288 - Простое использование static::
  • Example#289 - Использование static:: в нестатическом контексте
  • Example#290 - Перенаправленные и неперенаправленные вызовы
  • Example#291 - Ссылки и объекты
  • Example#292 - Пример синтаксиса, использующего пространство имён
  • Example#293 - Объявление единого пространства имён
  • Example#294 - Объявление простого пространства имён
  • Example#295 - Определение пространства имён с иерархией
  • Example#296 - Описание нескольких пространств имён, простой синтаксис
  • Example#297 - Описание нескольких пространств имён, синтаксис со скобками
  • Example#298 - Описание глобального и обычного пространства имён в одном файле
  • Example#299 - Описание глобального и обычного пространства имён в одном файле
  • Example#300 - Доступ к глобальным классам, функциям и константам из пространства имён
  • Example#301 - Динамически доступные элементы
  • Example#302 - Динамически доступные элементы пространства имён
  • Example#303 - Пример использование константы __NAMESPACE__ в коде с пространством имён
  • Example#304 - Пример использование константы __NAMESPACE__ в глобальном пространстве
  • Example#305 - использование константы __NAMESPACE__ для динамического конструирования имени
  • Example#306 - Оператор namespace, внутри пространства имён
  • Example#307 - Оператор namespace в глобальном коде
  • Example#308 - импорт/создание псевдонима имени с помощью оператора use
  • Example#309 - импорт/создание псевдонима имени с помощью оператора use, комбинирование нескольких операторов use
  • Example#310 - Импорт и динамические имена
  • Example#311 - Импортирование и абсолютные имена
  • Example#312 - Недопустимое правило импорта
  • Example#313 - Использование глобального пространства и его задание
  • Example#314 - Доступ к глобальным классам внутри пространства имён
  • Example#315 - Необходимость прибегнуть к глобальным функциям/константам внутри пространства имён
  • Example#316 - Примеры разрешения имён
  • Example#317 - Доступ к глобальным классам вне пространства имён
  • Example#318 - Доступ к глобальным классам вне пространства имён
  • Example#319 - Доступ ко внутренним классам в пространствах имён
  • Example#320 - Доступ ко внутренним классам, функциям или константам в пространствах имён
  • Example#321 - Абсолютные имена
  • Example#322 - Полные имена
  • Example#323 - Неполные имена классов
  • Example#324 - Неполные имена функций или констант
  • Example#325 - Подводные камни при использовании имени пространства имён внутри строки с двойными кавычками
  • Example#326 - Неопределённые константы
  • Example#327 - Неопределённые константы
  • Example#328 - Основные ограниченные значения
  • Example#329 - Расширенные эксклюзивные значения
  • Example#330 - Преобразование отчётов об ошибках в исключения
  • Example#331 - Выбрасывание исключения
  • Example#332 - Обработка исключений с помощью блока finally
  • Example#333 - Взаимодействие между блоками finally и return
  • Example#334 - Вложенные исключения
  • Example#335 - Обработка нескольких исключений в одном блоке catch
  • Example#336 - Пример блока catch без указания переменной
  • Example#337 - Throw как выражение
  • Example#338 - Встроенный класс Exception
  • Example#339 - Наследование класса Exception
  • Example#340 - Простой пример
  • Example#341 - Реализация range как генератора
  • Example#342 - Простой пример выдачи значений
  • Example#343 - Получение пар ключ/значение
  • Example#344 - Получение null
  • Example#345 - Получение значений по ссылке
  • Example#346 - yield from с iterator_to_array
  • Example#347 - Основы использования yield from
  • Example#348 - yield from и возвращаемые значения
  • Example#349 - Реализация опциональных методов интерфейса с помощью атрибутов
  • Example#350 - Синтаксис атрибутов
  • Example#351 - Чтение атрибутов с помощью Reflection API
  • Example#352 - Чтение конкретных атрибутов с помощью Reflection API
  • Example#353 - Простой класс с атрибутом
  • Example#354 - Ограничение допустимых сущностей для использования атрибута
  • Example#355 - Использование IS_REPEATABLE для разрешения использовать атрибут в объявлении несколько раз
  • Example#356 - Использование ссылок с неинициализированными переменными
  • Example#357 - Присвоение ссылок глобальным переменным внутри функции
  • Example#358 - Ссылки и foreach
  • Example#359 - Пример использования $GLOBALS
  • Example#360 - запись всего $GLOBALS приведёт к ошибке
  • Example#361 - Пример использования $_SERVER
  • Example#362 - Пример использования $_GET
  • Example#363 - Пример использования $_POST
  • Example#364 - Пример использования $_ENV
  • Example#365 - Пример использования $_COOKIE
  • Example#366 - Пример использования $php_errormsg
  • Example#367 - Пример $http_response_header
  • Example#368 - Пример использования $argc
  • Example#369 - Пример использования $argv
  • Example#370 - Пример использования Exception::getMessage
  • Example#371 - Пример использования Exception::getPrevious
  • Example#372 - Пример использования Exception::getCode
  • Example#373 - Пример использования Exception::getFile
  • Example#374 - Пример использования Exception::getLine
  • Example#375 - Пример использования Exception::getTrace
  • Example#376 - Пример использования Exception::getTraceAsString
  • Example#377 - Пример использования Exception::__toString
  • Example#378 - Использование set_error_handler для изменения сообщений об ошибках в ErrorException.
  • Example#379 - Пример использования ErrorException::getSeverity
  • Example#380 - Пример использования Error::getMessage
  • Example#381 - Пример использования Error::getPrevious
  • Example#382 - Пример использованияError::getCode
  • Example#383 - Пример использования Error::getFile
  • Example#384 - Пример использованияError::getLine
  • Example#385 - Пример использования Error::getTrace
  • Example#386 - Пример использования Error::getTraceAsString
  • Example#387 - Пример использования Error::__toString
  • Example#388 - Основы использования
  • Example#389 - Основы использования
  • Example#390 - Основы использования
  • Example#391 - Пример использования ArrayAccess::offsetExists
  • Example#392 - Основы использования
  • Example#393 - Пример Closure::bind
  • Example#394 - Пример Closure::bindTo
  • Example#395 - Пример Closure::call
  • Example#396 - Создание в результате преобразования в объект
  • Example#397 - Создание в результате работы функции json_decode
  • Example#398 - Объявление динамических свойств
  • Example#399 - Пример использования Generator::getReturn
  • Example#400 - Пример использования Generator::key
  • Example#401 - Использование Generator::send для внедрения значений
  • Example#402 - Выбрасывание исключения в итератор
  • Example#403 - Пример #1. Простое использование WeakReference
  • Example#404 - Пример использования Weakmap
  • Example#405 - Простой пример использования Stringable
  • Example#406 - Простой пример использования
  • Example#407 - Простой пример использования
  • Example#408 - Простой пример использования
  • Example#409 - Передача объекта SensitiveParameterValue в функцию var_dump
  • Example#410 - Пример использования SensitiveParameterValue::getValue
  • Example#411 -
  • Example#412 -
  • Example#413 - Пример использования bindto
  • Example#414 - Извлечь страницу и отправить данные методом POST
  • Example#415 - Игнорировать переадресации, но извлечь заголовки и содержимое
  • Example#416 - Простой пример использования password
  • Example#417 - Определение URL, с которого был забран документ после переадресаций
  • Example#418 - php://temp/maxmemory
  • Example#419 - php://filter/resource=<поток для фильтрации>
  • Example#420 - php://filter/read=<список фильтров для применения к цепочке чтения>
  • Example#421 - php://filter/write=<список фильтров для применения к цепочке записи>
  • Example#422 - php://memory и php://temp нельзя переиспользовать
  • Example#423 - Вывод содержимого data://
  • Example#424 - Получение типа потока
  • Example#425 - Основы использования
  • Example#426 - Открытие потока из активного соединения
  • Example#427 - Переменная $session должна быть доступна!
  • Example#428 - Обход RAR-архива
  • Example#429 - Открытие зашифрованного файла (шифрование заголовка)
  • Example#430 - Недостаточная проверка внешних данных ведёт к...
  • Example#431 - ... атаке на файловую систему
  • Example#432 - Более безопасная проверка имени файла
  • Example#433 - Более строгая проверка имени файла
  • Example#434 - Скрипт, уязвимый к нулевому байту
  • Example#435 - Корректная проверка входных данных
  • Example#436 - Хеширование полей с паролями
  • Example#437 - Постраничный вывод результата и создание суперпользователя в PostgreSQL
  • Example#438 - Листинг статей... и некоторых паролей (для любой базы данных)
  • Example#439 - От сброса пароля до получения дополнительных привилегий (любой сервер баз данных)
  • Example#440 - Атака на операционную систему сервера базы данных (MSSQL Server)
  • Example#441 - Избегание SQL-инъекций с помощью подготовленных операторов PDO
  • Example#442 - Атака на переменные в HTML-странице
  • Example#443 - Использование стандартных отладочных переменных
  • Example#444 - Поиск потенциально опасных переменных при помощи E_ALL
  • Example#445 - Потенциально опасное использование переменных
  • Example#446 - Маскировка PHP под другие языки программирования
  • Example#447 - Использование неизвестных расширений для PHP-скриптов
  • Example#448 - Маскировка PHP-файлов под HTML
  • Example#449 - Пример Basic HTTP-аутентификации
  • Example#450 - Пример Digest HTTP-аутентификации
  • Example#451 - Пример HTTP-аутентификации с принудительным вводом новой пары логин/пароль
  • Example#452 - Простая поисковая форма XForms
  • Example#453 - Использование XForm совместно с массивом $_POST
  • Example#454 - Форма для загрузки файлов
  • Example#455 - Проверка загружаемых на сервер файлов
  • Example#456 - Загрузка массива файлов
  • Example#457 - Загрузка нескольких файлов
  • Example#458 - Загрузка всего каталога
  • Example#459 - Сохранение файлов, отправленных через HTTP PUT
  • Example#460 - Получение заголовка удалённой страницы
  • Example#461 - Сохранение данных на удалённом сервере
  • Example#462 - Пример, демонстрирующий разницу с CGI SAPI:
  • Example#463 -
  • Example#464 - Вывод встроенных (и загруженных) модулей PHP и Zend
  • Example#465 - Ошибка синтаксиса при использовании двойных кавычек
  • Example#466 - Использование одинарных кавычек для предотвращения подстановки переменных в консоли
  • Example#467 - Использование опций -B, -R и -E для подсчёта количества строк в проекте.
  • Example#468 - Использование -v для получения типа SAPI и версии PHP и Zend
  • Example#469 - Пример --ini
  • Example#470 - Базовое использование --rf
  • Example#471 - Пример --rc
  • Example#472 - Пример --re
  • Example#473 - Пример --ri
  • Example#474 - Запуск PHP-скрипта как консольного
  • Example#475 - Скрипт, предназначенный для запуска из командной строки (script.php)
  • Example#476 - Пакетный файл для запуска PHP-скрипта из командной строки (script.bat)
  • Example#477 - Запуск кода в интерактивной консоли
  • Example#478 - Автодополнение по Tab
  • Example#479 - Установка настройки php.ini в интерактивной консоли
  • Example#480 - Запуск веб-сервера
  • Example#481 - Запуск с указанием корневой директории
  • Example#482 - Использование скрипта маршрутизации
  • Example#483 - Проверка использования веб-сервера CLI
  • Example#484 - Поддержка неподдерживаемых типов файлов
  • Example#485 - Доступ к веб-серверу CLI с удалённых машин
  • Example#486 - Создание нового контейнера zval
  • Example#487 - Вывод информации о zval
  • Example#488 - Увеличение счётчика ссылок zval
  • Example#489 - Уменьшение счётчика ссылок zval
  • Example#490 - Создание array zval
  • Example#491 - Добавление уже существующего элемента в массив
  • Example#492 - Удаление элемента из массива
  • Example#493 - Добавление массива новым элементом в самого себя
  • Example#494 - Удаление $a
  • Example#495 - Пример использования памяти
  • Example#496 - Влияние на производительность
  • Example#497 - Запуск скрипта
  • Example#498 - Сборка PHP для включения теста производительности GC
  • Example#499 - Статистика GC
  • Example#500 - all_probes.d - трассировка всех статических зондов PHP с помощью DTrace
  • Example#501 - all_probes.stp - трассировка всех статических зондов PHP
  • Example#502 - Пример использования apcu_add
  • Example#503 - Пример использования apcu_cache_info
  • Example#504 - Пример использования apcu_cas
  • Example#505 - Пример использования apcu_dec
  • Example#506 - Пример использования apcu_delete
  • Example#507 - Пример использования apcu_entry
  • Example#508 - Пример использования apcu_exists
  • Example#509 - Пример использования apcu_fetch
  • Example#510 - Пример использования apcu_inc
  • Example#511 - Пример использования apcu_key_info
  • Example#512 - Пример использования apcu_sma_info
  • Example#513 - Пример использования apcu_store
  • Example#514 - Пример использования APCUIterator::__construct
  • Example#515 - Обработка ошибок в скрипте
  • Example#516 - Пример использования debug_backtrace
  • Example#517 - Пример использования debug_print_backtrace
  • Example#518 - Пример error_clear_last
  • Example#519 - Пример использования error_get_last
  • Example#520 - Примеры использования error_log
  • Example#521 - Примеры использования error_reporting
  • Example#522 - Пример использования restore_error_handler
  • Example#523 - Пример использования restore_exception_handler
  • Example#524 - Обработка ошибок с помощью функций set_error_handler и trigger_error
  • Example#525 - Пример использования set_exception_handler
  • Example#526 - Пример использования trigger_error
  • Example#527 - Вызов функции из общей библиотеки
  • Example#528 - Вызов функции и возврат структуры через аргумент
  • Example#529 - Доступ к существующим переменным C
  • Example#530 - Создание и модификация переменной C
  • Example#531 - Работа с массивами C
  • Example#532 - Работа с перечислениями C
  • Example#533 -
  • Example#534 -
  • Example#535 - Пример контроля вывода
  • Example#536 - Пример перезаписи вывода
  • Example#537 - Пример использования функции ob_end_clean
  • Example#538 - Пример использования функции ob_end_flush
  • Example#539 - Простой пример использования функции ob_get_clean
  • Example#540 - Простой пример использования функции ob_get_contents
  • Example#541 - Пример использования функции ob_get_flush
  • Example#542 - Простой пример использования функции ob_get_length
  • Example#543 - Пример использования функции ob_gzhandler
  • Example#544 - Пример использования функции ob_list_handlers
  • Example#545 - Пример callback-функции, определённой пользователем
  • Example#546 - Создание нестираемого буфера вывода
  • Example#547 - Пример использования функции output_add_rewrite_var
  • Example#548 - Пример использования функции output_reset_rewrite_vars
  • Example#549 - Пример использования assert_options
  • Example#550 -
  • Example#551 - Ожидания при использовании пользовательского исключения
  • Example#552 - Обработка неудачной проверки утверждения с помощью пользовательского обработчика
  • Example#553 - Использование пользовательского обработчика для вывода описания
  • Example#554 - Пример использования cli_get_process_title
  • Example#555 - Пример использования cli_set_process_title
  • Example#556 - Примеры использования dl
  • Example#557 - Пример использования extension_loaded
  • Example#558 - Пример использования gc_enabled
  • Example#559 - Использование gc_status
  • Example#560 - Пример использования get_current_user
  • Example#561 - Пример использования get_defined_constants
  • Example#562 - Выводит функции XML
  • Example#563 - Пример использования get_include_path
  • Example#564 - Пример использования get_included_files
  • Example#565 - Пример использования get_loaded_extensions
  • Example#566 - Пример использования get_resources
  • Example#567 - Пример использования get_resources с фильтрацией
  • Example#568 - Пример использования getenv
  • Example#569 - Пример использования getlastmod
  • Example#570 - Пример использования getopt: основы
  • Example#571 - Пример использования getopt: добавление длинных опций
  • Example#572 - Пример использования getopt: Передача нескольких параметров как одного
  • Example#573 - Пример getopt с параметром rest_index
  • Example#574 - Пример использования getrusage
  • Example#575 - Примеры использования ini_get_all
  • Example#576 - Отключение details
  • Example#577 - Несколько примеров использования ini_get
  • Example#578 - Пример использования ini_parse_quantity
  • Example#579 - Пример использования ini_restore
  • Example#580 - Установка значения ini-настройки
  • Example#581 - Пример использования memory_get_usage
  • Example#582 - Пример использования memory_reset_peak_usage
  • Example#583 - Пример использования php_ini_loaded_file
  • Example#584 - Простой пример вывода списка ini-файлов
  • Example#585 - Пример использования php_sapi_name
  • Example#586 - Несколько примеров использования php_uname
  • Example#587 - Некоторые константы OS
  • Example#588 - Выводит основных разработчиков
  • Example#589 - Выводит разработчиков ядра и участников команды документирования
  • Example#590 - Вывод всех разработчиков
  • Example#591 - Пример использования phpinfo
  • Example#592 - Пример использования phpversion
  • Example#593 - Пример использования PHP_VERSION_ID
  • Example#594 - Установка значения переменной среды
  • Example#595 - Пример использования restore_include_path
  • Example#596 - Пример использования set_include_path
  • Example#597 - Составление более длинного пути include path
  • Example#598 - Пример использования sys_get_temp_dir
  • Example#599 - Пример использования version_compare
  • Example#600 - Пример использования zend_thread_id
  • Example#601 - Пример использования zend_version
  • Example#602 - Пользовательские суперглобальные файлы с runkit.superglobal=_FOO,_BAR в php.ini
  • Example#603 - Пример использования runkit7_function_add
  • Example#604 - Пример использования runkit7_function_copy
  • Example#605 - Пример использования runkit7_function_redefine
  • Example#606 - Пример использования runkit7_method_add
  • Example#607 - Пример использования runkit7_method_copy
  • Example#608 - Пример использования runkit7_method_redefine
  • Example#609 - Пример использования runkit7_method_remove
  • Example#610 - Пример использования runkit7_method_rename
  • Example#611 - Пример использования runkit7_zval_inspect
  • Example#612 - Простое использование uopz_add_function
  • Example#613 - Пример использования uopz_allow_exit
  • Example#614 - Пример использования uopz_backup
  • Example#615 - Пример использования uopz_compose
  • Example#616 - Пример использования uopz_copy
  • Example#617 - Простое использование uopz_del_function
  • Example#618 - Пример использования uopz_delete
  • Example#619 - Пример использования uopz_delete с классом
  • Example#620 - Пример использования uopz_extend
  • Example#621 - Пример использования uopz_flags
  • Example#622 - "Отменить final" класса
  • Example#623 - Пример использования uopz_function
  • Example#624 - Пример использования uopz_function с классом
  • Example#625 - Пример использования uopz_get_exit_status
  • Example#626 - Простое использование uopz_get_hook
  • Example#627 - Пример использования uopz_get_mock
  • Example#628 - Простое использование uopz_get_property
  • Example#629 - Пример использования uopz_get_return
  • Example#630 - Простое использование uopz_get_static
  • Example#631 - Пример использования uopz_implement
  • Example#632 - Пример использования uopz_overload
  • Example#633 - Пример использования uopz_redefine
  • Example#634 - Пример использования uopz_rename
  • Example#635 - Пример использования uopz_rename с классом
  • Example#636 - Пример использования uopz_restore
  • Example#637 - Простое использование uopz_set_hook
  • Example#638 - Пример использования uopz_set_mock
  • Example#639 - Пример использования uopz_set_mock
  • Example#640 - uopz_set_mock и статические члены класса
  • Example#641 - Простое использование uopz_set_property
  • Example#642 - Пример использования uopz_set_return
  • Example#643 - Пример использования uopz_set_return
  • Example#644 - Пример использования uopz_set_return с классом
  • Example#645 - Простое использование uopz_set_static
  • Example#646 - Пример использования uopz_undefine
  • Example#647 - Простое использование uopz_unset_hook
  • Example#648 - Пример использования uopz_unset_mock
  • Example#649 - Пример использования uopz_unset_return
  • Example#650 - Пример использования wincache.ignorelist
  • Example#651 - Настройка аутентификации для wincache.php
  • Example#652 - Включение обработчика сессий WinCache
  • Example#653 - Включение перенаправления функций в WinCache
  • Example#654 - Содержимое файла Reroute.ini
  • Example#655 - Пример использования wincache_fcache_fileinfo
  • Example#656 - Пример использования wincache_fcache_meminfo
  • Example#657 - Пример использования wincache_lock
  • Example#658 - Пример использования wincache_ocache_fileinfo
  • Example#659 - Пример использования wincache_ocache_meminfo
  • Example#660 - Пример использования wincache_refresh_if_changed
  • Example#661 - Пример использования wincache_rplist_fileinfo
  • Example#662 - Пример использования wincache_rplist_meminfo
  • Example#663 - Пример использования wincache_scache_info
  • Example#664 - Пример использования wincache_scache_meminfo
  • Example#665 - Пример использования wincache_ucache_add с key в виде строки
  • Example#666 - Пример использования wincache_ucache_add с key в виде массива
  • Example#667 - Пример использования wincache_ucache_cas
  • Example#668 - Пример использования wincache_ucache_clear
  • Example#669 - Пример использования wincache_ucache_dec
  • Example#670 - Пример использования wincache_ucache_delete с key в виде строки
  • Example#671 - Пример использования wincache_ucache_delete с key в виде массива
  • Example#672 - Пример использования wincache_ucache_delete с key в виде массива, из которого нельзя удалить некоторые элементы
  • Example#673 - Пример использования wincache_ucache_exists
  • Example#674 - wincache_ucache_get с key в виде строки
  • Example#675 - wincache_ucache_get с key в виде массива
  • Example#676 - Пример использования wincache_ucache_inc
  • Example#677 - Пример использования wincache_ucache_info
  • Example#678 - Пример использования wincache_ucache_meminfo
  • Example#679 - Пример использования wincache_ucache_set с key в виде строки
  • Example#680 - Пример использования wincache_ucache_set с key в виде массива
  • Example#681 - Пример использования wincache_unlock
  • Example#682 - Примеры использования Xhprof, опционально с GUI
  • Example#683 - Пример использования xhprof_disable
  • Example#684 - Пример использования xhprof_enable
  • Example#685 - Пример использования xhprof_sample_disable
  • Example#686 - Убедитесь, что элемент хранится
  • Example#687 - Использование паролей CHAP
  • Example#688 - Пример использования radius_acct_open
  • Example#689 - Пример использования radius_add_server
  • Example#690 - Пример использования radius_auth_open
  • Example#691 - Пример использования radius_create_request
  • Example#692 - Пример использования radius_cvt_addr
  • Example#693 - Пример использования radius_cvt_int
  • Example#694 - Пример использования radius_cvt_string
  • Example#695 - Пример использования radius_get_attr
  • Example#696 - Пример использования radius_get_tagged_attr_data
  • Example#697 - Пример использования radius_get_tagged_attr_tag
  • Example#698 - Пример использования radius_get_vendor_attr
  • Example#699 - Пример использования radius_put_attr
  • Example#700 - Пример использования radius_put_int
  • Example#701 - Пример использования radius_put_string
  • Example#702 - Пример использования radius_put_vendor_attr
  • Example#703 - Пример использования callback-интерфейса readline
  • Example#704 - Пример использования readline
  • Example#705 - Пример работы с bzip2
  • Example#706 - Сжатие данных
  • Example#707 - Распаковка строки
  • Example#708 - Пример использования bzerror
  • Example#709 - Пример использования bzopen
  • Example#710 - Пример использования bzread
  • Example#711 - Пример использования bzwrite
  • Example#712 - Использование внешнего файла
  • Example#713 - Использование файла внутри phar-архива
  • Example#714 - Конвертирование phar-архива из формата phar в формат tar
  • Example#715 - phar.cache_list usage example
  • Example#716 - Пример использования Phar::addEmptyDir
  • Example#717 - Пример использования Phar::addFile
  • Example#718 - Пример использования Phar::addFromString
  • Example#719 - Пример использования Phar::apiVersion
  • Example#720 - Пример использования Phar::buildFromDirectory
  • Example#721 - Пример использования Phar::buildFromIterator с объектами SplFileInfo
  • Example#722 - Пример использования Phar::buildFromIterator с другими типами итераторов
  • Example#723 - Пример использования Phar::canCompress
  • Example#724 - Пример использования Phar::canWrite
  • Example#725 - Пример использования Phar::compress
  • Example#726 - Пример использования Phar::compressFiles
  • Example#727 - Пример использования Phar::__construct
  • Example#728 - Пример использования Phar::convertToData
  • Example#729 - Пример использования Phar::convertToExecutable
  • Example#730 - Пример использования Phar::copy
  • Example#731 - Пример использования Phar::count
  • Example#732 - Пример использования Phar::createDefaultStub
  • Example#733 - Пример использования Phar::decompress
  • Example#734 - Пример использования Phar::decompressFiles
  • Example#735 - Пример использования Phar::delMetaData
  • Example#736 - Пример использования Phar::delete
  • Example#737 - Пример использования Phar::extractTo
  • Example#738 - Пример использования Phar::getMetadata
  • Example#739 - Пример использования Phar::getStub
  • Example#740 - Пример использования Phar::hasMetadata
  • Example#741 - Пример использования Phar::interceptFileFuncs
  • Example#742 - Пример использования Phar::interceptFileFuncs
  • Example#743 - Пример использования Phar::isBuffering
  • Example#744 - Пример использования Phar::isCompressed
  • Example#745 - Пример использования Phar::loadPhar
  • Example#746 - Пример использования Phar::mapPhar
  • Example#747 - Пример использования Phar::mount
  • Example#748 - Пример использования Phar::mungServer
  • Example#749 - Пример использования Phar::offsetExists
  • Example#750 - Пример использования Phar::offsetGet
  • Example#751 - Пример использования Phar::offsetSet
  • Example#752 - Пример использования Phar::offsetUnset
  • Example#753 - Пример использования Phar::running
  • Example#754 - Пример использования Phar::setAlias
  • Example#755 - Пример использования Phar::setDefaultStub
  • Example#756 - Пример использования Phar::setMetadata
  • Example#757 - Пример использования Phar::setStub
  • Example#758 - Пример использования Phar::startBuffering
  • Example#759 - Пример использования Phar::stopBuffering
  • Example#760 - Пример использования Phar::unlinkArchive
  • Example#761 - Пример использования Phar::webPhar
  • Example#762 - Пример использования PharData::addEmptyDir
  • Example#763 - Пример использования PharData::addFile
  • Example#764 - Пример использования PharData::addFromString
  • Example#765 - Пример использования PharData::buildFromDirectory
  • Example#766 - Пример использования PharData::buildFromIterator с SplFileInfo
  • Example#767 - Пример использования PharData::buildFromIterator с другим итератором
  • Example#768 - Пример использования PharData::compress
  • Example#769 - Пример использования PharData::compressFiles
  • Example#770 - Пример использования PharData::__construct
  • Example#771 - Пример использования PharData::convertToData
  • Example#772 - Пример использования PharData::convertToExecutable
  • Example#773 - Пример использования PharData::copy
  • Example#774 - Пример использования PharData::decompress
  • Example#775 - Пример использования PharData::decompressFiles
  • Example#776 - Пример использования PharData::delMetaData
  • Example#777 - Пример использования PharData::delete
  • Example#778 - Пример использования PharData::extractTo
  • Example#779 - Пример использования PharData::offsetSet
  • Example#780 - Пример использования PharData::offsetUnset
  • Example#781 - Пример использования Phar::setMetadata
  • Example#782 - Пример использования PharFileInfo::chmod
  • Example#783 - Пример использования PharFileInfo::compress
  • Example#784 - Пример использования PharFileInfo::__construct
  • Example#785 - Пример использования PharFileInfo::decompress
  • Example#786 - Пример использования PharFileInfo::delMetaData
  • Example#787 - Пример использования PharFileInfo::getCRC32
  • Example#788 - Пример использования PharFileInfo::getCompressedSize
  • Example#789 - Пример использования PharFileInfo::getMetadata
  • Example#790 - Пример использования PharFileInfo::getPharFlags
  • Example#791 - Пример использования PharFileInfo::isCRCChecked
  • Example#792 - Пример использования PharFileInfo::isCompressed
  • Example#793 - Пример использования PharFileInfo::setMetadata
  • Example#794 - Установка Rar
  • Example#795 - Декомпрессия на лету
  • Example#796 - Пример извлечения перечня файлов и директорий из RAR-архива
  • Example#797 - Объектно-ориентированный стиль
  • Example#798 - Процедурный стиль
  • Example#799 - Объектно-ориентированный стиль
  • Example#800 - Процедурный стиль
  • Example#801 - Объектно-ориентированный стиль
  • Example#802 - Процедурный стиль
  • Example#803 - Объектно-ориентированный стиль
  • Example#804 - Процедурный стиль
  • Example#805 - Объектно-ориентированный стиль
  • Example#806 - Процедурный стиль
  • Example#807 - Объектно-ориентированный стиль
  • Example#808 - Процедурный стиль
  • Example#809 - Объектно-ориентированный стиль
  • Example#810 - Процедурный стиль
  • Example#811 - Callback-функция для тома
  • Example#812 - Объектно-ориентированный стиль
  • Example#813 - Процедурный стиль
  • Example#814 - Пример использования RarArchive::__toString
  • Example#815 - Пример использования RarEntry::extract
  • Example#816 - Как извлечь все файлы из архива:
  • Example#817 - Пример использования RarEntry::getAttr
  • Example#818 - Пример использования RarEntry::getHostOs(версии >= 2.0.0)
  • Example#819 - Пример использования RarEntry::getHostOs(версии <= 1.0.0)
  • Example#820 - Пример использования RarEntry::getMethod
  • Example#821 - Пример использования RarEntry::getName
  • Example#822 - Пример использования RarEntry::getPackedSize
  • Example#823 - Пример использования RarEntry::getStream
  • Example#824 - Пример использования RarEntry::getUnpackedSize
  • Example#825 - Пример использования RarEntry::getVersion
  • Example#826 - Пример использования RarException::isUsingExceptions
  • Example#827 - Пример использования RarException::setUsingExceptions
  • Example#828 - Создание Zip-архива
  • Example#829 - Собрать и отобразить подробную информацию об архиве
  • Example#830 - Использование обёртки потока Zip, чтение метаинформации OpenOffice
  • Example#831 - Пример использования Zip
  • Example#832 - Создание новой директории в архиве.
  • Example#833 - Открыть и добавить
  • Example#834 - Добавить запись в новый архив
  • Example#835 - Добавить файл в директорию внутри архива
  • Example#836 - Пример использования ZipArchive::addGlob
  • Example#837 - Пример использования ZipArchive::addPattern
  • Example#838 - Удалить файл из архива, используя его индекс
  • Example#839 - Удалить файл и каталог из архива, используя имена
  • Example#840 - Извлечь все содержимое
  • Example#841 - Извлечь два элемента
  • Example#842 - Вывести комментарий архива
  • Example#843 - Проверка, является ли архив форматом torrentzip
  • Example#844 - Вывести комментарий элемента
  • Example#845 - Вывести комментарий элемента
  • Example#846 - Извлекаем все записи с их правами Unix
  • Example#847 - Получить содержимое файла
  • Example#848 - Получить содержимое файла
  • Example#849 - Преобразовать изображении из ZIP-элемента
  • Example#850 - Пример использования ZipArchive::getnameindex
  • Example#851 - Получить содержимое элемента при помощи fread и сохранить его
  • Example#852 - То же, что и в предыдущем примере, но используя fopen и через обёртку zip-потока
  • Example#853 - ZIP-поток и изображение могут быть использованы также в функции XML
  • Example#854 - Получение и сохранение содержимого записи с помощью fread
  • Example#855 - Получение и сохранение содержимого записи с помощью fread
  • Example#856 - Создаётся архив и затем используется метод ZipArchive::locateName
  • Example#857 - Открытие и извлечение
  • Example#858 - Создание архива
  • Example#859 - Создать временный архив
  • Example#860 - Архивация файла
  • Example#861 - Архивация файла
  • Example#862 - Переименование одного элемента
  • Example#863 - Переименование одного элемента
  • Example#864 - Открытие и замена
  • Example#865 - Создание архива и установка комментария
  • Example#866 - Создание архива torrentzip
  • Example#867 - Открывает архив и устанавливает комментарий к элементу
  • Example#868 - Открытие архива и установка комментария к элементу
  • Example#869 - Добавить к архиву файлы с разными методами сжатия
  • Example#870 - Добавить к архиву файлы с разными методами сжатия
  • Example#871 - Добавить файл и установить метод сжатия
  • Example#872 - Архивируем и шифруем файл
  • Example#873 - Сжатие файла с его правами Unix
  • Example#874 - Архивирование файла
  • Example#875 - Архивирование файла
  • Example#876 - Получение статистической информации о элементе
  • Example#877 - Получение статистической информации о элементе
  • Example#878 - Пример использования Zlib
  • Example#879 - Работа с API инкрементального компрессии и декомпрессии
  • Example#880 - Пример использования gzclose
  • Example#881 - Пример использования gzcompress
  • Example#882 - Пример использования gzdeflate
  • Example#883 - Создание файла gzip
  • Example#884 - Пример использования gzeof
  • Example#885 - Пример использования gzfile
  • Example#886 - Пример использования gzgetc
  • Example#887 - Пример использования gzgets
  • Example#888 - Пример использования gzgetss
  • Example#889 - Пример использования gzinflate
  • Example#890 - Пример использования gzopen
  • Example#891 - Пример использования gzpassthru
  • Example#892 - Пример использования gzread
  • Example#893 - Пример использования gzseek
  • Example#894 - Пример использования gzuncompress
  • Example#895 - Пример использования gzwrite
  • Example#896 - Пример использования zlib_encode
  • Example#897 - Пример использования hash_algos
  • Example#898 - Пример использования hash_copy
  • Example#899 - Пример использования hash_equals
  • Example#900 - Использование hash_file
  • Example#901 - Пример использования hash_hkdf
  • Example#902 - Пример использования hash_hmac_algos
  • Example#903 - Пример использования hash_hmac_file
  • Example#904 - Пример использования hash_hmac
  • Example#905 - Пример инкрементального хеширования
  • Example#906 - Пример простого использования hash_pbkdf2
  • Example#907 - Пример использования hash_update_stream
  • Example#908 - Пример использования hash
  • Example#909 - Пример использования mcrypt_create_iv
  • Example#910 - Пример использования mcrypt_enc_get_algorithms_name
  • Example#911 - Пример использования mcrypt_enc_get_modes_name
  • Example#912 - Пример использования mcrypt_enc_get_supported_key_sizes
  • Example#913 - Пример использования mcrypt_encrypt
  • Example#914 - Пример использования mcrypt_get_block_size
  • Example#915 - Пример использования mcrypt_get_cipher_name
  • Example#916 - Пример использования mcrypt_get_iv_size
  • Example#917 - Пример использования mcrypt_get_key_size
  • Example#918 - Пример использования mcrypt_list_algorithms
  • Example#919 - Пример использования mcrypt_list_modes
  • Example#920 - Пример использования mcrypt_module_open
  • Example#921 - Пример использования mcrypt_module_open
  • Example#922 - Пример использования mcrypt_module_self_test
  • Example#923 - Пример использования mdecrypt_generic
  • Example#924 - Вычисление MD5 и HMAC и печать их в шестнадцатеричном виде
  • Example#925 - Обход всех хешей
  • Example#926 - Пример использования mhash_get_block_size
  • Example#927 - Пример использования mhash_get_hash_name
  • Example#928 - Пример использования openssl_cipher_iv_length
  • Example#929 - Пример использования openssl_cipher_key_length
  • Example#930 - Пример использования openssl_cms_sign
  • Example#931 - Пример использования openssl_csr_export_to_file()
  • Example#932 - Пример использования openssl_csr_export()
  • Example#933 - Пример использования openssl_csr_get_public_key()
  • Example#934 - Пример использования openssl_csr_get_subject()
  • Example#935 - Создание самоподписанного сертификата
  • Example#936 - Создание самоподписанного ECC сертификата (начиная с PHP 7.1.0)
  • Example#937 - Пример openssl_csr_sign - подпись CSR (как сделать свой собственный CA)
  • Example#938 - Вычисление общего секретного ключа
  • Example#939 - Создание пары ключей DH (открытый/закрытый)
  • Example#940 - Пример шифрования AES с аутентификацией в режиме GCM в PHP 7.1+
  • Example#941 - Пример шифрования AES с аутентификацией до PHP 7.1
  • Example#942 - Пример использования openssl_error_string
  • Example#943 - Пример использования openssl_get_cert_locations
  • Example#944 - Пример использования openssl_get_cipher_methods
  • Example#945 - Пример использования openssl_get_curve_names
  • Example#946 - Пример использования openssl_get_md_methods
  • Example#947 - Пример использования openssl_open
  • Example#948 - Пример использования openssl_pbkdf2()
  • Example#949 - Пример использования openssl_pkcs12_read
  • Example#950 - Пример использования openssl_pkcs7_decrypt
  • Example#951 - Пример использования openssl_pkcs7_encrypt
  • Example#952 - Получение массива PEM из файла P7B
  • Example#953 - Пример использования openssl_pkcs7_sign
  • Example#954 - Пример использования openssl_pkey_derive
  • Example#955 - Получить открытую часть ключа из закрытого ключа
  • Example#956 - Пример использования openssl_random_pseudo_bytes
  • Example#957 - Пример использования openssl_seal
  • Example#958 - Пример использования openssl_sign
  • Example#959 - Пример использования openssl_sign
  • Example#960 - Пример использования openssl_spki_export_challenge
  • Example#961 - Пример использование openssl_spki_export_challenge с <keygen>
  • Example#962 - Пример использования openssl_spki_export
  • Example#963 - Пример использования openssl_spki_export с <keygen>
  • Example#964 - Пример использования openssl_spki_new
  • Example#965 - Пример использования openssl_spki_verify
  • Example#966 - Пример использования openssl_spki_verify с <keygen>
  • Example#967 - Пример использования openssl_verify
  • Example#968 - Пример использования openssl_verify
  • Example#969 - Пример использования openssl_x509_verify
  • Example#970 - Пример использования password
  • Example#971 - Пример использования password_hash
  • Example#972 - Пример использования password_hash с ручным заданием стоимости
  • Example#973 - Пример поиска хорошего значения стоимости для функции password_hash
  • Example#974 - Пример использования функции password_hash с Argon2i
  • Example#975 - Пример использования password_needs_rehash
  • Example#976 - Пример использования password_verify
  • Example#977 - Пример расчёта RNP
  • Example#978 - Пример простой callback-функции
  • Example#979 - Пример использования sodium_crypto_box_seal_open
  • Example#980 - Пример использования sodium_crypto_box_seal
  • Example#981 - Пример использования sodium_crypto_core_ristretto255_add
  • Example#982 - Пример использования sodium_crypto_core_ristretto255_from_hash
  • Example#983 - Пример использования sodium_crypto_core_ristretto255_is_valid_point
  • Example#984 - Пример использования sodium_crypto_core_ristretto255_random
  • Example#985 - Пример использования sodium_crypto_core_ristretto255_scalar_add
  • Example#986 - Пример использования sodium_crypto_core_ristretto255_scalar_invert
  • Example#987 - Пример использования sodium_crypto_core_ristretto255_scalar_negate
  • Example#988 - Пример использования sodium_crypto_core_ristretto255_scalar_random
  • Example#989 - Пример использования sodium_crypto_core_ristretto255_scalar_sub
  • Example#990 - Пример использования sodium_crypto_core_ristretto255_sub
  • Example#991 - Пример использования sodium_crypto_generichash_final
  • Example#992 - Пример использования sodium_crypto_generichash_init
  • Example#993 - Пример использования sodium_crypto_generichash_update
  • Example#994 - Пример использования sodium_crypto_kx_keypair
  • Example#995 - Пример использования sodium_crypto_pwhash_str
  • Example#996 - Пример использования password_hash
  • Example#997 - Пример использования sodium_crypto_secretbox_keygen
  • Example#998 - Сравнение sodium_crypto_secretbox_keygen с random_bytes
  • Example#999 - Пример использования sodium_crypto_secretbox_open
  • Example#1000 - Пример использования sodium_crypto_secretbox
  • Example#1001 - Пример использования sodium_crypto_secretstream_xchacha20poly1305_init_pull
  • Example#1002 - Пример использования sodium_crypto_secretstream_xchacha20poly1305_init_push
  • Example#1003 - Пример использования sodium_crypto_stream_xchacha20_xor_ic
  • Example#1004 - DBA пример
  • Example#1005 - Обход базы данных
  • Example#1006 - Пример использования dba_handlers
  • Example#1007 - Перечисление привилегий для столбца
  • Example#1008 - Перечисление столбцов таблицы
  • Example#1009 - Соединения без DSN
  • Example#1010 - Пример использования odbc_connection_string_quote
  • Example#1011 - Перечисление доступных DSN
  • Example#1012 - Пример использования odbc_execute и odbc_prepare
  • Example#1013 - Примеры использования odbc_fetch_into
  • Example#1014 - Пример использования odbc_next_result
  • Example#1015 - Пример использования odbc_execute и odbc_prepare
  • Example#1016 - Перечисление первичных ключей столбца
  • Example#1017 - Перечисление столбцов хранимой процедуры
  • Example#1018 - Перечисление хранимых процедур базы данных
  • Example#1019 - Примеры использования odbc_result
  • Example#1020 - Примеры использования odbc_setoption
  • Example#1021 - Вывод статистики о таблице
  • Example#1022 - Перечисление привилегий таблицы
  • Example#1023 - Перечисление таблиц в каталоге
  • Example#1024 - Пример использования PDO::ATTR_DRIVER_NAME
  • Example#1025 - Подключение к MySQL
  • Example#1026 - Обработка ошибок подключения
  • Example#1027 - Закрытие соединения
  • Example#1028 - Постоянные соединения
  • Example#1029 - Выполнение пакета изменений в рамках транзакции
  • Example#1030 - Повторяющиеся вставки в базу с использованием подготовленных запросов
  • Example#1031 - Повторяющиеся вставки в базу с использованием подготовленных запросов
  • Example#1032 - Выборка данных с использованием подготовленных запросов
  • Example#1033 - Вызов хранимой процедуры с выходными параметрами
  • Example#1034 - Вызов хранимой процедуры с входным/выходным параметром
  • Example#1035 - Неправильное использование псевдопеременной
  • Example#1036 - Создание PDO объекта и установка режима обработки ошибок
  • Example#1037 - Создание экземпляра класса PDO и установка режима обработки ошибок в конструкторе
  • Example#1038 - Вывод изображения, хранящегося в базе данных
  • Example#1039 - Вставка изображения в базу данных
  • Example#1040 - Вставка изображения в базу данных: Oracle
  • Example#1041 - Откат транзакции
  • Example#1042 - Фиксация обычной транзакции
  • Example#1043 - Фиксация DDL-транзакции
  • Example#1044 - Создание экземпляра PDO через вызов драйвера
  • Example#1045 - Создание экземпляра PDO через вызов URI
  • Example#1046 - Создание экземпляра PDO, используя псевдоним
  • Example#1047 - Получение кода SQLSTATE
  • Example#1048 - Вывод полей массива errorInfo() для PDO_ODBC подключения к базе данных DB2
  • Example#1049 - Выполнение запроса DELETE
  • Example#1050 - Получение атрибутов соединения с базой данных
  • Example#1051 - Пример выполнения PDO::getAvailableDrivers
  • Example#1052 - Подготовка SQL-запроса с именованными параметрами
  • Example#1053 - Подготовка SQL-запроса с неименованными параметрами (символ '?')
  • Example#1054 - Подготовка SQL-запроса с экранированным вопросительным знаком
  • Example#1055 - SQL без заполнителей может быть выполнен с использованием PDO::query
  • Example#1056 - Экранирование обычной строки
  • Example#1057 - Экранирование небезопасной строки
  • Example#1058 - Экранирование сложной строки
  • Example#1059 - Откат транзакции
  • Example#1060 - Связывание результирующего набора с переменными PHP
  • Example#1061 - Выполнение подготовленного запроса с именованными псевдопеременными
  • Example#1062 - Выполнение подготовленного запроса с неименованными псевдопеременными (?)
  • Example#1063 - Вызов хранимой процедуры с INOUT-параметром
  • Example#1064 - Выполнение подготовленного запроса с именованными псевдопеременными
  • Example#1065 - Выполнение подготовленного запроса с неименованными псевдопеременными (?)
  • Example#1066 - Пример использования PDOStatement::closeCursor
  • Example#1067 - Подсчёт столбцов
  • Example#1068 - Пример использования PDOStatement::debugDumpParams с именованными параметрами
  • Example#1069 - Пример использования PDOStatement::debugDumpParams с неименованными (?) параметрами
  • Example#1070 - Получение кода SQLSTATE
  • Example#1071 - Вывод полей errorInfo() при PDO_ODBC подключении к DB2
  • Example#1072 - Выполнение подготовленного запроса с привязкой переменных и значений
  • Example#1073 - Выполнение подготовленного запроса с массивом именованных значений
  • Example#1074 - Выполнение подготовленного запроса с массивом позиционных значений
  • Example#1075 - Выполнение подготовленного запроса с переменными, привязанными к позиционным заполнителям
  • Example#1076 - Выполнение подготовленного запроса с использованием массива для выражения IN
  • Example#1077 - Извлечение строк в разных режимах выборки
  • Example#1078 - Выборка строк средствами прокручиваемого курсора
  • Example#1079 - Порядок конструкторов
  • Example#1080 - Извлечение всех оставшихся строк результирующего набора
  • Example#1081 - Извлечение всех значений одного столбца результирующего набора
  • Example#1082 - Группировка строк по значениям одного столбца
  • Example#1083 - Создание объекта для каждой строки
  • Example#1084 - Вызов функции для каждой строки
  • Example#1085 - Получение значения первого столбца следующей строки
  • Example#1086 - Извлечение метаданных столбца
  • Example#1087 - Извлечение данных из нескольких наборов строк, возвращённых хранимой процедурой
  • Example#1088 - Получение количества удалённых строк
  • Example#1089 - Подсчёт строк, возвращаемых выражением SELECT
  • Example#1090 - Изменение режима выборки
  • Example#1091 - Вставка LOB в CUBRID PDO
  • Example#1092 - Получение LOB в CUBRID PDO
  • Example#1093 - Вставка коллекции в CUBRID PDO с типом данных по умолчанию.
  • Example#1094 - Указание типа данных при вставке коллекции в CUBRID PDO
  • Example#1095 - Пример PDO_CUBRID DSN
  • Example#1096 - Пример использования PDO::cubrid_schema
  • Example#1097 - Примеры использования PDO_DBLIB DSN
  • Example#1098 - Пример PDO_FIREBIRD DSN с путём
  • Example#1099 - Пример PDO_FIREBIRD DSN с путём и портом
  • Example#1100 - Пример PDO_FIREBIRD DSN для localhost и пути до employee.fdb в системе Debian
  • Example#1101 - PDO_FIREBIRD DSN to connect to a dialect 1 database
  • Example#1102 - Пример PDO_IBM DSN с использованием db2cli.ini
  • Example#1103 - Пример PDO_IBM DSN с использованием строки соединения
  • Example#1104 - Использование PDO_INFORMIX DSN в odbc.ini
  • Example#1105 - Соединение с использованием полноценной строки соединения
  • Example#1106 - Установка небуферизованного режима MySQL
  • Example#1107 - Примеры DSN для PDO_MYSQL
  • Example#1108 - Примеры PDO_SQLSRV DSN
  • Example#1109 - Примеры использования PDO_OCI DSN
  • Example#1110 - Пример PDO_ODBC DSN (менеджер драйверов ODBC)
  • Example#1111 - Пример использования PDO_ODBC DSN (некаталогизированное соединение IBM DB2)
  • Example#1112 - Пример использования PDO_ODBC DSN (некаталогизированное соединение Microsoft Access)
  • Example#1113 - Примеры PDO_PGSQL DSN
  • Example#1114 - Пример использования PDO::pgsqlLOBCreate
  • Example#1115 - Пример использования PDO::pgsqlLOBOpen
  • Example#1116 - Пример использования PDO::pgsqlLOBUnlink
  • Example#1117 - Пример DSN PDO_SQLITE
  • Example#1118 - Пример агрегирующей функции max_length
  • Example#1119 - Пример использования PDO::sqliteCreateCollation
  • Example#1120 - Пример использования PDO::sqliteCreateFunction
  • Example#1121 - Пример извлечения данных
  • Example#1122 - Пример вставки данных
  • Example#1123 - Пример использования cubrid_bind
  • Example#1124 - Пример использования cubrid_bind с BLOB/CLOB
  • Example#1125 - Пример использования cubrid_bind с BLOB/CLOB
  • Example#1126 - Пример использования cubrid_close_prepare
  • Example#1127 - Пример использования cubrid_close_request
  • Example#1128 - Пример использования cubrid_col_get
  • Example#1129 - Пример использования cubrid_col_size
  • Example#1130 - Пример использования cubrid_column_names
  • Example#1131 - cubrid_column_types example
  • Example#1132 - Пример использования cubrid_commit
  • Example#1133 - Пример использования cubrid_connect_with_url без задания свойств
  • Example#1134 - Пример использования cubrid_connect_with_url с заданием свойств
  • Example#1135 - Пример использования cubrid_connect
  • Example#1136 - Пример использования cubrid_current_oid
  • Example#1137 - Пример использования cubrid_disconnect
  • Example#1138 - Пример использования cubrid_drop
  • Example#1139 - Пример использования cubrid_error_code_facility
  • Example#1140 - Пример использования cubrid_error_code
  • Example#1141 - Пример использования cubrid_error_msg
  • Example#1142 - Пример использования cubrid_execute
  • Example#1143 - Пример использования cubrid_fetch
  • Example#1144 - Пример использования cubrid_free_result
  • Example#1145 - Пример использования cubrid_get_charset
  • Example#1146 - Пример использования cubrid_get_class_name
  • Example#1147 - Пример использования cubrid_get_client_info
  • Example#1148 - Пример использования cubrid_get_db_parameter
  • Example#1149 - Пример использования cubrid_get_query_timeout
  • Example#1150 - Пример использования cubrid_get_server_info
  • Example#1151 - Пример использования cubrid_get
  • Example#1152 - Пример использования cubrid_insert_id
  • Example#1153 - Пример использования cubrid_is_instance
  • Example#1154 - Пример использования cubrid_lob_close
  • Example#1155 - Пример использования cubrid_lob_export
  • Example#1156 - Пример использования cubrid_lob_get
  • Example#1157 - Пример использования cubrid_lob_send
  • Example#1158 - Пример использования cubrid_lob_size
  • Example#1159 - Пример использования cubrid_lob2_bind
  • Example#1160 - Пример использования cubrid_lob2_export
  • Example#1161 - Пример использования cubrid_lob2_export
  • Example#1162 - Пример использования cubrid_lob2_read 1
  • Example#1163 - Пример использования cubrid_lob2_read 2
  • Example#1164 - Пример использования: cubrid_lob2_seek64
  • Example#1165 - Пример использования cubrid_lob2_seek
  • Example#1166 - Пример использования cubrid_lob2_write
  • Example#1167 - Пример использования cubrid_lob2_write
  • Example#1168 - Пример использования cubrid_lock_read
  • Example#1169 - Пример использования cubrid_lock_write
  • Example#1170 - Пример использования cubrid_move_cursor
  • Example#1171 - Пример использования cubrid_next_result
  • Example#1172 - Пример использования cubrid_num_cols
  • Example#1173 - Пример использования cubrid_num_rows
  • Example#1174 - Пример использования cubrid_pconnect_with_url без задания свойств
  • Example#1175 - cubrid_pconnect_with_url url with properties example
  • Example#1176 - Пример использования cubrid_connect
  • Example#1177 - Пример использования cubrid_prepare
  • Example#1178 - Пример использования cubrid_put
  • Example#1179 - Пример использования cubrid_rollback
  • Example#1180 - Пример использования cubrid_schema
  • Example#1181 - Пример использования cubrid_seq_drop
  • Example#1182 - Пример использования cubrid_seq_insert
  • Example#1183 - Пример использования cubrid_seq_put
  • Example#1184 - Пример использования cubrid_set_add
  • Example#1185 - Пример использования cubrid_get_db_parameter
  • Example#1186 - Пример использования cubrid_set_drop
  • Example#1187 - Пример использования cubrid_version
  • Example#1188 - Пример использования cubrid_affected_rows
  • Example#1189 - Пример использования cubrid_client_encoding
  • Example#1190 - Пример использования cubrid_close
  • Example#1191 - Пример использования cubrid_data_seek
  • Example#1192 - Пример использования cubrid_db_name
  • Example#1193 - Пример использования cubrid_errno
  • Example#1194 - Пример использования cubrid_error
  • Example#1195 - Пример использования cubrid_fetch_array
  • Example#1196 - Пример использования cubrid_fetch_assoc
  • Example#1197 - Пример использования cubrid_fetch_field
  • Example#1198 - Пример использования cubrid_fetch_lengths
  • Example#1199 - Пример использования cubrid_fetch_object
  • Example#1200 - Пример использования cubrid_fetch_row
  • Example#1201 - Пример использования cubrid_field_flags
  • Example#1202 - Пример использования cubrid_field_len
  • Example#1203 - Пример использования cubrid_field_name
  • Example#1204 - Пример использования cubrid_field_seek
  • Example#1205 - Пример использования cubrid_field_table
  • Example#1206 - Пример использования cubrid_field_type
  • Example#1207 - Пример использования cubrid_list_dbs
  • Example#1208 - Пример использования cubrid_num_fields
  • Example#1209 - Пример использования cubrid_ping
  • Example#1210 - Некорректный запрос
  • Example#1211 - Корректный запрос
  • Example#1212 - Пример использования cubrid_real_escape_string
  • Example#1213 - Пример использования cubrid_result
  • Example#1214 - Пример использования cubrid_unbuffered_query
  • Example#1215 - Пример использования cubrid_load_from_glo
  • Example#1216 - Пример использования cubrid_new_glo
  • Example#1217 - Пример использования cubrid_save_to_glo
  • Example#1218 - Пример использования cubrid_send_glo
  • Example#1219 - Вставка записи в базу данных dBase
  • Example#1220 - Закрытие файла базы данных dBase
  • Example#1221 - Создание файла базы данных dBase
  • Example#1222 - Получение свойств полей файла базы данных dBase
  • Example#1223 - Список всех зарегистрированных пользователей в базе данных
  • Example#1224 - Пример использования dbase_numfields
  • Example#1225 - Цикл по всем записям базы данных
  • Example#1226 - Открытие dBase файл базы данных
  • Example#1227 - Очистка базы данных dBase
  • Example#1228 - Обновление записи в базе данных
  • Example#1229 - Пример использования ibase_backup
  • Example#1230 - Пример использования ibase_backup с аргументами
  • Example#1231 - Пример использования ibase_blob_get
  • Example#1232 - Пример использования ibase_blob_import
  • Example#1233 - Пример использования ibase_connect
  • Example#1234 - Пример использования ibase_execute
  • Example#1235 - Пример использования ibase_fetch_object
  • Example#1236 - Пример использования ibase_field_info
  • Example#1237 - Пример использования ibase_name_result
  • Example#1238 - Пример использования ibase_num_fields
  • Example#1239 - Пример использования ibase_query
  • Example#1240 - Пример использования ibase_restore
  • Example#1241 - Пример использования ibase_restore с аргументами
  • Example#1242 - Пример использования ibase_service_attach
  • Example#1243 - Пример использования ibase_service_attach
  • Example#1244 - Пример использования ibase_service_attach с синтаксисом hostname/port
  • Example#1245 - Пример использования ibase_service_detach
  • Example#1246 - Пример использования ibase_set_event_handler
  • Example#1247 - Получение текущего режима автоподтверждения транзакций
  • Example#1248 - Установка режима автоподтверждения транзакции
  • Example#1249 - Привязка переменных PHP к подготовленному выражению
  • Example#1250 - Вызов хранимых процедур с параметрами IN и OUT
  • Example#1251 - Вставка большого двоичного объекта (BLOB) напрямую из файла
  • Example#1252 - Пример использования db2_client_info
  • Example#1253 - Закрытие соединения
  • Example#1254 - Получение значения SQLSTATE для неудачной попытки подключения
  • Example#1255 - Получение сообщения об ошибке, возвращённого при неудачной попытке подключения
  • Example#1256 - Создание каталогизированного соединения
  • Example#1257 - Создание некаталогизированного соединения
  • Example#1258 - Создание соединения с отключённым автокоммитом по умолчанию
  • Example#1259 - Лучшая производительность i5/OS
  • Example#1260 - Использование доверенного контекста
  • Example#1261 - Пример использования db2_escape_string
  • Example#1262 - Создание таблицы с помощью db2_exec
  • Example#1263 - Выполнение запроса SELECT с прокручиваемым курсором
  • Example#1264 - Получение XML-данных как SQL ResultSet
  • Example#1265 - Выполнение "JOIN" с данными XML
  • Example#1266 - Возврат SQL-данных как части большого XML-документа
  • Example#1267 - Подготовка и выполнение SQL-запроса с маркерами параметров
  • Example#1268 - Вызов хранимой процедуры с параметром OUT
  • Example#1269 - Возврат XML-данных как SQL ResultSet
  • Example#1270 - Выполнение "JOIN" с данными XML
  • Example#1271 - Возврат SQL-данных как части большого XML-документа
  • Example#1272 - Перебор курсором "forward-only"
  • Example#1273 - Получение определённых строк с помощью db2_fetch_array из прокручиваемого курсора
  • Example#1274 - Перебор курсором "forward-only"
  • Example#1275 - Получение определённых строк с помощью db2_fetch_assoc из прокручиваемого курсора
  • Example#1276 - Перебор курсором "forward-only"
  • Example#1277 - Получение определённых строк с помощью db2_fetch_both из прокручиваемого курсора
  • Example#1278 - Пример использования db2_fetch_object
  • Example#1279 - Итерации по набору результатов
  • Example#1280 - Рекомендуемые альтернативы db2_fetch_row/db2_result для i5/OS
  • Example#1281 - Установка и получение параметров через ресурс подключения
  • Example#1282 - Пример использования db2_last_insert_id
  • Example#1283 - Итерации по разным типам данных
  • Example#1284 - Вызов хранимой процедуры, возвращающей несколько наборов результатов
  • Example#1285 - Получение количества полей в результирующем наборе
  • Example#1286 - Закрытие постоянного соединения
  • Example#1287 - Пример использования db2_pconnect
  • Example#1288 - Использование доверенного контекста
  • Example#1289 - Подготовка и выполнение SQL-запроса с маркерами параметров
  • Example#1290 - Пример использования db2_result
  • Example#1291 - Откат операции DELETE
  • Example#1292 - Пример использования db2_server_info
  • Example#1293 - Установка одного параметра для ресурса соединения
  • Example#1294 - Установка нескольких параметров для ресурса соединения
  • Example#1295 - Установка нескольких параметров с одним некорректным ключом
  • Example#1296 - Установка нескольких параметров с одним некорректным значением
  • Example#1297 - Setting multiple parameters with a connection resource and the wrong type
  • Example#1298 - Setting multiple parameters with the wrong resource
  • Example#1299 - Putting it all together
  • Example#1300 - Курсор i5/OS только для чтения
  • Example#1301 - Простой пример использования MongoDB\Driver\Manager::__construct
  • Example#1302 - Примеры использования MongoDB\Driver\Manager::__construct
  • Example#1303 - Пример использования MongoDB\Driver\Manager::executeBulkWrite
  • Example#1304 - Пример использования MongoDB\Driver\Manager::executeCommand с командой, возвращающей одиночный документ
  • Example#1305 - Пример использования MongoDB\Driver\Manager::executeCommand с командой, возвращающей курсор
  • Example#1306 - Ограничение времени выполнения запроса
  • Example#1307 - Пример использования MongoDB\Driver\Manager::executeQuery
  • Example#1308 - Ограничение времени выполнения запроса
  • Example#1309 - Пример использования MongoDB\Driver\Manager::getReadConcern
  • Example#1310 - Пример использования MongoDB\Driver\Manager::getReadPreference
  • Example#1311 - Пример использования MongoDB\Driver\Manager::getServers
  • Example#1312 - Пример использования MongoDB\Driver\Manager::getWriteConcern
  • Example#1313 - Использование MongoDB\Driver\Command для предоставления помощника по созданию коллекций
  • Example#1314 - Пример использования MongoDB\Driver\Command::__construct
  • Example#1315 - Пример использования MongoDB\Driver\Command::__construct
  • Example#1316 - Пример использования MongoDB\Driver\Query::__construct
  • Example#1317 - Смешанные операции группируются по типу
  • Example#1318 - Отсортированные операции записи, вызывающие ошибку
  • Example#1319 - Пример использования MongoDB\Driver\BulkWrite::__construct
  • Example#1320 - Пример использования MongoDB\Driver\BulkWrite::count
  • Example#1321 - Пример использования MongoDB\Driver\BulkWrite::delete
  • Example#1322 - Пример использования MongoDB\Driver\BulkWrite::insert
  • Example#1323 - Пример использования MongoDB\Driver\BulkWrite::update
  • Example#1324 - Пример объявления версии API в диспетчере
  • Example#1325 - Пример объявления строгой версии API для менеджера
  • Example#1326 - MongoDB\Driver\WriteConcern::bsonSerialize с большинством гарантии записи
  • Example#1327 - MongoDB\Driver\WriteConcern::bsonSerialize со временем ожидания и журналом
  • Example#1328 - Пример использования MongoDB\Driver\WriteConcern::__construct
  • Example#1329 - Пример использования MongoDB\Driver\WriteConcern::getJournal
  • Example#1330 - Пример использования MongoDB\Driver\WriteConcern::getW
  • Example#1331 - Пример использования MongoDB\Driver\WriteConcern::getWtimeout
  • Example#1332 - Пример использования MongoDB\Driver\WriteConcern::isDefault
  • Example#1333 - Пример использования MongoDB\Driver\ReadPreference::bsonSerialize с первичным предпочтением чтения
  • Example#1334 - Пример использования MongoDB\Driver\ReadPreference::bsonSerialize с вторичным предпочтением чтения и наборами тегов
  • Example#1335 - Пример использования MongoDB\Driver\ReadPreference::bsonSerialize с вторичным предпочтением чтения и максимальным staleness
  • Example#1336 - Пример использования MongoDB\Driver\ReadPreference::__construct
  • Example#1337 - Пример использования MongoDB\Driver\ReadPreference::getMaxStalenessSeconds
  • Example#1338 - Пример использования MongoDB\Driver\ReadPreference::getMode
  • Example#1339 - Пример использования MongoDB\Driver\ReadPreference::getModeString
  • Example#1340 - Пример использования MongoDB\Driver\ReadPreference::getTagSets
  • Example#1341 - Пример использования MongoDB\Driver\ReadConcern::bsonSerialize с пустыми гарантиями чтения
  • Example#1342 - Пример использования MongoDB\Driver\ReadConcern::bsonSerialize с локальными гарантиями чтения
  • Example#1343 - Пример использования MongoDB\Driver\ReadConcern::__construct
  • Example#1344 - Пример использования MongoDB\Driver\ReadConcern::getLevel
  • Example#1345 - Пример использования MongoDB\Driver\ReadConcern::isDefault
  • Example#1346 - Reading a result set
  • Example#1347 - Чтение набора результатов для хвостового курсора
  • Example#1348 - Пример использования MongoDB\Driver\Cursor::getId
  • Example#1349 - Пример использования MongoDB\Driver\Cursor::getServer
  • Example#1350 - Пример использования MongoDB\Driver\Cursor::isDead
  • Example#1351 - Пример использования MongoDB\Driver\Cursor::setTypeMap
  • Example#1352 - Пример использования MongoDB\Driver\Cursor::toArray
  • Example#1353 - Пример использования MongoDB\Driver\CursorId::__toString
  • Example#1354 - Пример использования MongoDB\Driver\Server::getHost
  • Example#1355 - Пример использования MongoDB\Driver\Server::getInfo
  • Example#1356 - Пример использования MongoDB\Driver\Server::getLatency
  • Example#1357 - Пример использования MongoDB\Driver\Server::getPort
  • Example#1358 - Пример использования MongoDB\Driver\WriteConcernError::getCode
  • Example#1359 - Пример использования MongoDB\Driver\WriteConcernError::getInfo
  • Example#1360 - Пример использования MongoDB\Driver\WriteConcernError::getMessage
  • Example#1361 - Пример использования MongoDB\Driver\WriteError::getCode
  • Example#1362 - Пример использования MongoDB\Driver\WriteError::getIndex
  • Example#1363 - Пример использования MongoDB\Driver\WriteError::getMessage
  • Example#1364 - Пример использования MongoDB\Driver\WriteResult::getDeletedCount
  • Example#1365 - Пример использования MongoDB\Driver\WriteResult::getInsertedCount
  • Example#1366 - Пример использования MongoDB\Driver\WriteResult::getMatchedCount
  • Example#1367 - Пример использования MongoDB\Driver\WriteResult::getModifiedCount
  • Example#1368 - Пример использования MongoDB\Driver\WriteResult::getServer
  • Example#1369 - Пример использования MongoDB\Driver\WriteResult::getUpsertedCount
  • Example#1370 - Пример использования MongoDB\Driver\WriteResult::getUpsertedIds
  • Example#1371 - Пример использования MongoDB\Driver\WriteResult::getWriteConcernError
  • Example#1372 - Пример использования MongoDB\Driver\WriteResult::getWriteErrors с одной ошибкой
  • Example#1373 - Пример использования MongoDB\Driver\WriteResult::getWriteErrors с несколькими ошибками
  • Example#1374 - Пример использования MongoDB\Driver\WriteResult::isAcknowledged с подтверждёнными гарантиями записи
  • Example#1375 - Пример использования MongoDB\Driver\WriteResult::isAcknowledged с неподтверждёнными гарантиями записи
  • Example#1376 - Пример использования MongoDB\BSON\fromJSON
  • Example#1377 - Пример использования MongoDB\BSON\fromPHP
  • Example#1378 - Пример использования MongoDB\BSON\toCanonicalExtendedJSON
  • Example#1379 - Пример использования MongoDB\BSON\toJSON
  • Example#1380 - Пример использования MongoDB\BSON\toPHP
  • Example#1381 - Пример использования MongoDB\BSON\toRelaxedExtendedJSON
  • Example#1382 - Пример использования MongoDB\BSON\Document::toCanonicalExtendedJSON
  • Example#1383 - Пример использования MongoDB\BSON\Document::toRelaxedExtendedJSON
  • Example#1384 - Пример использования MongoDB\BSON\Binary::__construct
  • Example#1385 - Пример использования MongoDB\BSON\Binary::getData
  • Example#1386 - Пример использования MongoDB\BSON\Binary::getType
  • Example#1387 - Пример использования MongoDB\BSON\Binary::__toString
  • Example#1388 - Пример использования MongoDB\BSON\Decimal128::__construct
  • Example#1389 - Пример использования MongoDB\BSON\Decimal128::__toString
  • Example#1390 - Пример использования MongoDB\BSON\Javascript::__construct
  • Example#1391 - Пример использования MongoDB\BSON\Javascript::getCode
  • Example#1392 - Пример использования MongoDB\BSON\Javascript::getScope
  • Example#1393 - Пример использования MongoDB\BSON\Javascript::__toString
  • Example#1394 - Пример использования MongoDB\BSON\MaxKey::__construct
  • Example#1395 - Пример использования MongoDB\BSON\MinKey::__construct
  • Example#1396 - Пример использования MongoDB\BSON\ObjectId::__construct
  • Example#1397 - Пример использования MongoDB\BSON\ObjectId::getTimestamp
  • Example#1398 - Пример использования MongoDB\BSON\ObjectId::__toString
  • Example#1399 - Пример использования MongoDB\BSON\Regex::__construct
  • Example#1400 - Пример использования MongoDB\BSON\Regex::getFlags
  • Example#1401 - Пример использования MongoDB\BSON\Regex::getPattern
  • Example#1402 - Пример использования MongoDB\BSON\Regex::__toString
  • Example#1403 - Пример использования MongoDB\BSON\Timestamp::__construct
  • Example#1404 - Пример использования MongoDB\BSON\Timestamp::__toString
  • Example#1405 - Пример использования MongoDB\BSON\UTCDateTime::__construct
  • Example#1406 - Пример использования MongoDB\BSON\UTCDatetime::toDateTime
  • Example#1407 - Пример использования MongoDB\BSON\UTCDateTime::__toString
  • Example#1408 - MongoDB\BSON\Serializable::bsonSerialize возвращение ассоциативного массива для корневого документа
  • Example#1409 - MongoDB\BSON\Serializable::bsonSerialize возвращение последовательного массива для корневого документа
  • Example#1410 - MongoDB\BSON\Serializable::bsonSerialize возвращение ассоциативного массива для поля документа
  • Example#1411 - MongoDB\BSON\Serializable::bsonSerialize возвращение последовательного массива для поля документа
  • Example#1412 - Пример использования MongoDB\BSON\Unserializable::bsonUnserialize
  • Example#1413 - Пример использования MongoDB\BSON\Int64::__toString
  • Example#1414 - Пример использования MongoDB\Driver\Exception\WriteException::getWriteResult
  • Example#1415 - Сравнение MySQL API
  • Example#1416 - Сравнение подготовленных запросов
  • Example#1417 - Команды конфигурирования для mysqlnd и libmysqlclient
  • Example#1418 - Пример небуферизированного запроса: mysqli
  • Example#1419 - Пример небуферизированного запроса: pdo_mysql
  • Example#1420 - Проблемы установки кодировки символов с помощью SQL
  • Example#1421 - Пример установки кодировки символов: mysqli
  • Example#1422 - Пример установки кодировки символов: pdo_mysql
  • Example#1423 - Простота перехода со старого модуля mysql
  • Example#1424 - Объектно-ориентированный и процедурный интерфейсы
  • Example#1425 - Плохой стиль программирования
  • Example#1426 - Специальное назначение localhost
  • Example#1427 - Задание значений по умолчанию
  • Example#1428 - Выполнение запросов
  • Example#1429 - Навигация по строкам буферизованной результирующей таблицы
  • Example#1430 - Навигация по строкам небуферизованной результирующей таблицы
  • Example#1431 - Текстовый протокол по умолчанию возвращает строки
  • Example#1432 - Получение исходных типов данных в приложении
  • Example#1433 - Подготовленный запрос
  • Example#1434 - Выражение INSERT один раз подготавливается, а затем многократно выполняется
  • Example#1435 - Меньше обменов данными при использовании мультивставок SQL
  • Example#1436 - Исходные типы данных
  • Example#1437 - Привязка переменных к результату запроса
  • Example#1438 - Использование mysqli_result для выборки результатов запроса
  • Example#1439 - Буферизация результирующего набора для удобства чтения данных
  • Example#1440 - Вызов хранимой процедуры
  • Example#1441 - Использование переменных сессии
  • Example#1442 - Извлечение результатов работы хранимой процедуры
  • Example#1443 - Хранимые процедуры и подготавливаемые запросы
  • Example#1444 - Хранимые процедуры и подготавливаемые запросы с использованием привязки результатов
  • Example#1445 - Множественные запросы
  • Example#1446 - SQL-инъекция
  • Example#1447 - Установка режима автофиксации (autocommit) средствами SQL и функциями API
  • Example#1448 - Фиксация и откат
  • Example#1449 - Доступ к метаданным результирующей таблицы
  • Example#1450 - Метаданные подготовленных запросов
  • Example#1451 - Пример использования $mysqli->affected_rows
  • Example#1452 - Пример использования mysqli::autocommit
  • Example#1453 - Пример использования mysqli::begin_transaction
  • Example#1454 - Пример использования mysqli::change_user
  • Example#1455 - Пример использования mysqli::character_set_name
  • Example#1456 - Пример использования mysqli::close
  • Example#1457 - Пример использования $mysqli->connect_errno
  • Example#1458 - Пример использования $mysqli->connect_error
  • Example#1459 - Пример использования mysqli::__construct
  • Example#1460 - Расширение класса mysqli
  • Example#1461 - Ручная обработка ошибок
  • Example#1462 - Генерация файла трассировки
  • Example#1463 - Пример использования $mysqli->errno
  • Example#1464 - Пример использования $mysqli->error_list
  • Example#1465 - Пример с $mysqli->error
  • Example#1466 - Пример использования mysqli::execute_query
  • Example#1467 - Пример использования $mysqli->field_count
  • Example#1468 - Пример использования mysqli::get_charset
  • Example#1469 - mysqli_get_client_info
  • Example#1470 - mysqli_get_client_version
  • Example#1471 - Пример использования mysqli_get_connection_stats
  • Example#1472 - Пример использования $mysqli->host_info
  • Example#1473 - Пример использования $mysqli->protocol_version
  • Example#1474 - Пример использования $mysqli->server_info
  • Example#1475 - Пример использования $mysqli->server_version
  • Example#1476 - Пример использования $mysqli->info
  • Example#1477 - Пример функции $mysqli->insert_id
  • Example#1478 - Пример использования mysqli::kill
  • Example#1479 - Пример использования mysqli::multi_query
  • Example#1480 - Пример использования mysqli::ping
  • Example#1481 - Пример использования mysqli_poll
  • Example#1482 - Пример использования mysqli::prepare
  • Example#1483 - Пример использования mysqli::query
  • Example#1484 - Пример использования mysqli::real_connect
  • Example#1485 - Пример использования mysqli::real_escape_string
  • Example#1486 - Пример использования mysqli::select_db
  • Example#1487 - Пример использования mysqli::set_charset
  • Example#1488 - Пример использования $mysqli->sqlstate
  • Example#1489 - Пример использования mysqli::stat
  • Example#1490 - Пример использования $mysqli->thread_id
  • Example#1491 - Пример использования mysqli::use_result
  • Example#1492 - Пример использования $mysqli->warning_count
  • Example#1493 - Пример использования mysqli_stmt_affected_rows
  • Example#1494 - Пример использования mysqli_stmt::bind_param
  • 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 - Объектно-ориентированный стиль
  • Example#1509 - Процедурный стиль
  • Example#1510 - Объектно-ориентированный стиль
  • Example#1511 - Процедурный стиль
  • Example#1512 - Объектно-ориентированный стиль
  • Example#1513 - Процедурный стиль
  • Example#1514 - Объектно-ориентированный стиль
  • Example#1515 - Процедурный стиль
  • Example#1516 - Объектно-ориентированный стиль
  • Example#1517 - Процедурный стиль
  • Example#1518 - Пример использования mysqli_stmt::prepare
  • Example#1519 - Объектно-ориентированный стиль
  • Example#1520 - Процедурный стиль
  • Example#1521 - Объектно-ориентированный стиль
  • Example#1522 - Объектно-ориентированный стиль
  • Example#1523 - Процедурный стиль
  • Example#1524 - Объектно-ориентированный стиль
  • Example#1525 - Процедурный стиль
  • Example#1526 - Пример создания объекта mysqli_result
  • Example#1527 - Объектно-ориентированный стиль
  • Example#1528 - Процедурный стиль
  • Example#1529 - Пример использования mysqli::data_seek
  • Example#1530 - Регулировка указателя результата при перемещении
  • Example#1531 - Пример использования mysqli_result::fetch_all
  • Example#1532 - Пример использования mysqli_result::fetch_array
  • Example#1533 - Пример использования mysqli_result::fetch_assoc
  • Example#1534 - Сравнение использования mysqli_result iterator и mysqli_result::fetch_assoc
  • Example#1535 - Пример использования mysqli_result::fetch_column
  • Example#1536 - Объектно-ориентированный стиль
  • Example#1537 - Процедурный стиль
  • Example#1538 - Объектно-ориентированный стиль
  • Example#1539 - Процедурный стиль
  • Example#1540 - Объектно-ориентированный стиль
  • Example#1541 - Процедурный стиль
  • Example#1542 - Пример использования mysqli_result::fetch_object
  • Example#1543 - Пример использования mysqli_result::fetch_row
  • Example#1544 - Объектно-ориентированный стиль
  • Example#1545 - Процедурный стиль
  • Example#1546 - Объектно-ориентированный стиль
  • Example#1547 - Процедурный стиль
  • Example#1548 - Объектно-ориентированный стиль
  • Example#1549 - Процедурный стиль
  • Example#1550 - Объектно-ориентированный стиль
  • Example#1551 - Процедурный стиль
  • Example#1552 - Объектно-ориентированный стиль
  • Example#1553 - Процедурный стиль
  • Example#1554 - Отчёт об ошибках, кроме ошибок неверного индекса
  • Example#1555 - Пример использования mysqli_get_client_stats
  • Example#1556 - Подключение к серверу MySQL
  • Example#1557 - Создание схемы и коллекции на сервере MySQL
  • Example#1558 - Хранение и получение данных
  • Example#1559 - Извлечение и итерация нескольких документов
  • Example#1560 - Пример использования mysql_xdevapi\Expression
  • Example#1561 - Примеры URI
  • Example#1562 - Пример использования mysql_xdevapi\getSession
  • Example#1563 - Пример использования mysql_xdevapi\RowResult::getWarnings
  • Example#1564 - Пример использования mysql_xdevapi\RowResult::getWarningsCount
  • Example#1565 - Пример использования mysql_xdevapi\Client::__construct
  • Example#1566 - Пример использования mysql_xdevapi\Collection::add
  • Example#1567 - Пример использования mysql_xdevapi\Collection::addOrReplaceOne
  • Example#1568 - Пример использования mysql_xdevapi\Collection::getOne
  • Example#1569 - Пример использования mysql_xdevapi\Collection::count
  • Example#1570 - Пример использования mysql_xdevapi\Collection::createIndex
  • Example#1571 - Пример использования mysql_xdevapi\Collection::dropIndex
  • Example#1572 - Пример использования mysql_xdevapi\Collection::existsInDatabase
  • Example#1573 - Пример использования mysql_xdevapi\Collection::find
  • Example#1574 - Пример использования mysql_xdevapi\Collection::getName
  • Example#1575 - Пример использования mysql_xdevapi\Collection::getOne
  • Example#1576 - Пример использования mysql_xdevapi\Collection::getSchema
  • Example#1577 - Пример использования mysql_xdevapi\Collection::getSession
  • Example#1578 - Пример использования mysql_xdevapi\Collection::modify
  • Example#1579 - Пример использования mysql_xdevapi\Collection::remove
  • Example#1580 - Пример использования mysql_xdevapi\Collection::removeOne
  • Example#1581 - Пример использования mysql_xdevapi\Collection::replaceOne
  • Example#1582 - Пример использования mysql_xdevapi\CollectionAdd::__construct
  • Example#1583 - Пример использования mysql_xdevapi\CollectionAdd::execute
  • Example#1584 - Пример использования mysql_xdevapi\CollectionFind::bind
  • Example#1585 - Пример использования CollectionFind
  • Example#1586 - Пример использования CollectionFind
  • Example#1587 - Пример использования mysql_xdevapi\CollectionFind::fields
  • Example#1588 - Пример использования mysql_xdevapi\CollectionFind::groupBy
  • Example#1589 - Пример использования mysql_xdevapi\CollectionFind::having
  • Example#1590 - Пример использования mysql_xdevapi\CollectionFind::limit
  • Example#1591 - Пример использования mysql_xdevapi\CollectionFind::lockExclusive
  • Example#1592 - Пример использования mysql_xdevapi\CollectionFind::lockShared
  • Example#1593 - Пример использования mysql_xdevapi\CollectionFind::offset
  • Example#1594 - Пример использования mysql_xdevapi\CollectionFind::sort
  • Example#1595 - Пример использования mysql_xdevapi\CollectionModify::arrayAppend
  • Example#1596 - Пример использования mysql_xdevapi\CollectionModify::arrayInsert
  • Example#1597 - Пример использования mysql_xdevapi\CollectionModify::bind
  • Example#1598 - Пример использования mysql_xdevapi\CollectionModify::__construct
  • Example#1599 - Пример использования mysql_xdevapi\CollectionModify::execute
  • Example#1600 - Пример использования mysql_xdevapi\CollectionModify::limit
  • Example#1601 - Пример использования mysql_xdevapi\CollectionModify::patch
  • Example#1602 - Пример использования mysql_xdevapi\CollectionModify::replace
  • Example#1603 - Пример использования mysql_xdevapi\CollectionModify::set
  • Example#1604 - Пример использования mysql_xdevapi\CollectionModify::skip
  • Example#1605 - Пример использования mysql_xdevapi\CollectionModify::sort
  • Example#1606 - Пример использования mysql_xdevapi\CollectionModify::unset
  • Example#1607 - Пример использования mysql_xdevapi\CollectionRemove::bind
  • Example#1608 - Пример использования mysql_xdevapi\Collection::remove
  • Example#1609 - Пример использования mysql_xdevapi\CollectionRemove::execute
  • Example#1610 - Пример использования mysql_xdevapi\CollectionRemove::limit
  • Example#1611 - Пример использования mysql_xdevapi\CollectionRemove::sort
  • Example#1612 - Пример использования mysql_xdevapi\ColumnResult::__construct
  • Example#1613 - Пример использования mysql_xdevapi\ColumnResult::getCharacterSetName
  • Example#1614 - Пример использования mysql_xdevapi\ColumnResult::getCollationName
  • Example#1615 - Пример использования mysql_xdevapi\ColumnResult::getColumnLabel
  • Example#1616 - Пример использования mysql_xdevapi\ColumnResult::getColumnName
  • Example#1617 - Пример использования mysql_xdevapi\ColumnResult::getFractionalDigits
  • Example#1618 - Пример использования mysql_xdevapi\ColumnResult::getLength
  • Example#1619 - Пример использования mysql_xdevapi\ColumnResult::getSchemaName
  • Example#1620 - Пример использования mysql_xdevapi\ColumnResult::getTableLabel
  • Example#1621 - Пример использования mysql_xdevapi\ColumnResult::getTableName
  • Example#1622 - Пример использования mysql_xdevapi\ColumnResult::getType
  • Example#1623 - Пример использования mysql_xdevapi\ColumnResult::isNumberSigned
  • Example#1624 - Пример использования mysql_xdevapi\ColumnResult::isPadded
  • Example#1625 - Пример использования mysql_xdevapi\CrudOperationBindable::bind
  • Example#1626 - Пример использования mysql_xdevapi\CrudOperationLimitable::limit
  • Example#1627 - Пример использования mysql_xdevapi\CrudOperationSkippable::skip
  • Example#1628 - Пример использования mysql_xdevapi\CrudOperationSortable::sort
  • Example#1629 - Пример использования mysql_xdevapi\DatabaseObject::existsInDatabase
  • Example#1630 - Пример использования mysql_xdevapi\DatabaseObject::getName
  • Example#1631 - Пример использования mysql_xdevapi\DatabaseObject::getSession
  • Example#1632 - Пример использования DocResult
  • Example#1633 - Пример использования mysql_xdevapi\DocResult::fetchAll
  • Example#1634 - Пример использования mysql_xdevapi\DocResult::fetchOne
  • Example#1635 - Пример использования mysql_xdevapi\DocResult::getWarnings
  • Example#1636 - Пример использования mysql_xdevapi\DocResult::getWarningsCount
  • Example#1637 - Примеры использования execute()
  • Example#1638 - Пример использования mysql_xdevapi\ExecutionStatus::__construct
  • Example#1639 - Пример использования mysql_xdevapi\Expression::__construct
  • Example#1640 - Пример использования mysql_xdevapi\Result::__construct
  • Example#1641 - Пример использования mysql_xdevapi\Result::getAffectedItemsCount
  • Example#1642 - Пример использования mysql_xdevapi\Result::getAutoIncrementValue
  • Example#1643 - Пример использования mysql_xdevapi\Result::getGeneratedIds
  • Example#1644 - Пример использования mysql_xdevapi\RowResult::getWarnings
  • Example#1645 - Пример использования mysql_xdevapi\RowResult::getWarningsCount
  • Example#1646 - Пример использования mysql_xdevapi\RowResult::__construct
  • Example#1647 - Пример использования mysql_xdevapi\RowResult::fetchAll
  • Example#1648 - Пример использования mysql_xdevapi\RowResult::fetchOne
  • Example#1649 - Пример использования mysql_xdevapi\RowResult::getColumnsCount
  • Example#1650 - Пример использования mysql_xdevapi\RowResult::getColumnNames
  • Example#1651 - Пример использования mysql_xdevapi\RowResult::getColumns
  • Example#1652 - Пример использования mysql_xdevapi\RowResult::getWarnings
  • Example#1653 - Пример использования mysql_xdevapi\RowResult::getWarningsCount
  • Example#1654 - Пример использования mysql_xdevapi\Schema::__construct
  • Example#1655 - Пример использования mysql_xdevapi\Schema::getCollection
  • Example#1656 - Пример использования Schema::createCollection с параметром validate
  • Example#1657 - Пример использования mysql_xdevapi\Schema::getCollection
  • Example#1658 - Пример использования mysql_xdevapi\Schema::getCollection
  • Example#1659 - Пример использования mysql_xdevapi\Schema::getCollection
  • Example#1660 - Пример использования mysql_xdevapi\Schema::getCollectionAsTable
  • Example#1661 - Пример использования mysql_xdevapi\Schema::getCollections
  • Example#1662 - Пример использования mysql_xdevapi\Schema::getName
  • Example#1663 - Пример использования mysql_xdevapi\Schema::getSession
  • Example#1664 - Пример использования mysql_xdevapi\Schema::getTable
  • Example#1665 - Пример использования mysql_xdevapi\Schema::getTables
  • Example#1666 - Пример использования mysql_xdevapi\Session::getSchema
  • Example#1667 - Пример использования mysql_xdevapi\Session::close
  • Example#1668 - Пример использования mysql_xdevapi\Session::commit
  • Example#1669 - Пример использования mysql_xdevapi\Session::__construct
  • Example#1670 - Пример использования mysql_xdevapi\Session::createSchema
  • Example#1671 - Пример использования mysql_xdevapi\Session::dropSchema
  • Example#1672 - Пример использования mysql_xdevapi\Session::generateUuid
  • Example#1673 - Пример использования mysql_xdevapi\Session::getSchema
  • Example#1674 - Пример использования mysql_xdevapi\Session::getSchema
  • Example#1675 - Пример использования mysql_xdevapi\Session::getSchemas
  • Example#1676 - Пример использования mysql_xdevapi\Session::getServerVersion
  • Example#1677 - Пример использования mysql_xdevapi\Session::listClients
  • Example#1678 - Пример использования mysql_xdevapi\Session::quoteName
  • Example#1679 - Пример использования mysql_xdevapi\Session::releaseSavepoint
  • Example#1680 - Пример использования mysql_xdevapi\Session::rollback
  • Example#1681 - Пример использования mysql_xdevapi\Session::rollbackTo
  • Example#1682 - Пример использования mysql_xdevapi\Session::setSavepoint
  • Example#1683 - Пример использования mysql_xdevapi\Session::sql
  • Example#1684 - Пример использования mysql_xdevapi\Session::startTransaction
  • Example#1685 - Пример использования mysql_xdevapi\SqlStatement::bind
  • Example#1686 - Пример использования mysql_xdevapi\SqlStatement::__construct
  • Example#1687 - Пример использования mysql_xdevapi\SqlStatement::execute
  • Example#1688 - Пример использования mysql_xdevapi\SqlStatement::getNextResult
  • Example#1689 - Пример использования mysql_xdevapi\SqlStatement::getResult
  • Example#1690 - Пример использования mysql_xdevapi\SqlStatement::hasMoreResults
  • Example#1691 - Пример использования mysql_xdevapi\SqlStatementResult::__construct
  • Example#1692 - Пример использования mysql_xdevapi\SqlStatementResult::fetchAll
  • Example#1693 - Пример использования mysql_xdevapi\SqlStatementResult::fetchOne
  • Example#1694 - Пример использования mysql_xdevapi\SqlStatementResult::getAffectedItemsCount
  • Example#1695 - Пример использования mysql_xdevapi\SqlStatementResult::getColumnsCount
  • Example#1696 - Пример использования mysql_xdevapi\SqlStatementResult::getColumnNames
  • Example#1697 - Пример использования mysql_xdevapi\SqlStatementResult::getColumns
  • Example#1698 - Пример использования mysql_xdevapi\SqlStatementResult::getGeneratedIds
  • Example#1699 - Пример использования mysql_xdevapi\SqlStatementResult::getLastInsertId
  • Example#1700 - Пример использования mysql_xdevapi\SqlStatementResult::getWarnings
  • Example#1701 - Пример использования mysql_xdevapi\SqlStatementResult::getWarningsCount
  • Example#1702 - Пример использования mysql_xdevapi\SqlStatementResult::hasData
  • Example#1703 - Пример использования mysql_xdevapi\SqlStatementResult::nextResult
  • Example#1704 - mysql_xdevapi\Statement::__construct example
  • Example#1705 - Пример использования mysql_xdevapi\Statement::getNextResult
  • Example#1706 - Пример использования mysql_xdevapi\Statement::getResult
  • Example#1707 - Пример использования mysql_xdevapi\Statement::hasMoreResults
  • Example#1708 - Пример использования mysql_xdevapi\Table::__construct
  • Example#1709 - Пример использования mysql_xdevapi\Table::count
  • Example#1710 - Пример использования mysql_xdevapi\Table::delete
  • Example#1711 - Пример использования mysql_xdevapi\Table::existsInDatabase
  • Example#1712 - Пример использования mysql_xdevapi\Table::getName
  • Example#1713 - Пример использования mysql_xdevapi\Table::getSchema
  • Example#1714 - Пример использования mysql_xdevapi\Table::getSession
  • Example#1715 - Пример использования mysql_xdevapi\Table::insert
  • Example#1716 - Пример использования mysql_xdevapi\Table::isView
  • Example#1717 - Пример использования mysql_xdevapi\Table::count
  • Example#1718 - Пример использования mysql_xdevapi\Table::update
  • Example#1719 - Пример использования mysql_xdevapi\TableDelete::bind
  • Example#1720 - Пример использования mysql_xdevapi\TableDelete::__construct
  • Example#1721 - Пример использования mysql_xdevapi\TableDelete::execute
  • Example#1722 - Пример использования mysql_xdevapi\TableDelete::limit
  • Example#1723 - Пример использования mysql_xdevapi\TableDelete::orderBy
  • Example#1724 - Пример использования mysql_xdevapi\TableDelete::where
  • Example#1725 - Пример использования mysql_xdevapi\TableInsert::__construct
  • Example#1726 - Пример использования mysql_xdevapi\TableInsert::execute
  • Example#1727 - Пример использования mysql_xdevapi\TableInsert::values
  • Example#1728 - Пример использования mysql_xdevapi\TableSelect::bind
  • Example#1729 - Пример использования mysql_xdevapi\TableSelect::__construct
  • Example#1730 - Пример использования mysql_xdevapi\TableSelect::execute
  • Example#1731 - Пример использования mysql_xdevapi\TableSelect::groupBy
  • Example#1732 - Пример использования mysql_xdevapi\TableSelect::having
  • Example#1733 - Пример использования mysql_xdevapi\TableSelect::limit
  • Example#1734 - Пример использования mysql_xdevapi\TableSelect::lockExclusive
  • Example#1735 - Пример использования mysql_xdevapi\TableSelect::lockShared
  • Example#1736 - Пример использования mysql_xdevapi\TableSelect::offset
  • Example#1737 - Пример использования mysql_xdevapi\TableSelect::orderBy
  • Example#1738 - Пример использования mysql_xdevapi\TableSelect::where
  • Example#1739 - Пример использования mysql_xdevapi\TableUpdate::bind
  • Example#1740 - Пример использования mysql_xdevapi\TableUpdate::__construct
  • Example#1741 - Пример использования mysql_xdevapi\TableUpdate::execute
  • Example#1742 - Пример использования mysql_xdevapi\TableUpdate::limit
  • Example#1743 - Пример использования mysql_xdevapi\TableUpdate::orderby
  • Example#1744 - Пример использования mysql_xdevapi\TableUpdate::set
  • Example#1745 - Пример использования mysql_xdevapi\TableUpdate::where
  • Example#1746 - Пример использования mysql_xdevapi\Warning::__construct
  • Example#1747 - Пример работы с MySQL
  • Example#1748 - Пример использования mysql_affected_rows
  • Example#1749 - Пример использования mysql_affected_rows с транзакциями
  • Example#1750 - Пример использования mysql_client_encoding
  • Example#1751 - Пример использования mysql_close
  • Example#1752 - Пример использования mysql_connect
  • Example#1753 - Пример использования mysql_connect с синтаксисом hostname:port
  • Example#1754 - Пример использования mysql_connect с синтаксисом ":/path/to/socket"
  • Example#1755 - Пример создания базы данных MySQL
  • Example#1756 - Пример использования mysql_data_seek
  • Example#1757 - Пример использования mysql_db_name
  • Example#1758 - Пример использования альтернативы mysql_db_query
  • Example#1759 - Альтернативный пример использования mysql_drop_db
  • Example#1760 - Пример использования mysql_errno
  • Example#1761 - Пример использования mysql_error
  • Example#1762 - Пример использования mysql_escape_string
  • Example#1763 - Запрос с применением псевдонимов для дублирующихся имён колонок
  • Example#1764 - mysql_fetch_array с MYSQL_NUM
  • Example#1765 - mysql_fetch_array с MYSQL_ASSOC
  • Example#1766 - mysql_fetch_array с MYSQL_BOTH
  • Example#1767 - Расширенный пример использования mysql_fetch_assoc
  • Example#1768 - Пример использования mysql_fetch_field
  • Example#1769 - Пример использования mysql_fetch_lengths
  • Example#1770 - Пример использования mysql_fetch_object
  • Example#1771 - Пример использования mysql_fetch_object
  • Example#1772 - Получение одного ряда с помощью mysql_fetch_row
  • Example#1773 - Пример использования mysql_field_flags
  • Example#1774 - Пример использования mysql_field_len
  • Example#1775 - Пример использования mysql_field_name
  • Example#1776 - Пример использования mysql_field_table
  • Example#1777 - Пример использования mysql_field_type
  • Example#1778 - Пример использования mysql_free_result
  • Example#1779 - Пример использования mysql_get_client_info
  • Example#1780 - Пример использования mysql_get_host_info
  • Example#1781 - Пример использования mysql_get_proto_info
  • Example#1782 - Пример использования mysql_get_server_info
  • Example#1783 - Корректные виды запросов MySQL
  • Example#1784 - Пример использования mysql_insert_id
  • Example#1785 - Пример использования mysql_list_dbs
  • Example#1786 - Пример использования mysql_list_fields
  • Example#1787 - Пример использования mysql_list_processes
  • Example#1788 - Пример использования mysql_list_tables
  • Example#1789 - Пример использования mysql_num_fields
  • Example#1790 - Пример использования mysql_num_rows
  • Example#1791 - Пример использования mysql_ping
  • Example#1792 - Неверный запрос
  • Example#1793 - Верный запрос
  • Example#1794 - Простой пример использования mysql_real_escape_string
  • Example#1795 - Пример использования mysql_real_escape_string без наличия соединения
  • Example#1796 - Пример взлома с использованием SQL-инъекции
  • Example#1797 - Пример использования mysql_result
  • Example#1798 - Пример использования mysql_select_db
  • Example#1799 - Пример использования mysql_stat
  • Example#1800 - Альтернативный пример использования mysql_stat
  • Example#1801 - Пример использования mysql_tablename
  • Example#1802 - Пример использования mysql_thread_id
  • Example#1803 - Простой запрос
  • Example#1804 - Вставка с использованием привязанных переменных
  • Example#1805 - Привязка в WHERE выражении запроса
  • Example#1806 - Вставка данных в поле типа CLOB
  • Example#1807 - Использование PL/SQL хранимых процедур
  • Example#1808 - Использование PL/SQL хранимых процедур
  • Example#1809 - Вызов PL/SQL процедур, возвращающих REF CURSOR
  • Example#1810 -
  • Example#1811 - user_oci8_probes.d для трассировки всех статических зондов PHP OCI8 с помощью DTrace на пользовательском уровне
  • Example#1812 - Пример использования oci_bind_array_by_name
  • Example#1813 - Добавление данных с использованием oci_bind_by_name
  • Example#1814 - Одна привязка для многократного использования
  • Example#1815 - Прикрепление в цикле foreach
  • Example#1816 - Прикрепление в выражение WHERE
  • Example#1817 - Прикрепление в выражение LIKE
  • Example#1818 - Прикрепление в выражение REGEXP_LIKE
  • Example#1819 - Прикрепление нескольких значений в выражение IN
  • Example#1820 - Прикрепление ROWID, возвращаемое запросом
  • Example#1821 - OUT-прикрепление ROWID, возвращаемое при INSERT
  • Example#1822 - Прикрепление для хранимой функции PL/SQL
  • Example#1823 - Прикрепление параметров для PL/SQL хранимой процедуры
  • Example#1824 - Прикрепление CLOB-объекта
  • Example#1825 - Прикрепление PL/SQL BOOLEAN
  • Example#1826 - Пример использования oci_client_version
  • Example#1827 - Закрытие соединения
  • Example#1828 - Соединение базы данных не закрывается до тех пор, пока не будут закрыты все ссылки на него
  • Example#1829 - Закрытие соединения, открытого несколько раз
  • Example#1830 - Соединение закрывается при уходе переменных из области видимости
  • Example#1831 - Пример использования oci_commit
  • Example#1832 - Пример использования oci_connect с синтаксисом Easy Connect
  • Example#1833 - Пример использования oci_connect используя имя Network Connect
  • Example#1834 - Пример использования oci_connect с использованием определённого набора символов
  • Example#1835 - Пример использования многократных вызовов oci_connect
  • Example#1836 - Пример использования oci_define_by_name
  • Example#1837 - Пример использования oci_define_by_name с регистрозависимыми именами столбцов
  • Example#1838 - Пример использования oci_define_by_name со столбцами типа LOB
  • Example#1839 - Пример использования oci_define_by_name с приведёнными типами
  • Example#1840 - Вывод сообщения об ошибке Oracle после ошибки соединения
  • Example#1841 - Вывод сообщения об ошибке Oracle после ошибки разбора
  • Example#1842 - Вывод сообщения об ошибке Oracle, ошибочного запроса и позиции ошибки запуска запроса
  • Example#1843 - oci_execute при выполнении запросов
  • Example#1844 - oci_execute без указания определённого режима
  • Example#1845 - oci_execute с OCI_NO_AUTO_COMMIT
  • Example#1846 - oci_execute с различными режимами
  • Example#1847 - oci_execute с OCI_DESCRIBE_ONLY
  • Example#1848 - Пример использования oci_fetch_all
  • Example#1849 - Пример использования oci_fetch_all с OCI_FETCHSTATEMENT_BY_ROW
  • Example#1850 - Пример использования oci_fetch_all с OCI_NUM
  • Example#1851 - oci_fetch_array с OCI_BOTH
  • Example#1852 - oci_fetch_array с OCI_NUM
  • Example#1853 - oci_fetch_array с OCI_ASSOC
  • Example#1854 - oci_fetch_array с OCI_RETURN_NULLS
  • Example#1855 - oci_fetch_array с OCI_RETURN_LOBS
  • Example#1856 - oci_fetch_array с регистрозависимыми названиями полей
  • Example#1857 - oci_fetch_array с полями с одинаковыми названиями
  • Example#1858 - oci_fetch_array с полями DATE
  • Example#1859 - oci_fetch_array с REF CURSOR
  • Example#1860 - Постраничный вывод с помощью oci_fetch_array используя LIMIT-подобный запрос
  • Example#1861 - oci_fetch_array c Oracle Database Implicit Result Sets
  • Example#1862 - Пример использования oci_fetch_assoc
  • Example#1863 - Пример использования oci_fetch_object
  • Example#1864 - Пример использования oci_fetch_object с названиями столбцов в различных регистрах
  • Example#1865 - Пример использования oci_fetch_object с LOB
  • Example#1866 - Пример использования oci_fetch_row
  • Example#1867 - Пример использования oci_fetch с определёнными переменными
  • Example#1868 - Пример использования oci_fetch с oci_result
  • Example#1869 - Пример использования oci_field_name
  • Example#1870 - Пример использования oci_field_name
  • Example#1871 - Пример использования oci_field_precision
  • Example#1872 - oci_field_scale Example
  • Example#1873 - Пример использования oci_field_size
  • Example#1874 - Пример использования oci_field_type_raw
  • Example#1875 - Пример использования oci_field_type
  • Example#1876 - Извлечение неявных результирующих наборов в цикле
  • Example#1877 - Извлечение обработчиков дочерних запросов в индивидуальном порядке
  • Example#1878 - Явное указание величины предвыборки
  • Example#1879 - Пример неявного результирующего набора без использования oci_get_implicit_resultset
  • Example#1880 - Пример использования oci_new_connect
  • Example#1881 - Привязка REF CURSOR в вызове хранимых процедур Oracle
  • Example#1882 - Пример использования oci_new_descriptor
  • Example#1883 - Пример использования oci_new_descriptor
  • Example#1884 - Пример использования oci_num_fields
  • Example#1885 - Пример использования oci_num_rows
  • Example#1886 - Пример использования oci_parse с SQL-запросами
  • Example#1887 - Пример использования oci_parse с PL/SQL-запросами
  • Example#1888 - Пример использования oci_password_change с изменением пароля уже подключённого пользователя
  • Example#1889 - Пример использования oci_password_change с подключением и изменением пароля одновременно
  • Example#1890 - Простой пример для oci_pconnect с использованием упрощённого синтаксиса подключения
  • Example#1891 - Пример использования oci_fetch с oci_result
  • Example#1892 - Пример использования oci_rollback
  • Example#1893 - Пример использования отката до SAVEPOINT
  • Example#1894 - Пример использования oci_server_version
  • Example#1895 - Установка действия
  • Example#1896 - Установка времени ожидания
  • Example#1897 - Установка идентификатора клиента для пользователя
  • Example#1898 - Установка клиентской информации
  • Example#1899 - Установка DBOP
  • Example#1900 - Два скрипта могут использовать различные версии функции myfunc() одновременно
  • Example#1901 - Установка имени модуля
  • Example#1902 - Изменение значения предварительной выборки LOB для запроса
  • Example#1903 - Смена значения предварительной выборки по умолчанию для запроса
  • Example#1904 - Смена значения предварительной выборки по умолчанию для выборки REF CURSOR
  • Example#1905 - Установка значения предварительной выборки при передаче REF CURSOR обратно в Oracle
  • Example#1906 - Пример использования oci_statement_type
  • Example#1907 - Пример работы с модулем PostgreSQL
  • Example#1908 - Пример использования пользовательских функций PostgreSQL
  • Example#1909 - Пример использования pg_affected_rows
  • Example#1910 - Пример использования pg_cancel_query
  • Example#1911 - Пример использования pg_client_encoding
  • Example#1912 - Пример использования pg_close
  • Example#1913 - Использование функции pg_connect
  • Example#1914 - Пример использования pg_connection_busy
  • Example#1915 - Пример использования pg_connection_reset
  • Example#1916 - Пример использования pg_connection_status
  • Example#1917 - Пример использования pg_convert
  • Example#1918 - Пример использования pg_copy_from
  • Example#1919 - Пример использования pg_copy_to
  • Example#1920 - Пример использования pg_dbname
  • Example#1921 - Пример использования pg_delete
  • Example#1922 - Пример использования pg_end_copy
  • Example#1923 - Пример использования pg_escape_bytea
  • Example#1924 - Пример выполнения pg_escape_identifier
  • Example#1925 - Пример использования pg_escape_literal
  • Example#1926 - Пример использования pg_escape_string
  • Example#1927 - Пример использования pg_execute
  • Example#1928 - Пример использования pg_fetch_all_columns
  • Example#1929 - Пример использования
  • Example#1930 - Пример использования pg_fetch_array
  • Example#1931 - Пример использования pg_fetch_assoc
  • Example#1932 - Пример использования pg_fetch_object
  • Example#1933 - Пример использования pg_fetch_result
  • Example#1934 - Пример использования pg_fetch_row
  • Example#1935 - Пример использования pg_field_is_null
  • Example#1936 - Получение информации о полях выборки
  • Example#1937 - Получение информации о полях выборки
  • Example#1938 - Получение информации о полях выборки
  • Example#1939 - Получение информации о полях выборки
  • Example#1940 - Получение информации о поле выборки
  • Example#1941 - Получение информации о полях выборки
  • Example#1942 - Получение информации о поле выборки
  • Example#1943 - Пример использования pg_free_result
  • Example#1944 - Сообщение PostgreSQL NOTIFY
  • Example#1945 - PID сервера PostgreSQL
  • Example#1946 - Пример использования pg_get_result
  • Example#1947 - Пример использования pg_host
  • Example#1948 - Пример использования pg_insert
  • Example#1949 - Пример использования pg_last_error
  • Example#1950 - Пример использования pg_last_notice
  • Example#1951 - Пример использования pg_last_oid
  • Example#1952 - Пример использования pg_lo_close
  • Example#1953 - Пример использования pg_lo_create
  • Example#1954 - Пример использования pg_lo_export
  • Example#1955 - Пример использования pg_lo_import
  • Example#1956 - Пример использования pg_lo_open
  • Example#1957 - Пример использования pg_lo_read_all
  • Example#1958 - Пример использования pg_lo_read
  • Example#1959 - Пример использования pg_lo_seek
  • Example#1960 - Пример использования pg_lo_tell
  • Example#1961 - Пример использования pg_lo_truncate
  • Example#1962 - Пример использования pg_lo_unlink
  • Example#1963 - Пример использования pg_lo_write
  • Example#1964 - Получение метаданных таблицы
  • Example#1965 - Пример использования pg_num_fields
  • Example#1966 - Пример использования pg_num_rows
  • Example#1967 - Пример использования pg_options
  • Example#1968 - Пример использования pg_parameter_status
  • Example#1969 - Пример использования pg_pconnect
  • Example#1970 - Пример использования pg_ping
  • Example#1971 - Пример использования pg_port
  • Example#1972 - Пример использования pg_prepare
  • Example#1973 - Пример использования pg_put_line
  • Example#1974 - Пример использования pg_query_params
  • Example#1975 - Пример использования pg_query
  • Example#1976 - Использование нескольких выражений в pg_query
  • Example#1977 - Пример использования pg_result_error_field
  • Example#1978 - Пример использования pg_result_error
  • Example#1979 - Пример использования pg_result_seek
  • Example#1980 - Пример использования pg_result_status
  • Example#1981 - Пример использования pg_select
  • Example#1982 - Пример использования pg_send_execute
  • Example#1983 - Пример использования pg_send_prepare
  • Example#1984 - Пример использования pg_send_query_params
  • Example#1985 - Пример использования pg_send_query
  • Example#1986 - Пример использования pg_set_client_encoding
  • Example#1987 - pg_set_error_context_visibility example
  • Example#1988 - Пример использования pg_set_error_verbosity
  • Example#1989 - Пример использования pg_trace
  • Example#1990 - Пример использования pg_transaction_status
  • Example#1991 - Пример использования pg_tty
  • Example#1992 - Пример использования pg_unescape_bytea
  • Example#1993 - Пример использования pg_untrace
  • Example#1994 - Пример использования pg_update
  • Example#1995 - Пример использования pg_version
  • Example#1996 - Создание резервной копии существующей базы
  • Example#1997 - Пример использования SQLite3::changes
  • Example#1998 - Пример использования SQLite3::close
  • Example#1999 - Пример использования SQLite3::__construct
  • Example#2000 - Пример агрегирующей функции max_length
  • Example#2001 - Пример использования SQLite3::createCollation
  • Example#2002 - Пример использования SQLite3::createFunction
  • Example#2003 - Пример использования SQLite3::enableExceptions
  • Example#2004 - Пример использования SQLite3::exec
  • Example#2005 - Пример использования SQLite3::loadExtension
  • Example#2006 - Пример использования SQLite3::open
  • Example#2007 - Пример использования SQLite3::openBlob
  • Example#2008 - Пошаговая запись BLOB
  • Example#2009 - Пример использования SQLite3::prepare
  • Example#2010 - Пример использования SQLite3::query
  • Example#2011 - Пример использования SQLite3::querySingle
  • Example#2012 - Пример использования SQLite3::setAuthorizer
  • Example#2013 - Пример использования SQLite3::version
  • Example#2014 - Пример использования SQLite3Stmt::bindParam
  • Example#2015 - Пример использования SQLite3Stmt::bindValue
  • Example#2016 - Получение расширенного SQL-запроса
  • Example#2017 - Пример использования sqlsrv_begin_transaction
  • Example#2018 - Пример использования sqlsrv_cancel
  • Example#2019 - Пример использования sqlsrv_client_info
  • Example#2020 - Пример использования sqlsrv_close
  • Example#2021 - Пример использования sqlsrv_commit
  • Example#2022 - Подключение с использованием проверки подлинности Windows.
  • Example#2023 - Подключение с использованием имени пользователя и пароля.
  • Example#2024 - Подключение с использованием порта.
  • Example#2025 - Пример использования functionname
  • Example#2026 - Пример использования sqlsrv_execute
  • Example#2027 - Получение ассоциативного массива.
  • Example#2028 - Получение числового массива.
  • Example#2029 - Пример использования sqlsrv_fetch_object
  • Example#2030 - Пример использования sqlsrv_fetch
  • Example#2031 - Пример использования sqlsrv_field_metadata
  • Example#2032 - Пример использования sqlsrv_free_stmt
  • Example#2033 - Пример использования sqlsrv_get_field
  • Example#2034 - Пример использования sqlsrv_has_rows
  • Example#2035 - Пример использования sqlsrv_next_result
  • Example#2036 - Пример использования sqlsrv_num_fields
  • Example#2037 - Пример использования sqlsrv_num_rows
  • Example#2038 - Пример использования sqlsrv_prepare
  • Example#2039 - Пример использования sqlsrv_query
  • Example#2040 - Пример использования sqlsrv_rollback
  • Example#2041 - Пример использования sqlsrv_rows_affected
  • Example#2042 - Пример использования sqlsrv_send_stream_data
  • Example#2043 - Пример использования sqlsrv_server_info
  • Example#2044 - Пример использования cal_days_in_month
  • Example#2045 - Пример использования cal_from_jd
  • Example#2046 - Пример cal_info
  • Example#2047 - Пример использования easter_date
  • Example#2048 - Пример использования easter_date с объектом класса DateTime
  • Example#2049 - Пример использования easter_days
  • Example#2050 - Календарные функции
  • Example#2051 - Поведение при переполнении
  • Example#2052 - Пример использования jdtojewish
  • Example#2053 - DateTimeImmutable::add/sub добавляет интервалы, охватывающие прошедшее время
  • Example#2054 - DateTimeImmutable::modify и strtotime увеличит или уменьшит значения индивидуальных компонентов
  • Example#2055 - Добавление или вычитание времени может уменьшить или увеличить дату
  • Example#2056 - Создание изменяемого объекта
  • Example#2057 - Пример использования
  • Example#2058 - Пример использования DateTime::modify
  • Example#2059 - Будьте осторожны при добавлении и вычитании месяцев
  • Example#2060 - Поддерживаются все форматы даты и времени
  • Example#2061 - Пример использования DateTime::setTimeZone
  • Example#2062 - Пример использования DateTimeImmutable::add
  • Example#2063 - Дополнительный пример использования DateTimeImmutable::add
  • Example#2064 - Будьте осторожны при добавлении месяцев
  • Example#2065 - Пример использования DateTimeImmutable::__construct
  • Example#2066 - Тонкости DateTimeImmutable::__construct
  • Example#2067 - Изменение связанного часового пояса
  • Example#2068 - Использование относительной строки даты/времени
  • Example#2069 - Пример использования DateTimeImmutable::createFromFormat
  • Example#2070 - Использование предопределённых констант формата с помощью DateTimeImmutable::createFromFormat
  • Example#2071 - Тонкости DateTimeImmutable::createFromFormat
  • Example#2072 - Форматирование строки с помощью литеральных символов
  • Example#2073 - Поведение при переполнении
  • Example#2074 - Поведение имени переполненного дня
  • Example#2075 - Обнаружение переполнения дат
  • Example#2076 - Жадное поведение при разборе
  • Example#2077 - Создание иммутабельного объекта даты и времени
  • Example#2078 - Создание неизменяемого объекта даты/времени
  • Example#2079 - Пример использования DateTimeImmutable::getLastErrors
  • Example#2080 - Пример использования DateTimeImmutable::modify
  • Example#2081 - Будьте осторожны при сложении или вычитании месяцев
  • Example#2082 - Пример использования DateTimeImmutable::setDate
  • Example#2083 - Значения, выходящие за пределы диапазона, добавляются к своим родительским значениям
  • Example#2084 - Пример использования DateTimeImmutable::setISODate
  • Example#2085 - Значения, выходящие за пределы диапазона, добавляются к своим родительским значениям
  • Example#2086 - Поиск месяца, в котором находится неделя
  • Example#2087 - Пример использования DateTimeImmutable::setTime
  • Example#2088 - Значения, выходящие за пределы диапазона, добавляются к своим родительским значениям
  • Example#2089 - Пример использования DateTimeImmutable::setTimestamp
  • Example#2090 - Пример использования DateTimeImmutable::setTimeZone
  • Example#2091 - Пример использования DateTimeImmutable::sub
  • Example#2092 - Дополнительный пример DateTimeImmutable::sub
  • Example#2093 - Будьте осторожны при вычитании месяцев
  • Example#2094 - Пример использования метода DateTimeInterface::diff с диапазоном дат
  • Example#2095 - Пример использования DateTimeImmutable::diff
  • Example#2096 - Пример использования DateTimeInterface::diff во время перехода на летнее время
  • Example#2097 - Сравнение объектов DateTime
  • Example#2098 - Пример использования DateTimeInterface::format
  • Example#2099 - Больше примеров
  • Example#2100 - Экранирование символов во время форматирования
  • Example#2101 - Пример использования DateTime::getOffset
  • Example#2102 - Пример использования DateTime::getTimestamp
  • Example#2103 - Получение метки времени с милли- и микросекундами
  • Example#2104 - Пример использования DateTime::getTimezone
  • Example#2105 - Создание и присоединение DateTimeZone к DateTimeImmutable
  • Example#2106 - Перехват ошибок при создании экземпляра DateTimeZone
  • Example#2107 - Пример использования DateTimeZone::getLocation
  • Example#2108 - Пример использования DateTimeZone::getOffset
  • Example#2109 - Пример использования timezone_transitions_get
  • Example#2110 - Пример использования timezone_transitions_get с заданным параметром timestampBegin
  • Example#2111 - Пример использования timezone_abbreviations_list
  • Example#2112 - Пример использования DateTimeZone::listIdentifiers
  • Example#2113 - Перечисление идентификаторов для конкретного региона
  • Example#2114 - Перечисление идентификаторов для нескольких регионов
  • Example#2115 - Перечисление идентификаторов для одной страны
  • Example#2116 - Пример создания и использования объектов DateInterval
  • Example#2117 - Пример использования DateInterval
  • Example#2118 - Анализ и разбор временных интервалов
  • Example#2119 - Разбор комбинаций и отрицательных интервалов
  • Example#2120 - Разбор специальных относительных временных интервалов
  • Example#2121 - Пример использования DateInterval
  • Example#2122 - DateInterval и перенос единиц
  • Example#2123 - DateInterval и DateTime::diff с модификаторами %a и %d
  • Example#2124 -
  • Example#2125 - Пример использования DatePeriod
  • Example#2126 - Пример использования DatePeriod с DatePeriod::EXCLUDE_START_DATE
  • Example#2127 - Пример использования DatePeriod, показывающий все последние четверги в году
  • Example#2128 - DatePeriod::createFromISO8601String example
  • Example#2129 - Пример использования DatePeriod::getDateInterval
  • Example#2130 - Пример использования DatePeriod::getEndDate
  • Example#2131 - Пример использования DatePeriod::getEndDate без даты окончания
  • Example#2132 - Различные значения для DatePeriod::getRecurrences
  • Example#2133 - Пример использования DatePeriod::getStartDate
  • Example#2134 - Пример использования функции checkdate
  • Example#2135 - Получение часового пояса по умолчанию
  • Example#2136 - Получение аббревиатуры часового пояса
  • Example#2137 - Получение часового пояса по умолчанию
  • Example#2138 - Пример использования date_parse_from_format
  • Example#2139 - Пример использования date_parse_from_format с предупреждениями
  • Example#2140 - Пример использования date_parse_from_format с ошибками
  • Example#2141 - Пример использования функции date_parse с полной строкой datetime
  • Example#2142 - Пример использования date_parse с информацией об аббревиатуре часового пояса
  • Example#2143 - Пример использования date_parse с информацией об идентификаторе часового пояса
  • Example#2144 - Пример использования date_parse с минимальной строкой
  • Example#2145 - Пример использования date_parse с относительными форматами
  • Example#2146 - Пример использования date_parse с побочными эффектами
  • Example#2147 - Пример использования date_sun_info
  • Example#2148 - Полярная ночь с некоторой обработкой
  • Example#2149 - Полуночное солнце (Тромсё, Норвегия)
  • Example#2150 - Вычисление продолжительности дня (Киев)
  • Example#2151 - Пример использования date_sunrise
  • Example#2152 - Нет восхода солнца
  • Example#2153 - Пример использования date_sunset
  • Example#2154 - Нет заката
  • Example#2155 - Примеры использования функции date
  • Example#2156 - Экранирование символов в функции date
  • Example#2157 - Пример совместного использования функций date и mktime
  • Example#2158 - Форматирование с использованием date
  • Example#2159 - Пример использования функции getdate
  • Example#2160 - Пример использования функции gettimeofday
  • Example#2161 - Пример использования gmdate
  • Example#2162 - Базовый пример использования gmmktime
  • Example#2163 - Пример использования функции gmstrftime
  • Example#2164 - Пример использования idate
  • Example#2165 - Пример использования localtime
  • Example#2166 - Замер времени выполнения скрипта
  • Example#2167 - Пример использования microtime и REQUEST_TIME_FLOAT
  • Example#2168 - Пример использования функции mktime
  • Example#2169 - Пример использования mktime
  • Example#2170 - Последний день месяца
  • Example#2171 - Пример использования функции strftime с разными локалями
  • Example#2172 - Пример номеров недели по ISO 8601:1988
  • Example#2173 - Кроссплатформенный пример использования модификатора %e
  • Example#2174 - Показываем все известные и неизвестные форматы.
  • Example#2175 - Пример использования strptime
  • Example#2176 - Пример использования функции strtotime
  • Example#2177 - Проверка ошибок
  • Example#2178 - Пример использования time
  • Example#2179 - Пример использования timezone_name_from_abbr
  • Example#2180 - Определение версии базы данных часовых поясов
  • Example#2181 -
  • Example#2182 -
  • Example#2183 - Замеряем время исполнения нескольких блоков кода
  • Example#2184 - Закрытие файлового дескриптора
  • Example#2185 - Установка и снятие блокировки
  • Example#2186 - Открытие файлового дескриптора
  • Example#2187 - Позиционирование внутри файла
  • Example#2188 - Установка скорости передачи для последовательного порта
  • Example#2189 - Пример использования chdir
  • Example#2190 - Пример использования chroot
  • Example#2191 - Пример использования closedir
  • Example#2192 - Пример использования dir
  • Example#2193 - Пример использования getcwd
  • Example#2194 - Пример использования функции opendir
  • Example#2195 - Вывести список всех элементов каталога
  • Example#2196 - Получить список элементов в текущем каталоге и отбросить элементы с именами . и ..
  • Example#2197 - Простой пример использования функции scandir
  • Example#2198 - Пример finfo_buffer
  • Example#2199 - Пример использования finfo_file
  • Example#2200 - Объектно-ориентированный стиль
  • Example#2201 - Процедурный стиль
  • Example#2202 - Пример mime_content_type
  • Example#2203 - Пример использования функции basename
  • Example#2204 - Изменение группы файла
  • Example#2205 - Пример простого использования chown
  • Example#2206 - Пример использования clearstatcache
  • Example#2207 - Пример использования функции copy
  • Example#2208 - Пример использования функции dirname
  • Example#2209 - Пример использования функции disk_free_space
  • Example#2210 - Пример использования disk_total_space
  • Example#2211 - Простой пример использования функции fclose
  • Example#2212 - Пример использования fdatasync
  • Example#2213 - Обработка времени ожидания с функцией feof
  • Example#2214 - Пример feof с неверным файловым указателем
  • Example#2215 - Пример записи файла с помощью fflush
  • Example#2216 - Пример использования функции fgetc
  • Example#2217 - Чтение и вывод на экран содержимого CSV-файла
  • Example#2218 - Построчное чтение файла
  • Example#2219 - Построчное чтение PHP-файла
  • Example#2220 - Проверка существования файла
  • Example#2221 - Получить и вывести исходный код домашней страницы сайта
  • Example#2222 - Поиск файлов в include_path
  • Example#2223 - Чтение секции файла
  • Example#2224 - Использование потоковых контекстов
  • Example#2225 - Пример простого использования
  • Example#2226 - Использование флагов
  • Example#2227 - Пример использования file
  • Example#2228 - Пример использования функции fileatime
  • Example#2229 - Пример использования функции filectime
  • Example#2230 - Поиск группы файла
  • Example#2231 - Сравнение индексного дескриптора файла с текущим файлом
  • Example#2232 - Пример использования функции filemtime
  • Example#2233 - Находим владельца файла
  • Example#2234 - Отображение прав доступа в виде восьмеричного числа
  • Example#2235 - Отображение полных прав доступа
  • Example#2236 - Пример использования функции filesize
  • Example#2237 - Пример использования функции filetype
  • Example#2238 - Пример использования функции flock
  • Example#2239 - Использование flock с параметром LOCK_NB
  • Example#2240 - Проверяет соответствие цвета шаблону подстановки
  • Example#2241 - Примеры использования fopen
  • Example#2242 - Использование fpassthru с бинарными файлами
  • Example#2243 - Пример использования fputcsv
  • Example#2244 - Простой пример использования fread
  • Example#2245 - Пример бинарного чтения с помощью fread
  • Example#2246 - Примеры удалённого чтения с помощью fread
  • Example#2247 - Пример использования функции fscanf
  • Example#2248 - Содержимое файла users.txt
  • Example#2249 - Пример использования функции fseek
  • Example#2250 - Пример использования функции fstat
  • Example#2251 - Пример использования fsync
  • Example#2252 - Пример использования функции ftell
  • Example#2253 - Пример обрезания файла
  • Example#2254 - Простой пример использования fwrite
  • Example#2255 - Удобный способ, как при помощи glob можно заменить opendir и её аналоги.
  • Example#2256 - Пример использования функции is_dir
  • Example#2257 - Пример использования функции is_executable
  • Example#2258 - Пример использования is_file
  • Example#2259 - Создаём файл и подтверждаем, что он является символической ссылкой
  • Example#2260 - is_readable example
  • Example#2261 - Пример использования функции is_uploaded_file
  • Example#2262 - Пример использования is_writable
  • Example#2263 - Пример изменения группы символической ссылки
  • Example#2264 - Изменение владельца символической ссылки
  • Example#2265 - Создание простой жёсткой ссылки
  • Example#2266 - Пример использования функции linkinfo
  • Example#2267 - Сравнение функций stat и lstat
  • Example#2268 - Пример использования функции mkdir
  • Example#2269 - Использование mkdir с параметром recursive
  • Example#2270 - Загрузка нескольких файлов
  • Example#2271 - Содержимое sample.ini
  • Example#2272 - Пример использования функции parse_ini_file
  • Example#2273 - Обработка файла php.ini функцией parse_ini_file
  • Example#2274 - Интерполяция значений
  • Example#2275 - Экранирование символов
  • Example#2276 - Пример использования функции pathinfo
  • Example#2277 - Пример с pathinfo, показывающий разницу между null и отсутствием расширения
  • Example#2278 - Пример pathinfo для файла, начинающегося с точки
  • Example#2279 - Пример использования pathinfo с разыменованием массива
  • Example#2280 - Пример использования pclose
  • Example#2281 - Пример использования функции popen
  • Example#2282 - Пример использования функции popen
  • Example#2283 - Принудительная загрузка с помощью readfile
  • Example#2284 - Пример использования функции readlink
  • Example#2285 - Пример использования realpath_cache_get
  • Example#2286 - Пример использования realpath_cache_size
  • Example#2287 - Пример использования функции realpath
  • Example#2288 - realpath на Windows
  • Example#2289 - Пример использования функции rename
  • Example#2290 - Пример перезаписи rewind
  • Example#2291 - Пример использования rmdir
  • Example#2292 - Пример использования stat
  • Example#2293 - Использование информации из stat вместе с touch
  • Example#2294 - Создание символической ссылки
  • Example#2295 - Пример использования функции tempnam
  • Example#2296 - Пример использования функции tmpfile
  • Example#2297 - Пример использования функции touch
  • Example#2298 - Использование touch с параметром mtime
  • Example#2299 - Пример использования umask
  • Example#2300 - Пример простого использования unlink
  • Example#2301 - Пример использования inotify
  • Example#2302 - Проверить, подписан ли файл системным администратором
  • Example#2303 - Вывести имена всех расширенных атрибутов файла
  • Example#2304 - Удалить все расширенные атрибуты файла
  • Example#2305 - Установить расширенные атрибуты .wav файла
  • Example#2306 - xattr_supported example
  • Example#2307 - Пример использования xdiff_file_bdiff_size
  • Example#2308 - Пример использования xdiff_file_bdiff
  • Example#2309 - Пример использования xdiff_file_bpatch
  • Example#2310 - Апмсер использования xdiff_file_diff_binary
  • Example#2311 - Пример использования xdiff_file_diff
  • Example#2312 - Пример использования xdiff_file_merge3
  • Example#2313 - Пример использования xdiff_file_patch_binary
  • Example#2314 - Пример использования xdiff_file_patch
  • Example#2315 - Patch reversing example
  • Example#2316 - Пример использования xdiff_file_rabdiff
  • Example#2317 - Пример использования xdiff_string_bdiff_size
  • Example#2318 - Пример использования xdiff_string_diff
  • Example#2319 - Пример использования xdiff_string_patch
  • Example#2320 - Пример использования Enchant
  • Example#2321 - Список бэкендов предоставляемых конкретным брокером
  • Example#2322 - Пример использования enchant_broker_dict_exists
  • Example#2323 - Список всех доступных на брокере словарей
  • Example#2324 - Пример использования enchant_broker_request_dict
  • Example#2325 - Добавление слова в PWL
  • Example#2326 - Пример использования enchant_dict_describe
  • Example#2327 - Пример использования enchant_dict_quick_check
  • Example#2328 - Пример использования enchant_dict_suggest
  • Example#2329 - Пример использования.
  • Example#2330 - Пример использования Gender\Gender::country
  • Example#2331 - Пример использования bindtextdomain
  • Example#2332 - gettext-check
  • Example#2333 - Пример использования ngettext
  • Example#2334 - Пример использования iconv_get_encoding
  • Example#2335 - Пример использования iconv_mime_decode_headers
  • Example#2336 - Пример использования iconv_mime_decode
  • Example#2337 - Пример использования iconv_mime_encode
  • Example#2338 - Пример использования iconv_set_encoding
  • Example#2339 - Пример использования iconv
  • Example#2340 - Пример использования ob_iconv_handler
  • Example#2341 - Пример использования процедурного API
  • Example#2342 - Пример использования объектно-ориентированного API
  • Example#2343 - Правила FRENCH_COLLATION
  • Example#2344 - ALTERNATE_HANDLING rules
  • Example#2345 - Правила CASE_FIRST
  • Example#2346 - CASE_LEVEL rules
  • Example#2347 - Пример использования collator_asort
  • Example#2348 - Пример использования collator_compare
  • Example#2349 - Сравнение строк без диакритических знаков и без учёта регистра
  • Example#2350 - Пример использования Collator::__construct
  • Example#2351 - Пример использования collator_create
  • Example#2352 - Пример использования collator_get_attribute
  • Example#2353 - Пример использования collator_get_error_code
  • Example#2354 - Пример использования collator_get_error_message
  • Example#2355 - collator_get_locale example
  • Example#2356 - Пример использования collator_get_sort_key
  • Example#2357 - Пример использования collator_get_strength
  • Example#2358 - Пример использования collator_set_attribute
  • Example#2359 - Пример использования collator_set_strength
  • Example#2360 - Пример использования collator_sort_with_sort_keys
  • Example#2361 - Пример использования collator_sort
  • Example#2362 - Пример использования numfmt_create
  • Example#2363 - Пример использования NumberFormatter::create
  • Example#2364 - Пример использования numfmt_format_currency
  • Example#2365 - Пример использования в объектно-ориентированном стиле
  • Example#2366 - Пример использования numfmt_format
  • Example#2367 - Пример использования в объектно-ориентированном стиле
  • Example#2368 - Пример использования numfmt_get_attribute
  • Example#2369 - Пример использования в объектно-ориентированном стиле
  • Example#2370 - Пример использования numfmt_get_error_code
  • Example#2371 - Пример использования в объектно-ориентированном стиле
  • Example#2372 - Пример использования numfmt_get_error_message
  • Example#2373 - Пример использования в объектно-ориентированном стиле
  • Example#2374 - Пример использования numfmt_get_locale
  • Example#2375 - Пример использования numfmt_get_pattern
  • Example#2376 - Пример использования в объектно-ориентированном стиле
  • Example#2377 - Пример использования numfmt_get_symbol
  • Example#2378 - Пример использования в объектно-ориентированном стиле
  • Example#2379 - Пример использования numfmt_get_text_attribute
  • Example#2380 - Пример использования в объектно-ориентированном стиле
  • Example#2381 - Пример использования numfmt_parse_currency
  • Example#2382 - Пример использования в объектно-ориентированном стиле
  • Example#2383 - Пример использования numfmt_parse
  • Example#2384 - Пример использования в объектно-ориентированном стиле
  • Example#2385 - Пример использования numfmt_set_attribute
  • Example#2386 - Пример использования в объектно-ориентированном стиле
  • Example#2387 - Пример использования numfmt_set_pattern
  • Example#2388 - Пример использования в объектно-ориентированном стиле
  • Example#2389 - Пример использования numfmt_set_symbol
  • Example#2390 - Пример использования в объектно-ориентированном стиле
  • Example#2391 - Пример использования numfmt_set_text_attribute
  • Example#2392 - Пример использования в объектно-ориентированном стиле
  • Example#2393 - Пример использования locale_accept_from_http
  • Example#2394 - Пример использования в объектно-ориентированном стиле
  • Example#2395 - Пример использования locale_compose
  • Example#2396 - Пример использования в объектно-ориентированном стиле
  • Example#2397 - Пределы подтегов
  • Example#2398 - Пример использования locale_filter_matches
  • Example#2399 - Пример использования в объектно-ориентированном стиле
  • Example#2400 - Пример использования locale_get_all_variants
  • Example#2401 - Пример использования в объектно-ориентированном стиле
  • Example#2402 - Пример использования locale_get_default
  • Example#2403 - Пример использования в объектно-ориентированном стиле
  • Example#2404 - Пример использования locale_get_display_language
  • Example#2405 - Пример использования в объектно-ориентированном стиле
  • Example#2406 - Пример использования locale_get_display_name
  • Example#2407 - Пример использования в объектно-ориентированном стиле
  • Example#2408 - Пример использования locale_get_display_region
  • Example#2409 - Пример использования в объектно-ориентированном стиле
  • Example#2410 - Пример использования locale_get_display_script
  • Example#2411 - Пример использования в объектно-ориентированном стиле
  • Example#2412 - Пример использования locale_get_display_variant
  • Example#2413 - Пример использования в объектно-ориентированном стиле
  • Example#2414 - Пример использования locale_get_keywords
  • Example#2415 - Пример использования в объектно-ориентированном стиле
  • Example#2416 - Пример использования locale_get_primary_language
  • Example#2417 - Пример использования в объектно-ориентированном стиле
  • Example#2418 - Пример использования locale_get_region
  • Example#2419 - Пример использования в объектно-ориентированном стиле
  • Example#2420 - Пример использования locale_get_script
  • Example#2421 - Пример использования в объектно-ориентированном стиле
  • Example#2422 - Пример использования locale_lookup
  • Example#2423 - Пример использования в объектно-ориентированном стиле
  • Example#2424 - Пример использования locale_parse
  • Example#2425 - Пример использования в объектно-ориентированном стиле
  • Example#2426 - Пример использования locale_set_default
  • Example#2427 - Пример использования в объектно-ориентированном стиле
  • Example#2428 - Пример использования Normalizer::getRawDecomposition
  • Example#2429 - Пример использования normalizer_is_normalized
  • Example#2430 - Пример в объектно-ориентированном стиле
  • Example#2431 - Пример использования normalizer_normalize
  • Example#2432 - Пример в объектно-ориентированном стиле
  • Example#2433 - Пример использования msgfmt_create
  • Example#2434 - Пример использования в объектно-ориентированном стиле
  • Example#2435 - Пример использования msgfmt_format_message
  • Example#2436 - Пример использования в объектно-ориентированном стиле
  • Example#2437 - Пример использования ICU для форматирования валюты с общим и с узким символом валюты
  • Example#2438 - Пример использования msgfmt_format
  • Example#2439 - Пример использования в объектно-ориентированном стиле
  • Example#2440 - Пример использования msgfmt_get_error_message
  • Example#2441 - Пример использования в объектно-ориентированном стиле
  • Example#2442 - Пример использования msgfmt_get_locale
  • Example#2443 - Пример использования в объектно-ориентированном стиле
  • Example#2444 - Пример использования msgfmt_get_pattern
  • Example#2445 - Пример использования в объектно-ориентированном стиле
  • Example#2446 - Пример использования msgfmt_parse_message
  • Example#2447 - Пример использования в объектно-ориентированном стиле
  • Example#2448 - Пример использования msgfmt_parse
  • Example#2449 - Пример использования в объектно-ориентированном стиле
  • Example#2450 - Пример использования msgfmt_set_pattern
  • Example#2451 - Пример использования в объектно-ориентированном стиле
  • Example#2452 - Пример использования IntlCalendar::add
  • Example#2453 - Пример использования IntlCalendar::after
  • Example#2454 - Пример использования IntlCalendar::clear
  • Example#2455 - Пример использования IntlCalendar::createInstance
  • Example#2456 - Пример использования IntlCalendar::equals
  • Example#2457 - Пример использования IntlCalendar::fieldDifference
  • Example#2458 - Пример использования IntlCalendar::fromDateTime
  • Example#2459 - Пример использования IntlCalendar::get
  • Example#2460 - Пример использования IntlCalendar::getActualMaximum
  • Example#2461 - Пример использования IntlCalendar::getAvailableLocales
  • Example#2462 - Пример использования IntlCalendar::getDayOfWeekType
  • Example#2463 - Пример использования IntlCalendar::getErrorCode и IntlCalendar::getErrorMessage
  • Example#2464 - Пример использования IntlCalendar::getErrorMessage
  • Example#2465 - Пример использования IntlCalendar::getFirstDayOfWeek
  • Example#2466 - Пример использования IntlCalendar::getKeyworkValuesForLocale
  • Example#2467 - Пример максимального значения
  • Example#2468 - Пример использования IntlCalendar::getLocale
  • Example#2469 - Пример использования IntlCalendar::getMinimalDaysInFirstWeek
  • Example#2470 - Пример использования IntlCalendar::getNow
  • Example#2471 - Пример использования IntlCalendar::getRepeatedWallTimeOption
  • Example#2472 - Пример использования IntlCalendar::getSkippedWallTimeOption
  • Example#2473 - Пример использования IntlCalendar::getTime
  • Example#2474 - Пример использования IntlCalendar::getTimeZone
  • Example#2475 - Пример использования IntlCalendar::getType
  • Example#2476 - Пример использования IntlCalendar::inDaylightTime
  • Example#2477 - Пример использования IntlCalendar::isEquivalentTo
  • Example#2478 - Пример использования IntlCalendar::isLenient
  • Example#2479 - Пример использования IntlCalendar::isWeekend
  • Example#2480 - Пример использования IntlCalendar::roll
  • Example#2481 - Пример использования IntlCalendar::set
  • Example#2482 - IntlCalendar::setDate example
  • Example#2483 - IntlCalendar::setDateTime example
  • Example#2484 - Пример использования IntlCalendar::setFirstDayOfWeek
  • Example#2485 - Пример использования IntlCalendar::setTime
  • Example#2486 - Пример использования IntlCalendar::setTimeZone
  • Example#2487 - Пример использования IntlCalendar::toDateTime
  • Example#2488 - IntlGregorianCalendar::createFromDate example
  • Example#2489 - IntlCalendar::setDateTime example
  • Example#2490 - Пример использования datefmt_create
  • Example#2491 - OO example
  • Example#2492 - Пример использования datefmt_format
  • Example#2493 - Пример использования в объектно-ориентированном стиле
  • Example#2494 - Пример использования с объектом IntlCalendar
  • Example#2495 - Пример использования IntlDateFormatter::formatObject
  • Example#2496 - Пример использования datefmt_get_calendar
  • Example#2497 - Пример использования в объектно-ориентированном стиле
  • Example#2498 - Пример использования datefmt_get_datetype
  • Example#2499 - Пример использования в объектно-ориентированном стиле
  • Example#2500 - Пример использования datefmt_get_error_code
  • Example#2501 - Пример использования в объектно-ориентированном стиле
  • Example#2502 - Пример использования datefmt_get_error_message
  • Example#2503 - Пример использования в объектно-ориентированном стиле
  • Example#2504 - Пример использования datefmt_get_locale
  • Example#2505 - Пример использования в объектно-ориентированном стиле
  • Example#2506 - Пример использования datefmt_get_pattern
  • Example#2507 - Пример использования в объектно-ориентированном стиле
  • Example#2508 - Пример использования datefmt_get_timetype
  • Example#2509 - Пример использования в объектно-ориентированном стиле
  • Example#2510 - Пример использования datefmt_get_timezone_id
  • Example#2511 - Пример использования в объектно-ориентированном стиле
  • Example#2512 - Пример использования IntlDateFormatter::getCalendarObject
  • Example#2513 - Пример использования IntlDateFormatter::getTimeZone
  • Example#2514 - Пример использования datefmt_is_lenient
  • Example#2515 - Пример использования в объектно-ориентированном стиле
  • Example#2516 - Пример использования datefmt_localtime
  • Example#2517 - OO example
  • Example#2518 - Пример использования в объектно-ориентированном стиле
  • Example#2519 - Пример использования datefmt_parse
  • Example#2520 - Пример использования datefmt_set_calendar
  • Example#2521 - Пример использования в объектно-ориентированном стиле
  • Example#2522 - Пример использования IntlCalendar с параметром
  • Example#2523 - Пример использования datefmt_set_lenient
  • Example#2524 - Пример использования в объектно-ориентированном стиле
  • Example#2525 - Пример использования datefmt_set_pattern
  • Example#2526 - Пример использования в объектно-ориентированном стиле
  • Example#2527 - Пример использования IntlDateFormatter::setTimeZone
  • Example#2528 - Пример использования resourcebundle_count
  • Example#2529 - Пример в объектно-ориентированном стиле
  • Example#2530 - Пример использования resourcebundle_create
  • Example#2531 - Пример использования ResourceBundle::create
  • Example#2532 - Пример использования resourcebundle_get_error_code
  • Example#2533 - Пример в объектно-ориентированном стиле
  • Example#2534 - Пример использования resourcebundle_get_error_message
  • Example#2535 - Пример в объектно-ориентированном стиле
  • Example#2536 - Пример использования resourcebundle_get
  • Example#2537 - Пример в объектно-ориентированном стиле
  • Example#2538 - Пример использования resourcebundle_locales
  • Example#2539 - Пример в объектно-ориентированном стиле
  • Example#2540 - Пример использования Spoofchecker::areConfusable
  • Example#2541 - Пример использования Spoofchecker::isSuspicious
  • Example#2542 - Получение зарегистрированных идентификаторов транслитератора
  • Example#2543 - Конвертация экранированной UTF-16 строки
  • Example#2544 - Пример использования IntlDatePatternGenerator::getBestPattern
  • Example#2545 - Преобразование из UTF-8 в UTF-16 и обратно
  • Example#2546 - Недопустимые символы во входной строке
  • Example#2547 - Символы, которые не могут быть закодированы
  • Example#2548 - Пример использования grapheme_extract
  • Example#2549 - Пример использования grapheme_stripos
  • Example#2550 - Пример использования grapheme_stristr
  • Example#2551 - Пример использования grapheme_strlen
  • Example#2552 - Пример использования grapheme_strpos
  • Example#2553 - Пример использования grapheme_strripos
  • Example#2554 - Пример использования grapheme_strrpos
  • Example#2555 - Пример использования grapheme_strstr
  • Example#2556 - Пример использования grapheme_substr
  • Example#2557 - Пример использования idn_to_ascii
  • Example#2558 - Пример использования idn_to_utf8
  • Example#2559 - Тестирование различных способов задания
  • Example#2560 - Тестирование различных способов задания
  • Example#2561 - Тестирование различных способов задания
  • Example#2562 - Тестирование различных способов задания
  • Example#2563 - Тестирование различных способов задания
  • Example#2564 - Тестирование различных способов задания
  • Example#2565 - Тестирование различных способов задания
  • Example#2566 - Тестирование различных способов задания
  • Example#2567 - Тестирование различных способов задания
  • Example#2568 - Перечисления диапазона символов
  • Example#2569 - Перечисление диапазонов категорий символов
  • Example#2570 - Тестирование различных способов задания
  • Example#2571 - Тестирование различных способов задания
  • Example#2572 - Тестирование различных способов задания
  • Example#2573 - Тестирование различных способов задания
  • Example#2574 - Тестирование различных способов задания
  • Example#2575 - Тестирование различных свойств
  • Example#2576 - Тестирование различных свойств
  • Example#2577 - Тестирование различных свойств
  • Example#2578 - Тестирование различных способов задания
  • Example#2579 - Тестирование различных свойств
  • Example#2580 - Тестирование различных свойств
  • Example#2581 - Тестирование различных свойств
  • Example#2582 - Тестирование различных свойств
  • Example#2583 - Тестирование различных свойств
  • Example#2584 - Тестирование различных свойств
  • Example#2585 - Тестирование различных способов задания
  • Example#2586 - Тестирование различных способов задания
  • Example#2587 - Тестирование различных способов задания
  • Example#2588 - Тестирование различных способов задания
  • Example#2589 - Тестирование различных способов задания
  • Example#2590 - Тестирование различных способов задания
  • Example#2591 - Тестирование различных способов задания
  • Example#2592 - Тестирование различных способов задания
  • Example#2593 - Тестирование различных способов задания
  • Example#2594 - Тестирование различных способов задания
  • Example#2595 - Тестирование различных способов задания
  • Example#2596 - Тестирование различных способов задания
  • Example#2597 - Тестирование различных способов задания
  • Example#2598 - Тестирование различных способов задания
  • Example#2599 - Тестирование различных способов задания
  • Example#2600 - Тестирование различных способов задания
  • Example#2601 - Тестирование различных способов задания
  • Example#2602 - Тестирование различных способов задания
  • Example#2603 - Тестирование различных способов задания
  • Example#2604 - Тестирование различных способов задания
  • Example#2605 - Тестирование различных способов задания
  • Example#2606 - Тестирование различных способов задания
  • Example#2607 - Тестирование различных способов задания
  • Example#2608 - Тестирование различных способов задания
  • Example#2609 - Тестирование различных способов задания
  • Example#2610 - Тестирование различных способов задания
  • Example#2611 - Тестирование различных способов задания
  • Example#2612 - Тестирование различных способов задания
  • Example#2613 - Тестирование различных способов задания
  • Example#2614 - Тестирование различных способов задания
  • Example#2615 - Тестирование различных способов задания
  • Example#2616 - Тестирование различных способов задания
  • Example#2617 - Пример использования intl_error_name
  • Example#2618 - Пример использования intl_get_error_code
  • Example#2619 - Пример использования intl_get_error_message
  • Example#2620 - Пример использования intl_is_failure
  • Example#2621 - Примеры настроек php.ini
  • Example#2622 - Настройки php.ini для пользователей EUC-JP
  • Example#2623 - Настройки php.ini для пользователей SJIS
  • Example#2624 - Отключение преобразования кодировки HTTP ввода в php.ini
  • Example#2625 - Пример настройки php.ini
  • Example#2626 - Пример скрипта
  • Example#2627 - Тестирование различных способов задания
  • Example#2628 - Пример использования mb_convert_case
  • Example#2629 - Пример использования mb_convert_case с нелатинским UTF-8 текстом
  • Example#2630 - Пример использования mb_convert_encoding
  • Example#2631 - Пример использования mb_convert_kana
  • Example#2632 - Пример использования mb_convert_variables
  • Example#2633 - Пример использования map
  • Example#2634 - Пример экранирования строки JavaScript с помощью map
  • Example#2635 - Пример использования mb_detect_encoding
  • Example#2636 - Действие параметра strict
  • Example#2637 - Использование порядка при совпадении нескольких кодировок
  • Example#2638 - Пример использования mb_detect_order
  • Example#2639 - Пример бесполезного порядка определения
  • Example#2640 - Пример использования mb_encode_mimeheader
  • Example#2641 - Пример использования map
  • Example#2642 - Пример использования mb_encode_numericentity
  • Example#2643 - Пример использования mb_encoding_aliases
  • Example#2644 - Пример функции mb_ereg_replace_callback
  • Example#2645 - mb_ereg_replace_callback использует анонимную функцию
  • Example#2646 - Пример использования mb_internal_encoding
  • Example#2647 - Пример использования mb_list_encodings
  • Example#2648 -
  • Example#2649 - Пример использования mb_output_handler
  • Example#2650 - Пример использования mb_preferred_mime_name
  • Example#2651 - Пример использования mb_str_pad
  • Example#2652 - Пример использования mb_strimwidth
  • Example#2653 - Пример использования mb_strtolower
  • Example#2654 - Пример использования mb_strtolower с нелатинскими буквами
  • Example#2655 - Пример использования mb_strtoupper
  • Example#2656 - Пример использования mb_strtoupper с нелатинскими буквами
  • Example#2657 - Пример использования mb_strwidth
  • Example#2658 - Пример использования mb_substitute_character
  • Example#2659 - Пример использования mb_substr_count
  • Example#2660 - Пример использования pspell_add_to_personal
  • Example#2661 - Пример использования pspell_check
  • Example#2662 - Пример использования pspell_add_to_personal
  • Example#2663 - Пример использования pspell_config_create
  • Example#2664 - Пример использования pspell_config_ignore
  • Example#2665 - Пример использования pspell_config_mode
  • Example#2666 - Пример использования pspell_config_personal
  • Example#2667 - Пример использования pspell_config_repl
  • Example#2668 - Пример использования pspell_config_runtogether
  • Example#2669 - Пример использования pspell_new_config
  • Example#2670 - Пример использования pspell_new_personal
  • Example#2671 - Пример использования pspell_new
  • Example#2672 - Пример использования pspell_add_to_personal
  • Example#2673 - Пример использования pspell_store_replacement
  • Example#2674 - Пример использования pspell_suggest
  • Example#2675 - Пример использования recode_file
  • Example#2676 - Пример использования recode_string
  • Example#2677 - Пример использования exif_imagetype
  • Example#2678 - Пример использования exif_read_data
  • Example#2679 - Использование exif_read_data с потоковым ресурсом (доступно с PHP 7.2.0)
  • Example#2680 - Пример использования exif_tagname
  • Example#2681 - Пример использования exif_thumbnail
  • Example#2682 - Создание PNG средствами PHP
  • Example#2683 - Добавление водяных знаков на изображения с помощью альфа-каналов
  • Example#2684 - Использование imagecopymerge создать полупрозрачный водяной знак
  • Example#2685 - Пример использования gd_info
  • Example#2686 - getimagesize и MIME типы
  • Example#2687 - Пример использования getimagesize
  • Example#2688 - getimagesize (URL)
  • Example#2689 - getimagesize() возвращающая IPTC
  • Example#2690 - Пример использования getimagesizefromstring
  • Example#2691 - Пример использования image_type_to_extension
  • Example#2692 - Пример использования image_type_to_mime_type
  • Example#2693 - Пример использования image2wbmp
  • Example#2694 - Пример использования imageaffinematrixconcat
  • Example#2695 - Пример использования imageaffinematrixget
  • Example#2696 - Пример использования imagealphablending
  • Example#2697 - Сравнение двух линий, одна из которых рисуется с включённым сглаживанием
  • Example#2698 - Рисование окружности с помощью функции imagearc
  • Example#2699 - Сохранение BMP-файла
  • Example#2700 - Пример использования imagechar
  • Example#2701 - Пример использования imagecharup
  • Example#2702 - Пример использования imagecolorallocate
  • Example#2703 - Пример использования imagecolorallocatealpha
  • Example#2704 - Преобразование типичных альфа-значений для использования с imagecolorallocatealpha
  • Example#2705 - Доступ к компонентам RGB цвета
  • Example#2706 - Удобочитаемые RGB значения с использованием imagecolorsforindex
  • Example#2707 - Поиск набора цветов изображения
  • Example#2708 - Поиск набора цветов изображения
  • Example#2709 - Пример использования imagecolorclosesthwb
  • Example#2710 - Пример использования imagecolordeallocate
  • Example#2711 - Получение цветов GD логотипа
  • Example#2712 - Получение цветов GD логотипа
  • Example#2713 - Пример использования imagecolormatch
  • Example#2714 - Использование imagecoloresolve для получения цветов из изображения.
  • Example#2715 - Пример использования imagecoloresolvealpha для получения цветов из изображения
  • Example#2716 - Пример использования imagecolorset
  • Example#2717 - Пример использования imagecolorsforindex
  • Example#2718 - Получение количества цветов в изображении, используя imagecolorstotal
  • Example#2719 - Пример использования imagecolortransparent
  • Example#2720 - Создание рельефа на логотипе PHP.net
  • Example#2721 - Размытие по Гауссу
  • Example#2722 - Обрезка логотипа PHP.net
  • Example#2723 - Совмещение двух копий логотипа PHP.net с 75% прозрачностью
  • Example#2724 - Пример использования imagecopymergegray
  • Example#2725 - Простой пример
  • Example#2726 - Ресэмплирование изображения с сохранением пропорций
  • Example#2727 - Изменение размера изображения
  • Example#2728 - Создание нового GD потока изображения и вывод изображения.
  • Example#2729 - Конвертирование BMP-изображения в PNG-изображения, используя imagecreatefrombmp
  • Example#2730 - Пример использования imagecreatefromgd2
  • Example#2731 - Пример использования imagecreatefromgd2part
  • Example#2732 - Пример использования imagecreatefromgd
  • Example#2733 - Пример обработки ошибки при загрузке GIF
  • Example#2734 - Пример обработки ошибки при загрузке JPEG
  • Example#2735 - Пример обработки ошибки при загрузке PNG
  • Example#2736 - Пример использования imagecreatefromstring
  • Example#2737 - Пример обработки ошибки при загрузке WBMP
  • Example#2738 - Конвертирование WebP-изображения к jpeg-изображению, используя imagecreatefromwebp
  • Example#2739 - Преобразование XBM изображения в png, используя imagecreatefromxbm
  • Example#2740 - Создание изображения, используя imagecreatefromxpm
  • Example#2741 - Создание нового потока GD изображения и вывод картинки.
  • Example#2742 - Пример использования imagecrop
  • Example#2743 - Правильная обработка автообрезки
  • Example#2744 - Пример использования imagedashedline
  • Example#2745 - Альтернатива функции imagedashedline
  • Example#2746 - Пример использования imagedestroy до PHP 8.0.0
  • Example#2747 - Пример использования imageellipse
  • Example#2748 - Пример использования imagefill
  • Example#2749 - Создание трёхмерного пирога
  • Example#2750 - Пример использования imagefilledellipse
  • Example#2751 - Пример использования imagefilledpolygon
  • Example#2752 - Пример использования imagefilledrectangle
  • Example#2753 - Закрашивание эллипса
  • Example#2754 - Пример использования imagefilter с фильтром grayscale
  • Example#2755 - Пример использования imagefilter с фильтром яркости
  • Example#2756 - Пример использования imagefilter с фильтром colorize
  • Example#2757 - Пример использования imagefilter с фильтром negate
  • Example#2758 - Пример использования imagefilter с фильтром pixelate
  • Example#2759 - Пример использования imagefilter с фильтром scatter
  • Example#2760 - Переворачивает изображение по вертикали
  • Example#2761 - Переворачивает изображение по горизонтали
  • Example#2762 - Пример использования imagefontheight на встроенных шрифтах
  • Example#2763 - Использование imagefontheight вместе с imageloadfont
  • Example#2764 - Использование imagefontwidth на встроенных шрифтах
  • Example#2765 - Использование imagefontwidth вместе с imageloadfont
  • Example#2766 - Пример использования imageftbbox
  • Example#2767 - Пример использования imagefttext
  • Example#2768 - Пример использования imagegammacorrect
  • Example#2769 - Вывод GD2 изображения
  • Example#2770 - Сохранение GD2 изображения
  • Example#2771 - Вывод GD-изображения
  • Example#2772 - Сохранение GD-изображения
  • Example#2773 - Пример использования imagegetclip
  • Example#2774 - Вывод изображения, используя imagegif
  • Example#2775 - Преобразование PNG в GIF, используя imagegif
  • Example#2776 - Пример использования imagegrabscreen
  • Example#2777 - Пример использования imagegrabwindow
  • Example#2778 - Включение интерлейсинга, используя imageinterlace
  • Example#2779 - Простое определение полноцветных изображений с помощью imageistruecolor
  • Example#2780 - Вывод JPEG-изображения в браузер
  • Example#2781 - Сохранение изображения JPEG в файл
  • Example#2782 - Вывод JPEG-изображения с 75% качеством в браузер
  • Example#2783 - Пример использования imagelayereffect
  • Example#2784 - Рисование жирной линии
  • Example#2785 - Пример использования imageloadfont
  • Example#2786 - Пример использования imageopenpolygon
  • Example#2787 - Пример использования imagepalettecopy
  • Example#2788 - Конвертирует любой объект изображения в настоящий цвет
  • Example#2789 - Пример использования imagepolygon
  • Example#2790 - Пример использования imagerectangle
  • Example#2791 - Установка и получение разрешения изображения
  • Example#2792 - Поворот изображения на 180 градусов
  • Example#2793 - Пример использования imagesavealpha
  • Example#2794 - Пример использования imagesetbrush
  • Example#2795 - Пример использования imagesetinterpolation
  • Example#2796 - Пример использования imagesetpixel
  • Example#2797 - Пример использования imagesetstyle
  • Example#2798 - Пример использования imagesetthickness
  • Example#2799 - Пример использования imagesettile
  • Example#2800 - Пример использования imagestring
  • Example#2801 - Пример использования imagestringup
  • Example#2802 - Пример использования imagesx
  • Example#2803 - Пример использования imagesy
  • Example#2804 - Преобразование truecolor-изображения в палитровое
  • Example#2805 - Пример использования imagettfbbox
  • Example#2806 - Пример использования imagettftext
  • Example#2807 - Проверка поддержки PNG
  • Example#2808 - Вывод WBMP изображения
  • Example#2809 - Сохранение WBMP изображения
  • Example#2810 - Вывод изображения с изменённым верхним слоем
  • Example#2811 - Сохранение WebP-файла
  • Example#2812 - Сохранение XBM файла
  • Example#2813 - Сохранение XBM файла с отличным цветом верхнего слоя
  • Example#2814 - Встраивание IPTC данных в JPEG
  • Example#2815 - iptcparse() используется совместно с getimagesize
  • Example#2816 - Пример использования jpeg2wbmp
  • Example#2817 - Пример использования png2wbmp
  • Example#2818 - Примеры использования Gmagick
  • Example#2819 - Пример использования Gmagick::despeckleimage
  • Example#2820 - Пример использования Gmagick::setCompressionQuality
  • Example#2821 - Создание миниатюры в Imagick
  • Example#2822 - Создание миниатюр для всех JPG файлов в директории
  • Example#2823 - Создание отражения
  • Example#2824 - Заливка текста градиентом
  • Example#2825 - Чтение GIF изображения и изменение размера всех фреймов
  • Example#2826 - Create a PHP logo
  • Example#2827 - Пример использования Imagick::adaptiveBlurImage:
  • Example#2828 - Пример использования Imagick::adaptiveResizeImage
  • Example#2829 - Пример использования Imagick::adaptiveSharpenImage
  • Example#2830 - Пример использования Imagick::adaptiveThresholdImage
  • Example#2831 - Пример использования Imagick::addNoiseImage
  • Example#2832 - Пример использования Imagick::affineTransformImage
  • Example#2833 - Пример использования Imagick::annotateImage:
  • Example#2834 - Пример использования Imagick::appendImages
  • Example#2835 - Пример использования Imagick::autoLevelImage
  • Example#2836 - Пример использования Imagick::blackThresholdImage
  • Example#2837 - Пример использования Imagick::blueShiftImage
  • Example#2838 - Пример использования Imagick::blurImage:
  • Example#2839 - Пример использования Imagick::borderImage
  • Example#2840 - Пример использования Imagick::brightnessContrastImage
  • Example#2841 - Пример использования Imagick::charcoalImage
  • Example#2842 - Использование Imagick::chopImage:
  • Example#2843 - Клонирование объекта Imagick в разных версиях
  • Example#2844 - Использование Imagick::clutImage:
  • Example#2845 - Пример использования Imagick::colorizeImage
  • Example#2846 - Пример использования Imagick::colorMatrixImage
  • Example#2847 - Пример использования Imagick::commentImage:
  • Example#2848 - Пример использования Imagick::compareImageLayers
  • Example#2849 - Пример использования Imagick::compareImages:
  • Example#2850 - Пример использования Imagick::compositeImage:
  • Example#2851 - Пример использования Imagick::contrastImage
  • Example#2852 - Пример использования Imagick::convolveImage
  • Example#2853 - Пример использования Imagick::cropImage
  • Example#2854 - Пример использования Imagick::deskewImage
  • Example#2855 - Пример использования Imagick::despeckleImage
  • Example#2856 - Пример использования Imagick::distortImage:
  • Example#2857 - Пример использования Imagick::edgeImage
  • Example#2858 - Пример использования Imagick::embossImage
  • Example#2859 - Пример использования Imagick::enhanceImage
  • Example#2860 - Пример использования Imagick::equalizeImage
  • Example#2861 - Пример использования Imagick::evaluateImage
  • Example#2862 - Пример использования Imagick::exportImagePixels
  • Example#2863 - Пример использования Imagick::filter
  • Example#2864 - Пример использования Imagick::flipImage
  • Example#2865 - Пример использования Imagick::floodfillPaintImage
  • Example#2866 - Пример использования Imagick::flopImage
  • Example#2867 - Пример использования Imagick::forwardFourierTransformImage
  • Example#2868 - Пример использования Imagick::frameImage
  • Example#2869 - Создание синусоидального градиента
  • Example#2870 - Создание градиента из полинома (4x^2 - 4x + 1)
  • Example#2871 - Создание сложного градиента из полинома (4x^2 - 4x^2 + 1), модулированного синусоидальным градиентом
  • Example#2872 - Пример использования Imagick::fxImage
  • Example#2873 - Пример использования Imagick::gammaImage
  • Example#2874 - Пример использования Imagick::gaussianBlurImage
  • Example#2875 - Пример использования Imagick::getImageGeometry
  • Example#2876 - Генерация Imagick::getImageHistogram
  • Example#2877 - Пример использования Imagick::getImageLength:
  • Example#2878 - Использование Imagick::getImageProperties:
  • Example#2879 - Пример использования Imagick::getImageProperty:
  • Example#2880 - Пример использования Imagick::getIteratorIndex:
  • Example#2881 - Пример использования Imagick::getPixelIterator
  • Example#2882 - Пример использования функции Imagick::getPixelRegionIterator
  • Example#2883 - Получение размера исходного изображения RGB, установленные в 200x400, после масштабирования до 400x800
  • Example#2884 - Пример использования Imagick::haldClutImage
  • Example#2885 - Пример использования Imagick::identifyFormat
  • Example#2886 - Пример результата
  • Example#2887 - Пример использования Imagick::implodeImage
  • Example#2888 - Пример использования Imagick::importImagePixels
  • Example#2889 - Пример использования Imagick::levelImage
  • Example#2890 - Пример использования Imagick::linearStretchImage
  • Example#2891 - Пример использования Imagick::magnifyImage
  • Example#2892 - Пример использования Imagick::medianFilterImage
  • Example#2893 - Пример использования Imagick::mergeImageLayers
  • Example#2894 - Пример использования Imagick::modulateImage
  • Example#2895 - Пример использования метода Convolve Imagick::morphology
  • Example#2896 - Пример использования метода Correlate Imagick::morphology
  • Example#2897 - Пример использования метода Erode Imagick::morphology
  • Example#2898 - Пример использования метода Erode Intensity Imagick::morphology
  • Example#2899 - Пример использования метода Dilate Imagick::morphology
  • Example#2900 - Пример использования метода Dilate intensity Imagick::morphology
  • Example#2901 - Пример использования метода Distance с ядром Chebyshev Imagick::morphology
  • Example#2902 - Пример использования метода Distance с ядром Manhattan Imagick::morphology
  • Example#2903 - Пример использования метода Distance с ядром ocatagonal Imagick::morphology
  • Example#2904 - Пример использования метода Distance с ядром Euclidean Imagick::morphology
  • Example#2905 - Пример использования метода Edge Imagick::morphology
  • Example#2906 - Пример использования метода Open Imagick::morphology
  • Example#2907 - Пример использования метода Open intensity Imagick::morphology
  • Example#2908 - Пример использования метода Close Imagick::morphology
  • Example#2909 - Пример использования метода Close Intensity Imagick::morphology
  • Example#2910 - Пример использования метода Smooth Imagick::morphology
  • Example#2911 - Пример использования метода Edge in Imagick::morphology
  • Example#2912 - Пример использования метода Edge out Imagick::morphology
  • Example#2913 - Метод "TopHat", или, точнее, "White TopHat", возвращает пиксели, которые были удалены открытием фигуры, то есть пиксели, которые были удалены для округления точек, и соединение, соединённое мостом между фигурами. Imagick::morphology
  • Example#2914 - Метод "TopHat", или, точнее, "Black TopHat", возвращает пиксели, которые были удалены закрытием фигуры, то есть пиксели, которые использовались для заполнения дыр, зазоров и мостов. Imagick::morphology
  • Example#2915 - Пример использования метода Hit и Miss Imagick::morphology
  • Example#2916 - Пример использования метода Thinning Imagick::morphology
  • Example#2917 - Пример использования метода Thicken Imagick::morphology
  • Example#2918 - Пример использования метода Thick для создания выпуклой оболочки Imagick::morphology
  • Example#2919 - Пример использования метода Iterative morphology Imagick::morphology
  • Example#2920 - Пример использования вспомогательной функции для получения силуэта изображения Imagick::morphology
  • Example#2921 - Пример использования Imagick::motionBlurImage
  • Example#2922 - Пример использования Imagick::negateImage
  • Example#2923 - Пример использования Imagick::newImage:
  • Example#2924 - Пример использования Imagick::newPseudoImage
  • Example#2925 - Пример использования Imagick::normalizeImage
  • Example#2926 - Пример использования Imagick::oilPaintImage
  • Example#2927 - Пример использования Imagick::optimizeImageLayers
  • Example#2928 - Пример использования Imagick::orderedPosterizeImage
  • Example#2929 - Пример использования Imagick::pingImageBlob
  • Example#2930 - Пример использования Imagick::pingImageFile
  • Example#2931 - Пример использования Imagick::polaroidImage
  • Example#2932 - Пример использования Imagick::posterizeImage
  • Example#2933 - Пример использования Imagick::quantizeImage
  • Example#2934 - Пример использования Imagick::queryFontMetrics:
  • Example#2935 - Пример использования Imagick::queryFonts
  • Example#2936 - Пример использования Imagick::queryFormats
  • Example#2937 - Пример использования Imagick::radialBlurImage
  • Example#2938 - Пример использования Imagick::raiseImage
  • Example#2939 - Пример использования Imagick::randomThresholdImage
  • Example#2940 - Пример использования Imagick::readImageBlob
  • Example#2941 - Пример использования Imagick::recolorImage
  • Example#2942 - Пример использования Imagick::reduceNoiseImage
  • Example#2943 - Пример использования Imagick::resampleImage
  • Example#2944 - Пример использования Imagick::resizeImage
  • Example#2945 - Пример использования Imagick::rollImage
  • Example#2946 - Пример использования Imagick::rotateImage
  • Example#2947 - Пример использования Imagick::rotationalBlurImage
  • Example#2948 - Пример использования Imagick::roundCorners
  • Example#2949 - Пример использования Imagick::scaleImage
  • Example#2950 - Пример использования Imagick::segmentImage
  • Example#2951 - Пример использования Imagick::selectiveBlurImage
  • Example#2952 - Пример использования Imagick::separateImageChannel
  • Example#2953 - Пример использования Imagick::sepiaToneImage
  • Example#2954 - Пример использования Imagick::setCompressionQuality
  • Example#2955 - Пример использования Imagick::setFont
  • Example#2956 - Пример использования Imagick::setImage
  • Example#2957 - Пример использования Imagick::setImageArtifact
  • Example#2958 - Пример использования Imagick::setImageBias
  • Example#2959 - Пример использования Imagick::setImageClipMask
  • Example#2960 - Пример использования Imagick::setImageCompressionQuality
  • Example#2961 - Изменить анимированный GIF с помощью Imagick::setImageDelay
  • Example#2962 - Пример использования Imagick::setImageIterations
  • Example#2963 - Пример использования Imagick::setImageOpacity
  • Example#2964 - Пример использования Imagick::setImageOrientation
  • Example#2965 - Пример использования Imagick::setImageProperty
  • Example#2966 - Пример использования Imagick::setImageResolution
  • Example#2967 - Изменение анимированного GIF-изображения с помощью Imagick::setImageTicksPerSecond
  • Example#2968 - Пример использования Imagick::setIteratorIndex:
  • Example#2969 - Попытка достичь размера '$extent' Imagick::setOption
  • Example#2970 - Пример использования Imagick::setOption
  • Example#2971 - Пример использования Imagick::setOption
  • Example#2972 - Пример использования Imagick::setPointSize
  • Example#2973 - Пример использования Imagick::setProgressMonitor
  • Example#2974 - Пример использования Imagick::setSamplingFactors
  • Example#2975 - Пример использования Imagick::shadeImage
  • Example#2976 - Пример использования Imagick::shadowImage
  • Example#2977 - Пример использования Imagick::sharpenImage
  • Example#2978 - Пример использования Imagick::shaveImage
  • Example#2979 - Пример использования Imagick::shearImage
  • Example#2980 - Создание градиентного изображения, используя Imagick::sigmoidalContrastImage, подходящую для плавного смешивания двух изображений вместе, со смешиванием, определяемого контрастом и средней точкой.
  • Example#2981 - Пример использования Imagick::sketchImage
  • Example#2982 - Пример использования Imagick::smushImages
  • Example#2983 - Пример использования Imagick::solarizeImage
  • Example#2984 - SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage
  • Example#2985 - SPARSECOLORMETHOD_BILINEAR Imagick::sparseColorImage
  • Example#2986 - SPARSECOLORMETHOD_SPEPARDS Imagick::sparseColorImage
  • Example#2987 - SPARSECOLORMETHOD_VORONOI Imagick::sparseColorImage
  • Example#2988 - SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage
  • Example#2989 - createGradientImage is used by other examples. Imagick::sparseColorImage
  • Example#2990 - Пример использования Imagick::spliceImage
  • Example#2991 - Пример использования Imagick::spreadImage
  • Example#2992 - Пример использования Imagick::statisticImage
  • Example#2993 - Пример использования Imagick::subImageMatch
  • Example#2994 - Пример использования Imagick::swirlImage
  • Example#2995 - Пример использования Imagick::textureImage
  • Example#2996 - Пример использования Imagick::thresholdImage
  • Example#2997 - Пример использования Imagick::thumbnailImage
  • Example#2998 - Пример использования Imagick::tintImage
  • Example#2999 - Пример использования Imagick::transformImage:
  • Example#3000 - Пример использования Imagick::transformImageColorspace
  • Example#3001 - Пример использования Imagick::transparentPaintImage
  • Example#3002 - Пример использования Imagick::transposeImage
  • Example#3003 - Пример использования Imagick::transverseImage
  • Example#3004 - Пример использования Imagick::trimImage:
  • Example#3005 - Пример использования Imagick::uniqueImageColors
  • Example#3006 - Пример использования Imagick::unsharpMaskImage
  • Example#3007 - Пример использования Imagick::vignetteImage
  • Example#3008 - WaveImage может быть довольно медленным Imagick::waveImage
  • Example#3009 - Пример использования Imagick::whiteThresholdImage
  • Example#3010 - Пример использования ImagickDraw::affine
  • Example#3011 - Пример использования ImagickDraw::arc
  • Example#3012 - Пример использования ImagickDraw::bezier
  • Example#3013 - Пример использования ImagickDraw::circle
  • Example#3014 - Пример использования ImagickDraw::composite
  • Example#3015 - Пример использования ImagickDraw::ellipse
  • Example#3016 - Пример использования ImagickDraw::line
  • Example#3017 - Пример использования ImagickDraw::matte
  • Example#3018 - Пример использования ImagickDraw::pathCurveToQuadraticBezierAbsolute
  • Example#3019 - Пример использования ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
  • Example#3020 - Пример использования ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
  • Example#3021 - Пример использования ImagickDraw::pathStart
  • Example#3022 - Пример использования ImagickDraw::point
  • Example#3023 - Пример использования ImagickDraw::polygon
  • Example#3024 - Пример использования ImagickDraw::polyline
  • Example#3025 - Пример использования ImagickDraw::popDefs
  • Example#3026 - Пример использования ImagickDraw::push
  • Example#3027 - Пример использования ImagickDraw::pushPattern
  • Example#3028 - Пример использования ImagickDraw::rectangle
  • Example#3029 - Пример использования ImagickDraw::rotate
  • Example#3030 - Пример использования ImagickDraw::roundRectangle
  • Example#3031 - Пример использования ImagickDraw::scale
  • Example#3032 - Пример использования ImagickDraw::setClipPath
  • Example#3033 - Пример использования ImagickDraw::setClipRule
  • Example#3034 - Пример использования ImagickDraw::setClipUnits
  • Example#3035 - Пример использования ImagickDraw::setFillAlpha
  • Example#3036 - Пример использования ImagickDraw::setFillColor
  • Example#3037 - Пример использования ImagickDraw::setFillOpacity
  • Example#3038 - Пример использования ImagickDraw::setFillRule
  • Example#3039 - Пример использования ImagickDraw::setFont
  • Example#3040 - Пример использования ImagickDraw::setFontFamily
  • Example#3041 - Пример использования ImagickDraw::setFontSize
  • Example#3042 - Пример использования ImagickDraw::setFontStretch
  • Example#3043 - Пример использования ImagickDraw::setFontStyle
  • Example#3044 - Пример использования ImagickDraw::setFontWeight
  • Example#3045 - Пример использования ImagickDraw::setGravity
  • Example#3046 - Пример использования ImagickDraw::setStrokeAlpha
  • Example#3047 - Пример использования ImagickDraw::setStrokeAntialias
  • Example#3048 - Пример использования ImagickDraw::setStrokeColor
  • Example#3049 - Пример использования ImagickDraw::setStrokeDashArray
  • Example#3050 - Пример использования ImagickDraw::setStrokeDashOffset
  • Example#3051 - Пример использования ImagickDraw::setStrokeLineCap
  • Example#3052 - Пример использования ImagickDraw::setStrokeLineJoin
  • Example#3053 - Пример использования ImagickDraw::setStrokeMiterLimit
  • Example#3054 - Пример использования ImagickDraw::setStrokeOpacity
  • Example#3055 - Пример использования ImagickDraw::setStrokeWidth
  • Example#3056 - Пример использования ImagickDraw::setTextAlignment
  • Example#3057 - Пример использования ImagickDraw::setTextAntialias
  • Example#3058 - Пример использования ImagickDraw::setTextDecoration
  • Example#3059 - Пример использования ImagickDraw::setTextUnderColor
  • Example#3060 - Пример использования ImagickDraw::setVectorGraphics
  • Example#3061 - Пример использования ImagickDraw::setViewBox
  • Example#3062 - Пример использования ImagickDraw::skewX
  • Example#3063 - Пример использования ImagickDraw::skewY
  • Example#3064 - Пример использования ImagickDraw::translate
  • Example#3065 - Пример использования ImagickPixel::construct
  • Example#3066 - Пример использования Imagick::getColor
  • Example#3067 - Пример использования Imagick::getColorAsString
  • Example#3068 - ImagickPixel getColorCount
  • Example#3069 - Пример использования Imagick::getColorValue
  • Example#3070 - Пример использования ImagickPixel::getColorValueQuantum
  • Example#3071 - Пример использования Imagick::getHSL
  • Example#3072 - Пример использования ImagickPixel::isSimilar
  • Example#3073 - Пример использования ImagickPixel::setColor
  • Example#3074 - Пример использования Imagick::setColorValue
  • Example#3075 - Пример использования ImagickPixel::setColorValueQuantum
  • Example#3076 - Пример использования ImagickPixel::setHSL
  • Example#3077 - Пример использования ImagickPixelIterator::clear
  • Example#3078 - Пример использования ImagickPixelIterator::construct
  • Example#3079 - Пример использования ImagickPixelIterator::getNextIteratorRow
  • Example#3080 - Пример использования ImagickPixelIterator::resetIterator
  • Example#3081 - Пример использования ImagickPixelIterator::setIteratorRow
  • Example#3082 - Пример использования ImagickKernel::addKernel
  • Example#3083 - Пример использования ImagickKernel::addUnityKernel
  • Example#3084 - Пример использования ImagickKernel::addUnityKernel
  • Example#3085 - Пример использования ImagickKernel::fromBuiltin
  • Example#3086 - Пример использования ImagickKernel::fromMatrix
  • Example#3087 - Пример использования ImagickKernel::getMatrix
  • Example#3088 - Пример использования ImagickKernel::scale
  • Example#3089 - Пример использования ImagickKernel::separate
  • Example#3090 - Пример использования imap_append
  • Example#3091 - Пример использования imap_check
  • Example#3092 - Пример использования imap_createmailbox
  • Example#3093 - Пример использования imap_delete
  • Example#3094 - Пример использования imap_fetch_overview
  • Example#3095 - Пример использования imap_gc
  • Example#3096 - Пример использования imap_get_quota
  • Example#3097 - Пример использования imap_get_quota в PHP 4.3 и выше
  • Example#3098 - Пример использования imap_get_quotaroot
  • Example#3099 - Пример использования imap_getacl
  • Example#3100 - Пример использования imap_getmailboxes
  • Example#3101 - Пример использования imap_is_open
  • Example#3102 - Пример использования imap_list
  • Example#3103 - Пример использования imap_mail_compose
  • Example#3104 - Пример использования imap_mailboxmsginfo
  • Example#3105 - Пример использования imap_mime_header_decode
  • Example#3106 - Различные способы использования imap_open
  • Example#3107 - Пример использования imap_open
  • Example#3108 - Пример использования imap_ping
  • Example#3109 - Пример использования imap_reopen
  • Example#3110 - Пример использования imap_rfc822_parse_adrlist
  • Example#3111 - Пример использования imap_rfc822_write_address
  • Example#3112 - Пример использования imap_search
  • Example#3113 - Пример использования imap_set_quota
  • Example#3114 - Пример использования imap_setflag_full
  • Example#3115 - Пример использования imap_status
  • Example#3116 - Пример использования imap_thread
  • Example#3117 - Пример использования imap_timeout
  • Example#3118 - Базовое использование imap_utf8
  • Example#3119 - Вычисляет хеш-сумму и подписка пользователя на что-либо
  • Example#3120 - Отправка письма.
  • Example#3121 - Отправка письма с дополнительными заголовками.
  • Example#3122 - Отправка письма с дополнительными заголовками, переданными массивом
  • Example#3123 - Отправка письма с дополнительными аргументами командной строки.
  • Example#3124 - Отправка HTML-сообщения
  • Example#3125 - Пример использования mailparse_determine_best_xfer_encoding
  • Example#3126 - Пример использования mailparse_rfc822_parse_addresses
  • Example#3127 - Пример использования mailparse_stream_encode
  • Example#3128 - Пример использования mailparse_uudecode_all
  • Example#3129 - Пример использования bcadd
  • Example#3130 - Пример использования bccomp
  • Example#3131 - Пример использования bcdiv
  • Example#3132 - Пример использования bcmod
  • Example#3133 - Пример использования bcmod с десятичными знаками
  • Example#3134 - Пример использования bcmul
  • Example#3135 - Пример bcmul с заданной точностью
  • Example#3136 - Пример использования bcpow
  • Example#3137 - Пример уменьшения точности в bcpow
  • Example#3138 - Пример использования bcscale
  • Example#3139 - Пример использования bcsqrt
  • Example#3140 - Пример использования bcsub
  • Example#3141 - Вычисление факториала с помощью GMP
  • Example#3142 - Пример использования gmp_abs
  • Example#3143 - Пример использования gmp_add
  • Example#3144 - Пример использования gmp_and
  • Example#3145 - Пример использования gmp_clrbit
  • Example#3146 - Пример использования gmp_cmp
  • Example#3147 - Пример использования gmp_com
  • Example#3148 - Пример использования gmp_div_q
  • Example#3149 - Деление GMP чисел
  • Example#3150 - Пример использования gmp_div_r
  • Example#3151 - Пример использования gmp_divexact
  • Example#3152 - Пример использования gmp_export
  • Example#3153 - Пример использования gmp_fact
  • Example#3154 - Пример использования gmp_gcd
  • Example#3155 - Решение линейного Диофантового уравнения
  • Example#3156 - Пример использования gmp_hamdist
  • Example#3157 - Пример использования gmp_import
  • Example#3158 - Создание GMP числа
  • Example#3159 - Пример использования gmp_intval
  • Example#3160 - Пример использования gmp_invert
  • Example#3161 - Пример использования gmp_jacobi
  • Example#3162 - Пример использования gmp_legendre
  • Example#3163 - Пример использования gmp_mod
  • Example#3164 - Пример использования gmp_mul
  • Example#3165 - Пример использования gmp_neg
  • Example#3166 - Пример использования gmp_nextprime
  • Example#3167 - Пример использования gmp_or
  • Example#3168 - Пример использования gmp_perfect_square
  • Example#3169 - Пример использования gmp_popcount
  • Example#3170 - Пример использования gmp_pow
  • Example#3171 - Пример использования gmp_powm
  • Example#3172 - Пример использования gmp_prob_prime
  • Example#3173 - gmp_random_bits example
  • Example#3174 - gmp_random_range example
  • Example#3175 - Пример использования gmp_random_seed
  • Example#3176 - Пример использования gmp_random
  • Example#3177 - Пример использования gmp_scan0
  • Example#3178 - Пример использования gmp_scan1
  • Example#3179 - Пример использования gmp_setbit - 0 индекс
  • Example#3180 - Пример использования gmp_setbit - 1 индекс
  • Example#3181 - Пример использования gmp_setbit очистка бита
  • Example#3182 - Пример использования gmp_sign
  • Example#3183 - Пример использования gmp_sqrt
  • Example#3184 - Пример использования gmp_sqrtrem
  • Example#3185 - Преобразование GMP числа в строку
  • Example#3186 - Пример использования gmp_sub
  • Example#3187 - Пример использования gmp_testbit
  • Example#3188 - Пример использования gmp_xor
  • Example#3189 - Пример использования abs
  • Example#3190 - Пример использования base_convert
  • Example#3191 - Пример использования bindec
  • Example#3192 - bindec интерпретирует ввод как беззнаковое число
  • Example#3193 - Пример использования ceil
  • Example#3194 - Пример использования cos
  • Example#3195 - Пример использования decbin
  • Example#3196 - Пример использования dechex
  • Example#3197 - Пример использования dechex с большими целыми
  • Example#3198 - Пример использования decoct
  • Example#3199 - Пример использования deg2rad
  • Example#3200 - Пример использования exp
  • Example#3201 - Пример использования fdiv
  • Example#3202 - Пример использования floor
  • Example#3203 - Пример использования fmod
  • Example#3204 - Пример использования hexdec
  • Example#3205 - Пример использования intdiv
  • Example#3206 - Пример использования функции is_finite
  • Example#3207 - Пример использования функции is_infinite
  • Example#3208 - Пример использования is_nan
  • Example#3209 - Пример использования max
  • Example#3210 - Пример использования min
  • Example#3211 - Пример использования octdec
  • Example#3212 - Пример использования pi
  • Example#3213 - Примеры использования pow
  • Example#3214 - Пример использования rad2deg
  • Example#3215 - Пример использования round
  • Example#3216 - Как параметр precision влияет на числа с плавающей точкой
  • Example#3217 - Примеры использования параметра mode
  • Example#3218 - Примеры использования параметра mode с указанием точности precision
  • Example#3219 - Пример использования sin
  • Example#3220 - Пример использования sqrt
  • Example#3221 - Пример использования tan
  • Example#3222 - Обработка документа FDF
  • Example#3223 - Добавление кода JavaScript в FDF
  • Example#3224 - Заполнение PDF-документа
  • Example#3225 - Сохранение загруженного файла
  • Example#3226 - Обнаружение всех имён полей в FDF
  • Example#3227 - Доступ к данным формы
  • Example#3228 - Доступ к данным формы
  • Example#3229 - Получение FDF в виде строки
  • Example#3230 - Передача данных FDF во вторую форму
  • Example#3231 - Процедурный пример создания чистой подписи GnuPG
  • Example#3232 - Объектно-ориентированный пример создания чистой подписи GnuPG
  • Example#3233 - keylistiterator
  • Example#3234 - Пример использования gnupg_adddecryptkey в процедурном стиле
  • Example#3235 - Пример использования gnupg_adddecryptkey в объектно-ориентированном стиле
  • Example#3236 - Процедурный пример использования gnupg_addencryptkey
  • Example#3237 - Объектно-ориентированный пример использования gnupg_addencryptkey
  • Example#3238 - Процедурный пример использования gnupg_addsignkey
  • Example#3239 - Объектно-ориентированный пример использования gnupg_addsignkey
  • Example#3240 - Процедурный пример использования gnupg_cleardecryptkeys
  • Example#3241 - Объектно-ориентированный пример использования gnupg_cleardecryptkeys
  • Example#3242 - Процедурный пример использования gnupg_clearencryptkeys
  • Example#3243 - Объектно-ориентированный пример использования gnupg_clearencryptkeys
  • Example#3244 - Процедурный пример использования gnupg_clearsignkeys
  • Example#3245 - Объектно-ориентированный пример использования gnupg_clearsignkeys
  • Example#3246 - Процедурный пример использования gnupg_decrypt
  • Example#3247 - Объектно-ориентированный пример использования gnupg_decrypt
  • Example#3248 - Пример использования gnupg_decryptverify в процедурном стиле
  • Example#3249 - Пример использования gnupg_decryptverify в объектно-ориентированном стиле
  • Example#3250 - Пример использования gnupg_deletekey в процедурном стиле
  • Example#3251 - Пример использования gnupg_deletekey в объектно-ориентированном стиле
  • Example#3252 - Пример использования gnupg_encrypt в процедурном стиле
  • Example#3253 - Пример использования gnupg_encrypt в объектно-ориентированном стиле
  • Example#3254 - Процедурный пример использования gnupg_encryptsign
  • Example#3255 - Объектно-ориентированный пример использования gnupg_encryptsign
  • Example#3256 - Пример использования gnupg_export в процедурном стиле
  • Example#3257 - Пример использования gnupg_export в объектно-ориентированном стиле
  • Example#3258 - Пример использования gnupg_getengineinfo в процедурном стиле
  • Example#3259 - Пример использования gnupg_getengineinfo в объектно-ориентированном стиле
  • Example#3260 - Пример использования gnupg_geterror в процедурном стиле
  • Example#3261 - Пример использования gnupg_geterror в объектно-ориентированном стиле
  • Example#3262 - Пример использования gnupg_geterrorinfo в процедурном стиле
  • Example#3263 - Пример использования gnupg_geterrorinfo в объектно-ориентированном стиле
  • Example#3264 - Пример использования gnupg_getprotocol в процедурном стиле
  • Example#3265 - Пример использования gnupg_getprotocol в объектно-ориентированном стиле
  • Example#3266 - Пример использования gnupg_gettrustlist в процедурном стиле
  • Example#3267 - Пример использования gnupg_gettrustlist в объектно-ориентированном стиле
  • Example#3268 - Пример использования gnupg_import в процедурном стиле
  • Example#3269 - Пример использования gnupg_import в объектно-ориентированном стиле
  • Example#3270 - Пример использования gnupg_init в процедурном стиле с настройками по умолчанию
  • Example#3271 - Пример использования gnupg_init в процедурном стиле с переопределённым именем файла и домашним каталогом
  • Example#3272 - Пример использования инициализатора gnupg в объектно-ориентированном стиле с настройками по умолчанию
  • Example#3273 - Пример использования в объектно-ориентированном стиле с переопределённым именем файла и домашним каталогом
  • Example#3274 - Пример использования gnupg_keyinfo в процедурном стиле
  • Example#3275 - Пример использования gnupg_keyinfo в объектно-ориентированном стиле
  • Example#3276 - Пример использования gnupg_listsignatures в процедурном стиле
  • Example#3277 - Пример использования gnupg_listsignatures в объектно-ориентированном стиле
  • Example#3278 - Пример использования gnupg_setarmor в процедурном стиле
  • Example#3279 - Пример использования gnupg_setarmor в объектно-ориентированном стиле
  • Example#3280 - Пример использования gnupg_seterrormode в процедурном стиле
  • Example#3281 - Пример использования gnupg_seterrormode в объектно-ориентированном стиле
  • Example#3282 - Пример использования gnupg_setsignmode в процедурном стиле
  • Example#3283 - Пример использования gnupg_setsignmode в объектно-ориентированном стиле
  • Example#3284 - Пример использования gnupg_sign в процедурном стиле
  • Example#3285 - Пример использования gnupg_sign в объектно-ориентированном стиле
  • Example#3286 - Пример использования gnupg_verify в процедурном стиле
  • Example#3287 - Пример использования gnupg_verify в объектно-ориентированном стиле
  • Example#3288 - Создание и использование узора
  • Example#3289 - Создание и использование шаблона
  • Example#3290 - Перенос текста
  • Example#3291 - Рисование прямоугольника
  • Example#3292 - Создание и использование плашечного цвета
  • Example#3293 - Вращение системы координат
  • Example#3294 - Размещение текста в заданной позиции
  • Example#3295 - Рисование пунктирной линии
  • Example#3296 - Изменение системы координат
  • Example#3297 - Пример использования rpmdbinfo
  • Example#3298 - Поиск пакета, в котором находится файл
  • Example#3299 - Пример использования rpminfo
  • 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 - Пример использования
  • Example#3317 - Пример использования
  • Example#3318 - Пример использования
  • Example#3319 - Пример неправильных запросов
  • Example#3320 - Создание запроса с использованием callback-функции
  • Example#3321 - Создание запроса с использованием callback-функции
  • Example#3322 - Использование eio совместно с libevent
  • Example#3323 - Отмена запроса
  • Example#3324 - Вызов eio_chmod
  • Example#3325 - Создание пользовательского запроса
  • Example#3326 - Группировка запросов
  • Example#3327 - Использование eio совместно с модулем libevent
  • Example#3328 - Использование eio с модулем event
  • Example#3329 - eio_cancel example
  • Example#3330 - Пример использования eio_custom
  • Example#3331 - Пример использования eio_event_loop
  • Example#3332 - Пример использования eio_lstat
  • Example#3333 - Использование eio совместно с libevent
  • Example#3334 - Создание группы запросов
  • Example#3335 - Пример использования eio_grp
  • Example#3336 - Пример использования eio_link
  • Example#3337 - Пример использования eio_lstat
  • Example#3338 - Пример использования eio_mkdir
  • Example#3339 - Пример использования eio_mknod
  • Example#3340 - Пример использования eio_nreqs
  • Example#3341 - Пример использования eio_open
  • Example#3342 - Пример использования eio_poll
  • Example#3343 - Пример использования eio_read
  • Example#3344 - Пример использования eio_readdir
  • Example#3345 - Пример использования eio_readlink
  • Example#3346 - Пример использования eio_realpath
  • Example#3347 - Пример использования eio_rename
  • Example#3348 - Пример использования eio_rmdir
  • Example#3349 - Пример использования eio_stat
  • Example#3350 - Пример использования eio_statvfs
  • Example#3351 - Пример использования eio_symlink
  • Example#3352 - Простые таймеры
  • Example#3353 - Периодический таймер. Срабатывает раз в 10.5 секунд
  • Example#3354 - Периодический таймер. Использование callback-функции для перезадания интервала
  • Example#3355 - Периодический таймер. Срабатывает каждые 10.5 секунд, начиная с текущего момента
  • Example#3356 - Ждём, пока STDIN не станет читаемым
  • Example#3357 - Используем асинхронный ввод/вывод для доступа к сокету
  • Example#3358 - Встраиваем один цикл в другой
  • Example#3359 - Встраивание цикла, созданного с помощью kqueue в цикл по умолчанию
  • Example#3360 - Перехватываем сигнал SIGTERM
  • Example#3361 - Отслеживаем изменение /var/log/messages
  • Example#3362 - Отслеживаем изменение /var/log/messages. Избегаем пропуска обновлений с помощью задержки в одну секунду
  • Example#3363 - Отслеживаем изменения статуса процесса
  • Example#3364 - Использование наблюдателя с ручным переопределением времени срабатывания
  • Example#3365 - Цикл создаётся с использованием kqueue и встраивается в цикл по умолчанию
  • Example#3366 - Встраивание одного цикла в другой
  • Example#3367 - Цикл создаётся с использованием kqueue и встраивается в цикл по умолчанию
  • Example#3368 - Встраивание цикла, созданного с помощью kqueue в событийный цикл по умолчанию
  • Example#3369 - Периодический таймер. Используйте переназначение callback-функции
  • Example#3370 - Периодический таймер. Отмечает каждые 10,5 секунд, начиная с текущего момента
  • Example#3371 - Часовой наблюдатель
  • Example#3372 - Обработка сигнала SIGTERM
  • Example#3373 - Отслеживаем изменения в /var/log/messages
  • Example#3374 - Смотрим изменения в /var/log/messages
  • Example#3375 - Простые таймеры
  • Example#3376 - Следим за изменениями /var/log/messages. Избегаем пропущенные обновления с задержкой в одну секунду
  • Example#3377 - Регистрируем наблюдатель ввода-вывода для какого-либо UDP-сокета, но не препятствуем запуску цикла событий только из-за этого наблюдателя.
  • Example#3378 - Пример использования Expect
  • Example#3379 - Ещё один пример использования Expect
  • Example#3380 - Пример использования expect_expectl
  • Example#3381 - Пример использования expect_popen
  • Example#3382 - Пример Управления процессами
  • Example#3383 - Пример pcntl_fork
  • Example#3384 - Пример использования pcntl_rfork
  • Example#3385 - Пример использования pcntl_signal_dispatch:
  • Example#3386 - Пример использования pcntl_signal_get_handler
  • Example#3387 - Пример использования pcntl_signal
  • Example#3388 - Пример использования pcntl_sigprocmask
  • Example#3389 - Пример использования pcntl_sigwaitinfo
  • Example#3390 - Пример использования posix_access
  • Example#3391 - Пример использования posix_ctermid
  • Example#3392 - posix_eaccess example
  • Example#3393 - posix_fpathconf example
  • Example#3394 - Пример использования posix_get_last_error
  • Example#3395 - Пример использования posix_getcwd
  • Example#3396 - Пример использования posix_getegid
  • Example#3397 - Пример использования posix_geteuid
  • Example#3398 - Пример использования posix_getgid
  • Example#3399 - Пример использования posix_getgrgid
  • Example#3400 - Пример использования posix_getgrnam
  • Example#3401 - Пример использования posix_getgroups
  • Example#3402 - Пример использования posix_getlogin
  • Example#3403 - Пример использования posix_getpgid
  • Example#3404 - Пример использования posix_getpid
  • Example#3405 - Пример использования posix_getppid
  • Example#3406 - Пример использования posix_getpwnam
  • Example#3407 - Пример использования posix_getpwuid
  • Example#3408 - Пример использования posix_getrlimit
  • Example#3409 - Пример использования posix_getsid
  • Example#3410 - Пример использования posix_getuid
  • Example#3411 - Пример использования posix_mknod
  • Example#3412 - posix_pathconf example
  • Example#3413 - Пример использования posix_setegid
  • Example#3414 - Пример использования posix_setgid
  • Example#3415 - Пример использования posix_setuid
  • Example#3416 - Пример использования posix_strerror
  • Example#3417 - posix_sysconf example
  • Example#3418 - Пример использования posix_times
  • Example#3419 - Пример использования posix_uname
  • Example#3420 - Пример использования escapeshellarg
  • Example#3421 - Пример использования escapeshellcmd
  • Example#3422 - Пример функции exec
  • Example#3423 - Установка высокого приоритета с помощью proc_nice
  • Example#3424 - Пример использования proc_open
  • Example#3425 - proc_open причуда в Windows
  • Example#3426 - Пример использования shell_exec
  • Example#3427 - Пример использования system
  • Example#3428 - Пример, показывающий Future как возвращаемое значение
  • Example#3429 - Пример, показывающий Future как точку синхронизации
  • Example#3430 - Получение фрагмента таблицы свойств
  • Example#3431 - Подсчёт свойств объекта
  • Example#3432 - Наследование во время выполнения
  • Example#3433 - Определение состояния указанного объекта
  • Example#3434 - Определение состояния указанного объекта
  • Example#3435 - Объединение с таблицей свойств связанного объекта
  • Example#3436 - Уведомления и ожидание
  • Example#3437 - Уведомления и ожидание
  • Example#3438 - Извлечение последнего элемента из таблицы свойств связанного объекта
  • Example#3439 - Перемещение первого элемента из таблицы свойств связанного объекта
  • Example#3440 - Синхронизация
  • Example#3441 - Уведомления и ожидание
  • Example#3442 - Возвращает идентификатор потока, который создал указанный поток
  • Example#3443 - Возвращает ссылку на текущий выполняющийся поток
  • Example#3444 - Возвращает идентификатор текущего выполняющегося потока
  • Example#3445 - Возвращает идентификатор указанного потока
  • Example#3446 - Сообщает, был ли присоединён указанный поток
  • Example#3447 - Сообщает, был ли запущен указанный поток
  • Example#3448 - Присоединение к указанному процессу
  • Example#3449 - Запуск потока
  • Example#3450 - Пример использования Worker::collect
  • Example#3451 - Пример использования Worker::getStacked
  • Example#3452 - Определение состояния
  • Example#3453 - Остановка Worker
  • Example#3454 - Помещение задачи на стек Worker для её запуска
  • Example#3455 - Удаление объектов из стека Worker
  • Example#3456 - Простой пример использования Pool::collect
  • Example#3457 - Создание пулов
  • Example#3458 - Выключение пула
  • Example#3459 - Отправка заданий
  • Example#3460 - Отправка задач конкретному воркеру
  • Example#3461 - Новая семантика иммутабельности Threaded
  • Example#3462 - Пример использования Volatile
  • Example#3463 - Обзор операций с разделяемой памятью
  • Example#3464 - Закрытие блока разделяемой памяти
  • Example#3465 - Удаление блока разделяемой памяти
  • Example#3466 - Резервирование участка разделяемой памяти
  • Example#3467 - Чтение данных из участка разделяемой памяти
  • Example#3468 - Получение размера блока разделяемой памяти
  • Example#3469 - Запись данных в участок разделяемой памяти
  • Example#3470 - Пример использования SyncMutex::__construct для создания именованного мьютекса со временем ожидания
  • Example#3471 - Пример использования SyncMutex::__construct для создания безымянного мьютекса
  • Example#3472 - Пример использования SyncMutex::lock
  • Example#3473 - Пример использования SyncMutex::unlock
  • Example#3474 - Пример использования SyncSemaphore::__construct
  • Example#3475 - Пример использования SyncSemaphore::lock
  • Example#3476 - Пример использования SyncSemaphore::unlock
  • Example#3477 - Пример использования SyncEvent::__construct
  • Example#3478 - Пример использования SyncEvent::fire
  • Example#3479 - SyncEvent::reset example
  • Example#3480 - Пример использования SyncEvent::wait
  • Example#3481 - Пример использования SyncReaderWriter::__construct
  • Example#3482 - Пример использования SyncReaderWriter::readlock
  • Example#3483 - Пример использования SyncReaderWriter::readunlock
  • Example#3484 - Пример использования SyncReaderWriter::writelock
  • Example#3485 - Пример использования SyncReaderWriter::writeunlock
  • Example#3486 - Пример использования SyncSharedMemory::__construct
  • Example#3487 - Пример использования SyncSharedMemory::first
  • Example#3488 - Пример использования SyncSharedMemory::__construct
  • Example#3489 - Пример использования SyncSharedMemory::size
  • Example#3490 - Пример использования SyncSharedMemory::write
  • Example#3491 - Пример использования geoip_asnum_by_name
  • Example#3492 - Пример использования geoip_continent_code_by_name
  • Example#3493 - Пример использования geoip_country_code_by_name
  • Example#3494 - Пример использования geoip_country_code3_by_name
  • Example#3495 - Пример использования geoip_country_name_by_name
  • Example#3496 - Пример использования geoip_database_info
  • Example#3497 - Пример использования geoip_db_avail
  • Example#3498 - Пример использования geoip_db_filename
  • Example#3499 - Пример использования geoip_db_get_all_info
  • Example#3500 - Пример использования geoip_db_get_all_info
  • Example#3501 - Пример использования geoip_domain_by_name
  • Example#3502 - Пример использования geoip_id_by_name
  • Example#3503 - Пример использования geoip_isp_by_name
  • Example#3504 - Пример использования geoip_netspeedcell_by_name
  • Example#3505 - Пример использованияgeoip_org_by_name
  • Example#3506 - Пример использования geoip_record_by_name
  • Example#3507 - Пример использования geoip_region_by_name
  • Example#3508 - Пример использования geoip_region_name_by_code (Для Канады/США)
  • Example#3509 - Пример использования geoip_region_name_by_code, используя коды FIPS
  • Example#3510 - Пример использования geoip_setup_custom_directory
  • Example#3511 - Пример использования geoip_time_zone_by_country_and_region для кода региона US/Canada
  • Example#3512 - Использование geoip_time_zone_by_country_and_region, используя коды FIPS
  • Example#3513 - Файл xor.data
  • Example#3514 - Простое обучение
  • Example#3515 - Тестирование
  • Example#3516 - Пример использования fann_create_train_from_callback
  • Example#3517 - Пример использования fann_read_train_from_file
  • Example#3518 - Пример использования igbinary_serialize
  • Example#3519 - Пример использования JsonSerializable::jsonSerialize, возвращающий массив (array)
  • Example#3520 - Пример использования JsonSerializable::jsonSerialize, возвращающий ассоциативный массив (array)
  • Example#3521 - Пример использования JsonSerializable::jsonSerialize, возвращающий целое значение (int)
  • Example#3522 - Пример использования JsonSerializable::jsonSerialize, возвращающий строку (string)
  • Example#3523 - Примеры использования json_decode
  • Example#3524 - Доступ к свойствам объектов с неправильными именами
  • Example#3525 - Распространённая ошибка при использовании json_decode
  • Example#3526 - Ошибки с глубиной вложенных объектов (depth)
  • Example#3527 - json_decode с большими целыми числами
  • Example#3528 - Пример использования json_encode
  • Example#3529 - Пример использования json_encode с опциями
  • Example#3530 - Пример использования опции JSON_NUMERIC_CHECK
  • Example#3531 - Пример с последовательными индексами, начинающимися с нуля, и непоследовательными индексами массивов
  • Example#3532 - Пример использования опции JSON_PRESERVE_ZERO_FRACTION
  • Example#3533 - Пример использования json_last_error
  • Example#3534 - Совместное использование json_last_error и json_encode
  • Example#3535 - json_last_error и JSON_THROW_ON_ERROR
  • Example#3536 - Пример использования json_validate
  • Example#3537 - Примеры использования simdjson_decode
  • Example#3538 - Доступ к недопустимым свойствам объекта
  • Example#3539 - Распространённые ошибки при использовании simdjson_decode
  • Example#3540 - Ошибки depth
  • Example#3541 - simdjson_decode больших целых чисел
  • Example#3542 - Пример использования simdjson_decode
  • Example#3543 - Ошибки depth
  • Example#3544 - Пример использования Lua::assign
  • Example#3545 - Пример использования Lua::call
  • Example#3546 - Пример использования Lua::eval
  • Example#3547 - Пример использования Lua::registerCallback
  • Example#3548 - Пример использованияLuaClosure::__invoke
  • Example#3549 - Выполните код Lua
  • Example#3550 - Вызов функции Lua
  • Example#3551 - Профилирование кода Lua
  • Example#3552 - Загрузка кода в Lua
  • Example#3553 - Управление таймером использования
  • Example#3554 - Регистрация PHP-функций для вызова из Lua
  • Example#3555 - Вызов функции Lua
  • Example#3556 - Вызов функции Lua
  • Example#3557 - Пример использования constant с константами
  • Example#3558 - Пример использования constant с вариантами перечисления (начиная с PHP 8.1.0)
  • Example#3559 - Определение констант
  • Example#3560 - Определение констант зарезервированными именами
  • Example#3561 - Проверка констант
  • Example#3562 - Проверка вариантов перечисления (начиная с PHP 8.1.0)
  • Example#3563 - Пример функции eval — простое слияние текста
  • Example#3564 - Пример использования exit
  • Example#3565 - Пример использования exit со статусом выхода
  • Example#3566 - Функции выключения и деструкторы выполняются независимо
  • Example#3567 - Вывод информации о браузере пользователя
  • Example#3568 - Пример использования __halt_compiler
  • Example#3569 - Пример использования highlight_string
  • Example#3570 - Пример использования hrtime
  • Example#3571 - Пример использования ignore_user_abort
  • Example#3572 - Пример использования pack
  • Example#3573 - Пример использования php_strip_whitespace
  • Example#3574 - Использование sapi_windows_generate_ctrl_event
  • Example#3575 - Использование sapi_windows_set_ctrl_handler
  • Example#3576 - Состояние sapi_windows_vt100_support по умолчанию
  • Example#3577 - Изменение состояния с помощью sapi_windows_vt100_support
  • Example#3578 - Пример использования с поддержкой VT100
  • Example#3579 - Пример использования sleep
  • Example#3580 - Пример использования sys_getloadavg
  • Example#3581 - Пример использования time_nanosleep
  • Example#3582 - Пример использования time_sleep_until
  • Example#3583 - Пример использования uniqid
  • Example#3584 - Пример использования unpack
  • Example#3585 - Пример использования unpack с замещающим аргументом
  • Example#3586 - Пример использования unpack с безымянными ключами
  • Example#3587 - Пример использования usleep
  • Example#3588 - Пример использования Random
  • Example#3589 - Пример использования mt_rand
  • Example#3590 - Пример использования rand
  • Example#3591 - Пример использования random_bytes
  • Example#3592 - Пример использования random_int
  • Example#3593 - Пример использования Random\Randomizer::__construct
  • Example#3594 - Пример использования Random\Randomizer::getBytes
  • Example#3595 - Random\Randomizer::getBytesFromString example
  • Example#3596 - Generate a random code for multi-factor authentication
  • Example#3597 - Select from a string with a non-uniform distribution
  • Example#3598 - Random\Randomizer::getFloat example
  • Example#3599 - Пример использования Random\Randomizer::getInt
  • Example#3600 - Random\Randomizer::nextFloat example
  • Example#3601 - Incorrect scaling using an affine transformation
  • Example#3602 - Пример использования Random\Randomizer::nextInt
  • Example#3603 - Пример использования Random\Randomizer::pickArrayKeys
  • Example#3604 - Выбор случайных значений
  • Example#3605 - Пример использования Random\Randomizer::__serialize
  • Example#3606 - Пример использования Random\Randomizer::shuffleArray
  • Example#3607 - Пример использования Random\Randomizer::shuffleBytes
  • Example#3608 - Byte-wise shuffling breaks Unicode characters
  • Example#3609 - Пример использования Random\Randomizer::__unserialize
  • Example#3610 - Пример использования Random\Engine::generate
  • Example#3611 - Пример использования Random\Engine\Mt19937::__construct
  • Example#3612 - Пример использования Random\Engine\Mt19937::__debugInfo
  • Example#3613 - Пример использования Random\Engine\Mt19937::__serialize
  • Example#3614 - Пример использования Random\Engine\Mt19937::__unserialize
  • Example#3615 - Пример использования Random\Engine\PcgOneseq128XslRr64::__construct
  • Example#3616 - Выведение значения из строки (string)
  • Example#3617 - Пример использования Random\Engine\PcgOneseq128XslRr64::__debugInfo
  • Example#3618 - Пример использования Random\Engine\PcgOneseq128XslRr64::jump
  • Example#3619 - Методы Randomizer могут вызывать движок более одного раза
  • Example#3620 - Пример использования Random\Engine\PcgOneseq128XslRr64::__serialize
  • Example#3621 - Пример использования Random\Engine\PcgOneseq128XslRr64::__unserialize
  • Example#3622 - Пример использования Random\Engine\Xoshiro256StarStar::__construct
  • Example#3623 - Выведение значения из строки (string)
  • Example#3624 - Пример использования Random\Engine\Xoshiro256StarStar::__debugInfo
  • Example#3625 - Пример использования Random\Engine\Xoshiro256StarStar::jump
  • Example#3626 - Пример использования Random\Engine\Xoshiro256StarStar::jumpLong
  • Example#3627 - Пример использования Random\Engine\Xoshiro256StarStar::__serialize
  • Example#3628 - Пример использования Random\Engine\Xoshiro256StarStar::__unserialize
  • Example#3629 - Получает и устанавливает базовый путь
  • Example#3630 - Получает и устанавливает логирование
  • Example#3631 - Журнал быстрой записи
  • Example#3632 - Быстрый подсчёт некоторого типа значения подсчёта журнала
  • Example#3633 - Получает некоторый тип списка журналов
  • Example#3634 - Пример использования seaslog_get_author
  • Example#3635 - Пример использования seaslog_get_version
  • Example#3636 - Пример использования SeasLog::alert
  • Example#3637 - Пример использования SeasLog::analyzerCount
  • Example#3638 - Пример использования SeasLog::analyzerDetail
  • Example#3639 - Пример использования SeasLog::closeLoggerStream
  • Example#3640 - Пример использования SeasLog::__construct
  • Example#3641 - Пример использования SeasLog::critical
  • Example#3642 - SeasLog::debug example
  • Example#3643 - Пример использования SeasLog::__destruct
  • Example#3644 - Пример использования SeasLog::emergency
  • Example#3645 - Пример использования SeasLog::error
  • Example#3646 - Пример использования SeasLog::flushBuffer
  • Example#3647 - Пример использования SeasLog::getBasePath
  • Example#3648 - Пример использования SeasLog::getBuffer
  • Example#3649 - Пример использования SeasLog::getBufferEnabled
  • Example#3650 - Пример использования SeasLog::getDatetimeFormat
  • Example#3651 - Пример использования SeasLog::getLastLogger
  • Example#3652 - Пример использования SeasLog::getRequestID
  • Example#3653 - Пример использования SeasLog::getRequestVariable
  • Example#3654 - Пример использования SeasLog::info
  • Example#3655 - Пример использования SeasLog::log
  • Example#3656 - Пример использования SeasLog::notice
  • Example#3657 - Пример использования SeasLog::setBasePath
  • Example#3658 - Пример использования SeasLog::setDatetimeFormat
  • Example#3659 - Пример использования SeasLog::setLogger
  • Example#3660 - Пример использования SeasLog::setRequestID
  • Example#3661 - Пример использования SeasLog::setRequestVariable
  • Example#3662 - Пример использования SeasLog::warning
  • Example#3663 - Пример использования SplStack
  • Example#3664 - Пример использования SplQueue
  • Example#3665 - Эффективное решение задач с помощью SplQueue
  • Example#3666 - Пример использования SplFixedArray
  • Example#3667 - Пример использования SplFixedArray::__construct
  • Example#3668 - Пример SplFixedArray::count
  • Example#3669 - Пример использования SplFixedArray::fromArray
  • Example#3670 - Пример использования SplFixedArray::getSize
  • Example#3671 - Пример использования SplFixedArray::setSize
  • Example#3672 - Пример использования SplFixedArray::toArray
  • Example#3673 - Класс SplObjectStorage как набор объектов
  • Example#3674 - Класс SplObjectStorage как отображение объектов в данные
  • Example#3675 - Пример использования SplObjectStorage::addAll
  • Example#3676 - Пример использования SplObjectStorage::attach
  • Example#3677 - Пример использования SplObjectStorage::contains
  • Example#3678 - Пример использования SplObjectStorage::count
  • Example#3679 - Пример использования SplObjectStorage::current
  • Example#3680 - Пример использования SplObjectStorage::detach
  • Example#3681 - Пример использования SplObjectStorage::getHash
  • Example#3682 - Пример использования SplObjectStorage::getInfo
  • Example#3683 - Пример использования SplObjectStorage::key
  • Example#3684 - Пример использования SplObjectStorage::next
  • Example#3685 - Пример использования SplObjectStorage::offsetExists
  • Example#3686 - Пример использования SplObjectStorage::offsetGet
  • Example#3687 - Пример использования SplObjectStorage::offsetSet
  • Example#3688 - Пример использования SplObjectStorage::offsetUnset
  • Example#3689 - Пример использования SplObjectStorage::removeAll
  • Example#3690 - Пример использования SplObjectStorage::removeAllExcept
  • Example#3691 - Пример использования SplObjectStorage::rewind
  • Example#3692 - Пример использования SplObjectStorage::serialize
  • Example#3693 - Пример использования SplObjectStorage::setInfo
  • Example#3694 - Пример использования SplObjectStorage::unserialize
  • Example#3695 - Пример использования SplObjectStorage::valid
  • Example#3696 - Пример использованияAppendIterator::append
  • Example#3697 - Итерация AppendIterator с помощью foreach
  • Example#3698 - Итерация AppendIterator с помощью AppendIterator API
  • Example#3699 - Пример использования AppendIterator.getIteratorIndex
  • Example#3700 - Пример использования AppendIterator::key
  • Example#3701 - Пример использования ArrayIterator::current
  • Example#3702 - Пример использования ArrayIterator::key
  • Example#3703 - Пример использования ArrayIterator::next
  • Example#3704 - Пример использования ArrayIterator::rewind
  • Example#3705 - Пример использования ArrayIterator::valid
  • Example#3706 - Пример использования CachingIterator::getCache
  • Example#3707 - Доступные аргументы обратного вызова
  • Example#3708 - Основные примеры обратного вызова
  • Example#3709 - Пример использования DirectoryIterator::__construct
  • Example#3710 - Пример использования DirectoryIterator::current
  • Example#3711 - Пример использования DirectoryIterator::getBasename
  • Example#3712 - Пример использования DirectoryIterator::getExtension
  • Example#3713 -
  • Example#3714 - Пример использования DirectoryIterator::getFilename
  • Example#3715 - Пример использования DirectoryIterator::isDot
  • Example#3716 - Пример использования DirectoryIterator::key
  • Example#3717 - Пример использования DirectoryIterator::next
  • Example#3718 - Пример использования DirectoryIterator::rewind
  • Example#3719 - Пример использования DirectoryIterator::seek
  • Example#3720 - Пример использования DirectoryIterator::__toString
  • Example#3721 - Пример использования DirectoryIterator::valid
  • Example#3722 - Пример использования FilesystemIterator::__construct
  • Example#3723 - Пример использования FilesystemIterator::current
  • Example#3724 - Пример использования FilesystemIterator::key
  • Example#3725 - Пример использования FilesystemIterator::next
  • Example#3726 - Пример использования FilesystemIterator::rewind
  • Example#3727 - Пример использования FilesystemIterator::key
  • Example#3728 - Пример использования FilterIterator::accept
  • Example#3729 - Пример использования GlobIterator
  • Example#3730 - Пример использования GlobIterator::count
  • Example#3731 - Пример использования InfiniteIterator::__construct
  • Example#3732 - Пример использования LimitIterator
  • Example#3733 - Пример использования LimitIterator::__construct
  • Example#3734 - Пример использования LimitIterator::getPosition
  • Example#3735 - Итерирование MultipleIterator
  • Example#3736 - Пример использования NoRewindIterator::__construct
  • Example#3737 - Пример использования NoRewindIterator::rewind
  • Example#3738 - Пример использования RecursiveArrayIterator::getChildren
  • Example#3739 - Пример использования RecursiveArrayIterator::hasChildren
  • Example#3740 - Доступные аргументы callback-функции
  • Example#3741 - Простой пример рекурсивного обратного вызова
  • Example#3742 - Пример использования RecursiveCallbackFilterIterator::hasChildren
  • Example#3743 - Пример использования RecursiveDirectoryIterator
  • Example#3744 - Пример использования getSubPath
  • Example#3745 - Пример использования getSubPathname
  • Example#3746 - Пример использования RecursiveFilterIterator
  • Example#3747 - Ещё пример с RecursiveFilterIterator
  • Example#3748 - Итерация по дереву элементов с помощью RecursiveIteratorIterator
  • Example#3749 - Пример использования RecursiveRegexIterator::__construct
  • Example#3750 - Пример использования RecursiveRegexIterator::getChildren
  • Example#3751 - Пример использования RecursiveRegexIterator::hasChildren
  • Example#3752 - Пример использования RegexIterator::accept
  • Example#3753 - Пример использования RegexIterator::__construct
  • Example#3754 - Пример использования RegexIterator::getFlags
  • Example#3755 - Пример использования RegexIterator::getMode
  • Example#3756 - Пример использования RegexIterator::getPregFlags
  • Example#3757 - Пример использования RegexIterator::setFlags
  • Example#3758 - Пример использования RegexIterator::setMode
  • Example#3759 - Пример использования RegexIterator::setPregFlags
  • Example#3760 - Пример использования Countable::count
  • Example#3761 - Простое использование
  • Example#3762 - Пример использования SeekableIterator::seek
  • Example#3763 - Пример использования class_implements
  • Example#3764 - Пример использования class_parents
  • Example#3765 - Пример использования class_uses
  • Example#3766 - Пример использования iterator_apply
  • Example#3767 - Пример использования iterator_count
  • Example#3768 - iterator_count модифицирует позицию
  • Example#3769 - iterator_count в цикле foreach
  • Example#3770 - Пример использования iterator_to_array
  • Example#3771 - Пример использования spl_autoload_extensions
  • Example#3772 - spl_autoload_register как альтернатива функции __autoload
  • Example#3773 - Пример использования spl_autoload_register в случае, если класс не загрузился
  • Example#3774 - Идентификатор будет предоставлен без ведущего обратного слеша
  • Example#3775 - Пример использования spl_classes
  • Example#3776 - Пример использования spl_object_hash
  • Example#3777 - Пример использования spl_object_id
  • Example#3778 - Пример использования SplFileInfo::__construct
  • Example#3779 - Пример использования SplFileInfo::getATime
  • Example#3780 - Пример использования SplFileInfo::getBasename
  • Example#3781 - Пример использования SplFileInfo::getCTime
  • Example#3782 - Пример использования SplFileInfo::getExtension
  • Example#3783 -
  • Example#3784 - Пример использования SplFileInfo::getFilename
  • Example#3785 - Пример использования SplFileInfo::getGroup
  • Example#3786 - Пример использования SplFileInfo::getLinkTarget
  • Example#3787 - Пример использования SplFileInfo::getMTime
  • Example#3788 - Пример использования SplFileInfo::getOwner
  • Example#3789 - Пример использования SplFileInfo::getPath
  • Example#3790 - Пример использования SplFileInfo::getPathInfo
  • Example#3791 - Пример использования SplFileInfo::getPathname
  • Example#3792 - Пример использования SplFileInfo::getPerms
  • Example#3793 - Пример использования SplFileInfo::getRealPath
  • Example#3794 - Пример использования SplFileInfo::getSize
  • Example#3795 - Пример использования SplFileInfo::getType
  • Example#3796 - Пример использования SplFileInfo::isDir
  • Example#3797 - Пример использования SplFileInfo::isExecutable
  • Example#3798 - Пример использования SplFileInfo::isFile
  • Example#3799 - Пример использования SplFileInfo::isLink
  • Example#3800 - Пример использования SplFileInfo::isReadable
  • Example#3801 - Пример использования SplFileInfo::isWriteable
  • Example#3802 - Пример использования SplFileInfo::openFile
  • Example#3803 - Пример использования SplFileInfo::setFileClass
  • Example#3804 - Пример использования SplFileInfo::setFileClass
  • Example#3805 - Пример использования SplFileInfo::__toString
  • Example#3806 - Пример использования SplFileObject::__construct
  • Example#3807 - Пример использования SplFileObject::current
  • Example#3808 - Пример использования SplFileObject::eof
  • Example#3809 - Пример использования SplFileObject::fflush
  • Example#3810 - Пример использования SplFileObject::fgetc
  • Example#3811 - Пример использования SplFileObject::fgetcsv
  • Example#3812 - Пример использования SplFileObject::READ_CSV
  • Example#3813 - Пример использования SplFileObject::fgets
  • Example#3814 - Пример использования SplFileObject::fgetss
  • Example#3815 - Пример использования SplFileObject::flock
  • Example#3816 - Пример использования SplFileObject::fpassthru
  • Example#3817 - Пример SplFileObject::fputcsv
  • Example#3818 - Пример SplFileObject::fread
  • Example#3819 - Пример использования SplFileObject::fscanf
  • Example#3820 - Пример использования SplFileObject::fseek
  • Example#3821 - Пример использования SplFileObject::fstat
  • Example#3822 - Пример использования SplFileObject::ftell
  • Example#3823 - Пример использования SplFileObject::ftruncate
  • Example#3824 - Пример использования SplFileObject::fwrite
  • Example#3825 - Пример использования SplFileObject::getCsvControl
  • Example#3826 - Пример использования SplFileObject::getFlags
  • Example#3827 - Пример использования SplFileObject::getMaxLineLen
  • Example#3828 - Пример использования SplFileObject::key
  • Example#3829 - Пример использования SplFileObject::key при задании длины строки методом SplFileObject::setMaxLineLen
  • Example#3830 - Пример использования SplFileObject::next
  • Example#3831 - Пример использования SplFileObject::rewind
  • Example#3832 - Пример использования SplFileObject::seek
  • Example#3833 - Пример использования SplFileObject::setCsvControl
  • Example#3834 - Пример использования SplFileObject::setFlags
  • Example#3835 - Пример использования SplFileObject::setMaxLineLen
  • Example#3836 - Пример использования SplFileObject::valid
  • Example#3837 - Пример использования SplTempFileObject
  • Example#3838 - Пример использования ArrayObject::append
  • Example#3839 - Пример использования ArrayObject::asort
  • Example#3840 - Пример использования ArrayObject::__construct
  • Example#3841 - Пример использования ArrayObject::count
  • Example#3842 - Пример использования ArrayObject::exchangeArray
  • Example#3843 - Пример использования ArrayObject::getArrayCopy
  • Example#3844 - Пример использования ArrayObject::getFlags
  • Example#3845 - Пример использования ArrayObject::getIterator
  • Example#3846 - Пример использования ArrayObject::getIteratorClass
  • Example#3847 - Пример использования ArrayObject::ksort
  • Example#3848 - Пример использования ArrayObject::natcasesort
  • Example#3849 - Пример использования ArrayObject::natsort
  • Example#3850 - Пример использования ArrayObject::offsetExists
  • Example#3851 - Пример использования ArrayObject::offsetGet
  • Example#3852 - Пример использования ArrayObject::offsetSet
  • Example#3853 - Пример использования ArrayObject::offsetUnset
  • Example#3854 - Пример использования ArrayObject::serialize
  • Example#3855 - Пример использования ArrayObject::setFlags
  • Example#3856 - Пример использования ArrayObject::setIteratorClass
  • Example#3857 - Пример использования ArrayObject::uasort
  • Example#3858 - Пример использования ArrayObject::uksort
  • Example#3859 - Использование file_get_contents для получения данных из различных источников
  • Example#3860 - Осуществление POST-запроса к https-серверу
  • Example#3861 - Запись данных в сжатый файл
  • Example#3862 - Поток для чтения/записи глобальных переменных
  • Example#3863 - Получение списка файлов из tar-архивов
  • Example#3864 - Примеры использования stream_bucket_prepend
  • Example#3865 - Использование stream_context_create
  • Example#3866 - Пример использования stream_context_get_default
  • Example#3867 - Пример использования stream_context_get_options
  • Example#3868 - Пример использования stream_context_get_params
  • Example#3869 - stream_context_set_default example
  • Example#3870 - stream_context_set_options example
  • Example#3871 - Пример использования stream_copy_to_stream
  • Example#3872 - Контроль применения фильтров
  • Example#3873 - Фильтр для перевода букв в верхний регистр в потоке foo-bar.txt
  • Example#3874 - Регистрация стандартного фильтра, соответствующего множественным именам фильтров.
  • Example#3875 - Динамическое изменение фильтров потока
  • Example#3876 - Пример использования stream_get_contents
  • Example#3877 - Пример использования функции stream_get_filters
  • Example#3878 - Пример использования stream_get_meta_data с использованием fopen с http
  • Example#3879 - Пример использования stream_get_meta_data с использованием stream_socket_client с https
  • Example#3880 - Пример использования stream_get_transports
  • Example#3881 - Пример использования stream_get_wrappers
  • Example#3882 - Проверка существования обёртки потока
  • Example#3883 - Пример выполненияstream_is_local
  • Example#3884 - Пример выполнения stream_isatty
  • Example#3885 - Пример использования stream_notification_callback
  • Example#3886 - Простой индикатор для загрузчика файлов из командной строки
  • Example#3887 - Пример использования stream_resolve_include_path
  • Example#3888 - Пример использования stream_select
  • Example#3889 - Пример использования stream_set_timeout
  • Example#3890 - Пример использования stream_set_write_buffer
  • Example#3891 - Пример использования stream_socket_client
  • Example#3892 - Использование UDP-соединения
  • Example#3893 - Пример использования stream_socket_enable_crypto
  • Example#3894 - Пример использования stream_socket_pair
  • Example#3895 - Пример использования функции stream_socket_recvfrom
  • Example#3896 - Пример использования stream_socket_sendto
  • Example#3897 - Пример использования серверных сокетов TCP
  • Example#3898 - Пример использования серверных сокетов UDP
  • Example#3899 - Пример использования stream_socket_shutdown
  • Example#3900 - Как зарегистрировать обёртку потока
  • Example#3901 - Базовые возможности использования Tidy
  • Example#3902 - Пример использования tidy::getBody
  • Example#3903 - Пример использования tidy::cleanrepair
  • Example#3904 - Пример использования tidy::__construct
  • Example#3905 - Пример использования tidy::diagnose
  • Example#3906 - Пример использования tidy_get_error_buffer
  • Example#3907 - Пример использования tidy::getConfig
  • Example#3908 - Пример использования tidy_getopt
  • Example#3909 - Печать всех опций вместе с описанием и значением по умолчанию
  • Example#3910 - Пример использования tidy::getStatus
  • Example#3911 - Пример использования tidy::head
  • Example#3912 - Пример использования tidy::html
  • Example#3913 - Пример использования tidy::parseFile
  • Example#3914 - Пример использования tidy::parseString
  • Example#3915 - Пример использования tidy::repairFile
  • Example#3916 - Пример использования tidy::repairString
  • Example#3917 - Пример использования tidy::root
  • Example#3918 - Пример использования функции tidyNode::getParent
  • Example#3919 - Пример использования функции tidyNode::hasChildren
  • Example#3920 - Пример использования функции tidyNode::hasSiblings
  • Example#3921 - Извлечение кода ASP из смешанного HTML-документа
  • Example#3922 - Извлечение комментариев из смешанного HTML-документа
  • Example#3923 - Извлечение HTML-кода из смешанного HTML-документа
  • Example#3924 - Извлечение JSTE-кода из смешанного HTML-документа
  • Example#3925 - Извлечение PHP-кода из смешанного HTML-документа
  • Example#3926 - Извлечение обычного текста из смешанного HTML-документа
  • Example#3927 - Пример использования ob_tidyhandler
  • Example#3928 - Пример использования tidy_access_count
  • Example#3929 - Пример использования tidy_config_count
  • Example#3930 - Пример использования tidy_error_count
  • Example#3931 - Пример использования tidy_get_output
  • Example#3932 - Пример использования tidy_warning_count
  • Example#3933 - Удаление комментариев лексером
  • Example#3934 - Пример использования PhpToken::getTokenName
  • Example#3935 - Пример использования PhpToken::is
  • Example#3936 - Использование с массивом
  • Example#3937 - Пример использования PhpToken::isIgnorable
  • Example#3938 - Пример использования PhpToken::__toString
  • Example#3939 - Пример использования PhpToken::tokenize
  • Example#3940 - Расширение PhpToken
  • Example#3941 - token_get_all example
  • Example#3942 - Пример неправильного использования token_get_all
  • Example#3943 - Пример использования token_get_all с классом, использующим зарезервированные слова
  • Example#3944 - Пример использования token_name
  • Example#3945 - Пример использования base64_decode
  • Example#3946 - Пример использования base64_encode
  • Example#3947 - Пример использования get_headers
  • Example#3948 - Пример использования запроса HEAD в функцииget_headers
  • Example#3949 - Что обрабатывает функция get_meta_tags
  • Example#3950 - Что возвращает функция get_meta_tags
  • Example#3951 - Простой пример использования http_build_query
  • Example#3952 - Пример использования http_build_query с числовыми индексами элементов.
  • Example#3953 - Пример использования http_build_query с многомерными массивами
  • Example#3954 - Пример использования http_build_query с объектом
  • Example#3955 - Пример использования parse_url
  • Example#3956 - Пример использования parse_url при отсутствии протокола
  • Example#3957 - Пример использования rawurldecode
  • Example#3958 - Пример использования rawurlencode для включение пароля в URL FTP
  • Example#3959 - Пример использования rawurlencode
  • Example#3960 - Пример использования urldecode
  • Example#3961 - Пример использования urlencode
  • Example#3962 - Пример использования urlencode и htmlentities
  • Example#3963 - Запуск Javascript
  • Example#3964 - Пример работы с Yaml
  • Example#3965 - Пример использования callback-функции парсинга
  • Example#3966 - Пример публикующей callback-функции
  • Example#3967 - Пример использования yaml_emit
  • Example#3968 - Пример использования yaml_parse
  • Example#3969 - Классический пример каталога для приложения
  • Example#3970 - Введение
  • Example#3971 - Правила перенаправления
  • Example#3972 - Конфигурация приложения
  • Example#3973 - Контроллер по умолчанию
  • Example#3974 - Шаблон вывода по умолчанию
  • Example#3975 - Запуск приложения
  • Example#3976 - Пример PHP массива
  • Example#3977 - Пример INI файла
  • Example#3978 - Пример использования Bootstrap
  • Example#3979 - Пример использования Yaf_Application::bootstrap
  • Example#3980 - Пример использования Yaf_Application::clearLastError
  • Example#3981 - Пример ini-файла
  • Example#3982 - Пример использования Yaf_Application::__construct
  • Example#3983 - Пример использования Yaf_Application::__construct
  • Example#3984 - Пример использования Yaf_Application::environ
  • Example#3985 - Пример использования Yaf_Application::execute
  • Example#3986 - Пример использования Yaf_Application::getConfig
  • Example#3987 - Пример использования Yaf_Application::getDispatcher
  • Example#3988 - Пример использования Yaf_Application::getLastErrorMsg
  • Example#3989 - Пример использования Yaf_Application::getLastErrorNo
  • Example#3990 - Пример использования Yaf_Application::getModules
  • Example#3991 - Пример использования Bootstrap
  • Example#3992 - Пример использования Yaf_Dispatcher::autoRender
  • Example#3993 - Пример использования Yaf_Dispatcher::catchException
  • Example#3994 - Пример использования Yaf_Dispatcher::registerPlugin
  • Example#3995 - Пример использования пользовательского движка отображения
  • Example#3996 - Пример использования Yaf_Dispatcher::setView
  • Example#3997 - Пример использования Yaf_Dispatcher::throwexception
  • Example#3998 - Пример использования Yaf_Dispatcher::throwexception
  • Example#3999 - Yaf_Config_Iniexample
  • Example#4000 - Определение действия в отдельном файле
  • Example#4001 - Dummy_action.php
  • Example#4002 - Пример использования Yaf_Controller_Abstract::forward
  • Example#4003 - Пример использования Yaf_Action_Abstract::execute
  • Example#4004 - Пример использования Yaf_Action_Abstract::execute
  • Example#4005 - Пример использования Yaf_View_Simple::assign
  • Example#4006 - Пример использования template
  • Example#4007 - Пример использования Yaf_View_Simple::assignRef
  • Example#4008 - Пример использования template
  • Example#4009 - Пример использования Yaf_View_Simple::clear
  • Example#4010 - Пример использования Yaf_View_Simple::__constructor
  • Example#4011 - Пример использования Yaf_View_Simple::__setexampl
  • Example#4012 - Пример конфигурации
  • Example#4013 - Зарегистрировать локальное пространство имён
  • Example#4014 - Пример загрузки класса
  • Example#4015 - Пример загрузки класса имён
  • Example#4016 - Пример загрузки класса MVC
  • Example#4017 - Классовые различия MVC
  • Example#4018 - Пример загрузки MVC
  • Example#4019 - Пример использования Yaf_Loader::registerNamespace
  • Example#4020 - Пример использования Yaf_Loader::registerLocalNamespace
  • Example#4021 - Пример использования Yaf_Loader::registerNamespace
  • Example#4022 - Пример плагина
  • Example#4023 - Пример использования Yaf_Plugin_Abstract::routerShutdown
  • Example#4024 - Пример использования Yaf_Response_Abstract::appendBody
  • Example#4025 - Пример использования Yaf_Response_Abstract::getBody
  • Example#4026 - Пример использования Yaf_Response_Abstract::prependBody
  • Example#4027 - Пример использования Yaf_Response_Abstract::response
  • Example#4028 - Пример использования Yaf_Response_Abstract::setBody
  • Example#4029 - Пример использования Yaf_Route_Map::assemble
  • Example#4030 - Пример использования Yaf_Route_Map
  • Example#4031 - Пример использования Yaf_Route_Map
  • Example#4032 - Пример использования Yaf_Route_Map
  • Example#4033 - Пример использования Yaf_Route_Regex::assemble
  • Example#4034 - Пример использования Yaf_Route_Regex
  • Example#4035 - Пример использования Yaf_Route_Regex (с версии 2.3.0)
  • Example#4036 - Пример использования Yaf_Route_Regex с именованными совпадениями (с версии 2.3.0)
  • Example#4037 - Пример использования Yaf_Route_Regex
  • Example#4038 - Пример использования Yaf_Route_Rewrite::assemble
  • Example#4039 - Пример использования Yaf_Route_Rewrite
  • Example#4040 - Пример использования Yaf_Route_Rewrite
  • Example#4041 - Пример использования Yaf_Route_Rewrite(as of 2.3.0)
  • Example#4042 - Правило перезаписи для Apache
  • Example#4043 - Правило перезаписи для Apache
  • Example#4044 - Правило перезаписи для Lighttpd
  • Example#4045 - Правило перезаписи для Nginx
  • Example#4046 - Пример использования Yaf_Route_Static(маршрут по умолчанию)
  • Example#4047 - Пример использования application.ini
  • Example#4048 - Пример использования Yaf_Dispatcher::autoConfig
  • Example#4049 - Пример использования Yaf_Dispatcher::autoRender
  • Example#4050 - Регистрация некоторых маршрутов в Bootstrap
  • Example#4051 - Плагин Dummy.php (в application.directory/plugins)
  • Example#4052 - Пример использования Yaf_Route_Simple::assemble
  • Example#4053 - Пример использования Yaf_Route_Simple::route
  • Example#4054 - Пример использования Yaf_Route_Simple::route
  • Example#4055 - Пример использования Yaf_Route_Static::assemble
  • Example#4056 - Пример использования Yaf_Route_Static::route
  • Example#4057 - Пример использования Yaf_Route_Supervar::assemble
  • Example#4058 - Пример использования Yaf_Route_Supervar
  • Example#4059 - Пример INI
  • Example#4060 - Пример INI с разделами
  • Example#4061 - Пример INI
  • Example#4062 - Пример использования Taint
  • Example#4063 - Vector
  • Example#4064 - Map
  • Example#4065 - Пример Ds\Collection::clear
  • Example#4066 - Пример Ds\Collection::copy
  • Example#4067 - Пример Ds\Collection::isEmpty
  • Example#4068 - Пример Ds\Collection::toArray
  • Example#4069 - Пример использованияDs\Hashable::hash
  • Example#4070 - Пример использования Ds\Sequence::allocate
  • Example#4071 - Пример использования Ds\Sequence::apply
  • Example#4072 - Пример использования Ds\Sequence::capacity
  • Example#4073 - Пример использования Ds\Sequence::contains
  • Example#4074 - Пример использования Ds\Sequence::filter с callback-функцией
  • Example#4075 - Пример использования Ds\Sequence::filter без callback-функции
  • Example#4076 - Пример использования Ds\Sequence::find
  • Example#4077 - Пример использования Ds\Sequence::first
  • Example#4078 - Пример использования Ds\Sequence::get
  • Example#4079 - Пример использования Ds\Sequence::get с синтаксисом массива
  • Example#4080 - Пример использования Ds\Sequence::insert
  • Example#4081 - Пример использования Ds\Sequence::join с разделителем
  • Example#4082 - Пример использования Ds\Sequence::join без разделителя
  • Example#4083 - Пример использования Ds\Sequence::last
  • Example#4084 - Пример использования Ds\Sequence::map
  • Example#4085 - Пример использования Ds\Sequence::merge
  • Example#4086 - Пример использования Ds\Sequence::pop
  • Example#4087 - Пример использования Ds\Sequence::push
  • Example#4088 - Пример использования Ds\Sequence::reduce с начальным значением
  • Example#4089 - Пример использования Ds\Sequence::reduce без начального значения
  • Example#4090 - Пример использования Ds\Sequence::remove
  • Example#4091 - Пример использования Ds\Sequence::reverse
  • Example#4092 - Пример использования Ds\Sequence::reversed
  • Example#4093 - Пример использования Ds\Sequence::rotate
  • Example#4094 - Пример использования Ds\Sequence::set
  • Example#4095 - Пример использования Ds\Sequence::set с синтаксисом массива
  • Example#4096 - Пример использования Ds\Sequence::shift
  • Example#4097 - Пример использования Ds\Sequence::slice
  • Example#4098 - Пример использования Ds\Sequence::sort
  • Example#4099 - Пример использования Ds\Sequence::sort с callback-функцией сравнения
  • Example#4100 - Пример использования Ds\Sequence::sorted
  • Example#4101 - Пример использования Ds\Sequence::sorted с callback-функцией сравнения
  • Example#4102 - Пример использования Ds\Sequence::sum с целочисленными значениями
  • Example#4103 - Пример использования Ds\Sequence::sum со значениями типа float
  • Example#4104 - Пример использования Ds\Sequence::unshift
  • Example#4105 - Пример использования Ds\Vector::allocate
  • Example#4106 - Пример использования Ds\Vector::apply
  • Example#4107 - Пример использования Ds\Vector::capacity
  • Example#4108 - Пример использования Ds\Vector::clear
  • Example#4109 - Пример использования Ds\Vector::__construct
  • Example#4110 - Пример использования Ds\Vector::contains
  • Example#4111 - Пример использования Ds\Vector::copy
  • Example#4112 - Пример Ds\Vector::filter с использованием callback-функции
  • Example#4113 - Пример Ds\Vector::filter без callback-функции
  • Example#4114 - Пример использования Ds\Vector::find
  • Example#4115 - Пример использования Ds\Vector::first
  • Example#4116 - Пример использования Ds\Vector::get
  • Example#4117 - Пример использования Ds\Vector::get с синтаксисом массива
  • Example#4118 - Пример использования Ds\Vector::insert
  • Example#4119 - Пример использования Ds\Vector::isEmpty
  • Example#4120 - Пример использования Ds\Vector::join с разделителем
  • Example#4121 - Пример использования Ds\Vector::join без разделителя
  • Example#4122 - Пример использования Ds\Vector::last
  • Example#4123 - Пример использования Ds\Vector::map
  • Example#4124 - Пример использования Ds\Vector::merge
  • Example#4125 - Пример использования Ds\Vector::pop
  • Example#4126 - Пример использования Ds\Vector::push
  • Example#4127 - Пример использования Ds\Vector::reduce с начальным значением
  • Example#4128 - Пример использования Ds\Vector::reduce без начального значения
  • Example#4129 - Пример использования Ds\Vector::remove
  • Example#4130 - Пример использования Ds\Vector::reverse
  • Example#4131 - Пример использования Ds\Vector::reversed
  • Example#4132 - Пример использования Ds\Vector::rotate
  • Example#4133 - Пример использования Ds\Vector::set
  • Example#4134 - Пример использования Ds\Vector::set с синтаксисом массива
  • Example#4135 - Пример использования Ds\Vector::shift
  • Example#4136 - Пример использования Ds\Vector::slice
  • Example#4137 - Пример использования Ds\Vector::sort
  • Example#4138 - Пример использования Ds\Vector::sort с callback-функцией сравнения
  • Example#4139 - Пример использования Ds\Vector::sorted
  • Example#4140 - Пример использования Ds\Vector::sorted с callback-функцией сравнения
  • Example#4141 - Пример использования Ds\Vector::sum с целочисленными значениями
  • Example#4142 - Пример использования Ds\Vector::sum со значениями типа float
  • Example#4143 - Пример использования Ds\Vector::toArray
  • Example#4144 - Пример использования Ds\Vector::unshift
  • Example#4145 - Пример использования Ds\Deque::allocate
  • Example#4146 - Пример использования Ds\Deque::apply
  • Example#4147 - Пример использования Ds\Deque::capacity
  • Example#4148 - Пример использования Ds\Deque::clear
  • Example#4149 - Пример использования Ds\Deque::__construct
  • Example#4150 - Пример использования Ds\Deque::contains
  • Example#4151 - Пример использования Ds\Deque::copy
  • Example#4152 - Пример Ds\Deque::filter с использованием callback-функции
  • Example#4153 - Пример Ds\Deque::filter без callback-функции
  • Example#4154 - Пример использования Ds\Deque::find
  • Example#4155 - Пример использования Ds\Deque::first
  • Example#4156 - Пример использования Ds\Deque::get
  • Example#4157 - Пример использования Ds\Deque::get с синтаксисом массива
  • Example#4158 - Пример использования Ds\Deque::insert
  • Example#4159 - Пример использования Ds\Deque::isEmpty
  • Example#4160 - Пример использования Ds\Deque::join с разделителем
  • Example#4161 - Пример использования Ds\Deque::join без разделителя
  • Example#4162 - Пример использования Ds\Deque::last
  • Example#4163 - Пример использования Ds\Deque::map
  • Example#4164 - Пример использования Ds\Deque::merge
  • Example#4165 - Пример использования Ds\Deque::pop
  • Example#4166 - Пример использования Ds\Deque::push
  • Example#4167 - Пример использования Ds\Deque::reduce с начальным значением
  • Example#4168 - Пример использования Ds\Deque::reduce без начального значения
  • Example#4169 - Пример использования Ds\Deque::remove
  • Example#4170 - Пример использования Ds\Deque::reverse
  • Example#4171 - Пример использования Ds\Deque::reversed
  • Example#4172 - Пример использования Ds\Deque::rotate
  • Example#4173 - Пример использования Ds\Deque::set
  • Example#4174 - Пример использования Ds\Deque::set с синтаксисом массива
  • Example#4175 - Пример использования Ds\Deque::shift
  • Example#4176 - Пример использования Ds\Deque::slice
  • Example#4177 - Пример использования Ds\Deque::sort
  • Example#4178 - Пример использования Ds\Deque::sort с callback-функцией сравнения
  • Example#4179 - Пример использования Ds\Deque::sorted
  • Example#4180 - Пример использования Ds\Deque::sorted с callback-функцией сравнения
  • Example#4181 - Пример использования Ds\Deque::sum с целочисленными значениями
  • Example#4182 - Пример использования Ds\Deque::sum со значениями типа float
  • Example#4183 - Пример использования Ds\Deque::toArray
  • Example#4184 - Пример использования Ds\Deque::unshift
  • Example#4185 - Пример использования Ds\Map::allocate
  • Example#4186 - Пример использования Ds\Map::apply
  • Example#4187 - Пример использования Ds\Map::capacity
  • Example#4188 - Пример использования Ds\Map::clear
  • Example#4189 - Пример использования Ds\Map::__construct
  • Example#4190 - Пример использования Ds\Map::copy
  • Example#4191 - Пример использования Ds\Map::diff
  • Example#4192 - Пример Ds\Map::filter с использованием callback-функции
  • Example#4193 - Пример Ds\Map::filter без callback-функции
  • Example#4194 - Пример использования Ds\Map::first
  • Example#4195 - Пример использования Ds\Map::get
  • Example#4196 - Пример использования Ds\Map::get с синтаксисом массива
  • Example#4197 - Пример использования Ds\Map::hasKey
  • Example#4198 - Пример использования Ds\Map::hasValue
  • Example#4199 - Пример использования Ds\Map::intersect
  • Example#4200 - Пример использования Ds\Map::isEmpty
  • Example#4201 - Пример использования Ds\Map::keys
  • Example#4202 - Пример использования Ds\Map::ksort
  • Example#4203 - Пример использования Ds\Map::ksort с callback-функцией сравнения
  • Example#4204 - Пример использования Ds\Map::ksorted
  • Example#4205 - Пример использования Ds\Map::ksorted с callback-функцией сравнения
  • Example#4206 - Пример использования Ds\Map::last
  • Example#4207 - Пример использования Ds\Map::map
  • Example#4208 - Пример использования Ds\Map::merge
  • Example#4209 - Пример использования Ds\Map::pairs
  • Example#4210 - Пример использования Ds\Map::put
  • Example#4211 - Пример использования Ds\Map::put с объектами в качестве ключей
  • Example#4212 - Пример использования Ds\Map::putAll
  • Example#4213 - Пример использования Ds\Map::reduce с начальным значением
  • Example#4214 - Пример использования Ds\Map::reduce без начального значения
  • Example#4215 - Пример использования Ds\Map::remove
  • Example#4216 - Пример использования Ds\Map::reverse
  • Example#4217 - Пример использования Ds\Map::reversed
  • Example#4218 - Пример использования Ds\Map::skip
  • Example#4219 - Пример использования Ds\Map::slice
  • Example#4220 - Пример использования Ds\Map::sort
  • Example#4221 - Пример использования Ds\Map::sort с callback-функцией сравнения
  • Example#4222 - Пример использования Ds\Map::sort
  • Example#4223 - Пример использования Ds\Map::sort с callback-функцией сравнения
  • Example#4224 - Пример использования Ds\Map::sum с целочисленными значениями
  • Example#4225 - Пример использования Ds\Map::sum со значениями типа float
  • Example#4226 - Пример использования Ds\Map::toArray
  • Example#4227 - Пример использования Ds\Map::union
  • Example#4228 - Пример использования Ds\Map::values
  • Example#4229 - Пример использования Ds\Map::xor
  • Example#4230 - Пример использования Ds\Pair::clear
  • Example#4231 - Пример использования Ds\Pair::copy
  • Example#4232 - Пример использования Ds\Pair::isEmpty
  • Example#4233 - Пример использования Ds\Pair::toArray
  • Example#4234 - Пример использования Ds\Set::add со скалярными значениями
  • Example#4235 - Пример использования Ds\Set::add с объектами
  • Example#4236 - Пример использования Ds\Set::allocate
  • Example#4237 - Пример использования Ds\Set::capacity
  • Example#4238 - Пример использования Ds\Set::clear
  • Example#4239 - Пример использования Ds\Set::__construct
  • Example#4240 - Пример использования Ds\Set::contains
  • Example#4241 - Пример использования Ds\Set::copy
  • Example#4242 - Пример использованияDs\Set::diff
  • Example#4243 - Пример Ds\Set::filter с использованием callback-функции
  • Example#4244 - Пример Ds\Set::filter без callback-функции
  • Example#4245 - Пример использования Ds\Set::first
  • Example#4246 - Пример использования Ds\Set::get
  • Example#4247 - Пример использования Ds\Set::get с синтаксисом массива
  • Example#4248 - Пример использования Ds\Set::intersect
  • Example#4249 - Пример использования Ds\Set::isEmpty
  • Example#4250 - Пример использования Ds\Set::join с разделителем
  • Example#4251 - Пример использования Ds\Set::join без разделителя
  • Example#4252 - Пример использования Ds\Set::last
  • Example#4253 - Пример использования Ds\Set::merge
  • Example#4254 - Пример использования Ds\Set::reduce с начальным значением
  • Example#4255 - Пример использования Ds\Set::reduce без начального значения
  • Example#4256 - Пример использования Ds\Set::remove
  • Example#4257 - Пример использования Ds\Set::reverse
  • Example#4258 - Пример использования Ds\Set::reversed
  • Example#4259 - Пример использования Ds\Set::slice
  • Example#4260 - Пример использования Ds\Set::sort
  • Example#4261 - Пример использования Ds\Set::sort с callback-функцией сравнения
  • Example#4262 - Пример использования Ds\Set::sorted
  • Example#4263 - Пример использования Ds\Set::sorted с callback-функцией сравнения
  • Example#4264 - Пример использования Ds\Set::sum с целочисленными значениями
  • Example#4265 - Пример использования Ds\Set::sum со значениями типа float
  • Example#4266 - Пример использования Ds\Set::toArray
  • Example#4267 - Пример использования Ds\Set::union
  • Example#4268 - Пример использования Ds\Set::xor
  • Example#4269 - Пример использования Ds\Stack::clear
  • Example#4270 - Пример использования Ds\Stack::__construct
  • Example#4271 - Пример использования Ds\Stack::copy
  • Example#4272 - Пример использования Ds\Stack::isEmpty
  • Example#4273 - Пример использования Ds\Stack::peek
  • Example#4274 - Пример использования Ds\Stack::pop
  • Example#4275 - Пример использования Ds\Stack::push
  • Example#4276 - Пример использования Ds\Stack::toArray
  • Example#4277 - Пример использования Ds\Queue::allocate
  • Example#4278 - Пример использования Ds\Queue::capacity
  • Example#4279 - Пример использования Ds\Queue::clear
  • Example#4280 - Пример использования Ds\Queue::__construct
  • Example#4281 - Пример использования Ds\Queue::copy
  • Example#4282 - Пример использования Ds\Queue::isEmpty
  • Example#4283 - Пример использования Ds\Queue::peek
  • Example#4284 - Пример использования Ds\Queue::pop
  • Example#4285 - Пример использования Ds\Queue::push
  • Example#4286 - Пример использования Ds\Queue::toArray
  • Example#4287 - Пример использования Ds\PriorityQueue::allocate
  • Example#4288 - Пример использования Ds\PriorityQueue::capacity
  • Example#4289 - Пример использования Ds\PriorityQueue::clear
  • Example#4290 - Пример использования Ds\PriorityQueue::__construct
  • Example#4291 - Пример использования Ds\PriorityQueue::copy
  • Example#4292 - Пример использования Ds\PriorityQueue::isEmpty
  • Example#4293 - Пример использования Ds\PriorityQueue::peek
  • Example#4294 - Пример использования Ds\PriorityQueue::pop
  • Example#4295 - Пример использования Ds\PriorityQueue::push
  • Example#4296 - Пример использования Ds\PriorityQueue::toArray
  • Example#4297 - Пример использования var_representation
  • Example#4298 - Экранирование управляющих символов
  • Example#4299 - Экспорт stdClass
  • Example#4300 - Экспортирование классов
  • Example#4301 - Пример использования __set_state()
  • Example#4302 - Использование модуля cURL для сохранения стартовой страницы example.com
  • Example#4303 - Инициализация сеанса cURL и загрузка веб-страницы
  • Example#4304 - Копирование дескриптора cURL
  • Example#4305 - Пример использования curl_errno
  • Example#4306 - Пример использования curl_error
  • Example#4307 - Пример использования curl_escape
  • Example#4308 - Загрузка веб-страницы
  • Example#4309 - Пример использования curl_getinfo
  • Example#4310 - Пример использования curl_getinfo с параметром option
  • Example#4311 - Инициализация нового сеанса cURL и загрузка веб-страницы
  • Example#4312 - Пример использования curl_multi_add_handle
  • Example#4313 - Пример использования curl_multi_close
  • Example#4314 - Пример использования curl_multi_exec
  • Example#4315 - Пример использования curl_multi_info_read
  • Example#4316 - Пример использования curl_multi_init
  • Example#4317 - Пример использования curl_multi_strerror
  • Example#4318 - Пример использования curl_reset
  • Example#4319 - Инициализация новой сессии cURL и загрузка веб-страницы
  • Example#4320 - Инициализация сеанса CURL и загрузка веб-страницы
  • Example#4321 - Пример использования curl_share_setopt
  • Example#4322 - Пример использования curl_share_init
  • Example#4323 - Пример использования curl_share_setopt
  • Example#4324 - Пример использования curl_errno
  • Example#4325 - Пример использования curl_escape
  • Example#4326 - Пример использования curl_upkeep
  • Example#4327 - Пример использования curl_version
  • Example#4328 - Пример использования CURLFile::__construct
  • Example#4329 - Пример использования CURLFile::__construct для загрузки нескольких файлов
  • Example#4330 - Пример использования CURLStringFile::__construct
  • Example#4331 - Простой клиент HTTP
  • Example#4332 - HTTP клиент с асинхронным запросом к DNS
  • Example#4333 - Эхо-сервер
  • Example#4334 - SSL эхо-сервер
  • Example#4335 - Обработчик сигналов
  • Example#4336 - Использование цикла libevent для обработки запросов модуля `eio'
  • Example#4337 - Разное
  • Example#4338 - Простой HTTP-сервер
  • Example#4339 - Простой HTTPS-сервер
  • Example#4340 - OpenSSL соединение
  • Example#4341 - Пример использования EventHttpConnection::makeRequest
  • Example#4342 - Слушатель соединений на базе сокетов UNIX
  • Example#4343 - Простой SMTP-сервер
  • Example#4344 - Обработка сигнала SIGTERM
  • Example#4345 - Добавление пользовательского сигнала
  • Example#4346 - Добавление таймера
  • Example#4347 - Пример использования EventBase::getFeatures
  • Example#4348 - Пример использования EventBase::getMethod
  • Example#4349 - Пример использования EventBuffer::search
  • Example#4350 - Пример использования EventBufferEvent::connect
  • Example#4351 - Подключитесь к сокету домена UNIX, который предположительно обслуживается сервером, прочитайте ответ сервера и выведите его на консоль
  • Example#4352 - Пример использования EventBufferEvent::connectHost
  • Example#4353 - Callback-функция чтения буфера
  • Example#4354 - Пример использования EventBufferEvent::getOutput
  • Example#4355 - Пример использования EventBufferEvent::sslError
  • Example#4356 - Простой SMTP-сервер
  • Example#4357 - Пример использования EventConfig::avoidMethod
  • Example#4358 - Пример использования EventConfig::__construct
  • Example#4359 - Пример использования EventConfig::requireFeatures
  • Example#4360 - Пример использования EventHttp::accept
  • Example#4361 - Пример использования EventHttp::addServerAlias
  • Example#4362 - Пример использования EventHttp::bind
  • Example#4363 - Простой HTTP-сервер
  • Example#4364 - Пример использования EventHttp::setCallback
  • Example#4365 - Пример использования EventHttp::setDefaultCallback
  • Example#4366 - Пример использования EventHttpConnection::makeRequest
  • Example#4367 - Пример использования EventHttpConnection::setCloseCallback
  • Example#4368 - Пример EventHttpRequest::__construct
  • Example#4369 - Пример использования EventHttpRequest::sendError
  • Example#4370 - Пример использования EventListener::__construct
  • Example#4371 - Пример использования EventSslContext::__construct
  • Example#4372 - Пример использования FTP-функций
  • Example#4373 - Пример использования ftp_alloc
  • Example#4374 - Пример использования функции ftp_cdup
  • Example#4375 - Пример использования ftp_chdir
  • Example#4376 - Пример использования ftp_chmod
  • Example#4377 - Пример использования ftp_close
  • Example#4378 - Пример использования ftp_connect
  • Example#4379 - Пример использования ftp_delete
  • Example#4380 - Пример использования ftp_exec
  • Example#4381 - Пример использования ftp_fget
  • Example#4382 - Пример использования ftp_fput
  • Example#4383 - Пример использования ftp_get_option
  • Example#4384 - Пример использования ftp_get
  • Example#4385 - Пример использования ftp_login
  • Example#4386 - Пример использования ftp_mdtm
  • Example#4387 - Пример использования ftp_mkdir
  • Example#4388 - Пример использования ftp_mlsd
  • Example#4389 - Пример использования ftp_nb_continue
  • Example#4390 - Пример использования ftp_nb_fget
  • Example#4391 - Пример использования ftp_nb_fput
  • Example#4392 - Пример использования ftp_nb_get
  • Example#4393 - Возобновление скачивания файла с помощью ftp_nb_get
  • Example#4394 - Скачивание файла начиная с позиции 100 в новый файл с помощью ftp_nb_get
  • Example#4395 - Пример использования ftp_nb_put
  • Example#4396 - Возобновление загрузки файла с помощью ftp_nb_put
  • Example#4397 - Пример использования ftp_nlist
  • Example#4398 - Пример использования ftp_pasv
  • Example#4399 - Пример использования ftp_put
  • Example#4400 - Пример использования ftp_pwd
  • Example#4401 - Использование ftp_raw для входа на FTP-сервер
  • Example#4402 - Пример использования ftp_rawlist
  • Example#4403 - Пример использования ftp_rename
  • Example#4404 - Пример использования ftp_rmdir
  • Example#4405 - Пример использования ftp_set_option
  • Example#4406 - Отправка команды SITE FTP-серверу
  • Example#4407 - Пример использования ftp_size
  • Example#4408 - Пример использования функции ftp_ssl_connect
  • Example#4409 - Пример использования ftp_systype
  • Example#4410 - Базовый клиент и обработчик Gearman
  • Example#4411 - Базовый клиент и обработчик Gearman, фоновый режим
  • Example#4412 - Базовые клиент и обработчик Gearman, отправка задач
  • Example#4413 - Добавление двух серверов задач
  • Example#4414 - Добавление двух серверов задач
  • Example#4415 - Основное представление двух задач
  • Example#4416 - Основное представление двух задач с передачей контекста приложения
  • Example#4417 - Две задачи, одна в фоновом режиме, а другая нет
  • Example#4418 - Высокоприоритетная задача вместе с двумя обычными задачами
  • Example#4419 - Низкоприоритетная задача вместе с двумя обычными задачами
  • Example#4420 - Мониторинг завершения нескольких фоновых задач
  • Example#4421 - Простое представление задания с непосредственным возвратом
  • Example#4422 - Передача задания и получение инкрементного состояния
  • Example#4423 - Отправляет и отслеживает фоновое задание
  • Example#4424 - Выполнение простого задания с немедленным возвратом
  • Example#4425 - Отправка задания на обработку и мониторинг состояния
  • Example#4426 - Получение состояния выполнения долгого задания
  • Example#4427 - Мониторинг процесса обработки долго выполняющегося в фоновом режиме задания
  • Example#4428 - Простой обработчик использует дополнительные данные контекста приложения
  • Example#4429 - Добавление альтернативных Gearman серверов
  • Example#4430 - Добавление двух серверов заданий
  • Example#4431 - Пример использования GearmanWorker::setId
  • Example#4432 - Простой обработчик с пятисекундным временем ожидания
  • Example#4433 - Запуск обработчика в неблокирующем режиме
  • Example#4434 - Пример использования GearmanWorker::work
  • Example#4435 - Тестирование поддержки управления пагинацией результата
  • Example#4436 - Пример LDAP поиска
  • Example#4437 - Привязка с информацией policy
  • Example#4438 - Изменение описания, только если оно не пустое
  • Example#4439 - Чтение определённых значений перед удалением
  • Example#4440 - Удаление ссылки
  • Example#4441 - Использование пагинации для поиска
  • Example#4442 - Полный пример с проверкой подлинности привязки
  • Example#4443 - Пример использования привязки LDAP
  • Example#4444 - Использование анонимной привязки LDAP
  • Example#4445 - Полный пример проверки пароля
  • Example#4446 - Пример подключения к серверу LDAP.
  • Example#4447 - Пример безопасного подключения к серверу LDAP.
  • Example#4448 - Постраничная работа с LDAP
  • Example#4449 - Постраничная работа с LDAP
  • Example#4450 - Пример использования функции ldap_count_entries
  • Example#4451 - Перечисление всех сообщений об ошибках LDAP
  • Example#4452 - Генерирование и фиксация ошибки
  • Example#4453 - Поиск по email-адресу
  • Example#4454 - Расширенная операция PASSWD
  • Example#4455 - Расширенная операция Whoami
  • Example#4456 - Показывает список атрибутов, соответствующие определённой записи директории
  • Example#4457 - Проверка версии протокола
  • Example#4458 - Список всех значений атрибута "mail" для записи каталога
  • Example#4459 - Выводит список всех организационных единиц организации
  • Example#4460 - Добавление контакту телефонного номера
  • Example#4461 - Переименование пользователя
  • Example#4462 - Добавление пользователю двух e-mail адресов
  • Example#4463 - Изменение пароля пользователя
  • Example#4464 - Изменение пароля пользователя (Active Directory)
  • Example#4465 - Пример использования ldap_parse_result
  • Example#4466 - LDAP поиск
  • Example#4467 - Устанавливает версию протокола
  • Example#4468 - Устанавливает управление сервером
  • Example#4469 - Сортировка LDAP
  • Example#4470 - Пример использования модуля memcache
  • Example#4471 - Использование memcache в качестве обработчика сессий
  • Example#4472 - Пример использования Memcache::add
  • Example#4473 - Пример использования Memcache::addServer
  • Example#4474 - Пример использования Memcache::close
  • Example#4475 - Пример использования Memcache::connect
  • Example#4476 - Пример использования Memcache::decrement
  • Example#4477 - Пример использования Memcache::delete
  • Example#4478 - Пример использования Memcache::flush
  • Example#4479 - Пример использования Memcache::get
  • Example#4480 - Пример использования Memcache::getExtendedStats
  • Example#4481 - Пример использования Memcache::getServerStatus
  • Example#4482 - Пример использования Memcache::getVersion
  • Example#4483 - Пример использования Memcache::increment
  • Example#4484 - Пример использования Memcache::pconnect
  • Example#4485 - Пример использования Memcache::replace
  • Example#4486 - Пример использования Memcache::set
  • Example#4487 - Пример использования Memcache::set
  • Example#4488 - Пример использования Memcache::setCompressThreshold
  • Example#4489 - Пример использования Memcache::setServerParams
  • Example#4490 - Пример функции обратного вызова
  • Example#4491 - Пример использования
  • Example#4492 - Пример использования Memcached::addServer
  • Example#4493 - Пример использования Memcached::addServers
  • Example#4494 - Пример использования Memcached::append
  • Example#4495 - Пример использования Memcached::cas
  • Example#4496 - Создание экземпляра класса Memcached
  • Example#4497 - Пример использования Memcached::decrement
  • Example#4498 - Пример использования Memcached::delete
  • Example#4499 - Пример использования Memcached::fetch
  • Example#4500 - Пример использования Memcached::getDelayed
  • Example#4501 - Пример использования Memcached::flush
  • Example#4502 - Пример использования Memcached::get #1
  • Example#4503 - Пример использования Memcached::get #2
  • Example#4504 - Пример использования Memcached::getDelayed
  • Example#4505 - Пример использования Memcached::getMulti версии 3
  • Example#4506 - Пример использования Memcached::getMulti версий 1 и 2
  • Example#4507 - Пример использования Memcached::GET_PRESERVE_ORDER с версией 3
  • Example#4508 - Пример использования Memcached::GET_PRESERVE_ORDER с версией 1 и 2
  • Example#4509 - Получает значение Memcached параметра
  • Example#4510 - Пример использования Memcached::getResultCode
  • Example#4511 - Пример использования Memcached::getResultMessage
  • Example#4512 - Пример использования Memcached::getServerByKey
  • Example#4513 - Пример использования Memcached::getServerList
  • Example#4514 - Пример использования Memcached::getStats
  • Example#4515 - Пример использования Memcached::getVersion
  • Example#4516 - Пример использования Memcached::increment
  • Example#4517 - Пример использования Memcached::prepend
  • Example#4518 - Пример использования Memcached::set
  • Example#4519 - Пример использования Memcached::setByKey
  • Example#4520 - Пример использования Memcached::setMulti
  • Example#4521 - Устанавливает Memcached параметр
  • Example#4522 - Устанавливает несколько Memcached параметров
  • Example#4523 - Пример использования mqseries_back
  • Example#4524 - Пример использования mqseries_begin
  • Example#4525 - Пример использования mqseries_close
  • Example#4526 - Пример использования mqseries_cmit
  • Example#4527 - Пример использования mqseries_conn
  • Example#4528 - Пример использования mqseries_connx
  • Example#4529 - Пример использования mqseries_connx с использованием SSL и URL ответчика OCSP
  • Example#4530 - Пример использования mqseries_disc
  • Example#4531 - Пример использования mqseries_get
  • Example#4532 - Пример использования mqseries_inq
  • Example#4533 - Пример использования mqseries_open
  • Example#4534 - Пример использования mqseries_put
  • Example#4535 - Пример использования mqseries_strerror
  • Example#4536 - Пример использования dns_get_record
  • Example#4537 - Использование dns_get_record с DNS_ANY
  • Example#4538 - Пример использования fsockopen
  • Example#4539 - Использование UDP-соединения
  • Example#4540 - Простой пример использования gethostbyaddr
  • Example#4541 - Простой пример использования gethostbyname
  • Example#4542 - Пример использования функции gethostbynamel
  • Example#4543 - Пример использования gethostname
  • Example#4544 - Пример использования getprotobyname
  • Example#4545 - Пример использования getservbyname
  • Example#4546 - Пример использования header_register_callback
  • Example#4547 - Уничтожение определённого заголовка.
  • Example#4548 - Уничтожение всех ранее установленных заголовков.
  • Example#4549 - Диалог загрузки
  • Example#4550 - Директивы для работы с кешем
  • Example#4551 - Пример использования headers_list
  • Example#4552 - Пример использования headers_sent
  • Example#4553 - Использование http_response_code в окружении веб-сервера
  • Example#4554 - Использование http_response_code в CLI
  • Example#4555 - Пример использования inet_ntop
  • Example#4556 - Пример использования inet_pton
  • Example#4557 - Пример использования ip2long
  • Example#4558 - Отображение IP-адресов
  • Example#4559 - Пример использования setcookie
  • Example#4560 - Пример удаления cookie посредством setcookie
  • Example#4561 - setcookie и массивы
  • Example#4562 - Пример использования syslog
  • Example#4563 - Использование rrd в процедурном стиле
  • Example#4564 - Использование rrd в объектно-ориентированном стиле
  • Example#4565 - Пример использования RRDGraph::setOptions
  • Example#4566 - Установка нескольких вариантов цветов
  • Example#4567 - Пример использования RRDUpdater::update
  • Example#4568 - Получение использованных функций
  • Example#4569 - Получение списка функций, которые scoutapm может использовать
  • Example#4570 - Пример использования snmp_get_quick_print
  • Example#4571 - Пример использования snmp_get_valueretrieval
  • Example#4572 - Пример использования snmp_read_mib
  • Example#4573 - Пример использования snmp_set_enum_print
  • Example#4574 - Пример использования snmprealwalk
  • Example#4575 - Пример использования snmp_set_quick_print
  • Example#4576 - Пример использования snmp_set_valueretrieval
  • Example#4577 - Пример использования snmp2_get
  • Example#4578 - Пример использования snmp2_get_next
  • Example#4579 - Пример использования snmp2_real_walk
  • Example#4580 - Пример использования snmp2_set
  • Example#4581 - Пример использования snmp2_set для установки BITS идентификатору объекта SNMP
  • Example#4582 - Пример использования snmp2_walk
  • Example#4583 - Пример использования snmp3_get
  • Example#4584 - Пример использования snmp3_getnext
  • Example#4585 - Пример использования snmp3_real_walk
  • Example#4586 - Пример использования snmp3_set
  • Example#4587 - Пример использования snmp3_set для установки BITS идентификатору объекта SNMP
  • Example#4588 - Пример использования snmp3_walk
  • Example#4589 - Пример использования snmpget
  • Example#4590 - Пример использования snmpgetnext
  • Example#4591 - Пример использования snmprealwalk
  • Example#4592 - Пример использования snmpset
  • Example#4593 - Пример использования snmpset для установки BITS идентификатору объекта SNMP
  • Example#4594 - Пример использования snmpwalk
  • Example#4595 - Пример использования snmpwalkoid
  • Example#4596 - Пример использования SNMP::close
  • Example#4597 - Получение sysLocation
  • Example#4598 - Одиночный объект SNMP
  • Example#4599 - Множественные объекты SNMP
  • Example#4600 - Пример использования SNMP::getErrno
  • Example#4601 - Пример использования SNMP::getError
  • Example#4602 - Одиночный объект SNMP
  • Example#4603 - Множественные объекты SNMP
  • Example#4604 - Установить одиночный идентификатор объекта SNMP
  • Example#4605 - Установить несколько значений с помощью одного вызова SNMP::set
  • Example#4606 - Использование SNMP::set для установки идентификатора объекта BITS SNMP
  • Example#4607 - Пример использования SNMP::setSecurity
  • Example#4608 - Пример использования SNMP::walk
  • Example#4609 - Пример использования suffixAsKey
  • Example#4610 - Пример использования сокетов: Простой сервер TCP/IP
  • Example#4611 - Пример использования сокетов: Простой клиент TCP/IP
  • Example#4612 - Using socket_atmark to set the source address
  • Example#4613 - Использование функции socket_bind для установки адреса источника
  • Example#4614 - Пример использования socket_create_pair
  • Example#4615 - Пример использования socket_create_pair в IPC
  • Example#4616 - Пример использования socket_get_option
  • Example#4617 - Пример использования socket_import_stream
  • Example#4618 - Пример использования socket_last_error
  • Example#4619 - Пример использования socket_recv
  • Example#4620 - Пример использования socket_recvfrom
  • Example#4621 - Использование null в socket_select
  • Example#4622 - Анализ результата socket_select
  • Example#4623 - Пример использования socket_select
  • Example#4624 - Пример использования socket_sendto
  • Example#4625 - Пример использованияsocket_set_block
  • Example#4626 - Пример использования socket_set_nonblock
  • Example#4627 - Пример использования socket_set_option
  • Example#4628 - Пример использования socket_strerror
  • Example#4629 - Аутентификация с помощью агента ssh
  • Example#4630 - Аутентификация по открытому ключу
  • Example#4631 - Извлечение списка доступных методов аутентификации
  • Example#4632 - Аутентификация с паролем
  • Example#4633 - Аутентификация с открытым ключом
  • Example#4634 - Пример ssh2_connect
  • Example#4635 - Выполнение команды
  • Example#4636 - Открытие консоли и получение связанного с ней потока STDERR
  • Example#4637 - Проверка отпечатка с известным значением
  • Example#4638 - Определим, какие методы согласованы
  • Example#4639 - Добавляем открытый ключ с помощью ssh2_publickey_add
  • Example#4640 - Список авторизованных ключей с помощью ssh2_publickey_list
  • Example#4641 - Загрузка файла через SCP
  • Example#4642 - Загрузка файла на сервер через SCP
  • Example#4643 - Изменение прав доступа к файлу
  • Example#4644 - Информация о символической ссылке
  • Example#4645 - Создание директории на удалённом сервере
  • Example#4646 - Чтение символической ссылки
  • Example#4647 - Определение полного пути
  • Example#4648 - Переименовывание файла
  • Example#4649 - Удаление директории на сервере
  • Example#4650 - Информация о файле
  • Example#4651 - Создание символической ссылки
  • Example#4652 - Удаление файла
  • Example#4653 - Открытие файла через SFTP
  • Example#4654 - Запрос интерактивного терминала
  • Example#4655 - Открытие туннеля по произвольному хосту
  • Example#4656 - Объектно-ориентированный стиль
  • Example#4657 - Процедурный стиль
  • Example#4658 - Пример использования stomp_connect_error
  • Example#4659 - Пример использования stomp_version
  • Example#4660 - Объектно-ориентированный стиль
  • Example#4661 - Процедурный стиль
  • Example#4662 - Объектно-ориентированный стиль
  • Example#4663 - Процедурный стиль
  • Example#4664 - Объектно-ориентированный стиль
  • Example#4665 - Процедурный стиль
  • Example#4666 - Объектно-ориентированный стиль
  • Example#4667 - Процедурный стиль
  • Example#4668 - Объектно-ориентированный стиль
  • Example#4669 - Процедурный стиль
  • Example#4670 - Объектно-ориентированный стиль
  • Example#4671 - Процедурный стиль
  • Example#4672 - Объектно-ориентированный стиль
  • Example#4673 - Процедурный стиль
  • Example#4674 - Объектно-ориентированный стиль
  • Example#4675 - Процедурный стиль
  • Example#4676 - Объектно-ориентированный стиль
  • Example#4677 - Процедурный стиль
  • Example#4678 - Обучение из массива
  • Example#4679 - Обучение из файла
  • Example#4680 - svn_add example
  • Example#4681 - Простой пример аутентификации
  • Example#4682 - Пример использования функции svn_blame
  • Example#4683 - Простой пример использования функции svn_cat()
  • Example#4684 - Простой пример
  • Example#4685 - Простой пример
  • Example#4686 - Простой пример
  • Example#4687 - Простой пример
  • Example#4688 - Простой пример
  • Example#4689 - Вывод различий между двумя ревизиями одного файла
  • Example#4690 - Более удобный способ вывода различий между двумя файла
  • Example#4691 - Пример использования svn_export
  • Example#4692 - Простой пример
  • Example#4693 - Пример использования svn_log
  • Example#4694 - Пример использования svn_ls
  • Example#4695 - Простой пример
  • Example#4696 - Базовый пример
  • Example#4697 - Запрет всех соединений с локального хоста
  • Example#4698 - Запретить URL
  • Example#4699 - Получить снимок статистики
  • Example#4700 - Прочитать журнал разделяемой памяти varnish
  • Example#4701 - Пример использования VarnishAdmin::__construct
  • Example#4702 - Параллельный поиск с помощью Yaz
  • Example#4703 - Настройка CCL
  • Example#4704 - Разбор CCL
  • Example#4705 - Пример использования Record Update
  • Example#4706 - Массив для записи GRS-1
  • Example#4707 - Пример работы с MARCXML
  • Example#4708 - Функция PHP которая сканирует заглавия
  • Example#4709 - Примеры запросов
  • Example#4710 - Критерии сортировки
  • Example#4711 - Пример использования ZMQContext
  • Example#4712 - Пример использования ZMQContext
  • Example#4713 - Пример использования ZMQContext
  • Example#4714 - Пример использования ZMQSocket
  • Example#4715 - Пример отправки/получения
  • Example#4716 - Пример использования ZMQPoll
  • Example#4717 - zookeeper_dispatch example #1
  • Example#4718 - Пример использования zookeeper_dispatch #2
  • Example#4719 - Пример использования Zookeeper::addAuth
  • Example#4720 - Пример использования Zookeeper::create
  • Example#4721 - Пример использования Zookeeper::delete
  • Example#4722 - Пример использования Zookeeper::exists
  • Example#4723 - Пример использования Zookeeper::get
  • Example#4724 - Пример использования stat Zookeeper::get
  • Example#4725 - Пример использования Zookeeper::getAcl
  • Example#4726 - Пример использования Zookeeper::getChildren
  • Example#4727 - Пример использования Zookeeper::set
  • Example#4728 - Пример использования Zookeeper::setAcl
  • Example#4729 - Пример использования Zookeeper::setDebugLevel
  • Example#4730 - Пример использования ZookeeperConfig::add
  • Example#4731 - Пример использования ZookeeperConfig::get
  • Example#4732 - Пример использования ZookeeperConfig::remove
  • Example#4733 - Пример использования ZookeeperConfig::set
  • Example#4734 - Пример использования solr_get_version
  • Example#4735 - Содержимое файла BootStrap
  • Example#4736 - Добавление документа в индекс
  • Example#4737 - Слияние одного документа с другим
  • Example#4738 - Поиск документов - ответы SolrObject
  • Example#4739 - Поиск документов - ответы SolrDocument
  • Example#4740 - Пример использования Simple TermsComponent
  • Example#4741 - Пример использования Simple TermsComponent - использование префикса
  • Example#4742 - Пример использования Simple TermsComponent - указание минимальной частоты
  • Example#4743 - Пример использования Simple Facet
  • Example#4744 - Пример использования Simple Facet - с необязательным переопределением поля для mincount
  • Example#4745 - Пример использования Facet Date
  • Example#4746 - Подключение к серверу с поддержкой SSL
  • Example#4747 - Сворачивание SolrQuery
  • Example#4748 - Пример использования Solr Real Time Get (RTG) SolrClient::getById
  • Example#4749 - Пример использования SolrInputDocument::addChildDocument
  • Example#4750 - Пример использования SolrInputDocument::addChildDocuments
  • Example#4751 - Пример использования SolrDocument::toArray
  • Example#4752 - Пример использования SolrObject::__construct
  • Example#4753 - Пример использования SolrObject::offsetUnset
  • Example#4754 - Пример использования SolrClient::addDocument
  • Example#4755 - Пример использования SolrClient::addDocument #2
  • Example#4756 - Пример использования SolrClient::addDocuments
  • Example#4757 - Пример использования SolrClient::__construct
  • Example#4758 - Пример использования SolrQuery::deleteByQuery
  • Example#4759 - Пример использования SolrClient::getById
  • Example#4760 - Пример использования SolrClient::getByIds
  • Example#4761 - Пример использования SolrClient::ping
  • Example#4762 - Пример использования SolrClient::query
  • Example#4763 - Пример использования SolrClient::request
  • Example#4764 - Пример использования SolrClient::setResponseWriter
  • Example#4765 - Пример использования SolrParams::setParam
  • Example#4766 - Пример использования SolrQuery::addFacetField
  • Example#4767 - Пример использования SolrQuery::addFacetField
  • Example#4768 - Пример использования SolrQuery::addFilterQuery
  • Example#4769 - Пример использования SolrQuery::addGroupSortField
  • Example#4770 - Пример использования SolrQuery::collapse
  • Example#4771 - Пример использования SolrQuery::setExpand
  • Example#4772 - Пример использования SolrDisMaxQuery::addBigramPhraseField
  • Example#4773 - Пример использования SolrDisMaxQuery::addBoostQuery
  • Example#4774 - Пример использования SolrDisMaxQuery::addPhraseField
  • Example#4775 - Пример использования SolrDisMaxQuery::addQueryField
  • Example#4776 - Пример использования SolrDisMaxQuery::addTrigramPhraseField
  • Example#4777 - Пример использования SolrDisMaxQuery::addUserField
  • Example#4778 - Пример использования SolrDisMaxQuery::__construct
  • Example#4779 - Пример использования SolrDisMaxQuery::removeBigramPhraseField
  • Example#4780 - Пример использования SolrDisMaxQuery::removeBoostQuery
  • Example#4781 - Пример использования SolrDisMaxQuery::removePhraseField
  • Example#4782 - Пример использования SolrDisMaxQuery::removeQueryField
  • Example#4783 - Пример использования SolrDisMaxQuery::removeTrigramPhraseField
  • Example#4784 - Пример использования SolrDisMaxQuery::removeUserField
  • Example#4785 - Пример использования SolrDisMaxQuery::setBigramPhraseFields
  • Example#4786 - Пример использования SolrDisMaxQuery::setBigramPhraseSlop
  • Example#4787 - Пример использования SolrDisMaxQuery::setBoostFunction
  • Example#4788 - Пример использования SolrDisMaxQuery::setBoostQuery
  • Example#4789 - Пример использования SolrDisMaxQuery::setMinimumMatch
  • Example#4790 - Пример использования SolrDisMaxQuery::setPhraseFields
  • Example#4791 - Пример использования SolrDisMaxQuery::setPhraseSlop
  • Example#4792 - Пример использования SolrDisMaxQuery::setQueryAlt
  • Example#4793 - Пример использования SolrDisMaxQuery::setQueryPhraseSlop
  • Example#4794 - Пример использования SolrDisMaxQuery::setTieBreaker
  • Example#4795 - Пример использования SolrDisMaxQuery::setTrigramPhraseFields
  • Example#4796 - Пример использования SolrDisMaxQuery::setTrigramPhraseSlop
  • Example#4797 - Пример использования SolrDisMaxQuery::setUserFields
  • Example#4798 - Пример использования SolrDisMaxQuery::useDisMaxQueryParser
  • Example#4799 - Пример использования SolrDisMaxQuery::useEDisMaxQueryParser
  • Example#4800 - Пример использования SolrCollapseFunction::__construct
  • Example#4801 - Пример использования SolrCollapseFunction::setHint
  • Example#4802 - Пример использования SolrCollapseFunction::setMax
  • Example#4803 - Отключение парсера PHP для директории при помощи .htaccess
  • Example#4804 - Пример использования apache_get_modules
  • Example#4805 - Пример использования apache_get_version
  • Example#4806 - Пример использования apache_getenv
  • Example#4807 - Пример использования apache_lookup_uri
  • Example#4808 - Пример передачи информации между PHP и Perl
  • Example#4809 - Пример записи значений в access.log
  • Example#4810 - Пример использования apache_request_headers
  • Example#4811 - Пример использования apache_response_headers
  • Example#4812 - Пример использования apache_setenv для установки переменной окружения Apache.
  • Example#4813 - Пример использования getallheaders
  • Example#4814 - Регистрация переменной с помощью $_SESSION.
  • Example#4815 - Отмена объявления переменной с помощью $_SESSION.
  • Example#4816 - Подсчёт количества посещений конкретного пользователя
  • Example#4817 - Пример
  • Example#4818 - Пример использования session_cache_expire
  • Example#4819 - Пример использования session_cache_limiter
  • Example#4820 - Пример использования session_create_id с функцией session_regenerate_id
  • Example#4821 - Уничтожение сессии с помощью $_SESSION
  • Example#4822 - Пример использования session_gc в диспетчерах задач, таких как cron
  • Example#4823 - Пример использования session_gc в скрипте, доступном пользователю
  • Example#4824 - Пример использования session_name
  • Example#4825 - Пример использования session_regenerate_id
  • Example#4826 - Как избежать потери сессии при использовании session_regenerate_id
  • Example#4827 - Пользовательский обработчик сессии: полный код смотрите в описании SessionHandlerInterface.
  • Example#4828 - page1.php
  • Example#4829 - page2.php
  • Example#4830 - Переопределение времени жизни cookie
  • Example#4831 - Чтение и закрытие сессии
  • Example#4832 - Использование SessionHandler для того, чтобы добавить шифровку данных ко внутреннему обработчику сессий PHP.
  • Example#4833 - Пример использования SessionHandlerInterface
  • Example#4834 - Токенизация списка целых чисел через запятую
  • Example#4835 - Токенизировать оператор присваивания
  • Example#4836 - Простой калькулятор
  • Example#4837 - Разобрать слова из предложения
  • Example#4838 - Примеры правильных шаблонов
  • Example#4839 - Примеры неправильных шаблонов
  • Example#4840 - Использование комментариев в шаблоне PCRE
  • Example#4841 - Пример для сравнения функций preg_filter и preg_replace
  • Example#4842 - Пример использования preg_grep
  • Example#4843 - Пример использования preg_last_error_msg
  • Example#4844 - Пример использования preg_last_error
  • Example#4845 - Получение всех телефонных номеров из текста.
  • Example#4846 - Жадный поиск совпадений с HTML-тэгами
  • Example#4847 - Использование именованных подмасок
  • Example#4848 - Поиск подстроки "php" в тексте
  • Example#4849 - Поиск слова "web" в тексте
  • Example#4850 - Извлечение доменного имени из URL
  • Example#4851 - Использование именованных подмасок
  • Example#4852 - Пример использования preg_quote
  • Example#4853 - Выделение курсивом слова в тексте
  • Example#4854 - Пример использования preg_replace_callback_array
  • Example#4855 - preg_replace_callback и анонимная функция
  • Example#4856 - Пример использования preg_replace_callback
  • Example#4857 - Рекурсивная обработка BB-кодов с помощью preg_replace_callback
  • Example#4858 - Использование подмасок, за которыми следует цифра
  • Example#4859 - Использование массивов с числовыми индексами в качестве аргументов функции preg_replace
  • Example#4860 - Замена по нескольким шаблонам
  • Example#4861 - Чистка пробелов
  • Example#4862 - Использование параметра count
  • Example#4863 -
  • Example#4864 - preg_split пример: Получение подстрок из заданного текста
  • Example#4865 - Разбиваем строку на составляющие символы
  • Example#4866 - Разбиваем строку с указанием смещения для каждой из найденных подстрок
  • Example#4867 - Пример использования addcslashes
  • Example#4868 - Пример использования addslashes
  • Example#4869 - Пример использования bin2hex
  • Example#4870 - Пример использования chr
  • Example#4871 - Поведение при переполнении
  • Example#4872 - Создание строки UTF-8 из индивидуальных байтов
  • Example#4873 - Пример использования chunk_split
  • Example#4874 - Пример использования convert_uudecode
  • Example#4875 - Пример использования convert_uuencode
  • Example#4876 - Пример использования count_chars
  • Example#4877 - Вывод контрольной суммы CRC32
  • Example#4878 - Пример использования crypt
  • Example#4879 - Использование crypt с различными видами хешей
  • Example#4880 - Примеры использования echo
  • Example#4881 -
  • Example#4882 - Пример использования explode
  • Example#4883 - Пример возвращаемого значения explode
  • Example#4884 - Примеры с использованием параметра limit
  • Example#4885 - fprintf: заполнение нулями
  • Example#4886 - fprintf: форматирование денежных величин
  • Example#4887 - Пример таблицы преобразований
  • Example#4888 - Пример использования hex2bin
  • Example#4889 - Декодирование HTML-сущностей
  • Example#4890 - Пример использования htmlentities
  • Example#4891 - Использование ENT_IGNORE
  • Example#4892 - Пример использования функции htmlspecialchars_decode
  • Example#4893 - Пример использования htmlspecialchars
  • Example#4894 - Пример использования implode
  • Example#4895 - Пример использования lcfirst
  • Example#4896 - Пример использования levenshtein
  • Example#4897 - Пример использования localeconv
  • Example#4898 - Пример использования ltrim
  • Example#4899 - Пример использования md5_file
  • Example#4900 - Пример использования md5
  • Example#4901 - Простой пример использования metaphone
  • Example#4902 - Использование параметра max_phonemes
  • Example#4903 - Использование параметра max_phonemes
  • Example#4904 - Пример использования money_format
  • Example#4905 - Пример использования nl_langinfo
  • Example#4906 - Пример использования nl2br
  • Example#4907 - Генерирование корректной HTML-вёрстки с помощью параметра use_xhtml
  • Example#4908 - Различные разделители строк
  • Example#4909 - Пример использования number_format
  • Example#4910 - Пример использования ord
  • Example#4911 - Просмотр индивидуальный байтов строки UTF-8
  • Example#4912 - Использование parse_str
  • Example#4913 - Соотношение имён parse_str
  • Example#4914 - Примеры использования print
  • Example#4915 -
  • Example#4916 -
  • Example#4917 - printf: различные примеры
  • Example#4918 - printf: спецификаторы строки
  • Example#4919 - Пример использования quoted_printable_decode
  • Example#4920 - Пример использования quoted_printable_encode
  • Example#4921 - Пример использования quotemeta
  • Example#4922 - Пример использования rtrim
  • Example#4923 - Примеры использования setlocale
  • Example#4924 - Примеры использования setlocale в Windows
  • Example#4925 - Пример использования sha1_file
  • Example#4926 - Пример использования sha1
  • Example#4927 - Пример использования similar_text с заменой аргументов
  • Example#4928 - Примеры использования soundex
  • Example#4929 - Argument swapping
  • Example#4930 - Использование символа заполнения
  • Example#4931 - Спецификатор позиции в комбинации с другими спецификаторами
  • Example#4932 - sprintf: целое с лидирующими нулями
  • Example#4933 - sprintf: форматирование денежных единиц
  • Example#4934 - sprintf: научная нотация
  • Example#4935 - Пример использования sscanf
  • Example#4936 - sscanf - использование необязательных аргументов
  • Example#4937 - Пример использования пустой строки ''
  • Example#4938 - Демонстрация чувствительности к регистру
  • Example#4939 - Базовый пример использования str_decrement
  • Example#4940 - Пример использования str_decrement с переносом (уменьшением высшего разряда или разрядности)
  • Example#4941 - Использование пустой строки ''
  • Example#4942 - Демонстрация чувствительности к регистру
  • Example#4943 - Пример использования str_getcsv
  • Example#4944 - Пример использования str_getcsv с пустой строкой
  • Example#4945 - Базовый пример использования str_increment
  • Example#4946 - Пример использования str_increment с переносом (увеличением высшего разряда или разрядности)
  • Example#4947 - Пример использования str_ireplace
  • Example#4948 - Пример использования str_pad
  • Example#4949 - Пример использования str_repeat
  • Example#4950 - Примеры использования str_replace
  • Example#4951 - Примеры потенциальных трюков с str_replace
  • Example#4952 - Пример использования str_rot13
  • Example#4953 - Пример использования str_shuffle
  • Example#4954 - Пример использования str_split
  • Example#4955 - Использование пустой строки ''
  • Example#4956 - Демонстрация чувствительности к регистру
  • Example#4957 - Пример использования str_word_count
  • Example#4958 - Пример использования strcasecmp
  • Example#4959 - Пример использования strcmp
  • Example#4960 - Пример использования strcspn
  • Example#4961 - Пример использования strip_tags
  • Example#4962 - Пример использования stripcslashes
  • Example#4963 - Пример использования stripos
  • Example#4964 - Пример использования stripslashes
  • Example#4965 - Использование stripslashes с массивом
  • Example#4966 - Пример использования stristr
  • Example#4967 - Проверка на вхождение строки
  • Example#4968 - Использование не строки в поиске
  • Example#4969 - Пример использования strlen
  • Example#4970 - Пример использования strnatcasecmp
  • Example#4971 - Пример использования strncasecmp
  • Example#4972 - strncmp example
  • Example#4973 - Пример использования strpbrk
  • Example#4974 - Использование ===
  • Example#4975 - Использование !==
  • Example#4976 - Использование смещения
  • Example#4977 - Пример использования strrchr
  • Example#4978 - Пример использования strrev
  • Example#4979 - Пример использования strripos
  • Example#4980 - Проверка существования искомой строки
  • Example#4981 - Поиск со смещением
  • Example#4982 - Пример использования strspn
  • Example#4983 - Пример использования strstr
  • Example#4984 - Пример использования strtok
  • Example#4985 - Способ обработки пустых подстрок функцией strtok
  • Example#4986 - Различие между strtok и explode
  • Example#4987 - Пример использования strtolower
  • Example#4988 - Пример использования strtoupper
  • Example#4989 - Пример использования strtr
  • Example#4990 - Пример использования strtr с двумя аргументами
  • Example#4991 - Сравнение поведения функции strtr
  • Example#4992 - Пример использования substr_compare
  • Example#4993 - Пример использования substr_count
  • Example#4994 - Простой пример использования substr_replace
  • Example#4995 - Использование substr_replace для одновременной множественной замены строк
  • Example#4996 - Использование отрицательного параметра offset
  • Example#4997 - Использование отрицательного параметра length
  • Example#4998 - Базовое использование substr
  • Example#4999 - substr и приведение типов
  • Example#5000 -
  • Example#5001 - Недопустимый диапазон символов
  • Example#5002 - Пример использования trim
  • Example#5003 - Обрезание значений массива с помощью trim
  • Example#5004 - Пример использования ucfirst
  • Example#5005 - Пример использования ucwords
  • Example#5006 - Пример ucwords с заданным разделителем
  • Example#5007 - Пример использования ucwords с дополнительными разделителями
  • Example#5008 - Простой пример
  • Example#5009 - Простой пример
  • Example#5010 - vfprintf: дополнение нулями целых чисел
  • Example#5011 - vprintf: дополнение нулями целых чисел
  • Example#5012 - vsprintf: дополнение нулями целых чисел
  • Example#5013 - Пример использования wordwrap
  • Example#5014 - Пример использования wordwrap
  • Example#5015 - Пример использования wordwrap
  • Example#5016 - Пример использования array_change_key_case
  • Example#5017 - Пример использования array_chunk
  • Example#5018 - Получим столбец с именами из набора записей
  • Example#5019 - Получим столбец с фамилиями, а в качестве ключей возвращаемого массива используем значения из столбца "id"
  • Example#5020 - Получим столбец имён пользователей из общедоступного свойства "username" объекта
  • Example#5021 - Получим столбец имён пользователей из приватного свойства "name" объекта, используя магический метод __get.
  • Example#5022 - Простой пример использования array_combine
  • Example#5023 - Пример использования array_count_values
  • Example#5024 - Пример использования array_diff_assoc
  • Example#5025 - Пример использования array_diff_assoc
  • Example#5026 - Пример использования array_diff_key
  • Example#5027 - Пример использования array_diff_uassoc
  • Example#5028 - Пример использования array_diff_ukey
  • Example#5029 - Пример использования array_diff
  • Example#5030 - Пример использования array_diff с несовпадающими типами
  • Example#5031 - Пример использования array_fill_keys
  • Example#5032 - Пример использования array_fill
  • Example#5033 - Пример использования array_fill с отрицательным начальным индексом
  • Example#5034 - Пример использования array_filter
  • Example#5035 - Использование array_filter без callback-функции
  • Example#5036 - array_filter с указанным mode
  • Example#5037 - Пример использования array_flip
  • Example#5038 - Пример использования array_flip с коллизиями
  • Example#5039 - Пример использования array_intersect_assoc
  • Example#5040 - Пример использования array_intersect_key
  • Example#5041 - Пример использования array_intersect_uassoc
  • Example#5042 - Пример использования array_intersect_ukey
  • Example#5043 - Пример использования array_intersect
  • Example#5044 - Пример использования array_is_list
  • Example#5045 - Пример использования array_key_exists
  • Example#5046 - array_key_exists и isset
  • Example#5047 - Пример использования array_key_first
  • Example#5048 - Пример использования array_keys
  • Example#5049 - Пример использования array_map
  • Example#5050 - Использование array_map вместе с лямбда-функцией
  • Example#5051 - Пример использования array_map: обработка нескольких массивов
  • Example#5052 - Выполнение zip операции с массивами
  • Example#5053 - null callback только с array
  • Example#5054 - Использование array_map со строковыми ключами
  • Example#5055 - array_map - ассоциативные массивы
  • Example#5056 - Пример использования array_merge_recursive
  • Example#5057 - Пример использования array_merge
  • Example#5058 - Простой пример использования array_merge
  • Example#5059 - Пример использования array_merge с не массивами
  • Example#5060 - Сортировка нескольких массивов
  • Example#5061 - Сортировка многомерного массива
  • Example#5062 - Сортировка результатов из базы данных
  • Example#5063 - Сортировка без учёта регистра
  • Example#5064 - Пример использования array_pad
  • Example#5065 - Пример использования array_pop
  • Example#5066 - Примеры использования array_product
  • Example#5067 - Пример использования array_push
  • Example#5068 - Пример использования array_rand
  • Example#5069 - Пример использования array_reduce
  • Example#5070 - Пример использования array_replace_recursive
  • Example#5071 - array_replace_recursive и рекурсивное поведение
  • Example#5072 - Пример использования array_replace
  • Example#5073 - Пример использования array_reverse
  • Example#5074 - Пример использования array_search
  • Example#5075 - Пример использования array_shift
  • Example#5076 - Пример использования array_slice
  • Example#5077 - Пример использования array_slice с одномерным массивом
  • Example#5078 - Пример использования array_slice с массивом из смешанных ключей
  • Example#5079 - Примеры использования array_splice
  • Example#5080 - Примеры использования array_splice
  • Example#5081 - Пример использования array_sum
  • Example#5082 - Пример использования array_udiff_assoc
  • Example#5083 - Пример использования array_udiff_uassoc
  • Example#5084 - Пример использования array_udiff с объектами класса stdClass
  • Example#5085 - Пример использования array_udiff с объектами класса DateTime
  • Example#5086 - Пример использования array_uintersect_assoc
  • Example#5087 - Пример использования array_uintersect_uassoc
  • Example#5088 - Пример использования array_uintersect
  • Example#5089 - Пример использования array_unique
  • Example#5090 - array_unique и типы:
  • Example#5091 - Пример использования array_unshift
  • Example#5092 - Пример использования с ассоциативными массивами
  • Example#5093 - Пример использования array_values
  • Example#5094 - Пример использования array_walk_recursive
  • Example#5095 - Пример использования array_walk
  • Example#5096 - Пример использования array_walk с анонимной функцией
  • Example#5097 - Пример использования array
  • Example#5098 - Автоматическая индексация с помощью array
  • Example#5099 - Пример использования array, нумерация которого начинается с 1
  • Example#5100 - Доступ к массиву внутри двойных кавычек
  • Example#5101 - Пример использования arsort
  • Example#5102 - Пример использования asort
  • Example#5103 - Пример использования compact
  • Example#5104 - Пример использования count
  • Example#5105 - Пример использования count с неисчисляемым типом (плохой пример - не делайте так)
  • Example#5106 - Пример рекурсивного использования count
  • Example#5107 - Объект, реализующий интерфейс Countable
  • Example#5108 - Пример использования current и дружественных функций
  • Example#5109 - Примеры использования each
  • Example#5110 - Обход массива функцией each
  • Example#5111 - Пример использования end
  • Example#5112 - Пример использования extract
  • Example#5113 - Пример использования in_array
  • Example#5114 - Пример использования in_array с параметром strict
  • Example#5115 - Пример использования in_array с массивом в качестве параметра needle
  • Example#5116 - Пример использования key
  • Example#5117 - Пример использования krsort
  • Example#5118 - Пример использования ksort
  • Example#5119 - ksort с числовыми (int) ключами
  • Example#5120 - Примеры использования list
  • Example#5121 - Пример использования list
  • Example#5122 - Использование list с индексами массивов
  • Example#5123 - list и порядок указания индексов
  • Example#5124 - list с ключами
  • Example#5125 - Пример использования natcasesort
  • Example#5126 - Простой пример использования natsort
  • Example#5127 - Примеры использования различных трюков с natsort
  • Example#5128 - Пример использования next и связанных функций
  • Example#5129 - Пример использования prev и её связанных функций
  • Example#5130 - Примеры использования range
  • Example#5131 - Пример использования reset
  • Example#5132 - Пример использования rsort
  • Example#5133 - Пример использования shuffle
  • Example#5134 - Пример использования sort
  • Example#5135 - Пример использования sort с регистронезависимым естественным упорядочением
  • Example#5136 - Простой пример использования uasort
  • Example#5137 - Пример использования uksort
  • Example#5138 - Пример использования usort
  • Example#5139 - Пример использования функции usort с многомерными массивами
  • Example#5140 - Пример использования usort с методом класса
  • Example#5141 - Пример использования функции usort с применением анонимной функции для сортировки многомерного массива
  • Example#5142 - Пример использования usort с оператором spaceship (космический корабль)
  • Example#5143 - Определения классов
  • Example#5144 - test_script.php
  • Example#5145 - Пример использования class_alias
  • Example#5146 - Пример использования class_exists
  • Example#5147 - Пример использования c параметром autoload
  • Example#5148 - Пример использования enum_exists
  • Example#5149 - Пример использования get_called_class
  • Example#5150 - Пример использования get_class_methods
  • Example#5151 - Пример использования get_class_vars
  • Example#5152 - get_class_vars и поведение области видимости
  • Example#5153 - Использование get_class
  • Example#5154 - Использование get_class в родительском классе
  • Example#5155 - Использование get_class с классами в пространствах имён
  • Example#5156 - Пример использования get_declared_classes
  • Example#5157 - Пример использования get_declared_interfaces
  • Example#5158 - Пример использования get_mangled_object_vars
  • Example#5159 - Пример использования get_object_vars
  • Example#5160 - Пример использования get_parent_class
  • Example#5161 - Пример использования interface_exists
  • Example#5162 - Пример использования is_a
  • Example#5163 - Использование оператора instanceof
  • Example#5164 - Пример использования is_subclass_of
  • Example#5165 - Пример использования is_subclass_of с интерфейсами
  • Example#5166 - Пример использования method_exists
  • Example#5167 - Пример статического использования method_exists
  • Example#5168 - Пример использования property_exists
  • Example#5169 - Пример использования ctype_alnum (с использованием локали по умолчанию)
  • Example#5170 - Пример использования ctype_alpha (с использованием локали по умолчанию)
  • Example#5171 - Пример использования ctype_cntrl
  • Example#5172 - Пример использования ctype_digit
  • Example#5173 - Пример использования ctype_digit со сравнением строк и целых чисел
  • Example#5174 - Пример использования ctype_graph
  • Example#5175 - Пример использования ctype_lower (с использованием локали по умолчанию)
  • Example#5176 - Пример использования ctype_print
  • Example#5177 - Пример использования ctype_punct
  • Example#5178 - Пример использования ctype_space
  • Example#5179 - Пример использования ctype_upper (с использованием локали по умолчанию)
  • Example#5180 - Пример использования ctype_xdigit
  • Example#5181 - Настройка фильтра по умолчанию для работы аналогично функции htmlspecialchars
  • Example#5182 - Настройка фильтра по умолчанию для работы аналогично функции htmlspecialchars
  • Example#5183 - Валидация e-mail адреса, используя функцию filter_var
  • Example#5184 - Валидация IP-адреса, используя функцию filter_var
  • Example#5185 - Дополнительные параметры функции filter_var
  • Example#5186 - Нормализация и валидация e-mail адресов
  • Example#5187 - Настройка фильтра по умолчанию
  • Example#5188 - Пример использования filter_input_array
  • Example#5189 - Пример использования filter_input
  • Example#5190 - Пример использования filter_list
  • Example#5191 - Пример использования filter_var_array
  • Example#5192 - Пример использования filter_var
  • Example#5193 - Пример фильтрации массива
  • Example#5194 - Пример использования функции call_user_func_array
  • Example#5195 - Пример использования call_user_func_array c именем пространства имён
  • Example#5196 - Использование лямбда-функции
  • Example#5197 - Передача значений по ссылке
  • Example#5198 - Пример использования call_user_func_array с именованными аргументами
  • Example#5199 - Пример использования call_user_func и ссылки
  • Example#5200 - Пример использования call_user_func
  • Example#5201 - Использование call_user_func, используя пространства имён
  • Example#5202 - Вызов метода класса с помощью call_user_func
  • Example#5203 - Использование лямбда-функции с call_user_func
  • Example#5204 - Создание функции динамически с помощью create_function или анонимных функций
  • Example#5205 - Создание общей функции-обработчика с помощью create_function или анонимных функций
  • Example#5206 - Использование динамических функций в качестве callback-функций
  • Example#5207 - Пример использования forward_static_call_array
  • Example#5208 - Пример использования forward_static_call
  • Example#5209 - Пример использования func_get_arg
  • Example#5210 - Пример передачи аргументов по ссылке и по значению с func_get_arg
  • Example#5211 - Пример использования func_get_args
  • Example#5212 - Пример передачи аргументов по ссылке и по значению с func_get_args
  • Example#5213 - Пример использования func_num_args
  • Example#5214 - Пример использования function_exists
  • Example#5215 - Пример использования get_defined_functions
  • Example#5216 - Пример использования register_shutdown_function
  • Example#5217 - Пример использования register_tick_function
  • Example#5218 - Пример использования Quickhash
  • Example#5219 - Пример использования Quickhash ArrayAccess
  • Example#5220 - Пример использования Quickhash Iterator
  • Example#5221 - Пример использования Quickhash String Values
  • Example#5222 - Пример использования QuickHashIntSet::add
  • Example#5223 - Пример использования QuickHashIntSet::__construct
  • Example#5224 - Пример использования QuickHashIntSet::delete
  • Example#5225 - Пример использования QuickHashIntSet::exists
  • Example#5226 - Пример использования QuickHashIntSet::getSize
  • Example#5227 - Пример использования QuickHashIntSet::loadFromFile
  • Example#5228 - Пример использования QuickHashIntSet::loadFromString
  • Example#5229 - Пример использования QuickHashIntSet::saveToFile
  • Example#5230 - Пример использования QuickHashIntSet::saveToString
  • Example#5231 - Пример использования QuickHashIntHash::add
  • Example#5232 - Пример использования QuickHashIntHash::__construct
  • Example#5233 - Пример использования QuickHashIntHash::delete
  • Example#5234 - Пример использования QuickHashIntHash::exists
  • Example#5235 - Пример использования QuickHashIntHash::get
  • Example#5236 - Пример использования QuickHashIntHash::getSize
  • Example#5237 - Формат файла QuickHash IntHash
  • Example#5238 - Формат файла QuickHash IntHash
  • Example#5239 - Пример использования QuickHashIntHash::loadFromFile
  • Example#5240 - Пример использования QuickHashIntHash::loadFromString
  • Example#5241 - Пример использования QuickHashIntHash::saveToFile
  • Example#5242 - Пример использования QuickHashIntHash::saveToString
  • Example#5243 - Пример использования QuickHashIntHash::set
  • Example#5244 - Пример использования QuickHashIntHash::update
  • Example#5245 - Пример использования QuickHashStringIntHash::add
  • Example#5246 - Пример использования QuickHashStringIntHash::__construct
  • Example#5247 - Пример использования QuickHashStringIntHash::delete
  • Example#5248 - Пример использования QuickHashStringIntHash::get
  • Example#5249 - Пример использования QuickHashStringIntHash::getSize
  • Example#5250 - Формат файла QuickHash StringIntHash
  • Example#5251 - Формат файла QuickHash IntHash
  • Example#5252 - Пример использования QuickHashStringIntHash::loadFromFile
  • Example#5253 - Пример использования QuickHashStringIntHash::loadFromString
  • Example#5254 - Пример использования QuickHashStringIntHash::saveToFile
  • Example#5255 - Пример использования QuickHashStringIntHash::saveToString
  • Example#5256 - Пример использования QuickHashStringIntHash::set
  • Example#5257 - Пример использования QuickHashStringIntHash::update
  • Example#5258 - Пример использования QuickHashIntStringHash::add
  • Example#5259 - Пример использования QuickHashIntStringHash::__construct
  • Example#5260 - Пример использования QuickHashIntStringHash::delete
  • Example#5261 - Пример использования QuickHashIntStringHash::get
  • Example#5262 - Пример использования QuickHashIntStringHash::getSize
  • Example#5263 - Формат файла QuickHash IntString
  • Example#5264 - Формат файла QuickHash IntString
  • Example#5265 - Пример использования QuickHashIntStringHash::loadFromFile
  • Example#5266 - Пример использования QuickHashIntStringHash::loadFromString
  • Example#5267 - Пример использования QuickHashIntStringHash::saveToFile
  • Example#5268 - Пример использования QuickHashIntStringHash::saveToString
  • Example#5269 - Пример использования QuickHashIntStringHash::set
  • Example#5270 - Пример использования QuickHashIntStringHash::update
  • Example#5271 - Пример использования Reflection из shell (терминала)
  • Example#5272 - Расширение встроенных классов
  • Example#5273 - Пример использования Reflection::getModifierNames
  • Example#5274 - Простой пример использования ReflectionClass
  • Example#5275 - Пример использования ReflectionClass::export
  • Example#5276 - Простой пример использования
  • Example#5277 - Фильтрация результатов по имени класса
  • Example#5278 - Фильтрация результатов по имени класса с наследованием
  • Example#5279 - Пример использования ReflectionClass::getConstant
  • Example#5280 - Пример использования ReflectionClass::getConstructor
  • Example#5281 - Пример использования ReflectionClass::getDefaultProperties
  • Example#5282 - Пример использования ReflectionClass::getDocComment
  • Example#5283 - Пример использования ReflectionClass::getEndLine
  • Example#5284 - Пример использования ReflectionClass::getExtension
  • Example#5285 - Пример использования ReflectionClass::getExtensionName
  • Example#5286 - Пример использования ReflectionClass::getInterfaceNames
  • Example#5287 - Пример использования ReflectionClass::getInterfaces
  • Example#5288 - Пример использования ReflectionClass::getMethod
  • Example#5289 - Пример использования ReflectionClass::getMethods
  • Example#5290 - Пример фильтрации результата вызова ReflectionClass::getMethods
  • Example#5291 - Пример использования ReflectionClass::getName
  • Example#5292 - Пример использования ReflectionClass::getNamespaceName
  • Example#5293 - Пример фильтрации с помощью ReflectionClass::getProperties
  • Example#5294 - Пример использования ReflectionClass::getProperty
  • Example#5295 - Простой пример использования ReflectionClass::getReflectionConstants
  • Example#5296 - Пример использования ReflectionClass::getShortName
  • Example#5297 - Пример использования ReflectionClass::getStaticPropertyValue
  • Example#5298 - Пример использования ReflectionClass::hasConstant
  • Example#5299 - Пример использования ReflectionClass::hasMethod
  • Example#5300 - Пример использования ReflectionClass::hasProperty
  • Example#5301 - Пример использования ReflectionClass::inNamespace
  • Example#5302 - Пример использования ReflectionClass::isAbstract
  • Example#5303 - Пример ReflectionClass::isAnonymous
  • Example#5304 - Пример использования ReflectionClass::isCloneable
  • Example#5305 - Пример использования ReflectionClass::isFinal
  • Example#5306 - Пример использования ReflectionClass::isInstance и его аналогов
  • Example#5307 - Пример использования ReflectionClass::isInstantiable
  • Example#5308 - Пример использования ReflectionClass::isInterface
  • Example#5309 - Пример использования ReflectionClass::isInternal
  • Example#5310 - Использование ReflectionClass::isIterable
  • Example#5311 - Пример использования ReflectionClass::isReadOnly
  • Example#5312 - Пример использования ReflectionClass::newInstanceArgs
  • Example#5313 - Пример использования ReflectionClass::__toString
  • Example#5314 - Простой пример
  • Example#5315 - Фильтрация результатов по имени класса
  • Example#5316 - Фильтрация результатов по имени класса, с наследованием
  • Example#5317 - Пример использования ReflectionClassConstant::isEnumCase
  • Example#5318 - Пример использования ReflectionEnum::getBackingType
  • Example#5319 - Пример использования ReflectionEnum::getCase
  • Example#5320 - Пример использования ReflectionEnum::getCases
  • Example#5321 - Пример использования ReflectionEnum::hasCase
  • Example#5322 - Пример использования ReflectionEnum::isBacked
  • Example#5323 - Пример использования ReflectionEnum::getValue
  • Example#5324 - Пример использования ReflectionEnum::getBackingValue
  • Example#5325 - Пример использования ReflectionExtension
  • Example#5326 - Пример использования ReflectionExtension::getClasses
  • Example#5327 - Пример использования ReflectionExtension::getClassNames
  • Example#5328 - Пример использования ReflectionExtension::getConstants
  • Example#5329 - Пример использования ReflectionExtension::getDependencies
  • Example#5330 - Пример использования ReflectionExtension::getFunctions
  • Example#5331 - Пример использования ReflectionExtension::getINIEntries
  • Example#5332 - Пример использования ReflectionExtension::getName
  • Example#5333 - Пример использования ReflectionExtension::getVersion
  • Example#5334 - Пример использования ReflectionExtension::info
  • Example#5335 - Пример использования ReflectionFunction::__construct
  • Example#5336 - Пример использования ReflectionFunction::invoke
  • Example#5337 - Пример использования ReflectionFunction::invokeArgs
  • Example#5338 - Пример использования ReflectionFunction::invokeArgs со ссылками на аргументы
  • Example#5339 - Пример использования ReflectionFunction::isAnonymous
  • Example#5340 - Пример использования ReflectionFunction::__toString
  • Example#5341 - Простой пример с методом класса
  • Example#5342 - Простой пример с функцией
  • Example#5343 - Фильтрация результатов по имени класса
  • Example#5344 - Фильтрация результатов по имени класса, с наследованием
  • Example#5345 - Пример использования ReflectionFunctionAbstract::getClosureUsedVariables
  • Example#5346 - Пример ReflectionFunctionAbstract::getReturnType
  • Example#5347 - Применение к встроенным функциям
  • Example#5348 - Пример использования ReflectionFunctionAbstract::getTentativeReturnType
  • Example#5349 - Пример ReflectionFunctionAbstract::hasReturnType
  • Example#5350 - Применение к встроенным функциям
  • Example#5351 - Пример использования ReflectionFunctionAbstract::hasTentativeReturnType
  • Example#5352 - Пример использования метода ReflectionFunctionAbstract::isClosure
  • Example#5353 - Пример использования ReflectionFunctionAbstract::isDeprecated
  • Example#5354 - Пример использования ReflectionMethod::__construct
  • Example#5355 - ReflectionMethod::createFromMethodName example
  • Example#5356 - Пример использования ReflectionMethod::getDeclaringClass
  • Example#5357 - Пример использования ReflectionMethod::getModifiers
  • Example#5358 - Пример использования ReflectionMethod::getPrototype
  • Example#5359 - Пример использования ReflectionMethod::hasPrototype
  • Example#5360 - Пример использования ReflectionMethod::invoke
  • Example#5361 - Пример использования ReflectionMethod::invokeArgs
  • Example#5362 - Определение простого класса
  • Example#5363 - Пример использования ReflectionMethod::__toString
  • Example#5364 - Пример использования ReflectionNamedType::isBuiltin
  • Example#5365 - Использования класса ReflectionParameter
  • Example#5366 - Простой пример
  • Example#5367 - Фильтрация результатов по имени класса
  • Example#5368 - Фильтрация результатов по имени класса, с наследованием
  • Example#5369 - Пример использования класса ReflectionParameter
  • Example#5370 - Получение класса, в котором объявлен метод
  • Example#5371 - Получение
  • Example#5372 - Получение значений по умолчанию констант для параметров функции
  • Example#5373 - Пример использования ReflectionParameter::getType начиная с PHP 7.1.0
  • Example#5374 - Использование ReflectionParameter::getType в PHP до версии 7.1.0
  • Example#5375 - Пример использования ReflectionParameter::getType в PHP 8.0.0 и более поздних
  • Example#5376 - Пример использования ReflectionParameter::hasType
  • Example#5377 - Альтернатива в PHP 8.0.0
  • Example#5378 - Альтернатива в PHP 8.0.0
  • Example#5379 - Пример использования ReflectionParameter::__toString
  • Example#5380 - Пример использования ReflectionProperty::__construct
  • Example#5381 - Получение значений защищённых и закрытых свойств, используя класс ReflectionProperty
  • Example#5382 - Простой пример
  • Example#5383 - Фильтрация результатов по имени класса
  • Example#5384 - Фильтрация результатов по имени класса, с наследованием
  • Example#5385 - Пример использования ReflectionProperty::getDefaultValue
  • Example#5386 - Пример ReflectionProperty::getDocComment
  • Example#5387 - Декларация нескольких свойств
  • Example#5388 - Пример использования ReflectionProperty::getType
  • Example#5389 - Пример использования ReflectionProperty::getValue
  • Example#5390 - Пример использования ReflectionProperty::hasDefaultValue
  • Example#5391 - Пример использования ReflectionProperty::hasType
  • Example#5392 - Пример использования ReflectionProperty::isDefault
  • Example#5393 - Пример использования ReflectionProperty::isInitialized
  • Example#5394 - Пример использования ReflectionProperty::isPromoted
  • Example#5395 - Определение простого класса
  • Example#5396 - Пример использования ReflectionProperty::setValue
  • Example#5397 - Пример использования ReflectionType::allowsNull
  • Example#5398 - Пример использования ReflectionType::__toString
  • Example#5399 - Пример использования ReflectionUnionType::getTypes
  • Example#5400 - Пример использования ReflectionGenerator::__construct
  • Example#5401 - Пример использования ReflectionGenerator::getExecutingFile
  • Example#5402 - Пример использования ReflectionGenerator::getExecutingGenerator
  • Example#5403 - Пример использования ReflectionGenerator::getExecutingLine
  • Example#5404 - Пример использования ReflectionGenerator::getFunction
  • Example#5405 - Пример использования ReflectionGenerator::getThis
  • Example#5406 - Пример использования ReflectionGenerator::getTrace
  • Example#5407 - Пример использования ReflectionIntersectionType::getTypes
  • Example#5408 - Простое использование ReflectionReference::getId
  • Example#5409 - Пример использования boolval
  • Example#5410 - Пример использования debug_zval_dump
  • Example#5411 -
  • Example#5412 - Простое сравнение empty и isset.
  • Example#5413 - empty и строковые индексы
  • Example#5414 - Пример использования floatval
  • Example#5415 - Пример использования floatval с нечисловыми крайними левыми символами
  • Example#5416 - Пример использования get_debug_type
  • Example#5417 - Пример использования get_defined_vars
  • Example#5418 - Использование get_resource_id даёт тот же результат, что и приведение к целому числу (int)
  • Example#5419 - Пример использования get_resource_type
  • Example#5420 - Пример использования gettype
  • Example#5421 - Примеры использования intval
  • Example#5422 - Проверяет, является ли переменная массивом
  • Example#5423 - Пример использования is_bool
  • Example#5424 - Пример использования is_callable
  • Example#5425 - is_callable и конструкторы
  • Example#5426 - Примеры использования is_countable
  • Example#5427 - Пример использования is_float
  • Example#5428 - Пример использования is_int
  • Example#5429 - Пример использования is_iterable
  • Example#5430 - Пример использования is_null
  • Example#5431 - Примеры использования is_numeric
  • Example#5432 - Пример использования is_numeric с пробелом
  • Example#5433 - Пример использования is_object
  • Example#5434 - Пример использования is_resource
  • Example#5435 - Пример использования is_scalar
  • Example#5436 - Пример использования is_string
  • Example#5437 - Пример использования isset
  • Example#5438 - isset и строковые индексы
  • Example#5439 - Пример использования print_r
  • Example#5440 - Пример использования параметра return
  • Example#5441 - Пример использования serialize
  • Example#5442 - Пример использования settype
  • Example#5443 - Пример использования strval с магическим методом PHP __toString().
  • Example#5444 - Пример использования unserialize
  • Example#5445 - Пример использования unserialize_callback_func
  • Example#5446 - Пример использования unset
  • Example#5447 - Использование приведения типа (unset)
  • Example#5448 - Пример использования var_dump
  • Example#5449 - Примеры использования var_export
  • Example#5450 - Экспорт stdClass с PHP 7.3.0
  • Example#5451 - Экспорт классов
  • Example#5452 - Использование __set_state()
  • Example#5453 -
  • Example#5454 - Пример использования OAuth::fetch
  • Example#5455 - Пример использования OAuth::getAccessToken
  • Example#5456 - Пример использования OAuth::getRequestToken
  • Example#5457 - Пример использования OAuth::setRequestEngine
  • Example#5458 - Пример использования OAuth::setRsaCertificate
  • Example#5459 - Пример использования OAuth::setToken
  • Example#5460 - Пример использования OAuthProvider::__construct
  • Example#5461 - Пример использования OAuthProvider::consumerHandler
  • Example#5462 - Пример использования OAuthProvider::generateToken
  • Example#5463 - Пример использования OAuthProvider::is2LeggedEndpoint
  • Example#5464 - Пример использования OAuthProvider::timestampNonceHandler
  • Example#5465 - Пример использования OAuthProvider::tokenHandler
  • Example#5466 - Пример использования функции is_soap_fault
  • Example#5467 - Стандартный метод SOAP для сообщений об ошибках - это исключения
  • Example#5468 - Указание использования только TLS 1.3
  • Example#5469 - Пример использования SoapClient::__construct
  • Example#5470 - Пример использования SOAP_SINGLE_ELEMENT_ARRAYS
  • Example#5471 - Пример использования SoapClient::__doRequest
  • Example#5472 - Пример использования SoapClient::__getFunctions
  • Example#5473 - Пример использования SoapClient::__getLastRequest()
  • Example#5474 - Пример использования SoapClient::__getLastRequestHeaders()
  • Example#5475 - Пример использования SoapClient::__getLastResponse()
  • Example#5476 - Пример использования SoapClient::__getLastResponse()
  • Example#5477 - Пример использования SoapClient::__getTypes
  • Example#5478 - Пример использования SoapClient::__setLocation
  • Example#5479 - Пример использования SoapClient::__setSoapHeaders
  • Example#5480 - Установка нескольких заголовков
  • Example#5481 - Пример использования SoapClient::__soapCall
  • Example#5482 - Пример использования SoapServer::addFunction
  • Example#5483 - Пример использования SoapServer::SoapServer
  • Example#5484 - Пример использования SoapServer::getFunctions
  • Example#5485 - Пример использования SoapServer::handle
  • Example#5486 - Пример использования SoapServer::setPersistence
  • Example#5487 - Несколько примеров
  • Example#5488 - Несколько примеров
  • Example#5489 - Пример использования SoapHeader::SoapHeader
  • Example#5490 - Пример использования SoapParam::SoapParam
  • Example#5491 - Пример использования SoapVar::__construct
  • Example#5492 - Пример сервера Yar
  • Example#5493 - Обращаемся к серверу из браузера (запрос GET)
  • Example#5494 - Пример клиента Yar
  • Example#5495 - Пример конкурирующих клиентов Yar
  • Example#5496 - Пример использования Yar_Server::__construct
  • Example#5497 - Пример использования Yar_Server::handle
  • Example#5498 - Пример использования Yar_Client::__call
  • Example#5499 - Пример использования Yar_Client::__construct
  • Example#5500 - Пример использования Yar_Client::setOpt
  • Example#5501 - Пример использования Yar_Concurrent_Client::call
  • Example#5502 - Пример использования Yar_Concurrent_Client::loop
  • Example#5503 - Пример использования Yar_Concurrent_Client::reset
  • Example#5504 - Пример использования Yar_Server_Exception::getType
  • Example#5505 - Пример использования Yar_Client_Exception::getType
  • Example#5506 - Пример клиентской функции XMLRPC
  • Example#5507 - Пример XML-RPC типа
  • Example#5508 - Пример использования xmlrpc_set_type
  • Example#5509 - For Each в ASP
  • Example#5510 - foreach в PHP
  • Example#5511 - Первый пример
  • Example#5512 - Второй пример
  • Example#5513 - Пример использования dotnet
  • Example#5514 - Пример использования variant
  • Example#5515 - Использование COMPersistHelper::saveToFile
  • Example#5516 - Пример com_event_sink
  • Example#5517 - Регистрация скрипта PHP для запуска в качестве службы
  • Example#5518 - Удаление регистрации службы
  • Example#5519 - Запуск в качестве службы
  • Example#5520 - Пример использования win32_create_service
  • Example#5521 - Пример использования win32_create_service с зависимостями
  • Example#5522 - Пример использования win32_create_service с восстановлением
  • Example#5523 - Пример использования win32_delete_service
  • Example#5524 - Пример win32_start_service_ctrl_dispatcher
  • Example#5525 - book.xml
  • Example#5526 - Создание нового объекта класса DOMAttr
  • Example#5527 - Пример использования DOMAttr::isId()
  • Example#5528 - Создание объекта класса DOMCdataSection
  • Example#5529 - DOMCharacterData::after example
  • Example#5530 - DOMCharacterData::before example
  • Example#5531 - DOMCharacterData::remove example
  • Example#5532 - DOMCharacterData::replaceWith example
  • Example#5533 - Создание объекта DOMComment
  • Example#5534 - DOMDocument::adoptNode example
  • Example#5535 - DOMDocument::append example
  • Example#5536 - Создание объекта DOMDocument
  • Example#5537 - Создание нового элемента и вставка его в качестве корневого
  • Example#5538 - Передача текста, содержащего неэкранированный & в value
  • Example#5539 - Создание элемента и вставка в документ в качестве корневого
  • Example#5540 - Пример префикса пространства имён
  • Example#5541 - Пример использования DOMDocument::getElementById()
  • Example#5542 - Простой пример использования
  • Example#5543 - Получение всех элементов XInclude
  • Example#5544 - Пример использования DOMDocument::importNode
  • Example#5545 - Создание документа
  • Example#5546 - Создание документа
  • Example#5547 - Создание документа
  • Example#5548 - Создание документа
  • Example#5549 - DOMDocument::prepend example
  • Example#5550 - Добавление нового метода в класс DOMElement для упрощения кода
  • Example#5551 - Получение элементов в виде пользовательского класса
  • Example#5552 - Получение имени документа владельца
  • Example#5553 - Пользовательские объекты временны
  • Example#5554 - DOMDocument::replaceChildren example
  • Example#5555 - Сохранение DOM-дерева в файл
  • Example#5556 - Сохранение HTML-дерева в виде строки
  • Example#5557 - Сохранение HTML-дерева в файл
  • Example#5558 - Сохранение DOM-дерева в виде строки
  • Example#5559 - Пример проверки DTD
  • Example#5560 - Пример использования DOMDocument::xinclude()
  • Example#5561 - DOMDocumentFragment::append example
  • Example#5562 - Добавление XML-данных в документ
  • Example#5563 - DOMDocumentFragment::prepend example
  • Example#5564 - DOMDocumentFragment::replaceChildren example
  • Example#5565 - DOMElement::after example
  • Example#5566 - DOMElement::append example
  • Example#5567 - DOMElement::before example
  • Example#5568 - Создание нового DOMElement
  • Example#5569 - DOMElement::getAttributeNames example
  • Example#5570 - DOMElement::insertAdjacentElement example
  • Example#5571 - DOMElement::insertAdjacentText example
  • Example#5572 - DOMElement::prepend example
  • Example#5573 - DOMElement::remove example
  • Example#5574 - DOMElement::replaceChildren example
  • Example#5575 - DOMElement::replaceWith example
  • Example#5576 - Установка значения атрибута
  • Example#5577 - DOMElement::toggleAttribute example
  • Example#5578 - Создание нового объекта DOMEntityReference
  • Example#5579 - Создание документа с прикреплённым DTD
  • Example#5580 - Тестирование вашей реализации DOM
  • Example#5581 - Добавление дочернего узла
  • Example#5582 - Вложенные дочерние узлы
  • Example#5583 - DOMNode::contains example
  • Example#5584 - Пример использования DOMNode::getLineNo
  • Example#5585 - Пример использования DOMNode::getNodePath
  • Example#5586 - DOMNode::getRootNode example
  • Example#5587 - DOMNode::isEqualNode example
  • Example#5588 - Удаление дочернего узла
  • Example#5589 - Вывод содержимого таблицы
  • Example#5590 - DOMParentNode::replaceChildren example
  • Example#5591 - Создание объекта класса DOMProcessingInstruction
  • Example#5592 - Создание нового узла DOMText
  • Example#5593 - Получение количества всех английских книг
  • Example#5594 - Получение списка всех книг на английском
  • Example#5595 - book.xml
  • Example#5596 - DOMXPath::registerPHPFunctions с php:functionString
  • Example#5597 - DOMXPath::registerPHPFunctions с php:function
  • Example#5598 - Импорт SimpleXML в DOM с помощью функции dom_import_simplexml
  • Example#5599 - Пример использования libxml_get_errors
  • Example#5600 - Пример использования libxml_set_external_entity_loader
  • Example#5601 - Пример использования libxml_set_streams_context
  • Example#5602 - Пример использования libxml_use_internal_errors
  • Example#5603 - Файл example.php с XML строкой
  • Example#5604 - Получение части документа <plot>
  • Example#5605 - Получение строки <line>
  • Example#5606 - Доступ к неуникальным элементам в SimpleXML
  • Example#5607 - Использование атрибутов
  • Example#5608 - Сравнение элементов и атрибутов с текстом
  • Example#5609 - Сравнение двух элементов
  • Example#5610 - Использование XPath
  • Example#5611 - Установка значений
  • Example#5612 - Добавление элементов и атрибутов
  • Example#5613 - Взаимодействие с DOM
  • Example#5614 - Загрузка синтаксически неправильной XML-строки
  • Example#5615 - Добавление атрибутов и потомков к SimpleXML-элементу
  • Example#5616 - Добавление атрибутов и потомков к элементу SimpleXML
  • Example#5617 - Получение XML
  • Example#5618 - Использование asXML() с результатами SimpleXMLElement::xpath
  • Example#5619 - Интерпретация XML-строки
  • Example#5620 - Обход псевдомассива children()
  • Example#5621 - Использование пространства имён
  • Example#5622 - Создание объекта SimpleXMLElement
  • Example#5623 - Создание объекта SimpleXMLElement из URL
  • Example#5624 - Подсчёт количества дочерних элементов
  • Example#5625 - Возврат текущего элемента
  • Example#5626 - Получение пространства имён документа
  • Example#5627 - Работа с несколькими пространствами имён
  • Example#5628 - Получение имён XML-элемента
  • Example#5629 - Получение пространств имён, используемых в документе
  • Example#5630 - Возвращение дочерних элементов текущего элемента
  • Example#5631 - Проверка наличия у текущего элемента дочерних элементов
  • Example#5632 - Получение текущего ключа XML-тега
  • Example#5633 - Перейти к следующему элементу
  • Example#5634 - Установка префикса пространства имён для использования в запросе XPath
  • Example#5635 - Перемотка к первому элементу
  • Example#5636 - Получить содержимое строки
  • Example#5637 - Проверка, является ли текущий элемент корректным
  • Example#5638 - Xpath
  • Example#5639 - Импорт DOM
  • Example#5640 - Интерпретация XML-документа
  • Example#5641 - Интерпретация XML-строки
  • Example#5642 - Сериализация одно значения с помощью WDDX
  • Example#5643 - Использование инкрементальных пакетов WDDX
  • Example#5644 - Пример использования wddx_serialize_vars
  • Example#5645 - Показать структуру элемента XML
  • Example#5646 - Отображение XML в HTML
  • Example#5647 - Пример использования внешней сущности
  • Example#5648 - xmltest.xml
  • Example#5649 - xmltest2.xml
  • Example#5650 - Пример использования xml_parse_into_struct
  • Example#5651 - moldb.xml - небольшая база данных с информацией о молекулах
  • Example#5652 - parsemoldb.php - разбирает moldb.xml и помещает данные в массив молекул
  • Example#5653 - Разбор по частям больших XML-документов
  • Example#5654 - Пример использования xml_set_object
  • Example#5655 - Проверка правильности XML
  • Example#5656 - Создание простого XML-документа
  • Example#5657 - Работа с пространствами имён XML
  • Example#5658 - Работа с объектно-ориентированным API
  • Example#5659 - Прямой вывод XML
  • Example#5660 - XMLWriter::setIndent и смешанное содержимое
  • Example#5661 - Пример базового использования XMLWriter::startAttribute
  • Example#5662 - Перемешивание подэлементов и атрибутов
  • Example#5663 - Базовое использование xmlwriter_write_cdata
  • Example#5664 - collection.xml
  • Example#5665 - collection.xsl
  • Example#5666 - fruits.xml
  • Example#5667 - fruits.xsl
  • Example#5668 - Сбор и вывод ошибок
  • Example#5669 - Создаёт XSLTProcessor
  • Example#5670 - Проверка поддержки EXSLT
  • Example#5671 - Простой вызов функции PHP из таблицы стилей
  • Example#5672 - Изменение владельца перед преобразованием
  • Example#5673 - Пример вывода профилирующей информации
  • Example#5674 - Преобразование в DOMDocument
  • Example#5675 - Преобразование в HTML файл
  • Example#5676 - Трансформация в строку
  • Example#5677 - Скрытый элемент HTML-формы
  • Example#5678 - Данные, редактируемые пользователем
  • Example#5679 - В URL
  • Example#5680 - Генерирование JavaScript из PHP
  • Example#5681 - Пример кода на PHP/FI
  • Example#5682 - Активация полного логирования и сообщения об ошибках для dev. домена
  • Example#5683 - Добавление скрипта безопасности для защищённых зон
  • Example#5684 - include_path в Unix
  • Example#5685 - include_path в Windows
  • Example#5686 - Настройка include_path с помощью переменной окружения ${USER} в Unix
  • Example#5687 - string.rot13
  • Example#5688 - string.toupper
  • Example#5689 - string.tolower
  • Example#5690 - string.strip_tags
  • Example#5691 - convert.base64-encode и convert.base64-decode
  • Example#5692 - convert.quoted-printable-encode & convert.quoted-printable-decode
  • Example#5693 - convert.iconv.*
  • Example#5694 - zlib.deflate и zlib.inflate
  • Example#5695 - Упрощённое использование zlib.deflate
  • Example#5696 - bzip2.compress и bzip2.decompress
  • Example#5697 - Шифрование/расшифровка используя Blowfish
  • Example#5698 - Шифрование файла с помощью AES-128 CBC с SHA256 HMAC


Список изменений

Следующие изменения были произведены с функциями встроенных модулей.

Version Function Description


Руководство в формате 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.